@tdesign-react/chat 1.1.0-alpha.12 → 1.1.0-alpha.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -399,12 +399,13 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
399
399
  key: "handleConnectChallenge",
400
400
  value: function () {
401
401
  var _handleConnectChallenge = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(payload) {
402
+ var _this$config$auth;
402
403
  var connectParams, _this$callbacks$onCon, _this$callbacks0, response, _this$callbacks$onErr4, _this$callbacks1, _t2;
403
404
  return _regeneratorRuntime.wrap(function (_context6) {
404
405
  while (1) switch (_context6.prev = _context6.next) {
405
406
  case 0:
406
407
  this.logger.debug("Received connect.challenge, sending connect request");
407
- connectParams = {
408
+ connectParams = _objectSpread(_objectSpread({
408
409
  minProtocol: this.config.protocolVersion.min,
409
410
  maxProtocol: this.config.protocolVersion.max,
410
411
  client: {
@@ -415,11 +416,14 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
415
416
  instanceId: this.instanceId
416
417
  },
417
418
  role: "operator",
418
- scopes: ["operator.admin"],
419
- caps: [],
419
+ scopes: ["operator.admin", "operator.approvals", "operator.pairing"],
420
+ caps: []
421
+ }, (_this$config$auth = this.config.auth) !== null && _this$config$auth !== void 0 && _this$config$auth.token ? {
422
+ auth: this.config.auth
423
+ } : {}), {}, {
420
424
  userAgent: getUserAgent(),
421
425
  locale: getLocale()
422
- };
426
+ });
423
427
  _context6.prev = 1;
424
428
  _context6.next = 2;
425
429
  return this.rpcHandler.connect(connectParams);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/index.ts"],"sourcesContent":["/**\n * OpenClaw 协议适配器\n *\n * 功能:\n * 1. 管理 WebSocket 连接生命周期\n * 2. 处理 OpenClaw 协议的握手和认证\n * 3. 将 OpenClaw 事件转换为 ChatEngine 统一的消息格式\n * 4. 提供与 AGUIAdapter 相似的接口,便于 ChatEngine 统一调度\n */\nimport EventEmitter from '../../utils/eventEmitter';\nimport { LoggerManager } from '../../utils/logger';\nimport { WebSocketClient, type WebSocketClientConfig, WebSocketConnectionState } from '../../server/websocket-client';\nimport type { AIMessageContent, ChatRequestParams, SSEChunkData } from '../../type';\nimport { OpenClawEventMapper, type EventMapResult } from './event-mapper';\nimport { OpenClawRPCHandler, RPCError } from './rpc-handler';\nimport type {\n OpenClawConfig,\n OpenClawFrame,\n OpenClawEventFrame,\n OpenClawResponseFrame,\n ConnectParams,\n ConnectChallengePayload,\n} from './types';\nimport { mergeOpenClawConfig, DEFAULT_OPENCLAW_CONFIG } from './types/config';\nimport { OpenClawEventType, OpenClawConnectionState } from './types/events';\nimport {\n generateUUID,\n parseFrame,\n getPlatform,\n getUserAgent,\n getLocale,\n formatWebSocketUrl,\n} from './utils';\n\n// 重新导出类型\nexport * from './types';\nexport { OpenClawEventMapper, type EventMapResult } from './event-mapper';\nexport { OpenClawRPCHandler, RPCError } from './rpc-handler';\n\n/**\n * OpenClaw 适配器回调接口\n */\nexport interface OpenClawAdapterCallbacks {\n /** 连接成功 */\n onConnected?: () => void;\n /** 连接断开 */\n onDisconnected?: (reason?: string) => void;\n /** 消息开始 */\n onStart?: () => void;\n /** 消息完成 */\n onComplete?: (isAborted: boolean, params?: ChatRequestParams) => void;\n /** 错误发生 */\n onError?: (error: Error) => void;\n /** 消息内容更新 */\n onMessage?: (content: AIMessageContent | AIMessageContent[]) => void;\n}\n\n/**\n * OpenClaw 适配器配置\n */\nexport interface OpenClawAdapterConfig extends OpenClawConfig {\n /** WebSocket 端点 */\n endpoint: string;\n /** 请求超时(毫秒) */\n timeout?: number;\n /** 最大重试次数 */\n maxRetries?: number;\n /** 重试间隔(毫秒) */\n retryInterval?: number;\n}\n\n/**\n * OpenClaw 协议适配器\n */\nexport class OpenClawAdapter extends EventEmitter {\n private wsClient: WebSocketClient | null = null;\n\n private rpcHandler: OpenClawRPCHandler;\n\n private eventMapper: OpenClawEventMapper;\n\n private config: Required<OpenClawConfig>;\n\n private adapterConfig: OpenClawAdapterConfig;\n\n private connectionState = OpenClawConnectionState.DISCONNECTED;\n\n private instanceId: string;\n\n private logger = LoggerManager.getLogger();\n\n private callbacks: OpenClawAdapterCallbacks = {};\n\n private isStreaming = false;\n\n private currentRequestParams: ChatRequestParams | null = null;\n\n constructor(config: OpenClawAdapterConfig) {\n super();\n this.adapterConfig = config;\n this.config = mergeOpenClawConfig(config);\n this.instanceId = generateUUID();\n this.rpcHandler = new OpenClawRPCHandler({ timeout: config.timeout });\n this.eventMapper = new OpenClawEventMapper();\n }\n\n /**\n * 设置回调\n */\n setCallbacks(callbacks: OpenClawAdapterCallbacks): void {\n this.callbacks = callbacks;\n }\n\n /**\n * 连接到 OpenClaw Gateway\n * 等待 WebSocket 连接建立并完成认证握手后才返回\n */\n async connect(): Promise<void> {\n if (this.connectionState === OpenClawConnectionState.AUTHENTICATED) {\n return;\n }\n\n this.connectionState = OpenClawConnectionState.CONNECTING;\n\n const url = formatWebSocketUrl(this.adapterConfig.endpoint);\n this.wsClient = new WebSocketClient(url);\n\n // 设置 RPC 发送函数\n this.rpcHandler.setSendFunction((frame) => {\n this.wsClient?.send(frame);\n });\n\n // 绑定事件处理\n this.setupEventHandlers();\n\n // 连接 WebSocket\n const wsConfig: WebSocketClientConfig = {\n timeout: this.adapterConfig.timeout,\n maxRetries: this.adapterConfig.maxRetries,\n retryInterval: this.adapterConfig.retryInterval,\n heartbeatInterval: this.config.heartbeatInterval,\n };\n\n await this.wsClient.connect(wsConfig);\n\n // 等待认证完成(connect.challenge 握手)\n await this.waitForAuthentication();\n }\n\n /**\n * 等待认证完成\n * WebSocket 连接建立后,服务器会发送 connect.challenge 事件,\n * 适配器会自动回复 connect 请求完成握手。\n * 此方法等待整个握手流程完成后再返回。\n */\n private waitForAuthentication(): Promise<void> {\n // 如果已经认证,直接返回\n if (this.connectionState === OpenClawConnectionState.AUTHENTICATED) {\n return Promise.resolve();\n }\n\n const timeout = this.adapterConfig.timeout || 30000;\n\n return new Promise<void>((resolve, reject) => {\n let timer: ReturnType<typeof setTimeout> | null = null;\n\n const cleanup = () => {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n this.off('connected', onConnected);\n this.off('error', onError);\n };\n\n const onConnected = () => {\n cleanup();\n resolve();\n };\n\n const onError = (error: Error) => {\n cleanup();\n reject(error);\n };\n\n this.once('connected', onConnected);\n this.once('error', onError);\n\n // 超时处理\n timer = setTimeout(() => {\n cleanup();\n reject(new Error(`OpenClaw authentication timeout after ${timeout}ms`));\n }, timeout);\n });\n }\n\n /**\n * 发送聊天消息\n */\n async sendMessage(params: ChatRequestParams, requestParams?: Record<string, unknown>): Promise<void> {\n if (this.connectionState !== OpenClawConnectionState.AUTHENTICATED) {\n throw new Error('Not authenticated. Please connect first.');\n }\n\n this.currentRequestParams = params;\n this.isStreaming = true;\n this.eventMapper.reset();\n\n // 合并用户自定义参数\n const chatParams = {\n message: params.prompt || '',\n idempotencyKey: generateUUID(),\n ...requestParams,\n };\n\n try {\n this.callbacks.onStart?.();\n await this.rpcHandler.chatSend(chatParams);\n // 响应会通过事件流返回,这里只是发送请求\n } catch (error) {\n this.isStreaming = false;\n this.callbacks.onError?.(error as Error);\n throw error;\n }\n }\n\n /**\n * 处理 SSE 数据块(兼容 ChatEngine 接口)\n */\n handleEvent(chunk: SSEChunkData): AIMessageContent | AIMessageContent[] | null {\n // 将 SSE 格式转换为 OpenClaw 帧格式\n const frame = parseFrame(chunk.data);\n if (!frame || frame.type !== 'event') {\n return null;\n }\n\n const result = this.eventMapper.mapEvent(frame as OpenClawEventFrame);\n\n if (result.isFinal) {\n this.isStreaming = false;\n this.callbacks.onComplete?.(false, this.currentRequestParams || undefined);\n }\n\n if (result.hasError && result.errorMessage) {\n this.callbacks.onError?.(new Error(result.errorMessage));\n }\n\n return result.content;\n }\n\n /**\n * 调用 Action(供 Toolcall/Activity 组件的 respond/action 使用)\n *\n * 通过 OpenClaw 的 node.invoke RPC 方法上行,利用 WebSocket 双向通道\n * 将用户在交互式组件中的操作(respond/confirm/update 等)发送回 Agent 端。\n *\n * @param params.nodeId - toolCallId 或 activityType,标识目标节点\n * @param params.action - 操作类型,如 \"respond\" | \"update\" | \"confirm\"\n * @param params.payload - 用户操作数据\n * @returns Agent 端返回的响应数据\n *\n * @example\n * ```tsx\n * // 在 ToolCallRenderer 的 onRespond 中使用\n * <ToolCallRenderer\n * toolCall={toolCall}\n * onRespond={async (tc, response) => {\n * await openclawAdapter.invokeAction({\n * nodeId: tc.toolCallId,\n * action: 'respond',\n * payload: response,\n * });\n * }}\n * />\n * ```\n */\n async invokeAction(params: {\n nodeId: string;\n action: string;\n payload: unknown;\n }): Promise<unknown> {\n if (this.connectionState !== OpenClawConnectionState.AUTHENTICATED) {\n throw new Error('Not authenticated. Please connect first.');\n }\n\n return this.rpcHandler.nodeInvoke({\n ...params,\n runId: this.eventMapper.getCurrentRunId() || undefined,\n });\n }\n\n /**\n * 断开连接\n */\n async disconnect(): Promise<void> {\n this.connectionState = OpenClawConnectionState.CLOSING;\n this.rpcHandler.cancelAll('Disconnecting');\n\n if (this.wsClient) {\n await this.wsClient.close();\n this.wsClient = null;\n }\n\n this.connectionState = OpenClawConnectionState.DISCONNECTED;\n this.callbacks.onDisconnected?.();\n }\n\n /**\n * 中止当前流式传输\n */\n abort(): void {\n if (this.isStreaming) {\n this.isStreaming = false;\n this.callbacks.onComplete?.(true, this.currentRequestParams || undefined);\n }\n }\n\n /**\n * 获取连接状态\n */\n getConnectionState(): OpenClawConnectionState {\n return this.connectionState;\n }\n\n /**\n * 检查是否已认证\n */\n isAuthenticated(): boolean {\n return this.connectionState === OpenClawConnectionState.AUTHENTICATED;\n }\n\n /**\n * 重置适配器状态\n */\n reset(): void {\n this.eventMapper.reset();\n this.rpcHandler.reset();\n this.isStreaming = false;\n this.currentRequestParams = null;\n }\n\n /**\n * 销毁适配器\n */\n async destroy(): Promise<void> {\n await this.disconnect();\n this.rpcHandler.destroy();\n this.removeAllListeners();\n }\n\n /**\n * 设置 WebSocket 事件处理器\n */\n private setupEventHandlers(): void {\n if (!this.wsClient) return;\n\n this.wsClient.on('message', (event: { event: string; data: unknown }) => {\n this.handleWebSocketMessage(event.data);\n });\n\n this.wsClient.on('error', (error: Error) => {\n this.logger.error('OpenClaw WebSocket error:', error);\n this.callbacks.onError?.(error);\n });\n\n this.wsClient.on('complete', (isAborted: boolean) => {\n if (this.isStreaming) {\n this.isStreaming = false;\n this.callbacks.onComplete?.(isAborted, this.currentRequestParams || undefined);\n }\n this.callbacks.onDisconnected?.(isAborted ? 'Aborted' : 'Connection closed');\n });\n\n this.wsClient.on('stateChange', (event: { from: WebSocketConnectionState; to: WebSocketConnectionState }) => {\n this.logger.debug(`WebSocket state: ${event.from} -> ${event.to}`);\n if (event.to === WebSocketConnectionState.CONNECTED) {\n this.connectionState = OpenClawConnectionState.HANDSHAKING;\n }\n });\n }\n\n /**\n * 处理 WebSocket 消息\n */\n private handleWebSocketMessage(data: unknown): void {\n const frame = parseFrame(data as string | object);\n if (!frame) {\n this.logger.warn('Failed to parse OpenClaw frame:', data);\n return;\n }\n\n // 处理响应帧\n if (frame.type === 'res') {\n this.rpcHandler.handleResponse(frame as OpenClawResponseFrame);\n return;\n }\n\n // 处理事件帧\n if (frame.type === 'event') {\n this.handleEventFrame(frame as OpenClawEventFrame);\n }\n }\n\n /**\n * 处理事件帧\n */\n private handleEventFrame(frame: OpenClawEventFrame): void {\n const { event, payload } = frame;\n\n // 处理连接挑战事件\n if (event === OpenClawEventType.CONNECT_CHALLENGE) {\n this.handleConnectChallenge(payload as ConnectChallengePayload);\n return;\n }\n\n // 流式消息事件\n if (this.isStreaming) {\n const result = this.eventMapper.mapEvent(frame);\n\n if (result.content) {\n this.callbacks.onMessage?.(result.content);\n this.emit('message', result.content);\n }\n\n if (result.isFinal) {\n this.isStreaming = false;\n this.callbacks.onComplete?.(false, this.currentRequestParams || undefined);\n }\n\n if (result.hasError && result.errorMessage) {\n this.callbacks.onError?.(new Error(result.errorMessage));\n }\n }\n }\n\n /**\n * 处理连接挑战(握手)\n */\n private async handleConnectChallenge(payload: ConnectChallengePayload): Promise<void> {\n this.logger.debug('Received connect.challenge, sending connect request');\n\n const connectParams: ConnectParams = {\n minProtocol: this.config.protocolVersion.min,\n maxProtocol: this.config.protocolVersion.max,\n client: {\n id: this.config.client.id,\n version: this.config.client.version,\n platform: getPlatform(),\n mode: this.config.client.mode,\n instanceId: this.instanceId,\n },\n role: 'operator',\n scopes: ['operator.admin'],\n caps: [],\n userAgent: getUserAgent(),\n locale: getLocale(),\n };\n\n try {\n const response = await this.rpcHandler.connect(connectParams);\n this.connectionState = OpenClawConnectionState.AUTHENTICATED;\n this.logger.info('OpenClaw authenticated successfully:', response);\n this.callbacks.onConnected?.();\n this.emit('connected', response);\n } catch (error) {\n this.connectionState = OpenClawConnectionState.ERROR;\n this.logger.error('OpenClaw authentication failed:', error);\n this.callbacks.onError?.(error as Error);\n this.emit('error', error);\n }\n }\n}\n"],"names":["OpenClawAdapter","config","_this","_classCallCheck","_callSuper","_defineProperty","OpenClawConnectionState","DISCONNECTED","LoggerManager","getLogger","adapterConfig","mergeOpenClawConfig","instanceId","generateUUID","rpcHandler","OpenClawRPCHandler","timeout","eventMapper","OpenClawEventMapper","_inherits","_EventEmitter","_createClass","key","value","setCallbacks","callbacks","_connect","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this2","url","wsConfig","wrap","_context","prev","next","connectionState","AUTHENTICATED","abrupt","CONNECTING","formatWebSocketUrl","endpoint","wsClient","WebSocketClient","setSendFunction","frame","_this2$wsClient","send","setupEventHandlers","maxRetries","retryInterval","heartbeatInterval","connect","waitForAuthentication","stop","apply","arguments","_this3","Promise","resolve","reject","timer","cleanup","clearTimeout","off","onConnected","onError","error","once","setTimeout","Error","concat","_sendMessage","_callee2","params","requestParams","chatParams","_this$callbacks$onSta","_this$callbacks","_this$callbacks$onErr","_this$callbacks2","_t","_context2","currentRequestParams","isStreaming","reset","_objectSpread","message","prompt","idempotencyKey","onStart","call","chatSend","sendMessage","_x","_x2","handleEvent","chunk","parseFrame","data","type","result","mapEvent","isFinal","_this$callbacks$onCom","_this$callbacks3","onComplete","hasError","errorMessage","_this$callbacks$onErr2","_this$callbacks4","content","_invokeAction","_callee3","_context3","nodeInvoke","runId","getCurrentRunId","invokeAction","_callee4","_this$callbacks$onDis","_this$callbacks5","_context4","CLOSING","cancelAll","close","onDisconnected","disconnect","_disconnect","abort","_this$callbacks$onCom2","_this$callbacks6","getConnectionState","isAuthenticated","_destroy","_callee5","_context5","destroy","removeAllListeners","_this4","on","event","handleWebSocketMessage","_this4$callbacks$onEr","_this4$callbacks","logger","isAborted","_this4$callbacks$onDi","_this4$callbacks3","_this4$callbacks$onCo","_this4$callbacks2","debug","from","to","WebSocketConnectionState","CONNECTED","HANDSHAKING","warn","handleResponse","handleEventFrame","payload","OpenClawEventType","CONNECT_CHALLENGE","handleConnectChallenge","_this$callbacks$onMes","_this$callbacks7","onMessage","emit","_this$callbacks$onCom3","_this$callbacks8","_this$callbacks$onErr3","_this$callbacks9","_handleConnectChallenge","_callee6","connectParams","_this$callbacks$onCon","_this$callbacks0","response","_this$callbacks$onErr4","_this$callbacks1","_t2","_context6","minProtocol","protocolVersion","min","maxProtocol","max","client","id","version","platform","getPlatform","mode","role","scopes","caps","userAgent","getUserAgent","locale","getLocale","sent","info","ERROR","EventEmitter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EaA,IAAAA;EAuBX,SAAAA,eAAAA,CAAYC,MAA+B,EAAA;AAAA,IAAA,IAAAC,KAAA,CAAA;AAAAC,IAAAA,eAAA,OAAAH,eAAA,CAAA,CAAA;IACnCE,KAAA,GAAAE,UAAA,CAAA,IAAA,EAAAJ,eAAA,CAAA,CAAA;IAAAK,eAAA,CAAAH,KAAA,EAAA,UAAA,EAvBmC,IAAA,CAAA,CAAA;AAAAG,IAAAA,eAAA,CAAAH,KAAA,EAUjBI,iBAAAA,EAAAA,uBAAwB,CAAAC,YAAA,CAAA,CAAA;AAAAF,IAAAA,eAAA,CAAAH,KAAA,EAAA,QAAA,EAIjCM,cAAcC,SAAU,EAAA,CAAA,CAAA;AAAAJ,IAAAA,eAAA,CAAAH,KAAA,EAEK,WAAA,EAAA,EAAC,CAAA,CAAA;IAAAG,eAAA,CAAAH,KAAA,EAAA,aAAA,EAEzB,KAAA,CAAA,CAAA;IAAAG,eAAA,CAAAH,KAAA,EAAA,sBAAA,EAEmC,IAAA,CAAA,CAAA;IAIvDA,KAAA,CAAKQ,aAAgB,GAAAT,MAAA,CAAA;AAChBC,IAAAA,KAAA,CAAAD,MAAA,GAASU,oBAAoBV,MAAM,CAAA,CAAA;AACxCC,IAAAA,KAAA,CAAKU,aAAaC,YAAa,EAAA,CAAA;AAC/BX,IAAAA,KAAA,CAAKY,aAAa,IAAIC,kBAAA,CAAmB;MAAEC,OAAS,EAAAf,MAAA,CAAOe,OAAAA;AAAQ,KAAC,CAAA,CAAA;AAC/Dd,IAAAA,KAAA,CAAAe,WAAA,GAAc,IAAIC,mBAAoB,EAAA,CAAA;AAAA,IAAA,OAAAhB,KAAA,CAAA;AAC7C,GAAA;EAAAiB,SAAA,CAAAnB,eAAA,EAAAoB,aAAA,CAAA,CAAA;EAAA,OAAAC,YAAA,CAAArB,eAAA,EAAA,CAAA;IAAAsB,GAAA,EAAA,cAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAC,aAAaC,SAA2C,EAAA;MACtD,IAAA,CAAKA,SAAY,GAAAA,SAAA,CAAA;AACnB,KAAA;AAAA,GAAA,EAAA;IAAAH,GAAA,EAAA,SAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAG,QAAA,GAAAC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAMA,SAAAC,OAAA,GAAA;AAAA,QAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;QAAA,IAAAC,GAAA,EAAAC,QAAA,CAAA;AAAA,QAAA,OAAAL,mBAAA,CAAAM,IAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EACM,IAAA,CAAKC,eAAoB,KAAAhC,uBAAA,CAAwBiC,aAAe,CAAA,EAAA;AAAAJ,gBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cAAA,OAAAF,QAAA,CAAAK,MAAA,CAAA,QAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAIpE,cAAA,IAAA,CAAKF,kBAAkBhC,uBAAwB,CAAAmC,UAAA,CAAA;cAEzCT,GAAM,GAAAU,kBAAA,CAAmB,IAAK,CAAAhC,aAAA,CAAciC,QAAQ,CAAA,CAAA;AACrD,cAAA,IAAA,CAAAC,QAAA,GAAW,IAAIC,eAAA,CAAgBb,GAAG,CAAA,CAAA;AAGlC,cAAA,IAAA,CAAAlB,UAAA,CAAWgC,eAAgB,CAAA,UAACC,KAAU,EAAA;AAAA,gBAAA,IAAAC,eAAA,CAAA;AACpC,gBAAA,CAAAA,eAAA,GAAAjB,MAAA,CAAAa,QAAA,MAAA,IAAA,IAAAI,eAAA,KAAA,KAAA,CAAA,IAAAA,eAAA,CAAUC,KAAKF,KAAK,CAAA,CAAA;AAC3B,eAAC,CAAA,CAAA;cAGD,IAAA,CAAKG,kBAAmB,EAAA,CAAA;AAGlBjB,cAAAA,QAAkC,GAAA;AACtCjB,gBAAAA,OAAA,EAAS,KAAKN,aAAc,CAAAM,OAAA;AAC5BmC,gBAAAA,UAAA,EAAY,KAAKzC,aAAc,CAAAyC,UAAA;AAC/BC,gBAAAA,aAAA,EAAe,KAAK1C,aAAc,CAAA0C,aAAA;AAClCC,gBAAAA,iBAAA,EAAmB,KAAKpD,MAAO,CAAAoD,iBAAAA;eACjC,CAAA;AAAAlB,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAEM,IAAA,CAAKO,QAAS,CAAAU,OAAA,CAAQrB,QAAQ,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAE,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAG9B,KAAKkB,qBAAsB,EAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAApB,QAAA,CAAAqB,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAA1B,OAAA,EAAA,IAAA,CAAA,CAAA;OACnC,CAAA,CAAA,CAAA;AAAA,MAAA,SA9BMwB,OAAyBA,GAAA;AAAA,QAAA,OAAA5B,QAAA,CAAA+B,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAzBJ,OAAyB,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAhC,GAAA,EAAA,uBAAA;AAAAC,IAAAA,KAAA,EAsCvB,SAAAgC,qBAAuCA,GAAA;AAAA,MAAA,IAAAI,MAAA,GAAA,IAAA,CAAA;AAEzC,MAAA,IAAA,IAAA,CAAKrB,eAAoB,KAAAhC,uBAAA,CAAwBiC,aAAe,EAAA;AAClE,QAAA,OAAOqB,QAAQC,OAAQ,EAAA,CAAA;AACzB,OAAA;MAEM,IAAA7C,OAAA,GAAU,IAAK,CAAAN,aAAA,CAAcM,OAAW,IAAA,GAAA,CAAA;AAE9C,MAAA,OAAO,IAAI4C,OAAA,CAAc,UAACC,OAAA,EAASC,MAAW,EAAA;QAC5C,IAAIC,KAA8C,GAAA,IAAA,CAAA;AAElD,QAAA,IAAMC,UAAU,SAAVA,UAAgB;AACpB,UAAA,IAAID,KAAO,EAAA;YACTE,YAAA,CAAaF,KAAK,CAAA,CAAA;AACVA,YAAAA,KAAA,GAAA,IAAA,CAAA;AACV,WAAA;AACKJ,UAAAA,MAAA,CAAAO,GAAA,CAAI,aAAaC,WAAW,CAAA,CAAA;AAC5BR,UAAAA,MAAA,CAAAO,GAAA,CAAI,SAASE,OAAO,CAAA,CAAA;SAC3B,CAAA;AAEA,QAAA,IAAMD,cAAc,SAAdA,cAAoB;AAChBH,UAAAA,OAAA,EAAA,CAAA;AACAH,UAAAA,OAAA,EAAA,CAAA;SACV,CAAA;AAEM,QAAA,IAAAO,OAAA,GAAU,SAAVA,OAAAA,CAAWC,KAAiB,EAAA;AACxBL,UAAAA,OAAA,EAAA,CAAA;UACRF,MAAA,CAAOO,KAAK,CAAA,CAAA;SACd,CAAA;AAEKV,QAAAA,MAAA,CAAAW,IAAA,CAAK,aAAaH,WAAW,CAAA,CAAA;AAC7BR,QAAAA,MAAA,CAAAW,IAAA,CAAK,SAASF,OAAO,CAAA,CAAA;QAG1BL,KAAA,GAAQQ,WAAW,YAAM;AACfP,UAAAA,OAAA,EAAA,CAAA;UACRF,MAAA,CAAO,IAAIU,KAAA,CAAA,wCAAA,CAAAC,MAAA,CAA+CzD,OAAA,EAAW,IAAA,CAAA,CAAC,CAAA,CAAA;WACrEA,OAAO,CAAA,CAAA;AACZ,OAAC,CAAA,CAAA;AACH,KAAA;AAAA,GAAA,EAAA;IAAAM,GAAA,EAAA,aAAA;IAAAC,KAAA,EAAA,YAAA;AAAA,MAAA,IAAAmD,YAAA,GAAA/C,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAKA,SAAA8C,QAAAA,CAAkBC,MAAA,EAA2BC,aAAwD,EAAA;QAAA,IAAAC,UAAA,EAAAC,qBAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,EAAA,CAAA;AAAA,QAAA,OAAAvD,mBAAA,CAAAM,IAAA,CAAA,UAAAkD,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhD,IAAA,GAAAgD,SAAA,CAAA/C,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EAC/F,IAAA,CAAKC,eAAoB,KAAAhC,uBAAA,CAAwBiC,aAAe,CAAA,EAAA;AAAA6C,gBAAAA,SAAA,CAAA/C,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAAA,cAAA,MAC5D,IAAImC,MAAM,0CAA0C,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAG5D,IAAA,CAAKa,oBAAuB,GAAAT,MAAA,CAAA;cAC5B,IAAA,CAAKU,WAAc,GAAA,IAAA,CAAA;AACnB,cAAA,IAAA,CAAKrE,YAAYsE,KAAM,EAAA,CAAA;AAGjBT,cAAAA,UAAa,GAAAU,aAAA,CAAA;AACjBC,gBAAAA,OAAA,EAASb,OAAOc,MAAU,IAAA,EAAA;gBAC1BC,gBAAgB9E,YAAa,EAAA;AAAA,eAAA,EAC1BgE,aAAA,CAAA,CAAA;AAAAO,cAAAA,SAAA,CAAAhD,IAAA,GAAA,CAAA,CAAA;AAIH,cAAA,CAAA2C,qBAAA,GAAAC,CAAAA,eAAA,GAAA,IAAA,CAAKvD,WAAUmE,OAAU,MAAAb,IAAAA,IAAAA,qBAAA,eAAzBA,qBAAA,CAAAc,IAAA,CAAAb,eAAyB,CAAA,CAAA;AAAAI,cAAAA,SAAA,CAAA/C,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OACnB,IAAA,CAAKvB,UAAW,CAAAgF,QAAA,CAAShB,UAAU,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAM,cAAAA,SAAA,CAAA/C,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,YAAA,KAAA,CAAA;AAAA+C,cAAAA,SAAA,CAAAhD,IAAA,GAAA,CAAA,CAAA;AAAA+C,cAAAA,EAAA,GAAAC,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;cAGzC,IAAA,CAAKE,WAAc,GAAA,KAAA,CAAA;AACd,cAAA,CAAAL,qBAAA,GAAAC,CAAAA,gBAAA,OAAA,CAAAzD,SAAA,EAAU2C,yDAAVa,qBAAA,CAAAY,IAAA,CAAAX,gBAAA,EAAAC,EAAkC,CAAA,CAAA;AAAA,cAAA,MAAAA,EAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAC,SAAA,CAAA5B,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAmB,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAG3C,CAAA,CAAA,CAAA;AAAA,MAAA,SAzBMoB,WAAYA,CAAAC,EAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAvB,YAAA,CAAAjB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAZqC,WAAY,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAzE,GAAA,EAAA,aAAA;AAAAC,IAAAA,KAAA,EA8BlB,SAAA2E,YAAYC,KAAmE,EAAA;AAEvE,MAAA,IAAApD,KAAA,GAAQqD,UAAW,CAAAD,KAAA,CAAME,IAAI,CAAA,CAAA;MACnC,IAAI,CAACtD,KAAA,IAASA,KAAM,CAAAuD,IAAA,KAAS,OAAS,EAAA;AAC7B,QAAA,OAAA,IAAA,CAAA;AACT,OAAA;MAEA,IAAMC,MAAS,GAAA,IAAA,CAAKtF,WAAY,CAAAuF,QAAA,CAASzD,KAA2B,CAAA,CAAA;MAEpE,IAAIwD,OAAOE,OAAS,EAAA;QAAA,IAAAC,qBAAA,EAAAC,gBAAA,CAAA;QAClB,IAAA,CAAKrB,WAAc,GAAA,KAAA,CAAA;QACnB,CAAAoB,qBAAA,GAAAC,CAAAA,gBAAA,GAAA,IAAA,CAAKlF,SAAU,EAAAmF,UAAA,MAAAF,IAAAA,IAAAA,qBAAA,KAAfA,KAAAA,CAAAA,IAAAA,qBAAA,CAAAb,IAAA,CAAAc,gBAAA,EAA4B,KAAO,EAAA,IAAA,CAAKtB,wBAAwB,KAAS,CAAA,CAAA,CAAA;AAC3E,OAAA;AAEI,MAAA,IAAAkB,MAAA,CAAOM,QAAY,IAAAN,MAAA,CAAOO,YAAc,EAAA;QAAA,IAAAC,sBAAA,EAAAC,gBAAA,CAAA;QAC1C,CAAAD,sBAAA,GAAAC,CAAAA,gBAAA,GAAA,IAAA,CAAKvF,WAAU2C,OAAU,MAAA2C,IAAAA,IAAAA,sBAAA,KAAzBA,KAAAA,CAAAA,IAAAA,sBAAA,CAAAlB,IAAA,CAAAmB,gBAAA,EAAyB,IAAIxC,KAAM,CAAA+B,MAAA,CAAOO,YAAY,CAAC,CAAA,CAAA;AACzD,OAAA;MAEA,OAAOP,MAAO,CAAAU,OAAA,CAAA;AAChB,KAAA;AAAA,GAAA,EAAA;IAAA3F,GAAA,EAAA,cAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA2F,aAAA,GAAAvF,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CA4BA,SAAAsF,QAAAA,CAAmBvC,MAIE,EAAA;AAAA,QAAA,OAAAhD,mBAAA,CAAAM,IAAA,CAAA,UAAAkF,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhF,IAAA,GAAAgF,SAAA,CAAA/E,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EACf,IAAA,CAAKC,eAAoB,KAAAhC,uBAAA,CAAwBiC,aAAe,CAAA,EAAA;AAAA6E,gBAAAA,SAAA,CAAA/E,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAAA,cAAA,MAC5D,IAAImC,MAAM,0CAA0C,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAA4C,SAAA,CAAA5E,MAAA,CAAA,QAAA,EAGrD,IAAA,CAAK1B,WAAWuG,UAAW,CAAA7B,aAAA,CAAAA,aAAA,KAC7BZ,MAAA,CAAA,EAAA,EAAA,EAAA;gBACH0C,KAAO,EAAA,IAAA,CAAKrG,WAAY,CAAAsG,eAAA,EAAqB,IAAA,KAAA,CAAA;AAAA,eAAA,CAC9C,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAH,SAAA,CAAA5D,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAA2D,QAAA,EAAA,IAAA,CAAA,CAAA;OACH,CAAA,CAAA,CAAA;MAAA,SAbMK;;;aAAAA;;;;;gFAkBN,SAAAC,QAAA,GAAA;QAAA,IAAAC,qBAAA,EAAAC,gBAAA,CAAA;AAAA,QAAA,OAAA/F,mBAAA,CAAAM,IAAA,CAAA,UAAA0F,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAxF,IAAA,GAAAwF,SAAA,CAAAvF,IAAA;AAAA,YAAA,KAAA,CAAA;AACE,cAAA,IAAA,CAAKC,kBAAkBhC,uBAAwB,CAAAuH,OAAA,CAAA;AAC1C,cAAA,IAAA,CAAA/G,UAAA,CAAWgH,UAAU,eAAe,CAAA,CAAA;cAAA,IAErC,CAAA,KAAKlF,QAAU,EAAA;AAAAgF,gBAAAA,SAAA,CAAAvF,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAAAuF,cAAAA,SAAA,CAAAvF,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OACX,IAAA,CAAKO,SAASmF,KAAM,EAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAC1B,IAAA,CAAKnF,QAAW,GAAA,IAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAGlB,cAAA,IAAA,CAAKN,kBAAkBhC,uBAAwB,CAAAC,YAAA,CAAA;AAC/C,cAAA,CAAAmH,qBAAA,GAAAC,CAAAA,gBAAA,GAAA,IAAA,CAAKlG,WAAUuG,cAAiB,MAAAN,IAAAA,IAAAA,qBAAA,eAAhCA,qBAAA,CAAA7B,IAAA,CAAA8B,gBAAgC,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAC,SAAA,CAAApE,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAiE,QAAA,EAAA,IAAA,CAAA,CAAA;OAClC,CAAA,CAAA,CAAA;AAAA,MAAA,SAXMQ,UAA4BA,GAAA;AAAA,QAAA,OAAAC,WAAA,CAAAzE,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAA5BuE,UAA4B,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAA3G,GAAA,EAAA,OAAA;AAAAC,IAAAA,KAAA,EAgBlC,SAAA4G,KAAcA,GAAA;MACZ,IAAI,KAAK7C,WAAa,EAAA;QAAA,IAAA8C,sBAAA,EAAAC,gBAAA,CAAA;QACpB,IAAA,CAAK/C,WAAc,GAAA,KAAA,CAAA;QACnB,CAAA8C,sBAAA,GAAAC,CAAAA,gBAAA,GAAA,IAAA,CAAK5G,SAAU,EAAAmF,UAAA,MAAAwB,IAAAA,IAAAA,sBAAA,KAAfA,KAAAA,CAAAA,IAAAA,sBAAA,CAAAvC,IAAA,CAAAwC,gBAAA,EAA4B,IAAM,EAAA,IAAA,CAAKhD,wBAAwB,KAAS,CAAA,CAAA,CAAA;AAC1E,OAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAA/D,GAAA,EAAA,oBAAA;AAAAC,IAAAA,KAAA,EAKA,SAAA+G,kBAA8CA,GAAA;MAC5C,OAAO,IAAK,CAAAhG,eAAA,CAAA;AACd,KAAA;AAAA,GAAA,EAAA;IAAAhB,GAAA,EAAA,iBAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAgH,eAA2BA,GAAA;AAClB,MAAA,OAAA,IAAA,CAAKjG,oBAAoBhC,uBAAwB,CAAAiC,aAAA,CAAA;AAC1D,KAAA;AAAA,GAAA,EAAA;IAAAjB,GAAA,EAAA,OAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAgE,KAAcA,GAAA;AACZ,MAAA,IAAA,CAAKtE,YAAYsE,KAAM,EAAA,CAAA;AACvB,MAAA,IAAA,CAAKzE,WAAWyE,KAAM,EAAA,CAAA;MACtB,IAAA,CAAKD,WAAc,GAAA,KAAA,CAAA;MACnB,IAAA,CAAKD,oBAAuB,GAAA,IAAA,CAAA;AAC9B,KAAA;AAAA,GAAA,EAAA;IAAA/D,GAAA,EAAA,SAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAiH,QAAA,GAAA7G,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAKA,SAAA4G,QAAA,GAAA;AAAA,QAAA,OAAA7G,mBAAA,CAAAM,IAAA,CAAA,UAAAwG,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAtG,IAAA,GAAAsG,SAAA,CAAArG,IAAA;AAAA,YAAA,KAAA,CAAA;AAAAqG,cAAAA,SAAA,CAAArG,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OACQ,KAAK4F,UAAW,EAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AACtB,cAAA,IAAA,CAAKnH,WAAW6H,OAAQ,EAAA,CAAA;cACxB,IAAA,CAAKC,kBAAmB,EAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAF,SAAA,CAAAlF,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAiF,QAAA,EAAA,IAAA,CAAA,CAAA;OAC1B,CAAA,CAAA,CAAA;AAAA,MAAA,SAJME,OAAyBA,GAAA;AAAA,QAAA,OAAAH,QAAA,CAAA/E,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAzBiF,OAAyB,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAArH,GAAA,EAAA,oBAAA;AAAAC,IAAAA,KAAA,EASvB,SAAA2B,kBAA2BA,GAAA;AAAA,MAAA,IAAA2F,MAAA,GAAA,IAAA,CAAA;AACjC,MAAA,IAAI,CAAC,IAAK,CAAAjG,QAAA,EAAU,OAAA;MAEpB,IAAA,CAAKA,QAAS,CAAAkG,EAAA,CAAG,SAAW,EAAA,UAACC,KAA4C,EAAA;AAClEF,QAAAA,MAAA,CAAAG,sBAAA,CAAuBD,MAAM1C,IAAI,CAAA,CAAA;AACxC,OAAC,CAAA,CAAA;MAED,IAAA,CAAKzD,QAAS,CAAAkG,EAAA,CAAG,OAAS,EAAA,UAACzE,KAAiB,EAAA;QAAA,IAAA4E,qBAAA,EAAAC,gBAAA,CAAA;QACrCL,MAAA,CAAAM,MAAA,CAAO9E,KAAM,CAAA,2BAAA,EAA6BA,KAAK,CAAA,CAAA;AAC/C,QAAA,CAAA4E,qBAAA,GAAAC,CAAAA,gBAAA,GAAAL,MAAA,CAAApH,SAAA,EAAU2C,yDAAV6E,qBAAA,CAAApD,IAAA,CAAAqD,gBAAA,EAAoB7E,KAAK,CAAA,CAAA;AAChC,OAAC,CAAA,CAAA;MAED,IAAA,CAAKzB,QAAS,CAAAkG,EAAA,CAAG,UAAY,EAAA,UAACM,SAAuB,EAAA;QAAA,IAAAC,qBAAA,EAAAC,iBAAA,CAAA;QACnD,IAAIT,OAAKvD,WAAa,EAAA;UAAA,IAAAiE,qBAAA,EAAAC,iBAAA,CAAA;UACpBX,MAAA,CAAKvD,WAAc,GAAA,KAAA,CAAA;UACnB,CAAAiE,qBAAA,GAAAC,CAAAA,iBAAA,GAAAX,MAAA,CAAKpH,SAAU,EAAAmF,UAAA,MAAA2C,IAAAA,IAAAA,qBAAA,KAAfA,KAAAA,CAAAA,IAAAA,qBAAA,CAAA1D,IAAA,CAAA2D,iBAAA,EAA4BJ,SAAW,EAAAP,MAAA,CAAKxD,wBAAwB,KAAS,CAAA,CAAA,CAAA;AAC/E,SAAA;QACA,CAAAgE,qBAAA,IAAAC,iBAAA,GAAAT,MAAA,CAAKpH,SAAU,EAAAuG,cAAA,MAAAqB,IAAAA,IAAAA,qBAAA,eAAfA,qBAAA,CAAAxD,IAAA,CAAAyD,iBAAA,EAAgCF,SAAY,GAAA,SAAA,GAAY,mBAAmB,CAAA,CAAA;AAC7E,OAAC,CAAA,CAAA;MAED,IAAA,CAAKxG,QAAS,CAAAkG,EAAA,CAAG,aAAe,EAAA,UAACC,KAA4E,EAAA;AAC3GF,QAAAA,MAAA,CAAKM,OAAOM,KAAM,CAAA,mBAAA,CAAAhF,MAAA,CAAoBsE,KAAM,CAAAW,IAAA,UAAAjF,MAAA,CAAWsE,MAAMY,EAAI,CAAA,CAAA,CAAA;AAC7D,QAAA,IAAAZ,KAAA,CAAMY,EAAO,KAAAC,wBAAA,CAAyBC,SAAW,EAAA;AACnDhB,UAAAA,MAAA,CAAKvG,kBAAkBhC,uBAAwB,CAAAwJ,WAAA,CAAA;AACjD,SAAA;AACF,OAAC,CAAA,CAAA;AACH,KAAA;AAAA,GAAA,EAAA;IAAAxI,GAAA,EAAA,wBAAA;AAAAC,IAAAA,KAAA,EAKQ,SAAAyH,uBAAuB3C,IAAqB,EAAA;AAC5C,MAAA,IAAAtD,KAAA,GAAQqD,WAAWC,IAAuB,CAAA,CAAA;MAChD,IAAI,CAACtD,KAAO,EAAA;QACL,IAAA,CAAAoG,MAAA,CAAOY,IAAK,CAAA,iCAAA,EAAmC1D,IAAI,CAAA,CAAA;AACxD,QAAA,OAAA;AACF,OAAA;AAGI,MAAA,IAAAtD,KAAA,CAAMuD,SAAS,KAAO,EAAA;AACnB,QAAA,IAAA,CAAAxF,UAAA,CAAWkJ,eAAejH,KAA8B,CAAA,CAAA;AAC7D,QAAA,OAAA;AACF,OAAA;AAGI,MAAA,IAAAA,KAAA,CAAMuD,SAAS,OAAS,EAAA;AAC1B,QAAA,IAAA,CAAK2D,iBAAiBlH,KAA2B,CAAA,CAAA;AACnD,OAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAAzB,GAAA,EAAA,kBAAA;AAAAC,IAAAA,KAAA,EAKQ,SAAA0I,iBAAiBlH,KAAiC,EAAA;AAClD,MAAA,IAAEgG,KAAO,GAAYhG,KAAA,CAAnBgG,KAAO;QAAAmB,OAAA,GAAYnH,KAAA,CAAZmH,OAAA,CAAA;AAGX,MAAA,IAAAnB,KAAA,KAAUoB,kBAAkBC,iBAAmB,EAAA;AACjD,QAAA,IAAA,CAAKC,uBAAuBH,OAAkC,CAAA,CAAA;AAC9D,QAAA,OAAA;AACF,OAAA;MAGA,IAAI,KAAK5E,WAAa,EAAA;QACpB,IAAMiB,MAAS,GAAA,IAAA,CAAKtF,WAAY,CAAAuF,QAAA,CAASzD,KAAK,CAAA,CAAA;QAE9C,IAAIwD,OAAOU,OAAS,EAAA;UAAA,IAAAqD,qBAAA,EAAAC,gBAAA,CAAA;UACb,CAAAD,qBAAA,IAAAC,gBAAA,GAAA,IAAA,CAAA9I,SAAA,EAAU+I,SAAY,MAAAF,IAAAA,IAAAA,qBAAA,eAAtBA,qBAAA,CAAAzE,IAAA,CAAA0E,gBAAA,EAAsBhE,MAAA,CAAOU,OAAO,CAAA,CAAA;UACpC,IAAA,CAAAwD,IAAA,CAAK,SAAW,EAAAlE,MAAA,CAAOU,OAAO,CAAA,CAAA;AACrC,SAAA;QAEA,IAAIV,OAAOE,OAAS,EAAA;UAAA,IAAAiE,sBAAA,EAAAC,gBAAA,CAAA;UAClB,IAAA,CAAKrF,WAAc,GAAA,KAAA,CAAA;UACnB,CAAAoF,sBAAA,GAAAC,CAAAA,gBAAA,GAAA,IAAA,CAAKlJ,SAAU,EAAAmF,UAAA,MAAA8D,IAAAA,IAAAA,sBAAA,KAAfA,KAAAA,CAAAA,IAAAA,sBAAA,CAAA7E,IAAA,CAAA8E,gBAAA,EAA4B,KAAO,EAAA,IAAA,CAAKtF,wBAAwB,KAAS,CAAA,CAAA,CAAA;AAC3E,SAAA;AAEI,QAAA,IAAAkB,MAAA,CAAOM,QAAY,IAAAN,MAAA,CAAOO,YAAc,EAAA;UAAA,IAAA8D,sBAAA,EAAAC,gBAAA,CAAA;UAC1C,CAAAD,sBAAA,GAAAC,CAAAA,gBAAA,GAAA,IAAA,CAAKpJ,WAAU2C,OAAU,MAAAwG,IAAAA,IAAAA,sBAAA,KAAzBA,KAAAA,CAAAA,IAAAA,sBAAA,CAAA/E,IAAA,CAAAgF,gBAAA,EAAyB,IAAIrG,KAAM,CAAA+B,MAAA,CAAOO,YAAY,CAAC,CAAA,CAAA;AACzD,SAAA;AACF,OAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAAxF,GAAA,EAAA,wBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAuJ,uBAAA,GAAAnJ,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAKA,SAAAkJ,QAAAA,CAAqCb,OAAiD,EAAA;AAAA,QAAA,IAAAc,aAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,QAAA,EAAAC,sBAAA,EAAAC,gBAAA,EAAAC,GAAA,CAAA;AAAA,QAAA,OAAA1J,mBAAA,CAAAM,IAAA,CAAA,UAAAqJ,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAnJ,IAAA,GAAAmJ,SAAA,CAAAlJ,IAAA;AAAA,YAAA,KAAA,CAAA;AAC/E,cAAA,IAAA,CAAA8G,MAAA,CAAOM,MAAM,qDAAqD,CAAA,CAAA;AAEjEuB,cAAAA,aAA+B,GAAA;AACnCQ,gBAAAA,WAAA,EAAa,IAAK,CAAAvL,MAAA,CAAOwL,eAAgB,CAAAC,GAAA;AACzCC,gBAAAA,WAAA,EAAa,IAAK,CAAA1L,MAAA,CAAOwL,eAAgB,CAAAG,GAAA;AACzCC,gBAAAA,MAAQ,EAAA;AACNC,kBAAAA,EAAA,EAAI,IAAK,CAAA7L,MAAA,CAAO4L,MAAO,CAAAC,EAAA;AACvBC,kBAAAA,OAAA,EAAS,IAAK,CAAA9L,MAAA,CAAO4L,MAAO,CAAAE,OAAA;kBAC5BC,UAAUC,WAAY,EAAA;AACtBC,kBAAAA,IAAA,EAAM,IAAK,CAAAjM,MAAA,CAAO4L,MAAO,CAAAK,IAAA;kBACzBtL,YAAY,IAAK,CAAAA,UAAAA;iBACnB;AACAuL,gBAAAA,IAAM,EAAA,UAAA;gBACNC,MAAA,EAAQ,CAAC,gBAAgB,CAAA;AACzBC,gBAAAA,MAAM,EAAC;gBACPC,WAAWC,YAAa,EAAA;gBACxBC,QAAQC,SAAU,EAAA;eACpB,CAAA;AAAAlB,cAAAA,SAAA,CAAAnJ,IAAA,GAAA,CAAA,CAAA;AAAAmJ,cAAAA,SAAA,CAAAlJ,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAGyB,IAAK,CAAAvB,UAAA,CAAWwC,QAAQ0H,aAAa,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAAtDG,QAAW,GAAAI,SAAA,CAAAmB,IAAA,CAAA;AACjB,cAAA,IAAA,CAAKpK,kBAAkBhC,uBAAwB,CAAAiC,aAAA,CAAA;cAC1C,IAAA,CAAA4G,MAAA,CAAOwD,IAAK,CAAA,sCAAA,EAAwCxB,QAAQ,CAAA,CAAA;AACjE,cAAA,CAAAF,qBAAA,GAAAC,CAAAA,gBAAA,GAAA,IAAA,CAAKzJ,WAAU0C,WAAc,MAAA8G,IAAAA,IAAAA,qBAAA,eAA7BA,qBAAA,CAAApF,IAAA,CAAAqF,gBAA6B,CAAA,CAAA;AACxB,cAAA,IAAA,CAAAT,IAAA,CAAK,aAAaU,QAAQ,CAAA,CAAA;AAAAI,cAAAA,SAAA,CAAAlJ,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,YAAA,KAAA,CAAA;AAAAkJ,cAAAA,SAAA,CAAAnJ,IAAA,GAAA,CAAA,CAAA;AAAAkJ,cAAAA,GAAA,GAAAC,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAE/B,cAAA,IAAA,CAAKjJ,kBAAkBhC,uBAAwB,CAAAsM,KAAA,CAAA;cAC1C,IAAA,CAAAzD,MAAA,CAAO9E,KAAM,CAAA,iCAAA,EAAAiH,GAAwC,CAAA,CAAA;AACrD,cAAA,CAAAF,sBAAA,GAAAC,CAAAA,gBAAA,OAAA,CAAA5J,SAAA,EAAU2C,0DAAVgH,sBAAA,CAAAvF,IAAA,CAAAwF,gBAAA,EAAAC,GAAkC,CAAA,CAAA;AAClC,cAAA,IAAA,CAAAb,IAAA,CAAK,YAAc,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAc,SAAA,CAAA/H,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAuH,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAE5B,CAAA,CAAA,CAAA;MAAA,SAhCcV;;;aAAAA;;;EA5WqBwC,kBAAa;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/index.ts"],"sourcesContent":["/**\n * OpenClaw 协议适配器\n *\n * 功能:\n * 1. 管理 WebSocket 连接生命周期\n * 2. 处理 OpenClaw 协议的握手和认证\n * 3. 将 OpenClaw 事件转换为 ChatEngine 统一的消息格式\n * 4. 提供与 AGUIAdapter 相似的接口,便于 ChatEngine 统一调度\n */\nimport EventEmitter from '../../utils/eventEmitter';\nimport { LoggerManager } from '../../utils/logger';\nimport { WebSocketClient, type WebSocketClientConfig, WebSocketConnectionState } from '../../server/websocket-client';\nimport type { AIMessageContent, ChatRequestParams, SSEChunkData } from '../../type';\nimport { OpenClawEventMapper, type EventMapResult } from './event-mapper';\nimport { OpenClawRPCHandler, RPCError } from './rpc-handler';\nimport type {\n OpenClawConfig,\n OpenClawFrame,\n OpenClawEventFrame,\n OpenClawResponseFrame,\n ConnectParams,\n ConnectChallengePayload,\n} from './types';\nimport { mergeOpenClawConfig, DEFAULT_OPENCLAW_CONFIG } from './types/config';\nimport { OpenClawEventType, OpenClawConnectionState } from './types/events';\nimport {\n generateUUID,\n parseFrame,\n getPlatform,\n getUserAgent,\n getLocale,\n formatWebSocketUrl,\n} from './utils';\n\n// 重新导出类型\nexport * from './types';\nexport { OpenClawEventMapper, type EventMapResult } from './event-mapper';\nexport { OpenClawRPCHandler, RPCError } from './rpc-handler';\n\n/**\n * OpenClaw 适配器回调接口\n */\nexport interface OpenClawAdapterCallbacks {\n /** 连接成功 */\n onConnected?: () => void;\n /** 连接断开 */\n onDisconnected?: (reason?: string) => void;\n /** 消息开始 */\n onStart?: () => void;\n /** 消息完成 */\n onComplete?: (isAborted: boolean, params?: ChatRequestParams) => void;\n /** 错误发生 */\n onError?: (error: Error) => void;\n /** 消息内容更新 */\n onMessage?: (content: AIMessageContent | AIMessageContent[]) => void;\n}\n\n/**\n * OpenClaw 适配器配置\n */\nexport interface OpenClawAdapterConfig extends OpenClawConfig {\n /** WebSocket 端点 */\n endpoint: string;\n /** 请求超时(毫秒) */\n timeout?: number;\n /** 最大重试次数 */\n maxRetries?: number;\n /** 重试间隔(毫秒) */\n retryInterval?: number;\n}\n\n/**\n * OpenClaw 协议适配器\n */\nexport class OpenClawAdapter extends EventEmitter {\n private wsClient: WebSocketClient | null = null;\n\n private rpcHandler: OpenClawRPCHandler;\n\n private eventMapper: OpenClawEventMapper;\n\n private config: Required<OpenClawConfig>;\n\n private adapterConfig: OpenClawAdapterConfig;\n\n private connectionState = OpenClawConnectionState.DISCONNECTED;\n\n private instanceId: string;\n\n private logger = LoggerManager.getLogger();\n\n private callbacks: OpenClawAdapterCallbacks = {};\n\n private isStreaming = false;\n\n private currentRequestParams: ChatRequestParams | null = null;\n\n constructor(config: OpenClawAdapterConfig) {\n super();\n this.adapterConfig = config;\n this.config = mergeOpenClawConfig(config);\n this.instanceId = generateUUID();\n this.rpcHandler = new OpenClawRPCHandler({ timeout: config.timeout });\n this.eventMapper = new OpenClawEventMapper();\n }\n\n /**\n * 设置回调\n */\n setCallbacks(callbacks: OpenClawAdapterCallbacks): void {\n this.callbacks = callbacks;\n }\n\n /**\n * 连接到 OpenClaw Gateway\n * 等待 WebSocket 连接建立并完成认证握手后才返回\n */\n async connect(): Promise<void> {\n if (this.connectionState === OpenClawConnectionState.AUTHENTICATED) {\n return;\n }\n\n this.connectionState = OpenClawConnectionState.CONNECTING;\n\n const url = formatWebSocketUrl(this.adapterConfig.endpoint);\n this.wsClient = new WebSocketClient(url);\n\n // 设置 RPC 发送函数\n this.rpcHandler.setSendFunction((frame) => {\n this.wsClient?.send(frame);\n });\n\n // 绑定事件处理\n this.setupEventHandlers();\n\n // 连接 WebSocket\n const wsConfig: WebSocketClientConfig = {\n timeout: this.adapterConfig.timeout,\n maxRetries: this.adapterConfig.maxRetries,\n retryInterval: this.adapterConfig.retryInterval,\n heartbeatInterval: this.config.heartbeatInterval,\n };\n\n await this.wsClient.connect(wsConfig);\n\n // 等待认证完成(connect.challenge 握手)\n await this.waitForAuthentication();\n }\n\n /**\n * 等待认证完成\n * WebSocket 连接建立后,服务器会发送 connect.challenge 事件,\n * 适配器会自动回复 connect 请求完成握手。\n * 此方法等待整个握手流程完成后再返回。\n */\n private waitForAuthentication(): Promise<void> {\n // 如果已经认证,直接返回\n if (this.connectionState === OpenClawConnectionState.AUTHENTICATED) {\n return Promise.resolve();\n }\n\n const timeout = this.adapterConfig.timeout || 30000;\n\n return new Promise<void>((resolve, reject) => {\n let timer: ReturnType<typeof setTimeout> | null = null;\n\n const cleanup = () => {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n this.off('connected', onConnected);\n this.off('error', onError);\n };\n\n const onConnected = () => {\n cleanup();\n resolve();\n };\n\n const onError = (error: Error) => {\n cleanup();\n reject(error);\n };\n\n this.once('connected', onConnected);\n this.once('error', onError);\n\n // 超时处理\n timer = setTimeout(() => {\n cleanup();\n reject(new Error(`OpenClaw authentication timeout after ${timeout}ms`));\n }, timeout);\n });\n }\n\n /**\n * 发送聊天消息\n */\n async sendMessage(params: ChatRequestParams, requestParams?: Record<string, unknown>): Promise<void> {\n if (this.connectionState !== OpenClawConnectionState.AUTHENTICATED) {\n throw new Error('Not authenticated. Please connect first.');\n }\n\n this.currentRequestParams = params;\n this.isStreaming = true;\n this.eventMapper.reset();\n\n // 合并用户自定义参数\n const chatParams = {\n message: params.prompt || '',\n idempotencyKey: generateUUID(),\n ...requestParams,\n };\n\n try {\n this.callbacks.onStart?.();\n await this.rpcHandler.chatSend(chatParams);\n // 响应会通过事件流返回,这里只是发送请求\n } catch (error) {\n this.isStreaming = false;\n this.callbacks.onError?.(error as Error);\n throw error;\n }\n }\n\n /**\n * 处理 SSE 数据块(兼容 ChatEngine 接口)\n */\n handleEvent(chunk: SSEChunkData): AIMessageContent | AIMessageContent[] | null {\n // 将 SSE 格式转换为 OpenClaw 帧格式\n const frame = parseFrame(chunk.data);\n if (!frame || frame.type !== 'event') {\n return null;\n }\n\n const result = this.eventMapper.mapEvent(frame as OpenClawEventFrame);\n\n if (result.isFinal) {\n this.isStreaming = false;\n this.callbacks.onComplete?.(false, this.currentRequestParams || undefined);\n }\n\n if (result.hasError && result.errorMessage) {\n this.callbacks.onError?.(new Error(result.errorMessage));\n }\n\n return result.content;\n }\n\n /**\n * 调用 Action(供 Toolcall/Activity 组件的 respond/action 使用)\n *\n * 通过 OpenClaw 的 node.invoke RPC 方法上行,利用 WebSocket 双向通道\n * 将用户在交互式组件中的操作(respond/confirm/update 等)发送回 Agent 端。\n *\n * @param params.nodeId - toolCallId 或 activityType,标识目标节点\n * @param params.action - 操作类型,如 \"respond\" | \"update\" | \"confirm\"\n * @param params.payload - 用户操作数据\n * @returns Agent 端返回的响应数据\n *\n * @example\n * ```tsx\n * // 在 ToolCallRenderer 的 onRespond 中使用\n * <ToolCallRenderer\n * toolCall={toolCall}\n * onRespond={async (tc, response) => {\n * await openclawAdapter.invokeAction({\n * nodeId: tc.toolCallId,\n * action: 'respond',\n * payload: response,\n * });\n * }}\n * />\n * ```\n */\n async invokeAction(params: {\n nodeId: string;\n action: string;\n payload: unknown;\n }): Promise<unknown> {\n if (this.connectionState !== OpenClawConnectionState.AUTHENTICATED) {\n throw new Error('Not authenticated. Please connect first.');\n }\n\n return this.rpcHandler.nodeInvoke({\n ...params,\n runId: this.eventMapper.getCurrentRunId() || undefined,\n });\n }\n\n /**\n * 断开连接\n */\n async disconnect(): Promise<void> {\n this.connectionState = OpenClawConnectionState.CLOSING;\n this.rpcHandler.cancelAll('Disconnecting');\n\n if (this.wsClient) {\n await this.wsClient.close();\n this.wsClient = null;\n }\n\n this.connectionState = OpenClawConnectionState.DISCONNECTED;\n this.callbacks.onDisconnected?.();\n }\n\n /**\n * 中止当前流式传输\n */\n abort(): void {\n if (this.isStreaming) {\n this.isStreaming = false;\n this.callbacks.onComplete?.(true, this.currentRequestParams || undefined);\n }\n }\n\n /**\n * 获取连接状态\n */\n getConnectionState(): OpenClawConnectionState {\n return this.connectionState;\n }\n\n /**\n * 检查是否已认证\n */\n isAuthenticated(): boolean {\n return this.connectionState === OpenClawConnectionState.AUTHENTICATED;\n }\n\n /**\n * 重置适配器状态\n */\n reset(): void {\n this.eventMapper.reset();\n this.rpcHandler.reset();\n this.isStreaming = false;\n this.currentRequestParams = null;\n }\n\n /**\n * 销毁适配器\n */\n async destroy(): Promise<void> {\n await this.disconnect();\n this.rpcHandler.destroy();\n this.removeAllListeners();\n }\n\n /**\n * 设置 WebSocket 事件处理器\n */\n private setupEventHandlers(): void {\n if (!this.wsClient) return;\n\n this.wsClient.on('message', (event: { event: string; data: unknown }) => {\n this.handleWebSocketMessage(event.data);\n });\n\n this.wsClient.on('error', (error: Error) => {\n this.logger.error('OpenClaw WebSocket error:', error);\n this.callbacks.onError?.(error);\n });\n\n this.wsClient.on('complete', (isAborted: boolean) => {\n if (this.isStreaming) {\n this.isStreaming = false;\n this.callbacks.onComplete?.(isAborted, this.currentRequestParams || undefined);\n }\n this.callbacks.onDisconnected?.(isAborted ? 'Aborted' : 'Connection closed');\n });\n\n this.wsClient.on('stateChange', (event: { from: WebSocketConnectionState; to: WebSocketConnectionState }) => {\n this.logger.debug(`WebSocket state: ${event.from} -> ${event.to}`);\n if (event.to === WebSocketConnectionState.CONNECTED) {\n this.connectionState = OpenClawConnectionState.HANDSHAKING;\n }\n });\n }\n\n /**\n * 处理 WebSocket 消息\n */\n private handleWebSocketMessage(data: unknown): void {\n const frame = parseFrame(data as string | object);\n if (!frame) {\n this.logger.warn('Failed to parse OpenClaw frame:', data);\n return;\n }\n\n // 处理响应帧\n if (frame.type === 'res') {\n this.rpcHandler.handleResponse(frame as OpenClawResponseFrame);\n return;\n }\n\n // 处理事件帧\n if (frame.type === 'event') {\n this.handleEventFrame(frame as OpenClawEventFrame);\n }\n }\n\n /**\n * 处理事件帧\n */\n private handleEventFrame(frame: OpenClawEventFrame): void {\n const { event, payload } = frame;\n\n // 处理连接挑战事件\n if (event === OpenClawEventType.CONNECT_CHALLENGE) {\n this.handleConnectChallenge(payload as ConnectChallengePayload);\n return;\n }\n\n // 流式消息事件\n if (this.isStreaming) {\n const result = this.eventMapper.mapEvent(frame);\n\n if (result.content) {\n this.callbacks.onMessage?.(result.content);\n this.emit('message', result.content);\n }\n\n if (result.isFinal) {\n this.isStreaming = false;\n this.callbacks.onComplete?.(false, this.currentRequestParams || undefined);\n }\n\n if (result.hasError && result.errorMessage) {\n this.callbacks.onError?.(new Error(result.errorMessage));\n }\n }\n }\n\n /**\n * 处理连接挑战(握手)\n */\n private async handleConnectChallenge(payload: ConnectChallengePayload): Promise<void> {\n this.logger.debug('Received connect.challenge, sending connect request');\n\n const connectParams: ConnectParams = {\n minProtocol: this.config.protocolVersion.min,\n maxProtocol: this.config.protocolVersion.max,\n client: {\n id: this.config.client.id,\n version: this.config.client.version,\n platform: getPlatform(),\n mode: this.config.client.mode,\n instanceId: this.instanceId,\n },\n role: 'operator',\n scopes: ['operator.admin', 'operator.approvals', 'operator.pairing'],\n caps: [],\n // 传入认证信息(来自 openclaw onboard 的 operator token)\n ...(this.config.auth?.token ? { auth: this.config.auth } : {}),\n userAgent: getUserAgent(),\n locale: getLocale(),\n };\n\n try {\n const response = await this.rpcHandler.connect(connectParams);\n this.connectionState = OpenClawConnectionState.AUTHENTICATED;\n this.logger.info('OpenClaw authenticated successfully:', response);\n this.callbacks.onConnected?.();\n this.emit('connected', response);\n } catch (error) {\n this.connectionState = OpenClawConnectionState.ERROR;\n this.logger.error('OpenClaw authentication failed:', error);\n this.callbacks.onError?.(error as Error);\n this.emit('error', error);\n }\n }\n}\n"],"names":["OpenClawAdapter","config","_this","_classCallCheck","_callSuper","_defineProperty","OpenClawConnectionState","DISCONNECTED","LoggerManager","getLogger","adapterConfig","mergeOpenClawConfig","instanceId","generateUUID","rpcHandler","OpenClawRPCHandler","timeout","eventMapper","OpenClawEventMapper","_inherits","_EventEmitter","_createClass","key","value","setCallbacks","callbacks","_connect","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_this2","url","wsConfig","wrap","_context","prev","next","connectionState","AUTHENTICATED","abrupt","CONNECTING","formatWebSocketUrl","endpoint","wsClient","WebSocketClient","setSendFunction","frame","_this2$wsClient","send","setupEventHandlers","maxRetries","retryInterval","heartbeatInterval","connect","waitForAuthentication","stop","apply","arguments","_this3","Promise","resolve","reject","timer","cleanup","clearTimeout","off","onConnected","onError","error","once","setTimeout","Error","concat","_sendMessage","_callee2","params","requestParams","chatParams","_this$callbacks$onSta","_this$callbacks","_this$callbacks$onErr","_this$callbacks2","_t","_context2","currentRequestParams","isStreaming","reset","_objectSpread","message","prompt","idempotencyKey","onStart","call","chatSend","sendMessage","_x","_x2","handleEvent","chunk","parseFrame","data","type","result","mapEvent","isFinal","_this$callbacks$onCom","_this$callbacks3","onComplete","hasError","errorMessage","_this$callbacks$onErr2","_this$callbacks4","content","_invokeAction","_callee3","_context3","nodeInvoke","runId","getCurrentRunId","invokeAction","_callee4","_this$callbacks$onDis","_this$callbacks5","_context4","CLOSING","cancelAll","close","onDisconnected","disconnect","_disconnect","abort","_this$callbacks$onCom2","_this$callbacks6","getConnectionState","isAuthenticated","_destroy","_callee5","_context5","destroy","removeAllListeners","_this4","on","event","handleWebSocketMessage","_this4$callbacks$onEr","_this4$callbacks","logger","isAborted","_this4$callbacks$onDi","_this4$callbacks3","_this4$callbacks$onCo","_this4$callbacks2","debug","from","to","WebSocketConnectionState","CONNECTED","HANDSHAKING","warn","handleResponse","handleEventFrame","payload","OpenClawEventType","CONNECT_CHALLENGE","handleConnectChallenge","_this$callbacks$onMes","_this$callbacks7","onMessage","emit","_this$callbacks$onCom3","_this$callbacks8","_this$callbacks$onErr3","_this$callbacks9","_handleConnectChallenge","_callee6","_this$config$auth","connectParams","_this$callbacks$onCon","_this$callbacks0","response","_this$callbacks$onErr4","_this$callbacks1","_t2","_context6","minProtocol","protocolVersion","min","maxProtocol","max","client","id","version","platform","getPlatform","mode","role","scopes","caps","auth","token","userAgent","getUserAgent","locale","getLocale","sent","info","ERROR","EventEmitter"],"mappings":"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"}
@@ -48,6 +48,14 @@ export interface OpenClawConfig {
48
48
  * 一般不需要修改,除非服务端有特殊要求
49
49
  */
50
50
  protocolVersion?: OpenClawProtocolVersion;
51
+ /**
52
+ * 认证信息,用于 connect 握手时传入
53
+ * - token: 设备 operator token(来自 openclaw onboard)
54
+ */
55
+ auth?: {
56
+ token?: string;
57
+ [key: string]: unknown;
58
+ };
51
59
  }
52
60
  /**
53
61
  * OpenClaw 配置默认值
@@ -18,14 +18,16 @@ var DEFAULT_OPENCLAW_CONFIG = {
18
18
  protocolVersion: {
19
19
  min: 3,
20
20
  max: 3
21
- }
21
+ },
22
+ auth: {}
22
23
  };
23
24
  function mergeOpenClawConfig(config) {
24
- var _config$heartbeatInte;
25
+ var _config$heartbeatInte, _config$auth;
25
26
  return {
26
27
  heartbeatInterval: (_config$heartbeatInte = config === null || config === void 0 ? void 0 : config.heartbeatInterval) !== null && _config$heartbeatInte !== void 0 ? _config$heartbeatInte : DEFAULT_OPENCLAW_CONFIG.heartbeatInterval,
27
28
  client: _objectSpread(_objectSpread({}, DEFAULT_OPENCLAW_CONFIG.client), config === null || config === void 0 ? void 0 : config.client),
28
- protocolVersion: _objectSpread(_objectSpread({}, DEFAULT_OPENCLAW_CONFIG.protocolVersion), config === null || config === void 0 ? void 0 : config.protocolVersion)
29
+ protocolVersion: _objectSpread(_objectSpread({}, DEFAULT_OPENCLAW_CONFIG.protocolVersion), config === null || config === void 0 ? void 0 : config.protocolVersion),
30
+ auth: (_config$auth = config === null || config === void 0 ? void 0 : config.auth) !== null && _config$auth !== void 0 ? _config$auth : DEFAULT_OPENCLAW_CONFIG.auth
29
31
  };
30
32
  }
31
33
 
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/types/config.ts"],"sourcesContent":["/**\n * OpenClaw 配置类型定义(精简版)\n *\n * 设计原则:\n * - 只保留协议层必需的配置\n * - 业务参数(sessionKey、token、message 等)通过 onRequest 回调传入\n * - 通用网络配置(endpoint、maxRetries、timeout 等)复用外层 ChatNetworkConfig\n */\n\n/**\n * OpenClaw 客户端标识配置\n * 用于 connect 握手时的客户端识别\n */\nexport interface OpenClawClientConfig {\n /** 客户端 ID,默认 'webchat' */\n id?: string;\n /** 客户端版本,默认 '1.0.0' */\n version?: string;\n /** 客户端模式,默认 'webchat' */\n mode?: string;\n}\n\n/**\n * OpenClaw 协议版本配置\n */\nexport interface OpenClawProtocolVersion {\n /** 最小支持的协议版本,默认 3 */\n min?: number;\n /** 最大支持的协议版本,默认 3 */\n max?: number;\n}\n\n/**\n * OpenClaw 专属配置\n * 只包含协议层必需的字段,业务参数通过 onRequest 传入\n */\nexport interface OpenClawConfig {\n /**\n * 心跳间隔(毫秒)\n * - 默认 30000 (30秒)\n * - 设置为 0 表示禁用心跳\n */\n heartbeatInterval?: number;\n\n /**\n * 客户端标识配置\n * 用于 connect 握手时的客户端识别\n */\n client?: OpenClawClientConfig;\n\n /**\n * 协议版本范围\n * 一般不需要修改,除非服务端有特殊要求\n */\n protocolVersion?: OpenClawProtocolVersion;\n}\n\n/**\n * OpenClaw 配置默认值\n */\nexport const DEFAULT_OPENCLAW_CONFIG: Required<OpenClawConfig> = {\n heartbeatInterval: 30000,\n client: {\n id: 'webchat',\n version: '1.0.0',\n mode: 'webchat',\n },\n protocolVersion: {\n min: 3,\n max: 3,\n },\n};\n\n/**\n * 合并 OpenClaw 配置与默认值\n */\nexport function mergeOpenClawConfig(config?: OpenClawConfig): Required<OpenClawConfig> {\n return {\n heartbeatInterval: config?.heartbeatInterval ?? DEFAULT_OPENCLAW_CONFIG.heartbeatInterval,\n client: {\n ...DEFAULT_OPENCLAW_CONFIG.client,\n ...config?.client,\n },\n protocolVersion: {\n ...DEFAULT_OPENCLAW_CONFIG.protocolVersion,\n ...config?.protocolVersion,\n },\n };\n}\n"],"names":["DEFAULT_OPENCLAW_CONFIG","heartbeatInterval","client","id","version","mode","protocolVersion","min","max","mergeOpenClawConfig","config","_config$heartbeatInte","_objectSpread"],"mappings":";;;;;;;;;;AA4DO,IAAMA,uBAAoD,GAAA;AAC/DC,EAAAA,iBAAmB,EAAA,GAAA;AACnBC,EAAAA,MAAQ,EAAA;AACNC,IAAAA,EAAI,EAAA,SAAA;AACJC,IAAAA,OAAS,EAAA,OAAA;AACTC,IAAAA,IAAM,EAAA,SAAA;GACR;AACAC,EAAAA,eAAiB,EAAA;AACfC,IAAAA,GAAK,EAAA,CAAA;AACLC,IAAAA,GAAK,EAAA,CAAA;AACP,GAAA;AACF,EAAA;AAKO,SAASC,oBAAoBC,MAAmD,EAAA;AAAA,EAAA,IAAAC,qBAAA,CAAA;EAC9E,OAAA;AACLV,IAAAA,iBAAA,GAAAU,qBAAA,GAAmBD,MAAQ,KAAA,IAAA,IAARA,MAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAQ,CAAAT,iBAAA,cAAAU,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAqBX,uBAAwB,CAAAC,iBAAA;AACxEC,IAAAA,MAAQ,EAAAU,aAAA,CAAAA,aAAA,CAAA,EAAA,EACHZ,uBAAwB,CAAAE,MAAA,CACxBQ,EAAAA,MAAQ,aAARA,MAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,MAAQ,CAAAR,MAAA,CACb;AACAI,IAAAA,eAAiB,EAAAM,aAAA,CAAAA,aAAA,KACZZ,uBAAwB,CAAAM,eAAA,CAAA,EACxBI,MAAQ,KAARA,IAAAA,IAAAA,MAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAQ,CAAAJ,eAAA,CAAA;GAEf,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"config.js","sources":["../../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/types/config.ts"],"sourcesContent":["/**\n * OpenClaw 配置类型定义(精简版)\n *\n * 设计原则:\n * - 只保留协议层必需的配置\n * - 业务参数(sessionKey、token、message 等)通过 onRequest 回调传入\n * - 通用网络配置(endpoint、maxRetries、timeout 等)复用外层 ChatNetworkConfig\n */\n\n/**\n * OpenClaw 客户端标识配置\n * 用于 connect 握手时的客户端识别\n */\nexport interface OpenClawClientConfig {\n /** 客户端 ID,默认 'webchat' */\n id?: string;\n /** 客户端版本,默认 '1.0.0' */\n version?: string;\n /** 客户端模式,默认 'webchat' */\n mode?: string;\n}\n\n/**\n * OpenClaw 协议版本配置\n */\nexport interface OpenClawProtocolVersion {\n /** 最小支持的协议版本,默认 3 */\n min?: number;\n /** 最大支持的协议版本,默认 3 */\n max?: number;\n}\n\n/**\n * OpenClaw 专属配置\n * 只包含协议层必需的字段,业务参数通过 onRequest 传入\n */\nexport interface OpenClawConfig {\n /**\n * 心跳间隔(毫秒)\n * - 默认 30000 (30秒)\n * - 设置为 0 表示禁用心跳\n */\n heartbeatInterval?: number;\n\n /**\n * 客户端标识配置\n * 用于 connect 握手时的客户端识别\n */\n client?: OpenClawClientConfig;\n\n /**\n * 协议版本范围\n * 一般不需要修改,除非服务端有特殊要求\n */\n protocolVersion?: OpenClawProtocolVersion;\n\n /**\n * 认证信息,用于 connect 握手时传入\n * - token: 设备 operator token(来自 openclaw onboard)\n */\n auth?: {\n token?: string;\n [key: string]: unknown;\n };\n}\n\n/**\n * OpenClaw 配置默认值\n */\nexport const DEFAULT_OPENCLAW_CONFIG: Required<OpenClawConfig> = {\n heartbeatInterval: 30000,\n client: {\n id: 'webchat',\n version: '1.0.0',\n mode: 'webchat',\n },\n protocolVersion: {\n min: 3,\n max: 3,\n },\n auth: {},\n};\n\n/**\n * 合并 OpenClaw 配置与默认值\n */\nexport function mergeOpenClawConfig(config?: OpenClawConfig): Required<OpenClawConfig> {\n return {\n heartbeatInterval: config?.heartbeatInterval ?? DEFAULT_OPENCLAW_CONFIG.heartbeatInterval,\n client: {\n ...DEFAULT_OPENCLAW_CONFIG.client,\n ...config?.client,\n },\n protocolVersion: {\n ...DEFAULT_OPENCLAW_CONFIG.protocolVersion,\n ...config?.protocolVersion,\n },\n auth: config?.auth ?? DEFAULT_OPENCLAW_CONFIG.auth,\n };\n}\n"],"names":["DEFAULT_OPENCLAW_CONFIG","heartbeatInterval","client","id","version","mode","protocolVersion","min","max","auth","mergeOpenClawConfig","config","_config$heartbeatInte","_config$auth","_objectSpread"],"mappings":";;;;;;;;;;AAqEO,IAAMA,uBAAoD,GAAA;AAC/DC,EAAAA,iBAAmB,EAAA,GAAA;AACnBC,EAAAA,MAAQ,EAAA;AACNC,IAAAA,EAAI,EAAA,SAAA;AACJC,IAAAA,OAAS,EAAA,OAAA;AACTC,IAAAA,IAAM,EAAA,SAAA;GACR;AACAC,EAAAA,eAAiB,EAAA;AACfC,IAAAA,GAAK,EAAA,CAAA;AACLC,IAAAA,GAAK,EAAA,CAAA;GACP;AACAC,EAAAA,MAAM,EAAC;AACT,EAAA;AAKO,SAASC,oBAAoBC,MAAmD,EAAA;EAAA,IAAAC,qBAAA,EAAAC,YAAA,CAAA;EAC9E,OAAA;AACLZ,IAAAA,iBAAA,GAAAW,qBAAA,GAAmBD,MAAQ,KAAA,IAAA,IAARA,MAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAQ,CAAAV,iBAAA,cAAAW,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAqBZ,uBAAwB,CAAAC,iBAAA;AACxEC,IAAAA,MAAQ,EAAAY,aAAA,CAAAA,aAAA,CAAA,EAAA,EACHd,uBAAwB,CAAAE,MAAA,CACxBS,EAAAA,MAAQ,aAARA,MAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,MAAQ,CAAAT,MAAA,CACb;AACAI,IAAAA,eAAiB,EAAAQ,aAAA,CAAAA,aAAA,CAAA,EAAA,EACZd,uBAAwB,CAAAM,eAAA,CACxBK,EAAAA,MAAQ,aAARA,MAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,MAAQ,CAAAL,eAAA,CACb;AACAG,IAAAA,IAAA,GAAAI,YAAA,GAAMF,MAAQ,KAAA,IAAA,IAARA,MAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAQ,CAAAF,IAAA,cAAAI,YAAA,KAAA,KAAA,CAAA,GAAAA,YAAA,GAAQb,uBAAwB,CAAAS,IAAAA;GAChD,CAAA;AACF;;;;"}
@@ -117,7 +117,6 @@ var ChatEngine = /*#__PURE__*/function () {
117
117
  if (this.config.protocol === "agui") {
118
118
  this.aguiAdapter = new AGUIAdapter();
119
119
  }
120
- if (this.config.protocol === "openclaw") {}
121
120
  this.eventBus.emit(ChatEngineEventType.ENGINE_INIT, {
122
121
  timestamp: Date.now()
123
122
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../pro-components/chat/chat-engine/core/index.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable class-methods-use-this */\nimport { AGUIAdapter } from './adapters/agui';\nimport { MessageStore } from './store/message';\nimport type { ChatEventBusOptions, IChatEventBus } from './event-bus';\nimport { ChatEngineEventType, ChatEventBus } from './event-bus';\nimport MessageProcessor from './processor';\nimport { LLMService } from './server';\nimport type {\n AIContentChunkUpdate,\n AIMessageContent,\n ChatMessagesData,\n ChatMessageSetterMode,\n ChatRequestParams,\n ChatServiceConfig,\n ChatServiceConfigSetter,\n ChatStatus,\n IChatEngine,\n SSEChunkData,\n SystemMessage,\n ToolCall,\n} from './type';\nimport { isAIMessage } from './utils';\n\nexport default class ChatEngine implements IChatEngine {\n public messageStore: MessageStore;\n\n /**\n * 事件总线实例\n * @description 用于发布/订阅引擎事件,支持无 UI 场景下的事件分发\n */\n public readonly eventBus: IChatEventBus;\n\n private messageProcessor: MessageProcessor;\n\n private llmService!: LLMService;\n\n private config!: ChatServiceConfig;\n\n private lastRequestParams: ChatRequestParams | undefined;\n\n private stopReceive = false;\n\n private aguiAdapter: AGUIAdapter | null = null;\n\n constructor(eventBusOptions?: ChatEventBusOptions) {\n this.messageProcessor = new MessageProcessor();\n this.messageStore = new MessageStore();\n this.eventBus = new ChatEventBus(eventBusOptions);\n }\n\n /**\n * 获取当前所有消息\n * @returns 消息数组\n * @description 返回消息存储中的所有消息\n */\n get messages(): ChatMessagesData[] {\n return this.messageStore.messages;\n }\n\n /**\n * 获取当前聊天状态\n * @returns 聊天状态:'idle'、'pending'、'streaming'、'complete'、'stop'或'error'\n * @description 返回最后一条消息的状态,如果没有消息则返回'idle'\n */\n get status(): ChatStatus {\n return this.messages.at(-1)?.status || 'idle';\n }\n\n /**\n * 销毁聊天引擎实例\n * @description 中止请求,清理消息存储和适配器,释放资源\n */\n destroy(): void {\n // 发布销毁事件\n this.eventBus.emit(ChatEngineEventType.ENGINE_DESTROY, {\n timestamp: Date.now(),\n });\n\n // 中止当前请求\n this.abortChat();\n\n // 清理消息存储\n this.messageStore.clearHistory();\n this.messageStore.destroy();\n\n // 清理适配器\n this.aguiAdapter = null;\n\n // 销毁事件总线\n this.eventBus.destroy();\n }\n\n /**\n * 初始化聊天引擎\n * @param configSetter 聊天服务配置或配置生成函数\n * @param initialMessages 初始消息列表,用于恢复历史对话\n * @description 设置初始消息、配置服务参数,并根据协议类型初始化适配器\n */\n public init(configSetter: ChatServiceConfigSetter, initialMessages?: ChatMessagesData[]) {\n this.messageStore.initialize(this.convertMessages(initialMessages));\n this.config = typeof configSetter === 'function' ? configSetter() : configSetter || {};\n this.llmService = new LLMService();\n\n // 初始化AGUI适配器\n if (this.config.protocol === 'agui') {\n this.aguiAdapter = new AGUIAdapter();\n }\n\n // 初始化OpenClaw适配器(由 LLMService 内部管理连接生命周期)\n if (this.config.protocol === 'openclaw') {\n // OpenClaw 适配器通过 LLMService 自动创建和管理\n // 这里仅标记协议类型,无需提前创建适配器实例\n }\n\n // 发布初始化事件\n this.eventBus.emit(ChatEngineEventType.ENGINE_INIT, {\n timestamp: Date.now(),\n });\n }\n\n /**\n * 发送用户消息并获取AI回复\n * @param requestParams 请求参数,包含用户输入的文本和附件\n * @param sendRequest 是否立即发送\n * @description 创建用户消息和AI消息,并发送请求获取AI回复\n */\n public async sendUserMessage(requestParams: ChatRequestParams, sendRequest = true) {\n const { prompt, attachments, ...customParams } = requestParams;\n\n // 检查条件:prompt和attachments至少传入一个,且如果设置了就不能为空\n const hasValidPrompt = prompt && prompt.trim() !== '';\n const hasValidAttachments = Array.isArray(attachments) && attachments.length > 0;\n\n // 如果两者都没有有效值,则直接返回\n if (!hasValidPrompt && !hasValidAttachments) {\n console.warn('[ChatEngine] sendUserMessage: 必须提供有效的prompt或attachments');\n return;\n }\n\n const userMessage = this.messageProcessor.createUserMessage(prompt, attachments);\n const aiMessage = this.messageProcessor.createAssistantMessage();\n this.messageStore.createMultiMessages([userMessage, aiMessage]);\n\n // 发布消息创建事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {\n message: userMessage,\n messages: this.messages,\n });\n\n if (sendRequest) {\n const params = {\n ...requestParams,\n messageID: aiMessage.id,\n ...customParams, // 透传用户自定义参数\n };\n this.sendRequest(params);\n }\n }\n\n /**\n * 发送系统消息\n * @param msg 系统消息文本内容\n * @description 创建并存储一条系统消息,通常用于设置上下文或控制对话流程\n */\n public async sendSystemMessage(msg: string) {\n const systemMessage = {\n role: 'system',\n content: [\n {\n type: 'text',\n data: msg,\n },\n ],\n } as SystemMessage;\n this.messageStore.createMessage(systemMessage);\n\n // 发布消息创建事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {\n message: systemMessage,\n messages: this.messages,\n });\n }\n\n /**\n * 手动发送AI消息\n * @param options 包含请求参数params、发送消息内容content和是否发送请求的标志sendRequest\n * @description 创建并存储一条AI消息,可选择是否同时发送请求\n */\n public async sendAIMessage(\n options: { params?: ChatRequestParams; content?: AIMessageContent[]; sendRequest?: boolean } = {},\n ) {\n const { params = {}, content, sendRequest = true } = options;\n const newAIMessage = this.messageProcessor.createAssistantMessage({\n content,\n status: sendRequest ? 'pending' : 'complete',\n });\n this.messageStore.createMessage(newAIMessage);\n\n // 发布消息创建事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {\n message: newAIMessage,\n messages: this.messages,\n });\n\n if (sendRequest) {\n params.messageID = newAIMessage.id;\n await this.sendRequest(params);\n }\n }\n\n /**\n * 中止当前进行中的聊天请求\n * @description 停止接收流式响应,关闭连接,并调用配置的onAbort回调\n */\n public async abortChat() {\n this.stopReceive = true;\n\n if (this.config?.onAbort) {\n await this.config.onAbort();\n }\n\n try {\n this.llmService.closeConnect();\n if (!this.config.stream) {\n // 只有在批量模式下才删除最后一条AI消息\n if (this.messageStore.lastAIMessage?.id) {\n const messageId = this.messageStore.lastAIMessage.id;\n this.messageStore.removeMessage(messageId);\n\n // 发布消息删除事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_DELETE, {\n messageId,\n messages: this.messages,\n });\n }\n }\n } catch (error) {\n console.warn('Error during service cleanup:', error);\n }\n }\n\n /**\n * 注册内容块合并策略\n * @param type 内容类型,如'text'、'markdown'等\n * @param handler 合并处理函数,接收新块和现有块,返回合并后的内容块\n * @description 用于自定义不同类型内容的增量更新逻辑\n */\n public registerMergeStrategy<T extends AIMessageContent>(\n type: T['type'], // 使用类型中定义的type字段作为参数类型\n handler: (chunk: T, existing?: T) => T,\n ) {\n this.messageProcessor.registerHandler(type, handler);\n }\n\n /**\n * 设置消息列表\n * @param messages 要设置的消息数组\n * @param mode 设置模式:'replace'(替换)、'prepend'(前置)、'append'(追加),默认为'replace'\n * @description 用于批量更新消息,如加载历史消息或重置对话\n */\n public setMessages(messages: ChatMessagesData[], mode: ChatMessageSetterMode = 'replace') {\n this.messageStore.setMessages(messages, mode);\n }\n\n /**\n * 清空所有消息\n * @description 清除消息存储中的所有历史记录\n */\n public clearMessages(): void {\n this.messageStore.clearHistory();\n\n // 发布消息清空事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CLEAR, {\n timestamp: Date.now(),\n });\n }\n\n /**\n * 重新生成AI回复\n * @param keepVersion 是否保留历史版本,默认为false\n * @description\n * - 当keepVersion=false时:删除最后一条AI消息,创建新消息并重新请求\n * - 当keepVersion=true时:保留旧消息,创建分支消息并重新请求\n */\n public async regenerateAIMessage(keepVersion = false) {\n const { lastAIMessage } = this.messageStore;\n if (!lastAIMessage) return;\n\n if (!keepVersion) {\n // 删除最后一条AI消息\n this.messageStore.removeMessage(lastAIMessage.id);\n } else {\n // todo: 保留历史版本,创建新分支\n this.messageStore.createMessageBranch(lastAIMessage.id);\n }\n\n // 创建新的AI消息\n const newAIMessage = this.messageProcessor.createAssistantMessage();\n this.messageStore.createMessage(newAIMessage);\n\n // 重新发起请求\n const params = {\n ...(this.lastRequestParams || {}),\n messageID: newAIMessage.id,\n prompt: this.lastRequestParams?.prompt ?? '',\n };\n\n await this.sendRequest(params);\n }\n\n /**\n * 发送请求获取AI回复\n * @param params 请求参数\n * @description 根据配置选择流式或批量请求模式,处理响应并更新消息状态\n */\n public async sendRequest(params: ChatRequestParams) {\n const { messageID: id } = params;\n\n // 发布请求开始事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_START, {\n params,\n messageId: id,\n });\n\n try {\n if (this.config.stream) {\n // 处理sse流式响应模式\n this.stopReceive = false;\n await this.handleStreamRequest(params);\n } else {\n // 处理批量响应模式\n await this.handleBatchRequest(params);\n }\n this.lastRequestParams = params;\n } catch (error) {\n this.setMessageStatus(id!, 'error');\n\n // 发布请求错误事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {\n messageId: id!,\n error,\n params,\n });\n\n throw error;\n }\n }\n\n /**\n * 根据名称获取工具调用\n * @param name 工具调用名称\n * @returns 匹配的工具调用对象,如果未找到则返回undefined\n * @description 用于获取特定名称的工具调用信息,仅在AGUI协议下可用\n */\n public getToolcallByName(name: string): ToolCall | undefined {\n return this.aguiAdapter?.getToolcallByName(name);\n }\n\n private async handleBatchRequest(params: ChatRequestParams) {\n const id = params.messageID;\n if (!id) return;\n this.setMessageStatus(id, 'pending');\n const result = await this.llmService.handleBatchRequest(params, this.config);\n if (result) {\n this.processMessageResult(id, result);\n this.setMessageStatus(id, 'complete');\n\n // 发布请求完成事件\n const message = this.messageStore.getMessageByID(id);\n if (message) {\n this.eventBus.emit(ChatEngineEventType.REQUEST_COMPLETE, {\n messageId: id,\n params,\n message,\n });\n }\n } else {\n this.setMessageStatus(id, 'error');\n\n // 发布请求错误事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {\n messageId: id,\n error: new Error('Batch request returned empty result'),\n params,\n });\n }\n }\n\n private handleError(id: string, error: unknown) {\n this.setMessageStatus(id, 'error');\n this.config.onError?.(error as Error);\n\n // 发布请求错误事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {\n messageId: id,\n error,\n });\n }\n\n private handleComplete(id: string, isAborted: boolean, params: ChatRequestParams, chunk?: unknown) {\n // 先调用用户自定义的 onComplete 回调,让业务层决定如何处理\n const customResult = this.config.onComplete?.(isAborted, params, chunk);\n // 如果用户返回了自定义内容,处理这些内容\n if (Array.isArray(customResult) || (customResult && 'status' in customResult)) {\n this.processMessageResult(id, customResult);\n } else {\n // 所有消息内容块检查,只要有一个失败,消息的status就是失败\n const allContentFailed = this.messageStore.messages.find((content) => content.status === 'error');\n // eslint-disable-next-line no-nested-ternary\n this.setMessageStatus(id, isAborted ? 'stop' : allContentFailed ? 'error' : 'complete');\n }\n\n // 发布请求完成/中止事件\n const message = this.messageStore.getMessageByID(id);\n if (message) {\n if (isAborted) {\n this.eventBus.emit(ChatEngineEventType.REQUEST_ABORT, {\n messageId: id,\n params,\n });\n } else {\n this.eventBus.emit(ChatEngineEventType.REQUEST_COMPLETE, {\n messageId: id,\n params,\n message,\n });\n }\n }\n }\n\n /**\n * 处理流式请求\n * 根据协议类型选择不同的处理策略\n * SSE 原始数据 → isValidChunk验证 → onMessage解析 → processMessageResult\n */\n private async handleStreamRequest(params: ChatRequestParams) {\n const id = params.messageID;\n const isAGUI = this.config.protocol === 'agui';\n const isOpenClaw = this.config.protocol === 'openclaw';\n\n if (id) {\n this.setMessageStatus(id, 'streaming');\n }\n\n // 根据协议类型选择处理策略\n if (isAGUI && this.aguiAdapter) {\n await this.handleAGUIStreamRequest(params, id);\n } else if (isOpenClaw) {\n await this.handleOpenClawStreamRequest(params, id);\n } else {\n await this.handleDefaultStreamRequest(params, id);\n }\n }\n\n /**\n * 处理AGUI协议的流式请求\n */\n private async handleAGUIStreamRequest(params: ChatRequestParams, messageId?: string) {\n await this.llmService.handleStreamRequest(params, {\n ...this.config,\n onMessage: (chunk: SSEChunkData) => {\n if (this.stopReceive || !messageId) return null;\n\n let result: AIMessageContent | AIMessageContent[] | null = null;\n\n // SSE数据 → AGUIEventMapper.mapEvent → 用户自定义onMessage(解析后数据 + 原始chunk)\n // 首先使用AGUI适配器进行通用协议解析\n if (this.aguiAdapter) {\n result = this.aguiAdapter.handleAGUIEvent(chunk, {\n onRunStart: (event) => {\n // 重置适配器状态,确保新一轮对话从干净状态开始\n this.aguiAdapter?.reset();\n this.config.onStart?.(JSON.stringify(event));\n // 发布 AGUI 运行开始事件\n this.eventBus.emit(ChatEngineEventType.AGUI_RUN_START, {\n runId: event.runId || '',\n threadId: event.threadId,\n timestamp: Date.now(),\n });\n },\n onRunComplete: (isAborted, requestParams, event) => {\n this.handleComplete(messageId, isAborted, requestParams, event);\n // 发布 AGUI 运行完成事件\n if (!isAborted) {\n this.eventBus.emit(ChatEngineEventType.AGUI_RUN_COMPLETE, {\n runId: event?.runId || '',\n threadId: event?.threadId,\n timestamp: Date.now(),\n });\n }\n },\n onRunError: (error) => {\n this.handleError(messageId, error);\n // 发布 AGUI 运行错误事件\n this.eventBus.emit(ChatEngineEventType.AGUI_RUN_ERROR, {\n error,\n });\n },\n });\n }\n\n // 然后调用用户自定义的onMessage,传入解析后的结果和原始数据\n if (this.config.onMessage) {\n const userResult = this.config.onMessage(chunk, this.messageStore.getMessageByID(messageId), result);\n // 如果用户返回了自定义结果,使用用户的结果\n if (userResult) {\n result = userResult;\n }\n }\n\n // 发布流数据事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {\n messageId,\n chunk,\n content: result,\n });\n\n // 处理消息结果\n this.processMessageResult(messageId, result);\n return result;\n },\n onError: (error) => {\n if (messageId) this.handleError(messageId, error);\n },\n onComplete: (isAborted) => {\n // AGUI的完成事件由AGUIAdapter内部处理,这里只处理中断情况\n if (isAborted && messageId) {\n this.handleComplete(messageId, isAborted, params);\n }\n },\n });\n }\n\n /**\n * 处理默认协议的流式请求\n */\n private async handleDefaultStreamRequest(params: ChatRequestParams, messageId?: string) {\n await this.llmService.handleStreamRequest(params, {\n ...this.config,\n onStart: (chunk) => {\n this.config.onStart?.(chunk);\n },\n onMessage: (chunk: SSEChunkData) => {\n if (this.stopReceive || !messageId) return null;\n\n let result = null;\n\n // 使用默认的消息处理\n if (this.config.onMessage) {\n result = this.config.onMessage(chunk, this.messageStore.getMessageByID(messageId));\n }\n\n // 发布流数据事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {\n messageId,\n chunk,\n content: result,\n });\n\n // 处理消息结果\n this.processMessageResult(messageId, result);\n return result;\n },\n onError: (error) => {\n if (messageId) this.handleError(messageId, error);\n },\n onComplete: (isAborted) => {\n if (messageId) {\n this.handleComplete(messageId, isAborted, params);\n }\n },\n });\n }\n\n /**\n * 处理 OpenClaw 协议的流式请求\n *\n * OpenClaw 使用 WebSocket 连接,消息流由 LLMService 内部的 OpenClawAdapter 处理。\n * Adapter 将 OpenClaw 事件转换为 AIMessageContent 后,通过 onMessage 回调传递给 ChatEngine。\n */\n private async handleOpenClawStreamRequest(params: ChatRequestParams, messageId?: string) {\n await this.llmService.handleStreamRequest(params, {\n ...this.config,\n onStart: (chunk) => {\n this.config.onStart?.(chunk);\n },\n onMessage: (chunk: SSEChunkData) => {\n if (this.stopReceive || !messageId) return null;\n\n // OpenClaw 的 chunk.data 已经是 AIMessageContent 格式(由 OpenClawAdapter 转换)\n let result: AIMessageContent | AIMessageContent[] | null = chunk.data;\n\n // 允许用户通过 onMessage 进行自定义处理\n if (this.config.onMessage) {\n const userResult = this.config.onMessage(chunk, this.messageStore.getMessageByID(messageId), result);\n if (userResult) {\n result = userResult;\n }\n }\n\n // 发布流数据事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {\n messageId,\n chunk,\n content: result,\n });\n\n // 处理消息结果\n this.processMessageResult(messageId, result);\n return result;\n },\n onError: (error) => {\n if (messageId) this.handleError(messageId, error);\n },\n onComplete: (isAborted) => {\n if (messageId) {\n this.handleComplete(messageId, isAborted, params);\n }\n },\n });\n }\n\n /**\n * 统一处理消息结果\n * 支持单个内容块、多个内容块和增量更新\n */\n private processMessageResult(messageId: string, result: AIMessageContent | AIMessageContent[] | null) {\n if (!result) return;\n\n // 根据原始类型选择更新方式\n Array.isArray(result)\n ? this.messageStore.updateMultipleContents(messageId, result)\n : this.processContentUpdate(messageId, result);\n\n // 发布消息更新事件\n const message = this.messageStore.getMessageByID(messageId);\n if (message) {\n this.eventBus.emit(ChatEngineEventType.MESSAGE_UPDATE, {\n messageId,\n content: result,\n message,\n });\n\n // AG-UI 协议:发布细粒度事件\n if (this.aguiAdapter) {\n this.emitAGUIDetailEvents(messageId, result);\n }\n }\n }\n\n /**\n * 发布 AG-UI 细粒度事件\n * 根据内容类型分发到对应的事件通道\n * todo: 这里的类型 any问题\n */\n private emitAGUIDetailEvents(messageId: string, result: AIMessageContent | AIMessageContent[]) {\n const contents = Array.isArray(result) ? result : [result];\n for (const content of contents) {\n // Activity 事件\n if ((content as any).data.activityType) {\n this.eventBus.emit(ChatEngineEventType.AGUI_ACTIVITY, {\n activityType: (content as any).data.activityType,\n messageId,\n content: (content as any)?.data?.content,\n });\n }\n\n // ToolCall 事件\n if ((content as any)?.data?.eventType?.startsWith('TOOL_CALL')) {\n this.eventBus.emit(ChatEngineEventType.AGUI_TOOLCALL, {\n toolCall: (content as any).data,\n eventType: (content as any).data.eventType,\n });\n }\n }\n }\n\n private convertMessages(messages?: ChatMessagesData[]) {\n if (!messages) return { messageIds: [], messages: [] };\n\n return {\n messageIds: messages.map((msg) => msg.id),\n messages,\n };\n }\n\n private setMessageStatus(messageId: string, status: ChatMessagesData['status']) {\n const previousStatus = this.messageStore.getMessageByID(messageId)?.status;\n this.messageStore.setMessageStatus(messageId, status);\n\n // 发布消息状态变化事件\n if (status) {\n this.eventBus.emit(ChatEngineEventType.MESSAGE_STATUS_CHANGE, {\n messageId,\n status,\n previousStatus,\n });\n }\n }\n\n // 处理内容更新逻辑\n private processContentUpdate(messageId: string, rawChunk: AIContentChunkUpdate) {\n const message = this.messageStore.messages.find((m) => m.id === messageId);\n if (!message || !isAIMessage(message) || !message.content) return;\n\n let targetIndex: number;\n // 作为新的内容块追加\n if ((rawChunk as any)?.strategy === 'append') {\n targetIndex = -1;\n } else {\n // merge 策略:按 type 查找最后一个匹配的类型\n // 通过 type (如 toolcall-${toolCallName}) 来定位要更新的内容块\n targetIndex = message.content.findIndex((content: AIMessageContent) => content.type === rawChunk.type);\n if (targetIndex !== -1) {\n // 找到最后一个匹配的类型(从后往前查找)\n for (let i = message.content.length - 1; i >= 0; i--) {\n if (message.content[i].type === rawChunk.type) {\n targetIndex = i;\n break;\n }\n }\n }\n }\n const processed = this.messageProcessor.processContentUpdate(\n targetIndex !== -1 ? message.content[targetIndex] : undefined,\n rawChunk,\n );\n\n this.messageStore.appendContent(messageId, processed, targetIndex);\n }\n}\n\nexport * from './utils';\nexport * from './adapters';\nexport * from './event-bus';\nexport * from './adapters';\nexport type * from './type';\n"],"names":["ChatEngine","eventBusOptions","_classCallCheck","_defineProperty","messageProcessor","MessageProcessor","messageStore","MessageStore","eventBus","ChatEventBus","_createClass","key","get","messages","_this$messages$at","at","status","value","destroy","emit","ChatEngineEventType","ENGINE_DESTROY","timestamp","Date","now","abortChat","clearHistory","aguiAdapter","init","configSetter","initialMessages","initialize","convertMessages","config","llmService","LLMService","protocol","AGUIAdapter","ENGINE_INIT","_sendUserMessage","_asyncToGenerator","_regeneratorRuntime","mark","_callee","requestParams","sendRequest","prompt","attachments","customParams","hasValidPrompt","hasValidAttachments","userMessage","aiMessage","params","_args","arguments","wrap","_context","prev","next","length","undefined","_objectWithoutProperties","_excluded","trim","Array","isArray","console","warn","abrupt","createUserMessage","createAssistantMessage","createMultiMessages","MESSAGE_CREATE","message","_objectSpread","messageID","id","stop","sendUserMessage","_x","apply","_sendSystemMessage","_callee2","msg","systemMessage","_context2","role","content","type","data","createMessage","sendSystemMessage","_callee3","options","_options$params","_options$sendRequest","newAIMessage","_args3","_context3","sendAIMessage","_sendAIMessage","_abortChat","_callee4","_this$config","_this$messageStore$la","messageId","_context4","stopReceive","onAbort","closeConnect","stream","lastAIMessage","removeMessage","MESSAGE_DELETE","error","registerMergeStrategy","handler","registerHandler","setMessages","mode","clearMessages","MESSAGE_CLEAR","_regenerateAIMessage","_callee5","_this$lastRequestPara","_this$lastRequestPara2","keepVersion","_args5","_context5","createMessageBranch","lastRequestParams","regenerateAIMessage","_sendRequest","_callee6","_t","_context6","REQUEST_START","handleStreamRequest","handleBatchRequest","setMessageStatus","REQUEST_ERROR","getToolcallByName","name","_this$aguiAdapter","_handleBatchRequest","_callee7","result","_context7","processMessageResult","getMessageByID","REQUEST_COMPLETE","Error","handleError","_this$config$onError","_this$config2","onError","call","handleComplete","isAborted","chunk","_this$config$onComple","_this$config3","customResult","onComplete","allContentFailed","find","REQUEST_ABORT","_handleStreamRequest","_callee8","isAGUI","isOpenClaw","_context8","handleAGUIStreamRequest","handleOpenClawStreamRequest","handleDefaultStreamRequest","_callee9","_this","_context9","onMessage","handleAGUIEvent","onRunStart","event","_this$aguiAdapter2","_this$config$onStart","_this$config4","reset","onStart","JSON","stringify","AGUI_RUN_START","runId","threadId","onRunComplete","AGUI_RUN_COMPLETE","onRunError","AGUI_RUN_ERROR","userResult","REQUEST_STREAM","_x6","_x7","_handleAGUIStreamRequest","_handleDefaultStreamRequest","_callee0","_this2","_context0","_this2$config$onStart","_this2$config","_x8","_x9","_handleOpenClawStreamRequest","_callee1","_this3","_context1","_this3$config$onStart","_this3$config","_x0","_x1","updateMultipleContents","processContentUpdate","MESSAGE_UPDATE","emitAGUIDetailEvents","contents","_iterator","_createForOfIteratorHelper","_step","s","n","done","_content$data2","activityType","_content$data","AGUI_ACTIVITY","eventType","startsWith","AGUI_TOOLCALL","toolCall","err","e","f","messageIds","map","_this$messageStore$ge","previousStatus","MESSAGE_STATUS_CHANGE","rawChunk","m","isAIMessage","targetIndex","strategy","findIndex","i","processed","appendContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsB4B,IAEPA,UAAkC,gBAAA,YAAA;EAqBrD,SAAAA,UAAAA,CAAYC,eAAuC,EAAA;AAAAC,IAAAA,eAAA,OAAAF,UAAA,CAAA,CAAA;AAAAG,IAAAA,eAAA,sBAJ7B,KAAA,CAAA,CAAA;AAAAA,IAAAA,eAAA,sBAEoB,IAAA,CAAA,CAAA;AAGnC,IAAA,IAAA,CAAAC,gBAAA,GAAmB,IAAIC,gBAAiB,EAAA,CAAA;AACxC,IAAA,IAAA,CAAAC,YAAA,GAAe,IAAIC,YAAa,EAAA,CAAA;AAChC,IAAA,IAAA,CAAAC,QAAA,GAAW,IAAIC,YAAA,CAAaR,eAAe,CAAA,CAAA;AAClD,GAAA;EAAA,OAAAS,YAAA,CAAAV,UAAA,EAAA,CAAA;IAAAW,GAAA,EAAA,UAAA;IAAAC,GAAA,EAOA,SAAAA,GAAAA,GAAmC;AACjC,MAAA,OAAO,KAAKN,YAAa,CAAAO,QAAA,CAAA;AAC3B,KAAA;AAAA,GAAA,EAAA;IAAAF,GAAA,EAAA,QAAA;IAAAC,GAAA,EAOA,SAAAA,GAAAA,GAAyB;AAAA,MAAA,IAAAE,iBAAA,CAAA;AACvB,MAAA,OAAO,EAAAA,iBAAA,GAAA,IAAK,CAAAD,QAAA,CAASE,EAAG,CAAA,CAAA,CAAE,uDAAnBD,iBAAA,CAAsBE,MAAU,KAAA,MAAA,CAAA;AACzC,KAAA;AAAA,GAAA,EAAA;IAAAL,GAAA,EAAA,SAAA;AAAAM,IAAAA,KAAA,EAMA,SAAAC,OAAgBA,GAAA;MAET,IAAA,CAAAV,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBC,cAAgB,EAAA;AACrDC,QAAAA,SAAA,EAAWC,KAAKC,GAAI,EAAA;AACtB,OAAC,CAAA,CAAA;MAGD,IAAA,CAAKC,SAAU,EAAA,CAAA;AAGf,MAAA,IAAA,CAAKnB,aAAaoB,YAAa,EAAA,CAAA;AAC/B,MAAA,IAAA,CAAKpB,aAAaY,OAAQ,EAAA,CAAA;MAG1B,IAAA,CAAKS,WAAc,GAAA,IAAA,CAAA;AAGnB,MAAA,IAAA,CAAKnB,SAASU,OAAQ,EAAA,CAAA;AACxB,KAAA;AAAA,GAAA,EAAA;IAAAP,GAAA,EAAA,MAAA;AAAAM,IAAAA,KAAA,EAQO,SAAAW,IAAAA,CAAKC,cAAuCC,eAAsC,EAAA;MACvF,IAAA,CAAKxB,YAAa,CAAAyB,UAAA,CAAW,IAAK,CAAAC,eAAA,CAAgBF,eAAe,CAAC,CAAA,CAAA;AAClE,MAAA,IAAA,CAAKG,SAAS,OAAOJ,YAAA,KAAiB,aAAaA,YAAa,EAAA,GAAIA,gBAAgB,EAAC,CAAA;AAChF,MAAA,IAAA,CAAAK,UAAA,GAAa,IAAIC,UAAW,EAAA,CAAA;AAG7B,MAAA,IAAA,IAAA,CAAKF,MAAO,CAAAG,QAAA,KAAa,MAAQ,EAAA;AAC9B,QAAA,IAAA,CAAAT,WAAA,GAAc,IAAIU,WAAY,EAAA,CAAA;AACrC,OAAA;MAGI,IAAA,IAAA,CAAKJ,MAAO,CAAAG,QAAA,KAAa,UAAY,EAAA,EAGzC;MAGK,IAAA,CAAA5B,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBkB,WAAa,EAAA;AAClDhB,QAAAA,SAAA,EAAWC,KAAKC,GAAI,EAAA;AACtB,OAAC,CAAA,CAAA;AACH,KAAA;AAAA,GAAA,EAAA;IAAAb,GAAA,EAAA,iBAAA;IAAAM,KAAA,EAAA,YAAA;MAAA,IAAAsB,gBAAA,GAAAC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAQA,SAAAC,OAAAA,CAA6BC,aAAkC,EAAA;AAAA,QAAA,IAAAC,WAAA;UAAAC,MAAA;UAAAC,WAAA;UAAAC,YAAA;UAAAC,cAAA;UAAAC,mBAAA;UAAAC,WAAA;UAAAC,SAAA;UAAAC,MAAA;AAAAC,UAAAA,KAAA,GAAAC,SAAA,CAAA;AAAA,QAAA,OAAAd,mBAAA,CAAAe,IAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;cAAAd,WAAA,GAAAS,KAAA,CAAAM,MAAA,GAAA,CAAA,IAAAN,KAAA,CAAA,CAAA,CAAA,KAAAO,SAAA,GAAAP,KAAA,CAAA,CAAA,CAAA,GAAc,IAAM,CAAA;AACzER,cAAAA,MAAA,GAAyCF,aAAA,CAAzCE,MAAA,EAAQC,WAAgB,GAAiBH,aAAA,CAAjCG,WAAgB,EAAAC,YAAA,GAAAc,wBAAA,CAAiBlB,aAAA,EAAAmB,SAAA,CAAA,CAAA;cAG3Cd,cAAiB,GAAAH,MAAA,IAAUA,MAAO,CAAAkB,IAAA,EAAW,KAAA,EAAA,CAAA;AAC7Cd,cAAAA,sBAAsBe,KAAM,CAAAC,OAAA,CAAQnB,WAAW,CAAA,IAAKA,YAAYa,MAAS,GAAA,CAAA,CAAA;AAAA,cAAA,IAAA,EAG3E,CAACX,cAAkB,IAAA,CAACC,mBAAqB,CAAA,EAAA;AAAAO,gBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAC3CQ,cAAAA,OAAA,CAAQC,KAAK,iGAAyD,CAAA,CAAA;cAAA,OAAAX,QAAA,CAAAY,MAAA,CAAA,QAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAIlElB,WAAc,GAAA,IAAA,CAAK/C,gBAAiB,CAAAkE,iBAAA,CAAkBxB,QAAQC,WAAW,CAAA,CAAA;AACzEK,cAAAA,SAAA,GAAY,IAAK,CAAAhD,gBAAA,CAAiBmE,sBAAuB,EAAA,CAAA;cAC/D,IAAA,CAAKjE,YAAa,CAAAkE,mBAAA,CAAoB,CAACrB,WAAA,EAAaC,SAAS,CAAC,CAAA,CAAA;cAGzD,IAAA,CAAA5C,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBqD,cAAgB,EAAA;AACrDC,gBAAAA,OAAS,EAAAvB,WAAA;gBACTtC,UAAU,IAAK,CAAAA,QAAAA;AACjB,eAAC,CAAA,CAAA;AAED,cAAA,IAAIgC,WAAa,EAAA;AACTQ,gBAAAA,MAAS,GAAAsB,aAAA,CAAAA,aAAA,KACV/B,aAAA,CAAA,EAAA,EAAA,EAAA;kBACHgC,WAAWxB,SAAU,CAAAyB,EAAAA;AAAA,iBAAA,EAClB7B,YAAA,CAAA,CAAA;AAEL,gBAAA,IAAA,CAAKH,YAAYQ,MAAM,CAAA,CAAA;AACzB,eAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAI,QAAA,CAAAqB,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAnC,OAAA,EAAA,IAAA,CAAA,CAAA;OACF,CAAA,CAAA,CAAA;MAAA,SA/BaoC,eAAAA,CAAAC,EAAA,EAAA;AAAA,QAAA,OAAAzC,gBAAA,CAAA0C,KAAA,CAAA,IAAA,EAAA1B,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAAwB,eAAA,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAApE,GAAA,EAAA,mBAAA;IAAAM,KAAA,EAAA,YAAA;MAAA,IAAAiE,kBAAA,GAAA1C,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAsCb,SAAAyC,QAAAA,CAA+BC,GAAa,EAAA;AAAA,QAAA,IAAAC,aAAA,CAAA;AAAA,QAAA,OAAA5C,mBAAA,CAAAe,IAAA,CAAA,UAAA8B,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5B,IAAA,GAAA4B,SAAA,CAAA3B,IAAA;AAAA,YAAA,KAAA,CAAA;AACpC0B,cAAAA,aAAgB,GAAA;AACpBE,gBAAAA,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAS,EAAA,CACP;AACEC,kBAAAA,IAAM,EAAA,MAAA;AACNC,kBAAAA,IAAM,EAAAN,GAAAA;iBACR,CAAA;eAEJ,CAAA;AACK,cAAA,IAAA,CAAA9E,YAAA,CAAaqF,cAAcN,aAAa,CAAA,CAAA;cAGxC,IAAA,CAAA7E,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBqD,cAAgB,EAAA;AACrDC,gBAAAA,OAAS,EAAAW,aAAA;gBACTxE,UAAU,IAAK,CAAAA,QAAAA;AACjB,eAAC,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAyE,SAAA,CAAAR,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAK,QAAA,EAAA,IAAA,CAAA,CAAA;OACH,CAAA,CAAA,CAAA;MAAA,SAjBaS;;;aAAAA;;;;;mFAwBb,SAAAC,QAAA,GAAA;AAAA,QAAA,IAAAC,OAAA;UAAAC,eAAA;UAAA1C,MAAA;UAAAmC,OAAA;UAAAQ,oBAAA;UAAAnD,WAAA;UAAAoD,YAAA;AAAAC,UAAAA,MAAA,GAAA3C,SAAA,CAAA;AAAA,QAAA,OAAAd,mBAAA,CAAAe,IAAA,CAAA,UAAA2C,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAzC,IAAA,GAAAyC,SAAA,CAAAxC,IAAA;AAAA,YAAA,KAAA,CAAA;AACEmC,cAAAA,OAA+F,GAAAI,MAAA,CAAAtC,MAAA,GAAAsC,CAAAA,IAAAA,MAAA,CAAArC,CAAAA,CAAAA,KAAAA,SAAA,GAAAqC,MAAA,CAAA,CAAA,CAAA,GAAA,EAC/F,CAAA;AAAAH,cAAAA,eAAA,GACqDD,OAAA,CAA7CzC,MAAS,EAATA,MAAS,GAAA0C,eAAA,KAAA,KAAA,CAAA,GAAA,sBAAIP,OAAS,GAAuBM,OAAA,CAAhCN,OAAS,EAAAQ,oBAAA,GAAuBF,OAAA,CAAvBjD,WAAA,EAAAA,WAAA,GAAAmD,oBAAA,KAAc,KAAA,CAAA,GAAA;AACtCC,cAAAA,YAAA,GAAe,IAAK,CAAA7F,gBAAA,CAAiBmE,sBAAuB,CAAA;AAChEiB,gBAAAA,OAAA,EAAAA,OAAA;AACAxE,gBAAAA,MAAA,EAAQ6B,cAAc,SAAY,GAAA,UAAA;AACpC,eAAC,CAAA,CAAA;AACI,cAAA,IAAA,CAAAvC,YAAA,CAAaqF,cAAcM,YAAY,CAAA,CAAA;cAGvC,IAAA,CAAAzF,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBqD,cAAgB,EAAA;AACrDC,gBAAAA,OAAS,EAAAuB,YAAA;gBACTpF,UAAU,IAAK,CAAAA,QAAAA;AACjB,eAAC,CAAA,CAAA;AAAA,cAAA,IAAA,CAEGgC,WAAa,EAAA;AAAAsD,gBAAAA,SAAA,CAAAxC,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AACfN,cAAAA,MAAA,CAAOuB,YAAYqB,YAAa,CAAApB,EAAA,CAAA;AAAAsB,cAAAA,SAAA,CAAAxC,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAC1B,IAAA,CAAKd,YAAYQ,MAAM,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAA8C,SAAA,CAAArB,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAe,QAAA,EAAA,IAAA,CAAA,CAAA;OAEjC,CAAA,CAAA,CAAA;AAAA,MAAA,SApBaO,aAAAA,GAAA;AAAA,QAAA,OAAAC,cAAA,CAAApB,KAAA,CAAA,IAAA,EAAA1B,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAA6C,aAAA,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAzF,GAAA,EAAA,WAAA;IAAAM,KAAA,EAAA,YAAA;MAAA,IAAAqF,UAAA,GAAA9D,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CA0Bb,SAAA6D,QAAA,GAAA;AAAA,QAAA,IAAAC,YAAA,CAAA;QAAA,IAAAC,qBAAA,EAAAC,SAAA,CAAA;AAAA,QAAA,OAAAjE,mBAAA,CAAAe,IAAA,CAAA,UAAAmD,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjD,IAAA,GAAAiD,SAAA,CAAAhD,IAAA;AAAA,YAAA,KAAA,CAAA;cACE,IAAA,CAAKiD,WAAc,GAAA,IAAA,CAAA;cAAA,IAAAJ,EAAAA,CAAAA,YAAA,GAEf,IAAA,CAAKvE,+CAALuE,YAAA,CAAaK,OAAS,CAAA,EAAA;AAAAF,gBAAAA,SAAA,CAAAhD,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAAAgD,cAAAA,SAAA,CAAAhD,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAClB,IAAA,CAAK1B,OAAO4E,OAAQ,EAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAGxB,IAAA;AACF,gBAAA,IAAA,CAAK3E,WAAW4E,YAAa,EAAA,CAAA;AACzB,gBAAA,IAAA,CAAC,IAAK,CAAA7E,MAAA,CAAO8E,MAAQ,EAAA;AAEnB,kBAAA,IAAA,CAAAN,qBAAA,GAAA,IAAA,CAAKnG,YAAa,CAAA0G,aAAA,MAAA,IAAA,IAAAP,qBAAA,KAAA,KAAA,CAAA,IAAlBA,qBAAA,CAAiC5B,EAAI,EAAA;AACjC6B,oBAAAA,SAAA,GAAY,IAAK,CAAApG,YAAA,CAAa0G,aAAc,CAAAnC,EAAA,CAAA;AAC7C,oBAAA,IAAA,CAAAvE,YAAA,CAAa2G,cAAcP,SAAS,CAAA,CAAA;oBAGpC,IAAA,CAAAlG,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoB8F,cAAgB,EAAA;AACrDR,sBAAAA,SAAA,EAAAA,SAAA;sBACA7F,UAAU,IAAK,CAAAA,QAAAA;AACjB,qBAAC,CAAA,CAAA;AACH,mBAAA;AACF,iBAAA;uBACOsG,KAAP,EAAA;AACQhD,gBAAAA,OAAA,CAAAC,IAAA,CAAK,iCAAiC+C,KAAK,CAAA,CAAA;AACrD,eAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAR,SAAA,CAAA7B,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAyB,QAAA,EAAA,IAAA,CAAA,CAAA;OACF,CAAA,CAAA,CAAA;AAAA,MAAA,SAzBa9E,SAAYA,GAAA;AAAA,QAAA,OAAA6E,UAAA,CAAArB,KAAA,CAAA,IAAA,EAAA1B,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAZ9B,SAAY,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAd,GAAA,EAAA,uBAAA;AAAAM,IAAAA,KAAA,EAiClB,SAAAmG,qBAAAA,CACL3B,MACA4B,OACA,EAAA;MACK,IAAA,CAAAjH,gBAAA,CAAiBkH,eAAgB,CAAA7B,IAAA,EAAM4B,OAAO,CAAA,CAAA;AACrD,KAAA;AAAA,GAAA,EAAA;IAAA1G,GAAA,EAAA,aAAA;AAAAM,IAAAA,KAAA,EAQO,SAAAsG,WAAAA,CAAY1G,QAA8B,EAAyC;AAAA,MAAA,IAAzC2G,IAAA,GAAAjE,SAAA,CAAAK,MAAA,GAAA,CAAA,IAAAL,SAAA,CAAA,CAAA,CAAA,KAAAM,SAAA,GAAAN,SAAA,CAAA,CAAA,CAAA,GAA8B,SAAW,CAAA;MACnF,IAAA,CAAAjD,YAAA,CAAaiH,WAAY,CAAA1G,QAAA,EAAU2G,IAAI,CAAA,CAAA;AAC9C,KAAA;AAAA,GAAA,EAAA;IAAA7G,GAAA,EAAA,eAAA;AAAAM,IAAAA,KAAA,EAMO,SAAAwG,aAAsBA,GAAA;AAC3B,MAAA,IAAA,CAAKnH,aAAaoB,YAAa,EAAA,CAAA;MAG1B,IAAA,CAAAlB,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBsG,aAAe,EAAA;AACpDpG,QAAAA,SAAA,EAAWC,KAAKC,GAAI,EAAA;AACtB,OAAC,CAAA,CAAA;AACH,KAAA;AAAA,GAAA,EAAA;IAAAb,GAAA,EAAA,qBAAA;IAAAM,KAAA,EAAA,YAAA;MAAA,IAAA0G,oBAAA,GAAAnF,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CASA,SAAAkF,QAAA,GAAA;QAAA,IAAAC,qBAAA,EAAAC,sBAAA,CAAA;AAAA,QAAA,IAAAC,WAAA;UAAAf,aAAA;UAAAf,YAAA;UAAA5C,MAAA;AAAA2E,UAAAA,MAAA,GAAAzE,SAAA,CAAA;AAAA,QAAA,OAAAd,mBAAA,CAAAe,IAAA,CAAA,UAAAyE,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAvE,IAAA,GAAAuE,SAAA,CAAAtE,IAAA;AAAA,YAAA,KAAA,CAAA;cAAiCoE,WAAA,GAAAC,MAAA,CAAApE,MAAA,GAAA,CAAA,IAAAoE,MAAA,CAAA,CAAA,CAAA,KAAAnE,SAAA,GAAAmE,MAAA,CAAA,CAAA,CAAA,GAAc,KAAO,CAAA;AAC5ChB,cAAAA,aAAc,GAAI,IAAK,CAAA1G,YAAA,CAAvB0G,aAAc,CAAA;AAAA,cAAA,IACjBA,aAAA,EAAA;AAAAiB,gBAAAA,SAAA,CAAAtE,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cAAA,OAAAsE,SAAA,CAAA5D,MAAA,CAAA,QAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAEL,IAAI,CAAC0D,WAAa,EAAA;gBAEX,IAAA,CAAAzH,YAAA,CAAa2G,aAAc,CAAAD,aAAA,CAAcnC,EAAE,CAAA,CAAA;AAClD,eAAO,MAAA;gBAEA,IAAA,CAAAvE,YAAA,CAAa4H,mBAAoB,CAAAlB,aAAA,CAAcnC,EAAE,CAAA,CAAA;AACxD,eAAA;AAGMoB,cAAAA,YAAA,GAAe,IAAK,CAAA7F,gBAAA,CAAiBmE,sBAAuB,EAAA,CAAA;AAC7D,cAAA,IAAA,CAAAjE,YAAA,CAAaqF,cAAcM,YAAY,CAAA,CAAA;cAGtC5C,MAAS,GAAAsB,aAAA,CAAAA,aAAA,CAAA,EAAA,EACT,IAAK,CAAAwD,iBAAA,IAAqB,EAAC,CAAA,EAAA,EAAA,EAAA;gBAC/BvD,WAAWqB,YAAa,CAAApB,EAAA;AACxB/B,gBAAAA,MAAA,GAAA+E,qBAAA,GAAA,CAAAC,sBAAA,GAAQ,IAAK,CAAAK,iBAAA,MAAA,IAAA,IAAAL,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,sBAAA,CAAwBhF,MAAU,cAAA+E,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAA,EAAA;AAAA,eAAA,CAAA,CAAA;AAAAI,cAAAA,SAAA,CAAAtE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAGtC,IAAA,CAAKd,YAAYQ,MAAM,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAA4E,SAAA,CAAAnD,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAA8C,QAAA,EAAA,IAAA,CAAA,CAAA;OAC/B,CAAA,CAAA,CAAA;AAAA,MAAA,SAxBaQ,mBAAoBA,GAAA;AAAA,QAAA,OAAAT,oBAAA,CAAA1C,KAAA,CAAA,IAAA,EAAA1B,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAApB6E,mBAAoB,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAzH,GAAA,EAAA,aAAA;IAAAM,KAAA,EAAA,YAAA;MAAA,IAAAoH,YAAA,GAAA7F,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CA+BjC,SAAA4F,QAAAA,CAAyBjF,MAA2B,EAAA;QAAA,IAAAwB,EAAA,EAAA0D,EAAA,CAAA;AAAA,QAAA,OAAA9F,mBAAA,CAAAe,IAAA,CAAA,UAAAgF,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA9E,IAAA,GAAA8E,SAAA,CAAA7E,IAAA;AAAA,YAAA,KAAA,CAAA;cAC/BkB,EAAA,GAAOxB,MAAA,CAAlBuB,SAAW,CAAA;cAGd,IAAA,CAAApE,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBqH,aAAe,EAAA;AACpDpF,gBAAAA,MAAA,EAAAA,MAAA;AACAqD,gBAAAA,SAAW,EAAA7B,EAAAA;AACb,eAAC,CAAA,CAAA;AAAA2D,cAAAA,SAAA,CAAA9E,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,IAAA,CAGK,IAAA,CAAKzB,OAAO8E,MAAQ,EAAA;AAAAyB,gBAAAA,SAAA,CAAA7E,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cAEtB,IAAA,CAAKiD,WAAc,GAAA,KAAA,CAAA;AAAA4B,cAAAA,SAAA,CAAA7E,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OACb,IAAA,CAAK+E,oBAAoBrF,MAAM,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAmF,cAAAA,SAAA,CAAA7E,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,YAAA,KAAA,CAAA;AAAA6E,cAAAA,SAAA,CAAA7E,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAG/B,IAAA,CAAKgF,mBAAmBtF,MAAM,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAEtC,IAAA,CAAK8E,iBAAoB,GAAA9E,MAAA,CAAA;AAAAmF,cAAAA,SAAA,CAAA7E,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,YAAA,KAAA,CAAA;AAAA6E,cAAAA,SAAA,CAAA9E,IAAA,GAAA,CAAA,CAAA;AAAA6E,cAAAA,EAAA,GAAAC,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEpB,cAAA,IAAA,CAAAI,gBAAA,CAAiB/D,IAAK,OAAO,CAAA,CAAA;cAG7B,IAAA,CAAArE,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoByH,aAAe,EAAA;AACpDnC,gBAAAA,SAAW,EAAA7B,EAAA;AACXsC,gBAAAA,KAAA,EAAAoB,EAAA;AACAlF,gBAAAA,MAAA,EAAAA,MAAAA;AACF,eAAC,CAAA,CAAA;AAAA,cAAA,MAAAkF,EAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAC,SAAA,CAAA1D,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAwD,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAIL,CAAA,CAAA,CAAA;MAAA,SA/BazF;;;aAAAA;;;;WAuCN,SAAAiG,kBAAkBC,IAAoC,EAAA;AAAA,MAAA,IAAAC,iBAAA,CAAA;AACpD,MAAA,OAAA,CAAAA,iBAAA,GAAA,IAAA,CAAKrH,WAAa,MAAA,IAAA,IAAAqH,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlBA,iBAAA,CAAkBF,iBAAA,CAAkBC,IAAI,CAAA,CAAA;AACjD,KAAA;AAAA,GAAA,EAAA;IAAApI,GAAA,EAAA,oBAAA;IAAAM,KAAA,EAAA,YAAA;MAAA,IAAAgI,mBAAA,GAAAzG,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAEA,SAAAwG,QAAAA,CAAiC7F,MAA2B,EAAA;AAAA,QAAA,IAAAwB,EAAA,EAAAsE,MAAA,EAAAzE,OAAA,CAAA;AAAA,QAAA,OAAAjC,mBAAA,CAAAe,IAAA,CAAA,UAAA4F,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA1F,IAAA,GAAA0F,SAAA,CAAAzF,IAAA;AAAA,YAAA,KAAA,CAAA;cACpDkB,KAAKxB,MAAO,CAAAuB,SAAA,CAAA;AAAA,cAAA,IACbC,EAAA,EAAA;AAAAuE,gBAAAA,SAAA,CAAAzF,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cAAA,OAAAyF,SAAA,CAAA/E,MAAA,CAAA,QAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AACA,cAAA,IAAA,CAAAuE,gBAAA,CAAiB/D,IAAI,SAAS,CAAA,CAAA;AAAAuE,cAAAA,SAAA,CAAAzF,IAAA,GAAA,CAAA,CAAA;cAAA,OACd,IAAA,CAAKzB,WAAWyG,kBAAmB,CAAAtF,MAAA,EAAQ,KAAKpB,MAAM,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAArEkH;AACN,cAAA,IAAIA,MAAQ,EAAA;AACL,gBAAA,IAAA,CAAAE,oBAAA,CAAqBxE,IAAIsE,MAAM,CAAA,CAAA;AAC/B,gBAAA,IAAA,CAAAP,gBAAA,CAAiB/D,IAAI,UAAU,CAAA,CAAA;gBAG9BH,OAAU,GAAA,IAAA,CAAKpE,YAAa,CAAAgJ,cAAA,CAAezE,EAAE,CAAA,CAAA;AACnD,gBAAA,IAAIH,OAAS,EAAA;kBACN,IAAA,CAAAlE,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBmI,gBAAkB,EAAA;AACvD7C,oBAAAA,SAAW,EAAA7B,EAAA;AACXxB,oBAAAA,MAAA,EAAAA,MAAA;AACAqB,oBAAAA,OAAA,EAAAA,OAAAA;AACF,mBAAC,CAAA,CAAA;AACH,iBAAA;AACF,eAAO,MAAA;AACA,gBAAA,IAAA,CAAAkE,gBAAA,CAAiB/D,IAAI,OAAO,CAAA,CAAA;gBAG5B,IAAA,CAAArE,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoByH,aAAe,EAAA;AACpDnC,kBAAAA,SAAW,EAAA7B,EAAA;AACXsC,kBAAAA,KAAA,EAAO,IAAIqC,KAAA,CAAM,qCAAqC,CAAA;AACtDnG,kBAAAA,MAAA,EAAAA,MAAAA;AACF,iBAAC,CAAA,CAAA;AACH,eAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAA+F,SAAA,CAAAtE,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAoE,QAAA,EAAA,IAAA,CAAA,CAAA;OACF,CAAA,CAAA,CAAA;MAAA,SA5BcP;;;aAAAA;;;;WA8BN,SAAAc,WAAAA,CAAY5E,IAAYsC,KAAgB,EAAA;MAAA,IAAAuC,oBAAA,EAAAC,aAAA,CAAA;AACzC,MAAA,IAAA,CAAAf,gBAAA,CAAiB/D,IAAI,OAAO,CAAA,CAAA;AAC5B,MAAA,CAAA6E,oBAAA,GAAAC,CAAAA,aAAA,OAAA,CAAA1H,MAAA,EAAO2H,wDAAPF,oBAAA,CAAAG,IAAA,CAAAF,aAAA,EAAiBxC,KAAc,CAAA,CAAA;MAG/B,IAAA,CAAA3G,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoByH,aAAe,EAAA;AACpDnC,QAAAA,SAAW,EAAA7B,EAAA;AACXsC,QAAAA,KAAA,EAAAA,KAAAA;AACF,OAAC,CAAA,CAAA;AACH,KAAA;AAAA,GAAA,EAAA;IAAAxG,GAAA,EAAA,gBAAA;IAAAM,KAAA,EAEQ,SAAA6I,cAAeA,CAAAjF,EAAA,EAAYkF,SAAoB,EAAA1G,MAAA,EAA2B2G,KAAiB,EAAA;MAAA,IAAAC,qBAAA,EAAAC,aAAA,CAAA;MAEjG,IAAMC,wCAAe,CAAAD,aAAA,GAAK,IAAA,CAAAjI,MAAA,EAAOmI,UAAa,MAAA,IAAA,IAAAH,qBAAA,KAAzBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAAJ,IAAA,CAAAK,aAAA,EAAyBH,SAAA,EAAW1G,QAAQ2G,KAAK,CAAA,CAAA;AAEtE,MAAA,IAAI/F,MAAMC,OAAQ,CAAAiG,YAAY,CAAM,IAAAA,YAAA,IAAgB,YAAYA,YAAe,EAAA;AACxE,QAAA,IAAA,CAAAd,oBAAA,CAAqBxE,IAAIsF,YAAY,CAAA,CAAA;AAC5C,OAAO,MAAA;QAEC,IAAAE,gBAAA,GAAmB,KAAK/J,YAAa,CAAAO,QAAA,CAASyJ,KAAK,UAAC9E,OAAA,EAAA;AAAA,UAAA,OAAYA,OAAQ,CAAAxE,MAAA,KAAW,OAAO,CAAA;SAAA,CAAA,CAAA;AAEhG,QAAA,IAAA,CAAK4H,iBAAiB/D,EAAI,EAAAkF,SAAA,GAAY,MAAS,GAAAM,gBAAA,GAAmB,UAAU,UAAU,CAAA,CAAA;AACxF,OAAA;MAGA,IAAM3F,OAAU,GAAA,IAAA,CAAKpE,YAAa,CAAAgJ,cAAA,CAAezE,EAAE,CAAA,CAAA;AACnD,MAAA,IAAIH,OAAS,EAAA;AACX,QAAA,IAAIqF,SAAW,EAAA;UACR,IAAA,CAAAvJ,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBmJ,aAAe,EAAA;AACpD7D,YAAAA,SAAW,EAAA7B,EAAA;AACXxB,YAAAA,MAAA,EAAAA,MAAAA;AACF,WAAC,CAAA,CAAA;AACH,SAAO,MAAA;UACA,IAAA,CAAA7C,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBmI,gBAAkB,EAAA;AACvD7C,YAAAA,SAAW,EAAA7B,EAAA;AACXxB,YAAAA,MAAA,EAAAA,MAAA;AACAqB,YAAAA,OAAA,EAAAA,OAAAA;AACF,WAAC,CAAA,CAAA;AACH,SAAA;AACF,OAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAA/D,GAAA,EAAA,qBAAA;IAAAM,KAAA,EAAA,YAAA;MAAA,IAAAuJ,oBAAA,GAAAhI,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAOA,SAAA+H,QAAAA,CAAkCpH,MAA2B,EAAA;AAAA,QAAA,IAAAwB,EAAA,EAAA6F,MAAA,EAAAC,UAAA,CAAA;AAAA,QAAA,OAAAlI,mBAAA,CAAAe,IAAA,CAAA,UAAAoH,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAlH,IAAA,GAAAkH,SAAA,CAAAjH,IAAA;AAAA,YAAA,KAAA,CAAA;cACrDkB,KAAKxB,MAAO,CAAAuB,SAAA,CAAA;AACZ8F,cAAAA,MAAA,GAAS,IAAK,CAAAzI,MAAA,CAAOG,QAAa,KAAA,MAAA,CAAA;AAClCuI,cAAAA,UAAA,GAAa,IAAK,CAAA1I,MAAA,CAAOG,QAAa,KAAA,UAAA,CAAA;AAE5C,cAAA,IAAIyC,EAAI,EAAA;AACD,gBAAA,IAAA,CAAA+D,gBAAA,CAAiB/D,IAAI,WAAW,CAAA,CAAA;AACvC,eAAA;AAAA,cAAA,IAAA,EAGI6F,MAAA,IAAU,KAAK/I,WAAa,CAAA,EAAA;AAAAiJ,gBAAAA,SAAA,CAAAjH,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAAAiH,cAAAA,SAAA,CAAAjH,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OACxB,IAAA,CAAKkH,uBAAwB,CAAAxH,MAAA,EAAQwB,EAAE,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA+F,cAAAA,SAAA,CAAAjH,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,CACpCgH,UAAY,EAAA;AAAAC,gBAAAA,SAAA,CAAAjH,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;AAAAiH,cAAAA,SAAA,CAAAjH,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OACf,IAAA,CAAKmH,2BAA4B,CAAAzH,MAAA,EAAQwB,EAAE,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA+F,cAAAA,SAAA,CAAAjH,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,YAAA,KAAA,CAAA;AAAAiH,cAAAA,SAAA,CAAAjH,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAE3C,IAAA,CAAKoH,0BAA2B,CAAA1H,MAAA,EAAQwB,EAAE,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAA+F,SAAA,CAAA9F,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAA2F,QAAA,EAAA,IAAA,CAAA,CAAA;OAEpD,CAAA,CAAA,CAAA;MAAA,SAjBc/B;;;aAAAA;;;;;6FAsBd,SAAAsC,QAAAA,CAAsC3H,MAAA,EAA2BqD,SAAoB,EAAA;AAAA,QAAA,IAAAuE,KAAA,GAAA,IAAA,CAAA;AAAA,QAAA,OAAAxI,mBAAA,CAAAe,IAAA,CAAA,UAAA0H,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAxH,IAAA,GAAAwH,SAAA,CAAAvH,IAAA;AAAA,YAAA,KAAA,CAAA;AAAAuH,cAAAA,SAAA,CAAAvH,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAC7E,IAAA,CAAKzB,UAAW,CAAAwG,mBAAA,CAAoBrF,MAAQ,EAAAsB,aAAA,CAAAA,aAAA,CAC7C,EAAA,EAAA,IAAK,CAAA1C,MAAA,CAAA,EAAA,EAAA,EAAA;AACRkJ,gBAAAA,SAAA,EAAW,SAAXA,SAAAA,CAAYnB,KAAwB,EAAA;kBAC9B,IAAAiB,KAAA,CAAKrE,eAAe,CAACF,SAAA,EAAkB,OAAA,IAAA,CAAA;kBAE3C,IAAIyC,MAAuD,GAAA,IAAA,CAAA;kBAI3D,IAAI8B,MAAKtJ,WAAa,EAAA;oBACXwH,MAAA,GAAA8B,KAAA,CAAKtJ,WAAY,CAAAyJ,eAAA,CAAgBpB,KAAO,EAAA;AAC/CqB,sBAAAA,UAAA,EAAY,SAAZA,UAAAA,CAAaC,KAAU,EAAA;AAAA,wBAAA,IAAAC,kBAAA,EAAAC,oBAAA,EAAAC,aAAA,CAAA;AAErB,wBAAA,CAAAF,kBAAA,GAAAN,KAAA,CAAKtJ,0DAAL4J,kBAAA,CAAkBG,KAAM,EAAA,CAAA;wBACxB,CAAAF,oBAAA,GAAAC,CAAAA,aAAA,GAAAR,KAAA,CAAKhJ,MAAO,EAAA0J,OAAA,MAAA,IAAA,IAAAH,oBAAA,KAAA,KAAA,CAAA,IAAZA,oBAAA,CAAA3B,IAAA,CAAA4B,aAAA,EAAsBG,IAAK,CAAAC,SAAA,CAAUP,KAAK,CAAC,CAAA,CAAA;wBAEtCL,KAAA,CAAAzK,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoB0K,cAAgB,EAAA;AACrDC,0BAAAA,KAAA,EAAOT,MAAMS,KAAS,IAAA,EAAA;0BACtBC,UAAUV,KAAM,CAAAU,QAAA;AAChB1K,0BAAAA,SAAA,EAAWC,KAAKC,GAAI,EAAA;AACtB,yBAAC,CAAA,CAAA;uBACH;sBACAyK,aAAe,EAAA,SAAfA,aAAeA,CAAClC,SAAW,EAAAnH,aAAA,EAAe0I,KAAU,EAAA;wBAClDL,KAAA,CAAKnB,cAAe,CAAApD,SAAA,EAAWqD,SAAW,EAAAnH,aAAA,EAAe0I,KAAK,CAAA,CAAA;wBAE9D,IAAI,CAACvB,SAAW,EAAA;0BACTkB,KAAA,CAAAzK,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoB8K,iBAAmB,EAAA;4BACxDH,KAAA,EAAO,CAAAT,UAAAA,IAAAA,IAAAA,4BAAAA,MAAOS,KAAS,KAAA,EAAA;AACvBC,4BAAAA,UAAUV,KAAO,KAAA,IAAA,IAAPA,KAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAO,CAAAU,QAAA;AACjB1K,4BAAAA,SAAA,EAAWC,KAAKC,GAAI,EAAA;AACtB,2BAAC,CAAA,CAAA;AACH,yBAAA;uBACF;AACA2K,sBAAAA,UAAA,EAAY,SAAZA,UAAAA,CAAahF,KAAU,EAAA;AAChB8D,wBAAAA,KAAA,CAAAxB,WAAA,CAAY/C,WAAWS,KAAK,CAAA,CAAA;wBAE5B8D,KAAA,CAAAzK,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBgL,cAAgB,EAAA;AACrDjF,0BAAAA,KAAA,EAAAA,KAAAA;AACF,yBAAC,CAAA,CAAA;AACH,uBAAA;AACF,qBAAC,CAAA,CAAA;AACH,mBAAA;AAGI,kBAAA,IAAA8D,KAAA,CAAKhJ,OAAOkJ,SAAW,EAAA;oBACnB,IAAAkB,UAAA,GAAapB,KAAK,CAAAhJ,MAAA,CAAOkJ,SAAU,CAAAnB,KAAA,EAAOiB,MAAK3K,YAAa,CAAAgJ,cAAA,CAAe5C,SAAS,CAAA,EAAGyC,MAAM,CAAA,CAAA;AAEnG,oBAAA,IAAIkD,UAAY,EAAA;AACLlD,sBAAAA,MAAA,GAAAkD,UAAA,CAAA;AACX,qBAAA;AACF,mBAAA;kBAGKpB,KAAA,CAAAzK,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBkL,cAAgB,EAAA;AACrD5F,oBAAAA,SAAA,EAAAA,SAAA;AACAsD,oBAAAA,KAAA,EAAAA,KAAA;AACAxE,oBAAAA,OAAS,EAAA2D,MAAAA;AACX,mBAAC,CAAA,CAAA;AAGI8B,kBAAAA,KAAA,CAAA5B,oBAAA,CAAqB3C,WAAWyC,MAAM,CAAA,CAAA;AACpC,kBAAA,OAAAA,MAAA,CAAA;iBACT;AACAS,gBAAAA,OAAA,EAAS,SAATA,OAAAA,CAAUzC,KAAU,EAAA;kBACd,IAAAT,SAAA,EAAgBuE,KAAA,CAAAxB,WAAA,CAAY/C,WAAWS,KAAK,CAAA,CAAA;iBAClD;AACAiD,gBAAAA,UAAA,EAAY,SAAZA,UAAAA,CAAaL,SAAc,EAAA;kBAEzB,IAAIA,aAAarD,SAAW,EAAA;oBACrBuE,KAAA,CAAAnB,cAAA,CAAepD,SAAW,EAAAqD,SAAA,EAAW1G,MAAM,CAAA,CAAA;AAClD,mBAAA;AACF,iBAAA;AAAA,eAAA,CACD,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAA6H,SAAA,CAAApG,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAkG,QAAA,EAAA,IAAA,CAAA,CAAA;OACH,CAAA,CAAA,CAAA;AAAA,MAAA,SA1EcH,uBAAwBA,CAAA0B,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAC,wBAAA,CAAAxH,KAAA,CAAA,IAAA,EAAA1B,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAxBsH,uBAAwB,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAlK,GAAA,EAAA,4BAAA;IAAAM,KAAA,EAAA,YAAA;AAAA,MAAA,IAAAyL,2BAAA,GAAAlK,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CA+EtC,SAAAiK,QAAAA,CAAyCtJ,MAAA,EAA2BqD,SAAoB,EAAA;AAAA,QAAA,IAAAkG,MAAA,GAAA,IAAA,CAAA;AAAA,QAAA,OAAAnK,mBAAA,CAAAe,IAAA,CAAA,UAAAqJ,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAnJ,IAAA,GAAAmJ,SAAA,CAAAlJ,IAAA;AAAA,YAAA,KAAA,CAAA;AAAAkJ,cAAAA,SAAA,CAAAlJ,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAChF,IAAA,CAAKzB,UAAW,CAAAwG,mBAAA,CAAoBrF,MAAQ,EAAAsB,aAAA,CAAAA,aAAA,CAC7C,EAAA,EAAA,IAAK,CAAA1C,MAAA,CAAA,EAAA,EAAA,EAAA;AACR0J,gBAAAA,OAAA,EAAS,SAATA,OAAAA,CAAU3B,KAAU,EAAA;kBAAA,IAAA8C,qBAAA,EAAAC,aAAA,CAAA;AACb,kBAAA,CAAAD,qBAAA,GAAAC,CAAAA,aAAA,GAAAH,MAAA,CAAA3K,MAAA,EAAO0J,yDAAPmB,qBAAA,CAAAjD,IAAA,CAAAkD,aAAA,EAAiB/C,KAAK,CAAA,CAAA;iBAC7B;AACAmB,gBAAAA,SAAA,EAAW,SAAXA,SAAAA,CAAYnB,KAAwB,EAAA;kBAC9B,IAAA4C,MAAA,CAAKhG,eAAe,CAACF,SAAA,EAAkB,OAAA,IAAA,CAAA;kBAE3C,IAAIyC,MAAS,GAAA,IAAA,CAAA;AAGT,kBAAA,IAAAyD,MAAA,CAAK3K,OAAOkJ,SAAW,EAAA;AAChBhC,oBAAAA,MAAA,GAAAyD,MAAA,CAAK3K,OAAOkJ,SAAU,CAAAnB,KAAA,EAAO4C,OAAKtM,YAAa,CAAAgJ,cAAA,CAAe5C,SAAS,CAAC,CAAA,CAAA;AACnF,mBAAA;kBAGKkG,MAAA,CAAApM,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBkL,cAAgB,EAAA;AACrD5F,oBAAAA,SAAA,EAAAA,SAAA;AACAsD,oBAAAA,KAAA,EAAAA,KAAA;AACAxE,oBAAAA,OAAS,EAAA2D,MAAAA;AACX,mBAAC,CAAA,CAAA;AAGIyD,kBAAAA,MAAA,CAAAvD,oBAAA,CAAqB3C,WAAWyC,MAAM,CAAA,CAAA;AACpC,kBAAA,OAAAA,MAAA,CAAA;iBACT;AACAS,gBAAAA,OAAA,EAAS,SAATA,OAAAA,CAAUzC,KAAU,EAAA;kBACd,IAAAT,SAAA,EAAgBkG,MAAA,CAAAnD,WAAA,CAAY/C,WAAWS,KAAK,CAAA,CAAA;iBAClD;AACAiD,gBAAAA,UAAA,EAAY,SAAZA,UAAAA,CAAaL,SAAc,EAAA;AACzB,kBAAA,IAAIrD,SAAW,EAAA;oBACRkG,MAAA,CAAA9C,cAAA,CAAepD,SAAW,EAAAqD,SAAA,EAAW1G,MAAM,CAAA,CAAA;AAClD,mBAAA;AACF,iBAAA;AAAA,eAAA,CACD,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAwJ,SAAA,CAAA/H,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAA6H,QAAA,EAAA,IAAA,CAAA,CAAA;OACH,CAAA,CAAA,CAAA;AAAA,MAAA,SApCc5B,0BAA2BA,CAAAiC,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAP,2BAAA,CAAAzH,KAAA,CAAA,IAAA,EAAA1B,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAA3BwH,0BAA2B,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAApK,GAAA,EAAA,6BAAA;IAAAM,KAAA,EAAA,YAAA;AAAA,MAAA,IAAAiM,4BAAA,GAAA1K,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CA4CzC,SAAAyK,QAAAA,CAA0C9J,MAAA,EAA2BqD,SAAoB,EAAA;AAAA,QAAA,IAAA0G,MAAA,GAAA,IAAA,CAAA;AAAA,QAAA,OAAA3K,mBAAA,CAAAe,IAAA,CAAA,UAAA6J,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3J,IAAA,GAAA2J,SAAA,CAAA1J,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA0J,cAAAA,SAAA,CAAA1J,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OACjF,IAAA,CAAKzB,UAAW,CAAAwG,mBAAA,CAAoBrF,MAAQ,EAAAsB,aAAA,CAAAA,aAAA,CAC7C,EAAA,EAAA,IAAK,CAAA1C,MAAA,CAAA,EAAA,EAAA,EAAA;AACR0J,gBAAAA,OAAA,EAAS,SAATA,OAAAA,CAAU3B,KAAU,EAAA;kBAAA,IAAAsD,qBAAA,EAAAC,aAAA,CAAA;AACb,kBAAA,CAAAD,qBAAA,GAAAC,CAAAA,aAAA,GAAAH,MAAA,CAAAnL,MAAA,EAAO0J,yDAAP2B,qBAAA,CAAAzD,IAAA,CAAA0D,aAAA,EAAiBvD,KAAK,CAAA,CAAA;iBAC7B;AACAmB,gBAAAA,SAAA,EAAW,SAAXA,SAAAA,CAAYnB,KAAwB,EAAA;kBAC9B,IAAAoD,MAAA,CAAKxG,eAAe,CAACF,SAAA,EAAkB,OAAA,IAAA,CAAA;AAG3C,kBAAA,IAAIyC,SAAuDa,KAAM,CAAAtE,IAAA,CAAA;AAG7D,kBAAA,IAAA0H,MAAA,CAAKnL,OAAOkJ,SAAW,EAAA;oBACnB,IAAAkB,UAAA,GAAae,MAAK,CAAAnL,MAAA,CAAOkJ,SAAU,CAAAnB,KAAA,EAAOoD,OAAK9M,YAAa,CAAAgJ,cAAA,CAAe5C,SAAS,CAAA,EAAGyC,MAAM,CAAA,CAAA;AACnG,oBAAA,IAAIkD,UAAY,EAAA;AACLlD,sBAAAA,MAAA,GAAAkD,UAAA,CAAA;AACX,qBAAA;AACF,mBAAA;kBAGKe,MAAA,CAAA5M,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBkL,cAAgB,EAAA;AACrD5F,oBAAAA,SAAA,EAAAA,SAAA;AACAsD,oBAAAA,KAAA,EAAAA,KAAA;AACAxE,oBAAAA,OAAS,EAAA2D,MAAAA;AACX,mBAAC,CAAA,CAAA;AAGIiE,kBAAAA,MAAA,CAAA/D,oBAAA,CAAqB3C,WAAWyC,MAAM,CAAA,CAAA;AACpC,kBAAA,OAAAA,MAAA,CAAA;iBACT;AACAS,gBAAAA,OAAA,EAAS,SAATA,OAAAA,CAAUzC,KAAU,EAAA;kBACd,IAAAT,SAAA,EAAgB0G,MAAA,CAAA3D,WAAA,CAAY/C,WAAWS,KAAK,CAAA,CAAA;iBAClD;AACAiD,gBAAAA,UAAA,EAAY,SAAZA,UAAAA,CAAaL,SAAc,EAAA;AACzB,kBAAA,IAAIrD,SAAW,EAAA;oBACR0G,MAAA,CAAAtD,cAAA,CAAepD,SAAW,EAAAqD,SAAA,EAAW1G,MAAM,CAAA,CAAA;AAClD,mBAAA;AACF,iBAAA;AAAA,eAAA,CACD,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAgK,SAAA,CAAAvI,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAqI,QAAA,EAAA,IAAA,CAAA,CAAA;OACH,CAAA,CAAA,CAAA;AAAA,MAAA,SAxCcrC,2BAA4BA,CAAA0C,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAP,4BAAA,CAAAjI,KAAA,CAAA,IAAA,EAAA1B,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAA5BuH,2BAA4B,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAnK,GAAA,EAAA,sBAAA;AAAAM,IAAAA,KAAA,EA8ClC,SAAAoI,oBAAAA,CAAqB3C,WAAmByC,MAAsD,EAAA;MACpG,IAAI,CAACA,MAAA,EAAQ,OAAA;MAGblF,KAAA,CAAMC,OAAQ,CAAAiF,MAAM,CAChB,GAAA,IAAA,CAAK7I,YAAa,CAAAoN,sBAAA,CAAuBhH,SAAW,EAAAyC,MAAM,CAC1D,GAAA,IAAA,CAAKwE,oBAAqB,CAAAjH,SAAA,EAAWyC,MAAM,CAAA,CAAA;MAG/C,IAAMzE,OAAU,GAAA,IAAA,CAAKpE,YAAa,CAAAgJ,cAAA,CAAe5C,SAAS,CAAA,CAAA;AAC1D,MAAA,IAAIhC,OAAS,EAAA;QACN,IAAA,CAAAlE,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBwM,cAAgB,EAAA;AACrDlH,UAAAA,SAAA,EAAAA,SAAA;AACAlB,UAAAA,OAAS,EAAA2D,MAAA;AACTzE,UAAAA,OAAA,EAAAA,OAAAA;AACF,SAAC,CAAA,CAAA;QAGD,IAAI,KAAK/C,WAAa,EAAA;AACf,UAAA,IAAA,CAAAkM,oBAAA,CAAqBnH,WAAWyC,MAAM,CAAA,CAAA;AAC7C,SAAA;AACF,OAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAAxI,GAAA,EAAA,sBAAA;AAAAM,IAAAA,KAAA,EAOQ,SAAA4M,oBAAAA,CAAqBnH,WAAmByC,MAA+C,EAAA;AAC7F,MAAA,IAAM2E,WAAW7J,KAAM,CAAAC,OAAA,CAAQiF,MAAM,CAAI,GAAAA,MAAA,GAAS,CAACA,MAAM,CAAA,CAAA;AAAA,MAAA,IAAA4E,SAAA,GAAAC,0BAAA,CACnCF,QAAU,CAAA;QAAAG,KAAA,CAAA;AAAA,MAAA,IAAA;QAAhC,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAAgC;AAAA,UAAA,IAAAC,cAAA,CAAA;AAAA,UAAA,IAArB7I;AAEJ,UAAA,IAAAA,OAAA,CAAgBE,KAAK4I,YAAc,EAAA;AAAA,YAAA,IAAAC,aAAA,CAAA;YACjC,IAAA,CAAA/N,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBoN,aAAe,EAAA;AACpDF,cAAAA,YAAA,EAAe9I,QAAgBE,IAAK,CAAA4I,YAAA;AACpC5H,cAAAA,SAAA,EAAAA,SAAA;AACAlB,cAAAA,OAAA,EAAUA,YAAAA,IAAAA,IAAAA,uCAAAA,QAAiBE,IAAM,MAAA,IAAA,IAAA6I,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAvBA,aAAA,CAAuB/I,OAAAA;AACnC,aAAC,CAAA,CAAA;AACH,WAAA;UAGA,IAAKA,OAAiB,KAAjBA,IAAAA,IAAAA,OAAiB,KAAA6I,KAAAA,CAAAA,IAAAA,CAAAA,cAAA,GAAjB7I,OAAiB,CAAAE,IAAA,MAAA2I,IAAAA,IAAAA,cAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,cAAA,GAAjBA,cAAA,CAAuBI,SAAW,MAAA,IAAA,IAAAJ,cAAA,KAAA,KAAA,CAAA,IAAlCA,cAAA,CAAkCK,UAAA,CAAW,WAAW,CAAG,EAAA;YACzD,IAAA,CAAAlO,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBuN,aAAe,EAAA;cACpDC,UAAWpJ,OAAgB,CAAAE,IAAA;AAC3B+I,cAAAA,SAAA,EAAYjJ,QAAgBE,IAAK,CAAA+I,SAAAA;AACnC,aAAC,CAAA,CAAA;AACH,WAAA;AACF,SAAA;AAAA,OAAA,CAAA,OAAAI,GAAA,EAAA;QAAAd,SAAA,CAAAe,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,OAAA,SAAA;AAAAd,QAAAA,SAAA,CAAAgB,CAAA,EAAA,CAAA;AAAA,OAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAApO,GAAA,EAAA,iBAAA;AAAAM,IAAAA,KAAA,EAEQ,SAAAe,gBAAgBnB,QAA+B,EAAA;MACrD,IAAI,CAACA,QAAA,EAAU,OAAO;AAAEmO,QAAAA,UAAY,EAAA,EAAI;AAAAnO,QAAAA,QAAA,EAAU,EAAA;OAAG,CAAA;MAE9C,OAAA;AACLmO,QAAAA,YAAYnO,QAAS,CAAAoO,GAAA,CAAI,UAAC7J,GAAA,EAAA;UAAA,OAAQA,IAAIP,EAAE,CAAA;SAAA,CAAA;AACxChE,QAAAA,QAAA,EAAAA,QAAAA;OACF,CAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAAF,GAAA,EAAA,kBAAA;AAAAM,IAAAA,KAAA,EAEQ,SAAA2H,gBAAAA,CAAiBlC,WAAmB1F,MAAoC,EAAA;AAAA,MAAA,IAAAkO,qBAAA,CAAA;AAC9E,MAAA,IAAMC,cAAiB,GAAAD,CAAAA,qBAAA,GAAA,IAAA,CAAK5O,YAAa,CAAAgJ,cAAA,CAAe5C,SAAS,CAAG,MAAA,IAAA,IAAAwI,qBAAA,KAA7CA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA6ClO,MAAA,CAAA;MAC/D,IAAA,CAAAV,YAAA,CAAasI,gBAAiB,CAAAlC,SAAA,EAAW1F,MAAM,CAAA,CAAA;AAGpD,MAAA,IAAIA,MAAQ,EAAA;QACL,IAAA,CAAAR,QAAA,CAASW,IAAK,CAAAC,mBAAA,CAAoBgO,qBAAuB,EAAA;AAC5D1I,UAAAA,SAAA,EAAAA,SAAA;AACA1F,UAAAA,MAAA,EAAAA,MAAA;AACAmO,UAAAA,cAAA,EAAAA,cAAAA;AACF,SAAC,CAAA,CAAA;AACH,OAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAAxO,GAAA,EAAA,sBAAA;AAAAM,IAAAA,KAAA,EAGQ,SAAA0M,oBAAAA,CAAqBjH,WAAmB2I,QAAgC,EAAA;MACxE,IAAA3K,OAAA,GAAU,KAAKpE,YAAa,CAAAO,QAAA,CAASyJ,KAAK,UAACgF,CAAA,EAAA;AAAA,QAAA,OAAMA,CAAE,CAAAzK,EAAA,KAAO6B,SAAS,CAAA;OAAA,CAAA,CAAA;AACzE,MAAA,IAAI,CAAChC,OAAW,IAAA,CAAC6K,YAAY7K,OAAO,CAAA,IAAK,CAACA,OAAQ,CAAAc,OAAA,EAAS,OAAA;AAEvD,MAAA,IAAAgK,WAAA,CAAA;MAEC,IAAA,CAAAH,QAAA,KAAA,IAAA,IAAAA,QAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,QAAA,CAAkBI,cAAa,QAAU,EAAA;QAC9BD,WAAA,GAAA,CAAA,CAAA,CAAA;AAChB,OAAO,MAAA;QAGSA,WAAA,GAAA9K,OAAA,CAAQc,QAAQkK,SAAU,CAAA,UAAClK;iBAA8BA,OAAQ,CAAAC,IAAA,KAAS4J,SAAS5J,IAAI,CAAA;SAAA,CAAA,CAAA;AACrG,QAAA,IAAI+J,gBAAgB,CAAI,CAAA,EAAA;AAEtB,UAAA,KAAA,IAASG,IAAIjL,OAAQ,CAAAc,OAAA,CAAQ5B,SAAS,CAAG,EAAA+L,CAAA,IAAK,GAAGA,CAAK,EAAA,EAAA;AACpD,YAAA,IAAIjL,OAAQ,CAAAc,OAAA,CAAQmK,CAAG,CAAA,CAAAlK,IAAA,KAAS4J,SAAS5J,IAAM,EAAA;AAC/B+J,cAAAA,WAAA,GAAAG,CAAA,CAAA;AACd,cAAA,MAAA;AACF,aAAA;AACF,WAAA;AACF,SAAA;AACF,OAAA;MACM,IAAAC,SAAA,GAAY,KAAKxP,gBAAiB,CAAAuN,oBAAA,CACtC6B,WAAgB,KAAA,CAAA,CAAA,GAAK9K,OAAQ,CAAAc,OAAA,CAAQgK,WAAe,CAAA,GAAA,KAAA,CAAA,EACpDH,QACF,CAAA,CAAA;MAEA,IAAA,CAAK/O,YAAa,CAAAuP,aAAA,CAAcnJ,SAAW,EAAAkJ,SAAA,EAAWJ,WAAW,CAAA,CAAA;AACnE,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../pro-components/chat/chat-engine/core/index.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable class-methods-use-this */\nimport { AGUIAdapter } from './adapters/agui';\nimport { MessageStore } from './store/message';\nimport type { ChatEventBusOptions, IChatEventBus } from './event-bus';\nimport { ChatEngineEventType, ChatEventBus } from './event-bus';\nimport MessageProcessor from './processor';\nimport { LLMService } from './server';\nimport type {\n AIContentChunkUpdate,\n AIMessageContent,\n ChatMessagesData,\n ChatMessageSetterMode,\n ChatRequestParams,\n ChatServiceConfig,\n ChatServiceConfigSetter,\n ChatStatus,\n IChatEngine,\n SSEChunkData,\n SystemMessage,\n ToolCall,\n} from './type';\nimport { isAIMessage } from './utils';\n\nexport default class ChatEngine implements IChatEngine {\n public messageStore: MessageStore;\n\n /**\n * 事件总线实例\n * @description 用于发布/订阅引擎事件,支持无 UI 场景下的事件分发\n */\n public readonly eventBus: IChatEventBus;\n\n private messageProcessor: MessageProcessor;\n\n private llmService!: LLMService;\n\n private config!: ChatServiceConfig;\n\n private lastRequestParams: ChatRequestParams | undefined;\n\n private stopReceive = false;\n\n private aguiAdapter: AGUIAdapter | null = null;\n\n constructor(eventBusOptions?: ChatEventBusOptions) {\n this.messageProcessor = new MessageProcessor();\n this.messageStore = new MessageStore();\n this.eventBus = new ChatEventBus(eventBusOptions);\n }\n\n /**\n * 获取当前所有消息\n * @returns 消息数组\n * @description 返回消息存储中的所有消息\n */\n get messages(): ChatMessagesData[] {\n return this.messageStore.messages;\n }\n\n /**\n * 获取当前聊天状态\n * @returns 聊天状态:'idle'、'pending'、'streaming'、'complete'、'stop'或'error'\n * @description 返回最后一条消息的状态,如果没有消息则返回'idle'\n */\n get status(): ChatStatus {\n return this.messages.at(-1)?.status || 'idle';\n }\n\n /**\n * 销毁聊天引擎实例\n * @description 中止请求,清理消息存储和适配器,释放资源\n */\n destroy(): void {\n // 发布销毁事件\n this.eventBus.emit(ChatEngineEventType.ENGINE_DESTROY, {\n timestamp: Date.now(),\n });\n\n // 中止当前请求\n this.abortChat();\n\n // 清理消息存储\n this.messageStore.clearHistory();\n this.messageStore.destroy();\n\n // 清理适配器\n this.aguiAdapter = null;\n\n // 销毁事件总线\n this.eventBus.destroy();\n }\n\n /**\n * 初始化聊天引擎\n * @param configSetter 聊天服务配置或配置生成函数\n * @param initialMessages 初始消息列表,用于恢复历史对话\n * @description 设置初始消息、配置服务参数,并根据协议类型初始化适配器\n */\n public init(configSetter: ChatServiceConfigSetter, initialMessages?: ChatMessagesData[]) {\n this.messageStore.initialize(this.convertMessages(initialMessages));\n this.config = typeof configSetter === 'function' ? configSetter() : configSetter || {};\n this.llmService = new LLMService();\n\n // 初始化AGUI适配器\n if (this.config.protocol === 'agui') {\n this.aguiAdapter = new AGUIAdapter();\n }\n\n // 初始化OpenClaw适配器(由 LLMService 内部管理连接生命周期)\n // if (this.config.protocol === 'openclaw') {\n // // OpenClaw 适配器通过 LLMService 自动创建和管理\n // // 这里仅标记协议类型,无需提前创建适配器实例\n // }\n\n // 发布初始化事件\n this.eventBus.emit(ChatEngineEventType.ENGINE_INIT, {\n timestamp: Date.now(),\n });\n }\n\n /**\n * 发送用户消息并获取AI回复\n * @param requestParams 请求参数,包含用户输入的文本和附件\n * @param sendRequest 是否立即发送\n * @description 创建用户消息和AI消息,并发送请求获取AI回复\n */\n public async sendUserMessage(requestParams: ChatRequestParams, sendRequest = true) {\n const { prompt, attachments, ...customParams } = requestParams;\n\n // 检查条件:prompt和attachments至少传入一个,且如果设置了就不能为空\n const hasValidPrompt = prompt && prompt.trim() !== '';\n const hasValidAttachments = Array.isArray(attachments) && attachments.length > 0;\n\n // 如果两者都没有有效值,则直接返回\n if (!hasValidPrompt && !hasValidAttachments) {\n console.warn('[ChatEngine] sendUserMessage: 必须提供有效的prompt或attachments');\n return;\n }\n\n const userMessage = this.messageProcessor.createUserMessage(prompt, attachments);\n const aiMessage = this.messageProcessor.createAssistantMessage();\n this.messageStore.createMultiMessages([userMessage, aiMessage]);\n\n // 发布消息创建事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {\n message: userMessage,\n messages: this.messages,\n });\n\n if (sendRequest) {\n const params = {\n ...requestParams,\n messageID: aiMessage.id,\n ...customParams, // 透传用户自定义参数\n };\n this.sendRequest(params);\n }\n }\n\n /**\n * 发送系统消息\n * @param msg 系统消息文本内容\n * @description 创建并存储一条系统消息,通常用于设置上下文或控制对话流程\n */\n public async sendSystemMessage(msg: string) {\n const systemMessage = {\n role: 'system',\n content: [\n {\n type: 'text',\n data: msg,\n },\n ],\n } as SystemMessage;\n this.messageStore.createMessage(systemMessage);\n\n // 发布消息创建事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {\n message: systemMessage,\n messages: this.messages,\n });\n }\n\n /**\n * 手动发送AI消息\n * @param options 包含请求参数params、发送消息内容content和是否发送请求的标志sendRequest\n * @description 创建并存储一条AI消息,可选择是否同时发送请求\n */\n public async sendAIMessage(\n options: { params?: ChatRequestParams; content?: AIMessageContent[]; sendRequest?: boolean } = {},\n ) {\n const { params = {}, content, sendRequest = true } = options;\n const newAIMessage = this.messageProcessor.createAssistantMessage({\n content,\n status: sendRequest ? 'pending' : 'complete',\n });\n this.messageStore.createMessage(newAIMessage);\n\n // 发布消息创建事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {\n message: newAIMessage,\n messages: this.messages,\n });\n\n if (sendRequest) {\n params.messageID = newAIMessage.id;\n await this.sendRequest(params);\n }\n }\n\n /**\n * 中止当前进行中的聊天请求\n * @description 停止接收流式响应,关闭连接,并调用配置的onAbort回调\n */\n public async abortChat() {\n this.stopReceive = true;\n\n if (this.config?.onAbort) {\n await this.config.onAbort();\n }\n\n try {\n this.llmService.closeConnect();\n if (!this.config.stream) {\n // 只有在批量模式下才删除最后一条AI消息\n if (this.messageStore.lastAIMessage?.id) {\n const messageId = this.messageStore.lastAIMessage.id;\n this.messageStore.removeMessage(messageId);\n\n // 发布消息删除事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_DELETE, {\n messageId,\n messages: this.messages,\n });\n }\n }\n } catch (error) {\n console.warn('Error during service cleanup:', error);\n }\n }\n\n /**\n * 注册内容块合并策略\n * @param type 内容类型,如'text'、'markdown'等\n * @param handler 合并处理函数,接收新块和现有块,返回合并后的内容块\n * @description 用于自定义不同类型内容的增量更新逻辑\n */\n public registerMergeStrategy<T extends AIMessageContent>(\n type: T['type'], // 使用类型中定义的type字段作为参数类型\n handler: (chunk: T, existing?: T) => T,\n ) {\n this.messageProcessor.registerHandler(type, handler);\n }\n\n /**\n * 设置消息列表\n * @param messages 要设置的消息数组\n * @param mode 设置模式:'replace'(替换)、'prepend'(前置)、'append'(追加),默认为'replace'\n * @description 用于批量更新消息,如加载历史消息或重置对话\n */\n public setMessages(messages: ChatMessagesData[], mode: ChatMessageSetterMode = 'replace') {\n this.messageStore.setMessages(messages, mode);\n }\n\n /**\n * 清空所有消息\n * @description 清除消息存储中的所有历史记录\n */\n public clearMessages(): void {\n this.messageStore.clearHistory();\n\n // 发布消息清空事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CLEAR, {\n timestamp: Date.now(),\n });\n }\n\n /**\n * 重新生成AI回复\n * @param keepVersion 是否保留历史版本,默认为false\n * @description\n * - 当keepVersion=false时:删除最后一条AI消息,创建新消息并重新请求\n * - 当keepVersion=true时:保留旧消息,创建分支消息并重新请求\n */\n public async regenerateAIMessage(keepVersion = false) {\n const { lastAIMessage } = this.messageStore;\n if (!lastAIMessage) return;\n\n if (!keepVersion) {\n // 删除最后一条AI消息\n this.messageStore.removeMessage(lastAIMessage.id);\n } else {\n // todo: 保留历史版本,创建新分支\n this.messageStore.createMessageBranch(lastAIMessage.id);\n }\n\n // 创建新的AI消息\n const newAIMessage = this.messageProcessor.createAssistantMessage();\n this.messageStore.createMessage(newAIMessage);\n\n // 重新发起请求\n const params = {\n ...(this.lastRequestParams || {}),\n messageID: newAIMessage.id,\n prompt: this.lastRequestParams?.prompt ?? '',\n };\n\n await this.sendRequest(params);\n }\n\n /**\n * 发送请求获取AI回复\n * @param params 请求参数\n * @description 根据配置选择流式或批量请求模式,处理响应并更新消息状态\n */\n public async sendRequest(params: ChatRequestParams) {\n const { messageID: id } = params;\n\n // 发布请求开始事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_START, {\n params,\n messageId: id,\n });\n\n try {\n if (this.config.stream) {\n // 处理sse流式响应模式\n this.stopReceive = false;\n await this.handleStreamRequest(params);\n } else {\n // 处理批量响应模式\n await this.handleBatchRequest(params);\n }\n this.lastRequestParams = params;\n } catch (error) {\n this.setMessageStatus(id!, 'error');\n\n // 发布请求错误事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {\n messageId: id!,\n error,\n params,\n });\n\n throw error;\n }\n }\n\n /**\n * 根据名称获取工具调用\n * @param name 工具调用名称\n * @returns 匹配的工具调用对象,如果未找到则返回undefined\n * @description 用于获取特定名称的工具调用信息,仅在AGUI协议下可用\n */\n public getToolcallByName(name: string): ToolCall | undefined {\n return this.aguiAdapter?.getToolcallByName(name);\n }\n\n private async handleBatchRequest(params: ChatRequestParams) {\n const id = params.messageID;\n if (!id) return;\n this.setMessageStatus(id, 'pending');\n const result = await this.llmService.handleBatchRequest(params, this.config);\n if (result) {\n this.processMessageResult(id, result);\n this.setMessageStatus(id, 'complete');\n\n // 发布请求完成事件\n const message = this.messageStore.getMessageByID(id);\n if (message) {\n this.eventBus.emit(ChatEngineEventType.REQUEST_COMPLETE, {\n messageId: id,\n params,\n message,\n });\n }\n } else {\n this.setMessageStatus(id, 'error');\n\n // 发布请求错误事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {\n messageId: id,\n error: new Error('Batch request returned empty result'),\n params,\n });\n }\n }\n\n private handleError(id: string, error: unknown) {\n this.setMessageStatus(id, 'error');\n this.config.onError?.(error as Error);\n\n // 发布请求错误事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {\n messageId: id,\n error,\n });\n }\n\n private handleComplete(id: string, isAborted: boolean, params: ChatRequestParams, chunk?: unknown) {\n // 先调用用户自定义的 onComplete 回调,让业务层决定如何处理\n const customResult = this.config.onComplete?.(isAborted, params, chunk);\n // 如果用户返回了自定义内容,处理这些内容\n if (Array.isArray(customResult) || (customResult && 'status' in customResult)) {\n this.processMessageResult(id, customResult);\n } else {\n // 所有消息内容块检查,只要有一个失败,消息的status就是失败\n const allContentFailed = this.messageStore.messages.find((content) => content.status === 'error');\n // eslint-disable-next-line no-nested-ternary\n this.setMessageStatus(id, isAborted ? 'stop' : allContentFailed ? 'error' : 'complete');\n }\n\n // 发布请求完成/中止事件\n const message = this.messageStore.getMessageByID(id);\n if (message) {\n if (isAborted) {\n this.eventBus.emit(ChatEngineEventType.REQUEST_ABORT, {\n messageId: id,\n params,\n });\n } else {\n this.eventBus.emit(ChatEngineEventType.REQUEST_COMPLETE, {\n messageId: id,\n params,\n message,\n });\n }\n }\n }\n\n /**\n * 处理流式请求\n * 根据协议类型选择不同的处理策略\n * SSE 原始数据 → isValidChunk验证 → onMessage解析 → processMessageResult\n */\n private async handleStreamRequest(params: ChatRequestParams) {\n const id = params.messageID;\n const isAGUI = this.config.protocol === 'agui';\n const isOpenClaw = this.config.protocol === 'openclaw';\n\n if (id) {\n this.setMessageStatus(id, 'streaming');\n }\n\n // 根据协议类型选择处理策略\n if (isAGUI && this.aguiAdapter) {\n await this.handleAGUIStreamRequest(params, id);\n } else if (isOpenClaw) {\n await this.handleOpenClawStreamRequest(params, id);\n } else {\n await this.handleDefaultStreamRequest(params, id);\n }\n }\n\n /**\n * 处理AGUI协议的流式请求\n */\n private async handleAGUIStreamRequest(params: ChatRequestParams, messageId?: string) {\n await this.llmService.handleStreamRequest(params, {\n ...this.config,\n onMessage: (chunk: SSEChunkData) => {\n if (this.stopReceive || !messageId) return null;\n\n let result: AIMessageContent | AIMessageContent[] | null = null;\n\n // SSE数据 → AGUIEventMapper.mapEvent → 用户自定义onMessage(解析后数据 + 原始chunk)\n // 首先使用AGUI适配器进行通用协议解析\n if (this.aguiAdapter) {\n result = this.aguiAdapter.handleAGUIEvent(chunk, {\n onRunStart: (event) => {\n // 重置适配器状态,确保新一轮对话从干净状态开始\n this.aguiAdapter?.reset();\n this.config.onStart?.(JSON.stringify(event));\n // 发布 AGUI 运行开始事件\n this.eventBus.emit(ChatEngineEventType.AGUI_RUN_START, {\n runId: event.runId || '',\n threadId: event.threadId,\n timestamp: Date.now(),\n });\n },\n onRunComplete: (isAborted, requestParams, event) => {\n this.handleComplete(messageId, isAborted, requestParams, event);\n // 发布 AGUI 运行完成事件\n if (!isAborted) {\n this.eventBus.emit(ChatEngineEventType.AGUI_RUN_COMPLETE, {\n runId: event?.runId || '',\n threadId: event?.threadId,\n timestamp: Date.now(),\n });\n }\n },\n onRunError: (error) => {\n this.handleError(messageId, error);\n // 发布 AGUI 运行错误事件\n this.eventBus.emit(ChatEngineEventType.AGUI_RUN_ERROR, {\n error,\n });\n },\n });\n }\n\n // 然后调用用户自定义的onMessage,传入解析后的结果和原始数据\n if (this.config.onMessage) {\n const userResult = this.config.onMessage(chunk, this.messageStore.getMessageByID(messageId), result);\n // 如果用户返回了自定义结果,使用用户的结果\n if (userResult) {\n result = userResult;\n }\n }\n\n // 发布流数据事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {\n messageId,\n chunk,\n content: result,\n });\n\n // 处理消息结果\n this.processMessageResult(messageId, result);\n return result;\n },\n onError: (error) => {\n if (messageId) this.handleError(messageId, error);\n },\n onComplete: (isAborted) => {\n // AGUI的完成事件由AGUIAdapter内部处理,这里只处理中断情况\n if (isAborted && messageId) {\n this.handleComplete(messageId, isAborted, params);\n }\n },\n });\n }\n\n /**\n * 处理默认协议的流式请求\n */\n private async handleDefaultStreamRequest(params: ChatRequestParams, messageId?: string) {\n await this.llmService.handleStreamRequest(params, {\n ...this.config,\n onStart: (chunk) => {\n this.config.onStart?.(chunk);\n },\n onMessage: (chunk: SSEChunkData) => {\n if (this.stopReceive || !messageId) return null;\n\n let result = null;\n\n // 使用默认的消息处理\n if (this.config.onMessage) {\n result = this.config.onMessage(chunk, this.messageStore.getMessageByID(messageId));\n }\n\n // 发布流数据事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {\n messageId,\n chunk,\n content: result,\n });\n\n // 处理消息结果\n this.processMessageResult(messageId, result);\n return result;\n },\n onError: (error) => {\n if (messageId) this.handleError(messageId, error);\n },\n onComplete: (isAborted) => {\n if (messageId) {\n this.handleComplete(messageId, isAborted, params);\n }\n },\n });\n }\n\n /**\n * 处理 OpenClaw 协议的流式请求\n *\n * OpenClaw 使用 WebSocket 连接,消息流由 LLMService 内部的 OpenClawAdapter 处理。\n * Adapter 将 OpenClaw 事件转换为 AIMessageContent 后,通过 onMessage 回调传递给 ChatEngine。\n */\n private async handleOpenClawStreamRequest(params: ChatRequestParams, messageId?: string) {\n await this.llmService.handleStreamRequest(params, {\n ...this.config,\n onStart: (chunk) => {\n this.config.onStart?.(chunk);\n },\n onMessage: (chunk: SSEChunkData) => {\n if (this.stopReceive || !messageId) return null;\n\n // OpenClaw 的 chunk.data 已经是 AIMessageContent 格式(由 OpenClawAdapter 转换)\n let result: AIMessageContent | AIMessageContent[] | null = chunk.data;\n\n // 允许用户通过 onMessage 进行自定义处理\n if (this.config.onMessage) {\n const userResult = this.config.onMessage(chunk, this.messageStore.getMessageByID(messageId), result);\n if (userResult) {\n result = userResult;\n }\n }\n\n // 发布流数据事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {\n messageId,\n chunk,\n content: result,\n });\n\n // 处理消息结果\n this.processMessageResult(messageId, result);\n return result;\n },\n onError: (error) => {\n if (messageId) this.handleError(messageId, error);\n },\n onComplete: (isAborted) => {\n if (messageId) {\n this.handleComplete(messageId, isAborted, params);\n }\n },\n });\n }\n\n /**\n * 统一处理消息结果\n * 支持单个内容块、多个内容块和增量更新\n */\n private processMessageResult(messageId: string, result: AIMessageContent | AIMessageContent[] | null) {\n if (!result) return;\n\n // 根据原始类型选择更新方式\n Array.isArray(result)\n ? this.messageStore.updateMultipleContents(messageId, result)\n : this.processContentUpdate(messageId, result);\n\n // 发布消息更新事件\n const message = this.messageStore.getMessageByID(messageId);\n if (message) {\n this.eventBus.emit(ChatEngineEventType.MESSAGE_UPDATE, {\n messageId,\n content: result,\n message,\n });\n\n // AG-UI 协议:发布细粒度事件\n if (this.aguiAdapter) {\n this.emitAGUIDetailEvents(messageId, result);\n }\n }\n }\n\n /**\n * 发布 AG-UI 细粒度事件\n * 根据内容类型分发到对应的事件通道\n * todo: 这里的类型 any问题\n */\n private emitAGUIDetailEvents(messageId: string, result: AIMessageContent | AIMessageContent[]) {\n const contents = Array.isArray(result) ? result : [result];\n for (const content of contents) {\n // Activity 事件\n if ((content as any).data.activityType) {\n this.eventBus.emit(ChatEngineEventType.AGUI_ACTIVITY, {\n activityType: (content as any).data.activityType,\n messageId,\n content: (content as any)?.data?.content,\n });\n }\n\n // ToolCall 事件\n if ((content as any)?.data?.eventType?.startsWith('TOOL_CALL')) {\n this.eventBus.emit(ChatEngineEventType.AGUI_TOOLCALL, {\n toolCall: (content as any).data,\n eventType: (content as any).data.eventType,\n });\n }\n }\n }\n\n private convertMessages(messages?: ChatMessagesData[]) {\n if (!messages) return { messageIds: [], messages: [] };\n\n return {\n messageIds: messages.map((msg) => msg.id),\n messages,\n };\n }\n\n private setMessageStatus(messageId: string, status: ChatMessagesData['status']) {\n const previousStatus = this.messageStore.getMessageByID(messageId)?.status;\n this.messageStore.setMessageStatus(messageId, status);\n\n // 发布消息状态变化事件\n if (status) {\n this.eventBus.emit(ChatEngineEventType.MESSAGE_STATUS_CHANGE, {\n messageId,\n status,\n previousStatus,\n });\n }\n }\n\n // 处理内容更新逻辑\n private processContentUpdate(messageId: string, rawChunk: AIContentChunkUpdate) {\n const message = this.messageStore.messages.find((m) => m.id === messageId);\n if (!message || !isAIMessage(message) || !message.content) return;\n\n let targetIndex: number;\n // 作为新的内容块追加\n if ((rawChunk as any)?.strategy === 'append') {\n targetIndex = -1;\n } else {\n // merge 策略:按 type 查找最后一个匹配的类型\n // 通过 type (如 toolcall-${toolCallName}) 来定位要更新的内容块\n targetIndex = message.content.findIndex((content: AIMessageContent) => content.type === rawChunk.type);\n if (targetIndex !== -1) {\n // 找到最后一个匹配的类型(从后往前查找)\n for (let i = message.content.length - 1; i >= 0; i--) {\n if (message.content[i].type === rawChunk.type) {\n targetIndex = i;\n break;\n }\n }\n }\n }\n const processed = this.messageProcessor.processContentUpdate(\n targetIndex !== -1 ? message.content[targetIndex] : undefined,\n rawChunk,\n );\n\n this.messageStore.appendContent(messageId, processed, targetIndex);\n }\n}\n\nexport * from './utils';\nexport * from './adapters';\nexport * from './event-bus';\nexport * from './adapters';\nexport type * from './type';\n"],"names":["ChatEngine","eventBusOptions","_classCallCheck","_defineProperty","messageProcessor","MessageProcessor","messageStore","MessageStore","eventBus","ChatEventBus","_createClass","key","get","messages","_this$messages$at","at","status","value","destroy","emit","ChatEngineEventType","ENGINE_DESTROY","timestamp","Date","now","abortChat","clearHistory","aguiAdapter","init","configSetter","initialMessages","initialize","convertMessages","config","llmService","LLMService","protocol","AGUIAdapter","ENGINE_INIT","_sendUserMessage","_asyncToGenerator","_regeneratorRuntime","mark","_callee","requestParams","sendRequest","prompt","attachments","customParams","hasValidPrompt","hasValidAttachments","userMessage","aiMessage","params","_args","arguments","wrap","_context","prev","next","length","undefined","_objectWithoutProperties","_excluded","trim","Array","isArray","console","warn","abrupt","createUserMessage","createAssistantMessage","createMultiMessages","MESSAGE_CREATE","message","_objectSpread","messageID","id","stop","sendUserMessage","_x","apply","_sendSystemMessage","_callee2","msg","systemMessage","_context2","role","content","type","data","createMessage","sendSystemMessage","_callee3","options","_options$params","_options$sendRequest","newAIMessage","_args3","_context3","sendAIMessage","_sendAIMessage","_abortChat","_callee4","_this$config","_this$messageStore$la","messageId","_context4","stopReceive","onAbort","closeConnect","stream","lastAIMessage","removeMessage","MESSAGE_DELETE","error","registerMergeStrategy","handler","registerHandler","setMessages","mode","clearMessages","MESSAGE_CLEAR","_regenerateAIMessage","_callee5","_this$lastRequestPara","_this$lastRequestPara2","keepVersion","_args5","_context5","createMessageBranch","lastRequestParams","regenerateAIMessage","_sendRequest","_callee6","_t","_context6","REQUEST_START","handleStreamRequest","handleBatchRequest","setMessageStatus","REQUEST_ERROR","getToolcallByName","name","_this$aguiAdapter","_handleBatchRequest","_callee7","result","_context7","processMessageResult","getMessageByID","REQUEST_COMPLETE","Error","handleError","_this$config$onError","_this$config2","onError","call","handleComplete","isAborted","chunk","_this$config$onComple","_this$config3","customResult","onComplete","allContentFailed","find","REQUEST_ABORT","_handleStreamRequest","_callee8","isAGUI","isOpenClaw","_context8","handleAGUIStreamRequest","handleOpenClawStreamRequest","handleDefaultStreamRequest","_callee9","_this","_context9","onMessage","handleAGUIEvent","onRunStart","event","_this$aguiAdapter2","_this$config$onStart","_this$config4","reset","onStart","JSON","stringify","AGUI_RUN_START","runId","threadId","onRunComplete","AGUI_RUN_COMPLETE","onRunError","AGUI_RUN_ERROR","userResult","REQUEST_STREAM","_x6","_x7","_handleAGUIStreamRequest","_handleDefaultStreamRequest","_callee0","_this2","_context0","_this2$config$onStart","_this2$config","_x8","_x9","_handleOpenClawStreamRequest","_callee1","_this3","_context1","_this3$config$onStart","_this3$config","_x0","_x1","updateMultipleContents","processContentUpdate","MESSAGE_UPDATE","emitAGUIDetailEvents","contents","_iterator","_createForOfIteratorHelper","_step","s","n","done","_content$data2","activityType","_content$data","AGUI_ACTIVITY","eventType","startsWith","AGUI_TOOLCALL","toolCall","err","e","f","messageIds","map","_this$messageStore$ge","previousStatus","MESSAGE_STATUS_CHANGE","rawChunk","m","isAIMessage","targetIndex","strategy","findIndex","i","processed","appendContent"],"mappings":"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"}
@@ -18,7 +18,7 @@ export { ActivityRenderer } from './components/activity/render.js';
18
18
  export { AgentStateProvider } from './components/provider/agent-state.js';
19
19
  export { JsonRenderActivityRenderer } from './components/json-render/renderer/JsonRenderActivityRenderer.js';
20
20
  export { A2UIJsonRenderActivityRenderer } from './components/json-render/renderer/A2UIJsonRenderActivityRenderer.js';
21
- export { d as A2UIButton, A as A2UITextField, a as a2uiRegistry, g as createA2UIJsonRenderActivityConfig, b as createA2UIRegistry, c as createCustomRegistry, f as createJsonRenderActivityConfig, t as tdesignRegistry, e as withA2UIBinding, w as withStableProps } from '../_chunks/dep-58d90dfe.js';
21
+ export { d as A2UIButton, A as A2UITextField, a as a2uiRegistry, g as createA2UIJsonRenderActivityConfig, b as createA2UIRegistry, c as createCustomRegistry, f as createJsonRenderActivityConfig, t as tdesignRegistry, e as withA2UIBinding, w as withStableProps } from '../_chunks/dep-771678df.js';
22
22
  export { DataProvider, useDataBinding, useDataState, useDataStore, useDataUpdate, useDataValue } from './components/json-render/contexts/data.js';
23
23
  export { VisibilityProvider, useIsVisible, useVisibility } from './components/json-render/contexts/visibility.js';
24
24
  export { ActionProvider, ConfirmDialog, useAction, useActions } from './components/json-render/contexts/actions.js';
package/es/index.js CHANGED
@@ -26,7 +26,7 @@ export { ActivityRenderer } from './chat-engine/components/activity/render.js';
26
26
  export { AgentStateProvider } from './chat-engine/components/provider/agent-state.js';
27
27
  export { JsonRenderActivityRenderer } from './chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js';
28
28
  export { A2UIJsonRenderActivityRenderer } from './chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js';
29
- export { d as A2UIButton, A as A2UITextField, a as a2uiRegistry, g as createA2UIJsonRenderActivityConfig, b as createA2UIRegistry, c as createCustomRegistry, f as createJsonRenderActivityConfig, t as tdesignRegistry, e as withA2UIBinding, w as withStableProps } from './_chunks/dep-58d90dfe.js';
29
+ export { d as A2UIButton, A as A2UITextField, a as a2uiRegistry, g as createA2UIJsonRenderActivityConfig, b as createA2UIRegistry, c as createCustomRegistry, f as createJsonRenderActivityConfig, t as tdesignRegistry, e as withA2UIBinding, w as withStableProps } from './_chunks/dep-771678df.js';
30
30
  export { DataProvider, useDataBinding, useDataState, useDataStore, useDataUpdate, useDataValue } from './chat-engine/components/json-render/contexts/data.js';
31
31
  export { VisibilityProvider, useIsVisible, useVisibility } from './chat-engine/components/json-render/contexts/visibility.js';
32
32
  export { ActionProvider, ConfirmDialog, useAction, useActions } from './chat-engine/components/json-render/contexts/actions.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tdesign-react/chat",
3
- "version": "1.1.0-alpha.12",
3
+ "version": "1.1.0-alpha.13",
4
4
  "title": "@tdesign-react/chat",
5
5
  "description": "TDesign Pro Component for AIGC",
6
6
  "module": "es/index.js",