All agent/* and agent-loop/config-start-failed events take one payload object carrying the agent subject; waterfall/serial payloads require a signal and keep next as the final argument. PreStepContext and RequestFailureContext are unfolded into payloads and retired. goal/changed follows the same shape so agentEvents keeps its listener error containment. ReactLoopAgent builds its scope carrier once in the constructor. Regenerates scope resolvers, tool-cordis api catalog, and docs catalogs; updates all affected listeners, tests, and the core-data-structures docs (en + zh).
examples/ — ready-to-run demo bundles
English | 中文
Pre-composed plugin bundles a thin leaf cordis.yml loads instead of assembling the spine and a front door by hand. These are demo / reference packages — the -demo npm suffix marks each one as non-product surface, readable straight off the package name. The runnable leaves under the repo-root examples/ and the Python SDK runtime are the consumers; each is just its swappable backends plus one bundle entry.
| Package | npm name | Role |
|---|---|---|
agent-spine-demo/ |
@deepseek-ai/dsh-agent-spine-demo |
Reusable agent-spine bundle |
cli-demo/ |
@deepseek-ai/dsh-cli-demo |
Headless one-shot application bundle |
acp-demo/ |
@deepseek-ai/dsh-acp-demo |
ACP automation application bundle |
jsonrpc-demo/ |
@deepseek-ai/dsh-jsonrpc-demo |
External-config JSON-RPC runtime |
agent-spine-demo is the shared bundle; cli-demo and acp-demo add their front doors, while jsonrpc-demo boots a deployment-owned plugin tree.
These packages are not product API. Product seams and front doors remain in their owning groups; demo bundles select concrete compositions.
Do not confuse this group with the repo-root examples/: that directory holds the runnable cordis.yml leaves; this group holds the bundles those leaves load.