# Stdio agent with the network-free `mock-echo` adapter and example-local `echo` # tool. The app bundle supplies the spine; this leaf selects backends, HMR, and app config. # No API key: the `mock-echo` adapter never touches the network. # Hot-module reload for the dev/demo loop (a leaf entry, not baked into # dsh-stdio-demo — it needs `node --expose-internals`, which `demo:echo` passes). - id: hmr name: '@cordisjs/plugin-hmr' config: root: ['.'] # Example-local model and tool plugins resolve relative to this file. - id: mock-llm name: './src/mock-llm.ts' - id: echo-tool name: './src/echo-tool.ts' # Local bash executor: agent-spine-demo ships the `tool-bash` consumer schema, so the # leaf provides the executor it runs on (the echo demo doesn't drive bash, but # the tool is part of the shared spine). - id: bash name: '@deepseek-ai/dsh-bash-local' # Local filesystem provider for agent-spine-demo's workspace-context loader. This # does not expose model-facing read/write/edit tools in the echo demo. - id: fs-local name: '@deepseek-ai/dsh-fs-local' config: cwd: !!js process.cwd() # The app pre-creates `main` on the mock model and supplies persistence plus # TTY-selected `dsh-tui`/`dsh-stdio` front doors; readline mode also owns logging. - id: stdio-agent name: '@deepseek-ai/dsh-stdio-demo' config: provider: mock model: mock-echo persona: 'You are echo-agent, a demo agent.' welcome: 'echo-agent ready. Type a message ("echo " triggers the tool).' persistenceRoot: './.sessions' workspaceContext: maxBytes: 65536