Cordis 专栏:学习路径与目录

专栏:Cordis 插件框架 · 第 1 / 12 篇
Cordis插件框架TypeScript

Cordis 是 dsh 底层的插件框架:插件向共享上下文贡献服务、类型化事件和可逆副作用。dsh 把它以源码形式 vendor 进仓库(vendor/cordis/,核心仅约 2700 行 TypeScript),改名 @deepseek-ai/cordis。读懂它,dsh 源码里 80% 的”魔法”就有了名字。

这个专栏的特别之处:每一篇都直接引用 vendored 源码逐行讲解——不是教程式的”用法示例”,而是带你去 context.tsevents.tsfiber.ts 里看实现。

前置要求

  • 完成「TypeScript 与 Node 地基」专栏(特别是第 5 篇声明合并、第 7 篇插件宿主、第 4 篇事件循环);
  • 第 7 篇我们手写过 60 行的 mini 插件宿主——Cordis 专栏会反复对照它:“工业版多出来的每一行防的是什么”。

学习路径

图表(cordis-learning-path.md)

目录

#篇章核心问题
2第一个插件:三种形态与最小运行环境插件长什么样?怎么跑起来?
3Context:依赖容器与 Proxyctx 是什么?ctx.tools 为什么能点出来?
4服务系统:provide 与 Service 基类服务如何注册、如何变成可调用对象?
5依赖注入:inject 与门控“等依赖就绪再启动”是怎么实现的?
6事件系统(上):五种分发模式emit/waterfall/serial 的实现原理?
7事件系统(下):类型安全与作用域事件名拼错为何编译报错?作用域过滤怎么做?
8fiber 与 effect:可逆副作用定时器、监听器如何”注册即托管”?
9生命周期:fiber 状态机PENDING→ACTIVE→DISPOSED 的完整旅程
10作用域:isolate 与上下文继承dsh 怎么让每个 agent 有独立的世界?
11热重载:fiber.update 与 HMR改配置不重启是怎么做到的?
12实战:用 Cordis 组装一个微应用毕业项目:配置树 + 插件 + 事件 + 优雅关机

运行环境

所有示例可直接运行:

mkdir cordis-lab && cd cordis-lab
npm init -y && npm i cordis
npx tsx 你的文件.ts     # 或 node --experimental-strip-types

示例使用上游 npm 包 cordis(cordiverse 出品);dsh 内 vendored 的 @deepseek-ai/cordis 是同一框架的改名版(v4 系),API 一致。想读 dsh 内那份源码:deepseek-harness/vendor/cordis/src/

本专栏是「TypeScript 与 Node 地基」的进阶篇、「DeepSeek Harness」专栏的直接前置。读完本专栏再进 dsh 专栏第 4 篇之后的内容,体感是”全部在复习”。

← 返回文章列表