严重度 : P3(质量)
全量 review 发现的重复实现与口径矛盾收敛清单:
口径矛盾(优先)
estimateToolSchemaTokens 漏算 inputSchema :engine.ts:521-526 只算 (description+name)/4,同仓 tool-search.ts:34 的 getDeferredToolTokenCount 是 name+description+JSON.stringify(inputSchema)。30+ 工具 schema 可达上万 token——无 provider 锚点时 toolSchemaTokens 系统性偏低。且 estimateToolSchemaTokens 与 getContextUsage 内联(:2145-2148)还有一份重复实现
usage.ts:124 createAgentProgressTracker 混用绝对/累计语义(inputTokens 取快照、outputTokens 累加)——当前在死代码清单(🔥 sdk: 死代码大扫除第二批——宿主旁路的五整块子系统 + 死 API 面(PR#283 续篇,~2000 行) #388 ),若保留须统一口径
重复实现收敛
writeFileAtomic 四份拷贝:edit.ts:201 / write.ts:147 / notebook-edit.ts:245 / lsp-tool.ts:1115(仅后缀不同)→ 抽 utils 一处
skills/registry.ts 双轨:全局单例函数组(:79-251) 与 SkillRegistry 类(:11-76) 平行维护两套注册/别名/归一化逻辑 ~150 行
commandToolFromManifest(loader.ts:251-305) 复刻 buildCommandToolDefinition(:112-181) ~55 行且缺 sandbox 分支(在 🔥 sdk: 死代码大扫除第二批——宿主旁路的五整块子系统 + 死 API 面(PR#283 续篇,~2000 行) #388 死代码块内,随删)
validateManifest(manifest.ts:420) 与 normalized.ts:135 逐字相同
sliceSessionMessages 两份逐字符相同(agent.ts:135 / session.ts:293)
retry 错误分类三元链在流式/非流式两条路径重复(engine.ts:1243-1251 vs 1273-1281)
truncateText 双份(messages.ts:346 零调用 + mcp/manager.ts:382 私有版)
内容块联合类型三套平行定义(types.ts:6-20 与 providers/types.ts:62-67 字段几乎逐一对齐),normalizeMessagesForAPI/fixToolResultPairing 全程 any 消解了收益
web/scrapers/*.ts 74/74 文件首行 @ts-nocheck (~11k 行绕过 typecheck;🐛 fix: packages review 批次 #232-#246(实修 12 项,#233-#235 已修随附关闭) #273 摘过 SDK 其他文件,scraper 层遗留)
其他
types.ts(1718 行) 与 types/ 目录(仅 3 个第三方 ambient 声明)名字撞车易误导;types.ts 本体混杂十个域 + class AbortError,建议按域拆分
SDKMessage 联合成员导出面不齐:SDKRunAbortedMessage/SDKLspDiagnosticsMessage/SDKMemorySavedMessage 等实际发出的类型未导出,sidecar 只能 Extract 取形状——要么补导出要么立规则
stopReason: ...|string(providers/types.ts:85)等 | string 吸收字面量致 narrowing 失效
来源: packages/sdk 全量 review 第二轮(2026-08-22,PR#283 后),发现已逐条代码实证。
严重度: P3(质量)
全量 review 发现的重复实现与口径矛盾收敛清单:
口径矛盾(优先)
(description+name)/4,同仓 tool-search.ts:34 的 getDeferredToolTokenCount 是 name+description+JSON.stringify(inputSchema)。30+ 工具 schema 可达上万 token——无 provider 锚点时 toolSchemaTokens 系统性偏低。且 estimateToolSchemaTokens 与 getContextUsage 内联(:2145-2148)还有一份重复实现重复实现收敛
@ts-nocheck 摘除
其他
stopReason: ...|string(providers/types.ts:85)等| string吸收字面量致 narrowing 失效来源: packages/sdk 全量 review 第二轮(2026-08-22,PR#283 后),发现已逐条代码实证。