mcp-agent-foundry 1.3.0 → 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 +350 -52
  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,177 @@
1
+ /**
2
+ * Background Task Runner
3
+ *
4
+ * Manages background task execution for non-blocking agent invocations
5
+ * and pipeline steps. Supports concurrency limits, cancellation,
6
+ * progress tracking, and event-based notifications.
7
+ */
8
+ import { EventEmitter } from 'events';
9
+ import type { Logger } from '../observability/logger.js';
10
+ import type { BackgroundTask, BackgroundTaskConfig, BackgroundTaskType, SubmitTaskOptions, SerializedBackgroundTask } from './types.js';
11
+ /**
12
+ * Manages background task execution with concurrency control.
13
+ *
14
+ * Features:
15
+ * - Queue-based execution with configurable concurrency
16
+ * - Task cancellation via AbortController
17
+ * - Progress tracking and notifications
18
+ * - Event emission for task lifecycle
19
+ * - Automatic cleanup of old tasks
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const runner = new BackgroundTaskRunner({ maxConcurrent: 3 }, logger);
24
+ *
25
+ * // Submit a background task
26
+ * const taskId = await runner.run(
27
+ * 'agent_invocation',
28
+ * 'Review authentication code',
29
+ * async () => {
30
+ * return await orchestrator.executeWithFailover('reviewer', messages, options);
31
+ * },
32
+ * { role: 'reviewer', provider: 'openai' }
33
+ * );
34
+ *
35
+ * // Check status later
36
+ * const task = runner.getTask(taskId);
37
+ * if (task?.status === 'completed') {
38
+ * console.log('Result:', task.result);
39
+ * }
40
+ *
41
+ * // Or wait for completion
42
+ * const completed = await runner.waitFor(taskId, 60000);
43
+ * ```
44
+ */
45
+ export declare class BackgroundTaskRunner extends EventEmitter {
46
+ private readonly tasks;
47
+ private readonly queue;
48
+ private runningCount;
49
+ private readonly config;
50
+ private readonly logger;
51
+ private isEnabled;
52
+ private isShuttingDown;
53
+ constructor(config: Partial<BackgroundTaskConfig>, logger: Logger);
54
+ /**
55
+ * Check if background tasks are enabled.
56
+ * Respects AGENT_FOUNDRY_DISABLE_BACKGROUND_TASKS env var.
57
+ */
58
+ isBackgroundEnabled(): boolean;
59
+ /**
60
+ * Enable or disable background task execution.
61
+ */
62
+ setEnabled(enabled: boolean): void;
63
+ /**
64
+ * Submit a task to run in the background.
65
+ * Returns immediately with task ID.
66
+ *
67
+ * @param task - Task definition (without id, status, createdAt)
68
+ * @returns Task ID for tracking
69
+ */
70
+ submit(task: Omit<BackgroundTask, 'id' | 'status' | 'createdAt'>): string;
71
+ /**
72
+ * Execute a function as a background task.
73
+ *
74
+ * @param type - Task type
75
+ * @param description - Task description
76
+ * @param fn - Async function to execute
77
+ * @param options - Additional options
78
+ * @returns Task ID for tracking
79
+ */
80
+ run<T>(type: BackgroundTaskType, description: string, fn: () => Promise<T>, options?: SubmitTaskOptions): Promise<string>;
81
+ /**
82
+ * Get task by ID.
83
+ */
84
+ getTask(taskId: string): BackgroundTask | undefined;
85
+ /**
86
+ * Get all tasks.
87
+ */
88
+ getAllTasks(): BackgroundTask[];
89
+ /**
90
+ * Get running tasks.
91
+ */
92
+ getRunningTasks(): BackgroundTask[];
93
+ /**
94
+ * Get pending tasks in queue.
95
+ */
96
+ getPendingTasks(): BackgroundTask[];
97
+ /**
98
+ * Get completed tasks.
99
+ */
100
+ getCompletedTasks(): BackgroundTask[];
101
+ /**
102
+ * Cancel a running or pending task.
103
+ *
104
+ * @param taskId - ID of task to cancel
105
+ * @returns true if task was cancelled, false if not found or already complete
106
+ */
107
+ cancel(taskId: string): boolean;
108
+ /**
109
+ * Wait for a task to complete.
110
+ *
111
+ * @param taskId - ID of task to wait for
112
+ * @param timeout - Maximum time to wait in ms (default: 60000)
113
+ * @returns The completed task
114
+ * @throws Error if task not found or timeout exceeded
115
+ */
116
+ waitFor(taskId: string, timeout?: number): Promise<BackgroundTask>;
117
+ /**
118
+ * Update task progress.
119
+ *
120
+ * @param taskId - ID of task to update
121
+ * @param progress - Progress percentage (0-100)
122
+ * @param message - Optional progress message
123
+ */
124
+ updateProgress(taskId: string, progress: number, message?: string): void;
125
+ /**
126
+ * Clean up completed/failed tasks older than specified age.
127
+ *
128
+ * @param maxAgeMs - Maximum age in ms (default: 1 hour)
129
+ * @returns Number of tasks cleaned up
130
+ */
131
+ cleanup(maxAgeMs?: number): number;
132
+ /**
133
+ * Shutdown the runner - cancel pending tasks and wait for running tasks.
134
+ *
135
+ * @param timeout - Maximum time to wait for running tasks in ms (default: 30000)
136
+ */
137
+ shutdown(timeout?: number): Promise<void>;
138
+ /**
139
+ * Get statistics about the task runner.
140
+ */
141
+ getStats(): {
142
+ pending: number;
143
+ running: number;
144
+ completed: number;
145
+ failed: number;
146
+ cancelled: number;
147
+ total: number;
148
+ queueLength: number;
149
+ maxConcurrent: number;
150
+ };
151
+ /**
152
+ * Serialize tasks for persistence.
153
+ * Only serializes metadata, not results or errors.
154
+ */
155
+ serializeTasks(): SerializedBackgroundTask[];
156
+ /**
157
+ * Process the task queue, starting tasks up to maxConcurrent.
158
+ */
159
+ private processQueue;
160
+ /**
161
+ * Execute a single task.
162
+ */
163
+ private executeTask;
164
+ /**
165
+ * Mark a task as completed.
166
+ */
167
+ private markCompleted;
168
+ /**
169
+ * Mark a task as failed.
170
+ */
171
+ private markFailed;
172
+ /**
173
+ * Send a notification if enabled.
174
+ */
175
+ private notify;
176
+ }
177
+ //# sourceMappingURL=task-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-runner.d.ts","sourceRoot":"","sources":["../../src/background/task-runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EAEpB,kBAAkB,EAGlB,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAwBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAChE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,cAAc,CAAkB;gBAE5B,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM;IAejE;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAQ9B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKlC;;;;;;OAMG;IACH,MAAM,CACJ,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAC,GACxD,MAAM;IAqCT;;;;;;;;OAQG;IACG,GAAG,CAAC,CAAC,EACT,IAAI,EAAE,kBAAkB,EACxB,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC;IA0BlB;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAInD;;OAEG;IACH,WAAW,IAAI,cAAc,EAAE;IAI/B;;OAEG;IACH,eAAe,IAAI,cAAc,EAAE;IAInC;;OAEG;IACH,eAAe,IAAI,cAAc,EAAE;IAInC;;OAEG;IACH,iBAAiB,IAAI,cAAc,EAAE;IAMrC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAsC/B;;;;;;;OAOG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAoD/E;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAoBxE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,GAAE,MAA+B,GAAG,MAAM;IAsB1D;;;;OAIG;IACG,QAAQ,CAAC,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtD;;OAEG;IACH,QAAQ,IAAI;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;KACvB;IAcD;;;OAGG;IACH,cAAc,IAAI,wBAAwB,EAAE;IAuB5C;;OAEG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;YACW,WAAW;IAqEzB;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,OAAO,CAAC,UAAU;IA4BlB;;OAEG;IACH,OAAO,CAAC,MAAM;CAef"}