deepseek-harness/packages
Tianyi Cui 78472196c8 Merge branch 'codex/goal-session' into codex/commands
# Conflicts:
#	docs/architecture.md
#	docs/capability-seams.md
#	docs/config-catalog.md
#	docs/module-graph.md
#	knip.json
#	packages/examples/README.md
#	packages/examples/stdio-demo/README.md
#	packages/examples/stdio-demo/src/index.ts
#	packages/examples/tui-demo/package.json
#	packages/ui/README.md
#	packages/ui/tui/src/index.ts
2026-07-20 22:05:51 +08:00
..
bash Merge branch 'master' into codex/jsonl-zstd-persistence 2026-07-20 19:52:47 +08:00
code-runtime test(code-runtime): stabilize slow-binding budget case 2026-07-20 17:32:17 +08:00
compact docs(compact): correct pruning surface contracts 2026-07-20 17:02:28 +08:00
context Remove the Echo agent 2026-07-20 20:16:41 +08:00
cordis Merge branch 'codex/goal-session' into codex/commands 2026-07-20 22:05:51 +08:00
core Merge branch 'codex/goal-tools' into codex/goal-session 2026-07-20 21:55:13 +08:00
examples Merge branch 'codex/goal-session' into codex/commands 2026-07-20 22:05:51 +08:00
fs fix(sandbox): address PR #309 review — TOCTOU direction, denial metadata, shared roots, docs 2026-07-20 13:59:18 +08:00
goal Merge branch 'codex/goal-tools' into codex/goal-session 2026-07-20 21:55:13 +08:00
guard fix(session): drop the <context> envelope and project context verbatim 2026-07-20 16:22:20 +08:00
hooks fix(session): drop the <context> envelope and project context verbatim 2026-07-20 16:22:20 +08:00
llm Render error cause chains at every diagnostic seam 2026-07-20 12:35:10 +08:00
mcp Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
sandbox fix(sandbox): address PR #309 review — TOCTOU direction, denial metadata, shared roots, docs 2026-07-20 13:59:18 +08:00
sdk Merge branch 'codex/goal-session' into codex/commands 2026-07-20 22:05:51 +08:00
session-persistence Merge branch 'master' into codex/jsonl-zstd-persistence 2026-07-20 19:58:41 +08:00
session-query Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
skill Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
spill Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
subagent docs(subagent): close review contract gaps 2026-07-20 18:10:31 +08:00
support Merge branch 'codex/goal-tools' into codex/goal-session 2026-07-20 21:55:13 +08:00
tasks Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
timeout Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
todo Remove the stdio agent 2026-07-20 19:26:04 +08:00
ui Merge branch 'codex/goal-session' into codex/commands 2026-07-20 22:05:51 +08:00
util Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
web Merge branch 'master' into codex/reject-credentialed-search-redirects 2026-07-20 18:20:47 +08:00
workflow Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
AGENTS.md Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
CLAUDE.md Document the codebase thoroughly and tighten type safety 2026-06-11 13:01:00 +08:00
README.md Merge branch 'rfc/loop' into codex/goal-domain 2026-07-20 21:37:04 +08:00

Packages

Packages use the @deepseek-ai/dsh-* scope. Each is a Cordis Service subclass or function plugin; contributions use ctx.effect(), ctx.on(), or ctx.waterfall(). Authoring rules: package and root.

Hierarchy

Packages live at packages/<group>/<pkg>/; groups are containers, while names remain @deepseek-ai/dsh-<pkg>. Each group README is the canonical package/ctx-key map.

Group Role Release expectation
core/ Product API spine: sessions, prompts, tools, agent services, and the concrete loop Product — stable surface
goal/ Persisted same-session goal state and lifecycle Product — stable surface
llm/ LLM capability family: the abstract service + provider adapters Product — stable surface
bash/ Bash capability family: the executor seam, a local impl, and the model-facing tool Product — stable surface
code-runtime/ Code-execution capability family: the abstract runtime seam for model-written programs + a worker-thread backend Product — stable surface
sandbox/ Process-confinement seam; bwrap/Landlock/Seatbelt backends Product — stable surface
fs/ Filesystem capability family: the abstract seam, a local impl, the model-facing file tools, and the bash-backed discovery tools Product — stable surface
skill/ Skill capability family: the provider registry, local provider, and model-facing catalog/loader Product — stable surface
compact/ Compaction capability family: the abstract seam + a basic backend (tool deferred) Product — stable surface
context/ Model-visible request context, including workspace instructions and time context Product — stable surface
subagent/ Subagent capability family: the provider-registry seam and the model-facing delegation tool Product — stable surface
tasks/ Generic background-task runtime and model-facing task_* control tools Product — stable surface
workflow/ Workflow capability family: the script-engine seam, the worker-thread engine, and the model-facing workflow tool Product — stable surface
web/ Web capability family: the abstract seam, search/fetch provider impls, and the model-facing web tools Product — stable surface
spill/ Spill capability family: the storage seam, a local impl, and the tool-result spill policy Product — stable surface
todo/ Todo/planning family: the model-facing todo_write tool Product — stable surface
timeout/ Tool-call timeout policy: the tools/execute deadline enforcer Product — stable surface
guard/ Loop-hygiene guards: advisory repeat-call reminders Product — stable surface
cordis/ Self-referential runtime toolset: inspect the live runtime's plugins and services, mount/unmount model-written plugins (design) Product — stable surface
hooks/ Hook bridges + the shared Claude Code / Codex wire-protocol library Product — stable surface
session-persistence/ Persistence capability family: the seam + JSONL/SQLite backends Product — stable surface
session-query/ Session retrieval: logical corpus, bounded reads, lineage, and event relationships Product — stable surface
sdk/ Project SDK tooling Product — stable surface
ui/ Editor/client integration surfaces: ACP bridge, JSON-RPC SDK server, user-approval/user-interaction seams, ask-user tool Product — stable surface
examples/ Demo bundles (agent-spine + TUI/one-shot CLI/ACP/JSON-RPC bins) the leaves load Support — example infra
support/ Support infrastructure (testkits, invariants, replay, Loader smokes) Support — lower compatibility expectations
util/ Low-level zero-dependency utilities shared across groups (Branded<B>, Harness home/path helpers, timeout, retention) Support — small, stable, harness-dep-free

Groups distinguish product API from support infrastructure. New packages join an existing group; a new group updates its README and this table.

Dependencies

The dependency graph is generated: docs/module-graph.md (pnpm run gen-module-graph, freshness-gated in CI).

The rule it must obey: extension plugins depend on interfaces, never on the concrete loop. dsh-agent-loop is swappable — UI/hook/tool plugins keep working against the dsh-agent vocabulary if the loop is replaced. The sanctioned exception is a composition/bundle package like dsh-agent-spine-demo, whose whole job is to assemble the concrete spine: it depends on dsh-agent-loop (and the other concrete spine plugins) on purpose. The rule constrains plugins that EXTEND the system, not the bundle that COMPOSES it. A swappable capability splits into interface / implementation / consumer packages (the bash trio is the template — see capability seams).

Package READMEs cover purpose, APIs, extension points, and Model Experience unless on the model-agnostic omission allowlist. They also carry ## Known Limitations and Deferred Work or use its allowlist.