@tdesign-react/chat 1.0.2 → 1.1.0-alpha.10

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 (516) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/README.md +76 -22
  3. package/es/_chunks/dep-1007ac80.js +205 -0
  4. package/es/_chunks/dep-1007ac80.js.map +1 -0
  5. package/es/_chunks/dep-16520c2b.js +1247 -0
  6. package/es/_chunks/dep-16520c2b.js.map +1 -0
  7. package/es/_chunks/dep-1743bd61.js +438 -0
  8. package/es/_chunks/dep-1743bd61.js.map +1 -0
  9. package/es/_chunks/dep-24472232.js +839 -0
  10. package/es/_chunks/dep-24472232.js.map +1 -0
  11. package/es/_chunks/dep-3864b369.js +839 -0
  12. package/es/_chunks/dep-3864b369.js.map +1 -0
  13. package/es/_chunks/dep-3e40d789.js +169 -0
  14. package/es/_chunks/dep-3e40d789.js.map +1 -0
  15. package/es/_chunks/dep-4dedfbef.js +438 -0
  16. package/es/_chunks/dep-4dedfbef.js.map +1 -0
  17. package/es/_chunks/dep-56f5e08e.js +448 -0
  18. package/es/_chunks/dep-56f5e08e.js.map +1 -0
  19. package/es/_chunks/dep-688e4aaa.js +438 -0
  20. package/es/_chunks/dep-688e4aaa.js.map +1 -0
  21. package/es/_chunks/dep-870f0d35.js +839 -0
  22. package/es/_chunks/dep-870f0d35.js.map +1 -0
  23. package/es/_chunks/dep-96eca06f.js +169 -0
  24. package/es/_chunks/dep-96eca06f.js.map +1 -0
  25. package/es/_chunks/dep-ba3bd553.js +169 -0
  26. package/es/_chunks/dep-ba3bd553.js.map +1 -0
  27. package/es/_chunks/dep-bcb234a1.js +839 -0
  28. package/es/_chunks/dep-bcb234a1.js.map +1 -0
  29. package/es/_chunks/dep-de8ac730.js +1247 -0
  30. package/es/_chunks/dep-de8ac730.js.map +1 -0
  31. package/es/_chunks/dep-e9dbff09.js +1247 -0
  32. package/es/_chunks/dep-e9dbff09.js.map +1 -0
  33. package/es/_chunks/dep-ebc4cf30.js +1247 -0
  34. package/es/_chunks/dep-ebc4cf30.js.map +1 -0
  35. package/es/_chunks/dep-f2051ebd.js +839 -0
  36. package/es/_chunks/dep-f2051ebd.js.map +1 -0
  37. package/es/_chunks/dep-f691a67e.js +438 -0
  38. package/es/_chunks/dep-f691a67e.js.map +1 -0
  39. package/es/_chunks/dep-f8016301.js +169 -0
  40. package/es/_chunks/dep-f8016301.js.map +1 -0
  41. package/es/_util/reactify.d.ts +1 -2
  42. package/es/_util/reactify.js +103 -233
  43. package/es/_util/reactify.js.map +1 -1
  44. package/es/_util/useDynamicStyle.js +1 -1
  45. package/es/attachments/index.js +4 -6
  46. package/es/attachments/index.js.map +1 -1
  47. package/es/chat-actionbar/index.d.ts +13 -4
  48. package/es/chat-actionbar/index.js +37 -9
  49. package/es/chat-actionbar/index.js.map +1 -1
  50. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
  51. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
  52. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
  53. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
  54. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
  55. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
  56. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
  57. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
  58. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
  59. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
  60. package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
  61. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
  62. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
  63. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
  64. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
  65. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
  66. package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
  67. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
  68. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
  69. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
  70. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
  71. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
  72. package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
  73. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
  74. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
  75. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
  76. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
  77. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
  78. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
  79. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
  80. package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
  81. package/es/chat-engine/components/a2ui/containers/index.js +30 -0
  82. package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
  83. package/es/chat-engine/components/a2ui/index.d.ts +11 -0
  84. package/es/chat-engine/components/a2ui/index.js +62 -0
  85. package/es/chat-engine/components/a2ui/index.js.map +1 -0
  86. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
  87. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
  88. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
  89. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
  90. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
  91. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
  92. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
  93. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
  94. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
  95. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
  96. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
  97. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
  98. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
  99. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
  100. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
  101. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
  102. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
  103. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
  104. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
  105. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
  106. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
  107. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
  108. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
  109. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
  110. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
  111. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
  112. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
  113. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
  114. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
  115. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
  116. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
  117. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
  118. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
  119. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
  120. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
  121. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
  122. package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
  123. package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
  124. package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
  125. package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
  126. package/es/chat-engine/components/a2ui/registry.js +74 -0
  127. package/es/chat-engine/components/a2ui/registry.js.map +1 -0
  128. package/es/chat-engine/components/activity/index.d.ts +1 -0
  129. package/es/chat-engine/components/activity/index.js +3 -2
  130. package/es/chat-engine/components/activity/index.js.map +1 -1
  131. package/es/chat-engine/components/activity/registry.js +1 -1
  132. package/es/chat-engine/components/activity/render.d.ts +1 -1
  133. package/es/chat-engine/components/activity/render.js +4 -3
  134. package/es/chat-engine/components/activity/render.js.map +1 -1
  135. package/es/chat-engine/components/activity/types.js +1 -1
  136. package/es/chat-engine/components/index.d.ts +1 -0
  137. package/es/chat-engine/components/index.js +62 -5
  138. package/es/chat-engine/components/index.js.map +1 -1
  139. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
  140. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
  141. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
  142. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
  143. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
  144. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
  145. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
  146. package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
  147. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
  148. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
  149. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
  150. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
  151. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
  152. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
  153. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
  154. package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
  155. package/es/chat-engine/components/json-render/adapters/index.js +11 -0
  156. package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
  157. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
  158. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
  159. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
  160. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
  161. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
  162. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
  163. package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
  164. package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
  165. package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
  166. package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
  167. package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
  168. package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
  169. package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
  170. package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
  171. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
  172. package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
  173. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
  174. package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
  175. package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
  176. package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
  177. package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
  178. package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
  179. package/es/chat-engine/components/json-render/catalog/button.js +71 -0
  180. package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
  181. package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
  182. package/es/chat-engine/components/json-render/catalog/card.js +57 -0
  183. package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
  184. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
  185. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
  186. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
  187. package/es/chat-engine/components/json-render/catalog/index.d.ts +128 -0
  188. package/es/chat-engine/components/json-render/catalog/index.js +36 -0
  189. package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
  190. package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
  191. package/es/chat-engine/components/json-render/catalog/input.js +36 -0
  192. package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
  193. package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
  194. package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
  195. package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
  196. package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
  197. package/es/chat-engine/components/json-render/catalog/text.js +31 -0
  198. package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
  199. package/es/chat-engine/components/json-render/catalog.d.ts +614 -0
  200. package/es/chat-engine/components/json-render/catalog.js +779 -0
  201. package/es/chat-engine/components/json-render/catalog.js.map +1 -0
  202. package/es/chat-engine/components/json-render/config.d.ts +154 -0
  203. package/es/chat-engine/components/json-render/config.js +36 -0
  204. package/es/chat-engine/components/json-render/config.js.map +1 -0
  205. package/es/chat-engine/components/json-render/contexts/actions.d.ts +79 -0
  206. package/es/chat-engine/components/json-render/contexts/actions.js +313 -0
  207. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
  208. package/es/chat-engine/components/json-render/contexts/data.d.ts +137 -0
  209. package/es/chat-engine/components/json-render/contexts/data.js +183 -0
  210. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
  211. package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
  212. package/es/chat-engine/components/json-render/contexts/index.js +27 -0
  213. package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
  214. package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
  215. package/es/chat-engine/components/json-render/contexts/store.js +104 -0
  216. package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
  217. package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
  218. package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
  219. package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
  220. package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
  221. package/es/chat-engine/components/json-render/contexts/validation.js +159 -0
  222. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
  223. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +39 -0
  224. package/es/chat-engine/components/json-render/contexts/visibility.js +66 -0
  225. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
  226. package/es/chat-engine/components/json-render/engine.d.ts +58 -0
  227. package/es/chat-engine/components/json-render/engine.js +88 -0
  228. package/es/chat-engine/components/json-render/engine.js.map +1 -0
  229. package/es/chat-engine/components/json-render/index.d.ts +13 -0
  230. package/es/chat-engine/components/json-render/index.js +76 -0
  231. package/es/chat-engine/components/json-render/index.js.map +1 -0
  232. package/es/chat-engine/components/json-render/performance.d.ts +91 -0
  233. package/es/chat-engine/components/json-render/performance.js +135 -0
  234. package/es/chat-engine/components/json-render/performance.js.map +1 -0
  235. package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
  236. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
  237. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
  238. package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
  239. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
  240. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
  241. package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
  242. package/es/chat-engine/components/json-render/registry/config.js +76 -0
  243. package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
  244. package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
  245. package/es/chat-engine/components/json-render/registry/index.js +76 -0
  246. package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
  247. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
  248. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
  249. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
  250. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
  251. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
  252. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
  253. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
  254. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
  255. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
  256. package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
  257. package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
  258. package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
  259. package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
  260. package/es/chat-engine/components/json-render/renderer/index.js +125 -0
  261. package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
  262. package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
  263. package/es/chat-engine/components/json-render/renderer.js +124 -0
  264. package/es/chat-engine/components/json-render/renderer.js.map +1 -0
  265. package/es/chat-engine/components/json-render/types.d.ts +87 -0
  266. package/es/chat-engine/components/json-render/types.js +7 -0
  267. package/es/chat-engine/components/json-render/types.js.map +1 -0
  268. package/es/chat-engine/components/provider/agent-state.js +48 -2
  269. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  270. package/es/chat-engine/components/toolcall/index.js +41 -2
  271. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  272. package/es/chat-engine/components/toolcall/registry.js +1 -1
  273. package/es/chat-engine/components/toolcall/render.d.ts +1 -1
  274. package/es/chat-engine/components/toolcall/render.js +41 -2
  275. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  276. package/es/chat-engine/components/toolcall/types.js +1 -1
  277. package/es/chat-engine/core/a2ui/index.d.ts +10 -0
  278. package/es/chat-engine/core/a2ui/index.js +24 -0
  279. package/es/chat-engine/core/a2ui/index.js.map +1 -0
  280. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  281. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
  282. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  283. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
  284. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
  285. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
  286. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
  287. package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
  288. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
  289. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
  290. package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
  291. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
  292. package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
  293. package/es/chat-engine/core/a2ui/types/index.js +9 -0
  294. package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
  295. package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
  296. package/es/chat-engine/core/a2ui/types/types.js +104 -0
  297. package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
  298. package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
  299. package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
  300. package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
  301. package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
  302. package/es/chat-engine/core/a2ui/utils/index.js +13 -0
  303. package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
  304. package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
  305. package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
  306. package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
  307. package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
  308. package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
  309. package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
  310. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  311. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
  312. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  313. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
  314. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
  315. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
  316. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
  317. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
  318. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
  319. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
  320. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
  321. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
  322. package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
  323. package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
  324. package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
  325. package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
  326. package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
  327. package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
  328. package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
  329. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
  330. package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
  331. package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
  332. package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
  333. package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
  334. package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
  335. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
  336. package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
  337. package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
  338. package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
  339. package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
  340. package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
  341. package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
  342. package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
  343. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
  344. package/es/chat-engine/core/adapters/agui/activity-manager.js +150 -0
  345. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
  346. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +149 -0
  347. package/es/chat-engine/core/adapters/agui/event-mapper.js +417 -0
  348. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -0
  349. package/es/chat-engine/core/adapters/agui/events.d.ts +1550 -0
  350. package/es/chat-engine/core/adapters/agui/events.js +199 -0
  351. package/es/chat-engine/core/adapters/agui/events.js.map +1 -0
  352. package/es/chat-engine/core/adapters/agui/index.d.ts +92 -0
  353. package/es/chat-engine/core/adapters/agui/index.js +200 -0
  354. package/es/chat-engine/core/adapters/agui/index.js.map +1 -0
  355. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +99 -0
  356. package/es/chat-engine/core/adapters/agui/state-manager.js +174 -0
  357. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -0
  358. package/es/chat-engine/core/adapters/agui/types/events.d.ts +1570 -0
  359. package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
  360. package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
  361. package/es/chat-engine/core/adapters/agui/types/index.d.ts +854 -0
  362. package/es/chat-engine/core/adapters/agui/types/index.js +279 -0
  363. package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
  364. package/es/chat-engine/core/adapters/agui/types.d.ts +818 -0
  365. package/es/chat-engine/core/adapters/agui/types.js +95 -0
  366. package/es/chat-engine/core/adapters/agui/types.js.map +1 -0
  367. package/es/chat-engine/core/adapters/agui/utils.d.ts +203 -0
  368. package/es/chat-engine/core/adapters/agui/utils.js +330 -0
  369. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -0
  370. package/es/chat-engine/core/adapters/index.d.ts +5 -0
  371. package/es/chat-engine/core/adapters/index.js +34 -0
  372. package/es/chat-engine/core/adapters/index.js.map +1 -0
  373. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
  374. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
  375. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
  376. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
  377. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
  378. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
  379. package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
  380. package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
  381. package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
  382. package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
  383. package/es/chat-engine/core/adapters/json-render/index.js +18 -0
  384. package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
  385. package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
  386. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
  387. package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
  388. package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
  389. package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
  390. package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
  391. package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
  392. package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
  393. package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
  394. package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
  395. package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
  396. package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
  397. package/es/chat-engine/core/event-bus/index.d.ts +5 -0
  398. package/es/chat-engine/core/event-bus/index.js +13 -0
  399. package/es/chat-engine/core/event-bus/index.js.map +1 -0
  400. package/es/chat-engine/core/event-bus/types.d.ts +230 -0
  401. package/es/chat-engine/core/event-bus/types.js +32 -0
  402. package/es/chat-engine/core/event-bus/types.js.map +1 -0
  403. package/es/chat-engine/core/index.d.ts +147 -0
  404. package/es/chat-engine/core/index.js +760 -0
  405. package/es/chat-engine/core/index.js.map +1 -0
  406. package/es/chat-engine/core/processor/index.d.ts +20 -0
  407. package/es/chat-engine/core/processor/index.js +146 -0
  408. package/es/chat-engine/core/processor/index.js.map +1 -0
  409. package/es/chat-engine/core/server/batch-client.d.ts +20 -0
  410. package/es/chat-engine/core/server/batch-client.js +114 -0
  411. package/es/chat-engine/core/server/batch-client.js.map +1 -0
  412. package/es/chat-engine/core/server/connection-manager.d.ts +39 -0
  413. package/es/chat-engine/core/server/connection-manager.js +84 -0
  414. package/es/chat-engine/core/server/connection-manager.js.map +1 -0
  415. package/es/chat-engine/core/server/errors.d.ts +22 -0
  416. package/es/chat-engine/core/server/errors.js +80 -0
  417. package/es/chat-engine/core/server/errors.js.map +1 -0
  418. package/es/chat-engine/core/server/index.d.ts +11 -0
  419. package/es/chat-engine/core/server/index.js +26 -0
  420. package/es/chat-engine/core/server/index.js.map +1 -0
  421. package/es/chat-engine/core/server/llm-service.d.ts +44 -0
  422. package/es/chat-engine/core/server/llm-service.js +200 -0
  423. package/es/chat-engine/core/server/llm-service.js.map +1 -0
  424. package/es/chat-engine/core/server/sse-client.d.ts +77 -0
  425. package/es/chat-engine/core/server/sse-client.js +362 -0
  426. package/es/chat-engine/core/server/sse-client.js.map +1 -0
  427. package/es/chat-engine/core/server/sse-parser.d.ts +49 -0
  428. package/es/chat-engine/core/server/sse-parser.js +116 -0
  429. package/es/chat-engine/core/server/sse-parser.js.map +1 -0
  430. package/es/chat-engine/core/server/types.d.ts +54 -0
  431. package/es/chat-engine/core/server/types.js +28 -0
  432. package/es/chat-engine/core/server/types.js.map +1 -0
  433. package/es/chat-engine/core/store/message.d.ts +27 -0
  434. package/es/chat-engine/core/store/message.js +267 -0
  435. package/es/chat-engine/core/store/message.js.map +1 -0
  436. package/es/chat-engine/core/store/model.d.ts +8 -0
  437. package/es/chat-engine/core/store/model.js +66 -0
  438. package/es/chat-engine/core/store/model.js.map +1 -0
  439. package/es/chat-engine/core/store/reactiveState.d.ts +56 -0
  440. package/es/chat-engine/core/store/reactiveState.js +139 -0
  441. package/es/chat-engine/core/store/reactiveState.js.map +1 -0
  442. package/es/chat-engine/core/type.d.ts +279 -0
  443. package/es/chat-engine/core/type.js +7 -0
  444. package/es/chat-engine/core/type.js.map +1 -0
  445. package/es/chat-engine/core/utils/eventEmitter.d.ts +10 -0
  446. package/es/chat-engine/core/utils/eventEmitter.js +67 -0
  447. package/es/chat-engine/core/utils/eventEmitter.js.map +1 -0
  448. package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
  449. package/es/chat-engine/core/utils/immutable-patch.js +147 -0
  450. package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
  451. package/es/chat-engine/core/utils/index.d.ts +38 -0
  452. package/es/chat-engine/core/utils/index.js +125 -0
  453. package/es/chat-engine/core/utils/index.js.map +1 -0
  454. package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
  455. package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
  456. package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
  457. package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
  458. package/es/chat-engine/core/utils/json-patch/index.js +387 -0
  459. package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
  460. package/es/chat-engine/core/utils/logger.d.ts +30 -0
  461. package/es/chat-engine/core/utils/logger.js +87 -0
  462. package/es/chat-engine/core/utils/logger.js.map +1 -0
  463. package/es/chat-engine/core/utils/performance.d.ts +94 -0
  464. package/es/chat-engine/core/utils/performance.js +205 -0
  465. package/es/chat-engine/core/utils/performance.js.map +1 -0
  466. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
  467. package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
  468. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
  469. package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
  470. package/es/chat-engine/hooks/a2ui/index.js +19 -0
  471. package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
  472. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
  473. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
  474. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
  475. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
  476. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
  477. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
  478. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
  479. package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
  480. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
  481. package/es/chat-engine/hooks/index.js +47 -4
  482. package/es/chat-engine/hooks/index.js.map +1 -1
  483. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  484. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  485. package/es/chat-engine/hooks/useAgentState.js +48 -2
  486. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  487. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  488. package/es/chat-engine/hooks/useChat.d.ts +2 -2
  489. package/es/chat-engine/hooks/useChat.js +50 -3
  490. package/es/chat-engine/hooks/useChat.js.map +1 -1
  491. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
  492. package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
  493. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
  494. package/es/chat-engine/index.d.ts +1 -1
  495. package/es/chat-engine/index.js +61 -5
  496. package/es/chat-engine/index.js.map +1 -1
  497. package/es/chat-filecard/index.js +4 -6
  498. package/es/chat-filecard/index.js.map +1 -1
  499. package/es/chat-loading/index.js +4 -6
  500. package/es/chat-loading/index.js.map +1 -1
  501. package/es/chat-markdown/index.js +4 -6
  502. package/es/chat-markdown/index.js.map +1 -1
  503. package/es/chat-message/index.js +4 -6
  504. package/es/chat-message/index.js.map +1 -1
  505. package/es/chat-sender/index.js +4 -6
  506. package/es/chat-sender/index.js.map +1 -1
  507. package/es/chat-thinking/index.js +4 -6
  508. package/es/chat-thinking/index.js.map +1 -1
  509. package/es/chatbot/docs/react-best-practice.d.ts +13 -0
  510. package/es/chatbot/index.js +4 -6
  511. package/es/chatbot/index.js.map +1 -1
  512. package/es/index.js +63 -10
  513. package/es/index.js.map +1 -1
  514. package/es/style/index.js +1 -1
  515. package/package.json +19 -15
  516. package/es/chatbot/_example-js/agui-toolcall.d.ts +0 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/agui/utils.ts"],"sourcesContent":["/* eslint-disable default-param-last */\n/**\n * AGUI适配器工具函数\n * 包含与类无关的纯函数,用于处理AGUI协议相关逻辑\n */\n\n/**\n * 合并字符串内容,处理JSON和普通字符串\n * @param existing 现有内容\n * @param delta 增量内容\n * @returns 合并后的内容\n */\nexport function mergeStringContent(existing: string | undefined, delta: string): string {\n if (!existing) return delta;\n\n // 尝试解析为JSON,如果是有效的JSON则合并\n try {\n const existingObj = JSON.parse(existing);\n const deltaObj = JSON.parse(delta);\n\n // 如果是对象,进行深度合并\n if (typeof existingObj === 'object' && typeof deltaObj === 'object') {\n return JSON.stringify({ ...existingObj, ...deltaObj });\n }\n\n // 如果是数组,进行数组合并\n if (Array.isArray(existingObj) && Array.isArray(deltaObj)) {\n return JSON.stringify([...existingObj, ...deltaObj]);\n }\n\n // 其他情况,直接替换\n return delta;\n } catch (error) {\n // 不是有效的JSON,按普通字符串处理\n return existing + delta;\n }\n}\n\n/**\n * 从delta事件中提取stateKey\n * @param event delta事件对象\n * @returns stateKey或null\n */\nexport function extractStateKeyFromDelta(event: { type: string; delta?: any[] }): string | null {\n if (event.type === 'STATE_DELTA' && event.delta && event.delta.length > 0) {\n // 从第一个delta操作的路径中提取stateKey\n const firstDelta = event.delta[0];\n if (firstDelta && firstDelta.path) {\n const pathParts = firstDelta.path.split('/');\n return pathParts.length > 1 ? pathParts[1] : null;\n }\n }\n return null;\n}\n\n/**\n * 处理消息快照\n * @param messages 消息数组\n * @returns 处理后的消息内容数组\n */\nexport function handleMessagesSnapshot(messages: any[]): any[] {\n // 只取assistant消息\n if (!messages) return [];\n return messages.flatMap((msg: any) => {\n if (msg.role === 'assistant' && Array.isArray(msg.content)) {\n return msg.content.map((content: any) => ({\n type: content.type || 'markdown',\n data: content.data,\n status: 'complete',\n }));\n }\n return [];\n });\n}\n\n/**\n * 处理自定义事件\n * 直接将 CUSTOM 事件转换为通用格式,由业务层自行处理\n * @param event 自定义事件对象\n * @returns 处理结果\n */\nexport function handleCustomEvent(event: any): any {\n if (event.name === 'suggestion') {\n return {\n type: 'suggestion',\n data: event.value || [],\n status: 'complete',\n };\n }\n return {\n type: 'custom',\n data: {\n name: event.name,\n value: event.value,\n },\n status: 'complete',\n };\n}\n\n\n/**\n * 解析SSE数据\n * @param data SSE数据,可能是字符串或已解析的对象\n * @returns 解析后的事件对象或null\n */\nexport function parseSSEData(data: any): any {\n if (typeof data === 'string') {\n try {\n return JSON.parse(data);\n } catch (error) {\n console.warn('Failed to parse SSE data:', error);\n return null;\n }\n }\n return data;\n}\n\n/**\n * 验证事件对象\n * @param event 事件对象\n * @returns 是否为有效事件\n */\nexport function isValidEvent(event: any): boolean {\n return event && typeof event === 'object' && event.type;\n}\n\n/**\n * 生成连接ID\n * @param prefix 前缀\n * @returns 连接ID\n */\nexport function generateConnectionId(prefix = 'sse'): string {\n const timestamp = Date.now();\n return `${prefix}_${timestamp}_${Math.random().toString(36).substr(2, 9)}`;\n}\n\n/**\n * 格式化日志消息\n * @param level 日志级别\n * @param message 消息内容\n * @param context 上下文信息\n * @returns 格式化后的日志消息\n */\nexport function formatLogMessage(level: string, message: string, context?: any): string {\n const timestamp = new Date().toISOString();\n const contextStr = context ? ` [${JSON.stringify(context)}]` : '';\n return `[${timestamp}] [${level.toUpperCase()}] ${message}${contextStr}`;\n}\n\n/**\n * 创建基础的 AIMessageContent 对象\n * @param type 内容类型\n * @param data 内容数据\n * @param status 状态\n * @param strategy 策略\n * @param ext 扩展属性\n * @returns AIMessageContent 对象\n */\nexport function createAIMessageContent(\n type: string,\n data: any,\n status: 'pending' | 'streaming' | 'complete' | 'error' = 'complete',\n strategy: 'append' | 'merge' = 'append',\n ext?: any,\n): any {\n const content: any = {\n type,\n data,\n status,\n strategy,\n };\n\n if (ext) {\n content.ext = ext;\n }\n\n return content;\n}\n\n/**\n * 创建 reasoning 类型的 AIMessageContent\n * @param data reasoning 数据\n * @param status 状态\n * @param strategy 策略\n * @param collapsed 是否折叠\n * @returns reasoning 类型的 AIMessageContent\n */\nexport function createReasoningContent(\n data: any[],\n status: 'streaming' | 'complete' = 'streaming',\n strategy: 'append' | 'merge' = 'append',\n collapsed = false,\n): any {\n return createAIMessageContent('reasoning', data, status, strategy, { collapsed });\n}\n\n/**\n * 创建 thinking 类型的 AIMessageContent\n * @param data thinking 数据\n * @param status 状态\n * @param strategy 策略\n * @param collapsed 是否折叠\n * @returns thinking 类型的 AIMessageContent\n */\nexport function createThinkingContent(\n data: any,\n status: 'streaming' | 'complete' = 'streaming',\n strategy: 'append' | 'merge' = 'append',\n collapsed = false,\n): any {\n return createAIMessageContent('thinking', data, status, strategy, { collapsed });\n}\n\n/**\n * 创建 toolcall 类型的 AIMessageContent\n * @param toolCall 工具调用数据\n * @param status 状态\n * @param strategy 策略(可选)\n * @returns toolcall 类型的 AIMessageContent\n *\n * type 格式: toolcall-${toolCallName}-${toolCallId}\n * - toolCallName: 用于查找对应的渲染组件\n * - toolCallId: 用于区分同名工具的不同调用实例,支持并行工具调用\n */\nexport function createToolCallContent(\n toolCall: any,\n status: 'pending' | 'streaming' | 'complete' = 'pending',\n strategy?: 'append' | 'merge',\n): any {\n // 根据 toolCallName 和 toolCallId 生成唯一的 type\n // 这样同名工具的不同调用实例会有不同的 type,支持并行工具调用场景\n const type = `toolcall-${toolCall.toolCallName}-${toolCall.toolCallId}`;\n\n // 如果没有指定 strategy,默认使用 'append'\n const finalStrategy = strategy || 'append';\n\n return createAIMessageContent(type, toolCall, status, finalStrategy);\n}\n\n/**\n * 创建 activity 类型的 AIMessageContent\n * @param activityType 活动类型\n * @param content 活动内容\n * @param status 状态\n * @param strategy 策略\n * @param deltaInfo 增量信息(可选,用于 A2UI 等场景的增量处理)\n * @returns activity 类型的 AIMessageContent\n *\n * type 格式: activity-${activityType}\n * - activityType: 用于查找对应的渲染组件和区分不同类型的 Activity\n * - 支持并行多个不同类型的 Activity\n */\nexport function createActivityContent(\n activityType: string,\n content: Record<string, any>,\n status: 'streaming' | 'complete' = 'complete',\n strategy: 'append' | 'merge' = 'append',\n deltaInfo?: { fromIndex: number; toIndex: number },\n): any {\n // 使用 activity-${activityType} 格式,支持并行不同类型的 Activity\n const type = `activity-${activityType}`;\n\n const ext = deltaInfo ? { deltaInfo } : undefined;\n\n return createAIMessageContent(\n type,\n {\n activityType,\n content,\n },\n status,\n strategy,\n ext,\n );\n}\n\n/**\n * 创建 markdown 类型的 AIMessageContent\n * @param data markdown 数据\n * @param status 状态\n * @param strategy 策略\n * @param role 消息角色(可选,默认 assistant),通过 ext.role 传递给业务层\n * @returns markdown 类型的 AIMessageContent\n */\nexport function createMarkdownContent(\n data: string,\n status: 'streaming' | 'complete' = 'complete',\n strategy: 'append' | 'merge' = 'append',\n role?: 'assistant' | 'system',\n): any {\n const notAssistant = role && role !== 'assistant';\n // TODO: 这里对于textchunk中设置了role的情况delta没做合并(暂时type=`${role}-text`业务自行处理)\n const content = createAIMessageContent(notAssistant ? `${role}-text` : 'markdown', data, status, strategy);\n if (notAssistant) {\n content.ext = { ...content.ext, role };\n }\n return content;\n}\n\n/**\n * 创建 suggestion 类型的 AIMessageContent\n * @param data suggestion 数据\n * @returns suggestion 类型的 AIMessageContent\n */\nexport function createSuggestionContent(data: any[]): any {\n return createAIMessageContent('suggestion', data, 'complete', 'append');\n}\n\n/**\n * 创建 text 类型的 AIMessageContent\n * @param data 文本数据\n * @param status 状态\n * @returns text 类型的 AIMessageContent\n */\nexport function createTextContent(data: string, status: 'streaming' | 'complete' | 'error' = 'complete'): any {\n return createAIMessageContent('text', data, status, 'append');\n}\n\n/**\n * 更新工具调用对象\n * @param existingToolCall 现有工具调用\n * @param updates 更新内容\n * @returns 更新后的工具调用\n */\nexport function updateToolCall(existingToolCall: any, updates: Partial<any>): any {\n return {\n ...existingToolCall,\n ...updates,\n };\n}\n\n/**\n * 处理 suggestion 工具调用的特殊逻辑\n * @param toolCall 工具调用对象\n * @returns suggestion 内容或 null\n */\nexport function handleSuggestionToolCall(toolCall: any): any | null {\n if (toolCall.toolCallName === 'suggestion') {\n try {\n const suggestionData = JSON.parse(toolCall.result || '{}') || [];\n return createSuggestionContent(suggestionData);\n } catch (error) {\n console.warn('Failed to parse suggestion result:', error);\n return null;\n }\n }\n return null;\n}\n\n/**\n * 更新 reasoning 上下文中的内容\n * @param reasoningData 当前 reasoning 数据\n * @param index 要更新的索引\n * @param newContent 新内容\n * @returns 更新后的 reasoning 数据\n */\nexport function updateReasoningData(reasoningData: any[], index: number, newContent: any): any[] {\n const updatedData = [...reasoningData];\n if (index >= 0 && index < updatedData.length) {\n updatedData[index] = newContent;\n }\n return updatedData;\n}\n\n/**\n * 向 reasoning 数据中添加新内容\n * @param reasoningData 当前 reasoning 数据\n * @param newContent 新内容\n * @returns 更新后的 reasoning 数据和新内容的索引\n */\nexport function addToReasoningData(reasoningData: any[], newContent: any): { data: any[]; index: number } {\n const updatedData = [...reasoningData, newContent];\n return {\n data: updatedData,\n index: updatedData.length - 1,\n };\n}\n\n/**\n * 解析 reasoningContent 字段\n * @param reasoningContent 原始 reasoningContent 数据\n * @returns 解析后的数据和类型信息\n */\nexport function parseReasoningContent(reasoningContent: any): {\n type: 'reasoning' | 'thinking';\n data: any;\n} {\n let parsedContent;\n\n if (typeof reasoningContent === 'string') {\n try {\n parsedContent = JSON.parse(reasoningContent);\n } catch {\n // 解析失败时,作为简单文本处理\n return {\n type: 'thinking',\n data: { text: reasoningContent, title: '思考完成' },\n };\n }\n } else {\n parsedContent = reasoningContent;\n }\n\n // 判断解析后的数据类型\n if (Array.isArray(parsedContent)) {\n return {\n type: 'reasoning',\n data: parsedContent,\n };\n }\n return {\n type: 'thinking',\n data: parsedContent,\n };\n}\n\n/**\n * 转换 reasoning 消息数组为 AIMessageContent 数组\n * @param reasoningMessages reasoning 消息数组\n * @returns 转换后的 AIMessageContent 数组\n */\nexport function convertReasoningMessages(reasoningMessages: any[]): any[] {\n const reasoningData: any[] = [];\n const toolCallMap = new Map<string, any>();\n\n // 第一遍:收集工具调用结果\n reasoningMessages.forEach((msg) => {\n if (msg.role === 'tool') {\n toolCallMap.set(msg.toolCallId, {\n toolCallId: msg.toolCallId,\n result: msg.content,\n });\n }\n });\n\n // 第二遍:处理消息内容\n reasoningMessages.forEach((msg) => {\n if (msg.role === 'assistant') {\n // 处理嵌套的 reasoningContent(文本思考)\n if (msg.reasoningContent && typeof msg.reasoningContent === 'string') {\n reasoningData.push({\n type: 'text',\n data: msg.reasoningContent,\n status: 'complete',\n });\n }\n\n // 处理普通内容\n if (msg.content) {\n reasoningData.push({\n type: 'text', // 在 reasoning 内部,通常用 text 而不是 markdown\n data: msg.content,\n status: 'complete',\n });\n }\n\n // 处理工具调用\n if (msg.toolCalls && msg.toolCalls.length > 0) {\n msg.toolCalls.forEach((toolCall: any) => {\n const toolResult = toolCallMap.get(toolCall.id)?.result || '';\n const toolCallData = {\n toolCallId: toolCall.id,\n toolCallName: toolCall.function.name,\n args: toolCall.function.arguments,\n result: toolResult,\n };\n reasoningData.push({\n // 使用 toolCallName-toolCallId 格式,与 createToolCallContent 保持一致\n type: `toolcall-${toolCall.function.name}-${toolCall.id}`,\n data: toolCallData,\n status: 'complete',\n });\n });\n }\n }\n });\n\n return reasoningData;\n}\n\n/**\n * 处理 reasoningContent 并创建对应的 AIMessageContent\n * @param reasoningContent 原始 reasoningContent 数据\n * @returns 创建的 AIMessageContent 或 null\n */\nexport function processReasoningContent(reasoningContent: any): any | null {\n if (!reasoningContent) return null;\n\n const { type, data } = parseReasoningContent(reasoningContent);\n\n if (type === 'reasoning') {\n const reasoningData = convertReasoningMessages(data);\n return {\n type: 'reasoning',\n data: reasoningData,\n status: 'complete',\n strategy: 'append',\n ext: { collapsed: true },\n };\n }\n return {\n type: 'thinking',\n status: 'complete',\n data,\n };\n}\n\n/**\n * 处理工具调用并创建对应的 AIMessageContent 数组\n * @param toolCalls 工具调用数组\n * @param toolCallMap 工具调用结果映射\n * @returns 创建的 AIMessageContent 数组\n */\nexport function processToolCalls(toolCalls: any[], toolCallMap: Map<string, any>): any[] {\n return toolCalls.map((toolCall) => {\n const toolResult = toolCallMap.get(toolCall.id)?.result || '';\n\n // 建议类型的toolcall特殊解析\n if (toolCall.function.name === 'suggestion') {\n return {\n type: 'suggestion' as const,\n data: parseSSEData(toolResult) || [],\n };\n }\n\n const toolCallData = {\n toolCallId: toolCall.id,\n toolCallName: toolCall.function.name,\n args: toolCall.function.arguments,\n result: toolResult,\n };\n\n return {\n // 使用 toolCallName-toolCallId 格式,支持并行工具调用\n type: `toolcall-${toolCall.function.name}-${toolCall.id}` as const,\n data: toolCallData,\n };\n });\n}\n\n/**\n * 构建工具调用结果映射\n * @param historyMessages 历史消息数组\n * @returns 工具调用结果映射\n */\nexport function buildToolCallMap(historyMessages: any[]): Map<string, any> {\n const toolCallMap = new Map<string, any>();\n\n historyMessages.forEach((msg) => {\n if (msg.role === 'tool') {\n toolCallMap.set(msg.toolCallId, {\n toolCallId: msg.toolCallId,\n result: msg.content,\n });\n }\n });\n\n return toolCallMap;\n}\n"],"names":["mergeStringContent","existing","delta","existingObj","JSON","parse","deltaObj","_typeof","stringify","_objectSpread","Array","isArray","concat","_toConsumableArray","error","extractStateKeyFromDelta","event","type","length","firstDelta","path","pathParts","split","handleMessagesSnapshot","messages","flatMap","msg","role","content","map","data","status","handleCustomEvent","name","value","parseSSEData","console","warn","isValidEvent","generateConnectionId","prefix","timestamp","Date","now","Math","random","toString","substr","formatLogMessage","level","message","context","toISOString","contextStr","toUpperCase","createAIMessageContent","strategy","arguments","undefined","ext","createReasoningContent","collapsed","createThinkingContent","createToolCallContent","toolCall","toolCallName","toolCallId","finalStrategy","createActivityContent","activityType","deltaInfo","createMarkdownContent","notAssistant","createSuggestionContent","createTextContent","updateToolCall","existingToolCall","updates","handleSuggestionToolCall","suggestionData","result","updateReasoningData","reasoningData","index","newContent","updatedData","addToReasoningData","parseReasoningContent","reasoningContent","parsedContent","_unused","text","title","convertReasoningMessages","reasoningMessages","toolCallMap","Map","forEach","set","push","toolCalls","_toolCallMap$get","toolResult","get","id","toolCallData","args","processReasoningContent","_parseReasoningConten","processToolCalls","_toolCallMap$get2","buildToolCallMap","historyMessages"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core 适配器模块导出
3
+ */
4
+ export * from './agui';
5
+ export * from './json-render';
@@ -0,0 +1,34 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.9
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ export { AGUIAdapter } from './agui/index.js';
8
+ import './json-render/index.js';
9
+ export { StateManagerImpl, stateManager } from './agui/StateManager.js';
10
+ export { ActivityManagerImpl, activityManager } from './agui/ActivityManager.js';
11
+ 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 './agui/types/index.js';
12
+ export { SurfaceStateManager, surfaceStateManager } from './json-render/SurfaceStateManager.js';
13
+ export { applyA2UIDataUpdate, applyA2UIUpdates, convertA2UIMessagesToJsonRender } from './json-render/a2ui-to-jsonrender.js';
14
+ import '@babel/runtime/helpers/toConsumableArray';
15
+ import '@babel/runtime/helpers/classCallCheck';
16
+ import '@babel/runtime/helpers/createClass';
17
+ import './agui/event-mapper.js';
18
+ import '@babel/runtime/helpers/defineProperty';
19
+ import './agui/utils.js';
20
+ import '@babel/runtime/helpers/typeof';
21
+ import 'zod';
22
+ import '@babel/runtime/helpers/possibleConstructorReturn';
23
+ import '@babel/runtime/helpers/getPrototypeOf';
24
+ import '@babel/runtime/helpers/inherits';
25
+ import '@babel/runtime/helpers/wrapNativeSuper';
26
+ import '@babel/runtime/helpers/slicedToArray';
27
+ import '../utils/index.js';
28
+ import '../utils/immutable-patch.js';
29
+ import '@babel/runtime/helpers/objectWithoutProperties';
30
+ import '@babel/runtime/helpers/toArray';
31
+ import './json-render/types/a2ui.js';
32
+ import './json-render/types/index.js';
33
+ import './json-render/types/core.js';
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Surface 状态管理器(框架无关)
3
+ *
4
+ * 职责:
5
+ * 1. 缓存已创建的 Surface Schema(跨消息/跨轮次)
6
+ * 2. 提供订阅机制,当 Surface 数据更新时通知已渲染的组件
7
+ *
8
+ * 使用场景:
9
+ * - 第一轮对话:createSurface + updateComponents → 创建完整 UI,注册到缓存
10
+ * - 后续轮次:仅 updateDataModel → 更新缓存中的数据,通知订阅者重渲染
11
+ *
12
+ * 设计原则:
13
+ * 1. 服务端是状态的单一数据源(updateDataModel 来自服务端)
14
+ * 2. 本模块只负责存储和订阅,不负责 A2UI → JsonRender 的转换
15
+ * 3. 转换逻辑由 a2ui-to-jsonrender.ts 中的函数完成
16
+ */
17
+ import type { JsonRenderSchema } from './types/core';
18
+ export interface SurfaceCache {
19
+ /** Surface ID */
20
+ surfaceId: string;
21
+ /** Catalog ID */
22
+ catalogId?: string;
23
+ /** 当前的 json-render Schema */
24
+ schema: JsonRenderSchema;
25
+ /** 创建时间 */
26
+ createdAt: number;
27
+ /** 最后更新时间 */
28
+ updatedAt: number;
29
+ }
30
+ /** 订阅者回调函数类型 */
31
+ export type SurfaceSubscriber = (schema: JsonRenderSchema) => void;
32
+ /**
33
+ * Surface 状态管理器
34
+ * 单例模式,全局共享 Surface 缓存
35
+ * 框架无关,不依赖 React 或其他 UI 框架
36
+ */
37
+ declare class SurfaceStateManager {
38
+ private surfaces;
39
+ /** 订阅者映射:surfaceId → Set<subscriber> */
40
+ private subscribers;
41
+ private debug;
42
+ /**
43
+ * 设置调试模式
44
+ */
45
+ setDebug(enabled: boolean): void;
46
+ /**
47
+ * 注册 Surface(由创建型消息调用)
48
+ *
49
+ * @param surfaceId Surface ID
50
+ * @param schema 转换后的 json-render Schema
51
+ * @param catalogId 可选的 Catalog ID
52
+ */
53
+ registerSurface(surfaceId: string, schema: JsonRenderSchema, catalogId?: string): void;
54
+ /**
55
+ * 更新 Surface 数据(由更新型消息调用)
56
+ *
57
+ * @param surfaceId Surface ID
58
+ * @param path JSON Pointer 路径
59
+ * @param op 操作类型
60
+ * @param value 值
61
+ * @returns 是否成功(Surface 存在)
62
+ */
63
+ updateData(surfaceId: string, path: string | undefined, op?: 'add' | 'replace' | 'remove', value?: unknown): boolean;
64
+ /**
65
+ * 订阅 Surface 状态变化
66
+ *
67
+ * @param surfaceId Surface ID
68
+ * @param subscriber 订阅者回调
69
+ * @returns 取消订阅函数
70
+ */
71
+ subscribe(surfaceId: string, subscriber: SurfaceSubscriber): () => void;
72
+ /**
73
+ * 异步通知订阅者(避免在渲染期间调用回调)
74
+ */
75
+ private notifySubscribersAsync;
76
+ /**
77
+ * 获取指定 Surface 的缓存
78
+ */
79
+ getSurface(surfaceId: string): SurfaceCache | undefined;
80
+ /**
81
+ * 获取指定 Surface 的 Schema
82
+ */
83
+ getSchema(surfaceId: string): JsonRenderSchema | null;
84
+ /**
85
+ * 检查 Surface 是否存在
86
+ */
87
+ hasSurface(surfaceId: string): boolean;
88
+ /**
89
+ * 获取所有 Surface ID
90
+ */
91
+ getAllSurfaceIds(): string[];
92
+ /**
93
+ * 删除 Surface(由 deleteSurface 消息调用)
94
+ */
95
+ deleteSurface(surfaceId: string): boolean;
96
+ /**
97
+ * 清除所有 Surface 缓存
98
+ */
99
+ clearAll(): void;
100
+ /**
101
+ * 获取缓存统计信息
102
+ */
103
+ getStats(): {
104
+ count: number;
105
+ surfaces: Array<{
106
+ id: string;
107
+ elementsCount: number;
108
+ updatedAt: number;
109
+ subscriberCount: number;
110
+ }>;
111
+ };
112
+ }
113
+ export declare const surfaceStateManager: SurfaceStateManager;
114
+ export { SurfaceStateManager };
@@ -0,0 +1,194 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.9
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
8
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
9
+ import _createClass from '@babel/runtime/helpers/createClass';
10
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
11
+ import { applyA2UIDataUpdate } from './a2ui-to-jsonrender.js';
12
+ import '@babel/runtime/helpers/typeof';
13
+ import '@babel/runtime/helpers/objectWithoutProperties';
14
+
15
+ var SurfaceStateManager = /*#__PURE__*/function () {
16
+ function SurfaceStateManager() {
17
+ _classCallCheck(this, SurfaceStateManager);
18
+ _defineProperty(this, "surfaces", /* @__PURE__ */new Map());
19
+ _defineProperty(this, "subscribers", /* @__PURE__ */new Map());
20
+ _defineProperty(this, "debug", false);
21
+ }
22
+ return _createClass(SurfaceStateManager, [{
23
+ key: "setDebug",
24
+ value: function setDebug(enabled) {
25
+ this.debug = enabled;
26
+ }
27
+ }, {
28
+ key: "registerSurface",
29
+ value: function registerSurface(surfaceId, schema, catalogId) {
30
+ var cache = {
31
+ surfaceId: surfaceId,
32
+ catalogId: catalogId,
33
+ schema: schema,
34
+ createdAt: Date.now(),
35
+ updatedAt: Date.now()
36
+ };
37
+ this.surfaces.set(surfaceId, cache);
38
+ if (this.debug) {
39
+ console.log("[SurfaceStateManager] \u6CE8\u518C Surface:", {
40
+ surfaceId: surfaceId,
41
+ elementsCount: Object.keys(schema.elements).length
42
+ });
43
+ }
44
+ }
45
+ }, {
46
+ key: "updateData",
47
+ value: function updateData(surfaceId, path) {
48
+ var op = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "replace";
49
+ var value = arguments.length > 3 ? arguments[3] : undefined;
50
+ var cache = this.surfaces.get(surfaceId);
51
+ if (!cache) {
52
+ if (this.debug) {
53
+ console.warn("[SurfaceStateManager] updateData: Surface \u4E0D\u5B58\u5728", surfaceId);
54
+ }
55
+ return false;
56
+ }
57
+ cache.schema = applyA2UIDataUpdate(cache.schema, path, op, value);
58
+ cache.updatedAt = Date.now();
59
+ if (this.debug) {
60
+ console.log("[SurfaceStateManager] \u66F4\u65B0\u6570\u636E:", {
61
+ surfaceId: surfaceId,
62
+ path: path,
63
+ op: op,
64
+ value: value,
65
+ newData: cache.schema.data
66
+ });
67
+ }
68
+ this.notifySubscribersAsync(surfaceId, cache.schema);
69
+ return true;
70
+ }
71
+ }, {
72
+ key: "subscribe",
73
+ value: function subscribe(surfaceId, subscriber) {
74
+ var _this = this;
75
+ if (!this.subscribers.has(surfaceId)) {
76
+ this.subscribers.set(surfaceId, /* @__PURE__ */new Set());
77
+ }
78
+ this.subscribers.get(surfaceId).add(subscriber);
79
+ if (this.debug) {
80
+ console.log("[SurfaceStateManager] \u8BA2\u9605 Surface:", surfaceId);
81
+ }
82
+ return function () {
83
+ var subs = _this.subscribers.get(surfaceId);
84
+ if (subs) {
85
+ subs["delete"](subscriber);
86
+ if (subs.size === 0) {
87
+ _this.subscribers["delete"](surfaceId);
88
+ }
89
+ }
90
+ if (_this.debug) {
91
+ console.log("[SurfaceStateManager] \u53D6\u6D88\u8BA2\u9605 Surface:", surfaceId);
92
+ }
93
+ };
94
+ }
95
+ }, {
96
+ key: "notifySubscribersAsync",
97
+ value: function notifySubscribersAsync(surfaceId, schema) {
98
+ var _this2 = this;
99
+ var subs = this.subscribers.get(surfaceId);
100
+ if (!subs || subs.size === 0) {
101
+ return;
102
+ }
103
+ if (this.debug) {
104
+ console.log("[SurfaceStateManager] \u51C6\u5907\u901A\u77E5\u8BA2\u9605\u8005:", {
105
+ surfaceId: surfaceId,
106
+ subscriberCount: subs.size
107
+ });
108
+ }
109
+ queueMicrotask(function () {
110
+ var currentSubs = _this2.subscribers.get(surfaceId);
111
+ if (!currentSubs || currentSubs.size === 0) {
112
+ return;
113
+ }
114
+ if (_this2.debug) {
115
+ console.log("[SurfaceStateManager] \u6267\u884C\u901A\u77E5\u8BA2\u9605\u8005:", {
116
+ surfaceId: surfaceId
117
+ });
118
+ }
119
+ currentSubs.forEach(function (subscriber) {
120
+ try {
121
+ subscriber(schema);
122
+ } catch (e) {
123
+ console.error("[SurfaceStateManager] \u8BA2\u9605\u8005\u56DE\u8C03\u51FA\u9519:", e);
124
+ }
125
+ });
126
+ });
127
+ }
128
+ }, {
129
+ key: "getSurface",
130
+ value: function getSurface(surfaceId) {
131
+ return this.surfaces.get(surfaceId);
132
+ }
133
+ }, {
134
+ key: "getSchema",
135
+ value: function getSchema(surfaceId) {
136
+ var _this$surfaces$get;
137
+ return ((_this$surfaces$get = this.surfaces.get(surfaceId)) === null || _this$surfaces$get === void 0 ? void 0 : _this$surfaces$get.schema) || null;
138
+ }
139
+ }, {
140
+ key: "hasSurface",
141
+ value: function hasSurface(surfaceId) {
142
+ return this.surfaces.has(surfaceId);
143
+ }
144
+ }, {
145
+ key: "getAllSurfaceIds",
146
+ value: function getAllSurfaceIds() {
147
+ return Array.from(this.surfaces.keys());
148
+ }
149
+ }, {
150
+ key: "deleteSurface",
151
+ value: function deleteSurface(surfaceId) {
152
+ this.subscribers["delete"](surfaceId);
153
+ var deleted = this.surfaces["delete"](surfaceId);
154
+ if (this.debug && deleted) {
155
+ console.log("[SurfaceStateManager] \u5220\u9664 Surface:", surfaceId);
156
+ }
157
+ return deleted;
158
+ }
159
+ }, {
160
+ key: "clearAll",
161
+ value: function clearAll() {
162
+ this.surfaces.clear();
163
+ this.subscribers.clear();
164
+ if (this.debug) {
165
+ console.log("[SurfaceStateManager] \u6E05\u9664\u6240\u6709\u7F13\u5B58");
166
+ }
167
+ }
168
+ }, {
169
+ key: "getStats",
170
+ value: function getStats() {
171
+ var _this3 = this;
172
+ var surfaces = Array.from(this.surfaces.entries()).map(function (_ref) {
173
+ var _this3$subscribers$ge;
174
+ var _ref2 = _slicedToArray(_ref, 2),
175
+ id = _ref2[0],
176
+ cache = _ref2[1];
177
+ return {
178
+ id: id,
179
+ elementsCount: Object.keys(cache.schema.elements).length,
180
+ updatedAt: cache.updatedAt,
181
+ subscriberCount: ((_this3$subscribers$ge = _this3.subscribers.get(id)) === null || _this3$subscribers$ge === void 0 ? void 0 : _this3$subscribers$ge.size) || 0
182
+ };
183
+ });
184
+ return {
185
+ count: this.surfaces.size,
186
+ surfaces: surfaces
187
+ };
188
+ }
189
+ }]);
190
+ }();
191
+ var surfaceStateManager = new SurfaceStateManager();
192
+
193
+ export { SurfaceStateManager, surfaceStateManager };
194
+ //# sourceMappingURL=SurfaceStateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurfaceStateManager.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/json-render/SurfaceStateManager.ts"],"sourcesContent":["/**\n * Surface 状态管理器(框架无关)\n * \n * 职责:\n * 1. 缓存已创建的 Surface Schema(跨消息/跨轮次)\n * 2. 提供订阅机制,当 Surface 数据更新时通知已渲染的组件\n * \n * 使用场景:\n * - 第一轮对话:createSurface + updateComponents → 创建完整 UI,注册到缓存\n * - 后续轮次:仅 updateDataModel → 更新缓存中的数据,通知订阅者重渲染\n * \n * 设计原则:\n * 1. 服务端是状态的单一数据源(updateDataModel 来自服务端)\n * 2. 本模块只负责存储和订阅,不负责 A2UI → JsonRender 的转换\n * 3. 转换逻辑由 a2ui-to-jsonrender.ts 中的函数完成\n */\n\nimport type { JsonRenderSchema } from './types/core';\nimport { applyA2UIDataUpdate } from './a2ui-to-jsonrender';\n\nexport interface SurfaceCache {\n /** Surface ID */\n surfaceId: string;\n /** Catalog ID */\n catalogId?: string;\n /** 当前的 json-render Schema */\n schema: JsonRenderSchema;\n /** 创建时间 */\n createdAt: number;\n /** 最后更新时间 */\n updatedAt: number;\n}\n\n/** 订阅者回调函数类型 */\nexport type SurfaceSubscriber = (schema: JsonRenderSchema) => void;\n\n/**\n * Surface 状态管理器\n * 单例模式,全局共享 Surface 缓存\n * 框架无关,不依赖 React 或其他 UI 框架\n */\nclass SurfaceStateManager {\n private surfaces: Map<string, SurfaceCache> = new Map();\n /** 订阅者映射:surfaceId → Set<subscriber> */\n private subscribers: Map<string, Set<SurfaceSubscriber>> = new Map();\n private debug: boolean = false;\n\n /**\n * 设置调试模式\n */\n setDebug(enabled: boolean): void {\n this.debug = enabled;\n }\n\n /**\n * 注册 Surface(由创建型消息调用)\n * \n * @param surfaceId Surface ID\n * @param schema 转换后的 json-render Schema\n * @param catalogId 可选的 Catalog ID\n */\n registerSurface(surfaceId: string, schema: JsonRenderSchema, catalogId?: string): void {\n const cache: SurfaceCache = {\n surfaceId,\n catalogId,\n schema,\n createdAt: Date.now(),\n updatedAt: Date.now(),\n };\n \n this.surfaces.set(surfaceId, cache);\n \n if (this.debug) {\n console.log('[SurfaceStateManager] 注册 Surface:', {\n surfaceId,\n elementsCount: Object.keys(schema.elements).length,\n });\n }\n }\n\n /**\n * 更新 Surface 数据(由更新型消息调用)\n * \n * @param surfaceId Surface ID\n * @param path JSON Pointer 路径\n * @param op 操作类型\n * @param value 值\n * @returns 是否成功(Surface 存在)\n */\n updateData(\n surfaceId: string,\n path: string | undefined,\n op: 'add' | 'replace' | 'remove' = 'replace',\n value?: unknown,\n ): boolean {\n const cache = this.surfaces.get(surfaceId);\n if (!cache) {\n if (this.debug) {\n console.warn('[SurfaceStateManager] updateData: Surface 不存在', surfaceId);\n }\n return false;\n }\n\n // 使用已有的增量更新函数\n cache.schema = applyA2UIDataUpdate(cache.schema, path, op, value);\n cache.updatedAt = Date.now();\n\n if (this.debug) {\n console.log('[SurfaceStateManager] 更新数据:', {\n surfaceId,\n path,\n op,\n value,\n newData: cache.schema.data,\n });\n }\n\n // 异步通知订阅者\n this.notifySubscribersAsync(surfaceId, cache.schema);\n \n return true;\n }\n\n /**\n * 订阅 Surface 状态变化\n * \n * @param surfaceId Surface ID\n * @param subscriber 订阅者回调\n * @returns 取消订阅函数\n */\n subscribe(surfaceId: string, subscriber: SurfaceSubscriber): () => void {\n if (!this.subscribers.has(surfaceId)) {\n this.subscribers.set(surfaceId, new Set());\n }\n this.subscribers.get(surfaceId)!.add(subscriber);\n\n if (this.debug) {\n console.log('[SurfaceStateManager] 订阅 Surface:', surfaceId);\n }\n\n // 返回取消订阅函数\n return () => {\n const subs = this.subscribers.get(surfaceId);\n if (subs) {\n subs.delete(subscriber);\n if (subs.size === 0) {\n this.subscribers.delete(surfaceId);\n }\n }\n if (this.debug) {\n console.log('[SurfaceStateManager] 取消订阅 Surface:', surfaceId);\n }\n };\n }\n\n /**\n * 异步通知订阅者(避免在渲染期间调用回调)\n */\n private notifySubscribersAsync(surfaceId: string, schema: JsonRenderSchema): void {\n const subs = this.subscribers.get(surfaceId);\n if (!subs || subs.size === 0) {\n return;\n }\n\n if (this.debug) {\n console.log('[SurfaceStateManager] 准备通知订阅者:', { surfaceId, subscriberCount: subs.size });\n }\n\n // 使用 queueMicrotask 延迟到当前执行栈完成后执行\n queueMicrotask(() => {\n // 重新获取订阅者(可能在这期间已被取消)\n const currentSubs = this.subscribers.get(surfaceId);\n if (!currentSubs || currentSubs.size === 0) {\n return;\n }\n\n if (this.debug) {\n console.log('[SurfaceStateManager] 执行通知订阅者:', { surfaceId });\n }\n\n currentSubs.forEach(subscriber => {\n try {\n subscriber(schema);\n } catch (e) {\n console.error('[SurfaceStateManager] 订阅者回调出错:', e);\n }\n });\n });\n }\n\n /**\n * 获取指定 Surface 的缓存\n */\n getSurface(surfaceId: string): SurfaceCache | undefined {\n return this.surfaces.get(surfaceId);\n }\n\n /**\n * 获取指定 Surface 的 Schema\n */\n getSchema(surfaceId: string): JsonRenderSchema | null {\n return this.surfaces.get(surfaceId)?.schema || null;\n }\n\n /**\n * 检查 Surface 是否存在\n */\n hasSurface(surfaceId: string): boolean {\n return this.surfaces.has(surfaceId);\n }\n\n /**\n * 获取所有 Surface ID\n */\n getAllSurfaceIds(): string[] {\n return Array.from(this.surfaces.keys());\n }\n\n /**\n * 删除 Surface(由 deleteSurface 消息调用)\n */\n deleteSurface(surfaceId: string): boolean {\n this.subscribers.delete(surfaceId);\n const deleted = this.surfaces.delete(surfaceId);\n \n if (this.debug && deleted) {\n console.log('[SurfaceStateManager] 删除 Surface:', surfaceId);\n }\n \n return deleted;\n }\n\n /**\n * 清除所有 Surface 缓存\n */\n clearAll(): void {\n this.surfaces.clear();\n this.subscribers.clear();\n if (this.debug) {\n console.log('[SurfaceStateManager] 清除所有缓存');\n }\n }\n\n /**\n * 获取缓存统计信息\n */\n getStats(): { \n count: number; \n surfaces: Array<{ id: string; elementsCount: number; updatedAt: number; subscriberCount: number }>;\n } {\n const surfaces = Array.from(this.surfaces.entries()).map(([id, cache]) => ({\n id,\n elementsCount: Object.keys(cache.schema.elements).length,\n updatedAt: cache.updatedAt,\n subscriberCount: this.subscribers.get(id)?.size || 0,\n }));\n\n return {\n count: this.surfaces.size,\n surfaces,\n };\n }\n}\n\n// 导出单例实例\nexport const surfaceStateManager = new SurfaceStateManager();\n\n// 导出类供测试或创建独立实例\nexport { SurfaceStateManager };"],"names":["SurfaceStateManager","_classCallCheck","_defineProperty","Map","_createClass","key","value","setDebug","enabled","debug","registerSurface","surfaceId","schema","catalogId","cache","createdAt","Date","now","updatedAt","surfaces","set","console","log","elementsCount","Object","keys","elements","length","updateData","path","op","arguments","undefined","get","warn","applyA2UIDataUpdate","newData","data","notifySubscribersAsync","subscribe","subscriber","_this","subscribers","has","Set","add","subs","size","_this2","subscriberCount","queueMicrotask","currentSubs","forEach","e","error","getSurface","getSchema","_this$surfaces$get","hasSurface","getAllSurfaceIds","Array","from","deleteSurface","deleted","clearAll","clear","getStats","_this3","entries","map","_ref","_this3$subscribers$ge","_ref2","_slicedToArray","id","count","surfaceStateManager"],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * A2UI v0.9 → json-render 适配器
3
+ * 将 A2UI v0.9 协议转换为 json-render Schema
4
+ *
5
+ * 核心设计:
6
+ * 1. A2UI v0.9 的 createSurface 只是初始化信号,不包含组件数据
7
+ * 2. 组件数据通过 updateComponents 消息逐步发送(数组形式)
8
+ * 3. 数据模型通过 updateDataModel 消息填充
9
+ * 4. 组件字段名是 'component',不是 'type'
10
+ */
11
+ import type { JsonRenderSchema } from './types/core';
12
+ import type { A2UIComponent, A2UIMessage } from './types/a2ui';
13
+ /**
14
+ * 转换 A2UI v0.9 消息数组为 json-render Schema
15
+ *
16
+ * 处理流程:
17
+ * 1. 查找 createSurface 消息初始化 Surface
18
+ * 2. 累积所有 updateComponents 消息构建组件树
19
+ * 3. 累积所有 updateDataModel 消息填充数据
20
+ * 4. 转换为 json-render Schema
21
+ *
22
+ * @param messages A2UI 消息数组
23
+ * @returns json-render Schema 或 null
24
+ */
25
+ export declare function convertA2UIMessagesToJsonRender(messages: A2UIMessage[]): JsonRenderSchema | null;
26
+ /**
27
+ * 应用增量更新到现有 Schema
28
+ *
29
+ * @param schema 当前 json-render Schema
30
+ * @param components A2UI updateComponents 的组件数组
31
+ * @returns 更新后的 Schema
32
+ */
33
+ export declare function applyA2UIUpdates(schema: JsonRenderSchema, components: A2UIComponent[]): JsonRenderSchema;
34
+ /**
35
+ * 应用数据模型更新到现有 Schema
36
+ *
37
+ * @param schema 当前 json-render Schema
38
+ * @param path JSON Pointer 路径
39
+ * @param op 操作类型
40
+ * @param value 值
41
+ * @returns 更新后的 Schema
42
+ */
43
+ export declare function applyA2UIDataUpdate(schema: JsonRenderSchema, path: string | undefined, op?: 'add' | 'replace' | 'remove', value?: unknown): JsonRenderSchema;
44
+ declare const _default: {
45
+ convertA2UIMessagesToJsonRender: typeof convertA2UIMessagesToJsonRender;
46
+ applyA2UIUpdates: typeof applyA2UIUpdates;
47
+ applyA2UIDataUpdate: typeof applyA2UIDataUpdate;
48
+ };
49
+ export default _default;