knight-agent 1.1.3 → 1.1.5
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/Host.d.ts +7 -1
- package/Host.d.ts.map +1 -1
- package/Host.js +3 -3
- package/Host.js.map +1 -1
- package/base/AbstractAgent.d.ts +42 -1
- package/base/AbstractAgent.d.ts.map +1 -1
- package/base/AbstractAgent.js +73 -94
- package/base/AbstractAgent.js.map +1 -1
- package/base/AbstractLLM.d.ts +7 -6
- package/base/AbstractLLM.d.ts.map +1 -1
- package/base/AbstractLLM.js +14 -14
- package/base/AbstractLLM.js.map +1 -1
- package/module/AgentModule/Agent.d.ts +17 -1
- package/module/AgentModule/Agent.d.ts.map +1 -1
- package/module/AgentModule/Agent.js +37 -22
- package/module/AgentModule/Agent.js.map +1 -1
- package/module/AgentModule/AgentModule.d.ts +34 -1
- package/module/AgentModule/AgentModule.d.ts.map +1 -1
- package/module/AgentModule/AgentModule.js +72 -78
- package/module/AgentModule/AgentModule.js.map +1 -1
- package/module/AgentModule/index.d.ts +2 -1
- package/module/AgentModule/index.d.ts.map +1 -1
- package/module/AgentModule/index.js +16 -2
- package/module/AgentModule/index.js.map +1 -1
- package/module/LLMModule/ClaudeLLM.d.ts +7 -1
- package/module/LLMModule/ClaudeLLM.d.ts.map +1 -1
- package/module/LLMModule/ClaudeLLM.js +104 -19
- package/module/LLMModule/ClaudeLLM.js.map +1 -1
- package/module/LLMModule/DeepSeekLLM.d.ts +7 -2
- package/module/LLMModule/DeepSeekLLM.d.ts.map +1 -1
- package/module/LLMModule/DeepSeekLLM.js +100 -22
- package/module/LLMModule/DeepSeekLLM.js.map +1 -1
- package/module/LLMModule/GeminiLLM.d.ts +9 -1
- package/module/LLMModule/GeminiLLM.d.ts.map +1 -1
- package/module/LLMModule/GeminiLLM.js +95 -28
- package/module/LLMModule/GeminiLLM.js.map +1 -1
- package/module/LLMModule/OpenAILLM.d.ts +7 -1
- package/module/LLMModule/OpenAILLM.d.ts.map +1 -1
- package/module/LLMModule/OpenAILLM.js +100 -22
- package/module/LLMModule/OpenAILLM.js.map +1 -1
- package/module/LLMModule/QWenLLM.d.ts +7 -1
- package/module/LLMModule/QWenLLM.d.ts.map +1 -1
- package/module/LLMModule/QWenLLM.js +96 -22
- package/module/LLMModule/QWenLLM.js.map +1 -1
- package/module/SkillModule/SkillModule.d.ts +80 -0
- package/module/SkillModule/SkillModule.d.ts.map +1 -0
- package/module/SkillModule/SkillModule.js +167 -0
- package/module/SkillModule/SkillModule.js.map +1 -0
- package/module/SkillModule/index.d.ts +2 -0
- package/module/SkillModule/index.d.ts.map +1 -0
- package/module/SkillModule/index.js +18 -0
- package/module/SkillModule/index.js.map +1 -0
- package/module/ToolModule/ToolModule.d.ts +49 -0
- package/module/ToolModule/ToolModule.d.ts.map +1 -0
- package/module/ToolModule/ToolModule.js +117 -0
- package/module/ToolModule/ToolModule.js.map +1 -0
- package/module/ToolModule/index.d.ts +2 -0
- package/module/ToolModule/index.d.ts.map +1 -0
- package/module/ToolModule/index.js +18 -0
- package/module/ToolModule/index.js.map +1 -0
- package/module/index.d.ts +2 -0
- package/module/index.d.ts.map +1 -1
- package/module/index.js +2 -0
- package/module/index.js.map +1 -1
- package/package.json +1 -1
- package/utility/LLMUtility.d.ts +54 -11
- package/utility/LLMUtility.d.ts.map +1 -1
- package/utility/LLMUtility.js.map +1 -1
- package/utility/NetworkUtility.d.ts +7 -0
- package/utility/NetworkUtility.d.ts.map +1 -1
- package/utility/NetworkUtility.js +65 -0
- package/utility/NetworkUtility.js.map +1 -1
package/Host.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LLMModule } from "./module";
|
|
1
|
+
import { LLMModule, ToolModule, SkillModule, AgentModule } from "./module";
|
|
2
2
|
/** 实例类 */
|
|
3
3
|
export declare class Host {
|
|
4
4
|
/** 单例模式 */
|
|
@@ -6,6 +6,12 @@ export declare class Host {
|
|
|
6
6
|
static get Instance(): Host;
|
|
7
7
|
/** 大模型管理模块 */
|
|
8
8
|
readonly llmModule: LLMModule;
|
|
9
|
+
/** 工具管理模块 */
|
|
10
|
+
readonly toolModule: ToolModule;
|
|
11
|
+
/** 技能管理模块 */
|
|
12
|
+
readonly skillModule: SkillModule;
|
|
13
|
+
/** 智能体管理模块 */
|
|
14
|
+
readonly agentModule: AgentModule;
|
|
9
15
|
/** 构造函数 */
|
|
10
16
|
private constructor();
|
|
11
17
|
}
|
package/Host.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Host.d.ts","sourceRoot":"","sources":["../src/Host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Host.d.ts","sourceRoot":"","sources":["../src/Host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE3E,UAAU;AACV,qBAAa,IAAI;IAEb,WAAW;IACX,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAO;IAC9B,WAAkB,QAAQ,SAAuF;IAEjH,cAAc;IACd,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,aAAa;IACb,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,aAAa;IACb,SAAgB,WAAW,EAAE,WAAW,CAAC;IACzC,cAAc;IACd,SAAgB,WAAW,EAAE,WAAW,CAAC;IAGzC,WAAW;IACX,OAAO;CAOV;AACD,SAAS;;AACT,wBAA6B"}
|
package/Host.js
CHANGED
|
@@ -8,12 +8,12 @@ class Host {
|
|
|
8
8
|
Host.instance = new Host();
|
|
9
9
|
} return Host.instance; }
|
|
10
10
|
;
|
|
11
|
-
// /** 智能体管理模块 */
|
|
12
|
-
// public readonly agentModule: AgentModule;
|
|
13
11
|
/** 构造函数 */
|
|
14
12
|
constructor() {
|
|
15
13
|
this.llmModule = new module_1.LLMModule();
|
|
16
|
-
|
|
14
|
+
this.toolModule = new module_1.ToolModule();
|
|
15
|
+
this.skillModule = new module_1.SkillModule();
|
|
16
|
+
this.agentModule = new module_1.AgentModule();
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
exports.Host = Host;
|
package/Host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Host.js","sourceRoot":"","sources":["../src/Host.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Host.js","sourceRoot":"","sources":["../src/Host.ts"],"names":[],"mappings":";;;AAAA,qCAA2E;AAE3E,UAAU;AACV,MAAa,IAAI;IAIN,MAAM,KAAK,QAAQ,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAAA,CAAC;IAYlH,WAAW;IACX;QAEI,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAS,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAU,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;IACzC,CAAC;CACJ;AAxBD,oBAwBC;AACD,SAAS;AACT,kBAAe,IAAI,CAAC,QAAQ,CAAC"}
|
package/base/AbstractAgent.d.ts
CHANGED
|
@@ -1,2 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
import { AbstractObject } from "./AbstractObject";
|
|
2
|
+
import { AbstractLLM } from "./AbstractLLM";
|
|
3
|
+
import { AgentUtility, LLMUtility } from "../utility";
|
|
4
|
+
/** 抽象智能体基类 — 对话管理 + LLM 编排 */
|
|
5
|
+
export declare abstract class AbstractAgent extends AbstractObject {
|
|
6
|
+
/** 大模型实例 */
|
|
7
|
+
readonly llm: AbstractLLM;
|
|
8
|
+
/** 创建时间戳 */
|
|
9
|
+
readonly createdAt: number;
|
|
10
|
+
/** 对话记录 */
|
|
11
|
+
readonly turns: AgentUtility.SessionData[];
|
|
12
|
+
/** 是否活跃 */
|
|
13
|
+
private _active;
|
|
14
|
+
/** 构造函数 */
|
|
15
|
+
constructor(config: LLMUtility.Config, llm?: AbstractLLM);
|
|
16
|
+
/** 是否活跃 */
|
|
17
|
+
get active(): boolean;
|
|
18
|
+
/** 对话轮数 */
|
|
19
|
+
get turnCount(): number;
|
|
20
|
+
/** 累计用量 */
|
|
21
|
+
get totalUsage(): AgentUtility.Usage;
|
|
22
|
+
/** 清空对话记录 */
|
|
23
|
+
clear(): this;
|
|
24
|
+
/** 关闭会话 */
|
|
25
|
+
close(): this;
|
|
26
|
+
/**
|
|
27
|
+
* 发送消息 — 派生类实现 意图匹配→工具装配→LLM调用→记录 的完整编排
|
|
28
|
+
* @param prompt 用户输入
|
|
29
|
+
* @param onChunk 流式输出回调
|
|
30
|
+
*/
|
|
31
|
+
abstract send(prompt: string, onChunk?: LLMUtility.StreamCallback): Promise<LLMUtility.Response>;
|
|
32
|
+
/**
|
|
33
|
+
* 记录一轮对话
|
|
34
|
+
* @param input 用户输入
|
|
35
|
+
* @param output 智能体输出
|
|
36
|
+
* @param usage 本轮 token 用量
|
|
37
|
+
*/
|
|
38
|
+
record(input: string, output: string, usage: AgentUtility.Usage): this;
|
|
39
|
+
/** 导出快照 — 包含对话记录与大模型快照 */
|
|
40
|
+
exportSnapshot(): AgentUtility.AgentSnapshot;
|
|
41
|
+
OnDestroy(): boolean;
|
|
42
|
+
}
|
|
2
43
|
//# sourceMappingURL=AbstractAgent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAgent.d.ts","sourceRoot":"","sources":["../../src/base/AbstractAgent.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"AbstractAgent.d.ts","sourceRoot":"","sources":["../../src/base/AbstractAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD,8BAA8B;AAC9B,8BAAsB,aAAc,SAAQ,cAAc;IAEtD,YAAY;IACZ,SAAgB,GAAG,EAAE,WAAW,CAAC;IACjC,YAAY;IACZ,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,WAAW;IACX,SAAgB,KAAK,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC;IAClD,WAAW;IACX,OAAO,CAAC,OAAO,CAAU;IAEzB,WAAW;gBACQ,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW;IAW/D,WAAW;IACX,IAAW,MAAM,IAAI,OAAO,CAAyB;IAErD,WAAW;IACX,IAAW,SAAS,IAAI,MAAM,CAA8B;IAE5D,WAAW;IACX,IAAW,UAAU,IAAI,YAAY,CAAC,KAAK,CAU1C;IAMD,aAAa;IACN,KAAK,IAAI,IAAI;IAMpB,WAAW;IACJ,KAAK,IAAI,IAAI;IAMpB;;;;OAIG;aACa,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;IAEvG;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,GAAG,IAAI;IAW7E,0BAA0B;IACnB,cAAc,IAAI,YAAY,CAAC,aAAa;IAe5C,SAAS,IAAI,OAAO;CAQ9B"}
|
package/base/AbstractAgent.js
CHANGED
|
@@ -1,97 +1,76 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// import { AbstractObject } from "./AbstractObject";
|
|
3
|
-
// import { AbstractLLM } from "./AbstractLLM";
|
|
4
|
-
// import { AgentUtility, LLMUtility } from "../utility";
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
// return {
|
|
80
|
-
// id: this.id,
|
|
81
|
-
// llmSnapshot: this.llm.exportSnapshot(),
|
|
82
|
-
// turns: this.turns.slice(),
|
|
83
|
-
// createdAt: this.createdAt,
|
|
84
|
-
// exportAt: Date.now(),
|
|
85
|
-
// };
|
|
86
|
-
// }
|
|
87
|
-
// // #endregion
|
|
88
|
-
// // #region 生命周期
|
|
89
|
-
// public OnDestroy(): boolean
|
|
90
|
-
// {
|
|
91
|
-
// this._active = false;
|
|
92
|
-
// this.host.llmModule.remove(this.llm?.id);
|
|
93
|
-
// return super.OnDestroy();
|
|
94
|
-
// }
|
|
95
|
-
// // #endregion
|
|
96
|
-
// }
|
|
3
|
+
exports.AbstractAgent = void 0;
|
|
4
|
+
const AbstractObject_1 = require("./AbstractObject");
|
|
5
|
+
/** 抽象智能体基类 — 对话管理 + LLM 编排 */
|
|
6
|
+
class AbstractAgent extends AbstractObject_1.AbstractObject {
|
|
7
|
+
/** 构造函数 */
|
|
8
|
+
constructor(config, llm) {
|
|
9
|
+
super();
|
|
10
|
+
this.llm = llm ?? this.host.llmModule.add(config);
|
|
11
|
+
this.createdAt = Date.now();
|
|
12
|
+
this.turns = [];
|
|
13
|
+
this._active = true;
|
|
14
|
+
}
|
|
15
|
+
// #region 查询
|
|
16
|
+
/** 是否活跃 */
|
|
17
|
+
get active() { return this._active; }
|
|
18
|
+
/** 对话轮数 */
|
|
19
|
+
get turnCount() { return this.turns.length; }
|
|
20
|
+
/** 累计用量 */
|
|
21
|
+
get totalUsage() {
|
|
22
|
+
const usage = { input: 0, output: 0, total: 0 };
|
|
23
|
+
for (const turn of this.turns) {
|
|
24
|
+
usage.input += turn.usage.input ?? 0;
|
|
25
|
+
usage.output += turn.usage.output ?? 0;
|
|
26
|
+
usage.total += turn.usage.total ?? 0;
|
|
27
|
+
}
|
|
28
|
+
return usage;
|
|
29
|
+
}
|
|
30
|
+
// #endregion
|
|
31
|
+
// #region 会话操作
|
|
32
|
+
/** 清空对话记录 */
|
|
33
|
+
clear() {
|
|
34
|
+
this.turns.length = 0;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
/** 关闭会话 */
|
|
38
|
+
close() {
|
|
39
|
+
this._active = false;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 记录一轮对话
|
|
44
|
+
* @param input 用户输入
|
|
45
|
+
* @param output 智能体输出
|
|
46
|
+
* @param usage 本轮 token 用量
|
|
47
|
+
*/
|
|
48
|
+
record(input, output, usage) {
|
|
49
|
+
if (!this._active) {
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
this.turns.push({ input, output, usage, timestamp: Date.now() });
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
// #endregion
|
|
56
|
+
// #region 快照
|
|
57
|
+
/** 导出快照 — 包含对话记录与大模型快照 */
|
|
58
|
+
exportSnapshot() {
|
|
59
|
+
return {
|
|
60
|
+
id: this.id,
|
|
61
|
+
llmSnapshot: this.llm.exportSnapshot(),
|
|
62
|
+
turns: this.turns.slice(),
|
|
63
|
+
createdAt: this.createdAt,
|
|
64
|
+
exportAt: Date.now(),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// #endregion
|
|
68
|
+
// #region 生命周期
|
|
69
|
+
OnDestroy() {
|
|
70
|
+
this._active = false;
|
|
71
|
+
this.host.llmModule.remove(this.llm?.id);
|
|
72
|
+
return super.OnDestroy();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.AbstractAgent = AbstractAgent;
|
|
97
76
|
//# sourceMappingURL=AbstractAgent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAgent.js","sourceRoot":"","sources":["../../src/base/AbstractAgent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractAgent.js","sourceRoot":"","sources":["../../src/base/AbstractAgent.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAIlD,8BAA8B;AAC9B,MAAsB,aAAc,SAAQ,+BAAc;IAWtD,WAAW;IACX,YAAmB,MAAyB,EAAE,GAAiB;QAE3D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,aAAa;IAEb,WAAW;IACX,IAAW,MAAM,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAErD,WAAW;IACX,IAAW,SAAS,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5D,WAAW;IACX,IAAW,UAAU;QAEjB,MAAM,KAAK,GAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACpE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAC7B,CAAC;YACG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACrC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;YACvC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,aAAa;IAEb,eAAe;IAEf,aAAa;IACN,KAAK;QAER,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;IACJ,KAAK;QAER,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IASD;;;;;OAKG;IACI,MAAM,CAAC,KAAa,EAAE,MAAc,EAAE,KAAyB;QAElE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa;IAEb,aAAa;IAEb,0BAA0B;IACnB,cAAc;QAEjB,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE;YACtC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC;IACN,CAAC;IAED,aAAa;IAEb,eAAe;IAER,SAAS;QAEZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;CAGJ;AA5GD,sCA4GC"}
|
package/base/AbstractLLM.d.ts
CHANGED
|
@@ -6,16 +6,17 @@ export declare abstract class AbstractLLM<T extends LLMUtility.Config = LLMUtili
|
|
|
6
6
|
readonly config: T;
|
|
7
7
|
/** 消息缓存 */
|
|
8
8
|
readonly messages: LLMUtility.Message<K>;
|
|
9
|
-
/** 系统提示词 */
|
|
10
|
-
protected systemPrompt: string;
|
|
11
9
|
/** 构造函数 */
|
|
12
10
|
constructor(config: T);
|
|
13
11
|
/**
|
|
14
12
|
* 发送消息
|
|
15
|
-
* @param
|
|
13
|
+
* @param prompt 用户提示词(已由 Agent 嵌入技能描述)
|
|
14
|
+
* @param tools 工具列表
|
|
15
|
+
* @param onUsage 用量回调
|
|
16
|
+
* @param onChunk 流式输出回调
|
|
16
17
|
* @return 响应数据
|
|
17
18
|
*/
|
|
18
|
-
send(
|
|
19
|
+
send(prompt: string, tools?: Array<LLMUtility.ToolDefinition>, onUsage?: LLMUtility.UsageCallback, onChunk?: LLMUtility.StreamCallback): Promise<LLMUtility.Response>;
|
|
19
20
|
/** 导出快照 — 序列化消息缓存与配置 */
|
|
20
21
|
exportSnapshot(): LLMUtility.Snapshot;
|
|
21
22
|
/** 添加系统消息到缓存 */
|
|
@@ -28,8 +29,8 @@ export declare abstract class AbstractLLM<T extends LLMUtility.Config = LLMUtili
|
|
|
28
29
|
protected abstract addToolMessage(result: LLMUtility.ToolResult): void;
|
|
29
30
|
/** 消息级压缩 — 派生类可覆写以提供平台特定的 transform(工具输出截断、观察屏蔽等) */
|
|
30
31
|
protected abstract compactMessages(): void;
|
|
31
|
-
/** 发送 HTTP 请求并返回统一响应 — tools 由 send()
|
|
32
|
-
protected abstract request(tools: Array<LLMUtility.ToolDefinition
|
|
32
|
+
/** 发送 HTTP 请求并返回统一响应 — tools 由 send() 动态传入,不缓存,onChunk 用于流式输出 */
|
|
33
|
+
protected abstract request(tools: Array<LLMUtility.ToolDefinition>, onChunk?: LLMUtility.StreamCallback): Promise<LLMUtility.Response>;
|
|
33
34
|
/** 停止原因 */
|
|
34
35
|
protected abstract stopReason(reason: string): LLMUtility.FinishReason;
|
|
35
36
|
/** 处理响应逻辑 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractLLM.d.ts","sourceRoot":"","sources":["../../src/base/AbstractLLM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAEvD,cAAc;AACd,8BAAsB,WAAW,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,SAAS,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAE,SAAQ,cAAc;IAEhK,YAAY;IACZ,SAAgB,MAAM,EAAE,CAAC,CAAC;IAC1B,WAAW;IACX,SAAgB,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AbstractLLM.d.ts","sourceRoot":"","sources":["../../src/base/AbstractLLM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAEvD,cAAc;AACd,8BAAsB,WAAW,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,SAAS,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAE,SAAQ,cAAc;IAEhK,YAAY;IACZ,SAAgB,MAAM,EAAE,CAAC,CAAC;IAC1B,WAAW;IACX,SAAgB,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEhD,WAAW;gBACQ,MAAM,EAAE,CAAC;IAS5B;;;;;;;OAOG;IACU,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;IAyBlL,wBAAwB;IACjB,cAAc,IAAI,UAAU,CAAC,QAAQ;IAa5C,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IACvD,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IACrD,gBAAgB;IAChB,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI;IACrG,kBAAkB;IAClB,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI;IACtE,qDAAqD;IACrD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,IAAI;IAC1C,iEAAiE;IACjE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;IACtI,WAAW;IACX,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,YAAY;IAMtE,aAAa;YACC,cAAc;IAqB5B,kBAAkB;IAClB,OAAO,CAAC,QAAQ;IAQhB,aAAa;YACC,YAAY;IA4BnB,SAAS,IAAI,OAAO;CAK9B"}
|
package/base/AbstractLLM.js
CHANGED
|
@@ -10,25 +10,26 @@ class AbstractLLM extends AbstractObject_1.AbstractObject {
|
|
|
10
10
|
super();
|
|
11
11
|
this.config = config;
|
|
12
12
|
this.messages = new utility_1.LLMUtility.Message(this.config.maxMessageCache);
|
|
13
|
+
if (null != config.systemPrompt) {
|
|
14
|
+
this.addSystemMessage(config.systemPrompt);
|
|
15
|
+
}
|
|
13
16
|
}
|
|
14
17
|
// #region 公开接口
|
|
15
18
|
/**
|
|
16
19
|
* 发送消息
|
|
17
|
-
* @param
|
|
20
|
+
* @param prompt 用户提示词(已由 Agent 嵌入技能描述)
|
|
21
|
+
* @param tools 工具列表
|
|
22
|
+
* @param onUsage 用量回调
|
|
23
|
+
* @param onChunk 流式输出回调
|
|
18
24
|
* @return 响应数据
|
|
19
25
|
*/
|
|
20
|
-
async send(
|
|
26
|
+
async send(prompt, tools, onUsage, onChunk) {
|
|
21
27
|
// 指令判空
|
|
22
|
-
if (
|
|
28
|
+
if (utility_1.StringUtility.empty(prompt)) {
|
|
23
29
|
return null;
|
|
24
30
|
}
|
|
25
|
-
// 添加系统消息
|
|
26
|
-
if (null == this.systemPrompt && this.messages.count === 0) {
|
|
27
|
-
this.addSystemMessage(data.skill);
|
|
28
|
-
this.systemPrompt = data.skill;
|
|
29
|
-
}
|
|
30
31
|
// 添加用户消息
|
|
31
|
-
this.addUserMessage(
|
|
32
|
+
this.addUserMessage(prompt);
|
|
32
33
|
// 消息压缩
|
|
33
34
|
this.compactMessages();
|
|
34
35
|
// 修剪缓存
|
|
@@ -36,15 +37,15 @@ class AbstractLLM extends AbstractObject_1.AbstractObject {
|
|
|
36
37
|
// 用量累加器
|
|
37
38
|
const usageAcc = { input: 0, output: 0, total: 0 };
|
|
38
39
|
// 发起请求
|
|
39
|
-
let response = await this.request(
|
|
40
|
+
let response = await this.request(tools || [], onChunk);
|
|
40
41
|
// 累加用量
|
|
41
42
|
this.addUsage(usageAcc, response.usage);
|
|
42
43
|
// 添加助手消息
|
|
43
44
|
this.addAssistantMessage(response.content, response.toolCalls);
|
|
44
|
-
// 处理响应逻辑
|
|
45
|
-
response = await this.handleResponse(response,
|
|
45
|
+
// 处理响应逻辑(工具调用循环内部不触发流式回调,避免干扰最终输出)
|
|
46
|
+
response = await this.handleResponse(response, tools, usageAcc);
|
|
46
47
|
// 触发用量回调
|
|
47
|
-
|
|
48
|
+
onUsage?.(usageAcc);
|
|
48
49
|
return response;
|
|
49
50
|
}
|
|
50
51
|
/** 导出快照 — 序列化消息缓存与配置 */
|
|
@@ -112,7 +113,6 @@ class AbstractLLM extends AbstractObject_1.AbstractObject {
|
|
|
112
113
|
}
|
|
113
114
|
// #endregion
|
|
114
115
|
OnDestroy() {
|
|
115
|
-
this.systemPrompt = null;
|
|
116
116
|
this.messages.Clear();
|
|
117
117
|
return super.OnDestroy();
|
|
118
118
|
}
|
package/base/AbstractLLM.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractLLM.js","sourceRoot":"","sources":["../../src/base/AbstractLLM.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAClD,wCAAuD;AAEvD,cAAc;AACd,MAAsB,WAAwH,SAAQ,+BAAc;
|
|
1
|
+
{"version":3,"file":"AbstractLLM.js","sourceRoot":"","sources":["../../src/base/AbstractLLM.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import { AbstractAgent, AbstractLLM } from "../../base";
|
|
2
|
+
import { LLMUtility } from "../../utility";
|
|
3
|
+
/** 默认智能体 — 意图匹配 → 工具装配 → LLM 调用 → 记录 */
|
|
4
|
+
export declare class Agent extends AbstractAgent {
|
|
5
|
+
constructor(config: LLMUtility.Config, llm?: AbstractLLM);
|
|
6
|
+
/**
|
|
7
|
+
* 发送消息 — 完整编排
|
|
8
|
+
* 1. 匹配技能(intent_match) → SkillData
|
|
9
|
+
* 2. 解析工具 key → ToolDefinition[]
|
|
10
|
+
* 3. 将技能描述嵌入 prompt → 调用 LLM
|
|
11
|
+
* 4. 记录对话
|
|
12
|
+
* 5. 无匹配技能时直接对话(无工具)
|
|
13
|
+
* @param prompt 用户输入
|
|
14
|
+
* @param onChunk 流式输出回调
|
|
15
|
+
*/
|
|
16
|
+
send(prompt: string, onChunk?: LLMUtility.StreamCallback): Promise<LLMUtility.Response>;
|
|
17
|
+
}
|
|
2
18
|
//# sourceMappingURL=Agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/module/AgentModule/Agent.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/module/AgentModule/Agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAgB,UAAU,EAAiB,MAAM,eAAe,CAAC;AAExE,wCAAwC;AACxC,qBAAa,KAAM,SAAQ,aAAa;gBAEjB,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW;IAK/D;;;;;;;;;OASG;IACU,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;CAsBvG"}
|
|
@@ -1,25 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// import { AbstractAgent, AbstractLLM } from "../../base";
|
|
3
|
-
// import { AgentUtility, LLMUtility } from "../../utility";
|
|
4
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
3
|
+
exports.Agent = void 0;
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
const utility_1 = require("../../utility");
|
|
6
|
+
/** 默认智能体 — 意图匹配 → 工具装配 → LLM 调用 → 记录 */
|
|
7
|
+
class Agent extends base_1.AbstractAgent {
|
|
8
|
+
constructor(config, llm) {
|
|
9
|
+
super(config, llm);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 发送消息 — 完整编排
|
|
13
|
+
* 1. 匹配技能(intent_match) → SkillData
|
|
14
|
+
* 2. 解析工具 key → ToolDefinition[]
|
|
15
|
+
* 3. 将技能描述嵌入 prompt → 调用 LLM
|
|
16
|
+
* 4. 记录对话
|
|
17
|
+
* 5. 无匹配技能时直接对话(无工具)
|
|
18
|
+
* @param prompt 用户输入
|
|
19
|
+
* @param onChunk 流式输出回调
|
|
20
|
+
*/
|
|
21
|
+
async send(prompt, onChunk) {
|
|
22
|
+
if (utility_1.StringUtility.empty(prompt)) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
// ===== 1. 意图匹配 =====
|
|
26
|
+
const skill = this.host.skillModule.matchBest(prompt);
|
|
27
|
+
// ===== 2. 拼接 prompt =====
|
|
28
|
+
const fullPrompt = skill ? this.host.skillModule.buildPrompt(skill, prompt) : prompt;
|
|
29
|
+
// ===== 3. 工具装配 =====
|
|
30
|
+
const tools = this.host.toolModule.resolve(skill?.toolKeys);
|
|
31
|
+
// ===== 4. 调用 LLM =====
|
|
32
|
+
let usage = { input: 0, output: 0, total: 0 };
|
|
33
|
+
const response = await this.llm.send(fullPrompt, tools, (u) => { usage = u; }, onChunk);
|
|
34
|
+
// ===== 5. 记录对话(记录原始 prompt) =====
|
|
35
|
+
this.record(prompt, response?.content ?? "", usage);
|
|
36
|
+
return response;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.Agent = Agent;
|
|
25
40
|
//# sourceMappingURL=Agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../../src/module/AgentModule/Agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../../src/module/AgentModule/Agent.ts"],"names":[],"mappings":";;;AAAA,qCAAwD;AACxD,2CAAwE;AAExE,wCAAwC;AACxC,MAAa,KAAM,SAAQ,oBAAa;IAEpC,YAAmB,MAAyB,EAAE,GAAiB;QAE3D,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,OAAmC;QAEjE,IAAI,uBAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAEjD,sBAAsB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEtD,2BAA2B;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAErF,sBAAsB;QACtB,MAAM,KAAK,GAAgC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEzF,wBAAwB;QACxB,IAAI,KAAK,GAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAExF,mCAAmC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAEpD,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AAvCD,sBAuCC"}
|
|
@@ -1,2 +1,35 @@
|
|
|
1
|
-
|
|
1
|
+
import { AbstractAgent } from "../../base";
|
|
2
|
+
import { AbstractModule } from "../../base";
|
|
3
|
+
import { AgentUtility, LLMUtility } from "../../utility";
|
|
4
|
+
import { Agent } from "./Agent";
|
|
5
|
+
/** 智能体管理模块 — Agent 实例的创建、恢复、销毁 */
|
|
6
|
+
export declare class AgentModule extends AbstractModule {
|
|
7
|
+
/** 智能体池 */
|
|
8
|
+
private readonly agents;
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* 创建智能体实例(内部创建 LLM)
|
|
12
|
+
* @param config 大模型配置
|
|
13
|
+
*/
|
|
14
|
+
create(config: LLMUtility.Config): Agent;
|
|
15
|
+
/**
|
|
16
|
+
* 从快照恢复智能体 — 恢复 LLM 消息缓存 + 对话记录
|
|
17
|
+
* @param data 智能体快照
|
|
18
|
+
*/
|
|
19
|
+
restore(data: AgentUtility.AgentSnapshot): AbstractAgent;
|
|
20
|
+
/** 获取智能体实例 */
|
|
21
|
+
get<T extends AbstractAgent = AbstractAgent>(id: string): T;
|
|
22
|
+
/** 列出全部智能体 */
|
|
23
|
+
list(): AbstractAgent[];
|
|
24
|
+
/** 智能体总数 */
|
|
25
|
+
get count(): number;
|
|
26
|
+
/**
|
|
27
|
+
* 移除智能体实例(内部销毁 LLM)
|
|
28
|
+
* @param id 智能体ID
|
|
29
|
+
*/
|
|
30
|
+
remove(id: string): boolean;
|
|
31
|
+
/** 移除全部智能体实例 */
|
|
32
|
+
removeAll(): void;
|
|
33
|
+
OnDestroy(): boolean;
|
|
34
|
+
}
|
|
2
35
|
//# sourceMappingURL=AgentModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentModule.d.ts","sourceRoot":"","sources":["../../../src/module/AgentModule/AgentModule.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"AgentModule.d.ts","sourceRoot":"","sources":["../../../src/module/AgentModule/AgentModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,kCAAkC;AAClC,qBAAa,WAAY,SAAQ,cAAc;IAE3C,WAAW;IACX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;;IAQ9D;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK;IAO/C;;;OAGG;IACI,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,aAAa,GAAG,aAAa;IAU/D,cAAc;IACP,GAAG,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC;IAKlE,cAAc;IACP,IAAI,IAAI,aAAa,EAAE;IAK9B,YAAY;IACZ,IAAW,KAAK,IAAI,MAAM,CAGzB;IAED;;;OAGG;IACI,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IASlC,gBAAgB;IACT,SAAS,IAAI,IAAI;IAOjB,SAAS,IAAI,OAAO;CAK9B"}
|