# One-shot coding agent with format-pure stdout. The app bin loads the # gitignored root `.env` into the process environment; entry configs here are # the composition base, while user-plane values resolve per request through # the two providers below. # User-settings document (`$DSH_HOME/settings.yaml`, hot-reloaded): a # `llm-deepseek:` section there overrides the adapter entry below without a # restart. - id: settings name: '@deepseek-ai/dsh-settings-file' # Credential store: the live process environment over `$DSH_HOME/.credentials.yaml` # (owner-only file, hot-reloaded). The adapter resolves `DEEPSEEK_API_KEY` # through it at each request, so no key is inlined in this file. - id: credentials name: '@deepseek-ai/dsh-credentials-local' # The DeepSeek adapter. Swap to '@deepseek-ai/dsh-llm-pi-ai' for the pi-ai-backed # twin (a `providers` dict keyed by route; `reasoning: high` replaces # thinking/reasoningEffort). Shipped default: full thinking at max effort on # every request. Exact-model resolution materializes request defaults before # the request header is logged. - id: llm-deepseek name: '@deepseek-ai/dsh-llm-deepseek' config: thinking: enabled reasoningEffort: max models: - id: deepseek-v4-pro contextWindow: 128000 - id: deepseek-v4-flash contextWindow: 128000 # Managed child-process groups for the bash executor (spawn/kill/output plumbing). - id: subprocess name: '@deepseek-ai/dsh-subprocess-local' - id: bash name: '@deepseek-ai/dsh-bash-local' config: timeoutMs: 60000 # The example composition pre-creates one fresh `main` agent for its test driver. - id: agent-spine name: '@deepseek-ai/dsh-agent-spine-demo' config: agents: - id: main provider: deepseek-official # Stays on flash: the goal/ralph replay corpora were recorded on it, and # their nested-include overlays cannot re-pin the app config (a config # patch cannot target an entry behind a nested include). model: deepseek-v4-flash cwd: !!js process.cwd() workspaceContext: maxBytes: 65536 persona: | You are headless-agent, a coding assistant powered by the {{model}} model. Verify your work by running the code or tests. Keep answers brief and factual. - id: persistence name: '@deepseek-ai/dsh-session-persistence-jsonl' config: root: './.sessions' compression: !!js "process.env.DSH_SNAPSHOT === undefined ? 'zstd' : 'none'" - id: checkpoint-policy name: '@deepseek-ai/dsh-session-checkpoint-policy' # Summarize an older range when derived history approaches the context window. - id: token-meter name: '@deepseek-ai/dsh-token-meter' - id: compaction-basic name: '@deepseek-ai/dsh-compaction-basic' config: thresholdRatio: 0.8 retainRatio: 0.16 maxTokens: 8192 compactionRetries: 1 # Projection registry: durable subagent identity (mode/label) folds through # its registered units; subagent catalog reads fail loud without the capability. - id: session-projection name: '@deepseek-ai/dsh-session-projection' # Expose fresh-child `spawn` and completed-prefix `fork` through independent # in-process backends. - id: subagent name: '@deepseek-ai/dsh-subagent' - id: subagent-spawn-in-process name: '@deepseek-ai/dsh-subagent-spawn-in-process' config: providerName: spawn - id: subagent-fork-in-process name: '@deepseek-ai/dsh-subagent-fork-in-process' config: providerName: fork # Continuable background children are selected per delegation tool. The # separately loaded control registers global `send_message`; `report` is # installed only in continuable child scopes. - id: tool-subagent-control name: '@deepseek-ai/dsh-tool-subagent-control' - id: tool-subagent-report name: '@deepseek-ai/dsh-tool-subagent-report' - id: tool-subagent name: '@deepseek-ai/dsh-tool-subagent' config: provider: spawn toolName: subagent backgroundMode: continuable maxDepth: 1 # Fork stays one-shot because a continuable child's `report` tool and prompt # section precede the inherited history a fork reuses; `run_in_background` is off # because this example mounts no task service. See .agents/notes/implemented/architecture/2026-08-10-fork-children-stay-one-shot.md. - id: tool-subagent-fork name: '@deepseek-ai/dsh-tool-subagent' config: provider: fork toolName: subagent_fork backgroundMode: one-shot enableRunInBackground: false maxDepth: 1 # The worker-thread workflow engine fans a model-written JavaScript script's # `agent()` calls out through the spawn backend. - id: workflow-worker-thread name: '@deepseek-ai/dsh-workflow-worker-thread' config: provider: spawn - id: tool-workflow name: '@deepseek-ai/dsh-tool-workflow' # A separate fixed consumer demonstrates fresh-agent Ralph iteration without # changing the workflow tool or same-session goal behavior. - id: tool-ralph name: '@deepseek-ai/dsh-tool-ralph' # `todo_write` replaces the logged whole list. - id: tool-todo name: '@deepseek-ai/dsh-tool-todo' config: allowParallelInProgress: true # Policy loads before the model-facing filesystem tools so writes and edits # require an observed file. Relative paths resolve from the process cwd. - id: fs-local name: '@deepseek-ai/dsh-fs-local' config: cwd: !!js process.cwd() - id: fs-observation-policy name: '@deepseek-ai/dsh-fs-observation-policy' - id: tool-fs name: '@deepseek-ai/dsh-tool-fs'