feat(chord): Chord v2 slice 12, the plugin model

Plugins import the app's versioned API (createPlugins api option: unlisted
versions, other kinds' modules, mixed versions and direct Chord imports refused),
each other by relative path within a root or by package name across
repositories (npm or git pins), with per-kind files checked by name.
chord.plugins lists a package's plugins. Required roots, single-file plugins,
installPlugin from git or npm, testPlugin with stub facets.
plugin-authoring.md for authors and agents. Examples 49-52.
This commit is contained in:
Mario Zechner 2026-11-02 13:19:00 +00:00
parent 3e0eec29f5
commit 9823079ad9
99 changed files with 4056 additions and 467 deletions

View file

@ -11,12 +11,7 @@
"@earendil-works/chord/next": ["./packages/chord/src/next/index.ts"],
"@earendil-works/chord/next/plugins": ["./packages/chord/src/next-node/plugins/index.ts"],
"@earendil-works/chord/next/plugins/runtime": ["./packages/chord/src/next-node/plugins/runtime.ts"],
"@test/contracts/*": ["./packages/chord/test/next-node/fixtures/plugins/contracts/*.ts"],
"@example/contracts/*": ["./packages/chord/test/next/examples/35-plugins/plugins/contracts/*.ts"],
"@example/weather/*": ["./packages/chord/test/next/examples/36-plugin-failures/plugins/weather/*.ts"],
"@example/prices/*": ["./packages/chord/test/next/examples/36-plugin-failures/plugins/prices/*.ts"],
"@example/shapes/*": ["./packages/chord/test/next/examples/37-plugin-imports/plugins/shapes/*.ts"],
"@example/shared/*": ["./packages/chord/test/next/examples/38-watch-and-rollout/plugins/contracts/*.ts"],
"@acme/app/*": ["./packages/chord/test/next/examples/49-plugin-api/app/*.ts"],
"@earendil-works/chord/next/http": ["./packages/chord/src/next-node/http/index.ts"],
"@earendil-works/chord/next/workers": ["./packages/chord/src/next-node/workers/index.ts"],
"@earendil-works/chord/node": ["./packages/chord/src/node.ts"],