Files
deepseek-harness/packages/bundle
_Kerman 334dd53c92 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2781
# Conflicts:
#	.agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.i18n.yaml
#	.agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.md
#	.agents/notes/proposed/architecture/2026-07-28-storage-root-and-derived-medium-recovery.zh.md
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/api/session-controller/tests/session-cold.host.spec.ts
#	packages/bundle/web-app/package.json
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/session/session-projection-cache/package.json
2026-08-24 15:13:10 +08:00
..

bundle/ — profile plugin bundles

English | 中文

Profile bundles: npm packages whose manifest declares "dsh": { "bundle": { "patch": "./cordis.patch.yml" } }, making them installable patch layers for dsh --profile compositions (profile contract). A bundle's substance is its patch list; some also ship runtime glue plugins their patch mounts.

The manifest declaration, not this directory, defines Bundle identity. Domain packages can carry their own optional Profile layer; the Codex and Claude Code subagent packages are directly installable examples.

Package Role ctx key
base/ The shared dsh core every profile applies first — (patch only)
acp-app/ Automation-only ACP stdio application over base mounts the ACP bridge
web-app/ Browser surface: web patch layer + runtime glue plugin mounts rows
headless/ Direct one-shot task mode over base, with no Host or Web layer mounts headless-runner
sdk-app/ SDK stdio JSON-RPC application over base mounts the SDK server

In-box bundles resolve from the dsh installation; out-of-tree bundles install into a profile through dsh plugin --profile <name> add <package>.