wave-agent-sdk 0.4.0 → 0.6.1
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 +42 -11
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +114 -115
- package/dist/constants/prompts.d.ts +18 -14
- package/dist/constants/prompts.d.ts.map +1 -1
- package/dist/constants/prompts.js +130 -54
- package/dist/constants/tools.d.ts +6 -3
- package/dist/constants/tools.d.ts.map +1 -1
- package/dist/constants/tools.js +6 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/managers/MemoryRuleManager.js +1 -1
- package/dist/managers/aiManager.d.ts +5 -3
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +57 -20
- package/dist/managers/backgroundBashManager.d.ts.map +1 -1
- package/dist/managers/backgroundBashManager.js +1 -0
- package/dist/managers/backgroundTaskManager.d.ts +35 -0
- package/dist/managers/backgroundTaskManager.d.ts.map +1 -0
- package/dist/managers/backgroundTaskManager.js +255 -0
- package/dist/managers/foregroundTaskManager.d.ts +9 -0
- package/dist/managers/foregroundTaskManager.d.ts.map +1 -0
- package/dist/managers/foregroundTaskManager.js +21 -0
- package/dist/managers/liveConfigManager.d.ts +1 -1
- package/dist/managers/lspManager.d.ts.map +1 -1
- package/dist/managers/lspManager.js +3 -1
- package/dist/managers/mcpManager.d.ts.map +1 -1
- package/dist/managers/messageManager.d.ts +26 -12
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/messageManager.js +138 -64
- package/dist/managers/permissionManager.d.ts.map +1 -1
- package/dist/managers/permissionManager.js +26 -22
- package/dist/managers/planManager.d.ts +1 -1
- package/dist/managers/planManager.d.ts.map +1 -1
- package/dist/managers/planManager.js +2 -2
- package/dist/managers/pluginManager.d.ts.map +1 -1
- package/dist/managers/pluginManager.js +3 -2
- package/dist/managers/slashCommandManager.d.ts +6 -0
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +8 -2
- package/dist/managers/subagentManager.d.ts +15 -2
- package/dist/managers/subagentManager.d.ts.map +1 -1
- package/dist/managers/subagentManager.js +153 -39
- package/dist/managers/toolManager.d.ts +18 -1
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/managers/toolManager.js +29 -5
- package/dist/services/GitService.d.ts.map +1 -1
- package/dist/services/GitService.js +6 -2
- package/dist/services/MarketplaceService.d.ts +2 -2
- package/dist/services/MarketplaceService.d.ts.map +1 -1
- package/dist/services/MarketplaceService.js +18 -11
- package/dist/services/MemoryRuleService.d.ts +1 -1
- package/dist/services/MemoryRuleService.d.ts.map +1 -1
- package/dist/services/MemoryRuleService.js +13 -2
- package/dist/services/aiService.d.ts +0 -1
- package/dist/services/aiService.d.ts.map +1 -1
- package/dist/services/aiService.js +4 -140
- package/dist/services/memory.d.ts +0 -3
- package/dist/services/memory.d.ts.map +1 -1
- package/dist/services/memory.js +1 -60
- package/dist/services/session.d.ts +15 -1
- package/dist/services/session.d.ts.map +1 -1
- package/dist/services/session.js +57 -1
- package/dist/services/taskManager.d.ts +21 -0
- package/dist/services/taskManager.d.ts.map +1 -0
- package/dist/services/taskManager.js +158 -0
- package/dist/tools/askUserQuestion.d.ts.map +1 -1
- package/dist/tools/askUserQuestion.js +39 -25
- package/dist/tools/bashTool.d.ts +0 -8
- package/dist/tools/bashTool.d.ts.map +1 -1
- package/dist/tools/bashTool.js +48 -172
- package/dist/tools/editTool.d.ts.map +1 -1
- package/dist/tools/editTool.js +8 -6
- package/dist/tools/exitPlanMode.d.ts.map +1 -1
- package/dist/tools/exitPlanMode.js +25 -1
- package/dist/tools/globTool.d.ts.map +1 -1
- package/dist/tools/globTool.js +8 -2
- package/dist/tools/grepTool.d.ts.map +1 -1
- package/dist/tools/grepTool.js +17 -6
- package/dist/tools/lsTool.d.ts.map +1 -1
- package/dist/tools/lsTool.js +3 -1
- package/dist/tools/multiEditTool.d.ts.map +1 -1
- package/dist/tools/multiEditTool.js +7 -6
- package/dist/tools/readTool.d.ts.map +1 -1
- package/dist/tools/readTool.js +16 -1
- package/dist/tools/taskManagementTools.d.ts +6 -0
- package/dist/tools/taskManagementTools.d.ts.map +1 -0
- package/dist/tools/taskManagementTools.js +453 -0
- package/dist/tools/taskOutputTool.d.ts +3 -0
- package/dist/tools/taskOutputTool.d.ts.map +1 -0
- package/dist/tools/taskOutputTool.js +173 -0
- package/dist/tools/taskStopTool.d.ts +3 -0
- package/dist/tools/taskStopTool.d.ts.map +1 -0
- package/dist/tools/taskStopTool.js +71 -0
- package/dist/tools/taskTool.d.ts.map +1 -1
- package/dist/tools/taskTool.js +110 -63
- package/dist/tools/types.d.ts +12 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/writeTool.d.ts.map +1 -1
- package/dist/tools/writeTool.js +9 -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/marketplace.d.ts +1 -0
- package/dist/types/marketplace.d.ts.map +1 -1
- package/dist/types/messaging.d.ts +3 -8
- package/dist/types/messaging.d.ts.map +1 -1
- package/dist/types/processes.d.ts +29 -4
- package/dist/types/processes.d.ts.map +1 -1
- package/dist/types/tasks.d.ts +13 -0
- package/dist/types/tasks.d.ts.map +1 -0
- package/dist/types/tasks.js +1 -0
- package/dist/types/tools.d.ts +4 -1
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/utils/builtinSubagents.d.ts.map +1 -1
- package/dist/utils/builtinSubagents.js +38 -1
- package/dist/utils/cacheControlUtils.d.ts.map +1 -1
- package/dist/utils/cacheControlUtils.js +18 -12
- package/dist/utils/constants.d.ts +0 -4
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/constants.js +0 -4
- package/dist/utils/convertMessagesForAPI.js +2 -2
- package/dist/utils/editUtils.d.ts +2 -11
- package/dist/utils/editUtils.d.ts.map +1 -1
- package/dist/utils/editUtils.js +52 -79
- package/dist/utils/messageOperations.d.ts +5 -36
- package/dist/utils/messageOperations.d.ts.map +1 -1
- package/dist/utils/messageOperations.js +9 -98
- package/dist/utils/nameGenerator.d.ts +1 -1
- package/dist/utils/nameGenerator.d.ts.map +1 -1
- package/dist/utils/nameGenerator.js +19 -3
- package/package.json +5 -5
- package/src/agent.ts +157 -134
- package/src/constants/prompts.ts +156 -65
- package/src/constants/tools.ts +6 -3
- package/src/index.ts +1 -0
- package/src/managers/MemoryRuleManager.ts +1 -1
- package/src/managers/aiManager.ts +77 -35
- package/src/managers/backgroundBashManager.ts +1 -0
- package/src/managers/backgroundTaskManager.ts +305 -0
- package/src/managers/foregroundTaskManager.ts +27 -0
- package/src/managers/lspManager.ts +3 -1
- package/src/managers/mcpManager.ts +6 -3
- package/src/managers/messageManager.ts +185 -75
- package/src/managers/permissionManager.ts +33 -28
- package/src/managers/planManager.ts +2 -2
- package/src/managers/pluginManager.ts +4 -3
- package/src/managers/slashCommandManager.ts +15 -2
- package/src/managers/subagentManager.ts +194 -35
- package/src/managers/toolManager.ts +48 -6
- package/src/services/GitService.ts +6 -2
- package/src/services/MarketplaceService.ts +30 -12
- package/src/services/MemoryRuleService.ts +18 -6
- package/src/services/aiService.ts +3 -145
- package/src/services/memory.ts +1 -73
- package/src/services/session.ts +73 -0
- package/src/services/taskManager.ts +188 -0
- package/src/tools/askUserQuestion.ts +51 -29
- package/src/tools/bashTool.ts +63 -196
- package/src/tools/editTool.ts +9 -18
- package/src/tools/exitPlanMode.ts +26 -2
- package/src/tools/globTool.ts +10 -2
- package/src/tools/grepTool.ts +17 -6
- package/src/tools/lsTool.ts +3 -1
- package/src/tools/multiEditTool.ts +7 -18
- package/src/tools/readTool.ts +17 -1
- package/src/tools/taskManagementTools.ts +498 -0
- package/src/tools/taskOutputTool.ts +196 -0
- package/src/tools/taskStopTool.ts +78 -0
- package/src/tools/taskTool.ts +136 -74
- package/src/tools/types.ts +13 -0
- package/src/tools/writeTool.ts +9 -2
- package/src/types/index.ts +1 -0
- package/src/types/marketplace.ts +1 -0
- package/src/types/messaging.ts +2 -9
- package/src/types/processes.ts +39 -4
- package/src/types/tasks.ts +13 -0
- package/src/types/tools.ts +4 -1
- package/src/utils/builtinSubagents.ts +47 -1
- package/src/utils/cacheControlUtils.ts +26 -18
- package/src/utils/constants.ts +0 -5
- package/src/utils/convertMessagesForAPI.ts +2 -2
- package/src/utils/editUtils.ts +65 -103
- package/src/utils/messageOperations.ts +12 -136
- package/src/utils/nameGenerator.ts +20 -3
- package/dist/tools/todoWriteTool.d.ts +0 -6
- package/dist/tools/todoWriteTool.d.ts.map +0 -1
- package/dist/tools/todoWriteTool.js +0 -220
- package/src/tools/todoWriteTool.ts +0 -257
|
@@ -3,15 +3,40 @@
|
|
|
3
3
|
* Dependencies: None
|
|
4
4
|
*/
|
|
5
5
|
import type { ChildProcess } from "child_process";
|
|
6
|
-
export
|
|
6
|
+
export type BackgroundTaskStatus = "running" | "completed" | "failed" | "killed";
|
|
7
|
+
export type BackgroundTaskType = "shell" | "subagent";
|
|
8
|
+
export interface BackgroundTaskBase {
|
|
7
9
|
id: string;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
type: BackgroundTaskType;
|
|
11
|
+
status: BackgroundTaskStatus;
|
|
10
12
|
startTime: number;
|
|
11
|
-
|
|
13
|
+
endTime?: number;
|
|
14
|
+
command?: string;
|
|
15
|
+
description?: string;
|
|
12
16
|
stdout: string;
|
|
13
17
|
stderr: string;
|
|
14
18
|
exitCode?: number;
|
|
15
19
|
runtime?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Optional callback to be executed when the task is stopped.
|
|
22
|
+
* This allows tasks to define their own cleanup/abortion logic.
|
|
23
|
+
*/
|
|
24
|
+
onStop?: () => void | Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
export interface BackgroundShell extends BackgroundTaskBase {
|
|
27
|
+
type: "shell";
|
|
28
|
+
process: ChildProcess;
|
|
29
|
+
}
|
|
30
|
+
export interface BackgroundSubagent extends BackgroundTaskBase {
|
|
31
|
+
type: "subagent";
|
|
32
|
+
}
|
|
33
|
+
export type BackgroundTask = BackgroundShell | BackgroundSubagent;
|
|
34
|
+
export interface ForegroundTask {
|
|
35
|
+
id: string;
|
|
36
|
+
backgroundHandler: () => Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
export interface IForegroundTaskManager {
|
|
39
|
+
registerForegroundTask(task: ForegroundTask): void;
|
|
40
|
+
unregisterForegroundTask(id: string): void;
|
|
16
41
|
}
|
|
17
42
|
//# sourceMappingURL=processes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../src/types/processes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../src/types/processes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,WAAW,GACX,QAAQ,GACR,QAAQ,CAAC;AACb,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,UAAU,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,kBAAkB,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACnD,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type TaskStatus = "pending" | "in_progress" | "completed" | "deleted";
|
|
2
|
+
export interface Task {
|
|
3
|
+
id: string;
|
|
4
|
+
subject: string;
|
|
5
|
+
description: string;
|
|
6
|
+
status: TaskStatus;
|
|
7
|
+
activeForm?: string;
|
|
8
|
+
owner?: string;
|
|
9
|
+
blocks: string[];
|
|
10
|
+
blockedBy: string[];
|
|
11
|
+
metadata: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/types/tasks.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/types/tools.d.ts
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
export interface AskUserQuestionOption {
|
|
8
8
|
label: string;
|
|
9
9
|
description?: string;
|
|
10
|
-
isRecommended?: boolean;
|
|
11
10
|
}
|
|
12
11
|
export interface AskUserQuestion {
|
|
13
12
|
question: string;
|
|
@@ -17,6 +16,10 @@ export interface AskUserQuestion {
|
|
|
17
16
|
}
|
|
18
17
|
export interface AskUserQuestionInput {
|
|
19
18
|
questions: AskUserQuestion[];
|
|
19
|
+
answers?: Record<string, string>;
|
|
20
|
+
metadata?: {
|
|
21
|
+
source?: string;
|
|
22
|
+
};
|
|
20
23
|
}
|
|
21
24
|
/**
|
|
22
25
|
* Parameters for the Write tool
|
|
@@ -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;
|
|
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,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;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;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtinSubagents.d.ts","sourceRoot":"","sources":["../../src/utils/builtinSubagents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builtinSubagents.d.ts","sourceRoot":"","sources":["../../src/utils/builtinSubagents.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,qBAAqB,EAAE,CAQ7D"}
|
|
@@ -1,15 +1,34 @@
|
|
|
1
|
-
import { GENERAL_PURPOSE_SYSTEM_PROMPT } from "../constants/prompts.js";
|
|
1
|
+
import { BASH_SUBAGENT_SYSTEM_PROMPT, GENERAL_PURPOSE_SYSTEM_PROMPT, PLAN_SUBAGENT_SYSTEM_PROMPT, } from "../constants/prompts.js";
|
|
2
|
+
import { BASH_TOOL_NAME } from "../constants/tools.js";
|
|
2
3
|
/**
|
|
3
4
|
* Get all built-in subagent configurations
|
|
4
5
|
* Built-in subagents have priority 3 (lowest) and can be overridden by user/project configs
|
|
5
6
|
*/
|
|
6
7
|
export function getBuiltinSubagents() {
|
|
7
8
|
return [
|
|
9
|
+
createBashSubagent(),
|
|
8
10
|
createExploreSubagent(),
|
|
9
11
|
createGeneralPurposeSubagent(),
|
|
12
|
+
createPlanSubagent(),
|
|
10
13
|
// Add more built-in subagents here as needed
|
|
11
14
|
];
|
|
12
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Create the Bash built-in subagent configuration
|
|
18
|
+
* Specialized for executing bash commands and git operations
|
|
19
|
+
*/
|
|
20
|
+
function createBashSubagent() {
|
|
21
|
+
return {
|
|
22
|
+
name: "Bash",
|
|
23
|
+
description: "Command execution specialist for running bash commands. Use this for git operations, command execution, and other terminal tasks.",
|
|
24
|
+
systemPrompt: BASH_SUBAGENT_SYSTEM_PROMPT,
|
|
25
|
+
tools: [BASH_TOOL_NAME],
|
|
26
|
+
model: "inherit",
|
|
27
|
+
filePath: "<builtin:Bash>",
|
|
28
|
+
scope: "builtin",
|
|
29
|
+
priority: 3,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
13
32
|
/**
|
|
14
33
|
* Create the General-Purpose built-in subagent configuration
|
|
15
34
|
* Specialized for multi-step research and implementation tasks
|
|
@@ -79,3 +98,21 @@ Complete the user's search request efficiently and report your findings clearly.
|
|
|
79
98
|
priority: 3, // Lowest priority - can be overridden by user configs
|
|
80
99
|
};
|
|
81
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Create the Plan built-in subagent configuration
|
|
103
|
+
* Specialized for designing implementation plans and exploring codebases in read-only mode
|
|
104
|
+
*/
|
|
105
|
+
function createPlanSubagent() {
|
|
106
|
+
// Define allowed tools for read-only operations
|
|
107
|
+
const allowedTools = ["Glob", "Grep", "Read", "Bash", "LS", "LSP"];
|
|
108
|
+
return {
|
|
109
|
+
name: "Plan",
|
|
110
|
+
description: "Software architect agent for designing implementation plans. Use this when you need to plan the implementation strategy for a task. Returns step-by-step plans, identifies critical files, and considers architectural trade-offs.",
|
|
111
|
+
systemPrompt: PLAN_SUBAGENT_SYSTEM_PROMPT,
|
|
112
|
+
tools: allowedTools,
|
|
113
|
+
model: "inherit", // Uses parent agent's model
|
|
114
|
+
filePath: "<builtin:Plan>",
|
|
115
|
+
scope: "builtin",
|
|
116
|
+
priority: 3, // Lowest priority - can be overridden by user configs
|
|
117
|
+
};
|
|
118
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheControlUtils.d.ts","sourceRoot":"","sources":["../../src/utils/cacheControlUtils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAE1B,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAO1B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mCACf,SAAQ,6BAA6B;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gCACf,SAAQ,0BAA0B;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACjD,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IAGrB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,cAAc,CAAC,EAAE;QACf,yBAAyB,EAAE,MAAM,CAAC;QAClC,yBAAyB,EAAE,MAAM,CAAC;KACnC,CAAC;CACH;AAUD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAaxD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,YAAY,CAQ7E;AA0BD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,GAAG,yBAAyB,EAAE,EAC7C,WAAW,EAAE,OAAO,GACnB,mCAAmC,EAAE,CAkEvC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,0BAA0B,EAAE,GAClC,gCAAgC,EAAE,CAwCpC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,0BAA0B,EAAE,GACrC,MAAM,CAoBR;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,SAAS,EAAE,MAAM,GAChB,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"cacheControlUtils.d.ts","sourceRoot":"","sources":["../../src/utils/cacheControlUtils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAE1B,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAO1B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mCACf,SAAQ,6BAA6B;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gCACf,SAAQ,0BAA0B;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACjD,aAAa,CAAC,EAAE,YAAY,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IAGrB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,cAAc,CAAC,EAAE;QACf,yBAAyB,EAAE,MAAM,CAAC;QAClC,yBAAyB,EAAE,MAAM,CAAC;KACnC,CAAC;CACH;AAUD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAaxD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,YAAY,CAQ7E;AA0BD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,GAAG,yBAAyB,EAAE,EAC7C,WAAW,EAAE,OAAO,GACnB,mCAAmC,EAAE,CAkEvC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,0BAA0B,EAAE,GAClC,gCAAgC,EAAE,CAwCpC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,0BAA0B,EAAE,GACrC,MAAM,CAoBR;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,0BAA0B,EAAE,EACtC,SAAS,EAAE,MAAM,GAChB,0BAA0B,EAAE,CA4F9B;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,eAAe,EAC9B,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAClC,WAAW,CAkCb;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAyCvE"}
|
|
@@ -201,25 +201,29 @@ export function transformMessagesForClaudeCache(messages, modelName) {
|
|
|
201
201
|
}
|
|
202
202
|
// Find the latest interval message index (20th, 40th, 60th, etc.)
|
|
203
203
|
const intervalMessageIndex = findIntervalMessageIndex(messages);
|
|
204
|
-
// Find
|
|
205
|
-
|
|
206
|
-
for (let i = messages.length - 1; i >= 0; i--) {
|
|
207
|
-
if (messages[i].role === "system") {
|
|
208
|
-
lastSystemIndex = i;
|
|
209
|
-
break;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
204
|
+
// Find first system message index
|
|
205
|
+
const firstSystemIndex = messages.findIndex((m) => m.role === "system");
|
|
212
206
|
const result = messages.map((message, index) => {
|
|
213
207
|
// Validate message structure
|
|
214
208
|
if (!message || typeof message !== "object" || !message.role) {
|
|
215
209
|
logger.warn("Invalid message structure at index", index, ":", message);
|
|
216
210
|
return message; // Return as-is to avoid breaking the flow
|
|
217
211
|
}
|
|
218
|
-
//
|
|
219
|
-
if (message.role === "system" && index ===
|
|
212
|
+
// First system message: always cached (hardcoded)
|
|
213
|
+
if (message.role === "system" && index === firstSystemIndex) {
|
|
214
|
+
const content = message.content || "";
|
|
215
|
+
// If content is already an array, check if it already has cache control
|
|
216
|
+
if (Array.isArray(content)) {
|
|
217
|
+
const hasCacheControl = content.some((part) => part.type === "text" &&
|
|
218
|
+
part.cache_control);
|
|
219
|
+
if (hasCacheControl) {
|
|
220
|
+
return message;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
const transformedContent = addCacheControlToContent(content, true);
|
|
220
224
|
return {
|
|
221
225
|
...message,
|
|
222
|
-
content:
|
|
226
|
+
content: transformedContent,
|
|
223
227
|
};
|
|
224
228
|
}
|
|
225
229
|
// Interval-based message caching: cache message at latest interval position (sliding window)
|
|
@@ -242,9 +246,11 @@ export function transformMessagesForClaudeCache(messages, modelName) {
|
|
|
242
246
|
}
|
|
243
247
|
else {
|
|
244
248
|
// For other message types without tool calls, cache the content
|
|
249
|
+
const content = message.content || "";
|
|
250
|
+
const transformedContent = addCacheControlToContent(content, true);
|
|
245
251
|
return {
|
|
246
252
|
...message,
|
|
247
|
-
content:
|
|
253
|
+
content: transformedContent,
|
|
248
254
|
};
|
|
249
255
|
}
|
|
250
256
|
}
|
|
@@ -23,8 +23,4 @@ export declare const USER_MEMORY_FILE: string;
|
|
|
23
23
|
*/
|
|
24
24
|
export declare const DEFAULT_WAVE_MAX_INPUT_TOKENS = 96000;
|
|
25
25
|
export declare const DEFAULT_WAVE_MAX_OUTPUT_TOKENS = 8192;
|
|
26
|
-
/**
|
|
27
|
-
* Default number of messages to keep uncompressed
|
|
28
|
-
*/
|
|
29
|
-
export declare const DEFAULT_KEEP_LAST_MESSAGES_COUNT = 7;
|
|
30
26
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAmC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAA6C,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAA0C,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AACnD,eAAO,MAAM,8BAA8B,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAmC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAA6C,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAA0C,CAAC;AAE3E;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AACnD,eAAO,MAAM,8BAA8B,OAAO,CAAC"}
|
package/dist/utils/constants.js
CHANGED
|
@@ -25,7 +25,3 @@ export const USER_MEMORY_FILE = path.join(DATA_DIRECTORY, "AGENTS.md");
|
|
|
25
25
|
*/
|
|
26
26
|
export const DEFAULT_WAVE_MAX_INPUT_TOKENS = 96000; // Default token limit
|
|
27
27
|
export const DEFAULT_WAVE_MAX_OUTPUT_TOKENS = 8192; // Default output token limit
|
|
28
|
-
/**
|
|
29
|
-
* Default number of messages to keep uncompressed
|
|
30
|
-
*/
|
|
31
|
-
export const DEFAULT_KEEP_LAST_MESSAGES_COUNT = 7;
|
|
@@ -41,8 +41,8 @@ export function convertMessagesForAPI(messages) {
|
|
|
41
41
|
const compressBlock = message.blocks.find((block) => block.type === "compress");
|
|
42
42
|
if (compressBlock && compressBlock.type === "compress") {
|
|
43
43
|
recentMessages.unshift({
|
|
44
|
-
role: "
|
|
45
|
-
content:
|
|
44
|
+
role: "assistant",
|
|
45
|
+
content: compressBlock.content,
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
break;
|
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Utility functions for file editing tools
|
|
3
3
|
*/
|
|
4
|
-
/**
|
|
5
|
-
* Find a match in content that is identical to searchString except for a consistent indentation offset.
|
|
6
|
-
*
|
|
7
|
-
* Priority:
|
|
8
|
-
* 1. If exact matches exist, returns searchString (letting the tool handle uniqueness/replaceAll).
|
|
9
|
-
* 2. If no exact match, but exactly one unique indentation-insensitive match exists, returns that match.
|
|
10
|
-
* 3. Otherwise returns null.
|
|
11
|
-
*/
|
|
12
|
-
export declare function findIndentationInsensitiveMatch(content: string, searchString: string): string | null;
|
|
13
4
|
/**
|
|
14
5
|
* Escape regular expression special characters
|
|
15
6
|
*/
|
|
16
7
|
export declare function escapeRegExp(string: string): string;
|
|
17
8
|
/**
|
|
18
|
-
*
|
|
9
|
+
* Analyze why an edit failed by finding the best partial match and highlighting mismatches.
|
|
19
10
|
*/
|
|
20
|
-
export declare function
|
|
11
|
+
export declare function analyzeEditMismatch(content: string, searchString: string): string;
|
|
21
12
|
//# sourceMappingURL=editUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editUtils.d.ts","sourceRoot":"","sources":["../../src/utils/editUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"editUtils.d.ts","sourceRoot":"","sources":["../../src/utils/editUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,MAAM,CAwER"}
|
package/dist/utils/editUtils.js
CHANGED
|
@@ -1,95 +1,68 @@
|
|
|
1
|
-
import { mkdir, writeFile } from "fs/promises";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import os from "os";
|
|
4
|
-
import { logger } from "./globalLogger.js";
|
|
5
1
|
/**
|
|
6
2
|
* Utility functions for file editing tools
|
|
7
3
|
*/
|
|
8
4
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* Priority:
|
|
12
|
-
* 1. If exact matches exist, returns searchString (letting the tool handle uniqueness/replaceAll).
|
|
13
|
-
* 2. If no exact match, but exactly one unique indentation-insensitive match exists, returns that match.
|
|
14
|
-
* 3. Otherwise returns null.
|
|
5
|
+
* Escape regular expression special characters
|
|
15
6
|
*/
|
|
16
|
-
export function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return null;
|
|
7
|
+
export function escapeRegExp(string) {
|
|
8
|
+
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Analyze why an edit failed by finding the best partial match and highlighting mismatches.
|
|
12
|
+
*/
|
|
13
|
+
export function analyzeEditMismatch(content, searchString) {
|
|
24
14
|
const contentLines = content.split("\n");
|
|
25
|
-
|
|
15
|
+
const searchLines = searchString.split("\n");
|
|
16
|
+
if (searchLines.length === 0 || contentLines.length === 0) {
|
|
17
|
+
return "old_string not found in file (empty search or content)";
|
|
18
|
+
}
|
|
19
|
+
let bestMatchIndex = -1;
|
|
20
|
+
let bestMatchScore = -1;
|
|
21
|
+
// Sliding window to find the best partial match
|
|
26
22
|
for (let i = 0; i <= contentLines.length - searchLines.length; i++) {
|
|
27
|
-
let
|
|
28
|
-
let isMatch = true;
|
|
23
|
+
let currentScore = 0;
|
|
29
24
|
for (let j = 0; j < searchLines.length; j++) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const sTrimmed = sLine.trimStart();
|
|
33
|
-
const cTrimmed = cLine.trimStart();
|
|
34
|
-
// If trimmed content doesn't match, it's not a match
|
|
35
|
-
if (sTrimmed !== cTrimmed) {
|
|
36
|
-
isMatch = false;
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
// For non-empty lines, check for consistent indentation offset
|
|
40
|
-
if (sTrimmed !== "") {
|
|
41
|
-
const sIndent = sLine.length - sTrimmed.length;
|
|
42
|
-
const cIndent = cLine.length - cTrimmed.length;
|
|
43
|
-
const currentOffset = cIndent - sIndent;
|
|
44
|
-
if (offset === null) {
|
|
45
|
-
offset = currentOffset;
|
|
46
|
-
}
|
|
47
|
-
else if (offset !== currentOffset) {
|
|
48
|
-
isMatch = false;
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
25
|
+
if (contentLines[i + j] === searchLines[j]) {
|
|
26
|
+
currentScore++;
|
|
51
27
|
}
|
|
52
28
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
29
|
+
// Heuristic: prioritize matches where first or last lines match
|
|
30
|
+
if (contentLines[i] === searchLines[0])
|
|
31
|
+
currentScore += 0.5;
|
|
32
|
+
if (contentLines[i + searchLines.length - 1] ===
|
|
33
|
+
searchLines[searchLines.length - 1])
|
|
34
|
+
currentScore += 0.5;
|
|
35
|
+
// Also consider trimmed matches to catch indentation issues
|
|
36
|
+
for (let j = 0; j < searchLines.length; j++) {
|
|
37
|
+
if (contentLines[i + j].trim() === searchLines[j].trim() &&
|
|
38
|
+
contentLines[i + j] !== searchLines[j]) {
|
|
39
|
+
currentScore += 0.1;
|
|
60
40
|
}
|
|
61
|
-
|
|
41
|
+
}
|
|
42
|
+
if (currentScore > bestMatchScore) {
|
|
43
|
+
bestMatchScore = currentScore;
|
|
44
|
+
bestMatchIndex = i;
|
|
62
45
|
}
|
|
63
46
|
}
|
|
64
|
-
// If
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Escape regular expression special characters
|
|
70
|
-
*/
|
|
71
|
-
export function escapeRegExp(string) {
|
|
72
|
-
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Save a snapshot of the old string and current file content for debugging
|
|
76
|
-
*/
|
|
77
|
-
export async function saveEditErrorSnapshot(filePath, oldString, currentContent, toolName) {
|
|
78
|
-
try {
|
|
79
|
-
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
80
|
-
const fileName = path.basename(filePath);
|
|
81
|
-
const snapshotDirName = `${timestamp}_${toolName}_${fileName}`;
|
|
82
|
-
const snapshotDir = path.join(os.tmpdir(), "wave-agent-edit-errors", snapshotDirName);
|
|
83
|
-
await mkdir(snapshotDir, { recursive: true });
|
|
84
|
-
await Promise.all([
|
|
85
|
-
writeFile(path.join(snapshotDir, "old_string.txt"), oldString, "utf-8"),
|
|
86
|
-
writeFile(path.join(snapshotDir, "file_content.txt"), currentContent, "utf-8"),
|
|
87
|
-
]);
|
|
88
|
-
logger.error(`Edit error snapshot saved to: ${snapshotDir}\nFile: ${filePath}\nTool: ${toolName}`);
|
|
89
|
-
return snapshotDir;
|
|
47
|
+
// If no decent match found (score <= 0), return generic message
|
|
48
|
+
if (bestMatchScore <= 0) {
|
|
49
|
+
return "old_string not found in file (no similar block found)";
|
|
90
50
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
51
|
+
// Generate detailed report
|
|
52
|
+
const reportLines = [
|
|
53
|
+
`old_string not found in file. Best partial match found at line ${bestMatchIndex + 1}:`,
|
|
54
|
+
];
|
|
55
|
+
for (let j = 0; j < searchLines.length; j++) {
|
|
56
|
+
const lineNum = bestMatchIndex + j + 1;
|
|
57
|
+
const actualLine = contentLines[bestMatchIndex + j];
|
|
58
|
+
const expectedLine = searchLines[j];
|
|
59
|
+
if (actualLine === expectedLine) {
|
|
60
|
+
reportLines.push(`${lineNum.toString().padStart(4)} | ${actualLine}`);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
reportLines.push(`${lineNum.toString().padStart(4)} | - ${expectedLine} (expected)`);
|
|
64
|
+
reportLines.push(`${lineNum.toString().padStart(4)} | + ${actualLine} (actual)`);
|
|
65
|
+
}
|
|
94
66
|
}
|
|
67
|
+
return reportLines.join("\n");
|
|
95
68
|
}
|
|
@@ -37,19 +37,13 @@ export interface UpdateToolBlockParams {
|
|
|
37
37
|
}>;
|
|
38
38
|
compactParams?: string;
|
|
39
39
|
parametersChunk?: string;
|
|
40
|
+
isManuallyBackgrounded?: boolean;
|
|
40
41
|
}
|
|
41
42
|
export type AgentToolBlockUpdateParams = Omit<UpdateToolBlockParams, "messages">;
|
|
42
43
|
export interface AddErrorBlockParams {
|
|
43
44
|
messages: Message[];
|
|
44
45
|
error: string;
|
|
45
46
|
}
|
|
46
|
-
export interface AddMemoryBlockParams {
|
|
47
|
-
messages: Message[];
|
|
48
|
-
content: string;
|
|
49
|
-
isSuccess: boolean;
|
|
50
|
-
memoryType?: "project" | "user";
|
|
51
|
-
storagePath?: string;
|
|
52
|
-
}
|
|
53
47
|
export interface AddCommandOutputParams {
|
|
54
48
|
messages: Message[];
|
|
55
49
|
command: string;
|
|
@@ -64,11 +58,6 @@ export interface CompleteCommandParams {
|
|
|
64
58
|
command: string;
|
|
65
59
|
exitCode: number;
|
|
66
60
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Extract text content from user messages in the messages array
|
|
69
|
-
* Excludes messages with source HOOK to prevent hook-generated content from entering user history
|
|
70
|
-
*/
|
|
71
|
-
export declare const extractUserInputHistory: (messages: Message[]) => string[];
|
|
72
61
|
/**
|
|
73
62
|
* Convert image file path to base64 format
|
|
74
63
|
* @param imagePath Image file path
|
|
@@ -77,30 +66,8 @@ export declare const extractUserInputHistory: (messages: Message[]) => string[];
|
|
|
77
66
|
export declare const convertImageToBase64: (imagePath: string) => string;
|
|
78
67
|
export declare const addUserMessageToMessages: ({ messages, content, images, customCommandContent, source, }: AddUserMessageParams) => Message[];
|
|
79
68
|
export declare const addAssistantMessageToMessages: (messages: Message[], content?: string, toolCalls?: ChatCompletionMessageFunctionToolCall[], usage?: Usage, additionalFields?: Record<string, unknown>) => Message[];
|
|
80
|
-
export declare const updateToolBlockInMessage: ({ messages, id, parameters, result, success, error, stage, name, shortResult, images, compactParams, parametersChunk, }: UpdateToolBlockParams) => Message[];
|
|
69
|
+
export declare const updateToolBlockInMessage: ({ messages, id, parameters, result, success, error, stage, name, shortResult, images, compactParams, parametersChunk, isManuallyBackgrounded, }: UpdateToolBlockParams) => Message[];
|
|
81
70
|
export declare const addErrorBlockToMessage: ({ messages, error, }: AddErrorBlockParams) => Message[];
|
|
82
|
-
export declare const addMemoryBlockToMessage: ({ messages, content, isSuccess, memoryType, storagePath, }: AddMemoryBlockParams) => Message[];
|
|
83
|
-
/**
|
|
84
|
-
* Count valid blocks from the end
|
|
85
|
-
* Only text, image, and tool type blocks are counted
|
|
86
|
-
* @param messages Message array
|
|
87
|
-
* @param targetCount Number of valid blocks to count
|
|
88
|
-
* @returns { messageIndex: number, blockCount: number } Message index and actual counted block count
|
|
89
|
-
*/
|
|
90
|
-
export declare const countValidBlocksFromEnd: (messages: Message[], targetCount: number) => {
|
|
91
|
-
messageIndex: number;
|
|
92
|
-
blockCount: number;
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* Get messages to be compressed and insertion position
|
|
96
|
-
* @param messages Message array
|
|
97
|
-
* @param keepLastCount Keep the last few valid blocks uncompressed
|
|
98
|
-
* @returns { messagesToCompress: Message[], insertIndex: number }
|
|
99
|
-
*/
|
|
100
|
-
export declare const getMessagesToCompress: (messages: Message[], keepLastCount?: number) => {
|
|
101
|
-
messagesToCompress: Message[];
|
|
102
|
-
insertIndex: number;
|
|
103
|
-
};
|
|
104
71
|
export declare const addCommandOutputMessage: ({ messages, command, }: AddCommandOutputParams) => Message[];
|
|
105
72
|
export declare const updateCommandOutputInMessage: ({ messages, command, output, }: UpdateCommandOutputParams) => Message[];
|
|
106
73
|
export declare const completeCommandInMessage: ({ messages, command, exitCode, }: CompleteCommandParams) => Message[];
|
|
@@ -111,6 +78,7 @@ export interface AddSubagentBlockParams {
|
|
|
111
78
|
status: "active" | "completed" | "error" | "aborted";
|
|
112
79
|
sessionId: string;
|
|
113
80
|
configuration: SubagentConfiguration;
|
|
81
|
+
runInBackground?: boolean;
|
|
114
82
|
}
|
|
115
83
|
export interface UpdateSubagentBlockParams {
|
|
116
84
|
messages: Message[];
|
|
@@ -118,10 +86,11 @@ export interface UpdateSubagentBlockParams {
|
|
|
118
86
|
status: "active" | "completed" | "error" | "aborted";
|
|
119
87
|
sessionId?: string;
|
|
120
88
|
}
|
|
121
|
-
export declare const addSubagentBlockToMessage: ({ messages, subagentId, subagentName, status, sessionId, configuration, }: AddSubagentBlockParams) => Message[];
|
|
89
|
+
export declare const addSubagentBlockToMessage: ({ messages, subagentId, subagentName, status, sessionId, configuration, runInBackground, }: AddSubagentBlockParams) => Message[];
|
|
122
90
|
export declare const updateSubagentBlockInMessage: (messages: Message[], subagentId: string, updates: Partial<{
|
|
123
91
|
status: "active" | "completed" | "error" | "aborted";
|
|
124
92
|
sessionId: string;
|
|
93
|
+
runInBackground: boolean;
|
|
125
94
|
}>) => Message[];
|
|
126
95
|
/**
|
|
127
96
|
* Removes the last user message from the messages array
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageOperations.d.ts","sourceRoot":"","sources":["../../src/utils/messageOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"messageOperations.d.ts","sourceRoot":"","sources":["../../src/utils/messageOperations.ts"],"names":[],"mappings":"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"}
|