bunqueue 2.6.63 → 2.6.65
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/application/queueManager.d.ts +2 -0
- package/dist/application/queueManager.d.ts.map +1 -1
- package/dist/application/queueManager.js +19 -5
- package/dist/application/queueManager.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/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
|
@@ -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":"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,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpF,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,2CAA2C,EAC3C;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACzC,EACD,gBAAgB,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1F,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,iEAAiE,EACjE;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxC,KAAK,EAAE,CAAC;aACL,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;aAC7D,QAAQ,EAAE;aACV,QAAQ,CAAC,qBAAqB,CAAC;QAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QAChF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KAC9E,EACD,gBAAgB,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;QACxF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACnE;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,qFAAqF,EACrF;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACzC,EACD,gBAAgB,CAAC,yBAAyB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9F,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,+EAA+E,EAC/E;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACzC,EACD,gBAAgB,CAAC,sBAAsB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3D,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;iBACxE;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,0CAA0C,EAC1C;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACzC,EACD,gBAAgB,CAAC,uBAAuB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5D,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;iBACzE;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,wEAAwE,EACxE;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACzC,EACD,gBAAgB,CAAC,sBAAsB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;aACnF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,2FAA2F,EAC3F;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACzC,EACD,gBAAgB,CAAC,2BAA2B,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAChE,MAAM,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;iBAC7E;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,+DAA+D,EAC/D;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QAC5F,KAAK,EAAE,CAAC;aACL,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;aAC7B,QAAQ,EAAE;aACV,QAAQ,CAAC,qDAAqD,CAAC;QAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAC1E,EACD,gBAAgB,CAAC,sBAAsB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QAClF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;aACnF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,uCAAuC,EACvC;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACzC,EACD,gBAAgB,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3F,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,wDAAwD,EACxD;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KACzC,EACD,gBAAgB,CAAC,kCAAkC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACvE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACxF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/withErrorHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"withErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/withErrorHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,iEAAiE;AACjE,UAAU,UAAU;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAcD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACnC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CA8BlC"}
|
|
@@ -1,19 +1,51 @@
|
|
|
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
|
+
import { mcpTracker } from './mcpTracker';
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* instead of letting raw stack traces propagate to the AI agent.
|
|
7
|
+
* Extract queue name from tool arguments.
|
|
8
|
+
* Checks common field names: queue, queueName.
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
function extractQueue(args) {
|
|
11
|
+
if (!args || typeof args !== 'object')
|
|
12
|
+
return null;
|
|
13
|
+
const a = args;
|
|
14
|
+
if (typeof a.queue === 'string')
|
|
15
|
+
return a.queue;
|
|
16
|
+
if (typeof a.queueName === 'string')
|
|
17
|
+
return a.queueName;
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Wraps an MCP tool handler with error handling and invocation tracking.
|
|
22
|
+
* Records tool name, queue, duration, and success/failure for cloud telemetry.
|
|
23
|
+
*/
|
|
24
|
+
export function withErrorHandler(toolName, fn) {
|
|
11
25
|
return async (args) => {
|
|
26
|
+
const start = Date.now();
|
|
12
27
|
try {
|
|
13
|
-
|
|
28
|
+
const result = await fn(args);
|
|
29
|
+
mcpTracker.record({
|
|
30
|
+
tool: toolName,
|
|
31
|
+
queue: extractQueue(args),
|
|
32
|
+
timestamp: start,
|
|
33
|
+
durationMs: Date.now() - start,
|
|
34
|
+
success: !result.isError,
|
|
35
|
+
error: result.isError ? extractErrorText(result) : null,
|
|
36
|
+
});
|
|
37
|
+
return result;
|
|
14
38
|
}
|
|
15
39
|
catch (err) {
|
|
16
40
|
const message = err instanceof Error ? err.message : String(err);
|
|
41
|
+
mcpTracker.record({
|
|
42
|
+
tool: toolName,
|
|
43
|
+
queue: extractQueue(args),
|
|
44
|
+
timestamp: start,
|
|
45
|
+
durationMs: Date.now() - start,
|
|
46
|
+
success: false,
|
|
47
|
+
error: message,
|
|
48
|
+
});
|
|
17
49
|
return {
|
|
18
50
|
content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
|
|
19
51
|
isError: true,
|
|
@@ -21,4 +53,20 @@ export function withErrorHandler(fn) {
|
|
|
21
53
|
}
|
|
22
54
|
};
|
|
23
55
|
}
|
|
56
|
+
/** Extract error text from a tool result that has isError: true */
|
|
57
|
+
function extractErrorText(result) {
|
|
58
|
+
const text = result.content[0]?.text;
|
|
59
|
+
if (!text)
|
|
60
|
+
return null;
|
|
61
|
+
try {
|
|
62
|
+
const parsed = JSON.parse(text);
|
|
63
|
+
if (typeof parsed.error === 'string')
|
|
64
|
+
return parsed.error;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// Not JSON — fall through
|
|
68
|
+
}
|
|
69
|
+
// Fall back to raw text content (truncated to avoid huge payloads)
|
|
70
|
+
return text.length > 200 ? text.slice(0, 200) : text;
|
|
71
|
+
}
|
|
24
72
|
//# sourceMappingURL=withErrorHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withErrorHandler.js","sourceRoot":"","sources":["../../../src/mcp/tools/withErrorHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"withErrorHandler.js","sourceRoot":"","sources":["../../../src/mcp/tools/withErrorHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS1C;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAa;IACjC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,CAAC,GAAG,IAA+B,CAAC;IAC1C,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,KAAK,CAAC;IAChD,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,SAAS,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,EAAoC;IAEpC,OAAO,KAAK,EAAE,IAAO,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;YAC9B,UAAU,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;gBACzB,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC9B,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO;gBACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;aACxD,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,UAAU,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;gBACzB,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC9E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,SAAS,gBAAgB,CAAC,MAAkB;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;QAC3D,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IACD,mEAAmE;IACnE,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC"}
|
|
@@ -9,7 +9,7 @@ export function registerWorkerMgmtTools(server, backend) {
|
|
|
9
9
|
server.tool('bunqueue_register_worker', 'Register a new worker to process jobs from specified queues.', {
|
|
10
10
|
name: z.string().describe('Worker name/identifier'),
|
|
11
11
|
queues: z.array(z.string()).min(1).describe('Queues this worker will process'),
|
|
12
|
-
}, withErrorHandler(async ({ name, queues }) => {
|
|
12
|
+
}, withErrorHandler('bunqueue_register_worker', async ({ name, queues }) => {
|
|
13
13
|
const worker = await backend.registerWorker(name, queues);
|
|
14
14
|
return {
|
|
15
15
|
content: [
|
|
@@ -19,13 +19,13 @@ export function registerWorkerMgmtTools(server, backend) {
|
|
|
19
19
|
}));
|
|
20
20
|
server.tool('bunqueue_unregister_worker', 'Unregister a worker, removing it from the active workers list.', {
|
|
21
21
|
workerId: z.string().describe('Worker ID to unregister'),
|
|
22
|
-
}, withErrorHandler(async ({ workerId }) => {
|
|
22
|
+
}, withErrorHandler('bunqueue_unregister_worker', async ({ workerId }) => {
|
|
23
23
|
const success = await backend.unregisterWorker(workerId);
|
|
24
24
|
return { content: [{ type: 'text', text: JSON.stringify({ success, workerId }) }] };
|
|
25
25
|
}));
|
|
26
26
|
server.tool('bunqueue_worker_heartbeat', 'Send a heartbeat to keep a registered worker alive.', {
|
|
27
27
|
workerId: z.string().describe('Worker ID'),
|
|
28
|
-
}, withErrorHandler(async ({ workerId }) => {
|
|
28
|
+
}, withErrorHandler('bunqueue_worker_heartbeat', async ({ workerId }) => {
|
|
29
29
|
const success = await backend.workerHeartbeat(workerId);
|
|
30
30
|
return { content: [{ type: 'text', text: JSON.stringify({ success, workerId }) }] };
|
|
31
31
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerMgmtTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/workerMgmtTools.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,uBAAuB,CAAC,MAAiB,EAAE,OAAmB;IAC5E,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,8DAA8D,EAC9D;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACnD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KAC/E,EACD,gBAAgB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"workerMgmtTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/workerMgmtTools.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,uBAAuB,CAAC,MAAiB,EAAE,OAAmB;IAC5E,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,8DAA8D,EAC9D;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACnD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KAC/E,EACD,gBAAgB,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACpF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B,gEAAgE,EAChE;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KACzD,EACD,gBAAgB,CAAC,4BAA4B,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACpE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/F,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,qDAAqD,EACrD;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;KAC3C,EACD,gBAAgB,CAAC,2BAA2B,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACnE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/F,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bunqueue",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.65",
|
|
4
4
|
"description": "High-performance job queue for Bun & AI agents. SQLite persistence, cron scheduling, priorities, retries, DLQ, webhooks, native MCP server. Zero external dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/main.js",
|