knight-agent 1.1.0

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 (163) hide show
  1. package/Host.d.ts +23 -0
  2. package/Host.d.ts.map +1 -0
  3. package/Host.js +23 -0
  4. package/Host.js.map +1 -0
  5. package/base/AbstractAgent.d.ts +100 -0
  6. package/base/AbstractAgent.d.ts.map +1 -0
  7. package/base/AbstractAgent.js +23 -0
  8. package/base/AbstractAgent.js.map +1 -0
  9. package/base/AbstractDialog.d.ts +54 -0
  10. package/base/AbstractDialog.d.ts.map +1 -0
  11. package/base/AbstractDialog.js +86 -0
  12. package/base/AbstractDialog.js.map +1 -0
  13. package/base/AbstractModule.d.ts +7 -0
  14. package/base/AbstractModule.d.ts.map +1 -0
  15. package/base/AbstractModule.js +13 -0
  16. package/base/AbstractModule.js.map +1 -0
  17. package/base/AbstractObject.d.ts +18 -0
  18. package/base/AbstractObject.d.ts.map +1 -0
  19. package/base/AbstractObject.js +25 -0
  20. package/base/AbstractObject.js.map +1 -0
  21. package/base/AbstractReason.d.ts +44 -0
  22. package/base/AbstractReason.d.ts.map +1 -0
  23. package/base/AbstractReason.js +23 -0
  24. package/base/AbstractReason.js.map +1 -0
  25. package/base/AbstractSkill.d.ts +25 -0
  26. package/base/AbstractSkill.d.ts.map +1 -0
  27. package/base/AbstractSkill.js +3 -0
  28. package/base/AbstractSkill.js.map +1 -0
  29. package/base/AbstractTool.d.ts +34 -0
  30. package/base/AbstractTool.d.ts.map +1 -0
  31. package/base/AbstractTool.js +3 -0
  32. package/base/AbstractTool.js.map +1 -0
  33. package/base/index.d.ts +8 -0
  34. package/base/index.d.ts.map +1 -0
  35. package/base/index.js +24 -0
  36. package/base/index.js.map +1 -0
  37. package/docs/ARCHITECTURE.md +601 -0
  38. package/docs/README.md +562 -0
  39. package/index.d.ts +4 -0
  40. package/index.d.ts.map +1 -0
  41. package/index.js +25 -0
  42. package/index.js.map +1 -0
  43. package/module/AgentModule/Agent.d.ts +55 -0
  44. package/module/AgentModule/Agent.d.ts.map +1 -0
  45. package/module/AgentModule/Agent.js +210 -0
  46. package/module/AgentModule/Agent.js.map +1 -0
  47. package/module/AgentModule/AgentModule.d.ts +26 -0
  48. package/module/AgentModule/AgentModule.d.ts.map +1 -0
  49. package/module/AgentModule/AgentModule.js +66 -0
  50. package/module/AgentModule/AgentModule.js.map +1 -0
  51. package/module/AgentModule/Memory.d.ts +55 -0
  52. package/module/AgentModule/Memory.d.ts.map +1 -0
  53. package/module/AgentModule/Memory.js +288 -0
  54. package/module/AgentModule/Memory.js.map +1 -0
  55. package/module/AgentModule/index.d.ts +2 -0
  56. package/module/AgentModule/index.d.ts.map +1 -0
  57. package/module/AgentModule/index.js +18 -0
  58. package/module/AgentModule/index.js.map +1 -0
  59. package/module/DialogModule/Dialog.d.ts +14 -0
  60. package/module/DialogModule/Dialog.d.ts.map +1 -0
  61. package/module/DialogModule/Dialog.js +27 -0
  62. package/module/DialogModule/Dialog.js.map +1 -0
  63. package/module/DialogModule/DialogModule.d.ts +39 -0
  64. package/module/DialogModule/DialogModule.d.ts.map +1 -0
  65. package/module/DialogModule/DialogModule.js +118 -0
  66. package/module/DialogModule/DialogModule.js.map +1 -0
  67. package/module/DialogModule/index.d.ts +3 -0
  68. package/module/DialogModule/index.d.ts.map +1 -0
  69. package/module/DialogModule/index.js +19 -0
  70. package/module/DialogModule/index.js.map +1 -0
  71. package/module/ReasonModule/ChainReason.d.ts +11 -0
  72. package/module/ReasonModule/ChainReason.d.ts.map +1 -0
  73. package/module/ReasonModule/ChainReason.js +34 -0
  74. package/module/ReasonModule/ChainReason.js.map +1 -0
  75. package/module/ReasonModule/CommanderReason.d.ts +15 -0
  76. package/module/ReasonModule/CommanderReason.d.ts.map +1 -0
  77. package/module/ReasonModule/CommanderReason.js +151 -0
  78. package/module/ReasonModule/CommanderReason.js.map +1 -0
  79. package/module/ReasonModule/CompetitiveReason.d.ts +13 -0
  80. package/module/ReasonModule/CompetitiveReason.d.ts.map +1 -0
  81. package/module/ReasonModule/CompetitiveReason.js +133 -0
  82. package/module/ReasonModule/CompetitiveReason.js.map +1 -0
  83. package/module/ReasonModule/PlanReason.d.ts +25 -0
  84. package/module/ReasonModule/PlanReason.d.ts.map +1 -0
  85. package/module/ReasonModule/PlanReason.js +133 -0
  86. package/module/ReasonModule/PlanReason.js.map +1 -0
  87. package/module/ReasonModule/ReasonModule.d.ts +41 -0
  88. package/module/ReasonModule/ReasonModule.d.ts.map +1 -0
  89. package/module/ReasonModule/ReasonModule.js +83 -0
  90. package/module/ReasonModule/ReasonModule.js.map +1 -0
  91. package/module/ReasonModule/ReflectReason.d.ts +15 -0
  92. package/module/ReasonModule/ReflectReason.d.ts.map +1 -0
  93. package/module/ReasonModule/ReflectReason.js +86 -0
  94. package/module/ReasonModule/ReflectReason.js.map +1 -0
  95. package/module/ReasonModule/TreeReason.d.ts +16 -0
  96. package/module/ReasonModule/TreeReason.d.ts.map +1 -0
  97. package/module/ReasonModule/TreeReason.js +139 -0
  98. package/module/ReasonModule/TreeReason.js.map +1 -0
  99. package/module/ReasonModule/index.d.ts +8 -0
  100. package/module/ReasonModule/index.d.ts.map +1 -0
  101. package/module/ReasonModule/index.js +24 -0
  102. package/module/ReasonModule/index.js.map +1 -0
  103. package/module/SkillModule/SkillModule.d.ts +42 -0
  104. package/module/SkillModule/SkillModule.d.ts.map +1 -0
  105. package/module/SkillModule/SkillModule.js +134 -0
  106. package/module/SkillModule/SkillModule.js.map +1 -0
  107. package/module/SkillModule/index.d.ts +2 -0
  108. package/module/SkillModule/index.d.ts.map +1 -0
  109. package/module/SkillModule/index.js +18 -0
  110. package/module/SkillModule/index.js.map +1 -0
  111. package/module/ToolModule/ToolModule.d.ts +57 -0
  112. package/module/ToolModule/ToolModule.d.ts.map +1 -0
  113. package/module/ToolModule/ToolModule.js +220 -0
  114. package/module/ToolModule/ToolModule.js.map +1 -0
  115. package/module/ToolModule/ToolRAG.d.ts +38 -0
  116. package/module/ToolModule/ToolRAG.d.ts.map +1 -0
  117. package/module/ToolModule/ToolRAG.js +124 -0
  118. package/module/ToolModule/ToolRAG.js.map +1 -0
  119. package/module/ToolModule/index.d.ts +3 -0
  120. package/module/ToolModule/index.d.ts.map +1 -0
  121. package/module/ToolModule/index.js +19 -0
  122. package/module/ToolModule/index.js.map +1 -0
  123. package/module/index.d.ts +6 -0
  124. package/module/index.d.ts.map +1 -0
  125. package/module/index.js +22 -0
  126. package/module/index.js.map +1 -0
  127. package/package.json +19 -0
  128. package/utility/InterfaceUtility.d.ts +14 -0
  129. package/utility/InterfaceUtility.d.ts.map +1 -0
  130. package/utility/InterfaceUtility.js +3 -0
  131. package/utility/InterfaceUtility.js.map +1 -0
  132. package/utility/LogUtility.d.ts +41 -0
  133. package/utility/LogUtility.d.ts.map +1 -0
  134. package/utility/LogUtility.js +70 -0
  135. package/utility/LogUtility.js.map +1 -0
  136. package/utility/NetworkUtility.d.ts +91 -0
  137. package/utility/NetworkUtility.d.ts.map +1 -0
  138. package/utility/NetworkUtility.js +104 -0
  139. package/utility/NetworkUtility.js.map +1 -0
  140. package/utility/ObjectUtility.d.ts +134 -0
  141. package/utility/ObjectUtility.d.ts.map +1 -0
  142. package/utility/ObjectUtility.js +313 -0
  143. package/utility/ObjectUtility.js.map +1 -0
  144. package/utility/OpenAIUtility.d.ts +333 -0
  145. package/utility/OpenAIUtility.d.ts.map +1 -0
  146. package/utility/OpenAIUtility.js +95 -0
  147. package/utility/OpenAIUtility.js.map +1 -0
  148. package/utility/PromiseUtility.d.ts +9 -0
  149. package/utility/PromiseUtility.d.ts.map +1 -0
  150. package/utility/PromiseUtility.js +16 -0
  151. package/utility/PromiseUtility.js.map +1 -0
  152. package/utility/StringUtility.d.ts +10 -0
  153. package/utility/StringUtility.d.ts.map +1 -0
  154. package/utility/StringUtility.js +42 -0
  155. package/utility/StringUtility.js.map +1 -0
  156. package/utility/TimeUtility.d.ts +10 -0
  157. package/utility/TimeUtility.d.ts.map +1 -0
  158. package/utility/TimeUtility.js +24 -0
  159. package/utility/TimeUtility.js.map +1 -0
  160. package/utility/index.d.ts +9 -0
  161. package/utility/index.d.ts.map +1 -0
  162. package/utility/index.js +25 -0
  163. package/utility/index.js.map +1 -0
package/Host.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ import { AgentModule, ToolModule, ReasonModule, DialogModule, SkillModule } from "./module";
2
+ /** 实例类 */
3
+ export declare class Host {
4
+ /** 单例模式 */
5
+ private static instance;
6
+ static get Instance(): Host;
7
+ /** 智能体管理模块 */
8
+ readonly agentModule: AgentModule;
9
+ /** 工具管理模块 */
10
+ readonly toolModule: ToolModule;
11
+ /** 推理管理模块 */
12
+ readonly reasonModule: ReasonModule;
13
+ /** 对话管理模块 */
14
+ readonly dialogModule: DialogModule;
15
+ /** 技能管理模块 */
16
+ readonly skillModule: SkillModule;
17
+ /** 构造函数 */
18
+ private constructor();
19
+ }
20
+ /** 单例 */
21
+ declare const _default: Host;
22
+ export default _default;
23
+ //# sourceMappingURL=Host.d.ts.map
package/Host.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Host.d.ts","sourceRoot":"","sources":["../src/Host.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5F,UAAU;AACV,qBAAa,IAAI;IAEb,WAAW;IACX,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAO;IAC9B,WAAkB,QAAQ,SAAuF;IAEjH,cAAc;IACd,SAAgB,WAAW,EAAE,WAAW,CAAC;IACzC,aAAa;IACb,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,aAAa;IACb,SAAgB,YAAY,EAAE,YAAY,CAAC;IAC3C,aAAa;IACb,SAAgB,YAAY,EAAE,YAAY,CAAC;IAC3C,aAAa;IACb,SAAgB,WAAW,EAAE,WAAW,CAAC;IAEzC,WAAW;IACX,OAAO;CAQV;AACD,SAAS;;AACT,wBAA6B"}
package/Host.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Host = void 0;
4
+ const module_1 = require("./module");
5
+ /** 实例类 */
6
+ class Host {
7
+ static get Instance() { if (null == Host.instance) {
8
+ Host.instance = new Host();
9
+ } return Host.instance; }
10
+ ;
11
+ /** 构造函数 */
12
+ constructor() {
13
+ this.agentModule = new module_1.AgentModule();
14
+ this.toolModule = new module_1.ToolModule();
15
+ this.reasonModule = new module_1.ReasonModule();
16
+ this.dialogModule = new module_1.DialogModule();
17
+ this.skillModule = new module_1.SkillModule();
18
+ }
19
+ }
20
+ exports.Host = Host;
21
+ /** 单例 */
22
+ exports.default = Host.Instance;
23
+ //# sourceMappingURL=Host.js.map
package/Host.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Host.js","sourceRoot":"","sources":["../src/Host.ts"],"names":[],"mappings":";;;AAAA,qCAA4F;AAE5F,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;IAalH,WAAW;IACX;QAEI,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAU,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAY,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAY,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;IACzC,CAAC;CACJ;AA1BD,oBA0BC;AACD,SAAS;AACT,kBAAe,IAAI,CAAC,QAAQ,CAAC"}
@@ -0,0 +1,100 @@
1
+ import { AbstractObject } from "./AbstractObject";
2
+ import { ToolContext } from "./AbstractTool";
3
+ import { NetworkUtility, OpenAIUtility } from "../utility";
4
+ /** Agent.run() 的可选参数 */
5
+ export interface AgentRunOptions {
6
+ /** 允许使用的工具名列表(Skill 过滤后) */
7
+ toolNames?: Array<string>;
8
+ /** 工具执行上下文 */
9
+ toolContext?: ToolContext;
10
+ }
11
+ /** 抽象智能体基类 */
12
+ export declare abstract class AbstractAgent extends AbstractObject {
13
+ /** 构造函数 */
14
+ constructor();
15
+ /** 对话轮次 */
16
+ abstract get turnCount(): number;
17
+ /** 发送用户消息(缓存→发送→缓存回复) */
18
+ abstract sendUserMessage(content: string): Promise<NetworkUtility.HTTP.Response<OpenAIUtility.OpenAI.ChatResponse>>;
19
+ /** 发送当前消息缓存到LLM(不添加用户消息) */
20
+ abstract sendRequest(): Promise<NetworkUtility.HTTP.Response<OpenAIUtility.OpenAI.ChatResponse>>;
21
+ /** 执行单个工具调用 */
22
+ abstract executeTool(toolCall: OpenAIUtility.OpenAI.ToolResponse): Promise<string>;
23
+ /** 添加工具执行结果到消息缓存 */
24
+ abstract addToolResult(result: string, toolCallId: string): void;
25
+ /** 添加助手消息到缓存(含 tool_calls) */
26
+ abstract addAssistantMessage(content: string, toolCalls?: Array<OpenAIUtility.OpenAI.ToolResponse>): void;
27
+ /** 设置 Agent 状态 */
28
+ abstract setState(state: AgentState): void;
29
+ /**
30
+ * 运行 Agent 主循环
31
+ * 1. 发送用户消息
32
+ * 2. 检查响应
33
+ * 3. 如果模型要求工具调用 → 执行工具 → 继续发送
34
+ * 4. 返回最终结果
35
+ */
36
+ abstract run(input: string, options?: AgentRunOptions): Promise<AgentRunResult>;
37
+ /** 导出当前状态为可序列化快照 */
38
+ abstract snapshot(): AgentSnapshot;
39
+ /** 从快照恢复状态(需先构造 Agent 再调用此方法) */
40
+ abstract restore(snapshot: AgentSnapshot): void;
41
+ }
42
+ /** 智能体运行状态 */
43
+ export declare enum AgentState {
44
+ Idle = 0,
45
+ Thinking = 1,
46
+ Running = 2,
47
+ WaitingTool = 3,
48
+ Error = 4,
49
+ Done = 5
50
+ }
51
+ /** 智能体单次运行结果 */
52
+ export interface AgentRunResult {
53
+ success: boolean;
54
+ content: string;
55
+ thinking?: string;
56
+ toolCalls?: Array<OpenAIUtility.OpenAI.ToolResponse>;
57
+ usage?: OpenAIUtility.OpenAI.Usage;
58
+ finishReason?: string;
59
+ }
60
+ /** 智能体配置 */
61
+ export interface AgentConfig {
62
+ /** API端点地址 */
63
+ address: string;
64
+ /** API密钥 */
65
+ apiKey: string;
66
+ /** 模型名称 */
67
+ model: string;
68
+ /** 系统提示词 */
69
+ systemPrompt?: string;
70
+ /** DeepSeek思考模式开关(默认开启) */
71
+ enableThinking?: boolean;
72
+ /** 推理强度 */
73
+ reasoningEffort?: "high" | "max";
74
+ /** 采样温度(0~2) */
75
+ temperature?: number;
76
+ /** 最大输出token数 */
77
+ maxTokens?: number;
78
+ /** 最大对话轮次 */
79
+ maxTurns?: number;
80
+ }
81
+ /** Agent 持久化快照(不含 apiKey/address 等敏感字段) */
82
+ export interface AgentSnapshot {
83
+ /** 快照格式版本 */
84
+ version: number;
85
+ /** 创建时间戳 */
86
+ createdAt: number;
87
+ /** 所属 Agent ID */
88
+ agentId: string;
89
+ /** 对话轮次 */
90
+ turnCount: number;
91
+ /** 完整消息历史 */
92
+ messages: Array<OpenAIUtility.OpenAI.LLMMessage>;
93
+ /** 推理草稿 */
94
+ scratchpad: string;
95
+ /** 工具结果缓存 */
96
+ toolResults: Array<[string, string]>;
97
+ /** 恢复所需配置(敏感字段已剥离) */
98
+ config: Pick<AgentConfig, "model" | "systemPrompt" | "temperature" | "maxTokens" | "enableThinking" | "reasoningEffort" | "maxTurns">;
99
+ }
100
+ //# sourceMappingURL=AbstractAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractAgent.d.ts","sourceRoot":"","sources":["../../src/base/AbstractAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgentState = exports.AbstractAgent = void 0;
4
+ const AbstractObject_1 = require("./AbstractObject");
5
+ /** 抽象智能体基类 */
6
+ class AbstractAgent extends AbstractObject_1.AbstractObject {
7
+ /** 构造函数 */
8
+ constructor() {
9
+ super();
10
+ }
11
+ }
12
+ exports.AbstractAgent = AbstractAgent;
13
+ /** 智能体运行状态 */
14
+ var AgentState;
15
+ (function (AgentState) {
16
+ AgentState[AgentState["Idle"] = 0] = "Idle";
17
+ AgentState[AgentState["Thinking"] = 1] = "Thinking";
18
+ AgentState[AgentState["Running"] = 2] = "Running";
19
+ AgentState[AgentState["WaitingTool"] = 3] = "WaitingTool";
20
+ AgentState[AgentState["Error"] = 4] = "Error";
21
+ AgentState[AgentState["Done"] = 5] = "Done";
22
+ })(AgentState || (exports.AgentState = AgentState = {}));
23
+ //# sourceMappingURL=AbstractAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractAgent.js","sourceRoot":"","sources":["../../src/base/AbstractAgent.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAalD,cAAc;AACd,MAAsB,aAAc,SAAQ,+BAAc;IAGtD,WAAW;IACX;QAEI,KAAK,EAAE,CAAC;IACZ,CAAC;CA8BJ;AArCD,sCAqCC;AACD,cAAc;AACd,IAAY,UAQX;AARD,WAAY,UAAU;IAElB,2CAAI,CAAA;IACJ,mDAAQ,CAAA;IACR,iDAAO,CAAA;IACP,yDAAW,CAAA;IACX,6CAAK,CAAA;IACL,2CAAI,CAAA;AACR,CAAC,EARW,UAAU,0BAAV,UAAU,QAQrB"}
@@ -0,0 +1,54 @@
1
+ import { AbstractObject } from "./AbstractObject";
2
+ import { AbstractAgent, AgentConfig, AgentRunResult, AgentSnapshot } from "./AbstractAgent";
3
+ /**
4
+ * 抽象对话基类 — 提供 Agent 持久化 + 推理策略绑定 + 消息路由
5
+ * 子类负责 Agent 的创建方式,基类提供统一的 destroy/send/switchStrategy/snapshot
6
+ */
7
+ export declare abstract class AbstractDialog extends AbstractObject {
8
+ /** 对话标题 */
9
+ readonly title: string;
10
+ /** 当前推理策略 */
11
+ strategy: string;
12
+ /** 持久化 Agent */
13
+ readonly agent: AbstractAgent;
14
+ /** Agent 完整配置(供策略创建临时 Agent) */
15
+ protected config: AgentConfig;
16
+ /** 创建时间 */
17
+ readonly createdAt: number;
18
+ /**
19
+ * @param title 对话标题
20
+ * @param agent 已创建的 Agent(由子类构造时提供)
21
+ * @param config Agent 完整配置
22
+ * @param strategy 初始推理策略
23
+ */
24
+ constructor(title: string, agent: AbstractAgent, config: AgentConfig, strategy: string);
25
+ /** 销毁对话(内部销毁 Agent) */
26
+ destroy(): void;
27
+ /**
28
+ * 发送消息 — 根据绑定策略,通过 useAgent 复用持久化 Agent
29
+ */
30
+ send(input: string): Promise<DialogResult>;
31
+ /**
32
+ * 切换推理策略(不影响 Agent 已有的消息历史)
33
+ */
34
+ switchStrategy(strategy: string): boolean;
35
+ /** 导出快照(不含 apiKey/address) */
36
+ snapshot(): DialogSnapshot;
37
+ }
38
+ /** 对话快照(可持久化到 DB/文件) */
39
+ export interface DialogSnapshot {
40
+ version: number;
41
+ createdAt: number;
42
+ dialogId: string;
43
+ title: string;
44
+ strategy: string;
45
+ agentSnapshot: AgentSnapshot;
46
+ }
47
+ /** 对话发送消息结果 */
48
+ export interface DialogResult extends AgentRunResult {
49
+ dialogId: string;
50
+ strategy: string;
51
+ trace?: string[];
52
+ reflectionRounds?: number;
53
+ }
54
+ //# sourceMappingURL=AbstractDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractDialog.d.ts","sourceRoot":"","sources":["../../src/base/AbstractDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAI5F;;;GAGG;AACH,8BAAsB,cAAe,SAAQ,cAAc;IAEvD,WAAW;IACX,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,aAAa;IACN,QAAQ,EAAE,MAAM,CAAC;IACxB,gBAAgB;IAChB,SAAgB,KAAK,EAAE,aAAa,CAAC;IACrC,gCAAgC;IAChC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,WAAW;IACX,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;;;;OAKG;gBACgB,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM;IAU7F,uBAAuB;IAChB,OAAO,IAAI,IAAI;IAMtB;;OAEG;IACU,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAuCvD;;OAEG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAOhD,8BAA8B;IACvB,QAAQ,IAAI,cAAc;CAWpC;AAED,wBAAwB;AACxB,MAAM,WAAW,cAAc;IAE3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;CAChC;AAED,eAAe;AACf,MAAM,WAAW,YAAa,SAAQ,cAAc;IAEhD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractDialog = void 0;
4
+ const AbstractObject_1 = require("./AbstractObject");
5
+ const utility_1 = require("../utility");
6
+ /**
7
+ * 抽象对话基类 — 提供 Agent 持久化 + 推理策略绑定 + 消息路由
8
+ * 子类负责 Agent 的创建方式,基类提供统一的 destroy/send/switchStrategy/snapshot
9
+ */
10
+ class AbstractDialog extends AbstractObject_1.AbstractObject {
11
+ /**
12
+ * @param title 对话标题
13
+ * @param agent 已创建的 Agent(由子类构造时提供)
14
+ * @param config Agent 完整配置
15
+ * @param strategy 初始推理策略
16
+ */
17
+ constructor(title, agent, config, strategy) {
18
+ super();
19
+ this.title = title;
20
+ this.agent = agent;
21
+ this.config = config;
22
+ this.strategy = strategy;
23
+ this.createdAt = Date.now();
24
+ }
25
+ /** 销毁对话(内部销毁 Agent) */
26
+ destroy() {
27
+ this.host.agentModule.destroyAgent(this.agent.id);
28
+ utility_1.LogUtility.LogInfo(`[AbstractDialog] 销毁对话 "${this.title}" (${this.id})`);
29
+ }
30
+ /**
31
+ * 发送消息 — 根据绑定策略,通过 useAgent 复用持久化 Agent
32
+ */
33
+ async send(input) {
34
+ const reason = this.host.reasonModule.get(this.strategy);
35
+ if (!reason) {
36
+ return {
37
+ success: false,
38
+ content: `未知推理策略: ${this.strategy}`,
39
+ strategy: this.strategy,
40
+ dialogId: this.id,
41
+ };
42
+ }
43
+ const resolvedTools = this.host.skillModule.resolveTools(this.id);
44
+ const toolNames = await this.host.toolModule.selectTools(input, resolvedTools.map(t => t.name));
45
+ const skillPrompt = this.host.skillModule.buildPrompt(this.id);
46
+ const toolContext = {
47
+ agentId: this.agent.id,
48
+ dialogId: this.id,
49
+ turnCount: this.agent.turnCount,
50
+ };
51
+ const result = await reason.execute(input, {
52
+ baseConfig: this.config,
53
+ useAgent: this.agent,
54
+ toolNames,
55
+ toolContext,
56
+ skillPrompt,
57
+ });
58
+ return {
59
+ ...result,
60
+ dialogId: this.id,
61
+ };
62
+ }
63
+ /**
64
+ * 切换推理策略(不影响 Agent 已有的消息历史)
65
+ */
66
+ switchStrategy(strategy) {
67
+ if (!this.host.reasonModule.has(strategy)) {
68
+ return false;
69
+ }
70
+ this.strategy = strategy;
71
+ return true;
72
+ }
73
+ /** 导出快照(不含 apiKey/address) */
74
+ snapshot() {
75
+ return {
76
+ version: 1,
77
+ createdAt: this.createdAt,
78
+ dialogId: this.id,
79
+ title: this.title,
80
+ strategy: this.strategy,
81
+ agentSnapshot: this.agent.snapshot(),
82
+ };
83
+ }
84
+ }
85
+ exports.AbstractDialog = AbstractDialog;
86
+ //# sourceMappingURL=AbstractDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractDialog.js","sourceRoot":"","sources":["../../src/base/AbstractDialog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { AbstractObject } from "./AbstractObject";
2
+ /** 抽象模块基类 */
3
+ export declare abstract class AbstractModule extends AbstractObject {
4
+ /** 构造函数 */
5
+ constructor();
6
+ }
7
+ //# sourceMappingURL=AbstractModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractModule.d.ts","sourceRoot":"","sources":["../../src/base/AbstractModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,aAAa;AACb,8BAAsB,cAAe,SAAQ,cAAc;IAEvD,WAAW;;CAMd"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractModule = void 0;
4
+ const AbstractObject_1 = require("./AbstractObject");
5
+ /** 抽象模块基类 */
6
+ class AbstractModule extends AbstractObject_1.AbstractObject {
7
+ /** 构造函数 */
8
+ constructor() {
9
+ super();
10
+ }
11
+ }
12
+ exports.AbstractModule = AbstractModule;
13
+ //# sourceMappingURL=AbstractModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractModule.js","sourceRoot":"","sources":["../../src/base/AbstractModule.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAElD,aAAa;AACb,MAAsB,cAAe,SAAQ,+BAAc;IAEvD,WAAW;IACX;QAEI,KAAK,EAAE,CAAC;IACZ,CAAC;CAEJ;AARD,wCAQC"}
@@ -0,0 +1,18 @@
1
+ import { Host } from "../Host";
2
+ import { ObjectUtility } from "../utility";
3
+ /** 抽象对象基类 */
4
+ export declare abstract class AbstractObject {
5
+ /** 对象管理 */
6
+ static readonly objects: ObjectUtility.MapPool<AbstractObject>;
7
+ /** 对象ID */
8
+ readonly id: string;
9
+ /** 对象Key(类名) */
10
+ readonly key: string;
11
+ /** 智能体管理器实例 */
12
+ get host(): Host;
13
+ /** 构造函数 */
14
+ constructor();
15
+ /** 销毁 */
16
+ OnDestroy(): void;
17
+ }
18
+ //# sourceMappingURL=AbstractObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractObject.d.ts","sourceRoot":"","sources":["../../src/base/AbstractObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAE1D,aAAa;AACb,8BAAsB,cAAc;IAEhC,WAAW;IACX,gBAAuB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,CAA+C;IAEpH,WAAW;IACX,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,gBAAgB;IAChB,SAAgB,GAAG,EAAE,MAAM,CAAC;IAE5B,eAAe;IACf,IAAW,IAAI,IAAI,IAAI,CAA0B;IAEjD,WAAW;;IAQX,SAAS;IACF,SAAS,IAAI,IAAI;CAI3B"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractObject = void 0;
4
+ const Host_1 = require("../Host");
5
+ const utility_1 = require("../utility");
6
+ /** 抽象对象基类 */
7
+ class AbstractObject {
8
+ /** 智能体管理器实例 */
9
+ get host() { return Host_1.Host.Instance; }
10
+ ;
11
+ /** 构造函数 */
12
+ constructor() {
13
+ this.id = utility_1.StringUtility.GetGUID();
14
+ this.key = this.constructor.name;
15
+ AbstractObject.objects.Add(this.id, this);
16
+ }
17
+ /** 销毁 */
18
+ OnDestroy() {
19
+ AbstractObject.objects.Remove(this.id);
20
+ }
21
+ }
22
+ exports.AbstractObject = AbstractObject;
23
+ /** 对象管理 */
24
+ AbstractObject.objects = new utility_1.ObjectUtility.MapPool();
25
+ //# sourceMappingURL=AbstractObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractObject.js","sourceRoot":"","sources":["../../src/base/AbstractObject.ts"],"names":[],"mappings":";;;AAAA,kCAA+B;AAC/B,wCAA0D;AAE1D,aAAa;AACb,MAAsB,cAAc;IAUhC,eAAe;IACf,IAAW,IAAI,KAAW,OAAO,WAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAAA,CAAC;IAElD,WAAW;IACX;QAEI,IAAI,CAAC,EAAE,GAAG,uBAAa,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACjC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS;IACF,SAAS;QAEZ,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;;AAzBL,wCA0BC;AAxBG,WAAW;AACY,sBAAO,GAA0C,IAAI,uBAAa,CAAC,OAAO,EAAkB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { AbstractObject } from "./AbstractObject";
2
+ import { AbstractAgent, AgentConfig, AgentRunResult, AgentRunOptions } from "./AbstractAgent";
3
+ /** 抽象推理基类 */
4
+ export declare abstract class AbstractReason extends AbstractObject {
5
+ /** 推理类型 */
6
+ abstract readonly type: string;
7
+ /** 构造函数 */
8
+ constructor();
9
+ /**
10
+ * 执行推理策略
11
+ * 策略内部通过 this.host.agentModule 自行创建/管理 Agent
12
+ * 若 config.useAgent 存在则复用它(不创建/不销毁),用于 Dialog 持久化场景
13
+ * @param input 用户输入
14
+ * @param config 推理配置(含 Agent 基础配置 + 策略特定参数)
15
+ * @return 推理结果
16
+ */
17
+ abstract execute(input: string, config: ReasonConfig): Promise<ReasonResult>;
18
+ /** 从 ReasonConfig 提取 AgentRunOptions(Skill 过滤后的工具名单和上下文) */
19
+ protected buildRunOptions(config: ReasonConfig): AgentRunOptions | undefined;
20
+ }
21
+ /** 推理配置 — 策略据此自行创建/管理 Agent */
22
+ export interface ReasonConfig {
23
+ /** Agent 基础配置 */
24
+ baseConfig: AgentConfig;
25
+ /**
26
+ * 外部传入的持久化 Agent(Dialog 场景)
27
+ * 策略优先使用此 Agent 而非创建新实例,且不会在结束时销毁它
28
+ * 单 Agent 策略:直接复用于所有阶段
29
+ * 多 Agent 策略:用作主 Agent(裁判/指挥),临时 Agent 仍自动创建/销毁
30
+ */
31
+ useAgent?: AbstractAgent;
32
+ /** 策略特定参数(如竞争者列表、超时等) */
33
+ [key: string]: any;
34
+ }
35
+ /** 推理结果接口 */
36
+ export interface ReasonResult extends AgentRunResult {
37
+ /** 使用的推理策略 */
38
+ strategy: string;
39
+ /** 推理追踪(中间步骤日志) */
40
+ trace?: string[];
41
+ /** 反思轮次(仅 Reflexion 策略使用) */
42
+ reflectionRounds?: number;
43
+ }
44
+ //# sourceMappingURL=AbstractReason.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractReason.d.ts","sourceRoot":"","sources":["../../src/base/AbstractReason.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE9F,aAAa;AACb,8BAAsB,cAAe,SAAQ,cAAc;IAEvD,WAAW;IACX,kBAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC,WAAW;;IAKX;;;;;;;OAOG;aACa,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAEnF,4DAA4D;IAC5D,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,SAAS;CAQ/E;AACD,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAEzB,iBAAiB;IACjB,UAAU,EAAE,WAAW,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,yBAAyB;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AACD,aAAa;AACb,MAAM,WAAW,YAAa,SAAQ,cAAc;IAEhD,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractReason = void 0;
4
+ const AbstractObject_1 = require("./AbstractObject");
5
+ /** 抽象推理基类 */
6
+ class AbstractReason extends AbstractObject_1.AbstractObject {
7
+ /** 构造函数 */
8
+ constructor() {
9
+ super();
10
+ }
11
+ /** 从 ReasonConfig 提取 AgentRunOptions(Skill 过滤后的工具名单和上下文) */
12
+ buildRunOptions(config) {
13
+ if (!config.toolNames && !config.toolContext) {
14
+ return undefined;
15
+ }
16
+ return {
17
+ toolNames: config.toolNames,
18
+ toolContext: config.toolContext,
19
+ };
20
+ }
21
+ }
22
+ exports.AbstractReason = AbstractReason;
23
+ //# sourceMappingURL=AbstractReason.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractReason.js","sourceRoot":"","sources":["../../src/base/AbstractReason.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAGlD,aAAa;AACb,MAAsB,cAAe,SAAQ,+BAAc;IAKvD,WAAW;IACX;QAEI,KAAK,EAAE,CAAC;IACZ,CAAC;IAWD,4DAA4D;IAClD,eAAe,CAAC,MAAoB;QAE1C,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;QACnE,OAAO;YACH,SAAS,EAAE,MAAM,CAAC,SAAiC;YACnD,WAAW,EAAE,MAAM,CAAC,WAAkB;SACzC,CAAC;IACN,CAAC;CACJ;AA7BD,wCA6BC"}
@@ -0,0 +1,25 @@
1
+ /** 技能定义 — 工具能力包 + 使用指导 */
2
+ export interface Skill {
3
+ /** 技能名称 */
4
+ name: string;
5
+ /** 技能描述(供 LLM 理解何时启用) */
6
+ description: string;
7
+ /** 版本号 */
8
+ version?: string;
9
+ /** 绑定的工具名列表(支持通配: "ns/*") */
10
+ tools: Array<string>;
11
+ /** 注入 Agent 系统提示的使用指导 */
12
+ systemPrompt?: string;
13
+ /** 分类 */
14
+ category?: string;
15
+ /** 约束 */
16
+ constraints?: SkillConstraints;
17
+ }
18
+ /** 技能约束 */
19
+ export interface SkillConstraints {
20
+ /** 每轮对话最大调用次数 */
21
+ maxCallsPerTurn?: number;
22
+ /** 是否需要人工审批 */
23
+ requireApproval?: boolean;
24
+ }
25
+ //# sourceMappingURL=AbstractSkill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractSkill.d.ts","sourceRoot":"","sources":["../../src/base/AbstractSkill.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,MAAM,WAAW,KAAK;IAElB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU;IACV,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS;IACT,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAClC;AAED,WAAW;AACX,MAAM,WAAW,gBAAgB;IAE7B,iBAAiB;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=AbstractSkill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractSkill.js","sourceRoot":"","sources":["../../src/base/AbstractSkill.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import { OpenAIUtility } from "../utility";
2
+ /** 工具定义 — 业务层注册工具的完整描述 */
3
+ export interface ToolDefinition {
4
+ /** 工具名(支持命名空间: "namespace/name") */
5
+ name: string;
6
+ /** 工具描述(供 LLM 理解用途) */
7
+ description: string;
8
+ /** 参数 JSON Schema */
9
+ schema: OpenAIUtility.OpenAI.JSONSchema;
10
+ /** 调用处理函数(业务层封装,内部可调 MCP 或任何逻辑) */
11
+ handler: (args: Record<string, any>) => Promise<string>;
12
+ /** 结果是否可缓存(相同参数返回缓存) */
13
+ cacheable?: boolean;
14
+ /** 失败后是否可重试 */
15
+ retryable?: boolean;
16
+ /** 最大重试次数(默认 1) */
17
+ maxRetries?: number;
18
+ /** 是否可与其他工具并行执行 */
19
+ parallelizable?: boolean;
20
+ /** 是否需要人工审批(预留) */
21
+ requiresApproval?: boolean;
22
+ /** 工具分类 */
23
+ category?: string;
24
+ }
25
+ /** 工具执行上下文 — Agent 调用工具时传入 */
26
+ export interface ToolContext {
27
+ /** 所属 Agent ID */
28
+ agentId: string;
29
+ /** 所属对话 ID(如果有) */
30
+ dialogId?: string;
31
+ /** 当前对话轮次 */
32
+ turnCount: number;
33
+ }
34
+ //# sourceMappingURL=AbstractTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractTool.d.ts","sourceRoot":"","sources":["../../src/base/AbstractTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,0BAA0B;AAC1B,MAAM,WAAW,cAAc;IAE3B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC;IACxC,mCAAmC;IACnC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD,wBAAwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,8BAA8B;AAC9B,MAAM,WAAW,WAAW;IAExB,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=AbstractTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractTool.js","sourceRoot":"","sources":["../../src/base/AbstractTool.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export * from "./AbstractObject";
2
+ export * from "./AbstractModule";
3
+ export * from "./AbstractAgent";
4
+ export * from "./AbstractReason";
5
+ export * from "./AbstractDialog";
6
+ export * from "./AbstractTool";
7
+ export * from "./AbstractSkill";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
package/base/index.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./AbstractObject"), exports);
18
+ __exportStar(require("./AbstractModule"), exports);
19
+ __exportStar(require("./AbstractAgent"), exports);
20
+ __exportStar(require("./AbstractReason"), exports);
21
+ __exportStar(require("./AbstractDialog"), exports);
22
+ __exportStar(require("./AbstractTool"), exports);
23
+ __exportStar(require("./AbstractSkill"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,mDAAiC;AACjC,kDAAgC;AAChC,mDAAiC;AACjC,mDAAiC;AACjC,iDAA+B;AAC/B,kDAAgC"}