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

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 (526) hide show
  1. package/es/_chunks/{dep-3e40d789.js → dep-5d7a98b7.js} +2 -2
  2. package/es/_chunks/{dep-3e40d789.js.map → dep-5d7a98b7.js.map} +1 -1
  3. package/es/_chunks/{dep-1ca64fef.js → dep-907337f3.js} +2 -2
  4. package/es/_chunks/{dep-93283bbd.js.map → dep-907337f3.js.map} +1 -1
  5. package/es/_chunks/{dep-dfe91b1f.js → dep-e1e84ed7.js} +1 -1
  6. package/es/_chunks/{dep-13fe70ea.js.map → dep-e1e84ed7.js.map} +1 -1
  7. package/es/_chunks/{dep-076af7c3.js → dep-ee7a509c.js} +3 -3
  8. package/es/_chunks/{dep-076af7c3.js.map → dep-ee7a509c.js.map} +1 -1
  9. package/es/_util/reactify.js +1 -1
  10. package/es/_util/useDynamicStyle.js +1 -1
  11. package/es/attachments/index.js +1 -1
  12. package/es/chat-actionbar/index.js +1 -1
  13. package/es/chat-engine/components/activity/index.js +2 -2
  14. package/es/chat-engine/components/activity/registry.js +1 -1
  15. package/es/chat-engine/components/activity/render.js +2 -2
  16. package/es/chat-engine/components/activity/types.js +1 -1
  17. package/es/chat-engine/components/index.js +12 -6
  18. package/es/chat-engine/components/index.js.map +1 -1
  19. package/es/chat-engine/components/json-render/catalog/atomic/button.js +1 -1
  20. package/es/chat-engine/components/json-render/catalog/atomic/card.js +1 -1
  21. package/es/chat-engine/components/json-render/catalog/atomic/input.js +12 -6
  22. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -1
  23. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +1 -1
  24. package/es/chat-engine/components/json-render/catalog/atomic/text.js +1 -1
  25. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +1 -1
  26. package/es/chat-engine/components/json-render/contexts/actions.js +2 -2
  27. package/es/chat-engine/components/json-render/contexts/data.js +2 -2
  28. package/es/chat-engine/components/json-render/contexts/index.js +2 -2
  29. package/es/chat-engine/components/json-render/contexts/store.js +1 -1
  30. package/es/chat-engine/components/json-render/contexts/tree.js +1 -1
  31. package/es/chat-engine/components/json-render/contexts/validation.js +2 -2
  32. package/es/chat-engine/components/json-render/contexts/visibility.js +2 -2
  33. package/es/chat-engine/components/json-render/index.js +12 -6
  34. package/es/chat-engine/components/json-render/index.js.map +1 -1
  35. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +12 -6
  36. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -1
  37. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +12 -6
  38. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -1
  39. package/es/chat-engine/components/json-render/registry/config.js +12 -6
  40. package/es/chat-engine/components/json-render/registry/config.js.map +1 -1
  41. package/es/chat-engine/components/json-render/registry/index.js +12 -6
  42. package/es/chat-engine/components/json-render/registry/index.js.map +1 -1
  43. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +11 -5
  44. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -1
  45. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +3 -3
  46. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +2 -2
  47. package/es/chat-engine/components/json-render/renderer/_index.js +2 -2
  48. package/es/chat-engine/components/json-render/types.js +1 -1
  49. package/es/chat-engine/components/provider/agent-state.js +10 -4
  50. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  51. package/es/chat-engine/components/shared/ComponentErrorBoundary.js +1 -1
  52. package/es/chat-engine/components/shared/createRegistry.js +1 -1
  53. package/es/chat-engine/components/shared/index.js +1 -1
  54. package/es/chat-engine/components/shared/useRegistrationListener.js +1 -1
  55. package/es/chat-engine/components/toolcall/index.js +10 -4
  56. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  57. package/es/chat-engine/components/toolcall/registry.js +1 -1
  58. package/es/chat-engine/components/toolcall/render.js +9 -3
  59. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  60. package/es/chat-engine/components/toolcall/types.js +1 -1
  61. package/es/chat-engine/core/adapters/a2ui/index.js +1 -1
  62. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +1 -1
  63. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +1 -1
  64. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +1 -1
  65. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +1 -1
  66. package/es/chat-engine/core/adapters/a2ui/types/index.js +1 -1
  67. package/es/chat-engine/core/adapters/a2ui/types/types.js +1 -1
  68. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1 -1
  69. package/es/chat-engine/core/adapters/a2ui/utils/index.js +1 -1
  70. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +1 -1
  71. package/es/chat-engine/core/adapters/agui/ActivityManager.js +1 -1
  72. package/es/chat-engine/core/adapters/agui/StateManager.js +1 -1
  73. package/es/chat-engine/core/adapters/agui/event-mapper.js +1 -1
  74. package/es/chat-engine/core/adapters/agui/index.js +21 -52
  75. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  76. package/es/chat-engine/core/adapters/agui/types/events.js +1 -1
  77. package/es/chat-engine/core/adapters/agui/types/index.js +1 -1
  78. package/es/chat-engine/core/adapters/agui/utils.d.ts +25 -2
  79. package/es/chat-engine/core/adapters/agui/utils.js +52 -12
  80. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -1
  81. package/es/chat-engine/core/adapters/index.js +3 -1
  82. package/es/chat-engine/core/adapters/index.js.map +1 -1
  83. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +1 -1
  84. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +1 -1
  85. package/es/chat-engine/core/adapters/json-render/engine.js +1 -1
  86. package/es/chat-engine/core/adapters/json-render/index.js +1 -1
  87. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +1 -1
  88. package/es/chat-engine/core/adapters/json-render/types/core.js +1 -1
  89. package/es/chat-engine/core/adapters/json-render/types/index.js +1 -1
  90. package/es/chat-engine/core/adapters/openclaw/device-key-manager.d.ts +65 -0
  91. package/es/chat-engine/core/adapters/openclaw/device-key-manager.js +375 -0
  92. package/es/chat-engine/core/adapters/openclaw/device-key-manager.js.map +1 -0
  93. package/es/chat-engine/core/adapters/openclaw/event-mapper.d.ts +36 -14
  94. package/es/chat-engine/core/adapters/openclaw/event-mapper.js +37 -21
  95. package/es/chat-engine/core/adapters/openclaw/event-mapper.js.map +1 -1
  96. package/es/chat-engine/core/adapters/openclaw/history-converter.d.ts +120 -0
  97. package/es/chat-engine/core/adapters/openclaw/history-converter.js +251 -0
  98. package/es/chat-engine/core/adapters/openclaw/history-converter.js.map +1 -0
  99. package/es/chat-engine/core/adapters/openclaw/index.d.ts +41 -0
  100. package/es/chat-engine/core/adapters/openclaw/index.js +146 -46
  101. package/es/chat-engine/core/adapters/openclaw/index.js.map +1 -1
  102. package/es/chat-engine/core/adapters/openclaw/rpc-handler.d.ts +13 -0
  103. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js +20 -1
  104. package/es/chat-engine/core/adapters/openclaw/rpc-handler.js.map +1 -1
  105. package/es/chat-engine/core/adapters/openclaw/types/config.d.ts +17 -18
  106. package/es/chat-engine/core/adapters/openclaw/types/config.js +4 -2
  107. package/es/chat-engine/core/adapters/openclaw/types/config.js.map +1 -1
  108. package/es/chat-engine/core/adapters/openclaw/types/events.d.ts +5 -1
  109. package/es/chat-engine/core/adapters/openclaw/types/events.js +3 -1
  110. package/es/chat-engine/core/adapters/openclaw/types/events.js.map +1 -1
  111. package/es/chat-engine/core/adapters/openclaw/types/index.js +1 -1
  112. package/es/chat-engine/core/adapters/openclaw/types/messages.d.ts +22 -0
  113. package/es/chat-engine/core/adapters/openclaw/types/messages.js +1 -1
  114. package/es/chat-engine/core/adapters/openclaw/types/messages.js.map +1 -1
  115. package/es/chat-engine/core/adapters/openclaw/utils.js +1 -1
  116. package/es/chat-engine/core/adapters/openclaw/utils.js.map +1 -1
  117. package/es/chat-engine/core/adapters/shared/activity-manager.js +1 -1
  118. package/es/chat-engine/core/adapters/shared/content-factory.js +1 -1
  119. package/es/chat-engine/core/adapters/shared/index.js +1 -1
  120. package/es/chat-engine/core/adapters/shared/merge-utils.js +1 -1
  121. package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
  122. package/es/chat-engine/core/event-bus/index.js +1 -1
  123. package/es/chat-engine/core/event-bus/types.js +1 -1
  124. package/es/chat-engine/core/index.d.ts +27 -25
  125. package/es/chat-engine/core/index.js +231 -359
  126. package/es/chat-engine/core/index.js.map +1 -1
  127. package/es/chat-engine/core/processor/index.d.ts +32 -0
  128. package/es/chat-engine/core/processor/index.js +76 -1
  129. package/es/chat-engine/core/processor/index.js.map +1 -1
  130. package/es/chat-engine/core/server/batch-client.js +1 -1
  131. package/es/chat-engine/core/server/connection-manager.js +1 -1
  132. package/es/chat-engine/core/server/errors.js +1 -1
  133. package/es/chat-engine/core/server/index.js +1 -21
  134. package/es/chat-engine/core/server/index.js.map +1 -1
  135. package/es/chat-engine/core/server/llm-service.d.ts +7 -7
  136. package/es/chat-engine/core/server/llm-service.js +13 -140
  137. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  138. package/es/chat-engine/core/server/sse-client.js +1 -1
  139. package/es/chat-engine/core/server/sse-parser.js +1 -1
  140. package/es/chat-engine/core/server/types.js +1 -1
  141. package/es/chat-engine/core/server/websocket-client.d.ts +2 -0
  142. package/es/chat-engine/core/server/websocket-client.js +19 -3
  143. package/es/chat-engine/core/server/websocket-client.js.map +1 -1
  144. package/es/chat-engine/core/store/message.js +2 -2
  145. package/es/chat-engine/core/store/model.js +2 -2
  146. package/es/chat-engine/core/store/reactiveState.js +2 -2
  147. package/es/chat-engine/core/stream-handlers/agui-stream-handler.d.ts +24 -0
  148. package/es/chat-engine/core/stream-handlers/agui-stream-handler.js +140 -0
  149. package/es/chat-engine/core/stream-handlers/agui-stream-handler.js.map +1 -0
  150. package/es/chat-engine/core/stream-handlers/default-stream-handler.d.ts +7 -0
  151. package/es/chat-engine/core/stream-handlers/default-stream-handler.js +77 -0
  152. package/es/chat-engine/core/stream-handlers/default-stream-handler.js.map +1 -0
  153. package/es/chat-engine/core/stream-handlers/index.d.ts +21 -0
  154. package/es/chat-engine/core/stream-handlers/index.js +72 -0
  155. package/es/chat-engine/core/stream-handlers/index.js.map +1 -0
  156. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.d.ts +64 -0
  157. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.js +320 -0
  158. package/es/chat-engine/core/stream-handlers/openclaw-stream-handler.js.map +1 -0
  159. package/es/chat-engine/core/stream-handlers/types.d.ts +47 -0
  160. package/es/chat-engine/core/stream-handlers/types.js +7 -0
  161. package/es/chat-engine/core/stream-handlers/types.js.map +1 -0
  162. package/es/chat-engine/core/type.d.ts +18 -0
  163. package/es/chat-engine/core/type.js +1 -1
  164. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  165. package/es/chat-engine/core/utils/immutable-patch.js +1 -1
  166. package/es/chat-engine/core/utils/index.js +1 -1
  167. package/es/chat-engine/core/utils/json-patch/helpers.js +1 -1
  168. package/es/chat-engine/core/utils/json-patch/index.js +1 -1
  169. package/es/chat-engine/core/utils/logger.js +1 -1
  170. package/es/chat-engine/core/utils/performance.js +1 -1
  171. package/es/chat-engine/hooks/index.js +10 -4
  172. package/es/chat-engine/hooks/index.js.map +1 -1
  173. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  174. package/es/chat-engine/hooks/useAgentState.js +10 -4
  175. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  176. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  177. package/es/chat-engine/hooks/useChat.js +45 -15
  178. package/es/chat-engine/hooks/useChat.js.map +1 -1
  179. package/es/chat-engine/index.js +12 -6
  180. package/es/chat-engine/index.js.map +1 -1
  181. package/es/chat-filecard/index.js +1 -1
  182. package/es/chat-loading/index.js +1 -1
  183. package/es/chat-markdown/index.js +1 -1
  184. package/es/chat-message/index.js +1 -1
  185. package/es/chat-sender/index.js +1 -1
  186. package/es/chat-thinking/index.js +1 -1
  187. package/es/chatbot/index.js +1 -1
  188. package/es/index.js +10 -4
  189. package/es/index.js.map +1 -1
  190. package/es/style/index.js +1 -1
  191. package/package.json +1 -1
  192. package/es/_chunks/dep-1007ac80.js +0 -205
  193. package/es/_chunks/dep-1007ac80.js.map +0 -1
  194. package/es/_chunks/dep-13fe70ea.js +0 -438
  195. package/es/_chunks/dep-16520c2b.js +0 -1247
  196. package/es/_chunks/dep-16520c2b.js.map +0 -1
  197. package/es/_chunks/dep-1743bd61.js +0 -438
  198. package/es/_chunks/dep-1743bd61.js.map +0 -1
  199. package/es/_chunks/dep-1ca64fef.js.map +0 -1
  200. package/es/_chunks/dep-24472232.js +0 -839
  201. package/es/_chunks/dep-24472232.js.map +0 -1
  202. package/es/_chunks/dep-2bfe72cb.js +0 -438
  203. package/es/_chunks/dep-2bfe72cb.js.map +0 -1
  204. package/es/_chunks/dep-3864b369.js +0 -839
  205. package/es/_chunks/dep-3864b369.js.map +0 -1
  206. package/es/_chunks/dep-4dedfbef.js +0 -438
  207. package/es/_chunks/dep-4dedfbef.js.map +0 -1
  208. package/es/_chunks/dep-56f5e08e.js +0 -448
  209. package/es/_chunks/dep-56f5e08e.js.map +0 -1
  210. package/es/_chunks/dep-58d90dfe.js +0 -438
  211. package/es/_chunks/dep-58d90dfe.js.map +0 -1
  212. package/es/_chunks/dep-5b6b17d0.js +0 -169
  213. package/es/_chunks/dep-5b6b17d0.js.map +0 -1
  214. package/es/_chunks/dep-5e2400d2.js +0 -438
  215. package/es/_chunks/dep-5e2400d2.js.map +0 -1
  216. package/es/_chunks/dep-60f2a734.js +0 -169
  217. package/es/_chunks/dep-60f2a734.js.map +0 -1
  218. package/es/_chunks/dep-688e4aaa.js +0 -438
  219. package/es/_chunks/dep-688e4aaa.js.map +0 -1
  220. package/es/_chunks/dep-771678df.js +0 -438
  221. package/es/_chunks/dep-771678df.js.map +0 -1
  222. package/es/_chunks/dep-870f0d35.js +0 -839
  223. package/es/_chunks/dep-870f0d35.js.map +0 -1
  224. package/es/_chunks/dep-93283bbd.js +0 -1247
  225. package/es/_chunks/dep-96eca06f.js +0 -169
  226. package/es/_chunks/dep-96eca06f.js.map +0 -1
  227. package/es/_chunks/dep-98d23dfa.js +0 -169
  228. package/es/_chunks/dep-98d23dfa.js.map +0 -1
  229. package/es/_chunks/dep-991f7c12.js +0 -1247
  230. package/es/_chunks/dep-991f7c12.js.map +0 -1
  231. package/es/_chunks/dep-b4eec30f.js +0 -1247
  232. package/es/_chunks/dep-b4eec30f.js.map +0 -1
  233. package/es/_chunks/dep-ba3bd553.js +0 -169
  234. package/es/_chunks/dep-ba3bd553.js.map +0 -1
  235. package/es/_chunks/dep-bcb234a1.js +0 -839
  236. package/es/_chunks/dep-bcb234a1.js.map +0 -1
  237. package/es/_chunks/dep-dbdfe7d6.js +0 -169
  238. package/es/_chunks/dep-dbdfe7d6.js.map +0 -1
  239. package/es/_chunks/dep-de8ac730.js +0 -1247
  240. package/es/_chunks/dep-de8ac730.js.map +0 -1
  241. package/es/_chunks/dep-dfe91b1f.js.map +0 -1
  242. package/es/_chunks/dep-e9dbff09.js +0 -1247
  243. package/es/_chunks/dep-e9dbff09.js.map +0 -1
  244. package/es/_chunks/dep-ebc4cf30.js +0 -1247
  245. package/es/_chunks/dep-ebc4cf30.js.map +0 -1
  246. package/es/_chunks/dep-f2051ebd.js +0 -839
  247. package/es/_chunks/dep-f2051ebd.js.map +0 -1
  248. package/es/_chunks/dep-f691a67e.js +0 -438
  249. package/es/_chunks/dep-f691a67e.js.map +0 -1
  250. package/es/_chunks/dep-f8016301.js +0 -169
  251. package/es/_chunks/dep-f8016301.js.map +0 -1
  252. package/es/chat-actionbar/_example-js/base.d.ts +0 -2
  253. package/es/chat-actionbar/_example-js/custom.d.ts +0 -2
  254. package/es/chat-actionbar/_example-js/style.d.ts +0 -2
  255. package/es/chat-attachments/_example-js/base.d.ts +0 -2
  256. package/es/chat-attachments/_example-js/scroll-x.d.ts +0 -2
  257. package/es/chat-attachments/_example-js/scroll-y.d.ts +0 -2
  258. package/es/chat-attachments/index.d.ts +0 -5
  259. package/es/chat-attachments/index.js +0 -26
  260. package/es/chat-attachments/index.js.map +0 -1
  261. package/es/chat-engine/_example-js/agui-basic.d.ts +0 -10
  262. package/es/chat-engine/_example-js/agui-comprehensive.d.ts +0 -2
  263. package/es/chat-engine/_example-js/agui-test.d.ts +0 -11
  264. package/es/chat-engine/_example-js/agui-toolcall.d.ts +0 -5
  265. package/es/chat-engine/_example-js/agui-videoclip.d.ts +0 -8
  266. package/es/chat-engine/_example-js/agui.d.ts +0 -1
  267. package/es/chat-engine/_example-js/basic.d.ts +0 -9
  268. package/es/chat-engine/_example-js/components/HotelCard.d.ts +0 -3
  269. package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +0 -6
  270. package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +0 -3
  271. package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +0 -3
  272. package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +0 -4
  273. package/es/chat-engine/_example-js/components/Toolcall.d.ts +0 -4
  274. package/es/chat-engine/_example-js/components/WeatherCard.d.ts +0 -3
  275. package/es/chat-engine/_example-js/components/login.d.ts +0 -1
  276. package/es/chat-engine/_example-js/comprehensive.d.ts +0 -12
  277. package/es/chat-engine/_example-js/custom-content.d.ts +0 -1
  278. package/es/chat-engine/_example-js/hookComponent.d.ts +0 -1
  279. package/es/chat-engine/_example-js/initial-messages.d.ts +0 -9
  280. package/es/chat-engine/_example-js/instance-methods.d.ts +0 -13
  281. package/es/chat-engine/_example-js/travel-actions.d.ts +0 -91
  282. package/es/chat-engine/_example-js/travelToolcall.d.ts +0 -1
  283. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.d.ts +0 -196
  284. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js +0 -301
  285. package/es/chat-engine/components/a2ui/A2UIActivityRenderer.js.map +0 -1
  286. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.d.ts +0 -37
  287. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js +0 -116
  288. package/es/chat-engine/components/a2ui/A2UIComponentRenderer.js.map +0 -1
  289. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.d.ts +0 -42
  290. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js +0 -113
  291. package/es/chat-engine/components/a2ui/A2UIErrorBoundary.js.map +0 -1
  292. package/es/chat-engine/components/a2ui/A2UISkeleton.d.ts +0 -60
  293. package/es/chat-engine/components/a2ui/A2UISkeleton.js +0 -197
  294. package/es/chat-engine/components/a2ui/A2UISkeleton.js.map +0 -1
  295. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.d.ts +0 -44
  296. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js +0 -139
  297. package/es/chat-engine/components/a2ui/A2UISurfaceRenderer.js.map +0 -1
  298. package/es/chat-engine/components/a2ui/containers/A2UICard.d.ts +0 -22
  299. package/es/chat-engine/components/a2ui/containers/A2UICard.js +0 -82
  300. package/es/chat-engine/components/a2ui/containers/A2UICard.js.map +0 -1
  301. package/es/chat-engine/components/a2ui/containers/A2UIColumn.d.ts +0 -18
  302. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js +0 -81
  303. package/es/chat-engine/components/a2ui/containers/A2UIColumn.js.map +0 -1
  304. package/es/chat-engine/components/a2ui/containers/A2UIList.d.ts +0 -14
  305. package/es/chat-engine/components/a2ui/containers/A2UIList.js +0 -62
  306. package/es/chat-engine/components/a2ui/containers/A2UIList.js.map +0 -1
  307. package/es/chat-engine/components/a2ui/containers/A2UIRow.d.ts +0 -20
  308. package/es/chat-engine/components/a2ui/containers/A2UIRow.js +0 -84
  309. package/es/chat-engine/components/a2ui/containers/A2UIRow.js.map +0 -1
  310. package/es/chat-engine/components/a2ui/containers/A2UITabs.d.ts +0 -14
  311. package/es/chat-engine/components/a2ui/containers/A2UITabs.js +0 -69
  312. package/es/chat-engine/components/a2ui/containers/A2UITabs.js.map +0 -1
  313. package/es/chat-engine/components/a2ui/containers/index.d.ts +0 -8
  314. package/es/chat-engine/components/a2ui/containers/index.js +0 -30
  315. package/es/chat-engine/components/a2ui/containers/index.js.map +0 -1
  316. package/es/chat-engine/components/a2ui/index.d.ts +0 -11
  317. package/es/chat-engine/components/a2ui/index.js +0 -62
  318. package/es/chat-engine/components/a2ui/index.js.map +0 -1
  319. package/es/chat-engine/components/a2ui/primitives/A2UIButton.d.ts +0 -33
  320. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js +0 -80
  321. package/es/chat-engine/components/a2ui/primitives/A2UIButton.js.map +0 -1
  322. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.d.ts +0 -12
  323. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js +0 -43
  324. package/es/chat-engine/components/a2ui/primitives/A2UICheckBox.js.map +0 -1
  325. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.d.ts +0 -50
  326. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js +0 -54
  327. package/es/chat-engine/components/a2ui/primitives/A2UICheckboxGroup.js.map +0 -1
  328. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.d.ts +0 -13
  329. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js +0 -89
  330. package/es/chat-engine/components/a2ui/primitives/A2UIChoicePicker.js.map +0 -1
  331. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.d.ts +0 -12
  332. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js +0 -25
  333. package/es/chat-engine/components/a2ui/primitives/A2UIDivider.js.map +0 -1
  334. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.d.ts +0 -13
  335. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js +0 -138942
  336. package/es/chat-engine/components/a2ui/primitives/A2UIIcon.js.map +0 -1
  337. package/es/chat-engine/components/a2ui/primitives/A2UIImage.d.ts +0 -12
  338. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js +0 -75
  339. package/es/chat-engine/components/a2ui/primitives/A2UIImage.js.map +0 -1
  340. package/es/chat-engine/components/a2ui/primitives/A2UIInput.d.ts +0 -20
  341. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js +0 -63
  342. package/es/chat-engine/components/a2ui/primitives/A2UIInput.js.map +0 -1
  343. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.d.ts +0 -56
  344. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js +0 -64
  345. package/es/chat-engine/components/a2ui/primitives/A2UIRadioGroup.js.map +0 -1
  346. package/es/chat-engine/components/a2ui/primitives/A2UISlider.d.ts +0 -12
  347. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js +0 -55
  348. package/es/chat-engine/components/a2ui/primitives/A2UISlider.js.map +0 -1
  349. package/es/chat-engine/components/a2ui/primitives/A2UIText.d.ts +0 -12
  350. package/es/chat-engine/components/a2ui/primitives/A2UIText.js +0 -104
  351. package/es/chat-engine/components/a2ui/primitives/A2UIText.js.map +0 -1
  352. package/es/chat-engine/components/a2ui/primitives/A2UITextField.d.ts +0 -12
  353. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js +0 -80
  354. package/es/chat-engine/components/a2ui/primitives/A2UITextField.js.map +0 -1
  355. package/es/chat-engine/components/a2ui/primitives/index.d.ts +0 -15
  356. package/es/chat-engine/components/a2ui/primitives/index.js +0 -39
  357. package/es/chat-engine/components/a2ui/primitives/index.js.map +0 -1
  358. package/es/chat-engine/components/a2ui/registry.d.ts +0 -35
  359. package/es/chat-engine/components/a2ui/registry.js +0 -74
  360. package/es/chat-engine/components/a2ui/registry.js.map +0 -1
  361. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.d.ts +0 -36
  362. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +0 -36
  363. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js.map +0 -1
  364. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.d.ts +0 -46
  365. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +0 -36
  366. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js.map +0 -1
  367. package/es/chat-engine/components/json-render/SurfaceStateManager.d.ts +0 -113
  368. package/es/chat-engine/components/json-render/SurfaceStateManager.js +0 -195
  369. package/es/chat-engine/components/json-render/SurfaceStateManager.js.map +0 -1
  370. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.d.ts +0 -49
  371. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +0 -307
  372. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js.map +0 -1
  373. package/es/chat-engine/components/json-render/adapters/a2ui-types.d.ts +0 -96
  374. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +0 -7
  375. package/es/chat-engine/components/json-render/adapters/a2ui-types.js.map +0 -1
  376. package/es/chat-engine/components/json-render/adapters/index.d.ts +0 -7
  377. package/es/chat-engine/components/json-render/adapters/index.js +0 -11
  378. package/es/chat-engine/components/json-render/adapters/index.js.map +0 -1
  379. package/es/chat-engine/components/json-render/catalog/a2ui-binding.d.ts +0 -64
  380. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +0 -36
  381. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js.map +0 -1
  382. package/es/chat-engine/components/json-render/catalog/a2ui-registry.d.ts +0 -78
  383. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +0 -36
  384. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js.map +0 -1
  385. package/es/chat-engine/components/json-render/catalog/button.d.ts +0 -14
  386. package/es/chat-engine/components/json-render/catalog/button.js +0 -71
  387. package/es/chat-engine/components/json-render/catalog/button.js.map +0 -1
  388. package/es/chat-engine/components/json-render/catalog/card.d.ts +0 -11
  389. package/es/chat-engine/components/json-render/catalog/card.js +0 -57
  390. package/es/chat-engine/components/json-render/catalog/card.js.map +0 -1
  391. package/es/chat-engine/components/json-render/catalog/index.d.ts +0 -128
  392. package/es/chat-engine/components/json-render/catalog/index.js +0 -36
  393. package/es/chat-engine/components/json-render/catalog/index.js.map +0 -1
  394. package/es/chat-engine/components/json-render/catalog/input.d.ts +0 -20
  395. package/es/chat-engine/components/json-render/catalog/input.js +0 -36
  396. package/es/chat-engine/components/json-render/catalog/input.js.map +0 -1
  397. package/es/chat-engine/components/json-render/catalog/layout.d.ts +0 -44
  398. package/es/chat-engine/components/json-render/catalog/layout.js +0 -129
  399. package/es/chat-engine/components/json-render/catalog/layout.js.map +0 -1
  400. package/es/chat-engine/components/json-render/catalog/text.d.ts +0 -11
  401. package/es/chat-engine/components/json-render/catalog/text.js +0 -31
  402. package/es/chat-engine/components/json-render/catalog/text.js.map +0 -1
  403. package/es/chat-engine/components/json-render/catalog.d.ts +0 -614
  404. package/es/chat-engine/components/json-render/catalog.js +0 -779
  405. package/es/chat-engine/components/json-render/catalog.js.map +0 -1
  406. package/es/chat-engine/components/json-render/config.d.ts +0 -154
  407. package/es/chat-engine/components/json-render/config.js +0 -36
  408. package/es/chat-engine/components/json-render/config.js.map +0 -1
  409. package/es/chat-engine/components/json-render/engine.d.ts +0 -58
  410. package/es/chat-engine/components/json-render/engine.js +0 -88
  411. package/es/chat-engine/components/json-render/engine.js.map +0 -1
  412. package/es/chat-engine/components/json-render/performance.d.ts +0 -91
  413. package/es/chat-engine/components/json-render/performance.js +0 -135
  414. package/es/chat-engine/components/json-render/performance.js.map +0 -1
  415. package/es/chat-engine/components/json-render/renderer/index.d.ts +0 -71
  416. package/es/chat-engine/components/json-render/renderer/index.js +0 -125
  417. package/es/chat-engine/components/json-render/renderer/index.js.map +0 -1
  418. package/es/chat-engine/components/json-render/renderer.d.ts +0 -71
  419. package/es/chat-engine/components/json-render/renderer.js +0 -124
  420. package/es/chat-engine/components/json-render/renderer.js.map +0 -1
  421. package/es/chat-engine/core/a2ui/index.d.ts +0 -10
  422. package/es/chat-engine/core/a2ui/index.js +0 -24
  423. package/es/chat-engine/core/a2ui/index.js.map +0 -1
  424. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.d.ts +0 -197
  425. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js +0 -438
  426. package/es/chat-engine/core/a2ui/processor/A2uiMessageProcessor.js.map +0 -1
  427. package/es/chat-engine/core/a2ui/processor/ComponentTree.d.ts +0 -53
  428. package/es/chat-engine/core/a2ui/processor/ComponentTree.js +0 -158
  429. package/es/chat-engine/core/a2ui/processor/ComponentTree.js.map +0 -1
  430. package/es/chat-engine/core/a2ui/processor/DataStore.d.ts +0 -63
  431. package/es/chat-engine/core/a2ui/processor/DataStore.js +0 -172
  432. package/es/chat-engine/core/a2ui/processor/DataStore.js.map +0 -1
  433. package/es/chat-engine/core/a2ui/processor/PathResolver.d.ts +0 -47
  434. package/es/chat-engine/core/a2ui/processor/PathResolver.js +0 -99
  435. package/es/chat-engine/core/a2ui/processor/PathResolver.js.map +0 -1
  436. package/es/chat-engine/core/a2ui/types/index.d.ts +0 -4
  437. package/es/chat-engine/core/a2ui/types/index.js +0 -9
  438. package/es/chat-engine/core/a2ui/types/index.js.map +0 -1
  439. package/es/chat-engine/core/a2ui/types/types.d.ts +0 -770
  440. package/es/chat-engine/core/a2ui/types/types.js +0 -104
  441. package/es/chat-engine/core/a2ui/types/types.js.map +0 -1
  442. package/es/chat-engine/core/a2ui/utils/binding.d.ts +0 -34
  443. package/es/chat-engine/core/a2ui/utils/binding.js +0 -1784
  444. package/es/chat-engine/core/a2ui/utils/binding.js.map +0 -1
  445. package/es/chat-engine/core/a2ui/utils/index.d.ts +0 -5
  446. package/es/chat-engine/core/a2ui/utils/index.js +0 -13
  447. package/es/chat-engine/core/a2ui/utils/index.js.map +0 -1
  448. package/es/chat-engine/core/a2ui/utils/validation.d.ts +0 -70
  449. package/es/chat-engine/core/a2ui/utils/validation.js +0 -333
  450. package/es/chat-engine/core/a2ui/utils/validation.js.map +0 -1
  451. package/es/chat-engine/core/adapters/agui/activity-manager.d.ts +0 -102
  452. package/es/chat-engine/core/adapters/agui/activity-manager.js +0 -150
  453. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +0 -1
  454. package/es/chat-engine/core/adapters/agui/events.d.ts +0 -1550
  455. package/es/chat-engine/core/adapters/agui/events.js +0 -199
  456. package/es/chat-engine/core/adapters/agui/events.js.map +0 -1
  457. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +0 -99
  458. package/es/chat-engine/core/adapters/agui/state-manager.js +0 -174
  459. package/es/chat-engine/core/adapters/agui/state-manager.js.map +0 -1
  460. package/es/chat-engine/core/adapters/agui/types.d.ts +0 -818
  461. package/es/chat-engine/core/adapters/agui/types.js +0 -95
  462. package/es/chat-engine/core/adapters/agui/types.js.map +0 -1
  463. package/es/chat-engine/hooks/a2ui/A2UIContext.d.ts +0 -90
  464. package/es/chat-engine/hooks/a2ui/A2UIContext.js +0 -97
  465. package/es/chat-engine/hooks/a2ui/A2UIContext.js.map +0 -1
  466. package/es/chat-engine/hooks/a2ui/index.d.ts +0 -12
  467. package/es/chat-engine/hooks/a2ui/index.js +0 -19
  468. package/es/chat-engine/hooks/a2ui/index.js.map +0 -1
  469. package/es/chat-engine/hooks/a2ui/useA2UIAction.d.ts +0 -40
  470. package/es/chat-engine/hooks/a2ui/useA2UIAction.js +0 -74
  471. package/es/chat-engine/hooks/a2ui/useA2UIAction.js.map +0 -1
  472. package/es/chat-engine/hooks/a2ui/useA2UISurface.d.ts +0 -36
  473. package/es/chat-engine/hooks/a2ui/useA2UISurface.js +0 -39
  474. package/es/chat-engine/hooks/a2ui/useA2UISurface.js.map +0 -1
  475. package/es/chat-engine/hooks/a2ui/useDataBinding.d.ts +0 -53
  476. package/es/chat-engine/hooks/a2ui/useDataBinding.js +0 -111
  477. package/es/chat-engine/hooks/a2ui/useDataBinding.js.map +0 -1
  478. package/es/chat-engine/hooks/useJsonRenderActivity.d.ts +0 -56
  479. package/es/chat-engine/hooks/useJsonRenderActivity.js +0 -63
  480. package/es/chat-engine/hooks/useJsonRenderActivity.js.map +0 -1
  481. package/es/chat-filecard/_example-js/base.d.ts +0 -1
  482. package/es/chat-loading/_example-js/base.d.ts +0 -2
  483. package/es/chat-loading/_example-js/text.d.ts +0 -2
  484. package/es/chat-markdown/_example-js/base.d.ts +0 -1
  485. package/es/chat-markdown/_example-js/custom.d.ts +0 -2
  486. package/es/chat-markdown/_example-js/event.d.ts +0 -1
  487. package/es/chat-markdown/_example-js/footnote.d.ts +0 -2
  488. package/es/chat-markdown/_example-js/plugin.d.ts +0 -2
  489. package/es/chat-markdown/_example-js/theme.d.ts +0 -2
  490. package/es/chat-message/_example-js/action.d.ts +0 -1
  491. package/es/chat-message/_example-js/base.d.ts +0 -1
  492. package/es/chat-message/_example-js/configure.d.ts +0 -1
  493. package/es/chat-message/_example-js/content.d.ts +0 -1
  494. package/es/chat-message/_example-js/custom.d.ts +0 -1
  495. package/es/chat-message/_example-js/handle-actions.d.ts +0 -7
  496. package/es/chat-message/_example-js/status.d.ts +0 -1
  497. package/es/chat-message/_example-js/think.d.ts +0 -1
  498. package/es/chat-sender/_example-js/attachment.d.ts +0 -2
  499. package/es/chat-sender/_example-js/base.d.ts +0 -2
  500. package/es/chat-sender/_example-js/custom.d.ts +0 -2
  501. package/es/chat-thinking/_example-js/base.d.ts +0 -1
  502. package/es/chat-thinking/_example-js/style.d.ts +0 -1
  503. package/es/chatbot/_example-js/agent.d.ts +0 -1
  504. package/es/chatbot/_example-js/agui.d.ts +0 -13
  505. package/es/chatbot/_example-js/backup/travel.d.ts +0 -1
  506. package/es/chatbot/_example-js/basic.d.ts +0 -1
  507. package/es/chatbot/_example-js/code.d.ts +0 -1
  508. package/es/chatbot/_example-js/components/ItineraryCard.d.ts +0 -3
  509. package/es/chatbot/_example-js/components/login.d.ts +0 -1
  510. package/es/chatbot/_example-js/comprehensive.d.ts +0 -1
  511. package/es/chatbot/_example-js/custom-content.d.ts +0 -1
  512. package/es/chatbot/_example-js/custom-merge.d.ts +0 -1
  513. package/es/chatbot/_example-js/custom.d.ts +0 -1
  514. package/es/chatbot/_example-js/docs.d.ts +0 -1
  515. package/es/chatbot/_example-js/image.d.ts +0 -1
  516. package/es/chatbot/_example-js/initial-messages.d.ts +0 -9
  517. package/es/chatbot/_example-js/instance-methods.d.ts +0 -14
  518. package/es/chatbot/_example-js/nostream.d.ts +0 -1
  519. package/es/chatbot/_example-js/quick-start.d.ts +0 -9
  520. package/es/chatbot/_example-js/research.d.ts +0 -1
  521. package/es/chatbot/_example-js/role-message-config.d.ts +0 -22
  522. package/es/chatbot/_example-js/sender-config.d.ts +0 -20
  523. package/es/chatbot/_example-js/service-config.d.ts +0 -17
  524. package/es/chatbot/_example-js/simple.d.ts +0 -1
  525. package/es/chatbot/_example-js/utils/messageRenderer.d.ts +0 -5
  526. 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":";;;;;;;;;;;;;;;;AAiBO,IAAMA,aAAc,gBAAA,YAAA;AAIzB,EAAA,SAAAA,cACUC,UACA,EAAAC,SAAA,EACAC,YACR,EAAA;AAAAC,IAAAA,eAAA,OAAAJ,aAAA,CAAA,CAAA;IAHQ,IAAA,CAAAC,UAAA,GAAAA,UAAA,CAAA;IACA,IAAA,CAAAC,SAAA,GAAAA,SAAA,CAAA;IACA,IAAA,CAAAC,YAAA,GAAAA,YAAA,CAAA;IAER,IAAA,CAAKE,IAAO,GAAA,IAAA,CAAKC,SAAU,CAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;AACxC,GAAA;EAAA,OAAAC,YAAA,CAAAP,aAAA,EAAA,CAAA;IAAAQ,GAAA,EAAA,WAAA;AAAAC,IAAAA,KAAA,EAOQ,SAAAH,SAAAA,CAAUI,aAAqBC,eAAmD,EAAA;AAAA,MAAA,IAAAC,KAAA,GAAA,IAAA,CAAA;MACxF,IAAMC,SAAY,GAAA,IAAA,CAAKZ,UAAW,CAAAa,GAAA,CAAIJ,WAAW,CAAA,CAAA;MACjD,IAAI,CAACG,SAAW,EAAA;AACP,QAAA,OAAA,IAAA,CAAA;AACT,OAAA;AAGA,MAAA,IAAME,QAA8B,GAAAC,aAAA,CAAAA,aAAA,KAC/BH,SAAA,CAAA,EAAA,EAAA,EAAA;AACHF,QAAAA,eAAA,EAAAA,eAAAA;OACF,CAAA,CAAA;AAGA,MAAA,IAAMM,WAAYJ,SAAkB,CAAAI,QAAA,CAAA;AACpC,MAAA,IAAIA,QAAU,EAAA;QACZF,QAAA,CAASG,gBAAmB,GAAA,IAAA,CAAKC,eAAgB,CAAAF,QAAA,EAAUN,eAAe,CAAA,CAAA;AAC5E,OAAA;AAGA,MAAA,IAAMS,QAASP,SAAkB,CAAAO,KAAA,CAAA;AAC7B,MAAA,IAAAA,KAAA,IAAS,OAAOA,KAAA,KAAU,QAAU,EAAA;QACtC,IAAMC,aAAgB,GAAA,IAAA,CAAKf,SAAU,CAAAc,KAAA,EAAOT,eAAe,CAAA,CAAA;AAC3D,QAAA,IAAIU,aAAe,EAAA;AACRN,UAAAA,QAAA,CAAAG,gBAAA,GAAmB,CAACG,aAAa,CAAA,CAAA;AAC5C,SAAA;AACF,OAAA;AAGA,MAAA,IAAMC,WAAYT,SAAkB,CAAAS,QAAA,CAAA;MACpC,IAAIA,QAAY,IAAAC,KAAA,CAAMC,OAAQ,CAAAF,QAAQ,CAAG,EAAA;QACvCP,QAAA,CAASG,mBAAmBI,QACzB,CAAAG,GAAA,CAAI,UAACC,IAAA,EAAA;UAAA,OAASd,MAAKN,SAAU,CAAAoB,IAAA,CAAKN,KAAO,EAAAT,eAAe,CAAC,CAAA;AAAA,SAAA,CACzD,CAAAgB,MAAA,CAAO,UAACC,CAAA,EAAA;UAAA,OAA8BA,MAAM,IAAI,CAAA;SAAA,CAAA,CAAA;AACrD,OAAA;AAEO,MAAA,OAAAb,QAAA,CAAA;AACT,KAAA;AAAA,GAAA,EAAA;IAAAP,GAAA,EAAA,iBAAA;AAAAC,IAAAA,KAAA,EAKQ,SAAAU,eAAAA,CACNF,UACAN,eACqB,EAAA;AAAA,MAAA,IAAAkB,MAAA,GAAA,IAAA,CAAA;AAEjB,MAAA,IAAAN,KAAA,CAAMC,OAAQ,CAAAP,QAAQ,CAAG,EAAA;AAC3B,QAAA,OAAOA,QACJ,CAAAQ,GAAA,CAAI,UAACK,EAAA,EAAA;AAAA,UAAA,OAAOD,OAAKvB,SAAU,CAAAwB,EAAA,EAAInB,eAAe,CAAC,CAAA;AAAA,SAAA,CAC/C,CAAAgB,MAAA,CAAO,UAACC,CAAA,EAAA;UAAA,OAA8BA,MAAM,IAAI,CAAA;SAAA,CAAA,CAAA;AACrD,OAAA;MAGA,IAAIX,QAAY,IAAAc,OAAA,CAAOd,QAAa,CAAA,KAAA,QAAA,IAAY,iBAAiBA,QAAU,EAAA;AACzE,QAAA,OAAO,KAAKe,eAAgB,CAAAf,QAAA,CAASP,WAAa,EAAAO,QAAA,CAASgB,MAAMtB,eAAe,CAAA,CAAA;AAClF,OAAA;MAGA,IAAIM,QAAY,IAAAc,OAAA,CAAOd,QAAa,CAAA,KAAA,QAAA,IAAY,cAAcA,QAAU,EAAA;QACtE,IAAMiB,cAAiB,GAAAjB,QAAA,CAAA;AACvB,QAAA,OAAO,KAAKe,eAAgB,CAAAE,cAAA,CAAeC,QAAU,EAAAD,cAAA,CAAeE,UAAUzB,eAAe,CAAA,CAAA;AAC/F,OAAA;AAEA,MAAA,OAAO,EAAC,CAAA;AACV,KAAA;AAAA,GAAA,EAAA;IAAAH,GAAA,EAAA,iBAAA;IAAAC,KAAA,EAMQ,SAAAuB,eAAAA,CACNK,UACA,EAAAD,QAAA,EACAE,iBACqB,EAAA;AAAA,MAAA,IAAAC,MAAA,GAAA,IAAA,CAAA;MAErB,IAAMC,gBAAmB,GAAA,IAAA,CAAKrC,YAAa,CAAAsC,OAAA,CAAQL,UAAUE,iBAAiB,CAAA,CAAA;MAC9E,IAAMI,IAAO,GAAA,IAAA,CAAKxC,SAAU,CAAAY,GAAA,CAAI0B,gBAAgB,CAAA,CAAA;AAGhD,MAAA,IAAI,CAACjB,KAAA,CAAMC,OAAQ,CAAAkB,IAAI,CAAG,EAAA;AACxB,QAAA,OAAO,EAAC,CAAA;AACV,OAAA;MAGA,OAAOA,IAAK,CAAAjB,GAAA,CAAI,UAACkB,CAAA,EAAGC,KAAU,EAAA;QACtB,IAAAC,eAAA,MAAAC,MAAA,CAAqBN,gBAAoB,EAAAM,GAAAA,CAAAA,CAAAA,MAAA,CAAAF,KAAA,CAAA,CAAA;AACxC,QAAA,OAAAL,MAAA,CAAKjC,SAAU,CAAA+B,UAAA,EAAYQ,eAAe,CAAA,CAAA;AACnD,OAAC,CAAE,CAAAlB,MAAA,CAAO,UAACC,CAAA,EAAA;QAAA,OAA8BA,MAAM,IAAI,CAAA;OAAA,CAAA,CAAA;AACrD,KAAA;AAAA,GAAA,EAAA;IAAApB,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAsC,cAAcrC,WAA+C,EAAA;MAC3D,OAAO,IAAK,CAAAsC,UAAA,CAAW,IAAK,CAAA3C,IAAA,EAAMK,WAAW,CAAA,CAAA;AAC/C,KAAA;AAAA,GAAA,EAAA;IAAAF,GAAA,EAAA,YAAA;AAAAC,IAAAA,KAAA,EAEQ,SAAAuC,UAAAA,CAAWC,MAAgCC,QAA4C,EAAA;AAC7F,MAAA,IAAI,CAACD,IAAA,EAAa,OAAA,IAAA,CAAA;AAClB,MAAA,IAAIA,KAAKnB,EAAO,KAAAoB,QAAA,EAAiB,OAAAD,IAAA,CAAA;MAEjC,IAAIA,KAAK/B,gBAAkB,EAAA;AAAA,QAAA,IAAAiC,SAAA,GAAAC,0BAAA,CACLH,KAAK/B,gBAAkB,CAAA;UAAAmC,KAAA,CAAA;AAAA,QAAA,IAAA;UAAhC,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAAgC;AAAA,YAAA,IAAhCpC,KAAA,GAAAiC,KAAA,CAAA5C,KAAA,CAAA;YACT,IAAMgD,KAAQ,GAAA,IAAA,CAAKT,UAAW,CAAA5B,KAAA,EAAO8B,QAAQ,CAAA,CAAA;YACzC,IAAAO,KAAA,EAAc,OAAAA,KAAA,CAAA;AACpB,WAAA;AAAA,SAAA,CAAA,OAAAC,GAAA,EAAA;UAAAP,SAAA,CAAAQ,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,SAAA,SAAA;AAAAP,UAAAA,SAAA,CAAAS,CAAA,EAAA,CAAA;AAAA,SAAA;AACF,OAAA;AAEO,MAAA,OAAA,IAAA,CAAA;AACT,KAAA;AAAA,GAAA,EAAA;IAAApD,GAAA,EAAA,UAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAoD,SAASC,QAAwD,EAAA;MAC1D,IAAA,CAAAC,YAAA,CAAa,IAAK,CAAA1D,IAAA,EAAMyD,QAAQ,CAAA,CAAA;AACvC,KAAA;AAAA,GAAA,EAAA;IAAAtD,GAAA,EAAA,cAAA;AAAAC,IAAAA,KAAA,EAEQ,SAAAsD,YAAAA,CACNd,MACAa,QACM,EAAA;MACN,IAAI,CAACb,IAAA,EAAM,OAAA;MACXa,QAAA,CAASb,IAAI,CAAA,CAAA;MAEb,IAAIA,KAAK/B,gBAAkB,EAAA;AAAA,QAAA,IAAA8C,UAAA,GAAAZ,0BAAA,CACLH,KAAK/B,gBAAkB,CAAA;UAAA+C,MAAA,CAAA;AAAA,QAAA,IAAA;UAAhC,KAAAD,UAAA,CAAAV,CAAA,EAAAW,EAAAA,CAAAA,CAAAA,MAAA,GAAAD,UAAA,CAAAT,CAAA,EAAAC,EAAAA,IAAA,GAAgC;AAAA,YAAA,IAAhCpC,KAAA,GAAA6C,MAAA,CAAAxD,KAAA,CAAA;AACJ,YAAA,IAAA,CAAAsD,YAAA,CAAa3C,OAAO0C,QAAQ,CAAA,CAAA;AACnC,WAAA;AAAA,SAAA,CAAA,OAAAJ,GAAA,EAAA;UAAAM,UAAA,CAAAL,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,SAAA,SAAA;AAAAM,UAAAA,UAAA,CAAAJ,CAAA,EAAA,CAAA;AAAA,SAAA;AACF,OAAA;AACF,KAAA;AAAA,GAAA,EAAA;IAAApD,GAAA,EAAA,WAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAyD,SAAsBA,GAAA;MACpB,IAAMC,MAAgB,EAAC,CAAA;AAClB,MAAA,IAAA,CAAAN,QAAA,CAAS,UAAChD,SAAc,EAAA;AACvBsD,QAAAA,GAAA,CAAAC,IAAA,CAAKvD,UAAUiB,EAAE,CAAA,CAAA;AACvB,OAAC,CAAA,CAAA;AACM,MAAA,OAAAqC,GAAA,CAAA;AACT,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAAA,CAAA;;;;"}
@@ -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;