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

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 (431) hide show
  1. package/es/_chunks/{dep-dfe91b1f.js → dep-e1e84ed7.js} +1 -1
  2. package/es/_chunks/{dep-13fe70ea.js.map → dep-e1e84ed7.js.map} +1 -1
  3. package/es/chat-engine/components/index.js +8 -3
  4. package/es/chat-engine/components/index.js.map +1 -1
  5. package/es/chat-engine/components/json-render/catalog/atomic/input.js +8 -3
  6. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -1
  7. package/es/chat-engine/components/json-render/index.js +8 -3
  8. package/es/chat-engine/components/json-render/index.js.map +1 -1
  9. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +8 -3
  10. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -1
  11. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +8 -3
  12. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -1
  13. package/es/chat-engine/components/json-render/registry/config.js +8 -3
  14. package/es/chat-engine/components/json-render/registry/config.js.map +1 -1
  15. package/es/chat-engine/components/json-render/registry/index.js +8 -3
  16. package/es/chat-engine/components/json-render/registry/index.js.map +1 -1
  17. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +7 -2
  18. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -1
  19. package/es/chat-engine/components/provider/agent-state.js +7 -2
  20. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  21. package/es/chat-engine/components/toolcall/index.js +7 -2
  22. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  23. package/es/chat-engine/components/toolcall/render.js +6 -1
  24. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  25. package/es/chat-engine/core/adapters/agui/index.js +5 -50
  26. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  27. package/es/chat-engine/core/adapters/agui/utils.d.ts +25 -2
  28. package/es/chat-engine/core/adapters/agui/utils.js +51 -11
  29. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
  30. package/es/chat-engine/core/adapters/index.js +1 -0
  31. package/es/chat-engine/core/adapters/index.js.map +1 -1
  32. package/es/chat-engine/core/adapters/openclaw/event-mapper.d.ts +36 -14
  33. package/es/chat-engine/core/adapters/openclaw/event-mapper.js +35 -20
  34. package/es/chat-engine/core/adapters/openclaw/event-mapper.js.map +1 -1
  35. package/es/chat-engine/core/adapters/openclaw/history-converter.d.ts +120 -0
  36. package/es/chat-engine/core/adapters/openclaw/history-converter.js +251 -0
  37. package/es/chat-engine/core/adapters/openclaw/history-converter.js.map +1 -0
  38. package/es/chat-engine/core/adapters/openclaw/index.d.ts +30 -0
  39. package/es/chat-engine/core/adapters/openclaw/index.js +82 -35
  40. package/es/chat-engine/core/adapters/openclaw/index.js.map +1 -1
  41. package/es/chat-engine/core/adapters/openclaw/rpc-handler.d.ts +13 -0
  42. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js +19 -0
  43. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js.map +1 -1
  44. package/es/chat-engine/core/adapters/openclaw/types/config.d.ts +2 -24
  45. package/es/chat-engine/core/adapters/openclaw/types/config.js +3 -5
  46. package/es/chat-engine/core/adapters/openclaw/types/config.js.map +1 -1
  47. package/es/chat-engine/core/adapters/openclaw/types/events.d.ts +2 -0
  48. package/es/chat-engine/core/adapters/openclaw/types/events.js +1 -0
  49. package/es/chat-engine/core/adapters/openclaw/types/events.js.map +1 -1
  50. package/es/chat-engine/core/adapters/openclaw/types/messages.d.ts +9 -0
  51. package/es/chat-engine/core/adapters/openclaw/types/messages.js.map +1 -1
  52. package/es/chat-engine/core/adapters/openclaw/utils.js.map +1 -1
  53. package/es/chat-engine/core/index.d.ts +24 -24
  54. package/es/chat-engine/core/index.js +150 -317
  55. package/es/chat-engine/core/index.js.map +1 -1
  56. package/es/chat-engine/core/processor/index.d.ts +32 -0
  57. package/es/chat-engine/core/processor/index.js +75 -0
  58. package/es/chat-engine/core/processor/index.js.map +1 -1
  59. package/es/chat-engine/core/server/index.js +0 -20
  60. package/es/chat-engine/core/server/index.js.map +1 -1
  61. package/es/chat-engine/core/server/llm-service.d.ts +7 -7
  62. package/es/chat-engine/core/server/llm-service.js +12 -139
  63. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  64. package/es/chat-engine/core/stream-handlers/agui-stream-handler.d.ts +24 -0
  65. package/es/chat-engine/core/stream-handlers/agui-stream-handler.js +140 -0
  66. package/es/chat-engine/core/stream-handlers/agui-stream-handler.js.map +1 -0
  67. package/es/chat-engine/core/stream-handlers/default-stream-handler.d.ts +7 -0
  68. package/es/chat-engine/core/stream-handlers/default-stream-handler.js +77 -0
  69. package/es/chat-engine/core/stream-handlers/default-stream-handler.js.map +1 -0
  70. package/es/chat-engine/core/stream-handlers/index.d.ts +21 -0
  71. package/es/chat-engine/core/stream-handlers/index.js +71 -0
  72. package/es/chat-engine/core/stream-handlers/index.js.map +1 -0
  73. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.d.ts +56 -0
  74. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.js +269 -0
  75. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.js.map +1 -0
  76. package/es/chat-engine/core/stream-handlers/types.d.ts +47 -0
  77. package/es/chat-engine/core/stream-handlers/types.js +7 -0
  78. package/es/chat-engine/core/stream-handlers/types.js.map +1 -0
  79. package/es/chat-engine/core/type.d.ts +18 -0
  80. package/es/chat-engine/hooks/index.js +7 -2
  81. package/es/chat-engine/hooks/index.js.map +1 -1
  82. package/es/chat-engine/hooks/useAgentState.js +7 -2
  83. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  84. package/es/chat-engine/hooks/useChat.js +11 -5
  85. package/es/chat-engine/hooks/useChat.js.map +1 -1
  86. package/es/chat-engine/index.js +6 -1
  87. package/es/chat-engine/index.js.map +1 -1
  88. package/es/index.js +6 -1
  89. package/es/index.js.map +1 -1
  90. package/package.json +1 -1
  91. package/es/_chunks/dep-076af7c3.js +0 -438
  92. package/es/_chunks/dep-076af7c3.js.map +0 -1
  93. package/es/_chunks/dep-1007ac80.js +0 -205
  94. package/es/_chunks/dep-1007ac80.js.map +0 -1
  95. package/es/_chunks/dep-13fe70ea.js +0 -438
  96. package/es/_chunks/dep-16520c2b.js +0 -1247
  97. package/es/_chunks/dep-16520c2b.js.map +0 -1
  98. package/es/_chunks/dep-1743bd61.js +0 -438
  99. package/es/_chunks/dep-1743bd61.js.map +0 -1
  100. package/es/_chunks/dep-1ca64fef.js +0 -1247
  101. package/es/_chunks/dep-1ca64fef.js.map +0 -1
  102. package/es/_chunks/dep-24472232.js +0 -839
  103. package/es/_chunks/dep-24472232.js.map +0 -1
  104. package/es/_chunks/dep-2bfe72cb.js +0 -438
  105. package/es/_chunks/dep-2bfe72cb.js.map +0 -1
  106. package/es/_chunks/dep-3864b369.js +0 -839
  107. package/es/_chunks/dep-3864b369.js.map +0 -1
  108. package/es/_chunks/dep-3e40d789.js +0 -169
  109. package/es/_chunks/dep-3e40d789.js.map +0 -1
  110. package/es/_chunks/dep-4dedfbef.js +0 -438
  111. package/es/_chunks/dep-4dedfbef.js.map +0 -1
  112. package/es/_chunks/dep-56f5e08e.js +0 -448
  113. package/es/_chunks/dep-56f5e08e.js.map +0 -1
  114. package/es/_chunks/dep-58d90dfe.js +0 -438
  115. package/es/_chunks/dep-58d90dfe.js.map +0 -1
  116. package/es/_chunks/dep-5b6b17d0.js +0 -169
  117. package/es/_chunks/dep-5b6b17d0.js.map +0 -1
  118. package/es/_chunks/dep-5e2400d2.js +0 -438
  119. package/es/_chunks/dep-5e2400d2.js.map +0 -1
  120. package/es/_chunks/dep-60f2a734.js +0 -169
  121. package/es/_chunks/dep-60f2a734.js.map +0 -1
  122. package/es/_chunks/dep-688e4aaa.js +0 -438
  123. package/es/_chunks/dep-688e4aaa.js.map +0 -1
  124. package/es/_chunks/dep-771678df.js +0 -438
  125. package/es/_chunks/dep-771678df.js.map +0 -1
  126. package/es/_chunks/dep-870f0d35.js +0 -839
  127. package/es/_chunks/dep-870f0d35.js.map +0 -1
  128. package/es/_chunks/dep-93283bbd.js +0 -1247
  129. package/es/_chunks/dep-93283bbd.js.map +0 -1
  130. package/es/_chunks/dep-96eca06f.js +0 -169
  131. package/es/_chunks/dep-96eca06f.js.map +0 -1
  132. package/es/_chunks/dep-98d23dfa.js +0 -169
  133. package/es/_chunks/dep-98d23dfa.js.map +0 -1
  134. package/es/_chunks/dep-991f7c12.js +0 -1247
  135. package/es/_chunks/dep-991f7c12.js.map +0 -1
  136. package/es/_chunks/dep-b4eec30f.js +0 -1247
  137. package/es/_chunks/dep-b4eec30f.js.map +0 -1
  138. package/es/_chunks/dep-ba3bd553.js +0 -169
  139. package/es/_chunks/dep-ba3bd553.js.map +0 -1
  140. package/es/_chunks/dep-bcb234a1.js +0 -839
  141. package/es/_chunks/dep-bcb234a1.js.map +0 -1
  142. package/es/_chunks/dep-dbdfe7d6.js +0 -169
  143. package/es/_chunks/dep-dbdfe7d6.js.map +0 -1
  144. package/es/_chunks/dep-de8ac730.js +0 -1247
  145. package/es/_chunks/dep-de8ac730.js.map +0 -1
  146. package/es/_chunks/dep-dfe91b1f.js.map +0 -1
  147. package/es/_chunks/dep-e9dbff09.js +0 -1247
  148. package/es/_chunks/dep-e9dbff09.js.map +0 -1
  149. package/es/_chunks/dep-ebc4cf30.js +0 -1247
  150. package/es/_chunks/dep-ebc4cf30.js.map +0 -1
  151. package/es/_chunks/dep-f2051ebd.js +0 -839
  152. package/es/_chunks/dep-f2051ebd.js.map +0 -1
  153. package/es/_chunks/dep-f691a67e.js +0 -438
  154. package/es/_chunks/dep-f691a67e.js.map +0 -1
  155. package/es/_chunks/dep-f8016301.js +0 -169
  156. package/es/_chunks/dep-f8016301.js.map +0 -1
  157. package/es/chat-actionbar/_example-js/base.d.ts +0 -2
  158. package/es/chat-actionbar/_example-js/custom.d.ts +0 -2
  159. package/es/chat-actionbar/_example-js/style.d.ts +0 -2
  160. package/es/chat-attachments/_example-js/base.d.ts +0 -2
  161. package/es/chat-attachments/_example-js/scroll-x.d.ts +0 -2
  162. package/es/chat-attachments/_example-js/scroll-y.d.ts +0 -2
  163. package/es/chat-attachments/index.d.ts +0 -5
  164. package/es/chat-attachments/index.js +0 -26
  165. package/es/chat-attachments/index.js.map +0 -1
  166. package/es/chat-engine/_example-js/agui-basic.d.ts +0 -10
  167. package/es/chat-engine/_example-js/agui-comprehensive.d.ts +0 -2
  168. package/es/chat-engine/_example-js/agui-test.d.ts +0 -11
  169. package/es/chat-engine/_example-js/agui-toolcall.d.ts +0 -5
  170. package/es/chat-engine/_example-js/agui-videoclip.d.ts +0 -8
  171. package/es/chat-engine/_example-js/agui.d.ts +0 -1
  172. package/es/chat-engine/_example-js/basic.d.ts +0 -9
  173. package/es/chat-engine/_example-js/components/HotelCard.d.ts +0 -3
  174. package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +0 -6
  175. package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +0 -3
  176. package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +0 -3
  177. package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +0 -4
  178. package/es/chat-engine/_example-js/components/Toolcall.d.ts +0 -4
  179. package/es/chat-engine/_example-js/components/WeatherCard.d.ts +0 -3
  180. package/es/chat-engine/_example-js/components/login.d.ts +0 -1
  181. package/es/chat-engine/_example-js/comprehensive.d.ts +0 -12
  182. package/es/chat-engine/_example-js/custom-content.d.ts +0 -1
  183. package/es/chat-engine/_example-js/hookComponent.d.ts +0 -1
  184. package/es/chat-engine/_example-js/initial-messages.d.ts +0 -9
  185. package/es/chat-engine/_example-js/instance-methods.d.ts +0 -13
  186. package/es/chat-engine/_example-js/travel-actions.d.ts +0 -91
  187. package/es/chat-engine/_example-js/travelToolcall.d.ts +0 -1
  188. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +0 -196
  189. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +0 -301
  190. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +0 -1
  191. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +0 -37
  192. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +0 -116
  193. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +0 -1
  194. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +0 -42
  195. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +0 -113
  196. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +0 -1
  197. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +0 -60
  198. package/es/chat-engine/components/a2ui/A2UISkeleton.js +0 -197
  199. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +0 -1
  200. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +0 -44
  201. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +0 -139
  202. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +0 -1
  203. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +0 -22
  204. package/es/chat-engine/components/a2ui/containers/A2UICard.js +0 -82
  205. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +0 -1
  206. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +0 -18
  207. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +0 -81
  208. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +0 -1
  209. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +0 -14
  210. package/es/chat-engine/components/a2ui/containers/A2UIList.js +0 -62
  211. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +0 -1
  212. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +0 -20
  213. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +0 -84
  214. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +0 -1
  215. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +0 -14
  216. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +0 -69
  217. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +0 -1
  218. package/es/chat-engine/components/a2ui/containers/index.d.ts +0 -8
  219. package/es/chat-engine/components/a2ui/containers/index.js +0 -30
  220. package/es/chat-engine/components/a2ui/containers/index.js.map +0 -1
  221. package/es/chat-engine/components/a2ui/index.d.ts +0 -11
  222. package/es/chat-engine/components/a2ui/index.js +0 -62
  223. package/es/chat-engine/components/a2ui/index.js.map +0 -1
  224. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +0 -33
  225. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +0 -80
  226. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +0 -1
  227. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +0 -12
  228. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +0 -43
  229. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +0 -1
  230. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +0 -50
  231. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +0 -54
  232. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +0 -1
  233. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +0 -13
  234. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +0 -89
  235. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +0 -1
  236. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +0 -12
  237. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +0 -25
  238. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +0 -1
  239. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +0 -13
  240. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +0 -138942
  241. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +0 -1
  242. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +0 -12
  243. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +0 -75
  244. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +0 -1
  245. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +0 -20
  246. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +0 -63
  247. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +0 -1
  248. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +0 -56
  249. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +0 -64
  250. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +0 -1
  251. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +0 -12
  252. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +0 -55
  253. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +0 -1
  254. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +0 -12
  255. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +0 -104
  256. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +0 -1
  257. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +0 -12
  258. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +0 -80
  259. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +0 -1
  260. package/es/chat-engine/components/a2ui/primitives/index.d.ts +0 -15
  261. package/es/chat-engine/components/a2ui/primitives/index.js +0 -39
  262. package/es/chat-engine/components/a2ui/primitives/index.js.map +0 -1
  263. package/es/chat-engine/components/a2ui/registry.d.ts +0 -35
  264. package/es/chat-engine/components/a2ui/registry.js +0 -74
  265. package/es/chat-engine/components/a2ui/registry.js.map +0 -1
  266. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +0 -36
  267. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +0 -36
  268. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +0 -1
  269. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +0 -46
  270. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +0 -36
  271. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +0 -1
  272. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +0 -113
  273. package/es/chat-engine/components/json-render/SurfaceStateManager.js +0 -195
  274. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +0 -1
  275. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +0 -49
  276. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +0 -307
  277. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +0 -1
  278. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +0 -96
  279. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +0 -7
  280. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +0 -1
  281. package/es/chat-engine/components/json-render/adapters/index.d.ts +0 -7
  282. package/es/chat-engine/components/json-render/adapters/index.js +0 -11
  283. package/es/chat-engine/components/json-render/adapters/index.js.map +0 -1
  284. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +0 -64
  285. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +0 -36
  286. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +0 -1
  287. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +0 -78
  288. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +0 -36
  289. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +0 -1
  290. package/es/chat-engine/components/json-render/catalog/button.d.ts +0 -14
  291. package/es/chat-engine/components/json-render/catalog/button.js +0 -71
  292. package/es/chat-engine/components/json-render/catalog/button.js.map +0 -1
  293. package/es/chat-engine/components/json-render/catalog/card.d.ts +0 -11
  294. package/es/chat-engine/components/json-render/catalog/card.js +0 -57
  295. package/es/chat-engine/components/json-render/catalog/card.js.map +0 -1
  296. package/es/chat-engine/components/json-render/catalog/index.d.ts +0 -128
  297. package/es/chat-engine/components/json-render/catalog/index.js +0 -36
  298. package/es/chat-engine/components/json-render/catalog/index.js.map +0 -1
  299. package/es/chat-engine/components/json-render/catalog/input.d.ts +0 -20
  300. package/es/chat-engine/components/json-render/catalog/input.js +0 -36
  301. package/es/chat-engine/components/json-render/catalog/input.js.map +0 -1
  302. package/es/chat-engine/components/json-render/catalog/layout.d.ts +0 -44
  303. package/es/chat-engine/components/json-render/catalog/layout.js +0 -129
  304. package/es/chat-engine/components/json-render/catalog/layout.js.map +0 -1
  305. package/es/chat-engine/components/json-render/catalog/text.d.ts +0 -11
  306. package/es/chat-engine/components/json-render/catalog/text.js +0 -31
  307. package/es/chat-engine/components/json-render/catalog/text.js.map +0 -1
  308. package/es/chat-engine/components/json-render/catalog.d.ts +0 -614
  309. package/es/chat-engine/components/json-render/catalog.js +0 -779
  310. package/es/chat-engine/components/json-render/catalog.js.map +0 -1
  311. package/es/chat-engine/components/json-render/config.d.ts +0 -154
  312. package/es/chat-engine/components/json-render/config.js +0 -36
  313. package/es/chat-engine/components/json-render/config.js.map +0 -1
  314. package/es/chat-engine/components/json-render/engine.d.ts +0 -58
  315. package/es/chat-engine/components/json-render/engine.js +0 -88
  316. package/es/chat-engine/components/json-render/engine.js.map +0 -1
  317. package/es/chat-engine/components/json-render/performance.d.ts +0 -91
  318. package/es/chat-engine/components/json-render/performance.js +0 -135
  319. package/es/chat-engine/components/json-render/performance.js.map +0 -1
  320. package/es/chat-engine/components/json-render/renderer/index.d.ts +0 -71
  321. package/es/chat-engine/components/json-render/renderer/index.js +0 -125
  322. package/es/chat-engine/components/json-render/renderer/index.js.map +0 -1
  323. package/es/chat-engine/components/json-render/renderer.d.ts +0 -71
  324. package/es/chat-engine/components/json-render/renderer.js +0 -124
  325. package/es/chat-engine/components/json-render/renderer.js.map +0 -1
  326. package/es/chat-engine/core/a2ui/index.d.ts +0 -10
  327. package/es/chat-engine/core/a2ui/index.js +0 -24
  328. package/es/chat-engine/core/a2ui/index.js.map +0 -1
  329. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +0 -197
  330. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +0 -438
  331. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +0 -1
  332. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +0 -53
  333. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +0 -158
  334. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +0 -1
  335. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +0 -63
  336. package/es/chat-engine/core/a2ui/processor/DataStore.js +0 -172
  337. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +0 -1
  338. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +0 -47
  339. package/es/chat-engine/core/a2ui/processor/PathResolver.js +0 -99
  340. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +0 -1
  341. package/es/chat-engine/core/a2ui/types/index.d.ts +0 -4
  342. package/es/chat-engine/core/a2ui/types/index.js +0 -9
  343. package/es/chat-engine/core/a2ui/types/index.js.map +0 -1
  344. package/es/chat-engine/core/a2ui/types/types.d.ts +0 -770
  345. package/es/chat-engine/core/a2ui/types/types.js +0 -104
  346. package/es/chat-engine/core/a2ui/types/types.js.map +0 -1
  347. package/es/chat-engine/core/a2ui/utils/binding.d.ts +0 -34
  348. package/es/chat-engine/core/a2ui/utils/binding.js +0 -1784
  349. package/es/chat-engine/core/a2ui/utils/binding.js.map +0 -1
  350. package/es/chat-engine/core/a2ui/utils/index.d.ts +0 -5
  351. package/es/chat-engine/core/a2ui/utils/index.js +0 -13
  352. package/es/chat-engine/core/a2ui/utils/index.js.map +0 -1
  353. package/es/chat-engine/core/a2ui/utils/validation.d.ts +0 -70
  354. package/es/chat-engine/core/a2ui/utils/validation.js +0 -333
  355. package/es/chat-engine/core/a2ui/utils/validation.js.map +0 -1
  356. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +0 -102
  357. package/es/chat-engine/core/adapters/agui/activity-manager.js +0 -150
  358. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +0 -1
  359. package/es/chat-engine/core/adapters/agui/events.d.ts +0 -1550
  360. package/es/chat-engine/core/adapters/agui/events.js +0 -199
  361. package/es/chat-engine/core/adapters/agui/events.js.map +0 -1
  362. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +0 -99
  363. package/es/chat-engine/core/adapters/agui/state-manager.js +0 -174
  364. package/es/chat-engine/core/adapters/agui/state-manager.js.map +0 -1
  365. package/es/chat-engine/core/adapters/agui/types.d.ts +0 -818
  366. package/es/chat-engine/core/adapters/agui/types.js +0 -95
  367. package/es/chat-engine/core/adapters/agui/types.js.map +0 -1
  368. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +0 -90
  369. package/es/chat-engine/hooks/a2ui/A2UIContext.js +0 -97
  370. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +0 -1
  371. package/es/chat-engine/hooks/a2ui/index.d.ts +0 -12
  372. package/es/chat-engine/hooks/a2ui/index.js +0 -19
  373. package/es/chat-engine/hooks/a2ui/index.js.map +0 -1
  374. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +0 -40
  375. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +0 -74
  376. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +0 -1
  377. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +0 -36
  378. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +0 -39
  379. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +0 -1
  380. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +0 -53
  381. package/es/chat-engine/hooks/a2ui/useDataBinding.js +0 -111
  382. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +0 -1
  383. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +0 -56
  384. package/es/chat-engine/hooks/useJsonRenderActivity.js +0 -63
  385. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +0 -1
  386. package/es/chat-filecard/_example-js/base.d.ts +0 -1
  387. package/es/chat-loading/_example-js/base.d.ts +0 -2
  388. package/es/chat-loading/_example-js/text.d.ts +0 -2
  389. package/es/chat-markdown/_example-js/base.d.ts +0 -1
  390. package/es/chat-markdown/_example-js/custom.d.ts +0 -2
  391. package/es/chat-markdown/_example-js/event.d.ts +0 -1
  392. package/es/chat-markdown/_example-js/footnote.d.ts +0 -2
  393. package/es/chat-markdown/_example-js/plugin.d.ts +0 -2
  394. package/es/chat-markdown/_example-js/theme.d.ts +0 -2
  395. package/es/chat-message/_example-js/action.d.ts +0 -1
  396. package/es/chat-message/_example-js/base.d.ts +0 -1
  397. package/es/chat-message/_example-js/configure.d.ts +0 -1
  398. package/es/chat-message/_example-js/content.d.ts +0 -1
  399. package/es/chat-message/_example-js/custom.d.ts +0 -1
  400. package/es/chat-message/_example-js/handle-actions.d.ts +0 -7
  401. package/es/chat-message/_example-js/status.d.ts +0 -1
  402. package/es/chat-message/_example-js/think.d.ts +0 -1
  403. package/es/chat-sender/_example-js/attachment.d.ts +0 -2
  404. package/es/chat-sender/_example-js/base.d.ts +0 -2
  405. package/es/chat-sender/_example-js/custom.d.ts +0 -2
  406. package/es/chat-thinking/_example-js/base.d.ts +0 -1
  407. package/es/chat-thinking/_example-js/style.d.ts +0 -1
  408. package/es/chatbot/_example-js/agent.d.ts +0 -1
  409. package/es/chatbot/_example-js/agui.d.ts +0 -13
  410. package/es/chatbot/_example-js/backup/travel.d.ts +0 -1
  411. package/es/chatbot/_example-js/basic.d.ts +0 -1
  412. package/es/chatbot/_example-js/code.d.ts +0 -1
  413. package/es/chatbot/_example-js/components/ItineraryCard.d.ts +0 -3
  414. package/es/chatbot/_example-js/components/login.d.ts +0 -1
  415. package/es/chatbot/_example-js/comprehensive.d.ts +0 -1
  416. package/es/chatbot/_example-js/custom-content.d.ts +0 -1
  417. package/es/chatbot/_example-js/custom-merge.d.ts +0 -1
  418. package/es/chatbot/_example-js/custom.d.ts +0 -1
  419. package/es/chatbot/_example-js/docs.d.ts +0 -1
  420. package/es/chatbot/_example-js/image.d.ts +0 -1
  421. package/es/chatbot/_example-js/initial-messages.d.ts +0 -9
  422. package/es/chatbot/_example-js/instance-methods.d.ts +0 -14
  423. package/es/chatbot/_example-js/nostream.d.ts +0 -1
  424. package/es/chatbot/_example-js/quick-start.d.ts +0 -9
  425. package/es/chatbot/_example-js/research.d.ts +0 -1
  426. package/es/chatbot/_example-js/role-message-config.d.ts +0 -22
  427. package/es/chatbot/_example-js/sender-config.d.ts +0 -20
  428. package/es/chatbot/_example-js/service-config.d.ts +0 -17
  429. package/es/chatbot/_example-js/simple.d.ts +0 -1
  430. package/es/chatbot/_example-js/utils/messageRenderer.d.ts +0 -5
  431. package/es/chatbot/docs/react-best-practice.d.ts +0 -13
@@ -24,6 +24,8 @@ export { DEFAULT_OPENCLAW_CONFIG, mergeOpenClawConfig } from './types/config.js'
24
24
  import { OpenClawConnectionState, OpenClawEventType } from './types/events.js';
25
25
  export { AgentDataType, AgentStreamType, ChatEventState, OpenClawConnectionState, OpenClawEventType, OpenClawMethod } from './types/events.js';
26
26
  import { generateUUID, formatWebSocketUrl, parseFrame, getPlatform, getUserAgent, getLocale } from './utils.js';
27
+ import { convertOpenClawHistoryResponse, convertOpenClawHistory } from './history-converter.js';
28
+ export { convertOpenClawHistory, convertOpenClawHistoryResponse } from './history-converter.js';
27
29
  import './types/index.js';
28
30
  export { isEventFrame, isRequestFrame, isResponseFrame } from './types/messages.js';
29
31
  import '../../server/errors.js';
@@ -242,20 +244,52 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
242
244
  return invokeAction;
243
245
  }()
244
246
  }, {
245
- key: "disconnect",
247
+ key: "fetchHistory",
246
248
  value: function () {
247
- var _disconnect = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
248
- var _this$callbacks$onDis, _this$callbacks5;
249
+ var _fetchHistory = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(sessionKey, options) {
250
+ var response;
249
251
  return _regeneratorRuntime.wrap(function (_context4) {
250
252
  while (1) switch (_context4.prev = _context4.next) {
253
+ case 0:
254
+ if (!(this.connectionState !== OpenClawConnectionState.AUTHENTICATED)) {
255
+ _context4.next = 1;
256
+ break;
257
+ }
258
+ throw new Error("Not authenticated. Please connect first.");
259
+ case 1:
260
+ _context4.next = 2;
261
+ return this.rpcHandler.sessionsHistory({
262
+ sessionKey: sessionKey
263
+ });
264
+ case 2:
265
+ response = _context4.sent;
266
+ return _context4.abrupt("return", convertOpenClawHistoryResponse(response, options));
267
+ case 3:
268
+ case "end":
269
+ return _context4.stop();
270
+ }
271
+ }, _callee4, this);
272
+ }));
273
+ function fetchHistory(_x4, _x5) {
274
+ return _fetchHistory.apply(this, arguments);
275
+ }
276
+ return fetchHistory;
277
+ }()
278
+ }, {
279
+ key: "disconnect",
280
+ value: function () {
281
+ var _disconnect = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
282
+ var _this$callbacks$onDis, _this$callbacks5;
283
+ return _regeneratorRuntime.wrap(function (_context5) {
284
+ while (1) switch (_context5.prev = _context5.next) {
251
285
  case 0:
252
286
  this.connectionState = OpenClawConnectionState.CLOSING;
253
287
  this.rpcHandler.cancelAll("Disconnecting");
254
288
  if (!this.wsClient) {
255
- _context4.next = 2;
289
+ _context5.next = 2;
256
290
  break;
257
291
  }
258
- _context4.next = 1;
292
+ _context5.next = 1;
259
293
  return this.wsClient.close();
260
294
  case 1:
261
295
  this.wsClient = null;
@@ -264,9 +298,9 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
264
298
  (_this$callbacks$onDis = (_this$callbacks5 = this.callbacks).onDisconnected) === null || _this$callbacks$onDis === void 0 || _this$callbacks$onDis.call(_this$callbacks5);
265
299
  case 3:
266
300
  case "end":
267
- return _context4.stop();
301
+ return _context5.stop();
268
302
  }
269
- }, _callee4, this);
303
+ }, _callee5, this);
270
304
  }));
271
305
  function disconnect() {
272
306
  return _disconnect.apply(this, arguments);
@@ -303,20 +337,20 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
303
337
  }, {
304
338
  key: "destroy",
305
339
  value: function () {
306
- var _destroy = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
307
- return _regeneratorRuntime.wrap(function (_context5) {
308
- while (1) switch (_context5.prev = _context5.next) {
340
+ var _destroy = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
341
+ return _regeneratorRuntime.wrap(function (_context6) {
342
+ while (1) switch (_context6.prev = _context6.next) {
309
343
  case 0:
310
- _context5.next = 1;
344
+ _context6.next = 1;
311
345
  return this.disconnect();
312
346
  case 1:
313
347
  this.rpcHandler.destroy();
314
348
  this.removeAllListeners();
315
349
  case 2:
316
350
  case "end":
317
- return _context5.stop();
351
+ return _context6.stop();
318
352
  }
319
- }, _callee5, this);
353
+ }, _callee6, this);
320
354
  }));
321
355
  function destroy() {
322
356
  return _destroy.apply(this, arguments);
@@ -398,14 +432,13 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
398
432
  }, {
399
433
  key: "handleConnectChallenge",
400
434
  value: function () {
401
- var _handleConnectChallenge = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_payload) {
402
- var _this$config$auth;
403
- var connectParams, _this$callbacks$onCon, _this$callbacks0, response, _this$callbacks$onErr4, _this$callbacks1, _t2;
404
- return _regeneratorRuntime.wrap(function (_context6) {
405
- while (1) switch (_context6.prev = _context6.next) {
435
+ var _handleConnectChallenge = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(payload) {
436
+ var connectParams, _this$callbacks$onCon, _this$callbacks0, response, connectPayload, _this$callbacks$onHis, _this$callbacks1, historyResponse, convertedMessages, _this$callbacks$onErr4, _this$callbacks10, _t2;
437
+ return _regeneratorRuntime.wrap(function (_context7) {
438
+ while (1) switch (_context7.prev = _context7.next) {
406
439
  case 0:
407
440
  this.logger.debug("Received connect.challenge, sending connect request");
408
- connectParams = _objectSpread(_objectSpread({
441
+ connectParams = {
409
442
  minProtocol: this.config.protocolVersion.min,
410
443
  maxProtocol: this.config.protocolVersion.max,
411
444
  client: {
@@ -416,39 +449,53 @@ var OpenClawAdapter = /*#__PURE__*/function (_EventEmitter) {
416
449
  instanceId: this.instanceId
417
450
  },
418
451
  role: "operator",
419
- scopes: ["operator.admin", "operator.approvals", "operator.pairing"],
420
- caps: []
421
- }, (_this$config$auth = this.config.auth) !== null && _this$config$auth !== void 0 && _this$config$auth.token ? {
422
- auth: this.config.auth
423
- } : {}), {}, {
452
+ scopes: ["operator.admin"],
453
+ caps: [],
424
454
  userAgent: getUserAgent(),
425
455
  locale: getLocale()
426
- });
427
- _context6.prev = 1;
428
- _context6.next = 2;
456
+ };
457
+ _context7.prev = 1;
458
+ _context7.next = 2;
429
459
  return this.rpcHandler.connect(connectParams);
430
460
  case 2:
431
- response = _context6.sent;
461
+ response = _context7.sent;
432
462
  this.connectionState = OpenClawConnectionState.AUTHENTICATED;
433
463
  this.logger.info("OpenClaw authenticated successfully:", response);
434
464
  (_this$callbacks$onCon = (_this$callbacks0 = this.callbacks).onConnected) === null || _this$callbacks$onCon === void 0 || _this$callbacks$onCon.call(_this$callbacks0);
435
465
  this.emit("connected", response);
436
- _context6.next = 4;
466
+ connectPayload = response;
467
+ if (Array.isArray(connectPayload === null || connectPayload === void 0 ? void 0 : connectPayload.messages) && connectPayload.messages.length > 0) {
468
+ this.logger.info("OpenClaw connect response contains ".concat(connectPayload.messages.length, " history messages, converting..."));
469
+ try {
470
+ historyResponse = {
471
+ sessionKey: connectPayload.sessionKey || "",
472
+ sessionId: connectPayload.sessionId || "",
473
+ messages: connectPayload.messages
474
+ };
475
+ convertedMessages = convertOpenClawHistory(historyResponse.messages);
476
+ this.logger.info("Converted ".concat(convertedMessages.length, " history messages"));
477
+ (_this$callbacks$onHis = (_this$callbacks1 = this.callbacks).onHistoryLoaded) === null || _this$callbacks$onHis === void 0 || _this$callbacks$onHis.call(_this$callbacks1, convertedMessages);
478
+ this.emit("historyLoaded", convertedMessages);
479
+ } catch (historyError) {
480
+ this.logger.warn("Failed to convert history messages from connect response:", historyError);
481
+ }
482
+ }
483
+ _context7.next = 4;
437
484
  break;
438
485
  case 3:
439
- _context6.prev = 3;
440
- _t2 = _context6["catch"](1);
486
+ _context7.prev = 3;
487
+ _t2 = _context7["catch"](1);
441
488
  this.connectionState = OpenClawConnectionState.ERROR;
442
489
  this.logger.error("OpenClaw authentication failed:", _t2);
443
- (_this$callbacks$onErr4 = (_this$callbacks1 = this.callbacks).onError) === null || _this$callbacks$onErr4 === void 0 || _this$callbacks$onErr4.call(_this$callbacks1, _t2);
490
+ (_this$callbacks$onErr4 = (_this$callbacks10 = this.callbacks).onError) === null || _this$callbacks$onErr4 === void 0 || _this$callbacks$onErr4.call(_this$callbacks10, _t2);
444
491
  this.emit("error", _t2);
445
492
  case 4:
446
493
  case "end":
447
- return _context6.stop();
494
+ return _context7.stop();
448
495
  }
449
- }, _callee6, this, [[1, 3]]);
496
+ }, _callee7, this, [[1, 3]]);
450
497
  }));
451
- function handleConnectChallenge(_x4) {
498
+ function handleConnectChallenge(_x6) {
452
499
  return _handleConnectChallenge.apply(this, arguments);
453
500
  }
454
501
  return handleConnectChallenge;
@@ -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';\n\n// 重新导出类型\nexport * from './types';\nexport { OpenClawEventMapper, type EventMapResult } from './event-mapper';\nexport { OpenClawRPCHandler, RPCError } from './rpc-handler';\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 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 * 通过 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);\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 * 认证成功后,如果 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 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","_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","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","_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","_callee7","connectParams","_this$callbacks$onCon","_this$callbacks0","connectPayload","_this$callbacks$onHis","_this$callbacks1","historyResponse","convertedMessages","_this$callbacks$onErr4","_this$callbacks10","_t2","_context7","minProtocol","protocolVersion","min","maxProtocol","max","client","id","version","platform","getPlatform","mode","role","scopes","caps","userAgent","getUserAgent","locale","getLocale","sent","info","Array","isArray","messages","length","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
  */
@@ -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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"}
@@ -48,34 +48,12 @@ export interface OpenClawConfig {
48
48
  * 一般不需要修改,除非服务端有特殊要求
49
49
  */
50
50
  protocolVersion?: OpenClawProtocolVersion;
51
- /**
52
- * 认证信息,用于 connect 握手时传入
53
- * - token: 设备 operator token(来自 openclaw onboard)
54
- */
55
- auth?: {
56
- token?: string;
57
- [key: string]: unknown;
58
- };
59
51
  }
60
52
  /**
61
53
  * OpenClaw 配置默认值
62
54
  */
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>;
55
+ export declare const DEFAULT_OPENCLAW_CONFIG: Required<OpenClawConfig>;
78
56
  /**
79
57
  * 合并 OpenClaw 配置与默认值
80
58
  */
81
- export declare function mergeOpenClawConfig(config?: OpenClawConfig): MergedOpenClawConfig;
59
+ export declare function mergeOpenClawConfig(config?: OpenClawConfig): Required<OpenClawConfig>;
@@ -18,16 +18,14 @@ var DEFAULT_OPENCLAW_CONFIG = {
18
18
  protocolVersion: {
19
19
  min: 3,
20
20
  max: 3
21
- },
22
- auth: {}
21
+ }
23
22
  };
24
23
  function mergeOpenClawConfig(config) {
25
- var _config$heartbeatInte, _config$auth;
24
+ var _config$heartbeatInte;
26
25
  return {
27
26
  heartbeatInterval: (_config$heartbeatInte = config === null || config === void 0 ? void 0 : config.heartbeatInterval) !== null && _config$heartbeatInte !== void 0 ? _config$heartbeatInte : DEFAULT_OPENCLAW_CONFIG.heartbeatInterval,
28
27
  client: _objectSpread(_objectSpread({}, DEFAULT_OPENCLAW_CONFIG.client), config === null || config === void 0 ? void 0 : config.client),
29
- protocolVersion: _objectSpread(_objectSpread({}, DEFAULT_OPENCLAW_CONFIG.protocolVersion), config === null || config === void 0 ? void 0 : config.protocolVersion),
30
- auth: (_config$auth = config === null || config === void 0 ? void 0 : config.auth) !== null && _config$auth !== void 0 ? _config$auth : DEFAULT_OPENCLAW_CONFIG.auth
28
+ protocolVersion: _objectSpread(_objectSpread({}, DEFAULT_OPENCLAW_CONFIG.protocolVersion), config === null || config === void 0 ? void 0 : config.protocolVersion)
31
29
  };
32
30
  }
33
31
 
@@ -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 * OpenClaw 配置默认值\n */\nexport const DEFAULT_OPENCLAW_CONFIG: Required<OpenClawConfig> = {\n heartbeatInterval: 30000,\n client: {\n id: 'webchat',\n version: '1.0.0',\n mode: 'webchat',\n },\n protocolVersion: {\n min: 3,\n max: 3,\n },\n};\n\n/**\n * 合并 OpenClaw 配置与默认值\n */\nexport function mergeOpenClawConfig(config?: OpenClawConfig): Required<OpenClawConfig> {\n return {\n heartbeatInterval: config?.heartbeatInterval ?? DEFAULT_OPENCLAW_CONFIG.heartbeatInterval,\n client: {\n ...DEFAULT_OPENCLAW_CONFIG.client,\n ...config?.client,\n },\n protocolVersion: {\n ...DEFAULT_OPENCLAW_CONFIG.protocolVersion,\n ...config?.protocolVersion,\n },\n };\n}\n"],"names":["DEFAULT_OPENCLAW_CONFIG","heartbeatInterval","client","id","version","mode","protocolVersion","min","max","mergeOpenClawConfig","config","_config$heartbeatInte","_objectSpread"],"mappings":";;;;;;;;;;AA4DO,IAAMA,uBAAoD,GAAA;AAC/DC,EAAAA,iBAAmB,EAAA,GAAA;AACnBC,EAAAA,MAAQ,EAAA;AACNC,IAAAA,EAAI,EAAA,SAAA;AACJC,IAAAA,OAAS,EAAA,OAAA;AACTC,IAAAA,IAAM,EAAA,SAAA;GACR;AACAC,EAAAA,eAAiB,EAAA;AACfC,IAAAA,GAAK,EAAA,CAAA;AACLC,IAAAA,GAAK,EAAA,CAAA;AACP,GAAA;AACF,EAAA;AAKO,SAASC,oBAAoBC,MAAmD,EAAA;AAAA,EAAA,IAAAC,qBAAA,CAAA;EAC9E,OAAA;AACLV,IAAAA,iBAAA,GAAAU,qBAAA,GAAmBD,MAAQ,KAAA,IAAA,IAARA,MAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAQ,CAAAT,iBAAA,cAAAU,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAqBX,uBAAwB,CAAAC,iBAAA;AACxEC,IAAAA,MAAQ,EAAAU,aAAA,CAAAA,aAAA,CAAA,EAAA,EACHZ,uBAAwB,CAAAE,MAAA,CACxBQ,EAAAA,MAAQ,aAARA,MAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,MAAQ,CAAAR,MAAA,CACb;AACAI,IAAAA,eAAiB,EAAAM,aAAA,CAAAA,aAAA,KACZZ,uBAAwB,CAAAM,eAAA,CAAA,EACxBI,MAAQ,KAARA,IAAAA,IAAAA,MAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAQ,CAAAJ,eAAA,CAAA;GAEf,CAAA;AACF;;;;"}
@@ -89,6 +89,8 @@ export declare enum OpenClawMethod {
89
89
  SESSIONS_PATCH = "sessions.patch",
90
90
  /** 会话列表 */
91
91
  SESSIONS_LIST = "sessions.list",
92
+ /** 会话历史消息 */
93
+ SESSIONS_HISTORY = "sessions.history",
92
94
  /** 心跳 */
93
95
  HEARTBEAT = "heartbeat",
94
96
  /** 节点列表 */
@@ -49,6 +49,7 @@ var OpenClawMethod = /* @__PURE__ */function (OpenClawMethod2) {
49
49
  OpenClawMethod2["CHAT_SEND"] = "chat.send";
50
50
  OpenClawMethod2["SESSIONS_PATCH"] = "sessions.patch";
51
51
  OpenClawMethod2["SESSIONS_LIST"] = "sessions.list";
52
+ OpenClawMethod2["SESSIONS_HISTORY"] = "sessions.history";
52
53
  OpenClawMethod2["HEARTBEAT"] = "heartbeat";
53
54
  OpenClawMethod2["NODE_LIST"] = "node.list";
54
55
  OpenClawMethod2["NODE_DESCRIBE"] = "node.describe";