Files
deepseek-harness/docs/module-graph.md
Yichen Jiang 306b79fa2c Merge remote-tracking branch 'origin/master' into codex/rfc-subagent-background-tasks
# Conflicts:
#	docs/config-catalog.md
#	docs/module-graph.md
#	examples/coding-agent/README.md
#	examples/coding-agent/cordis.yml
#	packages/README.md
#	packages/examples/acp-demo/README.md
#	packages/examples/agent-spine-demo/README.md
#	packages/examples/agent-spine-demo/package.json
#	packages/examples/agent-spine-demo/src/index.ts
#	packages/examples/stdio-demo/README.md
#	pnpm-lock.yaml
#	scripts/doc-budgets.manifest.json
#	scripts/verify-package-readme-model-experience.ts
2026-07-15 16:57:03 +08:00

26 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) and grouped by the packages/<group>/<pkg> hierarchy. An edge a --> b means package a depends on package b. Names have the @deepseek-ai/dsh- prefix stripped.

flowchart TD
  subgraph group_util["packages/util"]
    pkg_brand["brand"]
    pkg_timeout["timeout"]
  end
  subgraph group_llm["packages/llm"]
    pkg_llm["llm"]
    pkg_llm_deepseek["llm-deepseek"]
    pkg_llm_pi_ai["llm-pi-ai"]
  end
  subgraph group_core["packages/core"]
    pkg_agent["agent"]
    pkg_agent_loop["agent-loop"]
    pkg_scope["scope"]
    pkg_session["session"]
    pkg_system_prompt["system-prompt"]
    pkg_tools["tools"]
  end
  subgraph group_bash["packages/bash"]
    pkg_bash["bash"]
    pkg_bash_local["bash-local"]
    pkg_bash_sandbox["bash-sandbox"]
    pkg_tool_bash["tool-bash"]
  end
  subgraph group_fs["packages/fs"]
    pkg_fs["fs"]
    pkg_fs_local["fs-local"]
    pkg_fs_policy["fs-policy"]
    pkg_tool_fs["tool-fs"]
  end
  subgraph group_skill["packages/skill"]
    pkg_skill["skill"]
    pkg_skill_local["skill-local"]
    pkg_tool_skill["tool-skill"]
  end
  subgraph group_compact["packages/compact"]
    pkg_compact["compact"]
    pkg_compact_basic["compact-basic"]
  end
  subgraph group_subagent["packages/subagent"]
    pkg_subagent["subagent"]
    pkg_subagent_acp["subagent-acp"]
    pkg_subagent_fork["subagent-fork"]
    pkg_subagent_inprocess["subagent-inprocess"]
    pkg_subagent_spawn["subagent-spawn"]
    pkg_subagent_subprocess["subagent-subprocess"]
    pkg_tool_subagent["tool-subagent"]
  end
  subgraph group_web["packages/web"]
    pkg_tool_web["tool-web"]
    pkg_web["web"]
    pkg_web_fetch_local["web-fetch-local"]
    pkg_web_search_deepseek["web-search-deepseek"]
    pkg_web_search_exa["web-search-exa"]
    pkg_web_search_perplexity["web-search-perplexity"]
  end
  subgraph group_timeout["packages/timeout"]
    pkg_timeout_policy["timeout-policy"]
  end
  subgraph group_todo["packages/todo"]
    pkg_tool_todo["tool-todo"]
  end
  subgraph group_cordis["packages/cordis"]
    pkg_tool_cordis["tool-cordis"]
  end
  subgraph group_hooks["packages/hooks"]
    pkg_hook_protocol["hook-protocol"]
    pkg_hooks_claude["hooks-claude"]
    pkg_hooks_codex["hooks-codex"]
  end
  subgraph group_session_persistence["packages/session-persistence"]
    pkg_session_persistence["session-persistence"]
    pkg_session_persistence_jsonl["session-persistence-jsonl"]
    pkg_session_persistence_sqlite["session-persistence-sqlite"]
  end
  subgraph group_session_query["packages/session-query"]
    pkg_session_query["session-query"]
  end
  subgraph group_support["packages/support"]
    pkg_acp_snapshot["acp-snapshot"]
    pkg_invariants["invariants"]
    pkg_llm_replay["llm-replay"]
    pkg_loader_smoke["loader-smoke"]
    pkg_subagent_mock["subagent-mock"]
  end
  subgraph group_ui["packages/ui"]
    pkg_acp["acp"]
    pkg_app_boot["app-boot"]
    pkg_jsonrpc["jsonrpc"]
    pkg_permission["permission"]
    pkg_stdio["stdio"]
    pkg_tool_ask_user["tool-ask-user"]
    pkg_user_approval["user-approval"]
    pkg_user_interaction["user-interaction"]
  end
  subgraph group_code_runtime["packages/code-runtime"]
    pkg_code_runtime["code-runtime"]
    pkg_code_runtime_worker["code-runtime-worker"]
  end
  subgraph group_context["packages/context"]
    pkg_time_context["time-context"]
  end
  subgraph group_examples["packages/examples"]
    pkg_acp_demo["acp-demo"]
    pkg_agent_spine_demo["agent-spine-demo"]
    pkg_jsonrpc_demo["jsonrpc-demo"]
    pkg_stdio_demo["stdio-demo"]
  end
  subgraph group_guard["packages/guard"]
    pkg_repeat_tool_guard["repeat-tool-guard"]
  end
  subgraph group_mcp["packages/mcp"]
    pkg_mcp_client["mcp-client"]
  end
  subgraph group_sandbox["packages/sandbox"]
    pkg_sandbox["sandbox"]
    pkg_sandbox_local["sandbox-local"]
  end
  subgraph group_tasks["packages/tasks"]
    pkg_tasks["tasks"]
    pkg_tool_tasks["tool-tasks"]
  end
  subgraph group_workflow["packages/workflow"]
    pkg_tool_workflow["tool-workflow"]
    pkg_workflow["workflow"]
    pkg_workflow_workerthread["workflow-workerthread"]
  end
  pkg_llm --> pkg_brand
  pkg_code_runtime_worker --> pkg_code_runtime
  pkg_llm_deepseek --> pkg_llm
  pkg_llm_pi_ai --> pkg_llm
  pkg_session --> pkg_brand
  pkg_session --> pkg_llm
  pkg_session --> pkg_scope
  pkg_system_prompt --> pkg_llm
  pkg_system_prompt --> pkg_scope
  pkg_fs --> pkg_brand
  pkg_fs --> pkg_llm
  pkg_web --> pkg_llm
  pkg_sandbox --> pkg_llm
  pkg_agent --> pkg_brand
  pkg_agent --> pkg_llm
  pkg_agent --> pkg_scope
  pkg_agent --> pkg_session
  pkg_agent --> pkg_system_prompt
  pkg_bash --> pkg_sandbox
  pkg_bash --> pkg_session
  pkg_fs_local --> pkg_fs
  pkg_fs_policy --> pkg_fs
  pkg_skill_local --> pkg_fs
  pkg_skill_local --> pkg_skill
  pkg_compact --> pkg_llm
  pkg_compact --> pkg_session
  pkg_web_fetch_local --> pkg_timeout
  pkg_web_fetch_local --> pkg_web
  pkg_web_search_deepseek --> pkg_web
  pkg_web_search_exa --> pkg_web
  pkg_web_search_perplexity --> pkg_web
  pkg_session_persistence --> pkg_session
  pkg_llm_replay --> pkg_llm
  pkg_llm_replay --> pkg_session
  pkg_sandbox_local --> pkg_llm
  pkg_sandbox_local --> pkg_sandbox
  pkg_bash_local --> pkg_bash
  pkg_bash_local --> pkg_timeout
  pkg_compact_basic --> pkg_agent
  pkg_compact_basic --> pkg_compact
  pkg_compact_basic --> pkg_llm
  pkg_compact_basic --> pkg_session
  pkg_hook_protocol --> pkg_bash
  pkg_hook_protocol --> pkg_session
  pkg_session_persistence_jsonl --> pkg_session
  pkg_session_persistence_jsonl --> pkg_session_persistence
  pkg_session_persistence_sqlite --> pkg_session
  pkg_session_persistence_sqlite --> pkg_session_persistence
  pkg_session_query --> pkg_llm
  pkg_session_query --> pkg_session
  pkg_session_query --> pkg_session_persistence
  pkg_invariants --> pkg_agent
  pkg_invariants --> pkg_llm
  pkg_invariants --> pkg_scope
  pkg_invariants --> pkg_session
  pkg_user_approval --> pkg_agent
  pkg_user_approval --> pkg_brand
  pkg_user_approval --> pkg_llm
  pkg_user_approval --> pkg_scope
  pkg_user_approval --> pkg_session
  pkg_user_approval --> pkg_system_prompt
  pkg_user_interaction --> pkg_agent
  pkg_user_interaction --> pkg_llm
  pkg_time_context --> pkg_agent
  pkg_time_context --> pkg_system_prompt
  pkg_tasks --> pkg_agent
  pkg_tasks --> pkg_brand
  pkg_tasks --> pkg_session
  pkg_tasks --> pkg_timeout
  pkg_workflow --> pkg_agent
  pkg_workflow --> pkg_brand
  pkg_workflow --> pkg_llm
  pkg_tools --> pkg_agent
  pkg_tools --> pkg_code_runtime
  pkg_tools --> pkg_llm
  pkg_tools --> pkg_scope
  pkg_tools --> pkg_session
  pkg_tools --> pkg_system_prompt
  pkg_tools --> pkg_user_approval
  pkg_bash_sandbox --> pkg_bash
  pkg_bash_sandbox --> pkg_bash_local
  pkg_bash_sandbox --> pkg_sandbox
  pkg_permission --> pkg_bash
  pkg_permission --> pkg_sandbox
  pkg_permission --> pkg_session
  pkg_permission --> pkg_user_approval
  pkg_stdio --> pkg_agent
  pkg_stdio --> pkg_llm
  pkg_stdio --> pkg_session
  pkg_stdio --> pkg_user_interaction
  pkg_agent_loop --> pkg_agent
  pkg_agent_loop --> pkg_llm
  pkg_agent_loop --> pkg_scope
  pkg_agent_loop --> pkg_session
  pkg_agent_loop --> pkg_session_persistence
  pkg_agent_loop --> pkg_system_prompt
  pkg_agent_loop --> pkg_tools
  pkg_tool_bash --> pkg_agent
  pkg_tool_bash --> pkg_bash
  pkg_tool_bash --> pkg_llm
  pkg_tool_bash --> pkg_sandbox
  pkg_tool_bash --> pkg_system_prompt
  pkg_tool_bash --> pkg_tasks
  pkg_tool_bash --> pkg_tools
  pkg_tool_bash --> pkg_user_approval
  pkg_tool_fs --> pkg_fs
  pkg_tool_fs --> pkg_llm
  pkg_tool_fs --> pkg_session
  pkg_tool_fs --> pkg_system_prompt
  pkg_tool_fs --> pkg_tools
  pkg_tool_skill --> pkg_agent
  pkg_tool_skill --> pkg_llm
  pkg_tool_skill --> pkg_skill
  pkg_tool_skill --> pkg_tools
  pkg_subagent --> pkg_agent
  pkg_subagent --> pkg_llm
  pkg_subagent --> pkg_scope
  pkg_subagent --> pkg_tools
  pkg_tool_web --> pkg_llm
  pkg_tool_web --> pkg_system_prompt
  pkg_tool_web --> pkg_tools
  pkg_tool_web --> pkg_web
  pkg_timeout_policy --> pkg_llm
  pkg_timeout_policy --> pkg_timeout
  pkg_timeout_policy --> pkg_tools
  pkg_tool_todo --> pkg_agent
  pkg_tool_todo --> pkg_session
  pkg_tool_todo --> pkg_tools
  pkg_tool_cordis --> pkg_scope
  pkg_tool_cordis --> pkg_tools
  pkg_hooks_codex --> pkg_agent
  pkg_hooks_codex --> pkg_hook_protocol
  pkg_hooks_codex --> pkg_llm
  pkg_hooks_codex --> pkg_session
  pkg_hooks_codex --> pkg_tools
  pkg_acp --> pkg_agent
  pkg_acp --> pkg_bash
  pkg_acp --> pkg_llm
  pkg_acp --> pkg_permission
  pkg_acp --> pkg_sandbox
  pkg_acp --> pkg_session
  pkg_acp --> pkg_session_persistence
  pkg_acp --> pkg_tools
  pkg_acp --> pkg_user_approval
  pkg_acp --> pkg_user_interaction
  pkg_tool_ask_user --> pkg_agent
  pkg_tool_ask_user --> pkg_tools
  pkg_tool_ask_user --> pkg_user_interaction
  pkg_repeat_tool_guard --> pkg_agent
  pkg_repeat_tool_guard --> pkg_tools
  pkg_mcp_client --> pkg_llm
  pkg_mcp_client --> pkg_tools
  pkg_tool_tasks --> pkg_agent
  pkg_tool_tasks --> pkg_system_prompt
  pkg_tool_tasks --> pkg_tasks
  pkg_tool_tasks --> pkg_tools
  pkg_tool_workflow --> pkg_agent
  pkg_tool_workflow --> pkg_llm
  pkg_tool_workflow --> pkg_system_prompt
  pkg_tool_workflow --> pkg_tools
  pkg_tool_workflow --> pkg_workflow
  pkg_subagent_acp --> pkg_agent
  pkg_subagent_acp --> pkg_llm
  pkg_subagent_acp --> pkg_subagent
  pkg_subagent_acp --> pkg_subagent_subprocess
  pkg_subagent_inprocess --> pkg_agent
  pkg_subagent_inprocess --> pkg_llm
  pkg_subagent_inprocess --> pkg_session
  pkg_subagent_inprocess --> pkg_subagent
  pkg_subagent_inprocess --> pkg_system_prompt
  pkg_subagent_inprocess --> pkg_tools
  pkg_tool_subagent --> pkg_agent
  pkg_tool_subagent --> pkg_llm
  pkg_tool_subagent --> pkg_subagent
  pkg_tool_subagent --> pkg_tasks
  pkg_tool_subagent --> pkg_tools
  pkg_hooks_claude --> pkg_agent
  pkg_hooks_claude --> pkg_hook_protocol
  pkg_hooks_claude --> pkg_llm
  pkg_hooks_claude --> pkg_session
  pkg_hooks_claude --> pkg_subagent
  pkg_hooks_claude --> pkg_tools
  pkg_subagent_mock --> pkg_agent
  pkg_subagent_mock --> pkg_llm
  pkg_subagent_mock --> pkg_subagent
  pkg_jsonrpc --> pkg_agent
  pkg_jsonrpc --> pkg_llm
  pkg_jsonrpc --> pkg_llm_deepseek
  pkg_jsonrpc --> pkg_session
  pkg_jsonrpc --> pkg_subagent
  pkg_agent_spine_demo --> pkg_agent
  pkg_agent_spine_demo --> pkg_agent_loop
  pkg_agent_spine_demo --> pkg_invariants
  pkg_agent_spine_demo --> pkg_llm
  pkg_agent_spine_demo --> pkg_session
  pkg_agent_spine_demo --> pkg_skill
  pkg_agent_spine_demo --> pkg_skill_local
  pkg_agent_spine_demo --> pkg_system_prompt
  pkg_agent_spine_demo --> pkg_tasks
  pkg_agent_spine_demo --> pkg_tool_bash
  pkg_agent_spine_demo --> pkg_tool_skill
  pkg_agent_spine_demo --> pkg_tool_tasks
  pkg_agent_spine_demo --> pkg_tools
  pkg_workflow_workerthread --> pkg_agent
  pkg_workflow_workerthread --> pkg_brand
  pkg_workflow_workerthread --> pkg_llm
  pkg_workflow_workerthread --> pkg_session
  pkg_workflow_workerthread --> pkg_subagent
  pkg_workflow_workerthread --> pkg_tools
  pkg_workflow_workerthread --> pkg_workflow
  pkg_subagent_fork --> pkg_agent
  pkg_subagent_fork --> pkg_session
  pkg_subagent_fork --> pkg_subagent
  pkg_subagent_fork --> pkg_subagent_inprocess
  pkg_subagent_spawn --> pkg_subagent
  pkg_subagent_spawn --> pkg_subagent_inprocess
  pkg_acp_demo --> pkg_acp
  pkg_acp_demo --> pkg_agent_spine_demo
  pkg_acp_demo --> pkg_app_boot
  pkg_acp_demo --> pkg_session_persistence_jsonl
  pkg_acp_demo --> pkg_tools
  pkg_acp_demo --> pkg_user_interaction
  pkg_stdio_demo --> pkg_agent
  pkg_stdio_demo --> pkg_agent_spine_demo
  pkg_stdio_demo --> pkg_app_boot
  pkg_stdio_demo --> pkg_llm
  pkg_stdio_demo --> pkg_session
  pkg_stdio_demo --> pkg_session_persistence_jsonl
  pkg_stdio_demo --> pkg_stdio
  pkg_stdio_demo --> pkg_tool_ask_user
  pkg_stdio_demo --> pkg_tools
  pkg_stdio_demo --> pkg_user_interaction
Package Group Depends on
brand util
timeout util
scope core
skill skill
subagent-subprocess subagent
acp-snapshot support
loader-smoke support
app-boot ui
code-runtime code-runtime
jsonrpc-demo examples
llm llm brand
code-runtime-worker code-runtime code-runtime
llm-deepseek llm llm
llm-pi-ai llm llm
session core brand, llm, scope
system-prompt core llm, scope
fs fs brand, llm
web web llm
sandbox sandbox llm
agent core brand, llm, scope, session, system-prompt
bash bash sandbox, session
fs-local fs fs
fs-policy fs fs
skill-local skill fs, skill
compact compact llm, session
web-fetch-local web timeout, web
web-search-deepseek web web
web-search-exa web web
web-search-perplexity web web
session-persistence session-persistence session
llm-replay support llm, session
sandbox-local sandbox llm, sandbox
bash-local bash bash, timeout
compact-basic compact agent, compact, llm, session
hook-protocol hooks bash, session
session-persistence-jsonl session-persistence session, session-persistence
session-persistence-sqlite session-persistence session, session-persistence
session-query session-query llm, session, session-persistence
invariants support agent, llm, scope, session
user-approval ui agent, brand, llm, scope, session, system-prompt
user-interaction ui agent, llm
time-context context agent, system-prompt
tasks tasks agent, brand, session, timeout
workflow workflow agent, brand, llm
tools core agent, code-runtime, llm, scope, session, system-prompt, user-approval
bash-sandbox bash bash, bash-local, sandbox
permission ui bash, sandbox, session, user-approval
stdio ui agent, llm, session, user-interaction
agent-loop core agent, llm, scope, session, session-persistence, system-prompt, tools
tool-bash bash agent, bash, llm, sandbox, system-prompt, tasks, tools, user-approval
tool-fs fs fs, llm, session, system-prompt, tools
tool-skill skill agent, llm, skill, tools
subagent subagent agent, llm, scope, tools
tool-web web llm, system-prompt, tools, web
timeout-policy timeout llm, timeout, tools
tool-todo todo agent, session, tools
tool-cordis cordis scope, tools
hooks-codex hooks agent, hook-protocol, llm, session, tools
acp ui agent, bash, llm, permission, sandbox, session, session-persistence, tools, user-approval, user-interaction
tool-ask-user ui agent, tools, user-interaction
repeat-tool-guard guard agent, tools
mcp-client mcp llm, tools
tool-tasks tasks agent, system-prompt, tasks, tools
tool-workflow workflow agent, llm, system-prompt, tools, workflow
subagent-acp subagent agent, llm, subagent, subagent-subprocess
subagent-inprocess subagent agent, llm, session, subagent, system-prompt, tools
tool-subagent subagent agent, llm, subagent, tasks, tools
hooks-claude hooks agent, hook-protocol, llm, session, subagent, tools
subagent-mock support agent, llm, subagent
jsonrpc ui agent, llm, llm-deepseek, session, subagent
agent-spine-demo examples agent, agent-loop, invariants, llm, session, skill, skill-local, system-prompt, tasks, tool-bash, tool-skill, tool-tasks, tools
workflow-workerthread workflow agent, brand, llm, session, subagent, tools, workflow
subagent-fork subagent agent, session, subagent, subagent-inprocess
subagent-spawn subagent subagent, subagent-inprocess
acp-demo examples acp, agent-spine-demo, app-boot, session-persistence-jsonl, tools, user-interaction
stdio-demo examples agent, agent-spine-demo, app-boot, llm, session, session-persistence-jsonl, stdio, tool-ask-user, tools, user-interaction