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":"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.66",
|
|
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",
|