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.
Files changed (190) hide show
  1. package/dist/agent.d.ts +42 -11
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +114 -115
  4. package/dist/constants/prompts.d.ts +18 -14
  5. package/dist/constants/prompts.d.ts.map +1 -1
  6. package/dist/constants/prompts.js +130 -54
  7. package/dist/constants/tools.d.ts +6 -3
  8. package/dist/constants/tools.d.ts.map +1 -1
  9. package/dist/constants/tools.js +6 -3
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/managers/MemoryRuleManager.js +1 -1
  14. package/dist/managers/aiManager.d.ts +5 -3
  15. package/dist/managers/aiManager.d.ts.map +1 -1
  16. package/dist/managers/aiManager.js +57 -20
  17. package/dist/managers/backgroundBashManager.d.ts.map +1 -1
  18. package/dist/managers/backgroundBashManager.js +1 -0
  19. package/dist/managers/backgroundTaskManager.d.ts +35 -0
  20. package/dist/managers/backgroundTaskManager.d.ts.map +1 -0
  21. package/dist/managers/backgroundTaskManager.js +255 -0
  22. package/dist/managers/foregroundTaskManager.d.ts +9 -0
  23. package/dist/managers/foregroundTaskManager.d.ts.map +1 -0
  24. package/dist/managers/foregroundTaskManager.js +21 -0
  25. package/dist/managers/liveConfigManager.d.ts +1 -1
  26. package/dist/managers/lspManager.d.ts.map +1 -1
  27. package/dist/managers/lspManager.js +3 -1
  28. package/dist/managers/mcpManager.d.ts.map +1 -1
  29. package/dist/managers/messageManager.d.ts +26 -12
  30. package/dist/managers/messageManager.d.ts.map +1 -1
  31. package/dist/managers/messageManager.js +138 -64
  32. package/dist/managers/permissionManager.d.ts.map +1 -1
  33. package/dist/managers/permissionManager.js +26 -22
  34. package/dist/managers/planManager.d.ts +1 -1
  35. package/dist/managers/planManager.d.ts.map +1 -1
  36. package/dist/managers/planManager.js +2 -2
  37. package/dist/managers/pluginManager.d.ts.map +1 -1
  38. package/dist/managers/pluginManager.js +3 -2
  39. package/dist/managers/slashCommandManager.d.ts +6 -0
  40. package/dist/managers/slashCommandManager.d.ts.map +1 -1
  41. package/dist/managers/slashCommandManager.js +8 -2
  42. package/dist/managers/subagentManager.d.ts +15 -2
  43. package/dist/managers/subagentManager.d.ts.map +1 -1
  44. package/dist/managers/subagentManager.js +153 -39
  45. package/dist/managers/toolManager.d.ts +18 -1
  46. package/dist/managers/toolManager.d.ts.map +1 -1
  47. package/dist/managers/toolManager.js +29 -5
  48. package/dist/services/GitService.d.ts.map +1 -1
  49. package/dist/services/GitService.js +6 -2
  50. package/dist/services/MarketplaceService.d.ts +2 -2
  51. package/dist/services/MarketplaceService.d.ts.map +1 -1
  52. package/dist/services/MarketplaceService.js +18 -11
  53. package/dist/services/MemoryRuleService.d.ts +1 -1
  54. package/dist/services/MemoryRuleService.d.ts.map +1 -1
  55. package/dist/services/MemoryRuleService.js +13 -2
  56. package/dist/services/aiService.d.ts +0 -1
  57. package/dist/services/aiService.d.ts.map +1 -1
  58. package/dist/services/aiService.js +4 -140
  59. package/dist/services/memory.d.ts +0 -3
  60. package/dist/services/memory.d.ts.map +1 -1
  61. package/dist/services/memory.js +1 -60
  62. package/dist/services/session.d.ts +15 -1
  63. package/dist/services/session.d.ts.map +1 -1
  64. package/dist/services/session.js +57 -1
  65. package/dist/services/taskManager.d.ts +21 -0
  66. package/dist/services/taskManager.d.ts.map +1 -0
  67. package/dist/services/taskManager.js +158 -0
  68. package/dist/tools/askUserQuestion.d.ts.map +1 -1
  69. package/dist/tools/askUserQuestion.js +39 -25
  70. package/dist/tools/bashTool.d.ts +0 -8
  71. package/dist/tools/bashTool.d.ts.map +1 -1
  72. package/dist/tools/bashTool.js +48 -172
  73. package/dist/tools/editTool.d.ts.map +1 -1
  74. package/dist/tools/editTool.js +8 -6
  75. package/dist/tools/exitPlanMode.d.ts.map +1 -1
  76. package/dist/tools/exitPlanMode.js +25 -1
  77. package/dist/tools/globTool.d.ts.map +1 -1
  78. package/dist/tools/globTool.js +8 -2
  79. package/dist/tools/grepTool.d.ts.map +1 -1
  80. package/dist/tools/grepTool.js +17 -6
  81. package/dist/tools/lsTool.d.ts.map +1 -1
  82. package/dist/tools/lsTool.js +3 -1
  83. package/dist/tools/multiEditTool.d.ts.map +1 -1
  84. package/dist/tools/multiEditTool.js +7 -6
  85. package/dist/tools/readTool.d.ts.map +1 -1
  86. package/dist/tools/readTool.js +16 -1
  87. package/dist/tools/taskManagementTools.d.ts +6 -0
  88. package/dist/tools/taskManagementTools.d.ts.map +1 -0
  89. package/dist/tools/taskManagementTools.js +453 -0
  90. package/dist/tools/taskOutputTool.d.ts +3 -0
  91. package/dist/tools/taskOutputTool.d.ts.map +1 -0
  92. package/dist/tools/taskOutputTool.js +173 -0
  93. package/dist/tools/taskStopTool.d.ts +3 -0
  94. package/dist/tools/taskStopTool.d.ts.map +1 -0
  95. package/dist/tools/taskStopTool.js +71 -0
  96. package/dist/tools/taskTool.d.ts.map +1 -1
  97. package/dist/tools/taskTool.js +110 -63
  98. package/dist/tools/types.d.ts +12 -0
  99. package/dist/tools/types.d.ts.map +1 -1
  100. package/dist/tools/writeTool.d.ts.map +1 -1
  101. package/dist/tools/writeTool.js +9 -1
  102. package/dist/types/index.d.ts +1 -0
  103. package/dist/types/index.d.ts.map +1 -1
  104. package/dist/types/index.js +1 -0
  105. package/dist/types/marketplace.d.ts +1 -0
  106. package/dist/types/marketplace.d.ts.map +1 -1
  107. package/dist/types/messaging.d.ts +3 -8
  108. package/dist/types/messaging.d.ts.map +1 -1
  109. package/dist/types/processes.d.ts +29 -4
  110. package/dist/types/processes.d.ts.map +1 -1
  111. package/dist/types/tasks.d.ts +13 -0
  112. package/dist/types/tasks.d.ts.map +1 -0
  113. package/dist/types/tasks.js +1 -0
  114. package/dist/types/tools.d.ts +4 -1
  115. package/dist/types/tools.d.ts.map +1 -1
  116. package/dist/utils/builtinSubagents.d.ts.map +1 -1
  117. package/dist/utils/builtinSubagents.js +38 -1
  118. package/dist/utils/cacheControlUtils.d.ts.map +1 -1
  119. package/dist/utils/cacheControlUtils.js +18 -12
  120. package/dist/utils/constants.d.ts +0 -4
  121. package/dist/utils/constants.d.ts.map +1 -1
  122. package/dist/utils/constants.js +0 -4
  123. package/dist/utils/convertMessagesForAPI.js +2 -2
  124. package/dist/utils/editUtils.d.ts +2 -11
  125. package/dist/utils/editUtils.d.ts.map +1 -1
  126. package/dist/utils/editUtils.js +52 -79
  127. package/dist/utils/messageOperations.d.ts +5 -36
  128. package/dist/utils/messageOperations.d.ts.map +1 -1
  129. package/dist/utils/messageOperations.js +9 -98
  130. package/dist/utils/nameGenerator.d.ts +1 -1
  131. package/dist/utils/nameGenerator.d.ts.map +1 -1
  132. package/dist/utils/nameGenerator.js +19 -3
  133. package/package.json +5 -5
  134. package/src/agent.ts +157 -134
  135. package/src/constants/prompts.ts +156 -65
  136. package/src/constants/tools.ts +6 -3
  137. package/src/index.ts +1 -0
  138. package/src/managers/MemoryRuleManager.ts +1 -1
  139. package/src/managers/aiManager.ts +77 -35
  140. package/src/managers/backgroundBashManager.ts +1 -0
  141. package/src/managers/backgroundTaskManager.ts +305 -0
  142. package/src/managers/foregroundTaskManager.ts +27 -0
  143. package/src/managers/lspManager.ts +3 -1
  144. package/src/managers/mcpManager.ts +6 -3
  145. package/src/managers/messageManager.ts +185 -75
  146. package/src/managers/permissionManager.ts +33 -28
  147. package/src/managers/planManager.ts +2 -2
  148. package/src/managers/pluginManager.ts +4 -3
  149. package/src/managers/slashCommandManager.ts +15 -2
  150. package/src/managers/subagentManager.ts +194 -35
  151. package/src/managers/toolManager.ts +48 -6
  152. package/src/services/GitService.ts +6 -2
  153. package/src/services/MarketplaceService.ts +30 -12
  154. package/src/services/MemoryRuleService.ts +18 -6
  155. package/src/services/aiService.ts +3 -145
  156. package/src/services/memory.ts +1 -73
  157. package/src/services/session.ts +73 -0
  158. package/src/services/taskManager.ts +188 -0
  159. package/src/tools/askUserQuestion.ts +51 -29
  160. package/src/tools/bashTool.ts +63 -196
  161. package/src/tools/editTool.ts +9 -18
  162. package/src/tools/exitPlanMode.ts +26 -2
  163. package/src/tools/globTool.ts +10 -2
  164. package/src/tools/grepTool.ts +17 -6
  165. package/src/tools/lsTool.ts +3 -1
  166. package/src/tools/multiEditTool.ts +7 -18
  167. package/src/tools/readTool.ts +17 -1
  168. package/src/tools/taskManagementTools.ts +498 -0
  169. package/src/tools/taskOutputTool.ts +196 -0
  170. package/src/tools/taskStopTool.ts +78 -0
  171. package/src/tools/taskTool.ts +136 -74
  172. package/src/tools/types.ts +13 -0
  173. package/src/tools/writeTool.ts +9 -2
  174. package/src/types/index.ts +1 -0
  175. package/src/types/marketplace.ts +1 -0
  176. package/src/types/messaging.ts +2 -9
  177. package/src/types/processes.ts +39 -4
  178. package/src/types/tasks.ts +13 -0
  179. package/src/types/tools.ts +4 -1
  180. package/src/utils/builtinSubagents.ts +47 -1
  181. package/src/utils/cacheControlUtils.ts +26 -18
  182. package/src/utils/constants.ts +0 -5
  183. package/src/utils/convertMessagesForAPI.ts +2 -2
  184. package/src/utils/editUtils.ts +65 -103
  185. package/src/utils/messageOperations.ts +12 -136
  186. package/src/utils/nameGenerator.ts +20 -3
  187. package/dist/tools/todoWriteTool.d.ts +0 -6
  188. package/dist/tools/todoWriteTool.d.ts.map +0 -1
  189. package/dist/tools/todoWriteTool.js +0 -220
  190. package/src/tools/todoWriteTool.ts +0 -257
@@ -1 +1 @@
1
- {"version":3,"file":"subagentManager.d.ts","sourceRoot":"","sources":["../../src/managers/subagentManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagentManager.d.ts","sourceRoot":"","sources":["../../src/managers/subagentManager.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export class SubagentManager {
9
9
  this.workdir = options.workdir;
10
10
  this.parentToolManager = options.parentToolManager;
11
11
  this.parentMessageManager = options.parentMessageManager;
12
+ this.taskManager = options.taskManager;
12
13
  this.callbacks = options.callbacks; // Store SubagentManagerCallbacks
13
14
  this.logger = options.logger;
14
15
  this.getGatewayConfig = options.getGatewayConfig;
@@ -17,6 +18,8 @@ export class SubagentManager {
17
18
  this.getLanguage = options.getLanguage;
18
19
  this.hookManager = options.hookManager;
19
20
  this.onUsageAdded = options.onUsageAdded;
21
+ this.backgroundTaskManager = options.backgroundTaskManager;
22
+ this.memoryRuleManager = options.memoryRuleManager;
20
23
  }
21
24
  /**
22
25
  * Initialize the SubagentManager by loading and caching configurations
@@ -53,7 +56,7 @@ export class SubagentManager {
53
56
  /**
54
57
  * Create a new subagent instance with isolated managers
55
58
  */
56
- async createInstance(configuration, parameters) {
59
+ async createInstance(configuration, parameters, runInBackground) {
57
60
  if (!this.parentToolManager) {
58
61
  throw new Error("SubagentManager not properly initialized - call initialize() first");
59
62
  }
@@ -66,6 +69,7 @@ export class SubagentManager {
66
69
  logger: this.logger,
67
70
  sessionType: "subagent",
68
71
  subagentType: parameters.subagent_type,
72
+ memoryRuleManager: this.memoryRuleManager,
69
73
  });
70
74
  // Use the parent tool manager directly - tool restrictions will be handled by allowedTools parameter
71
75
  const toolManager = this.parentToolManager;
@@ -73,6 +77,7 @@ export class SubagentManager {
73
77
  const aiManager = new AIManager({
74
78
  messageManager,
75
79
  toolManager,
80
+ taskManager: this.taskManager,
76
81
  logger: this.logger,
77
82
  workdir: this.workdir,
78
83
  systemPrompt: configuration.systemPrompt,
@@ -119,7 +124,7 @@ export class SubagentManager {
119
124
  };
120
125
  this.instances.set(subagentId, instance);
121
126
  // Create subagent block in parent message manager
122
- this.parentMessageManager.addSubagentBlock(subagentId, configuration.name, messageManager.getSessionId(), configuration, "active", parameters);
127
+ this.parentMessageManager.addSubagentBlock(subagentId, configuration.name, messageManager.getSessionId(), configuration, "active", parameters, runInBackground);
123
128
  return instance;
124
129
  }
125
130
  /**
@@ -128,7 +133,7 @@ export class SubagentManager {
128
133
  * IMPORTANT: This method automatically filters out the Task tool from allowedTools
129
134
  * to prevent subagents from spawning other subagents (infinite recursion protection)
130
135
  */
131
- async executeTask(instance, prompt, abortSignal) {
136
+ async executeTask(instance, prompt, abortSignal, runInBackground) {
132
137
  try {
133
138
  // Check if already aborted before starting
134
139
  if (abortSignal?.aborted) {
@@ -139,23 +144,102 @@ export class SubagentManager {
139
144
  this.parentMessageManager.updateSubagentBlock(instance.subagentId, {
140
145
  status: "active",
141
146
  });
142
- // Set up consolidated abort handler to prevent listener accumulation
143
- let abortCleanup;
144
- if (abortSignal) {
145
- abortCleanup = addConsolidatedAbortListener(abortSignal, [
146
- () => {
147
- // Update status to aborted
148
- this.updateInstanceStatus(instance.subagentId, "aborted");
149
- this.parentMessageManager.updateSubagentBlock(instance.subagentId, {
150
- status: "aborted",
151
- });
152
- },
153
- () => {
154
- // Abort the AI execution
155
- instance.aiManager.abortAIMessage();
156
- },
157
- ]);
147
+ if (runInBackground && this.backgroundTaskManager) {
148
+ const taskId = this.backgroundTaskManager.generateId();
149
+ const startTime = Date.now();
150
+ this.backgroundTaskManager.addTask({
151
+ id: taskId,
152
+ type: "subagent",
153
+ status: "running",
154
+ startTime,
155
+ description: instance.configuration.description,
156
+ stdout: "",
157
+ stderr: "",
158
+ onStop: () => instance.aiManager.abortAIMessage(),
159
+ });
160
+ instance.backgroundTaskId = taskId;
161
+ // Execute in background
162
+ (async () => {
163
+ try {
164
+ const result = await this.internalExecute(instance, prompt, abortSignal);
165
+ const task = this.backgroundTaskManager?.getTask(taskId);
166
+ if (task) {
167
+ task.status = "completed";
168
+ task.stdout = result;
169
+ task.endTime = Date.now();
170
+ task.runtime = task.endTime - startTime;
171
+ }
172
+ }
173
+ catch (error) {
174
+ const task = this.backgroundTaskManager?.getTask(taskId);
175
+ if (task) {
176
+ task.status = "failed";
177
+ task.stderr =
178
+ error instanceof Error ? error.message : String(error);
179
+ task.endTime = Date.now();
180
+ task.runtime = task.endTime - startTime;
181
+ }
182
+ }
183
+ })();
184
+ return taskId;
158
185
  }
186
+ return await this.internalExecute(instance, prompt, abortSignal);
187
+ }
188
+ catch (error) {
189
+ this.updateInstanceStatus(instance.subagentId, "error");
190
+ this.parentMessageManager.updateSubagentBlock(instance.subagentId, {
191
+ status: "error",
192
+ });
193
+ throw error;
194
+ }
195
+ }
196
+ async backgroundInstance(subagentId) {
197
+ const instance = this.instances.get(subagentId);
198
+ if (!instance) {
199
+ throw new Error(`Subagent instance ${subagentId} not found`);
200
+ }
201
+ if (!this.backgroundTaskManager) {
202
+ throw new Error("BackgroundTaskManager not available");
203
+ }
204
+ const taskId = this.backgroundTaskManager.generateId();
205
+ const startTime = Date.now();
206
+ this.backgroundTaskManager.addTask({
207
+ id: taskId,
208
+ type: "subagent",
209
+ status: "running",
210
+ startTime,
211
+ description: instance.configuration.description,
212
+ stdout: "",
213
+ stderr: "",
214
+ onStop: () => instance.aiManager.abortAIMessage(),
215
+ });
216
+ instance.backgroundTaskId = taskId;
217
+ // Update parent message manager to reflect background status
218
+ this.parentMessageManager.updateSubagentBlock(subagentId, {
219
+ runInBackground: true,
220
+ });
221
+ return taskId;
222
+ }
223
+ async internalExecute(instance, prompt, abortSignal) {
224
+ // Set up consolidated abort handler to prevent listener accumulation
225
+ let abortCleanup;
226
+ // Only link to parent abort signal if NOT running in background
227
+ if (abortSignal && !instance.backgroundTaskId) {
228
+ abortCleanup = addConsolidatedAbortListener(abortSignal, [
229
+ () => {
230
+ // Update status to aborted
231
+ this.updateInstanceStatus(instance.subagentId, "aborted");
232
+ this.parentMessageManager.updateSubagentBlock(instance.subagentId, {
233
+ status: "aborted",
234
+ });
235
+ },
236
+ () => {
237
+ // Abort the AI execution
238
+ instance.aiManager.abortAIMessage();
239
+ },
240
+ ]);
241
+ }
242
+ try {
159
243
  // Add the user's prompt as a message
160
244
  instance.messageManager.addUserMessage({ content: prompt });
161
245
  // Create allowed tools list - always exclude Task tool to prevent subagent recursion
@@ -190,23 +274,15 @@ export class SubagentManager {
190
274
  tools: allowedTools,
191
275
  model: resolvedModel,
192
276
  });
193
- try {
194
- // If we have an abort signal, race against it using utilities to prevent listener accumulation
195
- if (abortSignal) {
196
- await Promise.race([
197
- executeAI,
198
- createAbortPromise(abortSignal, "Task was aborted"),
199
- ]);
200
- }
201
- else {
202
- await executeAI;
203
- }
277
+ // If we have an abort signal, race against it using utilities to prevent listener accumulation
278
+ if (abortSignal && !instance.backgroundTaskId) {
279
+ await Promise.race([
280
+ executeAI,
281
+ createAbortPromise(abortSignal, "Task was aborted"),
282
+ ]);
204
283
  }
205
- finally {
206
- // Clean up abort listeners to prevent memory leaks
207
- if (abortCleanup) {
208
- abortCleanup();
209
- }
284
+ else {
285
+ await executeAI;
210
286
  }
211
287
  // Get the latest messages to extract the response
212
288
  const messages = instance.messageManager.getMessages();
@@ -224,15 +300,41 @@ export class SubagentManager {
224
300
  this.parentMessageManager.updateSubagentBlock(instance.subagentId, {
225
301
  status: "completed",
226
302
  });
303
+ // If this was transitioned to background, update the background task
304
+ if (instance.backgroundTaskId && this.backgroundTaskManager) {
305
+ const task = this.backgroundTaskManager.getTask(instance.backgroundTaskId);
306
+ if (task) {
307
+ task.status = "completed";
308
+ task.stdout = response || "Task completed with no text response";
309
+ task.endTime = Date.now();
310
+ if (task.startTime) {
311
+ task.runtime = task.endTime - task.startTime;
312
+ }
313
+ }
314
+ }
227
315
  return response || "Task completed with no text response";
228
316
  }
229
317
  catch (error) {
230
- this.updateInstanceStatus(instance.subagentId, "error");
231
- this.parentMessageManager.updateSubagentBlock(instance.subagentId, {
232
- status: "error",
233
- });
318
+ // If this was transitioned to background, update the background task with error
319
+ if (instance.backgroundTaskId && this.backgroundTaskManager) {
320
+ const task = this.backgroundTaskManager.getTask(instance.backgroundTaskId);
321
+ if (task) {
322
+ task.status = "failed";
323
+ task.stderr = error instanceof Error ? error.message : String(error);
324
+ task.endTime = Date.now();
325
+ if (task.startTime) {
326
+ task.runtime = task.endTime - task.startTime;
327
+ }
328
+ }
329
+ }
234
330
  throw error;
235
331
  }
332
+ finally {
333
+ // Clean up abort listeners to prevent memory leaks
334
+ if (abortCleanup) {
335
+ abortCleanup();
336
+ }
337
+ }
236
338
  }
237
339
  /**
238
340
  * Get instance by subagent ID
@@ -299,6 +401,7 @@ export class SubagentManager {
299
401
  logger: this.logger,
300
402
  sessionType: "subagent",
301
403
  subagentType: configuration.name, // Use configuration name for restored sessions
404
+ memoryRuleManager: this.memoryRuleManager,
302
405
  });
303
406
  // Use the parent tool manager
304
407
  const toolManager = this.parentToolManager;
@@ -318,6 +421,7 @@ export class SubagentManager {
318
421
  const aiManager = new AIManager({
319
422
  messageManager,
320
423
  toolManager,
424
+ taskManager: this.taskManager,
321
425
  logger: this.logger,
322
426
  workdir: this.workdir,
323
427
  systemPrompt: configuration.systemPrompt,
@@ -410,6 +514,16 @@ export class SubagentManager {
410
514
  sessionId: newSessionId,
411
515
  });
412
516
  },
517
+ onLatestTotalTokensChange: (tokens) => {
518
+ // Forward latest total tokens to parent via SubagentManager callbacks
519
+ if (this.callbacks?.onSubagentLatestTotalTokensChange) {
520
+ this.callbacks.onSubagentLatestTotalTokensChange(subagentId, tokens);
521
+ }
522
+ },
523
+ onFileHistoryBlockAdded: (snapshots) => {
524
+ // Forward file history blocks to parent MessageManager
525
+ this.parentMessageManager.addFileHistoryBlock(snapshots);
526
+ },
413
527
  };
414
528
  }
415
529
  }
@@ -10,10 +10,16 @@ export interface ToolManagerOptions {
10
10
  mcpManager: McpManager;
11
11
  lspManager?: ILspManager;
12
12
  logger?: Logger;
13
- /** Optional permission manager for handling tool permission checks */
13
+ /** Permission manager for handling tool permission checks */
14
14
  permissionManager?: PermissionManager;
15
+ /** Foreground task manager for backgrounding tasks */
16
+ foregroundTaskManager?: import("../types/processes.js").IForegroundTaskManager;
17
+ /** Task manager for task management */
18
+ taskManager?: import("../services/taskManager.js").TaskManager;
15
19
  /** Reversion manager for file snapshots */
16
20
  reversionManager?: ReversionManager;
21
+ /** Background task manager for background execution */
22
+ backgroundTaskManager?: import("./backgroundTaskManager.js").BackgroundTaskManager;
17
23
  /** Permission mode for tool execution (defaults to "default") */
18
24
  permissionMode?: PermissionMode;
19
25
  /** Custom permission callback for tool usage */
@@ -31,7 +37,10 @@ declare class ToolManager {
31
37
  private lspManager?;
32
38
  private logger?;
33
39
  private permissionManager?;
40
+ private foregroundTaskManager?;
34
41
  private reversionManager?;
42
+ private taskManager?;
43
+ private backgroundTaskManager?;
35
44
  private permissionMode?;
36
45
  private canUseToolCallback?;
37
46
  constructor(options: ToolManagerOptions);
@@ -82,6 +91,10 @@ declare class ToolManager {
82
91
  execute(name: string, args: Record<string, unknown>, context: ToolContext): Promise<ToolResult>;
83
92
  list(): ToolPlugin[];
84
93
  getToolsConfig(): ChatCompletionFunctionTool[];
94
+ /**
95
+ * Get the list of registered tool plugins
96
+ */
97
+ getTools(): ToolPlugin[];
85
98
  /**
86
99
  * Get the current permission mode
87
100
  */
@@ -95,6 +108,10 @@ declare class ToolManager {
95
108
  * Get the permission manager
96
109
  */
97
110
  getPermissionManager(): PermissionManager | undefined;
111
+ /**
112
+ * Get the task manager
113
+ */
114
+ getTaskManager(): import("../services/taskManager.js").TaskManager | undefined;
98
115
  }
99
116
  export { ToolManager };
100
117
  //# sourceMappingURL=toolManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolManager.d.ts","sourceRoot":"","sources":["../../src/managers/toolManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiB7E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,iEAAiE;IACjE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED;;;;;GAKG;AACH,cAAM,WAAW;IACf,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,kBAAkB,CAAC,CAAqB;gBAEpC,OAAO,EAAE,kBAAkB;IAWvC;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAIvC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,sBAAsB,CAAC,IAAI,CAAC,EAAE;QACnC,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,GAAG,IAAI;IAmCR;;;;;;;;;;;;OAYG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IA4DtB,IAAI,IAAI,UAAU,EAAE;IAMpB,cAAc,IAAI,0BAA0B,EAAE;IAmB9C;;OAEG;IACI,iBAAiB,IAAI,cAAc;IAS1C;;;OAGG;IACI,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIpD;;OAEG;IACI,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;CAG7D;AAGD,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"toolManager.d.ts","sourceRoot":"","sources":["../../src/managers/toolManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAwB7E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,sDAAsD;IACtD,qBAAqB,CAAC,EAAE,OAAO,uBAAuB,EAAE,sBAAsB,CAAC;IAC/E,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,4BAA4B,EAAE,WAAW,CAAC;IAC/D,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,uDAAuD;IACvD,qBAAqB,CAAC,EAAE,OAAO,4BAA4B,EAAE,qBAAqB,CAAC;IACnF,iEAAiE;IACjE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED;;;;;GAKG;AACH,cAAM,WAAW;IACf,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,qBAAqB,CAAC,CAAyD;IACvF,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,WAAW,CAAC,CAAmD;IACvE,OAAO,CAAC,qBAAqB,CAAC,CAA6D;IAC3F,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,kBAAkB,CAAC,CAAqB;gBAEpC,OAAO,EAAE,kBAAkB;IAcvC;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAIvC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,sBAAsB,CAAC,IAAI,CAAC,EAAE;QACnC,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,YAAY,CAAC,EAAE,YAAY,CAAC;KAC7B,GAAG,IAAI;IAsCR;;;;;;;;;;;;OAYG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAgEtB,IAAI,IAAI,UAAU,EAAE;IAMpB,cAAc,IAAI,0BAA0B,EAAE;IAmB9C;;OAEG;IACI,QAAQ,IAAI,UAAU,EAAE;IAI/B;;OAEG;IACI,iBAAiB,IAAI,cAAc;IAS1C;;;OAGG;IACI,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIpD;;OAEG;IACI,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IAI5D;;OAEG;IACI,cAAc,IACjB,OAAO,4BAA4B,EAAE,WAAW,GAChD,SAAS;CAGd;AAGD,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,4 +1,6 @@
1
- import { bashTool, bashOutputTool, killBashTool } from "../tools/bashTool.js";
1
+ import { bashTool } from "../tools/bashTool.js";
2
+ import { taskOutputTool } from "../tools/taskOutputTool.js";
3
+ import { taskStopTool } from "../tools/taskStopTool.js";
2
4
  import { deleteFileTool } from "../tools/deleteFileTool.js";
3
5
  import { editTool } from "../tools/editTool.js";
4
6
  import { multiEditTool } from "../tools/multiEditTool.js";
@@ -10,10 +12,10 @@ import { globTool } from "../tools/globTool.js";
10
12
  import { grepTool } from "../tools/grepTool.js";
11
13
  import { lsTool } from "../tools/lsTool.js";
12
14
  import { readTool } from "../tools/readTool.js";
13
- import { todoWriteTool } from "../tools/todoWriteTool.js";
14
15
  import { lspTool } from "../tools/lspTool.js";
15
16
  import { createTaskTool } from "../tools/taskTool.js";
16
17
  import { createSkillTool } from "../tools/skillTool.js";
18
+ import { taskCreateTool, taskGetTool, taskUpdateTool, taskListTool, } from "../tools/taskManagementTools.js";
17
19
  /**
18
20
  * Tool Manager
19
21
  *
@@ -27,7 +29,10 @@ class ToolManager {
27
29
  this.lspManager = options.lspManager;
28
30
  this.logger = options.logger;
29
31
  this.permissionManager = options.permissionManager;
32
+ this.taskManager = options.taskManager;
33
+ this.foregroundTaskManager = options.foregroundTaskManager;
30
34
  this.reversionManager = options.reversionManager;
35
+ this.backgroundTaskManager = options.backgroundTaskManager;
31
36
  // Store CLI permission mode, let PermissionManager resolve effective mode
32
37
  this.permissionMode = options.permissionMode;
33
38
  this.canUseToolCallback = options.canUseToolCallback;
@@ -64,8 +69,8 @@ class ToolManager {
64
69
  initializeBuiltInTools(deps) {
65
70
  const builtInTools = [
66
71
  bashTool,
67
- bashOutputTool,
68
- killBashTool,
72
+ taskOutputTool,
73
+ taskStopTool,
69
74
  deleteFileTool,
70
75
  editTool,
71
76
  multiEditTool,
@@ -76,8 +81,11 @@ class ToolManager {
76
81
  grepTool,
77
82
  lsTool,
78
83
  readTool,
79
- todoWriteTool,
80
84
  lspTool,
85
+ taskCreateTool,
86
+ taskGetTool,
87
+ taskUpdateTool,
88
+ taskListTool,
81
89
  ];
82
90
  for (const tool of builtInTools) {
83
91
  this.tools.set(tool.name, tool);
@@ -116,9 +124,13 @@ class ToolManager {
116
124
  permissionMode: effectivePermissionMode,
117
125
  canUseToolCallback: this.canUseToolCallback,
118
126
  permissionManager: this.permissionManager,
127
+ taskManager: this.taskManager,
119
128
  reversionManager: this.reversionManager,
129
+ backgroundTaskManager: this.backgroundTaskManager,
130
+ foregroundTaskManager: this.foregroundTaskManager,
120
131
  mcpManager: this.mcpManager,
121
132
  lspManager: this.lspManager,
133
+ sessionId: context.sessionId,
122
134
  };
123
135
  this.logger?.debug("Executing tool with enhanced context", {
124
136
  toolName: name,
@@ -179,6 +191,12 @@ class ToolManager {
179
191
  const mcpToolsConfig = this.mcpManager.getMcpToolsConfig();
180
192
  return [...builtInToolsConfig, ...mcpToolsConfig];
181
193
  }
194
+ /**
195
+ * Get the list of registered tool plugins
196
+ */
197
+ getTools() {
198
+ return Array.from(this.tools.values());
199
+ }
182
200
  /**
183
201
  * Get the current permission mode
184
202
  */
@@ -201,6 +219,12 @@ class ToolManager {
201
219
  getPermissionManager() {
202
220
  return this.permissionManager;
203
221
  }
222
+ /**
223
+ * Get the task manager
224
+ */
225
+ getTaskManager() {
226
+ return this.taskManager;
227
+ }
204
228
  }
205
229
  // Export tool registry class and types
206
230
  export { ToolManager };
@@ -1 +1 @@
1
- {"version":3,"file":"GitService.d.ts","sourceRoot":"","sources":["../../src/services/GitService.ts"],"names":[],"mappings":"AAKA,qBAAa,UAAU;IACrB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IASxC;;OAEG;IACG,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IA0BhB;;OAEG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7C,OAAO,CAAC,cAAc;CA6BvB"}
1
+ {"version":3,"file":"GitService.d.ts","sourceRoot":"","sources":["../../src/services/GitService.ts"],"names":[],"mappings":"AAKA,qBAAa,UAAU;IACrB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IASxC;;OAEG;IACG,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IA4BhB;;OAEG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7C,OAAO,CAAC,cAAc;CA6BvB"}
@@ -31,7 +31,9 @@ export class GitService {
31
31
  }
32
32
  try {
33
33
  const refArgs = ref ? `-b "${ref}"` : "--depth 1";
34
- await execAsync(`LC_ALL=C git clone ${refArgs} "${url}" "${targetPath}"`);
34
+ await execAsync(`git clone ${refArgs} "${url}" "${targetPath}"`, {
35
+ env: { ...process.env, LC_ALL: "C" },
36
+ });
35
37
  }
36
38
  catch (error) {
37
39
  throw this.handleGitError(urlOrRepo, error);
@@ -45,7 +47,9 @@ export class GitService {
45
47
  throw new Error("Git is not installed or not found in PATH. Please install Git to use Git/GitHub marketplaces.");
46
48
  }
47
49
  try {
48
- await execAsync(`LC_ALL=C git -C "${targetPath}" pull`);
50
+ await execAsync(`git -C "${targetPath}" pull`, {
51
+ env: { ...process.env, LC_ALL: "C" },
52
+ });
49
53
  }
50
54
  catch (error) {
51
55
  throw this.handleGitError(targetPath, error);
@@ -62,11 +62,11 @@ export declare class MarketplaceService {
62
62
  /**
63
63
  * Installs a plugin from a marketplace
64
64
  */
65
- installPlugin(pluginAtMarketplace: string): Promise<InstalledPlugin>;
65
+ installPlugin(pluginAtMarketplace: string, projectPath?: string): Promise<InstalledPlugin>;
66
66
  /**
67
67
  * Uninstalls a plugin
68
68
  */
69
- uninstallPlugin(pluginAtMarketplace: string): Promise<void>;
69
+ uninstallPlugin(pluginAtMarketplace: string, projectPath?: string): Promise<void>;
70
70
  /**
71
71
  * Updates a plugin (uninstall followed by install)
72
72
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MarketplaceService.d.ts","sourceRoot":"","sources":["../../src/services/MarketplaceService.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAGjC;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAMzC;;IAoBF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAoBhE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAa9D;;OAEG;IACG,qBAAqB,CACzB,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;IACG,uBAAuB,CAC3B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAwB/B;;OAEG;IACI,kBAAkB,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM;IAehE;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0F9D;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQrD;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpD;;OAEG;IACG,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CrD;;OAEG;IACG,aAAa,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAsH1E;;OAEG;IACG,eAAe,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BjE;;OAEG;IACG,YAAY,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAI1E"}
1
+ {"version":3,"file":"MarketplaceService.d.ts","sourceRoot":"","sources":["../../src/services/MarketplaceService.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAGjC;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAMzC;;IAoBF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAoBhE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAa9D;;OAEG;IACG,qBAAqB,CACzB,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;IACG,uBAAuB,CAC3B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAwB/B;;OAEG;IACI,kBAAkB,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM;IAehE;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0F9D;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQrD;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpD;;OAEG;IACG,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CrD;;OAEG;IACG,aAAa,CACjB,mBAAmB,EAAE,MAAM,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC;IA0H3B;;OAEG;IACG,eAAe,CACnB,mBAAmB,EAAE,MAAM,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAqChB;;OAEG;IACG,YAAY,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAI1E"}
@@ -253,7 +253,7 @@ export class MarketplaceService {
253
253
  /**
254
254
  * Installs a plugin from a marketplace
255
255
  */
256
- async installPlugin(pluginAtMarketplace) {
256
+ async installPlugin(pluginAtMarketplace, projectPath) {
257
257
  const [pluginName, marketplaceName] = pluginAtMarketplace.split("@");
258
258
  if (!pluginName || !marketplaceName) {
259
259
  throw new Error("Invalid plugin format. Use name@marketplace");
@@ -315,12 +315,15 @@ export class MarketplaceService {
315
315
  await fs.mkdir(path.dirname(cachePath), { recursive: true });
316
316
  await fs.rename(tmpPluginDir, cachePath);
317
317
  const installedRegistry = await this.getInstalledPlugins();
318
- const existingIndex = installedRegistry.plugins.findIndex((p) => p.name === pluginName && p.marketplace === marketplaceName);
318
+ const existingIndex = installedRegistry.plugins.findIndex((p) => p.name === pluginName &&
319
+ p.marketplace === marketplaceName &&
320
+ p.projectPath === projectPath);
319
321
  const installedPlugin = {
320
322
  name: pluginName,
321
323
  marketplace: marketplaceName,
322
324
  version,
323
325
  cachePath,
326
+ projectPath,
324
327
  };
325
328
  if (existingIndex >= 0) {
326
329
  installedRegistry.plugins[existingIndex] = installedPlugin;
@@ -345,24 +348,28 @@ export class MarketplaceService {
345
348
  /**
346
349
  * Uninstalls a plugin
347
350
  */
348
- async uninstallPlugin(pluginAtMarketplace) {
351
+ async uninstallPlugin(pluginAtMarketplace, projectPath) {
349
352
  const [pluginName, marketplaceName] = pluginAtMarketplace.split("@");
350
353
  if (!pluginName || !marketplaceName) {
351
354
  throw new Error("Invalid plugin format. Use name@marketplace");
352
355
  }
353
356
  const installedRegistry = await this.getInstalledPlugins();
354
- const pluginIndex = installedRegistry.plugins.findIndex((p) => p.name === pluginName && p.marketplace === marketplaceName);
357
+ const pluginIndex = installedRegistry.plugins.findIndex((p) => p.name === pluginName &&
358
+ p.marketplace === marketplaceName &&
359
+ p.projectPath === projectPath);
355
360
  if (pluginIndex === -1) {
356
- throw new Error(`Plugin ${pluginName}@${marketplaceName} is not installed`);
361
+ throw new Error(`Plugin ${pluginName}@${marketplaceName} is not installed${projectPath ? ` for project ${projectPath}` : ""}`);
357
362
  }
358
- const plugin = installedRegistry.plugins[pluginIndex];
359
- // Remove cached files
360
- if (existsSync(plugin.cachePath)) {
361
- await fs.rm(plugin.cachePath, { recursive: true, force: true });
362
- }
363
- // Remove from registry
363
+ const pluginToRemove = installedRegistry.plugins[pluginIndex];
364
+ // Remove from registry first
364
365
  installedRegistry.plugins.splice(pluginIndex, 1);
365
366
  await this.saveInstalledPlugins(installedRegistry);
367
+ // Check if any other project is still using this same cache path
368
+ const isStillReferenced = installedRegistry.plugins.some((p) => p.cachePath === pluginToRemove.cachePath);
369
+ // Only remove cached files if no other references exist
370
+ if (!isStillReferenced && existsSync(pluginToRemove.cachePath)) {
371
+ await fs.rm(pluginToRemove.cachePath, { recursive: true, force: true });
372
+ }
366
373
  }
367
374
  /**
368
375
  * Updates a plugin (uninstall followed by install)
@@ -7,6 +7,6 @@ export declare class MemoryRuleService {
7
7
  /**
8
8
  * Determines if a rule matches any of the given file paths using minimatch.
9
9
  */
10
- isRuleActive(rule: MemoryRule, filesInContext: string[]): boolean;
10
+ isRuleActive(rule: MemoryRule, filesInContext: string[], workdir?: string): boolean;
11
11
  }
12
12
  //# sourceMappingURL=MemoryRuleService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryRuleService.d.ts","sourceRoot":"","sources":["../../src/services/MemoryRuleService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,wBAAwB,CAAC;AAE7E,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,SAAS,CACP,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,GAAG,MAAM,GACzB,UAAU;IAgCb;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO;CAWlE"}
1
+ {"version":3,"file":"MemoryRuleService.d.ts","sourceRoot":"","sources":["../../src/services/MemoryRuleService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,wBAAwB,CAAC;AAE7E,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,SAAS,CACP,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,GAAG,MAAM,GACzB,UAAU;IAgCb;;OAEG;IACH,YAAY,CACV,IAAI,EAAE,UAAU,EAChB,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO;CAkBX"}
@@ -1,4 +1,5 @@
1
1
  import { minimatch } from "minimatch";
2
+ import * as path from "node:path";
2
3
  import { parseFrontmatter } from "../utils/markdownParser.js";
3
4
  export class MemoryRuleService {
4
5
  /**
@@ -35,10 +36,20 @@ export class MemoryRuleService {
35
36
  /**
36
37
  * Determines if a rule matches any of the given file paths using minimatch.
37
38
  */
38
- isRuleActive(rule, filesInContext) {
39
+ isRuleActive(rule, filesInContext, workdir) {
39
40
  if (!rule.metadata.paths || rule.metadata.paths.length === 0) {
40
41
  return true;
41
42
  }
42
- return filesInContext.some((filePath) => rule.metadata.paths.some((pattern) => minimatch(filePath, pattern, { dot: true })));
43
+ return filesInContext.some((filePath) => {
44
+ // Normalize path relative to workdir if it's an absolute path
45
+ let normalizedPath = filePath;
46
+ if (workdir && path.isAbsolute(filePath)) {
47
+ normalizedPath = path.relative(workdir, filePath);
48
+ }
49
+ return rule.metadata.paths.some((pattern) => {
50
+ const isMatch = minimatch(normalizedPath, pattern, { dot: true });
51
+ return isMatch;
52
+ });
53
+ });
43
54
  }
44
55
  }
@@ -8,7 +8,6 @@ export interface CallAgentOptions {
8
8
  messages: ChatCompletionMessageParam[];
9
9
  sessionId?: string;
10
10
  abortSignal?: AbortSignal;
11
- memory?: string;
12
11
  workdir: string;
13
12
  tools?: ChatCompletionFunctionTool[];
14
13
  model?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"aiService.d.ts","sourceRoot":"","sources":["../../src/services/aiService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAGL,0BAA0B,EAC1B,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAwHvC,MAAM,WAAW,gBAAgB;IAE/B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IAGzB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;KACnD,KAAK,IAAI,CAAC;IACX,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EACV,MAAM,GACN,QAAQ,GACR,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,IAAI,CAAC;IACT,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAqU1B;AA4OD,MAAM,WAAW,uBAAuB;IAEtC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IAGzB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAiKjC"}
1
+ {"version":3,"file":"aiService.d.ts","sourceRoot":"","sources":["../../src/services/aiService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAGL,0BAA0B,EAC1B,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AA+FvC,MAAM,WAAW,gBAAgB;IAE/B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IAGzB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;KACnD,KAAK,IAAI,CAAC;IACX,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EACV,MAAM,GACN,QAAQ,GACR,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,IAAI,CAAC;IACT,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CA+S1B;AA4OD,MAAM,WAAW,uBAAuB;IAEtC,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IAGzB,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAmEjC"}