wave-agent-sdk 0.10.3 → 0.11.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 -6
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +12 -9
- package/dist/builtin-skills/builtin-skills/loop/SKILL.md +53 -0
- package/dist/builtin-skills/builtin-skills/loop/parsing.ts +159 -0
- package/dist/builtin-skills/builtin-skills/settings/HOOKS.md +82 -0
- package/dist/builtin-skills/{settings → builtin-skills/settings}/SKILL.md +1 -1
- package/dist/builtin-skills/loop/parsing.d.ts +13 -0
- package/dist/builtin-skills/loop/parsing.d.ts.map +1 -0
- package/dist/builtin-skills/loop/parsing.js +125 -0
- package/dist/constants/tools.d.ts +3 -0
- package/dist/constants/tools.d.ts.map +1 -1
- package/dist/constants/tools.js +3 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/managers/aiManager.d.ts +0 -2
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +53 -14
- package/dist/managers/cronManager.d.ts +19 -0
- package/dist/managers/cronManager.d.ts.map +1 -0
- package/dist/managers/cronManager.js +124 -0
- package/dist/managers/hookManager.d.ts.map +1 -1
- package/dist/managers/hookManager.js +21 -13
- package/dist/managers/liveConfigManager.js +1 -1
- package/dist/managers/mcpManager.d.ts +1 -1
- package/dist/managers/mcpManager.d.ts.map +1 -1
- package/dist/managers/mcpManager.js +10 -2
- package/dist/managers/messageManager.d.ts +0 -1
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/permissionManager.d.ts +27 -7
- package/dist/managers/permissionManager.d.ts.map +1 -1
- package/dist/managers/permissionManager.js +119 -14
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +11 -0
- package/dist/managers/subagentManager.d.ts +3 -0
- package/dist/managers/subagentManager.d.ts.map +1 -1
- package/dist/managers/subagentManager.js +10 -17
- package/dist/managers/toolManager.d.ts +1 -1
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/managers/toolManager.js +28 -4
- package/dist/services/configurationService.d.ts.map +1 -1
- package/dist/services/configurationService.js +8 -7
- package/dist/services/hook.d.ts.map +1 -1
- package/dist/services/hook.js +3 -10
- package/dist/services/initializationService.js +2 -2
- package/dist/services/jsonlHandler.d.ts.map +1 -1
- package/dist/services/jsonlHandler.js +3 -0
- package/dist/services/reversionService.d.ts +2 -2
- package/dist/services/reversionService.d.ts.map +1 -1
- package/dist/services/reversionService.js +3 -3
- package/dist/services/session.d.ts.map +1 -1
- package/dist/services/session.js +18 -11
- package/dist/tools/agentTool.js +1 -1
- package/dist/tools/bashTool.d.ts.map +1 -1
- package/dist/tools/bashTool.js +33 -12
- package/dist/tools/cronCreateTool.d.ts +3 -0
- package/dist/tools/cronCreateTool.d.ts.map +1 -0
- package/dist/tools/cronCreateTool.js +59 -0
- package/dist/tools/cronDeleteTool.d.ts +3 -0
- package/dist/tools/cronDeleteTool.d.ts.map +1 -0
- package/dist/tools/cronDeleteTool.js +38 -0
- package/dist/tools/cronListTool.d.ts +3 -0
- package/dist/tools/cronListTool.d.ts.map +1 -0
- package/dist/tools/cronListTool.js +30 -0
- package/dist/tools/readTool.d.ts.map +1 -1
- package/dist/tools/readTool.js +8 -32
- package/dist/tools/skillTool.d.ts +0 -3
- package/dist/tools/skillTool.d.ts.map +1 -1
- package/dist/tools/skillTool.js +4 -3
- package/dist/tools/taskOutputTool.d.ts.map +1 -1
- package/dist/tools/taskOutputTool.js +15 -8
- package/dist/tools/types.d.ts +2 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types/agent.d.ts +10 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/configuration.d.ts +1 -1
- package/dist/types/configuration.d.ts.map +1 -1
- package/dist/types/cron.d.ts +10 -0
- package/dist/types/cron.d.ts.map +1 -0
- package/dist/types/cron.js +1 -0
- package/dist/types/hooks.d.ts +1 -5
- package/dist/types/hooks.d.ts.map +1 -1
- package/dist/types/hooks.js +1 -1
- 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 +1 -1
- package/dist/types/messaging.d.ts.map +1 -1
- package/dist/utils/containerSetup.d.ts.map +1 -1
- package/dist/utils/containerSetup.js +40 -13
- package/dist/utils/mcpUtils.d.ts +2 -2
- package/dist/utils/mcpUtils.d.ts.map +1 -1
- package/dist/utils/mcpUtils.js +1 -5
- package/package.json +2 -1
- package/src/agent.ts +17 -12
- package/src/builtin-skills/loop/SKILL.md +53 -0
- package/src/builtin-skills/loop/parsing.ts +159 -0
- package/src/builtin-skills/settings/HOOKS.md +44 -57
- package/src/builtin-skills/settings/SKILL.md +1 -1
- package/src/constants/tools.ts +3 -0
- package/src/index.ts +1 -0
- package/src/managers/aiManager.ts +72 -24
- package/src/managers/cronManager.ts +167 -0
- package/src/managers/hookManager.ts +27 -13
- package/src/managers/liveConfigManager.ts +2 -2
- package/src/managers/mcpManager.ts +23 -2
- package/src/managers/messageManager.ts +0 -6
- package/src/managers/permissionManager.ts +154 -18
- package/src/managers/slashCommandManager.ts +12 -0
- package/src/managers/subagentManager.ts +15 -19
- package/src/managers/toolManager.ts +37 -4
- package/src/services/configurationService.ts +8 -7
- package/src/services/hook.ts +5 -11
- package/src/services/initializationService.ts +3 -3
- package/src/services/jsonlHandler.ts +4 -0
- package/src/services/reversionService.ts +9 -4
- package/src/services/session.ts +19 -12
- package/src/tools/agentTool.ts +1 -1
- package/src/tools/bashTool.ts +43 -14
- package/src/tools/cronCreateTool.ts +73 -0
- package/src/tools/cronDeleteTool.ts +47 -0
- package/src/tools/cronListTool.ts +38 -0
- package/src/tools/readTool.ts +11 -33
- package/src/tools/skillTool.ts +6 -4
- package/src/tools/taskOutputTool.ts +14 -8
- package/src/tools/types.ts +2 -0
- package/src/types/agent.ts +10 -0
- package/src/types/configuration.ts +1 -1
- package/src/types/cron.ts +9 -0
- package/src/types/hooks.ts +5 -9
- package/src/types/index.ts +1 -0
- package/src/types/messaging.ts +1 -1
- package/src/utils/containerSetup.ts +50 -16
- package/src/utils/mcpUtils.ts +2 -5
- package/dist/builtin-skills/settings/HOOKS.md +0 -95
package/dist/services/session.js
CHANGED
|
@@ -199,12 +199,19 @@ export async function loadSessionFromJsonl(sessionId, workdir, sessionType = "ma
|
|
|
199
199
|
const jsonlHandler = new JsonlHandler();
|
|
200
200
|
// Generate the session file path directly using known session type
|
|
201
201
|
const filePath = await generateSessionFilePath(sessionId, workdir, sessionType);
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
202
|
+
// Check if file exists
|
|
203
|
+
try {
|
|
204
|
+
await fs.access(filePath);
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
if (error.code === "ENOENT") {
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
throw error;
|
|
205
211
|
}
|
|
212
|
+
const messages = await jsonlHandler.read(filePath);
|
|
206
213
|
// Extract metadata from messages
|
|
207
|
-
const lastMessage = messages[messages.length - 1];
|
|
214
|
+
const lastMessage = messages.length > 0 ? messages[messages.length - 1] : null;
|
|
208
215
|
// Try to get rootSessionId and parentSessionId from index
|
|
209
216
|
let rootSessionId;
|
|
210
217
|
let parentSessionId;
|
|
@@ -232,8 +239,10 @@ export async function loadSessionFromJsonl(sessionId, workdir, sessionType = "ma
|
|
|
232
239
|
}),
|
|
233
240
|
metadata: {
|
|
234
241
|
workdir,
|
|
235
|
-
lastActiveAt: lastMessage
|
|
236
|
-
|
|
242
|
+
lastActiveAt: lastMessage
|
|
243
|
+
? lastMessage.timestamp
|
|
244
|
+
: new Date().toISOString(),
|
|
245
|
+
latestTotalTokens: lastMessage?.usage
|
|
237
246
|
? extractLatestTotalTokens([lastMessage])
|
|
238
247
|
: 0,
|
|
239
248
|
},
|
|
@@ -743,16 +752,14 @@ export async function handleSessionRestoration(restoreSessionId, continueLastSes
|
|
|
743
752
|
// Use only JSONL format - no legacy support
|
|
744
753
|
sessionToRestore = await loadSessionFromJsonl(restoreSessionId, workdir);
|
|
745
754
|
if (!sessionToRestore) {
|
|
746
|
-
|
|
747
|
-
process.exit(1);
|
|
755
|
+
throw new Error(`Session not found: ${restoreSessionId}`);
|
|
748
756
|
}
|
|
749
757
|
}
|
|
750
758
|
else if (continueLastSession) {
|
|
751
759
|
// Use only JSONL format - no legacy support
|
|
752
760
|
sessionToRestore = await getLatestSessionFromJsonl(workdir);
|
|
753
761
|
if (!sessionToRestore) {
|
|
754
|
-
|
|
755
|
-
process.exit(1);
|
|
762
|
+
throw new Error(`No previous session found for workdir: ${workdir}`);
|
|
756
763
|
}
|
|
757
764
|
}
|
|
758
765
|
if (sessionToRestore) {
|
|
@@ -764,7 +771,7 @@ export async function handleSessionRestoration(restoreSessionId, continueLastSes
|
|
|
764
771
|
}
|
|
765
772
|
catch (error) {
|
|
766
773
|
console.error("Failed to restore session:", error);
|
|
767
|
-
|
|
774
|
+
throw error;
|
|
768
775
|
}
|
|
769
776
|
}
|
|
770
777
|
/**
|
package/dist/tools/agentTool.js
CHANGED
|
@@ -57,7 +57,7 @@ The Agent tool launches specialized agents (subprocesses) that autonomously hand
|
|
|
57
57
|
Available agent types and the tools they have access to:
|
|
58
58
|
${subagentList || "No agents configured"}
|
|
59
59
|
|
|
60
|
-
When using the Agent tool, you must specify a subagent_type parameter to select which agent type to use.
|
|
60
|
+
When using the Agent tool, you must specify a subagent_type parameter to select which agent type to use from the list above. Choose the agent whose description best matches the task you want to delegate.
|
|
61
61
|
|
|
62
62
|
- When doing file search, prefer to use the ${AGENT_TOOL_NAME} tool in order to reduce context usage.
|
|
63
63
|
- You should proactively use the ${AGENT_TOOL_NAME} tool with specialized agents when the task at hand matches the agent's description.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bashTool.d.ts","sourceRoot":"","sources":["../../src/tools/bashTool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bashTool.d.ts","sourceRoot":"","sources":["../../src/tools/bashTool.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAyCtE;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UA2XtB,CAAC"}
|
package/dist/tools/bashTool.js
CHANGED
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
import { spawn } from "child_process";
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
import * as path from "path";
|
|
4
|
+
import * as os from "os";
|
|
2
5
|
import { logger } from "../utils/globalLogger.js";
|
|
3
6
|
import { stripAnsiColors } from "../utils/stringUtils.js";
|
|
4
7
|
import { BASH_TOOL_NAME, TASK_OUTPUT_TOOL_NAME, GLOB_TOOL_NAME, GREP_TOOL_NAME, READ_TOOL_NAME, EDIT_TOOL_NAME, WRITE_TOOL_NAME, } from "../constants/tools.js";
|
|
5
8
|
const MAX_OUTPUT_LENGTH = 30000;
|
|
6
9
|
const BASH_DEFAULT_TIMEOUT_MS = 120000;
|
|
10
|
+
/**
|
|
11
|
+
* Helper function to handle large output by truncation and persistence to a temporary file.
|
|
12
|
+
*/
|
|
13
|
+
function processOutput(output) {
|
|
14
|
+
if (output.length <= MAX_OUTPUT_LENGTH) {
|
|
15
|
+
return output;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const tempDir = os.tmpdir();
|
|
19
|
+
const fileName = `bash_output_${Date.now()}_${Math.random().toString(36).substring(2, 11)}.txt`;
|
|
20
|
+
const filePath = path.join(tempDir, fileName);
|
|
21
|
+
fs.writeFileSync(filePath, output, "utf8");
|
|
22
|
+
return (output.substring(0, MAX_OUTPUT_LENGTH) +
|
|
23
|
+
`\n\n... (output truncated)\nFull output persisted to: ${filePath}`);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
logger.error("Failed to persist large bash output:", error);
|
|
27
|
+
return (output.substring(0, MAX_OUTPUT_LENGTH) +
|
|
28
|
+
"\n\n... (output truncated, failed to persist full output)");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
7
31
|
/**
|
|
8
32
|
* Bash command execution tool - supports both foreground and background execution
|
|
9
33
|
*/
|
|
@@ -63,7 +87,7 @@ Usage notes:
|
|
|
63
87
|
- The command argument is required.
|
|
64
88
|
- You can specify an optional timeout in milliseconds (up to ${BASH_DEFAULT_TIMEOUT_MS}ms / ${BASH_DEFAULT_TIMEOUT_MS / 60000} minutes). If not specified, commands will timeout after ${BASH_DEFAULT_TIMEOUT_MS}ms (${BASH_DEFAULT_TIMEOUT_MS / 60000} minutes).
|
|
65
89
|
- It is very helpful if you write a clear, concise description of what this command does in 5-10 words.
|
|
66
|
-
- If the output exceeds ${MAX_OUTPUT_LENGTH} characters, output will be truncated
|
|
90
|
+
- If the output exceeds ${MAX_OUTPUT_LENGTH} characters, output will be truncated and the full output will be persisted to a temporary file.
|
|
67
91
|
- You can use the \`run_in_background\` parameter to run the command in the background, which allows you to continue working while the command runs. You can monitor the output using the ${BASH_TOOL_NAME} tool as it becomes available. You do not need to use '&' at the end of the command when using this parameter.
|
|
68
92
|
- Avoid using ${BASH_TOOL_NAME} with the \`find\`, \`sed\`, \`awk\`, or \`echo\` commands, unless explicitly instructed or when these commands are truly necessary for the task. Instead, always prefer using the dedicated tools for these commands:
|
|
69
93
|
- File search: Use ${GLOB_TOOL_NAME} (NOT find or ls)
|
|
@@ -248,7 +272,7 @@ Usage notes:
|
|
|
248
272
|
}
|
|
249
273
|
resolve({
|
|
250
274
|
success: false,
|
|
251
|
-
content: outputBuffer + (errorBuffer ? "\n" + errorBuffer : ""),
|
|
275
|
+
content: processOutput(outputBuffer + (errorBuffer ? "\n" + errorBuffer : "")),
|
|
252
276
|
error: reason,
|
|
253
277
|
});
|
|
254
278
|
}
|
|
@@ -286,17 +310,14 @@ Usage notes:
|
|
|
286
310
|
}
|
|
287
311
|
const exitCode = code ?? 0;
|
|
288
312
|
const combinedOutput = outputBuffer + (errorBuffer ? "\n" + errorBuffer : "");
|
|
289
|
-
// Handle large output by truncation if needed
|
|
313
|
+
// Handle large output by truncation and persistence if needed
|
|
290
314
|
const finalOutput = combinedOutput || `Command executed with exit code: ${exitCode}`;
|
|
291
|
-
const content = finalOutput
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
.split("\n")
|
|
298
|
-
.slice(-3)
|
|
299
|
-
.join("\n");
|
|
315
|
+
const content = processOutput(finalOutput);
|
|
316
|
+
const lines = combinedOutput.trim().split("\n");
|
|
317
|
+
const shortResult = lines.length <= 3
|
|
318
|
+
? lines.join("\n")
|
|
319
|
+
: lines.slice(0, 3).join("\n") +
|
|
320
|
+
`\n... +${lines.length - 3} lines`;
|
|
300
321
|
resolve({
|
|
301
322
|
success: exitCode === 0,
|
|
302
323
|
content,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cronCreateTool.d.ts","sourceRoot":"","sources":["../../src/tools/cronCreateTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAGjE,eAAO,MAAM,cAAc,EAAE,UAqE5B,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { CRON_CREATE_TOOL_NAME } from "../constants/tools.js";
|
|
2
|
+
export const cronCreateTool = {
|
|
3
|
+
name: CRON_CREATE_TOOL_NAME,
|
|
4
|
+
config: {
|
|
5
|
+
type: "function",
|
|
6
|
+
function: {
|
|
7
|
+
name: CRON_CREATE_TOOL_NAME,
|
|
8
|
+
description: "Schedule a prompt to be enqueued at a future time. Use for both recurring schedules and one-shot reminders.",
|
|
9
|
+
parameters: {
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: {
|
|
12
|
+
cron: {
|
|
13
|
+
type: "string",
|
|
14
|
+
description: 'Standard 5-field cron expression in local time: "M H DoM Mon DoW"',
|
|
15
|
+
},
|
|
16
|
+
prompt: {
|
|
17
|
+
type: "string",
|
|
18
|
+
description: "The prompt to enqueue at each fire time",
|
|
19
|
+
},
|
|
20
|
+
recurring: {
|
|
21
|
+
type: "boolean",
|
|
22
|
+
description: "Default: true. true = fire on every cron match until deleted or auto-expired after 7 days. false = fire once at the next match, then auto-delete",
|
|
23
|
+
default: true,
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
required: ["cron", "prompt"],
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
execute: async (args, context) => {
|
|
31
|
+
const { cron, prompt, recurring = true, } = args;
|
|
32
|
+
if (!context.cronManager) {
|
|
33
|
+
return {
|
|
34
|
+
success: false,
|
|
35
|
+
content: "",
|
|
36
|
+
error: "CronManager not available",
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const job = context.cronManager.createJob({
|
|
41
|
+
cron,
|
|
42
|
+
prompt,
|
|
43
|
+
recurring,
|
|
44
|
+
});
|
|
45
|
+
return {
|
|
46
|
+
success: true,
|
|
47
|
+
content: JSON.stringify({ id: job.id }, null, 2),
|
|
48
|
+
shortResult: `Scheduled job ${job.id}`,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
return {
|
|
53
|
+
success: false,
|
|
54
|
+
content: "",
|
|
55
|
+
error: error instanceof Error ? error.message : String(error),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cronDeleteTool.d.ts","sourceRoot":"","sources":["../../src/tools/cronDeleteTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAGjE,eAAO,MAAM,cAAc,EAAE,UA2C5B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { CRON_DELETE_TOOL_NAME } from "../constants/tools.js";
|
|
2
|
+
export const cronDeleteTool = {
|
|
3
|
+
name: CRON_DELETE_TOOL_NAME,
|
|
4
|
+
config: {
|
|
5
|
+
type: "function",
|
|
6
|
+
function: {
|
|
7
|
+
name: CRON_DELETE_TOOL_NAME,
|
|
8
|
+
description: "Cancel a cron job previously scheduled with CronCreate. Removes it from the in-memory session store.",
|
|
9
|
+
parameters: {
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: {
|
|
12
|
+
id: {
|
|
13
|
+
type: "string",
|
|
14
|
+
description: "Job ID returned by CronCreate",
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
required: ["id"],
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
execute: async (args, context) => {
|
|
22
|
+
const { id } = args;
|
|
23
|
+
if (!context.cronManager) {
|
|
24
|
+
return {
|
|
25
|
+
success: false,
|
|
26
|
+
content: "",
|
|
27
|
+
error: "CronManager not available",
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const success = context.cronManager.deleteJob(id);
|
|
31
|
+
return {
|
|
32
|
+
success,
|
|
33
|
+
content: JSON.stringify({ success }, null, 2),
|
|
34
|
+
shortResult: success ? `Deleted job ${id}` : `Job ${id} not found`,
|
|
35
|
+
error: success ? undefined : `Job ${id} not found`,
|
|
36
|
+
};
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cronListTool.d.ts","sourceRoot":"","sources":["../../src/tools/cronListTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAGjE,eAAO,MAAM,YAAY,EAAE,UAkC1B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CRON_LIST_TOOL_NAME } from "../constants/tools.js";
|
|
2
|
+
export const cronListTool = {
|
|
3
|
+
name: CRON_LIST_TOOL_NAME,
|
|
4
|
+
config: {
|
|
5
|
+
type: "function",
|
|
6
|
+
function: {
|
|
7
|
+
name: CRON_LIST_TOOL_NAME,
|
|
8
|
+
description: "List all cron jobs scheduled via CronCreate in this session.",
|
|
9
|
+
parameters: {
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: {},
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
execute: async (_args, context) => {
|
|
16
|
+
if (!context.cronManager) {
|
|
17
|
+
return {
|
|
18
|
+
success: false,
|
|
19
|
+
content: "",
|
|
20
|
+
error: "CronManager not available",
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const jobs = context.cronManager.listJobs();
|
|
24
|
+
return {
|
|
25
|
+
success: true,
|
|
26
|
+
content: JSON.stringify({ jobs }, null, 2),
|
|
27
|
+
shortResult: `Found ${jobs.length} jobs`,
|
|
28
|
+
};
|
|
29
|
+
},
|
|
30
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readTool.d.ts","sourceRoot":"","sources":["../../src/tools/readTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AA8HtE;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"readTool.d.ts","sourceRoot":"","sources":["../../src/tools/readTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AA8HtE;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UA2MtB,CAAC"}
|
package/dist/tools/readTool.js
CHANGED
|
@@ -204,26 +204,14 @@ Usage:
|
|
|
204
204
|
shortResult: "Empty file",
|
|
205
205
|
};
|
|
206
206
|
}
|
|
207
|
-
|
|
208
|
-
const
|
|
209
|
-
let contentToProcess = fileContent;
|
|
210
|
-
let contentTruncated = false;
|
|
211
|
-
if (fileContent.length > MAX_CONTENT_SIZE) {
|
|
212
|
-
contentToProcess = fileContent.substring(0, MAX_CONTENT_SIZE);
|
|
213
|
-
contentTruncated = true;
|
|
214
|
-
}
|
|
215
|
-
const lines = contentToProcess.split("\n");
|
|
216
|
-
const totalLines = lines.length;
|
|
217
|
-
const originalTotalLines = fileContent.split("\n").length;
|
|
207
|
+
const allLines = fileContent.split("\n");
|
|
208
|
+
const totalLines = allLines.length;
|
|
218
209
|
// Handle offset and limit
|
|
219
210
|
let startLine = 1;
|
|
220
|
-
let endLine = Math.min(totalLines, 2000); // Default maximum read 2000 lines
|
|
221
211
|
if (typeof offset === "number") {
|
|
222
212
|
startLine = Math.max(1, offset);
|
|
223
213
|
}
|
|
224
|
-
|
|
225
|
-
endLine = Math.min(totalLines, startLine + limit - 1);
|
|
226
|
-
}
|
|
214
|
+
let endLine = Math.min(totalLines, startLine + (typeof limit === "number" ? limit : 2000) - 1);
|
|
227
215
|
// If no offset and limit specified, read entire file (maximum 2000 lines)
|
|
228
216
|
if (typeof offset !== "number" && typeof limit !== "number") {
|
|
229
217
|
startLine = 1;
|
|
@@ -238,7 +226,7 @@ Usage:
|
|
|
238
226
|
};
|
|
239
227
|
}
|
|
240
228
|
// Extract specified line range
|
|
241
|
-
const selectedLines =
|
|
229
|
+
const selectedLines = allLines.slice(startLine - 1, endLine);
|
|
242
230
|
// Format output (cat -n format, with line numbers)
|
|
243
231
|
const formattedContent = selectedLines
|
|
244
232
|
.map((line, index) => {
|
|
@@ -250,11 +238,7 @@ Usage:
|
|
|
250
238
|
.join("\n");
|
|
251
239
|
// Add file information header
|
|
252
240
|
let content = `File: ${filePath}\n`;
|
|
253
|
-
if (
|
|
254
|
-
content += `Content truncated at ${MAX_CONTENT_SIZE} bytes\n`;
|
|
255
|
-
content += `Lines ${startLine}-${endLine} of ${totalLines} (original file: ${originalTotalLines} lines)\n`;
|
|
256
|
-
}
|
|
257
|
-
else if (startLine > 1 || endLine < totalLines) {
|
|
241
|
+
if (startLine > 1 || endLine < totalLines) {
|
|
258
242
|
content += `Lines ${startLine}-${endLine} of ${totalLines}\n`;
|
|
259
243
|
}
|
|
260
244
|
else {
|
|
@@ -263,22 +247,14 @@ Usage:
|
|
|
263
247
|
content += "─".repeat(50) + "\n";
|
|
264
248
|
content += formattedContent;
|
|
265
249
|
// If only showing partial content, add prompt
|
|
266
|
-
if (endLine < totalLines
|
|
250
|
+
if (endLine < totalLines) {
|
|
267
251
|
content += `\n${"─".repeat(50)}\n`;
|
|
268
|
-
|
|
269
|
-
content += `... content truncated due to size limit (${MAX_CONTENT_SIZE} bytes)`;
|
|
270
|
-
if (endLine < totalLines) {
|
|
271
|
-
content += ` and ${totalLines - endLine} more lines not shown`;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
content += `... ${totalLines - endLine} more lines not shown`;
|
|
276
|
-
}
|
|
252
|
+
content += `... ${totalLines - endLine} more lines not shown`;
|
|
277
253
|
}
|
|
278
254
|
return {
|
|
279
255
|
success: true,
|
|
280
256
|
content,
|
|
281
|
-
shortResult: `Read ${selectedLines.length} lines${totalLines > 2000
|
|
257
|
+
shortResult: `Read ${selectedLines.length} lines${totalLines > 2000 ? " (truncated)" : ""}`,
|
|
282
258
|
};
|
|
283
259
|
}
|
|
284
260
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillTool.d.ts","sourceRoot":"","sources":["../../src/tools/skillTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"skillTool.d.ts","sourceRoot":"","sources":["../../src/tools/skillTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAgBtE,eAAO,MAAM,SAAS,EAAE,UAyMvB,CAAC"}
|
package/dist/tools/skillTool.js
CHANGED
|
@@ -5,13 +5,14 @@ import { countToolBlocks, formatToolTokenSummary, } from "../utils/messageOperat
|
|
|
5
5
|
/**
|
|
6
6
|
* Skill tool plugin for invoking Wave skills
|
|
7
7
|
*/
|
|
8
|
+
const SKILL_TOOL_DESCRIPTION = "Execute a skill within the main conversation. When users ask you to perform tasks, check if any of the available skills match. Skills provide specialized capabilities and domain knowledge.";
|
|
8
9
|
export const skillTool = {
|
|
9
10
|
name: SKILL_TOOL_NAME,
|
|
10
11
|
config: {
|
|
11
12
|
type: "function",
|
|
12
13
|
function: {
|
|
13
14
|
name: SKILL_TOOL_NAME,
|
|
14
|
-
description:
|
|
15
|
+
description: SKILL_TOOL_DESCRIPTION,
|
|
15
16
|
parameters: {
|
|
16
17
|
type: "object",
|
|
17
18
|
properties: {
|
|
@@ -31,12 +32,12 @@ export const skillTool = {
|
|
|
31
32
|
prompt: (args) => {
|
|
32
33
|
const availableSkills = args?.availableSkills?.filter((skill) => !skill.disableModelInvocation);
|
|
33
34
|
if (!availableSkills || availableSkills.length === 0) {
|
|
34
|
-
return
|
|
35
|
+
return `${SKILL_TOOL_DESCRIPTION} No skills are currently available.`;
|
|
35
36
|
}
|
|
36
37
|
const skillList = availableSkills
|
|
37
38
|
.map((skill) => `• **${skill.name}** (${skill.type}): ${skill.description}`)
|
|
38
39
|
.join("\n");
|
|
39
|
-
return
|
|
40
|
+
return `${SKILL_TOOL_DESCRIPTION} Do not invoke the same skill repeatedly if it has already been called with the same arguments.\n\nAvailable skills:\n${skillList}`;
|
|
40
41
|
},
|
|
41
42
|
execute: async (args, context) => {
|
|
42
43
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskOutputTool.d.ts","sourceRoot":"","sources":["../../src/tools/taskOutputTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAKjE,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"taskOutputTool.d.ts","sourceRoot":"","sources":["../../src/tools/taskOutputTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAKjE,eAAO,MAAM,cAAc,EAAE,UAuN5B,CAAC"}
|
|
@@ -28,7 +28,7 @@ export const taskOutputTool = {
|
|
|
28
28
|
description: "Max wait time in ms",
|
|
29
29
|
},
|
|
30
30
|
},
|
|
31
|
-
required: ["task_id"],
|
|
31
|
+
required: ["task_id", "block", "timeout"],
|
|
32
32
|
},
|
|
33
33
|
},
|
|
34
34
|
},
|
|
@@ -75,8 +75,8 @@ export const taskOutputTool = {
|
|
|
75
75
|
let isTruncated = false;
|
|
76
76
|
if (finalContent.length > MAX_OUTPUT_LENGTH) {
|
|
77
77
|
processedContent =
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
"\n\n... (output truncated)\n" +
|
|
79
|
+
finalContent.substring(finalContent.length - MAX_OUTPUT_LENGTH);
|
|
80
80
|
isTruncated = true;
|
|
81
81
|
}
|
|
82
82
|
if (isTruncated && output.outputPath) {
|
|
@@ -135,11 +135,18 @@ export const taskOutputTool = {
|
|
|
135
135
|
if (context.abortSignal) {
|
|
136
136
|
context.abortSignal.removeEventListener("abort", onAbort);
|
|
137
137
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
138
|
+
const result = getResult();
|
|
139
|
+
if (result) {
|
|
140
|
+
result.shortResult = `${taskId}: timeout`;
|
|
141
|
+
resolve(result);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
resolve({
|
|
145
|
+
success: true,
|
|
146
|
+
content: "Retrieval timed out",
|
|
147
|
+
shortResult: `${taskId}: timeout`,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
143
150
|
return;
|
|
144
151
|
}
|
|
145
152
|
const task = backgroundTaskManager.getTask(taskId);
|
package/dist/tools/types.d.ts
CHANGED
|
@@ -59,6 +59,8 @@ export interface ToolContext {
|
|
|
59
59
|
subagentManager?: import("../managers/subagentManager.js").SubagentManager;
|
|
60
60
|
/** Skill manager instance for skill invocation */
|
|
61
61
|
skillManager?: import("../managers/skillManager.js").SkillManager;
|
|
62
|
+
/** Cron manager instance for scheduling tasks */
|
|
63
|
+
cronManager?: import("../managers/cronManager.js").CronManager;
|
|
62
64
|
/** Current session ID */
|
|
63
65
|
sessionId?: string;
|
|
64
66
|
/** The ID of the current tool call */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/agent.d.ts
CHANGED
|
@@ -55,6 +55,16 @@ export interface AgentOptions {
|
|
|
55
55
|
isNewWorktree?: boolean;
|
|
56
56
|
/**Whether to watch for skill changes - defaults to true */
|
|
57
57
|
watchSkills?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Optional list of tool names to always allow.
|
|
60
|
+
* These rules follow the standard permission rule syntax: `ToolName` or `ToolName(pattern)`.
|
|
61
|
+
*/
|
|
62
|
+
allowedTools?: string[];
|
|
63
|
+
/**
|
|
64
|
+
* Optional list of tool names to always disallow.
|
|
65
|
+
* These rules follow the standard permission rule syntax: `ToolName` or `ToolName(pattern)`.
|
|
66
|
+
*/
|
|
67
|
+
disallowedTools?: string[];
|
|
58
68
|
}
|
|
59
69
|
export interface AgentCallbacks extends MessageManagerCallbacks, BackgroundTaskManagerCallbacks, McpManagerCallbacks, SubagentManagerCallbacks {
|
|
60
70
|
onBackgroundTasksChange?: (tasks: BackgroundTask[]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAE3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gCAAgC;IAChC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,oCAAoC;IACpC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAE3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gCAAgC;IAChC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,oCAAoC;IACpC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,cACf,SAAQ,uBAAuB,EAC7B,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB;IAC1B,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAC7D,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACxD,iCAAiC,CAAC,EAAE,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,KACX,IAAI,CAAC;IACV,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC"}
|
|
@@ -18,7 +18,7 @@ export interface WaveConfiguration {
|
|
|
18
18
|
permissions?: {
|
|
19
19
|
allow?: string[];
|
|
20
20
|
deny?: string[];
|
|
21
|
-
|
|
21
|
+
permissionMode?: PermissionMode;
|
|
22
22
|
/**
|
|
23
23
|
* List of directories that are considered part of the Safe Zone.
|
|
24
24
|
* File operations within these directories can be auto-accepted.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/types/configuration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,2CAA2C;IAC3C,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/types/configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/types/cron.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/types/hooks.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* enabling automated actions at specific workflow points.
|
|
6
6
|
*/
|
|
7
7
|
export type { WaveConfiguration, HookConfiguration, PartialHookConfiguration, HookConfigurationRecord, } from "./configuration.js";
|
|
8
|
-
export type HookEvent = "PreToolUse" | "PostToolUse" | "UserPromptSubmit" | "Stop" | "SubagentStop" | "
|
|
8
|
+
export type HookEvent = "PreToolUse" | "PostToolUse" | "UserPromptSubmit" | "Stop" | "SubagentStop" | "PermissionRequest" | "WorktreeCreate";
|
|
9
9
|
export interface HookCommand {
|
|
10
10
|
type: "command";
|
|
11
11
|
command: string;
|
|
@@ -63,8 +63,6 @@ export interface HookJsonInput {
|
|
|
63
63
|
tool_response?: unknown;
|
|
64
64
|
user_prompt?: string;
|
|
65
65
|
subagent_type?: string;
|
|
66
|
-
message?: string;
|
|
67
|
-
notification_type?: string;
|
|
68
66
|
name?: string;
|
|
69
67
|
}
|
|
70
68
|
export interface ExtendedHookExecutionContext extends HookExecutionContext {
|
|
@@ -76,8 +74,6 @@ export interface ExtendedHookExecutionContext extends HookExecutionContext {
|
|
|
76
74
|
env?: Record<string, string>;
|
|
77
75
|
userPrompt?: string;
|
|
78
76
|
subagentType?: string;
|
|
79
|
-
message?: string;
|
|
80
|
-
notificationType?: string;
|
|
81
77
|
worktreeName?: string;
|
|
82
78
|
}
|
|
83
79
|
export interface HookEnvironment {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,aAAa,GACb,kBAAkB,GAClB,MAAM,GACN,cAAc,GACd,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"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"}
|