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

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.
Files changed (140) hide show
  1. package/es/_chunks/dep-13fe70ea.js +438 -0
  2. package/es/_chunks/dep-13fe70ea.js.map +1 -0
  3. package/es/_chunks/dep-5e2400d2.js +438 -0
  4. package/es/_chunks/dep-5e2400d2.js.map +1 -0
  5. package/es/_chunks/dep-60f2a734.js +169 -0
  6. package/es/_chunks/dep-60f2a734.js.map +1 -0
  7. package/es/_chunks/dep-98d23dfa.js +169 -0
  8. package/es/_chunks/dep-98d23dfa.js.map +1 -0
  9. package/es/_chunks/dep-991f7c12.js +1247 -0
  10. package/es/_chunks/dep-991f7c12.js.map +1 -0
  11. package/es/_chunks/dep-b4eec30f.js +1247 -0
  12. package/es/_chunks/dep-b4eec30f.js.map +1 -0
  13. package/es/_util/reactify.js +1 -1
  14. package/es/_util/useDynamicStyle.js +1 -1
  15. package/es/attachments/index.js +1 -1
  16. package/es/chat-actionbar/index.js +1 -1
  17. package/es/chat-engine/components/activity/index.js +2 -2
  18. package/es/chat-engine/components/activity/registry.js +1 -1
  19. package/es/chat-engine/components/activity/render.js +2 -2
  20. package/es/chat-engine/components/activity/types.js +1 -1
  21. package/es/chat-engine/components/index.js +4 -4
  22. package/es/chat-engine/components/json-render/catalog/atomic/button.js +1 -1
  23. package/es/chat-engine/components/json-render/catalog/atomic/card.js +1 -1
  24. package/es/chat-engine/components/json-render/catalog/atomic/input.js +4 -4
  25. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +1 -1
  26. package/es/chat-engine/components/json-render/catalog/atomic/text.js +1 -1
  27. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +1 -1
  28. package/es/chat-engine/components/json-render/contexts/actions.js +2 -2
  29. package/es/chat-engine/components/json-render/contexts/data.js +2 -2
  30. package/es/chat-engine/components/json-render/contexts/index.js +2 -2
  31. package/es/chat-engine/components/json-render/contexts/store.js +1 -1
  32. package/es/chat-engine/components/json-render/contexts/tree.js +1 -1
  33. package/es/chat-engine/components/json-render/contexts/validation.js +2 -2
  34. package/es/chat-engine/components/json-render/contexts/visibility.js +2 -2
  35. package/es/chat-engine/components/json-render/index.js +4 -4
  36. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +4 -4
  37. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +4 -4
  38. package/es/chat-engine/components/json-render/registry/config.js +4 -4
  39. package/es/chat-engine/components/json-render/registry/index.js +4 -4
  40. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +3 -3
  41. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +3 -3
  42. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +2 -2
  43. package/es/chat-engine/components/json-render/renderer/_index.js +2 -2
  44. package/es/chat-engine/components/json-render/types.js +1 -1
  45. package/es/chat-engine/components/provider/agent-state.js +2 -2
  46. package/es/chat-engine/components/shared/ComponentErrorBoundary.js +1 -1
  47. package/es/chat-engine/components/shared/createRegistry.js +1 -1
  48. package/es/chat-engine/components/shared/index.js +1 -1
  49. package/es/chat-engine/components/shared/useRegistrationListener.js +1 -1
  50. package/es/chat-engine/components/toolcall/index.js +2 -2
  51. package/es/chat-engine/components/toolcall/registry.js +1 -1
  52. package/es/chat-engine/components/toolcall/render.js +2 -2
  53. package/es/chat-engine/components/toolcall/types.js +1 -1
  54. package/es/chat-engine/core/adapters/a2ui/index.js +1 -1
  55. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +1 -1
  56. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +1 -1
  57. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +1 -1
  58. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +1 -1
  59. package/es/chat-engine/core/adapters/a2ui/types/index.js +1 -1
  60. package/es/chat-engine/core/adapters/a2ui/types/types.js +1 -1
  61. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1 -1
  62. package/es/chat-engine/core/adapters/a2ui/utils/index.js +1 -1
  63. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +1 -1
  64. package/es/chat-engine/core/adapters/agui/ActivityManager.js +1 -1
  65. package/es/chat-engine/core/adapters/agui/StateManager.js +1 -1
  66. package/es/chat-engine/core/adapters/agui/event-mapper.js +1 -1
  67. package/es/chat-engine/core/adapters/agui/index.js +1 -1
  68. package/es/chat-engine/core/adapters/agui/types/events.js +1 -1
  69. package/es/chat-engine/core/adapters/agui/types/index.js +1 -1
  70. package/es/chat-engine/core/adapters/agui/utils.js +1 -1
  71. package/es/chat-engine/core/adapters/index.js +1 -1
  72. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +1 -1
  73. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +1 -1
  74. package/es/chat-engine/core/adapters/json-render/engine.js +1 -1
  75. package/es/chat-engine/core/adapters/json-render/index.js +1 -1
  76. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +1 -1
  77. package/es/chat-engine/core/adapters/json-render/types/core.js +1 -1
  78. package/es/chat-engine/core/adapters/json-render/types/index.js +1 -1
  79. package/es/chat-engine/core/adapters/openclaw/event-mapper.js +1 -1
  80. package/es/chat-engine/core/adapters/openclaw/index.js +41 -14
  81. package/es/chat-engine/core/adapters/openclaw/index.js.map +1 -1
  82. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js +1 -1
  83. package/es/chat-engine/core/adapters/openclaw/types/config.d.ts +34 -2
  84. package/es/chat-engine/core/adapters/openclaw/types/config.js +5 -3
  85. package/es/chat-engine/core/adapters/openclaw/types/config.js.map +1 -1
  86. package/es/chat-engine/core/adapters/openclaw/types/events.js +1 -1
  87. package/es/chat-engine/core/adapters/openclaw/types/index.js +1 -1
  88. package/es/chat-engine/core/adapters/openclaw/types/messages.d.ts +13 -0
  89. package/es/chat-engine/core/adapters/openclaw/types/messages.js +1 -1
  90. package/es/chat-engine/core/adapters/openclaw/types/messages.js.map +1 -1
  91. package/es/chat-engine/core/adapters/openclaw/utils.d.ts +26 -0
  92. package/es/chat-engine/core/adapters/openclaw/utils.js +93 -2
  93. package/es/chat-engine/core/adapters/openclaw/utils.js.map +1 -1
  94. package/es/chat-engine/core/adapters/shared/activity-manager.js +1 -1
  95. package/es/chat-engine/core/adapters/shared/content-factory.js +1 -1
  96. package/es/chat-engine/core/adapters/shared/index.js +1 -1
  97. package/es/chat-engine/core/adapters/shared/merge-utils.js +1 -1
  98. package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
  99. package/es/chat-engine/core/event-bus/index.js +1 -1
  100. package/es/chat-engine/core/event-bus/types.js +1 -1
  101. package/es/chat-engine/core/index.js +2 -2
  102. package/es/chat-engine/core/processor/index.js +1 -1
  103. package/es/chat-engine/core/server/batch-client.js +1 -1
  104. package/es/chat-engine/core/server/connection-manager.js +1 -1
  105. package/es/chat-engine/core/server/errors.js +1 -1
  106. package/es/chat-engine/core/server/index.js +1 -1
  107. package/es/chat-engine/core/server/llm-service.js +1 -1
  108. package/es/chat-engine/core/server/sse-client.js +1 -1
  109. package/es/chat-engine/core/server/sse-parser.js +1 -1
  110. package/es/chat-engine/core/server/types.js +1 -1
  111. package/es/chat-engine/core/server/websocket-client.d.ts +4 -0
  112. package/es/chat-engine/core/server/websocket-client.js +9 -10
  113. package/es/chat-engine/core/server/websocket-client.js.map +1 -1
  114. package/es/chat-engine/core/store/message.js +2 -2
  115. package/es/chat-engine/core/store/model.js +2 -2
  116. package/es/chat-engine/core/store/reactiveState.js +2 -2
  117. package/es/chat-engine/core/type.js +1 -1
  118. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  119. package/es/chat-engine/core/utils/immutable-patch.js +1 -1
  120. package/es/chat-engine/core/utils/index.js +1 -1
  121. package/es/chat-engine/core/utils/json-patch/helpers.js +1 -1
  122. package/es/chat-engine/core/utils/json-patch/index.js +1 -1
  123. package/es/chat-engine/core/utils/logger.js +1 -1
  124. package/es/chat-engine/core/utils/performance.js +1 -1
  125. package/es/chat-engine/hooks/index.js +2 -2
  126. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  127. package/es/chat-engine/hooks/useAgentState.js +2 -2
  128. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  129. package/es/chat-engine/hooks/useChat.js +2 -2
  130. package/es/chat-engine/index.js +4 -4
  131. package/es/chat-filecard/index.js +1 -1
  132. package/es/chat-loading/index.js +1 -1
  133. package/es/chat-markdown/index.js +1 -1
  134. package/es/chat-message/index.js +1 -1
  135. package/es/chat-sender/index.js +1 -1
  136. package/es/chat-thinking/index.js +1 -1
  137. package/es/chatbot/index.js +1 -1
  138. package/es/index.js +4 -4
  139. package/es/style/index.js +1 -1
  140. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-client.js","sources":["../../../../../pro-components/chat/chat-engine/core/server/websocket-client.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport EventEmitter from '../utils/eventEmitter';\nimport { LoggerManager } from '../utils/logger';\nimport { ConnectionError, TimeoutError } from './errors';\nimport type { ConnectionInfo } from './types';\n\n/**\n * WebSocket 连接状态\n */\nexport enum WebSocketConnectionState {\n DISCONNECTED = 'disconnected',\n CONNECTING = 'connecting',\n CONNECTED = 'connected',\n CLOSING = 'closing',\n CLOSED = 'closed',\n ERROR = 'error',\n}\n\n/**\n * WebSocket 客户端配置\n */\nexport interface WebSocketClientConfig {\n /** 请求超时时间(毫秒) */\n timeout?: number;\n /** 重连间隔(毫秒) */\n retryInterval?: number;\n /** 最大重连次数 */\n maxRetries?: number;\n /** 心跳间隔(毫秒),0 表示禁用 */\n heartbeatInterval?: number;\n}\n\n/**\n * 默认 WebSocket 配置\n */\nexport const DEFAULT_WS_CONFIG: Required<WebSocketClientConfig> = {\n timeout: 30000,\n retryInterval: 1000,\n maxRetries: 5,\n heartbeatInterval: 30000,\n};\n\n/**\n * WebSocket 状态变更事件\n */\nexport interface WSStateChangeEvent {\n connectionId: string;\n from: WebSocketConnectionState;\n to: WebSocketConnectionState;\n timestamp: number;\n}\n\n/**\n * WebSocket 客户端\n *\n * 设计原则:\n * - 与 SSEClient 保持相同的事件接口(message、error、complete、start、stateChange)\n * - 支持心跳保活、自动重连\n * - 支持消息发送和接收\n */\nexport class WebSocketClient extends EventEmitter {\n public readonly connectionId: string;\n\n private state = WebSocketConnectionState.DISCONNECTED;\n\n private ws: WebSocket | null = null;\n\n private config: Required<WebSocketClientConfig>;\n\n private logger = LoggerManager.getLogger();\n\n private url: string;\n\n private connectionInfo: ConnectionInfo;\n\n private retryCount = 0;\n\n private reconnectTimer?: ReturnType<typeof setTimeout>;\n\n private heartbeatTimer?: ReturnType<typeof setInterval>;\n\n private timeoutTimer?: ReturnType<typeof setTimeout>;\n\n private manualClose = false;\n\n private firstMessageReceived = false;\n\n constructor(url: string) {\n super();\n this.url = url;\n this.connectionId = this.generateConnectionId();\n this.config = { ...DEFAULT_WS_CONFIG };\n\n this.connectionInfo = {\n id: this.connectionId,\n url,\n state: this.state,\n createdAt: Date.now(),\n retryCount: 0,\n lastActivity: Date.now(),\n stats: {},\n };\n\n this.setupInternalEventHandlers();\n }\n\n /**\n * 连接 WebSocket 服务\n */\n async connect(config?: WebSocketClientConfig): Promise<void> {\n if (this.state === WebSocketConnectionState.CONNECTED || this.state === WebSocketConnectionState.CONNECTING) {\n return;\n }\n\n this.config = {\n ...DEFAULT_WS_CONFIG,\n ...config,\n };\n\n this.manualClose = false;\n this.setState(WebSocketConnectionState.CONNECTING);\n\n try {\n await this.establishConnection();\n } catch (error) {\n this.handleConnectionError(error as Error);\n }\n }\n\n /**\n * 发送消息\n */\n send(data: string | object): void {\n if (this.state !== WebSocketConnectionState.CONNECTED || !this.ws) {\n this.logger.warn(`Cannot send message: WebSocket not connected (state: ${this.state})`);\n return;\n }\n\n const message = typeof data === 'string' ? data : JSON.stringify(data);\n this.ws.send(message);\n this.connectionInfo.lastActivity = Date.now();\n }\n\n /**\n * 关闭连接\n */\n async close(): Promise<void> {\n if (this.state === WebSocketConnectionState.DISCONNECTED || this.state === WebSocketConnectionState.CLOSING) {\n return;\n }\n\n this.manualClose = true;\n this.setState(WebSocketConnectionState.CLOSING);\n\n try {\n this.clearTimers();\n\n if (this.ws) {\n this.ws.close(1000, 'Client initiated close');\n this.ws = null;\n }\n\n this.emit('complete', true);\n } catch (error) {\n this.logger.error('WebSocket close failed:', error);\n this.emit('error', error);\n } finally {\n this.setState(WebSocketConnectionState.CLOSED);\n }\n }\n\n /**\n * 中止连接(与 SSEClient 接口保持一致)\n */\n async abort(): Promise<void> {\n return this.close();\n }\n\n /**\n * 获取连接状态\n */\n getStatus(): WebSocketConnectionState {\n return this.state;\n }\n\n /**\n * 获取连接信息\n */\n getInfo(): ConnectionInfo {\n return {\n ...this.connectionInfo,\n state: this.state,\n retryCount: this.retryCount,\n };\n }\n\n /**\n * 检查是否已连接\n */\n isConnected(): boolean {\n return this.state === WebSocketConnectionState.CONNECTED && this.ws?.readyState === WebSocket.OPEN;\n }\n\n /**\n * 建立 WebSocket 连接\n */\n private establishConnection(): Promise<void> {\n return new Promise((resolve, reject) => {\n try {\n this.ws = new WebSocket(this.url);\n\n // 连接超时处理\n if (this.config.timeout > 0) {\n this.timeoutTimer = setTimeout(() => {\n if (this.state === WebSocketConnectionState.CONNECTING) {\n const error = new TimeoutError(`WebSocket connection timeout after ${this.config.timeout}ms`);\n this.handleConnectionError(error);\n reject(error);\n }\n }, this.config.timeout);\n }\n\n this.ws.onopen = () => {\n this.clearTimeout();\n this.setState(WebSocketConnectionState.CONNECTED);\n this.retryCount = 0;\n this.connectionInfo.lastActivity = Date.now();\n\n // 启动心跳\n this.startHeartbeat();\n\n this.logger.info(`WebSocket ${this.connectionId} connected to ${this.url}`);\n resolve();\n };\n\n this.ws.onmessage = (event) => {\n this.handleMessage(event.data);\n };\n\n this.ws.onerror = (event) => {\n this.logger.error(`WebSocket ${this.connectionId} error:`, event);\n const error = new ConnectionError('WebSocket connection error');\n this.emit('error', error);\n };\n\n this.ws.onclose = (event) => {\n this.handleClose(event.code, event.reason);\n };\n } catch (error) {\n reject(error);\n }\n });\n }\n\n /**\n * 处理接收到的消息\n */\n private handleMessage(data: string): void {\n this.connectionInfo.lastActivity = Date.now();\n\n // 首次消息,发出 start 事件\n if (!this.firstMessageReceived) {\n this.firstMessageReceived = true;\n this.emit('start', data);\n }\n\n // 尝试解析 JSON\n try {\n const parsed = JSON.parse(data);\n this.emit('message', {\n event: parsed.event || parsed.type || 'message',\n data: parsed,\n });\n } catch {\n // 非 JSON 消息,原样发送\n this.emit('message', {\n event: 'message',\n data,\n });\n }\n }\n\n /**\n * 处理连接关闭\n */\n private handleClose(code: number, reason: string): void {\n this.clearTimers();\n this.ws = null;\n\n if (this.manualClose || code === 1000) {\n // 正常关闭\n this.setState(WebSocketConnectionState.CLOSED);\n this.emit('complete', this.manualClose);\n this.logger.info(`WebSocket ${this.connectionId} closed normally`);\n } else {\n // 异常关闭,尝试重连\n this.setState(WebSocketConnectionState.DISCONNECTED);\n this.logger.warn(`WebSocket ${this.connectionId} closed unexpectedly: ${code} - ${reason}`);\n\n if (this.shouldReconnect()) {\n this.scheduleReconnect();\n } else {\n this.emit('complete', false);\n this.emit('error', new ConnectionError(`WebSocket closed: ${code} - ${reason}`));\n }\n }\n }\n\n /**\n * 处理连接错误\n */\n private handleConnectionError(error: Error): void {\n this.connectionInfo.error = error;\n this.setState(WebSocketConnectionState.ERROR);\n this.emit('error', error);\n\n if (this.shouldReconnect()) {\n this.scheduleReconnect();\n }\n }\n\n /**\n * 判断是否应该重连\n */\n private shouldReconnect(): boolean {\n return !this.manualClose && this.retryCount < this.config.maxRetries;\n }\n\n /**\n * 调度重连\n */\n private scheduleReconnect(): void {\n this.retryCount++;\n const delay = this.config.retryInterval * Math.pow(1.5, this.retryCount - 1);\n\n this.logger.info(`WebSocket ${this.connectionId} reconnecting in ${delay}ms (attempt ${this.retryCount}/${this.config.maxRetries})`);\n\n this.reconnectTimer = setTimeout(() => {\n if (!this.manualClose && this.state !== WebSocketConnectionState.CONNECTED) {\n this.firstMessageReceived = false;\n this.connect(this.config);\n }\n }, delay);\n }\n\n /**\n * 启动心跳\n */\n private startHeartbeat(): void {\n if (this.config.heartbeatInterval <= 0) return;\n\n this.heartbeatTimer = setInterval(() => {\n if (this.isConnected()) {\n // 发送心跳请求\n this.send({\n type: 'req',\n id: `heartbeat_${Date.now()}`,\n method: 'heartbeat',\n params: { ts: Date.now() },\n });\n }\n }, this.config.heartbeatInterval);\n }\n\n /**\n * 清理超时定时器\n */\n private clearTimeout(): void {\n if (this.timeoutTimer) {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = undefined;\n }\n }\n\n /**\n * 清理所有定时器\n */\n private clearTimers(): void {\n this.clearTimeout();\n\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = undefined;\n }\n\n if (this.heartbeatTimer) {\n clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = undefined;\n }\n }\n\n /**\n * 设置连接状态\n */\n private setState(newState: WebSocketConnectionState): void {\n const oldState = this.state;\n this.state = newState;\n this.connectionInfo.state = newState;\n\n const stateChangeEvent: WSStateChangeEvent = {\n connectionId: this.connectionId,\n from: oldState,\n to: newState,\n timestamp: Date.now(),\n };\n\n this.emit('stateChange', stateChangeEvent);\n this.logger.debug(`WebSocket ${this.connectionId} state: ${oldState} -> ${newState}`);\n }\n\n /**\n * 设置内部事件处理器\n */\n private setupInternalEventHandlers(): void {\n this.on('error', (error) => {\n this.logger.error(`WebSocket Client ${this.connectionId} error:`, error);\n });\n\n this.on('complete', (isAborted) => {\n this.logger.info(`WebSocket Client ${this.connectionId} completed, aborted: ${isAborted}`);\n });\n }\n\n /**\n * 生成连接 ID\n */\n private generateConnectionId(): string {\n const timestamp = Date.now();\n return `ws_${timestamp}_${Math.random().toString(36).substr(2, 9)}`;\n }\n}\n"],"names":["WebSocketConnectionState","DEFAULT_WS_CONFIG","timeout","retryInterval","maxRetries","heartbeatInterval","WebSocketClient","url","_this","_classCallCheck","_callSuper","_defineProperty","LoggerManager","getLogger","connectionId","generateConnectionId","config","_objectSpread","connectionInfo","id","state","createdAt","Date","now","retryCount","lastActivity","stats","setupInternalEventHandlers","_inherits","_EventEmitter","_createClass","key","value","_connect","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_t","wrap","_context","prev","next","abrupt","manualClose","setState","establishConnection","handleConnectionError","stop","connect","send","data","ws","logger","warn","concat","message","JSON","stringify","_close","_callee2","_context2","clearTimers","close","emit","error","apply","arguments","_abort","_callee3","_context3","abort","getStatus","getInfo","isConnected","_this$ws","readyState","WebSocket","OPEN","_this2","Promise","resolve","reject","timeoutTimer","setTimeout","TimeoutError","onopen","clearTimeout","startHeartbeat","info","onmessage","event","handleMessage","onerror","ConnectionError","onclose","handleClose","code","reason","firstMessageReceived","parsed","parse","type","_unused","shouldReconnect","scheduleReconnect","_this3","delay","Math","pow","reconnectTimer","_this4","heartbeatTimer","setInterval","method","params","ts","_clearTimeout","toString","clearInterval","newState","oldState","stateChangeEvent","from","to","timestamp","debug","_this5","on","isAborted","random","substr","EventEmitter"],"mappings":"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"}
1
+ {"version":3,"file":"websocket-client.js","sources":["../../../../../pro-components/chat/chat-engine/core/server/websocket-client.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport EventEmitter from '../utils/eventEmitter';\nimport { LoggerManager } from '../utils/logger';\nimport { ConnectionError, TimeoutError } from './errors';\nimport type { ConnectionInfo } from './types';\n\n/**\n * WebSocket 连接状态\n */\nexport enum WebSocketConnectionState {\n DISCONNECTED = 'disconnected',\n CONNECTING = 'connecting',\n CONNECTED = 'connected',\n CLOSING = 'closing',\n CLOSED = 'closed',\n ERROR = 'error',\n}\n\n/**\n * WebSocket 客户端配置\n */\nexport interface WebSocketClientConfig {\n /** 请求超时时间(毫秒) */\n timeout?: number;\n /** 重连间隔(毫秒) */\n retryInterval?: number;\n /** 最大重连次数 */\n maxRetries?: number;\n /** 心跳间隔(毫秒),0 表示禁用 */\n heartbeatInterval?: number;\n}\n\n/**\n * 默认 WebSocket 配置\n */\nexport const DEFAULT_WS_CONFIG: Required<WebSocketClientConfig> = {\n timeout: 30000,\n retryInterval: 1000,\n maxRetries: 5,\n heartbeatInterval: 30000,\n};\n\n/**\n * WebSocket 状态变更事件\n */\nexport interface WSStateChangeEvent {\n connectionId: string;\n from: WebSocketConnectionState;\n to: WebSocketConnectionState;\n timestamp: number;\n}\n\n/**\n * WebSocket 客户端\n *\n * 设计原则:\n * - 与 SSEClient 保持相同的事件接口(message、error、complete、start、stateChange)\n * - 支持心跳保活、自动重连\n * - 支持消息发送和接收\n */\nexport class WebSocketClient extends EventEmitter {\n public readonly connectionId: string;\n\n private state = WebSocketConnectionState.DISCONNECTED;\n\n private ws: WebSocket | null = null;\n\n private config: Required<WebSocketClientConfig>;\n\n private logger = LoggerManager.getLogger();\n\n private url: string;\n\n private connectionInfo: ConnectionInfo;\n\n private retryCount = 0;\n\n private reconnectTimer?: ReturnType<typeof setTimeout>;\n\n private heartbeatTimer?: ReturnType<typeof setInterval>;\n\n private timeoutTimer?: ReturnType<typeof setTimeout>;\n\n private manualClose = false;\n\n private firstMessageReceived = false;\n\n constructor(url: string) {\n super();\n this.url = url;\n this.connectionId = this.generateConnectionId();\n this.config = { ...DEFAULT_WS_CONFIG };\n\n this.connectionInfo = {\n id: this.connectionId,\n url,\n state: this.state,\n createdAt: Date.now(),\n retryCount: 0,\n lastActivity: Date.now(),\n stats: {},\n };\n\n this.setupInternalEventHandlers();\n }\n\n /**\n * 连接 WebSocket 服务\n */\n async connect(config?: WebSocketClientConfig): Promise<void> {\n if (this.state === WebSocketConnectionState.CONNECTED || this.state === WebSocketConnectionState.CONNECTING) {\n return;\n }\n\n this.config = {\n ...DEFAULT_WS_CONFIG,\n ...config,\n };\n\n this.manualClose = false;\n this.setState(WebSocketConnectionState.CONNECTING);\n\n try {\n await this.establishConnection();\n } catch (error) {\n this.handleConnectionError(error as Error);\n }\n }\n\n /**\n * 发送消息\n */\n send(data: string | object): void {\n if (this.state !== WebSocketConnectionState.CONNECTED || !this.ws) {\n this.logger.warn(`Cannot send message: WebSocket not connected (state: ${this.state})`);\n return;\n }\n\n const message = typeof data === 'string' ? data : JSON.stringify(data);\n this.ws.send(message);\n this.connectionInfo.lastActivity = Date.now();\n }\n\n /**\n * 关闭连接\n */\n async close(): Promise<void> {\n if (this.state === WebSocketConnectionState.DISCONNECTED || this.state === WebSocketConnectionState.CLOSING) {\n return;\n }\n\n this.manualClose = true;\n this.setState(WebSocketConnectionState.CLOSING);\n\n try {\n this.clearTimers();\n\n if (this.ws) {\n this.ws.close(1000, 'Client initiated close');\n this.ws = null;\n }\n\n this.emit('complete', true);\n } catch (error) {\n this.logger.error('WebSocket close failed:', error);\n this.emit('error', error);\n } finally {\n this.setState(WebSocketConnectionState.CLOSED);\n }\n }\n\n /**\n * 中止连接(与 SSEClient 接口保持一致)\n */\n async abort(): Promise<void> {\n return this.close();\n }\n\n /**\n * 获取连接状态\n */\n getStatus(): WebSocketConnectionState {\n return this.state;\n }\n\n /**\n * 获取连接信息\n */\n getInfo(): ConnectionInfo {\n return {\n ...this.connectionInfo,\n state: this.state,\n retryCount: this.retryCount,\n };\n }\n\n /**\n * 检查是否已连接\n */\n isConnected(): boolean {\n return this.state === WebSocketConnectionState.CONNECTED && this.ws?.readyState === WebSocket.OPEN;\n }\n\n /**\n * 建立 WebSocket 连接\n */\n private establishConnection(): Promise<void> {\n return new Promise((resolve, reject) => {\n try {\n this.ws = new WebSocket(this.url);\n\n // 连接超时处理\n if (this.config.timeout > 0) {\n this.timeoutTimer = setTimeout(() => {\n if (this.state === WebSocketConnectionState.CONNECTING) {\n const error = new TimeoutError(`WebSocket connection timeout after ${this.config.timeout}ms`);\n this.handleConnectionError(error);\n reject(error);\n }\n }, this.config.timeout);\n }\n\n this.ws.onopen = () => {\n this.clearTimeout();\n this.setState(WebSocketConnectionState.CONNECTED);\n this.retryCount = 0;\n this.connectionInfo.lastActivity = Date.now();\n\n // 启动心跳\n this.startHeartbeat();\n\n this.logger.info(`WebSocket ${this.connectionId} connected to ${this.url}`);\n resolve();\n };\n\n this.ws.onmessage = (event) => {\n this.handleMessage(event.data);\n };\n\n this.ws.onerror = (event) => {\n this.logger.error(`WebSocket ${this.connectionId} error:`, event);\n const error = new ConnectionError('WebSocket connection error');\n this.emit('error', error);\n };\n\n this.ws.onclose = (event) => {\n this.handleClose(event.code, event.reason);\n };\n } catch (error) {\n reject(error);\n }\n });\n }\n\n /**\n * 处理接收到的消息\n */\n private handleMessage(data: string): void {\n this.connectionInfo.lastActivity = Date.now();\n\n // 首次消息,发出 start 事件\n if (!this.firstMessageReceived) {\n this.firstMessageReceived = true;\n this.emit('start', data);\n }\n\n // 尝试解析 JSON\n try {\n const parsed = JSON.parse(data);\n this.emit('message', {\n event: parsed.event || parsed.type || 'message',\n data: parsed,\n });\n } catch {\n // 非 JSON 消息,原样发送\n this.emit('message', {\n event: 'message',\n data,\n });\n }\n }\n\n /**\n * 处理连接关闭\n */\n private handleClose(code: number, reason: string): void {\n this.clearTimers();\n this.ws = null;\n\n if (this.manualClose || code === 1000) {\n // 正常关闭\n this.setState(WebSocketConnectionState.CLOSED);\n this.emit('complete', this.manualClose);\n this.logger.info(`WebSocket ${this.connectionId} closed normally`);\n } else {\n // 异常关闭,尝试重连\n this.setState(WebSocketConnectionState.DISCONNECTED);\n this.logger.warn(`WebSocket ${this.connectionId} closed unexpectedly: ${code} - ${reason}`);\n\n if (this.shouldReconnect()) {\n this.scheduleReconnect();\n } else {\n this.emit('complete', false);\n this.emit('error', new ConnectionError(`WebSocket closed: ${code} - ${reason}`));\n }\n }\n }\n\n /**\n * 处理连接错误\n */\n private handleConnectionError(error: Error): void {\n this.connectionInfo.error = error;\n this.setState(WebSocketConnectionState.ERROR);\n this.emit('error', error);\n\n if (this.shouldReconnect()) {\n this.scheduleReconnect();\n }\n }\n\n /**\n * 判断是否应该重连\n */\n private shouldReconnect(): boolean {\n return !this.manualClose && this.retryCount < this.config.maxRetries;\n }\n\n /**\n * 调度重连\n */\n private scheduleReconnect(): void {\n this.retryCount++;\n const delay = this.config.retryInterval * Math.pow(1.5, this.retryCount - 1);\n\n this.logger.info(`WebSocket ${this.connectionId} reconnecting in ${delay}ms (attempt ${this.retryCount}/${this.config.maxRetries})`);\n\n this.reconnectTimer = setTimeout(() => {\n if (!this.manualClose && this.state !== WebSocketConnectionState.CONNECTED) {\n this.firstMessageReceived = false;\n this.connect(this.config);\n }\n }, delay);\n }\n\n /**\n * 启动心跳\n *\n * 注意:OpenClaw Gateway 不支持 RPC 方式的 heartbeat 方法,\n * 这里仅通过检测连接活跃度来判断是否需要重连,\n * 不再主动发送 heartbeat 请求帧。\n */\n private startHeartbeat(): void {\n if (this.config.heartbeatInterval <= 0) return;\n\n this.heartbeatTimer = setInterval(() => {\n if (!this.isConnected()) {\n return;\n }\n\n // 检测连接是否长时间无活动(2倍心跳间隔),如果是则主动关闭触发重连\n const idleTime = Date.now() - this.connectionInfo.lastActivity;\n if (idleTime > this.config.heartbeatInterval * 2) {\n this.logger.warn(`WebSocket ${this.connectionId} idle for ${idleTime}ms, reconnecting...`);\n this.ws?.close(4000, 'Heartbeat timeout');\n }\n }, this.config.heartbeatInterval);\n }\n\n /**\n * 清理超时定时器\n */\n private clearTimeout(): void {\n if (this.timeoutTimer) {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = undefined;\n }\n }\n\n /**\n * 清理所有定时器\n */\n private clearTimers(): void {\n this.clearTimeout();\n\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = undefined;\n }\n\n if (this.heartbeatTimer) {\n clearInterval(this.heartbeatTimer);\n this.heartbeatTimer = undefined;\n }\n }\n\n /**\n * 设置连接状态\n */\n private setState(newState: WebSocketConnectionState): void {\n const oldState = this.state;\n this.state = newState;\n this.connectionInfo.state = newState;\n\n const stateChangeEvent: WSStateChangeEvent = {\n connectionId: this.connectionId,\n from: oldState,\n to: newState,\n timestamp: Date.now(),\n };\n\n this.emit('stateChange', stateChangeEvent);\n this.logger.debug(`WebSocket ${this.connectionId} state: ${oldState} -> ${newState}`);\n }\n\n /**\n * 设置内部事件处理器\n */\n private setupInternalEventHandlers(): void {\n this.on('error', (error) => {\n this.logger.error(`WebSocket Client ${this.connectionId} error:`, error);\n });\n\n this.on('complete', (isAborted) => {\n this.logger.info(`WebSocket Client ${this.connectionId} completed, aborted: ${isAborted}`);\n });\n }\n\n /**\n * 生成连接 ID\n */\n private generateConnectionId(): string {\n const timestamp = Date.now();\n return `ws_${timestamp}_${Math.random().toString(36).substr(2, 9)}`;\n }\n}\n"],"names":["WebSocketConnectionState","DEFAULT_WS_CONFIG","timeout","retryInterval","maxRetries","heartbeatInterval","WebSocketClient","url","_this","_classCallCheck","_callSuper","_defineProperty","LoggerManager","getLogger","connectionId","generateConnectionId","config","_objectSpread","connectionInfo","id","state","createdAt","Date","now","retryCount","lastActivity","stats","setupInternalEventHandlers","_inherits","_EventEmitter","_createClass","key","value","_connect","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_t","wrap","_context","prev","next","abrupt","manualClose","setState","establishConnection","handleConnectionError","stop","connect","send","data","ws","logger","warn","concat","message","JSON","stringify","_close","_callee2","_context2","clearTimers","close","emit","error","apply","arguments","_abort","_callee3","_context3","abort","getStatus","getInfo","isConnected","_this$ws","readyState","WebSocket","OPEN","_this2","Promise","resolve","reject","timeoutTimer","setTimeout","TimeoutError","onopen","clearTimeout","startHeartbeat","info","onmessage","event","handleMessage","onerror","ConnectionError","onclose","handleClose","code","reason","firstMessageReceived","parsed","parse","type","_unused","shouldReconnect","scheduleReconnect","_this3","delay","Math","pow","reconnectTimer","_this4","heartbeatTimer","setInterval","idleTime","_this4$ws","_clearTimeout","toString","clearInterval","newState","oldState","stateChangeEvent","from","to","timestamp","debug","_this5","on","isAborted","random","substr","EventEmitter"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -19,7 +19,7 @@ import '@babel/runtime/helpers/typeof';
19
19
  import '@babel/runtime/helpers/objectWithoutProperties';
20
20
  import '@babel/runtime/helpers/toArray';
21
21
  import '@babel/runtime/helpers/slicedToArray';
22
- import '../../../_chunks/dep-93283bbd.js';
22
+ import '../../../_chunks/dep-b4eec30f.js';
23
23
  import '@babel/runtime/helpers/wrapNativeSuper';
24
24
 
25
25
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -14,7 +14,7 @@ import _inherits from '@babel/runtime/helpers/inherits';
14
14
  import ReactiveState from './reactiveState.js';
15
15
  import '@babel/runtime/helpers/toConsumableArray';
16
16
  import '@babel/runtime/helpers/slicedToArray';
17
- import '../../../_chunks/dep-93283bbd.js';
17
+ import '../../../_chunks/dep-b4eec30f.js';
18
18
  import '@babel/runtime/helpers/wrapNativeSuper';
19
19
  import '@babel/runtime/helpers/typeof';
20
20
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -9,7 +9,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
9
9
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
10
10
  import _createClass from '@babel/runtime/helpers/createClass';
11
11
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
12
- import { e as enablePatches, a as produceWithPatches } from '../../../_chunks/dep-93283bbd.js';
12
+ import { e as enablePatches, a as produceWithPatches } from '../../../_chunks/dep-b4eec30f.js';
13
13
  import '@babel/runtime/helpers/possibleConstructorReturn';
14
14
  import '@babel/runtime/helpers/getPrototypeOf';
15
15
  import '@babel/runtime/helpers/inherits';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -36,7 +36,7 @@ import '../core/adapters/agui/utils.js';
36
36
  import '../core/store/message.js';
37
37
  import '@babel/runtime/helpers/get';
38
38
  import '../core/store/reactiveState.js';
39
- import '../../_chunks/dep-93283bbd.js';
39
+ import '../../_chunks/dep-b4eec30f.js';
40
40
  import '../core/event-bus/index.js';
41
41
  import '../core/event-bus/ChatEventBus.js';
42
42
  import '../core/event-bus/types.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -32,7 +32,7 @@ import '../core/adapters/agui/utils.js';
32
32
  import '../core/store/message.js';
33
33
  import '@babel/runtime/helpers/get';
34
34
  import '../core/store/reactiveState.js';
35
- import '../../_chunks/dep-93283bbd.js';
35
+ import '../../_chunks/dep-b4eec30f.js';
36
36
  import '../core/event-bus/index.js';
37
37
  import '../core/event-bus/ChatEventBus.js';
38
38
  import '../core/event-bus/types.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -32,7 +32,7 @@ import '../core/adapters/agui/utils.js';
32
32
  import '../core/store/message.js';
33
33
  import '@babel/runtime/helpers/get';
34
34
  import '../core/store/reactiveState.js';
35
- import '../../_chunks/dep-93283bbd.js';
35
+ import '../../_chunks/dep-b4eec30f.js';
36
36
  import '../core/event-bus/index.js';
37
37
  import '../core/event-bus/ChatEventBus.js';
38
38
  import '../core/event-bus/types.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -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-771678df.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-13fe70ea.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';
@@ -58,7 +58,7 @@ import '@babel/runtime/helpers/getPrototypeOf';
58
58
  import '@babel/runtime/helpers/get';
59
59
  import '@babel/runtime/helpers/inherits';
60
60
  import './core/store/reactiveState.js';
61
- import '../_chunks/dep-93283bbd.js';
61
+ import '../_chunks/dep-b4eec30f.js';
62
62
  import '@babel/runtime/helpers/wrapNativeSuper';
63
63
  import '@babel/runtime/helpers/typeof';
64
64
  import './core/event-bus/index.js';
@@ -87,7 +87,7 @@ import './components/shared/index.js';
87
87
  import './components/shared/createRegistry.js';
88
88
  import './components/shared/ComponentErrorBoundary.js';
89
89
  import './components/shared/useRegistrationListener.js';
90
- import '../_chunks/dep-dbdfe7d6.js';
90
+ import '../_chunks/dep-60f2a734.js';
91
91
  import './components/json-render/renderer/JsonUIRenderer.js';
92
92
  import './components/json-render/contexts/index.js';
93
93
  import './components/json-render/contexts/tree.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
package/es/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -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-771678df.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-13fe70ea.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';
@@ -75,7 +75,7 @@ import './chat-engine/core/store/message.js';
75
75
  import '@babel/runtime/helpers/toConsumableArray';
76
76
  import '@babel/runtime/helpers/get';
77
77
  import './chat-engine/core/store/reactiveState.js';
78
- import './_chunks/dep-93283bbd.js';
78
+ import './_chunks/dep-b4eec30f.js';
79
79
  import '@babel/runtime/helpers/wrapNativeSuper';
80
80
  import './chat-engine/core/event-bus/index.js';
81
81
  import './chat-engine/core/processor/index.js';
@@ -112,7 +112,7 @@ import './chat-engine/components/shared/index.js';
112
112
  import './chat-engine/components/shared/createRegistry.js';
113
113
  import './chat-engine/components/shared/ComponentErrorBoundary.js';
114
114
  import './chat-engine/components/shared/useRegistrationListener.js';
115
- import './_chunks/dep-dbdfe7d6.js';
115
+ import './_chunks/dep-60f2a734.js';
116
116
  import './chat-engine/components/json-render/renderer/JsonUIRenderer.js';
117
117
  import './chat-engine/components/json-render/contexts/index.js';
118
118
  import './chat-engine/components/json-render/contexts/tree.js';
package/es/style/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.12
2
+ * tdesign v1.1.0-alpha.14
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tdesign-react/chat",
3
- "version": "1.1.0-alpha.13",
3
+ "version": "1.1.0-alpha.15",
4
4
  "title": "@tdesign-react/chat",
5
5
  "description": "TDesign Pro Component for AIGC",
6
6
  "module": "es/index.js",