@tdesign-react/chat 1.0.2-alpha.6 → 1.0.2-alpha.8

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 (230) hide show
  1. package/es/_util/reactify.d.ts +2 -1
  2. package/es/_util/reactify.js +231 -81
  3. package/es/_util/reactify.js.map +1 -1
  4. package/es/_util/useDynamicStyle.js +1 -1
  5. package/es/attachments/index.js +6 -4
  6. package/es/attachments/index.js.map +1 -1
  7. package/es/chat-actionbar/index.js +6 -4
  8. package/es/chat-actionbar/index.js.map +1 -1
  9. package/es/chat-attachments/index.js +1 -3
  10. package/es/chat-attachments/index.js.map +1 -1
  11. package/es/chat-engine/components/provider/agent-state.js +2 -6
  12. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  13. package/es/chat-engine/components/toolcall/index.js +2 -7
  14. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  15. package/es/chat-engine/components/toolcall/registry.js +1 -1
  16. package/es/chat-engine/components/toolcall/render.d.ts +1 -1
  17. package/es/chat-engine/components/toolcall/render.js +24 -68
  18. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  19. package/es/chat-engine/components/toolcall/types.js +1 -1
  20. package/es/chat-engine/hooks/useAgentState.js +2 -6
  21. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  22. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  23. package/es/chat-engine/hooks/useChat.d.ts +2 -2
  24. package/es/chat-engine/hooks/useChat.js +3 -37
  25. package/es/chat-engine/hooks/useChat.js.map +1 -1
  26. package/es/chat-engine/index.d.ts +1 -3
  27. package/es/chat-engine/index.js +3 -36
  28. package/es/chat-engine/index.js.map +1 -1
  29. package/es/chat-filecard/index.js +6 -4
  30. package/es/chat-filecard/index.js.map +1 -1
  31. package/es/chat-loading/index.js +6 -4
  32. package/es/chat-loading/index.js.map +1 -1
  33. package/es/chat-markdown/index.js +6 -4
  34. package/es/chat-markdown/index.js.map +1 -1
  35. package/es/chat-message/index.js +6 -4
  36. package/es/chat-message/index.js.map +1 -1
  37. package/es/chat-sender/index.js +6 -4
  38. package/es/chat-sender/index.js.map +1 -1
  39. package/es/chat-thinking/index.js +6 -4
  40. package/es/chat-thinking/index.js.map +1 -1
  41. package/es/chatbot/components/provider/agent-state.d.ts +5 -0
  42. package/es/chatbot/components/provider/agent-state.js +28 -0
  43. package/es/chatbot/components/provider/agent-state.js.map +1 -0
  44. package/es/{chat-engine/components/activity → chatbot/components/toolcall}/index.d.ts +0 -1
  45. package/es/chatbot/components/toolcall/index.js +19 -0
  46. package/es/{chat-engine/components/activity → chatbot/components/toolcall}/index.js.map +1 -1
  47. package/es/chatbot/components/toolcall/registry.d.ts +35 -0
  48. package/es/{chat-engine/components/activity → chatbot/components/toolcall}/registry.js +22 -32
  49. package/es/chatbot/components/toolcall/registry.js.map +1 -0
  50. package/es/chatbot/components/toolcall/render.d.ts +13 -0
  51. package/es/chatbot/components/toolcall/render.js +207 -0
  52. package/es/chatbot/components/toolcall/render.js.map +1 -0
  53. package/es/chatbot/components/toolcall/types.d.ts +57 -0
  54. package/es/chatbot/components/toolcall/types.js +15 -0
  55. package/es/chatbot/components/toolcall/types.js.map +1 -0
  56. package/es/chatbot/hooks/useAgentState.d.ts +40 -0
  57. package/es/chatbot/hooks/useAgentState.js +76 -0
  58. package/es/chatbot/hooks/useAgentState.js.map +1 -0
  59. package/es/chatbot/hooks/useAgentToolcall.d.ts +28 -0
  60. package/es/chatbot/hooks/useAgentToolcall.js +78 -0
  61. package/es/chatbot/hooks/useAgentToolcall.js.map +1 -0
  62. package/es/chatbot/hooks/useChat.d.ts +11 -0
  63. package/es/chatbot/hooks/useChat.js +66 -0
  64. package/es/chatbot/hooks/useChat.js.map +1 -0
  65. package/es/chatbot/index.js +6 -4
  66. package/es/chatbot/index.js.map +1 -1
  67. package/es/index.js +9 -36
  68. package/es/index.js.map +1 -1
  69. package/es/style/index.js +1 -1
  70. package/package.json +2 -2
  71. package/es/chat-actionbar/_example-js/base.d.ts +0 -2
  72. package/es/chat-actionbar/_example-js/custom.d.ts +0 -2
  73. package/es/chat-actionbar/_example-js/style.d.ts +0 -2
  74. package/es/chat-attachments/_example-js/base.d.ts +0 -2
  75. package/es/chat-attachments/_example-js/scroll-x.d.ts +0 -2
  76. package/es/chat-attachments/_example-js/scroll-y.d.ts +0 -2
  77. package/es/chat-engine/_example-js/agui-basic.d.ts +0 -10
  78. package/es/chat-engine/_example-js/agui-comprehensive.d.ts +0 -2
  79. package/es/chat-engine/_example-js/agui-test.d.ts +0 -11
  80. package/es/chat-engine/_example-js/agui-toolcall.d.ts +0 -5
  81. package/es/chat-engine/_example-js/agui-videoclip.d.ts +0 -8
  82. package/es/chat-engine/_example-js/agui.d.ts +0 -1
  83. package/es/chat-engine/_example-js/basic.d.ts +0 -9
  84. package/es/chat-engine/_example-js/components/HotelCard.d.ts +0 -3
  85. package/es/chat-engine/_example-js/components/HumanInputForm.d.ts +0 -6
  86. package/es/chat-engine/_example-js/components/HumanInputResult.d.ts +0 -3
  87. package/es/chat-engine/_example-js/components/ItineraryCard.d.ts +0 -3
  88. package/es/chat-engine/_example-js/components/PlanningStatePanel.d.ts +0 -4
  89. package/es/chat-engine/_example-js/components/Toolcall.d.ts +0 -4
  90. package/es/chat-engine/_example-js/components/WeatherCard.d.ts +0 -3
  91. package/es/chat-engine/_example-js/components/login.d.ts +0 -1
  92. package/es/chat-engine/_example-js/comprehensive.d.ts +0 -12
  93. package/es/chat-engine/_example-js/custom-content.d.ts +0 -1
  94. package/es/chat-engine/_example-js/hookComponent.d.ts +0 -1
  95. package/es/chat-engine/_example-js/initial-messages.d.ts +0 -9
  96. package/es/chat-engine/_example-js/instance-methods.d.ts +0 -13
  97. package/es/chat-engine/_example-js/travel-actions.d.ts +0 -91
  98. package/es/chat-engine/_example-js/travelToolcall.d.ts +0 -1
  99. package/es/chat-engine/components/activity/index.js +0 -18
  100. package/es/chat-engine/components/activity/registry.d.ts +0 -44
  101. package/es/chat-engine/components/activity/registry.js.map +0 -1
  102. package/es/chat-engine/components/activity/render.d.ts +0 -11
  103. package/es/chat-engine/components/activity/render.js +0 -107
  104. package/es/chat-engine/components/activity/render.js.map +0 -1
  105. package/es/chat-engine/components/activity/types.d.ts +0 -32
  106. package/es/chat-engine/components/activity/types.js +0 -7
  107. package/es/chat-engine/components/activity/types.js.map +0 -1
  108. package/es/chat-engine/components/index.d.ts +0 -3
  109. package/es/chat-engine/components/index.js +0 -30
  110. package/es/chat-engine/components/index.js.map +0 -1
  111. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +0 -109
  112. package/es/chat-engine/core/adapters/agui/event-mapper.js +0 -370
  113. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +0 -1
  114. package/es/chat-engine/core/adapters/agui/events.d.ts +0 -1550
  115. package/es/chat-engine/core/adapters/agui/events.js +0 -199
  116. package/es/chat-engine/core/adapters/agui/events.js.map +0 -1
  117. package/es/chat-engine/core/adapters/agui/index.d.ts +0 -75
  118. package/es/chat-engine/core/adapters/agui/index.js +0 -175
  119. package/es/chat-engine/core/adapters/agui/index.js.map +0 -1
  120. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +0 -99
  121. package/es/chat-engine/core/adapters/agui/state-manager.js +0 -168
  122. package/es/chat-engine/core/adapters/agui/state-manager.js.map +0 -1
  123. package/es/chat-engine/core/adapters/agui/types.d.ts +0 -817
  124. package/es/chat-engine/core/adapters/agui/types.js +0 -95
  125. package/es/chat-engine/core/adapters/agui/types.js.map +0 -1
  126. package/es/chat-engine/core/adapters/agui/utils.d.ts +0 -197
  127. package/es/chat-engine/core/adapters/agui/utils.js +0 -311
  128. package/es/chat-engine/core/adapters/agui/utils.js.map +0 -1
  129. package/es/chat-engine/core/index.d.ts +0 -132
  130. package/es/chat-engine/core/index.js +0 -597
  131. package/es/chat-engine/core/index.js.map +0 -1
  132. package/es/chat-engine/core/processor/index.d.ts +0 -20
  133. package/es/chat-engine/core/processor/index.js +0 -146
  134. package/es/chat-engine/core/processor/index.js.map +0 -1
  135. package/es/chat-engine/core/server/batch-client.d.ts +0 -20
  136. package/es/chat-engine/core/server/batch-client.js +0 -114
  137. package/es/chat-engine/core/server/batch-client.js.map +0 -1
  138. package/es/chat-engine/core/server/connection-manager.d.ts +0 -39
  139. package/es/chat-engine/core/server/connection-manager.js +0 -84
  140. package/es/chat-engine/core/server/connection-manager.js.map +0 -1
  141. package/es/chat-engine/core/server/errors.d.ts +0 -22
  142. package/es/chat-engine/core/server/errors.js +0 -80
  143. package/es/chat-engine/core/server/errors.js.map +0 -1
  144. package/es/chat-engine/core/server/index.d.ts +0 -11
  145. package/es/chat-engine/core/server/index.js +0 -26
  146. package/es/chat-engine/core/server/index.js.map +0 -1
  147. package/es/chat-engine/core/server/llm-service.d.ts +0 -44
  148. package/es/chat-engine/core/server/llm-service.js +0 -198
  149. package/es/chat-engine/core/server/llm-service.js.map +0 -1
  150. package/es/chat-engine/core/server/sse-client.d.ts +0 -77
  151. package/es/chat-engine/core/server/sse-client.js +0 -362
  152. package/es/chat-engine/core/server/sse-client.js.map +0 -1
  153. package/es/chat-engine/core/server/sse-parser.d.ts +0 -49
  154. package/es/chat-engine/core/server/sse-parser.js +0 -116
  155. package/es/chat-engine/core/server/sse-parser.js.map +0 -1
  156. package/es/chat-engine/core/server/types.d.ts +0 -54
  157. package/es/chat-engine/core/server/types.js +0 -28
  158. package/es/chat-engine/core/server/types.js.map +0 -1
  159. package/es/chat-engine/core/store/message.d.ts +0 -27
  160. package/es/chat-engine/core/store/message.js +0 -263
  161. package/es/chat-engine/core/store/message.js.map +0 -1
  162. package/es/chat-engine/core/store/model.d.ts +0 -8
  163. package/es/chat-engine/core/store/model.js +0 -65
  164. package/es/chat-engine/core/store/model.js.map +0 -1
  165. package/es/chat-engine/core/store/reactiveState.d.ts +0 -52
  166. package/es/chat-engine/core/store/reactiveState.js +0 -1359
  167. package/es/chat-engine/core/store/reactiveState.js.map +0 -1
  168. package/es/chat-engine/core/type.d.ts +0 -255
  169. package/es/chat-engine/core/type.js +0 -7
  170. package/es/chat-engine/core/type.js.map +0 -1
  171. package/es/chat-engine/core/utils/eventEmitter.d.ts +0 -10
  172. package/es/chat-engine/core/utils/eventEmitter.js +0 -67
  173. package/es/chat-engine/core/utils/eventEmitter.js.map +0 -1
  174. package/es/chat-engine/core/utils/index.d.ts +0 -33
  175. package/es/chat-engine/core/utils/index.js +0 -999
  176. package/es/chat-engine/core/utils/index.js.map +0 -1
  177. package/es/chat-engine/core/utils/logger.d.ts +0 -30
  178. package/es/chat-engine/core/utils/logger.js +0 -87
  179. package/es/chat-engine/core/utils/logger.js.map +0 -1
  180. package/es/chat-engine/hooks/index.d.ts +0 -4
  181. package/es/chat-engine/hooks/index.js +0 -50
  182. package/es/chat-engine/hooks/index.js.map +0 -1
  183. package/es/chat-engine/hooks/useAgentActivity.d.ts +0 -16
  184. package/es/chat-engine/hooks/useAgentActivity.js +0 -73
  185. package/es/chat-engine/hooks/useAgentActivity.js.map +0 -1
  186. package/es/chat-filecard/_example-js/base.d.ts +0 -1
  187. package/es/chat-loading/_example-js/base.d.ts +0 -2
  188. package/es/chat-loading/_example-js/text.d.ts +0 -2
  189. package/es/chat-markdown/_example-js/base.d.ts +0 -1
  190. package/es/chat-markdown/_example-js/custom.d.ts +0 -2
  191. package/es/chat-markdown/_example-js/event.d.ts +0 -1
  192. package/es/chat-markdown/_example-js/footnote.d.ts +0 -2
  193. package/es/chat-markdown/_example-js/plugin.d.ts +0 -2
  194. package/es/chat-markdown/_example-js/theme.d.ts +0 -2
  195. package/es/chat-message/_example-js/action.d.ts +0 -1
  196. package/es/chat-message/_example-js/base.d.ts +0 -1
  197. package/es/chat-message/_example-js/configure.d.ts +0 -1
  198. package/es/chat-message/_example-js/content.d.ts +0 -1
  199. package/es/chat-message/_example-js/custom.d.ts +0 -1
  200. package/es/chat-message/_example-js/handle-actions.d.ts +0 -7
  201. package/es/chat-message/_example-js/status.d.ts +0 -1
  202. package/es/chat-message/_example-js/think.d.ts +0 -1
  203. package/es/chat-sender/_example-js/attachment.d.ts +0 -2
  204. package/es/chat-sender/_example-js/base.d.ts +0 -2
  205. package/es/chat-sender/_example-js/custom.d.ts +0 -2
  206. package/es/chat-thinking/_example-js/base.d.ts +0 -1
  207. package/es/chat-thinking/_example-js/style.d.ts +0 -1
  208. package/es/chatbot/_example-js/agent.d.ts +0 -1
  209. package/es/chatbot/_example-js/agui.d.ts +0 -13
  210. package/es/chatbot/_example-js/backup/travel.d.ts +0 -1
  211. package/es/chatbot/_example-js/basic.d.ts +0 -1
  212. package/es/chatbot/_example-js/code.d.ts +0 -1
  213. package/es/chatbot/_example-js/components/ItineraryCard.d.ts +0 -3
  214. package/es/chatbot/_example-js/components/login.d.ts +0 -1
  215. package/es/chatbot/_example-js/comprehensive.d.ts +0 -1
  216. package/es/chatbot/_example-js/custom-content.d.ts +0 -1
  217. package/es/chatbot/_example-js/custom-merge.d.ts +0 -1
  218. package/es/chatbot/_example-js/custom.d.ts +0 -1
  219. package/es/chatbot/_example-js/docs.d.ts +0 -1
  220. package/es/chatbot/_example-js/image.d.ts +0 -1
  221. package/es/chatbot/_example-js/initial-messages.d.ts +0 -9
  222. package/es/chatbot/_example-js/instance-methods.d.ts +0 -14
  223. package/es/chatbot/_example-js/nostream.d.ts +0 -1
  224. package/es/chatbot/_example-js/quick-start.d.ts +0 -9
  225. package/es/chatbot/_example-js/research.d.ts +0 -1
  226. package/es/chatbot/_example-js/role-message-config.d.ts +0 -22
  227. package/es/chatbot/_example-js/sender-config.d.ts +0 -20
  228. package/es/chatbot/_example-js/service-config.d.ts +0 -17
  229. package/es/chatbot/_example-js/simple.d.ts +0 -1
  230. package/es/chatbot/_example-js/utils/messageRenderer.d.ts +0 -5
@@ -1,168 +0,0 @@
1
- /**
2
- * tdesign v1.0.2-alpha.6
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
-
14
- var StateManagerImpl = /*#__PURE__*/function () {
15
- function StateManagerImpl() {
16
- _classCallCheck(this, StateManagerImpl);
17
- _defineProperty(this, "states", {});
18
- _defineProperty(this, "currentStateKey", null);
19
- _defineProperty(this, "latestSubscribers", /* @__PURE__ */new Set());
20
- _defineProperty(this, "boundSubscribers", /* @__PURE__ */new Map());
21
- }
22
- return _createClass(StateManagerImpl, [{
23
- key: "getCurrentStateKey",
24
- value: function getCurrentStateKey() {
25
- return this.currentStateKey;
26
- }
27
- }, {
28
- key: "getCurrentState",
29
- value: function getCurrentState() {
30
- if (!this.currentStateKey) return null;
31
- return this.states[this.currentStateKey];
32
- }
33
- }, {
34
- key: "getState",
35
- value: function getState(stateKey) {
36
- return this.states[stateKey];
37
- }
38
- }, {
39
- key: "getAllStateKeys",
40
- value: function getAllStateKeys() {
41
- return Object.keys(this.states);
42
- }
43
- }, {
44
- key: "subscribeToLatest",
45
- value: function subscribeToLatest(callback) {
46
- var _this = this;
47
- this.latestSubscribers.add(callback);
48
- if (this.currentStateKey && this.states[this.currentStateKey]) {
49
- try {
50
- callback(this.states[this.currentStateKey], this.currentStateKey);
51
- } catch (error) {
52
- console.error("\u6700\u65B0\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(this.currentStateKey, "]:"), error);
53
- }
54
- }
55
- return function () {
56
- return _this.latestSubscribers["delete"](callback);
57
- };
58
- }
59
- }, {
60
- key: "subscribe",
61
- value: function subscribe(callback, targetStateKey) {
62
- if (targetStateKey) {
63
- return this.subscribeToState(targetStateKey, function (state) {
64
- return callback(state, targetStateKey);
65
- });
66
- }
67
- return this.subscribeToLatest(callback);
68
- }
69
- }, {
70
- key: "subscribeToState",
71
- value: function subscribeToState(stateKey, callback) {
72
- var _this2 = this;
73
- if (!this.boundSubscribers.has(stateKey)) {
74
- this.boundSubscribers.set(stateKey, /* @__PURE__ */new Set());
75
- }
76
- this.boundSubscribers.get(stateKey).add(callback);
77
- if (this.states[stateKey]) {
78
- try {
79
- callback(this.states[stateKey]);
80
- } catch (error) {
81
- console.error("\u7ED1\u5B9A\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
82
- }
83
- }
84
- return function () {
85
- var _this2$boundSubscribe;
86
- (_this2$boundSubscribe = _this2.boundSubscribers.get(stateKey)) === null || _this2$boundSubscribe === void 0 || _this2$boundSubscribe["delete"](callback);
87
- };
88
- }
89
- }, {
90
- key: "handleStateEvent",
91
- value: function handleStateEvent(event) {
92
- var _this3 = this;
93
- if (event.type === "STATE_SNAPSHOT") {
94
- if (event.snapshot && _typeof(event.snapshot) === "object") {
95
- Object.entries(event.snapshot).forEach(function (_ref) {
96
- var _ref2 = _slicedToArray(_ref, 2),
97
- stateKey = _ref2[0],
98
- stateData = _ref2[1];
99
- _this3.setState(stateKey, stateData);
100
- });
101
- }
102
- } else if (event.type === "STATE_DELTA") {
103
- if (event.delta && Array.isArray(event.delta)) {
104
- var firstDelta = event.delta[0];
105
- if (firstDelta && firstDelta.path) {
106
- var pathParts = firstDelta.path.split("/");
107
- if (pathParts.length > 1) {
108
- var stateKey = pathParts[1];
109
- var currentState = this.getState(stateKey);
110
- if (currentState) {
111
- try {
112
- var originalStructure = _defineProperty({}, stateKey, currentState);
113
- var updatedStructure = applyJsonPatch(originalStructure, event.delta);
114
- var updatedState = updatedStructure[stateKey];
115
- this.setState(stateKey, updatedState);
116
- } catch (error) {
117
- console.error("STATE_DELTA\u5904\u7406\u5931\u8D25 [".concat(stateKey, "]:"), error);
118
- }
119
- } else {
120
- console.warn("STATE_DELTA: \u627E\u4E0D\u5230\u72B6\u6001 [".concat(stateKey, "]\uFF0C\u53EF\u80FD\u9700\u8981\u5148\u63A5\u6536STATE_SNAPSHOT"));
121
- }
122
- }
123
- }
124
- }
125
- }
126
- }
127
- }, {
128
- key: "clear",
129
- value: function clear() {
130
- this.states = {};
131
- this.latestSubscribers.clear();
132
- this.boundSubscribers.clear();
133
- this.currentStateKey = null;
134
- }
135
- }, {
136
- key: "setState",
137
- value: function setState(stateKey, state) {
138
- this.states[stateKey] = state;
139
- this.currentStateKey = stateKey;
140
- this.notifySubscribers(stateKey, state);
141
- }
142
- }, {
143
- key: "notifySubscribers",
144
- value: function notifySubscribers(stateKey, state) {
145
- var boundSubs = this.boundSubscribers.get(stateKey);
146
- if (boundSubs) {
147
- boundSubs.forEach(function (callback) {
148
- try {
149
- callback(state);
150
- } catch (error) {
151
- console.error("\u7ED1\u5B9A\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
152
- }
153
- });
154
- }
155
- this.latestSubscribers.forEach(function (callback) {
156
- try {
157
- callback(state, stateKey);
158
- } catch (error) {
159
- console.error("\u6700\u65B0\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
160
- }
161
- });
162
- }
163
- }]);
164
- }();
165
- var stateManager = new StateManagerImpl();
166
-
167
- export { StateManagerImpl, stateManager };
168
- //# sourceMappingURL=state-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-manager.js","sources":["../../../../../../pro-components/chat/chat-engine/core/adapters/agui/state-manager.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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"}