源文件索引:packages/extensions
本页由 study-tools/generate-source-index.mjs 根据官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec 生成,共 64 个代码或界面源文件。每个标题对应一个真实路径;用途和拆分原因是面向初学者的结构化解释,自动索引不等于人工精读。
图例
本页所有条目共用以下说明:
- 自动索引只提供定位线索,复杂行为需要回到源码和测试确认。
- 条目中的行数、声明、结构线索和静态 import 数字是文件级定位证据,用来约束“为什么这样设计”的解释范围;它们用于定位,不替代人工源码阅读。
- 源码链接固定到官方提交;如果当前条目与运行版本不同,应先重新生成索引再下结论。
条目按所属包分组:packages/extensions/cordis-client-runner(18 条)、packages/extensions/cordis-host-runner(14 条)、packages/extensions/tool-cordis(9 条)、packages/extensions/ui-cordis(23 条)。
packages/extensions/cordis-client-runner
packages/extensions/cordis-client-runner/src/client/api-catalog.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:API 边界
- 这个文件有什么用:它集中处理 Cordis 插件框架、浏览器端、运行驱动的请求、响应或客户端调用,把外部字段转换成内部可以使用的形状。
- 为什么这样设计:外部 API 的字段和错误格式集中在边界转换,内部服务不必到处携带 HTTP/RPC 细节,客户端和服务端也能分别演进。
- 文件级设计证据:源码顶部注释把它定位为“Generated by scripts/gen-cordis-api.ts — do not edit by hand; run pnpm run gen-cordis-api to regenerate (freshness-gated by pnpm run verify-cordis-api in doc-sync). The machine-readable cordis API catalog cordis_inspect serves to the model: harness services...”;固定提交中扫描到的声明包括
ApiParameter、ServiceApiMethod、ServiceApiEntry、EventApiEntry、InheritedApiEntry;本地静态 import 图显示它直接依赖 0 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/extensions/cordis-client-runner/src/client/providers.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md和入口,再读当前实现,沿着相关类型、协议或实现和packages/extensions/cordis-client-runner/src/client/providers.ts确认输入输出,最后对照packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 971 行;扫描到的声明包括
ApiParameter、ServiceApiMethod、ServiceApiEntry、EventApiEntry、InheritedApiEntry、TypeApiEntry、SERVICE_API、EVENT_API;源码顶部原注释(英文,仅作回查线索):Generated by scripts/gen-cordis-api.ts — do not edit by hand; run pnpm run gen-cordis-api to regenerate (freshness-gated by pnpm run verify-cordis-api in doc-sync). The machine-readable cordis API catalog cordis_inspect serves to the model: harness services...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/client/evaluator.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:扩展实现
- 这个文件有什么用:这个文件把一项可选能力挂进 Cordis 插件树或宿主边界,让核心流程保持稳定而扩展可以独立组合。
- 为什么这样设计:可选能力通过扩展包接入插件树,核心包保持窄而稳定;扩展可以独立发布、替换和测试。
- 文件级设计证据:源码顶部注释把它定位为“Browser-half closure evaluation: the package source runs as the body of an async function whose parameters ARE the symbol surface. Shadowing parameters (setTimeout/fetch/require/…) turn the ambient browser globals into teaching redirects without touching th...”;固定提交中扫描到的声明包括
DynamicCordisEvaluatedPlugin、DynamicCordisClosureEnv、DYNAMIC_CLIENT_REDIRECTS、DynamicCordisStyles、isDynamicCordisPlugin;本地静态 import 图显示它直接依赖 1 个源文件,并被 4 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/runtime.ts、packages/extensions/cordis-client-runner/tests/evaluator.client.spec.ts
- 对应测试:packages/extensions/cordis-client-runner/tests/evaluator.client.spec.ts、packages/extensions/cordis-client-runner/tests/runner.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md和入口,再读当前实现,沿着packages/api/remotes/src/client/index.ts和packages/extensions/cordis-client-runner/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/runtime.ts、packages/extensions/cordis-client-runner/tests/evaluator.client.spec.ts确认输入输出,最后对照packages/extensions/cordis-client-runner/tests/evaluator.client.spec.ts、packages/extensions/cordis-client-runner/tests/runner.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 222 行;扫描到的声明包括
DynamicCordisEvaluatedPlugin、DynamicCordisClosureEnv、DYNAMIC_CLIENT_REDIRECTS、DynamicCordisStyles、isDynamicCordisPlugin、evaluateClientHalf、closureTraps、harnessTrap;源码顶部原注释(英文,仅作回查线索):Browser-half closure evaluation: the package source runs as the body of an async function whose parameters ARE the symbol surface. Shadowing parameters (setTimeout/fetch/require/…) turn the ambient browser globals into teaching redirects without touching th...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/client/guard.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:策略与权限边界
- 这个文件有什么用:它集中判断 Cordis 插件框架、浏览器端、运行驱动是否允许以及需要哪种授权,让调用方不必各自复制权限规则。
- 为什么这样设计:权限判断集中后,所有调用路径可以共享同一条拒绝规则;策略变化也不会要求每个工具、路由和界面分别修补。
- 文件级设计证据:源码顶部注释把它定位为“The browser twin of the tool-cordis context facade: a whitelist of lifecycle-safe verbs plus optional ctx.get() lookup and declared-service property access, with framework internals withheld and Context-valued returns denied. Two seats carry extra machinery...”;固定提交中扫描到的声明包括
DynamicCordisSlotLedgerRow、DynamicCordisGuardEnv、dynamicCordisContext、denyContext、guardedService;本地静态 import 图显示它直接依赖 4 个源文件,并被 3 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/client/runtime/src/client/index.ts、packages/client/ui-theme/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/index.ts
- 对应测试:packages/extensions/cordis-client-runner/tests/guard.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md和入口,再读当前实现,沿着packages/api/remotes/src/client/index.ts、packages/client/runtime/src/client/index.ts、packages/client/ui-theme/src/client/index.ts和packages/extensions/cordis-client-runner/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/runtime.ts、packages/extensions/cordis-client-runner/tests/guard.client.spec.ts确认输入输出,最后对照packages/extensions/cordis-client-runner/tests/guard.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 239 行;扫描到的声明包括
DynamicCordisSlotLedgerRow、DynamicCordisGuardEnv、dynamicCordisContext、denyContext、guardedService、guardedSlots、guardedTheme、rejectGuard;源码顶部原注释(英文,仅作回查线索):The browser twin of the tool-cordis context facade: a whitelist of lifecycle-safe verbs plus optional ctx.get() lookup and declared-service property access, with framework internals withheld and Context-valued returns denied. Two seats carry extra machinery...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/client/index.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:模块入口
- 这个文件有什么用:它把 Cordis 插件框架、浏览器端、运行驱动相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。
- 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
- 文件级设计证据:源码顶部注释把它定位为“Dynamic-package runner, browser half: the load engine that turns one browser half's source into a live cordis plugin (closure → guard → module table → loader entry, ./runtime.ts), plus the retract announcement that unloads it. Nothing loads on activation: t...”;固定提交中扫描到的声明包括
CordisRunnerFace、name、inject、apply、invokeFailure;本地静态 import 图显示它直接依赖 11 个源文件,并被 5 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/client/modules/src/client/index.ts、packages/client/runtime/src/client/index.ts、packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts
- 对应测试:packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md、入口和消费者,再读当前契约,沿着packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/src/client/CordisPanel.tsx、packages/extensions/ui-cordis/src/client/slots.ts看它怎样约束运行时,最后对照packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 308 行;扫描到的声明包括
CordisRunnerFace、name、inject、apply、invokeFailure、invokeError、wireFailure;源码顶部原注释(英文,仅作回查线索):Dynamic-package runner, browser half: the load engine that turns one browser half's source into a live cordis plugin (closure → guard → module table → loader entry, ./runtime.ts), plus the retract announcement that unloads it. Nothing loads on activation: t...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/client/inspect-registry.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:服务或提供方
- 这个文件有什么用:它定义或提供 Cordis 插件框架、浏览器端、运行驱动的可取得服务,负责注册、查找或具体实现;接口和实现分开后,同一能力可以换成本地、远程或测试版本。
- 为什么这样设计:把“接口是什么”和“这一版怎样实现”分开,替换实现或写测试替身时不必改动使用者。
- 文件级设计证据:源码顶部注释把它定位为“Browser registry for read-only Cordis capability providers.”;固定提交中扫描到的声明包括
ClientCordisInspectQueryContext、ClientCordisInspectProviderRegistration、ClientCordisInspectHost、ClientCordisInspectRegistry、provideClientCordisInspect;本地静态 import 图显示它直接依赖 3 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts、vendor/cordis/src/index.ts、packages/extensions/cordis-client-runner/src/client/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md和入口,再读当前实现,沿着packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts、vendor/cordis/src/index.ts和packages/extensions/cordis-client-runner/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/providers.ts确认输入输出,最后对照packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 150 行;扫描到的声明包括
ClientCordisInspectQueryContext、ClientCordisInspectProviderRegistration、ClientCordisInspectHost、ClientCordisInspectRegistry、provideClientCordisInspect;源码顶部原注释(英文,仅作回查线索):Browser registry for read-only Cordis capability providers.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/client/orchestrator.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:扩展实现
- 这个文件有什么用:这个文件把一项可选能力挂进 Cordis 插件树或宿主边界,让核心流程保持稳定而扩展可以独立组合。
- 为什么这样设计:可选能力通过扩展包接入插件树,核心包保持窄而稳定;扩展可以独立发布、替换和测试。
- 文件级设计证据:源码顶部注释把它定位为“Page-side run orchestration for model approvals and direct panel gestures. Host activation always precedes Client loading. The same Plugin-keyed state drives every surface, so remounting a panel never loses an open approval or an in-flight transition.”;固定提交中扫描到的声明包括
CordisRunActivity、CordisRunFailure、CordisRunHostSeam、CordisRunOrchestratorEnv、CordisRunRequest;本地静态 import 图显示它直接依赖 3 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/runtime.ts、packages/extensions/cordis-client-runner/src/client/index.ts
- 对应测试:packages/extensions/cordis-client-runner/tests/orchestrator.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md和入口,再读当前实现,沿着packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/runtime.ts和packages/extensions/cordis-client-runner/src/client/index.ts、packages/extensions/cordis-client-runner/tests/orchestrator.client.spec.ts确认输入输出,最后对照packages/extensions/cordis-client-runner/tests/orchestrator.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 458 行;扫描到的声明包括
CordisRunActivity、CordisRunFailure、CordisRunHostSeam、CordisRunOrchestratorEnv、CordisRunRequest、CordisUserRunRequest、CordisRunOrchestrator、sameRequest;源码顶部原注释(英文,仅作回查线索):Page-side run orchestration for model approvals and direct panel gestures. Host activation always precedes Client loading. The same Plugin-keyed state drives every surface, so remounting a panel never loses an open approval or an in-flight transition.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/client/providers.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:服务或提供方
- 这个文件有什么用:它定义或提供 Cordis 插件框架、浏览器端、运行驱动的可取得服务,负责注册、查找或具体实现;接口和实现分开后,同一能力可以换成本地、远程或测试版本。
- 为什么这样设计:把“接口是什么”和“这一版怎样实现”分开,替换实现或写测试替身时不必改动使用者。
- 文件级设计证据:源码顶部注释把它定位为“Built-in Client inspect providers over live Client-owned services.”;固定提交中扫描到的声明包括
CLIENT_BUILTIN_INSPECTION、clientInspectProviders、registration、exactInput、readExact;本地静态 import 图显示它直接依赖 7 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/client/runtime/src/client/index.ts、packages/client/ui-theme/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md和入口,再读当前实现,沿着packages/api/remotes/src/client/index.ts、packages/client/runtime/src/client/index.ts、packages/client/ui-theme/src/client/index.ts和packages/extensions/cordis-client-runner/src/client/index.ts确认输入输出,最后对照packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 245 行;扫描到的声明包括
CLIENT_BUILTIN_INSPECTION、clientInspectProviders、registration、exactInput、readExact、compactSlotTree、inspectLiveSlot、inspectSlotCatalog;源码顶部原注释(英文,仅作回查线索):Built-in Client inspect providers over live Client-owned services.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/client/runtime.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:智能体运行时
- 这个文件有什么用:它参与 Cordis 插件框架、浏览器端、运行驱动的一次运行:领取输入、请求模型、处理工具或结束轮次;把状态集中管理可以保住顺序、取消和错误处理规则。
- 为什么这样设计:轮次状态、取消和顺序是高风险逻辑,集中在运行时文件中可以让不变量有一个明确的维护位置。
- 文件级设计证据:源码顶部注释把它定位为“Per-package browser lifecycle: evaluate the closure, wrap apply in the guard facade, seat a ready-made factory in the module table, and create a loader entry — so dynamic packages ride the exact machinery static plugins do (activation gating on inject, fibe...”;固定提交中扫描到的声明包括
CordisObservable、DynamicCordisLoadErrorCause、CordisErrorDetails、DynamicCordisClientHalf、DynamicCordisRenderFailure;本地静态 import 图显示它直接依赖 8 个源文件,并被 4 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts、packages/client/modules/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/index.ts
- 对应测试:packages/extensions/cordis-client-runner/tests/orchestrator.client.spec.ts、packages/extensions/cordis-client-runner/tests/runner.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md和入口,再读当前实现,沿着packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts、packages/client/modules/src/client/index.ts和packages/extensions/cordis-client-runner/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/orchestrator.ts、packages/extensions/cordis-client-runner/tests/orchestrator.client.spec.ts确认输入输出,最后对照packages/extensions/cordis-client-runner/tests/orchestrator.client.spec.ts、packages/extensions/cordis-client-runner/tests/runner.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 507 行;扫描到的声明包括
CordisObservable、DynamicCordisLoadErrorCause、CordisErrorDetails、DynamicCordisClientHalf、DynamicCordisRenderFailure、DynamicCordisLoadResult、DynamicCordisRunnerEnv、DynamicCordisLivePackage;源码顶部原注释(英文,仅作回查线索):Per-package browser lifecycle: evaluate the closure, wrap apply in the guard facade, seat a ready-made factory in the module table, and create a loader entry — so dynamic packages ride the exact machinery static plugins do (activation gating on inject, fibe...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:扩展槽位契约
- 这个文件有什么用:它为 Cordis 插件框架、浏览器端、运行驱动定义可插入的槽位和输入契约,让插件或界面扩展可以在不复制主流程的情况下接入。
- 为什么这样设计:把扩展点先定义成窄契约,可以让提供方和消费方独立演进;插件不需要复制宿主流程,也更容易在测试中替换。
- 文件级设计证据:源码顶部注释把它定位为“Generated by scripts/gen-client-catalog.ts — do not edit by hand; run pnpm run gen-client-catalog to regenerate (freshness-gated by pnpm run verify-client-catalog in doc-sync). The compile-time contract of the shipped web bundle's slot surface, as cordis_in...”;固定提交中扫描到的声明包括
ClientSlotOption、ClientSlotEntry、CLIENT_NOTES、CLIENT_SLOT_API;本地静态 import 图显示它直接依赖 0 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/extensions/cordis-client-runner/src/client/providers.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md、入口和消费者,再读当前契约,沿着packages/extensions/cordis-client-runner/src/client/providers.ts看它怎样约束运行时,最后对照packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 1888 行;扫描到的声明包括
ClientSlotOption、ClientSlotEntry、CLIENT_NOTES、CLIENT_SLOT_API;源码顶部原注释(英文,仅作回查线索):Generated by scripts/gen-client-catalog.ts — do not edit by hand; run pnpm run gen-client-catalog to regenerate (freshness-gated by pnpm run verify-client-catalog in doc-sync). The compile-time contract of the shipped web bundle's slot surface, as cordis_in...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/client/timer.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:扩展实现
- 这个文件有什么用:这个文件把一项可选能力挂进 Cordis 插件树或宿主边界,让核心流程保持稳定而扩展可以独立组合。
- 为什么这样设计:可选能力通过扩展包接入插件树,核心包保持窄而稳定;扩展可以独立发布、替换和测试。
- 文件级设计证据:源码顶部注释把它定位为“Browser implementation of the Cordis timer Service.”;固定提交中扫描到的声明包括
ClientTimerService、provideClientTimer;本地静态 import 图显示它直接依赖 1 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、vendor/cordis/src/index.ts、packages/extensions/cordis-client-runner/src/client/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md和入口,再读当前实现,沿着vendor/cordis/src/index.ts和packages/extensions/cordis-client-runner/src/client/index.ts确认输入输出,最后对照packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 216 行;扫描到的声明包括
ClientTimerService、provideClientTimer;源码顶部原注释(英文,仅作回查线索):Browser implementation of the Cordis timer Service.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/index.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:模块入口
- 这个文件有什么用:它把 Cordis 插件框架、浏览器端、运行驱动相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。
- 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
- 文件级设计证据:源码顶部注释把它定位为“Dynamic-package runner plugin, node half. Pure browser-side capability: the empty apply exists so the row appears in the host cordis.yml / Loader, while the browser half ships through exports"./client", discovered from the package.json dshClient declaration.”;固定提交中扫描到的声明包括
apply;本地静态 import 图显示它直接依赖 0 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts
- 对应测试:packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md、入口和消费者,再读当前契约,沿着packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts看它怎样约束运行时,最后对照packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 9 行;扫描到的声明包括
apply;源码顶部原注释(英文,仅作回查线索):Dynamic-package runner plugin, node half. Pure browser-side capability: the empty apply exists so the row appears in the host cordis.yml / Loader, while the browser half ships through exports"./client", discovered from the package.json dshClient declaration.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/src/invariant.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:运行时不变量
- 这个文件有什么用:它检查 Cordis 插件框架、浏览器端、运行驱动必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。
- 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
- 文件级设计证据:源码顶部注释把它定位为“Package-owned invariant companion for @deepseek-ai/dsh-cordis-client-runner. @module @deepseek-ai/dsh-cordis-client-runner/invariant”;固定提交中扫描到的声明包括
name、inject、apply;本地静态 import 图显示它直接依赖 2 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts、packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts
- 对应测试:packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着
packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts和packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts理解状态变化,最后对照packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 33 行;扫描到的声明包括
name、inject、apply;源码顶部原注释(英文,仅作回查线索):Package-owned invariant companion for @deepseek-ai/dsh-cordis-client-runner. @module @deepseek-ai/dsh-cordis-client-runner/invariant。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/tests/evaluator.client.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查 Cordis 插件框架、浏览器端、运行驱动的具体场景,包括“evaluateClientHalf”、“returns the object-form plugin and hands the page React instance to the closure”、“accepts the function form”、“redirects browser timers to the ctx facade”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“evaluateClientHalf”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:源码顶部注释把它定位为“@vitest-environment jsdom Closure evaluation account: the symbol surface a browser half receives, the teaching traps shadowing ambient globals, the parse/return diagnostics, and the style bookkeeping whose disposal the runner owns.”;固定提交中扫描到的声明包括
env、run;本地静态 import 图显示它直接依赖 2 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/evaluator.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/api/remotes/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/evaluator.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 195 行;扫描到的声明包括
env、run;扫描到的测试主题包括 “evaluateClientHalf”、“returns the object-form plugin and hands the page React instance to the closure”、“accepts the function form”、“redirects browser timers to the ctx facade”、“redirects fetch to the host half and require to the closure symbols”、“teaches the half split on any harness access”;源码顶部原注释(英文,仅作回查线索):@vitest-environment jsdom Closure evaluation account: the symbol surface a browser half receives, the teaching traps shadowing ambient globals, the parse/return diagnostics, and the style bookkeeping whose disposal the runner owns.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/tests/guard.client.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查 Cordis 插件框架、浏览器端、运行驱动的具体场景,包括“facade surface”、“forwards whitelisted lifecycle verbs to the real ctx”、“teaches the object form when an existing service was not declared”、“withholds framework internals with a teaching list”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“facade surface”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:源码顶部注释把它定位为“@vitest-environment jsdom Guard facade account: the whitelist a dynamic plugin's apply sees, the automatic shadowing priority on the slots seat, the theme seat's pinned override source and fiber-owned disposer, and the Context denial that keeps a dynamic pa...”;固定提交中扫描到的声明包括
pkg、boot;本地静态 import 图显示它直接依赖 4 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/client/runtime/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/guard.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/api/remotes/src/client/index.ts、packages/client/runtime/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/guard.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 255 行;扫描到的声明包括
pkg、boot;扫描到的测试主题包括 “facade surface”、“forwards whitelisted lifecycle verbs to the real ctx”、“teaches the object form when an existing service was not declared”、“withholds framework internals with a teaching list”、“answers”、“denies a service value or return that is a cordis Context”;源码顶部原注释(英文,仅作回查线索):@vitest-environment jsdom Guard facade account: the whitelist a dynamic plugin's apply sees, the automatic shadowing priority on the slots seat, the theme seat's pinned override source and fiber-owned disposer, and the Context denial that keeps a dynamic pa...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/tests/orchestrator.client.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查 Cordis 插件框架、浏览器端、运行驱动的具体场景,包括“the waiting affordance”、“publishes failures on their own observable”、“publishes one activity per definition, carrying the whole ask”、“keeps naming the session once the decision is made”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“the waiting affordance”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:源码顶部注释把它定位为“Run-orchestration account: the order the halves run in (and what a host-only definition skips), what each failure answers the host, and what a surface can read while it happens. The host seam and the load engine are stood in, because what is under test is t...”;固定提交中扫描到的声明包括
boot、ask;本地静态 import 图显示它直接依赖 4 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/orchestrator.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts、packages/extensions/cordis-client-runner/src/client/orchestrator.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 460 行;扫描到的声明包括
boot、ask;扫描到的测试主题包括 “the waiting affordance”、“publishes failures on their own observable”、“publishes one activity per definition, carrying the whole ask”、“keeps naming the session once the decision is made”、“keeps a stable snapshot reference between mutations, and notifies on each”、“drops only the waiting affordance when the request settles elsewhere”;源码顶部原注释(英文,仅作回查线索):Run-orchestration account: the order the halves run in (and what a host-only definition skips), what each failure answers the host, and what a surface can read while it happens. The host seam and the load engine are stood in, because what is under test is t...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/tests/plugin.client.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查 Cordis 插件框架、浏览器端、运行驱动的具体场景,包括“browser half”、“provides the load engine as the page run-state face”、“unloads on a forwarded withdrawal event”、“runs a host-only definition through the face without loading anything here”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“browser half”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:源码顶部注释把它定位为“@vitest-environment jsdom Plugin composition account: the dispatch family reaches the runner with its envelope rpcId, the service face is provided for UI surfaces, a load failure always reaches the console, and the fiber owns the runner's teardown. Plus the...”;固定提交中扫描到的声明包括
forward、boot;本地静态 import 图显示它直接依赖 9 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/gateway/src/client/index.ts、packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/api/gateway/src/client/index.ts、packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 460 行;扫描到的声明包括
forward、boot;扫描到的测试主题包括 “browser half”、“provides the load engine as the page run-state face”、“unloads on a forwarded withdrawal event”、“runs a host-only definition through the face without loading anything here”、“routes host.call through the namespace and unwraps the result”、“carries an omitted host.call argument to the namespace as null”;源码顶部原注释(英文,仅作回查线索):@vitest-environment jsdom Plugin composition account: the dispatch family reaches the runner with its envelope rpcId, the service face is provided for UI surfaces, a load failure always reaches the console, and the fiber owns the runner's teardown. Plus the...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/tests/runner.client.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查 Cordis 插件框架、浏览器端、运行驱动的具体场景,包括“load”、“mounts a browser half through the module table and the loader, then answers active”、“projects the contributions the package made”、“answers from live state when the revision is already loaded here”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“load”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:源码顶部注释把它定位为“@vitest-environment jsdom Load-engine account: what load answers its caller (that answer is what the run orchestration reports to the host), Plugin Run convergence against live state, per-Plugin serialization, the three-step teardown, and each failing stage...”;固定提交中扫描到的声明包括
runId、half、seated、boot;本地静态 import 图显示它直接依赖 8 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts、packages/client/modules/src/client/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/api/remotes/src/client/index.ts、packages/client/connection/src/client/index.ts、packages/client/modules/src/client/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 517 行;扫描到的声明包括
runId、half、seated、boot;扫描到的测试主题包括 “load”、“mounts a browser half through the module table and the loader, then answers active”、“projects the contributions the package made”、“answers from live state when the revision is already loaded here”、“replays the parked services a live package still waits for”、“replaces a live load when a newer revision arrives”;源码顶部原注释(英文,仅作回查线索):@vitest-environment jsdom Load-engine account: what load answers its caller (that answer is what the run orchestration reports to the host), Plugin Run convergence against live state, per-Plugin serialization, the three-step teardown, and each failing stage...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-client-runner/tsdown.config.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:构建或测试配置
- 这个文件有什么用:它告诉工具链怎样处理 Cordis 插件框架、浏览器端、运行驱动:从哪里开始、使用哪个环境、解析哪些依赖以及输出什么产物;这些规则集中后,构建和测试才可重复。
- 为什么这样设计:工具链配置独立于业务实现,构建、测试和发布可以复用同一套入口规则;改配置时也能单独看出运行环境变化。
- 文件级设计证据:本次固定提交归档没有扫描到顶部注释、顶层声明或专门的结构线索;本地静态 import 图显示它直接依赖 1 个源文件,并被 0 个源文件直接引用。
- 直接协作者:packages/extensions/cordis-client-runner/README.md、packages/client/tsdown.client.ts
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读
packages/extensions/cordis-client-runner/README.md,再读本配置/脚本,沿着所在包的入口或服务确认它如何影响入口和产物,最后对照对应 gate 或快照测试。 - 代码证据:固定提交归档实际读取结果:约 3 行。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner
packages/extensions/cordis-host-runner/src/guard.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:策略与权限边界
- 这个文件有什么用:它集中判断 Cordis 插件框架、服务端宿主、运行驱动是否允许以及需要哪种授权,让调用方不必各自复制权限规则。
- 为什么这样设计:权限判断集中后,所有调用路径可以共享同一条拒绝规则;策略变化也不会要求每个工具、路由和界面分别修补。
- 文件级设计证据:源码顶部注释把它定位为“The registration boundary between a sandboxed host half and the real runtime: ParameterSchemaSpec normalization + validation with teaching errors, the marker-guarded harness.defineTool / harness.registerTool pair, the harness.handle invoke-handler normalize...”;固定提交中扫描到的声明包括
sandboxDefineTool、normalizeHandler、sandboxRegisterTool、isPlugin、guardedPlugin;本地静态 import 图显示它直接依赖 5 个源文件,并被 4 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/core/scope/src/index.ts、packages/core/session/src/index.ts、packages/core/tools/src/index.ts、packages/extensions/cordis-host-runner/src/index.ts
- 对应测试:packages/extensions/cordis-host-runner/tests/sandbox.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 测试支持:packages/extensions/cordis-host-runner/tests/helpers.ts
- 阅读顺序:先读
packages/extensions/cordis-host-runner/README.md和入口,再读当前实现,沿着packages/core/scope/src/index.ts、packages/core/session/src/index.ts、packages/core/tools/src/index.ts和packages/extensions/cordis-host-runner/src/index.ts、packages/extensions/cordis-host-runner/src/lifecycle.ts、packages/extensions/cordis-host-runner/src/sandbox.ts确认输入输出,最后对照packages/extensions/cordis-host-runner/tests/sandbox.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 836 行;扫描到的声明包括
sandboxDefineTool、normalizeHandler、sandboxRegisterTool、isPlugin、guardedPlugin、pluginName、isPlainRecord、hasIntrinsicConstructor;源码顶部原注释(英文,仅作回查线索):The registration boundary between a sandboxed host half and the real runtime: ParameterSchemaSpec normalization + validation with teaching errors, the marker-guarded harness.defineTool / harness.registerTool pair, the harness.handle invoke-handler normalize...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/src/index.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:模块入口
- 这个文件有什么用:它把 Cordis 插件框架、服务端宿主、运行驱动相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。
- 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
- 文件级设计证据:源码顶部注释把它定位为“Dynamic Cordis Plugin service: immutable package definitions, one active run per Plugin, human-approved Client activation, and Host/Client invocation. @module @deepseek-ai/dsh-cordis-host-runner”;固定提交中扫描到的声明包括
CordisDynamicPluginId、CordisDynamicPackageId、CordisDynamicPluginRunId、ApprovalRequestId、Config;本地静态 import 图显示它直接依赖 12 个源文件,并被 7 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/core/agent/src/index.ts、packages/core/session/src/types.ts、packages/extensions/cordis-host-runner/src/guard.ts、examples/headless-agent/tests/code-mode.e2e.ts
- 对应测试:examples/headless-agent/tests/code-mode.e2e.ts、packages/extensions/cordis-host-runner/tests/runner.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 测试支持:packages/extensions/cordis-host-runner/tests/helpers.ts
- 阅读顺序:先读
packages/extensions/cordis-host-runner/README.md、入口和消费者,再读当前契约,沿着examples/headless-agent/tests/code-mode.e2e.ts、packages/extensions/cordis-host-runner/tests/helpers.ts、packages/extensions/cordis-host-runner/tests/runner.spec.ts看它怎样约束运行时,最后对照examples/headless-agent/tests/code-mode.e2e.ts、packages/extensions/cordis-host-runner/tests/runner.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 1274 行;扫描到的声明包括
CordisDynamicPluginId、CordisDynamicPackageId、CordisDynamicPluginRunId、ApprovalRequestId、Config、DynamicCordisSnapshotRow、DynamicCordisRunnerService、missingFor;源码顶部原注释(英文,仅作回查线索):Dynamic Cordis Plugin service: immutable package definitions, one active run per Plugin, human-approved Client activation, and Host/Client invocation. @module @deepseek-ai/dsh-cordis-host-runner。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/src/inspect-registry.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:服务或提供方
- 这个文件有什么用:它定义或提供 Cordis 插件框架、服务端宿主、运行驱动的可取得服务,负责注册、查找或具体实现;接口和实现分开后,同一能力可以换成本地、远程或测试版本。
- 为什么这样设计:把“接口是什么”和“这一版怎样实现”分开,替换实现或写测试替身时不必改动使用者。
- 文件级设计证据:源码顶部注释把它定位为“Host registry for model-visible, read-only Cordis capability queries.”;固定提交中扫描到的声明包括
HostCordisInspectQueryContext、HostCordisInspectProviderRegistration、CordisInspectRegistryService、view、validateManifest;本地静态 import 图显示它直接依赖 6 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/core/agent/src/index.ts、packages/core/session/src/index.ts、packages/core/session/src/types.ts、packages/extensions/cordis-host-runner/src/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts、packages/extensions/cordis-host-runner/tests/composition.spec.ts、packages/extensions/cordis-host-runner/tests/runner.spec.ts、packages/extensions/cordis-host-runner/tests/sandbox-context.spec.ts、packages/extensions/cordis-host-runner/tests/sandbox.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/cordis-host-runner/README.md和入口,再读当前实现,沿着packages/core/agent/src/index.ts、packages/core/session/src/index.ts、packages/core/session/src/types.ts和packages/extensions/cordis-host-runner/src/index.ts确认输入输出,最后对照examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts、packages/extensions/cordis-host-runner/tests/composition.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 248 行;扫描到的声明包括
HostCordisInspectQueryContext、HostCordisInspectProviderRegistration、CordisInspectRegistryService、view、validateManifest、findMethod、validateInput、validateOutput;源码顶部原注释(英文,仅作回查线索):Host registry for model-visible, read-only Cordis capability queries.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/src/invariant.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:运行时不变量
- 这个文件有什么用:它检查 Cordis 插件框架、服务端宿主、运行驱动必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。
- 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
- 文件级设计证据:源码顶部注释把它定位为“Package-owned invariant companion for @deepseek-ai/dsh-cordis-host-runner. @module @deepseek-ai/dsh-cordis-host-runner/invariant”;固定提交中扫描到的声明包括
name、inject、apply;本地静态 import 图显示它直接依赖 2 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着
packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts和所在包的入口或服务理解状态变化,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 32 行;扫描到的声明包括
name、inject、apply;源码顶部原注释(英文,仅作回查线索):Package-owned invariant companion for @deepseek-ai/dsh-cordis-host-runner. @module @deepseek-ai/dsh-cordis-host-runner/invariant。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/src/lifecycle.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:扩展实现
- 这个文件有什么用:这个文件把一项可选能力挂进 Cordis 插件树或宿主边界,让核心流程保持稳定而扩展可以独立组合。
- 为什么这样设计:可选能力通过扩展包接入插件树,核心包保持窄而稳定;扩展可以独立发布、替换和测试。
- 文件级设计证据:源码顶部注释把它定位为“Host-half fiber lifecycle over the cordis-dynamic group: settle a sandbox-produced plugin as a child fiber (never leaving a failed fiber mounted), and report the services a settled-but-pending fiber still waits for. Stopping needs no helper — a host half un...”;固定提交中扫描到的声明包括
startHostHalf、missingServices;本地静态 import 图显示它直接依赖 2 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/extensions/cordis-host-runner/src/guard.ts、vendor/cordis/src/index.ts、packages/extensions/cordis-host-runner/src/index.ts、packages/extensions/cordis-host-runner/tests/composition.spec.ts
- 对应测试:packages/extensions/cordis-host-runner/tests/composition.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 测试支持:packages/extensions/cordis-host-runner/tests/helpers.ts
- 阅读顺序:先读
packages/extensions/cordis-host-runner/README.md和入口,再读当前实现,沿着packages/extensions/cordis-host-runner/src/guard.ts、vendor/cordis/src/index.ts和packages/extensions/cordis-host-runner/src/index.ts、packages/extensions/cordis-host-runner/tests/composition.spec.ts确认输入输出,最后对照packages/extensions/cordis-host-runner/tests/composition.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 57 行;扫描到的声明包括
startHostHalf、missingServices;源码顶部原注释(英文,仅作回查线索):Host-half fiber lifecycle over the cordis-dynamic group: settle a sandbox-produced plugin as a child fiber (never leaving a failed fiber mounted), and report the services a settled-but-pending fiber still waits for. Stopping needs no helper — a host half un...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/src/registry.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:服务或提供方
- 这个文件有什么用:它定义或提供 Cordis 插件框架、服务端宿主、运行驱动的可取得服务,负责注册、查找或具体实现;接口和实现分开后,同一能力可以换成本地、远程或测试版本。
- 为什么这样设计:把“接口是什么”和“这一版怎样实现”分开,替换实现或写测试替身时不必改动使用者。
- 文件级设计证据:源码顶部注释把它定位为“Process-local dynamic Plugin registry and its opaque identity mints. @module @deepseek-ai/dsh-cordis-host-runner/registry”;固定提交中扫描到的声明包括
DynamicCordisHandler、DynamicCordisRun、DynamicCordisDefinition、DynamicCordisPlugin、DynamicCordisPendingRequest;本地静态 import 图显示它直接依赖 3 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/core/session/src/types.ts、packages/extensions/cordis-host-runner/src/types.ts、vendor/cordis/src/index.ts、packages/extensions/cordis-host-runner/src/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts、packages/extensions/cordis-host-runner/tests/composition.spec.ts、packages/extensions/cordis-host-runner/tests/runner.spec.ts、packages/extensions/cordis-host-runner/tests/sandbox-context.spec.ts、packages/extensions/cordis-host-runner/tests/sandbox.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/cordis-host-runner/README.md和入口,再读当前实现,沿着packages/core/session/src/types.ts、packages/extensions/cordis-host-runner/src/types.ts、vendor/cordis/src/index.ts和packages/extensions/cordis-host-runner/src/index.ts确认输入输出,最后对照examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts、packages/extensions/cordis-host-runner/tests/composition.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 276 行;扫描到的声明包括
DynamicCordisHandler、DynamicCordisRun、DynamicCordisDefinition、DynamicCordisPlugin、DynamicCordisPendingRequest、DynamicCordisDefineRequest、DynamicCordisDefineReceipt、DynamicCordisReference;源码顶部原注释(英文,仅作回查线索):Process-local dynamic Plugin registry and its opaque identity mints. @module @deepseek-ai/dsh-cordis-host-runner/registry。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/src/sandbox.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:扩展实现
- 这个文件有什么用:这个文件把一项可选能力挂进 Cordis 插件树或宿主边界,让核心流程保持稳定而扩展可以独立组合。
- 为什么这样设计:可选能力通过扩展包接入插件树,核心包保持窄而稳定;扩展可以独立发布、替换和测试。
- 文件级设计证据:源码顶部注释把它定位为“The node:vm sandbox a dynamic package's HOST half evaluates in: a fresh realm whose globals are a tagged write-through console, the harness registration helpers, the encoding primitives a bare vm context lacks, and callable traps over the Node APIs the sand...”;固定提交中扫描到的声明包括
HOST_BUILTIN_INSPECTION、createSandbox、syntaxErrorContext、parseErrorMessage、precheckCode;本地静态 import 图显示它直接依赖 1 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/extensions/cordis-host-runner/src/guard.ts、packages/extensions/cordis-host-runner/src/index.ts、packages/extensions/cordis-host-runner/tests/sandbox.spec.ts
- 对应测试:packages/extensions/cordis-host-runner/tests/sandbox.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 测试支持:packages/extensions/cordis-host-runner/tests/helpers.ts
- 阅读顺序:先读
packages/extensions/cordis-host-runner/README.md和入口,再读当前实现,沿着packages/extensions/cordis-host-runner/src/guard.ts和packages/extensions/cordis-host-runner/src/index.ts、packages/extensions/cordis-host-runner/tests/sandbox.spec.ts确认输入输出,最后对照packages/extensions/cordis-host-runner/tests/sandbox.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 265 行;扫描到的声明包括
HOST_BUILTIN_INSPECTION、createSandbox、syntaxErrorContext、parseErrorMessage、precheckCode、evaluateHostCode、taggedConsole、patchDualRealmInstanceof;源码顶部原注释(英文,仅作回查线索):The node:vm sandbox a dynamic package's HOST half evaluates in: a fresh realm whose globals are a tagged write-through console, the harness registration helpers, the encoding primitives a bare vm context lacks, and callable traps over the Node APIs the sand...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/src/types.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:类型契约
- 这个文件有什么用:它描述 Cordis 插件框架、服务端宿主、运行驱动中流转的数据长什么样、哪些字段必填以及各部分怎样关联,让不同模块先共享同一份约定。
- 为什么这样设计:先把形状和规则集中声明,执行代码只负责使用已经检查过的数据;这样错误更早暴露,读代码时也有一张共同的地图。
- 文件级设计证据:源码顶部注释把它定位为“Client-safe wire vocabulary of the dynamic Cordis plugin runner. @module @deepseek-ai/dsh-cordis-host-runner/types”;固定提交中扫描到的声明包括
CordisDynamicPluginId、CordisDynamicPackageId、CordisDynamicPluginRunId、ApprovalRequestId、CordisInspectRequestId;本地静态 import 图显示它直接依赖 2 个源文件,并被 9 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/core/session/src/types.ts、packages/util/brand/src/index.ts、packages/api/remotes/src/client/index.ts、packages/api/remotes/src/index.ts
- 对应测试:packages/extensions/cordis-host-runner/tests/composition.spec.ts、packages/extensions/cordis-host-runner/tests/runner.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 测试支持:packages/extensions/cordis-host-runner/tests/helpers.ts
- 阅读顺序:先读
packages/extensions/cordis-host-runner/README.md、入口和消费者,再读当前契约,沿着packages/api/remotes/src/client/index.ts、packages/api/remotes/src/index.ts、packages/extensions/cordis-host-runner/src/index.ts看它怎样约束运行时,最后对照packages/extensions/cordis-host-runner/tests/composition.spec.ts、packages/extensions/cordis-host-runner/tests/runner.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 399 行;扫描到的声明包括
CordisDynamicPluginId、CordisDynamicPackageId、CordisDynamicPluginRunId、ApprovalRequestId、CordisInspectRequestId、CordisInspectPlatform、CordisInspectMethodManifest、CordisInspectProviderManifest;源码顶部原注释(英文,仅作回查线索):Client-safe wire vocabulary of the dynamic Cordis plugin runner. @module @deepseek-ai/dsh-cordis-host-runner/types。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/tests/composition.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查 Cordis 插件框架、服务端宿主、运行驱动的具体场景,包括“cross-package provide/inject”、“provider first: the consumer activates immediately and its tool reaches the provided se...”、“consumer first: runs but stays parked on the missing service, then activates when the p...”、“stopping the provider sends the consumer back to pending and unwinds its registrations”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“cross-package provide/inject”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
latestPackage;本地静态 import 图显示它直接依赖 3 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/extensions/cordis-host-runner/src/lifecycle.ts、packages/extensions/cordis-host-runner/src/types.ts、packages/extensions/cordis-host-runner/tests/helpers.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 测试支持:packages/extensions/cordis-host-runner/tests/helpers.ts
- 阅读顺序:先看它直接导入的被测实现
packages/extensions/cordis-host-runner/src/lifecycle.ts、packages/extensions/cordis-host-runner/src/types.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 180 行;扫描到的声明包括
latestPackage;扫描到的测试主题包括 “cross-package provide/inject”、“provider first: the consumer activates immediately and its tool reaches the provided service”、“consumer first: runs but stays parked on the missing service, then activates when the provider runs”、“stopping the provider sends the consumer back to pending and unwinds its registrations”、“running the provider again re-runs the consumer through a fresh guard (tool back)”、“a duplicate provide fails loud and leaves the second package not running”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/tests/helpers.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试支持
- 这个文件有什么用:它为“helpers”相关测试提供共享准备或环境支持;真正的行为断言由导入它的测试用例完成。
- 为什么这样设计:测试材料和被测实现分开,测试可以反复使用同一个受控输入;它不应该被误认为线上入口或生产服务。
- 文件级设计证据:固定提交中扫描到的声明包括
AGENT_A、AGENT_B、setup、running、mount;本地静态 import 图显示它直接依赖 9 个源文件,并被 5 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/core/agent/src/index.ts、packages/core/session/src/types.ts、packages/core/system-prompt/src/index.ts、packages/extensions/cordis-host-runner/tests/composition.spec.ts
- 对应测试:packages/extensions/cordis-host-runner/tests/composition.spec.ts、packages/extensions/cordis-host-runner/tests/runner.spec.ts、packages/extensions/cordis-host-runner/tests/sandbox-context.spec.ts、packages/extensions/cordis-host-runner/tests/sandbox.spec.ts、packages/extensions/cordis-host-runner/tests/versioning.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;这些测试用例实际使用了本支持文件。
- 阅读顺序:先看它提供的固定输入或环境,再跳到实际使用它的测试
packages/extensions/cordis-host-runner/tests/composition.spec.ts、packages/extensions/cordis-host-runner/tests/runner.spec.ts、packages/extensions/cordis-host-runner/tests/sandbox-context.spec.ts,最后回看被测实现和清理路径。 - 代码证据:固定提交归档实际读取结果:约 250 行;扫描到的声明包括
AGENT_A、AGENT_B、setup、running、mount、call、text、CONTENT_OUTPUT_CODE。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/tests/runner.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查 Cordis 插件框架、服务端宿主、运行驱动的具体场景,包括“dynamic runner definitions”、“lists the whole registry for a global surface, each row carrying its owning session”、“tells a global surface which definitions even have a browser half to load”、“records a definition without running it, and mints ids that are never reused”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“dynamic runner definitions”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
define;本地静态 import 图显示它直接依赖 3 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/extensions/cordis-host-runner/src/index.ts、packages/extensions/cordis-host-runner/src/types.ts、packages/extensions/cordis-host-runner/tests/helpers.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 测试支持:packages/extensions/cordis-host-runner/tests/helpers.ts
- 阅读顺序:先看它直接导入的被测实现
packages/extensions/cordis-host-runner/src/index.ts、packages/extensions/cordis-host-runner/src/types.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 578 行;扫描到的声明包括
define;扫描到的测试主题包括 “dynamic runner definitions”、“lists the whole registry for a global surface, each row carrying its owning session”、“tells a global surface which definitions even have a browser half to load”、“records a definition without running it, and mints ids that are never reused”、“keeps unparseable code out of the registry, teaching the TypeScript removal”、“hides another session\”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/tests/sandbox-context.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查 Cordis 插件框架、服务端宿主、运行驱动的具体场景,包括“sandbox context façade — escape surface is closed”、“the classic ctx.root.tools.register bypass registers nothing and fails loud”、“rejects assignment to the façade rather than silently dropping it”、“denies a service whose method returns a Context (the .ctx escape), registering nothing”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“sandbox context façade — escape surface is closed”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
runTouching;本地静态 import 图显示它直接依赖 1 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/extensions/cordis-host-runner/tests/helpers.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 测试支持:packages/extensions/cordis-host-runner/tests/helpers.ts
- 阅读顺序:先看它直接使用的测试支持
packages/extensions/cordis-host-runner/tests/helpers.ts,再读本文件的测试主题、输入和断言;最后回到被测表面和失败输出。 - 代码证据:固定提交归档实际读取结果:约 267 行;扫描到的声明包括
runTouching;扫描到的测试主题包括 “sandbox context façade — escape surface is closed”、“the classic ctx.root.tools.register bypass registers nothing and fails loud”、“rejects assignment to the façade rather than silently dropping it”、“denies a service whose method returns a Context (the .ctx escape), registering nothing”、“guards an async injected-service method: a host-realm Promise resolves through the guard”、“reads a symbol property as undefined and answers the”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/tests/sandbox.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查 Cordis 插件框架、服务端宿主、运行驱动的具体场景,包括“dynamic tool declaration boundary”、“bounds the preview of an invalid dynamic renderer return”、“sandbox isolation and Node-API traps”、“isolates sandbox globals: no process/Buffer, and globalThis writes do not leak to the host”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“dynamic tool declaration boundary”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:本次固定提交归档没有扫描到顶部注释、顶层声明或专门的结构线索;本地静态 import 图显示它直接依赖 3 个源文件,并被 0 个源文件直接引用。
- 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/extensions/cordis-host-runner/src/guard.ts、packages/extensions/cordis-host-runner/src/sandbox.ts、packages/extensions/cordis-host-runner/tests/helpers.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 测试支持:packages/extensions/cordis-host-runner/tests/helpers.ts
- 阅读顺序:先看它直接导入的被测实现
packages/extensions/cordis-host-runner/src/guard.ts、packages/extensions/cordis-host-runner/src/sandbox.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 218 行;扫描到的测试主题包括 “dynamic tool declaration boundary”、“bounds the preview of an invalid dynamic renderer return”、“sandbox isolation and Node-API traps”、“isolates sandbox globals: no process/Buffer, and globalThis writes do not leak to the host”、“lets a host half schedule through the cordis timer service (inject: [\”、“provides btoa/atob and the tagged console variants inside the sandbox”。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/cordis-host-runner/tests/versioning.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查 Cordis 插件框架、服务端宿主、运行驱动的具体场景,包括“dynamic Plugin versions”、“keeps currentPackageId when an update fails and clears nextPackageId after rollback”、“cancels and retracts a Host activation owned by the pending approval”、“does not stop an existing Host run when an attaching page fails to load Client code”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“dynamic Plugin versions”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:本次固定提交归档没有扫描到顶部注释、顶层声明或专门的结构线索;本地静态 import 图显示它直接依赖 1 个源文件,并被 0 个源文件直接引用。
- 直接协作者:packages/extensions/cordis-host-runner/README.md、packages/extensions/cordis-host-runner/tests/helpers.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 测试支持:packages/extensions/cordis-host-runner/tests/helpers.ts
- 阅读顺序:先看它直接使用的测试支持
packages/extensions/cordis-host-runner/tests/helpers.ts,再读本文件的测试主题、输入和断言;最后回到被测表面和失败输出。 - 代码证据:固定提交归档实际读取结果:约 108 行;扫描到的测试主题包括 “dynamic Plugin versions”、“keeps currentPackageId when an update fails and clears nextPackageId after rollback”、“cancels and retracts a Host activation owned by the pending approval”、“does not stop an existing Host run when an attaching page fails to load Client code”。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/tool-cordis
packages/extensions/tool-cordis/src/api-catalog.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:API 边界
- 这个文件有什么用:它集中处理工具、Cordis 插件框架、API 边界的请求、响应或客户端调用,把外部字段转换成内部可以使用的形状。
- 为什么这样设计:外部 API 的字段和错误格式集中在边界转换,内部服务不必到处携带 HTTP/RPC 细节,客户端和服务端也能分别演进。
- 文件级设计证据:源码顶部注释把它定位为“Generated by scripts/gen-cordis-api.ts — do not edit by hand; run pnpm run gen-cordis-api to regenerate (freshness-gated by pnpm run verify-cordis-api in doc-sync). The machine-readable cordis API catalog cordis_inspect serves to the model: harness services...”;固定提交中扫描到的声明包括
ApiParameter、ServiceApiMethod、ServiceApiEntry、EventApiEntry、InheritedApiEntry;本地静态 import 图显示它直接依赖 0 个源文件,并被 3 个源文件直接引用。 - 直接协作者:packages/extensions/tool-cordis/README.md、packages/extensions/tool-cordis/src/inspect.ts、packages/extensions/tool-cordis/src/providers.ts、packages/typert/generator/tests/tools-catalog.spec.ts
- 对应测试:packages/typert/generator/tests/tools-catalog.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/extensions/tool-cordis/README.md和入口,再读当前实现,沿着相关类型、协议或实现和packages/extensions/tool-cordis/src/inspect.ts、packages/extensions/tool-cordis/src/providers.ts、packages/typert/generator/tests/tools-catalog.spec.ts确认输入输出,最后对照packages/typert/generator/tests/tools-catalog.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 5159 行;扫描到的声明包括
ApiParameter、ServiceApiMethod、ServiceApiEntry、EventApiEntry、InheritedApiEntry、TypeApiEntry、SERVICE_API、EVENT_API;源码顶部原注释(英文,仅作回查线索):Generated by scripts/gen-cordis-api.ts — do not edit by hand; run pnpm run gen-cordis-api to regenerate (freshness-gated by pnpm run verify-cordis-api in doc-sync). The machine-readable cordis API catalog cordis_inspect serves to the model: harness services...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/tool-cordis/src/fiber-state.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:工具能力
- 这个文件有什么用:它提供工具、Cordis 插件框架的一项可调用能力,通常同时处理参数、执行和结果展示;独立工具让权限和测试可以逐项控制。
- 为什么这样设计:固定提交的文件顶部注释把它定位为“Runtime mirror and labels for Cordis's FiberState const enum. A const enum has no runtime object to import, so these values mirror the pinned vendored definition while retaining its type. @module @deepseek-ai/dsh-tool-cordis/fiber-state”;把这项职责单独放置,可以让边界、输入和失败处理在一个地方被阅读和测试。
- 文件级设计证据:源码顶部注释把它定位为“Runtime mirror and labels for Cordis's FiberState const enum. A const enum has no runtime object to import, so these values mirror the pinned vendored definition while retaining its type. @module @deepseek-ai/dsh-tool-cordis/fiber-state”;固定提交中扫描到的声明包括
FiberState、STATE_LABELS;本地静态 import 图显示它直接依赖 1 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/tool-cordis/README.md、vendor/cordis/src/index.ts、packages/extensions/tool-cordis/src/inspect.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/tool-cordis/README.md和入口,再读当前实现,沿着vendor/cordis/src/index.ts和packages/extensions/tool-cordis/src/inspect.ts确认输入输出,最后对照examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 31 行;扫描到的声明包括
FiberState、STATE_LABELS;源码顶部原注释(英文,仅作回查线索):Runtime mirror and labels for Cordis's FiberState const enum. A const enum has no runtime object to import, so these values mirror the pinned vendored definition while retaining its type. @module @deepseek-ai/dsh-tool-cordis/fiber-state。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/tool-cordis/src/index.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:模块入口
- 这个文件有什么用:它把工具、Cordis 插件框架相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。
- 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
- 文件级设计证据:源码顶部注释把它定位为“Model-facing Cordis runtime/package inspection, define, run, stop, and remove tools. @module @deepseek-ai/dsh-tool-cordis”;固定提交中扫描到的声明包括
name、inject、apply、requireAgent、requireJsonObject;本地静态 import 图显示它直接依赖 11 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/extensions/tool-cordis/README.md、packages/core/agent/src/index.ts、packages/core/session/src/index.ts、packages/core/system-prompt/src/index.ts、examples/headless-agent/tests/code-mode.e2e.ts
- 对应测试:examples/headless-agent/tests/code-mode.e2e.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/extensions/tool-cordis/README.md、入口和消费者,再读当前契约,沿着examples/headless-agent/tests/code-mode.e2e.ts、scripts/gen-tool-catalog.ts看它怎样约束运行时,最后对照examples/headless-agent/tests/code-mode.e2e.ts。 - 代码证据:固定提交归档实际读取结果:约 530 行;扫描到的声明包括
name、inject、apply、requireAgent、requireJsonObject、requireJsonString、selfSummary、selfState;源码顶部原注释(英文,仅作回查线索):Model-facing Cordis runtime/package inspection, define, run, stop, and remove tools. @module @deepseek-ai/dsh-tool-cordis。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/tool-cordis/src/inspect.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:工具能力
- 这个文件有什么用:它提供工具、Cordis 插件框架的一项可调用能力,通常同时处理参数、执行和结果展示;独立工具让权限和测试可以逐项控制。
- 为什么这样设计:固定提交的文件顶部注释把它定位为“Text renderers for cordis_runtime_inspect. Live facts come from the service store and the plugin registry; what each service CAN DO comes from the generated api-catalog.ts. This module owns the join of the two plus presentation: which lines a section prints...”;把这项职责单独放置,可以让边界、输入和失败处理在一个地方被阅读和测试。
- 文件级设计证据:源码顶部注释把它定位为“Text renderers for cordis_runtime_inspect. Live facts come from the service store and the plugin registry; what each service CAN DO comes from the generated api-catalog.ts. This module owns the join of the two plus presentation: which lines a section prints...”;固定提交中扫描到的声明包括
withinFiber、providedServices、missingServices、describeServices、describePlugins;本地静态 import 图显示它直接依赖 6 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/tool-cordis/README.md、packages/core/agent/src/index.ts、packages/core/scope/src/index.ts、packages/extensions/cordis-host-runner/src/index.ts、packages/extensions/tool-cordis/src/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/tool-cordis/README.md和入口,再读当前实现,沿着packages/core/agent/src/index.ts、packages/core/scope/src/index.ts、packages/extensions/cordis-host-runner/src/index.ts和packages/extensions/tool-cordis/src/index.ts确认输入输出,最后对照examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 332 行;扫描到的声明包括
withinFiber、providedServices、missingServices、describeServices、describePlugins、describeTools、describeDynamic、describeApi;源码顶部原注释(英文,仅作回查线索):Text renderers for cordis_runtime_inspect. Live facts come from the service store and the plugin registry; what each service CAN DO comes from the generated api-catalog.ts. This module owns the join of the two plus presentation: which lines a section prints...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/tool-cordis/src/invariant.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:运行时不变量
- 这个文件有什么用:它检查工具、Cordis 插件框架必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。
- 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
- 文件级设计证据:源码顶部注释把它定位为“Package-owned invariant companion for @deepseek-ai/dsh-tool-cordis. @module @deepseek-ai/dsh-tool-cordis/invariant”;固定提交中扫描到的声明包括
name、inject、apply;本地静态 import 图显示它直接依赖 2 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/tool-cordis/README.md、packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着
packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts和所在包的入口或服务理解状态变化,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 30 行;扫描到的声明包括
name、inject、apply;源码顶部原注释(英文,仅作回查线索):Package-owned invariant companion for @deepseek-ai/dsh-tool-cordis. @module @deepseek-ai/dsh-tool-cordis/invariant。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/tool-cordis/src/present.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:工具能力
- 这个文件有什么用:它提供工具、Cordis 插件框架的一项可调用能力,通常同时处理参数、执行和结果展示;独立工具让权限和测试可以逐项控制。
- 为什么这样设计:固定提交的文件顶部注释把它定位为“Pure replay-safe render intents for Cordis tools.”;把这项职责单独放置,可以让边界、输入和失败处理在一个地方被阅读和测试。
- 文件级设计证据:源码顶部注释把它定位为“Pure replay-safe render intents for Cordis tools.”;固定提交中扫描到的声明包括
presentRuntimeInspectCall、presentInspectListCall、presentInspectQueryCall、presentInspectSelfCall、presentPackageInspectCall;本地静态 import 图显示它直接依赖 1 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/tool-cordis/README.md、packages/core/tools/src/index.ts、packages/extensions/tool-cordis/src/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/tool-cordis/README.md和入口,再读当前实现,沿着packages/core/tools/src/index.ts和packages/extensions/tool-cordis/src/index.ts确认输入输出,最后对照examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 102 行;扫描到的声明包括
presentRuntimeInspectCall、presentInspectListCall、presentInspectQueryCall、presentInspectSelfCall、presentPackageInspectCall、presentDefineCall、presentUndefineCall、presentRunCall;源码顶部原注释(英文,仅作回查线索):Pure replay-safe render intents for Cordis tools.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/tool-cordis/src/prompt.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:提示词与上下文
- 这个文件有什么用:它把工具、Cordis 插件框架、提示词的分散信息整理成模型能读的请求。集中组装可以保持顺序、来源和可重放性一致。
- 为什么这样设计:固定提交的文件顶部注释把它定位为“Model guidance shared by the Cordis dynamic-plugin tools.”;把这项职责单独放置,可以让边界、输入和失败处理在一个地方被阅读和测试。
- 文件级设计证据:源码顶部注释把它定位为“Model guidance shared by the Cordis dynamic-plugin tools.”;固定提交中扫描到的声明包括
CORDIS_SYSTEM_PROMPT;本地静态 import 图显示它直接依赖 0 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/tool-cordis/README.md、packages/extensions/tool-cordis/src/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/tool-cordis/README.md和入口,再读当前实现,沿着相关类型、协议或实现和packages/extensions/tool-cordis/src/index.ts确认输入输出,最后对照examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 107 行;扫描到的声明包括
CORDIS_SYSTEM_PROMPT;源码顶部原注释(英文,仅作回查线索):Model guidance shared by the Cordis dynamic-plugin tools.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/tool-cordis/src/providers.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:服务或提供方
- 这个文件有什么用:它定义或提供工具、Cordis 插件框架的可取得服务,负责注册、查找或具体实现;接口和实现分开后,同一能力可以换成本地、远程或测试版本。
- 为什么这样设计:把“接口是什么”和“这一版怎样实现”分开,替换实现或写测试替身时不必改动使用者。
- 文件级设计证据:源码顶部注释把它定位为“First-party Host inspect providers registered by the Cordis tool package.”;固定提交中扫描到的声明包括
hostInspectProviders、registration、exactInput、readExact;本地静态 import 图显示它直接依赖 4 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/tool-cordis/README.md、packages/core/session/src/index.ts、packages/extensions/cordis-host-runner/src/index.ts、packages/extensions/tool-cordis/src/api-catalog.ts、packages/extensions/tool-cordis/src/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/extensions/tool-cordis/README.md和入口,再读当前实现,沿着packages/core/session/src/index.ts、packages/extensions/cordis-host-runner/src/index.ts、packages/extensions/tool-cordis/src/api-catalog.ts和packages/extensions/tool-cordis/src/index.ts确认输入输出,最后对照examples/headless-agent/tests/code-mode.e2e.ts、packages/core/tools/tests/gen-tool-catalog.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 101 行;扫描到的声明包括
hostInspectProviders、registration、exactInput、readExact;源码顶部原注释(英文,仅作回查线索):First-party Host inspect providers registered by the Cordis tool package.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/tool-cordis/tests/cordis-lifecycle.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查工具、Cordis 插件框架的具体场景,包括“Cordis effect ownership”、“makes an effect visible to a reentrant owner restart and awaits setup plus cleanup”、“rolls back collected cleanup and its owner-list entry when setup throws synchronously”、“makes a reentrant owner restart await asynchronous rollback after synchronous setup fai...”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“Cordis effect ownership”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:本次固定提交归档没有扫描到顶部注释、顶层声明或专门的结构线索;本地静态 import 图显示它直接依赖 1 个源文件,并被 0 个源文件直接引用。
- 直接协作者:packages/extensions/tool-cordis/README.md、vendor/cordis/src/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
vendor/cordis/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 287 行;扫描到的测试主题包括 “Cordis effect ownership”、“makes an effect visible to a reentrant owner restart and awaits setup plus cleanup”、“rolls back collected cleanup and its owner-list entry when setup throws synchronously”、“makes a reentrant owner restart await asynchronous rollback after synchronous setup failure”、“keeps ordinary teardown synchronous and the public disposer single-shot”、“rejects cleanup-time registration while a restart is unloading”。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis
packages/extensions/ui-cordis/src/client/CordisActionRow.tsx
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面组件或界面逻辑
- 这个文件有什么用:它实现名为
CordisActionRow的界面组件或交互逻辑,并导出CordisActionRowProps、CordisActionRow,把输入、局部状态和用户操作组织成可渲染的 UI 单元;源码顶部还说明:Localized cards for cordis_stop and cordis_undefine.。 - 为什么这样设计:固定提交的文件顶部注释把它定位为“Localized cards for cordis_stop and cordis_undefine.”;把这项职责单独放置,可以让边界、输入和失败处理在一个地方被阅读和测试。
- 文件级设计证据:源码顶部注释把它定位为“Localized cards for cordis_stop and cordis_undefine.”;固定提交中扫描到的声明包括
CordisActionRowProps、CordisActionRow;本地静态 import 图显示它直接依赖 5 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/ui-primitives/src/index.ts、packages/client/ui-slots/src/index.ts、packages/client/ui-tool/src/client/index.ts、packages/extensions/ui-cordis/src/client/index.ts
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/index.ts确认状态如何进入 UI,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 42 行;扫描到的声明包括
CordisActionRowProps、CordisActionRow;源码顶部原注释(英文,仅作回查线索):Localized cards for cordis_stop and cordis_undefine.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/CordisDefineRow.module.css
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面样式
- 这个文件有什么用:它定义
CordisDefineRow的网页外观、布局和状态样式,让界面逻辑与视觉规则可以分别修改。 - 为什么这样设计:把
CordisDefineRow的样式与业务流程分开,浏览器端可以调整外观而不改变服务端或 agent 的行为;组件只通过 class 和状态选择器使用它。 - 文件级设计证据:源码顶部注释把它定位为“Cordis definition card: DisclosureRow chrome (leading/chevron/title come from that primitive) plus this card's own trailing run switch and source body. No running sweep: cordis_define only registers a definition in host memory, so the call settles in the sa...”;固定提交中扫描到的结构线索是:样式结构包含选择器 .card、.title、.chevron、.row、.separator、.name;本地静态 import 图显示它直接依赖 0 个源文件,并被 1 个源文件直接引用。
- 直接协作者:packages/extensions/ui-cordis/README.md、packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx确认状态如何进入 UI,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 297 行;样式结构包含选择器 .card、.title、.chevron、.row、.separator、.name;源码顶部原注释(英文,仅作回查线索):Cordis definition card: DisclosureRow chrome (leading/chevron/title come from that primitive) plus this card's own trailing run switch and source body. No running sweep: cordis_define only registers a definition in host memory, so the call settles in the sa...。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面组件或界面逻辑
- 这个文件有什么用:它实现名为
CordisDefineRow的界面组件或交互逻辑,并导出CordisDefineRowProps、CordisDefineRow、stateStatus,把输入、局部状态和用户操作组织成可渲染的 UI 单元;源码顶部还说明:Read-only cordis_define card with Host and Client source tabs.。 - 为什么这样设计:固定提交的文件顶部注释把它定位为“Read-only cordis_define card with Host and Client source tabs.”;把这项职责单独放置,可以让边界、输入和失败处理在一个地方被阅读和测试。
- 文件级设计证据:源码顶部注释把它定位为“Read-only cordis_define card with Host and Client source tabs.”;固定提交中扫描到的声明包括
CordisDefineRowProps、CordisDefineRow、stateStatus、leadingFor;本地静态 import 图显示它直接依赖 8 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/ui-primitives/src/index.ts、packages/client/ui-slots/src/index.ts、packages/client/ui-tool/src/client/index.ts、packages/extensions/ui-cordis/src/client/index.ts
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/index.ts确认状态如何进入 UI,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 171 行;扫描到的声明包括
CordisDefineRowProps、CordisDefineRow、stateStatus、leadingFor;源码顶部原注释(英文,仅作回查线索):Read-only cordis_define card with Host and Client source tabs.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/CordisPanel.module.css
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面样式
- 这个文件有什么用:它定义
CordisPanel的网页外观、布局和状态样式,让界面逻辑与视觉规则可以分别修改。 - 为什么这样设计:把
CordisPanel的样式与业务流程分开,浏览器端可以调整外观而不改变服务端或 agent 的行为;组件只通过 class 和状态选择器使用它。 - 文件级设计证据:源码顶部注释把它定位为“Sidebar-foot Cordis action and the fixed list it opens above the footer.”;固定提交中扫描到的结构线索是:样式结构包含选择器 .layer、.footerButtons、.badge、.badgeLabel、.badgeCount、.rail;自定义属性 --dsh-scrollbar-thumb、--dsh-scrollbar-thumb-hover;本地静态 import 图显示它直接依赖 0 个源文件,并被 1 个源文件直接引用。
- 直接协作者:packages/extensions/ui-cordis/README.md、packages/extensions/ui-cordis/src/client/CordisPanel.tsx
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/CordisPanel.tsx确认状态如何进入 UI,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 368 行;样式结构包含选择器 .layer、.footerButtons、.badge、.badgeLabel、.badgeCount、.rail;自定义属性 --dsh-scrollbar-thumb、--dsh-scrollbar-thumb-hover;源码顶部原注释(英文,仅作回查线索):Sidebar-foot Cordis action and the fixed list it opens above the footer.。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/CordisPanel.tsx
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面组件或界面逻辑
- 这个文件有什么用:它实现名为
CordisPanel的界面组件或交互逻辑,并导出CordisPanelProps、CordisPanel、selectedPackageIdOf,把输入、局部状态和用户操作组织成可渲染的 UI 单元;源码顶部还说明:Frame-wide dynamic Plugin inventory, approvals, versions, and lifecycle actions.。 - 为什么这样设计:固定提交的文件顶部注释把它定位为“Frame-wide dynamic Plugin inventory, approvals, versions, and lifecycle actions.”;把这项职责单独放置,可以让边界、输入和失败处理在一个地方被阅读和测试。
- 文件级设计证据:源码顶部注释把它定位为“Frame-wide dynamic Plugin inventory, approvals, versions, and lifecycle actions.”;固定提交中扫描到的声明包括
CordisPanelProps、CordisPanel、selectedPackageIdOf、visiblePanelStatus、blockingFirst;本地静态 import 图显示它直接依赖 11 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/connection/src/client/index.ts、packages/client/ui-primitives/src/index.ts、packages/client/ui-sidebar/src/client/index.ts、packages/extensions/ui-cordis/src/client/index.ts
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/index.ts确认状态如何进入 UI,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 491 行;扫描到的声明包括
CordisPanelProps、CordisPanel、selectedPackageIdOf、visiblePanelStatus、blockingFirst、RowAction、DoubleCheckIcon;源码顶部原注释(英文,仅作回查线索):Frame-wide dynamic Plugin inventory, approvals, versions, and lifecycle actions.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/CordisRunRow.module.css
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面样式
- 这个文件有什么用:它定义
CordisRunRow的网页外观、布局和状态样式,让界面逻辑与视觉规则可以分别修改。 - 为什么这样设计:把
CordisRunRow的样式与业务流程分开,浏览器端可以调整外观而不改变服务端或 agent 的行为;组件只通过 class 和状态选择器使用它。 - 文件级设计证据:固定提交中扫描到的结构线索是:样式结构包含选择器 .card、.row、.icon、.title、.separator、.summary;本地静态 import 图显示它直接依赖 0 个源文件,并被 2 个源文件直接引用。
- 直接协作者:packages/extensions/ui-cordis/README.md、packages/extensions/ui-cordis/src/client/CordisActionRow.tsx、packages/extensions/ui-cordis/src/client/CordisRunRow.tsx
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/CordisActionRow.tsx、packages/extensions/ui-cordis/src/client/CordisRunRow.tsx确认状态如何进入 UI,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 132 行;样式结构包含选择器 .card、.row、.icon、.title、.separator、.summary。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/CordisRunRow.tsx
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面组件或界面逻辑
- 这个文件有什么用:它实现名为
CordisRunRow的界面组件或交互逻辑,并导出CordisRunRowProps、CordisRunRow,把输入、局部状态和用户操作组织成可渲染的 UI 单元;源码顶部还说明:cordis_run card and the host seat for Package-owned interactive UI.。 - 为什么这样设计:固定提交的文件顶部注释把它定位为“cordis_run card and the host seat for Package-owned interactive UI.”;把这项职责单独放置,可以让边界、输入和失败处理在一个地方被阅读和测试。
- 文件级设计证据:源码顶部注释把它定位为“cordis_run card and the host seat for Package-owned interactive UI.”;固定提交中扫描到的声明包括
CordisRunRowProps、CordisRunRow;本地静态 import 图显示它直接依赖 9 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/ui-primitives/src/index.ts、packages/client/ui-slots/src/index.ts、packages/client/ui-tool/src/client/index.ts、packages/extensions/ui-cordis/src/client/index.ts
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/index.ts确认状态如何进入 UI,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 135 行;扫描到的声明包括
CordisRunRowProps、CordisRunRow;源码顶部原注释(英文,仅作回查线索):cordis_run card and the host seat for Package-owned interactive UI.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/card-model.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面交互逻辑
- 这个文件有什么用:这个文件属于一个界面功能包,负责用户操作、视图状态或 UI 适配;它把浏览器体验接到稳定的运行时契约上。
- 为什么这样设计:把用户操作和视图状态放在界面包内,能让 Web 组件复用同一套交互契约,也让服务端和领域逻辑不被浏览器细节污染。
- 文件级设计证据:源码顶部注释把它定位为“Replay-stable view models for Cordis lifecycle Tool calls.”;固定提交中扫描到的声明包括
CordisToolState、CordisDefineCard、CordisRunCard、CordisActionCard、cordisDefineCard;本地静态 import 图显示它直接依赖 2 个源文件,并被 5 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/ui-tool/src/client/index.ts、packages/extensions/ui-cordis/src/client/events.ts、packages/extensions/ui-cordis/src/client/CordisActionRow.tsx、packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx
- 对应测试:packages/extensions/ui-cordis/tests/card-model.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/CordisActionRow.tsx、packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx、packages/extensions/ui-cordis/src/client/CordisRunRow.tsx确认状态如何进入 UI,最后对照packages/extensions/ui-cordis/tests/card-model.client.spec.ts、packages/extensions/ui-cordis/tests/versioning.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 161 行;扫描到的声明包括
CordisToolState、CordisDefineCard、CordisRunCard、CordisActionCard、cordisDefineCard、cordisRunCard、cordisActionCard、firstLine;源码顶部原注释(英文,仅作回查线索):Replay-stable view models for Cordis lifecycle Tool calls.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/dynamic-port.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面交互逻辑
- 这个文件有什么用:这个文件属于一个界面功能包,负责用户操作、视图状态或 UI 适配;它把浏览器体验接到稳定的运行时契约上。
- 为什么这样设计:把用户操作和视图状态放在界面包内,能让 Web 组件复用同一套交互契约,也让服务端和领域逻辑不被浏览器细节污染。
- 文件级设计证据:源码顶部注释把它定位为“Host operations used directly by the frame-wide Cordis panel.”;固定提交中扫描到的声明包括
CordisActionResult、CordisDynamicPort、CordisInventoryRow;本地静态 import 图显示它直接依赖 2 个源文件,并被 5 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/connection/src/client/index.ts、packages/extensions/ui-cordis/src/client/events.ts、packages/extensions/ui-cordis/src/client/CordisPanel.tsx、packages/extensions/ui-cordis/src/client/index.ts
- 对应测试:packages/extensions/ui-cordis/tests/inventory.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/CordisPanel.tsx、packages/extensions/ui-cordis/src/client/index.ts、packages/extensions/ui-cordis/src/client/inventory.ts确认状态如何进入 UI,最后对照packages/extensions/ui-cordis/tests/inventory.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 24 行;扫描到的声明包括
CordisActionResult、CordisDynamicPort、CordisInventoryRow;源码顶部原注释(英文,仅作回查线索):Host operations used directly by the frame-wide Cordis panel.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/events.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:事件契约
- 这个文件有什么用:它列出用户界面、Cordis 插件框架、浏览器端可以发送和接收的事件。用事件传递信息,能让生产者和消费者少互相导入,插件也更容易替换。
- 为什么这样设计:事件和钩子是插件之间的连接点。把连接点单独定义,可以让新增能力接入流程而不必修改所有旧消费者。
- 文件级设计证据:源码顶部注释把它定位为“Client-safe dynamic Cordis vocabulary re-exported through the Remote assembly.”;本地静态 import 图显示它直接依赖 1 个源文件,并被 9 个源文件直接引用。
- 直接协作者:packages/extensions/ui-cordis/README.md、packages/api/remotes/src/client/index.ts、packages/extensions/ui-cordis/src/client/CordisPanel.tsx、packages/extensions/ui-cordis/src/client/card-model.ts、packages/extensions/ui-cordis/src/client/dynamic-port.ts
- 对应测试:packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/extensions/ui-cordis/README.md、入口和消费者,再读当前契约,沿着packages/extensions/ui-cordis/src/client/CordisPanel.tsx、packages/extensions/ui-cordis/src/client/card-model.ts、packages/extensions/ui-cordis/src/client/dynamic-port.ts看它怎样约束运行时,最后对照packages/extensions/ui-cordis/tests/versioning.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 17 行;源码顶部原注释(英文,仅作回查线索):Client-safe dynamic Cordis vocabulary re-exported through the Remote assembly.。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/index.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:模块入口
- 这个文件有什么用:它把用户界面、Cordis 插件框架、浏览器端相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。
- 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
- 文件级设计证据:源码顶部注释把它定位为“Cordis dynamic-plugin cards, inventory panel, business-view host, and @pluginId source.”;固定提交中扫描到的声明包括
inject、apply;本地静态 import 图显示它直接依赖 16 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/api/remotes/src/client/index.ts、packages/client/locale/src/client/index.ts、packages/client/runtime/src/client/index.ts
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读
packages/extensions/ui-cordis/README.md、入口和消费者,再读当前契约,沿着所在包的入口或服务看它怎样约束运行时,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 171 行;扫描到的声明包括
inject、apply;源码顶部原注释(英文,仅作回查线索):Cordis dynamic-plugin cards, inventory panel, business-view host, and @pluginId source.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/inventory.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面交互逻辑
- 这个文件有什么用:这个文件属于一个界面功能包,负责用户操作、视图状态或 UI 适配;它把浏览器体验接到稳定的运行时契约上。
- 为什么这样设计:把用户操作和视图状态放在界面包内,能让 Web 组件复用同一套交互契约,也让服务端和领域逻辑不被浏览器细节污染。
- 文件级设计证据:源码顶部注释把它定位为“The host's definition registry as this page last read it, owned by the plugin's apply closure. The panel is a frame-wide surface, so it cannot derive this from any session: the registry is global and the read is a single global call. The rows are re-read ra...”;固定提交中扫描到的声明包括
CordisInventorySnapshot、CordisInventory、createCordisInventory;本地静态 import 图显示它直接依赖 3 个源文件,并被 3 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/ui-slots/src/index.ts、packages/extensions/ui-cordis/src/client/dynamic-port.ts、packages/extensions/ui-cordis/src/client/events.ts、packages/extensions/ui-cordis/src/client/index.ts
- 对应测试:packages/extensions/ui-cordis/tests/inventory.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/index.ts、packages/extensions/ui-cordis/src/client/slots.ts、packages/extensions/ui-cordis/tests/inventory.client.spec.ts确认状态如何进入 UI,最后对照packages/extensions/ui-cordis/tests/inventory.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 113 行;扫描到的声明包括
CordisInventorySnapshot、CordisInventory、createCordisInventory;源码顶部原注释(英文,仅作回查线索):The host's definition registry as this page last read it, owned by the plugin's apply closure. The panel is a frame-wide surface, so it cannot derive this from any session: the registry is global and the read is a single global call. The rows are re-read ra...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/locales.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:本地化资源
- 这个文件有什么用:它为用户界面、Cordis 插件框架、浏览器端提供语言文本、键名或本地化格式,让界面切换语言时不必改动业务流程。
- 为什么这样设计:文本资源与业务流程分开,新增语言或修改措辞时不必改动状态机和领域逻辑;键名也能成为组件与翻译文件之间的稳定契约。
- 文件级设计证据:源码顶部注释把它定位为“Cordis dynamic-plugin UI dictionaries.”;固定提交中扫描到的声明包括
NS、zh、CordisKey、en;本地静态 import 图显示它直接依赖 0 个源文件,并被 4 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx、packages/extensions/ui-cordis/src/client/CordisPanel.tsx、packages/extensions/ui-cordis/src/client/CordisRunRow.tsx
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx、packages/extensions/ui-cordis/src/client/CordisPanel.tsx、packages/extensions/ui-cordis/src/client/CordisRunRow.tsx确认状态如何进入 UI,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 119 行;扫描到的声明包括
NS、zh、CordisKey、en;源码顶部原注释(英文,仅作回查线索):Cordis dynamic-plugin UI dictionaries.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/run-card-index.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:运行驱动
- 这个文件有什么用:它推进用户界面、Cordis 插件框架、浏览器端的输入、执行、输出和退出状态,把一类运行流程封装成可观察的边界。
- 为什么这样设计:运行流程的输入、输出和退出状态集中,宿主只负责提供环境;这样命令行、测试和服务端可以复用同一条执行路径。
- 文件级设计证据:源码顶部注释把它定位为“Session-local ownership index for Package business views on cordis_run cards.”;固定提交中扫描到的声明包括
CordisToolViewKey、CordisRunCardPointer、CordisRunCardStore、CordisRunCardRegistry、cordisToolViewKey;本地静态 import 图显示它直接依赖 3 个源文件,并被 4 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/connection/src/client/index.ts、packages/client/ui-slots/src/index.ts、packages/extensions/ui-cordis/src/client/events.ts、packages/extensions/ui-cordis/src/client/CordisRunRow.tsx
- 对应测试:packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/extensions/ui-cordis/README.md和入口,再读当前实现,沿着packages/client/connection/src/client/index.ts、packages/client/ui-slots/src/index.ts、packages/extensions/ui-cordis/src/client/events.ts和packages/extensions/ui-cordis/src/client/CordisRunRow.tsx、packages/extensions/ui-cordis/src/client/index.ts、packages/extensions/ui-cordis/src/client/slots.ts确认输入输出,最后对照packages/extensions/ui-cordis/tests/versioning.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 76 行;扫描到的声明包括
CordisToolViewKey、CordisRunCardPointer、CordisRunCardStore、CordisRunCardRegistry、cordisToolViewKey、createStore;源码顶部原注释(英文,仅作回查线索):Session-local ownership index for Package business views on cordis_run cards.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/slots.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:扩展槽位契约
- 这个文件有什么用:它为用户界面、Cordis 插件框架、浏览器端定义可插入的槽位和输入契约,让插件或界面扩展可以在不复制主流程的情况下接入。
- 为什么这样设计:把扩展点先定义成窄契约,可以让提供方和消费方独立演进;插件不需要复制宿主流程,也更容易在测试中替换。
- 文件级设计证据:源码顶部注释把它定位为“Injected faces and the Package-owned tool.view.cordis slot declaration.”;固定提交中扫描到的声明包括
CordisToolViewOwnerProps、CordisCardFace、CordisRunCardFace、CordisPanelFace;本地静态 import 图显示它直接依赖 7 个源文件,并被 4 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/connection/src/client/index.ts、packages/client/ui-slots/src/index.ts、packages/extensions/cordis-client-runner/src/client/index.ts、packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读
packages/extensions/ui-cordis/README.md、入口和消费者,再读当前契约,沿着packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx、packages/extensions/ui-cordis/src/client/CordisPanel.tsx、packages/extensions/ui-cordis/src/client/CordisRunRow.tsx看它怎样约束运行时,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 72 行;扫描到的声明包括
CordisToolViewOwnerProps、CordisCardFace、CordisRunCardFace、CordisPanelFace;源码顶部原注释(英文,仅作回查线索):Injected faces and the Package-owned tool.view.cordis slot declaration.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/client/status.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:界面交互逻辑
- 这个文件有什么用:这个文件属于一个界面功能包,负责用户操作、视图状态或 UI 适配;它把浏览器体验接到稳定的运行时契约上。
- 为什么这样设计:把用户操作和视图状态放在界面包内,能让 Web 组件复用同一套交互契约,也让服务端和领域逻辑不被浏览器细节污染。
- 文件级设计证据:源码顶部注释把它定位为“Shared status derivation over Host inventory and this page's Client live set.”;固定提交中扫描到的声明包括
CordisVisibleStatus、packageOf、cordisVisibleStatus;本地静态 import 图显示它直接依赖 2 个源文件,并被 4 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/extensions/cordis-client-runner/src/client/index.ts、packages/extensions/ui-cordis/src/client/events.ts、packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx、packages/extensions/ui-cordis/src/client/CordisPanel.tsx
- 对应测试:packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读客户端运行时契约或呈现模型,再读当前界面文件,沿着
packages/extensions/ui-cordis/src/client/CordisDefineRow.tsx、packages/extensions/ui-cordis/src/client/CordisPanel.tsx、packages/extensions/ui-cordis/src/client/CordisRunRow.tsx确认状态如何进入 UI,最后对照packages/extensions/ui-cordis/tests/versioning.client.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 45 行;扫描到的声明包括
CordisVisibleStatus、packageOf、cordisVisibleStatus;源码顶部原注释(英文,仅作回查线索):Shared status derivation over Host inventory and this page's Client live set.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/css-modules.d.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:类型声明
- 这个文件有什么用:这个文件补充运行时库或构建工具的类型声明,让调用者在编译期知道可用字段、参数和返回值,而不改变运行时行为。
- 为什么这样设计:它位于 packages/extensions/ui-cordis/src的类型声明层;固定提交没有解析到本地依赖或顶层声明,因此先把它作为独立边界阅读,再回到源码确认具体实现。
- 文件级设计证据:本次固定提交归档没有扫描到顶部注释、顶层声明或专门的结构线索;本地静态 import 图显示它直接依赖 0 个源文件,并被 0 个源文件直接引用。
- 直接协作者:packages/extensions/ui-cordis/README.md
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读
packages/extensions/ui-cordis/README.md、入口和消费者,再读当前契约,沿着所在包的入口或服务看它怎样约束运行时,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 6 行。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/index.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:模块入口
- 这个文件有什么用:它把用户界面、Cordis 插件框架相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。
- 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
- 文件级设计证据:源码顶部注释把它定位为“Cordis dynamic-plugin card, node half. Pure UI plugin: the empty apply exists so the plugin appears in the host cordis.yml / Loader; the browser half ships via exports"./client", discovered through the package.json dshClient declaration.”;固定提交中扫描到的声明包括
apply;本地静态 import 图显示它直接依赖 0 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读
packages/extensions/ui-cordis/README.md、入口和消费者,再读当前契约,沿着所在包的入口或服务看它怎样约束运行时,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 9 行;扫描到的声明包括
apply;源码顶部原注释(英文,仅作回查线索):Cordis dynamic-plugin card, node half. Pure UI plugin: the empty apply exists so the plugin appears in the host cordis.yml / Loader; the browser half ships via exports"./client", discovered through the package.json dshClient declaration.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/src/invariant.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:运行时不变量
- 这个文件有什么用:它检查用户界面、Cordis 插件框架必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。
- 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
- 文件级设计证据:源码顶部注释把它定位为“Package-owned invariant companion for @deepseek-ai/dsh-client-ui-cordis. @module @deepseek-ai/dsh-client-ui-cordis/invariant”;固定提交中扫描到的声明包括
name、inject、apply;本地静态 import 图显示它直接依赖 2 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着
packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts和所在包的入口或服务理解状态变化,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 33 行;扫描到的声明包括
name、inject、apply;源码顶部原注释(英文,仅作回查线索):Package-owned invariant companion for @deepseek-ai/dsh-client-ui-cordis. @module @deepseek-ai/dsh-client-ui-cordis/invariant。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/tests/card-model.client.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查用户界面、Cordis 插件框架、浏览器端的具体场景,包括“cordisDefineCard”、“reads name, purpose and both code halves off the call arguments”、“takes the minted id from the result presentation meta”、“renders read-only when the meta carries no usable id”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“cordisDefineCard”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:源码顶部注释把它定位为“Card view model: what a definition card can and cannot derive from the frozen call/result slice.”;固定提交中扫描到的声明包括
running、settled;本地静态 import 图显示它直接依赖 2 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/runtime/src/client/index.ts、packages/extensions/ui-cordis/src/client/card-model.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/client/runtime/src/client/index.ts、packages/extensions/ui-cordis/src/client/card-model.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 105 行;扫描到的声明包括
running、settled;扫描到的测试主题包括 “cordisDefineCard”、“reads name, purpose and both code halves off the call arguments”、“takes the minted id from the result presentation meta”、“renders read-only when the meta carries no usable id”、“classifies the define call’s own lifecycle and never operates a failed one”、“degrades on a truncated argument stream instead of dropping the row”;源码顶部原注释(英文,仅作回查线索):Card view model: what a definition card can and cannot derive from the frozen call/result slice.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/tests/inventory.client.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查用户界面、Cordis 插件框架、浏览器端的具体场景,包括“reading the registry”、“starts unread, then publishes the rows”、“is single-flight: concurrent triggers read once”、“keeps the rows it had when a read fails, and says why”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“reading the registry”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:源码顶部注释把它定位为“The inventory store: how the panel's rows arrive, what a failed read leaves behind, and why a read is single-flight.”;固定提交中扫描到的声明包括
port;本地静态 import 图显示它直接依赖 2 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/extensions/ui-cordis/README.md、packages/extensions/ui-cordis/src/client/dynamic-port.ts、packages/extensions/ui-cordis/src/client/inventory.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/extensions/ui-cordis/src/client/dynamic-port.ts、packages/extensions/ui-cordis/src/client/inventory.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 142 行;扫描到的声明包括
port;扫描到的测试主题包括 “reading the registry”、“starts unread, then publishes the rows”、“is single-flight: concurrent triggers read once”、“keeps the rows it had when a read fails, and says why”、“reports a non-Error rejection without inventing a message”、“forgets everything on reset, because the next host may be a new process”;源码顶部原注释(英文,仅作回查线索):The inventory store: how the panel's rows arrive, what a failed read leaves behind, and why a read is single-flight.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/tests/versioning.client.spec.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查用户界面、Cordis 插件框架、浏览器端的具体场景,包括“versioned Cordis card models”、“reads symmetric Host and Client source fields from cordis_define”、“reads exact activation metadata from a successful cordis_run result”、“keeps the target identities while cordis_run waits for approval”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“versioned Cordis card models”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:本次固定提交归档没有扫描到顶部注释、顶层声明或专门的结构线索;本地静态 import 图显示它直接依赖 5 个源文件,并被 0 个源文件直接引用。
- 直接协作者:packages/extensions/ui-cordis/README.md、packages/extensions/cordis-client-runner/src/client/index.ts、packages/extensions/ui-cordis/src/client/card-model.ts、packages/extensions/ui-cordis/src/client/events.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/extensions/cordis-client-runner/src/client/index.ts、packages/extensions/ui-cordis/src/client/card-model.ts、packages/extensions/ui-cordis/src/client/events.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 133 行;扫描到的测试主题包括 “versioned Cordis card models”、“reads symmetric Host and Client source fields from cordis_define”、“reads exact activation metadata from a successful cordis_run result”、“keeps the target identities while cordis_run waits for approval”、“Cordis run-card ownership”、“keeps the greatest Session log sequence for one Plugin and Package”。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/extensions/ui-cordis/tsdown.config.ts
- 所属层:packages/extensions:可复用的 Harness 功能包
- 文件角色:构建或测试配置
- 这个文件有什么用:它告诉工具链怎样处理用户界面、Cordis 插件框架:从哪里开始、使用哪个环境、解析哪些依赖以及输出什么产物;这些规则集中后,构建和测试才可重复。
- 为什么这样设计:工具链配置独立于业务实现,构建、测试和发布可以复用同一套入口规则;改配置时也能单独看出运行环境变化。
- 文件级设计证据:本次固定提交归档没有扫描到顶部注释、顶层声明或专门的结构线索;本地静态 import 图显示它直接依赖 1 个源文件,并被 0 个源文件直接引用。
- 直接协作者:packages/extensions/ui-cordis/README.md、packages/client/tsdown.client.ts
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读
packages/extensions/ui-cordis/README.md,再读本配置/脚本,沿着所在包的入口或服务确认它如何影响入口和产物,最后对照对应 gate 或快照测试。 - 代码证据:固定提交归档实际读取结果:约 3 行。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。