@tdesign-react/chat 1.0.2-alpha.9 → 1.0.3-alpha.2

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 (503) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/README.md +76 -22
  3. package/es/_chunks/dep-076af7c3.js +438 -0
  4. package/es/_chunks/dep-076af7c3.js.map +1 -0
  5. package/es/_chunks/dep-1007ac80.js +205 -0
  6. package/es/_chunks/dep-1007ac80.js.map +1 -0
  7. package/es/_chunks/dep-16520c2b.js +1247 -0
  8. package/es/_chunks/dep-16520c2b.js.map +1 -0
  9. package/es/_chunks/dep-1743bd61.js +438 -0
  10. package/es/_chunks/dep-1743bd61.js.map +1 -0
  11. package/es/_chunks/dep-1ca64fef.js +1247 -0
  12. package/es/_chunks/dep-1ca64fef.js.map +1 -0
  13. package/es/_chunks/dep-24472232.js +839 -0
  14. package/es/_chunks/dep-24472232.js.map +1 -0
  15. package/es/_chunks/dep-3864b369.js +839 -0
  16. package/es/_chunks/dep-3864b369.js.map +1 -0
  17. package/es/_chunks/dep-3e40d789.js +169 -0
  18. package/es/_chunks/dep-3e40d789.js.map +1 -0
  19. package/es/_chunks/dep-4dedfbef.js +438 -0
  20. package/es/_chunks/dep-4dedfbef.js.map +1 -0
  21. package/es/_chunks/dep-56f5e08e.js +448 -0
  22. package/es/_chunks/dep-56f5e08e.js.map +1 -0
  23. package/es/_chunks/dep-5b6b17d0.js +169 -0
  24. package/es/_chunks/dep-5b6b17d0.js.map +1 -0
  25. package/es/_chunks/dep-688e4aaa.js +438 -0
  26. package/es/_chunks/dep-688e4aaa.js.map +1 -0
  27. package/es/_chunks/dep-870f0d35.js +839 -0
  28. package/es/_chunks/dep-870f0d35.js.map +1 -0
  29. package/es/_chunks/dep-96eca06f.js +169 -0
  30. package/es/_chunks/dep-96eca06f.js.map +1 -0
  31. package/es/_chunks/dep-ba3bd553.js +169 -0
  32. package/es/_chunks/dep-ba3bd553.js.map +1 -0
  33. package/es/_chunks/dep-bcb234a1.js +839 -0
  34. package/es/_chunks/dep-bcb234a1.js.map +1 -0
  35. package/es/_chunks/dep-de8ac730.js +1247 -0
  36. package/es/_chunks/dep-de8ac730.js.map +1 -0
  37. package/es/_chunks/dep-e9dbff09.js +1247 -0
  38. package/es/_chunks/dep-e9dbff09.js.map +1 -0
  39. package/es/_chunks/dep-ebc4cf30.js +1247 -0
  40. package/es/_chunks/dep-ebc4cf30.js.map +1 -0
  41. package/es/_chunks/dep-f2051ebd.js +839 -0
  42. package/es/_chunks/dep-f2051ebd.js.map +1 -0
  43. package/es/_chunks/dep-f691a67e.js +438 -0
  44. package/es/_chunks/dep-f691a67e.js.map +1 -0
  45. package/es/_chunks/dep-f8016301.js +169 -0
  46. package/es/_chunks/dep-f8016301.js.map +1 -0
  47. package/es/_util/reactify.js +33 -13
  48. package/es/_util/reactify.js.map +1 -1
  49. package/es/_util/useDynamicStyle.js +1 -1
  50. package/es/attachments/index.js +1 -1
  51. package/es/chat-actionbar/index.js +1 -1
  52. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
  53. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
  54. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
  55. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
  56. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
  57. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
  58. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
  59. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
  60. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
  61. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
  62. package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
  63. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
  64. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
  65. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
  66. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
  67. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
  68. package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
  69. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
  70. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
  71. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
  72. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
  73. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
  74. package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
  75. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
  76. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
  77. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
  78. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
  79. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
  80. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
  81. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
  82. package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
  83. package/es/chat-engine/components/a2ui/containers/index.js +30 -0
  84. package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
  85. package/es/chat-engine/components/a2ui/index.d.ts +11 -0
  86. package/es/chat-engine/components/a2ui/index.js +62 -0
  87. package/es/chat-engine/components/a2ui/index.js.map +1 -0
  88. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
  89. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
  90. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
  91. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
  92. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
  93. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
  94. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
  95. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
  96. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
  97. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
  98. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
  99. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
  100. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
  101. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
  102. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
  103. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
  104. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
  105. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
  106. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
  107. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
  108. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
  109. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
  110. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
  111. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
  112. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
  113. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
  114. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
  115. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
  116. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
  117. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
  118. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
  119. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
  120. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
  121. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
  122. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
  123. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
  124. package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
  125. package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
  126. package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
  127. package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
  128. package/es/chat-engine/components/a2ui/registry.js +74 -0
  129. package/es/chat-engine/components/a2ui/registry.js.map +1 -0
  130. package/es/chat-engine/components/activity/index.d.ts +0 -1
  131. package/es/chat-engine/components/activity/index.js +10 -5
  132. package/es/chat-engine/components/activity/index.js.map +1 -1
  133. package/es/chat-engine/components/activity/registry.d.ts +7 -41
  134. package/es/chat-engine/components/activity/registry.js +23 -77
  135. package/es/chat-engine/components/activity/registry.js.map +1 -1
  136. package/es/chat-engine/components/activity/render.d.ts +5 -1
  137. package/es/chat-engine/components/activity/render.js +33 -71
  138. package/es/chat-engine/components/activity/render.js.map +1 -1
  139. package/es/chat-engine/components/activity/types.d.ts +0 -3
  140. package/es/chat-engine/components/activity/types.js +1 -1
  141. package/es/chat-engine/components/index.js +16 -11
  142. package/es/chat-engine/components/index.js.map +1 -1
  143. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
  144. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
  145. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
  146. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
  147. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
  148. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
  149. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
  150. package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
  151. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
  152. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
  153. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
  154. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
  155. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
  156. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
  157. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
  158. package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
  159. package/es/chat-engine/components/json-render/adapters/index.js +11 -0
  160. package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
  161. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
  162. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
  163. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
  164. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
  165. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
  166. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
  167. package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
  168. package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
  169. package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
  170. package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
  171. package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
  172. package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
  173. package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
  174. package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
  175. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
  176. package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
  177. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
  178. package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
  179. package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
  180. package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
  181. package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
  182. package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
  183. package/es/chat-engine/components/json-render/catalog/button.js +71 -0
  184. package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
  185. package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
  186. package/es/chat-engine/components/json-render/catalog/card.js +57 -0
  187. package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
  188. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
  189. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
  190. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
  191. package/es/chat-engine/components/json-render/catalog/index.d.ts +128 -0
  192. package/es/chat-engine/components/json-render/catalog/index.js +36 -0
  193. package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
  194. package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
  195. package/es/chat-engine/components/json-render/catalog/input.js +36 -0
  196. package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
  197. package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
  198. package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
  199. package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
  200. package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
  201. package/es/chat-engine/components/json-render/catalog/text.js +31 -0
  202. package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
  203. package/es/chat-engine/components/json-render/catalog.d.ts +614 -0
  204. package/es/chat-engine/components/json-render/catalog.js +779 -0
  205. package/es/chat-engine/components/json-render/catalog.js.map +1 -0
  206. package/es/chat-engine/components/json-render/config.d.ts +154 -0
  207. package/es/chat-engine/components/json-render/config.js +36 -0
  208. package/es/chat-engine/components/json-render/config.js.map +1 -0
  209. package/es/chat-engine/components/json-render/contexts/actions.d.ts +79 -0
  210. package/es/chat-engine/components/json-render/contexts/actions.js +313 -0
  211. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
  212. package/es/chat-engine/components/json-render/contexts/data.d.ts +137 -0
  213. package/es/chat-engine/components/json-render/contexts/data.js +183 -0
  214. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
  215. package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
  216. package/es/chat-engine/components/json-render/contexts/index.js +27 -0
  217. package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
  218. package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
  219. package/es/chat-engine/components/json-render/contexts/store.js +104 -0
  220. package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
  221. package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
  222. package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
  223. package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
  224. package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
  225. package/es/chat-engine/components/json-render/contexts/validation.js +159 -0
  226. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
  227. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +39 -0
  228. package/es/chat-engine/components/json-render/contexts/visibility.js +66 -0
  229. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
  230. package/es/chat-engine/components/json-render/engine.d.ts +58 -0
  231. package/es/chat-engine/components/json-render/engine.js +88 -0
  232. package/es/chat-engine/components/json-render/engine.js.map +1 -0
  233. package/es/chat-engine/components/json-render/index.d.ts +13 -0
  234. package/es/chat-engine/components/json-render/index.js +76 -0
  235. package/es/chat-engine/components/json-render/index.js.map +1 -0
  236. package/es/chat-engine/components/json-render/performance.d.ts +91 -0
  237. package/es/chat-engine/components/json-render/performance.js +135 -0
  238. package/es/chat-engine/components/json-render/performance.js.map +1 -0
  239. package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
  240. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
  241. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
  242. package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
  243. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
  244. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
  245. package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
  246. package/es/chat-engine/components/json-render/registry/config.js +76 -0
  247. package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
  248. package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
  249. package/es/chat-engine/components/json-render/registry/index.js +76 -0
  250. package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
  251. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
  252. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
  253. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
  254. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
  255. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
  256. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
  257. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
  258. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
  259. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
  260. package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
  261. package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
  262. package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
  263. package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
  264. package/es/chat-engine/components/json-render/renderer/index.js +125 -0
  265. package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
  266. package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
  267. package/es/chat-engine/components/json-render/renderer.js +124 -0
  268. package/es/chat-engine/components/json-render/renderer.js.map +1 -0
  269. package/es/chat-engine/components/json-render/types.d.ts +87 -0
  270. package/es/chat-engine/components/json-render/types.js +7 -0
  271. package/es/chat-engine/components/json-render/types.js.map +1 -0
  272. package/es/chat-engine/components/provider/agent-state.js +1 -1
  273. package/es/chat-engine/components/shared/ComponentErrorBoundary.d.ts +25 -0
  274. package/es/chat-engine/components/shared/ComponentErrorBoundary.js +58 -0
  275. package/es/chat-engine/components/shared/ComponentErrorBoundary.js.map +1 -0
  276. package/es/chat-engine/components/shared/createRegistry.d.ts +36 -0
  277. package/es/chat-engine/components/shared/createRegistry.js +72 -0
  278. package/es/chat-engine/components/shared/createRegistry.js.map +1 -0
  279. package/es/chat-engine/components/shared/index.d.ts +4 -0
  280. package/es/chat-engine/components/shared/index.js +18 -0
  281. package/es/chat-engine/components/shared/index.js.map +1 -0
  282. package/es/chat-engine/components/shared/useRegistrationListener.d.ts +22 -0
  283. package/es/chat-engine/components/shared/useRegistrationListener.js +45 -0
  284. package/es/chat-engine/components/shared/useRegistrationListener.js.map +1 -0
  285. package/es/chat-engine/components/toolcall/index.d.ts +1 -1
  286. package/es/chat-engine/components/toolcall/index.js +12 -8
  287. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  288. package/es/chat-engine/components/toolcall/registry.d.ts +6 -32
  289. package/es/chat-engine/components/toolcall/registry.js +23 -67
  290. package/es/chat-engine/components/toolcall/registry.js.map +1 -1
  291. package/es/chat-engine/components/toolcall/render.d.ts +1 -1
  292. package/es/chat-engine/components/toolcall/render.js +30 -79
  293. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  294. package/es/chat-engine/components/toolcall/types.js +1 -1
  295. package/es/chat-engine/core/a2ui/index.d.ts +10 -0
  296. package/es/chat-engine/core/a2ui/index.js +24 -0
  297. package/es/chat-engine/core/a2ui/index.js.map +1 -0
  298. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  299. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
  300. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  301. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
  302. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
  303. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
  304. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
  305. package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
  306. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
  307. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
  308. package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
  309. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
  310. package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
  311. package/es/chat-engine/core/a2ui/types/index.js +9 -0
  312. package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
  313. package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
  314. package/es/chat-engine/core/a2ui/types/types.js +104 -0
  315. package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
  316. package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
  317. package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
  318. package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
  319. package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
  320. package/es/chat-engine/core/a2ui/utils/index.js +13 -0
  321. package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
  322. package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
  323. package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
  324. package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
  325. package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
  326. package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
  327. package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
  328. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  329. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
  330. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  331. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
  332. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
  333. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
  334. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
  335. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
  336. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
  337. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
  338. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
  339. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
  340. package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
  341. package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
  342. package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
  343. package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
  344. package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
  345. package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
  346. package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
  347. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
  348. package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
  349. package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
  350. package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
  351. package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
  352. package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
  353. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
  354. package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
  355. package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
  356. package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
  357. package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
  358. package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
  359. package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
  360. package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
  361. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
  362. package/es/chat-engine/core/adapters/agui/activity-manager.js +150 -0
  363. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
  364. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +42 -2
  365. package/es/chat-engine/core/adapters/agui/event-mapper.js +94 -52
  366. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
  367. package/es/chat-engine/core/adapters/agui/events.d.ts +222 -222
  368. package/es/chat-engine/core/adapters/agui/events.js +34 -34
  369. package/es/chat-engine/core/adapters/agui/events.js.map +1 -1
  370. package/es/chat-engine/core/adapters/agui/index.d.ts +21 -4
  371. package/es/chat-engine/core/adapters/agui/index.js +48 -23
  372. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  373. package/es/chat-engine/core/adapters/agui/state-manager.js +7 -1
  374. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -1
  375. package/es/chat-engine/core/adapters/agui/types/events.d.ts +1570 -0
  376. package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
  377. package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
  378. package/es/chat-engine/core/adapters/agui/types/index.d.ts +854 -0
  379. package/es/chat-engine/core/adapters/agui/types/index.js +279 -0
  380. package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
  381. package/es/chat-engine/core/adapters/agui/types.d.ts +57 -56
  382. package/es/chat-engine/core/adapters/agui/types.js +5 -5
  383. package/es/chat-engine/core/adapters/agui/types.js.map +1 -1
  384. package/es/chat-engine/core/adapters/agui/utils.d.ts +9 -3
  385. package/es/chat-engine/core/adapters/agui/utils.js +23 -4
  386. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
  387. package/es/chat-engine/core/adapters/index.d.ts +5 -0
  388. package/es/chat-engine/core/adapters/index.js +34 -0
  389. package/es/chat-engine/core/adapters/index.js.map +1 -0
  390. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
  391. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
  392. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
  393. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
  394. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
  395. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
  396. package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
  397. package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
  398. package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
  399. package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
  400. package/es/chat-engine/core/adapters/json-render/index.js +18 -0
  401. package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
  402. package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
  403. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
  404. package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
  405. package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
  406. package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
  407. package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
  408. package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
  409. package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
  410. package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
  411. package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
  412. package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
  413. package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
  414. package/es/chat-engine/core/event-bus/index.d.ts +5 -0
  415. package/es/chat-engine/core/event-bus/index.js +13 -0
  416. package/es/chat-engine/core/event-bus/index.js.map +1 -0
  417. package/es/chat-engine/core/event-bus/types.d.ts +230 -0
  418. package/es/chat-engine/core/event-bus/types.js +32 -0
  419. package/es/chat-engine/core/event-bus/types.js.map +1 -0
  420. package/es/chat-engine/core/index.d.ts +17 -2
  421. package/es/chat-engine/core/index.js +185 -22
  422. package/es/chat-engine/core/index.js.map +1 -1
  423. package/es/chat-engine/core/processor/index.js +1 -1
  424. package/es/chat-engine/core/server/batch-client.js +1 -1
  425. package/es/chat-engine/core/server/connection-manager.js +1 -1
  426. package/es/chat-engine/core/server/errors.js +1 -1
  427. package/es/chat-engine/core/server/index.js +1 -1
  428. package/es/chat-engine/core/server/llm-service.js +4 -2
  429. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  430. package/es/chat-engine/core/server/sse-client.js +1 -1
  431. package/es/chat-engine/core/server/sse-parser.js +1 -1
  432. package/es/chat-engine/core/server/types.js +1 -1
  433. package/es/chat-engine/core/store/message.js +6 -2
  434. package/es/chat-engine/core/store/message.js.map +1 -1
  435. package/es/chat-engine/core/store/model.js +2 -1
  436. package/es/chat-engine/core/store/model.js.map +1 -1
  437. package/es/chat-engine/core/store/reactiveState.d.ts +4 -0
  438. package/es/chat-engine/core/store/reactiveState.js +15 -1235
  439. package/es/chat-engine/core/store/reactiveState.js.map +1 -1
  440. package/es/chat-engine/core/type.d.ts +25 -1
  441. package/es/chat-engine/core/type.js +1 -1
  442. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  443. package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
  444. package/es/chat-engine/core/utils/immutable-patch.js +147 -0
  445. package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
  446. package/es/chat-engine/core/utils/index.d.ts +7 -2
  447. package/es/chat-engine/core/utils/index.js +9 -883
  448. package/es/chat-engine/core/utils/index.js.map +1 -1
  449. package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
  450. package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
  451. package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
  452. package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
  453. package/es/chat-engine/core/utils/json-patch/index.js +387 -0
  454. package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
  455. package/es/chat-engine/core/utils/logger.js +1 -1
  456. package/es/chat-engine/core/utils/performance.d.ts +94 -0
  457. package/es/chat-engine/core/utils/performance.js +205 -0
  458. package/es/chat-engine/core/utils/performance.js.map +1 -0
  459. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
  460. package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
  461. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
  462. package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
  463. package/es/chat-engine/hooks/a2ui/index.js +19 -0
  464. package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
  465. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
  466. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
  467. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
  468. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
  469. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
  470. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
  471. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
  472. package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
  473. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
  474. package/es/chat-engine/hooks/index.js +8 -1
  475. package/es/chat-engine/hooks/index.js.map +1 -1
  476. package/es/chat-engine/hooks/useAgentActivity.d.ts +1 -2
  477. package/es/chat-engine/hooks/useAgentActivity.js +10 -2
  478. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  479. package/es/chat-engine/hooks/useAgentState.js +1 -1
  480. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  481. package/es/chat-engine/hooks/useAgentToolcall.js +10 -2
  482. package/es/chat-engine/hooks/useAgentToolcall.js.map +1 -1
  483. package/es/chat-engine/hooks/useChat.d.ts +1 -1
  484. package/es/chat-engine/hooks/useChat.js +3 -3
  485. package/es/chat-engine/hooks/useChat.js.map +1 -1
  486. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
  487. package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
  488. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
  489. package/es/chat-engine/index.d.ts +2 -4
  490. package/es/chat-engine/index.js +14 -34
  491. package/es/chat-engine/index.js.map +1 -1
  492. package/es/chat-filecard/index.js +1 -1
  493. package/es/chat-loading/index.js +1 -1
  494. package/es/chat-markdown/index.js +1 -1
  495. package/es/chat-message/index.js +1 -1
  496. package/es/chat-sender/index.js +1 -1
  497. package/es/chat-thinking/index.js +1 -1
  498. package/es/chatbot/docs/react-best-practice.d.ts +13 -0
  499. package/es/chatbot/index.js +1 -1
  500. package/es/index.js +13 -31
  501. package/es/index.js.map +1 -1
  502. package/es/style/index.js +1 -1
  503. package/package.json +10 -5
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.6
2
+ * tdesign v1.1.0-alpha.11
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -13,26 +13,37 @@ import _regeneratorRuntime from '@babel/runtime/regenerator';
13
13
  import { AGUIAdapter } from './adapters/agui/index.js';
14
14
  export { AGUIAdapter } from './adapters/agui/index.js';
15
15
  import { MessageStore } from './store/message.js';
16
+ import './event-bus/index.js';
16
17
  import MessageProcessor from './processor/index.js';
17
18
  import './server/index.js';
18
19
  import { isAIMessage } from './utils/index.js';
19
20
  export { applyJsonPatch, findTargetElement, getMessageContentForCopy, isAIMessage, isActivityContent, isAttachmentContent, isImageContent, isMarkdownContent, isReasoningContent, isSearchContent, isSuggestionContent, isTextContent, isThinkingContent, isToolCallContent, isUserMessage, safeParseJSON } from './utils/index.js';
21
+ import './adapters/index.js';
22
+ import { ChatEventBus } from './event-bus/ChatEventBus.js';
23
+ export { ChatEventBus, createEventBus } from './event-bus/ChatEventBus.js';
24
+ import { ChatEngineEventType } from './event-bus/types.js';
25
+ export { ChatEngineEventType } from './event-bus/types.js';
20
26
  import { LLMService } from './server/llm-service.js';
21
- export { StateManagerImpl, stateManager } from './adapters/agui/state-manager.js';
27
+ export { StateManagerImpl, stateManager } from './adapters/agui/StateManager.js';
28
+ export { ActivityManagerImpl, activityManager } from './adapters/agui/ActivityManager.js';
29
+ export { AGUIError, AGUIEventType, AGUIMessageSchema, ActivityDeltaEventSchema, ActivitySnapshotEventSchema, ContextSchema, CustomEventSchema, EventSchemas, FunctionCallSchema, HistoryMessageSchema, MessagesSnapshotEventSchema, RawEventSchema, RoleSchema, RunAgentInputSchema, RunErrorEventSchema, RunFinishedEventSchema, RunStartedEventSchema, StateDeltaEventSchema, StateSchema, StateSnapshotEventSchema, StepFinishedEventSchema, StepStartedEventSchema, TextMessageChunkEventSchema, TextMessageContentEventSchema, TextMessageEndEventSchema, TextMessageStartEventSchema, ThinkingEndEventSchema, ThinkingStartEventSchema, ThinkingTextMessageContentEventSchema, ThinkingTextMessageEndEventSchema, ThinkingTextMessageStartEventSchema, ToolCallArgsEventSchema, ToolCallChunkEventSchema, ToolCallEndEventSchema, ToolCallResultEventSchema, ToolCallSchema, ToolCallStartEventSchema, ToolSchema, isActivityEvent, isStateEvent, isTextMessageEvent, isThinkingEvent, isToolCallEvent } from './adapters/agui/types/index.js';
30
+ export { SurfaceStateManager, surfaceStateManager } from './adapters/json-render/SurfaceStateManager.js';
31
+ export { applyA2UIDataUpdate, applyA2UIUpdates, convertA2UIMessagesToJsonRender } from './adapters/json-render/a2ui-to-jsonrender.js';
22
32
  import '@babel/runtime/helpers/toConsumableArray';
23
33
  import './adapters/agui/event-mapper.js';
24
- import './adapters/agui/events.js';
34
+ import './adapters/agui/utils.js';
35
+ import '@babel/runtime/helpers/typeof';
25
36
  import 'zod';
26
- import './adapters/agui/types.js';
27
37
  import '@babel/runtime/helpers/possibleConstructorReturn';
28
38
  import '@babel/runtime/helpers/getPrototypeOf';
29
39
  import '@babel/runtime/helpers/inherits';
30
40
  import '@babel/runtime/helpers/wrapNativeSuper';
31
- import './adapters/agui/utils.js';
32
- import '@babel/runtime/helpers/typeof';
33
41
  import '@babel/runtime/helpers/slicedToArray';
42
+ import './utils/immutable-patch.js';
43
+ import '@babel/runtime/helpers/toArray';
34
44
  import '@babel/runtime/helpers/get';
35
45
  import './store/reactiveState.js';
46
+ import '../../_chunks/dep-1ca64fef.js';
36
47
  import './server/types.js';
37
48
  import './server/errors.js';
38
49
  import './server/connection-manager.js';
@@ -40,18 +51,26 @@ import './utils/logger.js';
40
51
  import './server/sse-client.js';
41
52
  import './utils/eventEmitter.js';
42
53
  import './server/sse-parser.js';
54
+ import './adapters/json-render/index.js';
55
+ import './adapters/json-render/types/a2ui.js';
56
+ import './adapters/json-render/types/index.js';
57
+ import './adapters/json-render/types/core.js';
43
58
  import './server/batch-client.js';
44
59
 
45
60
  var _excluded = ["prompt", "attachments"];
61
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
62
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
63
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
46
64
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
47
65
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
48
66
  var ChatEngine = /*#__PURE__*/function () {
49
- function ChatEngine() {
67
+ function ChatEngine(eventBusOptions) {
50
68
  _classCallCheck(this, ChatEngine);
51
69
  _defineProperty(this, "stopReceive", false);
52
70
  _defineProperty(this, "aguiAdapter", null);
53
71
  this.messageProcessor = new MessageProcessor();
54
72
  this.messageStore = new MessageStore();
73
+ this.eventBus = new ChatEventBus(eventBusOptions);
55
74
  }
56
75
  return _createClass(ChatEngine, [{
57
76
  key: "messages",
@@ -67,9 +86,14 @@ var ChatEngine = /*#__PURE__*/function () {
67
86
  }, {
68
87
  key: "destroy",
69
88
  value: function destroy() {
89
+ this.eventBus.emit(ChatEngineEventType.ENGINE_DESTROY, {
90
+ timestamp: Date.now()
91
+ });
70
92
  this.abortChat();
71
93
  this.messageStore.clearHistory();
94
+ this.messageStore.destroy();
72
95
  this.aguiAdapter = null;
96
+ this.eventBus.destroy();
73
97
  }
74
98
  }, {
75
99
  key: "init",
@@ -80,6 +104,9 @@ var ChatEngine = /*#__PURE__*/function () {
80
104
  if (this.config.protocol === "agui") {
81
105
  this.aguiAdapter = new AGUIAdapter();
82
106
  }
107
+ this.eventBus.emit(ChatEngineEventType.ENGINE_INIT, {
108
+ timestamp: Date.now()
109
+ });
83
110
  }
84
111
  }, {
85
112
  key: "sendUserMessage",
@@ -112,6 +139,10 @@ var ChatEngine = /*#__PURE__*/function () {
112
139
  userMessage = this.messageProcessor.createUserMessage(prompt, attachments);
113
140
  aiMessage = this.messageProcessor.createAssistantMessage();
114
141
  this.messageStore.createMultiMessages([userMessage, aiMessage]);
142
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {
143
+ message: userMessage,
144
+ messages: this.messages
145
+ });
115
146
  if (sendRequest) {
116
147
  params = _objectSpread(_objectSpread({}, requestParams), {}, {
117
148
  messageID: aiMessage.id
@@ -133,15 +164,21 @@ var ChatEngine = /*#__PURE__*/function () {
133
164
  key: "sendSystemMessage",
134
165
  value: function () {
135
166
  var _sendSystemMessage = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(msg) {
167
+ var systemMessage;
136
168
  return _regeneratorRuntime.wrap(function (_context2) {
137
169
  while (1) switch (_context2.prev = _context2.next) {
138
170
  case 0:
139
- this.messageStore.createMessage({
171
+ systemMessage = {
140
172
  role: "system",
141
173
  content: [{
142
174
  type: "text",
143
175
  data: msg
144
176
  }]
177
+ };
178
+ this.messageStore.createMessage(systemMessage);
179
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {
180
+ message: systemMessage,
181
+ messages: this.messages
145
182
  });
146
183
  case 1:
147
184
  case "end":
@@ -176,6 +213,10 @@ var ChatEngine = /*#__PURE__*/function () {
176
213
  status: sendRequest ? "pending" : "complete"
177
214
  });
178
215
  this.messageStore.createMessage(newAIMessage);
216
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {
217
+ message: newAIMessage,
218
+ messages: this.messages
219
+ });
179
220
  if (!sendRequest) {
180
221
  _context3.next = 1;
181
222
  break;
@@ -199,7 +240,7 @@ var ChatEngine = /*#__PURE__*/function () {
199
240
  value: function () {
200
241
  var _abortChat = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
201
242
  var _this$config;
202
- var _this$messageStore$la;
243
+ var _this$messageStore$la, messageId;
203
244
  return _regeneratorRuntime.wrap(function (_context4) {
204
245
  while (1) switch (_context4.prev = _context4.next) {
205
246
  case 0:
@@ -215,7 +256,12 @@ var ChatEngine = /*#__PURE__*/function () {
215
256
  this.llmService.closeConnect();
216
257
  if (!this.config.stream) {
217
258
  if ((_this$messageStore$la = this.messageStore.lastAIMessage) !== null && _this$messageStore$la !== void 0 && _this$messageStore$la.id) {
218
- this.messageStore.removeMessage(this.messageStore.lastAIMessage.id);
259
+ messageId = this.messageStore.lastAIMessage.id;
260
+ this.messageStore.removeMessage(messageId);
261
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_DELETE, {
262
+ messageId: messageId,
263
+ messages: this.messages
264
+ });
219
265
  }
220
266
  }
221
267
  } catch (error) {
@@ -247,6 +293,9 @@ var ChatEngine = /*#__PURE__*/function () {
247
293
  key: "clearMessages",
248
294
  value: function clearMessages() {
249
295
  this.messageStore.clearHistory();
296
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_CLEAR, {
297
+ timestamp: Date.now()
298
+ });
250
299
  }
251
300
  }, {
252
301
  key: "regenerateAIMessage",
@@ -302,6 +351,10 @@ var ChatEngine = /*#__PURE__*/function () {
302
351
  while (1) switch (_context6.prev = _context6.next) {
303
352
  case 0:
304
353
  id = params.messageID;
354
+ this.eventBus.emit(ChatEngineEventType.REQUEST_START, {
355
+ params: params,
356
+ messageId: id
357
+ });
305
358
  _context6.prev = 1;
306
359
  if (!this.config.stream) {
307
360
  _context6.next = 3;
@@ -324,6 +377,11 @@ var ChatEngine = /*#__PURE__*/function () {
324
377
  _context6.prev = 5;
325
378
  _t = _context6["catch"](1);
326
379
  this.setMessageStatus(id, "error");
380
+ this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {
381
+ messageId: id,
382
+ error: _t,
383
+ params: params
384
+ });
327
385
  throw _t;
328
386
  case 6:
329
387
  case "end":
@@ -346,7 +404,7 @@ var ChatEngine = /*#__PURE__*/function () {
346
404
  key: "handleBatchRequest",
347
405
  value: function () {
348
406
  var _handleBatchRequest = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(params) {
349
- var id, result;
407
+ var id, result, message;
350
408
  return _regeneratorRuntime.wrap(function (_context7) {
351
409
  while (1) switch (_context7.prev = _context7.next) {
352
410
  case 0:
@@ -365,8 +423,21 @@ var ChatEngine = /*#__PURE__*/function () {
365
423
  if (result) {
366
424
  this.processMessageResult(id, result);
367
425
  this.setMessageStatus(id, "complete");
426
+ message = this.messageStore.getMessageByID(id);
427
+ if (message) {
428
+ this.eventBus.emit(ChatEngineEventType.REQUEST_COMPLETE, {
429
+ messageId: id,
430
+ params: params,
431
+ message: message
432
+ });
433
+ }
368
434
  } else {
369
435
  this.setMessageStatus(id, "error");
436
+ this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {
437
+ messageId: id,
438
+ error: new Error("Batch request returned empty result"),
439
+ params: params
440
+ });
370
441
  }
371
442
  case 3:
372
443
  case "end":
@@ -385,6 +456,10 @@ var ChatEngine = /*#__PURE__*/function () {
385
456
  var _this$config$onError, _this$config2;
386
457
  this.setMessageStatus(id, "error");
387
458
  (_this$config$onError = (_this$config2 = this.config).onError) === null || _this$config$onError === void 0 || _this$config$onError.call(_this$config2, error);
459
+ this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {
460
+ messageId: id,
461
+ error: error
462
+ });
388
463
  }
389
464
  }, {
390
465
  key: "handleComplete",
@@ -394,11 +469,26 @@ var ChatEngine = /*#__PURE__*/function () {
394
469
  if (Array.isArray(customResult) || customResult && "status" in customResult) {
395
470
  this.processMessageResult(id, customResult);
396
471
  } else {
397
- var allContentFailed = this.messageStore.messages.every(function (content) {
472
+ var allContentFailed = this.messageStore.messages.find(function (content) {
398
473
  return content.status === "error";
399
474
  });
400
475
  this.setMessageStatus(id, isAborted ? "stop" : allContentFailed ? "error" : "complete");
401
476
  }
477
+ var message = this.messageStore.getMessageByID(id);
478
+ if (message) {
479
+ if (isAborted) {
480
+ this.eventBus.emit(ChatEngineEventType.REQUEST_ABORT, {
481
+ messageId: id,
482
+ params: params
483
+ });
484
+ } else {
485
+ this.eventBus.emit(ChatEngineEventType.REQUEST_COMPLETE, {
486
+ messageId: id,
487
+ params: params,
488
+ message: message
489
+ });
490
+ }
491
+ }
402
492
  }
403
493
  }, {
404
494
  key: "handleStreamRequest",
@@ -448,18 +538,34 @@ var ChatEngine = /*#__PURE__*/function () {
448
538
  return this.llmService.handleStreamRequest(params, _objectSpread(_objectSpread({}, this.config), {}, {
449
539
  onMessage: function onMessage(chunk) {
450
540
  if (_this.stopReceive || !messageId) return null;
451
- var result;
541
+ var result = null;
452
542
  if (_this.aguiAdapter) {
453
543
  result = _this.aguiAdapter.handleAGUIEvent(chunk, {
454
544
  onRunStart: function onRunStart(event) {
455
- var _this$config$onStart, _this$config4;
456
- return (_this$config$onStart = (_this$config4 = _this.config).onStart) === null || _this$config$onStart === void 0 ? void 0 : _this$config$onStart.call(_this$config4, JSON.stringify(event));
545
+ var _this$aguiAdapter2, _this$config$onStart, _this$config4;
546
+ (_this$aguiAdapter2 = _this.aguiAdapter) === null || _this$aguiAdapter2 === void 0 || _this$aguiAdapter2.reset();
547
+ (_this$config$onStart = (_this$config4 = _this.config).onStart) === null || _this$config$onStart === void 0 || _this$config$onStart.call(_this$config4, JSON.stringify(event));
548
+ _this.eventBus.emit(ChatEngineEventType.AGUI_RUN_START, {
549
+ runId: event.runId || "",
550
+ threadId: event.threadId,
551
+ timestamp: Date.now()
552
+ });
457
553
  },
458
- onRunComplete: function onRunComplete(isAborted, params2, event) {
459
- return _this.handleComplete(messageId, isAborted, params2, event);
554
+ onRunComplete: function onRunComplete(isAborted, requestParams, event) {
555
+ _this.handleComplete(messageId, isAborted, requestParams, event);
556
+ if (!isAborted) {
557
+ _this.eventBus.emit(ChatEngineEventType.AGUI_RUN_COMPLETE, {
558
+ runId: (event === null || event === void 0 ? void 0 : event.runId) || "",
559
+ threadId: event === null || event === void 0 ? void 0 : event.threadId,
560
+ timestamp: Date.now()
561
+ });
562
+ }
460
563
  },
461
564
  onRunError: function onRunError(error) {
462
- return _this.handleError(messageId, error);
565
+ _this.handleError(messageId, error);
566
+ _this.eventBus.emit(ChatEngineEventType.AGUI_RUN_ERROR, {
567
+ error: error
568
+ });
463
569
  }
464
570
  });
465
571
  }
@@ -469,6 +575,11 @@ var ChatEngine = /*#__PURE__*/function () {
469
575
  result = userResult;
470
576
  }
471
577
  }
578
+ _this.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {
579
+ messageId: messageId,
580
+ chunk: chunk,
581
+ content: result
582
+ });
472
583
  _this.processMessageResult(messageId, result);
473
584
  return result;
474
585
  },
@@ -512,6 +623,11 @@ var ChatEngine = /*#__PURE__*/function () {
512
623
  if (_this2.config.onMessage) {
513
624
  result = _this2.config.onMessage(chunk, _this2.messageStore.getMessageByID(messageId));
514
625
  }
626
+ _this2.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {
627
+ messageId: messageId,
628
+ chunk: chunk,
629
+ content: result
630
+ });
515
631
  _this2.processMessageResult(messageId, result);
516
632
  return result;
517
633
  },
@@ -539,10 +655,48 @@ var ChatEngine = /*#__PURE__*/function () {
539
655
  key: "processMessageResult",
540
656
  value: function processMessageResult(messageId, result) {
541
657
  if (!result) return;
542
- if (Array.isArray(result)) {
543
- this.messageStore.updateMultipleContents(messageId, result);
544
- } else {
545
- this.processContentUpdate(messageId, result);
658
+ Array.isArray(result) ? this.messageStore.updateMultipleContents(messageId, result) : this.processContentUpdate(messageId, result);
659
+ var message = this.messageStore.getMessageByID(messageId);
660
+ if (message) {
661
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_UPDATE, {
662
+ messageId: messageId,
663
+ content: result,
664
+ message: message
665
+ });
666
+ if (this.aguiAdapter) {
667
+ this.emitAGUIDetailEvents(messageId, result);
668
+ }
669
+ }
670
+ }
671
+ }, {
672
+ key: "emitAGUIDetailEvents",
673
+ value: function emitAGUIDetailEvents(messageId, result) {
674
+ var contents = Array.isArray(result) ? result : [result];
675
+ var _iterator = _createForOfIteratorHelper(contents),
676
+ _step;
677
+ try {
678
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
679
+ var _content$data2;
680
+ var content = _step.value;
681
+ if (content.data.activityType) {
682
+ var _content$data;
683
+ this.eventBus.emit(ChatEngineEventType.AGUI_ACTIVITY, {
684
+ activityType: content.data.activityType,
685
+ messageId: messageId,
686
+ content: content === null || content === void 0 || (_content$data = content.data) === null || _content$data === void 0 ? void 0 : _content$data.content
687
+ });
688
+ }
689
+ if (content !== null && content !== void 0 && (_content$data2 = content.data) !== null && _content$data2 !== void 0 && (_content$data2 = _content$data2.eventType) !== null && _content$data2 !== void 0 && _content$data2.startsWith("TOOL_CALL")) {
690
+ this.eventBus.emit(ChatEngineEventType.AGUI_TOOLCALL, {
691
+ toolCall: content.data,
692
+ eventType: content.data.eventType
693
+ });
694
+ }
695
+ }
696
+ } catch (err) {
697
+ _iterator.e(err);
698
+ } finally {
699
+ _iterator.f();
546
700
  }
547
701
  }
548
702
  }, {
@@ -562,7 +716,16 @@ var ChatEngine = /*#__PURE__*/function () {
562
716
  }, {
563
717
  key: "setMessageStatus",
564
718
  value: function setMessageStatus(messageId, status) {
719
+ var _this$messageStore$ge;
720
+ var previousStatus = (_this$messageStore$ge = this.messageStore.getMessageByID(messageId)) === null || _this$messageStore$ge === void 0 ? void 0 : _this$messageStore$ge.status;
565
721
  this.messageStore.setMessageStatus(messageId, status);
722
+ if (status) {
723
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_STATUS_CHANGE, {
724
+ messageId: messageId,
725
+ status: status,
726
+ previousStatus: previousStatus
727
+ });
728
+ }
566
729
  }
567
730
  }, {
568
731
  key: "processContentUpdate",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../pro-components/chat/chat-engine/core/index.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable class-methods-use-this */\nimport { AGUIAdapter } from './adapters/agui';\nimport { MessageStore } from './store/message';\nimport MessageProcessor from './processor';\nimport { LLMService } from './server';\nimport type {\n AIContentChunkUpdate,\n AIMessageContent,\n ChatMessagesData,\n ChatMessageSetterMode,\n ChatRequestParams,\n ChatServiceConfig,\n ChatServiceConfigSetter,\n ChatStatus,\n IChatEngine,\n SSEChunkData,\n SystemMessage,\n ToolCall,\n} from './type';\nimport { isAIMessage } from './utils';\n\nexport default class ChatEngine implements IChatEngine {\n public messageStore: MessageStore;\n\n private messageProcessor: MessageProcessor;\n\n private llmService!: LLMService;\n\n private config!: ChatServiceConfig;\n\n private lastRequestParams: ChatRequestParams | undefined;\n\n private stopReceive = false;\n\n private aguiAdapter: AGUIAdapter | null = null;\n\n constructor() {\n this.messageProcessor = new MessageProcessor();\n this.messageStore = new MessageStore();\n }\n\n /**\n * 获取当前所有消息\n * @returns 消息数组\n * @description 返回消息存储中的所有消息\n */\n get messages(): ChatMessagesData[] {\n return this.messageStore.messages;\n }\n\n /**\n * 获取当前聊天状态\n * @returns 聊天状态:'idle'、'pending'、'streaming'、'complete'、'stop'或'error'\n * @description 返回最后一条消息的状态,如果没有消息则返回'idle'\n */\n get status(): ChatStatus {\n return this.messages.at(-1)?.status || 'idle';\n }\n\n /**\n * 销毁聊天引擎实例\n * @description 中止请求,清理消息存储和适配器,释放资源\n */\n destroy(): void {\n // 中止当前请求\n this.abortChat();\n\n // 清理消息存储\n this.messageStore.clearHistory();\n\n // 清理适配器\n this.aguiAdapter = null;\n }\n\n /**\n * 初始化聊天引擎\n * @param configSetter 聊天服务配置或配置生成函数\n * @param initialMessages 初始消息列表,用于恢复历史对话\n * @description 设置初始消息、配置服务参数,并根据协议类型初始化适配器\n */\n public init(configSetter: ChatServiceConfigSetter, initialMessages?: ChatMessagesData[]) {\n this.messageStore.initialize(this.convertMessages(initialMessages));\n this.config = typeof configSetter === 'function' ? configSetter() : configSetter || {};\n this.llmService = new LLMService();\n // 初始化AGUI适配器\n if (this.config.protocol === 'agui') {\n this.aguiAdapter = new AGUIAdapter();\n }\n }\n\n /**\n * 发送用户消息并获取AI回复\n * @param requestParams 请求参数,包含用户输入的文本和附件\n * @param sendRequest 是否立即发送\n * @description 创建用户消息和AI消息,并发送请求获取AI回复\n */\n public async sendUserMessage(requestParams: ChatRequestParams, sendRequest = true) {\n const { prompt, attachments, ...customParams } = requestParams;\n\n // 检查条件:prompt和attachments至少传入一个,且如果设置了就不能为空\n const hasValidPrompt = prompt && prompt.trim() !== '';\n const hasValidAttachments = Array.isArray(attachments) && attachments.length > 0;\n\n // 如果两者都没有有效值,则直接返回\n if (!hasValidPrompt && !hasValidAttachments) {\n console.warn('[ChatEngine] sendUserMessage: 必须提供有效的prompt或attachments');\n return;\n }\n\n const userMessage = this.messageProcessor.createUserMessage(prompt, attachments);\n const aiMessage = this.messageProcessor.createAssistantMessage();\n this.messageStore.createMultiMessages([userMessage, aiMessage]);\n if (sendRequest) {\n const params = {\n ...requestParams,\n messageID: aiMessage.id,\n ...customParams, // 透传用户自定义参数\n };\n this.sendRequest(params);\n }\n }\n\n /**\n * 发送系统消息\n * @param msg 系统消息文本内容\n * @description 创建并存储一条系统消息,通常用于设置上下文或控制对话流程\n */\n public async sendSystemMessage(msg: string) {\n this.messageStore.createMessage({\n role: 'system',\n content: [\n {\n type: 'text',\n data: msg,\n },\n ],\n } as SystemMessage);\n }\n\n /**\n * 手动发送AI消息\n * @param options 包含请求参数params、发送消息内容content和是否发送请求的标志sendRequest\n * @description 创建并存储一条AI消息,可选择是否同时发送请求\n */\n public async sendAIMessage(\n options: { params?: ChatRequestParams; content?: AIMessageContent[]; sendRequest?: boolean } = {},\n ) {\n const { params = {}, content, sendRequest = true } = options;\n const newAIMessage = this.messageProcessor.createAssistantMessage({\n content,\n status: sendRequest ? 'pending' : 'complete',\n });\n this.messageStore.createMessage(newAIMessage);\n if (sendRequest) {\n params.messageID = newAIMessage.id;\n await this.sendRequest(params);\n }\n }\n\n /**\n * 中止当前进行中的聊天请求\n * @description 停止接收流式响应,关闭连接,并调用配置的onAbort回调\n */\n public async abortChat() {\n this.stopReceive = true;\n\n if (this.config?.onAbort) {\n await this.config.onAbort();\n }\n\n try {\n this.llmService.closeConnect();\n if (!this.config.stream) {\n // 只有在批量模式下才删除最后一条AI消息\n if (this.messageStore.lastAIMessage?.id) {\n this.messageStore.removeMessage(this.messageStore.lastAIMessage.id);\n }\n }\n } catch (error) {\n console.warn('Error during service cleanup:', error);\n }\n }\n\n /**\n * 注册内容块合并策略\n * @param type 内容类型,如'text'、'markdown'等\n * @param handler 合并处理函数,接收新块和现有块,返回合并后的内容块\n * @description 用于自定义不同类型内容的增量更新逻辑\n */\n public registerMergeStrategy<T extends AIMessageContent>(\n type: T['type'], // 使用类型中定义的type字段作为参数类型\n handler: (chunk: T, existing?: T) => T,\n ) {\n this.messageProcessor.registerHandler(type, handler);\n }\n\n /**\n * 设置消息列表\n * @param messages 要设置的消息数组\n * @param mode 设置模式:'replace'(替换)、'prepend'(前置)、'append'(追加),默认为'replace'\n * @description 用于批量更新消息,如加载历史消息或重置对话\n */\n public setMessages(messages: ChatMessagesData[], mode: ChatMessageSetterMode = 'replace') {\n this.messageStore.setMessages(messages, mode);\n }\n\n /**\n * 清空所有消息\n * @description 清除消息存储中的所有历史记录\n */\n public clearMessages(): void {\n this.messageStore.clearHistory();\n }\n\n /**\n * 重新生成AI回复\n * @param keepVersion 是否保留历史版本,默认为false\n * @description\n * - 当keepVersion=false时:删除最后一条AI消息,创建新消息并重新请求\n * - 当keepVersion=true时:保留旧消息,创建分支消息并重新请求\n */\n public async regenerateAIMessage(keepVersion = false) {\n const { lastAIMessage } = this.messageStore;\n if (!lastAIMessage) return;\n\n if (!keepVersion) {\n // 删除最后一条AI消息\n this.messageStore.removeMessage(lastAIMessage.id);\n } else {\n // todo: 保留历史版本,创建新分支\n this.messageStore.createMessageBranch(lastAIMessage.id);\n }\n\n // 创建新的AI消息\n const newAIMessage = this.messageProcessor.createAssistantMessage();\n this.messageStore.createMessage(newAIMessage);\n\n // 重新发起请求\n const params = {\n ...(this.lastRequestParams || {}),\n messageID: newAIMessage.id,\n prompt: this.lastRequestParams?.prompt ?? '',\n };\n\n await this.sendRequest(params);\n }\n\n /**\n * 发送请求获取AI回复\n * @param params 请求参数\n * @description 根据配置选择流式或批量请求模式,处理响应并更新消息状态\n */\n public async sendRequest(params: ChatRequestParams) {\n const { messageID: id } = params;\n try {\n if (this.config.stream) {\n // 处理sse流式响应模式\n this.stopReceive = false;\n await this.handleStreamRequest(params);\n } else {\n // 处理批量响应模式\n await this.handleBatchRequest(params);\n }\n this.lastRequestParams = params;\n } catch (error) {\n this.setMessageStatus(id!, 'error');\n throw error;\n }\n }\n\n /**\n * 根据名称获取工具调用\n * @param name 工具调用名称\n * @returns 匹配的工具调用对象,如果未找到则返回undefined\n * @description 用于获取特定名称的工具调用信息,仅在AGUI协议下可用\n */\n public getToolcallByName(name: string): ToolCall | undefined {\n return this.aguiAdapter?.getToolcallByName(name);\n }\n\n private async handleBatchRequest(params: ChatRequestParams) {\n const id = params.messageID;\n if (!id) return;\n this.setMessageStatus(id, 'pending');\n const result = await this.llmService.handleBatchRequest(params, this.config);\n if (result) {\n this.processMessageResult(id, result);\n this.setMessageStatus(id, 'complete');\n } else {\n this.setMessageStatus(id, 'error');\n }\n }\n\n private handleError(id: string, error: any) {\n this.setMessageStatus(id, 'error');\n this.config.onError?.(error);\n }\n\n private handleComplete(id: string, isAborted: boolean, params: ChatRequestParams, chunk?: any) {\n // 先调用用户自定义的 onComplete 回调,让业务层决定如何处理\n const customResult = this.config.onComplete?.(isAborted, params, chunk);\n // 如果用户返回了自定义内容,处理这些内容\n if (Array.isArray(customResult) || (customResult && 'status' in customResult)) {\n this.processMessageResult(id, customResult);\n } else {\n // 所有消息内容块都失败才算消息体失败\n const allContentFailed = this.messageStore.messages.every((content) => content.status === 'error');\n // eslint-disable-next-line no-nested-ternary\n this.setMessageStatus(id, isAborted ? 'stop' : allContentFailed ? 'error' : 'complete');\n }\n }\n\n /**\n * 处理流式请求\n * 根据协议类型选择不同的处理策略\n */\n private async handleStreamRequest(params: ChatRequestParams) {\n const id = params.messageID;\n const isAGUI = this.config.protocol === 'agui';\n\n if (id) {\n this.setMessageStatus(id, 'streaming');\n }\n\n // 根据协议类型选择处理策略\n if (isAGUI && this.aguiAdapter) {\n await this.handleAGUIStreamRequest(params, id);\n } else {\n await this.handleDefaultStreamRequest(params, id);\n }\n }\n\n /**\n * 处理AGUI协议的流式请求\n */\n private async handleAGUIStreamRequest(params: ChatRequestParams, messageId?: string) {\n await this.llmService.handleStreamRequest(params, {\n ...this.config,\n onMessage: (chunk: SSEChunkData) => {\n if (this.stopReceive || !messageId) return null;\n\n let result;\n\n // SSE数据 → AGUIEventMapper.mapEvent → 用户自定义onMessage(解析后数据 + 原始chunk)\n // 首先使用AGUI适配器进行通用协议解析\n if (this.aguiAdapter) {\n result = this.aguiAdapter.handleAGUIEvent(chunk, {\n onRunStart: (event) => this.config.onStart?.(JSON.stringify(event)),\n onRunComplete: (isAborted, params, event) => this.handleComplete(messageId, isAborted, params, event),\n onRunError: (error) => this.handleError(messageId, error),\n });\n }\n\n // 然后调用用户自定义的onMessage,传入解析后的结果和原始数据\n if (this.config.onMessage) {\n const userResult = this.config.onMessage(chunk, this.messageStore.getMessageByID(messageId), result);\n // 如果用户返回了自定义结果,使用用户的结果\n if (userResult) {\n result = userResult;\n }\n }\n // 处理消息结果\n this.processMessageResult(messageId, result);\n return result;\n },\n onError: (error) => {\n if (messageId) this.handleError(messageId, error);\n },\n onComplete: (isAborted) => {\n // AGUI的完成事件由AGUIAdapter内部处理,这里只处理中断情况\n if (isAborted && messageId) {\n this.handleComplete(messageId, isAborted, params);\n }\n },\n });\n }\n\n /**\n * 处理默认协议的流式请求\n */\n private async handleDefaultStreamRequest(params: ChatRequestParams, messageId?: string) {\n await this.llmService.handleStreamRequest(params, {\n ...this.config,\n onStart: (chunk) => {\n this.config.onStart?.(chunk);\n },\n onMessage: (chunk: SSEChunkData) => {\n if (this.stopReceive || !messageId) return null;\n\n let result = null;\n\n // 使用默认的消息处理\n if (this.config.onMessage) {\n result = this.config.onMessage(chunk, this.messageStore.getMessageByID(messageId));\n }\n\n // 处理消息结果\n this.processMessageResult(messageId, result);\n return result;\n },\n onError: (error) => {\n if (messageId) this.handleError(messageId, error);\n },\n onComplete: (isAborted) => {\n if (messageId) {\n this.handleComplete(messageId, isAborted, params);\n }\n },\n });\n }\n\n /**\n * 统一处理消息结果\n * 支持单个内容块、多个内容块和增量更新\n */\n private processMessageResult(messageId: string, result: AIMessageContent | AIMessageContent[] | null) {\n if (!result) return;\n\n // 处理工具调用 - 仅在AGUI协议下处理\n // if (this.aguiAdapter) {\n // const toolCalls = this.aguiAdapter.processToolCalls(result);\n // if (toolCalls.length > 0) {\n // this.messageStore.setMessageToolCalls(messageId, toolCalls);\n // }\n // }\n\n if (Array.isArray(result)) {\n // 处理多个内容块\n this.messageStore.updateMultipleContents(messageId, result);\n } else {\n // 处理单个内容块\n this.processContentUpdate(messageId, result);\n }\n }\n\n private convertMessages(messages?: ChatMessagesData[]) {\n if (!messages) return { messageIds: [], messages: [] };\n\n return {\n messageIds: messages.map((msg) => msg.id),\n messages,\n };\n }\n\n private setMessageStatus(messageId: string, status: ChatMessagesData['status']) {\n this.messageStore.setMessageStatus(messageId, status);\n }\n\n // 处理内容更新逻辑\n private processContentUpdate(messageId: string, rawChunk: AIContentChunkUpdate) {\n const message = this.messageStore.messages.find((m) => m.id === messageId);\n if (!message || !isAIMessage(message) || !message.content) return;\n\n let targetIndex: number;\n // 作为新的内容块追加\n if (rawChunk?.strategy === 'append') {\n targetIndex = -1;\n } else {\n // merge 策略:按 type 查找最后一个匹配的类型\n // 通过 type (如 toolcall-${toolCallName}) 来定位要更新的内容块\n targetIndex = message.content.findIndex((content: AIMessageContent) => content.type === rawChunk.type);\n if (targetIndex !== -1) {\n // 找到最后一个匹配的类型(从后往前查找)\n for (let i = message.content.length - 1; i >= 0; i--) {\n if (message.content[i].type === rawChunk.type) {\n targetIndex = i;\n break;\n }\n }\n }\n }\n const processed = this.messageProcessor.processContentUpdate(\n targetIndex !== -1 ? message.content[targetIndex] : undefined,\n rawChunk,\n );\n\n this.messageStore.appendContent(messageId, processed, targetIndex);\n }\n}\n\nexport * from './utils';\nexport * from './adapters/agui';\nexport type * from './type';\n"],"names":["ChatEngine","_classCallCheck","_defineProperty","messageProcessor","MessageProcessor","messageStore","MessageStore","_createClass","key","get","messages","_this$messages$at","at","status","value","destroy","abortChat","clearHistory","aguiAdapter","init","configSetter","initialMessages","initialize","convertMessages","config","llmService","LLMService","protocol","AGUIAdapter","_sendUserMessage","_asyncToGenerator","_regeneratorRuntime","mark","_callee","requestParams","sendRequest","prompt","attachments","customParams","hasValidPrompt","hasValidAttachments","userMessage","aiMessage","params","_args","arguments","wrap","_context","prev","next","length","undefined","_objectWithoutProperties","_excluded","trim","Array","isArray","console","warn","abrupt","createUserMessage","createAssistantMessage","createMultiMessages","_objectSpread","messageID","id","stop","sendUserMessage","_x","apply","_sendSystemMessage","_callee2","msg","_context2","createMessage","role","content","type","data","sendSystemMessage","_callee3","options","_options$params","_options$sendRequest","newAIMessage","_args3","_context3","sendAIMessage","_sendAIMessage","_abortChat","_callee4","_this$config","_this$messageStore$la","_context4","stopReceive","onAbort","closeConnect","stream","lastAIMessage","removeMessage","error","registerMergeStrategy","handler","registerHandler","setMessages","mode","clearMessages","_regenerateAIMessage","_callee5","_this$lastRequestPara","_this$lastRequestPara2","keepVersion","_args5","_context5","createMessageBranch","lastRequestParams","regenerateAIMessage","_sendRequest","_callee6","_t","_context6","handleStreamRequest","handleBatchRequest","setMessageStatus","getToolcallByName","name","_this$aguiAdapter","_handleBatchRequest","_callee7","result","_context7","processMessageResult","handleError","_this$config$onError","_this$config2","onError","call","handleComplete","isAborted","chunk","_this$config$onComple","_this$config3","customResult","onComplete","allContentFailed","every","_handleStreamRequest","_callee8","isAGUI","_context8","handleAGUIStreamRequest","handleDefaultStreamRequest","_callee9","messageId","_this","_context9","onMessage","handleAGUIEvent","onRunStart","event","_this$config$onStart","_this$config4","onStart","JSON","stringify","onRunComplete","onRunError","userResult","getMessageByID","_x6","_x7","_handleAGUIStreamRequest","_handleDefaultStreamRequest","_callee0","_this2","_context0","_this2$config$onStart","_this2$config","_x8","_x9","updateMultipleContents","processContentUpdate","messageIds","map","rawChunk","message","find","m","isAIMessage","targetIndex","strategy","findIndex","i","processed","appendContent"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../pro-components/chat/chat-engine/core/index.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable class-methods-use-this */\nimport { AGUIAdapter } from './adapters/agui';\nimport { MessageStore } from './store/message';\nimport type { ChatEventBusOptions, IChatEventBus } from './event-bus';\nimport { ChatEngineEventType, ChatEventBus } from './event-bus';\nimport MessageProcessor from './processor';\nimport { LLMService } from './server';\nimport type {\n AIContentChunkUpdate,\n AIMessageContent,\n ChatMessagesData,\n ChatMessageSetterMode,\n ChatRequestParams,\n ChatServiceConfig,\n ChatServiceConfigSetter,\n ChatStatus,\n IChatEngine,\n SSEChunkData,\n SystemMessage,\n ToolCall,\n} from './type';\nimport { isAIMessage } from './utils';\n\nexport default class ChatEngine implements IChatEngine {\n public messageStore: MessageStore;\n\n /**\n * 事件总线实例\n * @description 用于发布/订阅引擎事件,支持无 UI 场景下的事件分发\n */\n public readonly eventBus: IChatEventBus;\n\n private messageProcessor: MessageProcessor;\n\n private llmService!: LLMService;\n\n private config!: ChatServiceConfig;\n\n private lastRequestParams: ChatRequestParams | undefined;\n\n private stopReceive = false;\n\n private aguiAdapter: AGUIAdapter | null = null;\n\n constructor(eventBusOptions?: ChatEventBusOptions) {\n this.messageProcessor = new MessageProcessor();\n this.messageStore = new MessageStore();\n this.eventBus = new ChatEventBus(eventBusOptions);\n }\n\n /**\n * 获取当前所有消息\n * @returns 消息数组\n * @description 返回消息存储中的所有消息\n */\n get messages(): ChatMessagesData[] {\n return this.messageStore.messages;\n }\n\n /**\n * 获取当前聊天状态\n * @returns 聊天状态:'idle'、'pending'、'streaming'、'complete'、'stop'或'error'\n * @description 返回最后一条消息的状态,如果没有消息则返回'idle'\n */\n get status(): ChatStatus {\n return this.messages.at(-1)?.status || 'idle';\n }\n\n /**\n * 销毁聊天引擎实例\n * @description 中止请求,清理消息存储和适配器,释放资源\n */\n destroy(): void {\n // 发布销毁事件\n this.eventBus.emit(ChatEngineEventType.ENGINE_DESTROY, {\n timestamp: Date.now(),\n });\n\n // 中止当前请求\n this.abortChat();\n\n // 清理消息存储\n this.messageStore.clearHistory();\n this.messageStore.destroy();\n\n // 清理适配器\n this.aguiAdapter = null;\n\n // 销毁事件总线\n this.eventBus.destroy();\n }\n\n /**\n * 初始化聊天引擎\n * @param configSetter 聊天服务配置或配置生成函数\n * @param initialMessages 初始消息列表,用于恢复历史对话\n * @description 设置初始消息、配置服务参数,并根据协议类型初始化适配器\n */\n public init(configSetter: ChatServiceConfigSetter, initialMessages?: ChatMessagesData[]) {\n this.messageStore.initialize(this.convertMessages(initialMessages));\n this.config = typeof configSetter === 'function' ? configSetter() : configSetter || {};\n this.llmService = new LLMService();\n\n // 初始化AGUI适配器\n if (this.config.protocol === 'agui') {\n this.aguiAdapter = new AGUIAdapter();\n }\n\n // 发布初始化事件\n this.eventBus.emit(ChatEngineEventType.ENGINE_INIT, {\n timestamp: Date.now(),\n });\n }\n\n /**\n * 发送用户消息并获取AI回复\n * @param requestParams 请求参数,包含用户输入的文本和附件\n * @param sendRequest 是否立即发送\n * @description 创建用户消息和AI消息,并发送请求获取AI回复\n */\n public async sendUserMessage(requestParams: ChatRequestParams, sendRequest = true) {\n const { prompt, attachments, ...customParams } = requestParams;\n\n // 检查条件:prompt和attachments至少传入一个,且如果设置了就不能为空\n const hasValidPrompt = prompt && prompt.trim() !== '';\n const hasValidAttachments = Array.isArray(attachments) && attachments.length > 0;\n\n // 如果两者都没有有效值,则直接返回\n if (!hasValidPrompt && !hasValidAttachments) {\n console.warn('[ChatEngine] sendUserMessage: 必须提供有效的prompt或attachments');\n return;\n }\n\n const userMessage = this.messageProcessor.createUserMessage(prompt, attachments);\n const aiMessage = this.messageProcessor.createAssistantMessage();\n this.messageStore.createMultiMessages([userMessage, aiMessage]);\n\n // 发布消息创建事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {\n message: userMessage,\n messages: this.messages,\n });\n\n if (sendRequest) {\n const params = {\n ...requestParams,\n messageID: aiMessage.id,\n ...customParams, // 透传用户自定义参数\n };\n this.sendRequest(params);\n }\n }\n\n /**\n * 发送系统消息\n * @param msg 系统消息文本内容\n * @description 创建并存储一条系统消息,通常用于设置上下文或控制对话流程\n */\n public async sendSystemMessage(msg: string) {\n const systemMessage = {\n role: 'system',\n content: [\n {\n type: 'text',\n data: msg,\n },\n ],\n } as SystemMessage;\n this.messageStore.createMessage(systemMessage);\n\n // 发布消息创建事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {\n message: systemMessage,\n messages: this.messages,\n });\n }\n\n /**\n * 手动发送AI消息\n * @param options 包含请求参数params、发送消息内容content和是否发送请求的标志sendRequest\n * @description 创建并存储一条AI消息,可选择是否同时发送请求\n */\n public async sendAIMessage(\n options: { params?: ChatRequestParams; content?: AIMessageContent[]; sendRequest?: boolean } = {},\n ) {\n const { params = {}, content, sendRequest = true } = options;\n const newAIMessage = this.messageProcessor.createAssistantMessage({\n content,\n status: sendRequest ? 'pending' : 'complete',\n });\n this.messageStore.createMessage(newAIMessage);\n\n // 发布消息创建事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {\n message: newAIMessage,\n messages: this.messages,\n });\n\n if (sendRequest) {\n params.messageID = newAIMessage.id;\n await this.sendRequest(params);\n }\n }\n\n /**\n * 中止当前进行中的聊天请求\n * @description 停止接收流式响应,关闭连接,并调用配置的onAbort回调\n */\n public async abortChat() {\n this.stopReceive = true;\n\n if (this.config?.onAbort) {\n await this.config.onAbort();\n }\n\n try {\n this.llmService.closeConnect();\n if (!this.config.stream) {\n // 只有在批量模式下才删除最后一条AI消息\n if (this.messageStore.lastAIMessage?.id) {\n const messageId = this.messageStore.lastAIMessage.id;\n this.messageStore.removeMessage(messageId);\n\n // 发布消息删除事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_DELETE, {\n messageId,\n messages: this.messages,\n });\n }\n }\n } catch (error) {\n console.warn('Error during service cleanup:', error);\n }\n }\n\n /**\n * 注册内容块合并策略\n * @param type 内容类型,如'text'、'markdown'等\n * @param handler 合并处理函数,接收新块和现有块,返回合并后的内容块\n * @description 用于自定义不同类型内容的增量更新逻辑\n */\n public registerMergeStrategy<T extends AIMessageContent>(\n type: T['type'], // 使用类型中定义的type字段作为参数类型\n handler: (chunk: T, existing?: T) => T,\n ) {\n this.messageProcessor.registerHandler(type, handler);\n }\n\n /**\n * 设置消息列表\n * @param messages 要设置的消息数组\n * @param mode 设置模式:'replace'(替换)、'prepend'(前置)、'append'(追加),默认为'replace'\n * @description 用于批量更新消息,如加载历史消息或重置对话\n */\n public setMessages(messages: ChatMessagesData[], mode: ChatMessageSetterMode = 'replace') {\n this.messageStore.setMessages(messages, mode);\n }\n\n /**\n * 清空所有消息\n * @description 清除消息存储中的所有历史记录\n */\n public clearMessages(): void {\n this.messageStore.clearHistory();\n\n // 发布消息清空事件\n this.eventBus.emit(ChatEngineEventType.MESSAGE_CLEAR, {\n timestamp: Date.now(),\n });\n }\n\n /**\n * 重新生成AI回复\n * @param keepVersion 是否保留历史版本,默认为false\n * @description\n * - 当keepVersion=false时:删除最后一条AI消息,创建新消息并重新请求\n * - 当keepVersion=true时:保留旧消息,创建分支消息并重新请求\n */\n public async regenerateAIMessage(keepVersion = false) {\n const { lastAIMessage } = this.messageStore;\n if (!lastAIMessage) return;\n\n if (!keepVersion) {\n // 删除最后一条AI消息\n this.messageStore.removeMessage(lastAIMessage.id);\n } else {\n // todo: 保留历史版本,创建新分支\n this.messageStore.createMessageBranch(lastAIMessage.id);\n }\n\n // 创建新的AI消息\n const newAIMessage = this.messageProcessor.createAssistantMessage();\n this.messageStore.createMessage(newAIMessage);\n\n // 重新发起请求\n const params = {\n ...(this.lastRequestParams || {}),\n messageID: newAIMessage.id,\n prompt: this.lastRequestParams?.prompt ?? '',\n };\n\n await this.sendRequest(params);\n }\n\n /**\n * 发送请求获取AI回复\n * @param params 请求参数\n * @description 根据配置选择流式或批量请求模式,处理响应并更新消息状态\n */\n public async sendRequest(params: ChatRequestParams) {\n const { messageID: id } = params;\n\n // 发布请求开始事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_START, {\n params,\n messageId: id,\n });\n\n try {\n if (this.config.stream) {\n // 处理sse流式响应模式\n this.stopReceive = false;\n await this.handleStreamRequest(params);\n } else {\n // 处理批量响应模式\n await this.handleBatchRequest(params);\n }\n this.lastRequestParams = params;\n } catch (error) {\n this.setMessageStatus(id!, 'error');\n\n // 发布请求错误事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {\n messageId: id!,\n error,\n params,\n });\n\n throw error;\n }\n }\n\n /**\n * 根据名称获取工具调用\n * @param name 工具调用名称\n * @returns 匹配的工具调用对象,如果未找到则返回undefined\n * @description 用于获取特定名称的工具调用信息,仅在AGUI协议下可用\n */\n public getToolcallByName(name: string): ToolCall | undefined {\n return this.aguiAdapter?.getToolcallByName(name);\n }\n\n private async handleBatchRequest(params: ChatRequestParams) {\n const id = params.messageID;\n if (!id) return;\n this.setMessageStatus(id, 'pending');\n const result = await this.llmService.handleBatchRequest(params, this.config);\n if (result) {\n this.processMessageResult(id, result);\n this.setMessageStatus(id, 'complete');\n\n // 发布请求完成事件\n const message = this.messageStore.getMessageByID(id);\n if (message) {\n this.eventBus.emit(ChatEngineEventType.REQUEST_COMPLETE, {\n messageId: id,\n params,\n message,\n });\n }\n } else {\n this.setMessageStatus(id, 'error');\n\n // 发布请求错误事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {\n messageId: id,\n error: new Error('Batch request returned empty result'),\n params,\n });\n }\n }\n\n private handleError(id: string, error: unknown) {\n this.setMessageStatus(id, 'error');\n this.config.onError?.(error as Error);\n\n // 发布请求错误事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {\n messageId: id,\n error,\n });\n }\n\n private handleComplete(id: string, isAborted: boolean, params: ChatRequestParams, chunk?: unknown) {\n // 先调用用户自定义的 onComplete 回调,让业务层决定如何处理\n const customResult = this.config.onComplete?.(isAborted, params, chunk);\n // 如果用户返回了自定义内容,处理这些内容\n if (Array.isArray(customResult) || (customResult && 'status' in customResult)) {\n this.processMessageResult(id, customResult);\n } else {\n // 所有消息内容块检查,只要有一个失败,消息的status就是失败\n const allContentFailed = this.messageStore.messages.find((content) => content.status === 'error');\n // eslint-disable-next-line no-nested-ternary\n this.setMessageStatus(id, isAborted ? 'stop' : allContentFailed ? 'error' : 'complete');\n }\n\n // 发布请求完成/中止事件\n const message = this.messageStore.getMessageByID(id);\n if (message) {\n if (isAborted) {\n this.eventBus.emit(ChatEngineEventType.REQUEST_ABORT, {\n messageId: id,\n params,\n });\n } else {\n this.eventBus.emit(ChatEngineEventType.REQUEST_COMPLETE, {\n messageId: id,\n params,\n message,\n });\n }\n }\n }\n\n /**\n * 处理流式请求\n * 根据协议类型选择不同的处理策略\n * SSE 原始数据 → isValidChunk验证 → onMessage解析 → processMessageResult\n */\n private async handleStreamRequest(params: ChatRequestParams) {\n const id = params.messageID;\n const isAGUI = this.config.protocol === 'agui';\n\n if (id) {\n this.setMessageStatus(id, 'streaming');\n }\n\n // 根据协议类型选择处理策略\n if (isAGUI && this.aguiAdapter) {\n await this.handleAGUIStreamRequest(params, id);\n } else {\n await this.handleDefaultStreamRequest(params, id);\n }\n }\n\n /**\n * 处理AGUI协议的流式请求\n */\n private async handleAGUIStreamRequest(params: ChatRequestParams, messageId?: string) {\n await this.llmService.handleStreamRequest(params, {\n ...this.config,\n onMessage: (chunk: SSEChunkData) => {\n if (this.stopReceive || !messageId) return null;\n\n let result: AIMessageContent | AIMessageContent[] | null = null;\n\n // SSE数据 → AGUIEventMapper.mapEvent → 用户自定义onMessage(解析后数据 + 原始chunk)\n // 首先使用AGUI适配器进行通用协议解析\n if (this.aguiAdapter) {\n result = this.aguiAdapter.handleAGUIEvent(chunk, {\n onRunStart: (event) => {\n // 重置适配器状态,确保新一轮对话从干净状态开始\n this.aguiAdapter?.reset();\n this.config.onStart?.(JSON.stringify(event));\n // 发布 AGUI 运行开始事件\n this.eventBus.emit(ChatEngineEventType.AGUI_RUN_START, {\n runId: event.runId || '',\n threadId: event.threadId,\n timestamp: Date.now(),\n });\n },\n onRunComplete: (isAborted, requestParams, event) => {\n this.handleComplete(messageId, isAborted, requestParams, event);\n // 发布 AGUI 运行完成事件\n if (!isAborted) {\n this.eventBus.emit(ChatEngineEventType.AGUI_RUN_COMPLETE, {\n runId: event?.runId || '',\n threadId: event?.threadId,\n timestamp: Date.now(),\n });\n }\n },\n onRunError: (error) => {\n this.handleError(messageId, error);\n // 发布 AGUI 运行错误事件\n this.eventBus.emit(ChatEngineEventType.AGUI_RUN_ERROR, {\n error,\n });\n },\n });\n }\n\n // 然后调用用户自定义的onMessage,传入解析后的结果和原始数据\n if (this.config.onMessage) {\n const userResult = this.config.onMessage(chunk, this.messageStore.getMessageByID(messageId), result);\n // 如果用户返回了自定义结果,使用用户的结果\n if (userResult) {\n result = userResult;\n }\n }\n\n // 发布流数据事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {\n messageId,\n chunk,\n content: result,\n });\n\n // 处理消息结果\n this.processMessageResult(messageId, result);\n return result;\n },\n onError: (error) => {\n if (messageId) this.handleError(messageId, error);\n },\n onComplete: (isAborted) => {\n // AGUI的完成事件由AGUIAdapter内部处理,这里只处理中断情况\n if (isAborted && messageId) {\n this.handleComplete(messageId, isAborted, params);\n }\n },\n });\n }\n\n /**\n * 处理默认协议的流式请求\n */\n private async handleDefaultStreamRequest(params: ChatRequestParams, messageId?: string) {\n await this.llmService.handleStreamRequest(params, {\n ...this.config,\n onStart: (chunk) => {\n this.config.onStart?.(chunk);\n },\n onMessage: (chunk: SSEChunkData) => {\n if (this.stopReceive || !messageId) return null;\n\n let result = null;\n\n // 使用默认的消息处理\n if (this.config.onMessage) {\n result = this.config.onMessage(chunk, this.messageStore.getMessageByID(messageId));\n }\n\n // 发布流数据事件\n this.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {\n messageId,\n chunk,\n content: result,\n });\n\n // 处理消息结果\n this.processMessageResult(messageId, result);\n return result;\n },\n onError: (error) => {\n if (messageId) this.handleError(messageId, error);\n },\n onComplete: (isAborted) => {\n if (messageId) {\n this.handleComplete(messageId, isAborted, params);\n }\n },\n });\n }\n\n /**\n * 统一处理消息结果\n * 支持单个内容块、多个内容块和增量更新\n */\n private processMessageResult(messageId: string, result: AIMessageContent | AIMessageContent[] | null) {\n if (!result) return;\n\n // 根据原始类型选择更新方式\n Array.isArray(result)\n ? this.messageStore.updateMultipleContents(messageId, result)\n : this.processContentUpdate(messageId, result);\n\n // 发布消息更新事件\n const message = this.messageStore.getMessageByID(messageId);\n if (message) {\n this.eventBus.emit(ChatEngineEventType.MESSAGE_UPDATE, {\n messageId,\n content: result,\n message,\n });\n\n // AG-UI 协议:发布细粒度事件\n if (this.aguiAdapter) {\n this.emitAGUIDetailEvents(messageId, result);\n }\n }\n }\n\n /**\n * 发布 AG-UI 细粒度事件\n * 根据内容类型分发到对应的事件通道\n * todo: 这里的类型 any问题\n */\n private emitAGUIDetailEvents(messageId: string, result: AIMessageContent | AIMessageContent[]) {\n const contents = Array.isArray(result) ? result : [result];\n for (const content of contents) {\n // Activity 事件\n if ((content as any).data.activityType) {\n this.eventBus.emit(ChatEngineEventType.AGUI_ACTIVITY, {\n activityType: (content as any).data.activityType,\n messageId,\n content: (content as any)?.data?.content,\n });\n }\n\n // ToolCall 事件\n if ((content as any)?.data?.eventType?.startsWith('TOOL_CALL')) {\n this.eventBus.emit(ChatEngineEventType.AGUI_TOOLCALL, {\n toolCall: (content as any).data,\n eventType: (content as any).data.eventType,\n });\n }\n }\n }\n\n private convertMessages(messages?: ChatMessagesData[]) {\n if (!messages) return { messageIds: [], messages: [] };\n\n return {\n messageIds: messages.map((msg) => msg.id),\n messages,\n };\n }\n\n private setMessageStatus(messageId: string, status: ChatMessagesData['status']) {\n const previousStatus = this.messageStore.getMessageByID(messageId)?.status;\n this.messageStore.setMessageStatus(messageId, status);\n\n // 发布消息状态变化事件\n if (status) {\n this.eventBus.emit(ChatEngineEventType.MESSAGE_STATUS_CHANGE, {\n messageId,\n status,\n previousStatus,\n });\n }\n }\n\n // 处理内容更新逻辑\n private processContentUpdate(messageId: string, rawChunk: AIContentChunkUpdate) {\n const message = this.messageStore.messages.find((m) => m.id === messageId);\n if (!message || !isAIMessage(message) || !message.content) return;\n\n let targetIndex: number;\n // 作为新的内容块追加\n if ((rawChunk as any)?.strategy === 'append') {\n targetIndex = -1;\n } else {\n // merge 策略:按 type 查找最后一个匹配的类型\n // 通过 type (如 toolcall-${toolCallName}) 来定位要更新的内容块\n targetIndex = message.content.findIndex((content: AIMessageContent) => content.type === rawChunk.type);\n if (targetIndex !== -1) {\n // 找到最后一个匹配的类型(从后往前查找)\n for (let i = message.content.length - 1; i >= 0; i--) {\n if (message.content[i].type === rawChunk.type) {\n targetIndex = i;\n break;\n }\n }\n }\n }\n const processed = this.messageProcessor.processContentUpdate(\n targetIndex !== -1 ? message.content[targetIndex] : undefined,\n rawChunk,\n );\n\n this.messageStore.appendContent(messageId, processed, targetIndex);\n }\n}\n\nexport * from './utils';\nexport * from './adapters';\nexport * from './event-bus';\nexport * from './adapters';\nexport type * from './type';\n"],"names":["ChatEngine","eventBusOptions","_classCallCheck","_defineProperty","messageProcessor","MessageProcessor","messageStore","MessageStore","eventBus","ChatEventBus","_createClass","key","get","messages","_this$messages$at","at","status","value","destroy","emit","ChatEngineEventType","ENGINE_DESTROY","timestamp","Date","now","abortChat","clearHistory","aguiAdapter","init","configSetter","initialMessages","initialize","convertMessages","config","llmService","LLMService","protocol","AGUIAdapter","ENGINE_INIT","_sendUserMessage","_asyncToGenerator","_regeneratorRuntime","mark","_callee","requestParams","sendRequest","prompt","attachments","customParams","hasValidPrompt","hasValidAttachments","userMessage","aiMessage","params","_args","arguments","wrap","_context","prev","next","length","undefined","_objectWithoutProperties","_excluded","trim","Array","isArray","console","warn","abrupt","createUserMessage","createAssistantMessage","createMultiMessages","MESSAGE_CREATE","message","_objectSpread","messageID","id","stop","sendUserMessage","_x","apply","_sendSystemMessage","_callee2","msg","systemMessage","_context2","role","content","type","data","createMessage","sendSystemMessage","_callee3","options","_options$params","_options$sendRequest","newAIMessage","_args3","_context3","sendAIMessage","_sendAIMessage","_abortChat","_callee4","_this$config","_this$messageStore$la","messageId","_context4","stopReceive","onAbort","closeConnect","stream","lastAIMessage","removeMessage","MESSAGE_DELETE","error","registerMergeStrategy","handler","registerHandler","setMessages","mode","clearMessages","MESSAGE_CLEAR","_regenerateAIMessage","_callee5","_this$lastRequestPara","_this$lastRequestPara2","keepVersion","_args5","_context5","createMessageBranch","lastRequestParams","regenerateAIMessage","_sendRequest","_callee6","_t","_context6","REQUEST_START","handleStreamRequest","handleBatchRequest","setMessageStatus","REQUEST_ERROR","getToolcallByName","name","_this$aguiAdapter","_handleBatchRequest","_callee7","result","_context7","processMessageResult","getMessageByID","REQUEST_COMPLETE","Error","handleError","_this$config$onError","_this$config2","onError","call","handleComplete","isAborted","chunk","_this$config$onComple","_this$config3","customResult","onComplete","allContentFailed","find","REQUEST_ABORT","_handleStreamRequest","_callee8","isAGUI","_context8","handleAGUIStreamRequest","handleDefaultStreamRequest","_callee9","_this","_context9","onMessage","handleAGUIEvent","onRunStart","event","_this$aguiAdapter2","_this$config$onStart","_this$config4","reset","onStart","JSON","stringify","AGUI_RUN_START","runId","threadId","onRunComplete","AGUI_RUN_COMPLETE","onRunError","AGUI_RUN_ERROR","userResult","REQUEST_STREAM","_x6","_x7","_handleAGUIStreamRequest","_handleDefaultStreamRequest","_callee0","_this2","_context0","_this2$config$onStart","_this2$config","_x8","_x9","updateMultipleContents","processContentUpdate","MESSAGE_UPDATE","emitAGUIDetailEvents","contents","_iterator","_createForOfIteratorHelper","_step","s","n","done","_content$data2","activityType","_content$data","AGUI_ACTIVITY","eventType","startsWith","AGUI_TOOLCALL","toolCall","err","e","f","messageIds","map","_this$messageStore$ge","previousStatus","MESSAGE_STATUS_CHANGE","rawChunk","m","isAIMessage","targetIndex","strategy","findIndex","i","processed","appendContent"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.6
2
+ * tdesign v1.1.0-alpha.11
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */