跳至内容

源文件索引:packages/spill

本页由 study-tools/generate-source-index.mjs 根据官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec 生成,共 12 个代码或界面源文件。每个标题对应一个真实路径;用途和拆分原因是面向初学者的结构化解释,自动索引不等于人工精读。

图例

本页所有条目共用以下说明:

  • 自动索引只提供定位线索,复杂行为需要回到源码和测试确认。
  • 条目中的行数、声明、结构线索和静态 import 数字是文件级定位证据,用来约束“为什么这样设计”的解释范围;它们用于定位,不替代人工源码阅读。
  • 源码链接固定到官方提交;如果当前条目与运行版本不同,应先重新生成索引再下结论。

packages/spill/spill-local/src/index.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:模块入口
  • 这个文件有什么用:它把 packages/spill/spill-local 包里的 src/index.ts 相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。
  • 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
  • 文件级设计证据:源码顶部注释把它定位为“LocalSpillStore: the host-filesystem implementation of the @deepseek-ai/dsh-spill storage seam. Persists a tool's oversized text to a private, session-scoped file (see ./store.ts for the traversal-safe naming and exclusive owner-only write) and returns a pa...”;固定提交中扫描到的声明包括 ConfigLocalSpillStore;本地静态 import 图显示它直接依赖 4 个源文件,并被 2 个源文件直接引用。
  • 直接协作者:packages/spill/spill-local/README.mdpackages/spill/spill-local/src/store.tspackages/spill/spill/src/index.tsvendor/cordis/src/index.tspackages/spill/spill-local/tests/spill-local.spec.ts
  • 对应测试:packages/spill/spill-local/tests/spill-local.spec.tspackages/web/tool-web/tests/spill.spec.ts
  • 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
  • 阅读顺序:先读 packages/spill/spill-local/README.md、入口和消费者,再读当前契约,沿着 packages/spill/spill-local/tests/spill-local.spec.tspackages/web/tool-web/tests/spill.spec.ts 看它怎样约束运行时,最后对照 packages/spill/spill-local/tests/spill-local.spec.tspackages/web/tool-web/tests/spill.spec.ts
  • 代码证据:固定提交归档实际读取结果:约 65 行;扫描到的声明包括 ConfigLocalSpillStore;源码顶部原注释(英文,仅作回查线索):LocalSpillStore: the host-filesystem implementation of the @deepseek-ai/dsh-spill storage seam. Persists a tool's oversized text to a private, session-scoped file (see ./store.ts for the traversal-safe naming and exclusive owner-only write) and returns a pa...。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill-local/src/invariant.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:运行时不变量
  • 这个文件有什么用:它检查 packages/spill/spill-local 包里的 src/invariant.ts 必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。
  • 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
  • 文件级设计证据:源码顶部注释把它定位为“Package-owned invariant companion for @deepseek-ai/dsh-spill-local. @module @deepseek-ai/dsh-spill-local/invariant”;固定提交中扫描到的声明包括 nameinjectapply;本地静态 import 图显示它直接依赖 2 个源文件,并被 0 个源文件直接引用。
  • 直接协作者:packages/spill/spill-local/README.mdpackages/runtime-diagnostics/invariants/src/index.tsvendor/cordis/src/index.ts
  • 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
  • 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
  • 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着 packages/runtime-diagnostics/invariants/src/index.tsvendor/cordis/src/index.ts 和所在包的入口或服务理解状态变化,最后对照同包中与它同名或覆盖相近场景的测试。
  • 代码证据:固定提交归档实际读取结果:约 30 行;扫描到的声明包括 nameinjectapply;源码顶部原注释(英文,仅作回查线索):Package-owned invariant companion for @deepseek-ai/dsh-spill-local. @module @deepseek-ai/dsh-spill-local/invariant。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill-local/src/store.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:状态存储
  • 这个文件有什么用:它维护状态存储的状态、快照或队列,并集中处理更新、读取和清理规则。
  • 为什么这样设计:状态更新集中在一个边界,调用者不需要维护多份副本;未来替换观察、缓存或持久化方式时,消费方依赖仍然稳定。
  • 文件级设计证据:源码顶部注释把它定位为“Cordis-free storage mechanics for the local spill backend: private session-scoped directory selection, safe-name derivation, path-traversal protection, and the exclusive owner-only write. Kept out of the service class (like dsh-bash-local's run.ts) so the f...”;固定提交中扫描到的声明包括 privateRootencodeSegmentsessionDirSaveTextOptionsSavedText;本地静态 import 图显示它直接依赖 0 个源文件,并被 1 个源文件直接引用。
  • 直接协作者:packages/spill/spill-local/README.mdpackages/spill/spill-local/src/index.ts
  • 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):packages/spill/spill-local/tests/spill-local.spec.tspackages/web/tool-web/tests/spill.spec.ts
  • 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
  • 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着相关类型、协议或实现和 packages/spill/spill-local/src/index.ts 理解状态变化,最后对照 packages/spill/spill-local/tests/spill-local.spec.tspackages/web/tool-web/tests/spill.spec.ts
  • 代码证据:固定提交归档实际读取结果:约 120 行;扫描到的声明包括 privateRootencodeSegmentsessionDirSaveTextOptionsSavedTextsaveTextFile;源码顶部原注释(英文,仅作回查线索):Cordis-free storage mechanics for the local spill backend: private session-scoped directory selection, safe-name derivation, path-traversal protection, and the exclusive owner-only write. Kept out of the service class (like dsh-bash-local's run.ts) so the f...。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill-local/tests/spill-local.spec.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:测试用例
  • 这个文件有什么用:它围绕“spill-local”写出可重复运行的断言,覆盖的场景包括“encodeSegment”、“keeps the safe set literal”、“escapes separators and tilde (dots are literal except as whole-segment tokens)”、“escapes the whole-segment dot tokens”;这些断言把“应该发生什么”变成可以重复运行的证据。
  • 为什么这样设计:把测试主题“encodeSegment”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
  • 文件级设计证据:源码顶部注释把它定位为“Tests for the LOCAL spill backend: saveText writes a session-scoped file and returns a locator + byte length + retrieval hint, filename sanitization neutralizes traversal, the configured root is honored (and the private default when omitted), and a storage ...”;固定提交中扫描到的声明包括 request;本地静态 import 图显示它直接依赖 5 个源文件,并被 0 个源文件直接引用。
  • 直接协作者:packages/spill/spill-local/README.mdpackages/core/session/src/index.tspackages/llm/llm/src/index.tspackages/spill/spill-local/src/index.ts
  • 对应测试:本文件本身就是测试用例。
  • 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
  • 阅读顺序:先看它直接导入的被测实现 packages/core/session/src/index.tspackages/llm/llm/src/index.tspackages/spill/spill-local/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。
  • 代码证据:固定提交归档实际读取结果:约 145 行;扫描到的声明包括 request;扫描到的测试主题包括 “encodeSegment”、“keeps the safe set literal”、“escapes separators and tilde (dots are literal except as whole-segment tokens)”、“escapes the whole-segment dot tokens”、“encodes the empty string to a non-empty segment”、“sessionDir”;源码顶部原注释(英文,仅作回查线索):Tests for the LOCAL spill backend: saveText writes a session-scoped file and returns a locator + byte length + retrieval hint, filename sanitization neutralizes traversal, the configured root is honored (and the private default when omitted), and a storage ...。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill-policy/src/index.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:模块入口
  • 这个文件有什么用:它把策略相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。
  • 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
  • 文件级设计证据:源码顶部注释把它定位为“The spill-policy PLUGIN: a tools/post-execute result transformer that keeps oversized plain-text tool results out of the model's context. When a final result's UTF-8 size exceeds maxInlineBytes, it saves the FULL text to a session-scoped spill artifact (ctx...”;固定提交中扫描到的声明包括 ConfignameinjectapplyflattenPlainText;本地静态 import 图显示它直接依赖 8 个源文件,并被 2 个源文件直接引用。
  • 直接协作者:packages/spill/spill-policy/README.mdpackages/core/session/src/index.tspackages/core/tools/src/index.tspackages/llm/llm/src/index.tspackages/spill/spill-policy/tests/spill-policy.spec.ts
  • 对应测试:packages/spill/spill-policy/tests/spill-policy.spec.tspackages/web/tool-web/tests/spill.spec.ts
  • 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
  • 阅读顺序:先读 packages/spill/spill-policy/README.md、入口和消费者,再读当前契约,沿着 packages/spill/spill-policy/tests/spill-policy.spec.tspackages/web/tool-web/tests/spill.spec.ts 看它怎样约束运行时,最后对照 packages/spill/spill-policy/tests/spill-policy.spec.tspackages/web/tool-web/tests/spill.spec.ts
  • 代码证据:固定提交归档实际读取结果:约 232 行;扫描到的声明包括 ConfignameinjectapplyflattenPlainTextownerSessionIdpreviewspillNotice;源码顶部原注释(英文,仅作回查线索):The spill-policy PLUGIN: a tools/post-execute result transformer that keeps oversized plain-text tool results out of the model's context. When a final result's UTF-8 size exceeds maxInlineBytes, it saves the FULL text to a session-scoped spill artifact (ctx...。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill-policy/src/invariant.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:运行时不变量
  • 这个文件有什么用:它检查策略必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。
  • 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
  • 文件级设计证据:源码顶部注释把它定位为“Package-owned invariant companion for @deepseek-ai/dsh-spill-policy. @module @deepseek-ai/dsh-spill-policy/invariant”;固定提交中扫描到的声明包括 nameinjectapply;本地静态 import 图显示它直接依赖 2 个源文件,并被 0 个源文件直接引用。
  • 直接协作者:packages/spill/spill-policy/README.mdpackages/runtime-diagnostics/invariants/src/index.tsvendor/cordis/src/index.ts
  • 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
  • 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
  • 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着 packages/runtime-diagnostics/invariants/src/index.tsvendor/cordis/src/index.ts 和所在包的入口或服务理解状态变化,最后对照同包中与它同名或覆盖相近场景的测试。
  • 代码证据:固定提交归档实际读取结果:约 30 行;扫描到的声明包括 nameinjectapply;源码顶部原注释(英文,仅作回查线索):Package-owned invariant companion for @deepseek-ai/dsh-spill-policy. @module @deepseek-ai/dsh-spill-policy/invariant。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill-policy/src/types.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:类型契约
  • 这个文件有什么用:它描述策略中流转的数据长什么样、哪些字段必填以及各部分怎样关联,让不同模块先共享同一份约定。
  • 为什么这样设计:先把形状和规则集中声明,执行代码只负责使用已经检查过的数据;这样错误更早暴露,读代码时也有一张共同的地图。
  • 文件级设计证据:源码顶部注释把它定位为“Vocabulary for the spill-policy plugin: the minimal structural view of a tool execution the policy needs to derive the owning session for a spill artifact. @deepseek-ai/dsh-tools' ToolExecution satisfies this shape, so the policy reads exec straight through...”;固定提交中扫描到的声明包括 SpillPolicyExec;本地静态 import 图显示它直接依赖 1 个源文件,并被 1 个源文件直接引用。
  • 直接协作者:packages/spill/spill-policy/README.mdpackages/core/session/src/index.tspackages/spill/spill-policy/src/index.ts
  • 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):packages/spill/spill-policy/tests/spill-policy.spec.tspackages/web/tool-web/tests/spill.spec.ts
  • 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
  • 阅读顺序:先读 packages/spill/spill-policy/README.md、入口和消费者,再读当前契约,沿着 packages/spill/spill-policy/src/index.ts 看它怎样约束运行时,最后对照 packages/spill/spill-policy/tests/spill-policy.spec.tspackages/web/tool-web/tests/spill.spec.ts
  • 代码证据:固定提交归档实际读取结果:约 26 行;扫描到的声明包括 SpillPolicyExec;源码顶部原注释(英文,仅作回查线索):Vocabulary for the spill-policy plugin: the minimal structural view of a tool execution the policy needs to derive the owning session for a spill artifact. @deepseek-ai/dsh-tools' ToolExecution satisfies this shape, so the policy reads exec straight through...。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill-policy/tests/spill-policy.spec.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:测试用例
  • 这个文件有什么用:它用自动化测试检查策略的具体场景,包括“disabled mode”、“registers no post-execute listener when maxInlineBytes is omitted”、“loader export shape”、“has no default export and keeps name/inject/Config through unwrapExports”;这些断言把“应该发生什么”变成可以重复运行的证据。
  • 为什么这样设计:把测试主题“disabled mode”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
  • 文件级设计证据:源码顶部注释把它定位为“Tests for the spill-policy PLUGIN. It registers no service, only the tools/post-execute transformer. We drive real tools through ctx.tools.execute(...) and assert: disabled mode is a true no-op, an oversized plain-text result is spilled and replaced with a ...”;固定提交中扫描到的声明包括 StubStoretextToolexecsetuptextOf;本地静态 import 图显示它直接依赖 9 个源文件,并被 0 个源文件直接引用。
  • 直接协作者:packages/spill/spill-policy/README.mdpackages/code-runtime/code-runtime-worker-thread/src/index.tspackages/core/session/src/index.tspackages/core/system-prompt/src/index.ts
  • 对应测试:本文件本身就是测试用例。
  • 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
  • 阅读顺序:先看它直接导入的被测实现 packages/code-runtime/code-runtime-worker-thread/src/index.tspackages/core/session/src/index.tspackages/core/system-prompt/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。
  • 代码证据:固定提交归档实际读取结果:约 604 行;扫描到的声明包括 StubStoretextToolexecsetuptextOfrunCodeWith;扫描到的测试主题包括 “disabled mode”、“registers no post-execute listener when maxInlineBytes is omitted”、“loader export shape”、“has no default export and keeps name/inject/Config through unwrapExports”、“config validation”、“rejects a negative maxInlineBytes at load”;源码顶部原注释(英文,仅作回查线索):Tests for the spill-policy PLUGIN. It registers no service, only the tools/post-execute transformer. We drive real tools through ctx.tools.execute(...) and assert: disabled mode is a true no-op, an oversized plain-text result is spilled and replaced with a ...。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill/src/index.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:模块入口
  • 这个文件有什么用:它把 packages/spill/spill 包里的 src/index.ts 相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。
  • 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
  • 文件级设计证据:源码顶部注释把它定位为“Service Definition for the spill storage capability seam (ctx.spillStore): an abstract service defining WHAT a spill backend does — persist a tool's oversized text and return a model-facing locator plus retrieval guidance — without saying HOW. Implementatio...”;本地静态 import 图显示它直接依赖 2 个源文件,并被 9 个源文件直接引用。
  • 直接协作者:packages/spill/spill/README.mdpackages/spill/spill/src/types.tsvendor/cordis/src/index.tspackages/fs/tool-fs-search/src/glob.tspackages/fs/tool-fs-search/src/grep.ts
  • 对应测试:packages/fs/tool-fs-search/tests/tools.spec.tspackages/spill/spill-local/tests/spill-local.spec.tspackages/spill/spill-policy/tests/spill-policy.spec.tspackages/spill/spill/tests/service.spec.ts
  • 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
  • 阅读顺序:先读 packages/spill/spill/README.md、入口和消费者,再读当前契约,沿着 packages/fs/tool-fs-search/src/glob.tspackages/fs/tool-fs-search/src/grep.tspackages/fs/tool-fs-search/src/search-core.ts 看它怎样约束运行时,最后对照 packages/fs/tool-fs-search/tests/tools.spec.tspackages/spill/spill-local/tests/spill-local.spec.tspackages/spill/spill-policy/tests/spill-policy.spec.ts
  • 代码证据:固定提交归档实际读取结果:约 58 行;源码顶部原注释(英文,仅作回查线索):Service Definition for the spill storage capability seam (ctx.spillStore): an abstract service defining WHAT a spill backend does — persist a tool's oversized text and return a model-facing locator plus retrieval guidance — without saying HOW. Implementatio...。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill/src/invariant.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:运行时不变量
  • 这个文件有什么用:它检查 packages/spill/spill 包里的 src/invariant.ts 必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。
  • 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
  • 文件级设计证据:源码顶部注释把它定位为“Package-owned invariant companion for @deepseek-ai/dsh-spill. @module @deepseek-ai/dsh-spill/invariant”;固定提交中扫描到的声明包括 nameinjectapply;本地静态 import 图显示它直接依赖 2 个源文件,并被 0 个源文件直接引用。
  • 直接协作者:packages/spill/spill/README.mdpackages/runtime-diagnostics/invariants/src/index.tsvendor/cordis/src/index.ts
  • 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
  • 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
  • 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着 packages/runtime-diagnostics/invariants/src/index.tsvendor/cordis/src/index.ts 和所在包的入口或服务理解状态变化,最后对照同包中与它同名或覆盖相近场景的测试。
  • 代码证据:固定提交归档实际读取结果:约 30 行;扫描到的声明包括 nameinjectapply;源码顶部原注释(英文,仅作回查线索):Package-owned invariant companion for @deepseek-ai/dsh-spill. @module @deepseek-ai/dsh-spill/invariant。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill/src/types.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:类型契约
  • 这个文件有什么用:它描述 packages/spill/spill 包里的 src/types.ts 中流转的数据长什么样、哪些字段必填以及各部分怎样关联,让不同模块先共享同一份约定。
  • 为什么这样设计:先把形状和规则集中声明,执行代码只负责使用已经检查过的数据;这样错误更早暴露,读代码时也有一张共同的地图。
  • 文件级设计证据:源码顶部注释把它定位为“Vocabulary for the spill storage Service Definition. Types only — the abstract service lives in ./index.ts, implementations in sibling packages (@deepseek-ai/dsh-spill-local first). @module @deepseek-ai/dsh-spill/types”;固定提交中扫描到的声明包括 SpillLocatorSpillOwnerSpillSourceSaveTextSpillSpillRef;本地静态 import 图显示它直接依赖 3 个源文件,并被 1 个源文件直接引用。
  • 直接协作者:packages/spill/spill/README.mdpackages/core/session/src/index.tspackages/llm/llm/src/index.tspackages/util/brand/src/index.tspackages/spill/spill/src/index.ts
  • 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):packages/fs/tool-fs-search/tests/integration.spec.tspackages/fs/tool-fs-search/tests/load-path.spec.tspackages/fs/tool-fs-search/tests/presentation.spec.tspackages/fs/tool-fs-search/tests/rg-path.spec.tspackages/fs/tool-fs-search/tests/rg-sidecar.spec.tspackages/fs/tool-fs-search/tests/tools.spec.ts
  • 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
  • 阅读顺序:先读 packages/spill/spill/README.md、入口和消费者,再读当前契约,沿着 packages/spill/spill/src/index.ts 看它怎样约束运行时,最后对照 packages/fs/tool-fs-search/tests/integration.spec.tspackages/fs/tool-fs-search/tests/load-path.spec.tspackages/fs/tool-fs-search/tests/presentation.spec.ts
  • 代码证据:固定提交归档实际读取结果:约 73 行;扫描到的声明包括 SpillLocatorSpillOwnerSpillSourceSaveTextSpillSpillRef;源码顶部原注释(英文,仅作回查线索):Vocabulary for the spill storage Service Definition. Types only — the abstract service lives in ./index.ts, implementations in sibling packages (@deepseek-ai/dsh-spill-local first). @module @deepseek-ai/dsh-spill/types。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec

packages/spill/spill/tests/service.spec.ts

  • 所属层:packages/spill:可复用的 Harness 功能包
  • 文件角色:测试用例
  • 这个文件有什么用:它围绕“service”写出可重复运行的断言,覆盖的场景包括“spill seam”、“registers as ctx.spillStore and saves text”、“rejects a second implementation (one per context)”、“releases the service on disposal”;这些断言把“应该发生什么”变成可以重复运行的证据。
  • 为什么这样设计:把测试主题“spill seam”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
  • 文件级设计证据:源码顶部注释把它定位为“Tests for the spill Service Definition: a minimal concrete subclass registers as ctx.spillStore, a second load throws (duplicate service), and disposal releases the service. The storage behavior is the implementation's concern (@deepseek-ai/dsh-spill-local)...”;固定提交中扫描到的声明包括 StubStorerequest;本地静态 import 图显示它直接依赖 4 个源文件,并被 0 个源文件直接引用。
  • 直接协作者:packages/spill/spill/README.mdpackages/core/session/src/index.tspackages/llm/llm/src/index.tspackages/spill/spill/src/index.ts
  • 对应测试:本文件本身就是测试用例。
  • 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
  • 阅读顺序:先看它直接导入的被测实现 packages/core/session/src/index.tspackages/llm/llm/src/index.tspackages/spill/spill/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。
  • 代码证据:固定提交归档实际读取结果:约 60 行;扫描到的声明包括 StubStorerequest;扫描到的测试主题包括 “spill seam”、“registers as ctx.spillStore and saves text”、“rejects a second implementation (one per context)”、“releases the service on disposal”;源码顶部原注释(英文,仅作回查线索):Tests for the spill Service Definition: a minimal concrete subclass registers as ctx.spillStore, a second load throws (duplicate service), and disposal releases the service. The storage behavior is the implementation's concern (@deepseek-ai/dsh-spill-local)...。
  • 固定版本:源码链接固定到官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec