wave-agent-sdk 0.11.6 → 0.11.7
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/builtin/skills/init/SKILL.md +2 -0
- package/builtin/skills/settings/SKILLS.md +3 -2
- package/builtin/skills/settings/SUBAGENTS.md +1 -3
- package/dist/agent.d.ts +6 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +18 -1
- package/dist/constants/tools.d.ts +1 -1
- package/dist/constants/tools.d.ts.map +1 -1
- package/dist/constants/tools.js +1 -1
- package/dist/managers/MemoryRuleManager.d.ts.map +1 -1
- package/dist/managers/MemoryRuleManager.js +1 -9
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +22 -3
- package/dist/managers/messageManager.d.ts +13 -5
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/messageManager.js +62 -34
- package/dist/managers/pluginManager.d.ts.map +1 -1
- package/dist/managers/pluginManager.js +4 -2
- package/dist/managers/slashCommandManager.d.ts +2 -0
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +98 -4
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/managers/toolManager.js +8 -2
- package/dist/prompts/index.d.ts +2 -0
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +5 -0
- package/dist/services/GitService.d.ts +1 -0
- package/dist/services/GitService.d.ts.map +1 -1
- package/dist/services/GitService.js +16 -0
- package/dist/services/MarketplaceService.d.ts +7 -0
- package/dist/services/MarketplaceService.d.ts.map +1 -1
- package/dist/services/MarketplaceService.js +321 -252
- package/dist/services/aiService.d.ts +34 -0
- package/dist/services/aiService.d.ts.map +1 -1
- package/dist/services/aiService.js +124 -1
- package/dist/services/initializationService.d.ts.map +1 -1
- package/dist/services/initializationService.js +18 -0
- package/dist/tools/agentTool.js +3 -3
- package/dist/tools/bashTool.d.ts.map +1 -1
- package/dist/tools/bashTool.js +4 -4
- package/dist/tools/editTool.d.ts.map +1 -1
- package/dist/tools/editTool.js +2 -0
- package/dist/tools/globTool.d.ts.map +1 -1
- package/dist/tools/globTool.js +15 -3
- package/dist/tools/grepTool.d.ts.map +1 -1
- package/dist/tools/grepTool.js +38 -12
- package/dist/tools/readTool.d.ts.map +1 -1
- package/dist/tools/readTool.js +61 -0
- package/dist/tools/skillTool.js +2 -2
- package/dist/tools/types.d.ts +16 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/webFetchTool.d.ts +3 -0
- package/dist/tools/webFetchTool.d.ts.map +1 -0
- package/dist/tools/webFetchTool.js +171 -0
- package/dist/tools/writeTool.d.ts.map +1 -1
- package/dist/tools/writeTool.js +2 -0
- package/dist/types/commands.d.ts +1 -1
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/messaging.d.ts +1 -0
- package/dist/types/messaging.d.ts.map +1 -1
- package/dist/utils/bashParser.d.ts +14 -0
- package/dist/utils/bashParser.d.ts.map +1 -1
- package/dist/utils/bashParser.js +243 -142
- package/dist/utils/convertMessagesForAPI.d.ts.map +1 -1
- package/dist/utils/convertMessagesForAPI.js +7 -0
- package/dist/utils/fileUtils.d.ts +8 -0
- package/dist/utils/fileUtils.d.ts.map +1 -1
- package/dist/utils/fileUtils.js +52 -0
- package/dist/utils/messageOperations.d.ts +12 -3
- package/dist/utils/messageOperations.d.ts.map +1 -1
- package/dist/utils/messageOperations.js +77 -9
- package/package.json +4 -2
- package/src/agent.ts +19 -1
- package/src/constants/tools.ts +1 -1
- package/src/managers/MemoryRuleManager.ts +1 -10
- package/src/managers/aiManager.ts +23 -3
- package/src/managers/messageManager.ts +76 -38
- package/src/managers/pluginManager.ts +4 -2
- package/src/managers/slashCommandManager.ts +130 -4
- package/src/managers/toolManager.ts +11 -2
- package/src/prompts/index.ts +6 -0
- package/src/services/GitService.ts +20 -0
- package/src/services/MarketplaceService.ts +397 -324
- package/src/services/aiService.ts +197 -1
- package/src/services/initializationService.ts +38 -0
- package/src/tools/agentTool.ts +3 -3
- package/src/tools/bashTool.ts +3 -4
- package/src/tools/editTool.ts +3 -0
- package/src/tools/globTool.ts +16 -3
- package/src/tools/grepTool.ts +41 -13
- package/src/tools/readTool.ts +69 -0
- package/src/tools/skillTool.ts +2 -2
- package/src/tools/types.ts +13 -0
- package/src/tools/webFetchTool.ts +194 -0
- package/src/tools/writeTool.ts +3 -0
- package/src/types/commands.ts +1 -1
- package/src/types/messaging.ts +1 -0
- package/src/utils/bashParser.ts +268 -157
- package/src/utils/convertMessagesForAPI.ts +8 -0
- package/src/utils/fileUtils.ts +69 -0
- package/src/utils/messageOperations.ts +84 -9
- package/dist/tools/taskOutputTool.d.ts +0 -3
- package/dist/tools/taskOutputTool.d.ts.map +0 -1
- package/dist/tools/taskOutputTool.js +0 -198
- package/src/tools/taskOutputTool.ts +0 -222
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { ToolContext, ToolPlugin, ToolResult } from "../tools/types.js";
|
|
2
2
|
import { bashTool } from "../tools/bashTool.js";
|
|
3
|
-
import { taskOutputTool } from "../tools/taskOutputTool.js";
|
|
4
3
|
import { taskStopTool } from "../tools/taskStopTool.js";
|
|
5
4
|
import { editTool } from "../tools/editTool.js";
|
|
6
5
|
import { writeTool } from "../tools/writeTool.js";
|
|
@@ -9,6 +8,7 @@ import { askUserQuestionTool } from "../tools/askUserQuestion.js";
|
|
|
9
8
|
import { cronCreateTool } from "../tools/cronCreateTool.js";
|
|
10
9
|
import { cronDeleteTool } from "../tools/cronDeleteTool.js";
|
|
11
10
|
import { cronListTool } from "../tools/cronListTool.js";
|
|
11
|
+
import { webFetchTool } from "../tools/webFetchTool.js";
|
|
12
12
|
// New tools
|
|
13
13
|
import { globTool } from "../tools/globTool.js";
|
|
14
14
|
import { grepTool } from "../tools/grepTool.js";
|
|
@@ -34,6 +34,7 @@ import type { SubagentManager } from "./subagentManager.js";
|
|
|
34
34
|
import type { SkillManager } from "./skillManager.js";
|
|
35
35
|
|
|
36
36
|
import { ReversionManager } from "./reversionManager.js";
|
|
37
|
+
import * as aiService from "../services/aiService.js";
|
|
37
38
|
|
|
38
39
|
import { Container } from "../utils/container.js";
|
|
39
40
|
|
|
@@ -101,7 +102,6 @@ class ToolManager {
|
|
|
101
102
|
public initializeBuiltInTools(): void {
|
|
102
103
|
const builtInTools = [
|
|
103
104
|
bashTool,
|
|
104
|
-
taskOutputTool,
|
|
105
105
|
taskStopTool,
|
|
106
106
|
editTool,
|
|
107
107
|
writeTool,
|
|
@@ -120,6 +120,7 @@ class ToolManager {
|
|
|
120
120
|
cronCreateTool,
|
|
121
121
|
cronDeleteTool,
|
|
122
122
|
cronListTool,
|
|
123
|
+
webFetchTool,
|
|
123
124
|
];
|
|
124
125
|
|
|
125
126
|
for (const tool of builtInTools) {
|
|
@@ -213,6 +214,14 @@ class ToolManager {
|
|
|
213
214
|
"CronManager",
|
|
214
215
|
)
|
|
215
216
|
: undefined,
|
|
217
|
+
aiManager: this.container.has("AIManager")
|
|
218
|
+
? this.container.get<import("./aiManager.js").AIManager>("AIManager")
|
|
219
|
+
: undefined,
|
|
220
|
+
aiService: aiService,
|
|
221
|
+
messageManager:
|
|
222
|
+
this.container.get<import("./messageManager.js").MessageManager>(
|
|
223
|
+
"MessageManager",
|
|
224
|
+
)!,
|
|
216
225
|
sessionId: context.sessionId,
|
|
217
226
|
toolCallId: context.toolCallId,
|
|
218
227
|
};
|
package/src/prompts/index.ts
CHANGED
|
@@ -151,6 +151,12 @@ Any promises made to the user
|
|
|
151
151
|
Be concise but complete—err 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.
|
|
152
152
|
Wrap your summary in <summary></summary> tags.`;
|
|
153
153
|
|
|
154
|
+
export const WEB_CONTENT_SYSTEM_PROMPT = `You are a helpful assistant that extracts information from web content. The content is provided in Markdown format.`;
|
|
155
|
+
export const BTW_SYSTEM_PROMPT = `You are a helpful assistant. Answer the user's side question based on the conversation history.
|
|
156
|
+
Do NOT say things like "Let me try...", "I'll now...", "Let me check...", or promise to take any action.
|
|
157
|
+
If you don't know the answer, say so - do not offer to look it up or investigate.
|
|
158
|
+
Simply answer the question with the information you have.`;
|
|
159
|
+
|
|
154
160
|
export function buildSystemPrompt(
|
|
155
161
|
basePrompt: string | undefined,
|
|
156
162
|
tools: ToolPlugin[],
|
|
@@ -4,6 +4,17 @@ import { promisify } from "util";
|
|
|
4
4
|
const execAsync = promisify(exec);
|
|
5
5
|
|
|
6
6
|
export class GitService {
|
|
7
|
+
private getTimeout(): number {
|
|
8
|
+
const envTimeout = process.env.WAVE_PLUGIN_GIT_TIMEOUT_MS;
|
|
9
|
+
if (envTimeout) {
|
|
10
|
+
const parsed = parseInt(envTimeout, 10);
|
|
11
|
+
if (!isNaN(parsed)) {
|
|
12
|
+
return parsed;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return 120000; // Default 120 seconds
|
|
16
|
+
}
|
|
17
|
+
|
|
7
18
|
/**
|
|
8
19
|
* Checks if git is installed and available in the system path
|
|
9
20
|
*/
|
|
@@ -50,6 +61,7 @@ export class GitService {
|
|
|
50
61
|
const refArgs = ref ? `-b "${ref}"` : "--depth 1";
|
|
51
62
|
await execAsync(`git clone ${refArgs} "${url}" "${targetPath}"`, {
|
|
52
63
|
env: { ...process.env, LC_ALL: "C" },
|
|
64
|
+
timeout: this.getTimeout(),
|
|
53
65
|
});
|
|
54
66
|
} catch (error) {
|
|
55
67
|
throw this.handleGitError(urlOrRepo, error);
|
|
@@ -73,6 +85,7 @@ export class GitService {
|
|
|
73
85
|
try {
|
|
74
86
|
await execAsync(`git -C "${targetPath}" pull`, {
|
|
75
87
|
env: { ...process.env, LC_ALL: "C" },
|
|
88
|
+
timeout: this.getTimeout(),
|
|
76
89
|
});
|
|
77
90
|
} catch (error) {
|
|
78
91
|
throw this.handleGitError(targetPath, error);
|
|
@@ -82,6 +95,13 @@ export class GitService {
|
|
|
82
95
|
private handleGitError(context: string, error: unknown): Error {
|
|
83
96
|
const stderr = (error as { stderr?: string })?.stderr || "";
|
|
84
97
|
const message = (error as Error)?.message || String(error);
|
|
98
|
+
const killed = (error as { killed?: boolean })?.killed || false;
|
|
99
|
+
|
|
100
|
+
if (message.includes("ETIMEDOUT") || killed) {
|
|
101
|
+
return new Error(
|
|
102
|
+
`Git operation timed out after ${this.getTimeout() / 1000}s. The repository may be too large or the network is slow. You can increase the timeout by setting the WAVE_PLUGIN_GIT_TIMEOUT_MS environment variable.`,
|
|
103
|
+
);
|
|
104
|
+
}
|
|
85
105
|
|
|
86
106
|
if (
|
|
87
107
|
stderr.includes("Repository not found") ||
|