Structured walkthrough of the dsh plugin system across seven layers:
Cordis framework internals, boot composition (cordis.yml/profile/bundle/
patch), the capability-seam three-role pattern (traced via shell),
the tool registry and execution pipeline, a real plugin anatomy
(todo_write), cross-cutting invariants, and a source file index.
Analysis-only notes under analysis/, not part of the gated docs/
pipeline. Snapshot base: abe560f81e (0.1.0-rc.5).
Co-Authored-By: Claude <noreply@anthropic.com>
DeepSeek Harness 插件系统分析
本目录是对 dsh 插件系统实现的详细分析,基于源码阅读整理。覆盖从底层框架(vendored Cordis)到组合层、能力层、工具层,并解剖一个真实插件。
文档结构
| 文档 | 主题 | 关键源码 |
|---|---|---|
| 01-cordis-framework.md | 框架底座:Context 代理、Service、Fiber 生命周期、可逆 effect、五种事件分派 | vendor/cordis/src/ |
| 02-boot-composition.md | 启动组合:cordis.yml 行格式、!!js 延迟求值、profile/bundle/patch 四层叠加、patch 算法 |
vendor/loader/、vendor/include/、packages/boot/app-boot/ |
| 03-capability-seam.md | 能力接缝三角色模式(Service Definition / Provider / Consumer),以 shell seam 完整追踪 | packages/shell/ |
| 04-tool-registry.md | 工具注册表与执行流水线、canonical 输出契约、Code Mode | packages/core/tools/ |
| 05-plugin-anatomy.md | 解剖真实插件 todo_write,集中体现所有机制 |
packages/todo/tool-todo/src/index.ts |
| 06-invariants.md | 贯穿全局的不变量与工程约束 | AGENTS.md |
| 07-file-index.md | 关键源码文件索引 | — |
速览:一句话总结
dsh 的插件系统是「Cordis 代理 + 声明式依赖 + 可逆 effect 注册 + 五种事件分派」作底座,叠上「cordis.yml 行 + profile/bundle/patch 层叠加」的配置组合层,再用「Service Definition/Provider/Consumer 三角色 seam」封装可替换能力,所有插件通过 ctx.<key> 互相发现、通过 waterfall 事件挂策略——所以换一个 provider 就能连带迁移一整类能力,而工具和 loop 一行不改。
数据背景
- 版本:
0.1.0-rc.5(developer preview,预告破坏性变更) - 规模:226 个可发布 npm 包、~50 个包分组、
packages/*/src~198K 行 TS - 测试:692 个 spec + 44 个 e2e
- 无
.codegraph/索引,分析基于源码直接阅读
使用说明
本目录是分析笔记,不属于 dsh 官方 docs 体系(未走 doc-sync 门禁、非双语)。查阅时建议按编号顺序阅读,每篇文档末尾附相关源码的文件路径与行号引用。
快照基准
本分析基于以下 commit 的检出整理:
- commit:
abe560f81edebe5f6a5b62706ff502daa0dccd40(abe560f81e) - 版本:
0.1.0-rc.5 - 日期:2026-08-13
- 提交:
release(dsh): 0.1.0-rc.5
后续代码演进可能使引用的 file:line 偏移;结构层面的分析在架构大改前应当稳定。若需核对,可在该 commit 上 git checkout 后比对。