Files
deepseek-harness/docs/module-graph.md
Tianyi Cui 4a0941fb4b feat(ui): share the app bins' boot glue in @deepseek-ai/dsh-app-boot
The four near-twin helpers the two published bins carried — loadEnv,
installFailLoud, assertEntriesLoaded, boot — live once in
packages/ui/app-boot, parameterized by the bin's diagnostic prefix and
injectable at their side-effect seams (warn sink, process slice), so
every branch sits under the per-file 100% coverage gate: the unit suite
drives boot() in-process against the real Loader (relative-specifier
configs) through both the settled-tree path and the fiber-less-entry
rejection, and exercises the ENOENT/unloadable .env split, the
Error/non-Error/stackless fail-loud arms, and the disabled-entry
exclusion. resolveConfigPath (snapshot-aware) becomes the single path
resolver for both bins.

Each bin.ts is now a thin self-executing composition plus its
app-specific lifecycle (acp: replay env-skip + stdin-EOF dispose;
stdio: nothing extra), exports nothing, and stays coverage-excluded;
the built-bin smokes still prove both artifacts under plain node in the
node_modules-shaped temp dir (now symlinking ui/app-boot), including
the missing-config non-zero exit.

Implements docs/rfc/implemented/simplification/2026-07-04-share-app-bin-boot-glue.md
(moved from proposed/ and amended); the extract-example-app-packages
RFC's bin-ownership facts are amended in the same change.
2026-07-04 16:43:06 +08:00

5.5 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
  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 --> 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 --> 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
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, 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, session, session-persistence-jsonl
subagent-fork agent, session, subagent, subagent-inprocess
subagent-spawn subagent, subagent-inprocess