mcp-rubber-duck 1.9.5 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/.eslintrc.json +3 -1
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +62 -10
  4. package/assets/ext-apps-compare.png +0 -0
  5. package/assets/ext-apps-debate.png +0 -0
  6. package/assets/ext-apps-usage-stats.png +0 -0
  7. package/assets/ext-apps-vote.png +0 -0
  8. package/audit-ci.json +2 -1
  9. package/dist/providers/enhanced-manager.d.ts +7 -0
  10. package/dist/providers/enhanced-manager.d.ts.map +1 -1
  11. package/dist/providers/enhanced-manager.js +36 -0
  12. package/dist/providers/enhanced-manager.js.map +1 -1
  13. package/dist/providers/manager.d.ts +1 -0
  14. package/dist/providers/manager.d.ts.map +1 -1
  15. package/dist/providers/manager.js +33 -0
  16. package/dist/providers/manager.js.map +1 -1
  17. package/dist/server.d.ts +2 -0
  18. package/dist/server.d.ts.map +1 -1
  19. package/dist/server.js +154 -36
  20. package/dist/server.js.map +1 -1
  21. package/dist/services/progress.d.ts +27 -0
  22. package/dist/services/progress.d.ts.map +1 -0
  23. package/dist/services/progress.js +50 -0
  24. package/dist/services/progress.js.map +1 -0
  25. package/dist/services/task-manager.d.ts +56 -0
  26. package/dist/services/task-manager.d.ts.map +1 -0
  27. package/dist/services/task-manager.js +134 -0
  28. package/dist/services/task-manager.js.map +1 -0
  29. package/dist/tools/compare-ducks.d.ts +2 -1
  30. package/dist/tools/compare-ducks.d.ts.map +1 -1
  31. package/dist/tools/compare-ducks.js +26 -3
  32. package/dist/tools/compare-ducks.js.map +1 -1
  33. package/dist/tools/duck-council.d.ts +2 -1
  34. package/dist/tools/duck-council.d.ts.map +1 -1
  35. package/dist/tools/duck-council.js +7 -3
  36. package/dist/tools/duck-council.js.map +1 -1
  37. package/dist/tools/duck-debate.d.ts +2 -1
  38. package/dist/tools/duck-debate.d.ts.map +1 -1
  39. package/dist/tools/duck-debate.js +43 -1
  40. package/dist/tools/duck-debate.js.map +1 -1
  41. package/dist/tools/duck-iterate.d.ts +2 -1
  42. package/dist/tools/duck-iterate.d.ts.map +1 -1
  43. package/dist/tools/duck-iterate.js +13 -1
  44. package/dist/tools/duck-iterate.js.map +1 -1
  45. package/dist/tools/duck-vote.d.ts +2 -1
  46. package/dist/tools/duck-vote.d.ts.map +1 -1
  47. package/dist/tools/duck-vote.js +30 -3
  48. package/dist/tools/duck-vote.js.map +1 -1
  49. package/dist/tools/get-usage-stats.d.ts.map +1 -1
  50. package/dist/tools/get-usage-stats.js +13 -0
  51. package/dist/tools/get-usage-stats.js.map +1 -1
  52. package/dist/ui/compare-ducks/mcp-app.html +187 -0
  53. package/dist/ui/duck-debate/mcp-app.html +182 -0
  54. package/dist/ui/duck-vote/mcp-app.html +168 -0
  55. package/dist/ui/usage-stats/mcp-app.html +192 -0
  56. package/jest.config.js +1 -0
  57. package/package.json +7 -3
  58. package/src/providers/enhanced-manager.ts +49 -0
  59. package/src/providers/manager.ts +45 -0
  60. package/src/server.ts +187 -34
  61. package/src/services/progress.ts +59 -0
  62. package/src/services/task-manager.ts +162 -0
  63. package/src/tools/compare-ducks.ts +34 -3
  64. package/src/tools/duck-council.ts +15 -4
  65. package/src/tools/duck-debate.ts +58 -1
  66. package/src/tools/duck-iterate.ts +20 -1
  67. package/src/tools/duck-vote.ts +38 -3
  68. package/src/tools/get-usage-stats.ts +14 -0
  69. package/src/ui/compare-ducks/app.ts +88 -0
  70. package/src/ui/compare-ducks/mcp-app.html +102 -0
  71. package/src/ui/duck-debate/app.ts +111 -0
  72. package/src/ui/duck-debate/mcp-app.html +97 -0
  73. package/src/ui/duck-vote/app.ts +128 -0
  74. package/src/ui/duck-vote/mcp-app.html +83 -0
  75. package/src/ui/usage-stats/app.ts +156 -0
  76. package/src/ui/usage-stats/mcp-app.html +107 -0
  77. package/tests/duck-debate.test.ts +83 -1
  78. package/tests/duck-iterate.test.ts +81 -0
  79. package/tests/duck-vote.test.ts +73 -1
  80. package/tests/providers.test.ts +121 -0
  81. package/tests/services/progress.test.ts +137 -0
  82. package/tests/services/task-manager.test.ts +344 -0
  83. package/tests/tools/compare-ducks-ui.test.ts +135 -0
  84. package/tests/tools/compare-ducks.test.ts +22 -1
  85. package/tests/tools/duck-council.test.ts +19 -0
  86. package/tests/tools/duck-debate-ui.test.ts +234 -0
  87. package/tests/tools/duck-vote-ui.test.ts +172 -0
  88. package/tests/tools/get-usage-stats.test.ts +3 -1
  89. package/tests/tools/usage-stats-ui.test.ts +130 -0
  90. package/tests/ui-build.test.ts +53 -0
  91. package/tsconfig.json +1 -1
  92. package/vite.config.ts +19 -0
package/dist/server.js CHANGED
@@ -1,6 +1,10 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { z } from 'zod';
4
+ import { readFileSync } from 'fs';
5
+ import { join, dirname } from 'path';
6
+ import { fileURLToPath } from 'url';
7
+ import { registerAppTool, registerAppResource, RESOURCE_MIME_TYPE, } from '@modelcontextprotocol/ext-apps/server';
4
8
  import { ConfigManager } from './config/config.js';
5
9
  import { ProviderManager } from './providers/manager.js';
6
10
  import { EnhancedProviderManager } from './providers/enhanced-manager.js';
@@ -13,6 +17,8 @@ import { UsageService } from './services/usage.js';
13
17
  import { ApprovalService } from './services/approval.js';
14
18
  import { FunctionBridge } from './services/function-bridge.js';
15
19
  import { GuardrailsService } from './guardrails/service.js';
20
+ import { TaskManager } from './services/task-manager.js';
21
+ import { createProgressReporter } from './services/progress.js';
16
22
  import { logger } from './utils/logger.js';
17
23
  import { duckArt, getRandomDuckMessage } from './utils/ascii-art.js';
18
24
  // Import tools
@@ -51,11 +57,28 @@ export class RubberDuckServer {
51
57
  approvalService;
52
58
  functionBridge;
53
59
  mcpEnabled = false;
60
+ // Task management
61
+ taskManager;
54
62
  constructor() {
63
+ this.taskManager = new TaskManager();
55
64
  this.server = new McpServer({
56
65
  name: 'mcp-rubber-duck',
57
66
  version: '1.0.0',
58
- }, {});
67
+ }, {
68
+ capabilities: {
69
+ tasks: {
70
+ list: {},
71
+ cancel: {},
72
+ requests: {
73
+ tools: { call: {} },
74
+ },
75
+ },
76
+ },
77
+ taskStore: this.taskManager.taskStore,
78
+ taskMessageQueue: this.taskManager.taskMessageQueue,
79
+ defaultTaskPollInterval: this.taskManager.config.pollInterval,
80
+ maxTaskQueueSize: this.taskManager.config.maxQueueSize,
81
+ });
59
82
  // Initialize managers
60
83
  this.configManager = new ConfigManager();
61
84
  const config = this.configManager.getConfig();
@@ -75,6 +98,7 @@ export class RubberDuckServer {
75
98
  this.initializeMCPBridge();
76
99
  this.registerTools();
77
100
  this.registerPrompts();
101
+ this.registerUIResources();
78
102
  // Handle errors
79
103
  this.server.server.onerror = (error) => {
80
104
  logger.error('Server error:', error);
@@ -226,7 +250,7 @@ export class RubberDuckServer {
226
250
  }
227
251
  });
228
252
  // compare_ducks
229
- this.server.registerTool('compare_ducks', {
253
+ registerAppTool(this.server, 'compare_ducks', {
230
254
  description: 'Ask the same question to multiple ducks simultaneously',
231
255
  inputSchema: {
232
256
  prompt: z.string().describe('The question to ask all ducks'),
@@ -237,12 +261,14 @@ export class RubberDuckServer {
237
261
  readOnlyHint: true,
238
262
  openWorldHint: true,
239
263
  },
240
- }, async (args) => {
264
+ _meta: { ui: { resourceUri: 'ui://rubber-duck/compare-ducks' } },
265
+ }, async (args, extra) => {
241
266
  try {
267
+ const progress = createProgressReporter(extra._meta?.progressToken, extra.sendNotification);
242
268
  if (this.mcpEnabled && this.enhancedProviderManager) {
243
- return this.toolResult(await this.handleCompareDucksWithMCP(args));
269
+ return this.toolResult(await this.handleCompareDucksWithMCP(args, progress));
244
270
  }
245
- return this.toolResult(await compareDucksTool(this.providerManager, args));
271
+ return this.toolResult(await compareDucksTool(this.providerManager, args, progress));
246
272
  }
247
273
  catch (error) {
248
274
  return this.toolErrorResult(error);
@@ -259,19 +285,20 @@ export class RubberDuckServer {
259
285
  readOnlyHint: true,
260
286
  openWorldHint: true,
261
287
  },
262
- }, async (args) => {
288
+ }, async (args, extra) => {
263
289
  try {
290
+ const progress = createProgressReporter(extra._meta?.progressToken, extra.sendNotification);
264
291
  if (this.mcpEnabled && this.enhancedProviderManager) {
265
- return this.toolResult(await this.handleDuckCouncilWithMCP(args));
292
+ return this.toolResult(await this.handleDuckCouncilWithMCP(args, progress));
266
293
  }
267
- return this.toolResult(await duckCouncilTool(this.providerManager, args));
294
+ return this.toolResult(await duckCouncilTool(this.providerManager, args, progress));
268
295
  }
269
296
  catch (error) {
270
297
  return this.toolErrorResult(error);
271
298
  }
272
299
  });
273
300
  // duck_vote
274
- this.server.registerTool('duck_vote', {
301
+ registerAppTool(this.server, 'duck_vote', {
275
302
  description: 'Have multiple ducks vote on options with reasoning. Returns vote tally, confidence scores, and consensus level.',
276
303
  inputSchema: {
277
304
  question: z.string().describe('The question to vote on (e.g., "Best approach for error handling?")'),
@@ -283,9 +310,11 @@ export class RubberDuckServer {
283
310
  readOnlyHint: true,
284
311
  openWorldHint: true,
285
312
  },
286
- }, async (args) => {
313
+ _meta: { ui: { resourceUri: 'ui://rubber-duck/duck-vote' } },
314
+ }, async (args, extra) => {
287
315
  try {
288
- return this.toolResult(await duckVoteTool(this.providerManager, args));
316
+ const progress = createProgressReporter(extra._meta?.progressToken, extra.sendNotification);
317
+ return this.toolResult(await duckVoteTool(this.providerManager, args, progress));
289
318
  }
290
319
  catch (error) {
291
320
  return this.toolErrorResult(error);
@@ -317,8 +346,8 @@ export class RubberDuckServer {
317
346
  return this.toolErrorResult(error);
318
347
  }
319
348
  });
320
- // duck_iterate
321
- this.server.registerTool('duck_iterate', {
349
+ // duck_iterate (task-based: supports async execution for long-running iterations)
350
+ this.server.experimental.tasks.registerToolTask('duck_iterate', {
322
351
  description: 'Iteratively refine a response between two ducks. One generates, the other critiques/improves, alternating for multiple rounds.',
323
352
  inputSchema: {
324
353
  prompt: z.string().describe('The initial prompt/task to iterate on'),
@@ -330,16 +359,31 @@ export class RubberDuckServer {
330
359
  readOnlyHint: true,
331
360
  openWorldHint: true,
332
361
  },
333
- }, async (args) => {
334
- try {
335
- return this.toolResult(await duckIterateTool(this.providerManager, args));
336
- }
337
- catch (error) {
338
- return this.toolErrorResult(error);
339
- }
362
+ execution: {
363
+ taskSupport: 'optional',
364
+ },
365
+ }, {
366
+ createTask: async (args, extra) => {
367
+ const task = await extra.taskStore.createTask({
368
+ ttl: this.taskManager.config.defaultTtl,
369
+ pollInterval: this.taskManager.config.pollInterval,
370
+ });
371
+ const progress = createProgressReporter(extra._meta?.progressToken, extra.sendNotification);
372
+ this.taskManager.startBackground(task.taskId, async (signal) => {
373
+ return this.toolResult(await duckIterateTool(this.providerManager, args, progress, signal));
374
+ });
375
+ return { task };
376
+ },
377
+ getTask: async (_args, extra) => {
378
+ const task = await extra.taskStore.getTask(extra.taskId);
379
+ return task;
380
+ },
381
+ getTaskResult: async (_args, extra) => {
382
+ return await extra.taskStore.getTaskResult(extra.taskId);
383
+ },
340
384
  });
341
- // duck_debate
342
- this.server.registerTool('duck_debate', {
385
+ // duck_debate (task-based: supports async execution for multi-round debates)
386
+ this.server.experimental.tasks.registerToolTask('duck_debate', {
343
387
  description: 'Structured multi-round debate between ducks. Supports oxford (pro/con), socratic (questioning), and adversarial (attack/defend) formats.',
344
388
  inputSchema: {
345
389
  prompt: z.string().describe('The debate topic or proposition'),
@@ -352,16 +396,32 @@ export class RubberDuckServer {
352
396
  readOnlyHint: true,
353
397
  openWorldHint: true,
354
398
  },
355
- }, async (args) => {
356
- try {
357
- return this.toolResult(await duckDebateTool(this.providerManager, args));
358
- }
359
- catch (error) {
360
- return this.toolErrorResult(error);
361
- }
399
+ _meta: { ui: { resourceUri: 'ui://rubber-duck/duck-debate' } },
400
+ execution: {
401
+ taskSupport: 'optional',
402
+ },
403
+ }, {
404
+ createTask: async (args, extra) => {
405
+ const task = await extra.taskStore.createTask({
406
+ ttl: this.taskManager.config.defaultTtl,
407
+ pollInterval: this.taskManager.config.pollInterval,
408
+ });
409
+ const progress = createProgressReporter(extra._meta?.progressToken, extra.sendNotification);
410
+ this.taskManager.startBackground(task.taskId, async (signal) => {
411
+ return this.toolResult(await duckDebateTool(this.providerManager, args, progress, signal));
412
+ });
413
+ return { task };
414
+ },
415
+ getTask: async (_args, extra) => {
416
+ const task = await extra.taskStore.getTask(extra.taskId);
417
+ return task;
418
+ },
419
+ getTaskResult: async (_args, extra) => {
420
+ return await extra.taskStore.getTaskResult(extra.taskId);
421
+ },
362
422
  });
363
423
  // get_usage_stats
364
- this.server.registerTool('get_usage_stats', {
424
+ registerAppTool(this.server, 'get_usage_stats', {
365
425
  description: 'Get usage statistics for a time period. Shows token counts and costs (when pricing configured).',
366
426
  inputSchema: {
367
427
  period: z.enum(['today', '7d', '30d', 'all']).default('today').describe('Time period for stats'),
@@ -370,6 +430,7 @@ export class RubberDuckServer {
370
430
  readOnlyHint: true,
371
431
  openWorldHint: false,
372
432
  },
433
+ _meta: { ui: { resourceUri: 'ui://rubber-duck/usage-stats' } },
373
434
  }, (args) => {
374
435
  try {
375
436
  return this.toolResult(getUsageStatsTool(this.usageService, args));
@@ -469,6 +530,36 @@ export class RubberDuckServer {
469
530
  });
470
531
  }
471
532
  }
533
+ registerUIResources() {
534
+ const currentDir = dirname(fileURLToPath(import.meta.url));
535
+ const uiDir = join(currentDir, '..', 'dist', 'ui');
536
+ const uiApps = [
537
+ { name: 'Compare Ducks', uri: 'ui://rubber-duck/compare-ducks', file: 'compare-ducks/mcp-app.html' },
538
+ { name: 'Duck Vote', uri: 'ui://rubber-duck/duck-vote', file: 'duck-vote/mcp-app.html' },
539
+ { name: 'Duck Debate', uri: 'ui://rubber-duck/duck-debate', file: 'duck-debate/mcp-app.html' },
540
+ { name: 'Usage Stats', uri: 'ui://rubber-duck/usage-stats', file: 'usage-stats/mcp-app.html' },
541
+ ];
542
+ for (const app of uiApps) {
543
+ registerAppResource(this.server, app.name, app.uri, { description: `Interactive UI for ${app.name}` }, () => {
544
+ let html;
545
+ try {
546
+ html = readFileSync(join(uiDir, app.file), 'utf-8');
547
+ }
548
+ catch {
549
+ html = `<html><body><p>UI not built. Run npm run build:ui</p></body></html>`;
550
+ }
551
+ return {
552
+ contents: [
553
+ {
554
+ uri: app.uri,
555
+ mimeType: RESOURCE_MIME_TYPE,
556
+ text: html,
557
+ },
558
+ ],
559
+ };
560
+ });
561
+ }
562
+ }
472
563
  // MCP-enhanced tool handlers
473
564
  async handleAskDuckWithMCP(args) {
474
565
  if (!this.enhancedProviderManager || !this.cache) {
@@ -498,32 +589,57 @@ export class RubberDuckServer {
498
589
  ],
499
590
  };
500
591
  }
501
- async handleCompareDucksWithMCP(args) {
592
+ async handleCompareDucksWithMCP(args, progress) {
502
593
  if (!this.enhancedProviderManager) {
503
594
  throw new Error('Enhanced provider manager not available');
504
595
  }
505
596
  const { prompt, providers, model } = args;
506
- const responses = await this.enhancedProviderManager.compareDucksWithMCP(prompt, providers, {
507
- model,
508
- });
597
+ const responses = progress
598
+ ? await this.enhancedProviderManager.compareDucksWithProgressMCP(prompt, providers, { model }, (providerName, completed, total) => {
599
+ void progress.report(completed, total, `${providerName} responded (${completed}/${total})`);
600
+ })
601
+ : await this.enhancedProviderManager.compareDucksWithMCP(prompt, providers, { model });
509
602
  const formattedResponse = responses
510
603
  .map((response) => this.formatEnhancedDuckResponse(response))
511
604
  .join('\n\n═══════════════════════════════════════\n\n');
605
+ // Build structured data for UI consumption (same shape as compareDucksTool)
606
+ const structuredData = responses.map(r => ({
607
+ provider: r.provider,
608
+ nickname: r.nickname,
609
+ model: r.model,
610
+ content: r.content,
611
+ latency: r.latency,
612
+ tokens: r.usage ? {
613
+ prompt: r.usage.prompt_tokens,
614
+ completion: r.usage.completion_tokens,
615
+ total: r.usage.total_tokens,
616
+ } : null,
617
+ cached: r.cached,
618
+ error: r.content.startsWith('Error:') ? r.content : undefined,
619
+ }));
512
620
  return {
513
621
  content: [
514
622
  {
515
623
  type: 'text',
516
624
  text: formattedResponse,
517
625
  },
626
+ {
627
+ type: 'text',
628
+ text: JSON.stringify(structuredData),
629
+ },
518
630
  ],
519
631
  };
520
632
  }
521
- async handleDuckCouncilWithMCP(args) {
633
+ async handleDuckCouncilWithMCP(args, progress) {
522
634
  if (!this.enhancedProviderManager) {
523
635
  throw new Error('Enhanced provider manager not available');
524
636
  }
525
637
  const { prompt, model } = args;
526
- const responses = await this.enhancedProviderManager.duckCouncilWithMCP(prompt, { model });
638
+ const responses = progress
639
+ ? await this.enhancedProviderManager.compareDucksWithProgressMCP(prompt, undefined, { model }, (providerName, completed, total) => {
640
+ void progress.report(completed, total, `${providerName} responded (${completed}/${total})`);
641
+ })
642
+ : await this.enhancedProviderManager.duckCouncilWithMCP(prompt, { model });
527
643
  const header = '🦆 Duck Council in Session 🦆\n=============================';
528
644
  const formattedResponse = responses
529
645
  .map((response) => this.formatEnhancedDuckResponse(response))
@@ -614,6 +730,8 @@ export class RubberDuckServer {
614
730
  }
615
731
  }
616
732
  async stop() {
733
+ // Cleanup task manager (cancel active tasks, clear timers)
734
+ this.taskManager.shutdown();
617
735
  // Cleanup usage service (flush pending writes)
618
736
  this.usageService.shutdown();
619
737
  // Cleanup guardrails service
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Progress notification service for MCP tools.
3
+ *
4
+ * Provides a lightweight abstraction over MCP's stable `notifications/progress`
5
+ * mechanism. Tool functions accept an optional `ProgressReporter` to emit
6
+ * per-step progress without depending on the full `RequestHandlerExtra` type.
7
+ */
8
+ export interface ProgressReporter {
9
+ /** Report that step `current` of `total` is done, with an optional status message. */
10
+ report(current: number, total: number, message?: string): Promise<void>;
11
+ /** Whether the client actually requested progress (sent a progressToken). */
12
+ readonly enabled: boolean;
13
+ }
14
+ /**
15
+ * Creates a `ProgressReporter` from an MCP tool handler's `extra` parameter.
16
+ *
17
+ * If the client did not include a `progressToken` in `_meta`, the returned
18
+ * reporter is a no-op (`.enabled === false`), so callers can always call
19
+ * `progress.report()` unconditionally.
20
+ *
21
+ * @param progressToken Value of `extra._meta?.progressToken`
22
+ * @param sendNotification Value of `extra.sendNotification` — typed loosely to
23
+ * avoid coupling to SDK's strict discriminated union. At runtime the SDK
24
+ * accepts any valid JSON-RPC notification including `notifications/progress`.
25
+ */
26
+ export declare function createProgressReporter(progressToken: string | number | undefined, sendNotification: (notification: any) => Promise<void>): ProgressReporter;
27
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/services/progress.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAE1C,gBAAgB,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GACrD,gBAAgB,CA2BlB"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Progress notification service for MCP tools.
3
+ *
4
+ * Provides a lightweight abstraction over MCP's stable `notifications/progress`
5
+ * mechanism. Tool functions accept an optional `ProgressReporter` to emit
6
+ * per-step progress without depending on the full `RequestHandlerExtra` type.
7
+ */
8
+ /**
9
+ * Creates a `ProgressReporter` from an MCP tool handler's `extra` parameter.
10
+ *
11
+ * If the client did not include a `progressToken` in `_meta`, the returned
12
+ * reporter is a no-op (`.enabled === false`), so callers can always call
13
+ * `progress.report()` unconditionally.
14
+ *
15
+ * @param progressToken Value of `extra._meta?.progressToken`
16
+ * @param sendNotification Value of `extra.sendNotification` — typed loosely to
17
+ * avoid coupling to SDK's strict discriminated union. At runtime the SDK
18
+ * accepts any valid JSON-RPC notification including `notifications/progress`.
19
+ */
20
+ export function createProgressReporter(progressToken,
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ sendNotification) {
23
+ if (progressToken === undefined) {
24
+ return {
25
+ enabled: false,
26
+ report: async () => { },
27
+ };
28
+ }
29
+ return {
30
+ enabled: true,
31
+ report: async (current, total, message) => {
32
+ try {
33
+ await sendNotification({
34
+ method: 'notifications/progress',
35
+ params: {
36
+ progressToken,
37
+ progress: current,
38
+ total,
39
+ ...(message !== undefined ? { message } : {}),
40
+ },
41
+ });
42
+ }
43
+ catch {
44
+ // Swallow notification errors (e.g., client disconnected).
45
+ // Progress is best-effort — tool execution should continue regardless.
46
+ }
47
+ },
48
+ };
49
+ }
50
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/services/progress.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,aAA0C;AAC1C,8DAA8D;AAC9D,gBAAsD;IAEtD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;SACvB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,KAAK,EAAE,OAAe,EAAE,KAAa,EAAE,OAAgB,EAAE,EAAE;YACjE,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC;oBACrB,MAAM,EAAE,wBAAwB;oBAChC,MAAM,EAAE;wBACN,aAAa;wBACb,QAAQ,EAAE,OAAO;wBACjB,KAAK;wBACL,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9C;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,2DAA2D;gBAC3D,uEAAuE;YACzE,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Task lifecycle adapter wrapping the MCP SDK's experimental Tasks API.
3
+ *
4
+ * This module isolates all direct usage of `@modelcontextprotocol/sdk/experimental`
5
+ * behind a single adapter class so that future breaking changes in the experimental
6
+ * API only require updates here.
7
+ */
8
+ import type { TaskStore, TaskMessageQueue } from '@modelcontextprotocol/sdk/experimental';
9
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
10
+ export interface TaskManagerConfig {
11
+ /** Time-to-live for completed task results (milliseconds). */
12
+ defaultTtl: number;
13
+ /** Suggested interval between client polls (milliseconds). */
14
+ pollInterval: number;
15
+ /** Maximum messages per task queue (prevents unbounded growth). */
16
+ maxQueueSize: number;
17
+ /** Interval for cleanup/monitoring sweep (milliseconds). */
18
+ cleanupInterval: number;
19
+ }
20
+ /**
21
+ * Manages MCP task lifecycle: creation, background execution, cancellation, and cleanup.
22
+ *
23
+ * - Provides `InMemoryTaskStore` and `InMemoryTaskMessageQueue` instances for
24
+ * `McpServer`'s `ProtocolOptions`.
25
+ * - Tracks active background work via `AbortController` per task for cancellation.
26
+ * - Handles graceful shutdown (cancels active tasks, clears timers).
27
+ */
28
+ export declare class TaskManager {
29
+ readonly taskStore: TaskStore;
30
+ readonly taskMessageQueue: TaskMessageQueue;
31
+ readonly config: TaskManagerConfig;
32
+ /** Maps taskId → AbortController for active background work. */
33
+ private activeControllers;
34
+ private cleanupTimer?;
35
+ constructor(config?: Partial<TaskManagerConfig>);
36
+ /**
37
+ * Start background work for a task.
38
+ *
39
+ * This is fire-and-forget: the returned promise resolves immediately.
40
+ * The `work` function runs asynchronously; its result is stored in the
41
+ * task store on completion. On error the task is marked `failed`.
42
+ * On abort (cancellation) the task is marked `cancelled`.
43
+ *
44
+ * @param taskId ID of the task (from `taskStore.createTask`)
45
+ * @param work Async function receiving an `AbortSignal` and returning a `CallToolResult`
46
+ */
47
+ startBackground(taskId: string, work: (signal: AbortSignal) => Promise<CallToolResult>): void;
48
+ /** Cancel a running task by aborting its AbortController. */
49
+ cancel(taskId: string): boolean;
50
+ /** Number of currently active background tasks. */
51
+ get activeCount(): number;
52
+ private startCleanup;
53
+ /** Graceful shutdown: cancel all active tasks and clear timers. */
54
+ shutdown(): void;
55
+ }
56
+ //# sourceMappingURL=task-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-manager.d.ts","sourceRoot":"","sources":["../../src/services/task-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EACjB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAU,MAAM,oCAAoC,CAAC;AAGjF,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAC;CACzB;AASD;;;;;;;GAOG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,gEAAgE;IAChE,OAAO,CAAC,iBAAiB,CAA2C;IACpE,OAAO,CAAC,YAAY,CAAC,CAAiC;gBAE1C,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAO/C;;;;;;;;;;OAUG;IACH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,cAAc,CAAC,GACrD,IAAI;IA6CP,6DAA6D;IAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAS/B,mDAAmD;IACnD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,OAAO,CAAC,YAAY;IAUpB,mEAAmE;IACnE,QAAQ,IAAI,IAAI;CAejB"}