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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/README.md +76 -22
  3. package/es/_chunks/dep-1007ac80.js +205 -0
  4. package/es/_chunks/dep-1007ac80.js.map +1 -0
  5. package/es/_chunks/dep-16520c2b.js +1247 -0
  6. package/es/_chunks/dep-16520c2b.js.map +1 -0
  7. package/es/_chunks/dep-1743bd61.js +438 -0
  8. package/es/_chunks/dep-1743bd61.js.map +1 -0
  9. package/es/_chunks/dep-24472232.js +839 -0
  10. package/es/_chunks/dep-24472232.js.map +1 -0
  11. package/es/_chunks/dep-3864b369.js +839 -0
  12. package/es/_chunks/dep-3864b369.js.map +1 -0
  13. package/es/_chunks/dep-3e40d789.js +169 -0
  14. package/es/_chunks/dep-3e40d789.js.map +1 -0
  15. package/es/_chunks/dep-4dedfbef.js +438 -0
  16. package/es/_chunks/dep-4dedfbef.js.map +1 -0
  17. package/es/_chunks/dep-56f5e08e.js +448 -0
  18. package/es/_chunks/dep-56f5e08e.js.map +1 -0
  19. package/es/_chunks/dep-688e4aaa.js +438 -0
  20. package/es/_chunks/dep-688e4aaa.js.map +1 -0
  21. package/es/_chunks/dep-870f0d35.js +839 -0
  22. package/es/_chunks/dep-870f0d35.js.map +1 -0
  23. package/es/_chunks/dep-96eca06f.js +169 -0
  24. package/es/_chunks/dep-96eca06f.js.map +1 -0
  25. package/es/_chunks/dep-ba3bd553.js +169 -0
  26. package/es/_chunks/dep-ba3bd553.js.map +1 -0
  27. package/es/_chunks/dep-bcb234a1.js +839 -0
  28. package/es/_chunks/dep-bcb234a1.js.map +1 -0
  29. package/es/_chunks/dep-de8ac730.js +1247 -0
  30. package/es/_chunks/dep-de8ac730.js.map +1 -0
  31. package/es/_chunks/dep-e9dbff09.js +1247 -0
  32. package/es/_chunks/dep-e9dbff09.js.map +1 -0
  33. package/es/_chunks/dep-ebc4cf30.js +1247 -0
  34. package/es/_chunks/dep-ebc4cf30.js.map +1 -0
  35. package/es/_chunks/dep-f691a67e.js +438 -0
  36. package/es/_chunks/dep-f691a67e.js.map +1 -0
  37. package/es/_chunks/dep-f8016301.js +169 -0
  38. package/es/_chunks/dep-f8016301.js.map +1 -0
  39. package/es/_util/reactify.js +33 -13
  40. package/es/_util/reactify.js.map +1 -1
  41. package/es/_util/useDynamicStyle.js +1 -1
  42. package/es/attachments/index.js +1 -1
  43. package/es/chat-actionbar/index.d.ts +13 -4
  44. package/es/chat-actionbar/index.js +35 -5
  45. package/es/chat-actionbar/index.js.map +1 -1
  46. package/es/chat-engine/components/activity/index.js +3 -1
  47. package/es/chat-engine/components/activity/index.js.map +1 -1
  48. package/es/chat-engine/components/activity/registry.js +1 -1
  49. package/es/chat-engine/components/activity/render.d.ts +4 -0
  50. package/es/chat-engine/components/activity/render.js +13 -2
  51. package/es/chat-engine/components/activity/render.js.map +1 -1
  52. package/es/chat-engine/components/activity/types.d.ts +0 -3
  53. package/es/chat-engine/components/activity/types.js +1 -1
  54. package/es/chat-engine/components/index.js +31 -21
  55. package/es/chat-engine/components/index.js.map +1 -1
  56. package/es/chat-engine/components/json-render/A2UIJsonRenderActivityRenderer.js +2 -2
  57. package/es/chat-engine/components/json-render/JsonRenderActivityRenderer.js +2 -2
  58. package/es/chat-engine/components/json-render/SurfaceStateManager.js +1 -1
  59. package/es/chat-engine/components/json-render/adapters/a2ui-to-jsonrender.js +1 -1
  60. package/es/chat-engine/components/json-render/adapters/a2ui-types.js +1 -1
  61. package/es/chat-engine/components/json-render/adapters/index.js +1 -1
  62. package/es/chat-engine/components/json-render/catalog/a2ui-binding.js +2 -2
  63. package/es/chat-engine/components/json-render/catalog/a2ui-registry.js +2 -2
  64. package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
  65. package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
  66. package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
  67. package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
  68. package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
  69. package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
  70. package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
  71. package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
  72. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
  73. package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
  74. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
  75. package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
  76. package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
  77. package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
  78. package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
  79. package/es/chat-engine/components/json-render/catalog/button.js +1 -1
  80. package/es/chat-engine/components/json-render/catalog/card.js +1 -1
  81. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
  82. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
  83. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
  84. package/es/chat-engine/components/json-render/catalog/index.d.ts +2 -1
  85. package/es/chat-engine/components/json-render/catalog/index.js +3 -3
  86. package/es/chat-engine/components/json-render/catalog/input.js +2 -2
  87. package/es/chat-engine/components/json-render/catalog/layout.js +1 -1
  88. package/es/chat-engine/components/json-render/catalog/text.js +1 -1
  89. package/es/chat-engine/components/json-render/catalog.d.ts +65 -0
  90. package/es/chat-engine/components/json-render/catalog.js +634 -2
  91. package/es/chat-engine/components/json-render/catalog.js.map +1 -1
  92. package/es/chat-engine/components/json-render/config.js +2 -2
  93. package/es/chat-engine/components/json-render/contexts/actions.d.ts +5 -0
  94. package/es/chat-engine/components/json-render/contexts/actions.js +39 -16
  95. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -1
  96. package/es/chat-engine/components/json-render/contexts/data.d.ts +99 -7
  97. package/es/chat-engine/components/json-render/contexts/data.js +155 -76
  98. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -1
  99. package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
  100. package/es/chat-engine/components/json-render/contexts/index.js +27 -0
  101. package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
  102. package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
  103. package/es/chat-engine/components/json-render/contexts/store.js +104 -0
  104. package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
  105. package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
  106. package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
  107. package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
  108. package/es/chat-engine/components/json-render/contexts/validation.js +13 -5
  109. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -1
  110. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +12 -2
  111. package/es/chat-engine/components/json-render/contexts/visibility.js +32 -22
  112. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -1
  113. package/es/chat-engine/components/json-render/engine.js +1 -1
  114. package/es/chat-engine/components/json-render/index.d.ts +9 -30
  115. package/es/chat-engine/components/json-render/index.js +59 -19
  116. package/es/chat-engine/components/json-render/index.js.map +1 -1
  117. package/es/chat-engine/components/json-render/performance.js +1 -1
  118. package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
  119. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
  120. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
  121. package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
  122. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
  123. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
  124. package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
  125. package/es/chat-engine/components/json-render/registry/config.js +76 -0
  126. package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
  127. package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
  128. package/es/chat-engine/components/json-render/registry/index.js +76 -0
  129. package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
  130. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
  131. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
  132. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
  133. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
  134. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
  135. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
  136. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
  137. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
  138. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
  139. package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
  140. package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
  141. package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
  142. package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
  143. package/es/chat-engine/components/json-render/renderer/index.js +125 -0
  144. package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
  145. package/es/chat-engine/components/json-render/renderer.js +1 -1
  146. package/es/chat-engine/components/json-render/types.d.ts +37 -19
  147. package/es/chat-engine/components/json-render/types.js +1 -1
  148. package/es/chat-engine/components/provider/agent-state.js +17 -8
  149. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  150. package/es/chat-engine/components/toolcall/index.js +17 -8
  151. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  152. package/es/chat-engine/components/toolcall/registry.js +1 -1
  153. package/es/chat-engine/components/toolcall/render.js +18 -9
  154. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  155. package/es/chat-engine/components/toolcall/types.js +1 -1
  156. package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
  157. package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
  158. package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
  159. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  160. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
  161. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  162. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
  163. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
  164. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
  165. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
  166. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
  167. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
  168. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
  169. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
  170. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
  171. package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
  172. package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
  173. package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
  174. package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
  175. package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
  176. package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
  177. package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
  178. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
  179. package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
  180. package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
  181. package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
  182. package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
  183. package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
  184. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
  185. package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
  186. package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
  187. package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
  188. package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
  189. package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
  190. package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
  191. package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
  192. package/es/chat-engine/core/adapters/agui/activity-manager.js +7 -1
  193. package/es/chat-engine/core/adapters/agui/activity-manager.js.map +1 -1
  194. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +1 -1
  195. package/es/chat-engine/core/adapters/agui/event-mapper.js +7 -5
  196. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
  197. package/es/chat-engine/core/adapters/agui/events.js +1 -1
  198. package/es/chat-engine/core/adapters/agui/index.d.ts +4 -7
  199. package/es/chat-engine/core/adapters/agui/index.js +23 -18
  200. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  201. package/es/chat-engine/core/adapters/agui/state-manager.js +7 -1
  202. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -1
  203. package/es/chat-engine/core/adapters/agui/types/events.d.ts +1570 -0
  204. package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
  205. package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
  206. package/es/chat-engine/core/adapters/agui/types/index.d.ts +854 -0
  207. package/es/chat-engine/core/adapters/agui/types/index.js +279 -0
  208. package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
  209. package/es/chat-engine/core/adapters/agui/types.js +1 -1
  210. package/es/chat-engine/core/adapters/agui/utils.js +1 -1
  211. package/es/chat-engine/core/adapters/index.d.ts +5 -0
  212. package/es/chat-engine/core/adapters/index.js +34 -0
  213. package/es/chat-engine/core/adapters/index.js.map +1 -0
  214. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
  215. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
  216. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
  217. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
  218. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
  219. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
  220. package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
  221. package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
  222. package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
  223. package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
  224. package/es/chat-engine/core/adapters/json-render/index.js +18 -0
  225. package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
  226. package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
  227. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
  228. package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
  229. package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
  230. package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
  231. package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
  232. package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
  233. package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
  234. package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
  235. package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
  236. package/es/chat-engine/core/event-bus/index.js +1 -1
  237. package/es/chat-engine/core/event-bus/types.js +1 -1
  238. package/es/chat-engine/core/index.d.ts +4 -4
  239. package/es/chat-engine/core/index.js +17 -11
  240. package/es/chat-engine/core/index.js.map +1 -1
  241. package/es/chat-engine/core/processor/index.js +1 -1
  242. package/es/chat-engine/core/server/batch-client.js +1 -1
  243. package/es/chat-engine/core/server/connection-manager.js +1 -1
  244. package/es/chat-engine/core/server/errors.js +1 -1
  245. package/es/chat-engine/core/server/index.js +1 -1
  246. package/es/chat-engine/core/server/llm-service.js +18 -18
  247. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  248. package/es/chat-engine/core/server/sse-client.js +1 -1
  249. package/es/chat-engine/core/server/sse-parser.js +1 -1
  250. package/es/chat-engine/core/server/types.js +1 -1
  251. package/es/chat-engine/core/store/message.js +5 -1
  252. package/es/chat-engine/core/store/message.js.map +1 -1
  253. package/es/chat-engine/core/store/model.js +2 -1
  254. package/es/chat-engine/core/store/model.js.map +1 -1
  255. package/es/chat-engine/core/store/reactiveState.d.ts +4 -0
  256. package/es/chat-engine/core/store/reactiveState.js +15 -1235
  257. package/es/chat-engine/core/store/reactiveState.js.map +1 -1
  258. package/es/chat-engine/core/type.d.ts +27 -19
  259. package/es/chat-engine/core/type.js +1 -1
  260. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  261. package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
  262. package/es/chat-engine/core/utils/immutable-patch.js +147 -0
  263. package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
  264. package/es/chat-engine/core/utils/index.d.ts +7 -2
  265. package/es/chat-engine/core/utils/index.js +9 -883
  266. package/es/chat-engine/core/utils/index.js.map +1 -1
  267. package/es/chat-engine/core/utils/json-patch/helpers.d.ts +41 -0
  268. package/es/chat-engine/core/utils/json-patch/helpers.js +164 -0
  269. package/es/chat-engine/core/utils/json-patch/helpers.js.map +1 -0
  270. package/es/chat-engine/core/utils/json-patch/index.d.ts +115 -0
  271. package/es/chat-engine/core/utils/json-patch/index.js +387 -0
  272. package/es/chat-engine/core/utils/json-patch/index.js.map +1 -0
  273. package/es/chat-engine/core/utils/logger.js +1 -1
  274. package/es/chat-engine/core/utils/performance.d.ts +94 -0
  275. package/es/chat-engine/core/utils/performance.js +205 -0
  276. package/es/chat-engine/core/utils/performance.js.map +1 -0
  277. package/es/chat-engine/hooks/index.js +17 -8
  278. package/es/chat-engine/hooks/index.js.map +1 -1
  279. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  280. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -1
  281. package/es/chat-engine/hooks/useAgentState.js +17 -8
  282. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  283. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  284. package/es/chat-engine/hooks/useChat.js +17 -8
  285. package/es/chat-engine/hooks/useChat.js.map +1 -1
  286. package/es/chat-engine/hooks/useJsonRenderActivity.js +2 -2
  287. package/es/chat-engine/index.js +29 -19
  288. package/es/chat-engine/index.js.map +1 -1
  289. package/es/chat-filecard/index.js +1 -1
  290. package/es/chat-loading/index.js +1 -1
  291. package/es/chat-markdown/index.js +1 -1
  292. package/es/chat-message/index.js +1 -1
  293. package/es/chat-sender/index.js +1 -1
  294. package/es/chat-thinking/index.js +1 -1
  295. package/es/chatbot/index.js +1 -1
  296. package/es/index.js +29 -19
  297. package/es/index.js.map +1 -1
  298. package/es/style/index.js +1 -1
  299. package/package.json +7 -6
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ toc: false
5
5
  spline: explain
6
6
  ---
7
7
 
8
- ## 🌈 0.1.0-alpha.1 `2025-05-26`
8
+ ## 🌈 1.0.2 `2026-02-05`
9
+
10
+ ### 🚀 Features
11
+
12
+ - `ChatEngine`:
13
+ - 支持AG-UI Activity-Snapshot/Delta事件的适配,新增useAgentActivity注册hook,并增加示例 @carolin913 ([#4119](https://github.com/Tencent/tdesign-react/pull/4119))
14
+ - 增加在无 UI 场景下使用 ChatEngine 事件总线机制,并增加示例 @carolin913 ([#4119](https://github.com/Tencent/tdesign-react/pull/4119))
15
+ - ToolCallRender 增加错误边界处理 @carolin913 ([#4119](https://github.com/Tencent/tdesign-react/pull/4119))
16
+ - AG-UI协议下几个Delta事件,支持自动初始化接收无Snapshot情况下SSE Chunk流 @carolin913 ([#4119](https://github.com/Tencent/tdesign-react/pull/4119))
17
+ - Immutable JSON Patch 性能优化,并支持append操作用来追加字符串 @carolin913 ([#4119](https://github.com/Tencent/tdesign-react/pull/4119))
18
+ - `ChatMarkdown`: 大幅优化依赖CherryMarkdown造成的打包体积膨胀问题,**不再内置highlight代码块样式高亮**,需要业务自行引入配置 @LzhengH @carolin913 ([#4119](https://github.com/Tencent/tdesign-react/pull/4119))
19
+ - `ChatSender`: 支持readyToSend可以接管发送前校验 @LzhengH ([#4119](https://github.com/Tencent/tdesign-react/pull/4119))
20
+
21
+ ## 🌈 1.0.0 `2026-11-20`
9
22
 
10
23
  - Release 1st version
package/README.md CHANGED
@@ -23,54 +23,108 @@ TDesign AIGC Components for React Framework
23
23
 
24
24
  # 📦 Installation
25
25
 
26
- ```shell
27
- npm i @tdesign-react/chat
28
- ```
26
+ ```bash
27
+ # npm
28
+ npm install @tdesign-react/chat
29
29
 
30
- ```shell
30
+ # yarn
31
31
  yarn add @tdesign-react/chat
32
- ```
33
32
 
34
- ```shell
33
+ # pnpm
35
34
  pnpm add @tdesign-react/chat
36
35
  ```
37
36
 
38
- # 🔨 Usage
37
+ **依赖要求**: React >= 18.0.0
38
+
39
+ # 🔨 Quick Start
40
+
41
+ ## 一体化组件集成
42
+
43
+ 直接使用 `ChatBot` 组件,内置完整的 UI 结构和交互逻辑,适合快速集成标准聊天界面。
39
44
 
40
45
  ```tsx
41
46
  import React from 'react';
42
47
  import { ChatBot } from '@tdesign-react/chat';
43
48
  import '@tdesign-react/chat/es/style/index.js';
44
49
 
45
- function App() {
50
+ export default function App() {
46
51
  return (
47
- <div style={{ height: '600px' }}>
48
- <ChatBot
49
- chatServiceConfig={{
50
- endpoint: 'https://your-api-endpoint.com/chat',
51
- }}
52
- />
53
- </div>
52
+ <ChatBot
53
+ chatServiceConfig={{
54
+ endpoint: 'https://your-api-endpoint.com/chat',
55
+ stream: true,
56
+ }}
57
+ />
54
58
  );
55
59
  }
60
+ ```
61
+
62
+ ## 组合式开发
63
+
64
+ 通过 `useChat` Hook 自由组合 UI 组件,适合需要深度定制 UI 结构和交互逻辑的场景。
65
+
66
+ ```tsx
67
+ import React from 'react';
68
+ import { useChat, ChatList, ChatMessage, ChatSender } from '@tdesign-react/chat';
69
+ import '@tdesign-react/chat/es/style/index.js';
56
70
 
57
- ReactDOM.createRoot(document.getElementById('app')).render(<App />);
71
+ export default function CompositeChat() {
72
+ const { chatEngine, messages, status } = useChat({
73
+ chatServiceConfig: {
74
+ endpoint: 'https://your-api-endpoint.com/chat',
75
+ stream: true,
76
+ },
77
+ });
78
+
79
+ return (
80
+ <>
81
+ <ChatList>
82
+ {messages.map((message) => (
83
+ <ChatMessage key={message.id} message={message} />
84
+ ))}
85
+ </ChatList>
86
+ <ChatSender
87
+ loading={status === 'streaming'}
88
+ onSend={(e) => chatEngine.sendUserMessage({ prompt: e.detail.value })}
89
+ onStop={() => chatEngine.abortChat()}
90
+ />
91
+ </>
92
+ );
93
+ }
58
94
  ```
59
95
 
60
- # Browser Support
96
+ ## 协议配置
61
97
 
62
- | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br/> IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br/>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br/>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br/>Safari |
63
- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
64
- | Edge >=84 | Firefox >=83 | Chrome >=84 | Safari >=14.1 |
98
+ 支持**自定义协议**和**AG-UI 标准协议**两种模式:
65
99
 
66
- Read our [browser compatibility](https://github.com/Tencent/tdesign/wiki/Browser-Compatibility) for more details.
100
+ | 场景 | 推荐协议 |
101
+ | ------------------ | ---------- |
102
+ | 快速集成到现有服务 | 自定义协议 |
103
+ | 构建复杂 AI 应用 | AG-UI 协议 |
104
+ | 多工具调用场景 | AG-UI 协议 |
67
105
 
106
+ ```javascript
107
+ // 通过 onMessage 解析数据
108
+ const customConfig = {
109
+ endpoint: '/api/chat',
110
+ protocol: 'agui', // 开启 AG-UI 协议,自动解析标准事件
111
+ onMessage: (chunk) => chunk.data,
112
+ };
113
+
114
+ ```
115
+
116
+ 📖 [体验示例和完整文档](https://tdesign.tencent.com/react-chat/overview)
117
+
118
+ # Browser Support
119
+
120
+ | IE / Edge | Firefox | Chrome | Safari |
121
+ | --------- | ------------ | ----------- | ------------- |
122
+ | Edge >=84 | Firefox >=83 | Chrome >=84 | Safari >=14.1 |
68
123
 
69
124
  # Contributing
70
125
 
71
126
  Contributing is welcome. Read [guidelines for contributing](https://github.com/Tencent/tdesign-react/blob/develop/CONTRIBUTING.md) before submitting your [Pull Request](https://github.com/Tencent/tdesign-react/pulls).
72
127
 
73
-
74
128
  # Feedback
75
129
 
76
130
  Create your [Github issues](https://github.com/Tencent/tdesign-react/issues) or scan the QR code below to join our user groups
@@ -0,0 +1,205 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.5
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import React, { useMemo } from 'react';
8
+ import _typeof from '@babel/runtime/helpers/typeof';
9
+ import { JsonRenderElement } from '../chat-engine/components/json-render/renderer/index.js';
10
+ import '../chat-engine/components/json-render/contexts/index.js';
11
+ import { DataProvider } from '../chat-engine/components/json-render/contexts/data.js';
12
+ import { VisibilityProvider } from '../chat-engine/components/json-render/contexts/visibility.js';
13
+ import { ActionProvider } from '../chat-engine/components/json-render/contexts/actions.js';
14
+
15
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
16
+
17
+ function getDefaultExportFromCjs (x) {
18
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
19
+ }
20
+
21
+ function getDefaultExportFromNamespaceIfPresent (n) {
22
+ return n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;
23
+ }
24
+
25
+ function getDefaultExportFromNamespaceIfNotNamed (n) {
26
+ return n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;
27
+ }
28
+
29
+ function getAugmentedNamespace(n) {
30
+ if (n.__esModule) return n;
31
+ var a = Object.defineProperty({}, '__esModule', {value: true});
32
+ Object.keys(n).forEach(function (k) {
33
+ var d = Object.getOwnPropertyDescriptor(n, k);
34
+ Object.defineProperty(a, k, d.get ? d : {
35
+ enumerable: true,
36
+ get: function () {
37
+ return n[k];
38
+ }
39
+ });
40
+ });
41
+ return a;
42
+ }
43
+
44
+ function commonjsRequire (path) {
45
+ throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
46
+ }
47
+
48
+ var hasElementType = typeof Element !== 'undefined';
49
+ var hasMap = typeof Map === 'function';
50
+ var hasSet = typeof Set === 'function';
51
+ var hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;
52
+
53
+ // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js
54
+
55
+ function equal(a, b) {
56
+ // START: fast-deep-equal es6/index.js 3.1.3
57
+ if (a === b) return true;
58
+ if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {
59
+ if (a.constructor !== b.constructor) return false;
60
+ var length, i, keys;
61
+ if (Array.isArray(a)) {
62
+ length = a.length;
63
+ if (length != b.length) return false;
64
+ for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;
65
+ return true;
66
+ }
67
+
68
+ // START: Modifications:
69
+ // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code
70
+ // to co-exist with es5.
71
+ // 2. Replace `for of` with es5 compliant iteration using `for`.
72
+ // Basically, take:
73
+ //
74
+ // ```js
75
+ // for (i of a.entries())
76
+ // if (!b.has(i[0])) return false;
77
+ // ```
78
+ //
79
+ // ... and convert to:
80
+ //
81
+ // ```js
82
+ // it = a.entries();
83
+ // while (!(i = it.next()).done)
84
+ // if (!b.has(i.value[0])) return false;
85
+ // ```
86
+ //
87
+ // **Note**: `i` access switches to `i.value`.
88
+ var it;
89
+ if (hasMap && a instanceof Map && b instanceof Map) {
90
+ if (a.size !== b.size) return false;
91
+ it = a.entries();
92
+ while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;
93
+ it = a.entries();
94
+ while (!(i = it.next()).done) if (!equal(i.value[1], b.get(i.value[0]))) return false;
95
+ return true;
96
+ }
97
+ if (hasSet && a instanceof Set && b instanceof Set) {
98
+ if (a.size !== b.size) return false;
99
+ it = a.entries();
100
+ while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;
101
+ return true;
102
+ }
103
+ // END: Modifications
104
+
105
+ if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
106
+ length = a.length;
107
+ if (length != b.length) return false;
108
+ for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false;
109
+ return true;
110
+ }
111
+ if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
112
+ // START: Modifications:
113
+ // Apply guards for `Object.create(null)` handling. See:
114
+ // - https://github.com/FormidableLabs/react-fast-compare/issues/64
115
+ // - https://github.com/epoberezkin/fast-deep-equal/issues/49
116
+ if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();
117
+ if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();
118
+ // END: Modifications
119
+
120
+ keys = Object.keys(a);
121
+ length = keys.length;
122
+ if (length !== Object.keys(b).length) return false;
123
+ for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
124
+ // END: fast-deep-equal
125
+
126
+ // START: react-fast-compare
127
+ // custom handling for DOM elements
128
+ if (hasElementType && a instanceof Element) return false;
129
+
130
+ // custom handling for React/Preact
131
+ for (i = length; i-- !== 0;) {
132
+ if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {
133
+ // React-specific: avoid traversing React elements' _owner
134
+ // Preact-specific: avoid traversing Preact elements' __v and __o
135
+ // __v = $_original / $_vnode
136
+ // __o = $_owner
137
+ // These properties contain circular references and are not needed when
138
+ // comparing the actual elements (and not their owners)
139
+ // .$$typeof and ._store on just reasonable markers of elements
140
+
141
+ continue;
142
+ }
143
+
144
+ // all other properties should be traversed as usual
145
+ if (!equal(a[keys[i]], b[keys[i]])) return false;
146
+ }
147
+ // END: react-fast-compare
148
+
149
+ // START: fast-deep-equal
150
+ return true;
151
+ }
152
+ return a !== a && b !== b;
153
+ }
154
+ // end fast-deep-equal
155
+
156
+ var reactFastCompare = function isEqual(a, b) {
157
+ try {
158
+ return equal(a, b);
159
+ } catch (error) {
160
+ if ((error.message || '').match(/stack|recursion/i)) {
161
+ // warn on circular references, don't crash
162
+ // browsers give this different errors name and messages:
163
+ // chrome/safari: "RangeError", "Maximum call stack size exceeded"
164
+ // firefox: "InternalError", too much recursion"
165
+ // edge: "Error", "Out of stack space"
166
+ console.warn('react-fast-compare cannot handle circular refs');
167
+ return false;
168
+ }
169
+ // some other error. we should definitely know about these
170
+ throw error;
171
+ }
172
+ };
173
+
174
+ var JsonRenderActivityRendererInner = function JsonRenderActivityRendererInner(_ref) {
175
+ var activityType = _ref.activityType,
176
+ content = _ref.content,
177
+ messageId = _ref.messageId,
178
+ registry = _ref.registry,
179
+ _ref$actionHandlers = _ref.actionHandlers,
180
+ actionHandlers = _ref$actionHandlers === void 0 ? {} : _ref$actionHandlers;
181
+ var isValidSchema = content && content.root && content.elements && content.elements[content.root];
182
+ var renderData = useMemo(function () {
183
+ return (content === null || content === void 0 ? void 0 : content.data) || {};
184
+ }, [content === null || content === void 0 ? void 0 : content.data]);
185
+ return /* @__PURE__ */React.createElement("div", {
186
+ "data-activity-type": activityType,
187
+ "data-message-id": messageId
188
+ }, /* @__PURE__ */React.createElement(DataProvider, {
189
+ initialData: renderData
190
+ }, /* @__PURE__ */React.createElement(VisibilityProvider, null, /* @__PURE__ */React.createElement(ActionProvider, {
191
+ handlers: actionHandlers
192
+ }, /* @__PURE__ */React.createElement(JsonRenderElement, {
193
+ tree: content,
194
+ registry: registry
195
+ })))));
196
+ };
197
+ var JsonRenderActivityRenderer = /*#__PURE__*/React.memo(JsonRenderActivityRendererInner, function (prevProps, nextProps) {
198
+ if (prevProps.registry !== nextProps.registry) return false;
199
+ if (prevProps.actionHandlers !== nextProps.actionHandlers) return false;
200
+ if (prevProps.content === nextProps.content) return true;
201
+ return reactFastCompare(prevProps.content, nextProps.content);
202
+ });
203
+
204
+ export { JsonRenderActivityRenderer as J, reactFastCompare as r };
205
+ //# sourceMappingURL=dep-1007ac80.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dep-1007ac80.js","sources":["../../../../node_modules/.pnpm/react-fast-compare@3.2.2/node_modules/react-fast-compare/index.js","../../../pro-components/chat/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.tsx"],"sourcesContent":["/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * json-render Activity 渲染器\n * 基于 TDesign ChatEngine 的 Activity 机制集成 json-render\n * \n * 核心特性:\n * 1. 支持 ACTIVITY_SNAPSHOT 全量渲染\n * 2. 支持 ACTIVITY_DELTA 增量更新(Delta Merge 由数据层完成,此处接收完整 Schema)\n * 3. 使用 React.memo + react-fast-compare 优化渲染性能\n * \n */\n\nimport React, { useMemo } from 'react';\nimport isEqual from 'react-fast-compare';\nimport { type ComponentRegistry, JsonRenderElement } from './';\nimport { DataProvider, ActionProvider, VisibilityProvider } from '../contexts';\nimport type { JsonRenderActivityProps } from '../types';\n\nexport interface JsonRenderActivityRendererProps extends JsonRenderActivityProps {\n /** 组件注册表(必须) */\n registry: ComponentRegistry;\n /** \n * Action 处理器映射表\n * \n * 示例:\n * ```tsx\n * const actionHandlers = {\n * submit: async (params) => { ... },\n * reset: async (params) => { ... },\n * cancel: async (params) => { ... },\n * };\n * ```\n */\n actionHandlers?: Record<string, (params: Record<string, unknown>) => void | Promise<void>>;\n /** 显示调试信息 */\n debug?: boolean;\n}\n\n/**\n * json-render Activity 渲染器组件\n */\nconst JsonRenderActivityRendererInner: React.FC<JsonRenderActivityRendererProps> = ({\n activityType,\n content,\n messageId,\n registry,\n actionHandlers = {},\n}) => {\n // 直接在渲染阶段做校验\n const isValidSchema = content && content.root && content.elements && content.elements[content.root];\n\n // 数据处理:使用 useMemo 缓存,只在 content.data 变化时重新计算\n const renderData = useMemo(() => content?.data || {}, [content?.data]);\n\n // todo: Schema 无效时显示加载状态\n // if (!isValidSchema) {\n // return (\n // <div style={{ padding: '16px', color: 'var(--td-text-color-secondary)' }}>\n // 数据初始化中...\n // </div>\n // );\n // }\n return (\n <div data-activity-type={activityType} data-message-id={messageId}>\n <DataProvider initialData={renderData}>\n <VisibilityProvider>\n <ActionProvider handlers={actionHandlers}>\n <JsonRenderElement tree={content} registry={registry} />\n </ActionProvider>\n </VisibilityProvider>\n </DataProvider>\n </div>\n );\n};\n\n/**\n * 使用 React.memo 包装,配合 react-fast-compare 进行高效的深比较\n * \n * 对比策略:\n * 1. registry 引用比较(通常是稳定的)\n * 2. actionHandlers 引用比较(建议使用 useMemo 稳定化)\n * 3. content 使用 react-fast-compare 深比较(比 JSON.stringify 快 3-5 倍)\n */\nexport const JsonRenderActivityRenderer = React.memo(\n JsonRenderActivityRendererInner,\n (prevProps, nextProps) => {\n // registry 变化必须重渲染\n if (prevProps.registry !== nextProps.registry) return false;\n \n // actionHandlers 变化必须重渲染\n if (prevProps.actionHandlers !== nextProps.actionHandlers) return false;\n\n // content 引用相同,跳过渲染\n if (prevProps.content === nextProps.content) return true;\n\n // 使用 react-fast-compare 进行高效深比较\n // 比 JSON.stringify 快 3-5 倍,且能正确处理循环引用\n return isEqual(prevProps.content, nextProps.content);\n },\n);\n\n/**\n * 默认导出\n */\nexport default JsonRenderActivityRenderer;\n"],"names":["hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","a","b","_typeof","constructor","length","i","keys","Array","isArray","it","size","entries","next","done","has","value","get","RegExp","source","flags","valueOf","Object","prototype","toString","hasOwnProperty","call","$$typeof","reactFastCompare","isEqual","error","message","match","console","warn","JsonRenderActivityRendererInner","activityType","_ref","content","messageId","registry","_ref$actionHandlers","actionHandlers","isValidSchema","root","elements","renderData","useMemo","data","React","createElement","DataProvider","initialData","VisibilityProvider","ActionProvider","handlers","JsonRenderElement","tree","JsonRenderActivityRenderer","memo","prevProps","nextProps"],"mappings":"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"}