📄️ query.ts 总览:一个生成器函数驱动一切
解析 Claude Code 核心查询循环的架构设计,理解为何用异步生成器函数实现 ReAct 模式
📄️ 消息归一化:normalizeMessagesForAPI()
深入理解 Claude Code 如何将内部消息格式转换为 Claude API 期望的标准格式
📄️ 调用 Claude Streaming API 的完整流程
深入解析 Claude Code 如何配置 API 请求、处理流式响应,以及处理各类错误
📄️ 检测 stop_reason === 'tool_use':何时该执行工具
解析 Claude API 的 stop_reason 机制,理解 Claude Code 如何从响应中识别工具调用意图
📄️ runTools():工具并行与串行的决策逻辑
深入解析 Claude Code 如何决定并行还是串行执行多个工具,理解 isConcurrencySafe 接口的设计
📄️ tool_result 追加与循环继续:完整的 ReAct 循环
理解工具执行结果如何被格式化并追加到消息历史,以及 ReAct 循环的完整运转机制与终止条件