wave-agent-sdk 0.6.4 → 0.7.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.
- package/dist/agent.d.ts +8 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +49 -240
- package/dist/constants/tools.d.ts +0 -2
- package/dist/constants/tools.d.ts.map +1 -1
- package/dist/constants/tools.js +0 -2
- package/dist/core/plugin.d.ts +86 -0
- package/dist/core/plugin.d.ts.map +1 -0
- package/dist/core/plugin.js +164 -0
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/managers/MemoryRuleManager.d.ts +3 -1
- package/dist/managers/MemoryRuleManager.d.ts.map +1 -1
- package/dist/managers/MemoryRuleManager.js +2 -1
- package/dist/managers/aiManager.d.ts +13 -23
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +59 -32
- package/dist/managers/backgroundTaskManager.d.ts +3 -1
- package/dist/managers/backgroundTaskManager.d.ts.map +1 -1
- package/dist/managers/backgroundTaskManager.js +2 -1
- package/dist/managers/bashManager.d.ts +4 -4
- package/dist/managers/bashManager.d.ts.map +1 -1
- package/dist/managers/bashManager.js +5 -2
- package/dist/managers/foregroundTaskManager.d.ts +3 -0
- package/dist/managers/foregroundTaskManager.d.ts.map +1 -1
- package/dist/managers/foregroundTaskManager.js +2 -1
- package/dist/managers/hookManager.d.ts +3 -3
- package/dist/managers/hookManager.d.ts.map +1 -1
- package/dist/managers/hookManager.js +20 -19
- package/dist/managers/liveConfigManager.d.ts +6 -13
- package/dist/managers/liveConfigManager.d.ts.map +1 -1
- package/dist/managers/liveConfigManager.js +50 -45
- package/dist/managers/lspManager.d.ts +4 -5
- package/dist/managers/lspManager.d.ts.map +1 -1
- package/dist/managers/lspManager.js +13 -12
- package/dist/managers/mcpManager.d.ts +3 -2
- package/dist/managers/mcpManager.d.ts.map +1 -1
- package/dist/managers/mcpManager.js +16 -15
- package/dist/managers/messageManager.d.ts +5 -7
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/messageManager.js +12 -7
- package/dist/managers/permissionManager.d.ts +6 -4
- package/dist/managers/permissionManager.d.ts.map +1 -1
- package/dist/managers/permissionManager.js +39 -63
- package/dist/managers/planManager.d.ts +4 -6
- package/dist/managers/planManager.d.ts.map +1 -1
- package/dist/managers/planManager.js +18 -4
- package/dist/managers/pluginManager.d.ts +10 -22
- package/dist/managers/pluginManager.d.ts.map +1 -1
- package/dist/managers/pluginManager.js +27 -14
- package/dist/managers/reversionManager.d.ts +4 -3
- package/dist/managers/reversionManager.d.ts.map +1 -1
- package/dist/managers/reversionManager.js +5 -2
- package/dist/managers/skillManager.d.ts +3 -2
- package/dist/managers/skillManager.d.ts.map +1 -1
- package/dist/managers/skillManager.js +15 -14
- package/dist/managers/slashCommandManager.d.ts +9 -16
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +21 -10
- package/dist/managers/subagentManager.d.ts +7 -17
- package/dist/managers/subagentManager.d.ts.map +1 -1
- package/dist/managers/subagentManager.js +41 -34
- package/dist/managers/toolManager.d.ts +15 -38
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/managers/toolManager.js +66 -56
- package/dist/prompts/index.d.ts +6 -3
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +8 -16
- package/dist/services/MarketplaceService.d.ts.map +1 -1
- package/dist/services/MarketplaceService.js +13 -0
- package/dist/services/aiService.d.ts +4 -0
- package/dist/services/aiService.d.ts.map +1 -1
- package/dist/services/aiService.js +47 -7
- package/dist/services/configurationService.d.ts.map +1 -1
- package/dist/services/configurationService.js +30 -11
- package/dist/services/taskManager.d.ts +3 -1
- package/dist/services/taskManager.d.ts.map +1 -1
- package/dist/services/taskManager.js +2 -1
- package/dist/tools/bashTool.js +2 -2
- package/dist/tools/editTool.d.ts.map +1 -1
- package/dist/tools/editTool.js +9 -1
- package/dist/tools/readTool.d.ts.map +1 -1
- package/dist/tools/readTool.js +2 -2
- package/dist/tools/skillTool.d.ts +2 -4
- package/dist/tools/skillTool.d.ts.map +1 -1
- package/dist/tools/skillTool.js +61 -61
- package/dist/tools/taskOutputTool.js +1 -1
- package/dist/tools/taskTool.d.ts +2 -4
- package/dist/tools/taskTool.d.ts.map +1 -1
- package/dist/tools/taskTool.js +192 -187
- package/dist/tools/types.d.ts +11 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/writeTool.d.ts.map +1 -1
- package/dist/tools/writeTool.js +4 -2
- package/dist/types/marketplace.d.ts +8 -0
- package/dist/types/marketplace.d.ts.map +1 -1
- package/dist/types/permissions.d.ts +1 -1
- package/dist/types/permissions.d.ts.map +1 -1
- package/dist/types/permissions.js +1 -3
- package/dist/types/skills.d.ts +0 -2
- package/dist/types/skills.d.ts.map +1 -1
- package/dist/types/tools.d.ts +0 -15
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/utils/container.d.ts +31 -0
- package/dist/utils/container.d.ts.map +1 -0
- package/dist/utils/container.js +79 -0
- package/dist/utils/containerSetup.d.ts +26 -0
- package/dist/utils/containerSetup.d.ts.map +1 -0
- package/dist/utils/containerSetup.js +165 -0
- package/dist/utils/editUtils.d.ts +0 -3
- package/dist/utils/editUtils.d.ts.map +1 -1
- package/dist/utils/editUtils.js +4 -3
- package/dist/utils/hookMatcher.d.ts +1 -1
- package/dist/utils/hookMatcher.d.ts.map +1 -1
- package/dist/utils/hookMatcher.js +2 -2
- package/dist/utils/openaiClient.js +2 -2
- package/dist/utils/stringUtils.d.ts +6 -0
- package/dist/utils/stringUtils.d.ts.map +1 -1
- package/dist/utils/stringUtils.js +8 -0
- package/package.json +1 -1
- package/src/agent.ts +60 -282
- package/src/constants/tools.ts +0 -2
- package/src/core/plugin.ts +224 -0
- package/src/index.ts +1 -6
- package/src/managers/MemoryRuleManager.ts +6 -1
- package/src/managers/aiManager.ts +83 -58
- package/src/managers/backgroundTaskManager.ts +5 -1
- package/src/managers/bashManager.ts +9 -4
- package/src/managers/foregroundTaskManager.ts +3 -0
- package/src/managers/hookManager.ts +21 -23
- package/src/managers/liveConfigManager.ts +57 -53
- package/src/managers/lspManager.ts +14 -19
- package/src/managers/mcpManager.ts +20 -20
- package/src/managers/messageManager.ts +19 -12
- package/src/managers/permissionManager.ts +45 -70
- package/src/managers/planManager.ts +26 -7
- package/src/managers/pluginManager.ts +37 -33
- package/src/managers/reversionManager.ts +5 -3
- package/src/managers/skillManager.ts +19 -20
- package/src/managers/slashCommandManager.ts +30 -25
- package/src/managers/subagentManager.ts +53 -53
- package/src/managers/toolManager.ts +91 -90
- package/src/prompts/index.ts +12 -24
- package/src/services/MarketplaceService.ts +13 -0
- package/src/services/aiService.ts +61 -15
- package/src/services/configurationService.ts +34 -13
- package/src/services/taskManager.ts +5 -1
- package/src/tools/bashTool.ts +2 -2
- package/src/tools/editTool.ts +9 -1
- package/src/tools/readTool.ts +2 -2
- package/src/tools/skillTool.ts +75 -71
- package/src/tools/taskOutputTool.ts +1 -1
- package/src/tools/taskTool.ts +224 -225
- package/src/tools/types.ts +12 -1
- package/src/tools/writeTool.ts +4 -2
- package/src/types/marketplace.ts +9 -0
- package/src/types/permissions.ts +0 -4
- package/src/types/skills.ts +0 -3
- package/src/types/tools.ts +0 -17
- package/src/utils/container.ts +92 -0
- package/src/utils/containerSetup.ts +256 -0
- package/src/utils/editUtils.ts +4 -3
- package/src/utils/hookMatcher.ts +2 -2
- package/src/utils/openaiClient.ts +2 -2
- package/src/utils/stringUtils.ts +9 -0
- package/dist/tools/deleteFileTool.d.ts +0 -6
- package/dist/tools/deleteFileTool.d.ts.map +0 -1
- package/dist/tools/deleteFileTool.js +0 -100
- package/dist/tools/multiEditTool.d.ts +0 -6
- package/dist/tools/multiEditTool.d.ts.map +0 -1
- package/dist/tools/multiEditTool.js +0 -246
- package/src/tools/deleteFileTool.ts +0 -127
- package/src/tools/multiEditTool.ts +0 -306
|
@@ -2,25 +2,26 @@ import { readdir, stat } from "fs/promises";
|
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import { homedir } from "os";
|
|
4
4
|
import { parseSkillFile, formatSkillError } from "../utils/skillParser.js";
|
|
5
|
+
import { logger } from "../utils/globalLogger.js";
|
|
5
6
|
/**
|
|
6
7
|
* Manages skill discovery and loading
|
|
7
8
|
*/
|
|
8
9
|
export class SkillManager {
|
|
9
|
-
constructor(options = {}) {
|
|
10
|
+
constructor(container, options = {}) {
|
|
11
|
+
this.container = container;
|
|
10
12
|
this.skillMetadata = new Map();
|
|
11
13
|
this.skillContent = new Map();
|
|
12
14
|
this.initialized = false;
|
|
13
15
|
this.personalSkillsPath =
|
|
14
16
|
options.personalSkillsPath || join(homedir(), ".wave", "skills");
|
|
15
17
|
this.scanTimeout = options.scanTimeout || 5000;
|
|
16
|
-
this.logger = options.logger;
|
|
17
18
|
this.workdir = options.workdir || process.cwd();
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* Initialize the skill manager by discovering available skills
|
|
21
22
|
*/
|
|
22
23
|
async initialize() {
|
|
23
|
-
|
|
24
|
+
logger?.debug("Initializing SkillManager...");
|
|
24
25
|
try {
|
|
25
26
|
// Clear existing data before discovery
|
|
26
27
|
this.skillMetadata.clear();
|
|
@@ -35,16 +36,16 @@ export class SkillManager {
|
|
|
35
36
|
});
|
|
36
37
|
// Log any discovery errors
|
|
37
38
|
if (discovery.errors.length > 0) {
|
|
38
|
-
|
|
39
|
+
logger?.warn(`Found ${discovery.errors.length} skill discovery errors`);
|
|
39
40
|
discovery.errors.forEach((error) => {
|
|
40
|
-
|
|
41
|
+
logger?.warn(`Skill error in ${error.skillPath}: ${error.message}`);
|
|
41
42
|
});
|
|
42
43
|
}
|
|
43
44
|
this.initialized = true;
|
|
44
|
-
|
|
45
|
+
logger?.debug(`SkillManager initialized with ${this.skillMetadata.size} skills`);
|
|
45
46
|
}
|
|
46
47
|
catch (error) {
|
|
47
|
-
|
|
48
|
+
logger?.error("Failed to initialize SkillManager:", error);
|
|
48
49
|
throw error;
|
|
49
50
|
}
|
|
50
51
|
}
|
|
@@ -74,10 +75,10 @@ export class SkillManager {
|
|
|
74
75
|
// Return skill content that was loaded during initialization
|
|
75
76
|
const skill = this.skillContent.get(skillName);
|
|
76
77
|
if (skill) {
|
|
77
|
-
|
|
78
|
+
logger?.debug(`Skill '${skillName}' retrieved from loaded content`);
|
|
78
79
|
return skill;
|
|
79
80
|
}
|
|
80
|
-
|
|
81
|
+
logger?.debug(`Skill '${skillName}' not found`);
|
|
81
82
|
return null;
|
|
82
83
|
}
|
|
83
84
|
/**
|
|
@@ -105,7 +106,7 @@ export class SkillManager {
|
|
|
105
106
|
const skillsPath = type === "personal" ? basePath : join(basePath, ".wave", "skills");
|
|
106
107
|
try {
|
|
107
108
|
const skillDirs = await this.findSkillDirectories(skillsPath);
|
|
108
|
-
|
|
109
|
+
logger?.debug(`Found ${skillDirs.length} potential skill directories in ${skillsPath}`);
|
|
109
110
|
for (const skillDir of skillDirs) {
|
|
110
111
|
try {
|
|
111
112
|
const skillFilePath = join(skillDir, "SKILL.md");
|
|
@@ -157,7 +158,7 @@ export class SkillManager {
|
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
160
|
catch (error) {
|
|
160
|
-
|
|
161
|
+
logger?.debug(`Could not scan ${skillsPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
161
162
|
// Not an error - the directory might not exist yet
|
|
162
163
|
}
|
|
163
164
|
return collection;
|
|
@@ -185,7 +186,7 @@ export class SkillManager {
|
|
|
185
186
|
*/
|
|
186
187
|
async executeSkill(args) {
|
|
187
188
|
const { skill_name } = args;
|
|
188
|
-
|
|
189
|
+
logger?.debug(`Invoking skill: ${skill_name}`);
|
|
189
190
|
try {
|
|
190
191
|
// Load the skill
|
|
191
192
|
const skill = await this.loadSkill(skill_name);
|
|
@@ -209,7 +210,7 @@ export class SkillManager {
|
|
|
209
210
|
};
|
|
210
211
|
}
|
|
211
212
|
catch (error) {
|
|
212
|
-
|
|
213
|
+
logger?.error(`Failed to execute skill '${skill_name}':`, error);
|
|
213
214
|
return {
|
|
214
215
|
content: `❌ **Error executing skill**: ${error instanceof Error ? error.message : String(error)}`,
|
|
215
216
|
};
|
|
@@ -252,6 +253,6 @@ export class SkillManager {
|
|
|
252
253
|
});
|
|
253
254
|
this.skillContent.set(skill.name, skill);
|
|
254
255
|
}
|
|
255
|
-
|
|
256
|
+
logger?.debug(`Registered ${skills.length} plugin skills. Total skills: ${this.skillMetadata.size}`);
|
|
256
257
|
}
|
|
257
258
|
}
|
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
3
|
-
import type { BackgroundTaskManager } from "./backgroundTaskManager.js";
|
|
4
|
-
import type { TaskManager } from "../services/taskManager.js";
|
|
5
|
-
import type { SlashCommand, CustomSlashCommand, Logger } from "../types/index.js";
|
|
1
|
+
import type { SlashCommand, CustomSlashCommand } from "../types/index.js";
|
|
2
|
+
import { Container } from "../utils/container.js";
|
|
6
3
|
export interface SlashCommandManagerOptions {
|
|
7
|
-
messageManager: MessageManager;
|
|
8
|
-
aiManager: AIManager;
|
|
9
|
-
backgroundTaskManager: BackgroundTaskManager;
|
|
10
|
-
taskManager: TaskManager;
|
|
11
4
|
workdir: string;
|
|
12
|
-
logger?: Logger;
|
|
13
5
|
}
|
|
14
6
|
export declare class SlashCommandManager {
|
|
7
|
+
private container;
|
|
15
8
|
private commands;
|
|
16
9
|
private customCommands;
|
|
17
|
-
private messageManager;
|
|
18
|
-
private aiManager;
|
|
19
|
-
private backgroundTaskManager;
|
|
20
|
-
private taskManager;
|
|
21
10
|
private workdir;
|
|
22
|
-
|
|
23
|
-
|
|
11
|
+
constructor(container: Container, options: SlashCommandManagerOptions);
|
|
12
|
+
initialize(): void;
|
|
13
|
+
private get messageManager();
|
|
14
|
+
private get aiManager();
|
|
15
|
+
private get backgroundTaskManager();
|
|
16
|
+
private get taskManager();
|
|
24
17
|
private initializeBuiltinCommands;
|
|
25
18
|
/**
|
|
26
19
|
* Load custom commands from filesystem
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slashCommandManager.d.ts","sourceRoot":"","sources":["../../src/managers/slashCommandManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slashCommandManager.d.ts","sourceRoot":"","sources":["../../src/managers/slashCommandManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQ1E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAclD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAmB;IAM5B,OAAO,CAAC,SAAS;IALnB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,OAAO,CAAS;gBAGd,SAAS,EAAE,SAAS,EAC5B,OAAO,EAAE,0BAA0B;IAK9B,UAAU,IAAI,IAAI;IAKzB,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,qBAAqB,GAEhC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,CAAC,yBAAyB;IAsCjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyD1B;;OAEG;IACI,sBAAsB,CAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,IAAI;IAwDP;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAWnC;;OAEG;IACI,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAKnD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACI,WAAW,IAAI,YAAY,EAAE;IAIpC;;OAEG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI9D;;OAEG;IACU,cAAc,CACzB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IAenB;;;OAGG;IACI,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG;QAClD,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;IAeD;;OAEG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI7C;;OAEG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI1E;;OAEG;IACI,iBAAiB,IAAI,kBAAkB,EAAE;IAIhD;;OAEG;YACW,+BAA+B;IA0E7C;;OAEG;IACI,mBAAmB,IAAI,IAAI;CAInC"}
|
|
@@ -5,19 +5,30 @@ import { exec } from "child_process";
|
|
|
5
5
|
import { promisify } from "util";
|
|
6
6
|
import { INIT_PROMPT } from "../prompts/index.js";
|
|
7
7
|
const execAsync = promisify(exec);
|
|
8
|
+
import { logger } from "../utils/globalLogger.js";
|
|
8
9
|
export class SlashCommandManager {
|
|
9
|
-
constructor(options) {
|
|
10
|
+
constructor(container, options) {
|
|
11
|
+
this.container = container;
|
|
10
12
|
this.commands = new Map();
|
|
11
13
|
this.customCommands = new Map();
|
|
12
|
-
this.messageManager = options.messageManager;
|
|
13
|
-
this.aiManager = options.aiManager;
|
|
14
|
-
this.backgroundTaskManager = options.backgroundTaskManager;
|
|
15
|
-
this.taskManager = options.taskManager;
|
|
16
14
|
this.workdir = options.workdir;
|
|
17
|
-
|
|
15
|
+
}
|
|
16
|
+
initialize() {
|
|
18
17
|
this.initializeBuiltinCommands();
|
|
19
18
|
this.loadCustomCommands();
|
|
20
19
|
}
|
|
20
|
+
get messageManager() {
|
|
21
|
+
return this.container.get("MessageManager");
|
|
22
|
+
}
|
|
23
|
+
get aiManager() {
|
|
24
|
+
return this.container.get("AIManager");
|
|
25
|
+
}
|
|
26
|
+
get backgroundTaskManager() {
|
|
27
|
+
return this.container.get("BackgroundTaskManager");
|
|
28
|
+
}
|
|
29
|
+
get taskManager() {
|
|
30
|
+
return this.container.get("TaskManager");
|
|
31
|
+
}
|
|
21
32
|
initializeBuiltinCommands() {
|
|
22
33
|
// Register built-in clear command
|
|
23
34
|
this.registerCommand({
|
|
@@ -87,10 +98,10 @@ export class SlashCommandManager {
|
|
|
87
98
|
},
|
|
88
99
|
});
|
|
89
100
|
}
|
|
90
|
-
|
|
101
|
+
logger?.debug(`Loaded ${customCommands.length} custom commands`);
|
|
91
102
|
}
|
|
92
103
|
catch (error) {
|
|
93
|
-
|
|
104
|
+
logger?.warn("Failed to load custom commands:", error);
|
|
94
105
|
}
|
|
95
106
|
}
|
|
96
107
|
/**
|
|
@@ -129,7 +140,7 @@ export class SlashCommandManager {
|
|
|
129
140
|
},
|
|
130
141
|
});
|
|
131
142
|
}
|
|
132
|
-
|
|
143
|
+
logger?.debug(`Registered ${commands.length} commands from plugin '${pluginName}'`);
|
|
133
144
|
}
|
|
134
145
|
/**
|
|
135
146
|
* Reload custom commands (useful for development)
|
|
@@ -271,7 +282,7 @@ export class SlashCommandManager {
|
|
|
271
282
|
});
|
|
272
283
|
}
|
|
273
284
|
catch (error) {
|
|
274
|
-
|
|
285
|
+
logger?.error(`Failed to execute custom command '${commandName}':`, error);
|
|
275
286
|
// Add error to message manager
|
|
276
287
|
this.messageManager.addErrorBlock(`Failed to execute custom command '${commandName}': ${error instanceof Error ? error.message : String(error)}`);
|
|
277
288
|
}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import type { MemoryRuleManager } from "./MemoryRuleManager.js";
|
|
2
1
|
import type { SubagentConfiguration } from "../utils/subagentParser.js";
|
|
3
|
-
import type { Message,
|
|
2
|
+
import type { Message, GatewayConfig, ModelConfig, Usage } from "../types/index.js";
|
|
4
3
|
import { AIManager } from "./aiManager.js";
|
|
5
4
|
import { MessageManager } from "./messageManager.js";
|
|
6
5
|
import { ToolManager } from "./toolManager.js";
|
|
7
|
-
import { HookManager } from "./hookManager.js";
|
|
8
|
-
import { BackgroundTaskManager } from "./backgroundTaskManager.js";
|
|
9
6
|
import { UserMessageParams, type AgentToolBlockUpdateParams } from "../utils/messageOperations.js";
|
|
7
|
+
import { Container } from "../utils/container.js";
|
|
10
8
|
export interface SubagentManagerCallbacks {
|
|
11
9
|
/** Triggered when subagent adds user message */
|
|
12
10
|
onSubagentUserMessageAdded?: (subagentId: string, params: UserMessageParams) => void;
|
|
@@ -33,41 +31,33 @@ export interface SubagentInstance {
|
|
|
33
31
|
messages: Message[];
|
|
34
32
|
lastTools: string[];
|
|
35
33
|
subagentType: string;
|
|
34
|
+
description: string;
|
|
36
35
|
backgroundTaskId?: string;
|
|
37
36
|
onUpdate?: () => void;
|
|
38
37
|
}
|
|
39
38
|
export interface SubagentManagerOptions {
|
|
40
39
|
workdir: string;
|
|
41
|
-
parentToolManager: ToolManager;
|
|
42
|
-
taskManager: import("../services/taskManager.js").TaskManager;
|
|
43
40
|
callbacks?: SubagentManagerCallbacks;
|
|
44
|
-
logger?: Logger;
|
|
45
41
|
getGatewayConfig: () => GatewayConfig;
|
|
46
42
|
getModelConfig: () => ModelConfig;
|
|
47
43
|
getMaxInputTokens: () => number;
|
|
48
44
|
getLanguage: () => string | undefined;
|
|
49
|
-
|
|
45
|
+
getEnvironmentVars?: () => Record<string, string>;
|
|
50
46
|
onUsageAdded?: (usage: Usage) => void;
|
|
51
|
-
backgroundTaskManager?: BackgroundTaskManager;
|
|
52
|
-
memoryRuleManager?: MemoryRuleManager;
|
|
53
47
|
}
|
|
54
48
|
export declare class SubagentManager {
|
|
55
49
|
private instances;
|
|
56
50
|
private cachedConfigurations;
|
|
57
51
|
private workdir;
|
|
58
|
-
private parentToolManager;
|
|
59
|
-
private taskManager;
|
|
60
52
|
private callbacks?;
|
|
61
|
-
private logger?;
|
|
62
53
|
private getGatewayConfig;
|
|
63
54
|
private getModelConfig;
|
|
64
55
|
private getMaxInputTokens;
|
|
65
56
|
private getLanguage;
|
|
66
|
-
private
|
|
57
|
+
private getEnvironmentVars?;
|
|
67
58
|
private onUsageAdded?;
|
|
68
|
-
private
|
|
69
|
-
|
|
70
|
-
constructor(options: SubagentManagerOptions);
|
|
59
|
+
private container;
|
|
60
|
+
constructor(container: Container, options: SubagentManagerOptions);
|
|
71
61
|
/**
|
|
72
62
|
* Initialize the SubagentManager by loading and caching configurations
|
|
73
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagentManager.d.ts","sourceRoot":"","sources":["../../src/managers/subagentManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"subagentManager.d.ts","sourceRoot":"","sources":["../../src/managers/subagentManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,22 +3,18 @@ import { AIManager } from "./aiManager.js";
|
|
|
3
3
|
import { MessageManager } from "./messageManager.js";
|
|
4
4
|
import { addConsolidatedAbortListener, createAbortPromise, } from "../utils/abortUtils.js";
|
|
5
5
|
export class SubagentManager {
|
|
6
|
-
constructor(options) {
|
|
6
|
+
constructor(container, options) {
|
|
7
7
|
this.instances = new Map();
|
|
8
8
|
this.cachedConfigurations = null;
|
|
9
|
+
this.container = container;
|
|
9
10
|
this.workdir = options.workdir;
|
|
10
|
-
this.parentToolManager = options.parentToolManager;
|
|
11
|
-
this.taskManager = options.taskManager;
|
|
12
11
|
this.callbacks = options.callbacks; // Store SubagentManagerCallbacks
|
|
13
|
-
this.logger = options.logger;
|
|
14
12
|
this.getGatewayConfig = options.getGatewayConfig;
|
|
15
13
|
this.getModelConfig = options.getModelConfig;
|
|
16
14
|
this.getMaxInputTokens = options.getMaxInputTokens;
|
|
17
15
|
this.getLanguage = options.getLanguage;
|
|
18
|
-
this.
|
|
16
|
+
this.getEnvironmentVars = options.getEnvironmentVars;
|
|
19
17
|
this.onUsageAdded = options.onUsageAdded;
|
|
20
|
-
this.backgroundTaskManager = options.backgroundTaskManager;
|
|
21
|
-
this.memoryRuleManager = options.memoryRuleManager;
|
|
22
18
|
}
|
|
23
19
|
/**
|
|
24
20
|
* Initialize the SubagentManager by loading and caching configurations
|
|
@@ -56,33 +52,29 @@ export class SubagentManager {
|
|
|
56
52
|
* Create a new subagent instance with isolated managers
|
|
57
53
|
*/
|
|
58
54
|
async createInstance(configuration, parameters, runInBackground, onUpdate) {
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
const parentToolManager = this.container.get("ToolManager");
|
|
56
|
+
if (!parentToolManager) {
|
|
57
|
+
throw new Error("SubagentManager not properly initialized - ToolManager not found in container");
|
|
61
58
|
}
|
|
62
59
|
const subagentId = randomUUID();
|
|
60
|
+
// Create a child container for the subagent to isolate its managers
|
|
61
|
+
const subagentContainer = this.container.createChild();
|
|
63
62
|
// Create isolated MessageManager for the subagent
|
|
64
63
|
const subagentCallbacks = this.createSubagentCallbacks(subagentId);
|
|
65
|
-
const messageManager = new MessageManager({
|
|
64
|
+
const messageManager = new MessageManager(subagentContainer, {
|
|
66
65
|
callbacks: subagentCallbacks,
|
|
67
66
|
workdir: this.workdir,
|
|
68
|
-
logger: this.logger,
|
|
69
67
|
sessionType: "subagent",
|
|
70
68
|
subagentType: parameters.subagent_type,
|
|
71
|
-
memoryRuleManager: this.memoryRuleManager,
|
|
72
69
|
});
|
|
70
|
+
subagentContainer.register("MessageManager", messageManager);
|
|
73
71
|
// Use the parent tool manager directly - tool restrictions will be handled by allowedTools parameter
|
|
74
|
-
const toolManager =
|
|
72
|
+
const toolManager = parentToolManager;
|
|
75
73
|
// Create isolated AIManager for the subagent
|
|
76
|
-
const aiManager = new AIManager({
|
|
77
|
-
messageManager,
|
|
78
|
-
toolManager,
|
|
79
|
-
taskManager: this.taskManager,
|
|
80
|
-
logger: this.logger,
|
|
74
|
+
const aiManager = new AIManager(subagentContainer, {
|
|
81
75
|
workdir: this.workdir,
|
|
82
76
|
systemPrompt: configuration.systemPrompt,
|
|
83
77
|
subagentType: parameters.subagent_type, // Pass subagent type for hook context
|
|
84
|
-
hookManager: this.hookManager,
|
|
85
|
-
permissionManager: this.parentToolManager.getPermissionManager(),
|
|
86
78
|
getGatewayConfig: this.getGatewayConfig,
|
|
87
79
|
getModelConfig: () => {
|
|
88
80
|
// Determine model dynamically each time
|
|
@@ -107,10 +99,12 @@ export class SubagentManager {
|
|
|
107
99
|
},
|
|
108
100
|
getMaxInputTokens: this.getMaxInputTokens,
|
|
109
101
|
getLanguage: this.getLanguage,
|
|
102
|
+
getEnvironmentVars: this.getEnvironmentVars,
|
|
110
103
|
callbacks: {
|
|
111
104
|
onUsageAdded: this.onUsageAdded,
|
|
112
105
|
},
|
|
113
106
|
});
|
|
107
|
+
subagentContainer.register("AIManager", aiManager);
|
|
114
108
|
const instance = {
|
|
115
109
|
subagentId,
|
|
116
110
|
configuration,
|
|
@@ -121,6 +115,7 @@ export class SubagentManager {
|
|
|
121
115
|
messages: [],
|
|
122
116
|
lastTools: [], // Initialize lastTools
|
|
123
117
|
subagentType: parameters.subagent_type, // Store the subagent type
|
|
118
|
+
description: parameters.description, // Store the AI-generated description
|
|
124
119
|
onUpdate,
|
|
125
120
|
};
|
|
126
121
|
this.instances.set(subagentId, instance);
|
|
@@ -140,15 +135,18 @@ export class SubagentManager {
|
|
|
140
135
|
}
|
|
141
136
|
// Set status to active and update parent
|
|
142
137
|
this.updateInstanceStatus(instance.subagentId, "active");
|
|
143
|
-
|
|
144
|
-
|
|
138
|
+
const backgroundTaskManager = this.container.has("BackgroundTaskManager")
|
|
139
|
+
? this.container.get("BackgroundTaskManager")
|
|
140
|
+
: undefined;
|
|
141
|
+
if (runInBackground && backgroundTaskManager) {
|
|
142
|
+
const taskId = backgroundTaskManager.generateId();
|
|
145
143
|
const startTime = Date.now();
|
|
146
|
-
|
|
144
|
+
backgroundTaskManager.addTask({
|
|
147
145
|
id: taskId,
|
|
148
146
|
type: "subagent",
|
|
149
147
|
status: "running",
|
|
150
148
|
startTime,
|
|
151
|
-
description: instance.
|
|
149
|
+
description: instance.description,
|
|
152
150
|
stdout: "",
|
|
153
151
|
stderr: "",
|
|
154
152
|
subagentId: instance.subagentId,
|
|
@@ -162,7 +160,7 @@ export class SubagentManager {
|
|
|
162
160
|
(async () => {
|
|
163
161
|
try {
|
|
164
162
|
const result = await this.internalExecute(instance, prompt, abortSignal);
|
|
165
|
-
const task =
|
|
163
|
+
const task = backgroundTaskManager?.getTask(taskId);
|
|
166
164
|
if (task) {
|
|
167
165
|
task.status = "completed";
|
|
168
166
|
task.stdout = result;
|
|
@@ -171,7 +169,7 @@ export class SubagentManager {
|
|
|
171
169
|
}
|
|
172
170
|
}
|
|
173
171
|
catch (error) {
|
|
174
|
-
const task =
|
|
172
|
+
const task = backgroundTaskManager?.getTask(taskId);
|
|
175
173
|
if (task) {
|
|
176
174
|
task.status = "failed";
|
|
177
175
|
task.stderr =
|
|
@@ -195,17 +193,20 @@ export class SubagentManager {
|
|
|
195
193
|
if (!instance) {
|
|
196
194
|
throw new Error(`Subagent instance ${subagentId} not found`);
|
|
197
195
|
}
|
|
198
|
-
|
|
196
|
+
const backgroundTaskManager = this.container.has("BackgroundTaskManager")
|
|
197
|
+
? this.container.get("BackgroundTaskManager")
|
|
198
|
+
: undefined;
|
|
199
|
+
if (!backgroundTaskManager) {
|
|
199
200
|
throw new Error("BackgroundTaskManager not available");
|
|
200
201
|
}
|
|
201
|
-
const taskId =
|
|
202
|
+
const taskId = backgroundTaskManager.generateId();
|
|
202
203
|
const startTime = Date.now();
|
|
203
|
-
|
|
204
|
+
backgroundTaskManager.addTask({
|
|
204
205
|
id: taskId,
|
|
205
206
|
type: "subagent",
|
|
206
207
|
status: "running",
|
|
207
208
|
startTime,
|
|
208
|
-
description: instance.
|
|
209
|
+
description: instance.description,
|
|
209
210
|
stdout: "",
|
|
210
211
|
stderr: "",
|
|
211
212
|
subagentId: instance.subagentId,
|
|
@@ -293,9 +294,12 @@ export class SubagentManager {
|
|
|
293
294
|
const response = textBlocks.map((block) => block.content).join("\n");
|
|
294
295
|
// Update status to completed and update parent
|
|
295
296
|
this.updateInstanceStatus(instance.subagentId, "completed");
|
|
297
|
+
const backgroundTaskManager = this.container.has("BackgroundTaskManager")
|
|
298
|
+
? this.container.get("BackgroundTaskManager")
|
|
299
|
+
: undefined;
|
|
296
300
|
// If this was transitioned to background, update the background task
|
|
297
|
-
if (instance.backgroundTaskId &&
|
|
298
|
-
const task =
|
|
301
|
+
if (instance.backgroundTaskId && backgroundTaskManager) {
|
|
302
|
+
const task = backgroundTaskManager.getTask(instance.backgroundTaskId);
|
|
299
303
|
if (task) {
|
|
300
304
|
task.status = "completed";
|
|
301
305
|
task.stdout = response || "Task completed with no text response";
|
|
@@ -308,9 +312,12 @@ export class SubagentManager {
|
|
|
308
312
|
return response || "Task completed with no text response";
|
|
309
313
|
}
|
|
310
314
|
catch (error) {
|
|
315
|
+
const backgroundTaskManager = this.container.has("BackgroundTaskManager")
|
|
316
|
+
? this.container.get("BackgroundTaskManager")
|
|
317
|
+
: undefined;
|
|
311
318
|
// If this was transitioned to background, update the background task with error
|
|
312
|
-
if (instance.backgroundTaskId &&
|
|
313
|
-
const task =
|
|
319
|
+
if (instance.backgroundTaskId && backgroundTaskManager) {
|
|
320
|
+
const task = backgroundTaskManager.getTask(instance.backgroundTaskId);
|
|
314
321
|
if (task) {
|
|
315
322
|
task.status = "failed";
|
|
316
323
|
task.stderr = error instanceof Error ? error.message : String(error);
|
|
@@ -1,29 +1,12 @@
|
|
|
1
1
|
import type { ToolContext, ToolPlugin, ToolResult } from "../tools/types.js";
|
|
2
|
-
import { McpManager } from "./mcpManager.js";
|
|
3
2
|
import { PermissionManager } from "./permissionManager.js";
|
|
4
3
|
import { ChatCompletionFunctionTool } from "openai/resources.js";
|
|
5
|
-
import type {
|
|
6
|
-
import
|
|
7
|
-
import type { SkillManager } from "./skillManager.js";
|
|
8
|
-
import { ReversionManager } from "./reversionManager.js";
|
|
4
|
+
import type { PermissionMode } from "../types/index.js";
|
|
5
|
+
import { Container } from "../utils/container.js";
|
|
9
6
|
export interface ToolManagerOptions {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/** Permission manager for handling tool permission checks */
|
|
14
|
-
permissionManager?: PermissionManager;
|
|
15
|
-
/** Foreground task manager for backgrounding tasks */
|
|
16
|
-
foregroundTaskManager?: import("../types/processes.js").IForegroundTaskManager;
|
|
17
|
-
/** Task manager for task management */
|
|
18
|
-
taskManager?: import("../services/taskManager.js").TaskManager;
|
|
19
|
-
/** Reversion manager for file snapshots */
|
|
20
|
-
reversionManager?: ReversionManager;
|
|
21
|
-
/** Background task manager for background execution */
|
|
22
|
-
backgroundTaskManager?: import("./backgroundTaskManager.js").BackgroundTaskManager;
|
|
23
|
-
/** Permission mode for tool execution (defaults to "default") */
|
|
24
|
-
permissionMode?: PermissionMode;
|
|
25
|
-
/** Custom permission callback for tool usage */
|
|
26
|
-
canUseToolCallback?: PermissionCallback;
|
|
7
|
+
container: Container;
|
|
8
|
+
/** Optional list of tool names to enable */
|
|
9
|
+
tools?: string[];
|
|
27
10
|
}
|
|
28
11
|
/**
|
|
29
12
|
* Tool Manager
|
|
@@ -32,18 +15,11 @@ export interface ToolManagerOptions {
|
|
|
32
15
|
* Supports both built-in tools and MCP (Model Context Protocol) tools.
|
|
33
16
|
*/
|
|
34
17
|
declare class ToolManager {
|
|
35
|
-
private
|
|
36
|
-
private
|
|
37
|
-
private
|
|
38
|
-
private logger?;
|
|
39
|
-
private permissionManager?;
|
|
40
|
-
private foregroundTaskManager?;
|
|
41
|
-
private reversionManager?;
|
|
42
|
-
private taskManager?;
|
|
43
|
-
private backgroundTaskManager?;
|
|
44
|
-
private permissionMode?;
|
|
45
|
-
private canUseToolCallback?;
|
|
18
|
+
private toolsRegistry;
|
|
19
|
+
private tools?;
|
|
20
|
+
private container;
|
|
46
21
|
constructor(options: ToolManagerOptions);
|
|
22
|
+
private get mcpManager();
|
|
47
23
|
/**
|
|
48
24
|
* Register a new tool
|
|
49
25
|
*/
|
|
@@ -52,7 +28,7 @@ declare class ToolManager {
|
|
|
52
28
|
* Initialize built-in tools. Can be called with dependencies for tools that require them.
|
|
53
29
|
*
|
|
54
30
|
* This method can be called multiple times safely. When called without dependencies,
|
|
55
|
-
* it registers basic tools (Bash, Read, Write,
|
|
31
|
+
* it registers basic tools (Bash, Read, Write, TaskCreate, etc.). When called with
|
|
56
32
|
* dependencies, it also registers tools that require managers (Task, Skill).
|
|
57
33
|
*
|
|
58
34
|
* @param deps Optional dependencies for advanced tools
|
|
@@ -71,10 +47,11 @@ declare class ToolManager {
|
|
|
71
47
|
* });
|
|
72
48
|
* ```
|
|
73
49
|
*/
|
|
74
|
-
initializeBuiltInTools(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
50
|
+
initializeBuiltInTools(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Check if a tool should be enabled based on tools configuration
|
|
53
|
+
*/
|
|
54
|
+
private shouldEnableTool;
|
|
78
55
|
/**
|
|
79
56
|
* Execute a tool by name with the provided arguments and context
|
|
80
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolManager.d.ts","sourceRoot":"","sources":["../../src/managers/toolManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"toolManager.d.ts","sourceRoot":"","sources":["../../src/managers/toolManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAuB7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;GAKG;AACH,cAAM,WAAW;IACf,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,KAAK,CAAC,CAAW;IACzB,OAAO,CAAC,SAAS,CAAY;gBAEjB,OAAO,EAAE,kBAAkB;IAKvC,OAAO,KAAK,UAAU,GAErB;IAED;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAIvC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,sBAAsB,IAAI,IAAI;IA6BrC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;;;;;;;;;OAYG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAqFtB,IAAI,IAAI,UAAU,EAAE;IAMpB,cAAc,IAAI,0BAA0B,EAAE;IAmB9C;;OAEG;IACI,QAAQ,IAAI,UAAU,EAAE;IAI/B;;OAEG;IACI,iBAAiB,IAAI,cAAc;IAa1C;;;OAGG;IACI,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIpD;;OAEG;IACI,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IAI5D;;OAEG;IACI,cAAc,IACjB,OAAO,4BAA4B,EAAE,WAAW,GAChD,SAAS;CAKd;AAGD,OAAO,EAAE,WAAW,EAAE,CAAC"}
|