@j0hanz/fetch-url-mcp 1.10.2 → 1.10.3

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 (55) hide show
  1. package/dist/http/native.d.ts.map +1 -1
  2. package/dist/http/native.js +20 -26
  3. package/dist/http/session-teardown.d.ts +17 -0
  4. package/dist/http/session-teardown.d.ts.map +1 -0
  5. package/dist/http/session-teardown.js +30 -0
  6. package/dist/lib/core.d.ts.map +1 -1
  7. package/dist/lib/core.js +2 -0
  8. package/dist/lib/dom-prep.d.ts.map +1 -1
  9. package/dist/lib/dom-prep.js +19 -14
  10. package/dist/lib/progress.d.ts.map +1 -1
  11. package/dist/lib/progress.js +59 -32
  12. package/dist/lib/sdk-interop.d.ts +8 -0
  13. package/dist/lib/sdk-interop.d.ts.map +1 -0
  14. package/dist/lib/sdk-interop.js +73 -0
  15. package/dist/lib/task-handlers.d.ts +0 -2
  16. package/dist/lib/task-handlers.d.ts.map +1 -1
  17. package/dist/lib/task-handlers.js +9 -94
  18. package/dist/resources/index.js +1 -1
  19. package/dist/server.d.ts.map +1 -1
  20. package/dist/server.js +10 -3
  21. package/dist/tasks/call-contract.d.ts +25 -0
  22. package/dist/tasks/call-contract.d.ts.map +1 -0
  23. package/dist/tasks/call-contract.js +58 -0
  24. package/dist/tasks/cursor-codec.d.ts +5 -0
  25. package/dist/tasks/cursor-codec.d.ts.map +1 -0
  26. package/dist/tasks/cursor-codec.js +41 -0
  27. package/dist/tasks/execution.d.ts +1 -20
  28. package/dist/tasks/execution.d.ts.map +1 -1
  29. package/dist/tasks/execution.js +7 -32
  30. package/dist/tasks/manager.d.ts +1 -5
  31. package/dist/tasks/manager.d.ts.map +1 -1
  32. package/dist/tasks/manager.js +16 -144
  33. package/dist/tasks/owner.d.ts +12 -2
  34. package/dist/tasks/owner.d.ts.map +1 -1
  35. package/dist/tasks/owner.js +52 -3
  36. package/dist/tasks/tool-registry.d.ts +1 -0
  37. package/dist/tasks/tool-registry.d.ts.map +1 -1
  38. package/dist/tasks/waiters.d.ts +27 -0
  39. package/dist/tasks/waiters.d.ts.map +1 -0
  40. package/dist/tasks/waiters.js +113 -0
  41. package/dist/tools/fetch-url-progress.d.ts +17 -0
  42. package/dist/tools/fetch-url-progress.d.ts.map +1 -0
  43. package/dist/tools/fetch-url-progress.js +78 -0
  44. package/dist/tools/fetch-url.d.ts +5 -9
  45. package/dist/tools/fetch-url.d.ts.map +1 -1
  46. package/dist/tools/fetch-url.js +43 -96
  47. package/dist/transform/next-flight.d.ts +2 -0
  48. package/dist/transform/next-flight.d.ts.map +1 -0
  49. package/dist/transform/next-flight.js +285 -0
  50. package/dist/transform/transform.d.ts.map +1 -1
  51. package/dist/transform/transform.js +21 -336
  52. package/package.json +4 -4
  53. package/dist/tools/index.d.ts +0 -3
  54. package/dist/tools/index.d.ts.map +0 -1
  55. package/dist/tools/index.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/http/native.ts"],"names":[],"mappings":"AAu4BA,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CA8DD"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/http/native.ts"],"names":[],"mappings":"AAq3BA,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CA0DD"}
@@ -7,11 +7,10 @@ import process from 'node:process';
7
7
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
8
8
  import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
9
9
  import { config, enableHttpMode } from '../lib/core.js';
10
- import { logError, logInfo, registerMcpSessionServer, resolveMcpSessionIdByServer, runWithRequestContext, unregisterMcpSessionServer, unregisterMcpSessionServerByServer, } from '../lib/core.js';
10
+ import { logError, logInfo, registerMcpSessionServer, runWithRequestContext, } from '../lib/core.js';
11
11
  import { composeCloseHandlers, createSessionStore, createSlotTracker, ensureSessionCapacity, reserveSessionSlot, startSessionCleanupLoop, } from '../lib/core.js';
12
12
  import { handleDownload } from '../lib/http.js';
13
13
  import { acceptsEventStream, acceptsJsonAndEventStream, isJsonRpcBatchRequest, isMcpMessageBody, isMcpRequestBody, } from '../lib/mcp-tools.js';
14
- import { cancelTasksForOwner } from '../lib/task-handlers.js';
15
14
  import { toError } from '../lib/utils.js';
16
15
  import { applyHttpServerTuning, drainConnectionsOnShutdown, } from '../lib/utils.js';
17
16
  import { isObject } from '../lib/utils.js';
@@ -20,6 +19,7 @@ import { applyInsufficientScopeAuthHeaders, applyUnauthorizedAuthHeaders, assert
20
19
  import { disableEventLoopMonitoring, resetEventLoopMonitoring, sendHealthRouteResponse, shouldHandleHealthRoute, } from './health.js';
21
20
  import { buildRequestContext, closeMcpServerBestEffort, closeTransportBestEffort, createRequestAbortSignal, createTransportAdapter, DEFAULT_BODY_LIMIT_BYTES, drainRequest, findDuplicateSingleValueHeader, getHeaderValue, getMcpSessionId, jsonBodyReader, registerInboundBlockList, sendEmpty, sendError, sendJson, } from './helpers.js';
22
21
  import { createRateLimitManagerImpl, } from './rate-limit.js';
22
+ import { teardownSessionRegistration, teardownSessionResources, } from './session-teardown.js';
23
23
  // ---------------------------------------------------------------------------
24
24
  // MCP session gateway
25
25
  // ---------------------------------------------------------------------------
@@ -288,9 +288,10 @@ class McpSessionGateway {
288
288
  const session = this.store.remove(sessionId);
289
289
  if (!session)
290
290
  return;
291
- cancelTasksForOwner(`session:${sessionId}`, 'The task was cancelled because the MCP session ended.');
292
- unregisterMcpSessionServer(sessionId);
293
- void closeMcpServerBestEffort(session.server, `${context}-server`);
291
+ void teardownSessionResources(session, {
292
+ cancelMessage: 'The task was cancelled because the MCP session ended.',
293
+ closeServerReason: `${context}-server`,
294
+ });
294
295
  }
295
296
  reserveCapacity(res, requestId) {
296
297
  const allowed = ensureSessionCapacity({
@@ -299,14 +300,12 @@ class McpSessionGateway {
299
300
  evictOldest: (store) => {
300
301
  const evicted = store.evictOldest();
301
302
  if (evicted) {
302
- const sessionId = resolveMcpSessionIdByServer(evicted.server);
303
- if (sessionId) {
304
- cancelTasksForOwner(`session:${sessionId}`, 'The task was cancelled because the MCP session was evicted.');
305
- unregisterMcpSessionServer(sessionId);
306
- }
307
- unregisterMcpSessionServerByServer(evicted.server);
308
- void closeTransportBestEffort(evicted.transport, 'session-eviction');
309
- void closeMcpServerBestEffort(evicted.server, 'session-eviction');
303
+ void teardownSessionResources(evicted, {
304
+ cancelMessage: 'The task was cancelled because the MCP session was evicted.',
305
+ closeTransportReason: 'session-eviction',
306
+ closeServerReason: 'session-eviction',
307
+ unregisterByServer: true,
308
+ });
310
309
  return true;
311
310
  }
312
311
  return false;
@@ -599,14 +598,13 @@ function createShutdownHandler(options) {
599
598
  for (let i = 0; i < sessions.length; i += closeBatchSize) {
600
599
  const batch = sessions.slice(i, i + closeBatchSize);
601
600
  await Promise.all(batch.map(async (session) => {
602
- const sessionId = resolveMcpSessionIdByServer(session.server);
603
- if (sessionId) {
604
- cancelTasksForOwner(`session:${sessionId}`, 'The task was cancelled because the HTTP server is shutting down.');
605
- unregisterMcpSessionServer(sessionId);
606
- }
607
- unregisterMcpSessionServerByServer(session.server);
608
- await closeTransportBestEffort(session.transport, 'shutdown-session-close');
609
- await closeMcpServerBestEffort(session.server, 'shutdown-session-close');
601
+ await teardownSessionResources(session, {
602
+ cancelMessage: 'The task was cancelled because the HTTP server is shutting down.',
603
+ closeTransportReason: 'shutdown-session-close',
604
+ closeServerReason: 'shutdown-session-close',
605
+ unregisterByServer: true,
606
+ awaitClose: true,
607
+ });
610
608
  }));
611
609
  }
612
610
  await new Promise((resolve, reject) => {
@@ -627,11 +625,7 @@ export async function startHttpServer() {
627
625
  const sessionStore = createSessionStore(config.server.sessionTtlMs);
628
626
  const sessionCleanup = startSessionCleanupLoop(sessionStore, config.server.sessionTtlMs, {
629
627
  onEvictSession: (session) => {
630
- const sessionId = resolveMcpSessionIdByServer(session.server);
631
- if (!sessionId)
632
- return;
633
- cancelTasksForOwner(`session:${sessionId}`, 'The task was cancelled because the MCP session expired.');
634
- unregisterMcpSessionServer(sessionId);
628
+ teardownSessionRegistration(session.server, 'The task was cancelled because the MCP session expired.');
635
629
  },
636
630
  });
637
631
  const mcpGateway = new McpSessionGateway(sessionStore, createMcpServerForHttpSession);
@@ -0,0 +1,17 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
3
+ interface SessionRecordLike {
4
+ server: McpServer;
5
+ transport: StreamableHTTPServerTransport;
6
+ }
7
+ interface SessionTeardownOptions {
8
+ cancelMessage: string;
9
+ closeServerReason?: string;
10
+ closeTransportReason?: string;
11
+ unregisterByServer?: boolean;
12
+ awaitClose?: boolean;
13
+ }
14
+ export declare function teardownSessionResources(session: SessionRecordLike, options: SessionTeardownOptions): Promise<void>;
15
+ export declare function teardownSessionRegistration(server: McpServer, cancelMessage: string): void;
16
+ export {};
17
+ //# sourceMappingURL=session-teardown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-teardown.d.ts","sourceRoot":"","sources":["../../src/http/session-teardown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAcxG,UAAU,iBAAiB;IACzB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,6BAA6B,CAAC;CAC1C;AAED,UAAU,sBAAsB;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAWD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,MAAM,GACpB,IAAI,CAEN"}
@@ -0,0 +1,30 @@
1
+ import { resolveMcpSessionIdByServer, unregisterMcpSessionServer, unregisterMcpSessionServerByServer, } from '../lib/core.js';
2
+ import { cancelTasksForOwner } from '../lib/task-handlers.js';
3
+ import { closeMcpServerBestEffort, closeTransportBestEffort, } from './helpers.js';
4
+ function cancelSessionTasks(server, message) {
5
+ const sessionId = resolveMcpSessionIdByServer(server);
6
+ if (!sessionId)
7
+ return null;
8
+ cancelTasksForOwner(`session:${sessionId}`, message);
9
+ unregisterMcpSessionServer(sessionId);
10
+ return sessionId;
11
+ }
12
+ export async function teardownSessionResources(session, options) {
13
+ cancelSessionTasks(session.server, options.cancelMessage);
14
+ if (options.unregisterByServer) {
15
+ unregisterMcpSessionServerByServer(session.server);
16
+ }
17
+ const closeTasks = [];
18
+ if (options.closeTransportReason) {
19
+ closeTasks.push(closeTransportBestEffort(session.transport, options.closeTransportReason));
20
+ }
21
+ if (options.closeServerReason) {
22
+ closeTasks.push(closeMcpServerBestEffort(session.server, options.closeServerReason));
23
+ }
24
+ if (options.awaitClose && closeTasks.length > 0) {
25
+ await Promise.all(closeTasks);
26
+ }
27
+ }
28
+ export function teardownSessionRegistration(server, cancelMessage) {
29
+ cancelSessionTasks(server, cancelMessage);
30
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/lib/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/lib/core.ts"],"names":[],"mappings":"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"}
package/dist/lib/core.js CHANGED
@@ -355,6 +355,8 @@ function buildNoiseRemovalConfig() {
355
355
  'newsletters',
356
356
  'social-share',
357
357
  'nav-footer',
358
+ 'author-blocks',
359
+ 'related-content',
358
360
  ],
359
361
  debug: false,
360
362
  aggressiveMode: false,
@@ -1 +1 @@
1
- {"version":3,"file":"dom-prep.d.ts","sourceRoot":"","sources":["../../src/lib/dom-prep.ts"],"names":[],"mappings":"AAwlBA,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAQR;AAmPD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,IAAI,CAkBN;AAiED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,MAAM,CAcR"}
1
+ {"version":3,"file":"dom-prep.d.ts","sourceRoot":"","sources":["../../src/lib/dom-prep.ts"],"names":[],"mappings":"AA6lBA,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAQR;AAmPD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,IAAI,CAkBN;AAiED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,MAAM,CAcR"}
@@ -87,12 +87,23 @@ const PROMO_TOKENS_ALWAYS = [
87
87
  'fb-post',
88
88
  'instagram-media',
89
89
  'social-embed',
90
+ 'author-bio',
91
+ 'byline',
92
+ 'sharedaddy',
93
+ 'sharing',
90
94
  ];
91
95
  const PROMO_TOKENS_AGGRESSIVE = ['ad', 'related', 'comment'];
92
96
  const PROMO_TOKENS_BY_CATEGORY = {
93
97
  'cookie-banners': ['cookie', 'consent', 'popup', 'modal', 'overlay', 'toast'],
94
98
  newsletters: ['newsletter', 'subscribe'],
95
- 'social-share': ['share', 'social'],
99
+ 'social-share': ['share', 'social', 'share-button'],
100
+ 'author-blocks': ['author-bio', 'byline', 'author-info', 'writer-profile'],
101
+ 'related-content': [
102
+ 'related-post',
103
+ 'related-article',
104
+ 'more-stories',
105
+ 'recommended-posts',
106
+ ],
96
107
  };
97
108
  // Noise selector configurations
98
109
  const BASE_NOISE_SELECTORS = {
@@ -115,20 +126,16 @@ function addTokens(target, tokens) {
115
126
  for (const token of tokens)
116
127
  target.add(token);
117
128
  }
118
- function getPromoMatchers(currentConfig, flags) {
129
+ function getPromoMatchers(currentConfig, enabledCategories) {
119
130
  const baseTokens = new Set(PROMO_TOKENS_ALWAYS);
120
131
  const aggressiveTokens = new Set();
121
132
  if (currentConfig.aggressiveMode) {
122
133
  addTokens(aggressiveTokens, PROMO_TOKENS_AGGRESSIVE);
123
134
  }
124
- if (flags.cookieBanners) {
125
- addTokens(baseTokens, PROMO_TOKENS_BY_CATEGORY['cookie-banners']);
126
- }
127
- if (flags.newsletters) {
128
- addTokens(baseTokens, PROMO_TOKENS_BY_CATEGORY['newsletters']);
129
- }
130
- if (flags.socialShare) {
131
- addTokens(baseTokens, PROMO_TOKENS_BY_CATEGORY['social-share']);
135
+ for (const [category, tokens] of Object.entries(PROMO_TOKENS_BY_CATEGORY)) {
136
+ if (enabledCategories.has(category)) {
137
+ addTokens(baseTokens, tokens);
138
+ }
132
139
  }
133
140
  for (const t of currentConfig.extraTokens) {
134
141
  const n = t.toLowerCase().trim();
@@ -164,15 +171,13 @@ function getContext() {
164
171
  const flags = {
165
172
  navFooter: isEnabled('nav-footer'),
166
173
  cookieBanners: isEnabled('cookie-banners'),
167
- newsletters: isEnabled('newsletters'),
168
- socialShare: isEnabled('social-share'),
169
174
  };
170
175
  const structuralTags = new Set(BASE_STRUCTURAL_TAGS);
171
176
  if (!currentConfig.preserveSvgCanvas) {
172
177
  structuralTags.add('svg');
173
178
  structuralTags.add('canvas');
174
179
  }
175
- const promoMatchers = getPromoMatchers(currentConfig, flags);
180
+ const promoMatchers = getPromoMatchers(currentConfig, enabled);
176
181
  const extraSelectors = currentConfig.extraSelectors
177
182
  .map((s) => s.trim())
178
183
  .filter((s) => s.length > 0);
@@ -198,7 +203,7 @@ function getContext() {
198
203
  structuralTags,
199
204
  weights: currentConfig.weights,
200
205
  promoMatchers,
201
- promoEnabled: flags.cookieBanners || flags.newsletters || flags.socialShare,
206
+ promoEnabled: Object.keys(PROMO_TOKENS_BY_CATEGORY).some((cat) => enabled.has(cat)),
202
207
  extraSelectors,
203
208
  baseSelector,
204
209
  candidateSelector,
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/lib/progress.ts"],"names":[],"mappings":"AAOA,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AACrC,UAAU,WAAW;IACnB,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AACD,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AACD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,wBAAwB,CAAC;IACjC,MAAM,EAAE,0BAA0B,CAAC;CACpC;AACD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;CACnC;AACD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAkJD,wBAAgB,sBAAsB,CACpC,KAAK,CAAC,EAAE,gBAAgB,GACvB,gBAAgB,CAElB"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/lib/progress.ts"],"names":[],"mappings":"AAOA,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AACrC,UAAU,WAAW;IACnB,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AACD,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AACD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,wBAAwB,CAAC;IACjC,MAAM,EAAE,0BAA0B,CAAC;CACpC;AACD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;CACnC;AACD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAiLD,wBAAgB,sBAAsB,CACpC,KAAK,CAAC,EAAE,gBAAgB,GACvB,gBAAgB,CAElB"}
@@ -19,6 +19,9 @@ class ToolProgressReporter {
19
19
  canReportProgress;
20
20
  isTerminal = false;
21
21
  lastProgress = -1;
22
+ lastMessage;
23
+ pendingNotification;
24
+ isDispatching = false;
22
25
  constructor(token, sendNotification, relatedTaskMeta, onProgress, canReportProgress) {
23
26
  this.token = token;
24
27
  this.sendNotification = sendNotification;
@@ -50,13 +53,13 @@ class ToolProgressReporter {
50
53
  return;
51
54
  const effectiveProgress = Math.max(progress, this.lastProgress);
52
55
  const isIncreasing = effectiveProgress > this.lastProgress;
56
+ const isMessageChanged = message !== this.lastMessage;
53
57
  this.lastProgress = effectiveProgress;
58
+ this.lastMessage = message;
54
59
  if (effectiveProgress >= FETCH_PROGRESS_TOTAL) {
55
60
  this.isTerminal = true;
56
61
  }
57
- // Only fire onProgress when progress actually increases to avoid duplicate
58
- // task status updates (onProgress drives updateWorkingTaskStatus in task mode).
59
- if (isIncreasing && this.onProgress) {
62
+ if ((isIncreasing || isMessageChanged) && this.onProgress) {
60
63
  try {
61
64
  this.onProgress(effectiveProgress, message);
62
65
  }
@@ -70,44 +73,68 @@ class ToolProgressReporter {
70
73
  }
71
74
  if (!isIncreasing || this.token === null || !this.sendNotification)
72
75
  return;
73
- const { sendNotification } = this;
74
- const notification = this.createProgressNotification(this.token, effectiveProgress, message);
75
- // Fire without chaining to avoid queue buildup and delayed reports
76
- // that could fire after the task reaches a terminal state.
76
+ this.pendingNotification = this.createProgressNotification(this.token, effectiveProgress, message);
77
+ this.flushNotifications();
78
+ }
79
+ flushNotifications() {
80
+ if (this.isDispatching || !this.sendNotification)
81
+ return;
82
+ this.isDispatching = true;
77
83
  void (async () => {
78
- let timeoutId;
79
- const timeoutPromise = new Promise((resolve) => {
80
- timeoutId = setTimeout(() => {
81
- resolve({ timeout: true });
82
- }, PROGRESS_NOTIFICATION_TIMEOUT_MS);
83
- timeoutId.unref();
84
- });
85
84
  try {
86
- const outcome = await Promise.race([
87
- sendNotification(notification).then(() => ({ ok: true })),
88
- timeoutPromise,
89
- ]);
90
- if ('timeout' in outcome) {
91
- logWarn('Progress notification timed out', {
92
- progress: effectiveProgress,
93
- message,
94
- });
85
+ while (this.pendingNotification) {
86
+ if (this.canReportProgress && !this.canReportProgress()) {
87
+ this.pendingNotification = undefined;
88
+ return;
89
+ }
90
+ const notification = this.pendingNotification;
91
+ this.pendingNotification = undefined;
92
+ await this.sendWithTimeout(notification);
95
93
  }
96
94
  }
97
- catch (error) {
98
- logWarn('Failed to send progress notification', {
99
- error: getErrorMessage(error),
100
- progress: effectiveProgress,
101
- message,
102
- });
103
- }
104
95
  finally {
105
- if (timeoutId) {
106
- clearTimeout(timeoutId);
96
+ this.isDispatching = false;
97
+ if (this.pendingNotification) {
98
+ this.flushNotifications();
107
99
  }
108
100
  }
109
101
  })();
110
102
  }
103
+ async sendWithTimeout(notification) {
104
+ if (!this.sendNotification)
105
+ return;
106
+ let timeoutId;
107
+ const timeoutPromise = new Promise((resolve) => {
108
+ timeoutId = setTimeout(() => {
109
+ resolve({ timeout: true });
110
+ }, PROGRESS_NOTIFICATION_TIMEOUT_MS);
111
+ timeoutId.unref();
112
+ });
113
+ try {
114
+ const outcome = await Promise.race([
115
+ this.sendNotification(notification).then(() => ({ ok: true })),
116
+ timeoutPromise,
117
+ ]);
118
+ if ('timeout' in outcome) {
119
+ logWarn('Progress notification timed out', {
120
+ progress: notification.params.progress,
121
+ message: notification.params.message,
122
+ });
123
+ }
124
+ }
125
+ catch (error) {
126
+ logWarn('Failed to send progress notification', {
127
+ error: getErrorMessage(error),
128
+ progress: notification.params.progress,
129
+ message: notification.params.message,
130
+ });
131
+ }
132
+ finally {
133
+ if (timeoutId) {
134
+ clearTimeout(timeoutId);
135
+ }
136
+ }
137
+ }
111
138
  createProgressNotification(token, progress, message) {
112
139
  return {
113
140
  method: 'notifications/progress',
@@ -0,0 +1,8 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ type CleanupCallback = () => void;
3
+ type RequestHandlerFn = (request: unknown, extra?: unknown) => Promise<unknown>;
4
+ export declare function registerServerLifecycleCleanup(server: McpServer, callback: CleanupCallback): void;
5
+ export declare function getSdkCallToolHandler(server: McpServer): RequestHandlerFn | null;
6
+ export declare function setTaskToolCallCapability(server: McpServer, enabled: boolean): void;
7
+ export {};
8
+ //# sourceMappingURL=sdk-interop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-interop.d.ts","sourceRoot":"","sources":["../../src/lib/sdk-interop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,KAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AAClC,KAAK,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AA8ChF,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,eAAe,GACxB,IAAI,CAGN;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,GAChB,gBAAgB,GAAG,IAAI,CAMzB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,OAAO,GACf,IAAI,CAoBN"}
@@ -0,0 +1,73 @@
1
+ import { logWarn } from './core.js';
2
+ import { isObject } from './utils.js';
3
+ const patchedCleanupServers = new WeakSet();
4
+ const serverCleanupCallbacks = new WeakMap();
5
+ function getServerCleanupCallbackSet(server) {
6
+ let callbacks = serverCleanupCallbacks.get(server);
7
+ if (!callbacks) {
8
+ callbacks = new Set();
9
+ serverCleanupCallbacks.set(server, callbacks);
10
+ }
11
+ return callbacks;
12
+ }
13
+ function drainServerCleanupCallbacks(server) {
14
+ const callbacks = serverCleanupCallbacks.get(server);
15
+ if (!callbacks || callbacks.size === 0)
16
+ return;
17
+ const pending = [...callbacks];
18
+ callbacks.clear();
19
+ for (const callback of pending) {
20
+ try {
21
+ callback();
22
+ }
23
+ catch (error) {
24
+ logWarn('Server cleanup callback failed', { error });
25
+ }
26
+ }
27
+ }
28
+ function ensureServerCleanupHooks(server) {
29
+ if (patchedCleanupServers.has(server))
30
+ return;
31
+ patchedCleanupServers.add(server);
32
+ const originalOnClose = server.server.onclose;
33
+ server.server.onclose = () => {
34
+ drainServerCleanupCallbacks(server);
35
+ originalOnClose?.();
36
+ };
37
+ const originalClose = server.close.bind(server);
38
+ server.close = async () => {
39
+ drainServerCleanupCallbacks(server);
40
+ await originalClose();
41
+ };
42
+ }
43
+ export function registerServerLifecycleCleanup(server, callback) {
44
+ ensureServerCleanupHooks(server);
45
+ getServerCleanupCallbackSet(server).add(callback);
46
+ }
47
+ export function getSdkCallToolHandler(server) {
48
+ const maybeHandlers = Reflect.get(server.server, '_requestHandlers');
49
+ if (!(maybeHandlers instanceof Map))
50
+ return null;
51
+ const handler = maybeHandlers.get('tools/call');
52
+ return typeof handler === 'function' ? handler : null;
53
+ }
54
+ export function setTaskToolCallCapability(server, enabled) {
55
+ const capabilities = Reflect.get(server.server, '_capabilities');
56
+ if (!isObject(capabilities))
57
+ return;
58
+ const tasks = isObject(capabilities.tasks)
59
+ ? capabilities.tasks
60
+ : undefined;
61
+ if (!tasks)
62
+ return;
63
+ const requests = isObject(tasks.requests)
64
+ ? tasks.requests
65
+ : undefined;
66
+ if (!requests)
67
+ return;
68
+ if (enabled) {
69
+ requests.tools = { call: {} };
70
+ return;
71
+ }
72
+ delete requests.tools;
73
+ }
@@ -1,6 +1,4 @@
1
1
  import { type McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- type CleanupCallback = () => void;
3
- export declare function registerServerLifecycleCleanup(server: McpServer, callback: CleanupCallback): void;
4
2
  export { cancelTasksForOwner, abortAllTaskExecutions, } from '../tasks/execution.js';
5
3
  interface TaskHandlerRegistrationOptions {
6
4
  requireInterception?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"task-handlers.d.ts","sourceRoot":"","sources":["../../src/lib/task-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0CzE,KAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AAyClC,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,eAAe,GACxB,IAAI,CAGN;AAED,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AA+E/B,UAAU,8BAA8B;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,UAAU,6BAA6B;IACrC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,0BAA0B,EAAE,OAAO,CAAC;CACrC;AAUD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,8BAA8B,GACvC,6BAA6B,CAuJ/B"}
1
+ {"version":3,"file":"task-handlers.d.ts","sourceRoot":"","sources":["../../src/lib/task-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkCzE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAoC/B,UAAU,8BAA8B;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,UAAU,6BAA6B;IACrC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,0BAA0B,EAAE,OAAO,CAAC;CACrC;AACD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,8BAA8B,GACvC,6BAA6B,CA0J/B"}