Files
deepseek-harness/packages/examples/README.md
T
Tianyi Cui 864b7bfd65 Merge remote-tracking branch 'origin/master' into feat/tui-package
# Conflicts:
#	docs/architecture.md
#	docs/config-catalog.md
#	docs/cordis-catalog/events.md
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	examples/coding-agent/cordis.yml
#	examples/echo-agent/cordis.yml
#	knip.json
#	packages/core/agent-loop/README.md
#	packages/core/agent-loop/tests/config-session-id.spec.ts
#	packages/examples/README.md
#	packages/examples/stdio-demo/README.md
#	packages/examples/stdio-demo/tests/stdio-agent.spec.ts
2026-07-18 21:20:47 +08:00

2.5 KiB

examples/ — ready-to-run demo bundles

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 The executor-less/UI-less agent spine as one bundle plugin (timer + llm + sessions + system-prompt + tools + skills + agents + invariants + tool-bash + workspace-context + tool-skill + agent-loop)
stdio-demo/ @deepseek-ai/dsh-stdio-demo Terminal chat app: the spine + JSONL persistence + TTY-selected dsh-tui/dsh-stdio front door + a pre-created main agent, with a boot bin
acp-demo/ @deepseek-ai/dsh-acp-demo ACP server app: the spine + JSONL persistence + the acp bridge (no stdout logger), with a boot bin
jsonrpc-demo/ @deepseek-ai/dsh-jsonrpc-demo Bin-only runtime that boots an external cordis.yml for the stdio JSON-RPC SDK client

agent-spine-demo is the shared bundle; stdio-demo and acp-demo compose it with terminal and ACP front-door clusters and own their boot bins. jsonrpc-demo mounts no composition of its own — it boots whatever tree the deployment's cordis.yml names, and is what the Python SDK runtime launches.

These are not product API. The spine pieces they bundle live in core/, the bridges/channels/boot-glue in ui/, and the swappable backends (LLM adapter, bash executor) in their capability groups; a demo bundle just picks one concrete composition of them. Swap or fork one freely.

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.

The jsonrpc bin/exe names are legacy

jsonrpc-demo renamed like its siblings, but its bin is still dsh-jsonrpc-agent and the single-file executable is still dsh-jsonrpc-agent-pkg (referenced across the Python distribution). Those names are the SDK's runtime-startup surface; they are reconciled when the SDK unifies that startup flow, not by this move.