@tdesign-react/chat 1.0.0-beta.1 → 1.0.0-beta.2
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.
- package/README.md +9 -1
- package/es/chatbot/core/adapters/agui/events.d.ts +92 -92
- package/es/chatbot/core/adapters/agui/types.d.ts +102 -102
- package/es/chatbot/index.d.ts +1 -2
- package/es/chatbot/index.js +1 -1
- package/es/chatbot/index.js.map +1 -1
- package/es/index.js +0 -1
- package/es/index.js.map +1 -1
- package/package.json +2 -2
- package/es/_util/_reactify.d.ts +0 -7
- package/es/_util/_reactify.js +0 -381
- package/es/_util/_reactify.js.map +0 -1
- package/es/_util/reactifyLazy.d.ts +0 -16
- package/es/_util/reactifyLazy.js +0 -74
- package/es/_util/reactifyLazy.js.map +0 -1
- package/es/_util/reactify_v2.d.ts +0 -7
- package/es/_util/reactify_v2.js +0 -391
- package/es/_util/reactify_v2.js.map +0 -1
- package/es/chatbot/components/toolcall/toolcallRenderer.d.ts +0 -12
- package/es/chatbot/components/toolcall/toolcallRenderer.js +0 -132
- package/es/chatbot/components/toolcall/toolcallRenderer.js.map +0 -1
- package/es/chatbot/core/adapters/agui/state/StateManager.d.ts +0 -60
- package/es/chatbot/core/adapters/agui/state/StateManager.js +0 -160
- package/es/chatbot/core/adapters/agui/state/StateManager.js.map +0 -1
- package/es/chatbot/core/adapters/agui/state/types.d.ts +0 -63
- package/es/chatbot/core/adapters/agui/state/types.js +0 -7
- package/es/chatbot/core/adapters/agui/state/types.js.map +0 -1
- package/es/chatbot/core/adapters/agui/state-manager-fixed.d.ts +0 -107
- package/es/chatbot/core/adapters/agui/state-manager-fixed.js +0 -189
- package/es/chatbot/core/adapters/agui/state-manager-fixed.js.map +0 -1
- package/es/chatbot/hooks/useAgentStateAction.d.ts +0 -9
- package/es/chatbot/hooks/useAgentStateAction.js +0 -101
- package/es/chatbot/hooks/useAgentStateAction.js.map +0 -1
- package/es/chatbot/hooks/useAgentToolcallAction.d.ts +0 -6
- package/es/chatbot/hooks/useAgentToolcallAction.js +0 -29
- package/es/chatbot/hooks/useAgentToolcallAction.js.map +0 -1
- package/es/chatbot/useChat.d.ts +0 -10
- package/es/chatbot/useChat.js +0 -55
- package/es/chatbot/useChat.js.map +0 -1
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import type { StateManager } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* 状态管理器
|
|
4
|
-
* 支持两种订阅模式:
|
|
5
|
-
* 1. 最新状态模式:订阅最新状态,适用于状态覆盖场景
|
|
6
|
-
* 2. 绑定状态模式:订阅特定stateKey,适用于状态隔离场景
|
|
7
|
-
*/
|
|
8
|
-
declare class StateManagerImpl implements StateManager {
|
|
9
|
-
private states;
|
|
10
|
-
private currentStateKey;
|
|
11
|
-
private latestSubscribers;
|
|
12
|
-
private boundSubscribers;
|
|
13
|
-
/**
|
|
14
|
-
* 获取当前活跃的状态key
|
|
15
|
-
*/
|
|
16
|
-
getCurrentStateKey(): string | null;
|
|
17
|
-
/**
|
|
18
|
-
* 获取当前状态(基于当前状态key)
|
|
19
|
-
*/
|
|
20
|
-
getCurrentState(): any;
|
|
21
|
-
/**
|
|
22
|
-
* 获取指定状态key的状态
|
|
23
|
-
*/
|
|
24
|
-
getState(stateKey: string): any;
|
|
25
|
-
/**
|
|
26
|
-
* 获取所有状态keys
|
|
27
|
-
*/
|
|
28
|
-
getAllStateKeys(): string[];
|
|
29
|
-
/**
|
|
30
|
-
* 订阅最新状态(覆盖模式)
|
|
31
|
-
* 适用于只有一个组件,每轮都用新状态更新的场景
|
|
32
|
-
*/
|
|
33
|
-
subscribeToLatest(callback: (state: any, stateKey: string) => void): () => void;
|
|
34
|
-
/**
|
|
35
|
-
* 订阅特定状态(隔离模式)
|
|
36
|
-
* 适用于每轮对话创建新组件,各自保持独立状态的场景
|
|
37
|
-
*/
|
|
38
|
-
subscribeToState(stateKey: string, callback: (state: any) => void): () => void;
|
|
39
|
-
/**
|
|
40
|
-
* 兼容旧版本的订阅方法
|
|
41
|
-
* @deprecated 建议使用 subscribeToLatest 或 subscribeToState
|
|
42
|
-
*/
|
|
43
|
-
subscribe(callback: (state: any, stateKey: string) => void): () => void;
|
|
44
|
-
/**
|
|
45
|
-
* 设置状态并通知订阅者
|
|
46
|
-
*/
|
|
47
|
-
private setState;
|
|
48
|
-
/**
|
|
49
|
-
* 处理AG-UI状态事件
|
|
50
|
-
* 自动从事件中提取stateKey,无需外部传递
|
|
51
|
-
*/
|
|
52
|
-
handleStateEvent(event: {
|
|
53
|
-
type: string;
|
|
54
|
-
snapshot?: any;
|
|
55
|
-
delta?: any[];
|
|
56
|
-
}): void;
|
|
57
|
-
clear(): void;
|
|
58
|
-
}
|
|
59
|
-
export declare const stateManager: StateManagerImpl;
|
|
60
|
-
export {};
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* tdesign v1.0.1-beta.25
|
|
3
|
-
* (c) 2025 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: "subscribeToState",
|
|
61
|
-
value: function subscribeToState(stateKey, callback) {
|
|
62
|
-
var _this2 = this;
|
|
63
|
-
if (!this.boundSubscribers.has(stateKey)) {
|
|
64
|
-
this.boundSubscribers.set(stateKey, /* @__PURE__ */new Set());
|
|
65
|
-
}
|
|
66
|
-
this.boundSubscribers.get(stateKey).add(callback);
|
|
67
|
-
if (this.states[stateKey]) {
|
|
68
|
-
try {
|
|
69
|
-
callback(this.states[stateKey]);
|
|
70
|
-
} catch (error) {
|
|
71
|
-
console.error("\u7ED1\u5B9A\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return function () {
|
|
75
|
-
var _this2$boundSubscribe;
|
|
76
|
-
(_this2$boundSubscribe = _this2.boundSubscribers.get(stateKey)) === null || _this2$boundSubscribe === void 0 || _this2$boundSubscribe["delete"](callback);
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
}, {
|
|
80
|
-
key: "subscribe",
|
|
81
|
-
value: function subscribe(callback) {
|
|
82
|
-
return this.subscribeToLatest(callback);
|
|
83
|
-
}
|
|
84
|
-
}, {
|
|
85
|
-
key: "setState",
|
|
86
|
-
value: function setState(stateKey, state) {
|
|
87
|
-
this.states[stateKey] = state;
|
|
88
|
-
this.currentStateKey = stateKey;
|
|
89
|
-
var boundSubs = this.boundSubscribers.get(stateKey);
|
|
90
|
-
if (boundSubs) {
|
|
91
|
-
boundSubs.forEach(function (callback) {
|
|
92
|
-
try {
|
|
93
|
-
callback(state);
|
|
94
|
-
} catch (error) {
|
|
95
|
-
console.error("\u7ED1\u5B9A\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
this.latestSubscribers.forEach(function (callback) {
|
|
100
|
-
try {
|
|
101
|
-
callback(state, stateKey);
|
|
102
|
-
} catch (error) {
|
|
103
|
-
console.error("\u6700\u65B0\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
}, {
|
|
108
|
-
key: "handleStateEvent",
|
|
109
|
-
value: function handleStateEvent(event) {
|
|
110
|
-
var _this3 = this;
|
|
111
|
-
if (event.type === "STATE_SNAPSHOT") {
|
|
112
|
-
if (event.snapshot && _typeof(event.snapshot) === "object") {
|
|
113
|
-
Object.entries(event.snapshot).forEach(function (_ref) {
|
|
114
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
115
|
-
stateKey = _ref2[0],
|
|
116
|
-
stateData = _ref2[1];
|
|
117
|
-
console.log("STATE_SNAPSHOT: \u66F4\u65B0\u72B6\u6001 [".concat(stateKey, "]"), stateData);
|
|
118
|
-
_this3.setState(stateKey, stateData);
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
} else if (event.type === "STATE_DELTA") {
|
|
122
|
-
if (event.delta && Array.isArray(event.delta)) {
|
|
123
|
-
var firstDelta = event.delta[0];
|
|
124
|
-
if (firstDelta && firstDelta.path) {
|
|
125
|
-
var pathParts = firstDelta.path.split("/");
|
|
126
|
-
if (pathParts.length > 1) {
|
|
127
|
-
var stateKey = pathParts[1];
|
|
128
|
-
var currentState = this.getState(stateKey);
|
|
129
|
-
if (currentState) {
|
|
130
|
-
try {
|
|
131
|
-
console.log("STATE_DELTA: \u66F4\u65B0\u72B6\u6001 [".concat(stateKey, "]"), event.delta);
|
|
132
|
-
var originalStructure = _defineProperty({}, stateKey, currentState);
|
|
133
|
-
var updatedStructure = applyJsonPatch(originalStructure, event.delta);
|
|
134
|
-
var updatedState = updatedStructure[stateKey];
|
|
135
|
-
this.setState(stateKey, updatedState);
|
|
136
|
-
} catch (error) {
|
|
137
|
-
console.error("STATE_DELTA\u5904\u7406\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
138
|
-
}
|
|
139
|
-
} else {
|
|
140
|
-
console.warn("STATE_DELTA: \u627E\u4E0D\u5230\u72B6\u6001 [".concat(stateKey, "]\uFF0C\u53EF\u80FD\u9700\u8981\u5148\u63A5\u6536STATE_SNAPSHOT"));
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}, {
|
|
148
|
-
key: "clear",
|
|
149
|
-
value: function clear() {
|
|
150
|
-
this.states = {};
|
|
151
|
-
this.latestSubscribers.clear();
|
|
152
|
-
this.boundSubscribers.clear();
|
|
153
|
-
this.currentStateKey = null;
|
|
154
|
-
}
|
|
155
|
-
}]);
|
|
156
|
-
}();
|
|
157
|
-
var stateManager = new StateManagerImpl();
|
|
158
|
-
|
|
159
|
-
export { stateManager };
|
|
160
|
-
//# sourceMappingURL=StateManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StateManager.js","sources":["../../../../../../../pro-components/chat/chatbot/core/adapters/agui/state/StateManager.ts"],"sourcesContent":["import { applyJsonPatch } from '../../../utils';\nimport type { StateManager } from './types';\n\n/**\n * 状态管理器\n * 支持两种订阅模式:\n * 1. 最新状态模式:订阅最新状态,适用于状态覆盖场景\n * 2. 绑定状态模式:订阅特定stateKey,适用于状态隔离场景\n */\nclass 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 // 立即调用一次当前状态\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 * 订阅特定状态(隔离模式)\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 * 兼容旧版本的订阅方法\n * @deprecated 建议使用 subscribeToLatest 或 subscribeToState\n */\n subscribe(callback: (state: any, stateKey: string) => void): () => void {\n return this.subscribeToLatest(callback);\n }\n\n /**\n * 设置状态并通知订阅者\n */\n private setState(stateKey: string, state: any): void {\n this.states[stateKey] = state;\n this.currentStateKey = stateKey;\n\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 * 处理AG-UI状态事件\n * 自动从事件中提取stateKey,无需外部传递\n */\n handleStateEvent(event: { type: string; snapshot?: any; delta?: any[] }): void {\n if (event.type === 'STATE_SNAPSHOT') {\n // 处理STATE_SNAPSHOT:从snapshot对象的key中提取stateKey\n if (event.snapshot && typeof event.snapshot === 'object') {\n Object.entries(event.snapshot).forEach(([stateKey, stateData]) => {\n console.log(`STATE_SNAPSHOT: 更新状态 [${stateKey}]`, stateData);\n this.setState(stateKey, stateData);\n });\n }\n } else if (event.type === 'STATE_DELTA') {\n // 处理STATE_DELTA:从delta路径中提取stateKey\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 console.log(`STATE_DELTA: 更新状态 [${stateKey}]`, event.delta);\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 // 清理所有状态和订阅\n clear(): void {\n this.states = {};\n this.latestSubscribers.clear();\n this.boundSubscribers.clear();\n this.currentStateKey = null;\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","subscribeToState","_this2","boundSubscribers","has","set","get","_this2$boundSubscribe","subscribe","setState","state","boundSubs","forEach","handleStateEvent","event","_this3","type","snapshot","_typeof","entries","_ref","_ref2","_slicedToArray","stateData","log","delta","Array","isArray","firstDelta","path","pathParts","split","length","currentState","originalStructure","updatedStructure","applyJsonPatch","updatedState","warn","clear","stateManager"],"mappings":"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"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 状态订阅相关类型定义
|
|
3
|
-
*/
|
|
4
|
-
export interface StateActionOptions {
|
|
5
|
-
/**
|
|
6
|
-
* 初始状态
|
|
7
|
-
*/
|
|
8
|
-
initialState?: Record<string, any>;
|
|
9
|
-
}
|
|
10
|
-
export interface UseStateActionReturn {
|
|
11
|
-
/**
|
|
12
|
-
* 当前状态
|
|
13
|
-
*/
|
|
14
|
-
state: Record<string, any>;
|
|
15
|
-
/**
|
|
16
|
-
* 当前状态key
|
|
17
|
-
*/
|
|
18
|
-
stateKey: string | null;
|
|
19
|
-
/**
|
|
20
|
-
* 状态是否正在更新中
|
|
21
|
-
*/
|
|
22
|
-
updating: boolean;
|
|
23
|
-
/**
|
|
24
|
-
* 设置状态Map,用于加载历史对话消息中的state数据
|
|
25
|
-
*/
|
|
26
|
-
setStateMap: (stateMap: Record<string, any> | ((prev: Record<string, any>) => Record<string, any>)) => void;
|
|
27
|
-
}
|
|
28
|
-
export interface StateManager {
|
|
29
|
-
/**
|
|
30
|
-
* 获取当前活跃的状态key
|
|
31
|
-
*/
|
|
32
|
-
getCurrentStateKey: () => string | null;
|
|
33
|
-
/**
|
|
34
|
-
* 获取当前状态(基于当前状态key)
|
|
35
|
-
*/
|
|
36
|
-
getCurrentState: () => any;
|
|
37
|
-
/**
|
|
38
|
-
* 获取指定状态key的状态
|
|
39
|
-
*/
|
|
40
|
-
getState: (stateKey: string) => any;
|
|
41
|
-
/**
|
|
42
|
-
* 获取所有状态keys
|
|
43
|
-
*/
|
|
44
|
-
getAllStateKeys: () => string[];
|
|
45
|
-
/**
|
|
46
|
-
* 订阅状态变化
|
|
47
|
-
* @param callback 状态变化回调函数
|
|
48
|
-
* @param targetStateKey 可选:指定订阅特定的stateKey,不传则订阅当前活跃状态
|
|
49
|
-
*/
|
|
50
|
-
subscribe: (callback: (state: any, stateKey: string) => void, targetStateKey?: string) => () => void;
|
|
51
|
-
/**
|
|
52
|
-
* 处理AG-UI状态事件,自动从事件中提取stateKey
|
|
53
|
-
*/
|
|
54
|
-
handleStateEvent: (event: {
|
|
55
|
-
type: string;
|
|
56
|
-
snapshot?: any;
|
|
57
|
-
delta?: any[];
|
|
58
|
-
}) => void;
|
|
59
|
-
/**
|
|
60
|
-
* 清理所有状态和订阅
|
|
61
|
-
*/
|
|
62
|
-
clear: () => void;
|
|
63
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -1,107 +0,0 @@
|
|
|
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
|
-
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
|
-
* 订阅特定状态(隔离模式)
|
|
71
|
-
* 适用于每轮对话创建新组件,各自保持独立状态的场景
|
|
72
|
-
*/
|
|
73
|
-
subscribeToState(stateKey: string, callback: (state: any) => void): () => void;
|
|
74
|
-
/**
|
|
75
|
-
* 兼容旧版本的订阅方法
|
|
76
|
-
* @deprecated 建议使用 subscribeToLatest 或 subscribeToState
|
|
77
|
-
*/
|
|
78
|
-
subscribe(callback: (state: any, stateKey: string) => void): () => void;
|
|
79
|
-
/**
|
|
80
|
-
* 设置状态并通知订阅者
|
|
81
|
-
*/
|
|
82
|
-
private setState;
|
|
83
|
-
/**
|
|
84
|
-
* 从路径中提取stateKey
|
|
85
|
-
* 支持两种路径格式:
|
|
86
|
-
* 1. 带runId前缀:run_1755073975589_yb4hce1ns/status -> run_1755073975589_yb4hce1ns
|
|
87
|
-
* 2. 不带runId前缀:/status -> 使用当前活跃的stateKey
|
|
88
|
-
*/
|
|
89
|
-
private extractStateKeyFromPath;
|
|
90
|
-
/**
|
|
91
|
-
* 将路径转换为相对于stateKey的路径
|
|
92
|
-
* 例如:run_1755073975589_yb4hce1ns/status -> /status
|
|
93
|
-
*/
|
|
94
|
-
private normalizePathForPatch;
|
|
95
|
-
/**
|
|
96
|
-
* 处理AG-UI状态事件
|
|
97
|
-
* 自动从事件中提取stateKey,无需外部传递
|
|
98
|
-
*/
|
|
99
|
-
handleStateEvent(event: {
|
|
100
|
-
type: string;
|
|
101
|
-
snapshot?: any;
|
|
102
|
-
delta?: any[];
|
|
103
|
-
}): void;
|
|
104
|
-
clear(): void;
|
|
105
|
-
}
|
|
106
|
-
export declare const stateManager: StateManagerImpl;
|
|
107
|
-
export {};
|
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* tdesign v1.0.1-beta.25
|
|
3
|
-
* (c) 2025 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
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
-
var StateManagerImpl = /*#__PURE__*/function () {
|
|
17
|
-
function StateManagerImpl() {
|
|
18
|
-
_classCallCheck(this, StateManagerImpl);
|
|
19
|
-
_defineProperty(this, "states", {});
|
|
20
|
-
_defineProperty(this, "currentStateKey", null);
|
|
21
|
-
_defineProperty(this, "latestSubscribers", /* @__PURE__ */new Set());
|
|
22
|
-
_defineProperty(this, "boundSubscribers", /* @__PURE__ */new Map());
|
|
23
|
-
}
|
|
24
|
-
return _createClass(StateManagerImpl, [{
|
|
25
|
-
key: "getCurrentStateKey",
|
|
26
|
-
value: function getCurrentStateKey() {
|
|
27
|
-
return this.currentStateKey;
|
|
28
|
-
}
|
|
29
|
-
}, {
|
|
30
|
-
key: "getCurrentState",
|
|
31
|
-
value: function getCurrentState() {
|
|
32
|
-
if (!this.currentStateKey) return null;
|
|
33
|
-
return this.states[this.currentStateKey];
|
|
34
|
-
}
|
|
35
|
-
}, {
|
|
36
|
-
key: "getState",
|
|
37
|
-
value: function getState(stateKey) {
|
|
38
|
-
return this.states[stateKey];
|
|
39
|
-
}
|
|
40
|
-
}, {
|
|
41
|
-
key: "getAllStateKeys",
|
|
42
|
-
value: function getAllStateKeys() {
|
|
43
|
-
return Object.keys(this.states);
|
|
44
|
-
}
|
|
45
|
-
}, {
|
|
46
|
-
key: "subscribeToLatest",
|
|
47
|
-
value: function subscribeToLatest(callback) {
|
|
48
|
-
var _this = this;
|
|
49
|
-
this.latestSubscribers.add(callback);
|
|
50
|
-
if (this.currentStateKey && this.states[this.currentStateKey]) {
|
|
51
|
-
try {
|
|
52
|
-
callback(this.states[this.currentStateKey], this.currentStateKey);
|
|
53
|
-
} catch (error) {
|
|
54
|
-
console.error("\u6700\u65B0\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(this.currentStateKey, "]:"), error);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return function () {
|
|
58
|
-
return _this.latestSubscribers["delete"](callback);
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
}, {
|
|
62
|
-
key: "subscribeToState",
|
|
63
|
-
value: function subscribeToState(stateKey, callback) {
|
|
64
|
-
var _this2 = this;
|
|
65
|
-
if (!this.boundSubscribers.has(stateKey)) {
|
|
66
|
-
this.boundSubscribers.set(stateKey, /* @__PURE__ */new Set());
|
|
67
|
-
}
|
|
68
|
-
this.boundSubscribers.get(stateKey).add(callback);
|
|
69
|
-
if (this.states[stateKey]) {
|
|
70
|
-
try {
|
|
71
|
-
callback(this.states[stateKey]);
|
|
72
|
-
} catch (error) {
|
|
73
|
-
console.error("\u7ED1\u5B9A\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return function () {
|
|
77
|
-
var _this2$boundSubscribe;
|
|
78
|
-
(_this2$boundSubscribe = _this2.boundSubscribers.get(stateKey)) === null || _this2$boundSubscribe === void 0 || _this2$boundSubscribe["delete"](callback);
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
}, {
|
|
82
|
-
key: "subscribe",
|
|
83
|
-
value: function subscribe(callback) {
|
|
84
|
-
return this.subscribeToLatest(callback);
|
|
85
|
-
}
|
|
86
|
-
}, {
|
|
87
|
-
key: "setState",
|
|
88
|
-
value: function setState(stateKey, state) {
|
|
89
|
-
this.states[stateKey] = state;
|
|
90
|
-
this.currentStateKey = stateKey;
|
|
91
|
-
var boundSubs = this.boundSubscribers.get(stateKey);
|
|
92
|
-
if (boundSubs) {
|
|
93
|
-
boundSubs.forEach(function (callback) {
|
|
94
|
-
try {
|
|
95
|
-
callback(state);
|
|
96
|
-
} catch (error) {
|
|
97
|
-
console.error("\u7ED1\u5B9A\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
this.latestSubscribers.forEach(function (callback) {
|
|
102
|
-
try {
|
|
103
|
-
callback(state, stateKey);
|
|
104
|
-
} catch (error) {
|
|
105
|
-
console.error("\u6700\u65B0\u72B6\u6001\u8BA2\u9605\u56DE\u8C03\u6267\u884C\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
}, {
|
|
110
|
-
key: "extractStateKeyFromPath",
|
|
111
|
-
value: function extractStateKeyFromPath(path) {
|
|
112
|
-
if (path.startsWith("/")) {
|
|
113
|
-
return this.currentStateKey;
|
|
114
|
-
}
|
|
115
|
-
var slashIndex = path.indexOf("/");
|
|
116
|
-
if (slashIndex > 0) {
|
|
117
|
-
return path.substring(0, slashIndex);
|
|
118
|
-
}
|
|
119
|
-
return path;
|
|
120
|
-
}
|
|
121
|
-
}, {
|
|
122
|
-
key: "normalizePathForPatch",
|
|
123
|
-
value: function normalizePathForPatch(path, stateKey) {
|
|
124
|
-
if (path.startsWith("/")) {
|
|
125
|
-
return path;
|
|
126
|
-
}
|
|
127
|
-
if (path.startsWith("".concat(stateKey, "/"))) {
|
|
128
|
-
return "/".concat(path.substring(stateKey.length + 1));
|
|
129
|
-
}
|
|
130
|
-
return "/".concat(path);
|
|
131
|
-
}
|
|
132
|
-
}, {
|
|
133
|
-
key: "handleStateEvent",
|
|
134
|
-
value: function handleStateEvent(event) {
|
|
135
|
-
var _this3 = this;
|
|
136
|
-
if (event.type === "STATE_SNAPSHOT") {
|
|
137
|
-
if (event.snapshot && _typeof(event.snapshot) === "object") {
|
|
138
|
-
Object.entries(event.snapshot).forEach(function (_ref) {
|
|
139
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
140
|
-
stateKey = _ref2[0],
|
|
141
|
-
stateData = _ref2[1];
|
|
142
|
-
console.log("STATE_SNAPSHOT: \u66F4\u65B0\u72B6\u6001 [".concat(stateKey, "]"), stateData);
|
|
143
|
-
_this3.setState(stateKey, stateData);
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
} else if (event.type === "STATE_DELTA") {
|
|
147
|
-
if (event.delta && Array.isArray(event.delta)) {
|
|
148
|
-
var firstDelta = event.delta[0];
|
|
149
|
-
if (firstDelta && firstDelta.path) {
|
|
150
|
-
var stateKey = this.extractStateKeyFromPath(firstDelta.path);
|
|
151
|
-
if (!stateKey) {
|
|
152
|
-
console.warn("STATE_DELTA: \u65E0\u6CD5\u4ECE\u8DEF\u5F84 [".concat(firstDelta.path, "] \u63D0\u53D6stateKey"));
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
var currentState = this.getState(stateKey);
|
|
156
|
-
if (currentState) {
|
|
157
|
-
try {
|
|
158
|
-
console.log("STATE_DELTA: \u66F4\u65B0\u72B6\u6001 [".concat(stateKey, "]"), event.delta);
|
|
159
|
-
var normalizedDelta = event.delta.map(function (delta) {
|
|
160
|
-
return _objectSpread(_objectSpread({}, delta), {}, {
|
|
161
|
-
path: _this3.normalizePathForPatch(delta.path, stateKey)
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
var updatedState = applyJsonPatch(currentState, normalizedDelta);
|
|
165
|
-
this.setState(stateKey, updatedState);
|
|
166
|
-
} catch (error) {
|
|
167
|
-
console.error("STATE_DELTA\u5904\u7406\u5931\u8D25 [".concat(stateKey, "]:"), error);
|
|
168
|
-
}
|
|
169
|
-
} else {
|
|
170
|
-
console.warn("STATE_DELTA: \u627E\u4E0D\u5230\u72B6\u6001 [".concat(stateKey, "]\uFF0C\u53EF\u80FD\u9700\u8981\u5148\u63A5\u6536STATE_SNAPSHOT"));
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}, {
|
|
177
|
-
key: "clear",
|
|
178
|
-
value: function clear() {
|
|
179
|
-
this.states = {};
|
|
180
|
-
this.latestSubscribers.clear();
|
|
181
|
-
this.boundSubscribers.clear();
|
|
182
|
-
this.currentStateKey = null;
|
|
183
|
-
}
|
|
184
|
-
}]);
|
|
185
|
-
}();
|
|
186
|
-
var stateManager = new StateManagerImpl();
|
|
187
|
-
|
|
188
|
-
export { stateManager };
|
|
189
|
-
//# sourceMappingURL=state-manager-fixed.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state-manager-fixed.js","sources":["../../../../../../pro-components/chat/chatbot/core/adapters/agui/state-manager-fixed.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\nclass 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 // 立即调用一次当前状态\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 * 订阅特定状态(隔离模式)\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 * 兼容旧版本的订阅方法\n * @deprecated 建议使用 subscribeToLatest 或 subscribeToState\n */\n subscribe(callback: (state: any, stateKey: string) => void): () => void {\n return this.subscribeToLatest(callback);\n }\n\n /**\n * 设置状态并通知订阅者\n */\n private setState(stateKey: string, state: any): void {\n this.states[stateKey] = state;\n this.currentStateKey = stateKey;\n\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 * 从路径中提取stateKey\n * 支持两种路径格式:\n * 1. 带runId前缀:run_1755073975589_yb4hce1ns/status -> run_1755073975589_yb4hce1ns\n * 2. 不带runId前缀:/status -> 使用当前活跃的stateKey\n */\n private extractStateKeyFromPath(path: string): string | null {\n if (path.startsWith('/')) {\n // 格式:/status -> 使用当前活跃的stateKey\n return this.currentStateKey;\n }\n // 格式:run_1755073975589_yb4hce1ns/status -> run_1755073975589_yb4hce1ns\n const slashIndex = path.indexOf('/');\n if (slashIndex > 0) {\n return path.substring(0, slashIndex);\n }\n // 如果没有斜杠,整个路径就是stateKey\n return path;\n }\n\n /**\n * 将路径转换为相对于stateKey的路径\n * 例如:run_1755073975589_yb4hce1ns/status -> /status\n */\n private normalizePathForPatch(path: string, stateKey: string): string {\n if (path.startsWith('/')) {\n // 已经是标准格式\n return path;\n }\n if (path.startsWith(`${stateKey}/`)) {\n // 移除stateKey前缀,保留斜杠\n return `/${path.substring(stateKey.length + 1)}`;\n }\n // 其他情况,添加斜杠前缀\n return `/${path}`;\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:从snapshot对象的key中提取stateKey\n if (event.snapshot && typeof event.snapshot === 'object') {\n Object.entries(event.snapshot).forEach(([stateKey, stateData]) => {\n console.log(`STATE_SNAPSHOT: 更新状态 [${stateKey}]`, stateData);\n this.setState(stateKey, stateData);\n });\n }\n } else if (event.type === 'STATE_DELTA') {\n // 处理STATE_DELTA:从delta路径中提取stateKey\n if (event.delta && Array.isArray(event.delta)) {\n // 从第一个delta操作的路径中提取stateKey\n const firstDelta = event.delta[0];\n if (firstDelta && firstDelta.path) {\n const stateKey = this.extractStateKeyFromPath(firstDelta.path);\n\n if (!stateKey) {\n console.warn(`STATE_DELTA: 无法从路径 [${firstDelta.path}] 提取stateKey`);\n return;\n }\n\n const currentState = this.getState(stateKey);\n if (currentState) {\n try {\n console.log(`STATE_DELTA: 更新状态 [${stateKey}]`, event.delta);\n\n // 将所有路径标准化为相对于stateKey的路径\n const normalizedDelta = event.delta.map((delta) => ({\n ...delta,\n path: this.normalizePathForPatch(delta.path, stateKey),\n }));\n\n // 直接对状态应用JSON Patch\n const updatedState = applyJsonPatch(currentState, normalizedDelta);\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 clear(): void {\n this.states = {};\n this.latestSubscribers.clear();\n this.boundSubscribers.clear();\n this.currentStateKey = null;\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","subscribeToState","_this2","boundSubscribers","has","set","get","_this2$boundSubscribe","subscribe","setState","state","boundSubs","forEach","extractStateKeyFromPath","path","startsWith","slashIndex","indexOf","substring","normalizePathForPatch","length","handleStateEvent","event","_this3","type","snapshot","_typeof","entries","_ref","_ref2","_slicedToArray","stateData","log","delta","Array","isArray","firstDelta","warn","currentState","normalizedDelta","map","_objectSpread","updatedState","applyJsonPatch","clear","stateManager"],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { StateActionOptions, UseStateActionReturn } from '../core/adapters/agui';
|
|
2
|
-
/**
|
|
3
|
-
/**
|
|
4
|
-
* 状态订阅Hook
|
|
5
|
-
* 支持两种模式:
|
|
6
|
-
* 1. 不指定stateKey:订阅当前活跃stateKey的状态(会跟随最新状态变化)
|
|
7
|
-
* 2. 指定stateKey:订阅特定stateKey的状态(不会跟随其他stateKey变化)
|
|
8
|
-
*/
|
|
9
|
-
export declare function useAgentState<T = any>(options?: StateActionOptions): UseStateActionReturn<T>;
|