import type { SubAgentRunner } from '../tool/delegate.js'; import type { A2AMessage } from './types.js'; import { A2AClient } from './client.js'; /** 从 A2A Message 中提取文本内容 */ export declare function extractTextFromMessage(message?: A2AMessage): string; /** createA2ARemoteRunner 配置项 */ export interface A2ARemoteRunnerConfig { /** 远程 Agent 的 A2A 端点 URL(Agent Card 中的 url 字段) */ agentUrl: string; /** Runner 标识名(展示用,如 "[Remote] MyAgent") */ name: string; /** Runner 能力描述(供 LLM 理解) */ description: string; /** 是否启用流式(tasks/sendSubscribe);false 则走同步(tasks/send) */ streaming?: boolean; /** A2A 客户端实例(外部注入,便于复用和自定义配置) */ client: A2AClient; /** 可选的 skillId,供服务端路由到对应的 specialist profile */ skillId?: string; /** 流式失败时是否自动回退到同步模式,默认 true */ fallbackToSync?: boolean; /** 远程 Agent 输出模式:merge=合并到主正文,panel=保留子面板 */ outputMode?: 'panel' | 'merge'; /** 智能事件过滤配置(控制 SSE 事件转发粒度) */ eventFilter?: { /** thinking 累积多少字符后批量转发,默认 100 */ thinkingFlushThreshold?: number; /** thinking 批量转发间隔(毫秒),默认 3000 */ thinkingFlushInterval?: number; /** content 增量过滤:文本增长多少字符后才转发,默认 30 */ contentMinDelta?: number; }; /** * 静态运行时变量默认值(如 { userId, userMail })。 * 构造时固定;运行时还会与 `ToolContext.custom.vars` 合并(调用方每次 run 携带的系统变量优先)。 * 最终用于解析 headers / auth 中的 ${vars.x} 占位符,决定"带哪些变量去请求"远端。 */ vars?: Record; } /** * 创建远程 A2A Agent 的 SubAgentRunner * * 核心逻辑: * - streaming=true && ctx.emitSubEvent 存在 → sendTaskStreaming + 事件转发 * - 否则 → sendTask 同步阻塞 * * 转发的事件类型: * - start: runner 开始执行 * - progress: 远程 Agent 返回 working 状态 * - artifact: 远程 Agent 生成文件产物 * - done: 任务完成 * - error: 任务失败或网络异常 */ export declare function createA2ARemoteRunner(config: A2ARemoteRunnerConfig): SubAgentRunner; //# sourceMappingURL=runner.d.ts.map