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

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 (233) 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-56f5e08e.js +448 -0
  8. package/es/_chunks/dep-56f5e08e.js.map +1 -0
  9. package/es/_chunks/dep-96eca06f.js +169 -0
  10. package/es/_chunks/dep-96eca06f.js.map +1 -0
  11. package/es/_util/reactify.js +1 -1
  12. package/es/_util/useDynamicStyle.js +1 -1
  13. package/es/attachments/index.js +1 -1
  14. package/es/chat-actionbar/index.js +1 -1
  15. package/es/chat-engine/components/activity/index.js +3 -1
  16. package/es/chat-engine/components/activity/index.js.map +1 -1
  17. package/es/chat-engine/components/activity/registry.js +1 -1
  18. package/es/chat-engine/components/activity/render.d.ts +4 -0
  19. package/es/chat-engine/components/activity/render.js +14 -2
  20. package/es/chat-engine/components/activity/render.js.map +1 -1
  21. package/es/chat-engine/components/activity/types.js +1 -1
  22. package/es/chat-engine/components/index.js +28 -20
  23. package/es/chat-engine/components/index.js.map +1 -1
  24. package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
  25. package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
  26. package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
  27. package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
  28. package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
  29. package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
  30. package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
  31. package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
  32. package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
  33. package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
  34. package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
  35. package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
  36. package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
  37. package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
  38. package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
  39. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
  40. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
  41. package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
  42. package/es/chat-engine/components/json-render/contexts/actions.d.ts +5 -0
  43. package/es/chat-engine/components/json-render/contexts/actions.js +39 -16
  44. package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -1
  45. package/es/chat-engine/components/json-render/contexts/data.d.ts +99 -7
  46. package/es/chat-engine/components/json-render/contexts/data.js +155 -76
  47. package/es/chat-engine/components/json-render/contexts/data.js.map +1 -1
  48. package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
  49. package/es/chat-engine/components/json-render/contexts/index.js +27 -0
  50. package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
  51. package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
  52. package/es/chat-engine/components/json-render/contexts/store.js +104 -0
  53. package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
  54. package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
  55. package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
  56. package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
  57. package/es/chat-engine/components/json-render/contexts/validation.js +13 -5
  58. package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -1
  59. package/es/chat-engine/components/json-render/contexts/visibility.d.ts +12 -2
  60. package/es/chat-engine/components/json-render/contexts/visibility.js +32 -22
  61. package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -1
  62. package/es/chat-engine/components/json-render/index.d.ts +9 -32
  63. package/es/chat-engine/components/json-render/index.js +59 -19
  64. package/es/chat-engine/components/json-render/index.js.map +1 -1
  65. package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
  66. package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
  67. package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
  68. package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
  69. package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
  70. package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
  71. package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
  72. package/es/chat-engine/components/json-render/registry/config.js +76 -0
  73. package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
  74. package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
  75. package/es/chat-engine/components/json-render/registry/index.js +76 -0
  76. package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
  77. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
  78. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
  79. package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
  80. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
  81. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
  82. package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
  83. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
  84. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
  85. package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
  86. package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
  87. package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
  88. package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
  89. package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
  90. package/es/chat-engine/components/json-render/renderer/index.js +125 -0
  91. package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
  92. package/es/chat-engine/components/json-render/types.d.ts +37 -19
  93. package/es/chat-engine/components/json-render/types.js +1 -1
  94. package/es/chat-engine/components/provider/agent-state.js +14 -7
  95. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  96. package/es/chat-engine/components/toolcall/index.js +14 -7
  97. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  98. package/es/chat-engine/components/toolcall/registry.js +1 -1
  99. package/es/chat-engine/components/toolcall/render.js +16 -9
  100. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  101. package/es/chat-engine/components/toolcall/types.js +1 -1
  102. package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
  103. package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
  104. package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
  105. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
  106. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
  107. package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
  108. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
  109. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
  110. package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
  111. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
  112. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
  113. package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
  114. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
  115. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
  116. package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
  117. package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
  118. package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
  119. package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
  120. package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
  121. package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
  122. package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
  123. package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
  124. package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
  125. package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
  126. package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
  127. package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
  128. package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
  129. package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
  130. package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
  131. package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
  132. package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
  133. package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
  134. package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
  135. package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
  136. package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
  137. package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
  138. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +1 -1
  139. package/es/chat-engine/core/adapters/agui/event-mapper.js +7 -7
  140. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
  141. package/es/chat-engine/core/adapters/agui/index.d.ts +4 -7
  142. package/es/chat-engine/core/adapters/agui/index.js +11 -16
  143. package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
  144. package/es/chat-engine/core/adapters/agui/types/events.d.ts +1550 -0
  145. package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
  146. package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
  147. package/es/chat-engine/core/adapters/agui/types/index.d.ts +818 -0
  148. package/es/chat-engine/core/adapters/agui/types/index.js +277 -0
  149. package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
  150. package/es/chat-engine/core/adapters/agui/utils.js +1 -1
  151. package/es/chat-engine/core/adapters/index.d.ts +5 -0
  152. package/es/chat-engine/core/adapters/index.js +34 -0
  153. package/es/chat-engine/core/adapters/index.js.map +1 -0
  154. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
  155. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
  156. package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
  157. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
  158. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
  159. package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
  160. package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
  161. package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
  162. package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
  163. package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
  164. package/es/chat-engine/core/adapters/json-render/index.js +18 -0
  165. package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
  166. package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
  167. package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
  168. package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
  169. package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
  170. package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
  171. package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
  172. package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
  173. package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
  174. package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
  175. package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
  176. package/es/chat-engine/core/event-bus/index.js +1 -1
  177. package/es/chat-engine/core/event-bus/types.js +1 -1
  178. package/es/chat-engine/core/index.d.ts +2 -3
  179. package/es/chat-engine/core/index.js +16 -8
  180. package/es/chat-engine/core/index.js.map +1 -1
  181. package/es/chat-engine/core/processor/index.js +1 -1
  182. package/es/chat-engine/core/server/batch-client.js +1 -1
  183. package/es/chat-engine/core/server/connection-manager.js +1 -1
  184. package/es/chat-engine/core/server/errors.js +1 -1
  185. package/es/chat-engine/core/server/index.js +1 -1
  186. package/es/chat-engine/core/server/llm-service.js +15 -17
  187. package/es/chat-engine/core/server/llm-service.js.map +1 -1
  188. package/es/chat-engine/core/server/sse-client.js +1 -1
  189. package/es/chat-engine/core/server/sse-parser.js +1 -1
  190. package/es/chat-engine/core/server/types.js +1 -1
  191. package/es/chat-engine/core/store/message.js +6 -4
  192. package/es/chat-engine/core/store/message.js.map +1 -1
  193. package/es/chat-engine/core/store/model.js +2 -1
  194. package/es/chat-engine/core/store/model.js.map +1 -1
  195. package/es/chat-engine/core/store/reactiveState.d.ts +4 -0
  196. package/es/chat-engine/core/store/reactiveState.js +15 -1235
  197. package/es/chat-engine/core/store/reactiveState.js.map +1 -1
  198. package/es/chat-engine/core/type.d.ts +8 -19
  199. package/es/chat-engine/core/type.js +1 -1
  200. package/es/chat-engine/core/utils/eventEmitter.js +1 -1
  201. package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
  202. package/es/chat-engine/core/utils/immutable-patch.js +147 -0
  203. package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
  204. package/es/chat-engine/core/utils/index.d.ts +7 -2
  205. package/es/chat-engine/core/utils/index.js +8 -12
  206. package/es/chat-engine/core/utils/index.js.map +1 -1
  207. package/es/chat-engine/core/utils/json-patch/helpers.js +1 -1
  208. package/es/chat-engine/core/utils/json-patch/index.js +1 -1
  209. package/es/chat-engine/core/utils/logger.js +1 -1
  210. package/es/chat-engine/core/utils/performance.d.ts +94 -0
  211. package/es/chat-engine/core/utils/performance.js +205 -0
  212. package/es/chat-engine/core/utils/performance.js.map +1 -0
  213. package/es/chat-engine/hooks/index.js +14 -7
  214. package/es/chat-engine/hooks/index.js.map +1 -1
  215. package/es/chat-engine/hooks/useAgentActivity.js +1 -1
  216. package/es/chat-engine/hooks/useAgentState.js +14 -7
  217. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  218. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  219. package/es/chat-engine/hooks/useChat.js +14 -7
  220. package/es/chat-engine/hooks/useChat.js.map +1 -1
  221. package/es/chat-engine/index.js +28 -20
  222. package/es/chat-engine/index.js.map +1 -1
  223. package/es/chat-filecard/index.js +1 -1
  224. package/es/chat-loading/index.js +1 -1
  225. package/es/chat-markdown/index.js +1 -1
  226. package/es/chat-message/index.js +1 -1
  227. package/es/chat-sender/index.js +1 -1
  228. package/es/chat-thinking/index.js +1 -1
  229. package/es/chatbot/index.js +1 -1
  230. package/es/index.js +28 -20
  231. package/es/index.js.map +1 -1
  232. package/es/style/index.js +1 -1
  233. package/package.json +1 -1
@@ -0,0 +1,99 @@
1
+ /**
2
+ * 状态管理器
3
+ * 支持两种订阅模式:
4
+ * 1. 最新状态模式:订阅最新状态,适用于状态覆盖场景
5
+ * 2. 绑定状态模式:订阅特定stateKey,适用于状态隔离场景
6
+ */
7
+ export interface StateManager {
8
+ /**
9
+ * 获取当前活跃的状态key
10
+ */
11
+ getCurrentStateKey: () => string | null;
12
+ /**
13
+ * 获取当前状态(基于当前状态key)
14
+ */
15
+ getCurrentState: () => any;
16
+ /**
17
+ * 获取指定状态key的状态
18
+ */
19
+ getState: (stateKey: string) => any;
20
+ /**
21
+ * 获取所有状态keys
22
+ */
23
+ getAllStateKeys: () => string[];
24
+ /**
25
+ * 订阅状态变化
26
+ * @param callback 状态变化回调函数
27
+ * @param targetStateKey 可选:指定订阅特定的stateKey,不传则订阅当前活跃状态
28
+ */
29
+ subscribe: (callback: (state: any, stateKey: string) => void, targetStateKey?: string) => () => void;
30
+ /**
31
+ * 处理AG-UI状态事件,自动从事件中提取stateKey
32
+ */
33
+ handleStateEvent: (event: {
34
+ type: string;
35
+ snapshot?: any;
36
+ delta?: any[];
37
+ }) => void;
38
+ /**
39
+ * 清理所有状态和订阅
40
+ */
41
+ clear: () => void;
42
+ }
43
+ export declare class StateManagerImpl implements StateManager {
44
+ private states;
45
+ private currentStateKey;
46
+ private latestSubscribers;
47
+ private boundSubscribers;
48
+ /**
49
+ * 获取当前活跃的状态key
50
+ */
51
+ getCurrentStateKey(): string | null;
52
+ /**
53
+ * 获取当前状态(基于当前状态key)
54
+ */
55
+ getCurrentState(): any;
56
+ /**
57
+ * 获取指定状态key的状态
58
+ */
59
+ getState(stateKey: string): any;
60
+ /**
61
+ * 获取所有状态keys
62
+ */
63
+ getAllStateKeys(): string[];
64
+ /**
65
+ * 订阅最新状态(覆盖模式)
66
+ * 适用于只有一个组件,每轮都用新状态更新的场景
67
+ */
68
+ subscribeToLatest(callback: (state: any, stateKey: string) => void): () => void;
69
+ /**
70
+ * 订阅状态变化(实现 StateManager 接口)
71
+ * @param callback 状态变化回调函数
72
+ * @param targetStateKey 可选:指定订阅特定的stateKey,不传则订阅当前活跃状态
73
+ */
74
+ subscribe(callback: (state: any, stateKey: string) => void, targetStateKey?: string): () => void;
75
+ /**
76
+ * 订阅特定状态(隔离模式)
77
+ * 适用于每轮对话创建新组件,各自保持独立状态的场景
78
+ */
79
+ subscribeToState(stateKey: string, callback: (state: any) => void): () => void;
80
+ /**
81
+ * 处理AG-UI状态事件
82
+ * 自动从事件中提取stateKey,无需外部传递
83
+ */
84
+ handleStateEvent(event: {
85
+ type: string;
86
+ snapshot?: any;
87
+ delta?: any[];
88
+ }): void;
89
+ clear(): void;
90
+ /**
91
+ * 设置状态并立即通知订阅者
92
+ */
93
+ private setState;
94
+ /**
95
+ * 通知订阅者
96
+ */
97
+ private notifySubscribers;
98
+ }
99
+ export declare const stateManager: StateManagerImpl;
@@ -0,0 +1,172 @@
1
+ /**
2
+ * tdesign v1.1.0-alpha.5
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
8
+ import _typeof from '@babel/runtime/helpers/typeof';
9
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
10
+ import _createClass from '@babel/runtime/helpers/createClass';
11
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
12
+ import { applyJsonPatch } from '../../utils/index.js';
13
+ import '../../utils/immutable-patch.js';
14
+ import '@babel/runtime/helpers/objectWithoutProperties';
15
+ import '@babel/runtime/helpers/toConsumableArray';
16
+ import '@babel/runtime/helpers/toArray';
17
+
18
+ var StateManagerImpl = /*#__PURE__*/function () {
19
+ function StateManagerImpl() {
20
+ _classCallCheck(this, StateManagerImpl);
21
+ _defineProperty(this, "states", {});
22
+ _defineProperty(this, "currentStateKey", null);
23
+ _defineProperty(this, "latestSubscribers", /* @__PURE__ */new Set());
24
+ _defineProperty(this, "boundSubscribers", /* @__PURE__ */new Map());
25
+ }
26
+ return _createClass(StateManagerImpl, [{
27
+ key: "getCurrentStateKey",
28
+ value: function getCurrentStateKey() {
29
+ return this.currentStateKey;
30
+ }
31
+ }, {
32
+ key: "getCurrentState",
33
+ value: function getCurrentState() {
34
+ if (!this.currentStateKey) return null;
35
+ return this.states[this.currentStateKey];
36
+ }
37
+ }, {
38
+ key: "getState",
39
+ value: function getState(stateKey) {
40
+ return this.states[stateKey];
41
+ }
42
+ }, {
43
+ key: "getAllStateKeys",
44
+ value: function getAllStateKeys() {
45
+ return Object.keys(this.states);
46
+ }
47
+ }, {
48
+ key: "subscribeToLatest",
49
+ value: function subscribeToLatest(callback) {
50
+ var _this = this;
51
+ this.latestSubscribers.add(callback);
52
+ if (this.currentStateKey && this.states[this.currentStateKey]) {
53
+ try {
54
+ callback(this.states[this.currentStateKey], this.currentStateKey);
55
+ } catch (error) {
56
+ console.error("\u6700\u65B0\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(this.currentStateKey, "]:"), error);
57
+ }
58
+ }
59
+ return function () {
60
+ return _this.latestSubscribers["delete"](callback);
61
+ };
62
+ }
63
+ }, {
64
+ key: "subscribe",
65
+ value: function subscribe(callback, targetStateKey) {
66
+ if (targetStateKey) {
67
+ return this.subscribeToState(targetStateKey, function (state) {
68
+ return callback(state, targetStateKey);
69
+ });
70
+ }
71
+ return this.subscribeToLatest(callback);
72
+ }
73
+ }, {
74
+ key: "subscribeToState",
75
+ value: function subscribeToState(stateKey, callback) {
76
+ var _this2 = this;
77
+ if (!this.boundSubscribers.has(stateKey)) {
78
+ this.boundSubscribers.set(stateKey, /* @__PURE__ */new Set());
79
+ }
80
+ this.boundSubscribers.get(stateKey).add(callback);
81
+ if (this.states[stateKey]) {
82
+ try {
83
+ callback(this.states[stateKey]);
84
+ } catch (error) {
85
+ console.error("\u7ED1\u5B9A\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
86
+ }
87
+ }
88
+ return function () {
89
+ var _this2$boundSubscribe;
90
+ (_this2$boundSubscribe = _this2.boundSubscribers.get(stateKey)) === null || _this2$boundSubscribe === void 0 || _this2$boundSubscribe["delete"](callback);
91
+ };
92
+ }
93
+ }, {
94
+ key: "handleStateEvent",
95
+ value: function handleStateEvent(event) {
96
+ var _this3 = this;
97
+ if (event.type === "STATE_SNAPSHOT") {
98
+ if (event.snapshot && _typeof(event.snapshot) === "object") {
99
+ Object.entries(event.snapshot).forEach(function (_ref) {
100
+ var _ref2 = _slicedToArray(_ref, 2),
101
+ stateKey = _ref2[0],
102
+ stateData = _ref2[1];
103
+ _this3.setState(stateKey, stateData);
104
+ });
105
+ }
106
+ } else if (event.type === "STATE_DELTA") {
107
+ if (event.delta && Array.isArray(event.delta)) {
108
+ var firstDelta = event.delta[0];
109
+ if (firstDelta && firstDelta.path) {
110
+ var pathParts = firstDelta.path.split("/");
111
+ if (pathParts.length > 1) {
112
+ var stateKey = pathParts[1];
113
+ var currentState = this.getState(stateKey);
114
+ if (currentState) {
115
+ try {
116
+ var originalStructure = _defineProperty({}, stateKey, currentState);
117
+ var updatedStructure = applyJsonPatch(originalStructure, event.delta);
118
+ var updatedState = updatedStructure[stateKey];
119
+ this.setState(stateKey, updatedState);
120
+ } catch (error) {
121
+ console.error("STATE_DELTA\u5904\u7406\u5931\u8D25 [".concat(stateKey, "]:"), error);
122
+ }
123
+ } else {
124
+ console.warn("STATE_DELTA: \u627E\u4E0D\u5230\u72B6\u6001 [".concat(stateKey, "]\uFF0C\u53EF\u80FD\u9700\u8981\u5148\u63A5\u6536STATE_SNAPSHOT"));
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }, {
132
+ key: "clear",
133
+ value: function clear() {
134
+ this.states = {};
135
+ this.latestSubscribers.clear();
136
+ this.boundSubscribers.clear();
137
+ this.currentStateKey = null;
138
+ }
139
+ }, {
140
+ key: "setState",
141
+ value: function setState(stateKey, state) {
142
+ this.states[stateKey] = state;
143
+ this.currentStateKey = stateKey;
144
+ this.notifySubscribers(stateKey, state);
145
+ }
146
+ }, {
147
+ key: "notifySubscribers",
148
+ value: function notifySubscribers(stateKey, state) {
149
+ var boundSubs = this.boundSubscribers.get(stateKey);
150
+ if (boundSubs) {
151
+ boundSubs.forEach(function (callback) {
152
+ try {
153
+ callback(state);
154
+ } catch (error) {
155
+ console.error("\u7ED1\u5B9A\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
156
+ }
157
+ });
158
+ }
159
+ this.latestSubscribers.forEach(function (callback) {
160
+ try {
161
+ callback(state, stateKey);
162
+ } catch (error) {
163
+ console.error("\u6700\u65B0\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
164
+ }
165
+ });
166
+ }
167
+ }]);
168
+ }();
169
+ var stateManager = new StateManagerImpl();
170
+
171
+ export { StateManagerImpl, stateManager };
172
+ //# sourceMappingURL=StateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateManager.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/agui/StateManager.ts"],"sourcesContent":["import { applyJsonPatch } from '../../utils';\n\n/**\n * 状态管理器\n * 支持两种订阅模式:\n * 1. 最新状态模式:订阅最新状态,适用于状态覆盖场景\n * 2. 绑定状态模式:订阅特定stateKey,适用于状态隔离场景\n */\n\nexport interface StateManager {\n /**\n * 获取当前活跃的状态key\n */\n getCurrentStateKey: () => string | null;\n /**\n * 获取当前状态(基于当前状态key)\n */\n getCurrentState: () => any;\n /**\n * 获取指定状态key的状态\n */\n getState: (stateKey: string) => any;\n /**\n * 获取所有状态keys\n */\n getAllStateKeys: () => string[];\n /**\n * 订阅状态变化\n * @param callback 状态变化回调函数\n * @param targetStateKey 可选:指定订阅特定的stateKey,不传则订阅当前活跃状态\n */\n subscribe: (callback: (state: any, stateKey: string) => void, targetStateKey?: string) => () => void;\n /**\n * 处理AG-UI状态事件,自动从事件中提取stateKey\n */\n handleStateEvent: (event: { type: string; snapshot?: any; delta?: any[] }) => void;\n /**\n * 清理所有状态和订阅\n */\n clear: () => void;\n}\n\nexport class StateManagerImpl implements StateManager {\n private states: Record<string, any> = {};\n\n private currentStateKey: string | null = null;\n\n // 最新状态订阅者(覆盖模式)\n private latestSubscribers: Set<(state: any, stateKey: string) => void> = new Set();\n\n // 绑定状态订阅者(隔离模式)\n private boundSubscribers: Map<string, Set<(state: any) => void>> = new Map();\n\n /**\n * 获取当前活跃的状态key\n */\n getCurrentStateKey(): string | null {\n return this.currentStateKey;\n }\n\n /**\n * 获取当前状态(基于当前状态key)\n */\n getCurrentState(): any {\n if (!this.currentStateKey) return null;\n return this.states[this.currentStateKey];\n }\n\n /**\n * 获取指定状态key的状态\n */\n getState(stateKey: string): any {\n return this.states[stateKey];\n }\n\n /**\n * 获取所有状态keys\n */\n getAllStateKeys(): string[] {\n return Object.keys(this.states);\n }\n\n /**\n * 订阅最新状态(覆盖模式)\n * 适用于只有一个组件,每轮都用新状态更新的场景\n */\n subscribeToLatest(callback: (state: any, stateKey: string) => void): () => void {\n this.latestSubscribers.add(callback);\n // 立即调用一次当前状态\n if (this.currentStateKey && this.states[this.currentStateKey]) {\n try {\n callback(this.states[this.currentStateKey], this.currentStateKey);\n } catch (error) {\n console.error(`最新状态订阅回调执行失败 [${this.currentStateKey}]:`, error);\n }\n }\n\n return () => this.latestSubscribers.delete(callback);\n }\n\n /**\n * 订阅状态变化(实现 StateManager 接口)\n * @param callback 状态变化回调函数\n * @param targetStateKey 可选:指定订阅特定的stateKey,不传则订阅当前活跃状态\n */\n subscribe(callback: (state: any, stateKey: string) => void, targetStateKey?: string): () => void {\n if (targetStateKey) {\n // 绑定模式:订阅特定 stateKey\n return this.subscribeToState(targetStateKey, (state) => callback(state, targetStateKey));\n }\n // 最新模式:订阅最新状态\n return this.subscribeToLatest(callback);\n }\n\n /**\n * 订阅特定状态(隔离模式)\n * 适用于每轮对话创建新组件,各自保持独立状态的场景\n */\n subscribeToState(stateKey: string, callback: (state: any) => void): () => void {\n if (!this.boundSubscribers.has(stateKey)) {\n this.boundSubscribers.set(stateKey, new Set());\n }\n this.boundSubscribers.get(stateKey)!.add(callback);\n\n // 立即调用一次(如果状态存在)\n if (this.states[stateKey]) {\n try {\n callback(this.states[stateKey]);\n } catch (error) {\n console.error(`绑定状态订阅回调执行失败 [${stateKey}]:`, error);\n }\n }\n\n return () => {\n this.boundSubscribers.get(stateKey)?.delete(callback);\n };\n }\n\n /**\n * 处理AG-UI状态事件\n * 自动从事件中提取stateKey,无需外部传递\n */\n handleStateEvent(event: { type: string; snapshot?: any; delta?: any[] }): void {\n if (event.type === 'STATE_SNAPSHOT') {\n // 处理STATE_SNAPSHOT:立即更新\n if (event.snapshot && typeof event.snapshot === 'object') {\n Object.entries(event.snapshot).forEach(([stateKey, stateData]) => {\n this.setState(stateKey, stateData);\n });\n }\n } else if (event.type === 'STATE_DELTA') {\n // 处理STATE_DELTA:立即更新\n if (event.delta && Array.isArray(event.delta)) {\n // 从第一个delta操作的路径中提取stateKey\n const firstDelta = event.delta[0];\n if (firstDelta && firstDelta.path) {\n const pathParts = firstDelta.path.split('/');\n if (pathParts.length > 1) {\n const stateKey = pathParts[1]; // 路径格式: /stateKey/items/...\n const currentState = this.getState(stateKey);\n\n if (currentState) {\n try {\n // 重新构造原始结构以应用JSON Patch\n const originalStructure = { [stateKey]: currentState };\n const updatedStructure = applyJsonPatch(originalStructure, event.delta);\n const updatedState = updatedStructure[stateKey];\n this.setState(stateKey, updatedState);\n } catch (error) {\n console.error(`STATE_DELTA处理失败 [${stateKey}]:`, error);\n }\n } else {\n console.warn(`STATE_DELTA: 找不到状态 [${stateKey}],可能需要先接收STATE_SNAPSHOT`);\n }\n }\n }\n }\n }\n }\n\n // 清理所有状态和订阅\n clear(): void {\n // 清理状态和订阅\n this.states = {};\n this.latestSubscribers.clear();\n this.boundSubscribers.clear();\n this.currentStateKey = null;\n }\n\n /**\n * 设置状态并立即通知订阅者\n */\n private setState(stateKey: string, state: any): void {\n // 更新状态\n this.states[stateKey] = state;\n this.currentStateKey = stateKey;\n this.notifySubscribers(stateKey, state);\n }\n\n /**\n * 通知订阅者\n */\n private notifySubscribers(stateKey: string, state: any): void {\n // 通知绑定订阅者(只通知对应stateKey的订阅者)\n const boundSubs = this.boundSubscribers.get(stateKey);\n if (boundSubs) {\n boundSubs.forEach((callback) => {\n try {\n callback(state);\n } catch (error) {\n console.error(`绑定状态订阅回调执行失败 [${stateKey}]:`, error);\n }\n });\n }\n\n // 通知最新状态订阅者(所有订阅者都收到最新状态)\n this.latestSubscribers.forEach((callback) => {\n try {\n callback(state, stateKey);\n } catch (error) {\n console.error(`最新状态订阅回调执行失败 [${stateKey}]:`, error);\n }\n });\n }\n}\n\n// 全局单例\nexport const stateManager = new StateManagerImpl();\n"],"names":["StateManagerImpl","_classCallCheck","_defineProperty","Set","Map","_createClass","key","value","getCurrentStateKey","currentStateKey","getCurrentState","states","getState","stateKey","getAllStateKeys","Object","keys","subscribeToLatest","callback","_this","latestSubscribers","add","error","console","concat","subscribe","targetStateKey","subscribeToState","state","_this2","boundSubscribers","has","set","get","_this2$boundSubscribe","handleStateEvent","event","_this3","type","snapshot","_typeof","entries","forEach","_ref","_ref2","_slicedToArray","stateData","setState","delta","Array","isArray","firstDelta","path","pathParts","split","length","currentState","originalStructure","updatedStructure","applyJsonPatch","updatedState","warn","clear","notifySubscribers","boundSubs","stateManager"],"mappings":"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"}
@@ -16,7 +16,7 @@ export declare class AGUIEventMapper {
16
16
  /**
17
17
  * 暴露 activityManager,供 AGUIAdapter 访问
18
18
  */
19
- get activityManager(): import("./activity-manager").ActivityManagerImpl;
19
+ get activityManager(): import("./ActivityManager").ActivityManagerImpl;
20
20
  private currentTextMessageId;
21
21
  private currentTextMessageRole;
22
22
  private toolCallChunkStarted;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.4
2
+ * tdesign v1.1.0-alpha.5
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -8,12 +8,11 @@ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
8
8
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
9
9
  import _createClass from '@babel/runtime/helpers/createClass';
10
10
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
11
- import { isTextMessageEvent, isThinkingEvent, isToolCallEvent, isActivityEvent, isStateEvent, AGUIEventType } from './events.js';
12
- import { stateManager } from './state-manager.js';
13
- import { activityManager } from './activity-manager.js';
11
+ import { isTextMessageEvent, isThinkingEvent, isToolCallEvent, isActivityEvent, isStateEvent, AGUIEventType } from './types/index.js';
12
+ import { stateManager } from './StateManager.js';
13
+ import { activityManager } from './ActivityManager.js';
14
14
  import { parseSSEData, createMarkdownContent, createActivityContent, createTextContent, handleCustomEvent, handleMessagesSnapshot, createReasoningContent, addToReasoningData, createThinkingContent, mergeStringContent, updateReasoningData, createToolCallContent, updateToolCall, handleSuggestionToolCall } from './utils.js';
15
15
  import 'zod';
16
- import './types.js';
17
16
  import '@babel/runtime/helpers/possibleConstructorReturn';
18
17
  import '@babel/runtime/helpers/getPrototypeOf';
19
18
  import '@babel/runtime/helpers/inherits';
@@ -21,8 +20,9 @@ import '@babel/runtime/helpers/wrapNativeSuper';
21
20
  import '@babel/runtime/helpers/slicedToArray';
22
21
  import '@babel/runtime/helpers/typeof';
23
22
  import '../../utils/index.js';
24
- import '../../utils/json-patch/index.js';
25
- import '../../utils/json-patch/helpers.js';
23
+ import '../../utils/immutable-patch.js';
24
+ import '@babel/runtime/helpers/objectWithoutProperties';
25
+ import '@babel/runtime/helpers/toArray';
26
26
 
27
27
  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; }
28
28
  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":"event-mapper.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/agui/event-mapper.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport type { AIMessageContent, SSEChunkData, ToolCall } from '../../type';\nimport {\n AGUIEventType,\n isActivityEvent,\n isStateEvent,\n isTextMessageEvent,\n isThinkingEvent,\n isToolCallEvent,\n} from './events';\nimport { stateManager } from './state-manager';\nimport { activityManager } from './activity-manager';\nimport {\n addToReasoningData,\n createActivityContent,\n createMarkdownContent,\n createReasoningContent,\n createTextContent,\n createThinkingContent,\n createToolCallContent,\n handleCustomEvent,\n handleMessagesSnapshot,\n handleSuggestionToolCall,\n mergeStringContent,\n parseSSEData,\n updateReasoningData,\n updateToolCall,\n} from './utils';\n\n/**\n * AGUIEventMapper\n * 将AG-UI协议事件(SSEChunkData)转换为AIContentChunkUpdate\n * 支持多轮对话、增量文本、工具调用、思考、状态快照、消息快照等基础事件\n * 同时提供状态变更和步骤生命周期事件的分发机制\n * \n * 支持简化模式:\n * - TEXT_MESSAGE_CHUNK:自动补全 Start → Content → End 生命周期\n * - TOOL_CALL_CHUNK:自动补全 Start → Args → End 生命周期\n */\nexport class AGUIEventMapper {\n private toolCallMap: Record<string, ToolCall> = {};\n\n private toolCallEnded: Set<string> = new Set(); // 记录已经TOOL_CALL_END的工具调用\n\n // Reasoning 上下文状态管理\n private reasoningContext: {\n active: boolean;\n currentData: AIMessageContent[];\n currentDataIndex: number;\n } = {\n active: false,\n currentData: [],\n currentDataIndex: 0,\n };\n\n /**\n * 暴露 activityManager,供 AGUIAdapter 访问\n */\n public get activityManager() {\n return activityManager;\n }\n\n // 简化模式状态跟踪\n private currentTextMessageId: string | null = null; // 当前正在处理的文本消息 ID\n\n private currentTextMessageRole: 'assistant' | 'system' | null = null; // 当前正在处理的文本消息角色\n\n private toolCallChunkStarted: Set<string> = new Set(); // 已自动触发 TOOL_CALL_START 的 toolCallId\n\n /**\n * 主入口:将SSE事件转换为AIContentChunkUpdate\n *\n * @param chunk SSE数据块,其中data字段可能是字符串(需要解析)或已解析的对象\n */\n mapEvent(chunk: SSEChunkData): AIMessageContent | AIMessageContent[] | null {\n // 处理data字段,可能是字符串或已解析的对象\n const event = parseSSEData(chunk.data);\n \n if (!event?.type) return null;\n\n // 根据事件类型分发到不同的处理函数\n if (isTextMessageEvent(event.type)) {\n return this.handleTextMessageEvent(event);\n }\n\n if (isThinkingEvent(event.type)) {\n return this.handleThinkingEvent(event);\n }\n\n if (isToolCallEvent(event.type)) {\n return this.handleToolCallEvent(event);\n }\n\n if (isActivityEvent(event.type)) {\n return this.handleActivityEvent(event);\n }\n\n if (isStateEvent(event.type)) {\n return this.handleStateEvent(event);\n }\n\n // 处理其他事件类型\n return this.handleOtherEvent(event);\n }\n\n /**\n * 获取当前所有工具调用\n */\n getToolCalls(): ToolCall[] {\n return Object.values(this.toolCallMap);\n }\n\n /**\n * 清除指定工具调用\n */\n clearToolCall(toolCallId: string): void {\n delete this.toolCallMap[toolCallId];\n this.toolCallEnded.delete(toolCallId);\n this.toolCallChunkStarted.delete(toolCallId);\n }\n\n /**\n * 获取指定工具调用\n */\n getToolCall(toolCallId: string): ToolCall | undefined {\n return this.toolCallMap[toolCallId];\n }\n\n /**\n * 检查工具调用是否已结束\n */\n isToolCallEnded(toolCallId: string): boolean {\n return this.toolCallEnded.has(toolCallId);\n }\n\n reset() {\n this.toolCallMap = {};\n this.toolCallEnded.clear();\n this.resetReasoningContext();\n // 重置简化模式状态\n this.currentTextMessageId = null;\n this.currentTextMessageRole = null;\n this.toolCallChunkStarted.clear();\n // 清理 activityManager 状态\n activityManager.clear();\n }\n\n /**\n * 处理文本消息事件\n * \n * 支持两种模式:\n * 1. 标准模式:TEXT_MESSAGE_START → TEXT_MESSAGE_CONTENT → TEXT_MESSAGE_END\n * 2. 简化模式:仅发送 TEXT_MESSAGE_CHUNK,自动补全生命周期\n */\n private handleTextMessageEvent(event: any): AIMessageContent | null {\n switch (event.type) {\n case AGUIEventType.TEXT_MESSAGE_START:\n this.currentTextMessageId = event.messageId || null; // 标记当前消息 ID\n return createMarkdownContent('', 'streaming', 'append');\n\n case AGUIEventType.TEXT_MESSAGE_CHUNK:\n return this.handleTextMessageChunk(event);\n\n case AGUIEventType.TEXT_MESSAGE_CONTENT:\n return createMarkdownContent(event.delta || '', 'streaming', 'merge');\n\n case AGUIEventType.TEXT_MESSAGE_END:\n this.currentTextMessageId = null; // 重置状态\n return createMarkdownContent(event.delta || '', 'complete', 'merge');\n\n default:\n return null;\n }\n }\n\n /**\n * 处理简化模式的 TEXT_MESSAGE_CHUNK 事件\n * 自动补全 Start → Content → End 生命周期\n * \n * 关键:通过 messageId 区分不同的文本块,\n * 当 messageId 变化时创建新的内容块\n */\n private handleTextMessageChunk(event: any): AIMessageContent | null {\n const messageId = event.messageId || 'default';\n const role = event?.role || 'assistant';\n \n // 如果是新的 messageId,需要创建新的内容块\n if (this.currentTextMessageId !== messageId) {\n this.currentTextMessageId = messageId;\n this.currentTextMessageRole = role;\n // 创建新内容块,使用 append 策略,通过 ext.role 传递角色信息\n return createMarkdownContent(event.delta || '', 'streaming', 'append', role);\n }\n\n // 同一个 messageId,使用 merge 策略追加内容\n return createMarkdownContent(event.delta || '', 'streaming', 'merge', this.currentTextMessageRole || role);\n }\n\n /**\n * 处理思考事件\n */\n private handleThinkingEvent(event: any): AIMessageContent | null {\n switch (event.type) {\n case AGUIEventType.THINKING_START:\n return this.handleThinkingStart();\n case AGUIEventType.THINKING_TEXT_MESSAGE_START:\n return this.handleThinkingTextStart(event);\n case AGUIEventType.THINKING_TEXT_MESSAGE_CONTENT:\n return this.handleThinkingTextContent(event);\n case AGUIEventType.THINKING_TEXT_MESSAGE_END:\n return this.handleThinkingTextEnd(event);\n case AGUIEventType.THINKING_END:\n return this.handleThinkingEnd();\n default:\n return null;\n }\n }\n\n /**\n * 处理工具调用事件\n * \n * 支持两种模式:\n * 1. 标准模式:TOOL_CALL_START → TOOL_CALL_ARGS → TOOL_CALL_END\n * 2. 简化模式:仅发送 TOOL_CALL_CHUNK,自动补全生命周期\n */\n private handleToolCallEvent(event: any): AIMessageContent | null {\n switch (event.type) {\n case AGUIEventType.TOOL_CALL_START:\n return this.handleToolCallStart(event);\n case AGUIEventType.TOOL_CALL_ARGS:\n return this.handleToolCallArgs(event);\n case AGUIEventType.TOOL_CALL_CHUNK:\n return this.handleToolCallChunk(event);\n case AGUIEventType.TOOL_CALL_RESULT:\n return this.handleToolCallResult(event);\n case AGUIEventType.TOOL_CALL_END:\n return this.handleToolCallEnd(event);\n default:\n return null;\n }\n }\n\n /**\n * 处理活动事件\n * 委托给 activityManager 进行状态管理和订阅通知\n * \n * 支持两种模式:\n * 1. 标准模式:先收到 ACTIVITY_SNAPSHOT,后续 ACTIVITY_DELTA 基于 snapshot 增量更新\n * 2. 纯增量模式:没有 ACTIVITY_SNAPSHOT,直接收到 ACTIVITY_DELTA,自动初始化空内容\n * \n * 注意:不同 activityType 的活动是独立管理的,互不影响\n */\n private handleActivityEvent(event: any): AIMessageContent | null {\n const activityType = event.activityType || 'unknown';\n // 委托给 activityManager 处理\n const activityData = activityManager.handleActivityEvent(event);\n if (!activityData) {\n return null;\n }\n\n // 根据事件类型决定 strategy\n const isSnapshot = event.type === AGUIEventType.ACTIVITY_SNAPSHOT;\n const isFirstDelta = event.type === AGUIEventType.ACTIVITY_DELTA && !activityManager.getActivity(activityType);\n\n return createActivityContent(\n activityType,\n activityData.content,\n 'streaming',\n // SNAPSHOT 或首次 DELTA 使用 append 创建新内容块,后续使用 merge\n isSnapshot || isFirstDelta ? 'append' : 'merge',\n activityData.deltaInfo,\n );\n }\n\n /**\n * 处理状态事件\n */\n private handleStateEvent(event: any): null {\n stateManager.handleStateEvent(event);\n return null;\n }\n\n /**\n * 处理其他事件\n */\n private handleOtherEvent(event: any): AIMessageContent | AIMessageContent[] | null {\n switch (event.type) {\n case AGUIEventType.MESSAGES_SNAPSHOT:\n return handleMessagesSnapshot(event.messages);\n case AGUIEventType.CUSTOM:\n return handleCustomEvent(event);\n case AGUIEventType.RUN_ERROR:\n return [createTextContent(event.message || event.error || '系统未知错误', 'error')];\n default:\n return null;\n }\n }\n\n /**\n * 处理思考开始事件\n */\n private handleThinkingStart(): AIMessageContent {\n // 激活 reasoning 上下文\n this.reasoningContext.active = true;\n this.reasoningContext.currentData = [];\n this.reasoningContext.currentDataIndex = 0;\n\n return createReasoningContent([], 'streaming', 'append', false);\n }\n\n /**\n * 处理思考文本开始事件\n */\n private handleThinkingTextStart(event: any): AIMessageContent | null {\n if (this.reasoningContext.active) {\n // Reasoning 模式:添加新的 text 内容到 reasoning.data\n const newTextContent = createTextContent('', 'streaming');\n const { data, index } = addToReasoningData(this.reasoningContext.currentData, newTextContent);\n this.reasoningContext.currentData = data;\n this.reasoningContext.currentDataIndex = index;\n\n return createReasoningContent(data, 'streaming', 'merge', false);\n }\n // 独立模式:创建独立的 thinking 内容\n return createThinkingContent({ title: event.title || '思考中...' }, 'streaming', 'append', false);\n }\n\n /**\n * 处理思考文本内容事件\n */\n private handleThinkingTextContent(event: any): AIMessageContent | null {\n if (this.reasoningContext.active) {\n // Reasoning 模式:更新最后一个 text 内容\n const currentIndex = this.reasoningContext.currentDataIndex;\n if (currentIndex >= 0 && this.reasoningContext.currentData[currentIndex]) {\n const currentContent = this.reasoningContext.currentData[currentIndex];\n if (currentContent.type === 'text') {\n const currentText = currentContent.data || '';\n const newText = mergeStringContent(currentText, event.delta || '');\n const updatedContent = { ...currentContent, data: newText, status: 'streaming' };\n\n this.reasoningContext.currentData = updateReasoningData(\n this.reasoningContext.currentData,\n currentIndex,\n updatedContent,\n );\n\n return createReasoningContent(this.reasoningContext.currentData, 'streaming', 'merge', false);\n }\n }\n return null;\n }\n // 独立模式:更新独立的 thinking 内容\n return createThinkingContent({ text: event.delta }, 'streaming', 'merge', false);\n }\n\n /**\n * 处理思考文本结束事件\n */\n private handleThinkingTextEnd(event: any): AIMessageContent | null {\n if (this.reasoningContext.active) {\n // Reasoning 模式:标记最后一个 text 内容为完成\n const currentIndex = this.reasoningContext.currentDataIndex;\n if (currentIndex >= 0 && this.reasoningContext.currentData[currentIndex]) {\n const currentContent = this.reasoningContext.currentData[currentIndex];\n if (currentContent.type === 'text') {\n const updatedContent = { ...currentContent, status: 'complete' };\n this.reasoningContext.currentData = updateReasoningData(\n this.reasoningContext.currentData,\n currentIndex,\n updatedContent,\n );\n\n return createReasoningContent(this.reasoningContext.currentData, 'streaming', 'merge', false);\n }\n }\n return null;\n }\n // 独立模式:完成独立的 thinking 内容\n return createThinkingContent({ title: event.title || '思考结束' }, 'complete', 'merge', true);\n }\n\n /**\n * 处理思考结束事件\n */\n private handleThinkingEnd(): AIMessageContent | null {\n if (this.reasoningContext.active) {\n // 完成 reasoning 并重置上下文\n const finalData = [...this.reasoningContext.currentData];\n this.resetReasoningContext();\n\n return createReasoningContent(finalData, 'complete', 'merge', true);\n }\n return null;\n }\n\n /**\n * 处理工具调用开始事件\n */\n private handleToolCallStart(event: any): AIMessageContent | null {\n // 标记已显式开始(防止后续 chunk 重复触发 start)\n this.toolCallChunkStarted.add(event.toolCallId);\n \n // 初始化工具调用\n this.toolCallMap[event.toolCallId] = {\n eventType: 'TOOL_CALL_START',\n toolCallId: event.toolCallId,\n toolCallName: event.toolCallName,\n parentMessageId: event.parentMessageId || '',\n };\n\n // 每个toocallstart都会开始一个新的内容块,使用append(添加新的工具调用,使用不同的渲染组件)\n const toolCallContent = createToolCallContent(this.toolCallMap[event.toolCallId], 'pending', 'append');\n\n if (this.reasoningContext.active) {\n // Reasoning 模式:添加 toolcall 到 reasoning.data\n const { data, index } = addToReasoningData(this.reasoningContext.currentData, toolCallContent);\n this.reasoningContext.currentData = data;\n this.reasoningContext.currentDataIndex = index;\n\n return createReasoningContent(data, 'streaming', 'merge', false);\n }\n // 独立模式:返回独立的工具调用内容块\n // 通过 type (toolcall-${toolCallName}) + strategy 来控制是否合并\n return toolCallContent;\n }\n\n /**\n * 处理工具调用参数事件\n */\n private handleToolCallArgs(event: any): AIMessageContent | null {\n if (!this.toolCallMap[event.toolCallId]) return null;\n\n const currentArgs = this.toolCallMap[event.toolCallId].args || '';\n const newArgs = mergeStringContent(currentArgs, event.delta || '');\n\n // 更新内部ToolCall对象\n this.toolCallMap[event.toolCallId] = updateToolCall(this.toolCallMap[event.toolCallId], {\n eventType: 'TOOL_CALL_ARGS',\n args: newArgs,\n });\n\n return this.updateToolCallInContext(event.toolCallId, 'streaming');\n }\n\n /**\n * 处理简化模式的 TOOL_CALL_CHUNK 事件\n * 自动补全 Start → Args → End 生命周期\n * \n * TOOL_CALL_CHUNK 事件结构:\n * - toolCallId: 工具调用ID(可选,首次时自动生成)\n * - toolCallName: 工具名称(首次必需)\n * - delta: 参数增量内容\n * - parentMessageId: 父消息ID(可选)\n */\n private handleToolCallChunk(event: any): AIMessageContent | null {\n // 生成或使用 toolCallId\n const toolCallId = event.toolCallId || `auto_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;\n \n // 检查是否是该 toolCallId 的第一个 chunk\n const isFirstChunk = !this.toolCallChunkStarted.has(toolCallId) && !this.toolCallMap[toolCallId];\n \n if (isFirstChunk) {\n // 自动触发 TOOL_CALL_START 逻辑\n this.toolCallChunkStarted.add(toolCallId);\n \n // 重置当前文本消息 ID,确保后续文本消息创建新内容块\n this.currentTextMessageId = null;\n \n // 初始化工具调用\n this.toolCallMap[toolCallId] = {\n eventType: 'TOOL_CALL_START',\n toolCallId,\n toolCallName: event.toolCallName || 'unknown',\n parentMessageId: event.parentMessageId || '',\n args: event.delta || '', // 第一个 chunk 的 delta 作为初始 args\n };\n\n // 创建新的工具调用内容块\n const toolCallContent = createToolCallContent(this.toolCallMap[toolCallId], 'streaming', 'append');\n\n if (this.reasoningContext.active) {\n // Reasoning 模式:添加 toolcall 到 reasoning.data\n const { data, index } = addToReasoningData(this.reasoningContext.currentData, toolCallContent);\n this.reasoningContext.currentData = data;\n this.reasoningContext.currentDataIndex = index;\n\n return createReasoningContent(data, 'streaming', 'merge', false);\n }\n \n return toolCallContent;\n }\n\n // 后续 chunk:更新 args\n if (!this.toolCallMap[toolCallId]) return null;\n\n const currentArgs = this.toolCallMap[toolCallId].args || '';\n const newArgs = mergeStringContent(currentArgs, event.delta || '');\n\n // 更新内部ToolCall对象\n this.toolCallMap[toolCallId] = updateToolCall(this.toolCallMap[toolCallId], {\n eventType: 'TOOL_CALL_CHUNK',\n args: newArgs,\n });\n\n return this.updateToolCallInContext(toolCallId, 'streaming');\n }\n\n /**\n * 处理工具调用结果事件\n */\n private handleToolCallResult(event: any): AIMessageContent | null {\n if (!this.toolCallMap[event.toolCallId]) return null;\n\n const currentResult = this.toolCallMap[event.toolCallId].result || '';\n const newResult = mergeStringContent(currentResult, event.content || '');\n\n // 更新内部ToolCall对象\n this.toolCallMap[event.toolCallId] = updateToolCall(this.toolCallMap[event.toolCallId], {\n eventType: AGUIEventType.TOOL_CALL_RESULT,\n result: newResult,\n });\n\n // 处理 suggestion 特殊情况\n const suggestionContent = handleSuggestionToolCall(this.toolCallMap[event.toolCallId]);\n if (suggestionContent) {\n if (this.reasoningContext.active) {\n // Reasoning 模式:替换最后一个 toolcall 为 suggestion\n const currentIndex = this.reasoningContext.currentDataIndex;\n if (currentIndex >= 0 && this.reasoningContext.currentData[currentIndex]) {\n this.reasoningContext.currentData = updateReasoningData(\n this.reasoningContext.currentData,\n currentIndex,\n suggestionContent,\n );\n\n return createReasoningContent(this.reasoningContext.currentData, 'streaming', 'merge', false);\n }\n } else {\n // 独立模式:返回 suggestion\n return suggestionContent;\n }\n }\n\n return this.updateToolCallInContext(event.toolCallId, 'complete');\n }\n\n /**\n * 处理工具调用结束事件\n */\n private handleToolCallEnd(event: any) {\n // 标记工具调用结束\n this.toolCallEnded.add(event.toolCallId);\n \n // 更新 toolCallMap 中的 eventType\n if (this.toolCallMap[event.toolCallId]) {\n this.toolCallMap[event.toolCallId] = {\n ...this.toolCallMap[event.toolCallId],\n eventType: AGUIEventType.TOOL_CALL_END,\n };\n }\n \n return this.updateToolCallInContext(event.toolCallId, 'complete');\n }\n\n /**\n * 在上下文中更新工具调用\n */\n private updateToolCallInContext(toolCallId: string, status: 'streaming' | 'complete'): AIMessageContent | null {\n if (this.reasoningContext.active) {\n // Reasoning 模式:更新 reasoning.data 中的 toolcall\n const currentIndex = this.reasoningContext.currentDataIndex;\n if (currentIndex >= 0 && this.reasoningContext.currentData[currentIndex]) {\n const currentContent = this.reasoningContext.currentData[currentIndex];\n const currentType = currentContent.type;\n\n // 检查 type 是否匹配(toolcall-${toolCallName})\n if (currentType.startsWith('toolcall')) {\n const updatedContent = {\n ...currentContent,\n data: this.toolCallMap[toolCallId],\n status,\n };\n\n this.reasoningContext.currentData = updateReasoningData(\n this.reasoningContext.currentData,\n currentIndex,\n updatedContent,\n );\n\n return createReasoningContent(this.reasoningContext.currentData, 'streaming', 'merge', false);\n }\n }\n return null;\n }\n // 独立模式:返回独立的 toolcall 更新\n // 通过相同的 type (toolcall-${toolCallName}) 来实现 merge\n return createToolCallContent(this.toolCallMap[toolCallId], status, 'merge');\n }\n\n /**\n * 重置 reasoning 上下文\n */\n private resetReasoningContext(): void {\n this.reasoningContext = {\n active: false,\n currentData: [],\n currentDataIndex: 0,\n };\n }\n}\n\nexport default AGUIEventMapper;\n"],"names":["AGUIEventMapper","_classCallCheck","_defineProperty","Set","active","currentData","currentDataIndex","_createClass","key","get","activityManager","value","mapEvent","chunk","event","parseSSEData","data","type","isTextMessageEvent","handleTextMessageEvent","isThinkingEvent","handleThinkingEvent","isToolCallEvent","handleToolCallEvent","isActivityEvent","handleActivityEvent","isStateEvent","handleStateEvent","handleOtherEvent","getToolCalls","Object","values","toolCallMap","clearToolCall","toolCallId","toolCallEnded","toolCallChunkStarted","getToolCall","isToolCallEnded","has","reset","clear","resetReasoningContext","currentTextMessageId","currentTextMessageRole","AGUIEventType","TEXT_MESSAGE_START","messageId","createMarkdownContent","TEXT_MESSAGE_CHUNK","handleTextMessageChunk","TEXT_MESSAGE_CONTENT","delta","TEXT_MESSAGE_END","role","THINKING_START","handleThinkingStart","THINKING_TEXT_MESSAGE_START","handleThinkingTextStart","THINKING_TEXT_MESSAGE_CONTENT","handleThinkingTextContent","THINKING_TEXT_MESSAGE_END","handleThinkingTextEnd","THINKING_END","handleThinkingEnd","TOOL_CALL_START","handleToolCallStart","TOOL_CALL_ARGS","handleToolCallArgs","TOOL_CALL_CHUNK","handleToolCallChunk","TOOL_CALL_RESULT","handleToolCallResult","TOOL_CALL_END","handleToolCallEnd","activityType","activityData","isSnapshot","ACTIVITY_SNAPSHOT","isFirstDelta","ACTIVITY_DELTA","getActivity","createActivityContent","content","deltaInfo","stateManager","MESSAGES_SNAPSHOT","handleMessagesSnapshot","messages","CUSTOM","handleCustomEvent","RUN_ERROR","createTextContent","message","error","reasoningContext","createReasoningContent","newTextContent","_addToReasoningData","addToReasoningData","index","createThinkingContent","title","currentIndex","currentContent","currentText","newText","mergeStringContent","updatedContent","status","updateReasoningData","text","_objectSpread","finalData","_toConsumableArray","add","eventType","toolCallName","parentMessageId","toolCallContent","createToolCallContent","_addToReasoningData2","currentArgs","args","newArgs","updateToolCall","updateToolCallInContext","concat","Date","now","Math","random","toString","substring","isFirstChunk","_addToReasoningData3","currentResult","result","newResult","suggestionContent","handleSuggestionToolCall","currentType","startsWith"],"mappings":"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"}
1
+ {"version":3,"file":"event-mapper.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/agui/event-mapper.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport type { AIMessageContent, SSEChunkData, ToolCall } from '../../type';\nimport {\n AGUIEventType,\n isActivityEvent,\n isStateEvent,\n isTextMessageEvent,\n isThinkingEvent,\n isToolCallEvent,\n} from './types/events';\nimport { stateManager } from './StateManager';\nimport { activityManager } from './ActivityManager';\nimport {\n addToReasoningData,\n createActivityContent,\n createMarkdownContent,\n createReasoningContent,\n createTextContent,\n createThinkingContent,\n createToolCallContent,\n handleCustomEvent,\n handleMessagesSnapshot,\n handleSuggestionToolCall,\n mergeStringContent,\n parseSSEData,\n updateReasoningData,\n updateToolCall,\n} from './utils';\n\n/**\n * AGUIEventMapper\n * 将AG-UI协议事件(SSEChunkData)转换为AIContentChunkUpdate\n * 支持多轮对话、增量文本、工具调用、思考、状态快照、消息快照等基础事件\n * 同时提供状态变更和步骤生命周期事件的分发机制\n * \n * 支持简化模式:\n * - TEXT_MESSAGE_CHUNK:自动补全 Start → Content → End 生命周期\n * - TOOL_CALL_CHUNK:自动补全 Start → Args → End 生命周期\n */\nexport class AGUIEventMapper {\n private toolCallMap: Record<string, ToolCall> = {};\n\n private toolCallEnded: Set<string> = new Set(); // 记录已经TOOL_CALL_END的工具调用\n\n // Reasoning 上下文状态管理\n private reasoningContext: {\n active: boolean;\n currentData: AIMessageContent[];\n currentDataIndex: number;\n } = {\n active: false,\n currentData: [],\n currentDataIndex: 0,\n };\n\n /**\n * 暴露 activityManager,供 AGUIAdapter 访问\n */\n public get activityManager() {\n return activityManager;\n }\n\n // 简化模式状态跟踪\n private currentTextMessageId: string | null = null; // 当前正在处理的文本消息 ID\n\n private currentTextMessageRole: 'assistant' | 'system' | null = null; // 当前正在处理的文本消息角色\n\n private toolCallChunkStarted: Set<string> = new Set(); // 已自动触发 TOOL_CALL_START 的 toolCallId\n\n /**\n * 主入口:将SSE事件转换为AIContentChunkUpdate\n *\n * @param chunk SSE数据块,其中data字段可能是字符串(需要解析)或已解析的对象\n */\n mapEvent(chunk: SSEChunkData): AIMessageContent | AIMessageContent[] | null {\n // 处理data字段,可能是字符串或已解析的对象\n const event = parseSSEData(chunk.data);\n \n if (!event?.type) return null;\n\n // 根据事件类型分发到不同的处理函数\n if (isTextMessageEvent(event.type)) {\n return this.handleTextMessageEvent(event);\n }\n\n if (isThinkingEvent(event.type)) {\n return this.handleThinkingEvent(event);\n }\n\n if (isToolCallEvent(event.type)) {\n return this.handleToolCallEvent(event);\n }\n\n if (isActivityEvent(event.type)) {\n return this.handleActivityEvent(event);\n }\n\n if (isStateEvent(event.type)) {\n return this.handleStateEvent(event);\n }\n\n // 处理其他事件类型\n return this.handleOtherEvent(event);\n }\n\n /**\n * 获取当前所有工具调用\n */\n getToolCalls(): ToolCall[] {\n return Object.values(this.toolCallMap);\n }\n\n /**\n * 清除指定工具调用\n */\n clearToolCall(toolCallId: string): void {\n delete this.toolCallMap[toolCallId];\n this.toolCallEnded.delete(toolCallId);\n this.toolCallChunkStarted.delete(toolCallId);\n }\n\n /**\n * 获取指定工具调用\n */\n getToolCall(toolCallId: string): ToolCall | undefined {\n return this.toolCallMap[toolCallId];\n }\n\n /**\n * 检查工具调用是否已结束\n */\n isToolCallEnded(toolCallId: string): boolean {\n return this.toolCallEnded.has(toolCallId);\n }\n\n reset() {\n this.toolCallMap = {};\n this.toolCallEnded.clear();\n this.resetReasoningContext();\n // 重置简化模式状态\n this.currentTextMessageId = null;\n this.currentTextMessageRole = null;\n this.toolCallChunkStarted.clear();\n // 清理 activityManager 状态\n activityManager.clear();\n }\n\n /**\n * 处理文本消息事件\n * \n * 支持两种模式:\n * 1. 标准模式:TEXT_MESSAGE_START → TEXT_MESSAGE_CONTENT → TEXT_MESSAGE_END\n * 2. 简化模式:仅发送 TEXT_MESSAGE_CHUNK,自动补全生命周期\n */\n private handleTextMessageEvent(event: any): AIMessageContent | null {\n switch (event.type) {\n case AGUIEventType.TEXT_MESSAGE_START:\n this.currentTextMessageId = event.messageId || null; // 标记当前消息 ID\n return createMarkdownContent('', 'streaming', 'append');\n\n case AGUIEventType.TEXT_MESSAGE_CHUNK:\n return this.handleTextMessageChunk(event);\n\n case AGUIEventType.TEXT_MESSAGE_CONTENT:\n return createMarkdownContent(event.delta || '', 'streaming', 'merge');\n\n case AGUIEventType.TEXT_MESSAGE_END:\n this.currentTextMessageId = null; // 重置状态\n return createMarkdownContent(event.delta || '', 'complete', 'merge');\n\n default:\n return null;\n }\n }\n\n /**\n * 处理简化模式的 TEXT_MESSAGE_CHUNK 事件\n * 自动补全 Start → Content → End 生命周期\n * \n * 关键:通过 messageId 区分不同的文本块,\n * 当 messageId 变化时创建新的内容块\n */\n private handleTextMessageChunk(event: any): AIMessageContent | null {\n const messageId = event.messageId || 'default';\n const role = event?.role || 'assistant';\n \n // 如果是新的 messageId,需要创建新的内容块\n if (this.currentTextMessageId !== messageId) {\n this.currentTextMessageId = messageId;\n this.currentTextMessageRole = role;\n // 创建新内容块,使用 append 策略,通过 ext.role 传递角色信息\n return createMarkdownContent(event.delta || '', 'streaming', 'append', role);\n }\n\n // 同一个 messageId,使用 merge 策略追加内容\n return createMarkdownContent(event.delta || '', 'streaming', 'merge', this.currentTextMessageRole || role);\n }\n\n /**\n * 处理思考事件\n */\n private handleThinkingEvent(event: any): AIMessageContent | null {\n switch (event.type) {\n case AGUIEventType.THINKING_START:\n return this.handleThinkingStart();\n case AGUIEventType.THINKING_TEXT_MESSAGE_START:\n return this.handleThinkingTextStart(event);\n case AGUIEventType.THINKING_TEXT_MESSAGE_CONTENT:\n return this.handleThinkingTextContent(event);\n case AGUIEventType.THINKING_TEXT_MESSAGE_END:\n return this.handleThinkingTextEnd(event);\n case AGUIEventType.THINKING_END:\n return this.handleThinkingEnd();\n default:\n return null;\n }\n }\n\n /**\n * 处理工具调用事件\n * \n * 支持两种模式:\n * 1. 标准模式:TOOL_CALL_START → TOOL_CALL_ARGS → TOOL_CALL_END\n * 2. 简化模式:仅发送 TOOL_CALL_CHUNK,自动补全生命周期\n */\n private handleToolCallEvent(event: any): AIMessageContent | null {\n switch (event.type) {\n case AGUIEventType.TOOL_CALL_START:\n return this.handleToolCallStart(event);\n case AGUIEventType.TOOL_CALL_ARGS:\n return this.handleToolCallArgs(event);\n case AGUIEventType.TOOL_CALL_CHUNK:\n return this.handleToolCallChunk(event);\n case AGUIEventType.TOOL_CALL_RESULT:\n return this.handleToolCallResult(event);\n case AGUIEventType.TOOL_CALL_END:\n return this.handleToolCallEnd(event);\n default:\n return null;\n }\n }\n\n /**\n * 处理活动事件\n * 委托给 activityManager 进行状态管理和订阅通知\n * \n * 支持两种模式:\n * 1. 标准模式:先收到 ACTIVITY_SNAPSHOT,后续 ACTIVITY_DELTA 基于 snapshot 增量更新\n * 2. 纯增量模式:没有 ACTIVITY_SNAPSHOT,直接收到 ACTIVITY_DELTA,自动初始化空内容\n * \n * 注意:不同 activityType 的活动是独立管理的,互不影响\n */\n private handleActivityEvent(event: any): AIMessageContent | null {\n const activityType = event.activityType || 'unknown';\n // 委托给 activityManager 处理\n const activityData = activityManager.handleActivityEvent(event);\n if (!activityData) {\n return null;\n }\n\n // 根据事件类型决定 strategy\n const isSnapshot = event.type === AGUIEventType.ACTIVITY_SNAPSHOT;\n const isFirstDelta = event.type === AGUIEventType.ACTIVITY_DELTA && !activityManager.getActivity(activityType);\n\n return createActivityContent(\n activityType,\n activityData.content,\n 'streaming',\n // SNAPSHOT 或首次 DELTA 使用 append 创建新内容块,后续使用 merge\n isSnapshot || isFirstDelta ? 'append' : 'merge',\n activityData.deltaInfo,\n );\n }\n\n /**\n * 处理状态事件\n */\n private handleStateEvent(event: any): null {\n stateManager.handleStateEvent(event);\n return null;\n }\n\n /**\n * 处理其他事件\n */\n private handleOtherEvent(event: any): AIMessageContent | AIMessageContent[] | null {\n switch (event.type) {\n case AGUIEventType.MESSAGES_SNAPSHOT:\n return handleMessagesSnapshot(event.messages);\n case AGUIEventType.CUSTOM:\n return handleCustomEvent(event);\n case AGUIEventType.RUN_ERROR:\n return [createTextContent(event.message || event.error || '系统未知错误', 'error')];\n default:\n return null;\n }\n }\n\n /**\n * 处理思考开始事件\n */\n private handleThinkingStart(): AIMessageContent {\n // 激活 reasoning 上下文\n this.reasoningContext.active = true;\n this.reasoningContext.currentData = [];\n this.reasoningContext.currentDataIndex = 0;\n\n return createReasoningContent([], 'streaming', 'append', false);\n }\n\n /**\n * 处理思考文本开始事件\n */\n private handleThinkingTextStart(event: any): AIMessageContent | null {\n if (this.reasoningContext.active) {\n // Reasoning 模式:添加新的 text 内容到 reasoning.data\n const newTextContent = createTextContent('', 'streaming');\n const { data, index } = addToReasoningData(this.reasoningContext.currentData, newTextContent);\n this.reasoningContext.currentData = data;\n this.reasoningContext.currentDataIndex = index;\n\n return createReasoningContent(data, 'streaming', 'merge', false);\n }\n // 独立模式:创建独立的 thinking 内容\n return createThinkingContent({ title: event.title || '思考中...' }, 'streaming', 'append', false);\n }\n\n /**\n * 处理思考文本内容事件\n */\n private handleThinkingTextContent(event: any): AIMessageContent | null {\n if (this.reasoningContext.active) {\n // Reasoning 模式:更新最后一个 text 内容\n const currentIndex = this.reasoningContext.currentDataIndex;\n if (currentIndex >= 0 && this.reasoningContext.currentData[currentIndex]) {\n const currentContent = this.reasoningContext.currentData[currentIndex];\n if (currentContent.type === 'text') {\n const currentText = currentContent.data || '';\n const newText = mergeStringContent(currentText, event.delta || '');\n const updatedContent = { ...currentContent, data: newText, status: 'streaming' };\n\n this.reasoningContext.currentData = updateReasoningData(\n this.reasoningContext.currentData,\n currentIndex,\n updatedContent,\n );\n\n return createReasoningContent(this.reasoningContext.currentData, 'streaming', 'merge', false);\n }\n }\n return null;\n }\n // 独立模式:更新独立的 thinking 内容\n return createThinkingContent({ text: event.delta }, 'streaming', 'merge', false);\n }\n\n /**\n * 处理思考文本结束事件\n */\n private handleThinkingTextEnd(event: any): AIMessageContent | null {\n if (this.reasoningContext.active) {\n // Reasoning 模式:标记最后一个 text 内容为完成\n const currentIndex = this.reasoningContext.currentDataIndex;\n if (currentIndex >= 0 && this.reasoningContext.currentData[currentIndex]) {\n const currentContent = this.reasoningContext.currentData[currentIndex];\n if (currentContent.type === 'text') {\n const updatedContent = { ...currentContent, status: 'complete' };\n this.reasoningContext.currentData = updateReasoningData(\n this.reasoningContext.currentData,\n currentIndex,\n updatedContent,\n );\n\n return createReasoningContent(this.reasoningContext.currentData, 'streaming', 'merge', false);\n }\n }\n return null;\n }\n // 独立模式:完成独立的 thinking 内容\n return createThinkingContent({ title: event.title || '思考结束' }, 'complete', 'merge', true);\n }\n\n /**\n * 处理思考结束事件\n */\n private handleThinkingEnd(): AIMessageContent | null {\n if (this.reasoningContext.active) {\n // 完成 reasoning 并重置上下文\n const finalData = [...this.reasoningContext.currentData];\n this.resetReasoningContext();\n\n return createReasoningContent(finalData, 'complete', 'merge', true);\n }\n return null;\n }\n\n /**\n * 处理工具调用开始事件\n */\n private handleToolCallStart(event: any): AIMessageContent | null {\n // 标记已显式开始(防止后续 chunk 重复触发 start)\n this.toolCallChunkStarted.add(event.toolCallId);\n \n // 初始化工具调用\n this.toolCallMap[event.toolCallId] = {\n eventType: 'TOOL_CALL_START',\n toolCallId: event.toolCallId,\n toolCallName: event.toolCallName,\n parentMessageId: event.parentMessageId || '',\n };\n\n // 每个toocallstart都会开始一个新的内容块,使用append(添加新的工具调用,使用不同的渲染组件)\n const toolCallContent = createToolCallContent(this.toolCallMap[event.toolCallId], 'pending', 'append');\n\n if (this.reasoningContext.active) {\n // Reasoning 模式:添加 toolcall 到 reasoning.data\n const { data, index } = addToReasoningData(this.reasoningContext.currentData, toolCallContent);\n this.reasoningContext.currentData = data;\n this.reasoningContext.currentDataIndex = index;\n\n return createReasoningContent(data, 'streaming', 'merge', false);\n }\n // 独立模式:返回独立的工具调用内容块\n // 通过 type (toolcall-${toolCallName}) + strategy 来控制是否合并\n return toolCallContent;\n }\n\n /**\n * 处理工具调用参数事件\n */\n private handleToolCallArgs(event: any): AIMessageContent | null {\n if (!this.toolCallMap[event.toolCallId]) return null;\n\n const currentArgs = this.toolCallMap[event.toolCallId].args || '';\n const newArgs = mergeStringContent(currentArgs, event.delta || '');\n\n // 更新内部ToolCall对象\n this.toolCallMap[event.toolCallId] = updateToolCall(this.toolCallMap[event.toolCallId], {\n eventType: 'TOOL_CALL_ARGS',\n args: newArgs,\n });\n\n return this.updateToolCallInContext(event.toolCallId, 'streaming');\n }\n\n /**\n * 处理简化模式的 TOOL_CALL_CHUNK 事件\n * 自动补全 Start → Args → End 生命周期\n * \n * TOOL_CALL_CHUNK 事件结构:\n * - toolCallId: 工具调用ID(可选,首次时自动生成)\n * - toolCallName: 工具名称(首次必需)\n * - delta: 参数增量内容\n * - parentMessageId: 父消息ID(可选)\n */\n private handleToolCallChunk(event: any): AIMessageContent | null {\n // 生成或使用 toolCallId\n const toolCallId = event.toolCallId || `auto_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;\n \n // 检查是否是该 toolCallId 的第一个 chunk\n const isFirstChunk = !this.toolCallChunkStarted.has(toolCallId) && !this.toolCallMap[toolCallId];\n \n if (isFirstChunk) {\n // 自动触发 TOOL_CALL_START 逻辑\n this.toolCallChunkStarted.add(toolCallId);\n \n // 重置当前文本消息 ID,确保后续文本消息创建新内容块\n this.currentTextMessageId = null;\n \n // 初始化工具调用\n this.toolCallMap[toolCallId] = {\n eventType: 'TOOL_CALL_START',\n toolCallId,\n toolCallName: event.toolCallName || 'unknown',\n parentMessageId: event.parentMessageId || '',\n args: event.delta || '', // 第一个 chunk 的 delta 作为初始 args\n };\n\n // 创建新的工具调用内容块\n const toolCallContent = createToolCallContent(this.toolCallMap[toolCallId], 'streaming', 'append');\n\n if (this.reasoningContext.active) {\n // Reasoning 模式:添加 toolcall 到 reasoning.data\n const { data, index } = addToReasoningData(this.reasoningContext.currentData, toolCallContent);\n this.reasoningContext.currentData = data;\n this.reasoningContext.currentDataIndex = index;\n\n return createReasoningContent(data, 'streaming', 'merge', false);\n }\n \n return toolCallContent;\n }\n\n // 后续 chunk:更新 args\n if (!this.toolCallMap[toolCallId]) return null;\n\n const currentArgs = this.toolCallMap[toolCallId].args || '';\n const newArgs = mergeStringContent(currentArgs, event.delta || '');\n\n // 更新内部ToolCall对象\n this.toolCallMap[toolCallId] = updateToolCall(this.toolCallMap[toolCallId], {\n eventType: 'TOOL_CALL_CHUNK',\n args: newArgs,\n });\n\n return this.updateToolCallInContext(toolCallId, 'streaming');\n }\n\n /**\n * 处理工具调用结果事件\n */\n private handleToolCallResult(event: any): AIMessageContent | null {\n if (!this.toolCallMap[event.toolCallId]) return null;\n\n const currentResult = this.toolCallMap[event.toolCallId].result || '';\n const newResult = mergeStringContent(currentResult, event.content || '');\n\n // 更新内部ToolCall对象\n this.toolCallMap[event.toolCallId] = updateToolCall(this.toolCallMap[event.toolCallId], {\n eventType: AGUIEventType.TOOL_CALL_RESULT,\n result: newResult,\n });\n\n // 处理 suggestion 特殊情况\n const suggestionContent = handleSuggestionToolCall(this.toolCallMap[event.toolCallId]);\n if (suggestionContent) {\n if (this.reasoningContext.active) {\n // Reasoning 模式:替换最后一个 toolcall 为 suggestion\n const currentIndex = this.reasoningContext.currentDataIndex;\n if (currentIndex >= 0 && this.reasoningContext.currentData[currentIndex]) {\n this.reasoningContext.currentData = updateReasoningData(\n this.reasoningContext.currentData,\n currentIndex,\n suggestionContent,\n );\n\n return createReasoningContent(this.reasoningContext.currentData, 'streaming', 'merge', false);\n }\n } else {\n // 独立模式:返回 suggestion\n return suggestionContent;\n }\n }\n\n return this.updateToolCallInContext(event.toolCallId, 'complete');\n }\n\n /**\n * 处理工具调用结束事件\n */\n private handleToolCallEnd(event: any) {\n // 标记工具调用结束\n this.toolCallEnded.add(event.toolCallId);\n \n // 更新 toolCallMap 中的 eventType\n if (this.toolCallMap[event.toolCallId]) {\n this.toolCallMap[event.toolCallId] = {\n ...this.toolCallMap[event.toolCallId],\n eventType: AGUIEventType.TOOL_CALL_END,\n };\n }\n \n return this.updateToolCallInContext(event.toolCallId, 'complete');\n }\n\n /**\n * 在上下文中更新工具调用\n */\n private updateToolCallInContext(toolCallId: string, status: 'streaming' | 'complete'): AIMessageContent | null {\n if (this.reasoningContext.active) {\n // Reasoning 模式:更新 reasoning.data 中的 toolcall\n const currentIndex = this.reasoningContext.currentDataIndex;\n if (currentIndex >= 0 && this.reasoningContext.currentData[currentIndex]) {\n const currentContent = this.reasoningContext.currentData[currentIndex];\n const currentType = currentContent.type;\n\n // 检查 type 是否匹配(toolcall-${toolCallName})\n if (currentType.startsWith('toolcall')) {\n const updatedContent = {\n ...currentContent,\n data: this.toolCallMap[toolCallId],\n status,\n };\n\n this.reasoningContext.currentData = updateReasoningData(\n this.reasoningContext.currentData,\n currentIndex,\n updatedContent,\n );\n\n return createReasoningContent(this.reasoningContext.currentData, 'streaming', 'merge', false);\n }\n }\n return null;\n }\n // 独立模式:返回独立的 toolcall 更新\n // 通过相同的 type (toolcall-${toolCallName}) 来实现 merge\n return createToolCallContent(this.toolCallMap[toolCallId], status, 'merge');\n }\n\n /**\n * 重置 reasoning 上下文\n */\n private resetReasoningContext(): void {\n this.reasoningContext = {\n active: false,\n currentData: [],\n currentDataIndex: 0,\n };\n }\n}\n\nexport default AGUIEventMapper;\n"],"names":["AGUIEventMapper","_classCallCheck","_defineProperty","Set","active","currentData","currentDataIndex","_createClass","key","get","activityManager","value","mapEvent","chunk","event","parseSSEData","data","type","isTextMessageEvent","handleTextMessageEvent","isThinkingEvent","handleThinkingEvent","isToolCallEvent","handleToolCallEvent","isActivityEvent","handleActivityEvent","isStateEvent","handleStateEvent","handleOtherEvent","getToolCalls","Object","values","toolCallMap","clearToolCall","toolCallId","toolCallEnded","toolCallChunkStarted","getToolCall","isToolCallEnded","has","reset","clear","resetReasoningContext","currentTextMessageId","currentTextMessageRole","AGUIEventType","TEXT_MESSAGE_START","messageId","createMarkdownContent","TEXT_MESSAGE_CHUNK","handleTextMessageChunk","TEXT_MESSAGE_CONTENT","delta","TEXT_MESSAGE_END","role","THINKING_START","handleThinkingStart","THINKING_TEXT_MESSAGE_START","handleThinkingTextStart","THINKING_TEXT_MESSAGE_CONTENT","handleThinkingTextContent","THINKING_TEXT_MESSAGE_END","handleThinkingTextEnd","THINKING_END","handleThinkingEnd","TOOL_CALL_START","handleToolCallStart","TOOL_CALL_ARGS","handleToolCallArgs","TOOL_CALL_CHUNK","handleToolCallChunk","TOOL_CALL_RESULT","handleToolCallResult","TOOL_CALL_END","handleToolCallEnd","activityType","activityData","isSnapshot","ACTIVITY_SNAPSHOT","isFirstDelta","ACTIVITY_DELTA","getActivity","createActivityContent","content","deltaInfo","stateManager","MESSAGES_SNAPSHOT","handleMessagesSnapshot","messages","CUSTOM","handleCustomEvent","RUN_ERROR","createTextContent","message","error","reasoningContext","createReasoningContent","newTextContent","_addToReasoningData","addToReasoningData","index","createThinkingContent","title","currentIndex","currentContent","currentText","newText","mergeStringContent","updatedContent","status","updateReasoningData","text","_objectSpread","finalData","_toConsumableArray","add","eventType","toolCallName","parentMessageId","toolCallContent","createToolCallContent","_addToReasoningData2","currentArgs","args","newArgs","updateToolCall","updateToolCallInContext","concat","Date","now","Math","random","toString","substring","isFirstChunk","_addToReasoningData3","currentResult","result","newResult","suggestionContent","handleSuggestionToolCall","currentType","startsWith"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { AIMessageContent, ChatMessagesData, ChatRequestParams, SSEChunkData, ToolCall } from '../../type';
2
- import type { RunErrorEvent, RunFinishedEvent, RunStartedEvent } from './events';
2
+ import type { RunErrorEvent, RunFinishedEvent, RunStartedEvent } from './types/events';
3
3
  import type { AGUIHistoryMessage } from './types';
4
4
  export type { AGUIHistoryMessage, AGUIUserHistoryMessage, AGUIAssistantHistoryMessage, AGUIToolHistoryMessage, AGUIActivityMessage, } from './types';
5
5
  /**
@@ -48,10 +48,6 @@ export declare class AGUIAdapter {
48
48
  */
49
49
  static convertHistoryMessages(historyMessages: AGUIHistoryMessage[]): ChatMessagesData[];
50
50
  private aguiEventMapper;
51
- /**
52
- * 暴露 activityManager,供外部直接访问当前 Activity 数据
53
- */
54
- get activityManager(): import("./activity-manager").ActivityManagerImpl;
55
51
  constructor();
56
52
  /**
57
53
  * 处理AGUI事件
@@ -91,5 +87,6 @@ export declare class AGUIAdapter {
91
87
  /**
92
88
  * 状态订阅机制导出
93
89
  */
94
- export * from './state-manager';
95
- export * from './events';
90
+ export * from './StateManager';
91
+ export * from './ActivityManager';
92
+ export * from './types';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * tdesign v1.1.0-alpha.4
2
+ * tdesign v1.1.0-alpha.5
3
3
  * (c) 2026 tdesign
4
4
  * @license MIT
5
5
  */
@@ -8,23 +8,23 @@ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
8
8
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
9
9
  import _createClass from '@babel/runtime/helpers/createClass';
10
10
  import { AGUIEventMapper } from './event-mapper.js';
11
- import { AGUIEventType } from './events.js';
12
- export { AGUIEventType, ActivityDeltaEventSchema, ActivitySnapshotEventSchema, CustomEventSchema, EventSchemas, MessagesSnapshotEventSchema, RawEventSchema, RunErrorEventSchema, RunFinishedEventSchema, RunStartedEventSchema, StateDeltaEventSchema, StateSnapshotEventSchema, StepFinishedEventSchema, StepStartedEventSchema, TextMessageChunkEventSchema, TextMessageContentEventSchema, TextMessageEndEventSchema, TextMessageStartEventSchema, ThinkingEndEventSchema, ThinkingStartEventSchema, ThinkingTextMessageContentEventSchema, ThinkingTextMessageEndEventSchema, ThinkingTextMessageStartEventSchema, ToolCallArgsEventSchema, ToolCallChunkEventSchema, ToolCallEndEventSchema, ToolCallResultEventSchema, ToolCallStartEventSchema, isActivityEvent, isStateEvent, isTextMessageEvent, isThinkingEvent, isToolCallEvent } from './events.js';
11
+ import { AGUIEventType } from './types/index.js';
12
+ export { AGUIError, AGUIEventType, AGUIMessageSchema, ActivityDeltaEventSchema, ActivitySnapshotEventSchema, ContextSchema, CustomEventSchema, EventSchemas, FunctionCallSchema, HistoryMessageSchema, MessagesSnapshotEventSchema, RawEventSchema, RoleSchema, RunAgentInputSchema, RunErrorEventSchema, RunFinishedEventSchema, RunStartedEventSchema, StateDeltaEventSchema, StateSchema, StateSnapshotEventSchema, StepFinishedEventSchema, StepStartedEventSchema, TextMessageChunkEventSchema, TextMessageContentEventSchema, TextMessageEndEventSchema, TextMessageStartEventSchema, ThinkingEndEventSchema, ThinkingStartEventSchema, ThinkingTextMessageContentEventSchema, ThinkingTextMessageEndEventSchema, ThinkingTextMessageStartEventSchema, ToolCallArgsEventSchema, ToolCallChunkEventSchema, ToolCallEndEventSchema, ToolCallResultEventSchema, ToolCallSchema, ToolCallStartEventSchema, ToolSchema, isActivityEvent, isStateEvent, isTextMessageEvent, isThinkingEvent, isToolCallEvent } from './types/index.js';
13
13
  import { buildToolCallMap, processReasoningContent, processToolCalls } from './utils.js';
14
- export { StateManagerImpl, stateManager } from './state-manager.js';
14
+ export { StateManagerImpl, stateManager } from './StateManager.js';
15
+ export { ActivityManagerImpl, activityManager } from './ActivityManager.js';
15
16
  import '@babel/runtime/helpers/defineProperty';
16
- import './activity-manager.js';
17
- import '../../utils/index.js';
18
- import '../../utils/json-patch/index.js';
19
- import '@babel/runtime/helpers/typeof';
20
- import '../../utils/json-patch/helpers.js';
17
+ import 'zod';
21
18
  import '@babel/runtime/helpers/possibleConstructorReturn';
22
19
  import '@babel/runtime/helpers/getPrototypeOf';
23
20
  import '@babel/runtime/helpers/inherits';
24
21
  import '@babel/runtime/helpers/wrapNativeSuper';
25
- import 'zod';
26
- import './types.js';
22
+ import '@babel/runtime/helpers/typeof';
27
23
  import '@babel/runtime/helpers/slicedToArray';
24
+ import '../../utils/index.js';
25
+ import '../../utils/immutable-patch.js';
26
+ import '@babel/runtime/helpers/objectWithoutProperties';
27
+ import '@babel/runtime/helpers/toArray';
28
28
 
29
29
  var AGUIAdapter = /*#__PURE__*/function () {
30
30
  function AGUIAdapter() {
@@ -32,11 +32,6 @@ var AGUIAdapter = /*#__PURE__*/function () {
32
32
  this.aguiEventMapper = new AGUIEventMapper();
33
33
  }
34
34
  return _createClass(AGUIAdapter, [{
35
- key: "activityManager",
36
- get: function get() {
37
- return this.aguiEventMapper.activityManager;
38
- }
39
- }, {
40
35
  key: "handleAGUIEvent",
41
36
  value: function handleAGUIEvent(chunk, callbacks) {
42
37
  var _event;