源文件索引:packages/compaction
本页由 study-tools/generate-source-index.mjs 根据官方提交 aa6c361a972c8369148dea7380bb5c21c24e07ec 生成,共 31 个代码或界面源文件。每个标题对应一个真实路径;用途和拆分原因是面向初学者的结构化解释,自动索引不等于人工精读。
图例
本页所有条目共用以下说明:
- 自动索引只提供定位线索,复杂行为需要回到源码和测试确认。
- 条目中的行数、声明、结构线索和静态 import 数字是文件级定位证据,用来约束“为什么这样设计”的解释范围;它们用于定位,不替代人工源码阅读。
- 源码链接固定到官方提交;如果当前条目与运行版本不同,应先重新生成索引再下结论。
packages/compaction/command-compact/src/index.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:模块入口
- 这个文件有什么用:它把
packages/compaction/command-compact包里的src/index.ts相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。 - 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
- 文件级设计证据:源码顶部注释把它定位为“Human-facing /compact command over the backend-independent compaction seam. @module @deepseek-ai/dsh-command-compact”;固定提交中扫描到的声明包括
name、inject、apply、assertNever、expectedFailure;本地静态 import 图显示它直接依赖 3 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/compaction/command-compact/README.md、packages/compaction/compaction/src/index.ts、packages/interaction/commands/src/index.ts、vendor/cordis/src/index.ts、packages/compaction/command-compact/tests/command-compact.spec.ts
- 对应测试:packages/compaction/command-compact/tests/command-compact.spec.ts、packages/compaction/command-compact/tests/loader-composition.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/compaction/command-compact/README.md、入口和消费者,再读当前契约,沿着packages/compaction/command-compact/tests/command-compact.spec.ts、packages/compaction/command-compact/tests/loader-composition.spec.ts看它怎样约束运行时,最后对照packages/compaction/command-compact/tests/command-compact.spec.ts、packages/compaction/command-compact/tests/loader-composition.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 106 行;扫描到的声明包括
name、inject、apply、assertNever、expectedFailure、executeCompact;源码顶部原注释(英文,仅作回查线索):Human-facing /compact command over the backend-independent compaction seam. @module @deepseek-ai/dsh-command-compact。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/command-compact/src/invariant.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:运行时不变量
- 这个文件有什么用:它检查
packages/compaction/command-compact包里的src/invariant.ts必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。 - 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
- 文件级设计证据:源码顶部注释把它定位为“Package-owned invariant companion for @deepseek-ai/dsh-command-compact. @module @deepseek-ai/dsh-command-compact/invariant”;固定提交中扫描到的声明包括
name、inject、apply;本地静态 import 图显示它直接依赖 2 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/compaction/command-compact/README.md、packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts、packages/compaction/command-compact/tests/invariant.spec.ts
- 对应测试:packages/compaction/command-compact/tests/invariant.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着
packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts和packages/compaction/command-compact/tests/invariant.spec.ts理解状态变化,最后对照packages/compaction/command-compact/tests/invariant.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 30 行;扫描到的声明包括
name、inject、apply;源码顶部原注释(英文,仅作回查线索):Package-owned invariant companion for @deepseek-ai/dsh-command-compact. @module @deepseek-ai/dsh-command-compact/invariant。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/command-compact/tests/command-compact.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它围绕“command-compact”写出可重复运行的断言,覆盖的场景包括“@deepseek-ai/dsh-command-compact registration”、“registers one argument-free command with Loader-safe exports and disposes it”、“/compact human command”、“reports success with useful accounting and forwards the exact target and signal”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“@deepseek-ai/dsh-command-compact registration”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
StubCompactionEngine、harness、run、expectLastLifecycle;本地静态 import 图显示它直接依赖 7 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/command-compact/README.md、packages/compaction/command-compact/src/index.ts、packages/compaction/compaction/src/index.ts、packages/core/agent/src/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/command-compact/src/index.ts、packages/compaction/compaction/src/index.ts、packages/core/agent/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 280 行;扫描到的声明包括
StubCompactionEngine、harness、run、expectLastLifecycle;扫描到的测试主题包括 “@deepseek-ai/dsh-command-compact registration”、“registers one argument-free command with Loader-safe exports and disposes it”、“/compact human command”、“reports success with useful accounting and forwards the exact target and signal”、“returns direct no-history and argument-rejection results”、“preserves cancellation and unexpected implementation failures”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/command-compact/tests/invariant.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它围绕“invariant”写出可重复运行的断言,覆盖的场景包括“command-compact invariant companion”、“registers the package-owned no-op installer”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“command-compact invariant companion”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:本次固定提交归档没有扫描到顶部注释、顶层声明或专门的结构线索;本地静态 import 图显示它直接依赖 1 个源文件,并被 0 个源文件直接引用。
- 直接协作者:packages/compaction/command-compact/README.md、packages/compaction/command-compact/src/invariant.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/command-compact/src/invariant.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 18 行;扫描到的测试主题包括 “command-compact invariant companion”、“registers the package-owned no-op installer”。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/command-compact/tests/loader-composition.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它围绕“loader-composition”写出可重复运行的断言,覆盖的场景包括“command-compact real Loader composition”、“discovers and executes /compact through the assembled command plane”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“command-compact real Loader composition”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
LoaderCompactionEngine;本地静态 import 图显示它直接依赖 8 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/command-compact/README.md、packages/compaction/command-compact/src/index.ts、packages/compaction/compaction/src/index.ts、packages/core/agent/src/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/command-compact/src/index.ts、packages/compaction/compaction/src/index.ts、packages/core/agent/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 185 行;扫描到的声明包括
LoaderCompactionEngine;扫描到的测试主题包括 “command-compact real Loader composition”、“discovers and executes /compact through the assembled command plane”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-basic/src/config.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:配置与数据形状
- 这个文件有什么用:它定义
packages/compaction/compaction-basic包里的src/config.ts可接受的配置或输入形状,并在数据进入深层逻辑前集中校验。 - 为什么这样设计:先把形状和规则集中声明,执行代码只负责使用已经检查过的数据;这样错误更早暴露,读代码时也有一张共同的地图。
- 文件级设计证据:源码顶部注释把它定位为“Load-time validation and routed-model policy resolution for compaction-basic. @module @deepseek-ai/dsh-compaction-basic/config”;固定提交中扫描到的声明包括
TargetPressureConfigError、resolveConfig、resolveTargetPolicy、resolveCompactSpec、resolveRetention;本地静态 import 图显示它直接依赖 2 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-basic/README.md、packages/compaction/compaction-basic/src/types.ts、packages/llm/llm/src/index.ts、packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction-basic/tests/compaction-basic.spec.ts
- 对应测试:packages/compaction/compaction-basic/tests/compaction-basic.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/compaction/compaction-basic/README.md,再读本配置/脚本,沿着packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction-basic/tests/compaction-basic.spec.ts确认它如何影响入口和产物,最后对照对应 gate 或快照测试。 - 代码证据:固定提交归档实际读取结果:约 310 行;扫描到的声明包括
TargetPressureConfigError、resolveConfig、resolveTargetPolicy、resolveCompactSpec、resolveRetention、validateRatioRetention、resolveModelPolicies、assertModelPolicy;源码顶部原注释(英文,仅作回查线索):Load-time validation and routed-model policy resolution for compaction-basic. @module @deepseek-ai/dsh-compaction-basic/config。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-basic/src/index.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:模块入口
- 这个文件有什么用:它把
packages/compaction/compaction-basic包里的src/index.ts相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。 - 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
- 文件级设计证据:源码顶部注释把它定位为“Basic replay-aware compaction backend. @module @deepseek-ai/dsh-compaction-basic”;固定提交中扫描到的声明包括
BasicCompactionEngine、routedTarget、conversationTarget;本地静态 import 图显示它直接依赖 13 个源文件,并被 6 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-basic/README.md、packages/compaction/compaction-basic/src/config.ts、packages/compaction/compaction-basic/src/region.ts、packages/compaction/compaction-basic/src/summarizer.ts、apps/cli/tests/web-agent-presets.e2e.ts
- 对应测试:apps/cli/tests/web-agent-presets.e2e.ts、packages/compaction/compaction-basic/tests/compaction-basic.spec.ts、packages/compaction/compaction-basic/tests/compaction-loop-repro.spec.ts、packages/compaction/compaction-basic/tests/loader-composition.spec.ts、packages/compaction/compaction-basic/tests/manual-compaction.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/compaction/compaction-basic/README.md、入口和消费者,再读当前契约,沿着apps/cli/tests/web-agent-presets.e2e.ts、examples/headless-agent/tests/harness.ts、packages/compaction/compaction-basic/tests/compaction-basic.spec.ts看它怎样约束运行时,最后对照apps/cli/tests/web-agent-presets.e2e.ts、packages/compaction/compaction-basic/tests/compaction-basic.spec.ts、packages/compaction/compaction-basic/tests/compaction-loop-repro.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 431 行;扫描到的声明包括
BasicCompactionEngine、routedTarget、conversationTarget;源码顶部原注释(英文,仅作回查线索):Basic replay-aware compaction backend. @module @deepseek-ai/dsh-compaction-basic。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-basic/src/invariant.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:运行时不变量
- 这个文件有什么用:它检查
packages/compaction/compaction-basic包里的src/invariant.ts必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。 - 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
- 文件级设计证据:源码顶部注释把它定位为“Package-owned invariant companion for @deepseek-ai/dsh-compaction-basic. @module @deepseek-ai/dsh-compaction-basic/invariant”;固定提交中扫描到的声明包括
name、inject、apply;本地静态 import 图显示它直接依赖 2 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-basic/README.md、packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts、packages/compaction/compaction-basic/tests/manual-compaction.spec.ts
- 对应测试:packages/compaction/compaction-basic/tests/manual-compaction.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着
packages/runtime-diagnostics/invariants/src/index.ts、vendor/cordis/src/index.ts和packages/compaction/compaction-basic/tests/manual-compaction.spec.ts理解状态变化,最后对照packages/compaction/compaction-basic/tests/manual-compaction.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 30 行;扫描到的声明包括
name、inject、apply;源码顶部原注释(英文,仅作回查线索):Package-owned invariant companion for @deepseek-ai/dsh-compaction-basic. @module @deepseek-ai/dsh-compaction-basic/invariant。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-basic/src/region.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:上下文压缩实现
- 这个文件有什么用:这个文件负责会话上下文压缩的一项阶段、区域或摘要规则,减少历史占用同时保留后续运行所需事实。
- 为什么这样设计:压缩阶段单独组织,才能在不改变原始会话事实的前提下替换摘要策略并测试信息保留边界。
- 文件级设计证据:源码顶部注释把它定位为“Surface retention selection and the shared log-recorded compaction transaction for automatic open-turn and manual idle-session compaction. @module @deepseek-ai/dsh-compaction-basic/region”;固定提交中扫描到的声明包括
selectCompactableRange、compactSurfaceRegion、assertNoActiveCompaction、SurfaceChangedError、throwManualFailure;本地静态 import 图显示它直接依赖 7 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-basic/README.md、packages/compaction/compaction-basic/src/summarizer.ts、packages/compaction/compaction/src/index.ts、packages/core/agent/src/index.ts、packages/compaction/compaction-basic/src/index.ts
- 对应测试:packages/compaction/compaction-basic/tests/compaction-basic.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/compaction/compaction-basic/README.md和入口,再读当前实现,沿着packages/compaction/compaction-basic/src/summarizer.ts、packages/compaction/compaction/src/index.ts、packages/core/agent/src/index.ts和packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction-basic/tests/compaction-basic.spec.ts确认输入输出,最后对照packages/compaction/compaction-basic/tests/compaction-basic.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 550 行;扫描到的声明包括
selectCompactableRange、compactSurfaceRegion、assertNoActiveCompaction、SurfaceChangedError、throwManualFailure、assertCompactionInactive、validateSurfaceRegion、prepareCompaction;源码顶部原注释(英文,仅作回查线索):Surface retention selection and the shared log-recorded compaction transaction for automatic open-turn and manual idle-session compaction. @module @deepseek-ai/dsh-compaction-basic/region。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-basic/src/summarizer.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:上下文压缩实现
- 这个文件有什么用:这个文件负责会话上下文压缩的一项阶段、区域或摘要规则,减少历史占用同时保留后续运行所需事实。
- 为什么这样设计:压缩阶段单独组织,才能在不改变原始会话事实的前提下替换摘要策略并测试信息保留边界。
- 文件级设计证据:源码顶部注释把它定位为“Default one-shot summarization and durable checkpoint framing. @module @deepseek-ai/dsh-compaction-basic/summarizer”;固定提交中扫描到的声明包括
SummarizationInput、SummaryResult、summarizeWithLlm、frameSummary、finishError;本地静态 import 图显示它直接依赖 3 个源文件,并被 4 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-basic/README.md、packages/core/agent/src/index.ts、packages/llm/llm/src/index.ts、vendor/cordis/src/index.ts、packages/compaction/compaction-basic/src/index.ts
- 对应测试:packages/compaction/compaction-basic/tests/compaction-basic.spec.ts、packages/compaction/compaction-basic/tests/manual-compaction.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/compaction/compaction-basic/README.md和入口,再读当前实现,沿着packages/core/agent/src/index.ts、packages/llm/llm/src/index.ts、vendor/cordis/src/index.ts和packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction-basic/src/region.ts、packages/compaction/compaction-basic/tests/compaction-basic.spec.ts确认输入输出,最后对照packages/compaction/compaction-basic/tests/compaction-basic.spec.ts、packages/compaction/compaction-basic/tests/manual-compaction.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 224 行;扫描到的声明包括
SummarizationInput、SummaryResult、summarizeWithLlm、frameSummary、finishError、summaryText;源码顶部原注释(英文,仅作回查线索):Default one-shot summarization and durable checkpoint framing. @module @deepseek-ai/dsh-compaction-basic/summarizer。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-basic/src/types.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:类型契约
- 这个文件有什么用:它描述
packages/compaction/compaction-basic包里的src/types.ts中流转的数据长什么样、哪些字段必填以及各部分怎样关联,让不同模块先共享同一份约定。 - 为什么这样设计:先把形状和规则集中声明,执行代码只负责使用已经检查过的数据;这样错误更早暴露,读代码时也有一张共同的地图。
- 文件级设计证据:源码顶部注释把它定位为“Configuration vocabulary for the replay-aware basic compaction backend. @module @deepseek-ai/dsh-compaction-basic/types”;固定提交中扫描到的声明包括
CompactionPolicyConfig、ModelCompactPolicyConfig、BasicCompactionConfig、ResolvedRetention、ResolvedConfig;本地静态 import 图显示它直接依赖 1 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-basic/README.md、packages/llm/llm/src/index.ts、packages/compaction/compaction-basic/src/config.ts、packages/compaction/compaction-basic/src/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):apps/cli/tests/web-agent-presets.e2e.ts、examples/headless-agent/tests/coding-task.e2e.ts、examples/headless-agent/tests/compaction.e2e.ts、examples/headless-agent/tests/full-loop.e2e.ts、examples/headless-agent/tests/resume.e2e.ts、examples/headless-agent/tests/todo-write.e2e.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/compaction/compaction-basic/README.md、入口和消费者,再读当前契约,沿着packages/compaction/compaction-basic/src/config.ts、packages/compaction/compaction-basic/src/index.ts看它怎样约束运行时,最后对照apps/cli/tests/web-agent-presets.e2e.ts、examples/headless-agent/tests/coding-task.e2e.ts、examples/headless-agent/tests/compaction.e2e.ts。 - 代码证据:固定提交归档实际读取结果:约 76 行;扫描到的声明包括
CompactionPolicyConfig、ModelCompactPolicyConfig、BasicCompactionConfig、ResolvedRetention、ResolvedConfig、ResolvedTargetPolicy、ResolvedCompactSpec;源码顶部原注释(英文,仅作回查线索):Configuration vocabulary for the replay-aware basic compaction backend. @module @deepseek-ai/dsh-compaction-basic/types。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-basic/tests/compaction-basic.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它围绕“compaction-basic”写出可重复运行的断言,覆盖的场景包括“compact configuration and defaults”、“uses low-friction service-wide defaults”、“resolves threshold and retention overrides independently”、“merges exact provider/model policy overrides and scales ratios per model”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“compact configuration and defaults”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
ContextAdapter、RoutedContextAdapter、createContext、agent、summarizedText;本地静态 import 图显示它直接依赖 12 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-basic/README.md、packages/attachment/attachment/src/index.ts、packages/compaction/compaction-basic/src/config.ts、packages/compaction/compaction-basic/src/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/attachment/attachment/src/index.ts、packages/compaction/compaction-basic/src/config.ts、packages/compaction/compaction-basic/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 1880 行;扫描到的声明包括
ContextAdapter、RoutedContextAdapter、createContext、agent、summarizedText、promptInput、conversation、toolConversation;扫描到的测试主题包括 “compact configuration and defaults”、“uses low-friction service-wide defaults”、“resolves threshold and retention overrides independently”、“merges exact provider/model policy overrides and scales ratios per model”、“inherits, clears, and replaces the summarization target as a pair”、“validates common values and pressure-policy invariants”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-basic/tests/compaction-loop-repro.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它围绕“compaction-loop-repro”写出可重复运行的断言,覆盖的场景包括“CBR-001: a real-loop checkpoint is a valid boundary on both sides”、“uses the model actually routed by agent/request for post-step pressure”、“runs automatic pressure between the completed tool step and the next step”、“the head checkpoint the loop lands is a balanced cut on both sides”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“CBR-001: a real-loop checkpoint is a valid boundary on both sides”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
ReproCompactionEngine、StepwiseToolAdapter、OverflowRecoveryAdapter、mountInvariants、harness;本地静态 import 图显示它直接依赖 15 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-basic/README.md、packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction/src/index.ts、packages/core/agent-loop/src/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction/src/index.ts、packages/core/agent-loop/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 428 行;扫描到的声明包括
ReproCompactionEngine、StepwiseToolAdapter、OverflowRecoveryAdapter、mountInvariants、harness、waitForIdle、overflowHistorySeed;扫描到的测试主题包括 “CBR-001: a real-loop checkpoint is a valid boundary on both sides”、“uses the model actually routed by agent/request for post-step pressure”、“runs automatic pressure between the completed tool step and the next step”、“the head checkpoint the loop lands is a balanced cut on both sides”、“context-overflow recovery across the real loop and compaction-basic”、“keeps context-overflow and transient retry budgets independent in one sequence”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-basic/tests/loader-composition.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它围绕“loader-composition”写出可重复运行的断言,覆盖的场景包括“real Loader composition”、“loads the shipped token-meter, pruning, and compaction-basic YAML order”、“rejects stale token-meter config after Schemastery normalization”、“rejects stale compaction-basic config after Schemastery normalization”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“real Loader composition”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
loadYaml;本地静态 import 图显示它直接依赖 8 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-basic/README.md、packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction-tool-result-pruner/src/index.ts、packages/core/session/src/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction-tool-result-pruner/src/index.ts、packages/core/session/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 134 行;扫描到的声明包括
loadYaml;扫描到的测试主题包括 “real Loader composition”、“loads the shipped token-meter, pruning, and compaction-basic YAML order”、“rejects stale token-meter config after Schemastery normalization”、“rejects stale compaction-basic config after Schemastery normalization”、“rejects a capacity-independent merged ratio conflict during plugin load”、“rejects an incomplete model-policy summarization pair during plugin load”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-basic/tests/manual-compaction.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它围绕“manual-compaction”写出可重复运行的断言,覆盖的场景包括“compactNow through the real loop”、“holds a prompt accepted during summarization until the standalone bracket is flushed”、“keeps context injected during summarization pending for the next step”、“keeps the marker order when listeners attempt a re-entrant injection”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“compactNow through the real loop”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
GatedCompactionEngine、TextAdapter、loopHarness、seedHistory、derivedText;本地静态 import 图显示它直接依赖 17 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-basic/README.md、packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction-basic/src/invariant.ts、packages/compaction/compaction-basic/src/summarizer.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction-basic/src/invariant.ts、packages/compaction/compaction-basic/src/summarizer.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 885 行;扫描到的声明包括
GatedCompactionEngine、TextAdapter、loopHarness、seedHistory、derivedText、rejection、causeOf、deferred;扫描到的测试主题包括 “compactNow through the real loop”、“holds a prompt accepted during summarization until the standalone bracket is flushed”、“keeps context injected during summarization pending for the next step”、“keeps the marker order when listeners attempt a re-entrant injection”、“reports busy without summarizing when a prompt already owns the next turn”、“releases turn admission after a summarizer failure and records the failed attempt”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-tool-result-pruner/src/config.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:配置与数据形状
- 这个文件有什么用:它定义工具可接受的配置或输入形状,并在数据进入深层逻辑前集中校验。
- 为什么这样设计:先把形状和规则集中声明,执行代码只负责使用已经检查过的数据;这样错误更早暴露,读代码时也有一张共同的地图。
- 文件级设计证据:源码顶部注释把它定位为“Configuration resolution for deterministic tool-result pruning.”;固定提交中扫描到的声明包括
PRUNE_MARKER、DEFAULTS、codePointLength、resolveConfig、assertPositiveInteger;本地静态 import 图显示它直接依赖 2 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-tool-result-pruner/README.md、packages/compaction/compaction-tool-result-pruner/src/types.ts、packages/llm/llm/src/index.ts、packages/compaction/compaction-tool-result-pruner/src/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):apps/cli/tests/web-agent-presets.e2e.ts、examples/headless-agent/tests/coding-task.e2e.ts、examples/headless-agent/tests/compaction.e2e.ts、examples/headless-agent/tests/full-loop.e2e.ts、examples/headless-agent/tests/resume.e2e.ts、examples/headless-agent/tests/todo-write.e2e.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/compaction/compaction-tool-result-pruner/README.md,再读本配置/脚本,沿着packages/compaction/compaction-tool-result-pruner/src/index.ts确认它如何影响入口和产物,最后对照对应 gate 或快照测试。 - 代码证据:固定提交归档实际读取结果:约 77 行;扫描到的声明包括
PRUNE_MARKER、DEFAULTS、codePointLength、resolveConfig、assertPositiveInteger、assertNonNegativeInteger;源码顶部原注释(英文,仅作回查线索):Configuration resolution for deterministic tool-result pruning.。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-tool-result-pruner/src/index.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:模块入口
- 这个文件有什么用:它把工具相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。
- 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
- 文件级设计证据:源码顶部注释把它定位为“Replay-safe, model-free tool-result pruning service. @module @deepseek-ai/dsh-compaction-tool-result-pruner”;固定提交中扫描到的声明包括
ToolResultPruner;本地静态 import 图显示它直接依赖 8 个源文件,并被 6 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-tool-result-pruner/README.md、packages/compaction/compaction-tool-result-pruner/src/config.ts、packages/compaction/compaction-tool-result-pruner/src/types.ts、packages/compaction/compaction/src/index.ts、examples/headless-agent/tests/harness.ts
- 对应测试:packages/compaction/compaction-basic/tests/compaction-basic.spec.ts、packages/compaction/compaction-basic/tests/loader-composition.spec.ts、packages/compaction/compaction-tool-result-pruner/tests/loader-composition.spec.ts、packages/compaction/compaction-tool-result-pruner/tests/tool-result-pruner.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/compaction/compaction-tool-result-pruner/README.md、入口和消费者,再读当前契约,沿着examples/headless-agent/tests/harness.ts、packages/compaction/compaction-basic/src/index.ts、packages/compaction/compaction-basic/tests/compaction-basic.spec.ts看它怎样约束运行时,最后对照packages/compaction/compaction-basic/tests/compaction-basic.spec.ts、packages/compaction/compaction-basic/tests/loader-composition.spec.ts、packages/compaction/compaction-tool-result-pruner/tests/loader-composition.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 187 行;扫描到的声明包括
ToolResultPruner;源码顶部原注释(英文,仅作回查线索):Replay-safe, model-free tool-result pruning service. @module @deepseek-ai/dsh-compaction-tool-result-pruner。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-tool-result-pruner/src/invariant.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:运行时不变量
- 这个文件有什么用:它检查工具必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。
- 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
- 文件级设计证据:源码顶部注释把它定位为“Package-owned invariant companion for @deepseek-ai/dsh-compaction-tool-result-pruner. @module @deepseek-ai/dsh-compaction-tool-result-pruner/invariant”;固定提交中扫描到的声明包括
name、inject、apply;本地静态 import 图显示它直接依赖 2 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-tool-result-pruner/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和所在包的入口或服务理解状态变化,最后对照同包中与它同名或覆盖相近场景的测试。 - 代码证据:固定提交归档实际读取结果:约 27 行;扫描到的声明包括
name、inject、apply;源码顶部原注释(英文,仅作回查线索):Package-owned invariant companion for @deepseek-ai/dsh-compaction-tool-result-pruner. @module @deepseek-ai/dsh-compaction-tool-result-pruner/invariant。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-tool-result-pruner/src/types.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:类型契约
- 这个文件有什么用:它描述工具中流转的数据长什么样、哪些字段必填以及各部分怎样关联,让不同模块先共享同一份约定。
- 为什么这样设计:先把形状和规则集中声明,执行代码只负责使用已经检查过的数据;这样错误更早暴露,读代码时也有一张共同的地图。
- 文件级设计证据:固定提交中扫描到的声明包括
ToolResultPruneConfig、ResolvedConfig、PrunedEntry、PruneResult;本地静态 import 图显示它直接依赖 1 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-tool-result-pruner/README.md、packages/llm/llm/src/index.ts、packages/compaction/compaction-tool-result-pruner/src/config.ts、packages/compaction/compaction-tool-result-pruner/src/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):apps/cli/tests/web-agent-presets.e2e.ts、examples/headless-agent/tests/coding-task.e2e.ts、examples/headless-agent/tests/compaction.e2e.ts、examples/headless-agent/tests/full-loop.e2e.ts、examples/headless-agent/tests/resume.e2e.ts、examples/headless-agent/tests/todo-write.e2e.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/compaction/compaction-tool-result-pruner/README.md、入口和消费者,再读当前契约,沿着packages/compaction/compaction-tool-result-pruner/src/config.ts、packages/compaction/compaction-tool-result-pruner/src/index.ts看它怎样约束运行时,最后对照apps/cli/tests/web-agent-presets.e2e.ts、examples/headless-agent/tests/coding-task.e2e.ts、examples/headless-agent/tests/compaction.e2e.ts。 - 代码证据:固定提交归档实际读取结果:约 40 行;扫描到的声明包括
ToolResultPruneConfig、ResolvedConfig、PrunedEntry、PruneResult。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-tool-result-pruner/tests/loader-composition.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查工具的具体场景,包括“compaction-tool-result-pruner real Loader composition”、“loads and resolves the flat YAML plugin shape”、“rejects stale config after plugin schema normalization”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“compaction-tool-result-pruner real Loader composition”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:本次固定提交归档没有扫描到顶部注释、顶层声明或专门的结构线索;本地静态 import 图显示它直接依赖 5 个源文件,并被 0 个源文件直接引用。
- 直接协作者:packages/compaction/compaction-tool-result-pruner/README.md、packages/compaction/compaction-tool-result-pruner/src/index.ts、packages/llm/token-meter/src/index.ts、vendor/cordis/src/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/compaction-tool-result-pruner/src/index.ts、packages/llm/token-meter/src/index.ts、vendor/cordis/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 71 行;扫描到的测试主题包括 “compaction-tool-result-pruner real Loader composition”、“loads and resolves the flat YAML plugin shape”、“rejects stale config after plugin schema normalization”。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction-tool-result-pruner/tests/tool-result-pruner.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查工具的具体场景,包括“tool-result pruning configuration”、“resolves detached immutable defaults and partial overrides”、“rejects stale keys, invalid scalars, and an output budget above threshold”、“ToolResultPruner content transform”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“tool-result pruning configuration”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
service、appendToolStep;本地静态 import 图显示它直接依赖 7 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/compaction-tool-result-pruner/README.md、packages/compaction/compaction-tool-result-pruner/src/index.ts、packages/core/session/src/index.ts、packages/core/session/src/invariant.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/compaction-tool-result-pruner/src/index.ts、packages/core/session/src/index.ts、packages/core/session/src/invariant.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 273 行;扫描到的声明包括
service、appendToolStep;扫描到的测试主题包括 “tool-result pruning configuration”、“resolves detached immutable defaults and partial overrides”、“rejects stale keys, invalid scalars, and an output budget above threshold”、“ToolResultPruner content transform”、“measures text code points only and skips content within threshold”、“keeps configured head and tail without splitting surrogate pairs”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction/src/brand.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:品牌类型
- 这个文件有什么用:它为品牌类型定义带语义的品牌类型,使编译器能阻止不同用途的标识符互相替换。
- 为什么这样设计:在编译期区分语义不同的标识符,能把一类容易被普通字符串掩盖的调用错误提前暴露,而不增加运行时序列化成本。
- 文件级设计证据:固定提交中扫描到的声明包括
CompactionId;本地静态 import 图显示它直接依赖 1 个源文件,并被 4 个源文件直接引用。 - 直接协作者:packages/compaction/compaction/README.md、packages/util/brand/src/index.ts、packages/compaction/compaction/src/checkpoint.ts、packages/compaction/compaction/src/index.ts、packages/compaction/compaction/src/invariant.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):apps/cli/tests/web-agent-presets.e2e.ts、apps/web/stress-tests/reasoning-chunks.stress.ts、apps/web/tests/access-confirmation.e2e.ts、apps/web/tests/agent-preset-authoring.e2e.ts、apps/web/tests/agent-preset-selection.e2e.ts、apps/web/tests/approval-composer.e2e.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/compaction/compaction/README.md、入口和消费者,再读当前契约,沿着packages/compaction/compaction/src/checkpoint.ts、packages/compaction/compaction/src/index.ts、packages/compaction/compaction/src/invariant.ts看它怎样约束运行时,最后对照apps/cli/tests/web-agent-presets.e2e.ts、apps/web/stress-tests/reasoning-chunks.stress.ts、apps/web/tests/access-confirmation.e2e.ts。 - 代码证据:固定提交归档实际读取结果:约 13 行;扫描到的声明包括
CompactionId。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction/src/checkpoint.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:上下文压缩实现
- 这个文件有什么用:这个文件负责会话上下文压缩的一项阶段、区域或摘要规则,减少历史占用同时保留后续运行所需事实。
- 为什么这样设计:压缩阶段单独组织,才能在不改变原始会话事实的前提下替换摘要策略并测试信息保留边界。
- 文件级设计证据:源码顶部注释把它定位为“Compaction checkpoint provenance: the correlated source constructor and type every backend uses for its replacement user message, plus the predicate that recognizes persisted checkpoints. The seam itself lives in @deepseek-ai/dsh-compaction, which re-export...”;固定提交中扫描到的声明包括
CompactionCheckpointSource、compactCheckpointSource、isCompactCheckpointSource;本地静态 import 图显示它直接依赖 3 个源文件,并被 3 个源文件直接引用。 - 直接协作者:packages/compaction/compaction/README.md、packages/compaction/compaction/src/brand.ts、packages/interaction/commands/src/brand.ts、packages/llm/llm/src/message.ts、packages/client/ui-conversation/src/client/conversation-nodes/command.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):apps/cli/tests/web-agent-presets.e2e.ts、apps/web/stress-tests/reasoning-chunks.stress.ts、apps/web/tests/access-confirmation.e2e.ts、apps/web/tests/agent-preset-authoring.e2e.ts、apps/web/tests/agent-preset-selection.e2e.ts、apps/web/tests/approval-composer.e2e.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/compaction/compaction/README.md和入口,再读当前实现,沿着packages/compaction/compaction/src/brand.ts、packages/interaction/commands/src/brand.ts、packages/llm/llm/src/message.ts和packages/client/ui-conversation/src/client/conversation-nodes/command.ts、packages/compaction/compaction/src/index.ts、packages/compaction/compaction/src/invariant.ts确认输入输出,最后对照apps/cli/tests/web-agent-presets.e2e.ts、apps/web/stress-tests/reasoning-chunks.stress.ts、apps/web/tests/access-confirmation.e2e.ts。 - 代码证据:固定提交归档实际读取结果:约 51 行;扫描到的声明包括
CompactionCheckpointSource、compactCheckpointSource、isCompactCheckpointSource;源码顶部原注释(英文,仅作回查线索):Compaction checkpoint provenance: the correlated source constructor and type every backend uses for its replacement user message, plus the predicate that recognizes persisted checkpoints. The seam itself lives in @deepseek-ai/dsh-compaction, which re-export...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction/src/index.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:模块入口
- 这个文件有什么用:它把
packages/compaction/compaction包里的src/index.ts相关的公开能力集中导出,并决定调用者可以依赖哪些边界;调用者因此不必记住所有内部文件。 - 为什么这样设计:入口文件把公开边界固定下来,内部文件可以继续拆分或替换;其他包只依赖入口暴露的 API,依赖方向更稳定。
- 文件级设计证据:源码顶部注释把它定位为“Compaction Service Definition (ctx.compaction): providers decide when to compact and replace a history range with one summary node by subclassing CompactionEngine. This interface necessarily depends on session and LLM vocabulary; the rationale is in the com...”;固定提交中扫描到的声明包括
CompactionTrigger、ManualCompactionErrorCode、ManualCompactionError、CompactionAgentContext、ManualCompactAgentContext;本地静态 import 图显示它直接依赖 7 个源文件,并被 20 个源文件直接引用。 - 直接协作者:packages/compaction/compaction/README.md、packages/compaction/compaction/src/brand.ts、packages/compaction/compaction/src/checkpoint.ts、packages/compaction/compaction/src/tool-pairing.ts、examples/acp-agent/tests/fixtures/workspace-context-compaction.ts
- 对应测试:packages/compaction/command-compact/tests/command-compact.spec.ts、packages/compaction/command-compact/tests/loader-composition.spec.ts、packages/compaction/compaction-basic/tests/compaction-basic.spec.ts、packages/compaction/compaction-basic/tests/compaction-loop-repro.spec.ts、packages/compaction/compaction-basic/tests/manual-compaction.spec.ts、packages/compaction/compaction/tests/compaction.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读
packages/compaction/compaction/README.md、入口和消费者,再读当前契约,沿着examples/acp-agent/tests/fixtures/workspace-context-compaction.ts、packages/compaction/command-compact/src/index.ts、packages/compaction/command-compact/tests/command-compact.spec.ts看它怎样约束运行时,最后对照packages/compaction/command-compact/tests/command-compact.spec.ts、packages/compaction/command-compact/tests/loader-composition.spec.ts、packages/compaction/compaction-basic/tests/compaction-basic.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 172 行;扫描到的声明包括
CompactionTrigger、ManualCompactionErrorCode、ManualCompactionError、CompactionAgentContext、ManualCompactAgentContext;源码顶部原注释(英文,仅作回查线索):Compaction Service Definition (ctx.compaction): providers decide when to compact and replace a history range with one summary node by subclassing CompactionEngine. This interface necessarily depends on session and LLM vocabulary; the rationale is in the com...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction/src/invariant.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:运行时不变量
- 这个文件有什么用:它检查
packages/compaction/compaction包里的src/invariant.ts必须始终成立的条件,在错误刚出现时报告,而不是等到更深层才出现难以解释的结果。 - 为什么这样设计:把不变量集中在一个位置,调用者和测试就能用同一条规则检查状态;错误在边界处报告,比在后续 UI 或网络请求中才暴露更容易修复。
- 文件级设计证据:源码顶部注释把它定位为“Package-owned compaction log-stream invariants. @module @deepseek-ai/dsh-compaction/invariant”;固定提交中扫描到的声明包括
name、inject、apply、validateId、validateSourceCommandId;本地静态 import 图显示它直接依赖 6 个源文件,并被 2 个源文件直接引用。 - 直接协作者:packages/compaction/compaction/README.md、packages/compaction/compaction/src/brand.ts、packages/compaction/compaction/src/checkpoint.ts、packages/compaction/compaction/src/types.ts、packages/compaction/compaction-basic/tests/manual-compaction.spec.ts
- 对应测试:packages/compaction/compaction-basic/tests/manual-compaction.spec.ts、packages/compaction/compaction/tests/invariant.spec.ts
- 测试关联依据:固定提交源码中的本地静态 import 直接引用;测试用例直接导入了这个源文件。
- 阅读顺序:先读相关类型和事件,再读当前状态或存储实现,沿着
packages/compaction/compaction/src/brand.ts、packages/compaction/compaction/src/checkpoint.ts、packages/compaction/compaction/src/types.ts和packages/compaction/compaction-basic/tests/manual-compaction.spec.ts、packages/compaction/compaction/tests/invariant.spec.ts理解状态变化,最后对照packages/compaction/compaction-basic/tests/manual-compaction.spec.ts、packages/compaction/compaction/tests/invariant.spec.ts。 - 代码证据:固定提交归档实际读取结果:约 306 行;扫描到的声明包括
name、inject、apply、validateId、validateSourceCommandId、validateCheckpoint、inheritedOrphanStartSeqs、validateTurnBoundary;源码顶部原注释(英文,仅作回查线索):Package-owned compaction log-stream invariants. @module @deepseek-ai/dsh-compaction/invariant。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction/src/tool-pairing.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:上下文压缩实现
- 这个文件有什么用:这个文件负责会话上下文压缩的一项阶段、区域或摘要规则,减少历史占用同时保留后续运行所需事实。
- 为什么这样设计:压缩阶段单独组织,才能在不改变原始会话事实的前提下替换摘要策略并测试信息保留边界。
- 文件级设计证据:源码顶部注释把它定位为“Tool-pairing balance over a session surface. Compaction changes surface positions, so safe cuts are derived from tool-call/result content in current surface order rather than step markers. @module @deepseek-ai/dsh-compaction/tool-pairing”;固定提交中扫描到的声明包括
toolPairingBalancedBefore、toolPairingBalancedAfter、eventDelta、eventForSeq、extendCache;本地静态 import 图显示它直接依赖 1 个源文件,并被 1 个源文件直接引用。 - 直接协作者:packages/compaction/compaction/README.md、packages/core/session/src/index.ts、packages/compaction/compaction/src/index.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):apps/cli/tests/web-agent-presets.e2e.ts、apps/web/stress-tests/reasoning-chunks.stress.ts、apps/web/tests/access-confirmation.e2e.ts、apps/web/tests/agent-preset-authoring.e2e.ts、apps/web/tests/agent-preset-selection.e2e.ts、apps/web/tests/approval-composer.e2e.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/compaction/compaction/README.md和入口,再读当前实现,沿着packages/core/session/src/index.ts和packages/compaction/compaction/src/index.ts确认输入输出,最后对照apps/cli/tests/web-agent-presets.e2e.ts、apps/web/stress-tests/reasoning-chunks.stress.ts、apps/web/tests/access-confirmation.e2e.ts。 - 代码证据:固定提交归档实际读取结果:约 131 行;扫描到的声明包括
toolPairingBalancedBefore、toolPairingBalancedAfter、eventDelta、eventForSeq、extendCache、balanceCache、cutBalance;源码顶部原注释(英文,仅作回查线索):Tool-pairing balance over a session surface. Compaction changes surface positions, so safe cuts are derived from tool-call/result content in current surface order rather than step markers. @module @deepseek-ai/dsh-compaction/tool-pairing。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction/src/types.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:类型契约
- 这个文件有什么用:它描述
packages/compaction/compaction包里的src/types.ts中流转的数据长什么样、哪些字段必填以及各部分怎样关联,让不同模块先共享同一份约定。 - 为什么这样设计:先把形状和规则集中声明,执行代码只负责使用已经检查过的数据;这样错误更早暴露,读代码时也有一张共同的地图。
- 文件级设计证据:源码顶部注释把它定位为“Compaction vocabulary: the result type and the compaction session events. Those declaration-merged events record the lock and summary inputs without entering the surface, so they are not surface events; a separate replacement user/message carries the summa...”;固定提交中扫描到的声明包括
CompactionResult;本地静态 import 图显示它直接依赖 3 个源文件,并被 5 个源文件直接引用。 - 直接协作者:packages/compaction/compaction/README.md、packages/compaction/compaction/src/brand.ts、packages/interaction/commands/src/brand.ts、packages/llm/llm/src/index.ts、packages/client/ui-conversation/src/client/conversation-nodes/command.ts
- 对应测试:间接测试线索(通过本地 import 链,非直接覆盖):apps/cli/tests/web-agent-presets.e2e.ts、apps/web/stress-tests/reasoning-chunks.stress.ts、apps/web/tests/access-confirmation.e2e.ts、apps/web/tests/agent-preset-authoring.e2e.ts、apps/web/tests/agent-preset-selection.e2e.ts、apps/web/tests/approval-composer.e2e.ts
- 测试关联依据:固定提交源码中的本地静态 import 传递引用;这些测试通过包入口或中间模块到达本文件,不等于本文件被直接覆盖。
- 阅读顺序:先读
packages/compaction/compaction/README.md、入口和消费者,再读当前契约,沿着packages/client/ui-conversation/src/client/conversation-nodes/command.ts、packages/client/ui-conversation/src/client/conversation-nodes/compaction.ts、packages/client/ui-trajectory/src/client/trajectory-compaction-definition.ts看它怎样约束运行时,最后对照apps/cli/tests/web-agent-presets.e2e.ts、apps/web/stress-tests/reasoning-chunks.stress.ts、apps/web/tests/access-confirmation.e2e.ts。 - 代码证据:固定提交归档实际读取结果:约 119 行;扫描到的声明包括
CompactionResult;扫描到的测试主题包括 “compaction/prune”、“compaction/summary”;源码顶部原注释(英文,仅作回查线索):Compaction vocabulary: the result type and the compaction session events. Those declaration-merged events record the lock and summary inputs without entering the surface, so they are not surface events; a separate replacement user/message carries the summa...。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction/tests/compaction.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它围绕“compaction”写出可重复运行的断言,覆盖的场景包括“CompactionEngine seam”、“registers as ctx.compaction”、“disposing the fiber unregisters ctx.compaction (HMR safety)”、“exposes the abstract contract methods”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“CompactionEngine seam”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
StubCompactionEngine、stubAgent;本地静态 import 图显示它直接依赖 4 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/compaction/README.md、packages/compaction/compaction/src/index.ts、packages/core/session/src/index.ts、packages/llm/llm/src/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/compaction/src/index.ts、packages/core/session/src/index.ts、packages/llm/llm/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 170 行;扫描到的声明包括
StubCompactionEngine、stubAgent;扫描到的测试主题包括 “CompactionEngine seam”、“registers as ctx.compaction”、“disposing the fiber unregisters ctx.compaction (HMR safety)”、“exposes the abstract contract methods”、“compaction/* events merge into SessionEventMap and are log-only”、“threads the cancellation signal through to the backend”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction/tests/invariant.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它围绕“invariant”写出可重复运行的断言,覆盖的场景包括“compaction invariants”、“accepts successful and failed compaction lifecycles”、“accepts standalone successful and failed compaction lifecycles between turns”、“clears an inherited open compaction trace at end-seed during replay”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“compaction invariants”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
setup、startTurn;本地静态 import 图显示它直接依赖 7 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/compaction/README.md、packages/compaction/compaction/src/index.ts、packages/compaction/compaction/src/invariant.ts、packages/core/session/src/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/compaction/src/index.ts、packages/compaction/compaction/src/invariant.ts、packages/core/session/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 391 行;扫描到的声明包括
setup、startTurn;扫描到的测试主题包括 “compaction invariants”、“accepts successful and failed compaction lifecycles”、“accepts standalone successful and failed compaction lifecycles between turns”、“clears an inherited open compaction trace at end-seed during replay”、“allows repair turn boundaries after end-seed clears a seeded numbered orphan”、“accepts inherited repair boundaries before the end-seed that clears a standalone orphan”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction/tests/tool-pairing.spec.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:测试用例
- 这个文件有什么用:它用自动化测试检查工具的具体场景,包括“tool-pairing boundaries”、“classifies closed and open single-call steps”、“requires every result from a multiple-call assistant message”、“keeps neutral nodes inside an open pair unbalanced and free nodes balanced”;这些断言把“应该发生什么”变成可以重复运行的证据。
- 为什么这样设计:把测试主题“tool-pairing boundaries”写成独立测试用例,读者可以从输入、触发动作和断言反推实现的不变量;不同回归问题也不会互相遮蔽。
- 文件级设计证据:固定提交中扫描到的声明包括
seqOf、surfaceSeq、before、after、closedToolStep;本地静态 import 图显示它直接依赖 3 个源文件,并被 0 个源文件直接引用。 - 直接协作者:packages/compaction/compaction/README.md、packages/compaction/compaction/src/index.ts、packages/core/session/src/index.ts、packages/llm/llm/src/index.ts
- 对应测试:本文件本身就是测试用例。
- 测试关联依据:本文件本身就是测试用例,不把同目录的其他测试冒充成它的“对应测试”。
- 阅读顺序:先看它直接导入的被测实现
packages/compaction/compaction/src/index.ts、packages/core/session/src/index.ts、packages/llm/llm/src/index.ts,再读本文件的测试主题、输入和断言;最后对照测试支持和失败输出。 - 代码证据:固定提交归档实际读取结果:约 424 行;扫描到的声明包括
seqOf、surfaceSeq、before、after、closedToolStep;扫描到的测试主题包括 “tool-pairing boundaries”、“classifies closed and open single-call steps”、“requires every result from a multiple-call assistant message”、“keeps neutral nodes inside an open pair unbalanced and free nodes balanced”、“tool-pairing surface identity”、“rebuilds after replace and rejects sequences removed from current membership”。 - 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。
packages/compaction/compaction/tsdown.config.ts
- 所属层:packages/compaction:可复用的 Harness 功能包
- 文件角色:构建或测试配置
- 这个文件有什么用:它告诉工具链怎样处理
packages/compaction/compaction包里的tsdown.config.ts:从哪里开始、使用哪个环境、解析哪些依赖以及输出什么产物;这些规则集中后,构建和测试才可重复。 - 为什么这样设计:工具链配置独立于业务实现,构建、测试和发布可以复用同一套入口规则;改配置时也能单独看出运行环境变化。
- 文件级设计证据:本次固定提交归档没有扫描到顶部注释、顶层声明或专门的结构线索;本地静态 import 图显示它直接依赖 0 个源文件,并被 0 个源文件直接引用。
- 直接协作者:packages/compaction/compaction/README.md
- 对应测试:没有确认到直接测试;公共入口可能仍有间接覆盖。
- 测试关联依据:固定提交中没有找到直接或传递的本地静态 import,也没有找到明显的同包同名测试;公共入口可能仍有间接覆盖。
- 阅读顺序:先读
packages/compaction/compaction/README.md,再读本配置/脚本,沿着所在包的入口或服务确认它如何影响入口和产物,最后对照对应 gate 或快照测试。 - 代码证据:固定提交归档实际读取结果:约 13 行。
- 固定版本:源码链接固定到官方提交
aa6c361a972c8369148dea7380bb5c21c24e07ec。