/** * Downcity 模型 Step 执行模块。 * * 模块直接消费 `ModelStreamEvent`、生成 canonical Assistant Parts,并执行本 Step 的工具调用。 * 标准事件会原样交给 Session 输出端口,不产生 UI-shaped 中间事件。 */ import { type ModelClient, type ModelFinishReason, type ModelJsonValue, type ModelMessage, type ModelUsage, type RuntimeTool as Tool } from "@downcity/type"; import type { SessionSystemMessage } from "../types/SessionPrompts.js"; import type { SessionAssistantOutput } from "../../types/executor/SessionAssistantOutput.js"; import type { SessionAssistantMessagePart } from "../../types/session/SessionMessage.js"; /** 单个工具调用的执行事实。 */ export interface ModelStepToolCall { /** 工具调用 ID。 */ tool_call_id: string; /** 工具名称。 */ tool_name: string; /** 已解析工具输入。 */ input: ModelJsonValue; /** 模型生成的工具输入无法解析时记录的错误。 */ input_error?: string; } /** 单个工具结果的执行事实。 */ export interface ModelStepToolResult extends ModelStepToolCall { /** 工具执行是否成功。 */ success: boolean; /** 工具返回或错误信息。 */ output: unknown; } /** Agent 内部单个模型 Step 的稳定结果。 */ export interface ModelStepResult { /** 聚合后的普通文本。 */ text: string; /** 标准完成原因。 */ finish_reason: ModelFinishReason; /** Provider 返回的累计 usage。 */ usage?: ModelUsage; /** 当前 Step 的工具调用。 */ tool_calls: ModelStepToolCall[]; /** 当前 Step 的工具结果。 */ tool_results: ModelStepToolResult[]; /** 用于后续模型 Step 的消息。 */ response: { messages: ModelMessage[]; }; /** 供诊断代码读取的内容事实。 */ content: Array>; } /** 执行一个模型 Step 的输入。 */ export interface RunModelStepInput { /** 当前 Step 的模型客户端。 */ model: ModelClient; /** 当前 System 消息。 */ system: SessionSystemMessage[]; /** 当前模型上下文。 */ messages: ModelMessage[]; /** 当前可用工具运行时。 */ tools: Record; /** 当前取消信号。 */ abort_signal: AbortSignal; /** canonical Assistant 输出端口。 */ assistant_output?: SessionAssistantOutput; /** 工具执行前的审批回调。 */ approve_tool?: (call: ModelStepToolCall, tool: Tool) => Promise; } /** 执行一个 Downcity 模型 Step 并收敛工具结果。 */ export declare function run_model_step(input: RunModelStepInput): Promise<{ /** 当前 Step 的 canonical Assistant Parts。 */ assistant_parts: SessionAssistantMessagePart[]; /** 当前 Step 的运行结果。 */ step_result: ModelStepResult; }>; //# sourceMappingURL=ModelStepRunner.d.ts.map