@nitrostack/core 1.0.0 → 1.0.2

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 (54) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +74 -40
  3. package/dist/auth/quick-setup.js +12 -12
  4. package/dist/auth/quick-setup.js.map +1 -1
  5. package/dist/core/app-decorator.d.ts.map +1 -1
  6. package/dist/core/app-decorator.js +19 -2
  7. package/dist/core/app-decorator.js.map +1 -1
  8. package/dist/core/builders.d.ts.map +1 -1
  9. package/dist/core/builders.js +24 -1
  10. package/dist/core/builders.js.map +1 -1
  11. package/dist/core/decorators/cache.decorator.d.ts.map +1 -1
  12. package/dist/core/decorators/cache.decorator.js +13 -2
  13. package/dist/core/decorators/cache.decorator.js.map +1 -1
  14. package/dist/core/decorators.d.ts +35 -1
  15. package/dist/core/decorators.d.ts.map +1 -1
  16. package/dist/core/decorators.js.map +1 -1
  17. package/dist/core/events/event.decorator.d.ts.map +1 -1
  18. package/dist/core/events/event.decorator.js +1 -3
  19. package/dist/core/events/event.decorator.js.map +1 -1
  20. package/dist/core/index.d.ts +21 -4
  21. package/dist/core/index.d.ts.map +1 -1
  22. package/dist/core/index.js +19 -1
  23. package/dist/core/index.js.map +1 -1
  24. package/dist/core/oauth-module.d.ts +35 -0
  25. package/dist/core/oauth-module.d.ts.map +1 -1
  26. package/dist/core/oauth-module.js +81 -11
  27. package/dist/core/oauth-module.js.map +1 -1
  28. package/dist/core/prompt.d.ts +7 -2
  29. package/dist/core/prompt.d.ts.map +1 -1
  30. package/dist/core/prompt.js +11 -2
  31. package/dist/core/prompt.js.map +1 -1
  32. package/dist/core/resource.d.ts +83 -12
  33. package/dist/core/resource.d.ts.map +1 -1
  34. package/dist/core/resource.js +131 -20
  35. package/dist/core/resource.js.map +1 -1
  36. package/dist/core/server.d.ts +48 -1
  37. package/dist/core/server.d.ts.map +1 -1
  38. package/dist/core/server.js +411 -11
  39. package/dist/core/server.js.map +1 -1
  40. package/dist/core/task.d.ts +280 -0
  41. package/dist/core/task.d.ts.map +1 -0
  42. package/dist/core/task.js +414 -0
  43. package/dist/core/task.js.map +1 -0
  44. package/dist/core/tool.d.ts +36 -1
  45. package/dist/core/tool.d.ts.map +1 -1
  46. package/dist/core/tool.js +71 -24
  47. package/dist/core/tool.js.map +1 -1
  48. package/dist/core/transports/discovery-http-server.d.ts +16 -2
  49. package/dist/core/transports/discovery-http-server.d.ts.map +1 -1
  50. package/dist/core/transports/discovery-http-server.js +75 -7
  51. package/dist/core/transports/discovery-http-server.js.map +1 -1
  52. package/dist/core/types.d.ts +137 -0
  53. package/dist/core/types.d.ts.map +1 -1
  54. package/package.json +5 -5
@@ -1,13 +1,14 @@
1
1
  import { Server as McpServer } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
- import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
- import { createResource } from './resource.js';
3
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, ListResourceTemplatesRequestSchema, SubscribeRequestSchema, UnsubscribeRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
+ import { ResourceTemplate, createResource } from './resource.js';
5
5
  import { createLogger } from './logger.js';
6
6
  import { ToolExecutionError, ValidationError, ResourceNotFoundError } from './errors.js';
7
7
  import { v4 as uuidv4 } from 'uuid';
8
8
  import { isModule, getModuleMetadata } from './module.js';
9
9
  import { buildController } from './builders.js';
10
10
  import { DIContainer } from './di/container.js';
11
+ import { TaskManager, TaskContext, TaskNotFoundError, TaskAlreadyTerminalError, TaskAugmentationRequiredError, } from './task.js';
11
12
  /**
12
13
  * NitroStackServer - Main server class
13
14
  */
@@ -15,6 +16,8 @@ export class NitroStackServer {
15
16
  mcpServer;
16
17
  tools = new Map();
17
18
  resources = new Map();
19
+ resourceTemplates = new Map();
20
+ templateResources = new Map();
18
21
  prompts = new Map();
19
22
  modules = [];
20
23
  config;
@@ -30,6 +33,8 @@ export class NitroStackServer {
30
33
  _transportType;
31
34
  /** HTTP transport instance (when using http or dual mode) */
32
35
  _httpTransport;
36
+ /** Task manager for MCP Tasks support */
37
+ taskManager;
33
38
  constructor(config) {
34
39
  // Default config if not provided (e.g., when instantiated by DI container)
35
40
  this.config = config || {
@@ -42,14 +47,37 @@ export class NitroStackServer {
42
47
  serviceName: this.config.name,
43
48
  enableConsole: false, // CRITICAL: Console disabled for MCP compatibility
44
49
  });
50
+ // Initialize task manager for MCP Tasks support
51
+ this.taskManager = new TaskManager({
52
+ logger: this.logger,
53
+ onStatusChange: (taskData) => {
54
+ // Send notifications/tasks/status when task status changes
55
+ this.sendTaskStatusNotification(taskData);
56
+ },
57
+ });
45
58
  this.mcpServer = new McpServer({
46
59
  name: this.config.name,
47
60
  version: this.config.version,
48
61
  }, {
49
62
  capabilities: {
50
- tools: {},
51
- resources: {},
52
- prompts: {},
63
+ tools: {
64
+ listChanged: true,
65
+ },
66
+ resources: {
67
+ subscribe: true,
68
+ listChanged: true,
69
+ },
70
+ prompts: {
71
+ listChanged: true,
72
+ },
73
+ // Declare task capabilities
74
+ tasks: {
75
+ list: {},
76
+ cancel: {},
77
+ requests: {
78
+ tools: { call: {} },
79
+ },
80
+ },
53
81
  },
54
82
  });
55
83
  this.setupHandlers();
@@ -137,6 +165,20 @@ export class NitroStackServer {
137
165
  * Add a resource to the server
138
166
  */
139
167
  resource(resource) {
168
+ // Check if URI is a template (contains {variable})
169
+ if (resource.uri.includes('{') && resource.uri.includes('}')) {
170
+ const template = new ResourceTemplate({
171
+ uriTemplate: resource.uri,
172
+ name: resource.name,
173
+ description: resource.description,
174
+ mimeType: resource.mimeType,
175
+ annotations: resource.annotations,
176
+ });
177
+ this.resourceTemplates.set(template.uriTemplate, template);
178
+ this.templateResources.set(template.uriTemplate, resource);
179
+ this.logger.info(`Resource template registered: ${template.uriTemplate}`);
180
+ }
181
+ // Always keep in main resources map so it shows up in resources/list
140
182
  this.resources.set(resource.uri, resource);
141
183
  this.logger.info(`Resource registered: ${resource.uri}`);
142
184
  return this;
@@ -149,6 +191,84 @@ export class NitroStackServer {
149
191
  this.logger.info(`Prompt registered: ${prompt.name}`);
150
192
  return this;
151
193
  }
194
+ /**
195
+ * Add a resource template to the server
196
+ */
197
+ resourceTemplate(template) {
198
+ this.resourceTemplates.set(template.uriTemplate, template);
199
+ this.logger.info(`Resource template registered: ${template.uriTemplate}`);
200
+ return this;
201
+ }
202
+ /**
203
+ * Notify clients that the list of resources has changed
204
+ */
205
+ notifyResourcesListChanged() {
206
+ try {
207
+ // Send notification through the MCP server
208
+ const mcpServerWithNotification = this.mcpServer;
209
+ if (mcpServerWithNotification.notification) {
210
+ mcpServerWithNotification.notification({ method: 'notifications/resources/list_changed' })
211
+ .catch(err => this.logger.error('Failed to send resources list changed notification', { error: err instanceof Error ? err.message : String(err) }));
212
+ }
213
+ }
214
+ catch (error) {
215
+ const errorMessage = error instanceof Error ? error.message : String(error);
216
+ this.logger.error('Error sending resources list changed notification', { error: errorMessage });
217
+ }
218
+ }
219
+ /**
220
+ * Notify clients that the list of prompts has changed
221
+ */
222
+ notifyPromptsListChanged() {
223
+ try {
224
+ const mcpServerWithNotification = this.mcpServer;
225
+ if (mcpServerWithNotification.notification) {
226
+ mcpServerWithNotification.notification({ method: 'notifications/prompts/list_changed' })
227
+ .catch(err => this.logger.error('Failed to send prompts list changed notification', { error: err instanceof Error ? err.message : String(err) }));
228
+ }
229
+ }
230
+ catch (error) {
231
+ const errorMessage = error instanceof Error ? error.message : String(error);
232
+ this.logger.error('Error sending prompts list changed notification', { error: errorMessage });
233
+ }
234
+ }
235
+ /**
236
+ * Notify clients that the list of tools has changed
237
+ */
238
+ notifyToolsListChanged() {
239
+ try {
240
+ const mcpServerWithNotification = this.mcpServer;
241
+ if (mcpServerWithNotification.notification) {
242
+ mcpServerWithNotification.notification({ method: 'notifications/tools/list_changed' })
243
+ .catch(err => this.logger.error('Failed to send tools list changed notification', { error: err instanceof Error ? err.message : String(err) }));
244
+ }
245
+ }
246
+ catch (error) {
247
+ const errorMessage = error instanceof Error ? error.message : String(error);
248
+ this.logger.error('Error sending tools list changed notification', { error: errorMessage });
249
+ }
250
+ }
251
+ /**
252
+ * Notify subscribers that a resource has been updated
253
+ */
254
+ notifyResourceUpdated(uri) {
255
+ try {
256
+ const resource = this.resources.get(uri);
257
+ if (!resource || !resource.hasSubscribers())
258
+ return;
259
+ const mcpServerWithNotification = this.mcpServer;
260
+ if (mcpServerWithNotification.notification) {
261
+ mcpServerWithNotification.notification({
262
+ method: 'notifications/resources/updated',
263
+ params: { uri }
264
+ }).catch(err => this.logger.error('Failed to send resource updated notification', { error: err instanceof Error ? err.message : String(err) }));
265
+ }
266
+ }
267
+ catch (error) {
268
+ const errorMessage = error instanceof Error ? error.message : String(error);
269
+ this.logger.error('Error sending resource updated notification', { error: errorMessage });
270
+ }
271
+ }
152
272
  /**
153
273
  * Register a module with all its controllers
154
274
  * Automatically extracts and registers all tools, resources, and prompts
@@ -206,11 +326,12 @@ export class NitroStackServer {
206
326
  /**
207
327
  * Create execution context
208
328
  */
209
- createContext(metadata) {
329
+ createContext(options) {
210
330
  return {
211
331
  logger: this.logger,
212
332
  requestId: uuidv4(),
213
- metadata: metadata || {},
333
+ toolName: options?.toolName,
334
+ metadata: options?.metadata || {},
214
335
  };
215
336
  }
216
337
  /**
@@ -232,10 +353,51 @@ export class NitroStackServer {
232
353
  if (!tool) {
233
354
  throw new ToolExecutionError(name, new Error('Tool not found'));
234
355
  }
356
+ // ----------------------------------------------------------------
357
+ // MCP Tasks: detect task-augmented requests
358
+ // The client sends `task: { ttl?: number }` in params to request
359
+ // async task execution.
360
+ // ----------------------------------------------------------------
361
+ const requestParams = request.params;
362
+ const taskParam = requestParams['task'];
363
+ const isTaskAugmented = taskParam !== undefined;
364
+ // Enforce tool-level task support negotiation
365
+ if (isTaskAugmented && tool.taskSupport === 'forbidden') {
366
+ throw {
367
+ code: -32601,
368
+ message: `Tool '${name}' does not support task augmentation`,
369
+ };
370
+ }
371
+ if (!isTaskAugmented && tool.taskSupport === 'required') {
372
+ throw new TaskAugmentationRequiredError();
373
+ }
235
374
  // Extract _meta from args if present and add to context metadata
236
375
  const argsRecord = (args || {});
237
376
  const { _meta, ...toolArgs } = argsRecord;
238
- const context = this.createContext(_meta);
377
+ const context = this.createContext({
378
+ metadata: _meta,
379
+ toolName: name
380
+ });
381
+ // ----------------------------------------------------------------
382
+ // Task-augmented path: create task, run async, return immediately
383
+ // ----------------------------------------------------------------
384
+ if (isTaskAugmented) {
385
+ const taskData = this.taskManager.createTask(taskParam, name);
386
+ const taskId = taskData.taskId;
387
+ // Attach a TaskContext to the execution context so handlers can
388
+ // report progress and check for cancellation
389
+ const taskContext = new TaskContext(this.taskManager, taskId);
390
+ context.task = taskContext;
391
+ // Execute the tool asynchronously (fire-and-forget)
392
+ this.runTaskAsync(tool, args, context, taskId, name);
393
+ // Return CreateTaskResult immediately
394
+ return {
395
+ task: taskData,
396
+ };
397
+ }
398
+ // ----------------------------------------------------------------
399
+ // Normal synchronous path
400
+ // ----------------------------------------------------------------
239
401
  try {
240
402
  // Pass original args (including _meta) to tool
241
403
  const result = await tool.execute(args, context);
@@ -282,6 +444,101 @@ export class NitroStackServer {
282
444
  };
283
445
  }
284
446
  });
447
+ // ----------------------------------------------------------------
448
+ // MCP Tasks: tasks/get
449
+ // Returns current task status. Blocks until terminal if needed.
450
+ // ----------------------------------------------------------------
451
+ this.registerCustomHandler('tasks/get', async (params) => {
452
+ const { taskId } = params;
453
+ if (!taskId) {
454
+ throw { code: -32602, message: 'Invalid params: taskId is required' };
455
+ }
456
+ try {
457
+ return this.taskManager.getTask(taskId);
458
+ }
459
+ catch (err) {
460
+ if (err instanceof TaskNotFoundError) {
461
+ throw { code: -32602, message: err.message };
462
+ }
463
+ throw { code: -32603, message: 'Internal error' };
464
+ }
465
+ });
466
+ // ----------------------------------------------------------------
467
+ // MCP Tasks: tasks/result
468
+ // Blocks until the task is in a terminal state, then returns the
469
+ // underlying tool call result or error.
470
+ // ----------------------------------------------------------------
471
+ this.registerCustomHandler('tasks/result', async (params) => {
472
+ const { taskId } = params;
473
+ if (!taskId) {
474
+ throw { code: -32602, message: 'Invalid params: taskId is required' };
475
+ }
476
+ try {
477
+ const { result, error } = await this.taskManager.getResult(taskId);
478
+ if (error) {
479
+ // Re-throw the original error so the client gets the JSON-RPC error
480
+ throw error;
481
+ }
482
+ // Attach related-task metadata to the result
483
+ const resultWithMeta = result;
484
+ return {
485
+ ...resultWithMeta,
486
+ _meta: {
487
+ ...(resultWithMeta?._meta || {}),
488
+ 'io.modelcontextprotocol/related-task': { taskId },
489
+ },
490
+ };
491
+ }
492
+ catch (err) {
493
+ if (err instanceof TaskNotFoundError) {
494
+ throw { code: -32602, message: err.message };
495
+ }
496
+ // If err already looks like a JSON-RPC error, re-throw as-is
497
+ if (err && typeof err === 'object' && 'code' in err) {
498
+ throw err;
499
+ }
500
+ throw { code: -32603, message: 'Internal error' };
501
+ }
502
+ });
503
+ // ----------------------------------------------------------------
504
+ // MCP Tasks: tasks/list
505
+ // Lists tasks with cursor-based pagination.
506
+ // ----------------------------------------------------------------
507
+ this.registerCustomHandler('tasks/list', async (params) => {
508
+ const { cursor } = (params || {});
509
+ try {
510
+ return this.taskManager.listTasks(cursor);
511
+ }
512
+ catch (err) {
513
+ if (err instanceof TaskNotFoundError) {
514
+ // Invalid cursor
515
+ throw { code: -32602, message: 'Invalid params: invalid cursor' };
516
+ }
517
+ throw { code: -32603, message: 'Internal error' };
518
+ }
519
+ });
520
+ // ----------------------------------------------------------------
521
+ // MCP Tasks: tasks/cancel
522
+ // Cancels an active task.
523
+ // ----------------------------------------------------------------
524
+ this.registerCustomHandler('tasks/cancel', async (params) => {
525
+ const { taskId } = params;
526
+ if (!taskId) {
527
+ throw { code: -32602, message: 'Invalid params: taskId is required' };
528
+ }
529
+ try {
530
+ return this.taskManager.cancelTask(taskId);
531
+ }
532
+ catch (err) {
533
+ if (err instanceof TaskNotFoundError) {
534
+ throw { code: -32602, message: err.message };
535
+ }
536
+ if (err instanceof TaskAlreadyTerminalError) {
537
+ throw { code: -32602, message: err.message };
538
+ }
539
+ throw { code: -32603, message: 'Internal error' };
540
+ }
541
+ });
285
542
  // List resources
286
543
  this.mcpServer.setRequestHandler(ListResourcesRequestSchema, async () => {
287
544
  this.logger.debug('Listing resources');
@@ -292,13 +549,28 @@ export class NitroStackServer {
292
549
  // Read resource
293
550
  this.mcpServer.setRequestHandler(ReadResourceRequestSchema, async (request) => {
294
551
  const { uri } = request.params;
295
- const resource = this.resources.get(uri);
552
+ let resource = this.resources.get(uri);
553
+ // If not found as a static resource, check templates
554
+ if (!resource) {
555
+ for (const [uriTemplate, templateResource] of this.templateResources.entries()) {
556
+ // Robust template matching:
557
+ // 1. Escape regex special characters except for the template variables
558
+ // 2. Replace {var} placeholders with a capturing group ([^/]+)
559
+ const escapedTemplate = uriTemplate.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
560
+ const regexStr = escapedTemplate.replace(/\\\{(.+?)\\\}/g, '([^/]+)');
561
+ const regex = new RegExp(`^${regexStr}$`);
562
+ if (regex.test(uri)) {
563
+ resource = templateResource;
564
+ break;
565
+ }
566
+ }
567
+ }
296
568
  if (!resource) {
297
569
  throw new ResourceNotFoundError(uri);
298
570
  }
299
571
  const context = this.createContext();
300
572
  try {
301
- const content = await resource.fetch(context);
573
+ const content = await resource.fetch(context, uri);
302
574
  let responseContent;
303
575
  switch (content.type) {
304
576
  case 'text':
@@ -321,7 +593,13 @@ export class NitroStackServer {
321
593
  mimeType: resource.mimeType || 'application/json',
322
594
  text: JSON.stringify(content.data, null, 2),
323
595
  };
324
- break;
596
+ default:
597
+ // Fallback: if content doesn't match ResourceContent shape, treat as JSON
598
+ responseContent = {
599
+ uri: uri,
600
+ mimeType: resource.mimeType || 'application/json',
601
+ text: JSON.stringify(content, null, 2),
602
+ };
325
603
  }
326
604
  this.stats.resourceReads++;
327
605
  return {
@@ -334,6 +612,37 @@ export class NitroStackServer {
334
612
  throw error;
335
613
  }
336
614
  });
615
+ // List resource templates (RFC 6570 URI templates)
616
+ this.mcpServer.setRequestHandler(ListResourceTemplatesRequestSchema, async () => {
617
+ this.logger.debug('Listing resource templates');
618
+ return {
619
+ resourceTemplates: Array.from(this.resourceTemplates.values()).map((template) => template.toMcpResourceTemplate()),
620
+ };
621
+ });
622
+ // Subscribe to resource updates
623
+ this.mcpServer.setRequestHandler(SubscribeRequestSchema, async (request) => {
624
+ const { uri } = request.params;
625
+ const resource = this.resources.get(uri);
626
+ if (!resource) {
627
+ throw new ResourceNotFoundError(uri);
628
+ }
629
+ // Use request ID as subscriber ID (in real implementation, use session ID)
630
+ const subscriberId = uuidv4();
631
+ resource.subscribe(subscriberId);
632
+ this.logger.info(`Subscribed to resource: ${uri}`, { subscriberId });
633
+ return {};
634
+ });
635
+ // Unsubscribe from resource updates
636
+ this.mcpServer.setRequestHandler(UnsubscribeRequestSchema, async (request) => {
637
+ const { uri } = request.params;
638
+ const resource = this.resources.get(uri);
639
+ if (!resource) {
640
+ throw new ResourceNotFoundError(uri);
641
+ }
642
+ // Note: In a full implementation, track subscriber IDs per session
643
+ this.logger.info(`Unsubscribe request for resource: ${uri}`);
644
+ return {};
645
+ });
337
646
  // List prompts
338
647
  this.mcpServer.setRequestHandler(ListPromptsRequestSchema, async () => {
339
648
  this.logger.debug('Listing prompts');
@@ -574,6 +883,95 @@ export class NitroStackServer {
574
883
  throw error;
575
884
  }
576
885
  }
886
+ /**
887
+ * Execute a tool asynchronously as a task.
888
+ * Called from the tools/call handler when task-augmented.
889
+ * Updates task status and stores the result for tasks/result.
890
+ */
891
+ async runTaskAsync(tool, args, context, taskId, toolName) {
892
+ try {
893
+ const result = await tool.execute(args, context);
894
+ this.stats.toolCalls++;
895
+ const response = {
896
+ content: [
897
+ {
898
+ type: 'text',
899
+ text: typeof result === 'string' ? result : JSON.stringify(result, null, 2),
900
+ },
901
+ ],
902
+ };
903
+ if (tool.hasComponent()) {
904
+ const component = tool.getComponent();
905
+ const transformedData = await component.transformData(result, context);
906
+ response.structuredContent = transformedData;
907
+ const widgetMeta = await component.getWidgetMeta(result, context);
908
+ if (widgetMeta) {
909
+ response._meta = widgetMeta;
910
+ }
911
+ }
912
+ this.taskManager.completeTask(taskId, response);
913
+ }
914
+ catch (error) {
915
+ this.stats.errors++;
916
+ const errorMessage = error instanceof Error ? error.message : String(error);
917
+ context.logger.error(`Task tool execution failed: ${toolName}`, { error: errorMessage, taskId });
918
+ // Check if due to cancellation
919
+ const taskData = this.taskManager.hasTask(taskId)
920
+ ? this.taskManager.getTask(taskId)
921
+ : null;
922
+ if (taskData?.status === 'cancelled') {
923
+ return; // Already cancelled — don't overwrite status
924
+ }
925
+ const formattedError = error instanceof ValidationError || error instanceof ToolExecutionError
926
+ ? error
927
+ : new ToolExecutionError(toolName, error);
928
+ this.taskManager.failTask(taskId, { code: -32603, message: formattedError.message }, formattedError.message);
929
+ }
930
+ }
931
+ /**
932
+ * Register a custom JSON-RPC handler for task-related methods.
933
+ * The MCP SDK's setRequestHandler only works with pre-defined schemas,
934
+ * so we hook into the transport-level message handling.
935
+ */
936
+ registerCustomHandler(method, handler) {
937
+ // Store handler for use in message routing (dual/HTTP mode)
938
+ this._customHandlers.set(method, handler);
939
+ // For stdio mode: hook into mcp server's internal dispatch
940
+ const mcpServerInternal = this.mcpServer;
941
+ if (mcpServerInternal._requestHandlers) {
942
+ mcpServerInternal._requestHandlers.set(method, async (req) => {
943
+ return handler(req.params || {});
944
+ });
945
+ }
946
+ }
947
+ /** Custom JSON-RPC handlers (for task methods not covered by MCP SDK schemas) */
948
+ _customHandlers = new Map();
949
+ /**
950
+ * Send a notifications/tasks/status notification to the client.
951
+ */
952
+ sendTaskStatusNotification(taskData) {
953
+ try {
954
+ const mcpServerWithNotification = this.mcpServer;
955
+ if (mcpServerWithNotification.notification) {
956
+ mcpServerWithNotification.notification({
957
+ method: 'notifications/tasks/status',
958
+ params: taskData,
959
+ }).catch(err => this.logger.error('Failed to send task status notification', {
960
+ error: err instanceof Error ? err.message : String(err),
961
+ }));
962
+ }
963
+ }
964
+ catch (error) {
965
+ const errorMessage = error instanceof Error ? error.message : String(error);
966
+ this.logger.error('Error sending task status notification', { error: errorMessage });
967
+ }
968
+ }
969
+ /**
970
+ * Get the TaskManager instance (useful for advanced use cases)
971
+ */
972
+ getTaskManager() {
973
+ return this.taskManager;
974
+ }
577
975
  /**
578
976
  * Stop the server
579
977
  */
@@ -586,6 +984,8 @@ export class NitroStackServer {
586
984
  await moduleInstance.stop();
587
985
  }
588
986
  }
987
+ // Destroy task manager (stops cleanup interval)
988
+ this.taskManager.destroy();
589
989
  // Close HTTP transport if running in dual mode
590
990
  if (this._httpTransport) {
591
991
  await this._httpTransport.close();
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"}