@tdesign-react/chat 1.0.2-alpha.9 → 1.1.0-alpha.1

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 (303) hide show
  1. package/es/_chunks/dep-f2051ebd.js +839 -0
  2. package/es/_chunks/dep-f2051ebd.js.map +1 -0
  3. package/es/_util/reactify.js +1 -1
  4. package/es/_util/useDynamicStyle.js +1 -1
  5. package/es/attachments/index.js +1 -1
  6. package/es/chat-actionbar/index.js +1 -1
  7. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
  8. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
  9. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
  10. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
  11. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
  12. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
  13. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
  14. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
  15. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
  16. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
  17. package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
  18. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
  19. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
  20. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
  21. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
  22. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
  23. package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
  24. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
  25. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
  26. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
  27. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
  28. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
  29. package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
  30. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
  31. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
  32. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
  33. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
  34. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
  35. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
  36. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
  37. package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
  38. package/es/chat-engine/components/a2ui/containers/index.js +30 -0
  39. package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
  40. package/es/chat-engine/components/a2ui/index.d.ts +11 -0
  41. package/es/chat-engine/components/a2ui/index.js +62 -0
  42. package/es/chat-engine/components/a2ui/index.js.map +1 -0
  43. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
  44. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
  45. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
  46. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
  47. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
  48. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
  49. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
  50. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
  51. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
  52. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
  53. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
  54. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
  55. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
  56. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
  57. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
  58. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
  59. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
  60. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
  61. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
  62. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
  63. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
  64. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
  65. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
  66. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
  67. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
  68. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
  69. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
  70. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
  71. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
  72. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
  73. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
  74. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
  75. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
  76. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
  77. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
  78. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
  79. package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
  80. package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
  81. package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
  82. package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
  83. package/es/chat-engine/components/a2ui/registry.js +74 -0
  84. package/es/chat-engine/components/a2ui/registry.js.map +1 -0
  85. package/es/chat-engine/components/activity/index.js +1 -1
  86. package/es/chat-engine/components/activity/registry.d.ts +1 -1
  87. package/es/chat-engine/components/activity/registry.js +1 -1
  88. package/es/chat-engine/components/activity/registry.js.map +1 -1
  89. package/es/chat-engine/components/activity/render.d.ts +2 -2
  90. package/es/chat-engine/components/activity/render.js +1 -1
  91. package/es/chat-engine/components/activity/render.js.map +1 -1
  92. package/es/chat-engine/components/activity/types.js +1 -1
  93. package/es/chat-engine/components/index.d.ts +1 -0
  94. package/es/chat-engine/components/index.js +57 -9
  95. package/es/chat-engine/components/index.js.map +1 -1
  96. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
  97. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
  98. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
  99. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
  100. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
  101. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
  102. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
  103. package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
  104. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
  105. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
  106. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
  107. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
  108. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
  109. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
  110. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
  111. package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
  112. package/es/chat-engine/components/json-render/adapters/index.js +11 -0
  113. package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
  114. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
  115. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
  116. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
  117. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
  118. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
  119. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
  120. package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
  121. package/es/chat-engine/components/json-render/catalog/button.js +71 -0
  122. package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
  123. package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
  124. package/es/chat-engine/components/json-render/catalog/card.js +57 -0
  125. package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
  126. package/es/chat-engine/components/json-render/catalog/index.d.ts +127 -0
  127. package/es/chat-engine/components/json-render/catalog/index.js +36 -0
  128. package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
  129. package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
  130. package/es/chat-engine/components/json-render/catalog/input.js +36 -0
  131. package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
  132. package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
  133. package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
  134. package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
  135. package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
  136. package/es/chat-engine/components/json-render/catalog/text.js +31 -0
  137. package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
  138. package/es/chat-engine/components/json-render/catalog.d.ts +549 -0
  139. package/es/chat-engine/components/json-render/catalog.js +147 -0
  140. package/es/chat-engine/components/json-render/catalog.js.map +1 -0
  141. package/es/chat-engine/components/json-render/config.d.ts +154 -0
  142. package/es/chat-engine/components/json-render/config.js +36 -0
  143. package/es/chat-engine/components/json-render/config.js.map +1 -0
  144. package/es/chat-engine/components/json-render/contexts/actions.d.ts +74 -0
  145. package/es/chat-engine/components/json-render/contexts/actions.js +290 -0
  146. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
  147. package/es/chat-engine/components/json-render/contexts/data.d.ts +45 -0
  148. package/es/chat-engine/components/json-render/contexts/data.js +104 -0
  149. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
  150. package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
  151. package/es/chat-engine/components/json-render/contexts/validation.js +151 -0
  152. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
  153. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +29 -0
  154. package/es/chat-engine/components/json-render/contexts/visibility.js +56 -0
  155. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
  156. package/es/chat-engine/components/json-render/engine.d.ts +58 -0
  157. package/es/chat-engine/components/json-render/engine.js +88 -0
  158. package/es/chat-engine/components/json-render/engine.js.map +1 -0
  159. package/es/chat-engine/components/json-render/index.d.ts +34 -0
  160. package/es/chat-engine/components/json-render/index.js +36 -0
  161. package/es/chat-engine/components/json-render/index.js.map +1 -0
  162. package/es/chat-engine/components/json-render/performance.d.ts +91 -0
  163. package/es/chat-engine/components/json-render/performance.js +135 -0
  164. package/es/chat-engine/components/json-render/performance.js.map +1 -0
  165. package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
  166. package/es/chat-engine/components/json-render/renderer.js +124 -0
  167. package/es/chat-engine/components/json-render/renderer.js.map +1 -0
  168. package/es/chat-engine/components/json-render/types.d.ts +69 -0
  169. package/es/chat-engine/components/json-render/types.js +7 -0
  170. package/es/chat-engine/components/json-render/types.js.map +1 -0
  171. package/es/chat-engine/components/provider/agent-state.js +39 -2
  172. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  173. package/es/chat-engine/components/toolcall/index.js +32 -2
  174. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  175. package/es/chat-engine/components/toolcall/registry.js +1 -1
  176. package/es/chat-engine/components/toolcall/render.d.ts +1 -1
  177. package/es/chat-engine/components/toolcall/render.js +33 -4
  178. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  179. package/es/chat-engine/components/toolcall/types.js +1 -1
  180. package/es/chat-engine/core/a2ui/index.d.ts +10 -0
  181. package/es/chat-engine/core/a2ui/index.js +24 -0
  182. package/es/chat-engine/core/a2ui/index.js.map +1 -0
  183. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  184. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
  185. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  186. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
  187. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
  188. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
  189. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
  190. package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
  191. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
  192. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
  193. package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
  194. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
  195. package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
  196. package/es/chat-engine/core/a2ui/types/index.js +9 -0
  197. package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
  198. package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
  199. package/es/chat-engine/core/a2ui/types/types.js +104 -0
  200. package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
  201. package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
  202. package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
  203. package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
  204. package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
  205. package/es/chat-engine/core/a2ui/utils/index.js +13 -0
  206. package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
  207. package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
  208. package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
  209. package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
  210. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
  211. package/es/chat-engine/core/adapters/agui/activity-manager.js +144 -0
  212. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
  213. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +42 -2
  214. package/es/chat-engine/core/adapters/agui/event-mapper.js +90 -50
  215. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
  216. package/es/chat-engine/core/adapters/agui/events.d.ts +222 -222
  217. package/es/chat-engine/core/adapters/agui/events.js +34 -34
  218. package/es/chat-engine/core/adapters/agui/events.js.map +1 -1
  219. package/es/chat-engine/core/adapters/agui/index.d.ts +22 -2
  220. package/es/chat-engine/core/adapters/agui/index.js +34 -14
  221. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  222. package/es/chat-engine/core/adapters/agui/state-manager.js +1 -1
  223. package/es/chat-engine/core/adapters/agui/types.d.ts +57 -56
  224. package/es/chat-engine/core/adapters/agui/types.js +5 -5
  225. package/es/chat-engine/core/adapters/agui/types.js.map +1 -1
  226. package/es/chat-engine/core/adapters/agui/utils.d.ts +9 -3
  227. package/es/chat-engine/core/adapters/agui/utils.js +23 -4
  228. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
  229. package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
  230. package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
  231. package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
  232. package/es/chat-engine/core/event-bus/index.d.ts +5 -0
  233. package/es/chat-engine/core/event-bus/index.js +13 -0
  234. package/es/chat-engine/core/event-bus/index.js.map +1 -0
  235. package/es/chat-engine/core/event-bus/types.d.ts +230 -0
  236. package/es/chat-engine/core/event-bus/types.js +32 -0
  237. package/es/chat-engine/core/event-bus/types.js.map +1 -0
  238. package/es/chat-engine/core/index.d.ts +16 -1
  239. package/es/chat-engine/core/index.js +174 -17
  240. package/es/chat-engine/core/index.js.map +1 -1
  241. package/es/chat-engine/core/processor/index.js +1 -1
  242. package/es/chat-engine/core/server/batch-client.js +1 -1
  243. package/es/chat-engine/core/server/connection-manager.js +1 -1
  244. package/es/chat-engine/core/server/errors.js +1 -1
  245. package/es/chat-engine/core/server/index.js +1 -1
  246. package/es/chat-engine/core/server/llm-service.js +17 -15
  247. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  248. package/es/chat-engine/core/server/sse-client.js +1 -1
  249. package/es/chat-engine/core/server/sse-parser.js +1 -1
  250. package/es/chat-engine/core/server/types.js +1 -1
  251. package/es/chat-engine/core/store/message.js +2 -2
  252. package/es/chat-engine/core/store/message.js.map +1 -1
  253. package/es/chat-engine/core/store/model.js +1 -1
  254. package/es/chat-engine/core/store/reactiveState.js +1 -1
  255. package/es/chat-engine/core/type.d.ts +18 -2
  256. package/es/chat-engine/core/type.js +1 -1
  257. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  258. package/es/chat-engine/core/utils/index.js +1 -1
  259. package/es/chat-engine/core/utils/logger.js +1 -1
  260. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
  261. package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
  262. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
  263. package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
  264. package/es/chat-engine/hooks/a2ui/index.js +19 -0
  265. package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
  266. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
  267. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
  268. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
  269. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
  270. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
  271. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
  272. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
  273. package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
  274. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
  275. package/es/chat-engine/hooks/index.js +38 -4
  276. package/es/chat-engine/hooks/index.js.map +1 -1
  277. package/es/chat-engine/hooks/useAgentActivity.d.ts +1 -2
  278. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  279. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  280. package/es/chat-engine/hooks/useAgentState.js +39 -2
  281. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  282. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  283. package/es/chat-engine/hooks/useChat.d.ts +3 -3
  284. package/es/chat-engine/hooks/useChat.js +40 -2
  285. package/es/chat-engine/hooks/useChat.js.map +1 -1
  286. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
  287. package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
  288. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
  289. package/es/chat-engine/index.d.ts +1 -3
  290. package/es/chat-engine/index.js +30 -8
  291. package/es/chat-engine/index.js.map +1 -1
  292. package/es/chat-filecard/index.js +1 -1
  293. package/es/chat-loading/index.js +1 -1
  294. package/es/chat-markdown/index.js +1 -1
  295. package/es/chat-message/index.js +1 -1
  296. package/es/chat-sender/index.js +1 -1
  297. package/es/chat-thinking/index.js +1 -1
  298. package/es/chatbot/docs/react-best-practice.d.ts +13 -0
  299. package/es/chatbot/index.js +1 -1
  300. package/es/index.js +27 -5
  301. package/es/index.js.map +1 -1
  302. package/es/style/index.js +1 -1
  303. package/package.json +6 -3
@@ -0,0 +1,32 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.15
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ var ChatEngineEventType = /* @__PURE__ */function (ChatEngineEventType2) {
8
+ ChatEngineEventType2["ENGINE_INIT"] = "engine:init";
9
+ ChatEngineEventType2["ENGINE_DESTROY"] = "engine:destroy";
10
+ ChatEngineEventType2["MESSAGE_CREATE"] = "message:create";
11
+ ChatEngineEventType2["MESSAGE_UPDATE"] = "message:update";
12
+ ChatEngineEventType2["MESSAGE_DELETE"] = "message:delete";
13
+ ChatEngineEventType2["MESSAGE_CLEAR"] = "message:clear";
14
+ ChatEngineEventType2["MESSAGE_STATUS_CHANGE"] = "message:status";
15
+ ChatEngineEventType2["MESSAGE_CONTENT_APPEND"] = "message:content:append";
16
+ ChatEngineEventType2["REQUEST_START"] = "request:start";
17
+ ChatEngineEventType2["REQUEST_STREAM"] = "request:stream";
18
+ ChatEngineEventType2["REQUEST_COMPLETE"] = "request:complete";
19
+ ChatEngineEventType2["REQUEST_ERROR"] = "request:error";
20
+ ChatEngineEventType2["REQUEST_ABORT"] = "request:abort";
21
+ ChatEngineEventType2["AGUI_RUN_START"] = "agui:run:start";
22
+ ChatEngineEventType2["AGUI_RUN_COMPLETE"] = "agui:run:complete";
23
+ ChatEngineEventType2["AGUI_RUN_ERROR"] = "agui:run:error";
24
+ ChatEngineEventType2["AGUI_STATE_UPDATE"] = "agui:state:update";
25
+ ChatEngineEventType2["AGUI_TOOLCALL"] = "agui:toolcall";
26
+ ChatEngineEventType2["AGUI_ACTIVITY"] = "agui:activity";
27
+ ChatEngineEventType2["CUSTOM"] = "custom";
28
+ return ChatEngineEventType2;
29
+ }(ChatEngineEventType || {});
30
+
31
+ export { ChatEngineEventType };
32
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../../../pro-components/chat/chat-engine/core/event-bus/types.ts"],"sourcesContent":["/**\n * ChatEngine 事件总线类型定义\n */\nimport type { AIMessageContent, ChatMessagesData, ChatRequestParams, ChatStatus, ToolCall } from '../type';\n\n/**\n * 事件类型枚举\n */\nexport enum ChatEngineEventType {\n // 生命周期事件\n ENGINE_INIT = 'engine:init',\n ENGINE_DESTROY = 'engine:destroy',\n\n // 消息事件\n MESSAGE_CREATE = 'message:create',\n MESSAGE_UPDATE = 'message:update',\n MESSAGE_DELETE = 'message:delete',\n MESSAGE_CLEAR = 'message:clear',\n MESSAGE_STATUS_CHANGE = 'message:status',\n MESSAGE_CONTENT_APPEND = 'message:content:append',\n\n // 请求事件\n REQUEST_START = 'request:start',\n REQUEST_STREAM = 'request:stream',\n REQUEST_COMPLETE = 'request:complete',\n REQUEST_ERROR = 'request:error',\n REQUEST_ABORT = 'request:abort',\n\n // AG-UI 协议事件\n AGUI_RUN_START = 'agui:run:start',\n AGUI_RUN_COMPLETE = 'agui:run:complete',\n AGUI_RUN_ERROR = 'agui:run:error',\n AGUI_STATE_UPDATE = 'agui:state:update',\n AGUI_TOOLCALL = 'agui:toolcall',\n AGUI_ACTIVITY = 'agui:activity',\n\n // 自定义事件\n CUSTOM = 'custom',\n}\n\n/**\n * 事件载荷类型映射\n */\nexport interface ChatEngineEventPayloadMap {\n // 生命周期事件\n [ChatEngineEventType.ENGINE_INIT]: {\n timestamp: number;\n };\n [ChatEngineEventType.ENGINE_DESTROY]: {\n timestamp: number;\n };\n\n // 消息事件\n [ChatEngineEventType.MESSAGE_CREATE]: {\n message: ChatMessagesData;\n messages: ChatMessagesData[];\n };\n [ChatEngineEventType.MESSAGE_UPDATE]: {\n messageId: string;\n content: AIMessageContent | AIMessageContent[];\n message: ChatMessagesData;\n };\n [ChatEngineEventType.MESSAGE_DELETE]: {\n messageId: string;\n messages: ChatMessagesData[];\n };\n [ChatEngineEventType.MESSAGE_CLEAR]: {\n timestamp: number;\n };\n [ChatEngineEventType.MESSAGE_STATUS_CHANGE]: {\n messageId: string;\n status: ChatStatus;\n previousStatus?: ChatStatus;\n };\n [ChatEngineEventType.MESSAGE_CONTENT_APPEND]: {\n messageId: string;\n content: AIMessageContent;\n contentIndex: number;\n };\n\n // 请求事件\n [ChatEngineEventType.REQUEST_START]: {\n params: ChatRequestParams;\n messageId?: string;\n };\n [ChatEngineEventType.REQUEST_STREAM]: {\n messageId: string;\n chunk: unknown;\n content?: AIMessageContent | AIMessageContent[] | null;\n };\n [ChatEngineEventType.REQUEST_COMPLETE]: {\n messageId: string;\n params: ChatRequestParams;\n message: ChatMessagesData;\n };\n [ChatEngineEventType.REQUEST_ERROR]: {\n messageId: string;\n error: Error | unknown;\n params?: ChatRequestParams;\n };\n [ChatEngineEventType.REQUEST_ABORT]: {\n messageId: string;\n params: ChatRequestParams;\n };\n\n // AG-UI 协议事件\n [ChatEngineEventType.AGUI_RUN_START]: {\n runId: string;\n threadId?: string;\n timestamp: number;\n };\n [ChatEngineEventType.AGUI_RUN_COMPLETE]: {\n runId: string;\n threadId?: string;\n timestamp: number;\n };\n [ChatEngineEventType.AGUI_RUN_ERROR]: {\n error: Error | unknown;\n runId?: string;\n };\n [ChatEngineEventType.AGUI_STATE_UPDATE]: {\n stateKey: string;\n state: unknown;\n previousState?: unknown;\n };\n [ChatEngineEventType.AGUI_TOOLCALL]: {\n toolCall: ToolCall;\n eventType: string;\n };\n [ChatEngineEventType.AGUI_ACTIVITY]: {\n activityType: string;\n messageId?: string;\n content: unknown;\n };\n\n // 自定义事件\n [ChatEngineEventType.CUSTOM]: {\n eventName: string;\n data: unknown;\n };\n}\n\n/**\n * 事件回调函数类型\n */\nexport type EventCallback<T = unknown> = (payload: T) => void;\n\n/**\n * 取消订阅函数类型\n */\nexport type UnsubscribeFn = () => void;\n\n/**\n * 事件过滤器类型\n */\nexport type EventFilter<T = unknown> = (payload: T) => boolean;\n\n/**\n * 事件总线配置\n */\nexport interface ChatEventBusOptions {\n /**\n * 是否启用调试模式\n * @default false\n */\n debug?: boolean;\n /**\n * 最大监听器数量(每个事件)\n * @default 100\n */\n maxListeners?: number;\n /**\n * 事件历史记录长度(用于调试)\n * @default 0\n */\n historySize?: number;\n}\n\n/**\n * 事件历史记录\n */\nexport interface EventHistoryItem {\n event: ChatEngineEventType | string;\n payload: unknown;\n timestamp: number;\n}\n\n/**\n * 事件总线接口\n */\nexport interface IChatEventBus {\n /**\n * 订阅事件\n * @param event 事件类型\n * @param callback 回调函数\n * @returns 取消订阅函数\n */\n on<E extends ChatEngineEventType>(event: E, callback: EventCallback<ChatEngineEventPayloadMap[E]>): UnsubscribeFn;\n\n /**\n * 一次性订阅\n * @param event 事件类型\n * @param callback 回调函数\n * @returns 取消订阅函数\n */\n once<E extends ChatEngineEventType>(event: E, callback: EventCallback<ChatEngineEventPayloadMap[E]>): UnsubscribeFn;\n\n /**\n * 取消订阅\n * @param event 事件类型\n * @param callback 可选的回调函数,不传则取消该事件所有订阅\n */\n off<E extends ChatEngineEventType>(event: E, callback?: EventCallback<ChatEngineEventPayloadMap[E]>): void;\n\n /**\n * 发布事件\n * @param event 事件类型\n * @param payload 事件载荷\n */\n emit<E extends ChatEngineEventType>(event: E, payload: ChatEngineEventPayloadMap[E]): void;\n\n /**\n * 等待事件(Promise 方式)\n * @param event 事件类型\n * @param timeout 超时时间(毫秒)\n * @returns Promise\n */\n waitFor<E extends ChatEngineEventType>(event: E, timeout?: number): Promise<ChatEngineEventPayloadMap[E]>;\n\n /**\n * 带过滤条件的等待\n * @param event 事件类型\n * @param filter 过滤函数\n * @param timeout 超时时间\n */\n waitForMatch<E extends ChatEngineEventType>(\n event: E,\n filter: EventFilter<ChatEngineEventPayloadMap[E]>,\n timeout?: number,\n ): Promise<ChatEngineEventPayloadMap[E]>;\n\n /**\n * 订阅自定义事件\n * @param eventName 自定义事件名\n * @param callback 回调函数\n */\n onCustom<T = unknown>(eventName: string, callback: EventCallback<T>): UnsubscribeFn;\n\n /**\n * 发布自定义事件\n * @param eventName 自定义事件名\n * @param data 数据\n */\n emitCustom<T = unknown>(eventName: string, data: T): void;\n\n /**\n * 获取事件历史记录\n */\n getHistory(): EventHistoryItem[];\n\n /**\n * 清理所有订阅\n */\n clear(): void;\n\n /**\n * 销毁事件总线\n */\n destroy(): void;\n}\n"],"names":["ChatEngineEventType"],"mappings":";;;;;;IAQYA,mBAAA,4BAAAA,oBAAL,EAAA;AAELA,EAAAA,qBAAA,aAAc,CAAA,GAAA,aAAA,CAAA;AACdA,EAAAA,qBAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AAGjBA,EAAAA,qBAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AACjBA,EAAAA,qBAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AACjBA,EAAAA,qBAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AACjBA,EAAAA,qBAAA,eAAgB,CAAA,GAAA,eAAA,CAAA;AAChBA,EAAAA,qBAAA,uBAAwB,CAAA,GAAA,gBAAA,CAAA;AACxBA,EAAAA,qBAAA,wBAAyB,CAAA,GAAA,wBAAA,CAAA;AAGzBA,EAAAA,qBAAA,eAAgB,CAAA,GAAA,eAAA,CAAA;AAChBA,EAAAA,qBAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AACjBA,EAAAA,qBAAA,kBAAmB,CAAA,GAAA,kBAAA,CAAA;AACnBA,EAAAA,qBAAA,eAAgB,CAAA,GAAA,eAAA,CAAA;AAChBA,EAAAA,qBAAA,eAAgB,CAAA,GAAA,eAAA,CAAA;AAGhBA,EAAAA,qBAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AACjBA,EAAAA,qBAAA,mBAAoB,CAAA,GAAA,mBAAA,CAAA;AACpBA,EAAAA,qBAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AACjBA,EAAAA,qBAAA,mBAAoB,CAAA,GAAA,mBAAA,CAAA;AACpBA,EAAAA,qBAAA,eAAgB,CAAA,GAAA,eAAA,CAAA;AAChBA,EAAAA,qBAAA,eAAgB,CAAA,GAAA,eAAA,CAAA;AAGhBA,EAAAA,qBAAA,QAAS,CAAA,GAAA,QAAA,CAAA;AA7BCA,EAAAA,OAAAA,oBAAAA,CAAAA;AAAA,CAAA,CAAAA,mBAAA,IAAA,EAAA;;;;"}
@@ -1,14 +1,20 @@
1
+ import type { ChatEventBusOptions, IChatEventBus } from './event-bus';
1
2
  import { MessageStore } from './store/message';
2
3
  import type { AIMessageContent, ChatMessagesData, ChatMessageSetterMode, ChatRequestParams, ChatServiceConfigSetter, ChatStatus, IChatEngine, ToolCall } from './type';
3
4
  export default class ChatEngine implements IChatEngine {
4
5
  messageStore: MessageStore;
6
+ /**
7
+ * 事件总线实例
8
+ * @description 用于发布/订阅引擎事件,支持无 UI 场景下的事件分发
9
+ */
10
+ readonly eventBus: IChatEventBus;
5
11
  private messageProcessor;
6
12
  private llmService;
7
13
  private config;
8
14
  private lastRequestParams;
9
15
  private stopReceive;
10
16
  private aguiAdapter;
11
- constructor();
17
+ constructor(eventBusOptions?: ChatEventBusOptions);
12
18
  /**
13
19
  * 获取当前所有消息
14
20
  * @returns 消息数组
@@ -123,10 +129,19 @@ export default class ChatEngine implements IChatEngine {
123
129
  * 支持单个内容块、多个内容块和增量更新
124
130
  */
125
131
  private processMessageResult;
132
+ /**
133
+ * 发布 AG-UI 细粒度事件
134
+ * 根据内容类型分发到对应的事件通道
135
+ * todo: 这里的类型 any问题
136
+ */
137
+ private emitAGUIDetailEvents;
126
138
  private convertMessages;
127
139
  private setMessageStatus;
128
140
  private processContentUpdate;
129
141
  }
130
142
  export * from './utils';
131
143
  export * from './adapters/agui';
144
+ export * from './event-bus';
145
+ export { stateManager } from './adapters/agui/state-manager';
146
+ export { activityManager } from './adapters/agui/activity-manager';
132
147
  export type * from './type';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.0.2-alpha.6
2
+ * tdesign v1.0.2-alpha.15
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -12,24 +12,30 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
12
12
  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
+ import './event-bus/index.js';
15
16
  import { MessageStore } from './store/message.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';
20
- import { LLMService } from './server/llm-service.js';
21
21
  export { StateManagerImpl, stateManager } from './adapters/agui/state-manager.js';
22
+ export { activityManager } from './adapters/agui/activity-manager.js';
23
+ import { ChatEventBus } from './event-bus/ChatEventBus.js';
24
+ export { ChatEventBus, createEventBus } from './event-bus/ChatEventBus.js';
25
+ import { ChatEngineEventType } from './event-bus/types.js';
26
+ export { ChatEngineEventType } from './event-bus/types.js';
27
+ import { LLMService } from './server/llm-service.js';
28
+ export { AGUIEventType, ActivityDeltaEventSchema, ActivitySnapshotEventSchema, CustomEventSchema, EventSchemas, MessagesSnapshotEventSchema, RawEventSchema, RunErrorEventSchema, RunFinishedEventSchema, RunStartedEventSchema, StateDeltaEventSchema, StateSnapshotEventSchema, StepFinishedEventSchema, StepStartedEventSchema, TextMessageChunkEventSchema, TextMessageContentEventSchema, TextMessageEndEventSchema, TextMessageStartEventSchema, ThinkingEndEventSchema, ThinkingStartEventSchema, ThinkingTextMessageContentEventSchema, ThinkingTextMessageEndEventSchema, ThinkingTextMessageStartEventSchema, ToolCallArgsEventSchema, ToolCallChunkEventSchema, ToolCallEndEventSchema, ToolCallResultEventSchema, ToolCallStartEventSchema, isActivityEvent, isStateEvent, isTextMessageEvent, isThinkingEvent, isToolCallEvent } from './adapters/agui/events.js';
22
29
  import '@babel/runtime/helpers/toConsumableArray';
23
30
  import './adapters/agui/event-mapper.js';
24
- import './adapters/agui/events.js';
31
+ import './adapters/agui/utils.js';
32
+ import '@babel/runtime/helpers/typeof';
25
33
  import 'zod';
26
34
  import './adapters/agui/types.js';
27
35
  import '@babel/runtime/helpers/possibleConstructorReturn';
28
36
  import '@babel/runtime/helpers/getPrototypeOf';
29
37
  import '@babel/runtime/helpers/inherits';
30
38
  import '@babel/runtime/helpers/wrapNativeSuper';
31
- import './adapters/agui/utils.js';
32
- import '@babel/runtime/helpers/typeof';
33
39
  import '@babel/runtime/helpers/slicedToArray';
34
40
  import '@babel/runtime/helpers/get';
35
41
  import './store/reactiveState.js';
@@ -43,15 +49,19 @@ import './server/sse-parser.js';
43
49
  import './server/batch-client.js';
44
50
 
45
51
  var _excluded = ["prompt", "attachments"];
52
+ 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; } } }; }
53
+ 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; } }
54
+ 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
55
  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
56
  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
57
  var ChatEngine = /*#__PURE__*/function () {
49
- function ChatEngine() {
58
+ function ChatEngine(eventBusOptions) {
50
59
  _classCallCheck(this, ChatEngine);
51
60
  _defineProperty(this, "stopReceive", false);
52
61
  _defineProperty(this, "aguiAdapter", null);
53
62
  this.messageProcessor = new MessageProcessor();
54
63
  this.messageStore = new MessageStore();
64
+ this.eventBus = new ChatEventBus(eventBusOptions);
55
65
  }
56
66
  return _createClass(ChatEngine, [{
57
67
  key: "messages",
@@ -67,9 +77,13 @@ var ChatEngine = /*#__PURE__*/function () {
67
77
  }, {
68
78
  key: "destroy",
69
79
  value: function destroy() {
80
+ this.eventBus.emit(ChatEngineEventType.ENGINE_DESTROY, {
81
+ timestamp: Date.now()
82
+ });
70
83
  this.abortChat();
71
84
  this.messageStore.clearHistory();
72
85
  this.aguiAdapter = null;
86
+ this.eventBus.destroy();
73
87
  }
74
88
  }, {
75
89
  key: "init",
@@ -80,6 +94,9 @@ var ChatEngine = /*#__PURE__*/function () {
80
94
  if (this.config.protocol === "agui") {
81
95
  this.aguiAdapter = new AGUIAdapter();
82
96
  }
97
+ this.eventBus.emit(ChatEngineEventType.ENGINE_INIT, {
98
+ timestamp: Date.now()
99
+ });
83
100
  }
84
101
  }, {
85
102
  key: "sendUserMessage",
@@ -112,6 +129,10 @@ var ChatEngine = /*#__PURE__*/function () {
112
129
  userMessage = this.messageProcessor.createUserMessage(prompt, attachments);
113
130
  aiMessage = this.messageProcessor.createAssistantMessage();
114
131
  this.messageStore.createMultiMessages([userMessage, aiMessage]);
132
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {
133
+ message: userMessage,
134
+ messages: this.messages
135
+ });
115
136
  if (sendRequest) {
116
137
  params = _objectSpread(_objectSpread({}, requestParams), {}, {
117
138
  messageID: aiMessage.id
@@ -133,15 +154,21 @@ var ChatEngine = /*#__PURE__*/function () {
133
154
  key: "sendSystemMessage",
134
155
  value: function () {
135
156
  var _sendSystemMessage = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(msg) {
157
+ var systemMessage;
136
158
  return _regeneratorRuntime.wrap(function (_context2) {
137
159
  while (1) switch (_context2.prev = _context2.next) {
138
160
  case 0:
139
- this.messageStore.createMessage({
161
+ systemMessage = {
140
162
  role: "system",
141
163
  content: [{
142
164
  type: "text",
143
165
  data: msg
144
166
  }]
167
+ };
168
+ this.messageStore.createMessage(systemMessage);
169
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {
170
+ message: systemMessage,
171
+ messages: this.messages
145
172
  });
146
173
  case 1:
147
174
  case "end":
@@ -176,6 +203,10 @@ var ChatEngine = /*#__PURE__*/function () {
176
203
  status: sendRequest ? "pending" : "complete"
177
204
  });
178
205
  this.messageStore.createMessage(newAIMessage);
206
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_CREATE, {
207
+ message: newAIMessage,
208
+ messages: this.messages
209
+ });
179
210
  if (!sendRequest) {
180
211
  _context3.next = 1;
181
212
  break;
@@ -199,7 +230,7 @@ var ChatEngine = /*#__PURE__*/function () {
199
230
  value: function () {
200
231
  var _abortChat = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
201
232
  var _this$config;
202
- var _this$messageStore$la;
233
+ var _this$messageStore$la, messageId;
203
234
  return _regeneratorRuntime.wrap(function (_context4) {
204
235
  while (1) switch (_context4.prev = _context4.next) {
205
236
  case 0:
@@ -215,7 +246,12 @@ var ChatEngine = /*#__PURE__*/function () {
215
246
  this.llmService.closeConnect();
216
247
  if (!this.config.stream) {
217
248
  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);
249
+ messageId = this.messageStore.lastAIMessage.id;
250
+ this.messageStore.removeMessage(messageId);
251
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_DELETE, {
252
+ messageId: messageId,
253
+ messages: this.messages
254
+ });
219
255
  }
220
256
  }
221
257
  } catch (error) {
@@ -247,6 +283,9 @@ var ChatEngine = /*#__PURE__*/function () {
247
283
  key: "clearMessages",
248
284
  value: function clearMessages() {
249
285
  this.messageStore.clearHistory();
286
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_CLEAR, {
287
+ timestamp: Date.now()
288
+ });
250
289
  }
251
290
  }, {
252
291
  key: "regenerateAIMessage",
@@ -302,6 +341,10 @@ var ChatEngine = /*#__PURE__*/function () {
302
341
  while (1) switch (_context6.prev = _context6.next) {
303
342
  case 0:
304
343
  id = params.messageID;
344
+ this.eventBus.emit(ChatEngineEventType.REQUEST_START, {
345
+ params: params,
346
+ messageId: id
347
+ });
305
348
  _context6.prev = 1;
306
349
  if (!this.config.stream) {
307
350
  _context6.next = 3;
@@ -324,6 +367,11 @@ var ChatEngine = /*#__PURE__*/function () {
324
367
  _context6.prev = 5;
325
368
  _t = _context6["catch"](1);
326
369
  this.setMessageStatus(id, "error");
370
+ this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {
371
+ messageId: id,
372
+ error: _t,
373
+ params: params
374
+ });
327
375
  throw _t;
328
376
  case 6:
329
377
  case "end":
@@ -346,7 +394,7 @@ var ChatEngine = /*#__PURE__*/function () {
346
394
  key: "handleBatchRequest",
347
395
  value: function () {
348
396
  var _handleBatchRequest = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(params) {
349
- var id, result;
397
+ var id, result, message;
350
398
  return _regeneratorRuntime.wrap(function (_context7) {
351
399
  while (1) switch (_context7.prev = _context7.next) {
352
400
  case 0:
@@ -365,8 +413,21 @@ var ChatEngine = /*#__PURE__*/function () {
365
413
  if (result) {
366
414
  this.processMessageResult(id, result);
367
415
  this.setMessageStatus(id, "complete");
416
+ message = this.messageStore.getMessageByID(id);
417
+ if (message) {
418
+ this.eventBus.emit(ChatEngineEventType.REQUEST_COMPLETE, {
419
+ messageId: id,
420
+ params: params,
421
+ message: message
422
+ });
423
+ }
368
424
  } else {
369
425
  this.setMessageStatus(id, "error");
426
+ this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {
427
+ messageId: id,
428
+ error: new Error("Batch request returned empty result"),
429
+ params: params
430
+ });
370
431
  }
371
432
  case 3:
372
433
  case "end":
@@ -385,6 +446,10 @@ var ChatEngine = /*#__PURE__*/function () {
385
446
  var _this$config$onError, _this$config2;
386
447
  this.setMessageStatus(id, "error");
387
448
  (_this$config$onError = (_this$config2 = this.config).onError) === null || _this$config$onError === void 0 || _this$config$onError.call(_this$config2, error);
449
+ this.eventBus.emit(ChatEngineEventType.REQUEST_ERROR, {
450
+ messageId: id,
451
+ error: error
452
+ });
388
453
  }
389
454
  }, {
390
455
  key: "handleComplete",
@@ -394,11 +459,26 @@ var ChatEngine = /*#__PURE__*/function () {
394
459
  if (Array.isArray(customResult) || customResult && "status" in customResult) {
395
460
  this.processMessageResult(id, customResult);
396
461
  } else {
397
- var allContentFailed = this.messageStore.messages.every(function (content) {
462
+ var allContentFailed = this.messageStore.messages.find(function (content) {
398
463
  return content.status === "error";
399
464
  });
400
465
  this.setMessageStatus(id, isAborted ? "stop" : allContentFailed ? "error" : "complete");
401
466
  }
467
+ var message = this.messageStore.getMessageByID(id);
468
+ if (message) {
469
+ if (isAborted) {
470
+ this.eventBus.emit(ChatEngineEventType.REQUEST_ABORT, {
471
+ messageId: id,
472
+ params: params
473
+ });
474
+ } else {
475
+ this.eventBus.emit(ChatEngineEventType.REQUEST_COMPLETE, {
476
+ messageId: id,
477
+ params: params,
478
+ message: message
479
+ });
480
+ }
481
+ }
402
482
  }
403
483
  }, {
404
484
  key: "handleStreamRequest",
@@ -448,18 +528,34 @@ var ChatEngine = /*#__PURE__*/function () {
448
528
  return this.llmService.handleStreamRequest(params, _objectSpread(_objectSpread({}, this.config), {}, {
449
529
  onMessage: function onMessage(chunk) {
450
530
  if (_this.stopReceive || !messageId) return null;
451
- var result;
531
+ var result = null;
452
532
  if (_this.aguiAdapter) {
453
533
  result = _this.aguiAdapter.handleAGUIEvent(chunk, {
454
534
  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));
535
+ var _this$aguiAdapter2, _this$config$onStart, _this$config4;
536
+ (_this$aguiAdapter2 = _this.aguiAdapter) === null || _this$aguiAdapter2 === void 0 || _this$aguiAdapter2.reset();
537
+ (_this$config$onStart = (_this$config4 = _this.config).onStart) === null || _this$config$onStart === void 0 || _this$config$onStart.call(_this$config4, JSON.stringify(event));
538
+ _this.eventBus.emit(ChatEngineEventType.AGUI_RUN_START, {
539
+ runId: event.runId || "",
540
+ threadId: event.threadId,
541
+ timestamp: Date.now()
542
+ });
457
543
  },
458
- onRunComplete: function onRunComplete(isAborted, params2, event) {
459
- return _this.handleComplete(messageId, isAborted, params2, event);
544
+ onRunComplete: function onRunComplete(isAborted, requestParams, event) {
545
+ _this.handleComplete(messageId, isAborted, requestParams, event);
546
+ if (!isAborted) {
547
+ _this.eventBus.emit(ChatEngineEventType.AGUI_RUN_COMPLETE, {
548
+ runId: (event === null || event === void 0 ? void 0 : event.runId) || "",
549
+ threadId: event === null || event === void 0 ? void 0 : event.threadId,
550
+ timestamp: Date.now()
551
+ });
552
+ }
460
553
  },
461
554
  onRunError: function onRunError(error) {
462
- return _this.handleError(messageId, error);
555
+ _this.handleError(messageId, error);
556
+ _this.eventBus.emit(ChatEngineEventType.AGUI_RUN_ERROR, {
557
+ error: error
558
+ });
463
559
  }
464
560
  });
465
561
  }
@@ -469,6 +565,11 @@ var ChatEngine = /*#__PURE__*/function () {
469
565
  result = userResult;
470
566
  }
471
567
  }
568
+ _this.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {
569
+ messageId: messageId,
570
+ chunk: chunk,
571
+ content: result
572
+ });
472
573
  _this.processMessageResult(messageId, result);
473
574
  return result;
474
575
  },
@@ -512,6 +613,11 @@ var ChatEngine = /*#__PURE__*/function () {
512
613
  if (_this2.config.onMessage) {
513
614
  result = _this2.config.onMessage(chunk, _this2.messageStore.getMessageByID(messageId));
514
615
  }
616
+ _this2.eventBus.emit(ChatEngineEventType.REQUEST_STREAM, {
617
+ messageId: messageId,
618
+ chunk: chunk,
619
+ content: result
620
+ });
515
621
  _this2.processMessageResult(messageId, result);
516
622
  return result;
517
623
  },
@@ -544,6 +650,48 @@ var ChatEngine = /*#__PURE__*/function () {
544
650
  } else {
545
651
  this.processContentUpdate(messageId, result);
546
652
  }
653
+ var message = this.messageStore.getMessageByID(messageId);
654
+ if (message) {
655
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_UPDATE, {
656
+ messageId: messageId,
657
+ content: result,
658
+ message: message
659
+ });
660
+ if (this.aguiAdapter) {
661
+ this.emitAGUIDetailEvents(messageId, result);
662
+ }
663
+ }
664
+ }
665
+ }, {
666
+ key: "emitAGUIDetailEvents",
667
+ value: function emitAGUIDetailEvents(messageId, result) {
668
+ var contents = Array.isArray(result) ? result : [result];
669
+ var _iterator = _createForOfIteratorHelper(contents),
670
+ _step;
671
+ try {
672
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
673
+ var _content$data2;
674
+ var content = _step.value;
675
+ if (content.data.activityType) {
676
+ var _content$data;
677
+ this.eventBus.emit(ChatEngineEventType.AGUI_ACTIVITY, {
678
+ activityType: content.data.activityType,
679
+ messageId: messageId,
680
+ content: content === null || content === void 0 || (_content$data = content.data) === null || _content$data === void 0 ? void 0 : _content$data.content
681
+ });
682
+ }
683
+ 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")) {
684
+ this.eventBus.emit(ChatEngineEventType.AGUI_TOOLCALL, {
685
+ toolCall: content.data,
686
+ eventType: content.data.eventType
687
+ });
688
+ }
689
+ }
690
+ } catch (err) {
691
+ _iterator.e(err);
692
+ } finally {
693
+ _iterator.f();
694
+ }
547
695
  }
548
696
  }, {
549
697
  key: "convertMessages",
@@ -562,7 +710,16 @@ var ChatEngine = /*#__PURE__*/function () {
562
710
  }, {
563
711
  key: "setMessageStatus",
564
712
  value: function setMessageStatus(messageId, status) {
713
+ var _this$messageStore$ge;
714
+ var previousStatus = (_this$messageStore$ge = this.messageStore.getMessageByID(messageId)) === null || _this$messageStore$ge === void 0 ? void 0 : _this$messageStore$ge.status;
565
715
  this.messageStore.setMessageStatus(messageId, status);
716
+ if (status) {
717
+ this.eventBus.emit(ChatEngineEventType.MESSAGE_STATUS_CHANGE, {
718
+ messageId: messageId,
719
+ status: status,
720
+ previousStatus: previousStatus
721
+ });
722
+ }
566
723
  }
567
724
  }, {
568
725
  key: "processContentUpdate",