@tdesign-react/chat 1.1.0-alpha.16 → 1.1.0-alpha.18

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 (526) hide show
  1. package/es/_chunks/{dep-3e40d789.js → dep-5d7a98b7.js} +2 -2
  2. package/es/_chunks/{dep-3e40d789.js.map → dep-5d7a98b7.js.map} +1 -1
  3. package/es/_chunks/{dep-1ca64fef.js → dep-907337f3.js} +2 -2
  4. package/es/_chunks/{dep-93283bbd.js.map → dep-907337f3.js.map} +1 -1
  5. package/es/_chunks/{dep-dfe91b1f.js → dep-e1e84ed7.js} +1 -1
  6. package/es/_chunks/{dep-13fe70ea.js.map → dep-e1e84ed7.js.map} +1 -1
  7. package/es/_chunks/{dep-076af7c3.js → dep-ee7a509c.js} +3 -3
  8. package/es/_chunks/{dep-076af7c3.js.map → dep-ee7a509c.js.map} +1 -1
  9. package/es/_util/reactify.js +1 -1
  10. package/es/_util/useDynamicStyle.js +1 -1
  11. package/es/attachments/index.js +1 -1
  12. package/es/chat-actionbar/index.js +1 -1
  13. package/es/chat-engine/components/activity/index.js +2 -2
  14. package/es/chat-engine/components/activity/registry.js +1 -1
  15. package/es/chat-engine/components/activity/render.js +2 -2
  16. package/es/chat-engine/components/activity/types.js +1 -1
  17. package/es/chat-engine/components/index.js +12 -6
  18. package/es/chat-engine/components/index.js.map +1 -1
  19. package/es/chat-engine/components/json-render/catalog/atomic/button.js +1 -1
  20. package/es/chat-engine/components/json-render/catalog/atomic/card.js +1 -1
  21. package/es/chat-engine/components/json-render/catalog/atomic/input.js +12 -6
  22. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -1
  23. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +1 -1
  24. package/es/chat-engine/components/json-render/catalog/atomic/text.js +1 -1
  25. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +1 -1
  26. package/es/chat-engine/components/json-render/contexts/actions.js +2 -2
  27. package/es/chat-engine/components/json-render/contexts/data.js +2 -2
  28. package/es/chat-engine/components/json-render/contexts/index.js +2 -2
  29. package/es/chat-engine/components/json-render/contexts/store.js +1 -1
  30. package/es/chat-engine/components/json-render/contexts/tree.js +1 -1
  31. package/es/chat-engine/components/json-render/contexts/validation.js +2 -2
  32. package/es/chat-engine/components/json-render/contexts/visibility.js +2 -2
  33. package/es/chat-engine/components/json-render/index.js +12 -6
  34. package/es/chat-engine/components/json-render/index.js.map +1 -1
  35. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +12 -6
  36. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -1
  37. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +12 -6
  38. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -1
  39. package/es/chat-engine/components/json-render/registry/config.js +12 -6
  40. package/es/chat-engine/components/json-render/registry/config.js.map +1 -1
  41. package/es/chat-engine/components/json-render/registry/index.js +12 -6
  42. package/es/chat-engine/components/json-render/registry/index.js.map +1 -1
  43. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +11 -5
  44. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -1
  45. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +3 -3
  46. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +2 -2
  47. package/es/chat-engine/components/json-render/renderer/_index.js +2 -2
  48. package/es/chat-engine/components/json-render/types.js +1 -1
  49. package/es/chat-engine/components/provider/agent-state.js +10 -4
  50. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  51. package/es/chat-engine/components/shared/ComponentErrorBoundary.js +1 -1
  52. package/es/chat-engine/components/shared/createRegistry.js +1 -1
  53. package/es/chat-engine/components/shared/index.js +1 -1
  54. package/es/chat-engine/components/shared/useRegistrationListener.js +1 -1
  55. package/es/chat-engine/components/toolcall/index.js +10 -4
  56. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  57. package/es/chat-engine/components/toolcall/registry.js +1 -1
  58. package/es/chat-engine/components/toolcall/render.js +9 -3
  59. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  60. package/es/chat-engine/components/toolcall/types.js +1 -1
  61. package/es/chat-engine/core/adapters/a2ui/index.js +1 -1
  62. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +1 -1
  63. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +1 -1
  64. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +1 -1
  65. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +1 -1
  66. package/es/chat-engine/core/adapters/a2ui/types/index.js +1 -1
  67. package/es/chat-engine/core/adapters/a2ui/types/types.js +1 -1
  68. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1 -1
  69. package/es/chat-engine/core/adapters/a2ui/utils/index.js +1 -1
  70. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +1 -1
  71. package/es/chat-engine/core/adapters/agui/ActivityManager.js +1 -1
  72. package/es/chat-engine/core/adapters/agui/StateManager.js +1 -1
  73. package/es/chat-engine/core/adapters/agui/event-mapper.js +1 -1
  74. package/es/chat-engine/core/adapters/agui/index.js +21 -52
  75. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  76. package/es/chat-engine/core/adapters/agui/types/events.js +1 -1
  77. package/es/chat-engine/core/adapters/agui/types/index.js +1 -1
  78. package/es/chat-engine/core/adapters/agui/utils.d.ts +25 -2
  79. package/es/chat-engine/core/adapters/agui/utils.js +52 -12
  80. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
  81. package/es/chat-engine/core/adapters/index.js +3 -1
  82. package/es/chat-engine/core/adapters/index.js.map +1 -1
  83. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +1 -1
  84. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +1 -1
  85. package/es/chat-engine/core/adapters/json-render/engine.js +1 -1
  86. package/es/chat-engine/core/adapters/json-render/index.js +1 -1
  87. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +1 -1
  88. package/es/chat-engine/core/adapters/json-render/types/core.js +1 -1
  89. package/es/chat-engine/core/adapters/json-render/types/index.js +1 -1
  90. package/es/chat-engine/core/adapters/openclaw/device-key-manager.d.ts +65 -0
  91. package/es/chat-engine/core/adapters/openclaw/device-key-manager.js +375 -0
  92. package/es/chat-engine/core/adapters/openclaw/device-key-manager.js.map +1 -0
  93. package/es/chat-engine/core/adapters/openclaw/event-mapper.d.ts +36 -14
  94. package/es/chat-engine/core/adapters/openclaw/event-mapper.js +37 -21
  95. package/es/chat-engine/core/adapters/openclaw/event-mapper.js.map +1 -1
  96. package/es/chat-engine/core/adapters/openclaw/history-converter.d.ts +120 -0
  97. package/es/chat-engine/core/adapters/openclaw/history-converter.js +251 -0
  98. package/es/chat-engine/core/adapters/openclaw/history-converter.js.map +1 -0
  99. package/es/chat-engine/core/adapters/openclaw/index.d.ts +41 -0
  100. package/es/chat-engine/core/adapters/openclaw/index.js +146 -46
  101. package/es/chat-engine/core/adapters/openclaw/index.js.map +1 -1
  102. package/es/chat-engine/core/adapters/openclaw/rpc-handler.d.ts +13 -0
  103. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js +20 -1
  104. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js.map +1 -1
  105. package/es/chat-engine/core/adapters/openclaw/types/config.d.ts +17 -18
  106. package/es/chat-engine/core/adapters/openclaw/types/config.js +4 -2
  107. package/es/chat-engine/core/adapters/openclaw/types/config.js.map +1 -1
  108. package/es/chat-engine/core/adapters/openclaw/types/events.d.ts +5 -1
  109. package/es/chat-engine/core/adapters/openclaw/types/events.js +3 -1
  110. package/es/chat-engine/core/adapters/openclaw/types/events.js.map +1 -1
  111. package/es/chat-engine/core/adapters/openclaw/types/index.js +1 -1
  112. package/es/chat-engine/core/adapters/openclaw/types/messages.d.ts +22 -0
  113. package/es/chat-engine/core/adapters/openclaw/types/messages.js +1 -1
  114. package/es/chat-engine/core/adapters/openclaw/types/messages.js.map +1 -1
  115. package/es/chat-engine/core/adapters/openclaw/utils.js +1 -1
  116. package/es/chat-engine/core/adapters/openclaw/utils.js.map +1 -1
  117. package/es/chat-engine/core/adapters/shared/activity-manager.js +1 -1
  118. package/es/chat-engine/core/adapters/shared/content-factory.js +1 -1
  119. package/es/chat-engine/core/adapters/shared/index.js +1 -1
  120. package/es/chat-engine/core/adapters/shared/merge-utils.js +1 -1
  121. package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
  122. package/es/chat-engine/core/event-bus/index.js +1 -1
  123. package/es/chat-engine/core/event-bus/types.js +1 -1
  124. package/es/chat-engine/core/index.d.ts +27 -25
  125. package/es/chat-engine/core/index.js +231 -359
  126. package/es/chat-engine/core/index.js.map +1 -1
  127. package/es/chat-engine/core/processor/index.d.ts +32 -0
  128. package/es/chat-engine/core/processor/index.js +76 -1
  129. package/es/chat-engine/core/processor/index.js.map +1 -1
  130. package/es/chat-engine/core/server/batch-client.js +1 -1
  131. package/es/chat-engine/core/server/connection-manager.js +1 -1
  132. package/es/chat-engine/core/server/errors.js +1 -1
  133. package/es/chat-engine/core/server/index.js +1 -21
  134. package/es/chat-engine/core/server/index.js.map +1 -1
  135. package/es/chat-engine/core/server/llm-service.d.ts +7 -7
  136. package/es/chat-engine/core/server/llm-service.js +13 -140
  137. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  138. package/es/chat-engine/core/server/sse-client.js +1 -1
  139. package/es/chat-engine/core/server/sse-parser.js +1 -1
  140. package/es/chat-engine/core/server/types.js +1 -1
  141. package/es/chat-engine/core/server/websocket-client.d.ts +2 -0
  142. package/es/chat-engine/core/server/websocket-client.js +19 -3
  143. package/es/chat-engine/core/server/websocket-client.js.map +1 -1
  144. package/es/chat-engine/core/store/message.js +2 -2
  145. package/es/chat-engine/core/store/model.js +2 -2
  146. package/es/chat-engine/core/store/reactiveState.js +2 -2
  147. package/es/chat-engine/core/stream-handlers/agui-stream-handler.d.ts +24 -0
  148. package/es/chat-engine/core/stream-handlers/agui-stream-handler.js +140 -0
  149. package/es/chat-engine/core/stream-handlers/agui-stream-handler.js.map +1 -0
  150. package/es/chat-engine/core/stream-handlers/default-stream-handler.d.ts +7 -0
  151. package/es/chat-engine/core/stream-handlers/default-stream-handler.js +77 -0
  152. package/es/chat-engine/core/stream-handlers/default-stream-handler.js.map +1 -0
  153. package/es/chat-engine/core/stream-handlers/index.d.ts +21 -0
  154. package/es/chat-engine/core/stream-handlers/index.js +72 -0
  155. package/es/chat-engine/core/stream-handlers/index.js.map +1 -0
  156. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.d.ts +64 -0
  157. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.js +320 -0
  158. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.js.map +1 -0
  159. package/es/chat-engine/core/stream-handlers/types.d.ts +47 -0
  160. package/es/chat-engine/core/stream-handlers/types.js +7 -0
  161. package/es/chat-engine/core/stream-handlers/types.js.map +1 -0
  162. package/es/chat-engine/core/type.d.ts +18 -0
  163. package/es/chat-engine/core/type.js +1 -1
  164. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  165. package/es/chat-engine/core/utils/immutable-patch.js +1 -1
  166. package/es/chat-engine/core/utils/index.js +1 -1
  167. package/es/chat-engine/core/utils/json-patch/helpers.js +1 -1
  168. package/es/chat-engine/core/utils/json-patch/index.js +1 -1
  169. package/es/chat-engine/core/utils/logger.js +1 -1
  170. package/es/chat-engine/core/utils/performance.js +1 -1
  171. package/es/chat-engine/hooks/index.js +10 -4
  172. package/es/chat-engine/hooks/index.js.map +1 -1
  173. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  174. package/es/chat-engine/hooks/useAgentState.js +10 -4
  175. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  176. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  177. package/es/chat-engine/hooks/useChat.js +45 -15
  178. package/es/chat-engine/hooks/useChat.js.map +1 -1
  179. package/es/chat-engine/index.js +12 -6
  180. package/es/chat-engine/index.js.map +1 -1
  181. package/es/chat-filecard/index.js +1 -1
  182. package/es/chat-loading/index.js +1 -1
  183. package/es/chat-markdown/index.js +1 -1
  184. package/es/chat-message/index.js +1 -1
  185. package/es/chat-sender/index.js +1 -1
  186. package/es/chat-thinking/index.js +1 -1
  187. package/es/chatbot/index.js +1 -1
  188. package/es/index.js +10 -4
  189. package/es/index.js.map +1 -1
  190. package/es/style/index.js +1 -1
  191. package/package.json +1 -1
  192. package/es/_chunks/dep-1007ac80.js +0 -205
  193. package/es/_chunks/dep-1007ac80.js.map +0 -1
  194. package/es/_chunks/dep-13fe70ea.js +0 -438
  195. package/es/_chunks/dep-16520c2b.js +0 -1247
  196. package/es/_chunks/dep-16520c2b.js.map +0 -1
  197. package/es/_chunks/dep-1743bd61.js +0 -438
  198. package/es/_chunks/dep-1743bd61.js.map +0 -1
  199. package/es/_chunks/dep-1ca64fef.js.map +0 -1
  200. package/es/_chunks/dep-24472232.js +0 -839
  201. package/es/_chunks/dep-24472232.js.map +0 -1
  202. package/es/_chunks/dep-2bfe72cb.js +0 -438
  203. package/es/_chunks/dep-2bfe72cb.js.map +0 -1
  204. package/es/_chunks/dep-3864b369.js +0 -839
  205. package/es/_chunks/dep-3864b369.js.map +0 -1
  206. package/es/_chunks/dep-4dedfbef.js +0 -438
  207. package/es/_chunks/dep-4dedfbef.js.map +0 -1
  208. package/es/_chunks/dep-56f5e08e.js +0 -448
  209. package/es/_chunks/dep-56f5e08e.js.map +0 -1
  210. package/es/_chunks/dep-58d90dfe.js +0 -438
  211. package/es/_chunks/dep-58d90dfe.js.map +0 -1
  212. package/es/_chunks/dep-5b6b17d0.js +0 -169
  213. package/es/_chunks/dep-5b6b17d0.js.map +0 -1
  214. package/es/_chunks/dep-5e2400d2.js +0 -438
  215. package/es/_chunks/dep-5e2400d2.js.map +0 -1
  216. package/es/_chunks/dep-60f2a734.js +0 -169
  217. package/es/_chunks/dep-60f2a734.js.map +0 -1
  218. package/es/_chunks/dep-688e4aaa.js +0 -438
  219. package/es/_chunks/dep-688e4aaa.js.map +0 -1
  220. package/es/_chunks/dep-771678df.js +0 -438
  221. package/es/_chunks/dep-771678df.js.map +0 -1
  222. package/es/_chunks/dep-870f0d35.js +0 -839
  223. package/es/_chunks/dep-870f0d35.js.map +0 -1
  224. package/es/_chunks/dep-93283bbd.js +0 -1247
  225. package/es/_chunks/dep-96eca06f.js +0 -169
  226. package/es/_chunks/dep-96eca06f.js.map +0 -1
  227. package/es/_chunks/dep-98d23dfa.js +0 -169
  228. package/es/_chunks/dep-98d23dfa.js.map +0 -1
  229. package/es/_chunks/dep-991f7c12.js +0 -1247
  230. package/es/_chunks/dep-991f7c12.js.map +0 -1
  231. package/es/_chunks/dep-b4eec30f.js +0 -1247
  232. package/es/_chunks/dep-b4eec30f.js.map +0 -1
  233. package/es/_chunks/dep-ba3bd553.js +0 -169
  234. package/es/_chunks/dep-ba3bd553.js.map +0 -1
  235. package/es/_chunks/dep-bcb234a1.js +0 -839
  236. package/es/_chunks/dep-bcb234a1.js.map +0 -1
  237. package/es/_chunks/dep-dbdfe7d6.js +0 -169
  238. package/es/_chunks/dep-dbdfe7d6.js.map +0 -1
  239. package/es/_chunks/dep-de8ac730.js +0 -1247
  240. package/es/_chunks/dep-de8ac730.js.map +0 -1
  241. package/es/_chunks/dep-dfe91b1f.js.map +0 -1
  242. package/es/_chunks/dep-e9dbff09.js +0 -1247
  243. package/es/_chunks/dep-e9dbff09.js.map +0 -1
  244. package/es/_chunks/dep-ebc4cf30.js +0 -1247
  245. package/es/_chunks/dep-ebc4cf30.js.map +0 -1
  246. package/es/_chunks/dep-f2051ebd.js +0 -839
  247. package/es/_chunks/dep-f2051ebd.js.map +0 -1
  248. package/es/_chunks/dep-f691a67e.js +0 -438
  249. package/es/_chunks/dep-f691a67e.js.map +0 -1
  250. package/es/_chunks/dep-f8016301.js +0 -169
  251. package/es/_chunks/dep-f8016301.js.map +0 -1
  252. package/es/chat-actionbar/_example-js/base.d.ts +0 -2
  253. package/es/chat-actionbar/_example-js/custom.d.ts +0 -2
  254. package/es/chat-actionbar/_example-js/style.d.ts +0 -2
  255. package/es/chat-attachments/_example-js/base.d.ts +0 -2
  256. package/es/chat-attachments/_example-js/scroll-x.d.ts +0 -2
  257. package/es/chat-attachments/_example-js/scroll-y.d.ts +0 -2
  258. package/es/chat-attachments/index.d.ts +0 -5
  259. package/es/chat-attachments/index.js +0 -26
  260. package/es/chat-attachments/index.js.map +0 -1
  261. package/es/chat-engine/_example-js/agui-basic.d.ts +0 -10
  262. package/es/chat-engine/_example-js/agui-comprehensive.d.ts +0 -2
  263. package/es/chat-engine/_example-js/agui-test.d.ts +0 -11
  264. package/es/chat-engine/_example-js/agui-toolcall.d.ts +0 -5
  265. package/es/chat-engine/_example-js/agui-videoclip.d.ts +0 -8
  266. package/es/chat-engine/_example-js/agui.d.ts +0 -1
  267. package/es/chat-engine/_example-js/basic.d.ts +0 -9
  268. package/es/chat-engine/_example-js/components/HotelCard.d.ts +0 -3
  269. package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +0 -6
  270. package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +0 -3
  271. package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +0 -3
  272. package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +0 -4
  273. package/es/chat-engine/_example-js/components/Toolcall.d.ts +0 -4
  274. package/es/chat-engine/_example-js/components/WeatherCard.d.ts +0 -3
  275. package/es/chat-engine/_example-js/components/login.d.ts +0 -1
  276. package/es/chat-engine/_example-js/comprehensive.d.ts +0 -12
  277. package/es/chat-engine/_example-js/custom-content.d.ts +0 -1
  278. package/es/chat-engine/_example-js/hookComponent.d.ts +0 -1
  279. package/es/chat-engine/_example-js/initial-messages.d.ts +0 -9
  280. package/es/chat-engine/_example-js/instance-methods.d.ts +0 -13
  281. package/es/chat-engine/_example-js/travel-actions.d.ts +0 -91
  282. package/es/chat-engine/_example-js/travelToolcall.d.ts +0 -1
  283. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +0 -196
  284. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +0 -301
  285. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +0 -1
  286. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +0 -37
  287. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +0 -116
  288. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +0 -1
  289. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +0 -42
  290. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +0 -113
  291. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +0 -1
  292. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +0 -60
  293. package/es/chat-engine/components/a2ui/A2UISkeleton.js +0 -197
  294. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +0 -1
  295. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +0 -44
  296. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +0 -139
  297. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +0 -1
  298. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +0 -22
  299. package/es/chat-engine/components/a2ui/containers/A2UICard.js +0 -82
  300. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +0 -1
  301. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +0 -18
  302. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +0 -81
  303. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +0 -1
  304. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +0 -14
  305. package/es/chat-engine/components/a2ui/containers/A2UIList.js +0 -62
  306. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +0 -1
  307. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +0 -20
  308. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +0 -84
  309. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +0 -1
  310. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +0 -14
  311. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +0 -69
  312. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +0 -1
  313. package/es/chat-engine/components/a2ui/containers/index.d.ts +0 -8
  314. package/es/chat-engine/components/a2ui/containers/index.js +0 -30
  315. package/es/chat-engine/components/a2ui/containers/index.js.map +0 -1
  316. package/es/chat-engine/components/a2ui/index.d.ts +0 -11
  317. package/es/chat-engine/components/a2ui/index.js +0 -62
  318. package/es/chat-engine/components/a2ui/index.js.map +0 -1
  319. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +0 -33
  320. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +0 -80
  321. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +0 -1
  322. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +0 -12
  323. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +0 -43
  324. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +0 -1
  325. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +0 -50
  326. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +0 -54
  327. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +0 -1
  328. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +0 -13
  329. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +0 -89
  330. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +0 -1
  331. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +0 -12
  332. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +0 -25
  333. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +0 -1
  334. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +0 -13
  335. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +0 -138942
  336. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +0 -1
  337. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +0 -12
  338. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +0 -75
  339. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +0 -1
  340. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +0 -20
  341. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +0 -63
  342. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +0 -1
  343. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +0 -56
  344. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +0 -64
  345. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +0 -1
  346. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +0 -12
  347. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +0 -55
  348. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +0 -1
  349. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +0 -12
  350. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +0 -104
  351. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +0 -1
  352. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +0 -12
  353. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +0 -80
  354. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +0 -1
  355. package/es/chat-engine/components/a2ui/primitives/index.d.ts +0 -15
  356. package/es/chat-engine/components/a2ui/primitives/index.js +0 -39
  357. package/es/chat-engine/components/a2ui/primitives/index.js.map +0 -1
  358. package/es/chat-engine/components/a2ui/registry.d.ts +0 -35
  359. package/es/chat-engine/components/a2ui/registry.js +0 -74
  360. package/es/chat-engine/components/a2ui/registry.js.map +0 -1
  361. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +0 -36
  362. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +0 -36
  363. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +0 -1
  364. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +0 -46
  365. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +0 -36
  366. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +0 -1
  367. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +0 -113
  368. package/es/chat-engine/components/json-render/SurfaceStateManager.js +0 -195
  369. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +0 -1
  370. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +0 -49
  371. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +0 -307
  372. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +0 -1
  373. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +0 -96
  374. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +0 -7
  375. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +0 -1
  376. package/es/chat-engine/components/json-render/adapters/index.d.ts +0 -7
  377. package/es/chat-engine/components/json-render/adapters/index.js +0 -11
  378. package/es/chat-engine/components/json-render/adapters/index.js.map +0 -1
  379. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +0 -64
  380. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +0 -36
  381. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +0 -1
  382. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +0 -78
  383. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +0 -36
  384. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +0 -1
  385. package/es/chat-engine/components/json-render/catalog/button.d.ts +0 -14
  386. package/es/chat-engine/components/json-render/catalog/button.js +0 -71
  387. package/es/chat-engine/components/json-render/catalog/button.js.map +0 -1
  388. package/es/chat-engine/components/json-render/catalog/card.d.ts +0 -11
  389. package/es/chat-engine/components/json-render/catalog/card.js +0 -57
  390. package/es/chat-engine/components/json-render/catalog/card.js.map +0 -1
  391. package/es/chat-engine/components/json-render/catalog/index.d.ts +0 -128
  392. package/es/chat-engine/components/json-render/catalog/index.js +0 -36
  393. package/es/chat-engine/components/json-render/catalog/index.js.map +0 -1
  394. package/es/chat-engine/components/json-render/catalog/input.d.ts +0 -20
  395. package/es/chat-engine/components/json-render/catalog/input.js +0 -36
  396. package/es/chat-engine/components/json-render/catalog/input.js.map +0 -1
  397. package/es/chat-engine/components/json-render/catalog/layout.d.ts +0 -44
  398. package/es/chat-engine/components/json-render/catalog/layout.js +0 -129
  399. package/es/chat-engine/components/json-render/catalog/layout.js.map +0 -1
  400. package/es/chat-engine/components/json-render/catalog/text.d.ts +0 -11
  401. package/es/chat-engine/components/json-render/catalog/text.js +0 -31
  402. package/es/chat-engine/components/json-render/catalog/text.js.map +0 -1
  403. package/es/chat-engine/components/json-render/catalog.d.ts +0 -614
  404. package/es/chat-engine/components/json-render/catalog.js +0 -779
  405. package/es/chat-engine/components/json-render/catalog.js.map +0 -1
  406. package/es/chat-engine/components/json-render/config.d.ts +0 -154
  407. package/es/chat-engine/components/json-render/config.js +0 -36
  408. package/es/chat-engine/components/json-render/config.js.map +0 -1
  409. package/es/chat-engine/components/json-render/engine.d.ts +0 -58
  410. package/es/chat-engine/components/json-render/engine.js +0 -88
  411. package/es/chat-engine/components/json-render/engine.js.map +0 -1
  412. package/es/chat-engine/components/json-render/performance.d.ts +0 -91
  413. package/es/chat-engine/components/json-render/performance.js +0 -135
  414. package/es/chat-engine/components/json-render/performance.js.map +0 -1
  415. package/es/chat-engine/components/json-render/renderer/index.d.ts +0 -71
  416. package/es/chat-engine/components/json-render/renderer/index.js +0 -125
  417. package/es/chat-engine/components/json-render/renderer/index.js.map +0 -1
  418. package/es/chat-engine/components/json-render/renderer.d.ts +0 -71
  419. package/es/chat-engine/components/json-render/renderer.js +0 -124
  420. package/es/chat-engine/components/json-render/renderer.js.map +0 -1
  421. package/es/chat-engine/core/a2ui/index.d.ts +0 -10
  422. package/es/chat-engine/core/a2ui/index.js +0 -24
  423. package/es/chat-engine/core/a2ui/index.js.map +0 -1
  424. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +0 -197
  425. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +0 -438
  426. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +0 -1
  427. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +0 -53
  428. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +0 -158
  429. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +0 -1
  430. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +0 -63
  431. package/es/chat-engine/core/a2ui/processor/DataStore.js +0 -172
  432. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +0 -1
  433. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +0 -47
  434. package/es/chat-engine/core/a2ui/processor/PathResolver.js +0 -99
  435. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +0 -1
  436. package/es/chat-engine/core/a2ui/types/index.d.ts +0 -4
  437. package/es/chat-engine/core/a2ui/types/index.js +0 -9
  438. package/es/chat-engine/core/a2ui/types/index.js.map +0 -1
  439. package/es/chat-engine/core/a2ui/types/types.d.ts +0 -770
  440. package/es/chat-engine/core/a2ui/types/types.js +0 -104
  441. package/es/chat-engine/core/a2ui/types/types.js.map +0 -1
  442. package/es/chat-engine/core/a2ui/utils/binding.d.ts +0 -34
  443. package/es/chat-engine/core/a2ui/utils/binding.js +0 -1784
  444. package/es/chat-engine/core/a2ui/utils/binding.js.map +0 -1
  445. package/es/chat-engine/core/a2ui/utils/index.d.ts +0 -5
  446. package/es/chat-engine/core/a2ui/utils/index.js +0 -13
  447. package/es/chat-engine/core/a2ui/utils/index.js.map +0 -1
  448. package/es/chat-engine/core/a2ui/utils/validation.d.ts +0 -70
  449. package/es/chat-engine/core/a2ui/utils/validation.js +0 -333
  450. package/es/chat-engine/core/a2ui/utils/validation.js.map +0 -1
  451. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +0 -102
  452. package/es/chat-engine/core/adapters/agui/activity-manager.js +0 -150
  453. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +0 -1
  454. package/es/chat-engine/core/adapters/agui/events.d.ts +0 -1550
  455. package/es/chat-engine/core/adapters/agui/events.js +0 -199
  456. package/es/chat-engine/core/adapters/agui/events.js.map +0 -1
  457. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +0 -99
  458. package/es/chat-engine/core/adapters/agui/state-manager.js +0 -174
  459. package/es/chat-engine/core/adapters/agui/state-manager.js.map +0 -1
  460. package/es/chat-engine/core/adapters/agui/types.d.ts +0 -818
  461. package/es/chat-engine/core/adapters/agui/types.js +0 -95
  462. package/es/chat-engine/core/adapters/agui/types.js.map +0 -1
  463. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +0 -90
  464. package/es/chat-engine/hooks/a2ui/A2UIContext.js +0 -97
  465. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +0 -1
  466. package/es/chat-engine/hooks/a2ui/index.d.ts +0 -12
  467. package/es/chat-engine/hooks/a2ui/index.js +0 -19
  468. package/es/chat-engine/hooks/a2ui/index.js.map +0 -1
  469. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +0 -40
  470. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +0 -74
  471. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +0 -1
  472. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +0 -36
  473. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +0 -39
  474. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +0 -1
  475. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +0 -53
  476. package/es/chat-engine/hooks/a2ui/useDataBinding.js +0 -111
  477. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +0 -1
  478. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +0 -56
  479. package/es/chat-engine/hooks/useJsonRenderActivity.js +0 -63
  480. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +0 -1
  481. package/es/chat-filecard/_example-js/base.d.ts +0 -1
  482. package/es/chat-loading/_example-js/base.d.ts +0 -2
  483. package/es/chat-loading/_example-js/text.d.ts +0 -2
  484. package/es/chat-markdown/_example-js/base.d.ts +0 -1
  485. package/es/chat-markdown/_example-js/custom.d.ts +0 -2
  486. package/es/chat-markdown/_example-js/event.d.ts +0 -1
  487. package/es/chat-markdown/_example-js/footnote.d.ts +0 -2
  488. package/es/chat-markdown/_example-js/plugin.d.ts +0 -2
  489. package/es/chat-markdown/_example-js/theme.d.ts +0 -2
  490. package/es/chat-message/_example-js/action.d.ts +0 -1
  491. package/es/chat-message/_example-js/base.d.ts +0 -1
  492. package/es/chat-message/_example-js/configure.d.ts +0 -1
  493. package/es/chat-message/_example-js/content.d.ts +0 -1
  494. package/es/chat-message/_example-js/custom.d.ts +0 -1
  495. package/es/chat-message/_example-js/handle-actions.d.ts +0 -7
  496. package/es/chat-message/_example-js/status.d.ts +0 -1
  497. package/es/chat-message/_example-js/think.d.ts +0 -1
  498. package/es/chat-sender/_example-js/attachment.d.ts +0 -2
  499. package/es/chat-sender/_example-js/base.d.ts +0 -2
  500. package/es/chat-sender/_example-js/custom.d.ts +0 -2
  501. package/es/chat-thinking/_example-js/base.d.ts +0 -1
  502. package/es/chat-thinking/_example-js/style.d.ts +0 -1
  503. package/es/chatbot/_example-js/agent.d.ts +0 -1
  504. package/es/chatbot/_example-js/agui.d.ts +0 -13
  505. package/es/chatbot/_example-js/backup/travel.d.ts +0 -1
  506. package/es/chatbot/_example-js/basic.d.ts +0 -1
  507. package/es/chatbot/_example-js/code.d.ts +0 -1
  508. package/es/chatbot/_example-js/components/ItineraryCard.d.ts +0 -3
  509. package/es/chatbot/_example-js/components/login.d.ts +0 -1
  510. package/es/chatbot/_example-js/comprehensive.d.ts +0 -1
  511. package/es/chatbot/_example-js/custom-content.d.ts +0 -1
  512. package/es/chatbot/_example-js/custom-merge.d.ts +0 -1
  513. package/es/chatbot/_example-js/custom.d.ts +0 -1
  514. package/es/chatbot/_example-js/docs.d.ts +0 -1
  515. package/es/chatbot/_example-js/image.d.ts +0 -1
  516. package/es/chatbot/_example-js/initial-messages.d.ts +0 -9
  517. package/es/chatbot/_example-js/instance-methods.d.ts +0 -14
  518. package/es/chatbot/_example-js/nostream.d.ts +0 -1
  519. package/es/chatbot/_example-js/quick-start.d.ts +0 -9
  520. package/es/chatbot/_example-js/research.d.ts +0 -1
  521. package/es/chatbot/_example-js/role-message-config.d.ts +0 -22
  522. package/es/chatbot/_example-js/sender-config.d.ts +0 -20
  523. package/es/chatbot/_example-js/service-config.d.ts +0 -17
  524. package/es/chatbot/_example-js/simple.d.ts +0 -1
  525. package/es/chatbot/_example-js/utils/messageRenderer.d.ts +0 -5
  526. package/es/chatbot/docs/react-best-practice.d.ts +0 -13
@@ -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, type MergedOpenClawConfig } 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: MergedOpenClawConfig;\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","_payload","_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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"}
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\nimport {\n convertOpenClawHistory,\n convertOpenClawHistoryResponse,\n type OpenClawHistoryMessage,\n type OpenClawHistoryResponse,\n type ConvertHistoryOptions,\n} from './history-converter';\nimport { DeviceKeyManager } from './device-key-manager';\n\n// 重新导出类型\nexport * from './types';\nexport { OpenClawEventMapper, type EventMapResult } from './event-mapper';\nexport { OpenClawRPCHandler, RPCError } from './rpc-handler';\nexport { DeviceKeyManager, type DeviceKeyPair, type DeviceIdentity } from './device-key-manager';\nexport {\n convertOpenClawHistory,\n convertOpenClawHistoryResponse,\n type OpenClawHistoryMessage,\n type OpenClawHistoryResponse,\n type ConvertHistoryOptions,\n} from './history-converter';\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 Gateway 在 connect 响应中可能附带历史消息(messages 字段),\n * 当检测到历史消息时,适配器会自动将其转换为 ChatEngine 格式并触发此回调。\n * 上层可以通过 chatEngine.setMessages(messages, 'replace') 回填到对话界面。\n */\n onHistoryLoaded?: (messages: import('../../type').ChatMessagesData[]) => 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 private deviceKeyManager: DeviceKeyManager | null = null;\n\n /** 动态传入的认证信息,用于 connect 握手(一次性使用) */\n private pendingAuth: Record<string, unknown> | 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 if (this.config.deviceAuth) {\n this.deviceKeyManager = new DeviceKeyManager(this.config.client.id);\n }\n }\n\n /**\n * 设置回调\n */\n setCallbacks(callbacks: OpenClawAdapterCallbacks): void {\n this.callbacks = callbacks;\n }\n\n /**\n * 设置连接认证信息(在 connect 之前调用)\n *\n * 传入的 auth 会在下一次 connect 握手时使用(一次性),\n * 用于从 onRequest 动态获取 token 等认证信息。\n */\n setConnectAuth(auth: Record<string, unknown>): void {\n this.pendingAuth = auth;\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 // 合并用户自定义参数(剔除 auth,auth 仅用于 connect 握手)\n const { auth: _auth, ...sendParams } = requestParams || {};\n const chatParams = {\n message: params.prompt || '',\n idempotencyKey: generateUUID(),\n ...sendParams,\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 * 通过 OpenClaw 的 sessions.history RPC 方法获取指定会话的历史消息,\n * 并自动转换为 ChatEngine 的 ChatMessagesData 格式。\n *\n * @param sessionKey - 会话标识\n * @param options - 转换选项\n * @returns ChatEngine 格式的消息数组,可直接传给 chatEngine.setMessages() 或 useChat 的 defaultMessages\n *\n * @example\n * ```tsx\n * const messages = await adapter.fetchHistory('agent:main:main');\n * chatEngine.setMessages(messages, 'replace');\n * ```\n */\n async fetchHistory(\n sessionKey: string,\n options?: ConvertHistoryOptions,\n ): Promise<import('../../type').ChatMessagesData[]> {\n if (this.connectionState !== OpenClawConnectionState.AUTHENTICATED) {\n throw new Error('Not authenticated. Please connect first.');\n }\n\n const response = await this.rpcHandler.sessionsHistory({ sessionKey }) as OpenClawHistoryResponse;\n return convertOpenClawHistoryResponse(response, options);\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?.message || error);\n this.callbacks.onError?.(error);\n });\n\n this.wsClient.on('complete', (isAborted: boolean) => {\n console.warn(`[OpenClaw] WebSocket complete event! isAborted=${isAborted}, isStreaming=${this.isStreaming}`);\n if (this.isStreaming) {\n console.warn('[OpenClaw] ⚠️ WebSocket closed while still streaming! This caused onComplete to fire prematurely.');\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 // DEBUG: 打印所有原始 WebSocket 消息(排查真实 OpenClaw 返回格式)\n const rawStr = typeof data === 'string' ? data : JSON.stringify(data);\n console.log(`[OpenClaw RAW] ${rawStr.slice(0, 800)}`);\n\n const frame = parseFrame(data as string | object);\n if (!frame) {\n console.warn('[OpenClaw] Failed to parse frame, raw data:', rawStr.slice(0, 500));\n return;\n }\n\n console.log(`[OpenClaw Frame] type=\"${frame.type}\", event=${(frame as any).event}, isStreaming=${this.isStreaming}`);\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 (event === OpenClawEventType.HEALTH || event === OpenClawEventType.HEARTBEAT || event === 'tick' as any) {\n console.log(`[OpenClaw] Skipping non-business event: \"${event}\"`);\n return;\n }\n\n // DEBUG: 打印所有业务事件,帮助排查真实 OpenClaw 的返回格式\n console.log(`[OpenClaw Event] event=\"${event}\", isStreaming=${this.isStreaming}, payload=`, JSON.stringify(payload).slice(0, 500));\n\n // 流式消息事件\n if (this.isStreaming) {\n const result = this.eventMapper.mapEvent(frame);\n\n console.log(`[OpenClaw mapResult] content=${result.content ? JSON.stringify(result.content).slice(0, 200) : 'null'}, isFinal=${result.isFinal}, hasError=${result.hasError}`);\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 } else {\n // 非流式状态下收到了业务事件,打印警告帮助排查\n console.warn(`[OpenClaw] Received event \"${event}\" but isStreaming=false, event may be lost. Payload:`, JSON.stringify(payload).slice(0, 300));\n }\n }\n\n /**\n * 处理连接挑战(握手)\n *\n * 认证成功后,如果 connect 响应中包含 messages 字段(历史消息),\n * 会自动转换为 ChatEngine 格式并触发 onHistoryLoaded 回调。\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 // 认证信息:优先使用动态传入的 auth,其次使用配置中的 auth\n const auth = this.pendingAuth || (Object.keys(this.config.auth).length > 0 ? this.config.auth : undefined);\n if (auth) {\n connectParams.auth = auth;\n }\n this.pendingAuth = null;\n\n // 设备认证:使用 nonce 签名生成 device 字段\n if (this.deviceKeyManager && payload.nonce) {\n try {\n await this.deviceKeyManager.initialize();\n const deviceIdentity = await this.deviceKeyManager.signChallenge(payload.nonce);\n connectParams.device = deviceIdentity;\n this.logger.debug(`Device auth: signed nonce, deviceId=${deviceIdentity.id}`);\n } catch (deviceError) {\n this.logger.warn('Device auth: failed to sign challenge, connecting without device identity:', deviceError);\n }\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\n // 检查 connect 响应中是否包含历史消息\n // OpenClaw Gateway 会在 connect 响应的 payload 中附带 messages 数组,\n // 用于页面刷新后自动回填历史对话记录(无需额外 RPC 请求)\n const connectPayload = response as Record<string, unknown>;\n if (Array.isArray(connectPayload?.messages) && connectPayload.messages.length > 0) {\n this.logger.info(`OpenClaw connect response contains ${connectPayload.messages.length} history messages, converting...`);\n try {\n const historyResponse = {\n sessionKey: (connectPayload.sessionKey as string) || '',\n sessionId: (connectPayload.sessionId as string) || '',\n messages: connectPayload.messages as OpenClawHistoryMessage[],\n };\n const convertedMessages = convertOpenClawHistory(historyResponse.messages);\n this.logger.info(`Converted ${convertedMessages.length} history messages`);\n this.callbacks.onHistoryLoaded?.(convertedMessages);\n this.emit('historyLoaded', convertedMessages);\n } catch (historyError) {\n this.logger.warn('Failed to convert history messages from connect response:', historyError);\n // 历史消息转换失败不影响正常连接\n }\n }\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","deviceAuth","deviceKeyManager","DeviceKeyManager","client","id","_inherits","_EventEmitter","_createClass","key","value","setCallbacks","callbacks","setConnectAuth","auth","pendingAuth","_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","_ref","_auth","sendParams","chatParams","_this$callbacks$onSta","_this$callbacks","_this$callbacks$onErr","_this$callbacks2","_t","_context2","currentRequestParams","isStreaming","reset","_objectWithoutProperties","_excluded","_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","sessionKey","options","response","_context4","sessionsHistory","convertOpenClawHistoryResponse","fetchHistory","_x4","_x5","_fetchHistory","_disconnect","_callee5","_this$callbacks$onDis","_this$callbacks5","_context5","CLOSING","cancelAll","close","onDisconnected","disconnect","abort","_this$callbacks$onCom2","_this$callbacks6","getConnectionState","isAuthenticated","_destroy","_callee6","_context6","destroy","removeAllListeners","_this4","on","event","handleWebSocketMessage","_this4$callbacks$onEr","_this4$callbacks","logger","isAborted","_this4$callbacks$onDi","_this4$callbacks3","console","warn","_this4$callbacks$onCo","_this4$callbacks2","debug","from","to","WebSocketConnectionState","CONNECTED","HANDSHAKING","rawStr","JSON","stringify","log","slice","handleResponse","handleEventFrame","payload","OpenClawEventType","CONNECT_CHALLENGE","handleConnectChallenge","HEALTH","HEARTBEAT","_this$callbacks$onMes","_this$callbacks7","onMessage","emit","_this$callbacks$onCom3","_this$callbacks8","_this$callbacks$onErr3","_this$callbacks9","_handleConnectChallenge","_callee7","connectParams","deviceIdentity","_this$callbacks$onCon","_this$callbacks0","connectPayload","_this$callbacks$onHis","_this$callbacks1","historyResponse","convertedMessages","_this$callbacks$onErr4","_this$callbacks10","_t2","_t3","_context7","minProtocol","protocolVersion","min","maxProtocol","max","version","platform","getPlatform","mode","role","scopes","caps","userAgent","getUserAgent","locale","getLocale","Object","keys","length","nonce","initialize","signChallenge","device","sent","info","Array","isArray","messages","sessionId","convertOpenClawHistory","onHistoryLoaded","historyError","ERROR","EventEmitter"],"mappings":"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"}
@@ -95,6 +95,19 @@ export declare class OpenClawRPCHandler {
95
95
  payload: unknown;
96
96
  runId?: string;
97
97
  }): Promise<unknown>;
98
+ /**
99
+ * 获取会话历史消息
100
+ *
101
+ * 通过 OpenClaw 的 sessions.history RPC 方法获取指定会话的历史消息。
102
+ * 返回的消息需要通过 convertOpenClawHistory 转换为 ChatEngine 格式。
103
+ *
104
+ * @param params.sessionKey - 会话标识
105
+ * @returns 包含 sessionKey, sessionId, messages 的响应对象
106
+ */
107
+ sessionsHistory(params: {
108
+ sessionKey: string;
109
+ [key: string]: unknown;
110
+ }): Promise<unknown>;
98
111
  /**
99
112
  * 取消所有待处理的请求
100
113
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.16
2
+ * tdesign v1.1.0-alpha.17
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -229,6 +229,25 @@ var OpenClawRPCHandler = /*#__PURE__*/function () {
229
229
  }
230
230
  return nodeInvoke;
231
231
  }()
232
+ }, {
233
+ key: "sessionsHistory",
234
+ value: function () {
235
+ var _sessionsHistory = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(params) {
236
+ return _regeneratorRuntime.wrap(function (_context6) {
237
+ while (1) switch (_context6.prev = _context6.next) {
238
+ case 0:
239
+ return _context6.abrupt("return", this.request(OpenClawMethod.SESSIONS_HISTORY, params));
240
+ case 1:
241
+ case "end":
242
+ return _context6.stop();
243
+ }
244
+ }, _callee6, this);
245
+ }));
246
+ function sessionsHistory(_x6) {
247
+ return _sessionsHistory.apply(this, arguments);
248
+ }
249
+ return sessionsHistory;
250
+ }()
232
251
  }, {
233
252
  key: "cancelAll",
234
253
  value: function cancelAll() {
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-handler.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/rpc-handler.ts"],"sourcesContent":["/**\n * OpenClaw RPC 请求/响应处理器\n *\n * 管理请求队列、响应匹配、超时和错误处理\n */\nimport type {\n OpenClawRequestFrame,\n OpenClawResponseFrame,\n OpenClawEventFrame,\n OpenClawFrame,\n OpenClawError,\n ConnectParams,\n ConnectResponse,\n ChatSendParams,\n ChatSendResponse,\n} from './types';\nimport { OpenClawMethod } from './types/events';\n\n/**\n * 待处理请求信息\n */\ninterface PendingRequest<T = unknown> {\n resolve: (payload: T) => void;\n reject: (error: Error) => void;\n timeoutId: ReturnType<typeof setTimeout>;\n method: string;\n createdAt: number;\n}\n\n/**\n * RPC 处理器配置\n */\nexport interface RPCHandlerConfig {\n /** 请求超时时间(毫秒),默认 30000 */\n timeout?: number;\n /** 是否自动重试失败的请求,默认 false */\n autoRetry?: boolean;\n /** 最大重试次数,默认 3 */\n maxRetries?: number;\n}\n\n/**\n * RPC 错误类\n */\nexport class RPCError extends Error {\n constructor(\n message: string,\n public code: string,\n public details?: unknown,\n ) {\n super(message);\n this.name = 'RPCError';\n }\n}\n\n/**\n * OpenClaw RPC 处理器\n *\n * 功能:\n * - 管理请求队列\n * - 匹配响应到对应的请求\n * - 处理超时\n * - 提供便捷的 RPC 方法调用\n */\nexport class OpenClawRPCHandler {\n private pendingRequests = new Map<string, PendingRequest>();\n\n private config: Required<RPCHandlerConfig>;\n\n private sendFn: ((frame: OpenClawRequestFrame) => void) | null = null;\n\n private seq = 0;\n\n constructor(config?: RPCHandlerConfig) {\n this.config = {\n timeout: config?.timeout ?? 30000,\n autoRetry: config?.autoRetry ?? false,\n maxRetries: config?.maxRetries ?? 3,\n };\n }\n\n /**\n * 设置发送函数\n */\n setSendFunction(fn: (frame: OpenClawRequestFrame) => void): void {\n this.sendFn = fn;\n }\n\n /**\n * 生成唯一请求 ID\n */\n generateRequestId(): string {\n this.seq++;\n return `req_${Date.now()}_${this.seq}_${Math.random().toString(36).substr(2, 6)}`;\n }\n\n /**\n * 发送 RPC 请求\n */\n async request<TParams extends Record<string, unknown>, TResult>(\n method: string,\n params: TParams,\n ): Promise<TResult> {\n if (!this.sendFn) {\n throw new RPCError('Send function not set', 'SEND_NOT_CONFIGURED');\n }\n\n const id = this.generateRequestId();\n const frame: OpenClawRequestFrame<TParams> = {\n type: 'req',\n id,\n method,\n params,\n };\n\n return new Promise<TResult>((resolve, reject) => {\n // 设置超时\n const timeoutId = setTimeout(() => {\n if (this.pendingRequests.has(id)) {\n this.pendingRequests.delete(id);\n reject(new RPCError(`Request timeout: ${method}`, 'TIMEOUT'));\n }\n }, this.config.timeout);\n\n // 存储待处理请求\n this.pendingRequests.set(id, {\n resolve: resolve as (payload: unknown) => void,\n reject,\n timeoutId,\n method,\n createdAt: Date.now(),\n });\n\n // 发送请求\n try {\n this.sendFn!(frame);\n } catch (error) {\n this.pendingRequests.delete(id);\n clearTimeout(timeoutId);\n reject(error);\n }\n });\n }\n\n /**\n * 处理响应帧\n */\n handleResponse(frame: OpenClawResponseFrame): boolean {\n const pending = this.pendingRequests.get(frame.id);\n if (!pending) {\n // 没有找到对应的请求,可能已超时\n return false;\n }\n\n // 清理\n clearTimeout(pending.timeoutId);\n this.pendingRequests.delete(frame.id);\n\n if (frame.ok) {\n pending.resolve(frame.payload);\n } else {\n const error = frame.error || { code: 'UNKNOWN', message: 'Unknown error' };\n pending.reject(new RPCError(error.message, error.code, error.details));\n }\n\n return true;\n }\n\n /**\n * 处理接收到的消息帧\n * 自动区分响应和事件\n */\n handleFrame(frame: OpenClawFrame): { type: 'response' | 'event'; handled: boolean; data?: unknown } {\n if (frame.type === 'res') {\n const handled = this.handleResponse(frame as OpenClawResponseFrame);\n return { type: 'response', handled };\n }\n\n if (frame.type === 'event') {\n // 事件帧,返回给调用者处理\n return { type: 'event', handled: false, data: frame };\n }\n\n return { type: 'response', handled: false };\n }\n\n // ============= 便捷方法 =============\n\n /**\n * 发送连接认证请求\n */\n async connect(params: ConnectParams): Promise<ConnectResponse> {\n return this.request<ConnectParams, ConnectResponse>(OpenClawMethod.CONNECT, params);\n }\n\n /**\n * 发送聊天消息\n */\n async chatSend(params: ChatSendParams): Promise<ChatSendResponse> {\n return this.request<ChatSendParams, ChatSendResponse>(OpenClawMethod.CHAT_SEND, params);\n }\n\n /**\n * 发送心跳\n */\n async heartbeat(): Promise<{ ts: number }> {\n return this.request<{ ts: number }, { ts: number }>(OpenClawMethod.HEARTBEAT, { ts: Date.now() });\n }\n\n /**\n * 节点调用(用于 Toolcall/Activity 的 action 上行)\n *\n * 遵循 OpenClaw 的 node.invoke RPC 方法,通过 WebSocket 双向通道\n * 将用户在 Toolcall/Activity 组件中的操作(respond/confirm/update 等)\n * 发送回 Agent 端处理。\n *\n * @param params.nodeId - toolCallId 或 activityType,标识目标节点\n * @param params.action - 操作类型,如 \"respond\" | \"update\" | \"confirm\"\n * @param params.payload - 用户操作数据\n * @param params.runId - 关联的运行 ID(可选)\n */\n async nodeInvoke(params: {\n nodeId: string;\n action: string;\n payload: unknown;\n runId?: string;\n }): Promise<unknown> {\n return this.request(OpenClawMethod.NODE_INVOKE, params as unknown as Record<string, unknown>);\n }\n\n /**\n * 取消所有待处理的请求\n */\n cancelAll(reason = 'Cancelled'): void {\n this.pendingRequests.forEach((pending, id) => {\n clearTimeout(pending.timeoutId);\n pending.reject(new RPCError(reason, 'CANCELLED'));\n });\n this.pendingRequests.clear();\n }\n\n /**\n * 获取待处理请求数量\n */\n getPendingCount(): number {\n return this.pendingRequests.size;\n }\n\n /**\n * 重置处理器状态\n */\n reset(): void {\n this.cancelAll('Handler reset');\n this.seq = 0;\n }\n\n /**\n * 销毁处理器\n */\n destroy(): void {\n this.cancelAll('Handler destroyed');\n this.sendFn = null;\n }\n}\n"],"names":["RPCError","message","code","details","_this","_classCallCheck","_callSuper","name","_inherits","_Error","_createClass","_wrapNativeSuper","Error","OpenClawRPCHandler","config","_config$timeout","_config$autoRetry","_config$maxRetries","_defineProperty","Map","timeout","autoRetry","maxRetries","key","value","setSendFunction","fn","sendFn","generateRequestId","seq","concat","Date","now","Math","random","toString","substr","_request","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","_this2","id","frame","wrap","_context","prev","next","type","abrupt","Promise","resolve","reject","timeoutId","setTimeout","pendingRequests","has","set","createdAt","error","clearTimeout","stop","request","_x","_x2","apply","arguments","handleResponse","pending","get","ok","payload","handleFrame","handled","data","_connect","_callee2","_context2","OpenClawMethod","CONNECT","connect","_callee3","_context3","CHAT_SEND","chatSend","_callee4","_context4","HEARTBEAT","ts","heartbeat","_heartbeat","_nodeInvoke","_callee5","_context5","NODE_INVOKE","nodeInvoke","cancelAll","reason","forEach","clear","getPendingCount","size","reset","destroy"],"mappings":"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"}
1
+ {"version":3,"file":"rpc-handler.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/rpc-handler.ts"],"sourcesContent":["/**\n * OpenClaw RPC 请求/响应处理器\n *\n * 管理请求队列、响应匹配、超时和错误处理\n */\nimport type {\n OpenClawRequestFrame,\n OpenClawResponseFrame,\n OpenClawEventFrame,\n OpenClawFrame,\n OpenClawError,\n ConnectParams,\n ConnectResponse,\n ChatSendParams,\n ChatSendResponse,\n} from './types';\nimport { OpenClawMethod } from './types/events';\n\n/**\n * 待处理请求信息\n */\ninterface PendingRequest<T = unknown> {\n resolve: (payload: T) => void;\n reject: (error: Error) => void;\n timeoutId: ReturnType<typeof setTimeout>;\n method: string;\n createdAt: number;\n}\n\n/**\n * RPC 处理器配置\n */\nexport interface RPCHandlerConfig {\n /** 请求超时时间(毫秒),默认 30000 */\n timeout?: number;\n /** 是否自动重试失败的请求,默认 false */\n autoRetry?: boolean;\n /** 最大重试次数,默认 3 */\n maxRetries?: number;\n}\n\n/**\n * RPC 错误类\n */\nexport class RPCError extends Error {\n constructor(\n message: string,\n public code: string,\n public details?: unknown,\n ) {\n super(message);\n this.name = 'RPCError';\n }\n}\n\n/**\n * OpenClaw RPC 处理器\n *\n * 功能:\n * - 管理请求队列\n * - 匹配响应到对应的请求\n * - 处理超时\n * - 提供便捷的 RPC 方法调用\n */\nexport class OpenClawRPCHandler {\n private pendingRequests = new Map<string, PendingRequest>();\n\n private config: Required<RPCHandlerConfig>;\n\n private sendFn: ((frame: OpenClawRequestFrame) => void) | null = null;\n\n private seq = 0;\n\n constructor(config?: RPCHandlerConfig) {\n this.config = {\n timeout: config?.timeout ?? 30000,\n autoRetry: config?.autoRetry ?? false,\n maxRetries: config?.maxRetries ?? 3,\n };\n }\n\n /**\n * 设置发送函数\n */\n setSendFunction(fn: (frame: OpenClawRequestFrame) => void): void {\n this.sendFn = fn;\n }\n\n /**\n * 生成唯一请求 ID\n */\n generateRequestId(): string {\n this.seq++;\n return `req_${Date.now()}_${this.seq}_${Math.random().toString(36).substr(2, 6)}`;\n }\n\n /**\n * 发送 RPC 请求\n */\n async request<TParams extends Record<string, unknown>, TResult>(\n method: string,\n params: TParams,\n ): Promise<TResult> {\n if (!this.sendFn) {\n throw new RPCError('Send function not set', 'SEND_NOT_CONFIGURED');\n }\n\n const id = this.generateRequestId();\n const frame: OpenClawRequestFrame<TParams> = {\n type: 'req',\n id,\n method,\n params,\n };\n\n return new Promise<TResult>((resolve, reject) => {\n // 设置超时\n const timeoutId = setTimeout(() => {\n if (this.pendingRequests.has(id)) {\n this.pendingRequests.delete(id);\n reject(new RPCError(`Request timeout: ${method}`, 'TIMEOUT'));\n }\n }, this.config.timeout);\n\n // 存储待处理请求\n this.pendingRequests.set(id, {\n resolve: resolve as (payload: unknown) => void,\n reject,\n timeoutId,\n method,\n createdAt: Date.now(),\n });\n\n // 发送请求\n try {\n this.sendFn!(frame);\n } catch (error) {\n this.pendingRequests.delete(id);\n clearTimeout(timeoutId);\n reject(error);\n }\n });\n }\n\n /**\n * 处理响应帧\n */\n handleResponse(frame: OpenClawResponseFrame): boolean {\n const pending = this.pendingRequests.get(frame.id);\n if (!pending) {\n // 没有找到对应的请求,可能已超时\n return false;\n }\n\n // 清理\n clearTimeout(pending.timeoutId);\n this.pendingRequests.delete(frame.id);\n\n if (frame.ok) {\n pending.resolve(frame.payload);\n } else {\n const error = frame.error || { code: 'UNKNOWN', message: 'Unknown error' };\n pending.reject(new RPCError(error.message, error.code, error.details));\n }\n\n return true;\n }\n\n /**\n * 处理接收到的消息帧\n * 自动区分响应和事件\n */\n handleFrame(frame: OpenClawFrame): { type: 'response' | 'event'; handled: boolean; data?: unknown } {\n if (frame.type === 'res') {\n const handled = this.handleResponse(frame as OpenClawResponseFrame);\n return { type: 'response', handled };\n }\n\n if (frame.type === 'event') {\n // 事件帧,返回给调用者处理\n return { type: 'event', handled: false, data: frame };\n }\n\n return { type: 'response', handled: false };\n }\n\n // ============= 便捷方法 =============\n\n /**\n * 发送连接认证请求\n */\n async connect(params: ConnectParams): Promise<ConnectResponse> {\n return this.request<ConnectParams, ConnectResponse>(OpenClawMethod.CONNECT, params);\n }\n\n /**\n * 发送聊天消息\n */\n async chatSend(params: ChatSendParams): Promise<ChatSendResponse> {\n return this.request<ChatSendParams, ChatSendResponse>(OpenClawMethod.CHAT_SEND, params);\n }\n\n /**\n * 发送心跳\n */\n async heartbeat(): Promise<{ ts: number }> {\n return this.request<{ ts: number }, { ts: number }>(OpenClawMethod.HEARTBEAT, { ts: Date.now() });\n }\n\n /**\n * 节点调用(用于 Toolcall/Activity 的 action 上行)\n *\n * 遵循 OpenClaw 的 node.invoke RPC 方法,通过 WebSocket 双向通道\n * 将用户在 Toolcall/Activity 组件中的操作(respond/confirm/update 等)\n * 发送回 Agent 端处理。\n *\n * @param params.nodeId - toolCallId 或 activityType,标识目标节点\n * @param params.action - 操作类型,如 \"respond\" | \"update\" | \"confirm\"\n * @param params.payload - 用户操作数据\n * @param params.runId - 关联的运行 ID(可选)\n */\n async nodeInvoke(params: {\n nodeId: string;\n action: string;\n payload: unknown;\n runId?: string;\n }): Promise<unknown> {\n return this.request(OpenClawMethod.NODE_INVOKE, params as unknown as Record<string, unknown>);\n }\n\n /**\n * 获取会话历史消息\n *\n * 通过 OpenClaw 的 sessions.history RPC 方法获取指定会话的历史消息。\n * 返回的消息需要通过 convertOpenClawHistory 转换为 ChatEngine 格式。\n *\n * @param params.sessionKey - 会话标识\n * @returns 包含 sessionKey, sessionId, messages 的响应对象\n */\n async sessionsHistory(params: {\n sessionKey: string;\n [key: string]: unknown;\n }): Promise<unknown> {\n return this.request(OpenClawMethod.SESSIONS_HISTORY, params as unknown as Record<string, unknown>);\n }\n\n /**\n * 取消所有待处理的请求\n */\n cancelAll(reason = 'Cancelled'): void {\n this.pendingRequests.forEach((pending, id) => {\n clearTimeout(pending.timeoutId);\n pending.reject(new RPCError(reason, 'CANCELLED'));\n });\n this.pendingRequests.clear();\n }\n\n /**\n * 获取待处理请求数量\n */\n getPendingCount(): number {\n return this.pendingRequests.size;\n }\n\n /**\n * 重置处理器状态\n */\n reset(): void {\n this.cancelAll('Handler reset');\n this.seq = 0;\n }\n\n /**\n * 销毁处理器\n */\n destroy(): void {\n this.cancelAll('Handler destroyed');\n this.sendFn = null;\n }\n}\n"],"names":["RPCError","message","code","details","_this","_classCallCheck","_callSuper","name","_inherits","_Error","_createClass","_wrapNativeSuper","Error","OpenClawRPCHandler","config","_config$timeout","_config$autoRetry","_config$maxRetries","_defineProperty","Map","timeout","autoRetry","maxRetries","key","value","setSendFunction","fn","sendFn","generateRequestId","seq","concat","Date","now","Math","random","toString","substr","_request","_asyncToGenerator","_regeneratorRuntime","mark","_callee","method","params","_this2","id","frame","wrap","_context","prev","next","type","abrupt","Promise","resolve","reject","timeoutId","setTimeout","pendingRequests","has","set","createdAt","error","clearTimeout","stop","request","_x","_x2","apply","arguments","handleResponse","pending","get","ok","payload","handleFrame","handled","data","_connect","_callee2","_context2","OpenClawMethod","CONNECT","connect","_callee3","_context3","CHAT_SEND","chatSend","_callee4","_context4","HEARTBEAT","ts","heartbeat","_heartbeat","_nodeInvoke","_callee5","_context5","NODE_INVOKE","nodeInvoke","_callee6","_context6","SESSIONS_HISTORY","sessionsHistory","cancelAll","reason","forEach","clear","getPendingCount","size","reset","destroy"],"mappings":"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"}
@@ -49,8 +49,21 @@ export interface OpenClawConfig {
49
49
  */
50
50
  protocolVersion?: OpenClawProtocolVersion;
51
51
  /**
52
- * 认证信息,用于 connect 握手时传入
53
- * - token: 设备 operator token(来自 openclaw onboard)
52
+ * 设备认证配置
53
+ * - true: 启用设备认证,使用 Ed25519 密钥对签名 nonce
54
+ * - false: 禁用设备认证(默认)
55
+ */
56
+ deviceAuth?: boolean;
57
+ /**
58
+ * 连接认证信息
59
+ * 在 connect 握手时传入 Gateway,通常包含 token 等
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * openclaw: {
64
+ * auth: { token: 'your-token-here' }
65
+ * }
66
+ * ```
54
67
  */
55
68
  auth?: {
56
69
  token?: string;
@@ -60,22 +73,8 @@ export interface OpenClawConfig {
60
73
  /**
61
74
  * OpenClaw 配置默认值
62
75
  */
63
- export declare const DEFAULT_OPENCLAW_CONFIG: {
64
- heartbeatInterval: number;
65
- client: {
66
- id: string;
67
- version: string;
68
- mode: string;
69
- };
70
- protocolVersion: {
71
- min: number;
72
- max: number;
73
- };
74
- auth: NonNullable<OpenClawConfig["auth"]>;
75
- };
76
- /** 合并后的配置类型 */
77
- export type MergedOpenClawConfig = Required<OpenClawConfig>;
76
+ export declare const DEFAULT_OPENCLAW_CONFIG: Required<OpenClawConfig>;
78
77
  /**
79
78
  * 合并 OpenClaw 配置与默认值
80
79
  */
81
- export declare function mergeOpenClawConfig(config?: OpenClawConfig): MergedOpenClawConfig;
80
+ export declare function mergeOpenClawConfig(config?: OpenClawConfig): Required<OpenClawConfig>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.16
2
+ * tdesign v1.1.0-alpha.17
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -19,14 +19,16 @@ var DEFAULT_OPENCLAW_CONFIG = {
19
19
  min: 3,
20
20
  max: 3
21
21
  },
22
+ deviceAuth: false,
22
23
  auth: {}
23
24
  };
24
25
  function mergeOpenClawConfig(config) {
25
- var _config$heartbeatInte, _config$auth;
26
+ var _config$heartbeatInte, _config$deviceAuth, _config$auth;
26
27
  return {
27
28
  heartbeatInterval: (_config$heartbeatInte = config === null || config === void 0 ? void 0 : config.heartbeatInterval) !== null && _config$heartbeatInte !== void 0 ? _config$heartbeatInte : DEFAULT_OPENCLAW_CONFIG.heartbeatInterval,
28
29
  client: _objectSpread(_objectSpread({}, DEFAULT_OPENCLAW_CONFIG.client), config === null || config === void 0 ? void 0 : config.client),
29
30
  protocolVersion: _objectSpread(_objectSpread({}, DEFAULT_OPENCLAW_CONFIG.protocolVersion), config === null || config === void 0 ? void 0 : config.protocolVersion),
31
+ deviceAuth: (_config$deviceAuth = config === null || config === void 0 ? void 0 : config.deviceAuth) !== null && _config$deviceAuth !== void 0 ? _config$deviceAuth : DEFAULT_OPENCLAW_CONFIG.deviceAuth,
30
32
  auth: (_config$auth = config === null || config === void 0 ? void 0 : config.auth) !== null && _config$auth !== void 0 ? _config$auth : DEFAULT_OPENCLAW_CONFIG.auth
31
33
  };
32
34
  }
@@ -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 * 认证信息,用于 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 = {\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: {} as NonNullable<OpenClawConfig['auth']>,\n};\n\n/** 合并后的配置类型 */\nexport type MergedOpenClawConfig = Required<OpenClawConfig>;\n\n/**\n * 合并 OpenClaw 配置与默认值\n */\nexport function mergeOpenClawConfig(config?: OpenClawConfig): MergedOpenClawConfig {\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,uBAA0B,GAAA;AACrCC,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;AAQO,SAASC,oBAAoBC,MAA+C,EAAA;EAAA,IAAAC,qBAAA,EAAAC,YAAA,CAAA;EAC1E,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;;;;"}
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 * - true: 启用设备认证,使用 Ed25519 密钥对签名 nonce\n * - false: 禁用设备认证(默认)\n */\n deviceAuth?: boolean;\n\n /**\n * 连接认证信息\n * 在 connect 握手时传入 Gateway,通常包含 token 等\n *\n * @example\n * ```ts\n * openclaw: {\n * auth: { token: 'your-token-here' }\n * }\n * ```\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 deviceAuth: false,\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 deviceAuth: config?.deviceAuth ?? DEFAULT_OPENCLAW_CONFIG.deviceAuth,\n auth: config?.auth ?? DEFAULT_OPENCLAW_CONFIG.auth,\n };\n}\n"],"names":["DEFAULT_OPENCLAW_CONFIG","heartbeatInterval","client","id","version","mode","protocolVersion","min","max","deviceAuth","auth","mergeOpenClawConfig","config","_config$heartbeatInte","_config$deviceAuth","_config$auth","_objectSpread"],"mappings":";;;;;;;;;;AAmFO,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,UAAY,EAAA,KAAA;AACZC,EAAAA,MAAM,EAAC;AACT,EAAA;AAKO,SAASC,oBAAoBC,MAAmD,EAAA;AAAA,EAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,YAAA,CAAA;EAC9E,OAAA;AACLd,IAAAA,iBAAA,GAAAY,qBAAA,GAAmBD,MAAQ,KAAA,IAAA,IAARA,MAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAQ,CAAAX,iBAAA,cAAAY,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAqBb,uBAAwB,CAAAC,iBAAA;AACxEC,IAAAA,MAAQ,EAAAc,aAAA,CAAAA,aAAA,CAAA,EAAA,EACHhB,uBAAwB,CAAAE,MAAA,CACxBU,EAAAA,MAAQ,aAARA,MAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,MAAQ,CAAAV,MAAA,CACb;AACAI,IAAAA,eAAiB,EAAAU,aAAA,CAAAA,aAAA,CAAA,EAAA,EACZhB,uBAAwB,CAAAM,eAAA,CACxBM,EAAAA,MAAQ,aAARA,MAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,MAAQ,CAAAN,eAAA,CACb;AACAG,IAAAA,UAAA,GAAAK,kBAAA,GAAYF,MAAQ,KAAA,IAAA,IAARA,MAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAQ,CAAAH,UAAA,cAAAK,kBAAA,KAAA,KAAA,CAAA,GAAAA,kBAAA,GAAcd,uBAAwB,CAAAS,UAAA;AAC1DC,IAAAA,IAAA,GAAAK,YAAA,GAAMH,MAAQ,KAAA,IAAA,IAARA,MAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAQ,CAAAF,IAAA,cAAAK,YAAA,KAAA,KAAA,CAAA,GAAAA,YAAA,GAAQf,uBAAwB,CAAAU,IAAAA;GAChD,CAAA;AACF;;;;"}
@@ -58,7 +58,9 @@ export declare enum AgentStreamType {
58
58
  /** 系统流 */
59
59
  SYSTEM = "system",
60
60
  /** Activity 组件流 */
61
- ACTIVITY = "activity"
61
+ ACTIVITY = "activity",
62
+ /** 生命周期流(agent 启动/停止等,不包含文本内容) */
63
+ LIFECYCLE = "lifecycle"
62
64
  }
63
65
  /**
64
66
  * Agent 数据类型
@@ -89,6 +91,8 @@ export declare enum OpenClawMethod {
89
91
  SESSIONS_PATCH = "sessions.patch",
90
92
  /** 会话列表 */
91
93
  SESSIONS_LIST = "sessions.list",
94
+ /** 会话历史消息 */
95
+ SESSIONS_HISTORY = "sessions.history",
92
96
  /** 心跳 */
93
97
  HEARTBEAT = "heartbeat",
94
98
  /** 节点列表 */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.16
2
+ * tdesign v1.1.0-alpha.17
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -33,6 +33,7 @@ var AgentStreamType = /* @__PURE__ */function (AgentStreamType2) {
33
33
  AgentStreamType2["TOOL"] = "tool";
34
34
  AgentStreamType2["SYSTEM"] = "system";
35
35
  AgentStreamType2["ACTIVITY"] = "activity";
36
+ AgentStreamType2["LIFECYCLE"] = "lifecycle";
36
37
  return AgentStreamType2;
37
38
  }(AgentStreamType || {});
38
39
  var AgentDataType = /* @__PURE__ */function (AgentDataType2) {
@@ -49,6 +50,7 @@ var OpenClawMethod = /* @__PURE__ */function (OpenClawMethod2) {
49
50
  OpenClawMethod2["CHAT_SEND"] = "chat.send";
50
51
  OpenClawMethod2["SESSIONS_PATCH"] = "sessions.patch";
51
52
  OpenClawMethod2["SESSIONS_LIST"] = "sessions.list";
53
+ OpenClawMethod2["SESSIONS_HISTORY"] = "sessions.history";
52
54
  OpenClawMethod2["HEARTBEAT"] = "heartbeat";
53
55
  OpenClawMethod2["NODE_LIST"] = "node.list";
54
56
  OpenClawMethod2["NODE_DESCRIBE"] = "node.describe";
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sources":["../../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/types/events.ts"],"sourcesContent":["/**\n * OpenClaw 事件类型定义\n */\n\n/**\n * OpenClaw 核心事件类型\n */\nexport enum OpenClawEventType {\n // ============= 连接相关 =============\n /** 连接挑战(握手第一步) */\n CONNECT_CHALLENGE = 'connect.challenge',\n /** 连接成功 */\n CONNECT_SUCCESS = 'connect.success',\n /** 连接断开 */\n CONNECT_DISCONNECT = 'connect.disconnect',\n\n // ============= 聊天相关 =============\n /** 聊天消息 */\n CHAT = 'chat',\n /** 聊天状态更新 */\n CHAT_STATUS = 'chat.status',\n\n // ============= Agent 相关 =============\n /** Agent 事件(通用) */\n AGENT = 'agent',\n /** Agent 开始 */\n AGENT_START = 'agent.start',\n /** Agent 完成 */\n AGENT_COMPLETE = 'agent.complete',\n /** Agent 错误 */\n AGENT_ERROR = 'agent.error',\n\n // ============= 存在状态 =============\n /** 在线状态 */\n PRESENCE = 'presence',\n\n // ============= 健康检查 =============\n /** 健康检查 */\n HEALTH = 'health',\n /** 心跳 */\n HEARTBEAT = 'heartbeat',\n\n // ============= Canvas/A2UI =============\n /** Canvas 更新 */\n CANVAS = 'canvas',\n /** A2UI 活动 */\n A2UI_ACTIVITY = 'a2ui.activity',\n}\n\n/**\n * Chat 事件状态\n */\nexport enum ChatEventState {\n /** 增量更新(流式传输中) */\n DELTA = 'delta',\n /** 最终完成 */\n FINAL = 'final',\n /** 错误 */\n ERROR = 'error',\n /** 中止 */\n ABORTED = 'aborted',\n}\n\n/**\n * Agent 流类型\n */\nexport enum AgentStreamType {\n /** 助手流 */\n ASSISTANT = 'assistant',\n /** 工具流 */\n TOOL = 'tool',\n /** 系统流 */\n SYSTEM = 'system',\n /** Activity 组件流 */\n ACTIVITY = 'activity',\n}\n\n/**\n * Agent 数据类型\n */\nexport enum AgentDataType {\n /** 文本快照 */\n TEXT_SNAPSHOT = 'text_snapshot',\n /** 文本增量 */\n TEXT_DELTA = 'text_delta',\n /** 工具调用 */\n TOOL_CALL = 'tool_call',\n /** 工具结果 */\n TOOL_RESULT = 'tool_result',\n /** 完成 */\n DONE = 'done',\n /** 错误 */\n ERROR = 'error',\n}\n\n/**\n * OpenClaw RPC 方法名\n */\nexport enum OpenClawMethod {\n /** 连接认证 */\n CONNECT = 'connect',\n /** 发送聊天消息 */\n CHAT_SEND = 'chat.send',\n /** 会话补丁更新 */\n SESSIONS_PATCH = 'sessions.patch',\n /** 会话列表 */\n SESSIONS_LIST = 'sessions.list',\n /** 心跳 */\n HEARTBEAT = 'heartbeat',\n /** 节点列表 */\n NODE_LIST = 'node.list',\n /** 节点描述 */\n NODE_DESCRIBE = 'node.describe',\n /** 节点调用 */\n NODE_INVOKE = 'node.invoke',\n}\n\n/**\n * 连接状态\n */\nexport enum OpenClawConnectionState {\n /** 已断开 */\n DISCONNECTED = 'disconnected',\n /** 连接中 */\n CONNECTING = 'connecting',\n /** 已连接(握手中) */\n HANDSHAKING = 'handshaking',\n /** 已认证(可用) */\n AUTHENTICATED = 'authenticated',\n /** 重连中 */\n RECONNECTING = 'reconnecting',\n /** 关闭中 */\n CLOSING = 'closing',\n /** 已关闭 */\n CLOSED = 'closed',\n /** 错误 */\n ERROR = 'error',\n}\n"],"names":["OpenClawEventType","ChatEventState","AgentStreamType","AgentDataType","OpenClawMethod","OpenClawConnectionState"],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sources":["../../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/types/events.ts"],"sourcesContent":["/**\n * OpenClaw 事件类型定义\n */\n\n/**\n * OpenClaw 核心事件类型\n */\nexport enum OpenClawEventType {\n // ============= 连接相关 =============\n /** 连接挑战(握手第一步) */\n CONNECT_CHALLENGE = 'connect.challenge',\n /** 连接成功 */\n CONNECT_SUCCESS = 'connect.success',\n /** 连接断开 */\n CONNECT_DISCONNECT = 'connect.disconnect',\n\n // ============= 聊天相关 =============\n /** 聊天消息 */\n CHAT = 'chat',\n /** 聊天状态更新 */\n CHAT_STATUS = 'chat.status',\n\n // ============= Agent 相关 =============\n /** Agent 事件(通用) */\n AGENT = 'agent',\n /** Agent 开始 */\n AGENT_START = 'agent.start',\n /** Agent 完成 */\n AGENT_COMPLETE = 'agent.complete',\n /** Agent 错误 */\n AGENT_ERROR = 'agent.error',\n\n // ============= 存在状态 =============\n /** 在线状态 */\n PRESENCE = 'presence',\n\n // ============= 健康检查 =============\n /** 健康检查 */\n HEALTH = 'health',\n /** 心跳 */\n HEARTBEAT = 'heartbeat',\n\n // ============= Canvas/A2UI =============\n /** Canvas 更新 */\n CANVAS = 'canvas',\n /** A2UI 活动 */\n A2UI_ACTIVITY = 'a2ui.activity',\n}\n\n/**\n * Chat 事件状态\n */\nexport enum ChatEventState {\n /** 增量更新(流式传输中) */\n DELTA = 'delta',\n /** 最终完成 */\n FINAL = 'final',\n /** 错误 */\n ERROR = 'error',\n /** 中止 */\n ABORTED = 'aborted',\n}\n\n/**\n * Agent 流类型\n */\nexport enum AgentStreamType {\n /** 助手流 */\n ASSISTANT = 'assistant',\n /** 工具流 */\n TOOL = 'tool',\n /** 系统流 */\n SYSTEM = 'system',\n /** Activity 组件流 */\n ACTIVITY = 'activity',\n /** 生命周期流(agent 启动/停止等,不包含文本内容) */\n LIFECYCLE = 'lifecycle',\n}\n\n/**\n * Agent 数据类型\n */\nexport enum AgentDataType {\n /** 文本快照 */\n TEXT_SNAPSHOT = 'text_snapshot',\n /** 文本增量 */\n TEXT_DELTA = 'text_delta',\n /** 工具调用 */\n TOOL_CALL = 'tool_call',\n /** 工具结果 */\n TOOL_RESULT = 'tool_result',\n /** 完成 */\n DONE = 'done',\n /** 错误 */\n ERROR = 'error',\n}\n\n/**\n * OpenClaw RPC 方法名\n */\nexport enum OpenClawMethod {\n /** 连接认证 */\n CONNECT = 'connect',\n /** 发送聊天消息 */\n CHAT_SEND = 'chat.send',\n /** 会话补丁更新 */\n SESSIONS_PATCH = 'sessions.patch',\n /** 会话列表 */\n SESSIONS_LIST = 'sessions.list',\n /** 会话历史消息 */\n SESSIONS_HISTORY = 'sessions.history',\n /** 心跳 */\n HEARTBEAT = 'heartbeat',\n /** 节点列表 */\n NODE_LIST = 'node.list',\n /** 节点描述 */\n NODE_DESCRIBE = 'node.describe',\n /** 节点调用 */\n NODE_INVOKE = 'node.invoke',\n}\n\n/**\n * 连接状态\n */\nexport enum OpenClawConnectionState {\n /** 已断开 */\n DISCONNECTED = 'disconnected',\n /** 连接中 */\n CONNECTING = 'connecting',\n /** 已连接(握手中) */\n HANDSHAKING = 'handshaking',\n /** 已认证(可用) */\n AUTHENTICATED = 'authenticated',\n /** 重连中 */\n RECONNECTING = 'reconnecting',\n /** 关闭中 */\n CLOSING = 'closing',\n /** 已关闭 */\n CLOSED = 'closed',\n /** 错误 */\n ERROR = 'error',\n}\n"],"names":["OpenClawEventType","ChatEventState","AgentStreamType","AgentDataType","OpenClawMethod","OpenClawConnectionState"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.16
2
+ * tdesign v1.1.0-alpha.17
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -90,6 +90,19 @@ export interface ConnectParams {
90
90
  token?: string;
91
91
  [key: string]: unknown;
92
92
  };
93
+ /** 设备身份信息(由 DeviceKeyManager 自动生成) */
94
+ device?: {
95
+ /** 设备 ID */
96
+ id: string;
97
+ /** 公钥(hex 编码) */
98
+ publicKey: string;
99
+ /** nonce 签名(hex 编码) */
100
+ signature: string;
101
+ /** 签名时间戳(Unix 秒级时间戳) */
102
+ signedAt: number;
103
+ /** 回传的 challenge nonce */
104
+ nonce: string;
105
+ };
93
106
  /** User Agent */
94
107
  userAgent?: string;
95
108
  /** 语言环境 */
@@ -97,6 +110,9 @@ export interface ConnectParams {
97
110
  }
98
111
  /**
99
112
  * connect 方法响应
113
+ *
114
+ * OpenClaw Gateway 在 connect 响应中可能附带历史消息(messages 字段),
115
+ * 用于页面刷新后自动回填历史对话记录。
100
116
  */
101
117
  export interface ConnectResponse {
102
118
  /** 协商后的协议版本 */
@@ -107,6 +123,12 @@ export interface ConnectResponse {
107
123
  serverVersion?: string;
108
124
  /** 支持的能力列表 */
109
125
  capabilities?: string[];
126
+ /** 会话标识(Gateway 推送历史消息时附带) */
127
+ sessionKey?: string;
128
+ /** 历史消息(Gateway 在 connect 响应中主动推送,用于页面刷新后回填) */
129
+ messages?: Array<Record<string, unknown>>;
130
+ /** 思考级别(Gateway 附带) */
131
+ thinkingLevel?: string;
110
132
  }
111
133
  /**
112
134
  * chat.send 方法参数(基础结构,具体字段由 onRequest 传入)
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.16
2
+ * tdesign v1.1.0-alpha.17
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */