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.
- package/README.md +350 -52
- package/dist/background/index.d.ts +33 -0
- package/dist/background/index.d.ts.map +1 -0
- package/dist/background/index.js +33 -0
- package/dist/background/index.js.map +1 -0
- package/dist/background/task-runner.d.ts +177 -0
- package/dist/background/task-runner.d.ts.map +1 -0
- package/dist/background/task-runner.js +551 -0
- package/dist/background/task-runner.js.map +1 -0
- package/dist/background/types.d.ts +135 -0
- package/dist/background/types.d.ts.map +1 -0
- package/dist/background/types.js +8 -0
- package/dist/background/types.js.map +1 -0
- package/dist/failover/health-tracker.d.ts +81 -1
- package/dist/failover/health-tracker.d.ts.map +1 -1
- package/dist/failover/health-tracker.js +229 -1
- package/dist/failover/health-tracker.js.map +1 -1
- package/dist/hooks/hook-executor.d.ts +77 -0
- package/dist/hooks/hook-executor.d.ts.map +1 -0
- package/dist/hooks/hook-executor.js +308 -0
- package/dist/hooks/hook-executor.js.map +1 -0
- package/dist/hooks/hook-manager.d.ts +140 -0
- package/dist/hooks/hook-manager.d.ts.map +1 -0
- package/dist/hooks/hook-manager.js +520 -0
- package/dist/hooks/hook-manager.js.map +1 -0
- package/dist/hooks/index.d.ts +10 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +10 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/types.d.ts +221 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +31 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/mcp/auto-mode.d.ts +221 -0
- package/dist/mcp/auto-mode.d.ts.map +1 -0
- package/dist/mcp/auto-mode.js +436 -0
- package/dist/mcp/auto-mode.js.map +1 -0
- package/dist/mcp/index.d.ts +14 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +22 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/tools/tasks/delete-task.d.ts +25 -0
- package/dist/mcp/tools/tasks/delete-task.d.ts.map +1 -0
- package/dist/mcp/tools/tasks/delete-task.js +148 -0
- package/dist/mcp/tools/tasks/delete-task.js.map +1 -0
- package/dist/mcp/tools/tasks/index.d.ts +2 -0
- package/dist/mcp/tools/tasks/index.d.ts.map +1 -1
- package/dist/mcp/tools/tasks/index.js +6 -0
- package/dist/mcp/tools/tasks/index.js.map +1 -1
- package/dist/observability/debug-logger.d.ts +209 -0
- package/dist/observability/debug-logger.d.ts.map +1 -0
- package/dist/observability/debug-logger.js +430 -0
- package/dist/observability/debug-logger.js.map +1 -0
- package/dist/observability/index.d.ts +12 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +12 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/logger.d.ts +180 -0
- package/dist/observability/logger.d.ts.map +1 -1
- package/dist/observability/logger.js +158 -0
- package/dist/observability/logger.js.map +1 -1
- package/dist/router/context-manager.d.ts +214 -1
- package/dist/router/context-manager.d.ts.map +1 -1
- package/dist/router/context-manager.js +759 -2
- package/dist/router/context-manager.js.map +1 -1
- package/dist/router/context-types.d.ts +182 -0
- package/dist/router/context-types.d.ts.map +1 -0
- package/dist/router/context-types.js +8 -0
- package/dist/router/context-types.js.map +1 -0
- package/dist/server.d.ts +41 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +165 -0
- package/dist/server.js.map +1 -1
- package/dist/skills/hot-reloader.d.ts +104 -0
- package/dist/skills/hot-reloader.d.ts.map +1 -0
- package/dist/skills/hot-reloader.js +314 -0
- package/dist/skills/hot-reloader.js.map +1 -0
- package/dist/skills/index.d.ts +14 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +16 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/skill-executor.d.ts +96 -0
- package/dist/skills/skill-executor.d.ts.map +1 -0
- package/dist/skills/skill-executor.js +289 -0
- package/dist/skills/skill-executor.js.map +1 -0
- package/dist/skills/skill-loader.d.ts +147 -0
- package/dist/skills/skill-loader.d.ts.map +1 -0
- package/dist/skills/skill-loader.js +579 -0
- package/dist/skills/skill-loader.js.map +1 -0
- package/dist/skills/types.d.ts +198 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +21 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tasks/coordinator.d.ts +22 -1
- package/dist/tasks/coordinator.d.ts.map +1 -1
- package/dist/tasks/coordinator.js +83 -0
- package/dist/tasks/coordinator.js.map +1 -1
- package/dist/tasks/state-coordinator.d.ts +19 -0
- package/dist/tasks/state-coordinator.d.ts.map +1 -1
- package/dist/tasks/state-coordinator.js +40 -0
- package/dist/tasks/state-coordinator.js.map +1 -1
- 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"}
|