DAG总览 / 组目录 / G05 客户端运行时

dsh-client-modules · @deepseek-ai/dsh-client-modules

Layer 1G05L2 web-app
目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
同一拓扑层(Layer 1,层次遍历层序):
↑ Layer 0(29 插件)Layer 1↓ Layer 2(11 插件)

插件信息

包名@deepseek-ai/dsh-client-modules
分组G05 · 客户端运行时
拓扑层Layer 1(层次遍历:被依赖方先于依赖方)
源码路径packages/client/modules
来源层L2 web-app bundle(base 之上装配)

① 实现逻辑

Node 半增量扫描 Loader 中声明 `dsh.client` 的包(`internal/plugin` 事件触发 microtask flush,激活期同步 flush 同一实现),按模块图拓扑排序组合 `window.__DSH_BOOT__` 条目图 (src/index.ts:596-657, 501-533)。它按行读取并缓存客户端 bundle、生成 revision 化的 combo 脚本与 source map、注册 `/plugins` 路由并惰性生成响应体 (src/index.ts:434-459, 1128-1156),同时提供 `clientModules` 服务(rebuilt/onRebuilt/onGraphChanged)作为 HMR Node 半的注册与通知面 (src/index.ts:706-756)。

内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件 上游依赖 下游依赖 外部 seam

② 注册/提供(provides)

③ 依赖(depends_on · 上游前驱)

cordis-plugin-loaderE1+E2
以 Loader 行为输入扫描 dsh.client 声明并解析包真实位置
src/index.ts:34 + src/index.ts:597 static inject 'loader' + src/index.ts:639 ctx.loader.entries()
dsh-host-webserverE1+E2
注册 /plugins bundle 路由并向 index 注入启动脚本与全局图
src/index.ts:35 + src/index.ts:653 ctx.inject(['webServer']) + src/index.ts:649 webCtx.webServer.register
dsh-invariantsE2
注册包级不变量,校验模块注册表随 fiber 释放而清理
src/invariant.ts:8 + src/invariant.ts:15 inject 'invariants' + src/invariant.ts:44 ctx.invariants.register

④ 被依赖(dependents · 下游消费者)

dsh-client-hmr
读取客户端模块图与 artifact 基线,并把重建事件反馈回图
src/index.ts:15 + src/index.ts:27 inject 'clientModules' + src/index.ts:148 ctx.clientModules.onGraphChanged
dsh-client-ui-settings-plugin-inventory
读取客户端模块加载状态并触发重试
src/client/index.ts:4 type-only import + src/client/index.ts:52 ctx.modules.entries.state
dsh-client-web
以客户端模块系统作为 loader.internal 并消费其 manifest/图
src/boot.ts:11 + src/boot-client.ts:9
dsh-cordis-client-runner
提供浏览器侧模块系统以装载动态包入口
src/client/index.ts:182 inject 'modules' + src/client/runtime.ts:23 import