Files
deepseek-harness/docs/module-graph.md
T
Tianyi Cui f256f3961d feat(system-prompt): prompt variables, persona-as-section, tool-guidance ownership
One principle: every fact in the assembled prompt has exactly one owner.

- dsh-system-prompt: merge-extensible AssembleContext on assemble();
  a variable(name, provider) registry; {{name}} interpolation in
  renderPrompt, strict (unknown/valueless/malformed references throw);
  duplicate section and variable names rejected; assembly carries
  resolved section text + variables through the assemble waterfall.
- dsh-agent declares AssembleContext.agent; dsh-agent-loop registers
  the agent:persona section (order 0 - identity renders before tool
  guidance) and the model/cwd variables, and drops its string join:
  renderPrompt(assembly) IS the full prompt.
- Tool guidance moves to its owners: descriptions carry per-tool
  semantics; sections only cross-call habits (tool:bash exit-code
  habit at order 105; read's not-shell nudge). todo/subagent need no
  section - their descriptions already carry the contract.
- SubagentProvider.inheritsParentContext (spawn/acp false, fork true);
  dsh-tool-subagent derives truthful per-provider wording and resolves
  the provider at load (backend must be listed first).
- Example personas shrink to identity + behavior with {{model}} (and
  {{cwd}} in the ACP tree); the welcome banner stops enumerating tools.

RFC: docs/rfc/implemented/architecture/2026-07-05-prompt-variables-and-tool-guidance-ownership.md
2026-07-05 01:54:46 +08:00

5.6 KiB

Module dependency graph

Inter-package dependencies among the @deepseek-ai/dsh-* harness packages, derived from each package's peerDependencies (the canonical runtime-dependency signal). An edge a --> b means package a depends on package b. Names have the @deepseek-ai/dsh- prefix stripped.

graph TD
  bash --> brand
  llm --> brand
  bash-local --> bash
  fs --> brand
  fs --> llm
  llm-deepseek --> llm
  llm-pi-ai --> llm
  session --> brand
  session --> llm
  system-prompt --> llm
  web --> llm
  agent --> brand
  agent --> llm
  agent --> session
  agent --> system-prompt
  compact --> llm
  compact --> session
  fs-local --> fs
  fs-policy --> fs
  hook-protocol --> bash
  hook-protocol --> session
  llm-replay --> llm
  llm-replay --> session
  session-persistence --> session
  web-fetch-local --> web
  web-search-deepseek --> web
  web-search-exa --> web
  web-search-perplexity --> web
  compact-basic --> agent
  compact-basic --> compact
  compact-basic --> llm
  compact-basic --> session
  invariants --> agent
  invariants --> llm
  invariants --> session
  session-persistence-jsonl --> session
  session-persistence-jsonl --> session-persistence
  session-persistence-sqlite --> session
  session-persistence-sqlite --> session-persistence
  tools --> agent
  tools --> llm
  tools --> system-prompt
  acp --> agent
  acp --> llm
  acp --> session
  acp --> session-persistence
  acp --> tools
  agent-loop --> agent
  agent-loop --> llm
  agent-loop --> session
  agent-loop --> session-persistence
  agent-loop --> system-prompt
  agent-loop --> tools
  hooks-codex --> agent
  hooks-codex --> hook-protocol
  hooks-codex --> llm
  hooks-codex --> session
  hooks-codex --> tools
  subagent --> agent
  subagent --> llm
  subagent --> tools
  tool-bash --> agent
  tool-bash --> bash
  tool-bash --> llm
  tool-bash --> system-prompt
  tool-bash --> tools
  tool-fs --> fs
  tool-fs --> llm
  tool-fs --> session
  tool-fs --> system-prompt
  tool-fs --> tools
  tool-todo --> agent
  tool-todo --> session
  tool-todo --> tools
  tool-web --> llm
  tool-web --> system-prompt
  tool-web --> tools
  tool-web --> web
  agent-core --> agent
  agent-core --> agent-loop
  agent-core --> invariants
  agent-core --> llm
  agent-core --> session
  agent-core --> system-prompt
  agent-core --> tool-bash
  agent-core --> tools
  hooks-claude --> agent
  hooks-claude --> hook-protocol
  hooks-claude --> llm
  hooks-claude --> session
  hooks-claude --> subagent
  hooks-claude --> tools
  subagent-acp --> agent
  subagent-acp --> llm
  subagent-acp --> subagent
  subagent-inprocess --> agent
  subagent-inprocess --> llm
  subagent-inprocess --> session
  subagent-inprocess --> subagent
  subagent-mock --> agent
  subagent-mock --> llm
  subagent-mock --> subagent
  tool-subagent --> agent
  tool-subagent --> llm
  tool-subagent --> subagent
  tool-subagent --> tools
  acp-agent --> acp
  acp-agent --> agent-core
  acp-agent --> app-boot
  acp-agent --> session-persistence-jsonl
  stdio-agent --> agent
  stdio-agent --> agent-core
  stdio-agent --> app-boot
  stdio-agent --> llm
  stdio-agent --> session
  stdio-agent --> session-persistence-jsonl
  subagent-fork --> agent
  subagent-fork --> session
  subagent-fork --> subagent
  subagent-fork --> subagent-inprocess
  subagent-spawn --> subagent
  subagent-spawn --> subagent-inprocess
Package Depends on
app-boot
brand
bash brand
llm brand
bash-local bash
fs brand, llm
llm-deepseek llm
llm-pi-ai llm
session brand, llm
system-prompt llm
web llm
agent brand, llm, session, system-prompt
compact llm, session
fs-local fs
fs-policy fs
hook-protocol bash, session
llm-replay llm, session
session-persistence session
web-fetch-local web
web-search-deepseek web
web-search-exa web
web-search-perplexity web
compact-basic agent, compact, llm, session
invariants agent, llm, session
session-persistence-jsonl session, session-persistence
session-persistence-sqlite session, session-persistence
tools agent, llm, system-prompt
acp agent, llm, session, session-persistence, tools
agent-loop agent, llm, session, session-persistence, system-prompt, tools
hooks-codex agent, hook-protocol, llm, session, tools
subagent agent, llm, tools
tool-bash agent, bash, llm, system-prompt, tools
tool-fs fs, llm, session, system-prompt, tools
tool-todo agent, session, tools
tool-web llm, system-prompt, tools, web
agent-core agent, agent-loop, invariants, llm, session, system-prompt, tool-bash, tools
hooks-claude agent, hook-protocol, llm, session, subagent, tools
subagent-acp agent, llm, subagent
subagent-inprocess agent, llm, session, subagent
subagent-mock agent, llm, subagent
tool-subagent agent, llm, subagent, tools
acp-agent acp, agent-core, app-boot, session-persistence-jsonl
stdio-agent agent, agent-core, app-boot, llm, session, session-persistence-jsonl
subagent-fork agent, session, subagent, subagent-inprocess
subagent-spawn subagent, subagent-inprocess