mcp-agent-foundry 1.3.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +232 -1
  2. package/dist/background/index.d.ts +33 -0
  3. package/dist/background/index.d.ts.map +1 -0
  4. package/dist/background/index.js +33 -0
  5. package/dist/background/index.js.map +1 -0
  6. package/dist/background/task-runner.d.ts +177 -0
  7. package/dist/background/task-runner.d.ts.map +1 -0
  8. package/dist/background/task-runner.js +551 -0
  9. package/dist/background/task-runner.js.map +1 -0
  10. package/dist/background/types.d.ts +135 -0
  11. package/dist/background/types.d.ts.map +1 -0
  12. package/dist/background/types.js +8 -0
  13. package/dist/background/types.js.map +1 -0
  14. package/dist/failover/health-tracker.d.ts +81 -1
  15. package/dist/failover/health-tracker.d.ts.map +1 -1
  16. package/dist/failover/health-tracker.js +229 -1
  17. package/dist/failover/health-tracker.js.map +1 -1
  18. package/dist/hooks/hook-executor.d.ts +77 -0
  19. package/dist/hooks/hook-executor.d.ts.map +1 -0
  20. package/dist/hooks/hook-executor.js +308 -0
  21. package/dist/hooks/hook-executor.js.map +1 -0
  22. package/dist/hooks/hook-manager.d.ts +140 -0
  23. package/dist/hooks/hook-manager.d.ts.map +1 -0
  24. package/dist/hooks/hook-manager.js +520 -0
  25. package/dist/hooks/hook-manager.js.map +1 -0
  26. package/dist/hooks/index.d.ts +10 -0
  27. package/dist/hooks/index.d.ts.map +1 -0
  28. package/dist/hooks/index.js +10 -0
  29. package/dist/hooks/index.js.map +1 -0
  30. package/dist/hooks/types.d.ts +221 -0
  31. package/dist/hooks/types.d.ts.map +1 -0
  32. package/dist/hooks/types.js +31 -0
  33. package/dist/hooks/types.js.map +1 -0
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/mcp/auto-mode.d.ts +221 -0
  37. package/dist/mcp/auto-mode.d.ts.map +1 -0
  38. package/dist/mcp/auto-mode.js +436 -0
  39. package/dist/mcp/auto-mode.js.map +1 -0
  40. package/dist/mcp/index.d.ts +14 -0
  41. package/dist/mcp/index.d.ts.map +1 -0
  42. package/dist/mcp/index.js +22 -0
  43. package/dist/mcp/index.js.map +1 -0
  44. package/dist/mcp/tools/tasks/delete-task.d.ts +25 -0
  45. package/dist/mcp/tools/tasks/delete-task.d.ts.map +1 -0
  46. package/dist/mcp/tools/tasks/delete-task.js +148 -0
  47. package/dist/mcp/tools/tasks/delete-task.js.map +1 -0
  48. package/dist/mcp/tools/tasks/index.d.ts +2 -0
  49. package/dist/mcp/tools/tasks/index.d.ts.map +1 -1
  50. package/dist/mcp/tools/tasks/index.js +6 -0
  51. package/dist/mcp/tools/tasks/index.js.map +1 -1
  52. package/dist/observability/debug-logger.d.ts +209 -0
  53. package/dist/observability/debug-logger.d.ts.map +1 -0
  54. package/dist/observability/debug-logger.js +430 -0
  55. package/dist/observability/debug-logger.js.map +1 -0
  56. package/dist/observability/index.d.ts +12 -0
  57. package/dist/observability/index.d.ts.map +1 -0
  58. package/dist/observability/index.js +12 -0
  59. package/dist/observability/index.js.map +1 -0
  60. package/dist/observability/logger.d.ts +180 -0
  61. package/dist/observability/logger.d.ts.map +1 -1
  62. package/dist/observability/logger.js +158 -0
  63. package/dist/observability/logger.js.map +1 -1
  64. package/dist/router/context-manager.d.ts +214 -1
  65. package/dist/router/context-manager.d.ts.map +1 -1
  66. package/dist/router/context-manager.js +759 -2
  67. package/dist/router/context-manager.js.map +1 -1
  68. package/dist/router/context-types.d.ts +182 -0
  69. package/dist/router/context-types.d.ts.map +1 -0
  70. package/dist/router/context-types.js +8 -0
  71. package/dist/router/context-types.js.map +1 -0
  72. package/dist/server.d.ts +41 -0
  73. package/dist/server.d.ts.map +1 -1
  74. package/dist/server.js +165 -0
  75. package/dist/server.js.map +1 -1
  76. package/dist/skills/hot-reloader.d.ts +104 -0
  77. package/dist/skills/hot-reloader.d.ts.map +1 -0
  78. package/dist/skills/hot-reloader.js +314 -0
  79. package/dist/skills/hot-reloader.js.map +1 -0
  80. package/dist/skills/index.d.ts +14 -0
  81. package/dist/skills/index.d.ts.map +1 -0
  82. package/dist/skills/index.js +16 -0
  83. package/dist/skills/index.js.map +1 -0
  84. package/dist/skills/skill-executor.d.ts +96 -0
  85. package/dist/skills/skill-executor.d.ts.map +1 -0
  86. package/dist/skills/skill-executor.js +289 -0
  87. package/dist/skills/skill-executor.js.map +1 -0
  88. package/dist/skills/skill-loader.d.ts +147 -0
  89. package/dist/skills/skill-loader.d.ts.map +1 -0
  90. package/dist/skills/skill-loader.js +579 -0
  91. package/dist/skills/skill-loader.js.map +1 -0
  92. package/dist/skills/types.d.ts +198 -0
  93. package/dist/skills/types.d.ts.map +1 -0
  94. package/dist/skills/types.js +21 -0
  95. package/dist/skills/types.js.map +1 -0
  96. package/dist/tasks/coordinator.d.ts +22 -1
  97. package/dist/tasks/coordinator.d.ts.map +1 -1
  98. package/dist/tasks/coordinator.js +83 -0
  99. package/dist/tasks/coordinator.js.map +1 -1
  100. package/dist/tasks/state-coordinator.d.ts +19 -0
  101. package/dist/tasks/state-coordinator.d.ts.map +1 -1
  102. package/dist/tasks/state-coordinator.js +40 -0
  103. package/dist/tasks/state-coordinator.js.map +1 -1
  104. package/package.json +1 -1
@@ -0,0 +1,436 @@
1
+ /**
2
+ * MCP Auto Mode
3
+ *
4
+ * Automatically defers tool descriptions when they would exceed a configurable
5
+ * percentage of the context window. This prevents context overflow in long
6
+ * sessions with many tools.
7
+ *
8
+ * Based on Claude Code v2.1.7's MCP Auto Mode feature.
9
+ *
10
+ * Key features:
11
+ * - Configurable percentage threshold for tool descriptions
12
+ * - Priority-based tool selection
13
+ * - Always-include and always-defer lists
14
+ * - On-demand fetching of deferred tool descriptions
15
+ * - Force-include override for user requests
16
+ */
17
+ // ============================================================================
18
+ // Default Configuration
19
+ // ============================================================================
20
+ const DEFAULT_CONFIG = {
21
+ enabled: true,
22
+ maxToolDescriptionPercent: 10,
23
+ minToolsToInclude: 5,
24
+ alwaysInclude: [],
25
+ alwaysDefer: [],
26
+ };
27
+ // ============================================================================
28
+ // MCPAutoMode Class
29
+ // ============================================================================
30
+ /**
31
+ * MCP Auto Mode - Intelligent tool description management
32
+ *
33
+ * Automatically defers tool descriptions that would exceed context limits.
34
+ * This is based on Claude Code v2.1.7's MCP Auto Mode feature.
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const autoMode = new MCPAutoMode(
39
+ * { maxToolDescriptionPercent: 15 },
40
+ * contextManager,
41
+ * logger
42
+ * );
43
+ *
44
+ * // Register tools
45
+ * autoMode.registerTool({
46
+ * name: 'invoke_agent',
47
+ * description: 'Invoke a specialized agent...',
48
+ * estimatedTokens: 150,
49
+ * priority: 10,
50
+ * });
51
+ *
52
+ * // Before each request, process tools
53
+ * const contextState = contextManager.getState('openai', 'gpt-4o', messages);
54
+ * const result = autoMode.processForRequest(contextState);
55
+ *
56
+ * // Use result.includedTools for this request
57
+ * if (result.hadDeferrals) {
58
+ * console.log(result.deferralMessage);
59
+ * }
60
+ * ```
61
+ */
62
+ export class MCPAutoMode {
63
+ config;
64
+ contextManager;
65
+ logger;
66
+ toolRegistry = new Map();
67
+ forcedIncludes = new Set();
68
+ /**
69
+ * Create a new MCPAutoMode instance.
70
+ *
71
+ * @param config - Partial configuration (merged with defaults)
72
+ * @param contextManager - ContextManager for token estimation
73
+ * @param logger - Logger instance for observability
74
+ */
75
+ constructor(config, contextManager, logger) {
76
+ this.config = {
77
+ ...DEFAULT_CONFIG,
78
+ ...config,
79
+ alwaysInclude: config.alwaysInclude ?? DEFAULT_CONFIG.alwaysInclude,
80
+ alwaysDefer: config.alwaysDefer ?? DEFAULT_CONFIG.alwaysDefer,
81
+ };
82
+ this.contextManager = contextManager;
83
+ this.logger = logger;
84
+ this.logger.debug('MCPAutoMode initialized', {
85
+ enabled: this.config.enabled,
86
+ maxToolDescriptionPercent: this.config.maxToolDescriptionPercent,
87
+ minToolsToInclude: this.config.minToolsToInclude,
88
+ alwaysIncludeCount: this.config.alwaysInclude?.length ?? 0,
89
+ alwaysDeferCount: this.config.alwaysDefer?.length ?? 0,
90
+ });
91
+ }
92
+ // ==========================================================================
93
+ // Tool Registration
94
+ // ==========================================================================
95
+ /**
96
+ * Register a tool with its description.
97
+ *
98
+ * @param tool - Tool descriptor to register
99
+ */
100
+ registerTool(tool) {
101
+ // Validate tool
102
+ if (!tool.name) {
103
+ this.logger.warn('Attempted to register tool without name', { tool });
104
+ return;
105
+ }
106
+ // Set defaults
107
+ const normalizedTool = {
108
+ ...tool,
109
+ priority: tool.priority ?? 0,
110
+ deferred: false,
111
+ estimatedTokens: tool.estimatedTokens > 0
112
+ ? tool.estimatedTokens
113
+ : this.estimateToolTokens(tool),
114
+ };
115
+ this.toolRegistry.set(tool.name, normalizedTool);
116
+ this.logger.debug('Tool registered', {
117
+ name: tool.name,
118
+ estimatedTokens: normalizedTool.estimatedTokens,
119
+ priority: normalizedTool.priority,
120
+ });
121
+ }
122
+ /**
123
+ * Unregister a tool.
124
+ *
125
+ * @param name - Name of tool to unregister
126
+ */
127
+ unregisterTool(name) {
128
+ if (this.toolRegistry.has(name)) {
129
+ this.toolRegistry.delete(name);
130
+ this.forcedIncludes.delete(name);
131
+ this.logger.debug('Tool unregistered', { name });
132
+ }
133
+ }
134
+ /**
135
+ * Get all registered tools.
136
+ *
137
+ * @returns Array of all tool descriptors
138
+ */
139
+ getAllTools() {
140
+ return Array.from(this.toolRegistry.values());
141
+ }
142
+ /**
143
+ * Calculate total tokens for all tool descriptions.
144
+ *
145
+ * @returns Total estimated tokens
146
+ */
147
+ getTotalToolTokens() {
148
+ let total = 0;
149
+ for (const tool of this.toolRegistry.values()) {
150
+ total += tool.estimatedTokens;
151
+ }
152
+ return total;
153
+ }
154
+ // ==========================================================================
155
+ // Request Processing
156
+ // ==========================================================================
157
+ /**
158
+ * Process tools for a request given current context state.
159
+ * Returns which tools to include and which to defer.
160
+ *
161
+ * @param contextState - Current context state from ContextManager
162
+ * @param requestedTools - Optional list of specifically requested tool names
163
+ * @returns AutoModeResult with included/deferred tools
164
+ */
165
+ processForRequest(contextState, requestedTools) {
166
+ // If auto mode is disabled, include all tools
167
+ if (!this.config.enabled) {
168
+ const allTools = Array.from(this.toolRegistry.keys());
169
+ return {
170
+ includedTools: allTools,
171
+ deferredTools: [],
172
+ tokensSaved: 0,
173
+ hadDeferrals: false,
174
+ };
175
+ }
176
+ // Calculate how many tokens we can use for tools
177
+ const maxToolTokens = Math.floor(contextState.maxTokens * (this.config.maxToolDescriptionPercent / 100));
178
+ this.logger.debug('Processing tools for request', {
179
+ maxToolTokens,
180
+ totalRegisteredTools: this.toolRegistry.size,
181
+ requestedToolsCount: requestedTools?.length ?? 0,
182
+ });
183
+ // Sort tools by priority
184
+ const sortedTools = this.getSortedTools(requestedTools);
185
+ // Greedily include tools until we hit the limit
186
+ const included = [];
187
+ const deferred = [];
188
+ let usedTokens = 0;
189
+ for (const tool of sortedTools) {
190
+ // Always include first
191
+ if (this.config.alwaysInclude?.includes(tool.name)) {
192
+ included.push(tool.name);
193
+ usedTokens += tool.estimatedTokens;
194
+ tool.deferred = false;
195
+ continue;
196
+ }
197
+ // Always defer
198
+ if (this.config.alwaysDefer?.includes(tool.name) && !this.forcedIncludes.has(tool.name)) {
199
+ deferred.push(tool.name);
200
+ tool.deferred = true;
201
+ continue;
202
+ }
203
+ // Forced includes from user override
204
+ if (this.forcedIncludes.has(tool.name)) {
205
+ included.push(tool.name);
206
+ usedTokens += tool.estimatedTokens;
207
+ tool.deferred = false;
208
+ continue;
209
+ }
210
+ // Check if we have room (always include minimum tools)
211
+ if (usedTokens + tool.estimatedTokens <= maxToolTokens ||
212
+ included.length < this.config.minToolsToInclude) {
213
+ included.push(tool.name);
214
+ usedTokens += tool.estimatedTokens;
215
+ tool.deferred = false;
216
+ }
217
+ else {
218
+ deferred.push(tool.name);
219
+ tool.deferred = true;
220
+ }
221
+ }
222
+ // Calculate tokens saved
223
+ const tokensSaved = this.calculateTokensSaved(deferred);
224
+ const result = {
225
+ includedTools: included,
226
+ deferredTools: deferred,
227
+ tokensSaved,
228
+ hadDeferrals: deferred.length > 0,
229
+ deferralMessage: deferred.length > 0
230
+ ? `${deferred.length} tool${deferred.length !== 1 ? 's' : ''} deferred to save context (${tokensSaved} tokens saved). Use tool explicitly to include.`
231
+ : undefined,
232
+ };
233
+ this.logger.debug('Tool processing completed', {
234
+ includedCount: included.length,
235
+ deferredCount: deferred.length,
236
+ tokensSaved,
237
+ usedTokens,
238
+ maxToolTokens,
239
+ });
240
+ return result;
241
+ }
242
+ /**
243
+ * Get deferred tool description on demand.
244
+ * (When user explicitly requests a deferred tool)
245
+ *
246
+ * @param name - Name of deferred tool
247
+ * @returns Tool descriptor if found, undefined otherwise
248
+ */
249
+ getDeferredToolDescription(name) {
250
+ const tool = this.toolRegistry.get(name);
251
+ if (tool?.deferred) {
252
+ this.logger.debug('Fetching deferred tool description', { name });
253
+ return tool;
254
+ }
255
+ return undefined;
256
+ }
257
+ /**
258
+ * Check if a specific tool is currently deferred.
259
+ *
260
+ * @param name - Tool name to check
261
+ * @returns True if tool is deferred
262
+ */
263
+ isDeferred(name) {
264
+ return this.toolRegistry.get(name)?.deferred ?? false;
265
+ }
266
+ /**
267
+ * Force include a deferred tool (user override).
268
+ * This tool will be included in subsequent requests until reset.
269
+ *
270
+ * @param name - Tool name to force include
271
+ */
272
+ forceInclude(name) {
273
+ if (this.toolRegistry.has(name)) {
274
+ this.forcedIncludes.add(name);
275
+ const tool = this.toolRegistry.get(name);
276
+ if (tool) {
277
+ tool.deferred = false;
278
+ }
279
+ this.logger.debug('Tool force-included', { name });
280
+ }
281
+ else {
282
+ this.logger.warn('Attempted to force-include unknown tool', { name });
283
+ }
284
+ }
285
+ /**
286
+ * Reset all deferrals and force-includes.
287
+ */
288
+ resetDeferrals() {
289
+ this.forcedIncludes.clear();
290
+ for (const tool of this.toolRegistry.values()) {
291
+ tool.deferred = false;
292
+ }
293
+ this.logger.debug('Deferrals reset');
294
+ }
295
+ /**
296
+ * Mark a tool as recently used (for recency-based prioritization).
297
+ *
298
+ * @param name - Tool name that was used
299
+ */
300
+ markToolUsed(name) {
301
+ const tool = this.toolRegistry.get(name);
302
+ if (tool) {
303
+ tool.lastUsedAt = Date.now();
304
+ }
305
+ }
306
+ // ==========================================================================
307
+ // Configuration
308
+ // ==========================================================================
309
+ /**
310
+ * Get current configuration.
311
+ *
312
+ * @returns Current MCPAutoModeConfig
313
+ */
314
+ getConfig() {
315
+ return { ...this.config };
316
+ }
317
+ /**
318
+ * Update configuration.
319
+ *
320
+ * @param config - Partial configuration to merge
321
+ */
322
+ updateConfig(config) {
323
+ this.config = {
324
+ ...this.config,
325
+ ...config,
326
+ alwaysInclude: config.alwaysInclude ?? this.config.alwaysInclude,
327
+ alwaysDefer: config.alwaysDefer ?? this.config.alwaysDefer,
328
+ };
329
+ this.logger.debug('MCPAutoMode config updated', {
330
+ enabled: this.config.enabled,
331
+ maxToolDescriptionPercent: this.config.maxToolDescriptionPercent,
332
+ minToolsToInclude: this.config.minToolsToInclude,
333
+ });
334
+ }
335
+ // ==========================================================================
336
+ // Private Methods
337
+ // ==========================================================================
338
+ /**
339
+ * Sort tools by priority for inclusion decisions.
340
+ *
341
+ * Priority order:
342
+ * 1. Tools in alwaysInclude
343
+ * 2. Tools explicitly requested for this call
344
+ * 3. Tools that were force-included by user
345
+ * 4. Recently used tools
346
+ * 5. Tools with higher priority scores
347
+ * 6. Other tools
348
+ * 7. Tools in alwaysDefer (lowest priority)
349
+ */
350
+ getSortedTools(requestedTools) {
351
+ const tools = Array.from(this.toolRegistry.values());
352
+ const requestedSet = new Set(requestedTools ?? []);
353
+ const alwaysIncludeSet = new Set(this.config.alwaysInclude ?? []);
354
+ const alwaysDeferSet = new Set(this.config.alwaysDefer ?? []);
355
+ const now = Date.now();
356
+ return tools.sort((a, b) => {
357
+ // 1. alwaysInclude tools first
358
+ const aAlwaysInclude = alwaysIncludeSet.has(a.name) ? 1 : 0;
359
+ const bAlwaysInclude = alwaysIncludeSet.has(b.name) ? 1 : 0;
360
+ if (aAlwaysInclude !== bAlwaysInclude) {
361
+ return bAlwaysInclude - aAlwaysInclude;
362
+ }
363
+ // 2. Explicitly requested tools
364
+ const aRequested = requestedSet.has(a.name) ? 1 : 0;
365
+ const bRequested = requestedSet.has(b.name) ? 1 : 0;
366
+ if (aRequested !== bRequested) {
367
+ return bRequested - aRequested;
368
+ }
369
+ // 3. Force-included tools
370
+ const aForced = this.forcedIncludes.has(a.name) ? 1 : 0;
371
+ const bForced = this.forcedIncludes.has(b.name) ? 1 : 0;
372
+ if (aForced !== bForced) {
373
+ return bForced - aForced;
374
+ }
375
+ // 4. Recently used tools (within last 5 minutes)
376
+ const recentThreshold = 5 * 60 * 1000; // 5 minutes
377
+ const aRecent = a.lastUsedAt && (now - a.lastUsedAt) < recentThreshold ? 1 : 0;
378
+ const bRecent = b.lastUsedAt && (now - b.lastUsedAt) < recentThreshold ? 1 : 0;
379
+ if (aRecent !== bRecent) {
380
+ return bRecent - aRecent;
381
+ }
382
+ // 5. Priority score (higher = more important)
383
+ const priorityDiff = (b.priority ?? 0) - (a.priority ?? 0);
384
+ if (priorityDiff !== 0) {
385
+ return priorityDiff;
386
+ }
387
+ // 6. alwaysDefer tools last
388
+ const aAlwaysDefer = alwaysDeferSet.has(a.name) ? 1 : 0;
389
+ const bAlwaysDefer = alwaysDeferSet.has(b.name) ? 1 : 0;
390
+ if (aAlwaysDefer !== bAlwaysDefer) {
391
+ return aAlwaysDefer - bAlwaysDefer;
392
+ }
393
+ // 7. Alphabetical as tie-breaker for consistency
394
+ return a.name.localeCompare(b.name);
395
+ });
396
+ }
397
+ /**
398
+ * Calculate total tokens saved by deferring tools.
399
+ */
400
+ calculateTokensSaved(deferredTools) {
401
+ let total = 0;
402
+ for (const name of deferredTools) {
403
+ const tool = this.toolRegistry.get(name);
404
+ if (tool) {
405
+ total += tool.estimatedTokens;
406
+ }
407
+ }
408
+ return total;
409
+ }
410
+ /**
411
+ * Estimate token count for a tool based on its description.
412
+ * Uses the context manager's estimation logic.
413
+ */
414
+ estimateToolTokens(tool) {
415
+ // Base estimate from description
416
+ const descriptionTokens = this.contextManager.estimateTokens(tool.description);
417
+ // Add overhead for tool schema (name, parameters structure)
418
+ const schemaOverhead = 20;
419
+ return descriptionTokens + schemaOverhead;
420
+ }
421
+ }
422
+ // ============================================================================
423
+ // Factory Function
424
+ // ============================================================================
425
+ /**
426
+ * Create an MCPAutoMode instance.
427
+ *
428
+ * @param config - Partial configuration (merged with defaults)
429
+ * @param contextManager - ContextManager instance
430
+ * @param logger - Logger instance
431
+ * @returns Configured MCPAutoMode instance
432
+ */
433
+ export function createMCPAutoMode(config, contextManager, logger) {
434
+ return new MCPAutoMode(config, contextManager, logger);
435
+ }
436
+ //# sourceMappingURL=auto-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-mode.js","sourceRoot":"","sources":["../../src/mcp/auto-mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * MCP Module Index
3
+ *
4
+ * Exports MCP-related functionality including:
5
+ * - Auto Mode for intelligent tool description management
6
+ * - Tool registration utilities
7
+ * - Transport implementations
8
+ */
9
+ export { MCPAutoMode, createMCPAutoMode, } from './auto-mode.js';
10
+ export type { MCPAutoModeConfig, ToolDescriptor, AutoModeResult, } from './auto-mode.js';
11
+ export { registerTools } from './tools/index.js';
12
+ export { registerInvokeAgentTool, registerCompareAgentsTool, registerCritiquePlanTool, registerDesignFeedbackTool, registerReviewCodeTool, registerWorktreeTools, registerWorktreeManagementTools, registerResolveConflictsTool, registerListWorktreesTool, registerCleanupWorktreesTool, registerGetWorktreeStatusTool, } from './tools/index.js';
13
+ export { createStdioTransport } from './transport/stdio.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EACL,WAAW,EACX,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * MCP Module Index
3
+ *
4
+ * Exports MCP-related functionality including:
5
+ * - Auto Mode for intelligent tool description management
6
+ * - Tool registration utilities
7
+ * - Transport implementations
8
+ */
9
+ // ============================================================================
10
+ // Auto Mode
11
+ // ============================================================================
12
+ export { MCPAutoMode, createMCPAutoMode, } from './auto-mode.js';
13
+ // ============================================================================
14
+ // Tools
15
+ // ============================================================================
16
+ export { registerTools } from './tools/index.js';
17
+ export { registerInvokeAgentTool, registerCompareAgentsTool, registerCritiquePlanTool, registerDesignFeedbackTool, registerReviewCodeTool, registerWorktreeTools, registerWorktreeManagementTools, registerResolveConflictsTool, registerListWorktreesTool, registerCleanupWorktreesTool, registerGetWorktreeStatusTool, } from './tools/index.js';
18
+ // ============================================================================
19
+ // Transport
20
+ // ============================================================================
21
+ export { createStdioTransport } from './transport/stdio.js';
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,OAAO,EACL,WAAW,EACX,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAQxB,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAE1B,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * delete_task MCP Tool
3
+ *
4
+ * Deletes a task from the state coordinator and optionally cleans up
5
+ * any associated worktree resources.
6
+ */
7
+ import { type McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
+ import type { Logger } from "../../../observability/logger.js";
9
+ import type { TaskCoordinator } from "../../../tasks/coordinator.js";
10
+ /**
11
+ * Registers the delete_task tool with the MCP server
12
+ *
13
+ * @param server - MCP server instance
14
+ * @param coordinator - TaskCoordinator for task lifecycle management
15
+ * @param logger - Logger instance for structured logging
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const server = new McpServer({ name: 'agent-foundry', version: '1.0.0' });
20
+ * const coordinator = new TaskCoordinator({ logger });
21
+ * registerDeleteTaskTool(server, coordinator, logger);
22
+ * ```
23
+ */
24
+ export declare function registerDeleteTaskTool(server: McpServer, coordinator: TaskCoordinator, logger: Logger): void;
25
+ //# sourceMappingURL=delete-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-task.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/tasks/delete-task.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,+BAA+B,CAAC;AAsFvF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,eAAe,EAC5B,MAAM,EAAE,MAAM,GACb,IAAI,CAkFN"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * delete_task MCP Tool
3
+ *
4
+ * Deletes a task from the state coordinator and optionally cleans up
5
+ * any associated worktree resources.
6
+ */
7
+ import { z } from "zod";
8
+ // ============================================================================
9
+ // Constants
10
+ // ============================================================================
11
+ /**
12
+ * Tool description for delete_task
13
+ */
14
+ const TOOL_DESCRIPTION = "Delete a task from the state coordinator. " +
15
+ "By default, running tasks cannot be deleted unless force is set to true. " +
16
+ "Optionally cleans up any associated git worktree.";
17
+ // ============================================================================
18
+ // Input Schema
19
+ // ============================================================================
20
+ /**
21
+ * Zod schema shape for delete_task input validation.
22
+ */
23
+ const deleteTaskInputSchemaShape = {
24
+ taskId: z.string().min(1).describe("The task ID to delete"),
25
+ force: z
26
+ .boolean()
27
+ .optional()
28
+ .default(false)
29
+ .describe("Force deletion even if the task is currently running (default: false)"),
30
+ deleteWorktree: z
31
+ .boolean()
32
+ .optional()
33
+ .default(true)
34
+ .describe("Delete the associated worktree if one exists (default: true)"),
35
+ reason: z
36
+ .string()
37
+ .optional()
38
+ .describe("Optional reason for deletion (logged for audit purposes)"),
39
+ };
40
+ // ============================================================================
41
+ // Response Formatter
42
+ // ============================================================================
43
+ /**
44
+ * Formats the task deletion response for MCP text output
45
+ */
46
+ function formatDeleteTaskResponse(taskId, result, reason) {
47
+ if (!result.success) {
48
+ return (`## Task Deletion Failed\n\n` +
49
+ `**Task ID:** ${taskId}\n` +
50
+ `**Error:** ${result.error ?? "Unknown error"}\n`);
51
+ }
52
+ let response = `## Task Deleted Successfully\n\n` +
53
+ `**Task ID:** ${taskId}\n` +
54
+ `**Task Removed:** ${result.taskDeleted ? "Yes" : "No"}\n` +
55
+ `**Worktree Removed:** ${result.worktreeDeleted ? "Yes" : "No"}\n`;
56
+ if (reason) {
57
+ response += `**Reason:** ${reason}\n`;
58
+ }
59
+ return response;
60
+ }
61
+ // ============================================================================
62
+ // Tool Registration
63
+ // ============================================================================
64
+ /**
65
+ * Registers the delete_task tool with the MCP server
66
+ *
67
+ * @param server - MCP server instance
68
+ * @param coordinator - TaskCoordinator for task lifecycle management
69
+ * @param logger - Logger instance for structured logging
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const server = new McpServer({ name: 'agent-foundry', version: '1.0.0' });
74
+ * const coordinator = new TaskCoordinator({ logger });
75
+ * registerDeleteTaskTool(server, coordinator, logger);
76
+ * ```
77
+ */
78
+ export function registerDeleteTaskTool(server, coordinator, logger) {
79
+ // Use type assertion to work around Zod version compatibility issues
80
+ /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
81
+ const inputSchema = deleteTaskInputSchemaShape;
82
+ server.registerTool("delete_task", {
83
+ title: "Delete Task",
84
+ description: TOOL_DESCRIPTION,
85
+ inputSchema,
86
+ },
87
+ /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */
88
+ async (args) => {
89
+ const { taskId, force, deleteWorktree, reason } = args;
90
+ logger.info("delete_task called", {
91
+ taskId,
92
+ force,
93
+ deleteWorktree,
94
+ reason,
95
+ });
96
+ try {
97
+ const result = await coordinator.deleteTask(taskId, {
98
+ force,
99
+ deleteWorktree,
100
+ reason,
101
+ });
102
+ if (result.success) {
103
+ logger.info("delete_task completed", {
104
+ taskId,
105
+ taskDeleted: result.taskDeleted,
106
+ worktreeDeleted: result.worktreeDeleted,
107
+ });
108
+ }
109
+ else {
110
+ logger.warn("delete_task failed", {
111
+ taskId,
112
+ error: result.error,
113
+ });
114
+ }
115
+ return {
116
+ content: [
117
+ {
118
+ type: "text",
119
+ text: formatDeleteTaskResponse(taskId, result, reason),
120
+ },
121
+ ],
122
+ };
123
+ }
124
+ catch (error) {
125
+ const errorMessage = error instanceof Error ? error.message : String(error);
126
+ logger.error("delete_task failed with exception", {
127
+ taskId,
128
+ error: error instanceof Error ? error : undefined,
129
+ errorMessage,
130
+ });
131
+ return {
132
+ content: [
133
+ {
134
+ type: "text",
135
+ text: formatDeleteTaskResponse(taskId, {
136
+ success: false,
137
+ taskDeleted: false,
138
+ worktreeDeleted: false,
139
+ error: errorMessage,
140
+ }, reason),
141
+ },
142
+ ],
143
+ };
144
+ }
145
+ });
146
+ logger.debug("Registered delete_task tool");
147
+ }
148
+ //# sourceMappingURL=delete-task.js.map