@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
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sources":["../../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/types/events.ts"],"sourcesContent":["/**\n * OpenClaw 事件类型定义\n */\n\n/**\n * OpenClaw 核心事件类型\n */\nexport enum OpenClawEventType {\n // ============= 连接相关 =============\n /** 连接挑战(握手第一步) */\n CONNECT_CHALLENGE = 'connect.challenge',\n /** 连接成功 */\n CONNECT_SUCCESS = 'connect.success',\n /** 连接断开 */\n CONNECT_DISCONNECT = 'connect.disconnect',\n\n // ============= 聊天相关 =============\n /** 聊天消息 */\n CHAT = 'chat',\n /** 聊天状态更新 */\n CHAT_STATUS = 'chat.status',\n\n // ============= Agent 相关 =============\n /** Agent 事件(通用) */\n AGENT = 'agent',\n /** Agent 开始 */\n AGENT_START = 'agent.start',\n /** Agent 完成 */\n AGENT_COMPLETE = 'agent.complete',\n /** Agent 错误 */\n AGENT_ERROR = 'agent.error',\n\n // ============= 存在状态 =============\n /** 在线状态 */\n PRESENCE = 'presence',\n\n // ============= 健康检查 =============\n /** 健康检查 */\n HEALTH = 'health',\n /** 心跳 */\n HEARTBEAT = 'heartbeat',\n\n // ============= Canvas/A2UI =============\n /** Canvas 更新 */\n CANVAS = 'canvas',\n /** A2UI 活动 */\n A2UI_ACTIVITY = 'a2ui.activity',\n}\n\n/**\n * Chat 事件状态\n */\nexport enum ChatEventState {\n /** 增量更新(流式传输中) */\n DELTA = 'delta',\n /** 最终完成 */\n FINAL = 'final',\n /** 错误 */\n ERROR = 'error',\n /** 中止 */\n ABORTED = 'aborted',\n}\n\n/**\n * Agent 流类型\n */\nexport enum AgentStreamType {\n /** 助手流 */\n ASSISTANT = 'assistant',\n /** 工具流 */\n TOOL = 'tool',\n /** 系统流 */\n SYSTEM = 'system',\n /** Activity 组件流 */\n ACTIVITY = 'activity',\n}\n\n/**\n * Agent 数据类型\n */\nexport enum AgentDataType {\n /** 文本快照 */\n TEXT_SNAPSHOT = 'text_snapshot',\n /** 文本增量 */\n TEXT_DELTA = 'text_delta',\n /** 工具调用 */\n TOOL_CALL = 'tool_call',\n /** 工具结果 */\n TOOL_RESULT = 'tool_result',\n /** 完成 */\n DONE = 'done',\n /** 错误 */\n ERROR = 'error',\n}\n\n/**\n * OpenClaw RPC 方法名\n */\nexport enum OpenClawMethod {\n /** 连接认证 */\n CONNECT = 'connect',\n /** 发送聊天消息 */\n CHAT_SEND = 'chat.send',\n /** 会话补丁更新 */\n SESSIONS_PATCH = 'sessions.patch',\n /** 会话列表 */\n SESSIONS_LIST = 'sessions.list',\n /** 心跳 */\n HEARTBEAT = 'heartbeat',\n /** 节点列表 */\n NODE_LIST = 'node.list',\n /** 节点描述 */\n NODE_DESCRIBE = 'node.describe',\n /** 节点调用 */\n NODE_INVOKE = 'node.invoke',\n}\n\n/**\n * 连接状态\n */\nexport enum OpenClawConnectionState {\n /** 已断开 */\n DISCONNECTED = 'disconnected',\n /** 连接中 */\n CONNECTING = 'connecting',\n /** 已连接(握手中) */\n HANDSHAKING = 'handshaking',\n /** 已认证(可用) */\n AUTHENTICATED = 'authenticated',\n /** 重连中 */\n RECONNECTING = 'reconnecting',\n /** 关闭中 */\n CLOSING = 'closing',\n /** 已关闭 */\n CLOSED = 'closed',\n /** 错误 */\n ERROR = 'error',\n}\n"],"names":["OpenClawEventType","ChatEventState","AgentStreamType","AgentDataType","OpenClawMethod","OpenClawConnectionState"],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sources":["../../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/types/events.ts"],"sourcesContent":["/**\n * OpenClaw 事件类型定义\n */\n\n/**\n * OpenClaw 核心事件类型\n */\nexport enum OpenClawEventType {\n // ============= 连接相关 =============\n /** 连接挑战(握手第一步) */\n CONNECT_CHALLENGE = 'connect.challenge',\n /** 连接成功 */\n CONNECT_SUCCESS = 'connect.success',\n /** 连接断开 */\n CONNECT_DISCONNECT = 'connect.disconnect',\n\n // ============= 聊天相关 =============\n /** 聊天消息 */\n CHAT = 'chat',\n /** 聊天状态更新 */\n CHAT_STATUS = 'chat.status',\n\n // ============= Agent 相关 =============\n /** Agent 事件(通用) */\n AGENT = 'agent',\n /** Agent 开始 */\n AGENT_START = 'agent.start',\n /** Agent 完成 */\n AGENT_COMPLETE = 'agent.complete',\n /** Agent 错误 */\n AGENT_ERROR = 'agent.error',\n\n // ============= 存在状态 =============\n /** 在线状态 */\n PRESENCE = 'presence',\n\n // ============= 健康检查 =============\n /** 健康检查 */\n HEALTH = 'health',\n /** 心跳 */\n HEARTBEAT = 'heartbeat',\n\n // ============= Canvas/A2UI =============\n /** Canvas 更新 */\n CANVAS = 'canvas',\n /** A2UI 活动 */\n A2UI_ACTIVITY = 'a2ui.activity',\n}\n\n/**\n * Chat 事件状态\n */\nexport enum ChatEventState {\n /** 增量更新(流式传输中) */\n DELTA = 'delta',\n /** 最终完成 */\n FINAL = 'final',\n /** 错误 */\n ERROR = 'error',\n /** 中止 */\n ABORTED = 'aborted',\n}\n\n/**\n * Agent 流类型\n */\nexport enum AgentStreamType {\n /** 助手流 */\n ASSISTANT = 'assistant',\n /** 工具流 */\n TOOL = 'tool',\n /** 系统流 */\n SYSTEM = 'system',\n /** Activity 组件流 */\n ACTIVITY = 'activity',\n}\n\n/**\n * Agent 数据类型\n */\nexport enum AgentDataType {\n /** 文本快照 */\n TEXT_SNAPSHOT = 'text_snapshot',\n /** 文本增量 */\n TEXT_DELTA = 'text_delta',\n /** 工具调用 */\n TOOL_CALL = 'tool_call',\n /** 工具结果 */\n TOOL_RESULT = 'tool_result',\n /** 完成 */\n DONE = 'done',\n /** 错误 */\n ERROR = 'error',\n}\n\n/**\n * OpenClaw RPC 方法名\n */\nexport enum OpenClawMethod {\n /** 连接认证 */\n CONNECT = 'connect',\n /** 发送聊天消息 */\n CHAT_SEND = 'chat.send',\n /** 会话补丁更新 */\n SESSIONS_PATCH = 'sessions.patch',\n /** 会话列表 */\n SESSIONS_LIST = 'sessions.list',\n /** 会话历史消息 */\n SESSIONS_HISTORY = 'sessions.history',\n /** 心跳 */\n HEARTBEAT = 'heartbeat',\n /** 节点列表 */\n NODE_LIST = 'node.list',\n /** 节点描述 */\n NODE_DESCRIBE = 'node.describe',\n /** 节点调用 */\n NODE_INVOKE = 'node.invoke',\n}\n\n/**\n * 连接状态\n */\nexport enum OpenClawConnectionState {\n /** 已断开 */\n DISCONNECTED = 'disconnected',\n /** 连接中 */\n CONNECTING = 'connecting',\n /** 已连接(握手中) */\n HANDSHAKING = 'handshaking',\n /** 已认证(可用) */\n AUTHENTICATED = 'authenticated',\n /** 重连中 */\n RECONNECTING = 'reconnecting',\n /** 关闭中 */\n CLOSING = 'closing',\n /** 已关闭 */\n CLOSED = 'closed',\n /** 错误 */\n ERROR = 'error',\n}\n"],"names":["OpenClawEventType","ChatEventState","AgentStreamType","AgentDataType","OpenClawMethod","OpenClawConnectionState"],"mappings":"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"}
@@ -97,6 +97,9 @@ export interface ConnectParams {
97
97
  }
98
98
  /**
99
99
  * connect 方法响应
100
+ *
101
+ * OpenClaw Gateway 在 connect 响应中可能附带历史消息(messages 字段),
102
+ * 用于页面刷新后自动回填历史对话记录。
100
103
  */
101
104
  export interface ConnectResponse {
102
105
  /** 协商后的协议版本 */
@@ -107,6 +110,12 @@ export interface ConnectResponse {
107
110
  serverVersion?: string;
108
111
  /** 支持的能力列表 */
109
112
  capabilities?: string[];
113
+ /** 会话标识(Gateway 推送历史消息时附带) */
114
+ sessionKey?: string;
115
+ /** 历史消息(Gateway 在 connect 响应中主动推送,用于页面刷新后回填) */
116
+ messages?: Array<Record<string, unknown>>;
117
+ /** 思考级别(Gateway 附带) */
118
+ thinkingLevel?: string;
110
119
  }
111
120
  /**
112
121
  * chat.send 方法参数(基础结构,具体字段由 onRequest 传入)
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sources":["../../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/types/messages.ts"],"sourcesContent":["/**\n * OpenClaw 消息格式类型定义\n *\n * OpenClaw 采用 RPC 风格的消息通信,有三种消息类型:\n * - req: 客户端向 Gateway 发起的请求\n * - res: Gateway 返回的响应\n * - event: 服务端主动推送的事件\n */\n\n/**\n * OpenClaw 消息类型\n */\nexport type OpenClawMessageType = 'req' | 'res' | 'event';\n\n/**\n * OpenClaw 请求帧\n */\nexport interface OpenClawRequestFrame<TParams = Record<string, unknown>> {\n type: 'req';\n /** 请求唯一标识,用于匹配响应 */\n id: string;\n /** RPC 方法名 */\n method: string;\n /** 请求参数 */\n params: TParams;\n}\n\n/**\n * OpenClaw 响应帧\n */\nexport interface OpenClawResponseFrame<TPayload = unknown> {\n type: 'res';\n /** 请求唯一标识,与请求帧的 id 对应 */\n id: string;\n /** 是否成功 */\n ok: boolean;\n /** 成功时的响应数据 */\n payload?: TPayload;\n /** 失败时的错误信息 */\n error?: OpenClawError;\n}\n\n/**\n * OpenClaw 事件帧\n */\nexport interface OpenClawEventFrame<TPayload = unknown> {\n type: 'event';\n /** 事件名称 */\n event: string;\n /** 事件序号 */\n seq?: number;\n /** 事件数据 */\n payload?: TPayload;\n}\n\n/**\n * OpenClaw 错误信息\n */\nexport interface OpenClawError {\n /** 错误码 */\n code: string;\n /** 错误消息 */\n message: string;\n /** 详细信息 */\n details?: unknown;\n}\n\n/**\n * OpenClaw 消息帧(联合类型)\n */\nexport type OpenClawFrame<T = unknown> =\n | OpenClawRequestFrame<T extends Record<string, unknown> ? T : Record<string, unknown>>\n | OpenClawResponseFrame<T>\n | OpenClawEventFrame<T>;\n\n// ============= RPC 方法参数类型 =============\n\n/**\n * connect 方法参数\n */\nexport interface ConnectParams {\n /** 最小协议版本 */\n minProtocol: number;\n /** 最大协议版本 */\n maxProtocol: number;\n /** 客户端信息 */\n client: {\n id: string;\n version: string;\n platform: string;\n mode: string;\n instanceId: string;\n };\n /** 角色 */\n role?: string;\n /** 权限范围 */\n scopes?: string[];\n /** 能力列表 */\n caps?: string[];\n /** 认证信息(可选,由 onRequest 传入) */\n auth?: {\n token?: string;\n [key: string]: unknown;\n };\n /** User Agent */\n userAgent?: string;\n /** 语言环境 */\n locale?: string;\n}\n\n/**\n * connect 方法响应\n */\nexport interface ConnectResponse {\n /** 协商后的协议版本 */\n protocol: number;\n /** 会话 ID */\n sessionId: string;\n /** 服务端版本 */\n serverVersion?: string;\n /** 支持的能力列表 */\n capabilities?: string[];\n}\n\n/**\n * chat.send 方法参数(基础结构,具体字段由 onRequest 传入)\n */\nexport interface ChatSendParams {\n /** 消息内容 */\n message: string;\n /** 会话标识 */\n sessionKey?: string;\n /** 幂等键 */\n idempotencyKey?: string;\n /** 其他自定义参数 */\n [key: string]: unknown;\n}\n\n/**\n * chat.send 方法响应\n */\nexport interface ChatSendResponse {\n /** 运行 ID */\n runId: string;\n /** 状态 */\n status: string;\n}\n\n// ============= 事件类型 =============\n\n/**\n * connect.challenge 事件数据\n */\nexport interface ConnectChallengePayload {\n /** 随机数 */\n nonce: string;\n /** 协议版本 */\n protocolVersion?: number;\n}\n\n/**\n * chat 事件数据\n */\nexport interface ChatEventPayload {\n /** 运行 ID */\n runId?: string;\n /** 会话标识 */\n sessionKey?: string;\n /** 消息状态: delta(增量) | final(完成) | error(错误) | aborted(中止) */\n state: 'delta' | 'final' | 'error' | 'aborted';\n /** 消息内容 */\n message?: {\n role: 'assistant' | 'user' | 'system';\n content: Array<{\n type: string;\n text?: string;\n [key: string]: unknown;\n }>;\n };\n /** 错误消息 */\n errorMessage?: string;\n}\n\n/**\n * agent 事件数据\n *\n * 实际 OpenClaw agent 事件示例:\n * {\n * \"type\": \"event\",\n * \"event\": \"agent\",\n * \"payload\": {\n * \"runId\": \"b7dfa37d-...\",\n * \"stream\": \"assistant\",\n * \"data\": { \"text\": \"全量快照文本\", \"delta\": \"本次增量\" },\n * \"sessionKey\": \"agent:main:main\",\n * \"seq\": 12,\n * \"ts\": 1772612049089\n * },\n * \"seq\": 16278\n * }\n */\nexport interface AgentEventPayload {\n /** 运行 ID */\n runId?: string;\n /** 流类型: assistant | tool | system */\n stream?: string;\n /** 事件子类型(可选,实际 agent 流式事件中通常不存在) */\n type?: string;\n /** 数据内容 */\n data?: {\n /** 全量文本快照(包含到当前为止的所有文本) */\n text?: string;\n /** 本次增量文本 */\n delta?: string;\n [key: string]: unknown;\n };\n /** payload 内序号(agent 事件流内的顺序) */\n seq?: number;\n /** 时间戳 */\n ts?: number;\n /** 会话标识 */\n sessionKey?: string;\n}\n\n/**\n * 类型守卫:判断是否为请求帧\n */\nexport function isRequestFrame(frame: OpenClawFrame): frame is OpenClawRequestFrame {\n return frame.type === 'req';\n}\n\n/**\n * 类型守卫:判断是否为响应帧\n */\nexport function isResponseFrame(frame: OpenClawFrame): frame is OpenClawResponseFrame {\n return frame.type === 'res';\n}\n\n/**\n * 类型守卫:判断是否为事件帧\n */\nexport function isEventFrame(frame: OpenClawFrame): frame is OpenClawEventFrame {\n return frame.type === 'event';\n}\n"],"names":["isRequestFrame","frame","type","isResponseFrame","isEventFrame"],"mappings":";;;;;;AAmOO,SAASA,eAAeC,KAAqD,EAAA;AAClF,EAAA,OAAOA,MAAMC,IAAS,KAAA,KAAA,CAAA;AACxB,CAAA;AAKO,SAASC,gBAAgBF,KAAsD,EAAA;AACpF,EAAA,OAAOA,MAAMC,IAAS,KAAA,KAAA,CAAA;AACxB,CAAA;AAKO,SAASE,aAAaH,KAAmD,EAAA;AAC9E,EAAA,OAAOA,MAAMC,IAAS,KAAA,OAAA,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"messages.js","sources":["../../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/types/messages.ts"],"sourcesContent":["/**\n * OpenClaw 消息格式类型定义\n *\n * OpenClaw 采用 RPC 风格的消息通信,有三种消息类型:\n * - req: 客户端向 Gateway 发起的请求\n * - res: Gateway 返回的响应\n * - event: 服务端主动推送的事件\n */\n\n/**\n * OpenClaw 消息类型\n */\nexport type OpenClawMessageType = 'req' | 'res' | 'event';\n\n/**\n * OpenClaw 请求帧\n */\nexport interface OpenClawRequestFrame<TParams = Record<string, unknown>> {\n type: 'req';\n /** 请求唯一标识,用于匹配响应 */\n id: string;\n /** RPC 方法名 */\n method: string;\n /** 请求参数 */\n params: TParams;\n}\n\n/**\n * OpenClaw 响应帧\n */\nexport interface OpenClawResponseFrame<TPayload = unknown> {\n type: 'res';\n /** 请求唯一标识,与请求帧的 id 对应 */\n id: string;\n /** 是否成功 */\n ok: boolean;\n /** 成功时的响应数据 */\n payload?: TPayload;\n /** 失败时的错误信息 */\n error?: OpenClawError;\n}\n\n/**\n * OpenClaw 事件帧\n */\nexport interface OpenClawEventFrame<TPayload = unknown> {\n type: 'event';\n /** 事件名称 */\n event: string;\n /** 事件序号 */\n seq?: number;\n /** 事件数据 */\n payload?: TPayload;\n}\n\n/**\n * OpenClaw 错误信息\n */\nexport interface OpenClawError {\n /** 错误码 */\n code: string;\n /** 错误消息 */\n message: string;\n /** 详细信息 */\n details?: unknown;\n}\n\n/**\n * OpenClaw 消息帧(联合类型)\n */\nexport type OpenClawFrame<T = unknown> =\n | OpenClawRequestFrame<T extends Record<string, unknown> ? T : Record<string, unknown>>\n | OpenClawResponseFrame<T>\n | OpenClawEventFrame<T>;\n\n// ============= RPC 方法参数类型 =============\n\n/**\n * connect 方法参数\n */\nexport interface ConnectParams {\n /** 最小协议版本 */\n minProtocol: number;\n /** 最大协议版本 */\n maxProtocol: number;\n /** 客户端信息 */\n client: {\n id: string;\n version: string;\n platform: string;\n mode: string;\n instanceId: string;\n };\n /** 角色 */\n role?: string;\n /** 权限范围 */\n scopes?: string[];\n /** 能力列表 */\n caps?: string[];\n /** 认证信息(可选,由 onRequest 传入) */\n auth?: {\n token?: string;\n [key: string]: unknown;\n };\n /** User Agent */\n userAgent?: string;\n /** 语言环境 */\n locale?: string;\n}\n\n/**\n * connect 方法响应\n *\n * OpenClaw Gateway 在 connect 响应中可能附带历史消息(messages 字段),\n * 用于页面刷新后自动回填历史对话记录。\n */\nexport interface ConnectResponse {\n /** 协商后的协议版本 */\n protocol: number;\n /** 会话 ID */\n sessionId: string;\n /** 服务端版本 */\n serverVersion?: string;\n /** 支持的能力列表 */\n capabilities?: string[];\n /** 会话标识(Gateway 推送历史消息时附带) */\n sessionKey?: string;\n /** 历史消息(Gateway 在 connect 响应中主动推送,用于页面刷新后回填) */\n messages?: Array<Record<string, unknown>>;\n /** 思考级别(Gateway 附带) */\n thinkingLevel?: string;\n}\n\n/**\n * chat.send 方法参数(基础结构,具体字段由 onRequest 传入)\n */\nexport interface ChatSendParams {\n /** 消息内容 */\n message: string;\n /** 会话标识 */\n sessionKey?: string;\n /** 幂等键 */\n idempotencyKey?: string;\n /** 其他自定义参数 */\n [key: string]: unknown;\n}\n\n/**\n * chat.send 方法响应\n */\nexport interface ChatSendResponse {\n /** 运行 ID */\n runId: string;\n /** 状态 */\n status: string;\n}\n\n// ============= 事件类型 =============\n\n/**\n * connect.challenge 事件数据\n */\nexport interface ConnectChallengePayload {\n /** 随机数 */\n nonce: string;\n /** 协议版本 */\n protocolVersion?: number;\n}\n\n/**\n * chat 事件数据\n */\nexport interface ChatEventPayload {\n /** 运行 ID */\n runId?: string;\n /** 会话标识 */\n sessionKey?: string;\n /** 消息状态: delta(增量) | final(完成) | error(错误) | aborted(中止) */\n state: 'delta' | 'final' | 'error' | 'aborted';\n /** 消息内容 */\n message?: {\n role: 'assistant' | 'user' | 'system';\n content: Array<{\n type: string;\n text?: string;\n [key: string]: unknown;\n }>;\n };\n /** 错误消息 */\n errorMessage?: string;\n}\n\n/**\n * agent 事件数据\n *\n * 实际 OpenClaw agent 事件示例:\n * {\n * \"type\": \"event\",\n * \"event\": \"agent\",\n * \"payload\": {\n * \"runId\": \"b7dfa37d-...\",\n * \"stream\": \"assistant\",\n * \"data\": { \"text\": \"全量快照文本\", \"delta\": \"本次增量\" },\n * \"sessionKey\": \"agent:main:main\",\n * \"seq\": 12,\n * \"ts\": 1772612049089\n * },\n * \"seq\": 16278\n * }\n */\nexport interface AgentEventPayload {\n /** 运行 ID */\n runId?: string;\n /** 流类型: assistant | tool | system */\n stream?: string;\n /** 事件子类型(可选,实际 agent 流式事件中通常不存在) */\n type?: string;\n /** 数据内容 */\n data?: {\n /** 全量文本快照(包含到当前为止的所有文本) */\n text?: string;\n /** 本次增量文本 */\n delta?: string;\n [key: string]: unknown;\n };\n /** payload 内序号(agent 事件流内的顺序) */\n seq?: number;\n /** 时间戳 */\n ts?: number;\n /** 会话标识 */\n sessionKey?: string;\n}\n\n/**\n * 类型守卫:判断是否为请求帧\n */\nexport function isRequestFrame(frame: OpenClawFrame): frame is OpenClawRequestFrame {\n return frame.type === 'req';\n}\n\n/**\n * 类型守卫:判断是否为响应帧\n */\nexport function isResponseFrame(frame: OpenClawFrame): frame is OpenClawResponseFrame {\n return frame.type === 'res';\n}\n\n/**\n * 类型守卫:判断是否为事件帧\n */\nexport function isEventFrame(frame: OpenClawFrame): frame is OpenClawEventFrame {\n return frame.type === 'event';\n}\n"],"names":["isRequestFrame","frame","type","isResponseFrame","isEventFrame"],"mappings":";;;;;;AA4OO,SAASA,eAAeC,KAAqD,EAAA;AAClF,EAAA,OAAOA,MAAMC,IAAS,KAAA,KAAA,CAAA;AACxB,CAAA;AAKO,SAASC,gBAAgBF,KAAsD,EAAA;AACpF,EAAA,OAAOA,MAAMC,IAAS,KAAA,KAAA,CAAA;AACxB,CAAA;AAKO,SAASE,aAAaH,KAAmD,EAAA;AAC9E,EAAA,OAAOA,MAAMC,IAAS,KAAA,OAAA,CAAA;AACxB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/utils.ts"],"sourcesContent":["/**\n * OpenClaw 工具函数\n */\nimport type { OpenClawFrame, OpenClawRequestFrame, OpenClawResponseFrame, OpenClawEventFrame } from './types';\n\n/**\n * 生成 UUID\n */\nexport function generateUUID(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * 解析 OpenClaw 消息帧\n */\nexport function parseFrame(data: string | object): OpenClawFrame | null {\n try {\n const frame = typeof data === 'string' ? JSON.parse(data) : data;\n if (!frame || typeof frame !== 'object') {\n return null;\n }\n if (!['req', 'res', 'event'].includes(frame.type)) {\n return null;\n }\n return frame as OpenClawFrame;\n } catch {\n return null;\n }\n}\n\n/**\n * 创建请求帧\n */\nexport function createRequestFrame<T extends Record<string, unknown>>(\n method: string,\n params: T,\n id?: string,\n): OpenClawRequestFrame<T> {\n return {\n type: 'req',\n id: id || generateUUID(),\n method,\n params,\n };\n}\n\n/**\n * 获取平台信息\n */\nexport function getPlatform(): string {\n if (typeof navigator !== 'undefined') {\n return navigator.platform || 'web';\n }\n return 'web';\n}\n\n/**\n * 获取 User Agent\n */\nexport function getUserAgent(): string {\n if (typeof navigator !== 'undefined') {\n return navigator.userAgent;\n }\n return 'TDesign-ChatEngine/1.0';\n}\n\n/**\n * 获取语言环境\n */\nexport function getLocale(): string {\n if (typeof navigator !== 'undefined') {\n return navigator.language || 'en-US';\n }\n return 'en-US';\n}\n\n/**\n * 检查 WebSocket 是否可用\n */\nexport function isWebSocketSupported(): boolean {\n return typeof WebSocket !== 'undefined';\n}\n\n/**\n * 格式化 WebSocket URL\n * 确保 URL 使用正确的协议\n */\nexport function formatWebSocketUrl(url: string): string {\n if (url.startsWith('ws://') || url.startsWith('wss://')) {\n return url;\n }\n // 如果是 http/https,转换为 ws/wss\n if (url.startsWith('https://')) {\n return url.replace('https://', 'wss://');\n }\n if (url.startsWith('http://')) {\n return url.replace('http://', 'ws://');\n }\n // 默认添加 ws://\n return `ws://${url}`;\n}\n\n/**\n * 计算指数退避延迟\n */\nexport function calculateBackoffDelay(\n attempt: number,\n baseDelay: number,\n maxDelay = 30000,\n jitter = true,\n): number {\n let delay = baseDelay * Math.pow(1.5, attempt - 1);\n delay = Math.min(delay, maxDelay);\n \n if (jitter) {\n // 添加 ±10% 的抖动\n const jitterRange = delay * 0.1;\n delay += (Math.random() - 0.5) * 2 * jitterRange;\n }\n \n return Math.floor(delay);\n}\n\n/**\n * 安全的 JSON 解析\n */\nexport function safeJsonParse<T>(data: string, fallback: T): T {\n try {\n return JSON.parse(data) as T;\n } catch {\n return fallback;\n }\n}\n\n/**\n * 深度合并对象\n */\nexport function deepMerge<T extends Record<string, unknown>>(target: T, source: Partial<T>): T {\n const result = { ...target };\n \n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n const targetValue = result[key];\n const sourceValue = source[key];\n \n if (\n typeof targetValue === 'object' &&\n targetValue !== null &&\n typeof sourceValue === 'object' &&\n sourceValue !== null &&\n !Array.isArray(targetValue) &&\n !Array.isArray(sourceValue)\n ) {\n result[key] = deepMerge(\n targetValue as Record<string, unknown>,\n sourceValue as Record<string, unknown>,\n ) as T[typeof key];\n } else if (sourceValue !== undefined) {\n result[key] = sourceValue as T[typeof key];\n }\n }\n }\n \n return result;\n}\n\n"],"names":["generateUUID","replace","c","r","Math","random","v","toString","parseFrame","data","frame","JSON","parse","_typeof","includes","type","_unused","createRequestFrame","method","params","id","getPlatform","navigator","platform","getUserAgent","userAgent","getLocale","language","isWebSocketSupported","WebSocket","formatWebSocketUrl","url","startsWith","concat","calculateBackoffDelay","attempt","baseDelay","maxDelay","arguments","length","undefined","jitter","delay","pow","min","jitterRange","floor","safeJsonParse","fallback","_unused2","deepMerge","target","source","result","_objectSpread","key","Object","prototype","hasOwnProperty","call","targetValue","sourceValue","Array","isArray"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/openclaw/utils.ts"],"sourcesContent":["/**\n * OpenClaw 工具函数\n */\nimport type { OpenClawFrame, OpenClawRequestFrame, OpenClawResponseFrame, OpenClawEventFrame } from './types';\n\n/**\n * 生成 UUID\n */\nexport function generateUUID(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * 解析 OpenClaw 消息帧\n */\nexport function parseFrame(data: string | object): OpenClawFrame | null {\n try {\n const frame = typeof data === 'string' ? JSON.parse(data) : data;\n if (!frame || typeof frame !== 'object') {\n return null;\n }\n if (!['req', 'res', 'event'].includes(frame.type)) {\n return null;\n }\n return frame as OpenClawFrame;\n } catch {\n return null;\n }\n}\n\n/**\n * 创建请求帧\n */\nexport function createRequestFrame<T extends Record<string, unknown>>(\n method: string,\n params: T,\n id?: string,\n): OpenClawRequestFrame<T> {\n return {\n type: 'req',\n id: id || generateUUID(),\n method,\n params,\n };\n}\n\n/**\n * 获取平台信息\n */\nexport function getPlatform(): string {\n if (typeof navigator !== 'undefined') {\n return navigator.platform || 'web';\n }\n return 'web';\n}\n\n/**\n * 获取 User Agent\n */\nexport function getUserAgent(): string {\n if (typeof navigator !== 'undefined') {\n return navigator.userAgent;\n }\n return 'TDesign-ChatEngine/1.0';\n}\n\n/**\n * 获取语言环境\n */\nexport function getLocale(): string {\n if (typeof navigator !== 'undefined') {\n return navigator.language || 'en-US';\n }\n return 'en-US';\n}\n\n/**\n * 检查 WebSocket 是否可用\n */\nexport function isWebSocketSupported(): boolean {\n return typeof WebSocket !== 'undefined';\n}\n\n/**\n * 格式化 WebSocket URL\n * 确保 URL 使用正确的协议\n */\nexport function formatWebSocketUrl(url: string): string {\n if (url.startsWith('ws://') || url.startsWith('wss://')) {\n return url;\n }\n // 如果是 http/https,转换为 ws/wss\n if (url.startsWith('https://')) {\n return url.replace('https://', 'wss://');\n }\n if (url.startsWith('http://')) {\n return url.replace('http://', 'ws://');\n }\n // 默认添加 ws://\n return `ws://${url}`;\n}\n\n/**\n * 计算指数退避延迟\n */\nexport function calculateBackoffDelay(\n attempt: number,\n baseDelay: number,\n maxDelay = 30000,\n jitter = true,\n): number {\n let delay = baseDelay * Math.pow(1.5, attempt - 1);\n delay = Math.min(delay, maxDelay);\n \n if (jitter) {\n // 添加 ±10% 的抖动\n const jitterRange = delay * 0.1;\n delay += (Math.random() - 0.5) * 2 * jitterRange;\n }\n \n return Math.floor(delay);\n}\n\n/**\n * 安全的 JSON 解析\n */\nexport function safeJsonParse<T>(data: string, fallback: T): T {\n try {\n return JSON.parse(data) as T;\n } catch {\n return fallback;\n }\n}\n\n/**\n * 深度合并对象\n */\nexport function deepMerge<T extends Record<string, unknown>>(target: T, source: Partial<T>): T {\n const result = { ...target };\n \n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n const targetValue = result[key];\n const sourceValue = source[key];\n \n if (\n typeof targetValue === 'object' &&\n targetValue !== null &&\n typeof sourceValue === 'object' &&\n sourceValue !== null &&\n !Array.isArray(targetValue) &&\n !Array.isArray(sourceValue)\n ) {\n result[key] = deepMerge(\n targetValue as Record<string, unknown>,\n sourceValue as Record<string, unknown>,\n ) as T[typeof key];\n } else if (sourceValue !== undefined) {\n result[key] = sourceValue as T[typeof key];\n }\n }\n }\n \n return result;\n}\n"],"names":["generateUUID","replace","c","r","Math","random","v","toString","parseFrame","data","frame","JSON","parse","_typeof","includes","type","_unused","createRequestFrame","method","params","id","getPlatform","navigator","platform","getUserAgent","userAgent","getLocale","language","isWebSocketSupported","WebSocket","formatWebSocketUrl","url","startsWith","concat","calculateBackoffDelay","attempt","baseDelay","maxDelay","arguments","length","undefined","jitter","delay","pow","min","jitterRange","floor","safeJsonParse","fallback","_unused2","deepMerge","target","source","result","_objectSpread","key","Object","prototype","hasOwnProperty","call","targetValue","sourceValue","Array","isArray"],"mappings":"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"}
@@ -14,6 +14,8 @@ export default class ChatEngine implements IChatEngine {
14
14
  private lastRequestParams;
15
15
  private stopReceive;
16
16
  private aguiAdapter;
17
+ /** 流式处理策略(由协议类型决定) */
18
+ private streamHandler;
17
19
  constructor(eventBusOptions?: ChatEventBusOptions);
18
20
  /**
19
21
  * 获取当前所有消息
@@ -36,7 +38,7 @@ export default class ChatEngine implements IChatEngine {
36
38
  * 初始化聊天引擎
37
39
  * @param configSetter 聊天服务配置或配置生成函数
38
40
  * @param initialMessages 初始消息列表,用于恢复历史对话
39
- * @description 设置初始消息、配置服务参数,并根据协议类型初始化适配器
41
+ * @description 设置初始消息、配置服务参数,并根据协议类型初始化适配器和 StreamHandler
40
42
  */
41
43
  init(configSetter: ChatServiceConfigSetter, initialMessages?: ChatMessagesData[]): void;
42
44
  /**
@@ -62,6 +64,22 @@ export default class ChatEngine implements IChatEngine {
62
64
  content?: AIMessageContent[];
63
65
  sendRequest?: boolean;
64
66
  }): Promise<void>;
67
+ /**
68
+ * 恢复未完成的 Agent 运行(断点续传)
69
+ *
70
+ * 适用场景:用户离开页面后重新进入,后端 Agent 仍在运行。
71
+ *
72
+ * 流程:
73
+ * 1. 创建一条空的 AI 消息(用于承载后续推送的内容)
74
+ * 2. 调用 sendRequest 发起 SSE 连接
75
+ * 3. 后端推 MESSAGES_SNAPSHOT 恢复已产生的中间内容(replaceContent)
76
+ * 4. 后端继续推增量事件(TEXT_MESSAGE_CONTENT 等),Processor 正常 append
77
+ * 5. 后端推 RUN_FINISHED 结束
78
+ *
79
+ * @param params 请求参数,应包含 threadId / runId 等后端识别续传所需的信息
80
+ * @returns 新创建的 AI 消息 ID
81
+ */
82
+ resumeRun(params?: ChatRequestParams): Promise<string>;
65
83
  /**
66
84
  * 中止当前进行中的聊天请求
67
85
  * @description 停止接收流式响应,关闭连接,并调用配置的onAbort回调
@@ -113,42 +131,24 @@ export default class ChatEngine implements IChatEngine {
113
131
  private handleComplete;
114
132
  /**
115
133
  * 处理流式请求
116
- * 根据协议类型选择不同的处理策略
117
- * SSE 原始数据 → isValidChunk验证 → onMessage解析 → processMessageResult
134
+ * 委托给 StreamHandler 策略处理(Default/AGUI/OpenClaw)
118
135
  */
119
136
  private handleStreamRequest;
120
137
  /**
121
- * 处理AGUI协议的流式请求
122
- */
123
- private handleAGUIStreamRequest;
124
- /**
125
- * 处理默认协议的流式请求
138
+ * 构建 StreamHandler 所需的上下文
126
139
  */
127
- private handleDefaultStreamRequest;
128
- /**
129
- * 处理 OpenClaw 协议的流式请求
130
- *
131
- * OpenClaw 使用 WebSocket 连接,消息流由 LLMService 内部的 OpenClawAdapter 处理。
132
- * Adapter 将 OpenClaw 事件转换为 AIMessageContent 后,通过 onMessage 回调传递给 ChatEngine。
133
- */
134
- private handleOpenClawStreamRequest;
140
+ private buildStreamContext;
135
141
  /**
136
142
  * 统一处理消息结果
137
143
  * 支持单个内容块、多个内容块和增量更新
144
+ * 支持 MESSAGES_SNAPSHOT 的 replaceContent 语义(_isSnapshot 标记)
138
145
  */
139
146
  private processMessageResult;
140
- /**
141
- * 发布 AG-UI 细粒度事件
142
- * 根据内容类型分发到对应的事件通道
143
- * todo: 这里的类型 any问题
144
- */
145
- private emitAGUIDetailEvents;
146
147
  private convertMessages;
147
148
  private setMessageStatus;
148
- private processContentUpdate;
149
149
  }
150
150
  export * from './utils';
151
151
  export * from './adapters';
152
152
  export * from './event-bus';
153
- export * from './adapters';
153
+ export * from './stream-handlers';
154
154
  export type * from './type';