The native adapter's route was named deepseek, colliding with pi-ai's catalog provider of the same name, so the two DeepSeek paths could never be mounted side by side. The web settings page needs both configurable at once. Compositions, fixtures, goldens, scaffolding defaults, and docs all move together (pre-release, no shim); TUI/session-query-spill/ missing-credential goldens re-recorded through their keyless refresh modes because provider-name length shifts box padding and spill truncation points.
133 lines
4.0 KiB
YAML
133 lines
4.0 KiB
YAML
# 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-local'
|
|
|
|
# Credential store: the live process environment over `$DSH_HOME/.env`
|
|
# (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 (wire-only defaults; they never enter the request header).
|
|
- 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 app bundle pre-creates one fresh `main` agent per invocation.
|
|
- id: cli-agent
|
|
name: '@deepseek-ai/dsh-cli-demo'
|
|
config:
|
|
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
|
|
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'
|