@tdesign-react/chat 1.1.0-alpha.16 → 1.1.0-alpha.17

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 (431) hide show
  1. package/es/_chunks/{dep-dfe91b1f.js → dep-e1e84ed7.js} +1 -1
  2. package/es/_chunks/{dep-13fe70ea.js.map → dep-e1e84ed7.js.map} +1 -1
  3. package/es/chat-engine/components/index.js +8 -3
  4. package/es/chat-engine/components/index.js.map +1 -1
  5. package/es/chat-engine/components/json-render/catalog/atomic/input.js +8 -3
  6. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -1
  7. package/es/chat-engine/components/json-render/index.js +8 -3
  8. package/es/chat-engine/components/json-render/index.js.map +1 -1
  9. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +8 -3
  10. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -1
  11. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +8 -3
  12. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -1
  13. package/es/chat-engine/components/json-render/registry/config.js +8 -3
  14. package/es/chat-engine/components/json-render/registry/config.js.map +1 -1
  15. package/es/chat-engine/components/json-render/registry/index.js +8 -3
  16. package/es/chat-engine/components/json-render/registry/index.js.map +1 -1
  17. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +7 -2
  18. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -1
  19. package/es/chat-engine/components/provider/agent-state.js +7 -2
  20. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  21. package/es/chat-engine/components/toolcall/index.js +7 -2
  22. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  23. package/es/chat-engine/components/toolcall/render.js +6 -1
  24. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  25. package/es/chat-engine/core/adapters/agui/index.js +5 -50
  26. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  27. package/es/chat-engine/core/adapters/agui/utils.d.ts +25 -2
  28. package/es/chat-engine/core/adapters/agui/utils.js +51 -11
  29. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
  30. package/es/chat-engine/core/adapters/index.js +1 -0
  31. package/es/chat-engine/core/adapters/index.js.map +1 -1
  32. package/es/chat-engine/core/adapters/openclaw/event-mapper.d.ts +36 -14
  33. package/es/chat-engine/core/adapters/openclaw/event-mapper.js +35 -20
  34. package/es/chat-engine/core/adapters/openclaw/event-mapper.js.map +1 -1
  35. package/es/chat-engine/core/adapters/openclaw/history-converter.d.ts +120 -0
  36. package/es/chat-engine/core/adapters/openclaw/history-converter.js +251 -0
  37. package/es/chat-engine/core/adapters/openclaw/history-converter.js.map +1 -0
  38. package/es/chat-engine/core/adapters/openclaw/index.d.ts +30 -0
  39. package/es/chat-engine/core/adapters/openclaw/index.js +82 -35
  40. package/es/chat-engine/core/adapters/openclaw/index.js.map +1 -1
  41. package/es/chat-engine/core/adapters/openclaw/rpc-handler.d.ts +13 -0
  42. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js +19 -0
  43. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js.map +1 -1
  44. package/es/chat-engine/core/adapters/openclaw/types/config.d.ts +2 -24
  45. package/es/chat-engine/core/adapters/openclaw/types/config.js +3 -5
  46. package/es/chat-engine/core/adapters/openclaw/types/config.js.map +1 -1
  47. package/es/chat-engine/core/adapters/openclaw/types/events.d.ts +2 -0
  48. package/es/chat-engine/core/adapters/openclaw/types/events.js +1 -0
  49. package/es/chat-engine/core/adapters/openclaw/types/events.js.map +1 -1
  50. package/es/chat-engine/core/adapters/openclaw/types/messages.d.ts +9 -0
  51. package/es/chat-engine/core/adapters/openclaw/types/messages.js.map +1 -1
  52. package/es/chat-engine/core/adapters/openclaw/utils.js.map +1 -1
  53. package/es/chat-engine/core/index.d.ts +24 -24
  54. package/es/chat-engine/core/index.js +150 -317
  55. package/es/chat-engine/core/index.js.map +1 -1
  56. package/es/chat-engine/core/processor/index.d.ts +32 -0
  57. package/es/chat-engine/core/processor/index.js +75 -0
  58. package/es/chat-engine/core/processor/index.js.map +1 -1
  59. package/es/chat-engine/core/server/index.js +0 -20
  60. package/es/chat-engine/core/server/index.js.map +1 -1
  61. package/es/chat-engine/core/server/llm-service.d.ts +7 -7
  62. package/es/chat-engine/core/server/llm-service.js +12 -139
  63. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  64. package/es/chat-engine/core/stream-handlers/agui-stream-handler.d.ts +24 -0
  65. package/es/chat-engine/core/stream-handlers/agui-stream-handler.js +140 -0
  66. package/es/chat-engine/core/stream-handlers/agui-stream-handler.js.map +1 -0
  67. package/es/chat-engine/core/stream-handlers/default-stream-handler.d.ts +7 -0
  68. package/es/chat-engine/core/stream-handlers/default-stream-handler.js +77 -0
  69. package/es/chat-engine/core/stream-handlers/default-stream-handler.js.map +1 -0
  70. package/es/chat-engine/core/stream-handlers/index.d.ts +21 -0
  71. package/es/chat-engine/core/stream-handlers/index.js +71 -0
  72. package/es/chat-engine/core/stream-handlers/index.js.map +1 -0
  73. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.d.ts +56 -0
  74. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.js +269 -0
  75. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.js.map +1 -0
  76. package/es/chat-engine/core/stream-handlers/types.d.ts +47 -0
  77. package/es/chat-engine/core/stream-handlers/types.js +7 -0
  78. package/es/chat-engine/core/stream-handlers/types.js.map +1 -0
  79. package/es/chat-engine/core/type.d.ts +18 -0
  80. package/es/chat-engine/hooks/index.js +7 -2
  81. package/es/chat-engine/hooks/index.js.map +1 -1
  82. package/es/chat-engine/hooks/useAgentState.js +7 -2
  83. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  84. package/es/chat-engine/hooks/useChat.js +11 -5
  85. package/es/chat-engine/hooks/useChat.js.map +1 -1
  86. package/es/chat-engine/index.js +6 -1
  87. package/es/chat-engine/index.js.map +1 -1
  88. package/es/index.js +6 -1
  89. package/es/index.js.map +1 -1
  90. package/package.json +1 -1
  91. package/es/_chunks/dep-076af7c3.js +0 -438
  92. package/es/_chunks/dep-076af7c3.js.map +0 -1
  93. package/es/_chunks/dep-1007ac80.js +0 -205
  94. package/es/_chunks/dep-1007ac80.js.map +0 -1
  95. package/es/_chunks/dep-13fe70ea.js +0 -438
  96. package/es/_chunks/dep-16520c2b.js +0 -1247
  97. package/es/_chunks/dep-16520c2b.js.map +0 -1
  98. package/es/_chunks/dep-1743bd61.js +0 -438
  99. package/es/_chunks/dep-1743bd61.js.map +0 -1
  100. package/es/_chunks/dep-1ca64fef.js +0 -1247
  101. package/es/_chunks/dep-1ca64fef.js.map +0 -1
  102. package/es/_chunks/dep-24472232.js +0 -839
  103. package/es/_chunks/dep-24472232.js.map +0 -1
  104. package/es/_chunks/dep-2bfe72cb.js +0 -438
  105. package/es/_chunks/dep-2bfe72cb.js.map +0 -1
  106. package/es/_chunks/dep-3864b369.js +0 -839
  107. package/es/_chunks/dep-3864b369.js.map +0 -1
  108. package/es/_chunks/dep-3e40d789.js +0 -169
  109. package/es/_chunks/dep-3e40d789.js.map +0 -1
  110. package/es/_chunks/dep-4dedfbef.js +0 -438
  111. package/es/_chunks/dep-4dedfbef.js.map +0 -1
  112. package/es/_chunks/dep-56f5e08e.js +0 -448
  113. package/es/_chunks/dep-56f5e08e.js.map +0 -1
  114. package/es/_chunks/dep-58d90dfe.js +0 -438
  115. package/es/_chunks/dep-58d90dfe.js.map +0 -1
  116. package/es/_chunks/dep-5b6b17d0.js +0 -169
  117. package/es/_chunks/dep-5b6b17d0.js.map +0 -1
  118. package/es/_chunks/dep-5e2400d2.js +0 -438
  119. package/es/_chunks/dep-5e2400d2.js.map +0 -1
  120. package/es/_chunks/dep-60f2a734.js +0 -169
  121. package/es/_chunks/dep-60f2a734.js.map +0 -1
  122. package/es/_chunks/dep-688e4aaa.js +0 -438
  123. package/es/_chunks/dep-688e4aaa.js.map +0 -1
  124. package/es/_chunks/dep-771678df.js +0 -438
  125. package/es/_chunks/dep-771678df.js.map +0 -1
  126. package/es/_chunks/dep-870f0d35.js +0 -839
  127. package/es/_chunks/dep-870f0d35.js.map +0 -1
  128. package/es/_chunks/dep-93283bbd.js +0 -1247
  129. package/es/_chunks/dep-93283bbd.js.map +0 -1
  130. package/es/_chunks/dep-96eca06f.js +0 -169
  131. package/es/_chunks/dep-96eca06f.js.map +0 -1
  132. package/es/_chunks/dep-98d23dfa.js +0 -169
  133. package/es/_chunks/dep-98d23dfa.js.map +0 -1
  134. package/es/_chunks/dep-991f7c12.js +0 -1247
  135. package/es/_chunks/dep-991f7c12.js.map +0 -1
  136. package/es/_chunks/dep-b4eec30f.js +0 -1247
  137. package/es/_chunks/dep-b4eec30f.js.map +0 -1
  138. package/es/_chunks/dep-ba3bd553.js +0 -169
  139. package/es/_chunks/dep-ba3bd553.js.map +0 -1
  140. package/es/_chunks/dep-bcb234a1.js +0 -839
  141. package/es/_chunks/dep-bcb234a1.js.map +0 -1
  142. package/es/_chunks/dep-dbdfe7d6.js +0 -169
  143. package/es/_chunks/dep-dbdfe7d6.js.map +0 -1
  144. package/es/_chunks/dep-de8ac730.js +0 -1247
  145. package/es/_chunks/dep-de8ac730.js.map +0 -1
  146. package/es/_chunks/dep-dfe91b1f.js.map +0 -1
  147. package/es/_chunks/dep-e9dbff09.js +0 -1247
  148. package/es/_chunks/dep-e9dbff09.js.map +0 -1
  149. package/es/_chunks/dep-ebc4cf30.js +0 -1247
  150. package/es/_chunks/dep-ebc4cf30.js.map +0 -1
  151. package/es/_chunks/dep-f2051ebd.js +0 -839
  152. package/es/_chunks/dep-f2051ebd.js.map +0 -1
  153. package/es/_chunks/dep-f691a67e.js +0 -438
  154. package/es/_chunks/dep-f691a67e.js.map +0 -1
  155. package/es/_chunks/dep-f8016301.js +0 -169
  156. package/es/_chunks/dep-f8016301.js.map +0 -1
  157. package/es/chat-actionbar/_example-js/base.d.ts +0 -2
  158. package/es/chat-actionbar/_example-js/custom.d.ts +0 -2
  159. package/es/chat-actionbar/_example-js/style.d.ts +0 -2
  160. package/es/chat-attachments/_example-js/base.d.ts +0 -2
  161. package/es/chat-attachments/_example-js/scroll-x.d.ts +0 -2
  162. package/es/chat-attachments/_example-js/scroll-y.d.ts +0 -2
  163. package/es/chat-attachments/index.d.ts +0 -5
  164. package/es/chat-attachments/index.js +0 -26
  165. package/es/chat-attachments/index.js.map +0 -1
  166. package/es/chat-engine/_example-js/agui-basic.d.ts +0 -10
  167. package/es/chat-engine/_example-js/agui-comprehensive.d.ts +0 -2
  168. package/es/chat-engine/_example-js/agui-test.d.ts +0 -11
  169. package/es/chat-engine/_example-js/agui-toolcall.d.ts +0 -5
  170. package/es/chat-engine/_example-js/agui-videoclip.d.ts +0 -8
  171. package/es/chat-engine/_example-js/agui.d.ts +0 -1
  172. package/es/chat-engine/_example-js/basic.d.ts +0 -9
  173. package/es/chat-engine/_example-js/components/HotelCard.d.ts +0 -3
  174. package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +0 -6
  175. package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +0 -3
  176. package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +0 -3
  177. package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +0 -4
  178. package/es/chat-engine/_example-js/components/Toolcall.d.ts +0 -4
  179. package/es/chat-engine/_example-js/components/WeatherCard.d.ts +0 -3
  180. package/es/chat-engine/_example-js/components/login.d.ts +0 -1
  181. package/es/chat-engine/_example-js/comprehensive.d.ts +0 -12
  182. package/es/chat-engine/_example-js/custom-content.d.ts +0 -1
  183. package/es/chat-engine/_example-js/hookComponent.d.ts +0 -1
  184. package/es/chat-engine/_example-js/initial-messages.d.ts +0 -9
  185. package/es/chat-engine/_example-js/instance-methods.d.ts +0 -13
  186. package/es/chat-engine/_example-js/travel-actions.d.ts +0 -91
  187. package/es/chat-engine/_example-js/travelToolcall.d.ts +0 -1
  188. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +0 -196
  189. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +0 -301
  190. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +0 -1
  191. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +0 -37
  192. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +0 -116
  193. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +0 -1
  194. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +0 -42
  195. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +0 -113
  196. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +0 -1
  197. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +0 -60
  198. package/es/chat-engine/components/a2ui/A2UISkeleton.js +0 -197
  199. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +0 -1
  200. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +0 -44
  201. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +0 -139
  202. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +0 -1
  203. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +0 -22
  204. package/es/chat-engine/components/a2ui/containers/A2UICard.js +0 -82
  205. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +0 -1
  206. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +0 -18
  207. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +0 -81
  208. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +0 -1
  209. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +0 -14
  210. package/es/chat-engine/components/a2ui/containers/A2UIList.js +0 -62
  211. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +0 -1
  212. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +0 -20
  213. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +0 -84
  214. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +0 -1
  215. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +0 -14
  216. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +0 -69
  217. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +0 -1
  218. package/es/chat-engine/components/a2ui/containers/index.d.ts +0 -8
  219. package/es/chat-engine/components/a2ui/containers/index.js +0 -30
  220. package/es/chat-engine/components/a2ui/containers/index.js.map +0 -1
  221. package/es/chat-engine/components/a2ui/index.d.ts +0 -11
  222. package/es/chat-engine/components/a2ui/index.js +0 -62
  223. package/es/chat-engine/components/a2ui/index.js.map +0 -1
  224. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +0 -33
  225. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +0 -80
  226. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +0 -1
  227. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +0 -12
  228. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +0 -43
  229. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +0 -1
  230. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +0 -50
  231. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +0 -54
  232. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +0 -1
  233. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +0 -13
  234. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +0 -89
  235. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +0 -1
  236. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +0 -12
  237. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +0 -25
  238. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +0 -1
  239. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +0 -13
  240. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +0 -138942
  241. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +0 -1
  242. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +0 -12
  243. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +0 -75
  244. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +0 -1
  245. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +0 -20
  246. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +0 -63
  247. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +0 -1
  248. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +0 -56
  249. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +0 -64
  250. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +0 -1
  251. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +0 -12
  252. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +0 -55
  253. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +0 -1
  254. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +0 -12
  255. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +0 -104
  256. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +0 -1
  257. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +0 -12
  258. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +0 -80
  259. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +0 -1
  260. package/es/chat-engine/components/a2ui/primitives/index.d.ts +0 -15
  261. package/es/chat-engine/components/a2ui/primitives/index.js +0 -39
  262. package/es/chat-engine/components/a2ui/primitives/index.js.map +0 -1
  263. package/es/chat-engine/components/a2ui/registry.d.ts +0 -35
  264. package/es/chat-engine/components/a2ui/registry.js +0 -74
  265. package/es/chat-engine/components/a2ui/registry.js.map +0 -1
  266. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +0 -36
  267. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +0 -36
  268. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +0 -1
  269. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +0 -46
  270. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +0 -36
  271. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +0 -1
  272. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +0 -113
  273. package/es/chat-engine/components/json-render/SurfaceStateManager.js +0 -195
  274. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +0 -1
  275. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +0 -49
  276. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +0 -307
  277. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +0 -1
  278. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +0 -96
  279. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +0 -7
  280. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +0 -1
  281. package/es/chat-engine/components/json-render/adapters/index.d.ts +0 -7
  282. package/es/chat-engine/components/json-render/adapters/index.js +0 -11
  283. package/es/chat-engine/components/json-render/adapters/index.js.map +0 -1
  284. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +0 -64
  285. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +0 -36
  286. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +0 -1
  287. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +0 -78
  288. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +0 -36
  289. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +0 -1
  290. package/es/chat-engine/components/json-render/catalog/button.d.ts +0 -14
  291. package/es/chat-engine/components/json-render/catalog/button.js +0 -71
  292. package/es/chat-engine/components/json-render/catalog/button.js.map +0 -1
  293. package/es/chat-engine/components/json-render/catalog/card.d.ts +0 -11
  294. package/es/chat-engine/components/json-render/catalog/card.js +0 -57
  295. package/es/chat-engine/components/json-render/catalog/card.js.map +0 -1
  296. package/es/chat-engine/components/json-render/catalog/index.d.ts +0 -128
  297. package/es/chat-engine/components/json-render/catalog/index.js +0 -36
  298. package/es/chat-engine/components/json-render/catalog/index.js.map +0 -1
  299. package/es/chat-engine/components/json-render/catalog/input.d.ts +0 -20
  300. package/es/chat-engine/components/json-render/catalog/input.js +0 -36
  301. package/es/chat-engine/components/json-render/catalog/input.js.map +0 -1
  302. package/es/chat-engine/components/json-render/catalog/layout.d.ts +0 -44
  303. package/es/chat-engine/components/json-render/catalog/layout.js +0 -129
  304. package/es/chat-engine/components/json-render/catalog/layout.js.map +0 -1
  305. package/es/chat-engine/components/json-render/catalog/text.d.ts +0 -11
  306. package/es/chat-engine/components/json-render/catalog/text.js +0 -31
  307. package/es/chat-engine/components/json-render/catalog/text.js.map +0 -1
  308. package/es/chat-engine/components/json-render/catalog.d.ts +0 -614
  309. package/es/chat-engine/components/json-render/catalog.js +0 -779
  310. package/es/chat-engine/components/json-render/catalog.js.map +0 -1
  311. package/es/chat-engine/components/json-render/config.d.ts +0 -154
  312. package/es/chat-engine/components/json-render/config.js +0 -36
  313. package/es/chat-engine/components/json-render/config.js.map +0 -1
  314. package/es/chat-engine/components/json-render/engine.d.ts +0 -58
  315. package/es/chat-engine/components/json-render/engine.js +0 -88
  316. package/es/chat-engine/components/json-render/engine.js.map +0 -1
  317. package/es/chat-engine/components/json-render/performance.d.ts +0 -91
  318. package/es/chat-engine/components/json-render/performance.js +0 -135
  319. package/es/chat-engine/components/json-render/performance.js.map +0 -1
  320. package/es/chat-engine/components/json-render/renderer/index.d.ts +0 -71
  321. package/es/chat-engine/components/json-render/renderer/index.js +0 -125
  322. package/es/chat-engine/components/json-render/renderer/index.js.map +0 -1
  323. package/es/chat-engine/components/json-render/renderer.d.ts +0 -71
  324. package/es/chat-engine/components/json-render/renderer.js +0 -124
  325. package/es/chat-engine/components/json-render/renderer.js.map +0 -1
  326. package/es/chat-engine/core/a2ui/index.d.ts +0 -10
  327. package/es/chat-engine/core/a2ui/index.js +0 -24
  328. package/es/chat-engine/core/a2ui/index.js.map +0 -1
  329. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +0 -197
  330. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +0 -438
  331. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +0 -1
  332. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +0 -53
  333. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +0 -158
  334. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +0 -1
  335. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +0 -63
  336. package/es/chat-engine/core/a2ui/processor/DataStore.js +0 -172
  337. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +0 -1
  338. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +0 -47
  339. package/es/chat-engine/core/a2ui/processor/PathResolver.js +0 -99
  340. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +0 -1
  341. package/es/chat-engine/core/a2ui/types/index.d.ts +0 -4
  342. package/es/chat-engine/core/a2ui/types/index.js +0 -9
  343. package/es/chat-engine/core/a2ui/types/index.js.map +0 -1
  344. package/es/chat-engine/core/a2ui/types/types.d.ts +0 -770
  345. package/es/chat-engine/core/a2ui/types/types.js +0 -104
  346. package/es/chat-engine/core/a2ui/types/types.js.map +0 -1
  347. package/es/chat-engine/core/a2ui/utils/binding.d.ts +0 -34
  348. package/es/chat-engine/core/a2ui/utils/binding.js +0 -1784
  349. package/es/chat-engine/core/a2ui/utils/binding.js.map +0 -1
  350. package/es/chat-engine/core/a2ui/utils/index.d.ts +0 -5
  351. package/es/chat-engine/core/a2ui/utils/index.js +0 -13
  352. package/es/chat-engine/core/a2ui/utils/index.js.map +0 -1
  353. package/es/chat-engine/core/a2ui/utils/validation.d.ts +0 -70
  354. package/es/chat-engine/core/a2ui/utils/validation.js +0 -333
  355. package/es/chat-engine/core/a2ui/utils/validation.js.map +0 -1
  356. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +0 -102
  357. package/es/chat-engine/core/adapters/agui/activity-manager.js +0 -150
  358. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +0 -1
  359. package/es/chat-engine/core/adapters/agui/events.d.ts +0 -1550
  360. package/es/chat-engine/core/adapters/agui/events.js +0 -199
  361. package/es/chat-engine/core/adapters/agui/events.js.map +0 -1
  362. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +0 -99
  363. package/es/chat-engine/core/adapters/agui/state-manager.js +0 -174
  364. package/es/chat-engine/core/adapters/agui/state-manager.js.map +0 -1
  365. package/es/chat-engine/core/adapters/agui/types.d.ts +0 -818
  366. package/es/chat-engine/core/adapters/agui/types.js +0 -95
  367. package/es/chat-engine/core/adapters/agui/types.js.map +0 -1
  368. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +0 -90
  369. package/es/chat-engine/hooks/a2ui/A2UIContext.js +0 -97
  370. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +0 -1
  371. package/es/chat-engine/hooks/a2ui/index.d.ts +0 -12
  372. package/es/chat-engine/hooks/a2ui/index.js +0 -19
  373. package/es/chat-engine/hooks/a2ui/index.js.map +0 -1
  374. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +0 -40
  375. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +0 -74
  376. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +0 -1
  377. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +0 -36
  378. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +0 -39
  379. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +0 -1
  380. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +0 -53
  381. package/es/chat-engine/hooks/a2ui/useDataBinding.js +0 -111
  382. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +0 -1
  383. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +0 -56
  384. package/es/chat-engine/hooks/useJsonRenderActivity.js +0 -63
  385. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +0 -1
  386. package/es/chat-filecard/_example-js/base.d.ts +0 -1
  387. package/es/chat-loading/_example-js/base.d.ts +0 -2
  388. package/es/chat-loading/_example-js/text.d.ts +0 -2
  389. package/es/chat-markdown/_example-js/base.d.ts +0 -1
  390. package/es/chat-markdown/_example-js/custom.d.ts +0 -2
  391. package/es/chat-markdown/_example-js/event.d.ts +0 -1
  392. package/es/chat-markdown/_example-js/footnote.d.ts +0 -2
  393. package/es/chat-markdown/_example-js/plugin.d.ts +0 -2
  394. package/es/chat-markdown/_example-js/theme.d.ts +0 -2
  395. package/es/chat-message/_example-js/action.d.ts +0 -1
  396. package/es/chat-message/_example-js/base.d.ts +0 -1
  397. package/es/chat-message/_example-js/configure.d.ts +0 -1
  398. package/es/chat-message/_example-js/content.d.ts +0 -1
  399. package/es/chat-message/_example-js/custom.d.ts +0 -1
  400. package/es/chat-message/_example-js/handle-actions.d.ts +0 -7
  401. package/es/chat-message/_example-js/status.d.ts +0 -1
  402. package/es/chat-message/_example-js/think.d.ts +0 -1
  403. package/es/chat-sender/_example-js/attachment.d.ts +0 -2
  404. package/es/chat-sender/_example-js/base.d.ts +0 -2
  405. package/es/chat-sender/_example-js/custom.d.ts +0 -2
  406. package/es/chat-thinking/_example-js/base.d.ts +0 -1
  407. package/es/chat-thinking/_example-js/style.d.ts +0 -1
  408. package/es/chatbot/_example-js/agent.d.ts +0 -1
  409. package/es/chatbot/_example-js/agui.d.ts +0 -13
  410. package/es/chatbot/_example-js/backup/travel.d.ts +0 -1
  411. package/es/chatbot/_example-js/basic.d.ts +0 -1
  412. package/es/chatbot/_example-js/code.d.ts +0 -1
  413. package/es/chatbot/_example-js/components/ItineraryCard.d.ts +0 -3
  414. package/es/chatbot/_example-js/components/login.d.ts +0 -1
  415. package/es/chatbot/_example-js/comprehensive.d.ts +0 -1
  416. package/es/chatbot/_example-js/custom-content.d.ts +0 -1
  417. package/es/chatbot/_example-js/custom-merge.d.ts +0 -1
  418. package/es/chatbot/_example-js/custom.d.ts +0 -1
  419. package/es/chatbot/_example-js/docs.d.ts +0 -1
  420. package/es/chatbot/_example-js/image.d.ts +0 -1
  421. package/es/chatbot/_example-js/initial-messages.d.ts +0 -9
  422. package/es/chatbot/_example-js/instance-methods.d.ts +0 -14
  423. package/es/chatbot/_example-js/nostream.d.ts +0 -1
  424. package/es/chatbot/_example-js/quick-start.d.ts +0 -9
  425. package/es/chatbot/_example-js/research.d.ts +0 -1
  426. package/es/chatbot/_example-js/role-message-config.d.ts +0 -22
  427. package/es/chatbot/_example-js/sender-config.d.ts +0 -20
  428. package/es/chatbot/_example-js/service-config.d.ts +0 -17
  429. package/es/chatbot/_example-js/simple.d.ts +0 -1
  430. package/es/chatbot/_example-js/utils/messageRenderer.d.ts +0 -5
  431. package/es/chatbot/docs/react-best-practice.d.ts +0 -13
@@ -1 +0,0 @@
1
- {"version":3,"file":"A2uiMessageProcessor.js","sources":["../../../../../../pro-components/chat/chat-engine/core/a2ui/processor/A2uiMessageProcessor.ts"],"sourcesContent":["/**\n * A2UI 消息处理器 v2\n * 完全按照 A2UI v0.9 协议实现\n * \n * 支持四种消息类型:\n * - createSurface: 创建 Surface\n * - updateComponents: 更新组件\n * - updateDataModel: 更新数据模型\n * - deleteSurface: 删除 Surface\n * \n * 实现 External Store 模式,支持 useSyncExternalStore\n */\n\nimport type {\n A2UISurface,\n A2UIComponentBase,\n A2UIServerMessage,\n A2UIAction,\n ActionHandler,\n SkeletonHint,\n ResolvedComponent,\n UserActionMessage,\n} from '../types';\nimport { DataStore } from './DataStore';\nimport { ComponentTree } from './ComponentTree';\nimport { PathResolver } from './PathResolver';\n\nexport type SurfaceSnapshot = Map<string, A2UISurface>;\nexport type SurfaceListener = () => void;\n\n/**\n * A2UI 消息处理器配置\n */\nexport interface A2uiMessageProcessorOptions {\n /** Action 处理回调 */\n onAction?: ActionHandler;\n /** 用户行为消息发送回调 */\n onSendMessage?: (message: UserActionMessage) => void;\n /** 数据变更回调 */\n onDataChange?: (surfaceId: string, path: string, value: unknown) => void;\n /** 验证错误回调 */\n onValidationError?: (errors: Array<{ type: string; message: string; path?: string }>) => void;\n}\n\n/**\n * 内部 Surface 数据结构\n */\ninterface InternalSurface {\n id: string;\n catalogId: string;\n state: 'active' | 'closed' | 'pending';\n components: Map<string, A2UIComponentBase>;\n dataStore: DataStore;\n componentTree: ComponentTree | null;\n skeletonHint?: SkeletonHint;\n updatedAt: number;\n}\n\n/**\n * A2UI 消息处理器\n * \n * 核心功能:\n * 1. 处理 A2UI v0.9 协议消息\n * 2. 管理 Surface 生命周期\n * 3. 维护组件注册表和数据模型\n * 4. 构建组件树\n * 5. 支持 useSyncExternalStore 订阅\n */\nexport class A2uiMessageProcessor {\n private surfaces = new Map<string, InternalSurface>();\n private listeners = new Set<SurfaceListener>();\n private pathResolver = new PathResolver();\n private options: A2uiMessageProcessorOptions;\n \n // 缓存的快照,避免 useSyncExternalStore 无限循环\n private cachedSnapshot: SurfaceSnapshot = new Map();\n private snapshotVersion = 0;\n\n constructor(options: A2uiMessageProcessorOptions = {}) {\n this.options = options;\n // 绑定方法以确保 this 指向正确\n this.subscribe = this.subscribe.bind(this);\n this.getSnapshot = this.getSnapshot.bind(this);\n this.getServerSnapshot = this.getServerSnapshot.bind(this);\n }\n\n // ============= External Store 接口 =============\n\n /**\n * 订阅状态变化(供 useSyncExternalStore 使用)\n */\n subscribe(listener: SurfaceListener): () => void {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n /**\n * 获取当前快照(供 useSyncExternalStore 使用)\n * 返回缓存的快照,确保引用稳定\n */\n getSnapshot(): SurfaceSnapshot {\n return this.cachedSnapshot;\n }\n\n /**\n * 获取服务端快照(SSR 场景)\n */\n getServerSnapshot(): SurfaceSnapshot {\n return this.cachedSnapshot;\n }\n\n /**\n * 更新缓存的快照\n * 只在数据变更时调用\n */\n private updateCachedSnapshot(): void {\n const snapshot = new Map<string, A2UISurface>();\n \n this.surfaces.forEach((internal, id) => {\n snapshot.set(id, {\n id: internal.id,\n catalogId: internal.catalogId,\n state: internal.state,\n components: internal.components,\n root: internal.componentTree?.root || null,\n data: internal.dataStore.getSnapshot(),\n skeletonHint: internal.skeletonHint,\n updatedAt: internal.updatedAt,\n });\n });\n \n this.cachedSnapshot = snapshot;\n this.snapshotVersion++;\n }\n\n // ============= A2UI v0.9 消息处理 =============\n\n /**\n * 处理单条 A2UI v0.9 消息\n */\n processMessage(message: A2UIServerMessage): void {\n this.processMessageInternal(message);\n this.emitChange();\n }\n\n /**\n * 批量处理消息\n */\n processMessages(messages: A2UIServerMessage[]): void {\n for (const message of messages) {\n this.processMessageInternal(message);\n }\n\n // 所有消息处理完后统一通知\n this.emitChange();\n }\n\n /**\n * 增量处理消息(性能优化)\n * 当已知消息是新增的时候使用,避免重复处理\n */\n processMessagesIncremental(messages: A2UIServerMessage[]): void {\n if (messages.length === 0) return;\n\n for (const message of messages) {\n this.processMessageInternal(message);\n }\n\n this.emitChange();\n }\n\n /**\n * 内部消息处理(不触发 emitChange)\n */\n private processMessageInternal(message: A2UIServerMessage): void {\n if ('createSurface' in message) {\n this.handleCreateSurface(message.createSurface);\n } else if ('updateComponents' in message) {\n this.handleUpdateComponents(message.updateComponents);\n } else if ('updateDataModel' in message) {\n this.handleUpdateDataModel(message.updateDataModel);\n } else if ('deleteSurface' in message) {\n this.handleDeleteSurface(message.deleteSurface);\n }\n }\n\n // ============= 消息处理器 =============\n\n /**\n * 处理 createSurface 消息\n */\n private handleCreateSurface(payload: { surfaceId: string; catalogId: string }): void {\n const surface: InternalSurface = {\n id: payload.surfaceId,\n catalogId: payload.catalogId,\n state: 'pending',\n components: new Map(),\n dataStore: new DataStore(),\n componentTree: null,\n updatedAt: Date.now(),\n };\n\n this.surfaces.set(payload.surfaceId, surface);\n }\n\n /**\n * 处理 updateComponents 消息\n */\n private handleUpdateComponents(payload: { surfaceId: string; components: A2UIComponentBase[] }): void {\n let surface = this.surfaces.get(payload.surfaceId);\n \n // 如果 Surface 不存在,自动创建(容错处理)\n if (!surface) {\n console.warn(`[A2UI] Surface ${payload.surfaceId} not found, auto-creating`);\n surface = {\n id: payload.surfaceId,\n catalogId: 'default',\n state: 'pending',\n components: new Map(),\n dataStore: new DataStore(),\n componentTree: null,\n updatedAt: Date.now(),\n };\n this.surfaces.set(payload.surfaceId, surface);\n }\n\n // 添加/更新组件到平铺注册表\n for (const component of payload.components) {\n surface.components.set(component.id, component);\n }\n\n // 重建组件树\n this.rebuildComponentTree(surface);\n\n // 如果有 root 组件,激活 Surface\n if (surface.components.has('root') && surface.state === 'pending') {\n surface.state = 'active';\n }\n\n surface.updatedAt = Date.now();\n }\n\n /**\n * 处理 updateDataModel 消息\n */\n private handleUpdateDataModel(payload: {\n surfaceId: string;\n path?: string;\n op?: 'add' | 'replace' | 'remove';\n value?: unknown;\n }): void {\n const surface = this.surfaces.get(payload.surfaceId);\n if (!surface) {\n console.warn(`[A2UI] Surface ${payload.surfaceId} not found`);\n return;\n }\n\n const path = payload.path || '/';\n const op = payload.op || 'replace';\n\n if (op === 'remove') {\n surface.dataStore.remove(path);\n } else {\n // add 和 replace 都使用 set\n surface.dataStore.set(path, payload.value);\n }\n\n // 只有当数据变化可能影响 template 渲染时才重建组件树\n // 优化:检查是否有组件使用了 template children\n if (this.needsTreeRebuild(surface, path)) {\n this.rebuildComponentTree(surface);\n }\n surface.updatedAt = Date.now();\n }\n\n /**\n * 检查是否需要重建组件树\n * 优化:只有当路径可能影响 template 渲染时才需要重建\n */\n private needsTreeRebuild(surface: InternalSurface, path: string): boolean {\n // 如果是根路径替换,需要重建\n if (path === '/' || path === '') {\n return true;\n }\n\n // 检查是否有组件的 children 使用了这个路径作为 template\n for (const component of surface.components.values()) {\n const children = (component as any).children;\n if (children && typeof children === 'object' && !Array.isArray(children)) {\n // A2UI v0.9 格式: { componentId, path }\n const templatePath = (children as any).path;\n if (templatePath && (path.startsWith(templatePath) || templatePath.startsWith(path))) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * 只更新数据模型,不重建组件树(性能优化)\n * 适用于不影响组件结构的数据更新(如表单输入)\n */\n updateDataOnly(surfaceId: string, path: string, value: unknown): void {\n const surface = this.surfaces.get(surfaceId);\n if (!surface) return;\n\n surface.dataStore.set(path, value);\n surface.updatedAt = Date.now();\n \n // 只更新快照,不重建组件树\n this.updateCachedSnapshot();\n this.listeners.forEach((listener) => listener());\n \n // 触发回调\n this.options.onDataChange?.(surfaceId, path, value);\n }\n\n /**\n * 处理 deleteSurface 消息\n */\n private handleDeleteSurface(payload: { surfaceId: string }): void {\n this.surfaces.delete(payload.surfaceId);\n }\n\n // ============= 组件树构建 =============\n\n /**\n * 重建组件树\n */\n private rebuildComponentTree(surface: InternalSurface): void {\n // 只有存在 root 组件时才构建树\n if (!surface.components.has('root')) {\n surface.componentTree = null;\n return;\n }\n\n surface.componentTree = new ComponentTree(\n surface.components,\n surface.dataStore,\n this.pathResolver\n );\n }\n\n // ============= 数据访问(供 React 组件使用)=============\n\n /**\n * 获取数据\n * @param surfaceId Surface ID\n * @param path 数据路径\n * @param dataContextPath 当前组件的数据上下文\n */\n getData(surfaceId: string, path: string, dataContextPath: string = ''): unknown {\n const surface = this.surfaces.get(surfaceId);\n if (!surface) return undefined;\n\n const resolvedPath = this.pathResolver.resolve(path, dataContextPath);\n return surface.dataStore.get(resolvedPath);\n }\n\n /**\n * 设置数据(双向绑定)\n */\n setData(surfaceId: string, path: string, dataContextPath: string, value: unknown): void {\n const surface = this.surfaces.get(surfaceId);\n if (!surface) return;\n\n const resolvedPath = this.pathResolver.resolve(path, dataContextPath);\n surface.dataStore.set(resolvedPath, value);\n\n // 重建组件树并通知\n this.rebuildComponentTree(surface);\n surface.updatedAt = Date.now();\n this.emitChange();\n\n // 触发回调\n this.options.onDataChange?.(surfaceId, resolvedPath, value);\n }\n\n /**\n * 更新数据值(简化接口,不需要 dataContextPath)\n */\n updateDataValue(surfaceId: string, path: string, value: unknown): void {\n this.setData(surfaceId, path, '', value);\n }\n\n // ============= Action 处理 =============\n\n /**\n * 分发 Action\n */\n dispatchAction(action: A2UIAction, surfaceId?: string, componentId?: string): void {\n // 调用外部回调\n if (this.options.onAction) {\n const context = surfaceId ? {\n surfaceId,\n componentId,\n updateData: (path: string, value: unknown) => {\n this.updateDataValue(surfaceId, path, value);\n },\n getData: (path?: string) => {\n const surface = this.surfaces.get(surfaceId);\n if (!surface) return undefined;\n return path ? surface.dataStore.get(path) : surface.dataStore.getSnapshot();\n },\n } : undefined;\n\n this.options.onAction(action, context);\n }\n\n // 发送用户行为消息\n if (this.options.onSendMessage && surfaceId && componentId) {\n this.options.onSendMessage({\n userAction: {\n name: action.name,\n surfaceId,\n sourceComponentId: componentId,\n timestamp: new Date().toISOString(),\n context: action.context || {},\n },\n });\n }\n }\n\n // ============= Surface 管理(扩展方法)=============\n\n /**\n * 创建 Pending 状态的 Surface(用于显示骨架屏)\n */\n createPendingSurface(surfaceId: string, skeletonHint?: SkeletonHint): void {\n if (this.surfaces.has(surfaceId)) return;\n\n const surface: InternalSurface = {\n id: surfaceId,\n catalogId: 'default',\n state: 'pending',\n components: new Map(),\n dataStore: new DataStore(),\n componentTree: null,\n skeletonHint,\n updatedAt: Date.now(),\n };\n\n this.surfaces.set(surfaceId, surface);\n this.emitChange();\n }\n\n /**\n * 激活 Surface\n */\n activateSurface(surfaceId: string): void {\n const surface = this.surfaces.get(surfaceId);\n if (!surface) return;\n\n surface.state = 'active';\n surface.updatedAt = Date.now();\n this.emitChange();\n }\n\n /**\n * 关闭 Surface\n */\n closeSurface(surfaceId: string): void {\n const surface = this.surfaces.get(surfaceId);\n if (!surface) return;\n\n surface.state = 'closed';\n surface.updatedAt = Date.now();\n this.emitChange();\n }\n\n /**\n * 直接设置整个数据模型\n */\n setSurfaceData(surfaceId: string, data: Record<string, unknown>): void {\n const surface = this.surfaces.get(surfaceId);\n if (!surface) return;\n\n surface.dataStore.set('/', data);\n this.rebuildComponentTree(surface);\n surface.updatedAt = Date.now();\n this.emitChange();\n }\n\n /**\n * 合并数据(保留用户输入)\n */\n mergeSurfaceData(surfaceId: string, data: Record<string, unknown>): void {\n const surface = this.surfaces.get(surfaceId);\n if (!surface) return;\n\n surface.dataStore.merge('/', data);\n this.rebuildComponentTree(surface);\n surface.updatedAt = Date.now();\n this.emitChange();\n }\n\n // ============= 工具方法 =============\n\n /**\n * 获取单个 Surface\n */\n getSurface(surfaceId: string): A2UISurface | undefined {\n const internal = this.surfaces.get(surfaceId);\n if (!internal) return undefined;\n\n return {\n id: internal.id,\n catalogId: internal.catalogId,\n state: internal.state,\n components: internal.components,\n root: internal.componentTree?.root || null,\n data: internal.dataStore.getSnapshot(),\n skeletonHint: internal.skeletonHint,\n updatedAt: internal.updatedAt,\n };\n }\n\n /**\n * 获取所有 Surface ID\n */\n getSurfaceIds(): string[] {\n return Array.from(this.surfaces.keys());\n }\n\n /**\n * 获取所有 Surface\n */\n getAllSurfaces(): A2UISurface[] {\n return this.getSurfaceIds().map((id) => this.getSurface(id)!);\n }\n\n /**\n * 获取组件树\n */\n getComponentTree(surfaceId: string): ResolvedComponent | null {\n const surface = this.surfaces.get(surfaceId);\n return surface?.componentTree?.root || null;\n }\n\n /**\n * 查找组件\n */\n findComponent(surfaceId: string, componentId: string): A2UIComponentBase | undefined {\n const surface = this.surfaces.get(surfaceId);\n return surface?.components.get(componentId);\n }\n\n /**\n * 清空所有 Surface\n */\n clear(): void {\n this.surfaces.clear();\n this.emitChange();\n }\n\n /**\n * 清空所有 Surface(别名)\n */\n clearAllSurfaces(): void {\n this.clear();\n }\n\n /**\n * 销毁处理器\n */\n destroy(): void {\n this.clear();\n this.listeners.clear();\n }\n\n // ============= 内部方法 =============\n\n /**\n * 通知所有订阅者\n * 先更新缓存快照,再通知订阅者\n */\n private emitChange(): void {\n // 先更新缓存快照\n this.updateCachedSnapshot();\n // 再通知订阅者\n this.listeners.forEach((listener) => {\n listener();\n });\n }\n}\n\n/**\n * 创建 A2UI 消息处理器实例\n */\nexport function createA2uiProcessor(options?: A2uiMessageProcessorOptions): A2uiMessageProcessor {\n return new A2uiMessageProcessor(options);\n}\n\nexport default A2uiMessageProcessor;\n"],"names":["A2uiMessageProcessor","options","arguments","length","undefined","_classCallCheck","_defineProperty","Map","Set","PathResolver","subscribe","bind","getSnapshot","getServerSnapshot","_createClass","key","value","listener","_this","listeners","add","cachedSnapshot","updateCachedSnapshot","snapshot","surfaces","forEach","internal","id","_internal$componentTr","set","catalogId","state","components","root","componentTree","data","dataStore","skeletonHint","updatedAt","snapshotVersion","processMessage","message","processMessageInternal","emitChange","processMessages","messages","_iterator","_createForOfIteratorHelper","_step","s","n","done","err","e","f","processMessagesIncremental","_iterator2","_step2","handleCreateSurface","createSurface","handleUpdateComponents","updateComponents","handleUpdateDataModel","updateDataModel","handleDeleteSurface","deleteSurface","payload","surface","surfaceId","DataStore","Date","now","get","console","warn","concat","_iterator3","_step3","component","rebuildComponentTree","has","path","op","remove","needsTreeRebuild","_iterator4","values","_step4","children","_typeof","Array","isArray","templatePath","startsWith","updateDataOnly","_this$options$onDataC","_this$options","onDataChange","call","ComponentTree","pathResolver","getData","dataContextPath","resolvedPath","resolve","setData","_this$options$onDataC2","_this$options2","updateDataValue","dispatchAction","action","componentId","_this2","onAction","context","updateData","onSendMessage","userAction","name","sourceComponentId","timestamp","toISOString","createPendingSurface","activateSurface","closeSurface","setSurfaceData","mergeSurfaceData","merge","getSurface","_internal$componentTr2","getSurfaceIds","from","keys","getAllSurfaces","_this3","map","getComponentTree","_surface$componentTre","findComponent","clear","clearAllSurfaces","destroy","createA2uiProcessor"],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- /**
2
- * A2UI ComponentTree
3
- * 将平铺的组件列表转换为嵌套的组件树
4
- * 参考 @a2ui/core ComponentTree 实现
5
- *
6
- * 支持两种 children 模式 (A2UI v0.9 规范):
7
- * 1. 直接引用: children: ["comp1", "comp2"]
8
- * 2. Template 模式: children: { componentId: "comp1", path: "/items" }
9
- */
10
- import type { A2UIComponentBase, ResolvedComponent } from '../types';
11
- import type { DataStore } from './DataStore';
12
- import type { PathResolver } from './PathResolver';
13
- /**
14
- * 组件树构建器
15
- */
16
- export declare class ComponentTree {
17
- private components;
18
- private dataStore;
19
- private pathResolver;
20
- /** 解析后的根组件 */
21
- readonly root: ResolvedComponent | null;
22
- constructor(components: Map<string, A2UIComponentBase>, dataStore: DataStore, pathResolver: PathResolver);
23
- /**
24
- * 递归构建组件树
25
- * @param componentId 组件 ID
26
- * @param dataContextPath 当前数据上下文路径
27
- */
28
- private buildTree;
29
- /**
30
- * 解析 children 属性
31
- */
32
- private resolveChildren;
33
- /**
34
- * 解析 Template 模式的 children
35
- * Template 会根据 dataPath 指向的数组长度,创建多个子组件实例
36
- */
37
- private resolveTemplate;
38
- /**
39
- * 查找组件
40
- */
41
- findComponent(componentId: string): ResolvedComponent | null;
42
- private findInTree;
43
- /**
44
- * 遍历组件树
45
- */
46
- traverse(callback: (component: ResolvedComponent) => void): void;
47
- private traverseNode;
48
- /**
49
- * 获取所有组件 ID
50
- */
51
- getAllIds(): string[];
52
- }
53
- export default ComponentTree;
@@ -1,158 +0,0 @@
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
@@ -1 +0,0 @@
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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"}
@@ -1,63 +0,0 @@
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;
@@ -1,172 +0,0 @@
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
@@ -1 +0,0 @@
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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"}
@@ -1,47 +0,0 @@
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;