@tdesign-react/chat 1.1.0-alpha.5 → 1.1.0-alpha.7

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 (242) hide show
  1. package/es/_chunks/dep-1007ac80.js +205 -0
  2. package/es/_chunks/dep-1007ac80.js.map +1 -0
  3. package/es/_chunks/dep-16520c2b.js +1247 -0
  4. package/es/_chunks/dep-16520c2b.js.map +1 -0
  5. package/es/_chunks/dep-1743bd61.js +438 -0
  6. package/es/_chunks/dep-1743bd61.js.map +1 -0
  7. package/es/_chunks/dep-3e40d789.js +169 -0
  8. package/es/_chunks/dep-3e40d789.js.map +1 -0
  9. package/es/_chunks/dep-4dedfbef.js +438 -0
  10. package/es/_chunks/dep-4dedfbef.js.map +1 -0
  11. package/es/_chunks/dep-56f5e08e.js +448 -0
  12. package/es/_chunks/dep-56f5e08e.js.map +1 -0
  13. package/es/_chunks/dep-96eca06f.js +169 -0
  14. package/es/_chunks/dep-96eca06f.js.map +1 -0
  15. package/es/_chunks/dep-ebc4cf30.js +1247 -0
  16. package/es/_chunks/dep-ebc4cf30.js.map +1 -0
  17. package/es/_util/reactify.js +33 -13
  18. package/es/_util/reactify.js.map +1 -1
  19. package/es/_util/useDynamicStyle.js +1 -1
  20. package/es/attachments/index.js +1 -1
  21. package/es/chat-actionbar/index.d.ts +13 -4
  22. package/es/chat-actionbar/index.js +35 -5
  23. package/es/chat-actionbar/index.js.map +1 -1
  24. package/es/chat-engine/components/activity/index.js +3 -1
  25. package/es/chat-engine/components/activity/index.js.map +1 -1
  26. package/es/chat-engine/components/activity/registry.js +1 -1
  27. package/es/chat-engine/components/activity/render.d.ts +4 -0
  28. package/es/chat-engine/components/activity/render.js +14 -2
  29. package/es/chat-engine/components/activity/render.js.map +1 -1
  30. package/es/chat-engine/components/activity/types.js +1 -1
  31. package/es/chat-engine/components/index.js +28 -20
  32. package/es/chat-engine/components/index.js.map +1 -1
  33. package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
  34. package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
  35. package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
  36. package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
  37. package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
  38. package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
  39. package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
  40. package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
  41. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
  42. package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
  43. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
  44. package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
  45. package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
  46. package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
  47. package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
  48. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
  49. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
  50. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
  51. package/es/chat-engine/components/json-render/contexts/actions.d.ts +5 -0
  52. package/es/chat-engine/components/json-render/contexts/actions.js +39 -16
  53. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -1
  54. package/es/chat-engine/components/json-render/contexts/data.d.ts +99 -7
  55. package/es/chat-engine/components/json-render/contexts/data.js +155 -76
  56. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -1
  57. package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
  58. package/es/chat-engine/components/json-render/contexts/index.js +27 -0
  59. package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
  60. package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
  61. package/es/chat-engine/components/json-render/contexts/store.js +104 -0
  62. package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
  63. package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
  64. package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
  65. package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
  66. package/es/chat-engine/components/json-render/contexts/validation.js +13 -5
  67. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -1
  68. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +12 -2
  69. package/es/chat-engine/components/json-render/contexts/visibility.js +32 -22
  70. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -1
  71. package/es/chat-engine/components/json-render/index.d.ts +9 -32
  72. package/es/chat-engine/components/json-render/index.js +59 -19
  73. package/es/chat-engine/components/json-render/index.js.map +1 -1
  74. package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
  75. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
  76. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
  77. package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
  78. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
  79. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
  80. package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
  81. package/es/chat-engine/components/json-render/registry/config.js +76 -0
  82. package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
  83. package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
  84. package/es/chat-engine/components/json-render/registry/index.js +76 -0
  85. package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
  86. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
  87. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
  88. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
  89. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
  90. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
  91. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
  92. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
  93. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
  94. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
  95. package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
  96. package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
  97. package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
  98. package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
  99. package/es/chat-engine/components/json-render/renderer/index.js +125 -0
  100. package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
  101. package/es/chat-engine/components/json-render/types.d.ts +37 -19
  102. package/es/chat-engine/components/json-render/types.js +1 -1
  103. package/es/chat-engine/components/provider/agent-state.js +14 -7
  104. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  105. package/es/chat-engine/components/toolcall/index.js +14 -7
  106. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  107. package/es/chat-engine/components/toolcall/registry.js +1 -1
  108. package/es/chat-engine/components/toolcall/render.js +16 -9
  109. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  110. package/es/chat-engine/components/toolcall/types.js +1 -1
  111. package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
  112. package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
  113. package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
  114. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  115. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
  116. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  117. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
  118. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
  119. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
  120. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
  121. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
  122. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
  123. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
  124. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
  125. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
  126. package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
  127. package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
  128. package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
  129. package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
  130. package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
  131. package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
  132. package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
  133. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
  134. package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
  135. package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
  136. package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
  137. package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
  138. package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
  139. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
  140. package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
  141. package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
  142. package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
  143. package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
  144. package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
  145. package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
  146. package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
  147. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +1 -1
  148. package/es/chat-engine/core/adapters/agui/event-mapper.js +7 -7
  149. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
  150. package/es/chat-engine/core/adapters/agui/index.d.ts +4 -7
  151. package/es/chat-engine/core/adapters/agui/index.js +11 -16
  152. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  153. package/es/chat-engine/core/adapters/agui/types/events.d.ts +1550 -0
  154. package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
  155. package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
  156. package/es/chat-engine/core/adapters/agui/types/index.d.ts +818 -0
  157. package/es/chat-engine/core/adapters/agui/types/index.js +277 -0
  158. package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
  159. package/es/chat-engine/core/adapters/agui/utils.js +1 -1
  160. package/es/chat-engine/core/adapters/index.d.ts +5 -0
  161. package/es/chat-engine/core/adapters/index.js +34 -0
  162. package/es/chat-engine/core/adapters/index.js.map +1 -0
  163. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
  164. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
  165. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
  166. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
  167. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
  168. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
  169. package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
  170. package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
  171. package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
  172. package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
  173. package/es/chat-engine/core/adapters/json-render/index.js +18 -0
  174. package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
  175. package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
  176. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
  177. package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
  178. package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
  179. package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
  180. package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
  181. package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
  182. package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
  183. package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
  184. package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
  185. package/es/chat-engine/core/event-bus/index.js +1 -1
  186. package/es/chat-engine/core/event-bus/types.js +1 -1
  187. package/es/chat-engine/core/index.d.ts +2 -3
  188. package/es/chat-engine/core/index.js +16 -8
  189. package/es/chat-engine/core/index.js.map +1 -1
  190. package/es/chat-engine/core/processor/index.js +1 -1
  191. package/es/chat-engine/core/server/batch-client.js +1 -1
  192. package/es/chat-engine/core/server/connection-manager.js +1 -1
  193. package/es/chat-engine/core/server/errors.js +1 -1
  194. package/es/chat-engine/core/server/index.js +1 -1
  195. package/es/chat-engine/core/server/llm-service.js +15 -17
  196. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  197. package/es/chat-engine/core/server/sse-client.js +1 -1
  198. package/es/chat-engine/core/server/sse-parser.js +1 -1
  199. package/es/chat-engine/core/server/types.js +1 -1
  200. package/es/chat-engine/core/store/message.js +6 -4
  201. package/es/chat-engine/core/store/message.js.map +1 -1
  202. package/es/chat-engine/core/store/model.js +2 -1
  203. package/es/chat-engine/core/store/model.js.map +1 -1
  204. package/es/chat-engine/core/store/reactiveState.d.ts +4 -0
  205. package/es/chat-engine/core/store/reactiveState.js +15 -1235
  206. package/es/chat-engine/core/store/reactiveState.js.map +1 -1
  207. package/es/chat-engine/core/type.d.ts +8 -19
  208. package/es/chat-engine/core/type.js +1 -1
  209. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  210. package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
  211. package/es/chat-engine/core/utils/immutable-patch.js +147 -0
  212. package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
  213. package/es/chat-engine/core/utils/index.d.ts +7 -2
  214. package/es/chat-engine/core/utils/index.js +8 -12
  215. package/es/chat-engine/core/utils/index.js.map +1 -1
  216. package/es/chat-engine/core/utils/json-patch/helpers.js +1 -1
  217. package/es/chat-engine/core/utils/json-patch/index.js +1 -1
  218. package/es/chat-engine/core/utils/logger.js +1 -1
  219. package/es/chat-engine/core/utils/performance.d.ts +94 -0
  220. package/es/chat-engine/core/utils/performance.js +205 -0
  221. package/es/chat-engine/core/utils/performance.js.map +1 -0
  222. package/es/chat-engine/hooks/index.js +14 -7
  223. package/es/chat-engine/hooks/index.js.map +1 -1
  224. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  225. package/es/chat-engine/hooks/useAgentState.js +14 -7
  226. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  227. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  228. package/es/chat-engine/hooks/useChat.js +14 -7
  229. package/es/chat-engine/hooks/useChat.js.map +1 -1
  230. package/es/chat-engine/index.js +28 -20
  231. package/es/chat-engine/index.js.map +1 -1
  232. package/es/chat-filecard/index.js +1 -1
  233. package/es/chat-loading/index.js +1 -1
  234. package/es/chat-markdown/index.js +1 -1
  235. package/es/chat-message/index.js +1 -1
  236. package/es/chat-sender/index.js +1 -1
  237. package/es/chat-thinking/index.js +1 -1
  238. package/es/chatbot/index.js +1 -1
  239. package/es/index.js +28 -20
  240. package/es/index.js.map +1 -1
  241. package/es/style/index.js +1 -1
  242. package/package.json +2 -4
@@ -0,0 +1,94 @@
1
+ /**
2
+ * json-render 性能监控和优化工具(框架无关)
3
+ */
4
+ import type { PerformanceMetrics, PerformanceThresholds } from '../adapters/json-render/types/core';
5
+ /**
6
+ * 性能监控器
7
+ * 框架无关,可在任何 JavaScript 环境中使用
8
+ */
9
+ export declare class PerformanceMonitor {
10
+ private metrics;
11
+ private maxMetricsCount;
12
+ /**
13
+ * 开始性能测量
14
+ */
15
+ start(): (elementCount: number, deltaInfo?: {
16
+ fromIndex: number;
17
+ toIndex: number;
18
+ }) => PerformanceMetrics;
19
+ /**
20
+ * 测量更新性能
21
+ */
22
+ measureUpdate<T>(fn: () => T): {
23
+ result: T;
24
+ metric: PerformanceMetrics;
25
+ };
26
+ /**
27
+ * 获取内存使用情况(MB)
28
+ */
29
+ private getMemoryUsage;
30
+ /**
31
+ * 添加性能指标
32
+ */
33
+ private addMetric;
34
+ /**
35
+ * 获取所有指标
36
+ */
37
+ getMetrics(): PerformanceMetrics[];
38
+ /**
39
+ * 获取平均渲染时间
40
+ */
41
+ getAverageRenderTime(): number;
42
+ /**
43
+ * 获取平均更新时间
44
+ */
45
+ getAverageUpdateTime(): number;
46
+ /**
47
+ * 获取最近 N 次操作的平均时间
48
+ */
49
+ getRecentAverageTime(count?: number, type?: 'render' | 'update'): number;
50
+ /**
51
+ * 获取性能统计摘要
52
+ */
53
+ getSummary(): {
54
+ totalOperations: number;
55
+ renderOperations: number;
56
+ updateOperations: number;
57
+ avgRenderTime: number;
58
+ avgUpdateTime: number;
59
+ recentAvgRenderTime: number;
60
+ recentAvgUpdateTime: number;
61
+ avgMemoryUsage: number;
62
+ };
63
+ /**
64
+ * 获取平均内存使用
65
+ */
66
+ private getAverageMemoryUsage;
67
+ /**
68
+ * 重置所有指标
69
+ */
70
+ reset(): void;
71
+ /**
72
+ * 打印性能摘要
73
+ */
74
+ printSummary(): void;
75
+ }
76
+ /**
77
+ * 全局性能监控实例
78
+ */
79
+ export declare const globalPerformanceMonitor: PerformanceMonitor;
80
+ /**
81
+ * 性能警告阈值(ms)
82
+ */
83
+ export declare const PERFORMANCE_THRESHOLDS: PerformanceThresholds;
84
+ /**
85
+ * 检查性能并发出警告
86
+ */
87
+ export declare function checkPerformance(metric: PerformanceMetrics, thresholds?: PerformanceThresholds): void;
88
+ declare const _default: {
89
+ PerformanceMonitor: typeof PerformanceMonitor;
90
+ globalPerformanceMonitor: PerformanceMonitor;
91
+ checkPerformance: typeof checkPerformance;
92
+ PERFORMANCE_THRESHOLDS: PerformanceThresholds;
93
+ };
94
+ export default _default;
@@ -0,0 +1,205 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.7
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
8
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
9
+ import _createClass from '@babel/runtime/helpers/createClass';
10
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
11
+
12
+ var PerformanceMonitor = /*#__PURE__*/function () {
13
+ function PerformanceMonitor() {
14
+ _classCallCheck(this, PerformanceMonitor);
15
+ _defineProperty(this, "metrics", []);
16
+ _defineProperty(this, "maxMetricsCount", 100);
17
+ }
18
+ return _createClass(PerformanceMonitor, [{
19
+ key: "start",
20
+ value: function start() {
21
+ var _this = this;
22
+ var startTime = performance.now();
23
+ return function (elementCount) {
24
+ var endTime = performance.now();
25
+ var renderTime = endTime - startTime;
26
+ var metric = {
27
+ renderTime: renderTime,
28
+ updateTime: 0,
29
+ memoryUsage: _this.getMemoryUsage(),
30
+ componentCount: elementCount,
31
+ timestamp: Date.now()
32
+ };
33
+ _this.addMetric(metric);
34
+ return metric;
35
+ };
36
+ }
37
+ }, {
38
+ key: "measureUpdate",
39
+ value: function measureUpdate(fn) {
40
+ var startTime = performance.now();
41
+ var result = fn();
42
+ var endTime = performance.now();
43
+ var updateTime = endTime - startTime;
44
+ var metric = {
45
+ renderTime: 0,
46
+ updateTime: updateTime,
47
+ memoryUsage: this.getMemoryUsage(),
48
+ componentCount: 0,
49
+ timestamp: Date.now()
50
+ };
51
+ this.addMetric(metric);
52
+ return {
53
+ result: result,
54
+ metric: metric
55
+ };
56
+ }
57
+ }, {
58
+ key: "getMemoryUsage",
59
+ value: function getMemoryUsage() {
60
+ if (typeof performance !== "undefined" && "memory" in performance) {
61
+ var _performance$memory;
62
+ return (((_performance$memory = performance.memory) === null || _performance$memory === void 0 ? void 0 : _performance$memory.usedJSHeapSize) || 0) / 1024 / 1024;
63
+ }
64
+ return 0;
65
+ }
66
+ }, {
67
+ key: "addMetric",
68
+ value: function addMetric(metric) {
69
+ this.metrics.push(metric);
70
+ if (this.metrics.length > this.maxMetricsCount) {
71
+ this.metrics.shift();
72
+ }
73
+ }
74
+ }, {
75
+ key: "getMetrics",
76
+ value: function getMetrics() {
77
+ return _toConsumableArray(this.metrics);
78
+ }
79
+ }, {
80
+ key: "getAverageRenderTime",
81
+ value: function getAverageRenderTime() {
82
+ var renderMetrics = this.metrics.filter(function (m) {
83
+ return m.renderTime > 0;
84
+ });
85
+ if (renderMetrics.length === 0) return 0;
86
+ var totalTime = renderMetrics.reduce(function (sum, m) {
87
+ return sum + m.renderTime;
88
+ }, 0);
89
+ return totalTime / renderMetrics.length;
90
+ }
91
+ }, {
92
+ key: "getAverageUpdateTime",
93
+ value: function getAverageUpdateTime() {
94
+ var updateMetrics = this.metrics.filter(function (m) {
95
+ return m.updateTime > 0;
96
+ });
97
+ if (updateMetrics.length === 0) return 0;
98
+ var totalTime = updateMetrics.reduce(function (sum, m) {
99
+ return sum + m.updateTime;
100
+ }, 0);
101
+ return totalTime / updateMetrics.length;
102
+ }
103
+ }, {
104
+ key: "getRecentAverageTime",
105
+ value: function getRecentAverageTime() {
106
+ var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
107
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "render";
108
+ var recentMetrics = this.metrics.slice(-count);
109
+ if (recentMetrics.length === 0) return 0;
110
+ var timeField = type === "render" ? "renderTime" : "updateTime";
111
+ var validMetrics = recentMetrics.filter(function (m) {
112
+ return m[timeField] > 0;
113
+ });
114
+ if (validMetrics.length === 0) return 0;
115
+ var totalTime = validMetrics.reduce(function (sum, m) {
116
+ return sum + m[timeField];
117
+ }, 0);
118
+ return totalTime / validMetrics.length;
119
+ }
120
+ }, {
121
+ key: "getSummary",
122
+ value: function getSummary() {
123
+ var renderMetrics = this.metrics.filter(function (m) {
124
+ return m.renderTime > 0;
125
+ });
126
+ var updateMetrics = this.metrics.filter(function (m) {
127
+ return m.updateTime > 0;
128
+ });
129
+ return {
130
+ totalOperations: this.metrics.length,
131
+ renderOperations: renderMetrics.length,
132
+ updateOperations: updateMetrics.length,
133
+ avgRenderTime: this.getAverageRenderTime(),
134
+ avgUpdateTime: this.getAverageUpdateTime(),
135
+ recentAvgRenderTime: this.getRecentAverageTime(10, "render"),
136
+ recentAvgUpdateTime: this.getRecentAverageTime(10, "update"),
137
+ avgMemoryUsage: this.getAverageMemoryUsage()
138
+ };
139
+ }
140
+ }, {
141
+ key: "getAverageMemoryUsage",
142
+ value: function getAverageMemoryUsage() {
143
+ if (this.metrics.length === 0) return 0;
144
+ var totalMemory = this.metrics.reduce(function (sum, m) {
145
+ return sum + m.memoryUsage;
146
+ }, 0);
147
+ return totalMemory / this.metrics.length;
148
+ }
149
+ }, {
150
+ key: "reset",
151
+ value: function reset() {
152
+ this.metrics = [];
153
+ }
154
+ }, {
155
+ key: "printSummary",
156
+ value: function printSummary() {
157
+ var summary = this.getSummary();
158
+ console.log("[json-render Performance Summary]", {
159
+ "\u603B\u64CD\u4F5C\u6B21\u6570": summary.totalOperations,
160
+ "\u6E32\u67D3\u64CD\u4F5C": summary.renderOperations,
161
+ "\u66F4\u65B0\u64CD\u4F5C": summary.updateOperations,
162
+ "\u5E73\u5747\u6E32\u67D3\u65F6\u95F4(ms)": summary.avgRenderTime.toFixed(2),
163
+ "\u5E73\u5747\u66F4\u65B0\u65F6\u95F4(ms)": summary.avgUpdateTime.toFixed(2),
164
+ "\u6700\u8FD110\u6B21\u6E32\u67D3\u65F6\u95F4(ms)": summary.recentAvgRenderTime.toFixed(2),
165
+ "\u6700\u8FD110\u6B21\u66F4\u65B0\u65F6\u95F4(ms)": summary.recentAvgUpdateTime.toFixed(2),
166
+ "\u5E73\u5747\u5185\u5B58\u4F7F\u7528(MB)": summary.avgMemoryUsage.toFixed(2)
167
+ });
168
+ }
169
+ }]);
170
+ }();
171
+ var globalPerformanceMonitor = new PerformanceMonitor();
172
+ var PERFORMANCE_THRESHOLDS = {
173
+ renderTime: 50,
174
+ updateTime: 16,
175
+ memoryUsage: 100
176
+ };
177
+ function checkPerformance(metric) {
178
+ var thresholds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : PERFORMANCE_THRESHOLDS;
179
+ if (metric.renderTime > thresholds.renderTime) {
180
+ console.warn("[json-render Performance Warning] \u6E32\u67D3\u8017\u65F6 ".concat(metric.renderTime.toFixed(2), "ms\uFF0C\u8D85\u8FC7\u9608\u503C ").concat(thresholds.renderTime, "ms"), {
181
+ componentCount: metric.componentCount,
182
+ memoryUsage: metric.memoryUsage.toFixed(2) + "MB"
183
+ });
184
+ }
185
+ if (metric.updateTime > thresholds.updateTime) {
186
+ console.warn("[json-render Performance Warning] \u66F4\u65B0\u8017\u65F6 ".concat(metric.updateTime.toFixed(2), "ms\uFF0C\u8D85\u8FC7\u9608\u503C ").concat(thresholds.updateTime, "ms"), {
187
+ componentCount: metric.componentCount,
188
+ memoryUsage: metric.memoryUsage.toFixed(2) + "MB"
189
+ });
190
+ }
191
+ if (metric.memoryUsage > thresholds.memoryUsage) {
192
+ console.warn("[json-render Performance Warning] \u5185\u5B58\u4F7F\u7528 ".concat(metric.memoryUsage.toFixed(2), "MB\uFF0C\u8D85\u8FC7\u9608\u503C ").concat(thresholds.memoryUsage, "MB"), {
193
+ componentCount: metric.componentCount
194
+ });
195
+ }
196
+ }
197
+ var performance$1 = {
198
+ PerformanceMonitor: PerformanceMonitor,
199
+ globalPerformanceMonitor: globalPerformanceMonitor,
200
+ checkPerformance: checkPerformance,
201
+ PERFORMANCE_THRESHOLDS: PERFORMANCE_THRESHOLDS
202
+ };
203
+
204
+ export { PERFORMANCE_THRESHOLDS, PerformanceMonitor, checkPerformance, performance$1 as default, globalPerformanceMonitor };
205
+ //# sourceMappingURL=performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.js","sources":["../../../../../pro-components/chat/chat-engine/core/utils/performance.ts"],"sourcesContent":["/**\n * json-render 性能监控和优化工具(框架无关)\n */\n\nimport type { PerformanceMetrics, PerformanceThresholds } from '../adapters/json-render/types/core';\n\n/**\n * 性能监控器\n * 框架无关,可在任何 JavaScript 环境中使用\n */\nexport class PerformanceMonitor {\n private metrics: PerformanceMetrics[] = [];\n private maxMetricsCount = 100; // 最多保留 100 条记录\n\n /**\n * 开始性能测量\n */\n start(): (elementCount: number, deltaInfo?: { fromIndex: number; toIndex: number }) => PerformanceMetrics {\n const startTime = performance.now();\n \n return (\n elementCount: number,\n ): PerformanceMetrics => {\n const endTime = performance.now();\n const renderTime = endTime - startTime;\n\n const metric: PerformanceMetrics = {\n renderTime,\n updateTime: 0, // 这里只测量渲染时间,更新时间由调用方设置\n memoryUsage: this.getMemoryUsage(),\n componentCount: elementCount,\n timestamp: Date.now(),\n };\n\n this.addMetric(metric);\n return metric;\n };\n }\n\n /**\n * 测量更新性能\n */\n measureUpdate<T>(fn: () => T): { result: T; metric: PerformanceMetrics } {\n const startTime = performance.now();\n const result = fn();\n const endTime = performance.now();\n const updateTime = endTime - startTime;\n\n const metric: PerformanceMetrics = {\n renderTime: 0,\n updateTime,\n memoryUsage: this.getMemoryUsage(),\n componentCount: 0, // 更新操作不涉及组件数量\n timestamp: Date.now(),\n };\n\n this.addMetric(metric);\n return { result, metric };\n }\n\n /**\n * 获取内存使用情况(MB)\n */\n private getMemoryUsage(): number {\n if (typeof performance !== 'undefined' && 'memory' in performance) {\n // @ts-ignore - performance.memory 在某些环境中可用\n return (performance.memory?.usedJSHeapSize || 0) / 1024 / 1024;\n }\n return 0;\n }\n\n /**\n * 添加性能指标\n */\n private addMetric(metric: PerformanceMetrics): void {\n this.metrics.push(metric);\n\n // 限制记录数量\n if (this.metrics.length > this.maxMetricsCount) {\n this.metrics.shift();\n }\n }\n\n /**\n * 获取所有指标\n */\n getMetrics(): PerformanceMetrics[] {\n return [...this.metrics];\n }\n\n /**\n * 获取平均渲染时间\n */\n getAverageRenderTime(): number {\n const renderMetrics = this.metrics.filter(m => m.renderTime > 0);\n if (renderMetrics.length === 0) return 0;\n\n const totalTime = renderMetrics.reduce((sum, m) => sum + m.renderTime, 0);\n return totalTime / renderMetrics.length;\n }\n\n /**\n * 获取平均更新时间\n */\n getAverageUpdateTime(): number {\n const updateMetrics = this.metrics.filter(m => m.updateTime > 0);\n if (updateMetrics.length === 0) return 0;\n\n const totalTime = updateMetrics.reduce((sum, m) => sum + m.updateTime, 0);\n return totalTime / updateMetrics.length;\n }\n\n /**\n * 获取最近 N 次操作的平均时间\n */\n getRecentAverageTime(count: number = 10, type: 'render' | 'update' = 'render'): number {\n const recentMetrics = this.metrics.slice(-count);\n if (recentMetrics.length === 0) return 0;\n\n const timeField = type === 'render' ? 'renderTime' : 'updateTime';\n const validMetrics = recentMetrics.filter(m => m[timeField] > 0);\n if (validMetrics.length === 0) return 0;\n\n const totalTime = validMetrics.reduce((sum, m) => sum + m[timeField], 0);\n return totalTime / validMetrics.length;\n }\n\n /**\n * 获取性能统计摘要\n */\n getSummary() {\n const renderMetrics = this.metrics.filter(m => m.renderTime > 0);\n const updateMetrics = this.metrics.filter(m => m.updateTime > 0);\n\n return {\n totalOperations: this.metrics.length,\n renderOperations: renderMetrics.length,\n updateOperations: updateMetrics.length,\n avgRenderTime: this.getAverageRenderTime(),\n avgUpdateTime: this.getAverageUpdateTime(),\n recentAvgRenderTime: this.getRecentAverageTime(10, 'render'),\n recentAvgUpdateTime: this.getRecentAverageTime(10, 'update'),\n avgMemoryUsage: this.getAverageMemoryUsage(),\n };\n }\n\n /**\n * 获取平均内存使用\n */\n private getAverageMemoryUsage(): number {\n if (this.metrics.length === 0) return 0;\n const totalMemory = this.metrics.reduce((sum, m) => sum + m.memoryUsage, 0);\n return totalMemory / this.metrics.length;\n }\n\n /**\n * 重置所有指标\n */\n reset(): void {\n this.metrics = [];\n }\n\n /**\n * 打印性能摘要\n */\n printSummary(): void {\n const summary = this.getSummary();\n console.log('[json-render Performance Summary]', {\n '总操作次数': summary.totalOperations,\n '渲染操作': summary.renderOperations,\n '更新操作': summary.updateOperations,\n '平均渲染时间(ms)': summary.avgRenderTime.toFixed(2),\n '平均更新时间(ms)': summary.avgUpdateTime.toFixed(2),\n '最近10次渲染时间(ms)': summary.recentAvgRenderTime.toFixed(2),\n '最近10次更新时间(ms)': summary.recentAvgUpdateTime.toFixed(2),\n '平均内存使用(MB)': summary.avgMemoryUsage.toFixed(2),\n });\n }\n}\n\n/**\n * 全局性能监控实例\n */\nexport const globalPerformanceMonitor = new PerformanceMonitor();\n\n/**\n * 性能警告阈值(ms)\n */\nexport const PERFORMANCE_THRESHOLDS: PerformanceThresholds = {\n renderTime: 50, // 渲染超过 50ms 发出警告\n updateTime: 16, // 更新超过 16ms 发出警告(1帧)\n memoryUsage: 100, // 内存使用超过 100MB 发出警告\n};\n\n/**\n * 检查性能并发出警告\n */\nexport function checkPerformance(metric: PerformanceMetrics, thresholds: PerformanceThresholds = PERFORMANCE_THRESHOLDS): void {\n if (metric.renderTime > thresholds.renderTime) {\n console.warn(\n `[json-render Performance Warning] 渲染耗时 ${metric.renderTime.toFixed(2)}ms,超过阈值 ${thresholds.renderTime}ms`,\n {\n componentCount: metric.componentCount,\n memoryUsage: metric.memoryUsage.toFixed(2) + 'MB',\n },\n );\n }\n\n if (metric.updateTime > thresholds.updateTime) {\n console.warn(\n `[json-render Performance Warning] 更新耗时 ${metric.updateTime.toFixed(2)}ms,超过阈值 ${thresholds.updateTime}ms`,\n {\n componentCount: metric.componentCount,\n memoryUsage: metric.memoryUsage.toFixed(2) + 'MB',\n },\n );\n }\n\n if (metric.memoryUsage > thresholds.memoryUsage) {\n console.warn(\n `[json-render Performance Warning] 内存使用 ${metric.memoryUsage.toFixed(2)}MB,超过阈值 ${thresholds.memoryUsage}MB`,\n {\n componentCount: metric.componentCount,\n },\n );\n }\n}\n\nexport default {\n PerformanceMonitor,\n globalPerformanceMonitor,\n checkPerformance,\n PERFORMANCE_THRESHOLDS,\n};"],"names":["PerformanceMonitor","_classCallCheck","_defineProperty","_createClass","key","value","start","_this","startTime","performance","now","elementCount","endTime","renderTime","metric","updateTime","memoryUsage","getMemoryUsage","componentCount","timestamp","Date","addMetric","measureUpdate","fn","result","_performance$memory","memory","usedJSHeapSize","metrics","push","length","maxMetricsCount","shift","getMetrics","_toConsumableArray","getAverageRenderTime","renderMetrics","filter","m","totalTime","reduce","sum","getAverageUpdateTime","updateMetrics","getRecentAverageTime","count","arguments","undefined","type","recentMetrics","slice","timeField","validMetrics","getSummary","totalOperations","renderOperations","updateOperations","avgRenderTime","avgUpdateTime","recentAvgRenderTime","recentAvgUpdateTime","avgMemoryUsage","getAverageMemoryUsage","totalMemory","reset","printSummary","summary","console","log","toFixed","globalPerformanceMonitor","PERFORMANCE_THRESHOLDS","checkPerformance","thresholds","warn","concat"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.4
2
+ * tdesign v1.1.0-alpha.7
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -20,19 +20,18 @@ import '@babel/runtime/regenerator';
20
20
  import '../core/adapters/agui/index.js';
21
21
  import '@babel/runtime/helpers/toConsumableArray';
22
22
  import '../core/adapters/agui/event-mapper.js';
23
- import '../core/adapters/agui/events.js';
23
+ import '../core/adapters/agui/types/index.js';
24
24
  import 'zod';
25
- import '../core/adapters/agui/types.js';
26
25
  import '@babel/runtime/helpers/possibleConstructorReturn';
27
26
  import '@babel/runtime/helpers/getPrototypeOf';
28
27
  import '@babel/runtime/helpers/inherits';
29
28
  import '@babel/runtime/helpers/wrapNativeSuper';
30
- import '../core/adapters/agui/state-manager.js';
29
+ import '../core/adapters/agui/StateManager.js';
31
30
  import '@babel/runtime/helpers/typeof';
32
31
  import '../core/utils/index.js';
33
- import '../core/utils/json-patch/index.js';
34
- import '../core/utils/json-patch/helpers.js';
35
- import '../core/adapters/agui/activity-manager.js';
32
+ import '../core/utils/immutable-patch.js';
33
+ import '@babel/runtime/helpers/toArray';
34
+ import '../core/adapters/agui/ActivityManager.js';
36
35
  import '../core/adapters/agui/utils.js';
37
36
  import '../core/event-bus/index.js';
38
37
  import '../core/event-bus/ChatEventBus.js';
@@ -40,6 +39,7 @@ import '../core/event-bus/types.js';
40
39
  import '../core/store/message.js';
41
40
  import '@babel/runtime/helpers/get';
42
41
  import '../core/store/reactiveState.js';
42
+ import '../../_chunks/dep-ebc4cf30.js';
43
43
  import '../core/processor/index.js';
44
44
  import '../core/server/index.js';
45
45
  import '../core/server/llm-service.js';
@@ -51,6 +51,13 @@ import '../core/server/sse-client.js';
51
51
  import '../core/server/connection-manager.js';
52
52
  import '../core/server/sse-parser.js';
53
53
  import '../core/server/types.js';
54
+ import '../core/adapters/index.js';
55
+ import '../core/adapters/json-render/index.js';
56
+ import '../core/adapters/json-render/a2ui-to-jsonrender.js';
57
+ import '../core/adapters/json-render/types/a2ui.js';
58
+ import '../core/adapters/json-render/SurfaceStateManager.js';
59
+ import '../core/adapters/json-render/types/index.js';
60
+ import '../core/adapters/json-render/types/core.js';
54
61
  import '../components/toolcall/registry.js';
55
62
  import '../components/activity/registry.js';
56
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.4
2
+ * tdesign v1.1.0-alpha.7
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.4
2
+ * tdesign v1.1.0-alpha.7
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -8,7 +8,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
8
8
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
9
9
  import { useState, useRef, useEffect, createContext, useContext, useMemo } from 'react';
10
10
  import '../core/index.js';
11
- import { stateManager } from '../core/adapters/agui/state-manager.js';
11
+ import { stateManager } from '../core/adapters/agui/StateManager.js';
12
12
  import '@babel/runtime/helpers/objectWithoutProperties';
13
13
  import '@babel/runtime/helpers/asyncToGenerator';
14
14
  import '@babel/runtime/helpers/classCallCheck';
@@ -17,18 +17,17 @@ import '@babel/runtime/regenerator';
17
17
  import '../core/adapters/agui/index.js';
18
18
  import '@babel/runtime/helpers/toConsumableArray';
19
19
  import '../core/adapters/agui/event-mapper.js';
20
- import '../core/adapters/agui/events.js';
20
+ import '../core/adapters/agui/types/index.js';
21
21
  import 'zod';
22
- import '../core/adapters/agui/types.js';
23
22
  import '@babel/runtime/helpers/possibleConstructorReturn';
24
23
  import '@babel/runtime/helpers/getPrototypeOf';
25
24
  import '@babel/runtime/helpers/inherits';
26
25
  import '@babel/runtime/helpers/wrapNativeSuper';
27
- import '../core/adapters/agui/activity-manager.js';
26
+ import '../core/adapters/agui/ActivityManager.js';
28
27
  import '../core/utils/index.js';
29
- import '../core/utils/json-patch/index.js';
28
+ import '../core/utils/immutable-patch.js';
30
29
  import '@babel/runtime/helpers/typeof';
31
- import '../core/utils/json-patch/helpers.js';
30
+ import '@babel/runtime/helpers/toArray';
32
31
  import '../core/adapters/agui/utils.js';
33
32
  import '../core/event-bus/index.js';
34
33
  import '../core/event-bus/ChatEventBus.js';
@@ -36,6 +35,7 @@ import '../core/event-bus/types.js';
36
35
  import '../core/store/message.js';
37
36
  import '@babel/runtime/helpers/get';
38
37
  import '../core/store/reactiveState.js';
38
+ import '../../_chunks/dep-ebc4cf30.js';
39
39
  import '../core/processor/index.js';
40
40
  import '../core/server/index.js';
41
41
  import '../core/server/llm-service.js';
@@ -47,6 +47,13 @@ import '../core/server/sse-client.js';
47
47
  import '../core/server/connection-manager.js';
48
48
  import '../core/server/sse-parser.js';
49
49
  import '../core/server/types.js';
50
+ import '../core/adapters/index.js';
51
+ import '../core/adapters/json-render/index.js';
52
+ import '../core/adapters/json-render/a2ui-to-jsonrender.js';
53
+ import '../core/adapters/json-render/types/a2ui.js';
54
+ import '../core/adapters/json-render/SurfaceStateManager.js';
55
+ import '../core/adapters/json-render/types/index.js';
56
+ import '../core/adapters/json-render/types/core.js';
50
57
 
51
58
  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; }
52
59
  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; }
@@ -1 +1 @@
1
- {"version":3,"file":"useAgentState.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useAgentState.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { useState, useEffect, useRef, createContext, useContext, useMemo } from 'react';\n// import { stateManager } from 'tdesign-web-components/lib/chat-engine';\nimport { stateManager } from '../core';\n\n/**\n * 状态订阅相关类型定义\n */\n\nexport interface StateActionOptions {\n /**\n * 初始状态\n */\n initialState?: Record<string, any>;\n /**\n * 只订阅特定key的变化\n */\n subscribeKey?: string;\n}\n\nexport interface UseStateActionReturn {\n /**\n * 全量状态Map - 包含所有stateKey的状态\n * 格式: { [stateKey]: stateData }\n */\n stateMap: Record<string, any>;\n /**\n * 当前最新的状态key\n */\n currentStateKey: string | null;\n /**\n * 设置状态Map,用于加载历史对话消息中的state数据\n */\n setStateMap: (stateMap: Record<string, any> | ((prev: Record<string, any>) => Record<string, any>)) => void;\n /**\n * 获取当前完整状态的方法\n */\n getCurrentState: () => Record<string, any>;\n /**\n * 获取特定 key 状态的方法\n */\n getStateByKey: (key: string) => any;\n}\n\nexport const useAgentState = <T = any>(options: StateActionOptions = {}): UseStateActionReturn => {\n const { initialState, subscribeKey } = options;\n const [stateMap, setStateMap] = useState<Record<string, any>>(initialState || {});\n const [currentStateKey, setCurrentStateKey] = useState<string | null>(null);\n\n // 使用 ref 来避免不必要的重新渲染\n const stateMapRef = useRef(stateMap);\n stateMapRef.current = stateMap;\n\n useEffect(\n () =>\n stateManager.subscribeToLatest((newState: T, newStateKey: string) => {\n // 如果指定了 subscribeKey,只有匹配时才更新状态\n if (subscribeKey && newStateKey !== subscribeKey) {\n // 仍然更新内部状态,但不触发重新渲染\n stateMapRef.current = {\n ...stateMapRef.current,\n [newStateKey]: newState,\n };\n return;\n }\n\n setStateMap((prev) => ({\n ...prev,\n [newStateKey]: newState,\n }));\n setCurrentStateKey(newStateKey);\n }),\n [subscribeKey],\n );\n\n return {\n stateMap: stateMapRef.current,\n currentStateKey,\n setStateMap,\n getCurrentState: () => stateMapRef.current,\n getStateByKey: (key: string) => stateMapRef.current[key],\n };\n};\n\n// 创建 AgentState Context\nexport const AgentStateContext = createContext<UseStateActionReturn | null>(null);\n\n// 简化的状态选择器\nexport const useAgentStateDataByKey = (stateKey?: string) => {\n const contextState = useContext(AgentStateContext);\n const independentState = useAgentState({ subscribeKey: stateKey });\n\n return useMemo(() => {\n if (contextState) {\n // 有 Provider,使用 Context 状态\n const { stateMap } = contextState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }\n\n // 没有 Provider,使用独立状态\n const { stateMap } = independentState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }, [\n stateKey,\n // 关键:添加和 useAgentStateByKey 相同的深度依赖逻辑\n contextState && (stateKey ? contextState.stateMap[stateKey] : JSON.stringify(contextState.stateMap)),\n independentState && (stateKey ? independentState.stateMap[stateKey] : JSON.stringify(independentState.stateMap)),\n ]);\n};\n\n// 导出 Context Hook\nexport const useAgentStateContext = (): UseStateActionReturn => {\n const context = useContext(AgentStateContext);\n\n if (!context) {\n throw new Error('useAgentState must be used within AgentStateProvider');\n }\n\n return context;\n};\n"],"names":["useAgentState","options","arguments","length","undefined","initialState","subscribeKey","_useState","useState","_useState2","_slicedToArray","stateMap","setStateMap","_useState3","_useState4","currentStateKey","setCurrentStateKey","stateMapRef","useRef","current","useEffect","stateManager","subscribeToLatest","newState","newStateKey","_objectSpread","_defineProperty","prev","getCurrentState","getStateByKey","key","AgentStateContext","createContext","useAgentStateDataByKey","stateKey","contextState","useContext","independentState","useMemo","JSON","stringify","useAgentStateContext","context","Error"],"mappings":"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"}
1
+ {"version":3,"file":"useAgentState.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useAgentState.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { useState, useEffect, useRef, createContext, useContext, useMemo } from 'react';\n// import { stateManager } from 'tdesign-web-components/lib/chat-engine';\nimport { stateManager } from '../core';\n\n/**\n * 状态订阅相关类型定义\n */\n\nexport interface StateActionOptions {\n /**\n * 初始状态\n */\n initialState?: Record<string, any>;\n /**\n * 只订阅特定key的变化\n */\n subscribeKey?: string;\n}\n\nexport interface UseStateActionReturn {\n /**\n * 全量状态Map - 包含所有stateKey的状态\n * 格式: { [stateKey]: stateData }\n */\n stateMap: Record<string, any>;\n /**\n * 当前最新的状态key\n */\n currentStateKey: string | null;\n /**\n * 设置状态Map,用于加载历史对话消息中的state数据\n */\n setStateMap: (stateMap: Record<string, any> | ((prev: Record<string, any>) => Record<string, any>)) => void;\n /**\n * 获取当前完整状态的方法\n */\n getCurrentState: () => Record<string, any>;\n /**\n * 获取特定 key 状态的方法\n */\n getStateByKey: (key: string) => any;\n}\n\nexport const useAgentState = <T = any>(options: StateActionOptions = {}): UseStateActionReturn => {\n const { initialState, subscribeKey } = options;\n const [stateMap, setStateMap] = useState<Record<string, any>>(initialState || {});\n const [currentStateKey, setCurrentStateKey] = useState<string | null>(null);\n\n // 使用 ref 来避免不必要的重新渲染\n const stateMapRef = useRef(stateMap);\n stateMapRef.current = stateMap;\n\n useEffect(\n () =>\n stateManager.subscribeToLatest((newState: T, newStateKey: string) => {\n // 如果指定了 subscribeKey,只有匹配时才更新状态\n if (subscribeKey && newStateKey !== subscribeKey) {\n // 仍然更新内部状态,但不触发重新渲染\n stateMapRef.current = {\n ...stateMapRef.current,\n [newStateKey]: newState,\n };\n return;\n }\n\n setStateMap((prev) => ({\n ...prev,\n [newStateKey]: newState,\n }));\n setCurrentStateKey(newStateKey);\n }),\n [subscribeKey],\n );\n\n return {\n stateMap: stateMapRef.current,\n currentStateKey,\n setStateMap,\n getCurrentState: () => stateMapRef.current,\n getStateByKey: (key: string) => stateMapRef.current[key],\n };\n};\n\n// 创建 AgentState Context\nexport const AgentStateContext = createContext<UseStateActionReturn | null>(null);\n\n// 简化的状态选择器\nexport const useAgentStateDataByKey = (stateKey?: string) => {\n const contextState = useContext(AgentStateContext);\n const independentState = useAgentState({ subscribeKey: stateKey });\n\n return useMemo(() => {\n if (contextState) {\n // 有 Provider,使用 Context 状态\n const { stateMap } = contextState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }\n\n // 没有 Provider,使用独立状态\n const { stateMap } = independentState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }, [\n stateKey,\n // 关键:添加和 useAgentStateByKey 相同的深度依赖逻辑\n contextState && (stateKey ? contextState.stateMap[stateKey] : JSON.stringify(contextState.stateMap)),\n independentState && (stateKey ? independentState.stateMap[stateKey] : JSON.stringify(independentState.stateMap)),\n ]);\n};\n\n// 导出 Context Hook\nexport const useAgentStateContext = (): UseStateActionReturn => {\n const context = useContext(AgentStateContext);\n\n if (!context) {\n throw new Error('useAgentState must be used within AgentStateProvider');\n }\n\n return context;\n};\n"],"names":["useAgentState","options","arguments","length","undefined","initialState","subscribeKey","_useState","useState","_useState2","_slicedToArray","stateMap","setStateMap","_useState3","_useState4","currentStateKey","setCurrentStateKey","stateMapRef","useRef","current","useEffect","stateManager","subscribeToLatest","newState","newStateKey","_objectSpread","_defineProperty","prev","getCurrentState","getStateByKey","key","AgentStateContext","createContext","useAgentStateDataByKey","stateKey","contextState","useContext","independentState","useMemo","JSON","stringify","useAgentStateContext","context","Error"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.4
2
+ * tdesign v1.1.0-alpha.7
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.4
2
+ * tdesign v1.1.0-alpha.7
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -16,19 +16,18 @@ import '@babel/runtime/regenerator';
16
16
  import '../core/adapters/agui/index.js';
17
17
  import '@babel/runtime/helpers/toConsumableArray';
18
18
  import '../core/adapters/agui/event-mapper.js';
19
- import '../core/adapters/agui/events.js';
19
+ import '../core/adapters/agui/types/index.js';
20
20
  import 'zod';
21
- import '../core/adapters/agui/types.js';
22
21
  import '@babel/runtime/helpers/possibleConstructorReturn';
23
22
  import '@babel/runtime/helpers/getPrototypeOf';
24
23
  import '@babel/runtime/helpers/inherits';
25
24
  import '@babel/runtime/helpers/wrapNativeSuper';
26
- import '../core/adapters/agui/state-manager.js';
25
+ import '../core/adapters/agui/StateManager.js';
27
26
  import '@babel/runtime/helpers/typeof';
28
27
  import '../core/utils/index.js';
29
- import '../core/utils/json-patch/index.js';
30
- import '../core/utils/json-patch/helpers.js';
31
- import '../core/adapters/agui/activity-manager.js';
28
+ import '../core/utils/immutable-patch.js';
29
+ import '@babel/runtime/helpers/toArray';
30
+ import '../core/adapters/agui/ActivityManager.js';
32
31
  import '../core/adapters/agui/utils.js';
33
32
  import '../core/event-bus/index.js';
34
33
  import '../core/event-bus/ChatEventBus.js';
@@ -36,6 +35,7 @@ import '../core/event-bus/types.js';
36
35
  import '../core/store/message.js';
37
36
  import '@babel/runtime/helpers/get';
38
37
  import '../core/store/reactiveState.js';
38
+ import '../../_chunks/dep-ebc4cf30.js';
39
39
  import '../core/processor/index.js';
40
40
  import '../core/server/index.js';
41
41
  import '../core/server/llm-service.js';
@@ -47,6 +47,13 @@ import '../core/server/sse-client.js';
47
47
  import '../core/server/connection-manager.js';
48
48
  import '../core/server/sse-parser.js';
49
49
  import '../core/server/types.js';
50
+ import '../core/adapters/index.js';
51
+ import '../core/adapters/json-render/index.js';
52
+ import '../core/adapters/json-render/a2ui-to-jsonrender.js';
53
+ import '../core/adapters/json-render/types/a2ui.js';
54
+ import '../core/adapters/json-render/SurfaceStateManager.js';
55
+ import '../core/adapters/json-render/types/index.js';
56
+ import '../core/adapters/json-render/types/core.js';
50
57
 
51
58
  var useChat = function useChat(_ref) {
52
59
  var initialMessages = _ref.defaultMessages,
@@ -1 +1 @@
1
- {"version":3,"file":"useChat.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useChat.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport ChatEngine from '../core';\nimport type { ChatMessagesData, ChatServiceConfig, ChatStatus } from '../core';\n// import ChatEngine from 'tdesign-web-components/lib/chat-engine';\n// import type { ChatMessagesData, ChatServiceConfig, ChatStatus } from 'tdesign-web-components/lib/chat-engine';\n\n\nexport type IUseChat = {\n defaultMessages?: ChatMessagesData[];\n chatServiceConfig: ChatServiceConfig | (() => ChatServiceConfig);\n};\n\nexport const useChat = ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {\n const [messages, setMessage] = useState<ChatMessagesData[]>([]);\n const [status, setStatus] = useState<ChatStatus>('idle');\n const chatEngineRef = useRef<ChatEngine>(new ChatEngine());\n const msgSubscribeRef = useRef<null | (() => void)>(null);\n const prevInitialMessagesRef = useRef<ChatMessagesData[]>([]);\n\n const chatEngine = chatEngineRef.current;\n\n const syncState = (state: ChatMessagesData[]) => {\n setMessage(state);\n setStatus(state.at(-1)?.status || 'idle');\n };\n\n const subscribeToChat = () => {\n // 清理之前的订阅\n msgSubscribeRef.current?.();\n\n msgSubscribeRef.current = chatEngine.messageStore.subscribe((state) => {\n syncState(state.messages);\n });\n };\n\n const initChat = () => {\n // @ts-ignore\n chatEngine.init(chatServiceConfig, initialMessages);\n // @ts-ignore\n syncState(initialMessages);\n subscribeToChat();\n };\n\n // 初始化聊天引擎\n useEffect(() => {\n initChat();\n return () => msgSubscribeRef.current?.();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // 监听 defaultMessages 变化\n useEffect(() => {\n // 检查 initialMessages 是否真的发生了变化\n const hasChanged = JSON.stringify(prevInitialMessagesRef.current) !== JSON.stringify(initialMessages);\n\n if (hasChanged && initialMessages && initialMessages.length > 0) {\n // 更新引用\n prevInitialMessagesRef.current = initialMessages;\n\n // 重新初始化聊天引擎或更新消息\n chatEngine.setMessages(initialMessages, 'replace');\n\n // 同步状态\n syncState(initialMessages);\n }\n }, [initialMessages, chatEngine]);\n\n return {\n chatEngine,\n messages,\n status,\n };\n};\n"],"names":["useChat","initialMessages","_ref","defaultMessages","chatServiceConfig","_useState","useState","_useState2","_slicedToArray","messages","setMessage","_useState3","_useState4","status","setStatus","chatEngineRef","useRef","ChatEngine","msgSubscribeRef","prevInitialMessagesRef","chatEngine","current","syncState","state","_state$at","at","subscribeToChat","_msgSubscribeRef$curr","call","messageStore","subscribe","initChat","init","useEffect","_msgSubscribeRef$curr2","hasChanged","JSON","stringify","length","setMessages"],"mappings":"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"}
1
+ {"version":3,"file":"useChat.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useChat.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport ChatEngine from '../core';\nimport type { ChatMessagesData, ChatServiceConfig, ChatStatus } from '../core';\n// import ChatEngine from 'tdesign-web-components/lib/chat-engine';\n// import type { ChatMessagesData, ChatServiceConfig, ChatStatus } from 'tdesign-web-components/lib/chat-engine';\n\n\nexport type IUseChat = {\n defaultMessages?: ChatMessagesData[];\n chatServiceConfig: ChatServiceConfig | (() => ChatServiceConfig);\n};\n\nexport const useChat = ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {\n const [messages, setMessage] = useState<ChatMessagesData[]>([]);\n const [status, setStatus] = useState<ChatStatus>('idle');\n const chatEngineRef = useRef<ChatEngine>(new ChatEngine());\n const msgSubscribeRef = useRef<null | (() => void)>(null);\n const prevInitialMessagesRef = useRef<ChatMessagesData[]>([]);\n\n const chatEngine = chatEngineRef.current;\n\n const syncState = (state: ChatMessagesData[]) => {\n setMessage(state);\n setStatus(state.at(-1)?.status || 'idle');\n };\n\n const subscribeToChat = () => {\n // 清理之前的订阅\n msgSubscribeRef.current?.();\n\n msgSubscribeRef.current = chatEngine.messageStore.subscribe((state) => {\n syncState(state.messages);\n });\n };\n\n const initChat = () => {\n // @ts-ignore\n chatEngine.init(chatServiceConfig, initialMessages);\n // @ts-ignore\n syncState(initialMessages);\n subscribeToChat();\n };\n\n // 初始化聊天引擎\n useEffect(() => {\n initChat();\n return () => msgSubscribeRef.current?.();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // 监听 defaultMessages 变化\n useEffect(() => {\n // 检查 initialMessages 是否真的发生了变化\n const hasChanged = JSON.stringify(prevInitialMessagesRef.current) !== JSON.stringify(initialMessages);\n\n if (hasChanged && initialMessages && initialMessages.length > 0) {\n // 更新引用\n prevInitialMessagesRef.current = initialMessages;\n\n // 重新初始化聊天引擎或更新消息\n chatEngine.setMessages(initialMessages, 'replace');\n\n // 同步状态\n syncState(initialMessages);\n }\n }, [initialMessages, chatEngine]);\n\n return {\n chatEngine,\n messages,\n status,\n };\n};\n"],"names":["useChat","initialMessages","_ref","defaultMessages","chatServiceConfig","_useState","useState","_useState2","_slicedToArray","messages","setMessage","_useState3","_useState4","status","setStatus","chatEngineRef","useRef","ChatEngine","msgSubscribeRef","prevInitialMessagesRef","chatEngine","current","syncState","state","_state$at","at","subscribeToChat","_msgSubscribeRef$curr","call","messageStore","subscribe","initChat","init","useEffect","_msgSubscribeRef$curr2","hasChanged","JSON","stringify","length","setMessages"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYaA,UAAU,SAAVA,cAAiF;AAAA,EAAA,IAAnDC,eAAA,GAAAC,IAAA,CAAjBC,eAAiB;IAAiBC,yBAAAA;AAC1D,EAAA,IAAAC,SAAA,GAA+BC,QAAA,CAA6B,EAAE,CAAA;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvDI,IAAAA,QAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,UAAU,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAC3B,EAAA,IAAAI,UAAA,GAA4BL,SAAqB,MAAM,CAAA;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAhDE,IAAAA,MAAA,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAQE,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EACxB,IAAMG,aAAgB,GAAAC,MAAA,CAAmB,IAAIC,UAAA,EAAY,CAAA,CAAA;AACnD,EAAA,IAAAC,eAAA,GAAkBF,OAA4B,IAAI,CAAA,CAAA;AAClD,EAAA,IAAAG,sBAAA,GAAyBH,MAA2B,CAAA,EAAE,CAAA,CAAA;AAE5D,EAAA,IAAMI,aAAaL,aAAc,CAAAM,OAAA,CAAA;AAE3B,EAAA,IAAAC,SAAA,GAAY,SAAZA,SAAAA,CAAaC,KAA8B,EAAA;AAAA,IAAA,IAAAC,SAAA,CAAA;IAC/Cd,UAAA,CAAWa,KAAK,CAAA,CAAA;AAChBT,IAAAA,SAAA,CAAU,CAAAU,CAAAA,SAAA,GAAAD,KAAM,CAAAE,EAAA,CAAG,CAAE,CAAA,CAAA,MAAA,IAAA,IAAAD,SAAA,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAA,CAAcX,WAAU,MAAM,CAAA,CAAA;GAC1C,CAAA;AAEA,EAAA,IAAMa,kBAAkB,SAAlBA,kBAAwB;AAAA,IAAA,IAAAC,qBAAA,CAAA;AAE5B,IAAA,CAAAA,qBAAA,GAAAT,eAAA,CAAgBG,OAAU,MAAA,IAAA,IAAAM,qBAAA,KAAA,KAAA,CAAA,IAA1BA,qBAAA,CAAAC,IAAA,CAAAV,eAA0B,CAAA,CAAA;IAE1BA,eAAA,CAAgBG,OAAU,GAAAD,UAAA,CAAWS,YAAa,CAAAC,SAAA,CAAU,UAACP,KAAU,EAAA;AACrED,MAAAA,SAAA,CAAUC,MAAMd,QAAQ,CAAA,CAAA;AAC1B,KAAC,CAAA,CAAA;GACH,CAAA;AAEA,EAAA,IAAMsB,WAAW,SAAXA,WAAiB;AAEVX,IAAAA,UAAA,CAAAY,IAAA,CAAK5B,mBAAmBH,eAAe,CAAA,CAAA;IAElDqB,SAAA,CAAUrB,eAAe,CAAA,CAAA;AACTyB,IAAAA,eAAA,EAAA,CAAA;GAClB,CAAA;AAGAO,EAAAA,SAAA,CAAU,YAAM;AACLF,IAAAA,QAAA,EAAA,CAAA;IACF,OAAA,YAAA;AAAA,MAAA,IAAAG,sBAAA,CAAA;AAAA,MAAA,OAAA,CAAAA,sBAAA,GAAMhB,gBAAgBG,OAAU,MAAA,IAAA,IAAAa,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA1BA,sBAAA,CAAAN,IAAA,CAAAV,eAA0B,CAAA,CAAA;AAAA,KAAA,CAAA;GAEzC,EAAG,EAAE,CAAA,CAAA;AAGLe,EAAAA,SAAA,CAAU,YAAM;AAER,IAAA,IAAAE,UAAA,GAAaC,KAAKC,SAAU,CAAAlB,sBAAA,CAAuBE,OAAO,CAAM,KAAAe,IAAA,CAAKC,UAAUpC,eAAe,CAAA,CAAA;IAEpG,IAAIkC,UAAc,IAAAlC,eAAA,IAAmBA,eAAgB,CAAAqC,MAAA,GAAS,CAAG,EAAA;MAE/DnB,sBAAA,CAAuBE,OAAU,GAAApB,eAAA,CAAA;AAGtBmB,MAAAA,UAAA,CAAAmB,WAAA,CAAYtC,iBAAiB,SAAS,CAAA,CAAA;MAGjDqB,SAAA,CAAUrB,eAAe,CAAA,CAAA;AAC3B,KAAA;AACF,GAAG,EAAA,CAACA,eAAiB,EAAAmB,UAAU,CAAC,CAAA,CAAA;EAEzB,OAAA;AACLA,IAAAA,UAAA,EAAAA,UAAA;AACAX,IAAAA,QAAA,EAAAA,QAAA;AACAI,IAAAA,MAAA,EAAAA,MAAAA;GACF,CAAA;AACF;;;;"}