219 个包的模块地图
包组、角色、依赖方向与运行时位置
结论:219 个包组成能力闭包,而非 219 个平级模块
固定基线的 packages/ 树包含 49 个 group、219 个 npm workspace。真正有意义的分析单位通常不是单个目录,而是一项能力的完整闭包:Service Definition、一个或多个 provider、模型/host consumer、bundle row、durable projection、UI renderer,以及 invariant 或 composition test。
下方地图保留每一个 package,而不是只选显眼的 runtime code。它用于回答:能力在哪里声明,谁实现和消费它,直接依赖哪些内部包,后续哪一章会验证真实控制流。
1. 清单如何生成
scripts/capture-package-inventory.mjs 首先拒绝 HEAD 不等于固定 commit 的上游 checkout;随后遍历每个 packages/<group>/<leaf>/package.json,对 group/leaf 排序,并记录 manifest identity、描述、发布标记、内部 dsh dependency、TypeScript/TSX 源码与测试数、README、invariant、bundle patch 和 dsh metadata。
| 采集字段 | 可以证明什么 | 不能证明什么 |
|---|---|---|
| Manifest name / description | 基线时上游声明的 package identity 与意图 | 每句话都覆盖当前 runtime 的所有分支 |
dependencies + peerDependencies | 指向其他 dsh package 的直接声明边 | 动态 plugin reference、event coupling 或反向 consumer |
| Source / test file count | src 与 tests 下文件的确定性清单 | 复杂度、质量、覆盖率或运行时权重 |
private flag | Manifest 是否禁止发布 | 对应 npm 版本是否真的已经发布 |
| README / invariant / patch flag | 这些仓库产物是否存在 | 未经后续源码核查的语义正确性 |
2. 固定基线的精确总数
| 指标 | 数量 | 含义 |
|---|---|---|
| Package group | 49 | 以 ownership 为主的目录族,不是运行时层 |
| Workspace package | 219 | 两层 package 树下的全部 manifest |
| TS / TSX source file | 1,324 | Package src/ 目录内的文件 |
| TS / TSX test file | 854 | Package tests/ 目录内的文件 |
带 src/invariant.ts 的 package | 219 | Package-owned invariant 约定在结构上完全覆盖 |
| 带 README 的 package | 219 | 每个 package 都有本地文档入口 |
带 cordis.patch.yml 的 package | 3 | Base、headless、Web 三个产品 bundle 拥有 patch |
Manifest 标为 private: true | 0 | 结构上都可发布;实际 npm release 不在本清单证明范围内 |
| 依赖其他内部 dsh package | 218 | 只有 invariant registry 没有直接 dsh-package dependency |
3. 六个研究平面
产品骨架
core、llm、session、context 与 compaction 决定模型请求如何组装、执行、记录,并在压力下缩减。
执行世界
subprocess、shell、terminal、fs、sandbox、code-runtime、lsp、web 与 e2b 把工具落到本地或远程环境。
协作与编排
interaction、plan、goal、todo、jobs、subagent、workflow、skill 与 mcp 拥有人机和 Agent 间协作状态。
组合与数据
boot、bundle、preset、settings、credentials、storage、workspace 与 attachment 决定插件树和非 session 数据归属。
产品 surface
api、typert、sdk、acp、host 与 client 把同一 runtime 暴露给浏览器、stdio JSON-RPC、SDK 和自动化协议。
证明与支撑
runtime-diagnostics、test-support、guard、session-query、feedback、util 与 examples 提供 invariant、真实装配、诊断和底层原语。
4. Package 数量集中在哪里
| Group | 包数 | 源码文件 | 测试文件 | 这种集中意味着什么 |
|---|---|---|---|---|
client | 39 | 501 | 244 | 浏览器 surface 被拆成 host bridge、conversation node、renderer、setting 和 feature plugin,而非一个 SPA 大包 |
session | 13 | 45 | 33 | Persistence、query、projection cache、telemetry、title、form 与 domain data 是 event model 的不同 consumer |
subagent | 11 | 46 | 43 | 同一 seam 支撑多个 backend,并通过不同 tool 与 host service 暴露 orchestration |
shell | 9 | 27 | 21 | Definition、executor、local/PowerShell provider、policy、prompt 与 tool consumer 被刻意拆开 |
core | 8 | 44 | 60 | 相较 extension 与 UI surface,中央 runtime 仍是一条较小的 definition/driver spine |
host | 8 | 65 | 34 | 服务端产品功能位于 Agent service 上方,而不是进入 Loop |
Package 数量更多反映独立演进角色,而非算法复杂度。39 包的 client group 主导文件量,core group 只有 8 包却承载执行骨架;这支持“产品行为和呈现围绕稳定 Loop 挂接”的目标,同时也让 package discovery 与生成式地图成为必需品。
5. 依赖方向:按能力闭包阅读
Extension plugin 依赖 Service Definition,而不是具体 provider;UI、hook 与 tool package 消费抽象 Agent service,不导入默认 Agent Loop;definition、provider 与 consumer 只有在独立演进时才拆包。PKG-HIERARCHY
追踪任意功能时,按下列顺序核查:
找 Definition
定位 service key、公共 interface、event map、config schema 和 branded identity。
枚举 Provider
不要停在默认实现;分别检查 local、remote、platform-specific、replay 与 test provider。
枚举 Consumer
Model tool、host RPC、UI plugin、workflow engine 和其他 service 可能消费同一 definition 的不同部分。
找 Composition
确认哪个 bundle 或 Agent preset 在什么 scope 挂载各角色。
找 Durable/UI Projection
追踪让结果可观测的 event、persistence、replay 与 renderer。
找 Proof
阅读 package invariant、HMR disposal test、production composition test 与 keyless transcript snapshot。
直接 dependency graph 必要但不充分。Event declaration merging、按 key 查 service、配置 row 与动态 registration 会产生普通 import 看不到的边;因此本地图展示声明的内部依赖,后续章节再从 producer、consumer 与 commit point 重建语义图。
6. 为什么 219 个包都有 invariant companion
每个 package 都拥有 ./invariant。有 runtime relationship 的包注册 event/data check;没有可检查关系的包必须给出 package-specific 说明;registry contribution 还需证明 owner fiber unmount 后正确撤销。PKG-INVARIANTSDESIGN-INVARIANT-REGISTRY
该约定回应了插件架构的特定弱点:局部 typecheck 不能证明完整插件树拥有一致 provider、identity、event order 和 projection。收益是带 package 归属的运行时证据;代价是 219 个 companion entry point 必须持续表达真正的 owned relationship,不能退化成存在性检查。
7. 固定基线的完整 package 清单
展开任意 group。每一行都链接到固定 commit 上的对应 package,并展示 manifest 描述、直接内部 dsh dependency、源码/测试文件数、发布标记和 bundle-patch 标记;dependency name 也直接链接到目标 package,使表格成为可导航的声明依赖图,而不是平面目录。
acp1 包 · 3 源文件 · 8 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
acp@deepseek-ai/dsh-acp |
Automation-only Agent Client Protocol server for driving DeepSeek Harness agents over JSON-RPC stdio | agent invariants session user-approval | 3 | 8 | manifest 非 private |
api2 包 · 10 源文件 · 4 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
gateway@deepseek-ai/dsh-api-gateway |
Typert Remote Host dispatcher and Client API endpoint | client-connection invariants typert-protocol typert-registry | 4 | 2 | manifest 非 private |
remotes@deepseek-ai/dsh-api-remotes |
Remote BFF assembly and Host Agent/Session lookup policy | agent agent-presets api-gateway commands cordis-host-runner credentials goal host-plugin-inventory invariants llm message-feedback session session-persistence settings typert-protocol typert-registry | 6 | 2 | manifest 非 private |
attachment2 包 · 9 源文件 · 3 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
attachment@deepseek-ai/dsh-attachment |
Durable immutable attachment storage seam for the DeepSeek Harness | brand invariants | 5 | 0 | manifest 非 private |
attachment-local@deepseek-ai/dsh-attachment-local |
Private content-addressed DSH_HOME attachment storage | attachment home-paths invariants | 4 | 3 | manifest 非 private |
boot2 包 · 5 源文件 · 7 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
app-boot@deepseek-ai/dsh-app-boot |
Shared boot glue for the app bins: .env loading, fail-loud Loader guards, snapshot-aware config resolution, and the Loader boot sequence | home-paths invariants launch-environment system-prompt | 3 | 6 | manifest 非 private |
cmdline@deepseek-ai/dsh-cmdline |
Immutable command-line handoff from a dsh launcher to any app plugin that injects cmdlineArgs | invariants | 2 | 1 | manifest 非 private |
bundle3 包 · 8 源文件 · 6 测试
client39 包 · 501 源文件 · 244 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
connection@deepseek-ai/dsh-client-connection |
Wire consumer layer: HTTP-up/WebSocket-down client, ConnectionController dual streams with reconnect, and fixture api | attachment commands host-apiproxy host-webserver invariants llm session tools | 16 | 11 | manifest 非 private |
hmr@deepseek-ai/dsh-client-hmr |
Dev-only hot-reload driver for script-loaded client entries: SSE rebuilt frames → invalidate/prefetch → fiber swap through the vendored Loader entry | client-modules host-webserver invariants | 4 | 1 | manifest 非 private |
locale@deepseek-ai/dsh-client-locale |
Locale plugin: Host-backed zh/en preference, browser-derived fallback, locale snapshots, and typed namespace dictionaries | api-remotes client-connection client-runtime client-ui-primitives client-ui-settings client-ui-slots invariants settings | 11 | 6 | manifest 非 private |
modules@deepseek-ai/dsh-client-modules |
Client module system, dual-face: node half composes the __DSH_BOOT__ entry graph (incremental dsh.client scan, bundle route, index tap, webPlugins service); browser half is the lazy-CJS module table the vendored cordis Loader consumes as its internal seam | invariants | 5 | 2 | manifest 非 private |
runtime@deepseek-ai/dsh-client-runtime |
Client core services: SlotRegistry, SessionRuntime (scope tree + object layer) | agent api-remotes attachment client-connection client-ui-slots commands host-apiproxy invariants llm llm-retry session session-projection session-title tools typert-protocol typert-registry | 44 | 25 | manifest 非 private |
schema-form@deepseek-ai/dsh-client-schema-form |
Schema/draft model layer for settings editors: rehydrates a serialized schemastery schema, validates drafts, and edits them immutably by path | invariants | 3 | 2 | manifest 非 private |
ui-agent-preset@deepseek-ai/dsh-client-ui-agent-preset |
Agent-preset surfaces: the default for later sessions, this session's seat, and the composition editor | api-remotes client-connection client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-settings client-ui-slots client-web-react invariants | 13 | 7 | manifest 非 private |
ui-attachment@deepseek-ai/dsh-client-ui-attachment |
Pure React attachment atoms for the dsh web UI: draft-image rail, message image gallery, and original-image lightbox (zero cordis) | attachment client-ui-primitives invariants | 7 | 5 | manifest 非 private |
ui-commands@deepseek-ai/dsh-client-ui-commands |
Client command surface: global directory cache, '/' source, three command UI kinds, popupSelect registry | api-remotes client-locale client-runtime client-ui-conversation client-ui-input-trigger client-ui-primitives client-ui-slots commands invariants | 10 | 5 | manifest 非 private |
ui-conversation@deepseek-ai/dsh-client-ui-conversation |
Conversation domain: skeleton, ordered chat flow, composer with the Host-backed busy-Enter preference, and details host | agent api-remotes attachment brand client-connection client-locale client-runtime client-ui-attachment client-ui-input-trigger client-ui-primitives client-ui-settings client-ui-slots commands compaction invariants llm-retry session-stats settings token-meter tools | 70 | 28 | manifest 非 private |
ui-deliverables@deepseek-ai/dsh-client-ui-deliverables |
Produced-files turn tail and clickable final-response file references for Web | client-connection client-locale client-runtime client-ui-conversation client-ui-slots invariants system-prompt | 7 | 2 | manifest 非 private |
ui-directory-picker-browse@deepseek-ai/dsh-client-ui-directory-picker-browse |
In-app directory browsing surface: the workspace directory-flow owner rendering the host's listing and creation primitives | client-locale client-runtime client-ui-primitives client-ui-slots client-ui-workspace invariants | 6 | 2 | manifest 非 private |
ui-directory-picker-native@deepseek-ai/dsh-client-ui-directory-picker-native |
Native directory-picker surface: the renderless workspace directory-flow occupant driving the host's OS chooser | client-runtime client-ui-slots client-ui-workspace invariants | 4 | 1 | manifest 非 private |
ui-goal@deepseek-ai/dsh-client-ui-goal |
Session goal surface: GoalBar docked above the composer, read from the goal session projection | api-remotes client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots commands goal invariants | 9 | 3 | manifest 非 private |
ui-input-trigger@deepseek-ai/dsh-client-ui-input-trigger |
Input trigger pipeline: '/' and '@' detection, candidate menu, pick routing to registered sources | client-locale client-runtime client-ui-primitives client-ui-slots invariants | 14 | 5 | manifest 非 private |
ui-jobs@deepseek-ai/dsh-client-ui-jobs |
Session-header background-job list: live registry state mirrored from session/jobs frames | client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants | 6 | 2 | manifest 非 private |
ui-layout@deepseek-ai/dsh-client-ui-layout |
Shell plugin: three-column AppFrame with drag handles, ctx.layout viewing-state service (navigation + panels) | client-runtime client-ui-slots client-ui-theme invariants | 9 | 6 | manifest 非 private |
ui-message-feedback@deepseek-ai/dsh-client-ui-message-feedback |
Per-message feedback controls contributed to the assistant-message action strip, backed by the messageFeedback Host Remote | api-remotes client-connection client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants message-feedback typert-protocol | 8 | 3 | manifest 非 private |
ui-model-selection@deepseek-ai/dsh-client-ui-model-selection |
Model selection: the /model popupSelect over session.models / session.selectModel | api-remotes client-connection client-locale client-runtime client-ui-commands client-ui-conversation client-ui-input-trigger client-ui-primitives client-ui-slots invariants | 9 | 2 | manifest 非 private |
ui-permission-presets@deepseek-ai/dsh-client-ui-permission-presets |
Permission surfaces: a new-session default in General settings and a current-session /permission popup over the permissions projection | api-remotes client-connection client-locale client-runtime client-schema-form client-ui-commands client-ui-input-trigger client-ui-primitives client-ui-settings client-ui-slots invariants permission-presets | 8 | 3 | manifest 非 private |
ui-plan@deepseek-ai/dsh-client-ui-plan |
Plan-mode composer control: the conversation.input.plan seat over the plan projection and the /plan command channel | api-remotes client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants plan-mode | 6 | 2 | manifest 非 private |
ui-primitives@deepseek-ai/dsh-client-ui-primitives |
Pure React atoms for the dsh web UI: controls, icons, markdown, and JSON inspectors (zero cordis) | invariants | 44 | 21 | manifest 非 private |
ui-settings@deepseek-ai/dsh-client-ui-settings |
Settings domain base plugin: the settings-namespace scope service and the canonical settings slot-type contract | api-remotes client-connection client-runtime client-schema-form client-ui-slots invariants settings | 6 | 3 | manifest 非 private |
ui-settings-general@deepseek-ai/dsh-client-ui-settings-general |
Settings ownerless-copy and product onboarding plugin: the General section, shell trigger/header chrome content, settings dictionaries, and the versioned welcome notice | api-remotes client-connection client-locale client-runtime client-ui-primitives client-ui-settings client-ui-sidebar client-ui-slots client-web-react invariants settings | 11 | 7 | manifest 非 private |
ui-settings-models@deepseek-ai/dsh-client-ui-settings-models |
Models settings and shared product-onboarding dialogs over existing settings and credential joins | api-remotes client-connection client-runtime client-schema-form client-ui-primitives client-ui-slots client-web-react invariants | 18 | 10 | manifest 非 private |
ui-settings-plugin-inventory@deepseek-ai/dsh-client-ui-settings-plugin-inventory |
Read-only Cordis Loader inventory tab in Web Plugins settings | api-remotes client-locale client-runtime client-ui-primitives client-ui-settings client-ui-slots invariants | 6 | 3 | manifest 非 private |
ui-settings-plugins@deepseek-ai/dsh-client-ui-settings-plugins |
Plugins settings section with feature-owned tabs and configurable host-plane plugin cards | api-remotes client-connection client-locale client-runtime client-ui-primitives client-ui-settings client-ui-slots client-web-react invariants | 17 | 5 | manifest 非 private |
ui-sidebar@deepseek-ai/dsh-client-ui-sidebar |
Sidebar plugin: session multi-level tree, search, grouping, state dots | client-locale client-runtime client-ui-primitives client-ui-slots invariants | 7 | 7 | manifest 非 private |
ui-skill@deepseek-ai/dsh-client-ui-skill |
Web skill references and the dedicated skill tool row | api-remotes client-connection client-locale client-runtime client-ui-input-trigger client-ui-primitives client-ui-slots client-ui-tool invariants | 6 | 2 | manifest 非 private |
ui-slots@deepseek-ai/dsh-client-ui-slots |
Slot registry pure core: SlotMap declaration merging, single register composition API, four-share props types, store-seat types, renderer install seam | invariants | 4 | 4 | manifest 非 private |
ui-subagent@deepseek-ai/dsh-client-ui-subagent |
Subagent conversation catalog, continuation routing UI, and '@' reference source | client-locale client-runtime client-ui-conversation client-ui-input-trigger client-ui-primitives client-ui-slots invariants subagent token-meter | 7 | 2 | manifest 非 private |
ui-theme@deepseek-ai/dsh-client-ui-theme |
Theme plugin: Host bootstrap for the pre-plugin palette; DOM-free ThemeRuntime for light/dark/system state; --dsw-* token styles and Appearance settings row | api-remotes client-connection client-locale client-runtime client-ui-primitives client-ui-settings client-ui-slots host-webserver invariants settings | 9 | 8 | manifest 非 private |
ui-tool@deepseek-ai/dsh-client-ui-tool |
Client Tool call-tree renderer and keyed per-tool presentation slot | api-remotes client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants | 25 | 16 | manifest 非 private |
ui-trajectory@deepseek-ai/dsh-client-ui-trajectory |
Trajectory event ledger with an interactive timing overview: pure-consumer plugin registering into the conversation ViewMap (no service) | agent client-locale client-runtime client-ui-primitives compaction invariants tools | 28 | 8 | manifest 非 private |
ui-user-questions@deepseek-ai/dsh-client-ui-user-questions |
Web ask_user_question feature: host tool mount plus composer-takeover question UI | api-remotes client-connection client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants | 8 | 4 | manifest 非 private |
ui-workflow-run@deepseek-ai/dsh-client-ui-workflow-run |
Durable workflow-run Conversation Node and nested member disclosure for dsh web | client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants session tool-workflow workflow | 7 | 1 | manifest 非 private |
ui-workspace@deepseek-ai/dsh-client-ui-workspace |
Workspace picker plugin: one WorkspacePicker registered into the sidebar and empty-state workspace slots | client-locale client-runtime client-ui-primitives client-ui-slots invariants | 11 | 8 | manifest 非 private |
web@deepseek-ai/dsh-client-web |
Web shell kernel: bootWebShell (module system holding + seed table + two-stage boot + AppRoot gate + app-shell assembly entry), consumed by the apps/web vite entry | client-modules client-schema-form client-ui-attachment client-ui-primitives client-ui-slots client-ui-theme client-web-react invariants | 11 | 5 | manifest 非 private |
web-react@deepseek-ai/dsh-client-web-react |
Shell-side React glue: createSlotRenderer, SessionProvider, bindSnapshotSelector (uSES bridge), useInvoke | client-ui-slots invariants | 7 | 7 | manifest 非 private |
code-runtime2 包 · 10 源文件 · 8 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
code-runtime@deepseek-ai/dsh-code-runtime |
Abstract code-execution seam (ctx.codeRuntime) for the DeepSeek Harness | invariants | 3 | 2 | manifest 非 private |
code-runtime-worker-thread@deepseek-ai/dsh-code-runtime-worker-thread |
Worker-thread implementation of the DeepSeek Harness code-execution seam | code-runtime invariants session timeout | 7 | 6 | manifest 非 private |
compaction4 包 · 18 源文件 · 12 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
command-compact@deepseek-ai/dsh-command-compact |
Human-facing slash command for explicit session compaction | commands compaction invariants | 2 | 3 | manifest 非 private |
compaction@deepseek-ai/dsh-compaction |
Abstract compaction service seam (ctx.compaction) for the DeepSeek Harness | brand commands invariants llm session | 6 | 3 | manifest 非 private |
compaction-basic@deepseek-ai/dsh-compaction-basic |
Token-meter-driven compaction policy and LLM summarization backend for the DeepSeek Harness | agent commands compaction compaction-tool-result-pruner invariants llm session token-meter | 6 | 4 | manifest 非 private |
compaction-tool-result-pruner@deepseek-ai/dsh-compaction-tool-result-pruner |
Replay-safe model-free head/middle/tail pruning for tool-result surface nodes | compaction invariants llm session token-meter | 4 | 2 | manifest 非 private |
context4 包 · 20 源文件 · 8 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
agent-instructions@deepseek-ai/dsh-agent-instructions |
Workspace context loader for AGENTS.md/CLAUDE.md instruction files | agent fs home-paths invariants llm session tools | 7 | 2 | manifest 非 private |
session-reference@deepseek-ai/dsh-session-reference |
Cross-session snapshot references and durable untrusted model context (ctx.sessionReferenceResolver) | agent compaction invariants llm output-retention session session-query | 7 | 1 | manifest 非 private |
time-context@deepseek-ai/dsh-time-context |
Opt-in durable per-step context with the current time and elapsed time | agent invariants session | 4 | 4 | manifest 非 private |
tmux-context@deepseek-ai/dsh-tmux-context |
Opt-in durable per-step context with this agent's tmux pane and window location | agent invariants session shell | 2 | 1 | manifest 非 private |
core8 包 · 44 源文件 · 60 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
agent@deepseek-ai/dsh-agent |
Agent interface, registry, initiator scope, and event vocabulary for the DeepSeek Harness | invariants llm scope session system-prompt typert-protocol | 8 | 6 | manifest 非 private |
agent-default-model@deepseek-ai/dsh-agent-default-model |
Default model selection shared by Agent entry points | agent invariants llm settings | 2 | 1 | manifest 非 private |
agent-loop@deepseek-ai/dsh-agent-loop |
The concrete agent loop plugin for the DeepSeek Harness | agent invariants llm scope session session-persistence settings system-prompt tools | 6 | 20 | manifest 非 private |
agent-tool-presentation@deepseek-ai/dsh-agent-tool-presentation |
Agent-plane presentation selector: composes one agent's tools as Code Mode, native, or both | invariants tools | 2 | 1 | manifest 非 private |
scope@deepseek-ai/dsh-scope |
Scoped-context registration primitive (scope tags, scope-filtered event dispatch) for the DeepSeek Harness | invariants | 4 | 3 | manifest 非 private |
session@deepseek-ai/dsh-session |
Event-sourced session store for the DeepSeek Harness | brand invariants llm scope typert-protocol | 10 | 13 | manifest 非 private |
system-prompt@deepseek-ai/dsh-system-prompt |
System prompt assembly registry for the DeepSeek Harness | invariants llm scope | 2 | 4 | manifest 非 private |
tools@deepseek-ai/dsh-tools |
Tool registry and execution pipeline for the DeepSeek Harness | agent code-runtime invariants llm scope session system-prompt user-approval | 10 | 12 | manifest 非 private |
credentials2 包 · 5 源文件 · 7 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
credentials@deepseek-ai/dsh-credentials |
Abstract credential seam (ctx.credentials): settings carry references to secrets, providers own the values | brand invariants | 3 | 3 | manifest 非 private |
credentials-local@deepseek-ai/dsh-credentials-local |
File-backed credentials provider ($DSH_HOME/.env under the live process environment) for the DeepSeek Harness | atomic-write credentials home-paths invariants launch-environment | 2 | 4 | manifest 非 private |
e2b3 包 · 11 源文件 · 5 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
e2b@deepseek-ai/dsh-e2b |
Shared E2B sandbox lifecycle for DeepSeek Harness provider adapters | invariants | 2 | 2 | manifest 非 private |
fs-e2b@deepseek-ai/dsh-fs-e2b |
E2B filesystem implementation for DeepSeek Harness | e2b fs invariants | 2 | 1 | manifest 非 private |
subprocess-e2b@deepseek-ai/dsh-subprocess-e2b |
E2B subprocess implementation for DeepSeek Harness | e2b invariants subprocess timeout | 7 | 2 | manifest 非 private |
examples3 包 · 10 源文件 · 6 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
acp-demo@deepseek-ai/dsh-acp-demo |
ACP automation server app: agent spine + JSONL persistence + ACP transport, with a JSON-RPC stdio bin | acp agent-instructions agent-spine-demo app-boot invariants session-checkpoint-policy session-persistence-jsonl session-query session-query-sqlite tools | 3 | 3 | manifest 非 private |
agent-spine-demo@deepseek-ai/dsh-agent-spine-demo |
The default executor-less/UI-less agent spine with fallback session titles, provider-routed retry, and optional persisted goals | agent agent-instructions agent-loop goal goal-round-driver home-paths invariants jobs-local llm llm-retry scope session session-title shell-env skill skill-filesystem system-prompt tool-bash tool-goal tool-jobs tool-skill tools | 2 | 3 | manifest 非 private |
jsonrpc-demo@deepseek-ai/dsh-sdk-jsonrpc-demo |
Bin that boots an external Cordis config for the stdio JSON-RPC SDK runtime | app-boot invariants | 5 | 0 | manifest 非 private |
extensions4 包 · 44 源文件 · 15 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
cordis-client-runner@deepseek-ai/dsh-cordis-client-runner |
Browser half of dynamic dual-half plugin packages: event subscription, closure evaluation, guard facade, and loader entries | api-remotes client-connection client-modules client-runtime client-ui-slots client-ui-theme invariants | 12 | 5 | manifest 非 private |
cordis-host-runner@deepseek-ai/dsh-cordis-host-runner |
Dynamic package definition registry, host-half sandbox lifecycle, and invoke handler table for model-mounted dual-half packages | agent brand invariants llm scope session tools typert-protocol | 8 | 6 | manifest 非 private |
tool-cordis@deepseek-ai/dsh-tool-cordis |
Self-referential cordis toolset: inspect the live runtime, mount and dispose model-written plugins | agent cordis-host-runner invariants llm scope session system-prompt tools | 8 | 1 | manifest 非 private |
ui-cordis@deepseek-ai/dsh-client-ui-cordis |
Cordis dynamic-plugin definition card: the keyed cordis_define tool row with its run/stop switch | api-remotes client-connection client-locale client-runtime client-ui-input-trigger client-ui-primitives client-ui-sidebar client-ui-slots client-ui-tool cordis-client-runner invariants | 16 | 3 | manifest 非 private |
feedback2 包 · 6 源文件 · 6 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
command-feedback@deepseek-ai/dsh-command-feedback |
Log-only session feedback producer and human-facing slash command | anonymous-user-id commands invariants session session-telemetry | 2 | 2 | manifest 非 private |
message-feedback@deepseek-ai/dsh-message-feedback |
Lifecycle-bound per-message rating and note sidecar for the DeepSeek Harness | brand invariants llm session session-persistence storage-domain typert-protocol | 4 | 4 | manifest 非 private |
fs7 包 · 35 源文件 · 22 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
fs@deepseek-ai/dsh-fs |
Abstract filesystem capability seam (ctx.fs) for the DeepSeek Harness — vocabulary types, the FileSystem service (text IO + optional version-guarded atomic mutations), and the fs/* policy event vocabulary | brand invariants llm sandbox | 3 | 2 | manifest 非 private |
fs-local@deepseek-ai/dsh-fs-local |
Local-filesystem implementation of the DeepSeek Harness filesystem seam (ctx.fs) | fs invariants | 4 | 3 | manifest 非 private |
fs-observation-policy@deepseek-ai/dsh-fs-observation-policy |
File-context policy plugin for the DeepSeek Harness — observed-state, read-before-edit, and version-guarded write/edit added over the ctx.fs provider seam through the fs/* event gate (no service API) | fs invariants | 3 | 1 | manifest 非 private |
fs-sandbox@deepseek-ai/dsh-fs-sandbox |
Sandbox-enforcing implementation of the DeepSeek Harness filesystem seam: fences write/edit by the per-call sandbox mode (read-only denies mutation, workspace-write contains it to the workspace + temp roots) while reads pass through | fs fs-local invariants sandbox sandbox-policy | 3 | 2 | manifest 非 private |
tool-fs@deepseek-ai/dsh-tool-fs |
Model-facing filesystem tools (read, write, edit) over the DeepSeek Harness filesystem seam (ctx.fs) | attachment fs invariants llm sandbox sandbox-policy session system-prompt tools user-approval | 12 | 8 | manifest 非 private |
tool-fs-search@deepseek-ai/dsh-tool-fs-search |
Model-facing filesystem discovery tools (glob, grep) backed by the packaged ripgrep binary (@vscode/ripgrep) | invariants llm output-retention session spill subprocess system-prompt timeout tools | 8 | 5 | manifest 非 private |
tool-str-replace-editor@deepseek-ai/dsh-tool-str-replace-editor |
Model-facing view, create, literal replace, and line insert tool over the Harness filesystem service | fs invariants sandbox sandbox-policy tools | 2 | 1 | manifest 非 private |
goal4 包 · 16 源文件 · 8 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
command-goal@deepseek-ai/dsh-command-goal |
Human-facing slash command for persisted same-session goals | commands goal invariants | 2 | 1 | manifest 非 private |
goal@deepseek-ai/dsh-goal |
Event-sourced same-session goal state and lifecycle service for the DeepSeek Harness | agent brand invariants llm scope session session-projection typert-protocol | 7 | 4 | manifest 非 private |
goal-round-driver@deepseek-ai/dsh-goal-round-driver |
Race-fenced same-session goal-round driver | agent goal invariants llm session | 3 | 2 | manifest 非 private |
tool-goal@deepseek-ai/dsh-tool-goal |
Model-facing same-session goal tools with execution-time authority checks | agent goal invariants llm session system-prompt tools | 4 | 1 | manifest 非 private |
guard2 包 · 4 源文件 · 2 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
repeat-tool-reminder@deepseek-ai/dsh-repeat-tool-reminder |
Repeat-tool-call guard plugin: advisory reminders when an agent loops on identical tool calls | agent invariants tools | 2 | 1 | manifest 非 private |
timeout-policy@deepseek-ai/dsh-tool-call-timeout-policy |
Tool-call timeout policy: a tools/execute wrapper that arms a per-tool deadline on exec.signal and returns TOOL_TIMEOUT when it wins | invariants llm timeout tools | 2 | 1 | manifest 非 private |
hooks3 包 · 15 源文件 · 20 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
hook-protocol@deepseek-ai/dsh-hook-protocol |
Shared Claude Code / Codex hook wire protocol: matcher engine, stdin/exit-code/stdout codec, multi-hook merge, and hook/* session events | invariants session shell | 9 | 7 | manifest 非 private |
hooks-claude-code@deepseek-ai/dsh-hooks-claude-code |
Bridge plugin: run a Claude Code hooks.json / settings hook config on the DeepSeek Harness interception seams | agent hook-protocol invariants llm session session-persistence subagent tools | 3 | 7 | manifest 非 private |
hooks-codex@deepseek-ai/dsh-hooks-codex |
Bridge plugin: run a Codex hooks.json hook config on the DeepSeek Harness interception seams | agent hook-protocol invariants llm session session-persistence tools | 3 | 6 | manifest 非 private |
host8 包 · 65 源文件 · 34 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
apiproxy@deepseek-ai/dsh-host-apiproxy |
API gateway: the ApiProxy contract (api/), the fetch carrier pair (fetch/), and the host-side gateway plugin providing ctx.apiProxy | agent agent-default-model agent-presets api-remotes attachment brand commands cordis-host-runner credentials goal host-directory-picker invariants jobs llm native-command session session-persistence session-projection session-projection-cache session-query session-title settings skill subagent tools user-approval user-questions workspace | 42 | 20 | manifest 非 private |
directory-picker@deepseek-ai/dsh-host-directory-picker |
Abstract workspace-directory picking seam (ctx.directoryPicker) for the DeepSeek Harness web GUI host | invariants | 2 | 1 | manifest 非 private |
directory-picker-auto@deepseek-ai/dsh-host-directory-picker-auto |
Adaptive chooser of the directory-picker seam: resolves the host situation at boot and mounts the native or browse backend for the DeepSeek Harness web GUI host | client-ui-directory-picker-browse client-ui-directory-picker-native host-directory-picker-browse host-directory-picker-native host-webserver invariants | 4 | 2 | manifest 非 private |
directory-picker-browse@deepseek-ai/dsh-host-directory-picker-browse |
In-app browsing backend of the directory-picker seam (listing/creation primitives over the host filesystem) | host-directory-picker invariants | 2 | 1 | manifest 非 private |
directory-picker-native@deepseek-ai/dsh-host-directory-picker-native |
Native-OS-chooser backend of the directory-picker seam for the DeepSeek Harness web GUI host | host-directory-picker invariants native-command | 8 | 6 | manifest 非 private |
frontend-static@deepseek-ai/dsh-host-frontend-static |
SPA dist server for the Web shell: owns the webserver fallback seat, serving the built frontend with index-tap injection, traversal rejection, and SPA index fallback | host-webserver invariants | 2 | 1 | manifest 非 private |
plugin-inventory@deepseek-ai/dsh-host-plugin-inventory |
Read-only Remote projection of current Cordis Loader plugin state | brand invariants typert-protocol | 3 | 2 | manifest 非 private |
webserver@deepseek-ai/dsh-host-webserver |
Web route-registration plugin: HTTP and upgrade routes, index transform taps, and static dist fallback; knows no harness concepts | invariants | 2 | 1 | manifest 非 private |
identity1 包 · 2 源文件 · 2 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
anonymous-user-id@deepseek-ai/dsh-anonymous-user-id |
Shared anonymous user identity for DeepSeek Harness telemetry and feedback correlation | brand home-paths invariants | 2 | 2 | manifest 非 private |
interaction5 包 · 16 源文件 · 9 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
commands@deepseek-ai/dsh-commands |
Plugin-owned human command registry for DeepSeek Harness UIs | agent brand invariants scope session typert-protocol | 4 | 2 | manifest 非 private |
permission-presets@deepseek-ai/dsh-permission-presets |
User-facing permission presets (ctx.permissionPresets) for the DeepSeek Harness: one product-level Permissions select bundling the sandbox-mode and approval-policy knobs, written through to their own session events | commands invariants sandbox sandbox-policy session session-projection settings shell user-approval | 4 | 3 | manifest 非 private |
tool-ask-user@deepseek-ai/dsh-tool-ask-user |
Model-facing ask_user_question tool over the ctx.userQuestions seam | agent invariants tools user-questions | 2 | 1 | manifest 非 private |
user-approval@deepseek-ai/dsh-user-approval |
User-approval seam (ctx.approval) for the DeepSeek Harness: one-shot permission decisions dispatched to composed answerers over the approval/request waterfall, fail-closed by default | agent brand invariants llm scope session system-prompt | 3 | 2 | manifest 非 private |
user-questions@deepseek-ai/dsh-user-questions |
Abstract user-questions seam (ctx.userQuestions) for asking the human during agent runs | agent invariants llm | 3 | 1 | manifest 非 private |
jobs3 包 · 8 源文件 · 5 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
jobs@deepseek-ai/dsh-jobs |
Background job registry (ctx.jobs) for the DeepSeek Harness — shared ids, owner isolation, polling, cancellation, and completion listeners for long-running tool work | agent brand invariants session | 4 | 2 | manifest 非 private |
jobs-local@deepseek-ai/dsh-jobs-local |
Process-local implementation of the DeepSeek Harness background job registry seam | agent invariants jobs scope timeout | 2 | 2 | manifest 非 private |
tool-jobs@deepseek-ai/dsh-tool-jobs |
Model-facing background job control tools (job_output, job_list, job_kill) over the ctx.jobs registry | agent invariants jobs llm output-retention system-prompt tools | 2 | 1 | manifest 非 private |
llm5 包 · 46 源文件 · 41 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
llm@deepseek-ai/dsh-llm |
Provider-neutral LLM service interface for the DeepSeek Harness | attachment brand invariants timeout | 14 | 11 | manifest 非 private |
llm-deepseek@deepseek-ai/dsh-llm-deepseek |
DeepSeek chat-completions adapter for the DeepSeek Harness LLM seam | anonymous-user-id credentials invariants launch-environment llm settings timeout | 7 | 9 | manifest 非 private |
llm-pi-ai@deepseek-ai/dsh-llm-pi-ai |
pi-ai-backed DeepSeek adapter for the DeepSeek Harness LLM seam (design-verification twin of dsh-llm-deepseek) | attachment credentials invariants launch-environment llm settings timeout | 10 | 13 | manifest 非 private |
llm-retry@deepseek-ai/dsh-llm-retry |
Provider-routed LLM request retry policy for the DeepSeek Harness | agent brand invariants llm session timeout | 5 | 5 | manifest 非 private |
token-meter@deepseek-ai/dsh-token-meter |
Replay-aware token measurement service (ctx.tokenMeter) for the DeepSeek Harness | compaction invariants llm session session-projection | 10 | 3 | manifest 非 private |
lsp3 包 · 17 源文件 · 15 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
lsp@deepseek-ai/dsh-lsp |
Abstract LSP capability seam (ctx.lsp) for the DeepSeek Harness — language-server provider registry keyed by branded id and extension mapping, order-independent per-query selection, normalized definition/references/implementation/hover requests and results, and the LspError taxonomy | brand invariants llm | 4 | 1 | manifest 非 private |
lsp-stdio@deepseek-ai/dsh-lsp-stdio |
Generic stdio language-server provider for the DeepSeek Harness LSP capability seam (ctx.lsp) — spawns configured servers, translates JSON-RPC, and serves transient-open goToDefinition/findReferences/goToImplementation/hover queries in the host filesystem namespace | brand fs invariants llm lsp subprocess timeout | 9 | 10 | manifest 非 private |
tool-lsp@deepseek-ai/dsh-tool-lsp |
Model-facing lsp tool over the DeepSeek Harness LSP capability seam (ctx.lsp) — one read-only tool with goToDefinition/findReferences/goToImplementation/hover operations, one-based UTF-16 cursor coordinates, bounded location rendering, and hover normalization | invariants llm lsp system-prompt timeout tools | 4 | 4 | manifest 非 private |
mcp1 包 · 5 源文件 · 6 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
mcp-client@deepseek-ai/dsh-mcp-client |
MCP client bridge: connects to MCP servers and registers their tools on ctx.tools | invariants llm subprocess timeout tools | 5 | 6 | manifest 非 private |
plan1 包 · 4 源文件 · 4 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
plan-mode@deepseek-ai/dsh-plan-mode |
Logged per-agent plan mode with deployment guidance, a direct slash command, and a user-reviewed exit | agent commands invariants llm session session-projection system-prompt tools user-questions | 4 | 4 | manifest 非 private |
preset2 包 · 11 源文件 · 9 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
agent-presets@deepseek-ai/dsh-agent-presets |
Per-session agent composition from preset cordis.yml files for the DeepSeek Harness | agent atomic-write home-paths invariants scope session settings system-prompt | 9 | 8 | manifest 非 private |
persona@deepseek-ai/dsh-persona |
Composition-authored deployment persona section for the DeepSeek Harness | invariants system-prompt | 2 | 1 | manifest 非 private |
runtime-diagnostics1 包 · 2 源文件 · 1 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
invariants@deepseek-ai/dsh-invariants |
Registry service for package-owned DeepSeek Harness runtime invariants | 无 | 2 | 1 | manifest 非 private |
sandbox4 包 · 22 源文件 · 25 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
sandbox@deepseek-ai/dsh-sandbox |
Abstract process-sandbox seam (ctx.sandbox) for the DeepSeek Harness: same-world confinement vocabulary and the SandboxProvider contract | invariants llm session | 4 | 3 | manifest 非 private |
sandbox-local@deepseek-ai/dsh-sandbox-local |
Local process-sandbox backends for the DeepSeek Harness sandbox seam: bwrap, the npm-distributed landlock-run launcher, macOS Seatbelt, or the Windows ACL restricted-token runner — functionally probed, fail-closed | invariants llm sandbox sandbox-windows-acl session | 3 | 6 | manifest 非 private |
sandbox-policy@deepseek-ai/dsh-sandbox-policy |
Per-call sandbox policy resolver and current model context: deployment fallbacks plus each session's mode and workspace root, shared by every enforcing capability family | agent invariants sandbox session system-prompt | 3 | 2 | manifest 非 private |
sandbox-windows-acl@deepseek-ai/dsh-sandbox-windows-acl |
Windows ACL write-restriction sandbox backend (restricted-token spawn with capability-SID write allowlist) for the DeepSeek Harness sandbox seam | invariants | 12 | 14 | manifest 非 private |
schedule1 包 · 8 源文件 · 7 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
schedule@deepseek-ai/dsh-schedule |
Agent-scoped durable after, at, and fixed-rate reminders over the session event log | agent brand invariants llm session session-persistence tools | 8 | 7 | manifest 非 private |
sdk3 包 · 13 源文件 · 8 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
client@deepseek-ai/dsh-sdk-client |
TypeScript client SDK for driving a DeepSeek Harness runtime subprocess over stdio JSON-RPC: the DeepSeekHarness high-level turns API and the lower-level HarnessClient | invariants llm sdk-protocol session | 6 | 3 | manifest 非 private |
protocol@deepseek-ai/dsh-sdk-protocol |
Shared wire protocol for the DeepSeek Harness SDK runtime: the newline-delimited JSON-RPC stdio transport and the named request, result, and notification types spoken between the runtime server and SDK clients | invariants llm session subagent | 4 | 1 | manifest 非 private |
server@deepseek-ai/dsh-sdk-jsonrpc-server |
Stdio JSON-RPC server plugin for out-of-process DeepSeek Harness SDK clients | agent invariants llm llm-deepseek scope sdk-protocol session subagent | 3 | 4 | manifest 非 private |
session13 包 · 45 源文件 · 33 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
session-checkpoint-policy@deepseek-ai/dsh-session-checkpoint-policy |
Semantic session durability checkpoints before model requests and tool side effects | agent invariants llm session session-persistence tools | 2 | 3 | manifest 非 private |
session-persistence@deepseek-ai/dsh-session-persistence |
Abstract durable session persistence seam (ctx.sessionPersistence) for the DeepSeek Harness | brand invariants session timeout | 6 | 5 | manifest 非 private |
session-persistence-jsonl@deepseek-ai/dsh-session-persistence-jsonl |
JSONL durable session persistence backend for the DeepSeek Harness | invariants session session-persistence | 7 | 4 | manifest 非 private |
session-persistence-sqlite@deepseek-ai/dsh-session-persistence-sqlite |
SQLite durable session persistence backend for the DeepSeek Harness | invariants session session-persistence | 3 | 1 | manifest 非 private |
session-projection@deepseek-ai/dsh-session-projection |
Session-projection seam: the merge-extensible projection type table, the provider contract, and the ctx.sessionProjections registry serving whole current values of log-derived per-session state | invariants session | 3 | 1 | manifest 非 private |
session-projection-cache@deepseek-ai/dsh-session-projection-cache |
Persisted projection cache (ctx.sessionProjectionCache): durable per-session projection checkpoints over the domain data form, throttled write-behind, and the cold-read ladder (cache row + persistence tail replay) | invariants session session-persistence session-projection storage-domain | 3 | 1 | manifest 非 private |
session-stats@deepseek-ai/dsh-session-stats |
Whole-log conversation counts and wall times projection (sessionStats) for the DeepSeek Harness | invariants llm session session-projection | 5 | 2 | manifest 非 private |
session-telemetry@deepseek-ai/dsh-session-telemetry |
SessionTelemetryBackend seam for the DeepSeek Harness: session-event capture, projection, redaction, and handoff to a reporting backend | agent invariants session | 3 | 2 | manifest 非 private |
session-telemetry-otel@deepseek-ai/dsh-session-telemetry-otel |
OpenTelemetry backend for the DeepSeek Harness telemetry seam: hands captured session records to the OTel JS SDK's log pipeline | anonymous-user-id command-feedback invariants llm session session-telemetry | 2 | 2 | manifest 非 private |
session-title@deepseek-ai/dsh-session-title |
Log-backed session title service and provider registry for the DeepSeek Harness | brand invariants llm session session-projection | 5 | 7 | manifest 非 private |
session-title-all-prompts-llm@deepseek-ai/dsh-session-title-all-prompts-llm |
All-user-messages LLM provider plugin for DeepSeek Harness session titles | invariants llm session session-title session-title-llm | 2 | 1 | manifest 非 private |
session-title-first-prompt-llm@deepseek-ai/dsh-session-title-first-prompt-llm |
First-message LLM provider plugin for DeepSeek Harness session titles | invariants llm session session-title session-title-llm | 2 | 3 | manifest 非 private |
session-title-llm@deepseek-ai/dsh-session-title-llm |
Shared LLM generation policy for DeepSeek Harness session-title providers | invariants llm session session-title timeout | 2 | 1 | manifest 非 private |
session-query4 包 · 30 源文件 · 16 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
session-log-export@deepseek-ai/dsh-session-log-export |
Web Session-log export command and shared download dialog | client-locale client-runtime client-ui-commands client-ui-conversation client-ui-primitives client-ui-slots commands invariants | 8 | 7 | manifest 非 private |
session-query@deepseek-ai/dsh-session-query |
Combined session query service contract with concrete reads, traces, and filters | brand invariants llm session session-persistence session-title | 11 | 4 | manifest 非 private |
session-query-sqlite@deepseek-ai/dsh-session-query-sqlite |
Concrete ctx.sessionQuery backend with SQLite FTS5 search | invariants session session-persistence session-query | 4 | 3 | manifest 非 private |
tool-session-query@deepseek-ai/dsh-tool-session-query |
Workspace-authorized model-facing session history search, trace, and event read tools | invariants llm session session-query system-prompt timeout tools | 7 | 2 | manifest 非 private |
settings2 包 · 6 源文件 · 9 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
settings@deepseek-ai/dsh-settings |
Abstract user-settings seam (ctx.settings) for the DeepSeek Harness | brand invariants | 4 | 4 | manifest 非 private |
settings-file@deepseek-ai/dsh-settings-file |
File-backed settings provider (settings.yaml) for the DeepSeek Harness | atomic-write home-paths invariants settings | 2 | 5 | manifest 非 private |
shell9 包 · 27 源文件 · 21 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
bash-local@deepseek-ai/dsh-bash-local |
Local-subprocess implementation of the DeepSeek Harness bash executor seam | invariants settings shell subprocess timeout | 2 | 2 | manifest 非 private |
bash-sandbox@deepseek-ai/dsh-bash-sandbox |
Sandbox-consuming implementation of the DeepSeek Harness bash executor seam (confines every command via ctx.sandbox, reports denial/enforcement result facts) | bash-local invariants sandbox sandbox-policy shell | 3 | 5 | manifest 非 private |
pwsh-local@deepseek-ai/dsh-pwsh-local |
Local PowerShell implementation of the DeepSeek Harness bash executor seam | invariants settings shell subprocess timeout | 3 | 2 | manifest 非 private |
pwsh-sandbox@deepseek-ai/dsh-pwsh-sandbox |
Sandbox-consuming implementation of the DeepSeek Harness PowerShell executor seam (confines every command via ctx.sandbox, reports denial/enforcement result facts) | invariants pwsh-local sandbox sandbox-policy shell | 3 | 2 | manifest 非 private |
shell@deepseek-ai/dsh-shell |
Abstract bash executor seam (ctx.shell) for the DeepSeek Harness | invariants sandbox settings subprocess | 4 | 2 | manifest 非 private |
shell-env@deepseek-ai/dsh-shell-env |
Tool-independent managed DSH_* shell environment registry | home-paths invariants session-persistence shell tools | 2 | 1 | manifest 非 private |
tool-bash@deepseek-ai/dsh-tool-bash |
Model-facing bash tool with optional generic background-job and sandbox-escalation support | agent invariants jobs llm sandbox sandbox-policy shell shell-env system-prompt tools user-approval | 4 | 2 | manifest 非 private |
tool-bash-persistent@deepseek-ai/dsh-tool-bash-persistent |
Model-facing owner-scoped persistent Bash tool backed by the Harness PTY service | agent invariants terminal timeout tools | 2 | 2 | manifest 非 private |
tool-pwsh@deepseek-ai/dsh-tool-pwsh |
Model-facing pwsh tool over the bash executor seam | agent invariants jobs llm sandbox sandbox-policy shell shell-env system-prompt tools user-approval | 4 | 3 | manifest 非 private |
skill4 包 · 8 源文件 · 5 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
skill@deepseek-ai/dsh-skill |
Agent skill provider registry for the DeepSeek Harness | invariants llm scope | 2 | 1 | manifest 非 private |
skill-badge@deepseek-ai/dsh-skill-badge |
Bundled dsh badge skill provider for DeepSeek Harness | invariants skill | 2 | 1 | manifest 非 private |
skill-filesystem@deepseek-ai/dsh-skill-filesystem |
Local filesystem skill provider for the DeepSeek Harness | fs home-paths invariants skill | 2 | 2 | manifest 非 private |
tool-skill@deepseek-ai/dsh-tool-skill |
Model-facing skill loading tool for the DeepSeek Harness | agent invariants llm skill tools | 2 | 1 | manifest 非 private |
spill3 包 · 9 源文件 · 3 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
spill@deepseek-ai/dsh-spill |
Abstract spill storage seam (ctx.spillStore) for the DeepSeek Harness — save oversized tool text and return a retrieval locator | brand invariants llm session | 3 | 1 | manifest 非 private |
spill-local@deepseek-ai/dsh-spill-local |
Local-filesystem implementation of the DeepSeek Harness spill storage seam (private session-scoped files) | invariants spill | 3 | 1 | manifest 非 private |
spill-policy@deepseek-ai/dsh-spill-policy |
Tool-result spill policy for the DeepSeek Harness — replaces oversized plain-text tool results with a retained preview plus a spill-file path (no service API) | invariants llm output-retention session spill tools | 3 | 1 | manifest 非 private |
storage4 包 · 20 源文件 · 8 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
storage@deepseek-ai/dsh-storage |
Storage hub (ctx.storage): named backend registry plus mounted data-form facilities for the DeepSeek Harness | invariants | 5 | 2 | manifest 非 private |
storage-domain@deepseek-ai/dsh-storage-domain |
Domain data form (ctx.storage.domain): schema-validated, event-emitting KV domains over storage backends for the DeepSeek Harness | invariants storage | 6 | 3 | manifest 非 private |
storage-json@deepseek-ai/dsh-storage-json |
JSON file KV storage backend for the DeepSeek Harness storage hub | invariants storage | 5 | 1 | manifest 非 private |
storage-sqlite@deepseek-ai/dsh-storage-sqlite |
SQLite storage backend (kv facet) for the DeepSeek Harness storage hub | invariants storage | 4 | 2 | manifest 非 private |
subagent11 包 · 46 源文件 · 43 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
subagent@deepseek-ai/dsh-subagent |
Abstract subagent seam (ctx.subagents): named-provider registry for delegating to child agents | agent agent-presets brand invariants jobs llm sandbox sandbox-policy scope session session-persistence session-projection session-projection-cache tools user-approval | 18 | 10 | manifest 非 private |
subagent-acp@deepseek-ai/dsh-subagent-acp |
Out-of-process ACP subagent backend: drives a child agent in a spawned subprocess over the Agent Client Protocol | agent invariants llm session subagent subprocess timeout | 3 | 4 | manifest 非 private |
subagent-claude-code@deepseek-ai/dsh-subagent-claude-code |
One-shot Claude Code subagent provider over the official Agent SDK | invariants llm session subagent subprocess timeout | 4 | 5 | manifest 非 private |
subagent-codex@deepseek-ai/dsh-subagent-codex |
One-shot Codex subagent provider over the official app-server protocol | invariants llm sdk-protocol session subagent subprocess timeout | 4 | 6 | manifest 非 private |
subagent-dsh-sdk@deepseek-ai/dsh-subagent-dsh-sdk |
Out-of-process SDK subagent backend: drives a child DeepSeek Harness runtime subprocess over stdio JSON-RPC through the TypeScript SDK client | agent invariants llm sdk-client session subagent subprocess | 3 | 2 | manifest 非 private |
subagent-fork-in-process@deepseek-ai/dsh-subagent-fork-in-process |
In-process fork subagent backend: runs a child agent seeded with a prefix of the parent's log | agent invariants session subagent subagent-in-process-driver | 2 | 2 | manifest 非 private |
subagent-in-process-driver@deepseek-ai/dsh-subagent-in-process-driver |
Shared in-process subagent run driver: drives a child agent on ctx.agents (used by the spawn and fork backends) | agent invariants llm session subagent system-prompt tools | 3 | 4 | manifest 非 private |
subagent-spawn-in-process@deepseek-ai/dsh-subagent-spawn-in-process |
In-process spawn subagent backend: runs a fresh child agent on ctx.agents | invariants subagent subagent-in-process-driver | 2 | 3 | manifest 非 private |
tool-subagent@deepseek-ai/dsh-tool-subagent |
Model-facing subagent delegation tool over the ctx.subagents seam | agent invariants jobs llm subagent system-prompt tools | 2 | 3 | manifest 非 private |
tool-subagent-control@deepseek-ai/dsh-tool-subagent-control |
Globally named send_message, interrupt_agent, and list_agents tools over ctx.subagents continuations | invariants llm session subagent tools | 3 | 3 | manifest 非 private |
tool-subagent-report@deepseek-ai/dsh-tool-subagent-report |
Child-scoped report tool over ctx.subagents continuations | invariants llm subagent system-prompt tools | 2 | 1 | manifest 非 private |
subprocess2 包 · 8 源文件 · 8 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
subprocess@deepseek-ai/dsh-subprocess |
Subprocess seam (ctx.subprocess) for the DeepSeek Harness — managed process groups, bounded spill-backed output, and escalated kills behind one abstract service | invariants | 3 | 1 | manifest 非 private |
subprocess-local@deepseek-ai/dsh-subprocess-local |
Local-subprocess implementation of the DeepSeek Harness subprocess seam | invariants subprocess timeout | 5 | 7 | manifest 非 private |
terminal3 包 · 11 源文件 · 9 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
terminal@deepseek-ai/dsh-terminal |
Persistent PTY session seam for the DeepSeek Harness — owner-scoped ids, backend registry, interactive sends, reads, signals, and awaited cleanup | agent brand invariants | 3 | 1 | manifest 非 private |
terminal-bash@deepseek-ai/dsh-terminal-bash |
Persistent shell PTY backend over the DeepSeek Harness subprocess terminal primitive | agent invariants sandbox sandbox-policy session subprocess terminal | 5 | 5 | manifest 非 private |
tool-terminal@deepseek-ai/dsh-tool-terminal |
Six model-facing persistent PTY tools with owner isolation and generic background-job integration | agent invariants jobs llm output-retention system-prompt terminal tools | 3 | 3 | manifest 非 private |
test-support6 包 · 27 源文件 · 18 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
acp-snapshot@deepseek-ai/dsh-acp-snapshot |
ACP test kit: shared subprocess launcher, snapshot scenario harness, expected-output normalizers, and suite factory | invariants loader-smoke session | 6 | 4 | manifest 非 private |
agent-loop-testkit@deepseek-ai/dsh-agent-loop-testkit |
Shared prerequisite mounting for tests that exercise the concrete agent loop | agent invariants llm session system-prompt tools | 2 | 1 | manifest 非 private |
client-runtime@deepseek-ai/dsh-client-test-runtime |
jsdom slot test runtime: real Cordis Context + SlotRegistry + web-react renderer with test-owned session/workspace doubles for feature specs | client-runtime client-ui-slots client-web-react host-apiproxy invariants | 10 | 3 | manifest 非 private |
llm-mock-server@deepseek-ai/dsh-llm-mock-server |
Scriptable OpenAI-compatible HTTP/SSE fault server for LLM recovery tests | invariants | 4 | 3 | manifest 非 private |
llm-replay@deepseek-ai/dsh-llm-replay |
Replay LLM plugin: short-circuits llm/stream with model chunks reconstructed from a recorded session JSONL (keyless snapshot tests) | compaction invariants llm session | 2 | 1 | manifest 非 private |
loader-smoke@deepseek-ai/dsh-loader-smoke |
Shared subprocess and direct-agent harness for keyless real-Loader example smoke tests | agent invariants llm session | 3 | 6 | manifest 非 private |
todo1 包 · 4 源文件 · 5 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
tool-todo@deepseek-ai/dsh-tool-todo |
Model-facing todo_write tool over the DeepSeek Harness event-sourced session log | agent invariants session session-projection tools | 4 | 5 | manifest 非 private |
typert4 包 · 27 源文件 · 22 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
generator@deepseek-ai/dsh-typert-generator |
TypeScript project analyzer and model-driven Typert artifact generator | invariants | 17 | 18 | manifest 非 private |
loader@deepseek-ai/dsh-typert-loader |
Loader integration for generated Typert package contributions | invariants typert-registry | 2 | 1 | manifest 非 private |
protocol@deepseek-ai/dsh-typert-protocol |
Compiler-independent Remote metadata and Typert provider protocols | invariants | 3 | 2 | manifest 非 private |
registry@deepseek-ai/dsh-typert-registry |
Runtime registry for generated package reflection and Zod schemas | invariants typert-protocol | 5 | 1 | manifest 非 private |
util7 包 · 14 源文件 · 7 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
atomic-write@deepseek-ai/dsh-atomic-write |
Zero-dependency atomic file replacement: exclusive-create random-suffix temp + rename carrying the caller-stated permissions (writeFileAtomic) | invariants | 2 | 2 | manifest 非 private |
brand@deepseek-ai/dsh-brand |
Type-only Branded<B> nominal-typing primitive for the DeepSeek Harness | invariants | 2 | 0 | manifest 非 private |
home-paths@deepseek-ai/dsh-home-paths |
Shared filesystem path helpers for the DeepSeek Harness | invariants | 2 | 1 | manifest 非 private |
launch-environment@deepseek-ai/dsh-launch-environment |
Immutable DeepSeek Harness launch environment that records which layer supplied each value | invariants | 2 | 1 | manifest 非 private |
native-command@deepseek-ai/dsh-native-command |
Zero-dependency no-shell execFile runner for host-native OS integrations: utf8 stdio capture, abort propagation, Windows hide | invariants | 2 | 1 | manifest 非 private |
output-retention@deepseek-ai/dsh-output-retention |
Zero-dependency bounded-retention primitive: ItemRetainer/TextRetainer + neutral notice helpers (what did we keep, what did we omit) | invariants | 2 | 1 | manifest 非 private |
timeout@deepseek-ai/dsh-timeout |
Zero-dependency timeout/deadline primitive: clampTimeout, deadline, timeoutOf, TimeoutReason (timing + classification only, no termination) | invariants | 2 | 1 | manifest 非 private |
web6 包 · 24 源文件 · 14 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
tool-web@deepseek-ai/dsh-tool-web |
Model-facing web tools (web_search, web_fetch) over the DeepSeek Harness web capability seam (ctx.web) | invariants llm system-prompt tools web | 5 | 4 | manifest 非 private |
web@deepseek-ai/dsh-web |
Abstract web access capability seam (ctx.web) for the DeepSeek Harness — search/fetch provider registry, registration-order-independent selection, request/result vocabulary, and the WebError taxonomy | invariants llm | 3 | 1 | manifest 非 private |
web-fetch-http@deepseek-ai/dsh-web-fetch-http |
Anonymous public HTTP(S) fetch provider for the DeepSeek Harness web capability seam (ctx.web) | invariants timeout web | 4 | 1 | manifest 非 private |
web-search-deepseek@deepseek-ai/dsh-web-search-deepseek |
DeepSeek-backed search provider (native web_search via the Anthropic-compatible API) for the DeepSeek Harness web capability seam (ctx.web) | agent credentials invariants launch-environment session settings web | 4 | 4 | manifest 非 private |
web-search-exa@deepseek-ai/dsh-web-search-exa |
Exa-backed search provider for the DeepSeek Harness web capability seam (ctx.web) | invariants launch-environment web | 4 | 2 | manifest 非 private |
web-search-perplexity@deepseek-ai/dsh-web-search-perplexity |
Perplexity-backed search provider for the DeepSeek Harness web capability seam (ctx.web) | invariants launch-environment web | 4 | 2 | manifest 非 private |
workflow4 包 · 19 源文件 · 14 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
tool-ralph@deepseek-ai/dsh-tool-ralph |
Model-facing fresh-agent Ralph loop over the workflow and subagent seams | agent invariants llm subagent system-prompt tools workflow | 2 | 2 | manifest 非 private |
tool-workflow@deepseek-ai/dsh-tool-workflow |
Model-facing workflow tool: run a JavaScript orchestration script over ctx.workflowEngine | agent invariants llm session system-prompt tools workflow | 3 | 2 | manifest 非 private |
workflow@deepseek-ai/dsh-workflow |
Workflow capability seam: ctx.workflowEngine service, run vocabulary, and workflow/* events | agent brand invariants llm session | 4 | 2 | manifest 非 private |
workflow-worker-thread@deepseek-ai/dsh-workflow-worker-thread |
worker-thread workflow engine: executes model-written orchestration scripts off the host event loop, bridging agent() calls back to ctx.subagents | agent brand invariants llm session subagent tools workflow | 10 | 8 | manifest 非 private |
workspace1 包 · 6 源文件 · 2 测试
| Package | 上游 manifest 描述 | 内部 dsh 依赖 | 源文件 | 测试 | 发布面 |
|---|---|---|---|---|---|
workspace@deepseek-ai/dsh-workspace |
Workspace entity registry (ctx.workspaceRegistry): durable workspace records with validated session attachment over the domain data form for the DeepSeek Harness | brand invariants session session-persistence storage storage-domain | 6 | 2 | manifest 非 private |
本章复核清单
- 只在确认上游
HEAD等于固定基线后重新运行 inventory。 - 枚举全部两层 package manifest:49 group、219 package。
- 完整采集直接内部 dependency/peerDependency,未把动态边伪装成 import 边。
- 把确定性文件数与复杂度、覆盖率结论严格分开。
- 确认每包都有 README 与 invariant companion,恰好三个包拥有 bundle patch。
- 将“非 private”准确表述为“结构上可发布”,没有声称 npm 已实际发布。
- 始终把六个研究平面标记为本研究自己的 taxonomy。
我的学习体会
内容仅自动保存到当前浏览器,不上传、不进入仓库。你可以导出 Markdown 自行归档。