/** * 单个 canonical Assistant Message 的流式写入器。 * * Writer 直接消费 Downcity `ModelStreamEvent`,并把模型内容、Tool 状态和 Action 内容 * 串行写入 `SessionMessages`。它不理解 UI Message 或 Provider 私有事件。 */ import type { ModelStreamEvent } from "@downcity/type"; import type { SessionMessages } from "../SessionMessages.js"; import type { SessionAssistantResultPart } from "../../types/session/SessionContent.js"; import type { SessionAssistantMessagePart } from "../../types/session/SessionMessage.js"; import type { SessionToolExecutionResult, SessionToolInputReady } from "../../types/session/SessionTool.js"; /** 单个 Assistant Message 的流式 Writer。 */ export declare class SessionAssistantMessageWriter { /** 当前 canonical Assistant Message 标识。 */ readonly message_id: string; private readonly recorder; private readonly content_part_ids; private readonly tool_call_ids; private readonly current_step_part_ids; private readonly tool_part_gate; private write_chain; private step_index; private step_active; private closed; constructor(recorder: SessionMessages, message_id: string); /** 建立一个独立模型 Step 的 canonical Part 作用域。 */ begin_step(): Promise; /** 直接把单个标准模型事件写入 canonical Assistant Message。 */ apply_model_event(event: ModelStreamEvent): Promise; /** 在 Tool 实现执行前提交完整输入,供审批与执行状态共同使用。 */ prepare_tool_input(input: SessionToolInputReady): Promise; /** 把 Tool 执行终态直接写入对应 canonical Tool Part。 */ apply_tool_result(result: SessionToolExecutionResult): Promise; /** * 校验当前 Step 最终 canonical Part 快照。 * * 最终快照不能创建、删除或重排模型 Part;不一致意味着事件链不完整。 */ finish_step(parts: SessionAssistantMessagePart[]): Promise; /** 释放异常结束的 Step 作用域并保留已经写入的 canonical Parts。 */ abort_step(): Promise; /** 把 Action 产生的封闭内容追加到当前 Assistant Message。 */ append_result_parts(parts: readonly SessionAssistantResultPart[]): Promise; /** 写入一个完整 canonical Assistant Part。 */ upsert_part(part: SessionAssistantMessagePart): Promise; /** 等待当前 Writer 已入队的全部写操作完成。 */ flush(): Promise; /** 正常完成当前 Assistant Message。 */ complete(): Promise; /** 停止当前 Assistant Message,并保留已有 Parts。 */ stop(): Promise; /** 以失败状态关闭当前 Assistant Message。 */ fail(error: unknown): Promise; /** 在单写队列中应用标准模型事件。 */ private apply_model_event_serialized; /** 读取当前 Assistant Message 快照。 */ private current_message; /** 查找当前 Assistant 中的指定 Tool Part。 */ private find_tool; /** 读取指定 Tool Part,否则抛出稳定错误。 */ private require_tool; /** 读取当前 Step content_id 对应的 canonical Part。 */ private require_content_part_id; /** 读取当前 Step content_id 对应的 Tool Call。 */ private require_tool_call_id; /** 更新已经由模型事件创建的 Tool Part。 */ private upsert_tool; /** 创建由模型事件声明的 Tool Part。 */ private create_tool; /** 校验并合并同一位置的 canonical Part 与 Step 最终快照。 */ private merge_step_part; /** 构造不包含正文与 Tool 输出的结构化 Step 快照错误。 */ private step_snapshot_error; /** 清理当前 Step 的临时关联状态。 */ private reset_step_state; /** 计算下一个不可变 Part 顺序号。 */ private next_part_sequence; /** 串行执行对当前 Assistant Message 的全部写操作。 */ private enqueue_write; /** 在队列内关闭当前 Assistant Message。 */ private close_serialized; } //# sourceMappingURL=SessionAssistantMessageWriter.d.ts.map