85 lines
3.2 KiB
YAML
85 lines
3.2 KiB
YAML
|
|
# The code-agent plugin tree: the Code Mode demo. The same spine as
|
||
|
|
# examples/coding-agent — the DeepSeek adapter, local bash, filesystem and
|
||
|
|
# todo tool stacks over the stdio chat app — with TWO differences that turn
|
||
|
|
# it into Cloudflare-style Code Mode:
|
||
|
|
#
|
||
|
|
# 1. `code-runtime` loads the worker-thread code-execution backend
|
||
|
|
# (`ctx.codeRuntime`): one fresh Node worker per run, TypeScript in.
|
||
|
|
# 2. `stdio-agent` sets `tools: { mode: code }`, so the model is offered
|
||
|
|
# exactly ONE wire tool — `run_code` — plus a generated TypeScript SDK
|
||
|
|
# prompt section declaring bash/read/write/edit/todo_write; the model
|
||
|
|
# composes them by WRITING A PROGRAM, and only what it prints or
|
||
|
|
# returns re-enters its context.
|
||
|
|
#
|
||
|
|
# Requires DEEPSEEK_API_KEY (and optionally DEEPSEEK_BASE_URL) in the
|
||
|
|
# environment — the dsh-stdio-agent bin loads the gitignored repo-root .env
|
||
|
|
# first. cordis.yml reads them via the `!!js` tag.
|
||
|
|
|
||
|
|
# Hot-module reload for the dev/demo loop (needs `node --expose-internals`).
|
||
|
|
- id: hmr
|
||
|
|
name: '@cordisjs/plugin-hmr'
|
||
|
|
config:
|
||
|
|
root: ['.']
|
||
|
|
|
||
|
|
# The DeepSeek adapter.
|
||
|
|
- id: llm-deepseek
|
||
|
|
name: '@deepseek-ai/dsh-llm-deepseek'
|
||
|
|
config:
|
||
|
|
apiKey: !!js process.env.DEEPSEEK_API_KEY
|
||
|
|
baseURL: !!js process.env.DEEPSEEK_BASE_URL
|
||
|
|
models:
|
||
|
|
- deepseek-v4-pro
|
||
|
|
- deepseek-v4-flash
|
||
|
|
|
||
|
|
# Local bash executor for the spine's `bash` tool schemas.
|
||
|
|
- id: bash
|
||
|
|
name: '@deepseek-ai/dsh-bash-local'
|
||
|
|
config:
|
||
|
|
timeoutMs: 60000
|
||
|
|
|
||
|
|
# The code-execution backend: `run_code` programs execute here, in one fresh
|
||
|
|
# worker thread per run with an empty environment, port-bridged tool
|
||
|
|
# bindings, and busy-time/wall-clock/heap caps (all overridable here).
|
||
|
|
- id: code-runtime
|
||
|
|
name: '@deepseek-ai/dsh-code-runtime-worker'
|
||
|
|
|
||
|
|
# The stdio chat app with the registry flipped to Code Mode: the wire tool
|
||
|
|
# list collapses to [run_code] and the `tools:sdk` prompt section carries the
|
||
|
|
# generated TypeScript declarations for every other registered tool.
|
||
|
|
- id: stdio-agent
|
||
|
|
name: '@deepseek-ai/dsh-stdio-agent'
|
||
|
|
config:
|
||
|
|
model: deepseek-v4-flash
|
||
|
|
tools:
|
||
|
|
mode: code
|
||
|
|
# Set RESUME_SESSION_ID to continue a prior persisted session (the ids
|
||
|
|
# live under ./.sessions); unset starts a fresh session each run.
|
||
|
|
resumeSessionId: !!js process.env.RESUME_SESSION_ID
|
||
|
|
persistenceRoot: './.sessions'
|
||
|
|
welcome: 'code-mode agent ready. Give it a multi-tool task.'
|
||
|
|
persona: |
|
||
|
|
You are code-agent, a coding assistant powered by the {{model}} model.
|
||
|
|
|
||
|
|
You work by writing TypeScript programs for run_code: batch related
|
||
|
|
tool work into one program, loop and branch where it helps, and print
|
||
|
|
or return ONLY the findings that matter.
|
||
|
|
|
||
|
|
# The model-facing todo_write tool: whole-list task tracking written to the
|
||
|
|
# session log (todo/write), rendered as a stdio checklist.
|
||
|
|
- id: tool-todo
|
||
|
|
name: '@deepseek-ai/dsh-tool-todo'
|
||
|
|
|
||
|
|
# Filesystem capability stack: local provider, read-before-write/edit policy
|
||
|
|
# gate, then the model-facing read/write/edit tools — all reachable from a
|
||
|
|
# run_code program as `tools.read(...)` / `tools.write(...)` / `tools.edit(...)`.
|
||
|
|
- 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'
|