Huanqi Cao 30a209aab5 fix(e2e): reach child quiescence before temp-dir cleanup in built-bin smokes 2 mēneši atpakaļ
..
bash 0239ac3752 Merge remote-tracking branch 'origin/master' into codex/simp-drop-assembled-section-order 2 mēneši atpakaļ
code-runtime 38ea10eee0 Merge remote-tracking branch 'origin/master' into codex/simp-prune-code-runtime-surface 2 mēneši atpakaļ
compact 31f4441fd4 pkg: update vendor dep 2 mēneši atpakaļ
context 6f77da4c8c refactor: relocate demo app bundles to packages/examples/*-demo 2 mēneši atpakaļ
cordis dbae83d573 Merge remote-tracking branch 'origin/master' into codex/simp-drop-assembled-section-order 2 mēneši atpakaļ
core 2a48b31306 docs: rewrite group maps for the examples/ relocation 2 mēneši atpakaļ
examples 30a209aab5 fix(e2e): reach child quiescence before temp-dir cleanup in built-bin smokes 2 mēneši atpakaļ
fs 1c6034fa25 Merge remote-tracking branch 'origin/master' into codex/simp-hide-fs-internals 2 mēneši atpakaļ
guard 31f4441fd4 pkg: update vendor dep 2 mēneši atpakaļ
hooks 31f4441fd4 pkg: update vendor dep 2 mēneši atpakaļ
llm 31f4441fd4 pkg: update vendor dep 2 mēneši atpakaļ
mcp b9eeb2162c Fix lockfile broken by hand-resolved merge conflict 2 mēneši atpakaļ
sandbox 31f4441fd4 pkg: update vendor dep 2 mēneši atpakaļ
session-persistence 52264d87ee fix: test 2 mēneši atpakaļ
session-query 31f4441fd4 pkg: update vendor dep 2 mēneši atpakaļ
skill e16ce4d04e Merge remote-tracking branch 'origin/master' into codex/simp-drop-skill-provider-events 2 mēneši atpakaļ
subagent 6f77da4c8c refactor: relocate demo app bundles to packages/examples/*-demo 2 mēneši atpakaļ
support 6f77da4c8c refactor: relocate demo app bundles to packages/examples/*-demo 2 mēneši atpakaļ
timeout eccaf2e2f7 Merge remote-tracking branch 'origin/master' into codex/simp-prune-tools-prompt-surface 2 mēneši atpakaļ
todo 6f77da4c8c refactor: relocate demo app bundles to packages/examples/*-demo 2 mēneši atpakaļ
ui 6dde9f70f0 fix: satisfy doc gates after the examples/ relocation 2 mēneši atpakaļ
util 31f4441fd4 pkg: update vendor dep 2 mēneši atpakaļ
web 96851da571 Merge remote-tracking branch 'origin/master' into codex/simp-prune-web-seam-fields 2 mēneši atpakaļ
workflow cb682af117 Merge remote-tracking branch 'origin/master' into codex/simp-prune-workflow-worker-surface 2 mēneši atpakaļ
AGENTS.md 528f9cba62 fix: default time context to system zone 2 mēneši atpakaļ
CLAUDE.md 7f024a1a9d Document the codebase thoroughly and tighten type safety 3 mēneši atpakaļ
README.md 6dde9f70f0 fix: satisfy doc gates after the examples/ relocation 2 mēneši atpakaļ

README.md

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 are grouped by modular role at packages/<group>/<pkg>/. The group directory is a pure container (no package.json); the package name stays @deepseek-ai/dsh-<pkg> regardless of group. Each group README is the canonical per-package map — package roles, ctx keys, and the product-vs-support split live there, next to the code.

Group Role Release expectation
core/ Product API spine: session, system-prompt, tools, agent, and the concrete loop 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, and the model-facing file 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/ Opt-in request-context enrichment Product — stable surface
subagent/ Subagent capability family: the provider-registry seam and the model-facing delegation tool 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
timeout/ Tool-call timeout policy: the tools/execute deadline enforcer Product — stable surface
todo/ Todo/planning family: the model-facing todo_write tool 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 family: logical corpus, surface records, and bounded exact reads 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 + stdio/ACP/JSON-RPC bins) the leaves load Support — example infra
support/ Support infrastructure (invariants, replay, Loader smokes) Support — lower compatibility expectations
util/ Low-level zero-dependency utilities shared across groups (the Branded<B> primitive) Support — small, stable, harness-dep-free

The split is the point: a package's group says whether it is part of the product API or support/test/example infrastructure, so release and removal decisions do not treat every package as an equal public contract. New packages join an existing group; adding a new top-level group is a deliberate act (extend the group READMEs and this table).

Dependencies

The inter-package 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.