严重度 : P2(维护性/安全面)
PR#283 以「sidecar 是唯一宿主」为准绳删除了内置 providers。同一准绳贯穿全 SDK review,发现五整块宿主旁路的子系统与死 API 面仍留守(合计 ~2000+ 行)。均已逐条验证调用链。
A. 五整块子系统
块
位置
规模
证据
SDK 内置 MCP 链
agent.ts:536-595,1527-1639 + mcp/client.ts 全文件
~500 行
sidecar 不传 mcpServers/plugins,syncMcpConnections 循环体永不进入;sidecar MCP 走自己的 pluginMcpManager。注:#326 、mcp/client.ts:126 的 elicitation 协议缺陷(读 params.type 恒 undefined,实际判别字段是 mode)随本块删除一并消失
SDK 插件装配链
plugins/loader.ts loadPlugins 簇(:355-477,251-305) + agent.ts:745-776 装配点 + hooks.ts:212-246,308-379 shell-hook
~250 行
loadPlugins(cwd,[],[]) 恒 [];sidecar 有自己的 plugin-registry + plugin-hooks-bridge(后者注释明说复制了 SDK 私有 executeShellHook)
AgentTool 嵌套 QueryEngine
tools/agent-tool.ts:175-550 + BUILTIN_AGENTS(:58-69) + registerAgents(:44-53)
~400 行
sidecar 两入口均 {...AgentTool, call: 自定义} 整体替换;splitDeferredTools 唯一活调用点(:226)随之死
sdk-mcp-server + tool-helper 簇
两文件主体
~140 行
createSdkMcpServer 全仓零调用(仅 README);tool()/sdkToolToToolDefinition 唯一消费者是 sdk-mcp-server
死 API 面
QueryController 15 个委托方法(query-controller.ts:104-182 + agent.ts:1230-1246);Agent 方法群 ~300 行(resumeInterruptedRun/discardInterruptedRun——sidecar 用导出的 detectDanglingToolUses 自建、mcp 控制、rewindFiles、stopTask 等);session.ts 8 个导出函数(~180 行,sidecar 注释明说删会话不经 SDK);顶层 query() 函数
~600 行
宿主只把 agent.query() 返回值当 AsyncIterable 迭代,控制操作全部直连 agent 实例
B. utils 死模块与死函数
utils/context.ts 全文件 187 行 :engine.ts:295 if (config.systemPrompt) 早退 + sidecar 恒传 systemPrompt 且自有 context-assembler → git 注入/AGENT.md 发现整模块不可达;连带 clearContextCache 进程级 memoize 永不失效的潜伏缺陷一并消失
getAutoCompactThreshold/AUTOCOMPACT_BUFFER_TOKENS/calculateAutoCompactThreshold:与活路径 shouldAutoCompact 同名概念两套算法(死函数多减 13k/30k/50k buffer),误导性强
getTokenCountFromUsage、getCachedTokens、createAgentProgressTracker(连带 types.ts:780 AgentProgressUsage + SDKResultMessage.progressUsage 字段)、isAuthError/isRateLimitError/formatApiError 三件套、createUserMessage/createAssistantMessage/extractTextFromContent/createCompactBoundaryMessage/truncateText、createFileStateCache:全仓零生产调用
CODEANY_* env 读取链(与 [P2][sdk/agent] PR#283 遗留:auth_status 每 run 恒报 Missing API key,凭据展示链与 apiType 嗅探全部失真 #383 相邻但独立为 env 回退链本身)
C. index.ts 导出面收敛
408 个命名导出中 282 个(69%)宿主零引用。大量「内部自用仅导出面死」可先做一轮再导出修剪;lumeFileUrl/downloadAndLocalizeImages(index.ts:536-548 注释声称 sidecar 需要)实际零引用。
注意事项
来源: packages/sdk 全量 review 第二轮(2026-08-22,PR#283 后),发现已逐条代码实证。
严重度: P2(维护性/安全面)
PR#283 以「sidecar 是唯一宿主」为准绳删除了内置 providers。同一准绳贯穿全 SDK review,发现五整块宿主旁路的子系统与死 API 面仍留守(合计 ~2000+ 行)。均已逐条验证调用链。
A. 五整块子系统
B. utils 死模块与死函数
if (config.systemPrompt)早退 + sidecar 恒传 systemPrompt 且自有 context-assembler → git 注入/AGENT.md 发现整模块不可达;连带 clearContextCache 进程级 memoize 永不失效的潜伏缺陷一并消失C. index.ts 导出面收敛
408 个命名导出中 282 个(69%)宿主零引用。大量「内部自用仅导出面死」可先做一轮再导出修剪;
lumeFileUrl/downloadAndLocalizeImages(index.ts:536-548 注释声称 sidecar 需要)实际零引用。注意事项
来源: packages/sdk 全量 review 第二轮(2026-08-22,PR#283 后),发现已逐条代码实证。