import type { AIMessageContent, ChatMessagesData, ChatRequestParams, SSEChunkData, ToolCall } from '../../type'; import type { RunErrorEvent, RunFinishedEvent, RunStartedEvent } from './events'; import type { AGUIHistoryMessage } from './types'; export type { AGUIHistoryMessage, AGUIUserHistoryMessage, AGUIAssistantHistoryMessage, AGUIToolHistoryMessage, } from './types'; /** * AGUI协议适配器回调接口 */ export interface AGUIAdapterCallbacks { onRunStart?: (event: RunStartedEvent) => void; onRunComplete?: (isAborted: boolean, params: ChatRequestParams, event?: RunFinishedEvent) => void; onRunError?: (error: RunErrorEvent) => void; } /** * AGUI协议适配器 * 1. 处理AGUI协议特定的事件(RUN_STARTED, RUN_FINISHED, RUN_ERROR) * 2. 管理工具调用的生命周期 * 3. 将AGUI事件映射为ChatEngine可理解的消息内容 * 4. 转换AG-UI历史消息为ChatMessagesData格式 */ export declare class AGUIAdapter { /** * 转换AG-UI历史消息为ChatMessagesData格式(静态方法) * * 转换策略: * 1. 以用户消息为边界进行分组 * 2. 每个用户消息对应一个AI消息,包含该用户输入后的所有AI回复和工具调用结果 * 3. 按照后端数据的原始顺序构建content数组 * 4. 避免重复处理同一个工具调用 * 5. 支持只有assistant消息的情况(如welcome消息) * * @param historyMessages AG-UI格式的历史消息数组 * @returns 转换后的ChatMessagesData数组 */ static convertHistoryMessages(historyMessages: AGUIHistoryMessage[]): ChatMessagesData[]; private aguiEventMapper; constructor(); /** * 处理AGUI事件 * * 处理流程: * 1. 解析SSE数据(AG-UI后端返回标准SSE格式,data字段是JSON字符串) * 2. 处理AGUI特定事件(生命周期事件) * 3. 使用事件映射器转换为消息内容 * 4. 同步工具调用状态 * * @param chunk SSE数据块 * @param callbacks 回调函数 * @returns 处理结果 */ handleAGUIEvent(chunk: SSEChunkData, callbacks: AGUIAdapterCallbacks): AIMessageContent | AIMessageContent[] | null; /** * 获取AGUI事件映射器 */ get toolcalls(): ToolCall[]; getToolcallByName(name: string): ToolCall | undefined; /** * 重置适配器状态 */ reset(): void; /** * 处理AGUI特定事件 * * 处理RUN_STARTED、RUN_FINISHED、RUN_ERROR等生命周期事件 * 这些事件用于通知外部系统状态变化,并执行相应的回调 * * @param event 解析后的事件对象 * @param callbacks 回调函数 * @returns 是否处理了生命周期事件 */ private handleAGUISpecificEvents; } /** * 状态订阅机制导出 */ export * from './state-manager';