bunqueue 2.6.64 → 2.6.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/queue/scheduler.d.ts.map +1 -1
- package/dist/client/queue/scheduler.js +24 -6
- package/dist/client/queue/scheduler.js.map +1 -1
- package/dist/domain/types/command.d.ts +8 -0
- package/dist/domain/types/command.d.ts.map +1 -1
- package/dist/domain/types/cron.d.ts +14 -0
- package/dist/domain/types/cron.d.ts.map +1 -1
- package/dist/domain/types/cron.js +2 -0
- package/dist/domain/types/cron.js.map +1 -1
- package/dist/infrastructure/cloud/snapshotCollector.d.ts +20 -0
- package/dist/infrastructure/cloud/snapshotCollector.d.ts.map +1 -1
- package/dist/infrastructure/cloud/snapshotCollector.js +6 -0
- package/dist/infrastructure/cloud/snapshotCollector.js.map +1 -1
- package/dist/infrastructure/cloud/types.d.ts +20 -0
- package/dist/infrastructure/cloud/types.d.ts.map +1 -1
- package/dist/infrastructure/persistence/schema.d.ts +2 -2
- package/dist/infrastructure/persistence/schema.d.ts.map +1 -1
- package/dist/infrastructure/persistence/schema.js +9 -2
- package/dist/infrastructure/persistence/schema.js.map +1 -1
- package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
- package/dist/infrastructure/persistence/sqlite.js +18 -2
- package/dist/infrastructure/persistence/sqlite.js.map +1 -1
- package/dist/infrastructure/persistence/statements.d.ts +2 -0
- package/dist/infrastructure/persistence/statements.d.ts.map +1 -1
- package/dist/infrastructure/persistence/statements.js +2 -2
- package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -1
- package/dist/infrastructure/scheduler/cronScheduler.js +6 -1
- package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -1
- package/dist/infrastructure/server/handlers/cron.d.ts.map +1 -1
- package/dist/infrastructure/server/handlers/cron.js +2 -0
- package/dist/infrastructure/server/handlers/cron.js.map +1 -1
- package/dist/infrastructure/server/httpRouteResources.d.ts.map +1 -1
- package/dist/infrastructure/server/httpRouteResources.js +2 -0
- package/dist/infrastructure/server/httpRouteResources.js.map +1 -1
- package/dist/mcp/index.js +24 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/tools/consumptionTools.js +8 -8
- package/dist/mcp/tools/consumptionTools.js.map +1 -1
- package/dist/mcp/tools/cronTools.d.ts.map +1 -1
- package/dist/mcp/tools/cronTools.js +4 -4
- package/dist/mcp/tools/cronTools.js.map +1 -1
- package/dist/mcp/tools/dlqTools.js +4 -4
- package/dist/mcp/tools/dlqTools.js.map +1 -1
- package/dist/mcp/tools/flowTools.js +4 -4
- package/dist/mcp/tools/flowTools.js.map +1 -1
- package/dist/mcp/tools/handlerTools.d.ts.map +1 -1
- package/dist/mcp/tools/handlerTools.js +3 -3
- package/dist/mcp/tools/handlerTools.js.map +1 -1
- package/dist/mcp/tools/jobMgmtTools.js +6 -6
- package/dist/mcp/tools/jobMgmtTools.js.map +1 -1
- package/dist/mcp/tools/jobTools.d.ts.map +1 -1
- package/dist/mcp/tools/jobTools.js +11 -11
- package/dist/mcp/tools/jobTools.js.map +1 -1
- package/dist/mcp/tools/mcpTracker.d.ts +53 -0
- package/dist/mcp/tools/mcpTracker.d.ts.map +1 -0
- package/dist/mcp/tools/mcpTracker.js +65 -0
- package/dist/mcp/tools/mcpTracker.js.map +1 -0
- package/dist/mcp/tools/monitoringTools.js +11 -11
- package/dist/mcp/tools/monitoringTools.js.map +1 -1
- package/dist/mcp/tools/queueTools.js +11 -11
- package/dist/mcp/tools/queueTools.js.map +1 -1
- package/dist/mcp/tools/rateLimitTools.js +4 -4
- package/dist/mcp/tools/rateLimitTools.js.map +1 -1
- package/dist/mcp/tools/webhookTools.js +4 -4
- package/dist/mcp/tools/webhookTools.js.map +1 -1
- package/dist/mcp/tools/withErrorHandler.d.ts +4 -5
- package/dist/mcp/tools/withErrorHandler.d.ts.map +1 -1
- package/dist/mcp/tools/withErrorHandler.js +54 -6
- package/dist/mcp/tools/withErrorHandler.js.map +1 -1
- package/dist/mcp/tools/workerMgmtTools.js +3 -3
- package/dist/mcp/tools/workerMgmtTools.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobMgmtTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/jobMgmtTools.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,OAAmB;IACzE,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,mCAAmC,EACnC;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACpC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KACzE,EACD,gBAAgB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"jobMgmtTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/jobMgmtTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobTools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/jobTools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"jobTools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/jobTools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,QAgLtE"}
|
|
@@ -13,7 +13,7 @@ export function registerJobTools(server, backend) {
|
|
|
13
13
|
priority: z.number().optional().describe('Priority (higher = processed first)'),
|
|
14
14
|
delay: z.number().optional().describe('Delay in milliseconds before processing'),
|
|
15
15
|
attempts: z.number().optional().describe('Max retry attempts (default: 3)'),
|
|
16
|
-
}, withErrorHandler(async ({ queue, name, data, priority, delay, attempts }) => {
|
|
16
|
+
}, withErrorHandler('bunqueue_add_job', async ({ queue, name, data, priority, delay, attempts }) => {
|
|
17
17
|
const result = await backend.addJob(queue, name, data, { priority, delay, attempts });
|
|
18
18
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
19
19
|
}));
|
|
@@ -27,13 +27,13 @@ export function registerJobTools(server, backend) {
|
|
|
27
27
|
delay: z.number().optional(),
|
|
28
28
|
}))
|
|
29
29
|
.describe('Array of jobs to add'),
|
|
30
|
-
}, withErrorHandler(async ({ queue, jobs }) => {
|
|
30
|
+
}, withErrorHandler('bunqueue_add_jobs_bulk', async ({ queue, jobs }) => {
|
|
31
31
|
const result = await backend.addJobsBulk(queue, jobs);
|
|
32
32
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
33
33
|
}));
|
|
34
34
|
server.tool('bunqueue_get_job', 'Get a job by ID. Returns job details including state, progress, and data.', {
|
|
35
35
|
jobId: z.string().describe('Job ID'),
|
|
36
|
-
}, withErrorHandler(async ({ jobId }) => {
|
|
36
|
+
}, withErrorHandler('bunqueue_get_job', async ({ jobId }) => {
|
|
37
37
|
const job = await backend.getJob(jobId);
|
|
38
38
|
if (!job) {
|
|
39
39
|
return {
|
|
@@ -45,13 +45,13 @@ export function registerJobTools(server, backend) {
|
|
|
45
45
|
}));
|
|
46
46
|
server.tool('bunqueue_get_job_state', 'Get the current state of a job (waiting, delayed, active, completed, failed).', {
|
|
47
47
|
jobId: z.string().describe('Job ID'),
|
|
48
|
-
}, withErrorHandler(async ({ jobId }) => {
|
|
48
|
+
}, withErrorHandler('bunqueue_get_job_state', async ({ jobId }) => {
|
|
49
49
|
const state = await backend.getJobState(jobId);
|
|
50
50
|
return { content: [{ type: 'text', text: JSON.stringify({ jobId, state }) }] };
|
|
51
51
|
}));
|
|
52
52
|
server.tool('bunqueue_get_job_result', 'Get the result of a completed job.', {
|
|
53
53
|
jobId: z.string().describe('Job ID'),
|
|
54
|
-
}, withErrorHandler(async ({ jobId }) => {
|
|
54
|
+
}, withErrorHandler('bunqueue_get_job_result', async ({ jobId }) => {
|
|
55
55
|
const result = await backend.getJobResult(jobId);
|
|
56
56
|
return {
|
|
57
57
|
content: [{ type: 'text', text: JSON.stringify({ jobId, result }, null, 2) }],
|
|
@@ -59,13 +59,13 @@ export function registerJobTools(server, backend) {
|
|
|
59
59
|
}));
|
|
60
60
|
server.tool('bunqueue_cancel_job', 'Cancel a waiting or delayed job.', {
|
|
61
61
|
jobId: z.string().describe('Job ID to cancel'),
|
|
62
|
-
}, withErrorHandler(async ({ jobId }) => {
|
|
62
|
+
}, withErrorHandler('bunqueue_cancel_job', async ({ jobId }) => {
|
|
63
63
|
const success = await backend.cancelJob(jobId);
|
|
64
64
|
return { content: [{ type: 'text', text: JSON.stringify({ success, jobId }) }] };
|
|
65
65
|
}));
|
|
66
66
|
server.tool('bunqueue_promote_job', 'Promote a delayed job to waiting state for immediate processing.', {
|
|
67
67
|
jobId: z.string().describe('Job ID to promote'),
|
|
68
|
-
}, withErrorHandler(async ({ jobId }) => {
|
|
68
|
+
}, withErrorHandler('bunqueue_promote_job', async ({ jobId }) => {
|
|
69
69
|
const success = await backend.promoteJob(jobId);
|
|
70
70
|
return { content: [{ type: 'text', text: JSON.stringify({ success, jobId }) }] };
|
|
71
71
|
}));
|
|
@@ -73,7 +73,7 @@ export function registerJobTools(server, backend) {
|
|
|
73
73
|
jobId: z.string().describe('Job ID'),
|
|
74
74
|
progress: z.number().min(0).max(100).describe('Progress value (0-100)'),
|
|
75
75
|
message: z.string().optional().describe('Optional progress message'),
|
|
76
|
-
}, withErrorHandler(async ({ jobId, progress, message }) => {
|
|
76
|
+
}, withErrorHandler('bunqueue_update_progress', async ({ jobId, progress, message }) => {
|
|
77
77
|
const success = await backend.updateProgress(jobId, progress, message);
|
|
78
78
|
return {
|
|
79
79
|
content: [{ type: 'text', text: JSON.stringify({ success, jobId, progress }) }],
|
|
@@ -81,7 +81,7 @@ export function registerJobTools(server, backend) {
|
|
|
81
81
|
}));
|
|
82
82
|
server.tool('bunqueue_get_children_values', 'Get return values from all child jobs of a parent job. Used with FlowProducer workflows.', {
|
|
83
83
|
parentJobId: z.string().describe('Parent job ID'),
|
|
84
|
-
}, withErrorHandler(async ({ parentJobId }) => {
|
|
84
|
+
}, withErrorHandler('bunqueue_get_children_values', async ({ parentJobId }) => {
|
|
85
85
|
const values = await backend.getChildrenValues(parentJobId);
|
|
86
86
|
return {
|
|
87
87
|
content: [
|
|
@@ -94,7 +94,7 @@ export function registerJobTools(server, backend) {
|
|
|
94
94
|
}));
|
|
95
95
|
server.tool('bunqueue_get_job_by_custom_id', 'Look up a job by its custom ID (set via jobId option during creation).', {
|
|
96
96
|
customId: z.string().describe('Custom job ID'),
|
|
97
|
-
}, withErrorHandler(async ({ customId }) => {
|
|
97
|
+
}, withErrorHandler('bunqueue_get_job_by_custom_id', async ({ customId }) => {
|
|
98
98
|
const job = await backend.getJobByCustomId(customId);
|
|
99
99
|
if (!job) {
|
|
100
100
|
return {
|
|
@@ -107,7 +107,7 @@ export function registerJobTools(server, backend) {
|
|
|
107
107
|
server.tool('bunqueue_wait_for_job', 'Wait for a job to complete within a timeout. Returns true if completed, false if timed out.', {
|
|
108
108
|
jobId: z.string().describe('Job ID to wait for'),
|
|
109
109
|
timeoutMs: z.number().min(100).max(30000).describe('Maximum wait time in milliseconds'),
|
|
110
|
-
}, withErrorHandler(async ({ jobId, timeoutMs }) => {
|
|
110
|
+
}, withErrorHandler('bunqueue_wait_for_job', async ({ jobId, timeoutMs }) => {
|
|
111
111
|
const completed = await backend.waitForJobCompletion(jobId, timeoutMs);
|
|
112
112
|
return { content: [{ type: 'text', text: JSON.stringify({ jobId, completed }) }] };
|
|
113
113
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/jobTools.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,OAAmB;IACrE,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,2CAA2C,EAC3C;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACpE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QAChF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KAC5E,EACD,gBAAgB,
|
|
1
|
+
{"version":3,"file":"jobTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/jobTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Operation Tracker
|
|
3
|
+
* Bounded ring buffer that records MCP tool invocations for cloud dashboard telemetry.
|
|
4
|
+
* O(n) worst-case per record due to Array.shift() at capacity, but n is capped at 200.
|
|
5
|
+
* Constant memory (~40KB max).
|
|
6
|
+
*/
|
|
7
|
+
/** Single MCP tool invocation record */
|
|
8
|
+
export interface McpOperation {
|
|
9
|
+
/** Tool name (e.g., "bunqueue_add_job") */
|
|
10
|
+
tool: string;
|
|
11
|
+
/** Queue affected (null for global operations like list_queues, get_stats) */
|
|
12
|
+
queue: string | null;
|
|
13
|
+
/** Invocation timestamp (Date.now()) */
|
|
14
|
+
timestamp: number;
|
|
15
|
+
/** Execution duration in milliseconds */
|
|
16
|
+
durationMs: number;
|
|
17
|
+
/** Whether the invocation succeeded */
|
|
18
|
+
success: boolean;
|
|
19
|
+
/** Error message if failed */
|
|
20
|
+
error: string | null;
|
|
21
|
+
}
|
|
22
|
+
/** Aggregated MCP usage summary */
|
|
23
|
+
export interface McpSummary {
|
|
24
|
+
/** Total invocations since last drain */
|
|
25
|
+
totalInvocations: number;
|
|
26
|
+
/** Successful invocations */
|
|
27
|
+
successCount: number;
|
|
28
|
+
/** Failed invocations */
|
|
29
|
+
failureCount: number;
|
|
30
|
+
/** Average execution duration in ms */
|
|
31
|
+
avgDurationMs: number;
|
|
32
|
+
/** Top tools by invocation count */
|
|
33
|
+
topTools: Array<{
|
|
34
|
+
tool: string;
|
|
35
|
+
count: number;
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
38
|
+
declare class McpOperationTracker {
|
|
39
|
+
private buffer;
|
|
40
|
+
/** Record a tool invocation */
|
|
41
|
+
record(op: McpOperation): void;
|
|
42
|
+
/** Drain all recorded operations (consumer calls this each snapshot) */
|
|
43
|
+
drain(): McpOperation[];
|
|
44
|
+
/** Peek at buffered operations without draining */
|
|
45
|
+
peek(): readonly McpOperation[];
|
|
46
|
+
/** Get summary stats from current buffer */
|
|
47
|
+
getSummary(): McpSummary;
|
|
48
|
+
get count(): number;
|
|
49
|
+
}
|
|
50
|
+
/** Global singleton — shared between withErrorHandler (producer) and cloud agent (consumer) */
|
|
51
|
+
export declare const mcpTracker: McpOperationTracker;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=mcpTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpTracker.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/mcpTracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wCAAwC;AACxC,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAID,cAAM,mBAAmB;IACvB,OAAO,CAAC,MAAM,CAAsB;IAEpC,+BAA+B;IAC/B,MAAM,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAO9B,wEAAwE;IACxE,KAAK,IAAI,YAAY,EAAE;IAIvB,mDAAmD;IACnD,IAAI,IAAI,SAAS,YAAY,EAAE;IAI/B,4CAA4C;IAC5C,UAAU,IAAI,UAAU;IAqCxB,IAAI,KAAK,IAAI,MAAM,CAElB;CACF;AAED,+FAA+F;AAC/F,eAAO,MAAM,UAAU,qBAA4B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Operation Tracker
|
|
3
|
+
* Bounded ring buffer that records MCP tool invocations for cloud dashboard telemetry.
|
|
4
|
+
* O(n) worst-case per record due to Array.shift() at capacity, but n is capped at 200.
|
|
5
|
+
* Constant memory (~40KB max).
|
|
6
|
+
*/
|
|
7
|
+
const MAX_BUFFER_SIZE = 200;
|
|
8
|
+
class McpOperationTracker {
|
|
9
|
+
buffer = [];
|
|
10
|
+
/** Record a tool invocation */
|
|
11
|
+
record(op) {
|
|
12
|
+
if (this.buffer.length >= MAX_BUFFER_SIZE) {
|
|
13
|
+
this.buffer.shift();
|
|
14
|
+
}
|
|
15
|
+
this.buffer.push(op);
|
|
16
|
+
}
|
|
17
|
+
/** Drain all recorded operations (consumer calls this each snapshot) */
|
|
18
|
+
drain() {
|
|
19
|
+
return this.buffer.splice(0);
|
|
20
|
+
}
|
|
21
|
+
/** Peek at buffered operations without draining */
|
|
22
|
+
peek() {
|
|
23
|
+
return this.buffer;
|
|
24
|
+
}
|
|
25
|
+
/** Get summary stats from current buffer */
|
|
26
|
+
getSummary() {
|
|
27
|
+
const ops = this.buffer;
|
|
28
|
+
const total = ops.length;
|
|
29
|
+
if (total === 0) {
|
|
30
|
+
return {
|
|
31
|
+
totalInvocations: 0,
|
|
32
|
+
successCount: 0,
|
|
33
|
+
failureCount: 0,
|
|
34
|
+
avgDurationMs: 0,
|
|
35
|
+
topTools: [],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
let successCount = 0;
|
|
39
|
+
let totalDuration = 0;
|
|
40
|
+
const toolCounts = new Map();
|
|
41
|
+
for (const op of ops) {
|
|
42
|
+
if (op.success)
|
|
43
|
+
successCount++;
|
|
44
|
+
totalDuration += op.durationMs;
|
|
45
|
+
toolCounts.set(op.tool, (toolCounts.get(op.tool) ?? 0) + 1);
|
|
46
|
+
}
|
|
47
|
+
const topTools = [...toolCounts.entries()]
|
|
48
|
+
.sort((a, b) => b[1] - a[1])
|
|
49
|
+
.slice(0, 10)
|
|
50
|
+
.map(([tool, count]) => ({ tool, count }));
|
|
51
|
+
return {
|
|
52
|
+
totalInvocations: total,
|
|
53
|
+
successCount,
|
|
54
|
+
failureCount: total - successCount,
|
|
55
|
+
avgDurationMs: Math.round(totalDuration / total),
|
|
56
|
+
topTools,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
get count() {
|
|
60
|
+
return this.buffer.length;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** Global singleton — shared between withErrorHandler (producer) and cloud agent (consumer) */
|
|
64
|
+
export const mcpTracker = new McpOperationTracker();
|
|
65
|
+
//# sourceMappingURL=mcpTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcpTracker.js","sourceRoot":"","sources":["../../../src/mcp/tools/mcpTracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgCH,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,mBAAmB;IACf,MAAM,GAAmB,EAAE,CAAC;IAEpC,+BAA+B;IAC/B,MAAM,CAAC,EAAgB;QACrB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,wEAAwE;IACxE,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,mDAAmD;IACnD,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,4CAA4C;IAC5C,UAAU;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO;gBACL,gBAAgB,EAAE,CAAC;gBACnB,YAAY,EAAE,CAAC;gBACf,YAAY,EAAE,CAAC;gBACf,aAAa,EAAE,CAAC;gBAChB,QAAQ,EAAE,EAAE;aACb,CAAC;QACJ,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE7C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,EAAE,CAAC,OAAO;gBAAE,YAAY,EAAE,CAAC;YAC/B,aAAa,IAAI,EAAE,CAAC,UAAU,CAAC;YAC/B,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;aACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACZ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAE7C,OAAO;YACL,gBAAgB,EAAE,KAAK;YACvB,YAAY;YACZ,YAAY,EAAE,KAAK,GAAG,YAAY;YAClC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;YAChD,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF;AAED,+FAA+F;AAC/F,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
|
|
@@ -5,19 +5,19 @@
|
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import { withErrorHandler } from './withErrorHandler';
|
|
7
7
|
export function registerMonitoringTools(server, backend) {
|
|
8
|
-
server.tool('bunqueue_get_stats', 'Get overall queue server statistics including throughput, memory usage, and uptime.', {}, withErrorHandler(async () => {
|
|
8
|
+
server.tool('bunqueue_get_stats', 'Get overall queue server statistics including throughput, memory usage, and uptime.', {}, withErrorHandler('bunqueue_get_stats', async () => {
|
|
9
9
|
const stats = await backend.getStats();
|
|
10
10
|
return { content: [{ type: 'text', text: JSON.stringify(stats, null, 2) }] };
|
|
11
11
|
}));
|
|
12
12
|
server.tool('bunqueue_get_queue_stats', 'Get detailed statistics for a specific queue including job counts per state.', {
|
|
13
13
|
queue: z.string().describe('Queue name'),
|
|
14
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
14
|
+
}, withErrorHandler('bunqueue_get_queue_stats', async ({ queue }) => {
|
|
15
15
|
const counts = await backend.getJobCounts(queue);
|
|
16
16
|
return {
|
|
17
17
|
content: [{ type: 'text', text: JSON.stringify({ queue, ...counts }, null, 2) }],
|
|
18
18
|
};
|
|
19
19
|
}));
|
|
20
|
-
server.tool('bunqueue_list_workers', 'List all registered workers with their status, queues, and processing stats.', {}, withErrorHandler(async () => {
|
|
20
|
+
server.tool('bunqueue_list_workers', 'List all registered workers with their status, queues, and processing stats.', {}, withErrorHandler('bunqueue_list_workers', async () => {
|
|
21
21
|
const workers = await backend.listWorkers();
|
|
22
22
|
return {
|
|
23
23
|
content: [
|
|
@@ -30,7 +30,7 @@ export function registerMonitoringTools(server, backend) {
|
|
|
30
30
|
}));
|
|
31
31
|
server.tool('bunqueue_get_job_logs', 'Get log entries for a specific job.', {
|
|
32
32
|
jobId: z.string().describe('Job ID'),
|
|
33
|
-
}, withErrorHandler(async ({ jobId }) => {
|
|
33
|
+
}, withErrorHandler('bunqueue_get_job_logs', async ({ jobId }) => {
|
|
34
34
|
const logs = await backend.getJobLogs(jobId);
|
|
35
35
|
return {
|
|
36
36
|
content: [
|
|
@@ -45,23 +45,23 @@ export function registerMonitoringTools(server, backend) {
|
|
|
45
45
|
jobId: z.string().describe('Job ID'),
|
|
46
46
|
message: z.string().describe('Log message'),
|
|
47
47
|
level: z.enum(['info', 'warn', 'error']).optional().describe('Log level (default: info)'),
|
|
48
|
-
}, withErrorHandler(async ({ jobId, message, level }) => {
|
|
48
|
+
}, withErrorHandler('bunqueue_add_job_log', async ({ jobId, message, level }) => {
|
|
49
49
|
const success = await backend.addJobLog(jobId, message, level);
|
|
50
50
|
return { content: [{ type: 'text', text: JSON.stringify({ success, jobId }) }] };
|
|
51
51
|
}));
|
|
52
|
-
server.tool('bunqueue_get_storage_status', 'Get storage health status. Reports if disk is full or has errors.', {}, withErrorHandler(async () => {
|
|
52
|
+
server.tool('bunqueue_get_storage_status', 'Get storage health status. Reports if disk is full or has errors.', {}, withErrorHandler('bunqueue_get_storage_status', async () => {
|
|
53
53
|
const status = await backend.getStorageStatus();
|
|
54
54
|
return { content: [{ type: 'text', text: JSON.stringify(status, null, 2) }] };
|
|
55
55
|
}));
|
|
56
|
-
server.tool('bunqueue_get_per_queue_stats', 'Get detailed statistics broken down per queue (throughput, latency, etc.).', {}, withErrorHandler(async () => {
|
|
56
|
+
server.tool('bunqueue_get_per_queue_stats', 'Get detailed statistics broken down per queue (throughput, latency, etc.).', {}, withErrorHandler('bunqueue_get_per_queue_stats', async () => {
|
|
57
57
|
const stats = await backend.getPerQueueStats();
|
|
58
58
|
return { content: [{ type: 'text', text: JSON.stringify(stats, null, 2) }] };
|
|
59
59
|
}));
|
|
60
|
-
server.tool('bunqueue_get_memory_stats', 'Get memory usage statistics (jobIndex, completedJobs, cache sizes, etc.).', {}, withErrorHandler(async () => {
|
|
60
|
+
server.tool('bunqueue_get_memory_stats', 'Get memory usage statistics (jobIndex, completedJobs, cache sizes, etc.).', {}, withErrorHandler('bunqueue_get_memory_stats', async () => {
|
|
61
61
|
const stats = await backend.getMemoryStats();
|
|
62
62
|
return { content: [{ type: 'text', text: JSON.stringify(stats, null, 2) }] };
|
|
63
63
|
}));
|
|
64
|
-
server.tool('bunqueue_get_prometheus_metrics', 'Get metrics in Prometheus exposition format for monitoring.', {}, withErrorHandler(async () => {
|
|
64
|
+
server.tool('bunqueue_get_prometheus_metrics', 'Get metrics in Prometheus exposition format for monitoring.', {}, withErrorHandler('bunqueue_get_prometheus_metrics', async () => {
|
|
65
65
|
const metrics = await backend.getPrometheusMetrics();
|
|
66
66
|
return { content: [{ type: 'text', text: metrics }] };
|
|
67
67
|
}));
|
|
@@ -72,13 +72,13 @@ export function registerMonitoringTools(server, backend) {
|
|
|
72
72
|
.min(0)
|
|
73
73
|
.optional()
|
|
74
74
|
.describe('Number of recent log entries to keep (default: 0 = clear all)'),
|
|
75
|
-
}, withErrorHandler(async ({ jobId, keepLogs }) => {
|
|
75
|
+
}, withErrorHandler('bunqueue_clear_job_logs', async ({ jobId, keepLogs }) => {
|
|
76
76
|
await backend.clearJobLogs(jobId, keepLogs);
|
|
77
77
|
return {
|
|
78
78
|
content: [{ type: 'text', text: JSON.stringify({ success: true, jobId }) }],
|
|
79
79
|
};
|
|
80
80
|
}));
|
|
81
|
-
server.tool('bunqueue_compact_memory', 'Force memory compaction to free unused memory.', {}, withErrorHandler(async () => {
|
|
81
|
+
server.tool('bunqueue_compact_memory', 'Force memory compaction to free unused memory.', {}, withErrorHandler('bunqueue_compact_memory', async () => {
|
|
82
82
|
await backend.compactMemory();
|
|
83
83
|
return {
|
|
84
84
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitoringTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/monitoringTools.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,OAAmB;IAC5E,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,qFAAqF,EACrF,EAAE,EACF,gBAAgB,CAAC,KAAK,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"monitoringTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/monitoringTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
import { withErrorHandler } from './withErrorHandler';
|
|
8
8
|
export function registerQueueTools(server, backend) {
|
|
9
|
-
server.tool('bunqueue_list_queues', 'List all queues.', {}, withErrorHandler(async () => {
|
|
9
|
+
server.tool('bunqueue_list_queues', 'List all queues.', {}, withErrorHandler('bunqueue_list_queues', async () => {
|
|
10
10
|
const queues = await backend.listQueues();
|
|
11
11
|
return { content: [{ type: 'text', text: JSON.stringify({ queues }) }] };
|
|
12
12
|
}));
|
|
13
13
|
server.tool('bunqueue_count_jobs', 'Count total jobs in a queue (all states).', {
|
|
14
14
|
queue: z.string().describe('Queue name'),
|
|
15
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
15
|
+
}, withErrorHandler('bunqueue_count_jobs', async ({ queue }) => {
|
|
16
16
|
const count = await backend.countJobs(queue);
|
|
17
17
|
return { content: [{ type: 'text', text: JSON.stringify({ queue, count }) }] };
|
|
18
18
|
}));
|
|
@@ -24,7 +24,7 @@ export function registerQueueTools(server, backend) {
|
|
|
24
24
|
.describe('Filter by job state'),
|
|
25
25
|
start: z.number().optional().describe('Start index for pagination (default: 0)'),
|
|
26
26
|
end: z.number().optional().describe('End index for pagination (default: 20)'),
|
|
27
|
-
}, withErrorHandler(async ({ queue, state, start, end }) => {
|
|
27
|
+
}, withErrorHandler('bunqueue_get_jobs', async ({ queue, state, start, end }) => {
|
|
28
28
|
const jobs = await backend.getJobs(queue, { state, start: start ?? 0, end: end ?? 20 });
|
|
29
29
|
return {
|
|
30
30
|
content: [
|
|
@@ -37,13 +37,13 @@ export function registerQueueTools(server, backend) {
|
|
|
37
37
|
}));
|
|
38
38
|
server.tool('bunqueue_get_job_counts', 'Get job counts per state for a queue (waiting, delayed, active, completed, failed).', {
|
|
39
39
|
queue: z.string().describe('Queue name'),
|
|
40
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
40
|
+
}, withErrorHandler('bunqueue_get_job_counts', async ({ queue }) => {
|
|
41
41
|
const counts = await backend.getJobCounts(queue);
|
|
42
42
|
return { content: [{ type: 'text', text: JSON.stringify({ queue, ...counts }) }] };
|
|
43
43
|
}));
|
|
44
44
|
server.tool('bunqueue_pause_queue', 'Pause job processing on a queue. No new jobs will be processed until resumed.', {
|
|
45
45
|
queue: z.string().describe('Queue name'),
|
|
46
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
46
|
+
}, withErrorHandler('bunqueue_pause_queue', async ({ queue }) => {
|
|
47
47
|
await backend.pauseQueue(queue);
|
|
48
48
|
return {
|
|
49
49
|
content: [
|
|
@@ -56,7 +56,7 @@ export function registerQueueTools(server, backend) {
|
|
|
56
56
|
}));
|
|
57
57
|
server.tool('bunqueue_resume_queue', 'Resume job processing on a paused queue.', {
|
|
58
58
|
queue: z.string().describe('Queue name'),
|
|
59
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
59
|
+
}, withErrorHandler('bunqueue_resume_queue', async ({ queue }) => {
|
|
60
60
|
await backend.resumeQueue(queue);
|
|
61
61
|
return {
|
|
62
62
|
content: [
|
|
@@ -69,7 +69,7 @@ export function registerQueueTools(server, backend) {
|
|
|
69
69
|
}));
|
|
70
70
|
server.tool('bunqueue_drain_queue', 'Remove all waiting jobs from a queue. Active jobs continue processing.', {
|
|
71
71
|
queue: z.string().describe('Queue name'),
|
|
72
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
72
|
+
}, withErrorHandler('bunqueue_drain_queue', async ({ queue }) => {
|
|
73
73
|
const removed = await backend.drainQueue(queue);
|
|
74
74
|
return {
|
|
75
75
|
content: [
|
|
@@ -79,7 +79,7 @@ export function registerQueueTools(server, backend) {
|
|
|
79
79
|
}));
|
|
80
80
|
server.tool('bunqueue_obliterate_queue', 'Remove ALL data from a queue (waiting, active, completed, failed). Destructive operation.', {
|
|
81
81
|
queue: z.string().describe('Queue name'),
|
|
82
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
82
|
+
}, withErrorHandler('bunqueue_obliterate_queue', async ({ queue }) => {
|
|
83
83
|
await backend.obliterateQueue(queue);
|
|
84
84
|
return {
|
|
85
85
|
content: [
|
|
@@ -98,7 +98,7 @@ export function registerQueueTools(server, backend) {
|
|
|
98
98
|
.optional()
|
|
99
99
|
.describe('State to clean (default: both completed and failed)'),
|
|
100
100
|
limit: z.number().optional().describe('Maximum number of jobs to remove'),
|
|
101
|
-
}, withErrorHandler(async ({ queue, graceMs, state, limit }) => {
|
|
101
|
+
}, withErrorHandler('bunqueue_clean_queue', async ({ queue, graceMs, state, limit }) => {
|
|
102
102
|
const removed = await backend.cleanQueue(queue, graceMs, state, limit);
|
|
103
103
|
return {
|
|
104
104
|
content: [
|
|
@@ -108,13 +108,13 @@ export function registerQueueTools(server, backend) {
|
|
|
108
108
|
}));
|
|
109
109
|
server.tool('bunqueue_is_paused', 'Check if a queue is currently paused.', {
|
|
110
110
|
queue: z.string().describe('Queue name'),
|
|
111
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
111
|
+
}, withErrorHandler('bunqueue_is_paused', async ({ queue }) => {
|
|
112
112
|
const paused = await backend.isPaused(queue);
|
|
113
113
|
return { content: [{ type: 'text', text: JSON.stringify({ queue, paused }) }] };
|
|
114
114
|
}));
|
|
115
115
|
server.tool('bunqueue_get_counts_per_priority', 'Get job count breakdown by priority level for a queue.', {
|
|
116
116
|
queue: z.string().describe('Queue name'),
|
|
117
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
117
|
+
}, withErrorHandler('bunqueue_get_counts_per_priority', async ({ queue }) => {
|
|
118
118
|
const counts = await backend.getCountsPerPriority(queue);
|
|
119
119
|
return {
|
|
120
120
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queueTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/queueTools.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,OAAmB;IACvE,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,kBAAkB,EAClB,EAAE,EACF,gBAAgB,CAAC,KAAK,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"queueTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/queueTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export function registerRateLimitTools(server, backend) {
|
|
|
8
8
|
server.tool('bunqueue_set_rate_limit', 'Set rate limit for a queue (max jobs processed per second).', {
|
|
9
9
|
queue: z.string().describe('Queue name'),
|
|
10
10
|
limit: z.number().min(1).describe('Max jobs per second'),
|
|
11
|
-
}, withErrorHandler(async ({ queue, limit }) => {
|
|
11
|
+
}, withErrorHandler('bunqueue_set_rate_limit', async ({ queue, limit }) => {
|
|
12
12
|
await backend.setRateLimit(queue, limit);
|
|
13
13
|
return {
|
|
14
14
|
content: [
|
|
@@ -21,7 +21,7 @@ export function registerRateLimitTools(server, backend) {
|
|
|
21
21
|
}));
|
|
22
22
|
server.tool('bunqueue_clear_rate_limit', 'Remove rate limit from a queue, allowing unlimited throughput.', {
|
|
23
23
|
queue: z.string().describe('Queue name'),
|
|
24
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
24
|
+
}, withErrorHandler('bunqueue_clear_rate_limit', async ({ queue }) => {
|
|
25
25
|
await backend.clearRateLimit(queue);
|
|
26
26
|
return {
|
|
27
27
|
content: [
|
|
@@ -35,7 +35,7 @@ export function registerRateLimitTools(server, backend) {
|
|
|
35
35
|
server.tool('bunqueue_set_concurrency', 'Set concurrency limit for a queue (max simultaneous active jobs).', {
|
|
36
36
|
queue: z.string().describe('Queue name'),
|
|
37
37
|
limit: z.number().min(1).describe('Max concurrent jobs'),
|
|
38
|
-
}, withErrorHandler(async ({ queue, limit }) => {
|
|
38
|
+
}, withErrorHandler('bunqueue_set_concurrency', async ({ queue, limit }) => {
|
|
39
39
|
await backend.setConcurrency(queue, limit);
|
|
40
40
|
return {
|
|
41
41
|
content: [
|
|
@@ -48,7 +48,7 @@ export function registerRateLimitTools(server, backend) {
|
|
|
48
48
|
}));
|
|
49
49
|
server.tool('bunqueue_clear_concurrency', 'Remove concurrency limit from a queue.', {
|
|
50
50
|
queue: z.string().describe('Queue name'),
|
|
51
|
-
}, withErrorHandler(async ({ queue }) => {
|
|
51
|
+
}, withErrorHandler('bunqueue_clear_concurrency', async ({ queue }) => {
|
|
52
52
|
await backend.clearConcurrency(queue);
|
|
53
53
|
return {
|
|
54
54
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimitTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/rateLimitTools.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,OAAmB;IAC3E,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,6DAA6D,EAC7D;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KACzD,EACD,gBAAgB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"rateLimitTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/rateLimitTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export function registerWebhookTools(server, backend) {
|
|
|
18
18
|
]))
|
|
19
19
|
.describe('Events to subscribe to'),
|
|
20
20
|
queue: z.string().optional().describe('Limit to a specific queue (omit for all queues)'),
|
|
21
|
-
}, withErrorHandler(async ({ url, events, queue }) => {
|
|
21
|
+
}, withErrorHandler('bunqueue_add_webhook', async ({ url, events, queue }) => {
|
|
22
22
|
const webhook = await backend.addWebhook(url, events, queue);
|
|
23
23
|
return {
|
|
24
24
|
content: [
|
|
@@ -28,11 +28,11 @@ export function registerWebhookTools(server, backend) {
|
|
|
28
28
|
}));
|
|
29
29
|
server.tool('bunqueue_remove_webhook', 'Remove a webhook by ID.', {
|
|
30
30
|
id: z.string().describe('Webhook ID to remove'),
|
|
31
|
-
}, withErrorHandler(async ({ id }) => {
|
|
31
|
+
}, withErrorHandler('bunqueue_remove_webhook', async ({ id }) => {
|
|
32
32
|
const success = await backend.removeWebhook(id);
|
|
33
33
|
return { content: [{ type: 'text', text: JSON.stringify({ success, id }) }] };
|
|
34
34
|
}));
|
|
35
|
-
server.tool('bunqueue_list_webhooks', 'List all registered webhooks.', {}, withErrorHandler(async () => {
|
|
35
|
+
server.tool('bunqueue_list_webhooks', 'List all registered webhooks.', {}, withErrorHandler('bunqueue_list_webhooks', async () => {
|
|
36
36
|
const webhooks = await backend.listWebhooks();
|
|
37
37
|
return {
|
|
38
38
|
content: [
|
|
@@ -46,7 +46,7 @@ export function registerWebhookTools(server, backend) {
|
|
|
46
46
|
server.tool('bunqueue_set_webhook_enabled', 'Enable or disable a webhook without removing it.', {
|
|
47
47
|
id: z.string().describe('Webhook ID'),
|
|
48
48
|
enabled: z.boolean().describe('Whether the webhook should be enabled'),
|
|
49
|
-
}, withErrorHandler(async ({ id, enabled }) => {
|
|
49
|
+
}, withErrorHandler('bunqueue_set_webhook_enabled', async ({ id, enabled }) => {
|
|
50
50
|
const success = await backend.setWebhookEnabled(id, enabled);
|
|
51
51
|
return {
|
|
52
52
|
content: [{ type: 'text', text: JSON.stringify({ success, id, enabled }) }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhookTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/webhookTools.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,OAAmB;IACzE,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,wDAAwD,EACxD;QACE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC7D,MAAM,EAAE,CAAC;aACN,KAAK,CACJ,CAAC,CAAC,IAAI,CAAC;YACL,eAAe;YACf,YAAY;YACZ,cAAc;YACd,YAAY;YACZ,aAAa;YACb,aAAa;SACd,CAAC,CACH;aACA,QAAQ,CAAC,wBAAwB,CAAC;QACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;KACzF,EACD,gBAAgB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"webhookTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/webhookTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP Tool Error Handler
|
|
3
|
-
* Wraps tool handlers with try/catch
|
|
3
|
+
* Wraps tool handlers with try/catch and records invocations for cloud telemetry.
|
|
4
4
|
*/
|
|
5
5
|
/** MCP tool result compatible with SDK's expected return type */
|
|
6
6
|
interface ToolResult {
|
|
@@ -12,10 +12,9 @@ interface ToolResult {
|
|
|
12
12
|
isError?: boolean;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* Wraps an MCP tool handler with error handling.
|
|
16
|
-
*
|
|
17
|
-
* instead of letting raw stack traces propagate to the AI agent.
|
|
15
|
+
* Wraps an MCP tool handler with error handling and invocation tracking.
|
|
16
|
+
* Records tool name, queue, duration, and success/failure for cloud telemetry.
|
|
18
17
|
*/
|
|
19
|
-
export declare function withErrorHandler<T>(fn: (args: T) => Promise<ToolResult>): (args: T) => Promise<ToolResult>;
|
|
18
|
+
export declare function withErrorHandler<T>(toolName: string, fn: (args: T) => Promise<ToolResult>): (args: T) => Promise<ToolResult>;
|
|
20
19
|
export {};
|
|
21
20
|
//# sourceMappingURL=withErrorHandler.d.ts.map
|