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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/README.md +76 -22
  3. package/es/_chunks/dep-076af7c3.js +438 -0
  4. package/es/_chunks/dep-076af7c3.js.map +1 -0
  5. package/es/_chunks/dep-1007ac80.js +205 -0
  6. package/es/_chunks/dep-1007ac80.js.map +1 -0
  7. package/es/_chunks/dep-16520c2b.js +1247 -0
  8. package/es/_chunks/dep-16520c2b.js.map +1 -0
  9. package/es/_chunks/dep-1743bd61.js +438 -0
  10. package/es/_chunks/dep-1743bd61.js.map +1 -0
  11. package/es/_chunks/dep-1ca64fef.js +1247 -0
  12. package/es/_chunks/dep-1ca64fef.js.map +1 -0
  13. package/es/_chunks/dep-24472232.js +839 -0
  14. package/es/_chunks/dep-24472232.js.map +1 -0
  15. package/es/_chunks/dep-3864b369.js +839 -0
  16. package/es/_chunks/dep-3864b369.js.map +1 -0
  17. package/es/_chunks/dep-3e40d789.js +169 -0
  18. package/es/_chunks/dep-3e40d789.js.map +1 -0
  19. package/es/_chunks/dep-4dedfbef.js +438 -0
  20. package/es/_chunks/dep-4dedfbef.js.map +1 -0
  21. package/es/_chunks/dep-56f5e08e.js +448 -0
  22. package/es/_chunks/dep-56f5e08e.js.map +1 -0
  23. package/es/_chunks/dep-5b6b17d0.js +169 -0
  24. package/es/_chunks/dep-5b6b17d0.js.map +1 -0
  25. package/es/_chunks/dep-688e4aaa.js +438 -0
  26. package/es/_chunks/dep-688e4aaa.js.map +1 -0
  27. package/es/_chunks/dep-870f0d35.js +839 -0
  28. package/es/_chunks/dep-870f0d35.js.map +1 -0
  29. package/es/_chunks/dep-96eca06f.js +169 -0
  30. package/es/_chunks/dep-96eca06f.js.map +1 -0
  31. package/es/_chunks/dep-ba3bd553.js +169 -0
  32. package/es/_chunks/dep-ba3bd553.js.map +1 -0
  33. package/es/_chunks/dep-bcb234a1.js +839 -0
  34. package/es/_chunks/dep-bcb234a1.js.map +1 -0
  35. package/es/_chunks/dep-de8ac730.js +1247 -0
  36. package/es/_chunks/dep-de8ac730.js.map +1 -0
  37. package/es/_chunks/dep-e9dbff09.js +1247 -0
  38. package/es/_chunks/dep-e9dbff09.js.map +1 -0
  39. package/es/_chunks/dep-ebc4cf30.js +1247 -0
  40. package/es/_chunks/dep-ebc4cf30.js.map +1 -0
  41. package/es/_chunks/dep-f2051ebd.js +839 -0
  42. package/es/_chunks/dep-f2051ebd.js.map +1 -0
  43. package/es/_chunks/dep-f691a67e.js +438 -0
  44. package/es/_chunks/dep-f691a67e.js.map +1 -0
  45. package/es/_chunks/dep-f8016301.js +169 -0
  46. package/es/_chunks/dep-f8016301.js.map +1 -0
  47. package/es/_util/reactify.js +33 -13
  48. package/es/_util/reactify.js.map +1 -1
  49. package/es/_util/useDynamicStyle.js +1 -1
  50. package/es/attachments/index.js +1 -1
  51. package/es/chat-actionbar/index.js +1 -1
  52. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +196 -0
  53. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +301 -0
  54. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +1 -0
  55. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +37 -0
  56. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +116 -0
  57. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +1 -0
  58. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +42 -0
  59. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +113 -0
  60. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +1 -0
  61. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +60 -0
  62. package/es/chat-engine/components/a2ui/A2UISkeleton.js +197 -0
  63. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +1 -0
  64. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +44 -0
  65. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +139 -0
  66. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +1 -0
  67. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +22 -0
  68. package/es/chat-engine/components/a2ui/containers/A2UICard.js +82 -0
  69. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +1 -0
  70. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +18 -0
  71. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +81 -0
  72. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +1 -0
  73. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +14 -0
  74. package/es/chat-engine/components/a2ui/containers/A2UIList.js +62 -0
  75. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +1 -0
  76. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +20 -0
  77. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +84 -0
  78. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +1 -0
  79. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +14 -0
  80. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +69 -0
  81. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +1 -0
  82. package/es/chat-engine/components/a2ui/containers/index.d.ts +8 -0
  83. package/es/chat-engine/components/a2ui/containers/index.js +30 -0
  84. package/es/chat-engine/components/a2ui/containers/index.js.map +1 -0
  85. package/es/chat-engine/components/a2ui/index.d.ts +11 -0
  86. package/es/chat-engine/components/a2ui/index.js +62 -0
  87. package/es/chat-engine/components/a2ui/index.js.map +1 -0
  88. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +33 -0
  89. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +80 -0
  90. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +1 -0
  91. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +12 -0
  92. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +43 -0
  93. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +1 -0
  94. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +50 -0
  95. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +54 -0
  96. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +1 -0
  97. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +13 -0
  98. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +89 -0
  99. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +1 -0
  100. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +12 -0
  101. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +25 -0
  102. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +1 -0
  103. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +13 -0
  104. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +138942 -0
  105. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +1 -0
  106. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +12 -0
  107. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +75 -0
  108. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +1 -0
  109. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +20 -0
  110. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +63 -0
  111. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +1 -0
  112. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +56 -0
  113. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +64 -0
  114. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +1 -0
  115. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +12 -0
  116. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +55 -0
  117. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +1 -0
  118. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +12 -0
  119. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +104 -0
  120. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +1 -0
  121. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +12 -0
  122. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +80 -0
  123. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +1 -0
  124. package/es/chat-engine/components/a2ui/primitives/index.d.ts +15 -0
  125. package/es/chat-engine/components/a2ui/primitives/index.js +39 -0
  126. package/es/chat-engine/components/a2ui/primitives/index.js.map +1 -0
  127. package/es/chat-engine/components/a2ui/registry.d.ts +35 -0
  128. package/es/chat-engine/components/a2ui/registry.js +74 -0
  129. package/es/chat-engine/components/a2ui/registry.js.map +1 -0
  130. package/es/chat-engine/components/activity/index.d.ts +0 -1
  131. package/es/chat-engine/components/activity/index.js +10 -5
  132. package/es/chat-engine/components/activity/index.js.map +1 -1
  133. package/es/chat-engine/components/activity/registry.d.ts +7 -41
  134. package/es/chat-engine/components/activity/registry.js +23 -77
  135. package/es/chat-engine/components/activity/registry.js.map +1 -1
  136. package/es/chat-engine/components/activity/render.d.ts +5 -1
  137. package/es/chat-engine/components/activity/render.js +33 -71
  138. package/es/chat-engine/components/activity/render.js.map +1 -1
  139. package/es/chat-engine/components/activity/types.d.ts +0 -3
  140. package/es/chat-engine/components/activity/types.js +1 -1
  141. package/es/chat-engine/components/index.js +16 -11
  142. package/es/chat-engine/components/index.js.map +1 -1
  143. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +36 -0
  144. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +36 -0
  145. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +1 -0
  146. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +46 -0
  147. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +36 -0
  148. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +1 -0
  149. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +113 -0
  150. package/es/chat-engine/components/json-render/SurfaceStateManager.js +195 -0
  151. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +1 -0
  152. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +49 -0
  153. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +307 -0
  154. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +1 -0
  155. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +96 -0
  156. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +7 -0
  157. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +1 -0
  158. package/es/chat-engine/components/json-render/adapters/index.d.ts +7 -0
  159. package/es/chat-engine/components/json-render/adapters/index.js +11 -0
  160. package/es/chat-engine/components/json-render/adapters/index.js.map +1 -0
  161. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +64 -0
  162. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +36 -0
  163. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +1 -0
  164. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +78 -0
  165. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +36 -0
  166. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +1 -0
  167. package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
  168. package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
  169. package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
  170. package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
  171. package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
  172. package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
  173. package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
  174. package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
  175. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
  176. package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
  177. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
  178. package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
  179. package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
  180. package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
  181. package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
  182. package/es/chat-engine/components/json-render/catalog/button.d.ts +14 -0
  183. package/es/chat-engine/components/json-render/catalog/button.js +71 -0
  184. package/es/chat-engine/components/json-render/catalog/button.js.map +1 -0
  185. package/es/chat-engine/components/json-render/catalog/card.d.ts +11 -0
  186. package/es/chat-engine/components/json-render/catalog/card.js +57 -0
  187. package/es/chat-engine/components/json-render/catalog/card.js.map +1 -0
  188. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
  189. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
  190. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
  191. package/es/chat-engine/components/json-render/catalog/index.d.ts +128 -0
  192. package/es/chat-engine/components/json-render/catalog/index.js +36 -0
  193. package/es/chat-engine/components/json-render/catalog/index.js.map +1 -0
  194. package/es/chat-engine/components/json-render/catalog/input.d.ts +20 -0
  195. package/es/chat-engine/components/json-render/catalog/input.js +36 -0
  196. package/es/chat-engine/components/json-render/catalog/input.js.map +1 -0
  197. package/es/chat-engine/components/json-render/catalog/layout.d.ts +44 -0
  198. package/es/chat-engine/components/json-render/catalog/layout.js +129 -0
  199. package/es/chat-engine/components/json-render/catalog/layout.js.map +1 -0
  200. package/es/chat-engine/components/json-render/catalog/text.d.ts +11 -0
  201. package/es/chat-engine/components/json-render/catalog/text.js +31 -0
  202. package/es/chat-engine/components/json-render/catalog/text.js.map +1 -0
  203. package/es/chat-engine/components/json-render/catalog.d.ts +614 -0
  204. package/es/chat-engine/components/json-render/catalog.js +779 -0
  205. package/es/chat-engine/components/json-render/catalog.js.map +1 -0
  206. package/es/chat-engine/components/json-render/config.d.ts +154 -0
  207. package/es/chat-engine/components/json-render/config.js +36 -0
  208. package/es/chat-engine/components/json-render/config.js.map +1 -0
  209. package/es/chat-engine/components/json-render/contexts/actions.d.ts +79 -0
  210. package/es/chat-engine/components/json-render/contexts/actions.js +313 -0
  211. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -0
  212. package/es/chat-engine/components/json-render/contexts/data.d.ts +137 -0
  213. package/es/chat-engine/components/json-render/contexts/data.js +183 -0
  214. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -0
  215. package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
  216. package/es/chat-engine/components/json-render/contexts/index.js +27 -0
  217. package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
  218. package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
  219. package/es/chat-engine/components/json-render/contexts/store.js +104 -0
  220. package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
  221. package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
  222. package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
  223. package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
  224. package/es/chat-engine/components/json-render/contexts/validation.d.ts +59 -0
  225. package/es/chat-engine/components/json-render/contexts/validation.js +159 -0
  226. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -0
  227. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +39 -0
  228. package/es/chat-engine/components/json-render/contexts/visibility.js +66 -0
  229. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -0
  230. package/es/chat-engine/components/json-render/engine.d.ts +58 -0
  231. package/es/chat-engine/components/json-render/engine.js +88 -0
  232. package/es/chat-engine/components/json-render/engine.js.map +1 -0
  233. package/es/chat-engine/components/json-render/index.d.ts +13 -0
  234. package/es/chat-engine/components/json-render/index.js +76 -0
  235. package/es/chat-engine/components/json-render/index.js.map +1 -0
  236. package/es/chat-engine/components/json-render/performance.d.ts +91 -0
  237. package/es/chat-engine/components/json-render/performance.js +135 -0
  238. package/es/chat-engine/components/json-render/performance.js.map +1 -0
  239. package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
  240. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
  241. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
  242. package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
  243. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
  244. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
  245. package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
  246. package/es/chat-engine/components/json-render/registry/config.js +76 -0
  247. package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
  248. package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
  249. package/es/chat-engine/components/json-render/registry/index.js +76 -0
  250. package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
  251. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
  252. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
  253. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
  254. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
  255. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
  256. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
  257. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
  258. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
  259. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
  260. package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
  261. package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
  262. package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
  263. package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
  264. package/es/chat-engine/components/json-render/renderer/index.js +125 -0
  265. package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
  266. package/es/chat-engine/components/json-render/renderer.d.ts +71 -0
  267. package/es/chat-engine/components/json-render/renderer.js +124 -0
  268. package/es/chat-engine/components/json-render/renderer.js.map +1 -0
  269. package/es/chat-engine/components/json-render/types.d.ts +87 -0
  270. package/es/chat-engine/components/json-render/types.js +7 -0
  271. package/es/chat-engine/components/json-render/types.js.map +1 -0
  272. package/es/chat-engine/components/provider/agent-state.js +1 -1
  273. package/es/chat-engine/components/shared/ComponentErrorBoundary.d.ts +25 -0
  274. package/es/chat-engine/components/shared/ComponentErrorBoundary.js +58 -0
  275. package/es/chat-engine/components/shared/ComponentErrorBoundary.js.map +1 -0
  276. package/es/chat-engine/components/shared/createRegistry.d.ts +36 -0
  277. package/es/chat-engine/components/shared/createRegistry.js +72 -0
  278. package/es/chat-engine/components/shared/createRegistry.js.map +1 -0
  279. package/es/chat-engine/components/shared/index.d.ts +4 -0
  280. package/es/chat-engine/components/shared/index.js +18 -0
  281. package/es/chat-engine/components/shared/index.js.map +1 -0
  282. package/es/chat-engine/components/shared/useRegistrationListener.d.ts +22 -0
  283. package/es/chat-engine/components/shared/useRegistrationListener.js +45 -0
  284. package/es/chat-engine/components/shared/useRegistrationListener.js.map +1 -0
  285. package/es/chat-engine/components/toolcall/index.d.ts +1 -1
  286. package/es/chat-engine/components/toolcall/index.js +12 -8
  287. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  288. package/es/chat-engine/components/toolcall/registry.d.ts +6 -32
  289. package/es/chat-engine/components/toolcall/registry.js +23 -67
  290. package/es/chat-engine/components/toolcall/registry.js.map +1 -1
  291. package/es/chat-engine/components/toolcall/render.d.ts +1 -1
  292. package/es/chat-engine/components/toolcall/render.js +30 -79
  293. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  294. package/es/chat-engine/components/toolcall/types.js +1 -1
  295. package/es/chat-engine/core/a2ui/index.d.ts +10 -0
  296. package/es/chat-engine/core/a2ui/index.js +24 -0
  297. package/es/chat-engine/core/a2ui/index.js.map +1 -0
  298. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  299. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +438 -0
  300. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  301. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +53 -0
  302. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +158 -0
  303. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +1 -0
  304. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +63 -0
  305. package/es/chat-engine/core/a2ui/processor/DataStore.js +172 -0
  306. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +1 -0
  307. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +47 -0
  308. package/es/chat-engine/core/a2ui/processor/PathResolver.js +99 -0
  309. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +1 -0
  310. package/es/chat-engine/core/a2ui/types/index.d.ts +4 -0
  311. package/es/chat-engine/core/a2ui/types/index.js +9 -0
  312. package/es/chat-engine/core/a2ui/types/index.js.map +1 -0
  313. package/es/chat-engine/core/a2ui/types/types.d.ts +770 -0
  314. package/es/chat-engine/core/a2ui/types/types.js +104 -0
  315. package/es/chat-engine/core/a2ui/types/types.js.map +1 -0
  316. package/es/chat-engine/core/a2ui/utils/binding.d.ts +34 -0
  317. package/es/chat-engine/core/a2ui/utils/binding.js +1784 -0
  318. package/es/chat-engine/core/a2ui/utils/binding.js.map +1 -0
  319. package/es/chat-engine/core/a2ui/utils/index.d.ts +5 -0
  320. package/es/chat-engine/core/a2ui/utils/index.js +13 -0
  321. package/es/chat-engine/core/a2ui/utils/index.js.map +1 -0
  322. package/es/chat-engine/core/a2ui/utils/validation.d.ts +70 -0
  323. package/es/chat-engine/core/a2ui/utils/validation.js +333 -0
  324. package/es/chat-engine/core/a2ui/utils/validation.js.map +1 -0
  325. package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
  326. package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
  327. package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
  328. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  329. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
  330. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  331. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
  332. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
  333. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
  334. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
  335. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
  336. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
  337. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
  338. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
  339. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
  340. package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
  341. package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
  342. package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
  343. package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
  344. package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
  345. package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
  346. package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
  347. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
  348. package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
  349. package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
  350. package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
  351. package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
  352. package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
  353. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
  354. package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
  355. package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
  356. package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
  357. package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
  358. package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
  359. package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
  360. package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
  361. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +102 -0
  362. package/es/chat-engine/core/adapters/agui/activity-manager.js +150 -0
  363. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -0
  364. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +42 -2
  365. package/es/chat-engine/core/adapters/agui/event-mapper.js +94 -52
  366. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
  367. package/es/chat-engine/core/adapters/agui/events.d.ts +222 -222
  368. package/es/chat-engine/core/adapters/agui/events.js +34 -34
  369. package/es/chat-engine/core/adapters/agui/events.js.map +1 -1
  370. package/es/chat-engine/core/adapters/agui/index.d.ts +21 -4
  371. package/es/chat-engine/core/adapters/agui/index.js +48 -23
  372. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  373. package/es/chat-engine/core/adapters/agui/state-manager.js +7 -1
  374. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -1
  375. package/es/chat-engine/core/adapters/agui/types/events.d.ts +1570 -0
  376. package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
  377. package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
  378. package/es/chat-engine/core/adapters/agui/types/index.d.ts +854 -0
  379. package/es/chat-engine/core/adapters/agui/types/index.js +279 -0
  380. package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
  381. package/es/chat-engine/core/adapters/agui/types.d.ts +57 -56
  382. package/es/chat-engine/core/adapters/agui/types.js +5 -5
  383. package/es/chat-engine/core/adapters/agui/types.js.map +1 -1
  384. package/es/chat-engine/core/adapters/agui/utils.d.ts +9 -3
  385. package/es/chat-engine/core/adapters/agui/utils.js +23 -4
  386. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
  387. package/es/chat-engine/core/adapters/index.d.ts +5 -0
  388. package/es/chat-engine/core/adapters/index.js +34 -0
  389. package/es/chat-engine/core/adapters/index.js.map +1 -0
  390. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
  391. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
  392. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
  393. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
  394. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
  395. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
  396. package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
  397. package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
  398. package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
  399. package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
  400. package/es/chat-engine/core/adapters/json-render/index.js +18 -0
  401. package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
  402. package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
  403. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
  404. package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
  405. package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
  406. package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
  407. package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
  408. package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
  409. package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
  410. package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
  411. package/es/chat-engine/core/event-bus/ChatEventBus.d.ts +88 -0
  412. package/es/chat-engine/core/event-bus/ChatEventBus.js +295 -0
  413. package/es/chat-engine/core/event-bus/ChatEventBus.js.map +1 -0
  414. package/es/chat-engine/core/event-bus/index.d.ts +5 -0
  415. package/es/chat-engine/core/event-bus/index.js +13 -0
  416. package/es/chat-engine/core/event-bus/index.js.map +1 -0
  417. package/es/chat-engine/core/event-bus/types.d.ts +230 -0
  418. package/es/chat-engine/core/event-bus/types.js +32 -0
  419. package/es/chat-engine/core/event-bus/types.js.map +1 -0
  420. package/es/chat-engine/core/index.d.ts +17 -2
  421. package/es/chat-engine/core/index.js +185 -22
  422. package/es/chat-engine/core/index.js.map +1 -1
  423. package/es/chat-engine/core/processor/index.js +1 -1
  424. package/es/chat-engine/core/server/batch-client.js +1 -1
  425. package/es/chat-engine/core/server/connection-manager.js +1 -1
  426. package/es/chat-engine/core/server/errors.js +1 -1
  427. package/es/chat-engine/core/server/index.js +1 -1
  428. package/es/chat-engine/core/server/llm-service.js +4 -2
  429. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  430. package/es/chat-engine/core/server/sse-client.js +1 -1
  431. package/es/chat-engine/core/server/sse-parser.js +1 -1
  432. package/es/chat-engine/core/server/types.js +1 -1
  433. package/es/chat-engine/core/store/message.js +6 -2
  434. package/es/chat-engine/core/store/message.js.map +1 -1
  435. package/es/chat-engine/core/store/model.js +2 -1
  436. package/es/chat-engine/core/store/model.js.map +1 -1
  437. package/es/chat-engine/core/store/reactiveState.d.ts +4 -0
  438. package/es/chat-engine/core/store/reactiveState.js +15 -1235
  439. package/es/chat-engine/core/store/reactiveState.js.map +1 -1
  440. package/es/chat-engine/core/type.d.ts +25 -1
  441. package/es/chat-engine/core/type.js +1 -1
  442. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  443. package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
  444. package/es/chat-engine/core/utils/immutable-patch.js +147 -0
  445. package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
  446. package/es/chat-engine/core/utils/index.d.ts +7 -2
  447. package/es/chat-engine/core/utils/index.js +9 -883
  448. package/es/chat-engine/core/utils/index.js.map +1 -1
  449. package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
  450. package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
  451. package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
  452. package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
  453. package/es/chat-engine/core/utils/json-patch/index.js +387 -0
  454. package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
  455. package/es/chat-engine/core/utils/logger.js +1 -1
  456. package/es/chat-engine/core/utils/performance.d.ts +94 -0
  457. package/es/chat-engine/core/utils/performance.js +205 -0
  458. package/es/chat-engine/core/utils/performance.js.map +1 -0
  459. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +90 -0
  460. package/es/chat-engine/hooks/a2ui/A2UIContext.js +97 -0
  461. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +1 -0
  462. package/es/chat-engine/hooks/a2ui/index.d.ts +12 -0
  463. package/es/chat-engine/hooks/a2ui/index.js +19 -0
  464. package/es/chat-engine/hooks/a2ui/index.js.map +1 -0
  465. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +40 -0
  466. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +74 -0
  467. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +1 -0
  468. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +36 -0
  469. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +39 -0
  470. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +1 -0
  471. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +53 -0
  472. package/es/chat-engine/hooks/a2ui/useDataBinding.js +111 -0
  473. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +1 -0
  474. package/es/chat-engine/hooks/index.js +8 -1
  475. package/es/chat-engine/hooks/index.js.map +1 -1
  476. package/es/chat-engine/hooks/useAgentActivity.d.ts +1 -2
  477. package/es/chat-engine/hooks/useAgentActivity.js +10 -2
  478. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  479. package/es/chat-engine/hooks/useAgentState.js +1 -1
  480. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  481. package/es/chat-engine/hooks/useAgentToolcall.js +10 -2
  482. package/es/chat-engine/hooks/useAgentToolcall.js.map +1 -1
  483. package/es/chat-engine/hooks/useChat.d.ts +1 -1
  484. package/es/chat-engine/hooks/useChat.js +3 -3
  485. package/es/chat-engine/hooks/useChat.js.map +1 -1
  486. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +56 -0
  487. package/es/chat-engine/hooks/useJsonRenderActivity.js +63 -0
  488. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +1 -0
  489. package/es/chat-engine/index.d.ts +2 -4
  490. package/es/chat-engine/index.js +14 -34
  491. package/es/chat-engine/index.js.map +1 -1
  492. package/es/chat-filecard/index.js +1 -1
  493. package/es/chat-loading/index.js +1 -1
  494. package/es/chat-markdown/index.js +1 -1
  495. package/es/chat-message/index.js +1 -1
  496. package/es/chat-sender/index.js +1 -1
  497. package/es/chat-thinking/index.js +1 -1
  498. package/es/chatbot/docs/react-best-practice.d.ts +13 -0
  499. package/es/chatbot/index.js +1 -1
  500. package/es/index.js +13 -31
  501. package/es/index.js.map +1 -1
  502. package/es/style/index.js +1 -1
  503. package/package.json +10 -5
@@ -0,0 +1,205 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.11
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
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
+
12
+ var PerformanceMonitor = /*#__PURE__*/function () {
13
+ function PerformanceMonitor() {
14
+ _classCallCheck(this, PerformanceMonitor);
15
+ _defineProperty(this, "metrics", []);
16
+ _defineProperty(this, "maxMetricsCount", 100);
17
+ }
18
+ return _createClass(PerformanceMonitor, [{
19
+ key: "start",
20
+ value: function start() {
21
+ var _this = this;
22
+ var startTime = performance.now();
23
+ return function (elementCount) {
24
+ var endTime = performance.now();
25
+ var renderTime = endTime - startTime;
26
+ var metric = {
27
+ renderTime: renderTime,
28
+ updateTime: 0,
29
+ memoryUsage: _this.getMemoryUsage(),
30
+ componentCount: elementCount,
31
+ timestamp: Date.now()
32
+ };
33
+ _this.addMetric(metric);
34
+ return metric;
35
+ };
36
+ }
37
+ }, {
38
+ key: "measureUpdate",
39
+ value: function measureUpdate(fn) {
40
+ var startTime = performance.now();
41
+ var result = fn();
42
+ var endTime = performance.now();
43
+ var updateTime = endTime - startTime;
44
+ var metric = {
45
+ renderTime: 0,
46
+ updateTime: updateTime,
47
+ memoryUsage: this.getMemoryUsage(),
48
+ componentCount: 0,
49
+ timestamp: Date.now()
50
+ };
51
+ this.addMetric(metric);
52
+ return {
53
+ result: result,
54
+ metric: metric
55
+ };
56
+ }
57
+ }, {
58
+ key: "getMemoryUsage",
59
+ value: function getMemoryUsage() {
60
+ if (typeof performance !== "undefined" && "memory" in performance) {
61
+ var _performance$memory;
62
+ return (((_performance$memory = performance.memory) === null || _performance$memory === void 0 ? void 0 : _performance$memory.usedJSHeapSize) || 0) / 1024 / 1024;
63
+ }
64
+ return 0;
65
+ }
66
+ }, {
67
+ key: "addMetric",
68
+ value: function addMetric(metric) {
69
+ this.metrics.push(metric);
70
+ if (this.metrics.length > this.maxMetricsCount) {
71
+ this.metrics.shift();
72
+ }
73
+ }
74
+ }, {
75
+ key: "getMetrics",
76
+ value: function getMetrics() {
77
+ return _toConsumableArray(this.metrics);
78
+ }
79
+ }, {
80
+ key: "getAverageRenderTime",
81
+ value: function getAverageRenderTime() {
82
+ var renderMetrics = this.metrics.filter(function (m) {
83
+ return m.renderTime > 0;
84
+ });
85
+ if (renderMetrics.length === 0) return 0;
86
+ var totalTime = renderMetrics.reduce(function (sum, m) {
87
+ return sum + m.renderTime;
88
+ }, 0);
89
+ return totalTime / renderMetrics.length;
90
+ }
91
+ }, {
92
+ key: "getAverageUpdateTime",
93
+ value: function getAverageUpdateTime() {
94
+ var updateMetrics = this.metrics.filter(function (m) {
95
+ return m.updateTime > 0;
96
+ });
97
+ if (updateMetrics.length === 0) return 0;
98
+ var totalTime = updateMetrics.reduce(function (sum, m) {
99
+ return sum + m.updateTime;
100
+ }, 0);
101
+ return totalTime / updateMetrics.length;
102
+ }
103
+ }, {
104
+ key: "getRecentAverageTime",
105
+ value: function getRecentAverageTime() {
106
+ var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
107
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "render";
108
+ var recentMetrics = this.metrics.slice(-count);
109
+ if (recentMetrics.length === 0) return 0;
110
+ var timeField = type === "render" ? "renderTime" : "updateTime";
111
+ var validMetrics = recentMetrics.filter(function (m) {
112
+ return m[timeField] > 0;
113
+ });
114
+ if (validMetrics.length === 0) return 0;
115
+ var totalTime = validMetrics.reduce(function (sum, m) {
116
+ return sum + m[timeField];
117
+ }, 0);
118
+ return totalTime / validMetrics.length;
119
+ }
120
+ }, {
121
+ key: "getSummary",
122
+ value: function getSummary() {
123
+ var renderMetrics = this.metrics.filter(function (m) {
124
+ return m.renderTime > 0;
125
+ });
126
+ var updateMetrics = this.metrics.filter(function (m) {
127
+ return m.updateTime > 0;
128
+ });
129
+ return {
130
+ totalOperations: this.metrics.length,
131
+ renderOperations: renderMetrics.length,
132
+ updateOperations: updateMetrics.length,
133
+ avgRenderTime: this.getAverageRenderTime(),
134
+ avgUpdateTime: this.getAverageUpdateTime(),
135
+ recentAvgRenderTime: this.getRecentAverageTime(10, "render"),
136
+ recentAvgUpdateTime: this.getRecentAverageTime(10, "update"),
137
+ avgMemoryUsage: this.getAverageMemoryUsage()
138
+ };
139
+ }
140
+ }, {
141
+ key: "getAverageMemoryUsage",
142
+ value: function getAverageMemoryUsage() {
143
+ if (this.metrics.length === 0) return 0;
144
+ var totalMemory = this.metrics.reduce(function (sum, m) {
145
+ return sum + m.memoryUsage;
146
+ }, 0);
147
+ return totalMemory / this.metrics.length;
148
+ }
149
+ }, {
150
+ key: "reset",
151
+ value: function reset() {
152
+ this.metrics = [];
153
+ }
154
+ }, {
155
+ key: "printSummary",
156
+ value: function printSummary() {
157
+ var summary = this.getSummary();
158
+ console.log("[json-render Performance Summary]", {
159
+ "\u603B\u64CD\u4F5C\u6B21\u6570": summary.totalOperations,
160
+ "\u6E32\u67D3\u64CD\u4F5C": summary.renderOperations,
161
+ "\u66F4\u65B0\u64CD\u4F5C": summary.updateOperations,
162
+ "\u5E73\u5747\u6E32\u67D3\u65F6\u95F4(ms)": summary.avgRenderTime.toFixed(2),
163
+ "\u5E73\u5747\u66F4\u65B0\u65F6\u95F4(ms)": summary.avgUpdateTime.toFixed(2),
164
+ "\u6700\u8FD110\u6B21\u6E32\u67D3\u65F6\u95F4(ms)": summary.recentAvgRenderTime.toFixed(2),
165
+ "\u6700\u8FD110\u6B21\u66F4\u65B0\u65F6\u95F4(ms)": summary.recentAvgUpdateTime.toFixed(2),
166
+ "\u5E73\u5747\u5185\u5B58\u4F7F\u7528(MB)": summary.avgMemoryUsage.toFixed(2)
167
+ });
168
+ }
169
+ }]);
170
+ }();
171
+ var globalPerformanceMonitor = new PerformanceMonitor();
172
+ var PERFORMANCE_THRESHOLDS = {
173
+ renderTime: 50,
174
+ updateTime: 16,
175
+ memoryUsage: 100
176
+ };
177
+ function checkPerformance(metric) {
178
+ var thresholds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : PERFORMANCE_THRESHOLDS;
179
+ if (metric.renderTime > thresholds.renderTime) {
180
+ console.warn("[json-render Performance Warning] \u6E32\u67D3\u8017\u65F6 ".concat(metric.renderTime.toFixed(2), "ms\uFF0C\u8D85\u8FC7\u9608\u503C ").concat(thresholds.renderTime, "ms"), {
181
+ componentCount: metric.componentCount,
182
+ memoryUsage: metric.memoryUsage.toFixed(2) + "MB"
183
+ });
184
+ }
185
+ if (metric.updateTime > thresholds.updateTime) {
186
+ console.warn("[json-render Performance Warning] \u66F4\u65B0\u8017\u65F6 ".concat(metric.updateTime.toFixed(2), "ms\uFF0C\u8D85\u8FC7\u9608\u503C ").concat(thresholds.updateTime, "ms"), {
187
+ componentCount: metric.componentCount,
188
+ memoryUsage: metric.memoryUsage.toFixed(2) + "MB"
189
+ });
190
+ }
191
+ if (metric.memoryUsage > thresholds.memoryUsage) {
192
+ console.warn("[json-render Performance Warning] \u5185\u5B58\u4F7F\u7528 ".concat(metric.memoryUsage.toFixed(2), "MB\uFF0C\u8D85\u8FC7\u9608\u503C ").concat(thresholds.memoryUsage, "MB"), {
193
+ componentCount: metric.componentCount
194
+ });
195
+ }
196
+ }
197
+ var performance$1 = {
198
+ PerformanceMonitor: PerformanceMonitor,
199
+ globalPerformanceMonitor: globalPerformanceMonitor,
200
+ checkPerformance: checkPerformance,
201
+ PERFORMANCE_THRESHOLDS: PERFORMANCE_THRESHOLDS
202
+ };
203
+
204
+ export { PERFORMANCE_THRESHOLDS, PerformanceMonitor, checkPerformance, performance$1 as default, globalPerformanceMonitor };
205
+ //# sourceMappingURL=performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.js","sources":["../../../../../pro-components/chat/chat-engine/core/utils/performance.ts"],"sourcesContent":["/**\n * json-render 性能监控和优化工具(框架无关)\n */\n\nimport type { PerformanceMetrics, PerformanceThresholds } from '../adapters/json-render/types/core';\n\n/**\n * 性能监控器\n * 框架无关,可在任何 JavaScript 环境中使用\n */\nexport class PerformanceMonitor {\n private metrics: PerformanceMetrics[] = [];\n private maxMetricsCount = 100; // 最多保留 100 条记录\n\n /**\n * 开始性能测量\n */\n start(): (elementCount: number, deltaInfo?: { fromIndex: number; toIndex: number }) => PerformanceMetrics {\n const startTime = performance.now();\n \n return (\n elementCount: number,\n ): PerformanceMetrics => {\n const endTime = performance.now();\n const renderTime = endTime - startTime;\n\n const metric: PerformanceMetrics = {\n renderTime,\n updateTime: 0, // 这里只测量渲染时间,更新时间由调用方设置\n memoryUsage: this.getMemoryUsage(),\n componentCount: elementCount,\n timestamp: Date.now(),\n };\n\n this.addMetric(metric);\n return metric;\n };\n }\n\n /**\n * 测量更新性能\n */\n measureUpdate<T>(fn: () => T): { result: T; metric: PerformanceMetrics } {\n const startTime = performance.now();\n const result = fn();\n const endTime = performance.now();\n const updateTime = endTime - startTime;\n\n const metric: PerformanceMetrics = {\n renderTime: 0,\n updateTime,\n memoryUsage: this.getMemoryUsage(),\n componentCount: 0, // 更新操作不涉及组件数量\n timestamp: Date.now(),\n };\n\n this.addMetric(metric);\n return { result, metric };\n }\n\n /**\n * 获取内存使用情况(MB)\n */\n private getMemoryUsage(): number {\n if (typeof performance !== 'undefined' && 'memory' in performance) {\n // @ts-ignore - performance.memory 在某些环境中可用\n return (performance.memory?.usedJSHeapSize || 0) / 1024 / 1024;\n }\n return 0;\n }\n\n /**\n * 添加性能指标\n */\n private addMetric(metric: PerformanceMetrics): void {\n this.metrics.push(metric);\n\n // 限制记录数量\n if (this.metrics.length > this.maxMetricsCount) {\n this.metrics.shift();\n }\n }\n\n /**\n * 获取所有指标\n */\n getMetrics(): PerformanceMetrics[] {\n return [...this.metrics];\n }\n\n /**\n * 获取平均渲染时间\n */\n getAverageRenderTime(): number {\n const renderMetrics = this.metrics.filter(m => m.renderTime > 0);\n if (renderMetrics.length === 0) return 0;\n\n const totalTime = renderMetrics.reduce((sum, m) => sum + m.renderTime, 0);\n return totalTime / renderMetrics.length;\n }\n\n /**\n * 获取平均更新时间\n */\n getAverageUpdateTime(): number {\n const updateMetrics = this.metrics.filter(m => m.updateTime > 0);\n if (updateMetrics.length === 0) return 0;\n\n const totalTime = updateMetrics.reduce((sum, m) => sum + m.updateTime, 0);\n return totalTime / updateMetrics.length;\n }\n\n /**\n * 获取最近 N 次操作的平均时间\n */\n getRecentAverageTime(count: number = 10, type: 'render' | 'update' = 'render'): number {\n const recentMetrics = this.metrics.slice(-count);\n if (recentMetrics.length === 0) return 0;\n\n const timeField = type === 'render' ? 'renderTime' : 'updateTime';\n const validMetrics = recentMetrics.filter(m => m[timeField] > 0);\n if (validMetrics.length === 0) return 0;\n\n const totalTime = validMetrics.reduce((sum, m) => sum + m[timeField], 0);\n return totalTime / validMetrics.length;\n }\n\n /**\n * 获取性能统计摘要\n */\n getSummary() {\n const renderMetrics = this.metrics.filter(m => m.renderTime > 0);\n const updateMetrics = this.metrics.filter(m => m.updateTime > 0);\n\n return {\n totalOperations: this.metrics.length,\n renderOperations: renderMetrics.length,\n updateOperations: updateMetrics.length,\n avgRenderTime: this.getAverageRenderTime(),\n avgUpdateTime: this.getAverageUpdateTime(),\n recentAvgRenderTime: this.getRecentAverageTime(10, 'render'),\n recentAvgUpdateTime: this.getRecentAverageTime(10, 'update'),\n avgMemoryUsage: this.getAverageMemoryUsage(),\n };\n }\n\n /**\n * 获取平均内存使用\n */\n private getAverageMemoryUsage(): number {\n if (this.metrics.length === 0) return 0;\n const totalMemory = this.metrics.reduce((sum, m) => sum + m.memoryUsage, 0);\n return totalMemory / this.metrics.length;\n }\n\n /**\n * 重置所有指标\n */\n reset(): void {\n this.metrics = [];\n }\n\n /**\n * 打印性能摘要\n */\n printSummary(): void {\n const summary = this.getSummary();\n console.log('[json-render Performance Summary]', {\n '总操作次数': summary.totalOperations,\n '渲染操作': summary.renderOperations,\n '更新操作': summary.updateOperations,\n '平均渲染时间(ms)': summary.avgRenderTime.toFixed(2),\n '平均更新时间(ms)': summary.avgUpdateTime.toFixed(2),\n '最近10次渲染时间(ms)': summary.recentAvgRenderTime.toFixed(2),\n '最近10次更新时间(ms)': summary.recentAvgUpdateTime.toFixed(2),\n '平均内存使用(MB)': summary.avgMemoryUsage.toFixed(2),\n });\n }\n}\n\n/**\n * 全局性能监控实例\n */\nexport const globalPerformanceMonitor = new PerformanceMonitor();\n\n/**\n * 性能警告阈值(ms)\n */\nexport const PERFORMANCE_THRESHOLDS: PerformanceThresholds = {\n renderTime: 50, // 渲染超过 50ms 发出警告\n updateTime: 16, // 更新超过 16ms 发出警告(1帧)\n memoryUsage: 100, // 内存使用超过 100MB 发出警告\n};\n\n/**\n * 检查性能并发出警告\n */\nexport function checkPerformance(metric: PerformanceMetrics, thresholds: PerformanceThresholds = PERFORMANCE_THRESHOLDS): void {\n if (metric.renderTime > thresholds.renderTime) {\n console.warn(\n `[json-render Performance Warning] 渲染耗时 ${metric.renderTime.toFixed(2)}ms,超过阈值 ${thresholds.renderTime}ms`,\n {\n componentCount: metric.componentCount,\n memoryUsage: metric.memoryUsage.toFixed(2) + 'MB',\n },\n );\n }\n\n if (metric.updateTime > thresholds.updateTime) {\n console.warn(\n `[json-render Performance Warning] 更新耗时 ${metric.updateTime.toFixed(2)}ms,超过阈值 ${thresholds.updateTime}ms`,\n {\n componentCount: metric.componentCount,\n memoryUsage: metric.memoryUsage.toFixed(2) + 'MB',\n },\n );\n }\n\n if (metric.memoryUsage > thresholds.memoryUsage) {\n console.warn(\n `[json-render Performance Warning] 内存使用 ${metric.memoryUsage.toFixed(2)}MB,超过阈值 ${thresholds.memoryUsage}MB`,\n {\n componentCount: metric.componentCount,\n },\n );\n }\n}\n\nexport default {\n PerformanceMonitor,\n globalPerformanceMonitor,\n checkPerformance,\n PERFORMANCE_THRESHOLDS,\n};"],"names":["PerformanceMonitor","_classCallCheck","_defineProperty","_createClass","key","value","start","_this","startTime","performance","now","elementCount","endTime","renderTime","metric","updateTime","memoryUsage","getMemoryUsage","componentCount","timestamp","Date","addMetric","measureUpdate","fn","result","_performance$memory","memory","usedJSHeapSize","metrics","push","length","maxMetricsCount","shift","getMetrics","_toConsumableArray","getAverageRenderTime","renderMetrics","filter","m","totalTime","reduce","sum","getAverageUpdateTime","updateMetrics","getRecentAverageTime","count","arguments","undefined","type","recentMetrics","slice","timeField","validMetrics","getSummary","totalOperations","renderOperations","updateOperations","avgRenderTime","avgUpdateTime","recentAvgRenderTime","recentAvgUpdateTime","avgMemoryUsage","getAverageMemoryUsage","totalMemory","reset","printSummary","summary","console","log","toFixed","globalPerformanceMonitor","PERFORMANCE_THRESHOLDS","checkPerformance","thresholds","warn","concat"],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * A2UI React Context
3
+ * 双 Context 设计:A2UIContext(运行时状态)+ ComponentRegistryContext(组件注册)
4
+ */
5
+ import React, { ReactNode } from 'react';
6
+ import type { A2uiMessageProcessor } from '../../core/a2ui';
7
+ import type { ActionHandler } from '../../core/a2ui';
8
+ /**
9
+ * A2UI 组件渲染器类型
10
+ */
11
+ export type A2UIComponentRenderer<T = any> = React.ComponentType<T>;
12
+ /**
13
+ * 组件注册表
14
+ */
15
+ export interface ComponentRegistry {
16
+ [componentType: string]: A2UIComponentRenderer;
17
+ }
18
+ /**
19
+ * 组件注册表上下文值
20
+ */
21
+ interface ComponentRegistryContextValue {
22
+ registry: ComponentRegistry;
23
+ getComponent: (type: string) => A2UIComponentRenderer | undefined;
24
+ }
25
+ /**
26
+ * 组件注册表 Provider
27
+ */
28
+ export interface ComponentRegistryProviderProps {
29
+ registry: ComponentRegistry;
30
+ children: ReactNode;
31
+ }
32
+ export declare function ComponentRegistryProvider({ registry, children }: ComponentRegistryProviderProps): import("react/jsx-runtime").JSX.Element;
33
+ /**
34
+ * 获取组件注册表
35
+ */
36
+ export declare function useComponentRegistry(): ComponentRegistryContextValue;
37
+ /**
38
+ * A2UI 运行时上下文值
39
+ */
40
+ export interface A2UIContextValue {
41
+ /** A2UI 消息处理器 */
42
+ processor: A2uiMessageProcessor;
43
+ /** 当前 Surface ID */
44
+ surfaceId: string;
45
+ /** 当前数据上下文路径(用于相对路径解析和 template 渲染) */
46
+ dataContextPath: string;
47
+ /** Action 处理回调 */
48
+ onAction?: ActionHandler;
49
+ }
50
+ /**
51
+ * A2UI 运行时 Provider
52
+ */
53
+ export interface A2UIProviderProps {
54
+ processor: A2uiMessageProcessor;
55
+ surfaceId: string;
56
+ dataContextPath?: string;
57
+ onAction?: ActionHandler;
58
+ children: ReactNode;
59
+ }
60
+ export declare function A2UIProvider({ processor, surfaceId, dataContextPath, onAction, children, }: A2UIProviderProps): import("react/jsx-runtime").JSX.Element;
61
+ /**
62
+ * 获取 A2UI 运行时上下文
63
+ */
64
+ export declare function useA2UIContext(): A2UIContextValue;
65
+ /**
66
+ * 安全获取 A2UI 上下文(可能为 null)
67
+ */
68
+ export declare function useA2UIContextSafe(): A2UIContextValue | null;
69
+ /**
70
+ * A2UI 完整 Provider(组合两个 Context)
71
+ */
72
+ export interface A2UIRootProviderProps {
73
+ processor: A2uiMessageProcessor;
74
+ surfaceId: string;
75
+ registry: ComponentRegistry;
76
+ dataContextPath?: string;
77
+ onAction?: ActionHandler;
78
+ children: ReactNode;
79
+ }
80
+ export declare function A2UIRootProvider({ processor, surfaceId, registry, dataContextPath, onAction, children, }: A2UIRootProviderProps): import("react/jsx-runtime").JSX.Element;
81
+ /**
82
+ * 数据上下文路径 Provider
83
+ * 用于 List/Template 渲染时修改子组件的数据上下文
84
+ */
85
+ export interface DataContextProviderProps {
86
+ path: string;
87
+ children: ReactNode;
88
+ }
89
+ export declare function DataContextProvider({ path, children }: DataContextProviderProps): import("react/jsx-runtime").JSX.Element;
90
+ export {};
@@ -0,0 +1,97 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.14
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
8
+ import React__default, { createContext, useMemo, useContext } from 'react';
9
+
10
+ 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; }
11
+ 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; }
12
+ var ComponentRegistryContext = /*#__PURE__*/createContext(null);
13
+ function ComponentRegistryProvider(_ref) {
14
+ var registry = _ref.registry,
15
+ children = _ref.children;
16
+ var value = useMemo(function () {
17
+ return {
18
+ registry: registry,
19
+ getComponent: function getComponent(type) {
20
+ return registry[type];
21
+ }
22
+ };
23
+ }, [registry]);
24
+ return /* @__PURE__ */React__default.createElement(ComponentRegistryContext.Provider, {
25
+ value: value
26
+ }, children);
27
+ }
28
+ function useComponentRegistry() {
29
+ var context = useContext(ComponentRegistryContext);
30
+ if (!context) {
31
+ throw new Error("useComponentRegistry must be used within ComponentRegistryProvider");
32
+ }
33
+ return context;
34
+ }
35
+ var A2UIContext = /*#__PURE__*/createContext(null);
36
+ function A2UIProvider(_ref2) {
37
+ var processor = _ref2.processor,
38
+ surfaceId = _ref2.surfaceId,
39
+ _ref2$dataContextPath = _ref2.dataContextPath,
40
+ dataContextPath = _ref2$dataContextPath === void 0 ? "/" : _ref2$dataContextPath,
41
+ onAction = _ref2.onAction,
42
+ children = _ref2.children;
43
+ var value = useMemo(function () {
44
+ return {
45
+ processor: processor,
46
+ surfaceId: surfaceId,
47
+ dataContextPath: dataContextPath,
48
+ onAction: onAction
49
+ };
50
+ }, [processor, surfaceId, dataContextPath, onAction]);
51
+ return /* @__PURE__ */React__default.createElement(A2UIContext.Provider, {
52
+ value: value
53
+ }, children);
54
+ }
55
+ function useA2UIContext() {
56
+ var context = useContext(A2UIContext);
57
+ if (!context) {
58
+ throw new Error("useA2UIContext must be used within A2UIProvider");
59
+ }
60
+ return context;
61
+ }
62
+ function useA2UIContextSafe() {
63
+ return useContext(A2UIContext);
64
+ }
65
+ function A2UIRootProvider(_ref3) {
66
+ var processor = _ref3.processor,
67
+ surfaceId = _ref3.surfaceId,
68
+ registry = _ref3.registry,
69
+ _ref3$dataContextPath = _ref3.dataContextPath,
70
+ dataContextPath = _ref3$dataContextPath === void 0 ? "/" : _ref3$dataContextPath,
71
+ onAction = _ref3.onAction,
72
+ children = _ref3.children;
73
+ return /* @__PURE__ */React__default.createElement(ComponentRegistryProvider, {
74
+ registry: registry
75
+ }, /* @__PURE__ */React__default.createElement(A2UIProvider, {
76
+ processor: processor,
77
+ surfaceId: surfaceId,
78
+ dataContextPath: dataContextPath,
79
+ onAction: onAction
80
+ }, children));
81
+ }
82
+ function DataContextProvider(_ref4) {
83
+ var path = _ref4.path,
84
+ children = _ref4.children;
85
+ var parent = useA2UIContext();
86
+ var value = useMemo(function () {
87
+ return _objectSpread(_objectSpread({}, parent), {}, {
88
+ dataContextPath: path
89
+ });
90
+ }, [parent, path]);
91
+ return /* @__PURE__ */React__default.createElement(A2UIContext.Provider, {
92
+ value: value
93
+ }, children);
94
+ }
95
+
96
+ export { A2UIProvider, A2UIRootProvider, ComponentRegistryProvider, DataContextProvider, useA2UIContext, useA2UIContextSafe, useComponentRegistry };
97
+ //# sourceMappingURL=A2UIContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A2UIContext.js","sources":["../../../../../pro-components/chat/chat-engine/hooks/a2ui/A2UIContext.tsx"],"sourcesContent":["/**\n * A2UI React Context\n * 双 Context 设计:A2UIContext(运行时状态)+ ComponentRegistryContext(组件注册)\n */\n\nimport React, { createContext, useContext, useMemo, ReactNode } from 'react';\nimport type { A2uiMessageProcessor } from '../../core/a2ui';\nimport type { ActionHandler } from '../../core/a2ui';\n\n// ============= Component Registry Context =============\n\n/**\n * A2UI 组件渲染器类型\n */\nexport type A2UIComponentRenderer<T = any> = React.ComponentType<T>;\n\n/**\n * 组件注册表\n */\nexport interface ComponentRegistry {\n [componentType: string]: A2UIComponentRenderer;\n}\n\n/**\n * 组件注册表上下文值\n */\ninterface ComponentRegistryContextValue {\n registry: ComponentRegistry;\n getComponent: (type: string) => A2UIComponentRenderer | undefined;\n}\n\nconst ComponentRegistryContext = createContext<ComponentRegistryContextValue | null>(null);\n\n/**\n * 组件注册表 Provider\n */\nexport interface ComponentRegistryProviderProps {\n registry: ComponentRegistry;\n children: ReactNode;\n}\n\nexport function ComponentRegistryProvider({ registry, children }: ComponentRegistryProviderProps) {\n const value = useMemo<ComponentRegistryContextValue>(\n () => ({\n registry,\n getComponent: (type: string) => registry[type],\n }),\n [registry]\n );\n\n return (\n <ComponentRegistryContext.Provider value={value}>\n {children}\n </ComponentRegistryContext.Provider>\n );\n}\n\n/**\n * 获取组件注册表\n */\nexport function useComponentRegistry(): ComponentRegistryContextValue {\n const context = useContext(ComponentRegistryContext);\n if (!context) {\n throw new Error('useComponentRegistry must be used within ComponentRegistryProvider');\n }\n return context;\n}\n\n// ============= A2UI Runtime Context =============\n\n/**\n * A2UI 运行时上下文值\n */\nexport interface A2UIContextValue {\n /** A2UI 消息处理器 */\n processor: A2uiMessageProcessor;\n /** 当前 Surface ID */\n surfaceId: string;\n /** 当前数据上下文路径(用于相对路径解析和 template 渲染) */\n dataContextPath: string;\n /** Action 处理回调 */\n onAction?: ActionHandler;\n}\n\nconst A2UIContext = createContext<A2UIContextValue | null>(null);\n\n/**\n * A2UI 运行时 Provider\n */\nexport interface A2UIProviderProps {\n processor: A2uiMessageProcessor;\n surfaceId: string;\n dataContextPath?: string;\n onAction?: ActionHandler;\n children: ReactNode;\n}\n\nexport function A2UIProvider({\n processor,\n surfaceId,\n dataContextPath = '/',\n onAction,\n children,\n}: A2UIProviderProps) {\n const value = useMemo<A2UIContextValue>(\n () => ({\n processor,\n surfaceId,\n dataContextPath,\n onAction,\n }),\n [processor, surfaceId, dataContextPath, onAction]\n );\n\n return <A2UIContext.Provider value={value}>{children}</A2UIContext.Provider>;\n}\n\n/**\n * 获取 A2UI 运行时上下文\n */\nexport function useA2UIContext(): A2UIContextValue {\n const context = useContext(A2UIContext);\n if (!context) {\n throw new Error('useA2UIContext must be used within A2UIProvider');\n }\n return context;\n}\n\n/**\n * 安全获取 A2UI 上下文(可能为 null)\n */\nexport function useA2UIContextSafe(): A2UIContextValue | null {\n return useContext(A2UIContext);\n}\n\n// ============= 组合 Provider =============\n\n/**\n * A2UI 完整 Provider(组合两个 Context)\n */\nexport interface A2UIRootProviderProps {\n processor: A2uiMessageProcessor;\n surfaceId: string;\n registry: ComponentRegistry;\n dataContextPath?: string;\n onAction?: ActionHandler;\n children: ReactNode;\n}\n\nexport function A2UIRootProvider({\n processor,\n surfaceId,\n registry,\n dataContextPath = '/',\n onAction,\n children,\n}: A2UIRootProviderProps) {\n return (\n <ComponentRegistryProvider registry={registry}>\n <A2UIProvider\n processor={processor}\n surfaceId={surfaceId}\n dataContextPath={dataContextPath}\n onAction={onAction}\n >\n {children}\n </A2UIProvider>\n </ComponentRegistryProvider>\n );\n}\n\n// ============= Data Context Path Provider =============\n\n/**\n * 数据上下文路径 Provider\n * 用于 List/Template 渲染时修改子组件的数据上下文\n */\nexport interface DataContextProviderProps {\n path: string;\n children: ReactNode;\n}\n\nexport function DataContextProvider({ path, children }: DataContextProviderProps) {\n const parent = useA2UIContext();\n\n const value = useMemo<A2UIContextValue>(\n () => ({\n ...parent,\n dataContextPath: path,\n }),\n [parent, path]\n );\n\n return <A2UIContext.Provider value={value}>{children}</A2UIContext.Provider>;\n}\n"],"names":["ComponentRegistryContext","createContext","ComponentRegistryProvider","_ref","registry","children","value","useMemo","getComponent","type","React","createElement","Provider","useComponentRegistry","context","useContext","Error","A2UIContext","A2UIProvider","_ref2","processor","surfaceId","_ref2$dataContextPath","dataContextPath","onAction","useA2UIContext","useA2UIContextSafe","A2UIRootProvider","_ref3","_ref3$dataContextPath","DataContextProvider","_ref4","path","parent","_objectSpread"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A2UI React 适配层 Hooks 导出
3
+ */
4
+ export { A2UIRootProvider, // 组合 Provider,一站式解决方案
5
+ useA2UIContext, // 核心 Context Hook
6
+ useComponentRegistry, // 组件注册表 Hook
7
+ type ComponentRegistry, // 核心类型
8
+ type A2UIRootProviderProps, } from './A2UIContext';
9
+ export { useDataBinding, // 单向绑定(最常用)
10
+ useTwoWayBinding, } from './useDataBinding';
11
+ export { useA2UISurface, } from './useA2UISurface';
12
+ export { useA2UIAction, } from './useA2UIAction';
@@ -0,0 +1,19 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.14
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ export { A2UIRootProvider, useA2UIContext, useComponentRegistry } from './A2UIContext.js';
8
+ export { useDataBinding, useTwoWayBinding } from './useDataBinding.js';
9
+ export { useA2UISurface } from './useA2UISurface.js';
10
+ export { useA2UIAction } from './useA2UIAction.js';
11
+ import '@babel/runtime/helpers/defineProperty';
12
+ import 'react';
13
+ import '@babel/runtime/helpers/slicedToArray';
14
+ import '../../core/a2ui/utils/index.js';
15
+ import '../../core/a2ui/utils/binding.js';
16
+ import '@babel/runtime/helpers/typeof';
17
+ import '../../core/a2ui/utils/validation.js';
18
+ import '@babel/runtime/helpers/toConsumableArray';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A2UI Action 相关 Hooks
3
+ */
4
+ import type { A2UIAction } from '../../core/a2ui';
5
+ /**
6
+ * 获取 Action 分发函数
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * function Button({ action }: { action: A2UIAction }) {
11
+ * const dispatch = useA2UIAction();
12
+ * return <TButton onClick={() => dispatch(action)}>Click</TButton>;
13
+ * }
14
+ * ```
15
+ */
16
+ export declare function useA2UIAction(): (action: A2UIAction, componentId?: string) => void;
17
+ /**
18
+ * 创建绑定特定 Action 的回调
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * function ConfirmButton({ id }: { id: string }) {
23
+ * const handleConfirm = useActionCallback({ name: 'confirm', context: { value: true } }, id);
24
+ * return <TButton onClick={handleConfirm}>确认</TButton>;
25
+ * }
26
+ * ```
27
+ */
28
+ export declare function useActionCallback(action: A2UIAction | undefined, componentId?: string): (() => void) | undefined;
29
+ /**
30
+ * 创建带参数的 Action 回调
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * function Input({ id }: { id: string }) {
35
+ * const handleChange = useActionWithPayload('input-change', id);
36
+ * return <TInput onChange={(val) => handleChange({ value: val })} />;
37
+ * }
38
+ * ```
39
+ */
40
+ export declare function useActionWithPayload(actionName: string, componentId?: string): (context: Record<string, unknown>) => void;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.14
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import { useCallback } from 'react';
8
+ import { useA2UIContext } from './A2UIContext.js';
9
+ import '@babel/runtime/helpers/defineProperty';
10
+
11
+ 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; } } }; }
12
+ 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; } }
13
+ 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; }
14
+ function useA2UIAction() {
15
+ var _useA2UIContext = useA2UIContext(),
16
+ processor = _useA2UIContext.processor,
17
+ surfaceId = _useA2UIContext.surfaceId,
18
+ onAction = _useA2UIContext.onAction;
19
+ return useCallback(function (action, componentId) {
20
+ if (onAction) {
21
+ var context = {
22
+ surfaceId: surfaceId,
23
+ componentId: componentId,
24
+ updateData: function updateData(path, value) {
25
+ processor.updateDataValue(surfaceId, path, value);
26
+ },
27
+ getData: function getData(path) {
28
+ var surface = processor.getSurface(surfaceId);
29
+ if (!surface) return void 0;
30
+ if (!path) return surface.data;
31
+ var segments = path.split("/").filter(Boolean);
32
+ var result = surface.data;
33
+ var _iterator = _createForOfIteratorHelper(segments),
34
+ _step;
35
+ try {
36
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
37
+ var segment = _step.value;
38
+ if (result === null || result === void 0) return void 0;
39
+ result = result[segment];
40
+ }
41
+ } catch (err) {
42
+ _iterator.e(err);
43
+ } finally {
44
+ _iterator.f();
45
+ }
46
+ return result;
47
+ }
48
+ };
49
+ onAction(action, context);
50
+ } else {
51
+ processor.dispatchAction(action, surfaceId, componentId);
52
+ }
53
+ }, [processor, surfaceId, onAction]);
54
+ }
55
+ function useActionCallback(action, componentId) {
56
+ var dispatch = useA2UIAction();
57
+ return useCallback(function () {
58
+ if (action) {
59
+ dispatch(action, componentId);
60
+ }
61
+ }, [dispatch, action, componentId]);
62
+ }
63
+ function useActionWithPayload(actionName, componentId) {
64
+ var dispatch = useA2UIAction();
65
+ return useCallback(function (context) {
66
+ dispatch({
67
+ name: actionName,
68
+ context: context
69
+ }, componentId);
70
+ }, [dispatch, actionName, componentId]);
71
+ }
72
+
73
+ export { useA2UIAction, useActionCallback, useActionWithPayload };
74
+ //# sourceMappingURL=useA2UIAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useA2UIAction.js","sources":["../../../../../pro-components/chat/chat-engine/hooks/a2ui/useA2UIAction.ts"],"sourcesContent":["/**\n * A2UI Action 相关 Hooks\n */\n\nimport { useCallback } from 'react';\nimport { useA2UIContext } from './A2UIContext';\nimport type { A2UIAction } from '../../core/a2ui';\n\n/**\n * 获取 Action 分发函数\n * \n * @example\n * ```tsx\n * function Button({ action }: { action: A2UIAction }) {\n * const dispatch = useA2UIAction();\n * return <TButton onClick={() => dispatch(action)}>Click</TButton>;\n * }\n * ```\n */\nexport function useA2UIAction(): (action: A2UIAction, componentId?: string) => void {\n const { processor, surfaceId, onAction } = useA2UIContext();\n\n return useCallback(\n (action: A2UIAction, componentId?: string) => {\n // 优先使用外部提供的 onAction\n if (onAction) {\n const context = {\n surfaceId,\n componentId,\n updateData: (path: string, value: unknown) => {\n processor.updateDataValue(surfaceId, path, value);\n },\n getData: (path?: string) => {\n const surface = processor.getSurface(surfaceId);\n if (!surface) return undefined;\n if (!path) return surface.data;\n // 简单路径解析\n const segments = path.split('/').filter(Boolean);\n let result: unknown = surface.data;\n for (const segment of segments) {\n if (result === null || result === undefined) return undefined;\n result = (result as Record<string, unknown>)[segment];\n }\n return result;\n },\n };\n onAction(action, context);\n } else {\n // 使用 processor 内部处理\n processor.dispatchAction(action, surfaceId, componentId);\n }\n },\n [processor, surfaceId, onAction]\n );\n}\n\n/**\n * 创建绑定特定 Action 的回调\n * \n * @example\n * ```tsx\n * function ConfirmButton({ id }: { id: string }) {\n * const handleConfirm = useActionCallback({ name: 'confirm', context: { value: true } }, id);\n * return <TButton onClick={handleConfirm}>确认</TButton>;\n * }\n * ```\n */\nexport function useActionCallback(\n action: A2UIAction | undefined,\n componentId?: string\n): (() => void) | undefined {\n const dispatch = useA2UIAction();\n\n return useCallback(() => {\n if (action) {\n dispatch(action, componentId);\n }\n }, [dispatch, action, componentId]);\n}\n\n/**\n * 创建带参数的 Action 回调\n * \n * @example\n * ```tsx\n * function Input({ id }: { id: string }) {\n * const handleChange = useActionWithPayload('input-change', id);\n * return <TInput onChange={(val) => handleChange({ value: val })} />;\n * }\n * ```\n */\nexport function useActionWithPayload(\n actionName: string,\n componentId?: string\n): (context: Record<string, unknown>) => void {\n const dispatch = useA2UIAction();\n\n return useCallback(\n (context: Record<string, unknown>) => {\n dispatch({ name: actionName, context }, componentId);\n },\n [dispatch, actionName, componentId]\n );\n}\n"],"names":["useA2UIAction","_useA2UIContext","useA2UIContext","processor","surfaceId","onAction","useCallback","action","componentId","context","updateData","path","value","updateDataValue","getData","surface","getSurface","data","segments","split","filter","Boolean","result","_iterator","_createForOfIteratorHelper","_step","s","n","done","segment","err","e","f","dispatchAction","useActionCallback","dispatch","useActionWithPayload","actionName","name"],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * A2UI Surface 相关 Hooks
3
+ */
4
+ import type { A2uiMessageProcessor } from '../../core/a2ui';
5
+ import type { A2UISurface, ResolvedComponent } from '../../core/a2ui';
6
+ /**
7
+ * 订阅单个 Surface
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * const surface = useA2UISurface(processor, 'surface-1');
12
+ * if (!surface) return <Loading />;
13
+ * return <A2UIRenderer root={surface.root} />;
14
+ * ```
15
+ */
16
+ export declare function useA2UISurface(processor: A2uiMessageProcessor, surfaceId: string): A2UISurface | undefined;
17
+ /**
18
+ * 订阅所有 Surface
19
+ */
20
+ export declare function useA2UISurfaces(processor: A2uiMessageProcessor): A2UISurface[];
21
+ /**
22
+ * 订阅 Surface 的组件树根节点
23
+ */
24
+ export declare function useA2UIRoot(processor: A2uiMessageProcessor, surfaceId: string): ResolvedComponent | null;
25
+ /**
26
+ * 订阅 Surface 的数据模型
27
+ */
28
+ export declare function useA2UIData<T = Record<string, unknown>>(processor: A2uiMessageProcessor, surfaceId: string): T | undefined;
29
+ /**
30
+ * 订阅 Surface 状态
31
+ */
32
+ export declare function useA2UISurfaceState(processor: A2uiMessageProcessor, surfaceId: string): 'active' | 'closed' | 'pending' | undefined;
33
+ /**
34
+ * 获取 Surface IDs 列表
35
+ */
36
+ export declare function useA2UISurfaceIds(processor: A2uiMessageProcessor): string[];