wave-agent-sdk 0.5.0 → 0.6.2
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 +14 -11
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +64 -151
- package/dist/constants/subagents.d.ts +5 -0
- package/dist/constants/subagents.d.ts.map +1 -0
- package/dist/constants/subagents.js +4 -0
- package/dist/constants/tools.d.ts +4 -1
- package/dist/constants/tools.d.ts.map +1 -1
- package/dist/constants/tools.js +4 -1
- 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 +2 -5
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +43 -48
- package/dist/managers/backgroundTaskManager.d.ts.map +1 -1
- package/dist/managers/backgroundTaskManager.js +63 -53
- package/dist/managers/foregroundTaskManager.d.ts.map +1 -1
- package/dist/managers/foregroundTaskManager.js +3 -2
- package/dist/managers/mcpManager.d.ts.map +1 -1
- package/dist/managers/messageManager.d.ts +13 -27
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/messageManager.js +94 -89
- package/dist/managers/permissionManager.d.ts.map +1 -1
- package/dist/managers/permissionManager.js +25 -15
- 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/reversionManager.d.ts.map +1 -1
- package/dist/managers/reversionManager.js +23 -2
- package/dist/managers/slashCommandManager.d.ts +3 -0
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +8 -3
- package/dist/managers/subagentManager.d.ts +8 -14
- package/dist/managers/subagentManager.d.ts.map +1 -1
- package/dist/managers/subagentManager.js +46 -112
- package/dist/managers/toolManager.d.ts +11 -0
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/managers/toolManager.js +20 -2
- package/dist/{constants/prompts.d.ts → prompts/index.d.ts} +17 -15
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +309 -0
- 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 +0 -59
- 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 +25 -0
- package/dist/services/taskManager.d.ts.map +1 -0
- package/dist/services/taskManager.js +164 -0
- package/dist/tools/askUserQuestion.d.ts.map +1 -1
- package/dist/tools/askUserQuestion.js +39 -25
- package/dist/tools/bashTool.d.ts.map +1 -1
- package/dist/tools/bashTool.js +13 -11
- package/dist/tools/editTool.d.ts.map +1 -1
- package/dist/tools/editTool.js +2 -1
- package/dist/tools/exitPlanMode.d.ts.map +1 -1
- package/dist/tools/exitPlanMode.js +26 -2
- 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/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 +461 -0
- package/dist/tools/taskOutputTool.d.ts.map +1 -1
- package/dist/tools/taskOutputTool.js +32 -8
- package/dist/tools/taskStopTool.d.ts.map +1 -1
- package/dist/tools/taskStopTool.js +7 -1
- package/dist/tools/taskTool.d.ts.map +1 -1
- package/dist/tools/taskTool.js +37 -2
- package/dist/tools/types.d.ts +11 -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/messaging.d.ts +2 -18
- package/dist/types/messaging.d.ts.map +1 -1
- package/dist/types/processes.d.ts +16 -6
- 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 +59 -44
- 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.map +1 -1
- package/dist/utils/editUtils.js +2 -2
- package/dist/utils/gitUtils.d.ts +7 -0
- package/dist/utils/gitUtils.d.ts.map +1 -0
- package/dist/utils/gitUtils.js +24 -0
- package/dist/utils/messageOperations.d.ts +3 -58
- package/dist/utils/messageOperations.d.ts.map +1 -1
- package/dist/utils/messageOperations.js +4 -146
- 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 +1 -1
- package/src/agent.ts +86 -183
- package/src/constants/subagents.ts +4 -0
- package/src/constants/tools.ts +4 -1
- package/src/index.ts +1 -0
- package/src/managers/aiManager.ts +63 -70
- package/src/managers/backgroundTaskManager.ts +58 -54
- package/src/managers/foregroundTaskManager.ts +3 -2
- package/src/managers/mcpManager.ts +6 -3
- package/src/managers/messageManager.ts +126 -142
- package/src/managers/permissionManager.ts +32 -21
- package/src/managers/planManager.ts +2 -2
- package/src/managers/reversionManager.ts +26 -2
- package/src/managers/slashCommandManager.ts +12 -3
- package/src/managers/subagentManager.ts +60 -144
- package/src/managers/toolManager.ts +32 -2
- package/src/prompts/index.ts +366 -0
- package/src/services/aiService.ts +3 -145
- package/src/services/memory.ts +0 -72
- package/src/services/session.ts +73 -0
- package/src/services/taskManager.ts +195 -0
- package/src/tools/askUserQuestion.ts +51 -29
- package/src/tools/bashTool.ts +15 -17
- package/src/tools/editTool.ts +3 -1
- package/src/tools/exitPlanMode.ts +27 -3
- package/src/tools/globTool.ts +10 -2
- package/src/tools/grepTool.ts +17 -6
- package/src/tools/lsTool.ts +3 -1
- package/src/tools/readTool.ts +17 -1
- package/src/tools/taskManagementTools.ts +516 -0
- package/src/tools/taskOutputTool.ts +34 -12
- package/src/tools/taskStopTool.ts +7 -1
- package/src/tools/taskTool.ts +45 -1
- package/src/tools/types.ts +12 -0
- package/src/tools/writeTool.ts +9 -2
- package/src/types/index.ts +1 -0
- package/src/types/messaging.ts +1 -21
- package/src/types/processes.ts +18 -7
- package/src/types/tasks.ts +13 -0
- package/src/types/tools.ts +4 -1
- package/src/utils/builtinSubagents.ts +81 -45
- 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 +2 -6
- package/src/utils/gitUtils.ts +24 -0
- package/src/utils/messageOperations.ts +6 -229
- package/src/utils/nameGenerator.ts +20 -3
- package/dist/constants/prompts.d.ts.map +0 -1
- package/dist/constants/prompts.js +0 -118
- 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/constants/prompts.ts +0 -155
- package/src/tools/todoWriteTool.ts +0 -257
package/dist/agent.d.ts
CHANGED
|
@@ -46,7 +46,9 @@ export interface AgentOptions {
|
|
|
46
46
|
}
|
|
47
47
|
export interface AgentCallbacks extends MessageManagerCallbacks, BackgroundTaskManagerCallbacks, McpManagerCallbacks, SubagentManagerCallbacks {
|
|
48
48
|
onTasksChange?: (tasks: BackgroundTask[]) => void;
|
|
49
|
+
onSessionTasksChange?: (tasks: import("./types/tasks.js").Task[]) => void;
|
|
49
50
|
onPermissionModeChange?: (mode: PermissionMode) => void;
|
|
51
|
+
onSubagentLatestTotalTokensChange?: (subagentId: string, tokens: number) => void;
|
|
50
52
|
onBackgroundCurrentTask?: () => void;
|
|
51
53
|
}
|
|
52
54
|
export declare class Agent {
|
|
@@ -68,6 +70,7 @@ export declare class Agent {
|
|
|
68
70
|
private reversionManager;
|
|
69
71
|
private memoryRuleManager;
|
|
70
72
|
private liveConfigManager;
|
|
73
|
+
private taskManager;
|
|
71
74
|
private foregroundTaskManager;
|
|
72
75
|
private configurationService;
|
|
73
76
|
private workdir;
|
|
@@ -106,7 +109,6 @@ export declare class Agent {
|
|
|
106
109
|
*/
|
|
107
110
|
private addUsage;
|
|
108
111
|
get latestTotalTokens(): number;
|
|
109
|
-
get userInputHistory(): string[];
|
|
110
112
|
/** Get working directory */
|
|
111
113
|
get workingDirectory(): string;
|
|
112
114
|
/** Get project memory content */
|
|
@@ -186,11 +188,6 @@ export declare class Agent {
|
|
|
186
188
|
private resolveAndValidateConfig;
|
|
187
189
|
/** Private initialization method, handles async initialization logic */
|
|
188
190
|
private initialize;
|
|
189
|
-
/**
|
|
190
|
-
* Restore subagent sessions associated with the current main session
|
|
191
|
-
* This method is called after the main session is restored to load any subagent sessions
|
|
192
|
-
*/
|
|
193
|
-
private restoreSubagentSessions;
|
|
194
191
|
/**
|
|
195
192
|
* Restore a session by ID, switching to the target session without destroying the Agent instance
|
|
196
193
|
* @param sessionId - The ID of the session to restore
|
|
@@ -199,12 +196,9 @@ export declare class Agent {
|
|
|
199
196
|
abortAIMessage(): void;
|
|
200
197
|
/** Execute bash command */
|
|
201
198
|
executeBashCommand(command: string): Promise<void>;
|
|
202
|
-
/** Clear messages and input history */
|
|
203
199
|
clearMessages(): void;
|
|
204
200
|
/** Unified interrupt method, interrupts both AI messages and command execution */
|
|
205
201
|
abortMessage(): void;
|
|
206
|
-
/** Add to input history */
|
|
207
|
-
private addToInputHistory;
|
|
208
202
|
/** Interrupt bash command execution */
|
|
209
203
|
abortBashCommand(): void;
|
|
210
204
|
/** Interrupt slash command execution */
|
|
@@ -262,8 +256,6 @@ export declare class Agent {
|
|
|
262
256
|
path: string;
|
|
263
257
|
mimeType: string;
|
|
264
258
|
}>): Promise<void>;
|
|
265
|
-
/** Save memory to project or user memory file */
|
|
266
|
-
saveMemory(message: string, type: "project" | "user"): Promise<void>;
|
|
267
259
|
/** Get all MCP server status */
|
|
268
260
|
getMcpServers(): McpServerStatus[];
|
|
269
261
|
/** Connect MCP server */
|
|
@@ -298,6 +290,13 @@ export declare class Agent {
|
|
|
298
290
|
* @param index - The index of the user message to truncate to.
|
|
299
291
|
*/
|
|
300
292
|
truncateHistory(index: number): Promise<void>;
|
|
293
|
+
/**
|
|
294
|
+
* Get the full message thread including parent sessions
|
|
295
|
+
*/
|
|
296
|
+
getFullMessageThread(): Promise<{
|
|
297
|
+
messages: Message[];
|
|
298
|
+
sessionIds: string[];
|
|
299
|
+
}>;
|
|
301
300
|
/**
|
|
302
301
|
* Get the current plan file path (for testing and UI)
|
|
303
302
|
*/
|
|
@@ -320,5 +319,9 @@ export declare class Agent {
|
|
|
320
319
|
* @param mode - The current effective permission mode
|
|
321
320
|
*/
|
|
322
321
|
private handlePlanModeTransition;
|
|
322
|
+
/**
|
|
323
|
+
* Get the current task list ID
|
|
324
|
+
*/
|
|
325
|
+
get taskListId(): string;
|
|
323
326
|
}
|
|
324
327
|
//# sourceMappingURL=agent.d.ts.map
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.js
CHANGED
|
@@ -3,7 +3,6 @@ import { MessageManager, } from "./managers/messageManager.js";
|
|
|
3
3
|
import { AIManager } from "./managers/aiManager.js";
|
|
4
4
|
import { ToolManager } from "./managers/toolManager.js";
|
|
5
5
|
import { SubagentManager, } from "./managers/subagentManager.js";
|
|
6
|
-
import * as memory from "./services/memory.js";
|
|
7
6
|
import { McpManager } from "./managers/mcpManager.js";
|
|
8
7
|
import { LspManager } from "./managers/lspManager.js";
|
|
9
8
|
import { BashManager } from "./managers/bashManager.js";
|
|
@@ -19,6 +18,7 @@ import { MemoryRuleManager } from "./managers/MemoryRuleManager.js";
|
|
|
19
18
|
import { LiveConfigManager } from "./managers/liveConfigManager.js";
|
|
20
19
|
import { configValidator } from "./utils/configValidator.js";
|
|
21
20
|
import { SkillManager } from "./managers/skillManager.js";
|
|
21
|
+
import { TaskManager } from "./services/taskManager.js";
|
|
22
22
|
import { loadSessionFromJsonl, handleSessionRestoration, } from "./services/session.js";
|
|
23
23
|
import { setGlobalLogger } from "./utils/globalLogger.js";
|
|
24
24
|
import { ConfigurationService } from "./services/configurationService.js";
|
|
@@ -65,6 +65,36 @@ export class Agent {
|
|
|
65
65
|
// Store options for dynamic configuration resolution
|
|
66
66
|
this.options = options;
|
|
67
67
|
this.foregroundTaskManager = new ForegroundTaskManager();
|
|
68
|
+
// Initialize memory rule manager
|
|
69
|
+
this.memoryRuleManager = new MemoryRuleManager({
|
|
70
|
+
workdir: this.workdir,
|
|
71
|
+
});
|
|
72
|
+
// Initialize MessageManager
|
|
73
|
+
this.messageManager = new MessageManager({
|
|
74
|
+
callbacks: {
|
|
75
|
+
...callbacks,
|
|
76
|
+
onSessionIdChange: (sessionId) => {
|
|
77
|
+
// When session ID changes (e.g. due to compression),
|
|
78
|
+
// we update the task manager to use the root session ID
|
|
79
|
+
// to ensure the task list remains consistent.
|
|
80
|
+
this.taskManager.setTaskListId(this.messageManager.getRootSessionId());
|
|
81
|
+
callbacks.onSessionIdChange?.(sessionId);
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
workdir: this.workdir,
|
|
85
|
+
logger: this.logger,
|
|
86
|
+
memoryRuleManager: this.memoryRuleManager,
|
|
87
|
+
});
|
|
88
|
+
// Resolve taskListId once during construction to ensure stability
|
|
89
|
+
const resolvedTaskListId = this.configurationService.getEnvironmentVars().WAVE_TASK_LIST_ID ||
|
|
90
|
+
process.env.WAVE_TASK_LIST_ID ||
|
|
91
|
+
this.messageManager.getRootSessionId();
|
|
92
|
+
this.taskManager = new TaskManager(resolvedTaskListId);
|
|
93
|
+
this.taskManager.on("tasksChange", async () => {
|
|
94
|
+
const tasks = await this.taskManager.listTasks();
|
|
95
|
+
this.options.callbacks?.onSessionTasksChange?.(tasks);
|
|
96
|
+
});
|
|
97
|
+
// Initialize BackgroundTaskManager
|
|
68
98
|
this.backgroundTaskManager = new BackgroundTaskManager({
|
|
69
99
|
callbacks: {
|
|
70
100
|
...callbacks,
|
|
@@ -95,18 +125,7 @@ export class Agent {
|
|
|
95
125
|
logger: this.logger,
|
|
96
126
|
workdir: this.workdir,
|
|
97
127
|
});
|
|
98
|
-
//
|
|
99
|
-
this.memoryRuleManager = new MemoryRuleManager({
|
|
100
|
-
workdir: this.workdir,
|
|
101
|
-
});
|
|
102
|
-
// Initialize MessageManager
|
|
103
|
-
this.messageManager = new MessageManager({
|
|
104
|
-
callbacks,
|
|
105
|
-
workdir: this.workdir,
|
|
106
|
-
logger: this.logger,
|
|
107
|
-
memoryRuleManager: this.memoryRuleManager,
|
|
108
|
-
});
|
|
109
|
-
// Initialize ReversionManager
|
|
128
|
+
// ReversionManager depends on MessageManager
|
|
110
129
|
this.reversionManager = new ReversionManager(new ReversionService(this.messageManager.getTranscriptPath()));
|
|
111
130
|
// Create a wrapper for canUseTool that triggers notification hooks
|
|
112
131
|
const canUseToolWithNotification = options.canUseTool
|
|
@@ -154,6 +173,7 @@ export class Agent {
|
|
|
154
173
|
reversionManager: this.reversionManager,
|
|
155
174
|
permissionMode: options.permissionMode, // Let PermissionManager handle defaultMode resolution
|
|
156
175
|
canUseToolCallback: canUseToolWithNotification,
|
|
176
|
+
taskManager: this.taskManager,
|
|
157
177
|
backgroundTaskManager: this.backgroundTaskManager,
|
|
158
178
|
foregroundTaskManager: this.foregroundTaskManager,
|
|
159
179
|
}); // Initialize tool registry with permission support
|
|
@@ -169,7 +189,6 @@ export class Agent {
|
|
|
169
189
|
this.subagentManager = new SubagentManager({
|
|
170
190
|
workdir: this.workdir,
|
|
171
191
|
parentToolManager: this.toolManager,
|
|
172
|
-
parentMessageManager: this.messageManager,
|
|
173
192
|
callbacks: {
|
|
174
193
|
onSubagentUserMessageAdded: callbacks.onSubagentUserMessageAdded,
|
|
175
194
|
onSubagentAssistantMessageAdded: callbacks.onSubagentAssistantMessageAdded,
|
|
@@ -177,6 +196,7 @@ export class Agent {
|
|
|
177
196
|
onSubagentAssistantReasoningUpdated: callbacks.onSubagentAssistantReasoningUpdated,
|
|
178
197
|
onSubagentToolBlockUpdated: callbacks.onSubagentToolBlockUpdated,
|
|
179
198
|
onSubagentMessagesChange: callbacks.onSubagentMessagesChange,
|
|
199
|
+
onSubagentLatestTotalTokensChange: callbacks.onSubagentLatestTotalTokensChange,
|
|
180
200
|
}, // Pass subagent callbacks for forwarding
|
|
181
201
|
logger: this.logger,
|
|
182
202
|
getGatewayConfig: () => this.getGatewayConfig(),
|
|
@@ -186,12 +206,14 @@ export class Agent {
|
|
|
186
206
|
hookManager: this.hookManager,
|
|
187
207
|
onUsageAdded: (usage) => this.addUsage(usage),
|
|
188
208
|
backgroundTaskManager: this.backgroundTaskManager,
|
|
209
|
+
taskManager: this.taskManager,
|
|
189
210
|
memoryRuleManager: this.memoryRuleManager,
|
|
190
211
|
});
|
|
191
212
|
// Initialize AI manager with resolved configuration
|
|
192
213
|
this.aiManager = new AIManager({
|
|
193
214
|
messageManager: this.messageManager,
|
|
194
215
|
toolManager: this.toolManager,
|
|
216
|
+
taskManager: this.taskManager,
|
|
195
217
|
logger: this.logger,
|
|
196
218
|
backgroundTaskManager: this.backgroundTaskManager,
|
|
197
219
|
hookManager: this.hookManager,
|
|
@@ -217,6 +239,7 @@ export class Agent {
|
|
|
217
239
|
messageManager: this.messageManager,
|
|
218
240
|
aiManager: this.aiManager,
|
|
219
241
|
backgroundTaskManager: this.backgroundTaskManager,
|
|
242
|
+
taskManager: this.taskManager,
|
|
220
243
|
workdir: this.workdir,
|
|
221
244
|
logger: this.logger,
|
|
222
245
|
});
|
|
@@ -279,9 +302,6 @@ export class Agent {
|
|
|
279
302
|
get latestTotalTokens() {
|
|
280
303
|
return this.messageManager.getlatestTotalTokens();
|
|
281
304
|
}
|
|
282
|
-
get userInputHistory() {
|
|
283
|
-
return this.messageManager.getUserInputHistory();
|
|
284
|
-
}
|
|
285
305
|
/** Get working directory */
|
|
286
306
|
get workingDirectory() {
|
|
287
307
|
return this.workdir;
|
|
@@ -525,70 +545,15 @@ export class Agent {
|
|
|
525
545
|
const sessionToRestore = await handleSessionRestoration(options?.restoreSessionId, options?.continueLastSession, this.messageManager.getWorkdir());
|
|
526
546
|
// Rebuild usage array from restored messages
|
|
527
547
|
this.rebuildUsageFromMessages(sessionToRestore?.messages || []);
|
|
528
|
-
|
|
529
|
-
await this.restoreSubagentSessions(sessionToRestore?.messages || []);
|
|
530
|
-
if (sessionToRestore)
|
|
548
|
+
if (sessionToRestore) {
|
|
531
549
|
this.messageManager.initializeFromSession(sessionToRestore);
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
*/
|
|
538
|
-
async restoreSubagentSessions(messages) {
|
|
539
|
-
try {
|
|
540
|
-
// Only attempt to restore subagent sessions if we have messages (session was restored)
|
|
541
|
-
if (messages.length === 0) {
|
|
542
|
-
return;
|
|
543
|
-
}
|
|
544
|
-
// Extract sessionId -> subagentId mapping from SubagentBlocks
|
|
545
|
-
const subagentBlockMap = new Map(); // sessionId -> { subagentId, configuration }
|
|
546
|
-
for (const message of messages) {
|
|
547
|
-
if (message.role === "assistant" && message.blocks) {
|
|
548
|
-
for (const block of message.blocks) {
|
|
549
|
-
if (block.type === "subagent" &&
|
|
550
|
-
block.sessionId &&
|
|
551
|
-
block.subagentId &&
|
|
552
|
-
block.configuration) {
|
|
553
|
-
subagentBlockMap.set(block.sessionId, {
|
|
554
|
-
subagentId: block.subagentId,
|
|
555
|
-
configuration: block.configuration,
|
|
556
|
-
});
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
if (subagentBlockMap.size === 0) {
|
|
562
|
-
return; // No subagent blocks found
|
|
563
|
-
}
|
|
564
|
-
// Load subagent sessions using sessionIds
|
|
565
|
-
const subagentSessions = [];
|
|
566
|
-
for (const [sessionId, blockData] of subagentBlockMap) {
|
|
567
|
-
try {
|
|
568
|
-
const sessionData = await loadSessionFromJsonl(sessionId, this.messageManager.getWorkdir(), "subagent");
|
|
569
|
-
if (sessionData) {
|
|
570
|
-
subagentSessions.push({
|
|
571
|
-
sessionData,
|
|
572
|
-
subagentId: blockData.subagentId, // Use the subagentId from SubagentBlock
|
|
573
|
-
configuration: blockData.configuration, // Include configuration
|
|
574
|
-
});
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
catch (error) {
|
|
578
|
-
this.logger?.warn(`Failed to load subagent session ${sessionId}:`, error);
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
if (subagentSessions.length > 0) {
|
|
582
|
-
this.logger?.debug(`Found ${subagentSessions.length} subagent sessions to restore`);
|
|
583
|
-
// Restore subagent sessions through the SubagentManager
|
|
584
|
-
await this.subagentManager.restoreSubagentSessions(subagentSessions);
|
|
585
|
-
this.logger?.debug("Subagent sessions restored successfully");
|
|
550
|
+
// Update task manager with the root session ID to ensure continuity across compressions
|
|
551
|
+
this.taskManager.setTaskListId(sessionToRestore.rootSessionId || sessionToRestore.id);
|
|
552
|
+
// After session is initialized, load tasks for the session
|
|
553
|
+
const tasks = await this.taskManager.listTasks();
|
|
554
|
+
this.options.callbacks?.onSessionTasksChange?.(tasks);
|
|
586
555
|
}
|
|
587
556
|
}
|
|
588
|
-
catch (error) {
|
|
589
|
-
this.logger?.warn("Failed to restore subagent sessions:", error);
|
|
590
|
-
// Don't throw error to prevent app startup failure
|
|
591
|
-
}
|
|
592
557
|
}
|
|
593
558
|
/**
|
|
594
559
|
* Restore a session by ID, switching to the target session without destroying the Agent instance
|
|
@@ -615,22 +580,23 @@ export class Agent {
|
|
|
615
580
|
// 4. Clean current state
|
|
616
581
|
this.abortMessage(); // Abort any running operations
|
|
617
582
|
this.subagentManager.cleanup(); // Clean up active subagents
|
|
618
|
-
// 5. Rebuild usage
|
|
583
|
+
// 5. Rebuild usage (in correct order)
|
|
619
584
|
this.rebuildUsageFromMessages(sessionData.messages);
|
|
620
|
-
await this.restoreSubagentSessions(sessionData.messages);
|
|
621
585
|
// 6. Initialize session state last
|
|
622
586
|
this.messageManager.initializeFromSession(sessionData);
|
|
587
|
+
// Update task manager with the root session ID to ensure continuity across compressions
|
|
588
|
+
this.taskManager.setTaskListId(sessionData.rootSessionId || sessionData.id);
|
|
589
|
+
// 7. Load tasks for the restored session
|
|
590
|
+
const tasks = await this.taskManager.listTasks();
|
|
591
|
+
this.options.callbacks?.onSessionTasksChange?.(tasks);
|
|
623
592
|
}
|
|
624
593
|
abortAIMessage() {
|
|
625
594
|
this.aiManager.abortAIMessage();
|
|
626
595
|
}
|
|
627
596
|
/** Execute bash command */
|
|
628
597
|
async executeBashCommand(command) {
|
|
629
|
-
// Add user message to history (but not displayed in UI)
|
|
630
|
-
this.addToInputHistory(`!${command}`);
|
|
631
598
|
await this.bashManager?.executeCommand(command);
|
|
632
599
|
}
|
|
633
|
-
/** Clear messages and input history */
|
|
634
600
|
clearMessages() {
|
|
635
601
|
this.messageManager.clearMessages();
|
|
636
602
|
}
|
|
@@ -640,10 +606,6 @@ export class Agent {
|
|
|
640
606
|
this.abortBashCommand();
|
|
641
607
|
this.abortSlashCommand();
|
|
642
608
|
}
|
|
643
|
-
/** Add to input history */
|
|
644
|
-
addToInputHistory(input) {
|
|
645
|
-
this.messageManager.addToInputHistory(input);
|
|
646
|
-
}
|
|
647
609
|
/** Interrupt bash command execution */
|
|
648
610
|
abortBashCommand() {
|
|
649
611
|
this.bashManager?.abortCommand();
|
|
@@ -670,11 +632,6 @@ export class Agent {
|
|
|
670
632
|
async backgroundCurrentTask() {
|
|
671
633
|
await this.foregroundTaskManager.backgroundCurrentTask();
|
|
672
634
|
this.options.callbacks?.onBackgroundCurrentTask?.();
|
|
673
|
-
// If there was no foreground task (e.g. a tool that doesn't register one),
|
|
674
|
-
// or even if there was, we should stop the AI recursion loop.
|
|
675
|
-
if (!this.foregroundTaskManager.hasActiveTasks()) {
|
|
676
|
-
this.aiManager.abortRecursion();
|
|
677
|
-
}
|
|
678
635
|
}
|
|
679
636
|
/** Destroy managers, clean up resources */
|
|
680
637
|
async destroy() {
|
|
@@ -752,16 +709,12 @@ export class Agent {
|
|
|
752
709
|
if (isValid && commandId !== undefined) {
|
|
753
710
|
// Execute valid slash command
|
|
754
711
|
await this.slashCommandManager.executeCommand(commandId, args);
|
|
755
|
-
// Add slash command to history
|
|
756
|
-
this.addToInputHistory(command);
|
|
757
712
|
return;
|
|
758
713
|
}
|
|
759
714
|
// If command doesn't exist, continue as normal message processing
|
|
760
715
|
// Don't add to history, let normal message processing logic below handle it
|
|
761
716
|
}
|
|
762
717
|
// Handle normal AI message
|
|
763
|
-
// Add user message to history
|
|
764
|
-
this.addToInputHistory(content);
|
|
765
718
|
// Add user message first, will automatically sync to UI
|
|
766
719
|
this.messageManager.addUserMessage({
|
|
767
720
|
content,
|
|
@@ -805,60 +758,6 @@ export class Agent {
|
|
|
805
758
|
// Loading state will be automatically updated by the useEffect that watches messages
|
|
806
759
|
}
|
|
807
760
|
}
|
|
808
|
-
/** Save memory to project or user memory file */
|
|
809
|
-
async saveMemory(message, type) {
|
|
810
|
-
try {
|
|
811
|
-
// Ensure the message starts with # for memory functions
|
|
812
|
-
const formattedMessage = message.startsWith("#")
|
|
813
|
-
? message
|
|
814
|
-
: `#${message}`;
|
|
815
|
-
if (type === "project") {
|
|
816
|
-
await memory.addMemory(formattedMessage, this.workdir);
|
|
817
|
-
// Update internal state after successful save
|
|
818
|
-
this._projectMemoryContent = await memory.readMemoryFile(this.workdir);
|
|
819
|
-
}
|
|
820
|
-
else {
|
|
821
|
-
await memory.addUserMemory(formattedMessage);
|
|
822
|
-
// Update internal state after successful save
|
|
823
|
-
this._userMemoryContent = await memory.getUserMemoryContent();
|
|
824
|
-
}
|
|
825
|
-
// Add successful MemoryBlock to the last assistant message
|
|
826
|
-
const memoryText = message.substring(1).trim();
|
|
827
|
-
const typeLabel = type === "project" ? "Project Memory" : "User Memory";
|
|
828
|
-
const storagePath = "AGENTS.md";
|
|
829
|
-
const messages = this.messageManager.getMessages();
|
|
830
|
-
const lastMessage = messages[messages.length - 1];
|
|
831
|
-
if (lastMessage && lastMessage.role === "assistant") {
|
|
832
|
-
lastMessage.blocks.push({
|
|
833
|
-
type: "memory",
|
|
834
|
-
content: `${typeLabel}: ${memoryText}`,
|
|
835
|
-
isSuccess: true,
|
|
836
|
-
memoryType: type,
|
|
837
|
-
storagePath,
|
|
838
|
-
});
|
|
839
|
-
this.messageManager.setMessages(messages);
|
|
840
|
-
}
|
|
841
|
-
}
|
|
842
|
-
catch (error) {
|
|
843
|
-
// Add failed MemoryBlock to the last assistant message
|
|
844
|
-
const memoryText = message.substring(1).trim();
|
|
845
|
-
const typeLabel = type === "project" ? "Project Memory" : "User Memory";
|
|
846
|
-
const storagePath = "AGENTS.md";
|
|
847
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
848
|
-
const messages = this.messageManager.getMessages();
|
|
849
|
-
const lastMessage = messages[messages.length - 1];
|
|
850
|
-
if (lastMessage && lastMessage.role === "assistant") {
|
|
851
|
-
lastMessage.blocks.push({
|
|
852
|
-
type: "memory",
|
|
853
|
-
content: `${typeLabel}: ${memoryText} - Error: ${errorMessage}`,
|
|
854
|
-
isSuccess: false,
|
|
855
|
-
memoryType: type,
|
|
856
|
-
storagePath,
|
|
857
|
-
});
|
|
858
|
-
this.messageManager.setMessages(messages);
|
|
859
|
-
}
|
|
860
|
-
}
|
|
861
|
-
}
|
|
862
761
|
// ========== MCP Management Methods ==========
|
|
863
762
|
/** Get all MCP server status */
|
|
864
763
|
getMcpServers() {
|
|
@@ -921,6 +820,14 @@ export class Agent {
|
|
|
921
820
|
*/
|
|
922
821
|
async truncateHistory(index) {
|
|
923
822
|
await this.messageManager.truncateHistory(index, this.reversionManager);
|
|
823
|
+
// After truncating history, the task list might have changed, so refresh it.
|
|
824
|
+
await this.taskManager.refreshTasks();
|
|
825
|
+
}
|
|
826
|
+
/**
|
|
827
|
+
* Get the full message thread including parent sessions
|
|
828
|
+
*/
|
|
829
|
+
async getFullMessageThread() {
|
|
830
|
+
return this.messageManager.getFullMessageThread();
|
|
924
831
|
}
|
|
925
832
|
/**
|
|
926
833
|
* Get the current plan file path (for testing and UI)
|
|
@@ -980,7 +887,7 @@ export class Agent {
|
|
|
980
887
|
handlePlanModeTransition(mode) {
|
|
981
888
|
if (mode === "plan") {
|
|
982
889
|
this.planManager
|
|
983
|
-
.getOrGeneratePlanFilePath()
|
|
890
|
+
.getOrGeneratePlanFilePath(this.messageManager.getRootSessionId())
|
|
984
891
|
.then(({ path }) => {
|
|
985
892
|
this.logger?.debug("Plan file path generated", { path });
|
|
986
893
|
this.permissionManager.setPlanFilePath(path);
|
|
@@ -993,4 +900,10 @@ export class Agent {
|
|
|
993
900
|
this.permissionManager.setPlanFilePath(undefined);
|
|
994
901
|
}
|
|
995
902
|
}
|
|
903
|
+
/**
|
|
904
|
+
* Get the current task list ID
|
|
905
|
+
*/
|
|
906
|
+
get taskListId() {
|
|
907
|
+
return this.taskManager.getTaskListId();
|
|
908
|
+
}
|
|
996
909
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const BASH_SUBAGENT_TYPE = "Bash";
|
|
2
|
+
export declare const EXPLORE_SUBAGENT_TYPE = "Explore";
|
|
3
|
+
export declare const PLAN_SUBAGENT_TYPE = "Plan";
|
|
4
|
+
export declare const GENERAL_PURPOSE_SUBAGENT_TYPE = "general-purpose";
|
|
5
|
+
//# sourceMappingURL=subagents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagents.d.ts","sourceRoot":"","sources":["../../src/constants/subagents.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,qBAAqB,YAAY,CAAC;AAC/C,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,6BAA6B,oBAAoB,CAAC"}
|
|
@@ -13,6 +13,9 @@ export declare const MULTI_EDIT_TOOL_NAME = "MultiEdit";
|
|
|
13
13
|
export declare const READ_TOOL_NAME = "Read";
|
|
14
14
|
export declare const SKILL_TOOL_NAME = "Skill";
|
|
15
15
|
export declare const TASK_TOOL_NAME = "Task";
|
|
16
|
-
export declare const
|
|
16
|
+
export declare const TASK_CREATE_TOOL_NAME = "TaskCreate";
|
|
17
|
+
export declare const TASK_GET_TOOL_NAME = "TaskGet";
|
|
18
|
+
export declare const TASK_UPDATE_TOOL_NAME = "TaskUpdate";
|
|
19
|
+
export declare const TASK_LIST_TOOL_NAME = "TaskList";
|
|
17
20
|
export declare const WRITE_TOOL_NAME = "Write";
|
|
18
21
|
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/constants/tools.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,oBAAoB,CAAC;AAC7D,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AACvD,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/constants/tools.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,oBAAoB,CAAC;AAC7D,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AACvD,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,eAAe,UAAU,CAAC"}
|
package/dist/constants/tools.js
CHANGED
|
@@ -13,5 +13,8 @@ export const MULTI_EDIT_TOOL_NAME = "MultiEdit";
|
|
|
13
13
|
export const READ_TOOL_NAME = "Read";
|
|
14
14
|
export const SKILL_TOOL_NAME = "Skill";
|
|
15
15
|
export const TASK_TOOL_NAME = "Task";
|
|
16
|
-
export const
|
|
16
|
+
export const TASK_CREATE_TOOL_NAME = "TaskCreate";
|
|
17
|
+
export const TASK_GET_TOOL_NAME = "TaskGet";
|
|
18
|
+
export const TASK_UPDATE_TOOL_NAME = "TaskUpdate";
|
|
19
|
+
export const TASK_LIST_TOOL_NAME = "TaskList";
|
|
17
20
|
export const WRITE_TOOL_NAME = "Write";
|
package/dist/index.d.ts
CHANGED
|
@@ -21,5 +21,6 @@ export * from "./utils/promptHistory.js";
|
|
|
21
21
|
export * from "./utils/stringUtils.js";
|
|
22
22
|
export * from "./utils/customCommands.js";
|
|
23
23
|
export * from "./utils/hookMatcher.js";
|
|
24
|
+
export * from "./utils/tokenCalculation.js";
|
|
24
25
|
export * from "./types/index.js";
|
|
25
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AAGjD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AAGjD,cAAc,YAAY,CAAC;AAG3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AAGjD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AAGjD,cAAc,YAAY,CAAC;AAG3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -26,5 +26,6 @@ export * from "./utils/promptHistory.js";
|
|
|
26
26
|
export * from "./utils/stringUtils.js";
|
|
27
27
|
export * from "./utils/customCommands.js";
|
|
28
28
|
export * from "./utils/hookMatcher.js";
|
|
29
|
+
export * from "./utils/tokenCalculation.js";
|
|
29
30
|
// Export types
|
|
30
31
|
export * from "./types/index.js";
|
|
@@ -11,6 +11,7 @@ export interface AIManagerCallbacks {
|
|
|
11
11
|
export interface AIManagerOptions {
|
|
12
12
|
messageManager: MessageManager;
|
|
13
13
|
toolManager: ToolManager;
|
|
14
|
+
taskManager: import("../services/taskManager.js").TaskManager;
|
|
14
15
|
logger?: Logger;
|
|
15
16
|
backgroundTaskManager?: BackgroundTaskManager;
|
|
16
17
|
hookManager?: HookManager;
|
|
@@ -35,6 +36,7 @@ export declare class AIManager {
|
|
|
35
36
|
private logger?;
|
|
36
37
|
private toolManager;
|
|
37
38
|
private messageManager;
|
|
39
|
+
private taskManager;
|
|
38
40
|
private backgroundTaskManager?;
|
|
39
41
|
private hookManager?;
|
|
40
42
|
private reversionManager?;
|
|
@@ -61,11 +63,6 @@ export declare class AIManager {
|
|
|
61
63
|
private getFilteredToolsConfig;
|
|
62
64
|
setIsLoading(isLoading: boolean): void;
|
|
63
65
|
abortAIMessage(): void;
|
|
64
|
-
/**
|
|
65
|
-
* Abort the AI recursion loop immediately.
|
|
66
|
-
* This is used when a tool is backgrounded via Ctrl-B, even if no foreground task was active.
|
|
67
|
-
*/
|
|
68
|
-
abortRecursion(): void;
|
|
69
66
|
private generateCompactParams;
|
|
70
67
|
private handleTokenUsageAndCompression;
|
|
71
68
|
getIsCompressing(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiManager.d.ts","sourceRoot":"","sources":["../../src/managers/aiManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aiManager.d.ts","sourceRoot":"","sources":["../../src/managers/aiManager.ts"],"names":[],"mappings":"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"}
|