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
package/dist/tools/taskTool.js
CHANGED
|
@@ -1,198 +1,203 @@
|
|
|
1
1
|
import { EXPLORE_SUBAGENT_TYPE } from "../constants/subagents.js";
|
|
2
2
|
import { TASK_TOOL_NAME } from "../constants/tools.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* Note: SubagentManager should be initialized before calling this function
|
|
4
|
+
* Task tool plugin for delegating tasks to specialized subagents
|
|
6
5
|
*/
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
description: "A clear, concise description of what needs to be accomplished",
|
|
33
|
-
},
|
|
34
|
-
prompt: {
|
|
35
|
-
type: "string",
|
|
36
|
-
description: "The specific instructions or prompt to send to the subagent",
|
|
37
|
-
},
|
|
38
|
-
subagent_type: {
|
|
39
|
-
type: "string",
|
|
40
|
-
description: `The type or name of subagent to use. Available options: ${availableSubagents.map((c) => c.name).join(", ") || "none"}`,
|
|
41
|
-
},
|
|
42
|
-
run_in_background: {
|
|
43
|
-
type: "boolean",
|
|
44
|
-
description: "Set to true to run this command in the background. Use TaskOutput to read the output later.",
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
required: ["description", "prompt", "subagent_type"],
|
|
6
|
+
export const taskTool = {
|
|
7
|
+
name: TASK_TOOL_NAME,
|
|
8
|
+
config: {
|
|
9
|
+
type: "function",
|
|
10
|
+
function: {
|
|
11
|
+
name: TASK_TOOL_NAME,
|
|
12
|
+
description: "Delegate a task to a specialized subagent. Use this when you need specialized expertise or want to break down complex work into focused subtasks.",
|
|
13
|
+
parameters: {
|
|
14
|
+
type: "object",
|
|
15
|
+
properties: {
|
|
16
|
+
description: {
|
|
17
|
+
type: "string",
|
|
18
|
+
description: "A short (3-5 word) description of the task",
|
|
19
|
+
},
|
|
20
|
+
prompt: {
|
|
21
|
+
type: "string",
|
|
22
|
+
description: "The task for the agent to perform",
|
|
23
|
+
},
|
|
24
|
+
subagent_type: {
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "The type of specialized agent to use for this task",
|
|
27
|
+
},
|
|
28
|
+
run_in_background: {
|
|
29
|
+
type: "boolean",
|
|
30
|
+
description: "Set to true to run this command in the background. Use TaskOutput to read the output later.",
|
|
48
31
|
},
|
|
49
32
|
},
|
|
50
|
-
|
|
33
|
+
required: ["description", "prompt", "subagent_type"],
|
|
34
|
+
},
|
|
51
35
|
},
|
|
52
|
-
|
|
36
|
+
},
|
|
37
|
+
prompt: (args) => {
|
|
38
|
+
const subagentList = args?.availableSubagents
|
|
39
|
+
? args.availableSubagents
|
|
40
|
+
.map((config) => `- ${config.name}: ${config.description}`)
|
|
41
|
+
.join("\n")
|
|
42
|
+
: "";
|
|
43
|
+
return `
|
|
44
|
+
Delegate a task to a specialized subagent. Use this when you need specialized expertise or want to break down complex work into focused subtasks.
|
|
45
|
+
|
|
46
|
+
Available subagents:
|
|
47
|
+
${subagentList || "No subagents configured"}
|
|
48
|
+
|
|
53
49
|
- When doing file search, prefer to use the ${TASK_TOOL_NAME} tool in order to reduce context usage.
|
|
54
50
|
- You should proactively use the ${TASK_TOOL_NAME} tool with specialized agents when the task at hand matches the agent's description.
|
|
55
|
-
- VERY IMPORTANT: When exploring the codebase to gather context or to answer a question that is not a needle query for a specific file/class/function, it is CRITICAL that you use the ${TASK_TOOL_NAME} tool with subagent_type=${EXPLORE_SUBAGENT_TYPE} instead of running search commands directly
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
};
|
|
130
|
-
// Create subagent instance and execute task
|
|
131
|
-
const instance = await subagentManager.createInstance(configuration, {
|
|
132
|
-
description,
|
|
133
|
-
prompt,
|
|
134
|
-
subagent_type,
|
|
135
|
-
}, run_in_background, updateShortResult);
|
|
136
|
-
// Initial update
|
|
137
|
-
updateShortResult();
|
|
138
|
-
let isBackgrounded = false;
|
|
139
|
-
// Register for backgrounding if not already in background
|
|
140
|
-
if (!run_in_background && context.foregroundTaskManager) {
|
|
141
|
-
context.foregroundTaskManager.registerForegroundTask({
|
|
142
|
-
id: instance.subagentId,
|
|
143
|
-
backgroundHandler: async () => {
|
|
144
|
-
isBackgrounded = true;
|
|
145
|
-
const taskId = await subagentManager.backgroundInstance(instance.subagentId);
|
|
146
|
-
// Resolve the tool execution early so the main agent can continue
|
|
147
|
-
resolve({
|
|
148
|
-
success: true,
|
|
149
|
-
content: `Task moved to background with ID: ${taskId}.`,
|
|
150
|
-
shortResult: "Task backgrounded",
|
|
151
|
-
isManuallyBackgrounded: true,
|
|
152
|
-
});
|
|
153
|
-
},
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
try {
|
|
157
|
-
const result = await subagentManager.executeTask(instance, prompt, context.abortSignal, run_in_background);
|
|
158
|
-
if (isBackgrounded)
|
|
159
|
-
return;
|
|
160
|
-
if (run_in_background) {
|
|
161
|
-
return resolve({
|
|
162
|
-
success: true,
|
|
163
|
-
content: `Task started in background with ID: ${result}`,
|
|
164
|
-
shortResult: `Task started in background: ${result}`,
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
// Cleanup subagent instance after task completion
|
|
168
|
-
subagentManager.cleanupInstance(instance.subagentId);
|
|
169
|
-
return resolve({
|
|
170
|
-
success: true,
|
|
171
|
-
content: result,
|
|
172
|
-
shortResult: `Task completed by ${configuration.name}`,
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
finally {
|
|
176
|
-
if (!run_in_background && context.foregroundTaskManager) {
|
|
177
|
-
context.foregroundTaskManager.unregisterForegroundTask(instance.subagentId);
|
|
178
|
-
}
|
|
51
|
+
- VERY IMPORTANT: When exploring the codebase to gather context or to answer a question that is not a needle query for a specific file/class/function, it is CRITICAL that you use the ${TASK_TOOL_NAME} tool with subagent_type=${EXPLORE_SUBAGENT_TYPE} instead of running search commands directly.`;
|
|
52
|
+
},
|
|
53
|
+
execute: async (args, context) => {
|
|
54
|
+
const subagentManager = context.subagentManager;
|
|
55
|
+
if (!subagentManager) {
|
|
56
|
+
return {
|
|
57
|
+
success: false,
|
|
58
|
+
content: "",
|
|
59
|
+
error: "Subagent manager not available in tool context",
|
|
60
|
+
shortResult: "Task delegation failed",
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// Input validation
|
|
64
|
+
const description = args.description;
|
|
65
|
+
const prompt = args.prompt;
|
|
66
|
+
const subagent_type = args.subagent_type;
|
|
67
|
+
const run_in_background = args.run_in_background;
|
|
68
|
+
if (!description || typeof description !== "string") {
|
|
69
|
+
return {
|
|
70
|
+
success: false,
|
|
71
|
+
content: "",
|
|
72
|
+
error: "description parameter is required and must be a string",
|
|
73
|
+
shortResult: "Task delegation failed",
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
if (!prompt || typeof prompt !== "string") {
|
|
77
|
+
return {
|
|
78
|
+
success: false,
|
|
79
|
+
content: "",
|
|
80
|
+
error: "prompt parameter is required and must be a string",
|
|
81
|
+
shortResult: "Task delegation failed",
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
if (!subagent_type || typeof subagent_type !== "string") {
|
|
85
|
+
return {
|
|
86
|
+
success: false,
|
|
87
|
+
content: "",
|
|
88
|
+
error: "subagent_type parameter is required and must be a string",
|
|
89
|
+
shortResult: "Task delegation failed",
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
try {
|
|
93
|
+
// Subagent selection logic with explicit name matching only
|
|
94
|
+
const configuration = await subagentManager.findSubagent(subagent_type);
|
|
95
|
+
if (!configuration) {
|
|
96
|
+
// Error handling for nonexistent subagents with available subagents listing
|
|
97
|
+
const allConfigs = subagentManager.getConfigurations();
|
|
98
|
+
const availableNames = allConfigs.map((c) => c.name).join(", ");
|
|
99
|
+
return {
|
|
100
|
+
success: false,
|
|
101
|
+
content: "",
|
|
102
|
+
error: `No subagent found matching "${subagent_type}". Available subagents: ${availableNames || "none"}`,
|
|
103
|
+
shortResult: "Subagent not found",
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
let isBackgrounded = false;
|
|
107
|
+
// Create subagent instance and execute task
|
|
108
|
+
const instance = await subagentManager.createInstance(configuration, {
|
|
109
|
+
description,
|
|
110
|
+
prompt,
|
|
111
|
+
subagent_type,
|
|
112
|
+
}, run_in_background, () => {
|
|
113
|
+
// Do not update shortResult if it is running in background
|
|
114
|
+
if (run_in_background || isBackgrounded)
|
|
115
|
+
return;
|
|
116
|
+
const messages = instance.messageManager.getMessages();
|
|
117
|
+
const tokens = instance.messageManager.getlatestTotalTokens();
|
|
118
|
+
const lastTools = instance.lastTools;
|
|
119
|
+
// Count tool blocks in messages
|
|
120
|
+
let toolCount = 0;
|
|
121
|
+
messages.forEach((msg) => {
|
|
122
|
+
msg.blocks.forEach((block) => {
|
|
123
|
+
if (block.type === "tool") {
|
|
124
|
+
toolCount++;
|
|
179
125
|
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
let shortResult = "";
|
|
129
|
+
if (toolCount > 2) {
|
|
130
|
+
shortResult += "... ";
|
|
131
|
+
}
|
|
132
|
+
if (lastTools.length > 0) {
|
|
133
|
+
shortResult += `${lastTools.join(", ")} `;
|
|
134
|
+
}
|
|
135
|
+
shortResult += `(${toolCount} tools`;
|
|
136
|
+
if (tokens > 0) {
|
|
137
|
+
shortResult += ` | ${tokens.toLocaleString()} tokens`;
|
|
138
|
+
}
|
|
139
|
+
shortResult += ")";
|
|
140
|
+
context.onShortResultUpdate?.(shortResult);
|
|
190
141
|
});
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
142
|
+
// Register for backgrounding if not already in background
|
|
143
|
+
if (!run_in_background && context.foregroundTaskManager) {
|
|
144
|
+
context.foregroundTaskManager.registerForegroundTask({
|
|
145
|
+
id: instance.subagentId,
|
|
146
|
+
backgroundHandler: async () => {
|
|
147
|
+
isBackgrounded = true;
|
|
148
|
+
await subagentManager.backgroundInstance(instance.subagentId);
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
try {
|
|
153
|
+
const result = await subagentManager.executeTask(instance, prompt, context.abortSignal, run_in_background);
|
|
154
|
+
if (isBackgrounded) {
|
|
155
|
+
// If it was backgrounded during execution, the backgroundHandler already returned/will return
|
|
156
|
+
// But wait, the backgroundHandler is async and returns a ToolResult.
|
|
157
|
+
// In the current ToolManager/AIManager implementation, the backgroundHandler's return value
|
|
158
|
+
// is what's used when backgrounding happens.
|
|
159
|
+
// However, executeTask might still be running.
|
|
160
|
+
// We should return a special value or just let it be.
|
|
161
|
+
return {
|
|
162
|
+
success: true,
|
|
163
|
+
content: "Task backgrounded",
|
|
164
|
+
shortResult: "Task backgrounded",
|
|
165
|
+
isManuallyBackgrounded: true,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
if (run_in_background) {
|
|
169
|
+
return {
|
|
170
|
+
success: true,
|
|
171
|
+
content: `Task started in background with ID: ${result}`,
|
|
172
|
+
shortResult: `Task started in background: ${result}`,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
// Cleanup subagent instance after task completion
|
|
176
|
+
subagentManager.cleanupInstance(instance.subagentId);
|
|
177
|
+
return {
|
|
178
|
+
success: true,
|
|
179
|
+
content: result,
|
|
180
|
+
shortResult: `Task completed by ${configuration.name}`,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
finally {
|
|
184
|
+
if (!run_in_background && context.foregroundTaskManager) {
|
|
185
|
+
context.foregroundTaskManager.unregisterForegroundTask(instance.subagentId);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
return {
|
|
191
|
+
success: false,
|
|
192
|
+
content: "",
|
|
193
|
+
error: `Task delegation failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
194
|
+
shortResult: "Delegation error",
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
formatCompactParams: (params) => {
|
|
199
|
+
const subagent_type = params.subagent_type;
|
|
200
|
+
const description = params.description;
|
|
201
|
+
return `${subagent_type || "unknown"}: ${description || "no description"}`;
|
|
202
|
+
},
|
|
203
|
+
};
|
package/dist/tools/types.d.ts
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { ChatCompletionFunctionTool } from "openai/resources.js";
|
|
5
5
|
import type { PermissionMode, PermissionCallback } from "../types/permissions.js";
|
|
6
|
+
import type { SubagentConfiguration } from "../utils/subagentParser.js";
|
|
7
|
+
import type { SkillMetadata } from "../types/skills.js";
|
|
6
8
|
export interface ToolPlugin {
|
|
7
9
|
name: string;
|
|
8
10
|
config: ChatCompletionFunctionTool;
|
|
@@ -11,7 +13,11 @@ export interface ToolPlugin {
|
|
|
11
13
|
/**
|
|
12
14
|
* Optional function to provide a prompt to be added to the system prompt
|
|
13
15
|
*/
|
|
14
|
-
prompt?: (
|
|
16
|
+
prompt?: (args?: {
|
|
17
|
+
availableSubagents?: SubagentConfiguration[];
|
|
18
|
+
availableSkills?: SkillMetadata[];
|
|
19
|
+
workdir?: string;
|
|
20
|
+
}) => string;
|
|
15
21
|
}
|
|
16
22
|
export interface ToolResult {
|
|
17
23
|
success: boolean;
|
|
@@ -48,6 +54,10 @@ export interface ToolContext {
|
|
|
48
54
|
foregroundTaskManager?: import("../types/processes.js").IForegroundTaskManager;
|
|
49
55
|
/** Task manager instance for task management */
|
|
50
56
|
taskManager: import("../services/taskManager.js").TaskManager;
|
|
57
|
+
/** Subagent manager instance for task delegation */
|
|
58
|
+
subagentManager?: import("../managers/subagentManager.js").SubagentManager;
|
|
59
|
+
/** Skill manager instance for skill invocation */
|
|
60
|
+
skillManager?: import("../managers/skillManager.js").SkillManager;
|
|
51
61
|
/** Current session ID */
|
|
52
62
|
sessionId?: string;
|
|
53
63
|
/** Callback to update the short result of the current tool block */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QACf,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IAEH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,sCAAsC,EAAE,qBAAqB,CAAC;IAC7F,qBAAqB,CAAC,EAAE,OAAO,sCAAsC,EAAE,qBAAqB,CAAC;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,kCAAkC,EAAE,iBAAiB,CAAC;IACjF,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,2BAA2B,EAAE,UAAU,CAAC;IAC5D,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,iBAAiB,EAAE,WAAW,CAAC;IACnD,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,iCAAiC,EAAE,gBAAgB,CAAC;IAC9E,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,qBAAqB,CAAC,EAAE,OAAO,uBAAuB,EAAE,sBAAsB,CAAC;IAC/E,gDAAgD;IAChD,WAAW,EAAE,OAAO,4BAA4B,EAAE,WAAW,CAAC;IAC9D,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,gCAAgC,EAAE,eAAe,CAAC;IAC3E,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,6BAA6B,EAAE,YAAY,CAAC;IAClE,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeTool.d.ts","sourceRoot":"","sources":["../../src/tools/writeTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"writeTool.d.ts","sourceRoot":"","sources":["../../src/tools/writeTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAItE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAkMvB,CAAC"}
|
package/dist/tools/writeTool.js
CHANGED
|
@@ -2,6 +2,7 @@ import { readFile, writeFile, mkdir } from "fs/promises";
|
|
|
2
2
|
import { dirname } from "path";
|
|
3
3
|
import { logger } from "../utils/globalLogger.js";
|
|
4
4
|
import { resolvePath, getDisplayPath } from "../utils/path.js";
|
|
5
|
+
import { READ_TOOL_NAME } from "../constants/tools.js";
|
|
5
6
|
/**
|
|
6
7
|
* File Write Tool Plugin
|
|
7
8
|
*/
|
|
@@ -29,10 +30,11 @@ export const writeTool = {
|
|
|
29
30
|
},
|
|
30
31
|
},
|
|
31
32
|
},
|
|
32
|
-
prompt: () => `
|
|
33
|
+
prompt: () => `Writes a file to the local filesystem.
|
|
34
|
+
|
|
33
35
|
Usage:
|
|
34
36
|
- This tool will overwrite the existing file if there is one at the provided path.
|
|
35
|
-
- If this is an existing file, you MUST use the
|
|
37
|
+
- If this is an existing file, you MUST use the \`${READ_TOOL_NAME}\` tool first to read the file's contents. This tool will fail if you did not read the file first.
|
|
36
38
|
- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.
|
|
37
39
|
- NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.
|
|
38
40
|
- Only use emojis if the user explicitly requests it. Avoid writing emojis to files unless asked.
|
|
@@ -8,6 +8,14 @@ export interface MarketplacePluginEntry {
|
|
|
8
8
|
source: string;
|
|
9
9
|
description: string;
|
|
10
10
|
}
|
|
11
|
+
export interface MarketplacePluginStatus extends MarketplacePluginEntry {
|
|
12
|
+
marketplace: string;
|
|
13
|
+
installed: boolean;
|
|
14
|
+
version?: string;
|
|
15
|
+
cachePath?: string;
|
|
16
|
+
projectPath?: string;
|
|
17
|
+
scope?: Scope;
|
|
18
|
+
}
|
|
11
19
|
export interface MarketplaceManifest {
|
|
12
20
|
name: string;
|
|
13
21
|
owner: MarketplaceOwner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/types/marketplace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,sBAAsB,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACD;IACE,MAAM,EAAE,KAAK,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B"}
|
|
1
|
+
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/types/marketplace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,sBAAsB,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACD;IACE,MAAM,EAAE,KAAK,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B"}
|
|
@@ -34,7 +34,7 @@ export interface ToolPermissionContext {
|
|
|
34
34
|
hidePersistentOption?: boolean;
|
|
35
35
|
}
|
|
36
36
|
/** List of tools that require permission checks in default mode */
|
|
37
|
-
export declare const RESTRICTED_TOOLS: readonly ["Edit", "
|
|
37
|
+
export declare const RESTRICTED_TOOLS: readonly ["Edit", "Bash", "Write", "ExitPlanMode", "AskUserQuestion"];
|
|
38
38
|
/** Type for restricted tool names */
|
|
39
39
|
export type RestrictedTool = (typeof RESTRICTED_TOOLS)[number];
|
|
40
40
|
export type { AskUserQuestion, AskUserQuestionInput, AskUserQuestionOption };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/types/permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/types/permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AASpB,oCAAoC;AACpC,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,mBAAmB,GACnB,aAAa,GACb,MAAM,CAAC;AAEX,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,oDAAoD;AACpD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2FAA2F;IAC3F,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,uEAMnB,CAAC;AAEX,qCAAqC;AACrC,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
* Permission system types for Wave Agent SDK
|
|
3
3
|
* Dependencies: None
|
|
4
4
|
*/
|
|
5
|
-
import { EDIT_TOOL_NAME,
|
|
5
|
+
import { EDIT_TOOL_NAME, BASH_TOOL_NAME, WRITE_TOOL_NAME, EXIT_PLAN_MODE_TOOL_NAME, ASK_USER_QUESTION_TOOL_NAME, } from "../constants/tools.js";
|
|
6
6
|
/** List of tools that require permission checks in default mode */
|
|
7
7
|
export const RESTRICTED_TOOLS = [
|
|
8
8
|
EDIT_TOOL_NAME,
|
|
9
|
-
MULTI_EDIT_TOOL_NAME,
|
|
10
|
-
DELETE_FILE_TOOL_NAME,
|
|
11
9
|
BASH_TOOL_NAME,
|
|
12
10
|
WRITE_TOOL_NAME,
|
|
13
11
|
EXIT_PLAN_MODE_TOOL_NAME,
|
package/dist/types/skills.d.ts
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Skill system types and constants
|
|
3
3
|
* Dependencies: Core (Logger)
|
|
4
4
|
*/
|
|
5
|
-
import type { Logger } from "./core.js";
|
|
6
5
|
export interface SkillMetadata {
|
|
7
6
|
name: string;
|
|
8
7
|
description: string;
|
|
@@ -49,7 +48,6 @@ export interface SkillToolArgs {
|
|
|
49
48
|
export interface SkillManagerOptions {
|
|
50
49
|
personalSkillsPath?: string;
|
|
51
50
|
scanTimeout?: number;
|
|
52
|
-
logger?: Logger;
|
|
53
51
|
workdir?: string;
|
|
54
52
|
}
|
|
55
53
|
export interface ParsedSkillFile {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/types/skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/types/skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,KAAM,SAAQ,aAAa;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnC,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;CAYjB,CAAC"}
|
package/dist/types/tools.d.ts
CHANGED
|
@@ -28,14 +28,6 @@ export interface WriteToolParameters {
|
|
|
28
28
|
file_path: string;
|
|
29
29
|
content: string;
|
|
30
30
|
}
|
|
31
|
-
/**
|
|
32
|
-
* Parameters for a single edit operation in the Edit tool
|
|
33
|
-
*/
|
|
34
|
-
export interface EditOperation {
|
|
35
|
-
old_string: string;
|
|
36
|
-
new_string: string;
|
|
37
|
-
replace_all?: boolean;
|
|
38
|
-
}
|
|
39
31
|
/**
|
|
40
32
|
* Parameters for the Edit tool
|
|
41
33
|
*/
|
|
@@ -45,11 +37,4 @@ export interface EditToolParameters {
|
|
|
45
37
|
new_string: string;
|
|
46
38
|
replace_all?: boolean;
|
|
47
39
|
}
|
|
48
|
-
/**
|
|
49
|
-
* Parameters for the MultiEdit tool
|
|
50
|
-
*/
|
|
51
|
-
export interface MultiEditToolParameters {
|
|
52
|
-
file_path: string;
|
|
53
|
-
edits: EditOperation[];
|
|
54
|
-
}
|
|
55
40
|
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simple Dependency Injection container to manage late-binding dependencies
|
|
3
|
+
* and resolve circular references.
|
|
4
|
+
*/
|
|
5
|
+
export declare class Container {
|
|
6
|
+
private services;
|
|
7
|
+
private factories;
|
|
8
|
+
private parent?;
|
|
9
|
+
constructor(parent?: Container);
|
|
10
|
+
/**
|
|
11
|
+
* Create a child container that inherits from this container
|
|
12
|
+
*/
|
|
13
|
+
createChild(): Container;
|
|
14
|
+
/**
|
|
15
|
+
* Register a singleton instance
|
|
16
|
+
*/
|
|
17
|
+
register<T>(token: string, instance: T): void;
|
|
18
|
+
/**
|
|
19
|
+
* Register a factory function for lazy resolution
|
|
20
|
+
*/
|
|
21
|
+
provide<T>(token: string, factory: () => T): void;
|
|
22
|
+
/**
|
|
23
|
+
* Resolve a service by token
|
|
24
|
+
*/
|
|
25
|
+
get<T>(token: string): T | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Check if a service exists
|
|
28
|
+
*/
|
|
29
|
+
has(token: string): boolean;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/utils/container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,MAAM,CAAC,CAAY;gBAEf,MAAM,CAAC,EAAE,SAAS;IAI9B;;OAEG;IACH,WAAW,IAAI,SAAS;IAIxB;;OAEG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI;IAI7C;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI;IAIjD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAmBpC;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAO5B"}
|