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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (524) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/README.md +76 -22
  3. package/es/_chunks/dep-076af7c3.js +438 -0
  4. package/es/_chunks/dep-076af7c3.js.map +1 -0
  5. package/es/_chunks/dep-1007ac80.js +205 -0
  6. package/es/_chunks/dep-1007ac80.js.map +1 -0
  7. package/es/_chunks/dep-16520c2b.js +1247 -0
  8. package/es/_chunks/dep-16520c2b.js.map +1 -0
  9. package/es/_chunks/dep-1743bd61.js +438 -0
  10. package/es/_chunks/dep-1743bd61.js.map +1 -0
  11. package/es/_chunks/dep-1ca64fef.js +1247 -0
  12. package/es/_chunks/dep-1ca64fef.js.map +1 -0
  13. package/es/_chunks/dep-24472232.js +839 -0
  14. package/es/_chunks/dep-24472232.js.map +1 -0
  15. package/es/_chunks/dep-3864b369.js +839 -0
  16. package/es/_chunks/dep-3864b369.js.map +1 -0
  17. package/es/_chunks/dep-3e40d789.js +169 -0
  18. package/es/_chunks/dep-3e40d789.js.map +1 -0
  19. package/es/_chunks/dep-4dedfbef.js +438 -0
  20. package/es/_chunks/dep-4dedfbef.js.map +1 -0
  21. package/es/_chunks/dep-56f5e08e.js +448 -0
  22. package/es/_chunks/dep-56f5e08e.js.map +1 -0
  23. package/es/_chunks/dep-5b6b17d0.js +169 -0
  24. package/es/_chunks/dep-5b6b17d0.js.map +1 -0
  25. package/es/_chunks/dep-688e4aaa.js +438 -0
  26. package/es/_chunks/dep-688e4aaa.js.map +1 -0
  27. package/es/_chunks/dep-870f0d35.js +839 -0
  28. package/es/_chunks/dep-870f0d35.js.map +1 -0
  29. package/es/_chunks/dep-96eca06f.js +169 -0
  30. package/es/_chunks/dep-96eca06f.js.map +1 -0
  31. package/es/_chunks/dep-ba3bd553.js +169 -0
  32. package/es/_chunks/dep-ba3bd553.js.map +1 -0
  33. package/es/_chunks/dep-bcb234a1.js +839 -0
  34. package/es/_chunks/dep-bcb234a1.js.map +1 -0
  35. package/es/_chunks/dep-de8ac730.js +1247 -0
  36. package/es/_chunks/dep-de8ac730.js.map +1 -0
  37. package/es/_chunks/dep-e9dbff09.js +1247 -0
  38. package/es/_chunks/dep-e9dbff09.js.map +1 -0
  39. package/es/_chunks/dep-ebc4cf30.js +1247 -0
  40. package/es/_chunks/dep-ebc4cf30.js.map +1 -0
  41. package/es/_chunks/dep-f2051ebd.js +839 -0
  42. package/es/_chunks/dep-f2051ebd.js.map +1 -0
  43. package/es/_chunks/dep-f691a67e.js +438 -0
  44. package/es/_chunks/dep-f691a67e.js.map +1 -0
  45. package/es/_chunks/dep-f8016301.js +169 -0
  46. package/es/_chunks/dep-f8016301.js.map +1 -0
  47. package/es/_util/reactify.d.ts +1 -2
  48. package/es/_util/reactify.js +102 -232
  49. package/es/_util/reactify.js.map +1 -1
  50. package/es/attachments/index.js +3 -5
  51. package/es/attachments/index.js.map +1 -1
  52. package/es/chat-actionbar/index.js +3 -5
  53. package/es/chat-actionbar/index.js.map +1 -1
  54. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
  55. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
  56. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
  57. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
  58. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
  59. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
  60. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
  61. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
  62. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
  63. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
  64. package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
  65. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
  66. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
  67. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
  68. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
  69. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
  70. package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
  71. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
  72. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
  73. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
  74. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
  75. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
  76. package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
  77. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
  78. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
  79. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
  80. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
  81. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
  82. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
  83. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
  84. package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
  85. package/es/chat-engine/components/a2ui/containers/index.js +30 -0
  86. package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
  87. package/es/chat-engine/components/a2ui/index.d.ts +11 -0
  88. package/es/chat-engine/components/a2ui/index.js +62 -0
  89. package/es/chat-engine/components/a2ui/index.js.map +1 -0
  90. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
  91. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
  92. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
  93. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
  94. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
  95. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
  96. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
  97. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
  98. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
  99. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
  100. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
  101. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
  102. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
  103. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
  104. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
  105. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
  106. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
  107. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
  108. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
  109. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
  110. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
  111. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
  112. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
  113. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
  114. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
  115. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
  116. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
  117. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
  118. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
  119. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
  120. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
  121. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
  122. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
  123. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
  124. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
  125. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
  126. package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
  127. package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
  128. package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
  129. package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
  130. package/es/chat-engine/components/a2ui/registry.js +74 -0
  131. package/es/chat-engine/components/a2ui/registry.js.map +1 -0
  132. package/es/chat-engine/components/activity/index.js +8 -4
  133. package/es/chat-engine/components/activity/index.js.map +1 -1
  134. package/es/chat-engine/components/activity/registry.d.ts +6 -40
  135. package/es/chat-engine/components/activity/registry.js +22 -76
  136. package/es/chat-engine/components/activity/registry.js.map +1 -1
  137. package/es/chat-engine/components/activity/render.d.ts +1 -1
  138. package/es/chat-engine/components/activity/render.js +21 -69
  139. package/es/chat-engine/components/activity/render.js.map +1 -1
  140. package/es/chat-engine/components/index.js +8 -4
  141. package/es/chat-engine/components/index.js.map +1 -1
  142. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
  143. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
  144. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
  145. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
  146. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
  147. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
  148. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
  149. package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
  150. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
  151. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
  152. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
  153. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
  154. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
  155. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
  156. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
  157. package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
  158. package/es/chat-engine/components/json-render/adapters/index.js +11 -0
  159. package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
  160. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
  161. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
  162. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
  163. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
  164. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
  165. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
  166. package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
  167. package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
  168. package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
  169. package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
  170. package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
  171. package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
  172. package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
  173. package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
  174. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
  175. package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
  176. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
  177. package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
  178. package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
  179. package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
  180. package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
  181. package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
  182. package/es/chat-engine/components/json-render/catalog/button.js +71 -0
  183. package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
  184. package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
  185. package/es/chat-engine/components/json-render/catalog/card.js +57 -0
  186. package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
  187. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
  188. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
  189. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
  190. package/es/chat-engine/components/json-render/catalog/index.d.ts +128 -0
  191. package/es/chat-engine/components/json-render/catalog/index.js +36 -0
  192. package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
  193. package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
  194. package/es/chat-engine/components/json-render/catalog/input.js +36 -0
  195. package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
  196. package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
  197. package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
  198. package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
  199. package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
  200. package/es/chat-engine/components/json-render/catalog/text.js +31 -0
  201. package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
  202. package/es/chat-engine/components/json-render/catalog.d.ts +614 -0
  203. package/es/chat-engine/components/json-render/catalog.js +779 -0
  204. package/es/chat-engine/components/json-render/catalog.js.map +1 -0
  205. package/es/chat-engine/components/json-render/config.d.ts +154 -0
  206. package/es/chat-engine/components/json-render/config.js +36 -0
  207. package/es/chat-engine/components/json-render/config.js.map +1 -0
  208. package/es/chat-engine/components/json-render/contexts/actions.d.ts +79 -0
  209. package/es/chat-engine/components/json-render/contexts/actions.js +313 -0
  210. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
  211. package/es/chat-engine/components/json-render/contexts/data.d.ts +137 -0
  212. package/es/chat-engine/components/json-render/contexts/data.js +183 -0
  213. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
  214. package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
  215. package/es/chat-engine/components/json-render/contexts/index.js +27 -0
  216. package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
  217. package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
  218. package/es/chat-engine/components/json-render/contexts/store.js +104 -0
  219. package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
  220. package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
  221. package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
  222. package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
  223. package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
  224. package/es/chat-engine/components/json-render/contexts/validation.js +159 -0
  225. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
  226. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +39 -0
  227. package/es/chat-engine/components/json-render/contexts/visibility.js +66 -0
  228. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
  229. package/es/chat-engine/components/json-render/engine.d.ts +58 -0
  230. package/es/chat-engine/components/json-render/engine.js +88 -0
  231. package/es/chat-engine/components/json-render/engine.js.map +1 -0
  232. package/es/chat-engine/components/json-render/index.d.ts +13 -0
  233. package/es/chat-engine/components/json-render/index.js +76 -0
  234. package/es/chat-engine/components/json-render/index.js.map +1 -0
  235. package/es/chat-engine/components/json-render/performance.d.ts +91 -0
  236. package/es/chat-engine/components/json-render/performance.js +135 -0
  237. package/es/chat-engine/components/json-render/performance.js.map +1 -0
  238. package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
  239. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
  240. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
  241. package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
  242. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
  243. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
  244. package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
  245. package/es/chat-engine/components/json-render/registry/config.js +76 -0
  246. package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
  247. package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
  248. package/es/chat-engine/components/json-render/registry/index.js +76 -0
  249. package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
  250. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
  251. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
  252. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
  253. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
  254. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
  255. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
  256. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
  257. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
  258. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.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 +133 -0
  261. package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
  262. package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
  263. package/es/chat-engine/components/json-render/renderer/index.js +125 -0
  264. package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
  265. package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
  266. package/es/chat-engine/components/json-render/renderer.js +124 -0
  267. package/es/chat-engine/components/json-render/renderer.js.map +1 -0
  268. package/es/chat-engine/components/json-render/types.d.ts +87 -0
  269. package/es/chat-engine/components/json-render/types.js +7 -0
  270. package/es/chat-engine/components/json-render/types.js.map +1 -0
  271. package/es/chat-engine/components/shared/ComponentErrorBoundary.d.ts +25 -0
  272. package/es/chat-engine/components/shared/ComponentErrorBoundary.js +58 -0
  273. package/es/chat-engine/components/shared/ComponentErrorBoundary.js.map +1 -0
  274. package/es/chat-engine/components/shared/createRegistry.d.ts +36 -0
  275. package/es/chat-engine/components/shared/createRegistry.js +72 -0
  276. package/es/chat-engine/components/shared/createRegistry.js.map +1 -0
  277. package/es/chat-engine/components/shared/index.d.ts +4 -0
  278. package/es/chat-engine/components/shared/index.js +18 -0
  279. package/es/chat-engine/components/shared/index.js.map +1 -0
  280. package/es/chat-engine/components/shared/useRegistrationListener.d.ts +22 -0
  281. package/es/chat-engine/components/shared/useRegistrationListener.js +45 -0
  282. package/es/chat-engine/components/shared/useRegistrationListener.js.map +1 -0
  283. package/es/chat-engine/components/toolcall/index.d.ts +1 -1
  284. package/es/chat-engine/components/toolcall/index.js +11 -7
  285. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  286. package/es/chat-engine/components/toolcall/registry.d.ts +6 -32
  287. package/es/chat-engine/components/toolcall/registry.js +22 -66
  288. package/es/chat-engine/components/toolcall/registry.js.map +1 -1
  289. package/es/chat-engine/components/toolcall/render.js +27 -75
  290. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  291. package/es/chat-engine/core/a2ui/index.d.ts +10 -0
  292. package/es/chat-engine/core/a2ui/index.js +24 -0
  293. package/es/chat-engine/core/a2ui/index.js.map +1 -0
  294. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  295. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
  296. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  297. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
  298. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
  299. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
  300. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
  301. package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
  302. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
  303. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
  304. package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
  305. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
  306. package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
  307. package/es/chat-engine/core/a2ui/types/index.js +9 -0
  308. package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
  309. package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
  310. package/es/chat-engine/core/a2ui/types/types.js +104 -0
  311. package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
  312. package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
  313. package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
  314. package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
  315. package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
  316. package/es/chat-engine/core/a2ui/utils/index.js +13 -0
  317. package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
  318. package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
  319. package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
  320. package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
  321. package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
  322. package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
  323. package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
  324. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  325. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
  326. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  327. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
  328. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
  329. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
  330. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
  331. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
  332. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
  333. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
  334. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
  335. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
  336. package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
  337. package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
  338. package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
  339. package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
  340. package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
  341. package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
  342. package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
  343. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
  344. package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
  345. package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
  346. package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
  347. package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
  348. package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
  349. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
  350. package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
  351. package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
  352. package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
  353. package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
  354. package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
  355. package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
  356. package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
  357. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
  358. package/es/chat-engine/core/adapters/agui/activity-manager.js +150 -0
  359. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
  360. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +149 -0
  361. package/es/chat-engine/core/adapters/agui/event-mapper.js +417 -0
  362. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -0
  363. package/es/chat-engine/core/adapters/agui/events.d.ts +1550 -0
  364. package/es/chat-engine/core/adapters/agui/events.js +199 -0
  365. package/es/chat-engine/core/adapters/agui/events.js.map +1 -0
  366. package/es/chat-engine/core/adapters/agui/index.d.ts +92 -0
  367. package/es/chat-engine/core/adapters/agui/index.js +200 -0
  368. package/es/chat-engine/core/adapters/agui/index.js.map +1 -0
  369. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +99 -0
  370. package/es/chat-engine/core/adapters/agui/state-manager.js +174 -0
  371. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -0
  372. package/es/chat-engine/core/adapters/agui/types/events.d.ts +1570 -0
  373. package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
  374. package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
  375. package/es/chat-engine/core/adapters/agui/types/index.d.ts +854 -0
  376. package/es/chat-engine/core/adapters/agui/types/index.js +279 -0
  377. package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
  378. package/es/chat-engine/core/adapters/agui/types.d.ts +818 -0
  379. package/es/chat-engine/core/adapters/agui/types.js +95 -0
  380. package/es/chat-engine/core/adapters/agui/types.js.map +1 -0
  381. package/es/chat-engine/core/adapters/agui/utils.d.ts +203 -0
  382. package/es/chat-engine/core/adapters/agui/utils.js +330 -0
  383. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -0
  384. package/es/chat-engine/core/adapters/index.d.ts +5 -0
  385. package/es/chat-engine/core/adapters/index.js +34 -0
  386. package/es/chat-engine/core/adapters/index.js.map +1 -0
  387. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
  388. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
  389. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
  390. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
  391. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
  392. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
  393. package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
  394. package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
  395. package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
  396. package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
  397. package/es/chat-engine/core/adapters/json-render/index.js +18 -0
  398. package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
  399. package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
  400. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
  401. package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
  402. package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
  403. package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
  404. package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
  405. package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
  406. package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
  407. package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
  408. package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
  409. package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
  410. package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
  411. package/es/chat-engine/core/event-bus/index.d.ts +5 -0
  412. package/es/chat-engine/core/event-bus/index.js +13 -0
  413. package/es/chat-engine/core/event-bus/index.js.map +1 -0
  414. package/es/chat-engine/core/event-bus/types.d.ts +230 -0
  415. package/es/chat-engine/core/event-bus/types.js +32 -0
  416. package/es/chat-engine/core/event-bus/types.js.map +1 -0
  417. package/es/chat-engine/core/index.d.ts +147 -0
  418. package/es/chat-engine/core/index.js +760 -0
  419. package/es/chat-engine/core/index.js.map +1 -0
  420. package/es/chat-engine/core/processor/index.d.ts +20 -0
  421. package/es/chat-engine/core/processor/index.js +146 -0
  422. package/es/chat-engine/core/processor/index.js.map +1 -0
  423. package/es/chat-engine/core/server/batch-client.d.ts +20 -0
  424. package/es/chat-engine/core/server/batch-client.js +114 -0
  425. package/es/chat-engine/core/server/batch-client.js.map +1 -0
  426. package/es/chat-engine/core/server/connection-manager.d.ts +39 -0
  427. package/es/chat-engine/core/server/connection-manager.js +84 -0
  428. package/es/chat-engine/core/server/connection-manager.js.map +1 -0
  429. package/es/chat-engine/core/server/errors.d.ts +22 -0
  430. package/es/chat-engine/core/server/errors.js +80 -0
  431. package/es/chat-engine/core/server/errors.js.map +1 -0
  432. package/es/chat-engine/core/server/index.d.ts +11 -0
  433. package/es/chat-engine/core/server/index.js +26 -0
  434. package/es/chat-engine/core/server/index.js.map +1 -0
  435. package/es/chat-engine/core/server/llm-service.d.ts +44 -0
  436. package/es/chat-engine/core/server/llm-service.js +200 -0
  437. package/es/chat-engine/core/server/llm-service.js.map +1 -0
  438. package/es/chat-engine/core/server/sse-client.d.ts +77 -0
  439. package/es/chat-engine/core/server/sse-client.js +362 -0
  440. package/es/chat-engine/core/server/sse-client.js.map +1 -0
  441. package/es/chat-engine/core/server/sse-parser.d.ts +49 -0
  442. package/es/chat-engine/core/server/sse-parser.js +116 -0
  443. package/es/chat-engine/core/server/sse-parser.js.map +1 -0
  444. package/es/chat-engine/core/server/types.d.ts +54 -0
  445. package/es/chat-engine/core/server/types.js +28 -0
  446. package/es/chat-engine/core/server/types.js.map +1 -0
  447. package/es/chat-engine/core/store/message.d.ts +27 -0
  448. package/es/chat-engine/core/store/message.js +267 -0
  449. package/es/chat-engine/core/store/message.js.map +1 -0
  450. package/es/chat-engine/core/store/model.d.ts +8 -0
  451. package/es/chat-engine/core/store/model.js +66 -0
  452. package/es/chat-engine/core/store/model.js.map +1 -0
  453. package/es/chat-engine/core/store/reactiveState.d.ts +56 -0
  454. package/es/chat-engine/core/store/reactiveState.js +139 -0
  455. package/es/chat-engine/core/store/reactiveState.js.map +1 -0
  456. package/es/chat-engine/core/type.d.ts +279 -0
  457. package/es/chat-engine/core/type.js +7 -0
  458. package/es/chat-engine/core/type.js.map +1 -0
  459. package/es/chat-engine/core/utils/eventEmitter.d.ts +10 -0
  460. package/es/chat-engine/core/utils/eventEmitter.js +67 -0
  461. package/es/chat-engine/core/utils/eventEmitter.js.map +1 -0
  462. package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
  463. package/es/chat-engine/core/utils/immutable-patch.js +147 -0
  464. package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
  465. package/es/chat-engine/core/utils/index.d.ts +38 -0
  466. package/es/chat-engine/core/utils/index.js +125 -0
  467. package/es/chat-engine/core/utils/index.js.map +1 -0
  468. package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
  469. package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
  470. package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
  471. package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
  472. package/es/chat-engine/core/utils/json-patch/index.js +387 -0
  473. package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
  474. package/es/chat-engine/core/utils/logger.d.ts +30 -0
  475. package/es/chat-engine/core/utils/logger.js +87 -0
  476. package/es/chat-engine/core/utils/logger.js.map +1 -0
  477. package/es/chat-engine/core/utils/performance.d.ts +94 -0
  478. package/es/chat-engine/core/utils/performance.js +205 -0
  479. package/es/chat-engine/core/utils/performance.js.map +1 -0
  480. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
  481. package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
  482. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
  483. package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
  484. package/es/chat-engine/hooks/a2ui/index.js +19 -0
  485. package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
  486. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
  487. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
  488. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
  489. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
  490. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
  491. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
  492. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
  493. package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
  494. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
  495. package/es/chat-engine/hooks/index.js +7 -0
  496. package/es/chat-engine/hooks/index.js.map +1 -1
  497. package/es/chat-engine/hooks/useAgentActivity.js +9 -1
  498. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  499. package/es/chat-engine/hooks/useAgentToolcall.js +9 -1
  500. package/es/chat-engine/hooks/useAgentToolcall.js.map +1 -1
  501. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
  502. package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
  503. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
  504. package/es/chat-engine/index.js +8 -4
  505. package/es/chat-engine/index.js.map +1 -1
  506. package/es/chat-filecard/index.js +3 -5
  507. package/es/chat-filecard/index.js.map +1 -1
  508. package/es/chat-loading/index.js +3 -5
  509. package/es/chat-loading/index.js.map +1 -1
  510. package/es/chat-markdown/index.js +3 -5
  511. package/es/chat-markdown/index.js.map +1 -1
  512. package/es/chat-message/index.js +3 -5
  513. package/es/chat-message/index.js.map +1 -1
  514. package/es/chat-sender/index.js +3 -5
  515. package/es/chat-sender/index.js.map +1 -1
  516. package/es/chat-thinking/index.js +3 -5
  517. package/es/chat-thinking/index.js.map +1 -1
  518. package/es/chatbot/docs/react-best-practice.d.ts +13 -0
  519. package/es/chatbot/index.js +3 -5
  520. package/es/chatbot/index.js.map +1 -1
  521. package/es/index.js +10 -7
  522. package/es/index.js.map +1 -1
  523. package/package.json +16 -11
  524. package/es/chatbot/_example-js/agui-toolcall.d.ts +0 -11
@@ -0,0 +1,158 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.14
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _typeof from '@babel/runtime/helpers/typeof';
8
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
9
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
10
+ import _createClass from '@babel/runtime/helpers/createClass';
11
+
12
+ 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; } } }; }
13
+ 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; } }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ var ComponentTree = /*#__PURE__*/function () {
18
+ function ComponentTree(components, dataStore, pathResolver) {
19
+ _classCallCheck(this, ComponentTree);
20
+ this.components = components;
21
+ this.dataStore = dataStore;
22
+ this.pathResolver = pathResolver;
23
+ this.root = this.buildTree("root", "/");
24
+ }
25
+ return _createClass(ComponentTree, [{
26
+ key: "buildTree",
27
+ value: function buildTree(componentId, dataContextPath) {
28
+ var _this = this;
29
+ var component = this.components.get(componentId);
30
+ if (!component) {
31
+ return null;
32
+ }
33
+ var resolved = _objectSpread(_objectSpread({}, component), {}, {
34
+ dataContextPath: dataContextPath
35
+ });
36
+ var children = component.children;
37
+ if (children) {
38
+ resolved.resolvedChildren = this.resolveChildren(children, dataContextPath);
39
+ }
40
+ var child = component.child;
41
+ if (child && typeof child === "string") {
42
+ var resolvedChild = this.buildTree(child, dataContextPath);
43
+ if (resolvedChild) {
44
+ resolved.resolvedChildren = [resolvedChild];
45
+ }
46
+ }
47
+ var tabItems = component.tabItems;
48
+ if (tabItems && Array.isArray(tabItems)) {
49
+ resolved.resolvedChildren = tabItems.map(function (item) {
50
+ return _this.buildTree(item.child, dataContextPath);
51
+ }).filter(function (c) {
52
+ return c !== null;
53
+ });
54
+ }
55
+ return resolved;
56
+ }
57
+ }, {
58
+ key: "resolveChildren",
59
+ value: function resolveChildren(children, dataContextPath) {
60
+ var _this2 = this;
61
+ if (Array.isArray(children)) {
62
+ return children.map(function (id) {
63
+ return _this2.buildTree(id, dataContextPath);
64
+ }).filter(function (c) {
65
+ return c !== null;
66
+ });
67
+ }
68
+ if (children && _typeof(children) === "object" && "componentId" in children) {
69
+ return this.resolveTemplate(children.componentId, children.path, dataContextPath);
70
+ }
71
+ if (children && _typeof(children) === "object" && "template" in children) {
72
+ var legacyChildren = children;
73
+ return this.resolveTemplate(legacyChildren.template, legacyChildren.dataPath, dataContextPath);
74
+ }
75
+ return [];
76
+ }
77
+ }, {
78
+ key: "resolveTemplate",
79
+ value: function resolveTemplate(templateId, dataPath, parentContextPath) {
80
+ var _this3 = this;
81
+ var resolvedDataPath = this.pathResolver.resolve(dataPath, parentContextPath);
82
+ var data = this.dataStore.get(resolvedDataPath);
83
+ if (!Array.isArray(data)) {
84
+ return [];
85
+ }
86
+ return data.map(function (_, index) {
87
+ var itemContextPath = "".concat(resolvedDataPath, "/").concat(index);
88
+ return _this3.buildTree(templateId, itemContextPath);
89
+ }).filter(function (c) {
90
+ return c !== null;
91
+ });
92
+ }
93
+ }, {
94
+ key: "findComponent",
95
+ value: function findComponent(componentId) {
96
+ return this.findInTree(this.root, componentId);
97
+ }
98
+ }, {
99
+ key: "findInTree",
100
+ value: function findInTree(node, targetId) {
101
+ if (!node) return null;
102
+ if (node.id === targetId) return node;
103
+ if (node.resolvedChildren) {
104
+ var _iterator = _createForOfIteratorHelper(node.resolvedChildren),
105
+ _step;
106
+ try {
107
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
108
+ var child = _step.value;
109
+ var found = this.findInTree(child, targetId);
110
+ if (found) return found;
111
+ }
112
+ } catch (err) {
113
+ _iterator.e(err);
114
+ } finally {
115
+ _iterator.f();
116
+ }
117
+ }
118
+ return null;
119
+ }
120
+ }, {
121
+ key: "traverse",
122
+ value: function traverse(callback) {
123
+ this.traverseNode(this.root, callback);
124
+ }
125
+ }, {
126
+ key: "traverseNode",
127
+ value: function traverseNode(node, callback) {
128
+ if (!node) return;
129
+ callback(node);
130
+ if (node.resolvedChildren) {
131
+ var _iterator2 = _createForOfIteratorHelper(node.resolvedChildren),
132
+ _step2;
133
+ try {
134
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
135
+ var child = _step2.value;
136
+ this.traverseNode(child, callback);
137
+ }
138
+ } catch (err) {
139
+ _iterator2.e(err);
140
+ } finally {
141
+ _iterator2.f();
142
+ }
143
+ }
144
+ }
145
+ }, {
146
+ key: "getAllIds",
147
+ value: function getAllIds() {
148
+ var ids = [];
149
+ this.traverse(function (component) {
150
+ ids.push(component.id);
151
+ });
152
+ return ids;
153
+ }
154
+ }]);
155
+ }();
156
+
157
+ export { ComponentTree, ComponentTree as default };
158
+ //# sourceMappingURL=ComponentTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentTree.js","sources":["../../../../../../pro-components/chat/chat-engine/core/a2ui/processor/ComponentTree.ts"],"sourcesContent":["/**\n * A2UI ComponentTree\n * 将平铺的组件列表转换为嵌套的组件树\n * 参考 @a2ui/core ComponentTree 实现\n * \n * 支持两种 children 模式 (A2UI v0.9 规范):\n * 1. 直接引用: children: [\"comp1\", \"comp2\"]\n * 2. Template 模式: children: { componentId: \"comp1\", path: \"/items\" }\n */\n\nimport type { A2UIComponentBase, ChildrenProperty, ResolvedComponent } from '../types';\nimport type { DataStore } from './DataStore';\nimport type { PathResolver } from './PathResolver';\n\n/**\n * 组件树构建器\n */\nexport class ComponentTree {\n /** 解析后的根组件 */\n readonly root: ResolvedComponent | null;\n\n constructor(\n private components: Map<string, A2UIComponentBase>,\n private dataStore: DataStore,\n private pathResolver: PathResolver\n ) {\n this.root = this.buildTree('root', '/');\n }\n\n /**\n * 递归构建组件树\n * @param componentId 组件 ID\n * @param dataContextPath 当前数据上下文路径\n */\n private buildTree(componentId: string, dataContextPath: string): ResolvedComponent | null {\n const component = this.components.get(componentId);\n if (!component) {\n return null;\n }\n\n // 创建解析后的组件(浅拷贝)\n const resolved: ResolvedComponent = {\n ...component,\n dataContextPath,\n };\n\n // 处理 children\n const children = (component as any).children as ChildrenProperty | undefined;\n if (children) {\n resolved.resolvedChildren = this.resolveChildren(children, dataContextPath);\n }\n\n // 处理 child (Card, Button 等单子组件)\n const child = (component as any).child as string | undefined;\n if (child && typeof child === 'string') {\n const resolvedChild = this.buildTree(child, dataContextPath);\n if (resolvedChild) {\n resolved.resolvedChildren = [resolvedChild];\n }\n }\n\n // 处理 tabItems\n const tabItems = (component as any).tabItems as Array<{ title: any; child: string }> | undefined;\n if (tabItems && Array.isArray(tabItems)) {\n resolved.resolvedChildren = tabItems\n .map((item) => this.buildTree(item.child, dataContextPath))\n .filter((c): c is ResolvedComponent => c !== null);\n }\n\n return resolved;\n }\n\n /**\n * 解析 children 属性\n */\n private resolveChildren(\n children: ChildrenProperty,\n dataContextPath: string\n ): ResolvedComponent[] {\n // 模式1: 直接引用数组\n if (Array.isArray(children)) {\n return children\n .map((id) => this.buildTree(id, dataContextPath))\n .filter((c): c is ResolvedComponent => c !== null);\n }\n\n // 模式2: Template 模式 (A2UI v0.9: componentId + path)\n if (children && typeof children === 'object' && 'componentId' in children) {\n return this.resolveTemplate(children.componentId, children.path, dataContextPath);\n }\n\n // 兼容旧格式 (template + dataPath)\n if (children && typeof children === 'object' && 'template' in children) {\n const legacyChildren = children as { template: string; dataPath: string };\n return this.resolveTemplate(legacyChildren.template, legacyChildren.dataPath, dataContextPath);\n }\n\n return [];\n }\n\n /**\n * 解析 Template 模式的 children\n * Template 会根据 dataPath 指向的数组长度,创建多个子组件实例\n */\n private resolveTemplate(\n templateId: string,\n dataPath: string,\n parentContextPath: string\n ): ResolvedComponent[] {\n // 解析数据路径\n const resolvedDataPath = this.pathResolver.resolve(dataPath, parentContextPath);\n const data = this.dataStore.get(resolvedDataPath);\n\n // 如果数据不是数组,返回空\n if (!Array.isArray(data)) {\n return [];\n }\n\n // 为数组中的每个元素创建一个组件实例\n return data.map((_, index) => {\n const itemContextPath = `${resolvedDataPath}/${index}`;\n return this.buildTree(templateId, itemContextPath);\n }).filter((c): c is ResolvedComponent => c !== null);\n }\n\n /**\n * 查找组件\n */\n findComponent(componentId: string): ResolvedComponent | null {\n return this.findInTree(this.root, componentId);\n }\n\n private findInTree(node: ResolvedComponent | null, targetId: string): ResolvedComponent | null {\n if (!node) return null;\n if (node.id === targetId) return node;\n\n if (node.resolvedChildren) {\n for (const child of node.resolvedChildren) {\n const found = this.findInTree(child, targetId);\n if (found) return found;\n }\n }\n\n return null;\n }\n\n /**\n * 遍历组件树\n */\n traverse(callback: (component: ResolvedComponent) => void): void {\n this.traverseNode(this.root, callback);\n }\n\n private traverseNode(\n node: ResolvedComponent | null,\n callback: (component: ResolvedComponent) => void\n ): void {\n if (!node) return;\n callback(node);\n \n if (node.resolvedChildren) {\n for (const child of node.resolvedChildren) {\n this.traverseNode(child, callback);\n }\n }\n }\n\n /**\n * 获取所有组件 ID\n */\n getAllIds(): string[] {\n const ids: string[] = [];\n this.traverse((component) => {\n ids.push(component.id);\n });\n return ids;\n }\n}\n\nexport default ComponentTree;\n"],"names":["ComponentTree","components","dataStore","pathResolver","_classCallCheck","root","buildTree","_createClass","key","value","componentId","dataContextPath","_this","component","get","resolved","_objectSpread","children","resolvedChildren","resolveChildren","child","resolvedChild","tabItems","Array","isArray","map","item","filter","c","_this2","id","_typeof","resolveTemplate","path","legacyChildren","template","dataPath","templateId","parentContextPath","_this3","resolvedDataPath","resolve","data","_","index","itemContextPath","concat","findComponent","findInTree","node","targetId","_iterator","_createForOfIteratorHelper","_step","s","n","done","found","err","e","f","traverse","callback","traverseNode","_iterator2","_step2","getAllIds","ids","push"],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * A2UI DataStore
3
+ * 管理 Surface 的数据模型,支持 JSON Pointer 路径访问
4
+ * 参考 @a2ui/core DataStore 实现
5
+ */
6
+ /**
7
+ * A2UI 数据存储
8
+ * 支持 JSON Pointer 风格的路径访问
9
+ */
10
+ export declare class DataStore {
11
+ private data;
12
+ /**
13
+ * 获取指定路径的值
14
+ * @param path JSON Pointer 路径 (如 "/user/name")
15
+ */
16
+ get(path: string): unknown;
17
+ /**
18
+ * 设置指定路径的值
19
+ * @param path JSON Pointer 路径
20
+ * @param value 要设置的值
21
+ */
22
+ set(path: string, value: unknown): void;
23
+ /**
24
+ * 深度设置值(不可变方式)
25
+ */
26
+ private setDeep;
27
+ /**
28
+ * 删除指定路径的值
29
+ * @param path JSON Pointer 路径
30
+ */
31
+ remove(path: string): void;
32
+ /**
33
+ * 深度删除值(不可变方式)
34
+ */
35
+ private removeDeep;
36
+ /**
37
+ * 合并数据(增量更新,保留用户已修改的字段)
38
+ * @param path 路径
39
+ * @param value 要合并的值
40
+ */
41
+ merge(path: string, value: unknown): void;
42
+ /**
43
+ * 深度合并对象
44
+ */
45
+ private deepMerge;
46
+ /**
47
+ * 获取完整数据快照
48
+ */
49
+ getSnapshot(): Record<string, unknown>;
50
+ /**
51
+ * 清空数据
52
+ */
53
+ clear(): void;
54
+ /**
55
+ * 检查路径是否存在
56
+ */
57
+ has(path: string): boolean;
58
+ }
59
+ /**
60
+ * 创建 DataStore 实例
61
+ */
62
+ export declare function createDataStore(initialData?: Record<string, unknown>): DataStore;
63
+ export default DataStore;
@@ -0,0 +1,172 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.14
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
8
+ import _toArray from '@babel/runtime/helpers/toArray';
9
+ import _typeof from '@babel/runtime/helpers/typeof';
10
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
11
+ import _createClass from '@babel/runtime/helpers/createClass';
12
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
13
+
14
+ 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; }
15
+ 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; }
16
+ 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; } } }; }
17
+ 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; } }
18
+ 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; }
19
+ function parsePath(path) {
20
+ if (!path || path === "/") return [];
21
+ var normalized = path.startsWith("/") ? path.slice(1) : path;
22
+ return normalized.split("/").filter(Boolean);
23
+ }
24
+ var DataStore = /*#__PURE__*/function () {
25
+ function DataStore() {
26
+ _classCallCheck(this, DataStore);
27
+ _defineProperty(this, "data", {});
28
+ }
29
+ return _createClass(DataStore, [{
30
+ key: "get",
31
+ value: function get(path) {
32
+ var segments = parsePath(path);
33
+ if (segments.length === 0) {
34
+ return this.data;
35
+ }
36
+ var current = this.data;
37
+ var _iterator = _createForOfIteratorHelper(segments),
38
+ _step;
39
+ try {
40
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
41
+ var segment = _step.value;
42
+ if (current === null || current === void 0) {
43
+ return void 0;
44
+ }
45
+ if (_typeof(current) !== "object") {
46
+ return void 0;
47
+ }
48
+ current = current[segment];
49
+ }
50
+ } catch (err) {
51
+ _iterator.e(err);
52
+ } finally {
53
+ _iterator.f();
54
+ }
55
+ return current;
56
+ }
57
+ }, {
58
+ key: "set",
59
+ value: function set(path, value) {
60
+ var segments = parsePath(path);
61
+ if (segments.length === 0) {
62
+ if (_typeof(value) === "object" && value !== null) {
63
+ this.data = _objectSpread({}, value);
64
+ }
65
+ return;
66
+ }
67
+ this.data = this.setDeep(this.data, segments, value);
68
+ }
69
+ }, {
70
+ key: "setDeep",
71
+ value: function setDeep(obj, segments, value) {
72
+ if (segments.length === 0) {
73
+ return obj;
74
+ }
75
+ var _segments = _toArray(segments),
76
+ head = _segments[0],
77
+ tail = _segments.slice(1);
78
+ var newObj = _objectSpread({}, obj);
79
+ if (tail.length === 0) {
80
+ newObj[head] = value;
81
+ } else {
82
+ var existing = obj[head];
83
+ var nested = _typeof(existing) === "object" && existing !== null ? _objectSpread({}, existing) : {};
84
+ newObj[head] = this.setDeep(nested, tail, value);
85
+ }
86
+ return newObj;
87
+ }
88
+ }, {
89
+ key: "remove",
90
+ value: function remove(path) {
91
+ var segments = parsePath(path);
92
+ if (segments.length === 0) {
93
+ this.data = {};
94
+ return;
95
+ }
96
+ this.data = this.removeDeep(this.data, segments);
97
+ }
98
+ }, {
99
+ key: "removeDeep",
100
+ value: function removeDeep(obj, segments) {
101
+ if (segments.length === 0) {
102
+ return obj;
103
+ }
104
+ var _segments2 = _toArray(segments),
105
+ head = _segments2[0],
106
+ tail = _segments2.slice(1);
107
+ var newObj = _objectSpread({}, obj);
108
+ if (tail.length === 0) {
109
+ delete newObj[head];
110
+ } else {
111
+ var existing = obj[head];
112
+ if (_typeof(existing) === "object" && existing !== null) {
113
+ newObj[head] = this.removeDeep(existing, tail);
114
+ }
115
+ }
116
+ return newObj;
117
+ }
118
+ }, {
119
+ key: "merge",
120
+ value: function merge(path, value) {
121
+ var existing = this.get(path);
122
+ if (_typeof(existing) === "object" && existing !== null && _typeof(value) === "object" && value !== null && !Array.isArray(existing) && !Array.isArray(value)) {
123
+ var merged = this.deepMerge(existing, value);
124
+ this.set(path, merged);
125
+ } else if (existing === void 0) {
126
+ this.set(path, value);
127
+ }
128
+ }
129
+ }, {
130
+ key: "deepMerge",
131
+ value: function deepMerge(target, source) {
132
+ var result = _objectSpread({}, target);
133
+ for (var _i = 0, _Object$entries = Object.entries(source); _i < _Object$entries.length; _i++) {
134
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
135
+ key = _Object$entries$_i[0],
136
+ value = _Object$entries$_i[1];
137
+ var existing = target[key];
138
+ if (existing === void 0) {
139
+ result[key] = value;
140
+ } else if (_typeof(existing) === "object" && existing !== null && _typeof(value) === "object" && value !== null && !Array.isArray(existing) && !Array.isArray(value)) {
141
+ result[key] = this.deepMerge(existing, value);
142
+ }
143
+ }
144
+ return result;
145
+ }
146
+ }, {
147
+ key: "getSnapshot",
148
+ value: function getSnapshot() {
149
+ return this.data;
150
+ }
151
+ }, {
152
+ key: "clear",
153
+ value: function clear() {
154
+ this.data = {};
155
+ }
156
+ }, {
157
+ key: "has",
158
+ value: function has(path) {
159
+ return this.get(path) !== void 0;
160
+ }
161
+ }]);
162
+ }();
163
+ function createDataStore(initialData) {
164
+ var store = new DataStore();
165
+ if (initialData) {
166
+ store.set("/", initialData);
167
+ }
168
+ return store;
169
+ }
170
+
171
+ export { DataStore, createDataStore, DataStore as default };
172
+ //# sourceMappingURL=DataStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataStore.js","sources":["../../../../../../pro-components/chat/chat-engine/core/a2ui/processor/DataStore.ts"],"sourcesContent":["/**\n * A2UI DataStore\n * 管理 Surface 的数据模型,支持 JSON Pointer 路径访问\n * 参考 @a2ui/core DataStore 实现\n */\n\n/**\n * 解析 JSON Pointer 路径为段数组\n * @example \"/user/name\" -> [\"user\", \"name\"]\n */\nfunction parsePath(path: string): string[] {\n if (!path || path === '/') return [];\n // 移除开头的 /,然后按 / 分割\n const normalized = path.startsWith('/') ? path.slice(1) : path;\n return normalized.split('/').filter(Boolean);\n}\n\n/**\n * A2UI 数据存储\n * 支持 JSON Pointer 风格的路径访问\n */\nexport class DataStore {\n private data: Record<string, unknown> = {};\n\n /**\n * 获取指定路径的值\n * @param path JSON Pointer 路径 (如 \"/user/name\")\n */\n get(path: string): unknown {\n const segments = parsePath(path);\n \n if (segments.length === 0) {\n return this.data;\n }\n\n let current: unknown = this.data;\n for (const segment of segments) {\n if (current === null || current === undefined) {\n return undefined;\n }\n if (typeof current !== 'object') {\n return undefined;\n }\n current = (current as Record<string, unknown>)[segment];\n }\n\n return current;\n }\n\n /**\n * 设置指定路径的值\n * @param path JSON Pointer 路径\n * @param value 要设置的值\n */\n set(path: string, value: unknown): void {\n const segments = parsePath(path);\n\n if (segments.length === 0) {\n // 设置整个数据对象\n if (typeof value === 'object' && value !== null) {\n this.data = { ...value as Record<string, unknown> };\n }\n return;\n }\n\n // 创建新的数据对象(不可变更新)\n this.data = this.setDeep(this.data, segments, value);\n }\n\n /**\n * 深度设置值(不可变方式)\n */\n private setDeep(\n obj: Record<string, unknown>,\n segments: string[],\n value: unknown\n ): Record<string, unknown> {\n if (segments.length === 0) {\n return obj;\n }\n\n const [head, ...tail] = segments;\n const newObj = { ...obj };\n\n if (tail.length === 0) {\n // 最后一段,直接设置\n newObj[head] = value;\n } else {\n // 递归设置\n const existing = obj[head];\n const nested = typeof existing === 'object' && existing !== null\n ? { ...existing as Record<string, unknown> }\n : {};\n newObj[head] = this.setDeep(nested, tail, value);\n }\n\n return newObj;\n }\n\n /**\n * 删除指定路径的值\n * @param path JSON Pointer 路径\n */\n remove(path: string): void {\n const segments = parsePath(path);\n\n if (segments.length === 0) {\n this.data = {};\n return;\n }\n\n this.data = this.removeDeep(this.data, segments);\n }\n\n /**\n * 深度删除值(不可变方式)\n */\n private removeDeep(\n obj: Record<string, unknown>,\n segments: string[]\n ): Record<string, unknown> {\n if (segments.length === 0) {\n return obj;\n }\n\n const [head, ...tail] = segments;\n const newObj = { ...obj };\n\n if (tail.length === 0) {\n // 最后一段,删除该键\n delete newObj[head];\n } else {\n // 递归删除\n const existing = obj[head];\n if (typeof existing === 'object' && existing !== null) {\n newObj[head] = this.removeDeep(existing as Record<string, unknown>, tail);\n }\n }\n\n return newObj;\n }\n\n /**\n * 合并数据(增量更新,保留用户已修改的字段)\n * @param path 路径\n * @param value 要合并的值\n */\n merge(path: string, value: unknown): void {\n const existing = this.get(path);\n \n if (\n typeof existing === 'object' && existing !== null &&\n typeof value === 'object' && value !== null &&\n !Array.isArray(existing) && !Array.isArray(value)\n ) {\n // 两者都是对象,进行深度合并\n const merged = this.deepMerge(\n existing as Record<string, unknown>,\n value as Record<string, unknown>\n );\n this.set(path, merged);\n } else if (existing === undefined) {\n // 不存在则直接设置\n this.set(path, value);\n }\n // 如果已存在且不是对象,保留原值\n }\n\n /**\n * 深度合并对象\n */\n private deepMerge(\n target: Record<string, unknown>,\n source: Record<string, unknown>\n ): Record<string, unknown> {\n const result = { ...target };\n\n for (const [key, value] of Object.entries(source)) {\n const existing = target[key];\n\n if (existing === undefined) {\n // 新字段,直接设置\n result[key] = value;\n } else if (\n typeof existing === 'object' && existing !== null &&\n typeof value === 'object' && value !== null &&\n !Array.isArray(existing) && !Array.isArray(value)\n ) {\n // 递归合并对象\n result[key] = this.deepMerge(\n existing as Record<string, unknown>,\n value as Record<string, unknown>\n );\n }\n // 已存在且不是对象,保留原值\n }\n\n return result;\n }\n\n /**\n * 获取完整数据快照\n */\n getSnapshot(): Record<string, unknown> {\n return this.data;\n }\n\n /**\n * 清空数据\n */\n clear(): void {\n this.data = {};\n }\n\n /**\n * 检查路径是否存在\n */\n has(path: string): boolean {\n return this.get(path) !== undefined;\n }\n}\n\n/**\n * 创建 DataStore 实例\n */\nexport function createDataStore(initialData?: Record<string, unknown>): DataStore {\n const store = new DataStore();\n if (initialData) {\n store.set('/', initialData);\n }\n return store;\n}\n\nexport default DataStore;\n"],"names":["parsePath","path","normalized","startsWith","slice","split","filter","Boolean","DataStore","_classCallCheck","_defineProperty","_createClass","key","value","get","segments","length","data","current","_iterator","_createForOfIteratorHelper","_step","s","n","done","segment","_typeof","err","e","f","set","_objectSpread","setDeep","obj","_segments","_toArray","head","tail","newObj","existing","nested","remove","removeDeep","_segments2","merge","Array","isArray","merged","deepMerge","target","source","result","_i","_Object$entries","Object","entries","_Object$entries$_i","_slicedToArray","getSnapshot","clear","has","createDataStore","initialData","store"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * A2UI PathResolver
3
+ * 处理相对路径和绝对路径的解析
4
+ * 参考 @a2ui/core PathResolver 实现
5
+ */
6
+ /**
7
+ * 路径解析器
8
+ * 处理 A2UI 中的相对路径和绝对路径
9
+ */
10
+ export declare class PathResolver {
11
+ /**
12
+ * 解析路径
13
+ * @param path 要解析的路径(可以是相对或绝对)
14
+ * @param contextPath 当前数据上下文路径
15
+ * @returns 解析后的绝对路径
16
+ */
17
+ resolve(path: string, contextPath?: string): string;
18
+ /**
19
+ * 规范化路径
20
+ * - 处理多余的斜杠
21
+ * - 处理 . 和 ..
22
+ */
23
+ normalize(path: string): string;
24
+ /**
25
+ * 获取父路径
26
+ * @example "/user/profile/name" -> "/user/profile"
27
+ */
28
+ getParent(path: string): string;
29
+ /**
30
+ * 获取路径的最后一段
31
+ * @example "/user/profile/name" -> "name"
32
+ */
33
+ getBasename(path: string): string;
34
+ /**
35
+ * 连接路径
36
+ */
37
+ join(...paths: string[]): string;
38
+ /**
39
+ * 检查路径是否为另一个路径的子路径
40
+ */
41
+ isChildOf(childPath: string, parentPath: string): boolean;
42
+ }
43
+ /**
44
+ * 默认路径解析器实例
45
+ */
46
+ export declare const pathResolver: PathResolver;
47
+ export default PathResolver;
@@ -0,0 +1,99 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.14
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
8
+ import _createClass from '@babel/runtime/helpers/createClass';
9
+
10
+ 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; } } }; }
11
+ 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; } }
12
+ 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; }
13
+ var PathResolver = /*#__PURE__*/function () {
14
+ function PathResolver() {
15
+ _classCallCheck(this, PathResolver);
16
+ }
17
+ return _createClass(PathResolver, [{
18
+ key: "resolve",
19
+ value: function resolve(path) {
20
+ var contextPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
21
+ if (path.startsWith("/")) {
22
+ return this.normalize(path);
23
+ }
24
+ if (!contextPath || contextPath === "/") {
25
+ return this.normalize("/".concat(path));
26
+ }
27
+ var combined = "".concat(contextPath, "/").concat(path);
28
+ return this.normalize(combined);
29
+ }
30
+ }, {
31
+ key: "normalize",
32
+ value: function normalize(path) {
33
+ var normalized = path.startsWith("/") ? path : "/".concat(path);
34
+ normalized = normalized.replace(/\/+/g, "/");
35
+ var segments = normalized.split("/").filter(Boolean);
36
+ var result = [];
37
+ var _iterator = _createForOfIteratorHelper(segments),
38
+ _step;
39
+ try {
40
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
41
+ var segment = _step.value;
42
+ if (segment === ".") {
43
+ continue;
44
+ }
45
+ if (segment === "..") {
46
+ result.pop();
47
+ } else {
48
+ result.push(segment);
49
+ }
50
+ }
51
+ } catch (err) {
52
+ _iterator.e(err);
53
+ } finally {
54
+ _iterator.f();
55
+ }
56
+ return "/".concat(result.join("/"));
57
+ }
58
+ }, {
59
+ key: "getParent",
60
+ value: function getParent(path) {
61
+ var normalized = this.normalize(path);
62
+ var lastSlash = normalized.lastIndexOf("/");
63
+ if (lastSlash <= 0) {
64
+ return "/";
65
+ }
66
+ return normalized.slice(0, lastSlash);
67
+ }
68
+ }, {
69
+ key: "getBasename",
70
+ value: function getBasename(path) {
71
+ var normalized = this.normalize(path);
72
+ var lastSlash = normalized.lastIndexOf("/");
73
+ return normalized.slice(lastSlash + 1);
74
+ }
75
+ }, {
76
+ key: "join",
77
+ value: function join() {
78
+ for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
79
+ paths[_key] = arguments[_key];
80
+ }
81
+ if (paths.length === 0) return "/";
82
+ return this.normalize(paths.join("/"));
83
+ }
84
+ }, {
85
+ key: "isChildOf",
86
+ value: function isChildOf(childPath, parentPath) {
87
+ var normalizedChild = this.normalize(childPath);
88
+ var normalizedParent = this.normalize(parentPath);
89
+ if (normalizedParent === "/") {
90
+ return true;
91
+ }
92
+ return normalizedChild.startsWith(normalizedParent + "/");
93
+ }
94
+ }]);
95
+ }();
96
+ var pathResolver = new PathResolver();
97
+
98
+ export { PathResolver, PathResolver as default, pathResolver };
99
+ //# sourceMappingURL=PathResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PathResolver.js","sources":["../../../../../../pro-components/chat/chat-engine/core/a2ui/processor/PathResolver.ts"],"sourcesContent":["/**\n * A2UI PathResolver\n * 处理相对路径和绝对路径的解析\n * 参考 @a2ui/core PathResolver 实现\n */\n\n/**\n * 路径解析器\n * 处理 A2UI 中的相对路径和绝对路径\n */\nexport class PathResolver {\n /**\n * 解析路径\n * @param path 要解析的路径(可以是相对或绝对)\n * @param contextPath 当前数据上下文路径\n * @returns 解析后的绝对路径\n */\n resolve(path: string, contextPath: string = ''): string {\n // 绝对路径直接返回\n if (path.startsWith('/')) {\n return this.normalize(path);\n }\n\n // 相对路径需要结合 contextPath\n if (!contextPath || contextPath === '/') {\n return this.normalize(`/${path}`);\n }\n\n // 拼接并规范化\n const combined = `${contextPath}/${path}`;\n return this.normalize(combined);\n }\n\n /**\n * 规范化路径\n * - 处理多余的斜杠\n * - 处理 . 和 ..\n */\n normalize(path: string): string {\n // 确保以 / 开头\n let normalized = path.startsWith('/') ? path : `/${path}`;\n\n // 处理多余的斜杠\n normalized = normalized.replace(/\\/+/g, '/');\n\n // 处理 . 和 ..\n const segments = normalized.split('/').filter(Boolean);\n const result: string[] = [];\n\n for (const segment of segments) {\n if (segment === '.') {\n continue;\n }\n if (segment === '..') {\n result.pop();\n } else {\n result.push(segment);\n }\n }\n\n return `/${result.join('/')}`;\n }\n\n /**\n * 获取父路径\n * @example \"/user/profile/name\" -> \"/user/profile\"\n */\n getParent(path: string): string {\n const normalized = this.normalize(path);\n const lastSlash = normalized.lastIndexOf('/');\n \n if (lastSlash <= 0) {\n return '/';\n }\n\n return normalized.slice(0, lastSlash);\n }\n\n /**\n * 获取路径的最后一段\n * @example \"/user/profile/name\" -> \"name\"\n */\n getBasename(path: string): string {\n const normalized = this.normalize(path);\n const lastSlash = normalized.lastIndexOf('/');\n \n return normalized.slice(lastSlash + 1);\n }\n\n /**\n * 连接路径\n */\n join(...paths: string[]): string {\n if (paths.length === 0) return '/';\n \n return this.normalize(paths.join('/'));\n }\n\n /**\n * 检查路径是否为另一个路径的子路径\n */\n isChildOf(childPath: string, parentPath: string): boolean {\n const normalizedChild = this.normalize(childPath);\n const normalizedParent = this.normalize(parentPath);\n\n if (normalizedParent === '/') {\n return true;\n }\n\n return normalizedChild.startsWith(normalizedParent + '/');\n }\n}\n\n/**\n * 默认路径解析器实例\n */\nexport const pathResolver = new PathResolver();\n\nexport default PathResolver;\n"],"names":["PathResolver","_classCallCheck","_createClass","key","value","resolve","path","contextPath","arguments","length","undefined","startsWith","normalize","concat","combined","normalized","replace","segments","split","filter","Boolean","result","_iterator","_createForOfIteratorHelper","_step","s","n","done","segment","pop","push","err","e","f","join","getParent","lastSlash","lastIndexOf","slice","getBasename","_len","paths","Array","_key","isChildOf","childPath","parentPath","normalizedChild","normalizedParent","pathResolver"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * A2UI 类型定义导出
3
+ */
4
+ export * from './types';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.14
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ export { A2UIActionSchema, A2UIComponentBaseSchema, A2UIComponentType, A2UISurfaceSchema, ExprBindingSchema, PathBindingSchema, booleanOrPathSchema, childrenPropertySchema, componentCommonSchema, createSurfaceMessageSchema, deleteSurfaceMessageSchema, numberOrPathSchema, serverMessageSchema, stringArrayOrPathSchema, stringOrPathSchema, updateComponentsMessageSchema, updateDataModelMessageSchema } from './types.js';
8
+ import 'zod';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}