Files
lambert.liandClaude 740c3208c5 docs(analysis): add plugin-system analysis notes
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>
2026-08-14 11:05:25 +08:00
..

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.5developer preview,预告破坏性变更)
  • 规模:226 个可发布 npm 包、~50 个包分组、packages/*/src ~198K 行 TS
  • 测试:692 个 spec + 44 个 e2e
  • .codegraph/ 索引,分析基于源码直接阅读

使用说明

本目录是分析笔记,不属于 dsh 官方 docs 体系(未走 doc-sync 门禁、非双语)。查阅时建议按编号顺序阅读,每篇文档末尾附相关源码的文件路径与行号引用。

快照基准

本分析基于以下 commit 的检出整理:

  • commitabe560f81edebe5f6a5b62706ff502daa0dccd40abe560f81e
  • 版本:0.1.0-rc.5
  • 日期:2026-08-13
  • 提交:release(dsh): 0.1.0-rc.5

后续代码演进可能使引用的 file:line 偏移;结构层面的分析在架构大改前应当稳定。若需核对,可在该 commit 上 git checkout 后比对。