Plugin ecosystem for the Adept show platform. Contains the shared SDK and first-party plugins.
packages/
plugin-sdk/ @adept/plugin-sdk — canonical types consumed by all plugins and by Adept-Game
Each plugin is a normal npm package with a custom adept field in package.json:
{
"name": "@adept-plugins/my-segment",
"version": "1.0.0",
"exports": {
".": "./dist/server.js",
"./client": "./dist/client.js"
},
"peerDependencies": { "@adept/plugin-sdk": "^1.0.0" },
"adept": {
"pluginId": "my-segment",
"apiVersion": 1,
"capabilities": {
"segments": [{ "id": "my_seg", "slot": "after:round:2", "next": "round:3" }],
"cardKinds": []
}
}
}Two entry points:
./dist/server.js— exportsregisterServer(registry: PluginServerRegistry)./dist/client.js— exportsregisterClient(registry: PluginClientRegistry)
Pin to an annotated tag or commit SHA — never a branch:
The resolved commit SHA is locked in package-lock.json. Every update is a PR.
- Only repos/orgs listed in
requirements/plugin-allowlist.jsonare accepted. - The validator CLI (
packages/validator-cli, forthcoming) enforces the allowlist, checks graph reachability, and optionally verifies GPG-signed tags. - Plugin code runs inside the main bundle — no iframe, no runtime fetch.
- The registry enforces capability declarations even for trusted code.
npm install
npm run build