Files
deepseek-harness/examples/coding-agent/composition.md
T
Dudu-0223 e94305d99e fix: address codex review round 1
Two functional gaps in the search tools change:

- Enforce rawOutputMaxBytes on UNTRUNCATED inline stdout too. The cap was
  only checked on the truncated->raw-spill path, so an executor retaining
  more inline than the search cap (or a deployment lowering the cap below
  the bash retention) could smuggle an over-cap parse through, contradicting
  the documented SEARCH_RAW_OUTPUT_OVERFLOW contract. Covered by a new
  over-cap-inline test.

- Load @deepseek-ai/dsh-timeout-policy in the coding-agent tree. The search
  tools declare timeoutMs but nothing in the demo enforced it, so the
  advertised 30s budget silently degraded to the bash executor's 60s
  backstop. The keyless smoke boots the amended tree.
2026-07-09 21:12:41 +08:00

4.0 KiB

Coding Agent App Composition

The coding REPL demo adds the real DeepSeek adapter, filesystem tools, todo_write, compaction, and both subagent transports on top of the stdio app package.

flowchart LR
  cfg["examples/coding-agent<br/>cordis.yml"]
  plugin_coding_hmr["hmr<br/>@cordisjs/plugin-hmr"]
  cfg --> plugin_coding_hmr
  plugin_coding_llm_deepseek["llm-deepseek<br/>@deepseek-ai/dsh-llm-deepseek"]
  cfg --> plugin_coding_llm_deepseek
  plugin_coding_bash["bash<br/>@deepseek-ai/dsh-bash-local"]
  cfg --> plugin_coding_bash
  plugin_coding_stdio_agent["stdio-agent<br/>@deepseek-ai/dsh-stdio-agent"]
  cfg --> plugin_coding_stdio_agent
  plugin_coding_stdio_agent --> bundle_agent_core["@deepseek-ai/dsh-agent-core"]
  plugin_coding_stdio_agent --> bundle_jsonl["@deepseek-ai/dsh-session-persistence-jsonl"]
  plugin_coding_stdio_agent --> frontdoor_stdio["readline UI<br/>console logger<br/>pre-created main agent"]
  bundle_agent_core --> spine_llm["ctx.llm"]
  bundle_agent_core --> spine_sessions["ctx.sessions"]
  bundle_agent_core --> spine_tools["ctx.tools + tool-bash"]
  bundle_agent_core --> spine_loop["ctx.agents + ctx.agentLoop"]
  plugin_coding_compact_basic["compact-basic<br/>@deepseek-ai/dsh-compact-basic"]
  cfg --> plugin_coding_compact_basic
  plugin_coding_subagent["subagent<br/>@deepseek-ai/dsh-subagent"]
  cfg --> plugin_coding_subagent
  plugin_coding_subagent_spawn["subagent-spawn<br/>@deepseek-ai/dsh-subagent-spawn"]
  cfg --> plugin_coding_subagent_spawn
  plugin_coding_subagent_fork["subagent-fork<br/>@deepseek-ai/dsh-subagent-fork"]
  cfg --> plugin_coding_subagent_fork
  plugin_coding_tool_subagent["tool-subagent<br/>@deepseek-ai/dsh-tool-subagent"]
  cfg --> plugin_coding_tool_subagent
  plugin_coding_tool_subagent_fork["tool-subagent-fork<br/>@deepseek-ai/dsh-tool-subagent"]
  cfg --> plugin_coding_tool_subagent_fork
  plugin_coding_tool_todo["tool-todo<br/>@deepseek-ai/dsh-tool-todo"]
  cfg --> plugin_coding_tool_todo
  plugin_coding_fs_local["fs-local<br/>@deepseek-ai/dsh-fs-local"]
  cfg --> plugin_coding_fs_local
  plugin_coding_fs_policy["fs-policy<br/>@deepseek-ai/dsh-fs-policy"]
  cfg --> plugin_coding_fs_policy
  plugin_coding_tool_fs["tool-fs<br/>@deepseek-ai/dsh-tool-fs"]
  cfg --> plugin_coding_tool_fs
  plugin_coding_tool_fs_search["tool-fs-search<br/>@deepseek-ai/dsh-tool-fs-search"]
  cfg --> plugin_coding_tool_fs_search
  plugin_coding_timeout_policy["timeout-policy<br/>@deepseek-ai/dsh-timeout-policy"]
  cfg --> plugin_coding_timeout_policy
  plugin_coding_spill_local["spill-local<br/>@deepseek-ai/dsh-spill-local"]
  cfg --> plugin_coding_spill_local
  plugin_coding_spill_policy["spill-policy<br/>@deepseek-ai/dsh-spill-policy"]
  cfg --> plugin_coding_spill_policy
Plugin id Package / module
hmr @cordisjs/plugin-hmr
llm-deepseek @deepseek-ai/dsh-llm-deepseek
bash @deepseek-ai/dsh-bash-local
stdio-agent @deepseek-ai/dsh-stdio-agent
compact-basic @deepseek-ai/dsh-compact-basic
subagent @deepseek-ai/dsh-subagent
subagent-spawn @deepseek-ai/dsh-subagent-spawn
subagent-fork @deepseek-ai/dsh-subagent-fork
tool-subagent @deepseek-ai/dsh-tool-subagent
tool-subagent-fork @deepseek-ai/dsh-tool-subagent
tool-todo @deepseek-ai/dsh-tool-todo
fs-local @deepseek-ai/dsh-fs-local
fs-policy @deepseek-ai/dsh-fs-policy
tool-fs @deepseek-ai/dsh-tool-fs
tool-fs-search @deepseek-ai/dsh-tool-fs-search
timeout-policy @deepseek-ai/dsh-timeout-policy
spill-local @deepseek-ai/dsh-spill-local
spill-policy @deepseek-ai/dsh-spill-policy

Source config: examples/coding-agent/cordis.yml.

Maintenance mode: hybrid: the leaf plugin list is parsed from its cordis.yml; app package expansion is curated from package source.