wave-agent-sdk 0.7.1 → 0.8.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 +9 -79
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +85 -302
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +20 -13
- package/dist/managers/backgroundTaskManager.d.ts +1 -1
- package/dist/managers/backgroundTaskManager.d.ts.map +1 -1
- package/dist/managers/backgroundTaskManager.js +1 -1
- package/dist/managers/{bashManager.d.ts → bangManager.d.ts} +4 -4
- package/dist/managers/{bashManager.d.ts.map → bangManager.d.ts.map} +1 -1
- package/dist/managers/{bashManager.js → bangManager.js} +5 -6
- package/dist/managers/hookManager.d.ts.map +1 -1
- package/dist/managers/hookManager.js +12 -3
- package/dist/managers/messageManager.d.ts +18 -6
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/messageManager.js +42 -20
- package/dist/managers/permissionManager.d.ts +22 -1
- package/dist/managers/permissionManager.d.ts.map +1 -1
- package/dist/managers/permissionManager.js +106 -85
- package/dist/managers/planManager.d.ts +6 -0
- package/dist/managers/planManager.d.ts.map +1 -1
- package/dist/managers/planManager.js +21 -0
- package/dist/managers/skillManager.d.ts +7 -2
- package/dist/managers/skillManager.d.ts.map +1 -1
- package/dist/managers/skillManager.js +30 -10
- package/dist/managers/slashCommandManager.d.ts +7 -0
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +57 -45
- package/dist/managers/subagentManager.d.ts +4 -0
- package/dist/managers/subagentManager.d.ts.map +1 -1
- package/dist/managers/subagentManager.js +47 -13
- package/dist/managers/toolManager.d.ts +7 -1
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/managers/toolManager.js +15 -2
- package/dist/prompts/index.d.ts +0 -4
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +0 -9
- package/dist/services/aiService.d.ts.map +1 -1
- package/dist/services/aiService.js +6 -6
- package/dist/services/configurationService.d.ts +2 -2
- package/dist/services/configurationService.d.ts.map +1 -1
- package/dist/services/configurationService.js +4 -4
- package/dist/services/hook.d.ts.map +1 -1
- package/dist/services/hook.js +6 -0
- package/dist/services/initializationService.d.ts +44 -0
- package/dist/services/initializationService.d.ts.map +1 -0
- package/dist/services/initializationService.js +170 -0
- package/dist/services/interactionService.d.ts +29 -0
- package/dist/services/interactionService.d.ts.map +1 -0
- package/dist/services/interactionService.js +97 -0
- package/dist/services/session.js +1 -1
- package/dist/services/taskManager.d.ts +5 -0
- package/dist/services/taskManager.d.ts.map +1 -1
- package/dist/services/taskManager.js +16 -2
- package/dist/tools/bashTool.d.ts.map +1 -1
- package/dist/tools/bashTool.js +7 -18
- package/dist/tools/editTool.js +1 -1
- package/dist/tools/exitPlanMode.js +1 -1
- package/dist/tools/lspTool.d.ts +2 -0
- package/dist/tools/lspTool.d.ts.map +1 -1
- package/dist/tools/lspTool.js +144 -52
- package/dist/tools/skillTool.d.ts.map +1 -1
- package/dist/tools/skillTool.js +97 -2
- package/dist/tools/taskManagementTools.d.ts.map +1 -1
- package/dist/tools/taskManagementTools.js +23 -2
- package/dist/tools/taskTool.d.ts.map +1 -1
- package/dist/tools/taskTool.js +9 -15
- package/dist/tools/types.d.ts +1 -2
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/writeTool.js +1 -1
- package/dist/types/agent.d.ts +64 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +1 -0
- package/dist/types/commands.d.ts +0 -4
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/config.d.ts +1 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/hooks.d.ts +3 -1
- package/dist/types/hooks.d.ts.map +1 -1
- package/dist/types/hooks.js +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/messaging.d.ts +3 -3
- package/dist/types/messaging.d.ts.map +1 -1
- package/dist/types/skills.d.ts +13 -0
- package/dist/types/skills.d.ts.map +1 -1
- package/dist/utils/commandPathResolver.d.ts +3 -36
- package/dist/utils/commandPathResolver.d.ts.map +1 -1
- package/dist/utils/commandPathResolver.js +16 -93
- package/dist/utils/configValidator.d.ts +2 -2
- package/dist/utils/configValidator.d.ts.map +1 -1
- package/dist/utils/configValidator.js +4 -6
- package/dist/utils/containerSetup.d.ts +3 -4
- package/dist/utils/containerSetup.d.ts.map +1 -1
- package/dist/utils/containerSetup.js +14 -9
- package/dist/utils/customCommands.d.ts +2 -3
- package/dist/utils/customCommands.d.ts.map +1 -1
- package/dist/utils/customCommands.js +20 -60
- package/dist/utils/gitUtils.d.ts +25 -0
- package/dist/utils/gitUtils.d.ts.map +1 -1
- package/dist/utils/gitUtils.js +75 -0
- package/dist/utils/markdownParser.d.ts +4 -0
- package/dist/utils/markdownParser.d.ts.map +1 -1
- package/dist/utils/markdownParser.js +33 -0
- package/dist/utils/messageOperations.d.ts +16 -7
- package/dist/utils/messageOperations.d.ts.map +1 -1
- package/dist/utils/messageOperations.js +45 -20
- package/dist/utils/nameGenerator.d.ts +1 -1
- package/dist/utils/nameGenerator.d.ts.map +1 -1
- package/dist/utils/nameGenerator.js +10 -6
- package/dist/utils/skillParser.d.ts.map +1 -1
- package/dist/utils/skillParser.js +48 -0
- package/package.json +1 -1
- package/src/agent.ts +103 -458
- package/src/index.ts +2 -2
- package/src/managers/aiManager.ts +23 -17
- package/src/managers/backgroundTaskManager.ts +2 -2
- package/src/managers/{bashManager.ts → bangManager.ts} +11 -8
- package/src/managers/hookManager.ts +13 -3
- package/src/managers/messageManager.ts +55 -26
- package/src/managers/permissionManager.ts +121 -98
- package/src/managers/planManager.ts +26 -0
- package/src/managers/skillManager.ts +51 -14
- package/src/managers/slashCommandManager.ts +75 -55
- package/src/managers/subagentManager.ts +57 -13
- package/src/managers/toolManager.ts +22 -2
- package/src/prompts/index.ts +0 -15
- package/src/services/aiService.ts +9 -12
- package/src/services/configurationService.ts +4 -4
- package/src/services/hook.ts +7 -0
- package/src/services/initializationService.ts +291 -0
- package/src/services/interactionService.ts +171 -0
- package/src/services/session.ts +1 -1
- package/src/services/taskManager.ts +18 -2
- package/src/tools/bashTool.ts +8 -18
- package/src/tools/editTool.ts +1 -1
- package/src/tools/exitPlanMode.ts +1 -1
- package/src/tools/lsTool.ts +1 -1
- package/src/tools/lspTool.ts +184 -52
- package/src/tools/skillTool.ts +127 -2
- package/src/tools/taskManagementTools.ts +32 -2
- package/src/tools/taskTool.ts +13 -15
- package/src/tools/types.ts +1 -2
- package/src/tools/writeTool.ts +1 -1
- package/src/types/agent.ts +83 -0
- package/src/types/commands.ts +0 -6
- package/src/types/config.ts +1 -1
- package/src/types/hooks.ts +5 -1
- package/src/types/index.ts +1 -0
- package/src/types/messaging.ts +3 -3
- package/src/types/skills.ts +13 -0
- package/src/utils/commandPathResolver.ts +14 -117
- package/src/utils/configValidator.ts +5 -9
- package/src/utils/containerSetup.ts +17 -14
- package/src/utils/customCommands.ts +20 -83
- package/src/utils/gitUtils.ts +75 -0
- package/src/utils/markdownParser.ts +47 -0
- package/src/utils/messageOperations.ts +58 -28
- package/src/utils/nameGenerator.ts +10 -6
- package/src/utils/skillParser.ts +52 -0
- package/dist/managers/backgroundBashManager.d.ts +0 -27
- package/dist/managers/backgroundBashManager.d.ts.map +0 -1
- package/dist/managers/backgroundBashManager.js +0 -169
- package/src/managers/backgroundBashManager.ts +0 -206
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { loadCustomSlashCommands } from "../utils/customCommands.js";
|
|
2
2
|
import { substituteCommandParameters, parseSlashCommandInput, hasParameterPlaceholders, } from "../utils/commandArgumentParser.js";
|
|
3
|
-
import { parseBashCommands, replaceBashCommandsWithOutput, } from "../utils/markdownParser.js";
|
|
4
|
-
import { exec } from "child_process";
|
|
5
|
-
import { promisify } from "util";
|
|
3
|
+
import { parseBashCommands, replaceBashCommandsWithOutput, executeBashCommands, } from "../utils/markdownParser.js";
|
|
6
4
|
import { INIT_PROMPT } from "../prompts/index.js";
|
|
7
|
-
const execAsync = promisify(exec);
|
|
8
5
|
import { logger } from "../utils/globalLogger.js";
|
|
9
6
|
export class SlashCommandManager {
|
|
10
7
|
constructor(container, options) {
|
|
11
8
|
this.container = container;
|
|
12
9
|
this.commands = new Map();
|
|
13
10
|
this.customCommands = new Map();
|
|
11
|
+
this.skillCommandIds = new Set();
|
|
14
12
|
this.workdir = options.workdir;
|
|
15
13
|
}
|
|
16
14
|
initialize() {
|
|
@@ -29,23 +27,10 @@ export class SlashCommandManager {
|
|
|
29
27
|
get taskManager() {
|
|
30
28
|
return this.container.get("TaskManager");
|
|
31
29
|
}
|
|
30
|
+
get skillManager() {
|
|
31
|
+
return this.container.get("SkillManager");
|
|
32
|
+
}
|
|
32
33
|
initializeBuiltinCommands() {
|
|
33
|
-
// Register built-in clear command
|
|
34
|
-
this.registerCommand({
|
|
35
|
-
id: "clear",
|
|
36
|
-
name: "clear",
|
|
37
|
-
description: "Clear the chat session and terminal",
|
|
38
|
-
handler: () => {
|
|
39
|
-
// Clear chat messages
|
|
40
|
-
this.messageManager.clearMessages();
|
|
41
|
-
// Reset task list if WAVE_TASK_LIST_ID is not set
|
|
42
|
-
if (!process.env.WAVE_TASK_LIST_ID) {
|
|
43
|
-
const newTaskListId = this.messageManager.getRootSessionId();
|
|
44
|
-
this.taskManager.setTaskListId(newTaskListId);
|
|
45
|
-
this.taskManager.emit("tasksChange", newTaskListId);
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
});
|
|
49
34
|
// Register built-in init command
|
|
50
35
|
this.registerCommand({
|
|
51
36
|
id: "init",
|
|
@@ -104,6 +89,54 @@ export class SlashCommandManager {
|
|
|
104
89
|
logger?.warn("Failed to load custom commands:", error);
|
|
105
90
|
}
|
|
106
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Register skills as slash commands
|
|
94
|
+
*/
|
|
95
|
+
registerSkillCommands(skills) {
|
|
96
|
+
// Clear existing skill commands
|
|
97
|
+
for (const commandId of this.skillCommandIds) {
|
|
98
|
+
this.unregisterCommand(commandId);
|
|
99
|
+
}
|
|
100
|
+
this.skillCommandIds.clear();
|
|
101
|
+
for (const skill of skills) {
|
|
102
|
+
if (skill.userInvocable === false) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
const commandId = skill.name;
|
|
106
|
+
this.skillCommandIds.add(commandId);
|
|
107
|
+
this.registerCommand({
|
|
108
|
+
id: commandId,
|
|
109
|
+
name: skill.name,
|
|
110
|
+
description: `Skill: ${skill.description}`,
|
|
111
|
+
handler: async (args) => {
|
|
112
|
+
try {
|
|
113
|
+
const result = await this.skillManager.executeSkill({
|
|
114
|
+
skill_name: skill.name,
|
|
115
|
+
args,
|
|
116
|
+
});
|
|
117
|
+
// Add user message with skill content
|
|
118
|
+
const originalInput = args
|
|
119
|
+
? `/${skill.name} ${args}`
|
|
120
|
+
: `/${skill.name}`;
|
|
121
|
+
this.messageManager.addUserMessage({
|
|
122
|
+
content: originalInput,
|
|
123
|
+
customCommandContent: result.content,
|
|
124
|
+
});
|
|
125
|
+
// Trigger AI response
|
|
126
|
+
await this.aiManager.sendAIMessage({
|
|
127
|
+
model: skill.model,
|
|
128
|
+
allowedRules: result.allowedTools,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
logger?.error(`Failed to execute skill command '${skill.name}':`, error);
|
|
133
|
+
this.messageManager.addErrorBlock(`Failed to execute skill command '${skill.name}': ${error instanceof Error ? error.message : String(error)}`);
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
logger?.debug(`Registered ${skills.length} skill commands`);
|
|
139
|
+
}
|
|
107
140
|
/**
|
|
108
141
|
* Register commands from a plugin with namespacing
|
|
109
142
|
*/
|
|
@@ -241,32 +274,11 @@ export class SlashCommandManager {
|
|
|
241
274
|
// Parse bash commands from the content
|
|
242
275
|
const { commands, processedContent } = parseBashCommands(content);
|
|
243
276
|
// Execute bash commands if any
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
cwd: this.workdir,
|
|
249
|
-
timeout: 30000, // 30 second timeout
|
|
250
|
-
});
|
|
251
|
-
bashResults.push({
|
|
252
|
-
command,
|
|
253
|
-
output: stdout || stderr || "",
|
|
254
|
-
exitCode: 0,
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
catch (error) {
|
|
258
|
-
const execError = error;
|
|
259
|
-
bashResults.push({
|
|
260
|
-
command,
|
|
261
|
-
output: execError.stdout || execError.stderr || execError.message || "",
|
|
262
|
-
exitCode: execError.code || 1,
|
|
263
|
-
});
|
|
264
|
-
}
|
|
277
|
+
let finalContent = processedContent;
|
|
278
|
+
if (commands.length > 0) {
|
|
279
|
+
const bashResults = await executeBashCommands(commands, this.workdir);
|
|
280
|
+
finalContent = replaceBashCommandsWithOutput(processedContent, bashResults);
|
|
265
281
|
}
|
|
266
|
-
// Replace bash command placeholders with their outputs
|
|
267
|
-
const finalContent = bashResults.length > 0
|
|
268
|
-
? replaceBashCommandsWithOutput(processedContent, bashResults)
|
|
269
|
-
: processedContent;
|
|
270
282
|
// Add custom command message to show the command being executed
|
|
271
283
|
const originalInput = args
|
|
272
284
|
? `/${commandName} ${args}`
|
|
@@ -32,8 +32,10 @@ export interface SubagentInstance {
|
|
|
32
32
|
lastTools: string[];
|
|
33
33
|
subagentType: string;
|
|
34
34
|
description: string;
|
|
35
|
+
allowedTools?: string[];
|
|
35
36
|
backgroundTaskId?: string;
|
|
36
37
|
onUpdate?: () => void;
|
|
38
|
+
model?: string;
|
|
37
39
|
}
|
|
38
40
|
export interface SubagentManagerOptions {
|
|
39
41
|
workdir: string;
|
|
@@ -81,6 +83,8 @@ export declare class SubagentManager {
|
|
|
81
83
|
description: string;
|
|
82
84
|
prompt: string;
|
|
83
85
|
subagent_type: string;
|
|
86
|
+
allowedTools?: string[];
|
|
87
|
+
model?: string;
|
|
84
88
|
}, runInBackground?: boolean, onUpdate?: () => void): Promise<SubagentInstance>;
|
|
85
89
|
/**
|
|
86
90
|
* Execute task using subagent instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagentManager.d.ts","sourceRoot":"","sources":["../../src/managers/subagentManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,WAAW,EACX,KAAK,EACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"subagentManager.d.ts","sourceRoot":"","sources":["../../src/managers/subagentManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { randomUUID } from "crypto";
|
|
2
2
|
import { AIManager } from "./aiManager.js";
|
|
3
3
|
import { MessageManager } from "./messageManager.js";
|
|
4
|
+
import { ToolManager } from "./toolManager.js";
|
|
4
5
|
import { addConsolidatedAbortListener, createAbortPromise, } from "../utils/abortUtils.js";
|
|
6
|
+
import { logger } from "../utils/globalLogger.js";
|
|
5
7
|
export class SubagentManager {
|
|
6
8
|
constructor(container, options) {
|
|
7
9
|
this.instances = new Map();
|
|
@@ -59,6 +61,23 @@ export class SubagentManager {
|
|
|
59
61
|
const subagentId = randomUUID();
|
|
60
62
|
// Create a child container for the subagent to isolate its managers
|
|
61
63
|
const subagentContainer = this.container.createChild();
|
|
64
|
+
// Create isolated PermissionManager for the subagent
|
|
65
|
+
const { PermissionManager } = await import("./permissionManager.js");
|
|
66
|
+
const parentPermissionManager = this.container.get("PermissionManager");
|
|
67
|
+
const subagentPermissionManager = new PermissionManager(subagentContainer, {
|
|
68
|
+
workdir: this.workdir,
|
|
69
|
+
configuredDefaultMode: parentPermissionManager?.getConfiguredDefaultMode(),
|
|
70
|
+
allowedRules: parentPermissionManager?.getAllowedRules(),
|
|
71
|
+
deniedRules: parentPermissionManager?.getDeniedRules(),
|
|
72
|
+
additionalDirectories: parentPermissionManager?.getAdditionalDirectories(),
|
|
73
|
+
planFilePath: parentPermissionManager?.getPlanFilePath(),
|
|
74
|
+
});
|
|
75
|
+
subagentContainer.register("PermissionManager", subagentPermissionManager);
|
|
76
|
+
// Add temporary permission rules if provided
|
|
77
|
+
if (parameters.allowedTools) {
|
|
78
|
+
logger.debug(`Adding ${parameters.allowedTools.length} temporary permission rules to subagent ${subagentId}`, { rules: parameters.allowedTools });
|
|
79
|
+
subagentPermissionManager.addTemporaryRules(parameters.allowedTools);
|
|
80
|
+
}
|
|
62
81
|
// Create isolated MessageManager for the subagent
|
|
63
82
|
const subagentCallbacks = this.createSubagentCallbacks(subagentId);
|
|
64
83
|
const messageManager = new MessageManager(subagentContainer, {
|
|
@@ -68,8 +87,13 @@ export class SubagentManager {
|
|
|
68
87
|
subagentType: parameters.subagent_type,
|
|
69
88
|
});
|
|
70
89
|
subagentContainer.register("MessageManager", messageManager);
|
|
71
|
-
//
|
|
72
|
-
const toolManager =
|
|
90
|
+
// Create isolated ToolManager for the subagent to ensure it uses the subagent's PermissionManager
|
|
91
|
+
const toolManager = new ToolManager({
|
|
92
|
+
container: subagentContainer,
|
|
93
|
+
tools: configuration.tools,
|
|
94
|
+
});
|
|
95
|
+
toolManager.initializeBuiltInTools();
|
|
96
|
+
subagentContainer.register("ToolManager", toolManager);
|
|
73
97
|
// Create isolated AIManager for the subagent
|
|
74
98
|
const aiManager = new AIManager(subagentContainer, {
|
|
75
99
|
workdir: this.workdir,
|
|
@@ -80,9 +104,13 @@ export class SubagentManager {
|
|
|
80
104
|
// Determine model dynamically each time
|
|
81
105
|
const parentModelConfig = this.getModelConfig();
|
|
82
106
|
let modelToUse;
|
|
83
|
-
if (
|
|
84
|
-
// Use
|
|
85
|
-
modelToUse =
|
|
107
|
+
if (parameters.model) {
|
|
108
|
+
// Use model override from parameters if provided
|
|
109
|
+
modelToUse = parameters.model;
|
|
110
|
+
}
|
|
111
|
+
else if (!configuration.model || configuration.model === "inherit") {
|
|
112
|
+
// Use parent's model for "inherit" or undefined
|
|
113
|
+
modelToUse = parentModelConfig.model;
|
|
86
114
|
}
|
|
87
115
|
else if (configuration.model === "fastModel") {
|
|
88
116
|
// Use parent's fastModel for special "fastModel" value
|
|
@@ -94,7 +122,7 @@ export class SubagentManager {
|
|
|
94
122
|
}
|
|
95
123
|
return {
|
|
96
124
|
...parentModelConfig,
|
|
97
|
-
|
|
125
|
+
model: modelToUse,
|
|
98
126
|
};
|
|
99
127
|
},
|
|
100
128
|
getMaxInputTokens: this.getMaxInputTokens,
|
|
@@ -116,6 +144,8 @@ export class SubagentManager {
|
|
|
116
144
|
lastTools: [], // Initialize lastTools
|
|
117
145
|
subagentType: parameters.subagent_type, // Store the subagent type
|
|
118
146
|
description: parameters.description, // Store the AI-generated description
|
|
147
|
+
allowedTools: parameters.allowedTools, // Store optional permission rules
|
|
148
|
+
model: parameters.model, // Store optional model override
|
|
119
149
|
onUpdate,
|
|
120
150
|
};
|
|
121
151
|
this.instances.set(subagentId, instance);
|
|
@@ -239,22 +269,26 @@ export class SubagentManager {
|
|
|
239
269
|
try {
|
|
240
270
|
// Add the user's prompt as a message
|
|
241
271
|
instance.messageManager.addUserMessage({ content: prompt });
|
|
242
|
-
// Create
|
|
243
|
-
|
|
272
|
+
// Create enabled tools list - always exclude Task tool to prevent subagent recursion
|
|
273
|
+
// Use instance.configuration.tools if provided, otherwise fallback to all tools
|
|
274
|
+
let enabledTools = instance.configuration.tools;
|
|
244
275
|
// Always filter out the Task tool to prevent subagents from creating sub-subagents
|
|
245
|
-
if (
|
|
246
|
-
|
|
276
|
+
if (enabledTools) {
|
|
277
|
+
enabledTools = enabledTools.filter((tool) => tool !== "Task");
|
|
247
278
|
}
|
|
248
279
|
else {
|
|
249
280
|
// If no tools specified, get all tools except Task
|
|
250
281
|
const allTools = instance.toolManager.list().map((tool) => tool.name);
|
|
251
|
-
|
|
282
|
+
enabledTools = allTools.filter((tool) => tool !== "Task");
|
|
252
283
|
}
|
|
253
284
|
// Execute the AI request with tool restrictions
|
|
254
285
|
// The AIManager will handle abort signals through its own abort controllers
|
|
255
286
|
// Resolve model name for sendAIMessage
|
|
256
287
|
let resolvedModel;
|
|
257
|
-
if (instance.
|
|
288
|
+
if (instance.model) {
|
|
289
|
+
resolvedModel = instance.model;
|
|
290
|
+
}
|
|
291
|
+
else if (instance.configuration.model &&
|
|
258
292
|
instance.configuration.model !== "inherit") {
|
|
259
293
|
if (instance.configuration.model === "fastModel") {
|
|
260
294
|
// Use parent's fastModel for special "fastModel" value
|
|
@@ -268,7 +302,7 @@ export class SubagentManager {
|
|
|
268
302
|
}
|
|
269
303
|
// For "inherit" or undefined, resolvedModel remains undefined (uses AIManager default)
|
|
270
304
|
const executeAI = instance.aiManager.sendAIMessage({
|
|
271
|
-
tools:
|
|
305
|
+
tools: enabledTools,
|
|
272
306
|
model: resolvedModel,
|
|
273
307
|
});
|
|
274
308
|
// If we have an abort signal, race against it using utilities to prevent listener accumulation
|
|
@@ -3,6 +3,8 @@ import { PermissionManager } from "./permissionManager.js";
|
|
|
3
3
|
import { ChatCompletionFunctionTool } from "openai/resources.js";
|
|
4
4
|
import type { PermissionMode } from "../types/index.js";
|
|
5
5
|
import { Container } from "../utils/container.js";
|
|
6
|
+
import type { SubagentConfiguration } from "../utils/subagentParser.js";
|
|
7
|
+
import type { SkillMetadata } from "../types/skills.js";
|
|
6
8
|
export interface ToolManagerOptions {
|
|
7
9
|
container: Container;
|
|
8
10
|
/** Optional list of tool names to enable */
|
|
@@ -67,7 +69,11 @@ declare class ToolManager {
|
|
|
67
69
|
*/
|
|
68
70
|
execute(name: string, args: Record<string, unknown>, context: ToolContext): Promise<ToolResult>;
|
|
69
71
|
list(): ToolPlugin[];
|
|
70
|
-
getToolsConfig(
|
|
72
|
+
getToolsConfig(options?: {
|
|
73
|
+
availableSubagents?: SubagentConfiguration[];
|
|
74
|
+
availableSkills?: SkillMetadata[];
|
|
75
|
+
workdir?: string;
|
|
76
|
+
}): ChatCompletionFunctionTool[];
|
|
71
77
|
/**
|
|
72
78
|
* Get the list of registered tool plugins
|
|
73
79
|
*/
|
|
@@ -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;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;IAuFtB,IAAI,IAAI,UAAU,EAAE;IAMpB,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,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,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;IAuFtB,IAAI,IAAI,UAAU,EAAE;IAMpB,cAAc,CAAC,OAAO,CAAC,EAAE;QACvB,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,0BAA0B,EAAE;IAgChC;;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"}
|
|
@@ -180,7 +180,7 @@ class ToolManager {
|
|
|
180
180
|
const mcpTools = this.mcpManager.getMcpToolPlugins();
|
|
181
181
|
return [...builtInTools, ...mcpTools];
|
|
182
182
|
}
|
|
183
|
-
getToolsConfig() {
|
|
183
|
+
getToolsConfig(options) {
|
|
184
184
|
const effectivePermissionMode = this.getPermissionMode();
|
|
185
185
|
const builtInToolsConfig = Array.from(this.toolsRegistry.values())
|
|
186
186
|
.filter((tool) => {
|
|
@@ -194,7 +194,20 @@ class ToolManager {
|
|
|
194
194
|
}
|
|
195
195
|
return true;
|
|
196
196
|
})
|
|
197
|
-
.map((tool) =>
|
|
197
|
+
.map((tool) => {
|
|
198
|
+
// Create a copy of the tool config to avoid modifying the original
|
|
199
|
+
const config = {
|
|
200
|
+
...tool.config,
|
|
201
|
+
function: {
|
|
202
|
+
...tool.config.function,
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
// Override description with prompt if available
|
|
206
|
+
if (tool.prompt) {
|
|
207
|
+
config.function.description = tool.prompt(options);
|
|
208
|
+
}
|
|
209
|
+
return config;
|
|
210
|
+
});
|
|
198
211
|
const mcpToolsConfig = this.mcpManager.getMcpToolsConfig();
|
|
199
212
|
return [...builtInToolsConfig, ...mcpToolsConfig];
|
|
200
213
|
}
|
package/dist/prompts/index.d.ts
CHANGED
|
@@ -9,8 +9,6 @@ export declare const EXPLORE_SUBAGENT_SYSTEM_PROMPT = "You are a file search spe
|
|
|
9
9
|
export declare const PLAN_SUBAGENT_SYSTEM_PROMPT = "You are a software architect and planning specialist. Your role is to explore the codebase and design implementation plans.\n\n=== CRITICAL: READ-ONLY MODE - NO FILE MODIFICATIONS ===\nThis is a READ-ONLY planning task. You are STRICTLY PROHIBITED from:\n- Creating new files (no Write, touch, or file creation of any kind)\n- Modifying existing files (no Edit operations)\n- Moving or copying files (no mv or cp)\n- Creating temporary files anywhere, including /tmp\n- Using redirect operators (>, >>, |) or heredocs to write to files\n- Running ANY commands that change system state\n\nYour role is EXCLUSIVELY to explore the codebase and design implementation plans. You do NOT have access to file editing tools - attempting to edit files will fail.\n\nYou will be provided with a set of requirements and optionally a perspective on how to approach the design process.\n\n## Your Process\n\n1. **Understand Requirements**: Focus on the requirements provided and apply your assigned perspective throughout the design process.\n\n2. **Explore Thoroughly**:\n - Read any files provided to you in the initial prompt\n - Find existing patterns and conventions using Glob, Grep, and Read\n - Understand the current architecture\n - Identify similar features as reference\n - Trace through relevant code paths\n - Use Bash ONLY for read-only operations (ls, git status, git log, git diff, find, cat, head, tail)\n - NEVER use Bash for: mkdir, touch, rm, cp, mv, git add, git commit, npm install, pip install, or any file creation/modification\n\n3. **Design Solution**:\n - Create implementation approach based on your assigned perspective\n - Consider trade-offs and architectural decisions\n - Follow existing patterns where appropriate\n\n4. **Detail the Plan**:\n - Provide step-by-step implementation strategy\n - Identify dependencies and sequencing\n - Anticipate potential challenges\n\n## Required Output\n\nEnd your response with:\n\n### Critical Files for Implementation\nList 3-5 files most critical for implementing this plan:\n- path/to/file1.ts - [Brief reason: e.g., \"Core logic to modify\"]\n- path/to/file2.ts - [Brief reason: e.g., \"Interfaces to implement\"]\n- path/to/file3.ts - [Brief reason: e.g., \"Pattern to follow\"]\n\nREMEMBER: You can ONLY explore and plan. You CANNOT and MUST NOT write, edit, or modify any files. You do NOT have access to file editing tools.";
|
|
10
10
|
export declare const INIT_PROMPT = "Please analyze this codebase and create a AGENTS.md file, which will be given to future instances of Agent to operate in this repository.\n\nWhat to add:\n1. Commands that will be commonly used, such as how to build, lint, and run tests. Include the necessary commands to develop in this codebase, such as how to run a single test.\n2. High-level code architecture and structure so that future instances can be productive more quickly. Focus on the \"big picture\" architecture that requires reading multiple files to understand.\n\nUsage notes:\n- If there's already a AGENTS.md, suggest improvements to it.\n- When you make the initial AGENTS.md, do not repeat yourself and do not include obvious instructions like \"Provide helpful error messages to users\", \"Write unit tests for all new utilities\", \"Never include sensitive information (API keys, tokens) in code or commits\".\n- Avoid listing every component or file structure that can be easily discovered.\n- Don't include generic development practices.\n- If there are Cursor rules (in .cursor/rules/ or .cursorrules) or Copilot rules (in .github/copilot-instructions.md), make sure to include the important parts.\n- If there is a README.md, make sure to include the important parts.\n- Do not make up information such as \"Common Development Tasks\", \"Tips for Development\", \"Support and Documentation\" unless this is expressly included in other files that you read.\n- Be sure to prefix the file with the following text:\n\n```\n# AGENTS.md\n\nThis file provides guidance to Agent when working with code in this repository.\n```";
|
|
11
11
|
export declare const COMPRESS_MESSAGES_SYSTEM_PROMPT = "You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:\n1. Task Overview\nThe user's core request and success criteria\nAny clarifications or constraints they specified\n2. Current State\nWhat has been completed so far\nFiles created, modified, or analyzed (with paths if relevant)\nKey outputs or artifacts produced\n3. Important Discoveries\nTechnical constraints or requirements uncovered\nDecisions made and their rationale\nErrors encountered and how they were resolved\nWhat approaches were tried that didn't work (and why)\n4. Next Steps\nSpecific actions needed to complete the task\nAny blockers or open questions to resolve\nPriority order if multiple steps remain\n5. Context to Preserve\nUser preferences or style requirements\nDomain-specific details that aren't obvious\nAny promises made to the user\nBe concise but complete\u2014err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.\nWrap your summary in <summary></summary> tags.";
|
|
12
|
-
import type { SubagentConfiguration } from "../utils/subagentParser.js";
|
|
13
|
-
import type { SkillMetadata } from "../types/skills.js";
|
|
14
12
|
export declare function buildSystemPrompt(basePrompt: string | undefined, tools: ToolPlugin[], options?: {
|
|
15
13
|
workdir?: string;
|
|
16
14
|
memory?: string;
|
|
@@ -20,7 +18,5 @@ export declare function buildSystemPrompt(basePrompt: string | undefined, tools:
|
|
|
20
18
|
planFilePath: string;
|
|
21
19
|
planExists: boolean;
|
|
22
20
|
};
|
|
23
|
-
availableSubagents?: SubagentConfiguration[];
|
|
24
|
-
availableSkills?: SkillMetadata[];
|
|
25
21
|
}): string;
|
|
26
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiB/C,eAAO,MAAM,kBAAkB,g9DAU+J,CAAC;AAE/L,eAAO,MAAM,WAAW,qvBAIqH,CAAC;AAE9I,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,OAAO,EACnB,UAAU,GAAE,OAAe,GAC1B,MAAM,CAmFR;AAED,eAAO,MAAM,qBAAqB,g9DAAqB,CAAC;AAExD,eAAO,MAAM,2BAA2B,igBAWO,CAAC;AAEhD,eAAO,MAAM,6BAA6B,izCAeK,CAAC;AAEhD,eAAO,MAAM,8BAA8B,mzEAmCuC,CAAC;AAEnF,eAAO,MAAM,2BAA2B,q3EAgDyG,CAAC;AAElJ,eAAO,MAAM,WAAW,kkDAoBjB,CAAC;AAER,eAAO,MAAM,+BAA+B,20CAsBG,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiB/C,eAAO,MAAM,kBAAkB,g9DAU+J,CAAC;AAE/L,eAAO,MAAM,WAAW,qvBAIqH,CAAC;AAE9I,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,OAAO,EACnB,UAAU,GAAE,OAAe,GAC1B,MAAM,CAmFR;AAED,eAAO,MAAM,qBAAqB,g9DAAqB,CAAC;AAExD,eAAO,MAAM,2BAA2B,igBAWO,CAAC;AAEhD,eAAO,MAAM,6BAA6B,izCAeK,CAAC;AAEhD,eAAO,MAAM,8BAA8B,mzEAmCuC,CAAC;AAEnF,eAAO,MAAM,2BAA2B,q3EAgDyG,CAAC;AAElJ,eAAO,MAAM,WAAW,kkDAoBjB,CAAC;AAER,eAAO,MAAM,+BAA+B,20CAsBG,CAAC;AAEhD,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;CACE,GACL,MAAM,CAsCR"}
|
package/dist/prompts/index.js
CHANGED
|
@@ -263,15 +263,6 @@ export function buildSystemPrompt(basePrompt, tools, options = {}) {
|
|
|
263
263
|
if (tools.length > 0) {
|
|
264
264
|
prompt += `\n\n${TOOL_POLICY}`;
|
|
265
265
|
}
|
|
266
|
-
for (const tool of tools) {
|
|
267
|
-
if (tool.prompt) {
|
|
268
|
-
prompt += tool.prompt({
|
|
269
|
-
availableSubagents: options.availableSubagents,
|
|
270
|
-
availableSkills: options.availableSkills,
|
|
271
|
-
workdir: options.workdir,
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
266
|
if (options.language) {
|
|
276
267
|
prompt += `\n\n# Language\nAlways respond in ${options.language}. Technical terms (e.g., code, tool names, file paths) should remain in their original language or English where appropriate.`;
|
|
277
268
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiService.d.ts","sourceRoot":"","sources":["../../src/services/aiService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAGL,0BAA0B,EAC1B,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AA4DvC;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AA2DD,MAAM,WAAW,gBAAgB;IAE/B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IAGzB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;KACnD,KAAK,IAAI,CAAC;IACX,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EACV,MAAM,GACN,QAAQ,GACR,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,IAAI,CAAC;IACT,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAuT1B;AA4OD,MAAM,WAAW,uBAAuB;IAEtC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IAGzB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"aiService.d.ts","sourceRoot":"","sources":["../../src/services/aiService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAGL,0BAA0B,EAC1B,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AA4DvC;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AA2DD,MAAM,WAAW,gBAAgB;IAE/B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IAGzB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;KACnD,KAAK,IAAI,CAAC;IACX,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EACV,MAAM,GACN,QAAQ,GACR,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,IAAI,CAAC;IACT,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAuT1B;AA4OD,MAAM,WAAW,uBAAuB;IAEtC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IAGzB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAwEjC"}
|
|
@@ -65,7 +65,7 @@ export async function callAgent(options) {
|
|
|
65
65
|
const { gatewayConfig, modelConfig, messages, abortSignal, workdir, tools, model, systemPrompt, onContentUpdate, onToolUpdate, onReasoningUpdate, } = options;
|
|
66
66
|
// Apply global 1 QPS rate limit
|
|
67
67
|
if (process.env.NODE_ENV !== "test" ||
|
|
68
|
-
modelConfig.
|
|
68
|
+
modelConfig.model === "rate-limit-test") {
|
|
69
69
|
await acquireSlot(abortSignal);
|
|
70
70
|
}
|
|
71
71
|
// Declare variables outside try block for error handling access
|
|
@@ -91,7 +91,7 @@ export async function callAgent(options) {
|
|
|
91
91
|
// ChatCompletionMessageParam[] is already in OpenAI format, add system prompt to the beginning
|
|
92
92
|
openaiMessages = [systemMessage, ...messages];
|
|
93
93
|
// Apply cache control for Claude models
|
|
94
|
-
const currentModel = model || modelConfig.
|
|
94
|
+
const currentModel = model || modelConfig.model;
|
|
95
95
|
const resolvedMaxTokens = options.maxTokens ?? modelConfig.maxTokens;
|
|
96
96
|
processedTools = tools;
|
|
97
97
|
if (isClaudeModel(currentModel)) {
|
|
@@ -102,7 +102,7 @@ export async function callAgent(options) {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
// Get model configuration - use injected modelConfig with optional override
|
|
105
|
-
const openaiModelConfig = getModelConfig(model || modelConfig.
|
|
105
|
+
const openaiModelConfig = getModelConfig(model || modelConfig.model, {
|
|
106
106
|
temperature: 0,
|
|
107
107
|
max_tokens: resolvedMaxTokens,
|
|
108
108
|
});
|
|
@@ -214,7 +214,7 @@ export async function callAgent(options) {
|
|
|
214
214
|
const debugData = {
|
|
215
215
|
originalMessages: messages,
|
|
216
216
|
timestamp: new Date().toISOString(),
|
|
217
|
-
model: model || modelConfig.
|
|
217
|
+
model: model || modelConfig.model,
|
|
218
218
|
workdir,
|
|
219
219
|
sessionId: options.sessionId,
|
|
220
220
|
gatewayConfig: {
|
|
@@ -446,7 +446,7 @@ export async function compressMessages(options) {
|
|
|
446
446
|
const { gatewayConfig, modelConfig, messages, abortSignal } = options;
|
|
447
447
|
// Apply global 1 QPS rate limit
|
|
448
448
|
if (process.env.NODE_ENV !== "test" ||
|
|
449
|
-
modelConfig.
|
|
449
|
+
modelConfig.model === "rate-limit-test") {
|
|
450
450
|
await acquireSlot(abortSignal);
|
|
451
451
|
}
|
|
452
452
|
// Create OpenAI client with injected configuration
|
|
@@ -458,7 +458,7 @@ export async function compressMessages(options) {
|
|
|
458
458
|
fetch: gatewayConfig.fetch,
|
|
459
459
|
});
|
|
460
460
|
// Get model configuration - use injected agent model
|
|
461
|
-
const openaiModelConfig = getModelConfig(options.model || modelConfig.
|
|
461
|
+
const openaiModelConfig = getModelConfig(options.model || modelConfig.model, {
|
|
462
462
|
temperature: 0.1,
|
|
463
463
|
max_tokens: 2048,
|
|
464
464
|
});
|
|
@@ -57,12 +57,12 @@ export declare class ConfigurationService {
|
|
|
57
57
|
/**
|
|
58
58
|
* Resolves model configuration with fallbacks
|
|
59
59
|
* Resolution priority: options > env (from settings.json) > process.env > default
|
|
60
|
-
* @param
|
|
60
|
+
* @param model - Agent model from constructor (optional)
|
|
61
61
|
* @param fastModel - Fast model from constructor (optional)
|
|
62
62
|
* @param maxTokens - Max output tokens from constructor (optional)
|
|
63
63
|
* @returns Resolved model configuration with defaults
|
|
64
64
|
*/
|
|
65
|
-
resolveModelConfig(
|
|
65
|
+
resolveModelConfig(model?: string, fastModel?: string, maxTokens?: number, permissionMode?: PermissionMode): ModelConfig;
|
|
66
66
|
/**
|
|
67
67
|
* Resolves token limit with fallbacks
|
|
68
68
|
* Resolution priority: options > env (from settings.json) > process.env > default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configurationService.d.ts","sourceRoot":"","sources":["../../src/services/configurationService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAE7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,aAAa,EACb,WAAW,EAGX,cAAc,EACf,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,GAAG,CAA8B;IAIzC;;OAEG;IACG,uBAAuB,CAC3B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,uBAAuB,CAAC;IAiFnC;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,gBAAgB;IA2IlE;;OAEG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAwC7D;;OAEG;IACH,uBAAuB,IAAI,iBAAiB,GAAG,IAAI;IAInD;;;OAGG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIrD;;OAEG;IACH,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ5C;;;;;;;;;;OAUG;IACH,oBAAoB,CAClB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,EAC5C,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAC7B,aAAa;IA0EhB;;;;;;;OAOG;IACH,kBAAkB,CAChB,
|
|
1
|
+
{"version":3,"file":"configurationService.d.ts","sourceRoot":"","sources":["../../src/services/configurationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -344,17 +344,17 @@ export class ConfigurationService {
|
|
|
344
344
|
/**
|
|
345
345
|
* Resolves model configuration with fallbacks
|
|
346
346
|
* Resolution priority: options > env (from settings.json) > process.env > default
|
|
347
|
-
* @param
|
|
347
|
+
* @param model - Agent model from constructor (optional)
|
|
348
348
|
* @param fastModel - Fast model from constructor (optional)
|
|
349
349
|
* @param maxTokens - Max output tokens from constructor (optional)
|
|
350
350
|
* @returns Resolved model configuration with defaults
|
|
351
351
|
*/
|
|
352
|
-
resolveModelConfig(
|
|
352
|
+
resolveModelConfig(model, fastModel, maxTokens, permissionMode) {
|
|
353
353
|
// Default values as per data-model.md
|
|
354
354
|
const DEFAULT_AGENT_MODEL = "gemini-3-flash";
|
|
355
355
|
const DEFAULT_FAST_MODEL = "gemini-2.5-flash";
|
|
356
356
|
// Resolve agent model: constructor > env (settings.json) > process.env > default
|
|
357
|
-
let resolvedAgentModel =
|
|
357
|
+
let resolvedAgentModel = model || this.env.WAVE_MODEL;
|
|
358
358
|
if (!resolvedAgentModel && this.currentConfiguration?.env?.WAVE_MODEL) {
|
|
359
359
|
resolvedAgentModel = this.currentConfiguration.env.WAVE_MODEL;
|
|
360
360
|
}
|
|
@@ -370,7 +370,7 @@ export class ConfigurationService {
|
|
|
370
370
|
// Resolve max output tokens
|
|
371
371
|
const resolvedMaxTokens = this.resolveMaxOutputTokens(maxTokens);
|
|
372
372
|
return {
|
|
373
|
-
|
|
373
|
+
model: resolvedAgentModel,
|
|
374
374
|
fastModel: resolvedFastModel,
|
|
375
375
|
maxTokens: resolvedMaxTokens,
|
|
376
376
|
permissionMode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/services/hook.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EAElC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/services/hook.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EAElC,MAAM,mBAAmB,CAAC;AAgF3B;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,oBAAoB,GAAG,4BAA4B,EAC5D,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,CA4H9B;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,oBAAoB,GAAG,4BAA4B,EAC5D,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAchC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAsBtD"}
|
package/dist/services/hook.js
CHANGED
|
@@ -59,6 +59,12 @@ async function buildHookJsonInput(context) {
|
|
|
59
59
|
jsonInput.notification_type = context.notificationType;
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
+
// Add name field for WorktreeCreate events
|
|
63
|
+
if (context.event === "WorktreeCreate") {
|
|
64
|
+
if (context.worktreeName !== undefined) {
|
|
65
|
+
jsonInput.name = context.worktreeName;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
62
68
|
return jsonInput;
|
|
63
69
|
}
|
|
64
70
|
/**
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Message, Logger, AgentOptions, ILspManager } from "../types/index.js";
|
|
2
|
+
import type { SkillManager } from "../managers/skillManager.js";
|
|
3
|
+
import type { SubagentManager } from "../managers/subagentManager.js";
|
|
4
|
+
import type { Container } from "../utils/container.js";
|
|
5
|
+
import type { ToolManager } from "../managers/toolManager.js";
|
|
6
|
+
import type { PluginManager } from "../managers/pluginManager.js";
|
|
7
|
+
import type { SlashCommandManager } from "../managers/slashCommandManager.js";
|
|
8
|
+
import type { McpManager } from "../managers/mcpManager.js";
|
|
9
|
+
import type { ConfigurationService } from "./configurationService.js";
|
|
10
|
+
import type { HookManager } from "../managers/hookManager.js";
|
|
11
|
+
import type { MessageManager } from "../managers/messageManager.js";
|
|
12
|
+
import type { MemoryRuleManager } from "../managers/MemoryRuleManager.js";
|
|
13
|
+
import type { LiveConfigManager } from "../managers/liveConfigManager.js";
|
|
14
|
+
import type { TaskManager } from "./taskManager.js";
|
|
15
|
+
export interface InitializationContext {
|
|
16
|
+
skillManager: SkillManager;
|
|
17
|
+
subagentManager: SubagentManager;
|
|
18
|
+
container: Container;
|
|
19
|
+
toolManager: ToolManager;
|
|
20
|
+
pluginManager: PluginManager;
|
|
21
|
+
options: AgentOptions;
|
|
22
|
+
slashCommandManager: SlashCommandManager;
|
|
23
|
+
logger?: Logger;
|
|
24
|
+
mcpManager: McpManager;
|
|
25
|
+
workdir: string;
|
|
26
|
+
lspManager: ILspManager;
|
|
27
|
+
configurationService: ConfigurationService;
|
|
28
|
+
hookManager: HookManager;
|
|
29
|
+
messageManager: MessageManager;
|
|
30
|
+
memoryRuleManager: MemoryRuleManager;
|
|
31
|
+
liveConfigManager: LiveConfigManager;
|
|
32
|
+
taskManager: TaskManager;
|
|
33
|
+
setProjectMemory: (content: string) => void;
|
|
34
|
+
setUserMemory: (content: string) => void;
|
|
35
|
+
resolveAndValidateConfig: () => void;
|
|
36
|
+
}
|
|
37
|
+
export declare class InitializationService {
|
|
38
|
+
static initialize(context: InitializationContext, options?: {
|
|
39
|
+
restoreSessionId?: string;
|
|
40
|
+
continueLastSession?: boolean;
|
|
41
|
+
messages?: Message[];
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=initializationService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializationService.d.ts","sourceRoot":"","sources":["../../src/services/initializationService.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,YAAY,EACZ,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,WAAW,CAAC;IACxB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,wBAAwB,EAAE,MAAM,IAAI,CAAC;CACtC;AAED,qBAAa,qBAAqB;WACZ,UAAU,CAC5B,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE;QACR,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;KACtB,GACA,OAAO,CAAC,IAAI,CAAC;CAwOjB"}
|