# One-shot coding agent with format-pure stdout. The app bin loads the # gitignored root `.env`; this file reads `DEEPSEEK_API_KEY` and optional # `DEEPSEEK_BASE_URL` through `!!js`. # The DeepSeek adapter. Swap to '@deepseek-ai/dsh-llm-pi-ai' for the pi-ai-backed # twin (same config shape; `reasoning: high` replaces thinking/reasoningEffort). # Shipped default: full thinking at max effort on every request (wire-only # defaults; they never enter the request header). - id: llm-deepseek name: '@deepseek-ai/dsh-llm-deepseek' config: apiKey: !!js process.env.DEEPSEEK_API_KEY baseURL: !!js process.env.DEEPSEEK_BASE_URL thinking: enabled reasoningEffort: max models: - id: deepseek-v4-pro contextWindow: 128000 - id: deepseek-v4-flash contextWindow: 128000 - id: bash name: '@deepseek-ai/dsh-bash-local' config: timeoutMs: 60000 # The app bundle pre-creates one fresh `main` agent per invocation. - id: cli-agent name: '@deepseek-ai/dsh-cli-demo' config: provider: deepseek # 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 persistenceRoot: './.sessions' persistenceCompression: !!js "process.env.DSH_SNAPSHOT === undefined ? 'zstd' : 'none'" 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. # Summarize an older range when derived history approaches the context window. - id: token-meter name: '@deepseek-ai/dsh-token-meter' - id: compact-basic name: '@deepseek-ai/dsh-compact-basic' config: thresholdRatio: 0.8 retainRatio: 0.16 maxTokens: 8192 compactionRetries: 1 # Expose fresh-child `spawn` and completed-prefix `fork` through independent # in-process backends. - id: subagent name: '@deepseek-ai/dsh-subagent' - id: subagent-spawn name: '@deepseek-ai/dsh-subagent-spawn' config: providerName: spawn - id: subagent-fork name: '@deepseek-ai/dsh-subagent-fork' config: providerName: fork - id: tool-subagent name: '@deepseek-ai/dsh-tool-subagent' config: provider: spawn toolName: subagent maxDepth: 1 - id: tool-subagent-fork name: '@deepseek-ai/dsh-tool-subagent' config: provider: fork toolName: subagent_fork maxDepth: 1 # The worker-thread workflow engine fans a model-written JavaScript script's # `agent()` calls out through the spawn backend. - id: workflow-workerthread name: '@deepseek-ai/dsh-workflow-workerthread' 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' # 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-policy name: '@deepseek-ai/dsh-fs-policy' - id: tool-fs name: '@deepseek-ai/dsh-tool-fs'