@j0hanz/fetch-url-mcp 1.3.0 → 1.4.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 (249) hide show
  1. package/README.md +24 -21
  2. package/dist/cli.d.ts +1 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +18 -12
  5. package/dist/cli.js.map +1 -1
  6. package/dist/http/auth.d.ts +15 -1
  7. package/dist/http/auth.d.ts.map +1 -1
  8. package/dist/http/auth.js +84 -17
  9. package/dist/http/auth.js.map +1 -1
  10. package/dist/http/health.d.ts +1 -1
  11. package/dist/http/health.d.ts.map +1 -1
  12. package/dist/http/health.js +5 -15
  13. package/dist/http/health.js.map +1 -1
  14. package/dist/http/helpers.d.ts +1 -8
  15. package/dist/http/helpers.d.ts.map +1 -1
  16. package/dist/http/helpers.js +13 -13
  17. package/dist/http/helpers.js.map +1 -1
  18. package/dist/http/native.d.ts.map +1 -1
  19. package/dist/http/native.js +126 -23
  20. package/dist/http/native.js.map +1 -1
  21. package/dist/http/rate-limit.d.ts +2 -1
  22. package/dist/http/rate-limit.d.ts.map +1 -1
  23. package/dist/http/rate-limit.js +33 -26
  24. package/dist/http/rate-limit.js.map +1 -1
  25. package/dist/index.js +22 -19
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib/cache.d.ts.map +1 -0
  28. package/dist/{cache.js → lib/cache.js} +15 -11
  29. package/dist/lib/cache.js.map +1 -0
  30. package/dist/{config.d.ts → lib/config.d.ts} +2 -0
  31. package/dist/lib/config.d.ts.map +1 -0
  32. package/dist/{config.js → lib/config.js} +4 -2
  33. package/dist/lib/config.js.map +1 -0
  34. package/dist/lib/crypto.d.ts.map +1 -0
  35. package/dist/{crypto.js → lib/crypto.js} +6 -3
  36. package/dist/lib/crypto.js.map +1 -0
  37. package/dist/lib/dom-noise-removal.d.ts.map +1 -0
  38. package/dist/{dom-noise-removal.js → lib/dom-noise-removal.js} +1 -2
  39. package/dist/lib/dom-noise-removal.js.map +1 -0
  40. package/dist/lib/download.d.ts.map +1 -0
  41. package/dist/{download.js → lib/download.js} +7 -7
  42. package/dist/lib/download.js.map +1 -0
  43. package/dist/{errors.d.ts → lib/errors.d.ts} +3 -0
  44. package/dist/lib/errors.d.ts.map +1 -0
  45. package/dist/{errors.js → lib/errors.js} +8 -1
  46. package/dist/lib/errors.js.map +1 -0
  47. package/dist/lib/fetch-content.d.ts.map +1 -0
  48. package/dist/{fetch-content.js → lib/fetch-content.js} +3 -2
  49. package/dist/lib/fetch-content.js.map +1 -0
  50. package/dist/lib/fetch-stream.d.ts.map +1 -0
  51. package/dist/{fetch-stream.js → lib/fetch-stream.js} +3 -5
  52. package/dist/lib/fetch-stream.js.map +1 -0
  53. package/dist/lib/fetch.d.ts.map +1 -0
  54. package/dist/{fetch.js → lib/fetch.js} +100 -145
  55. package/dist/lib/fetch.js.map +1 -0
  56. package/dist/lib/host-normalization.d.ts.map +1 -0
  57. package/dist/{host-normalization.js → lib/host-normalization.js} +9 -9
  58. package/dist/lib/host-normalization.js.map +1 -0
  59. package/dist/lib/ip-blocklist.d.ts.map +1 -0
  60. package/dist/{ip-blocklist.js → lib/ip-blocklist.js} +11 -8
  61. package/dist/lib/ip-blocklist.js.map +1 -0
  62. package/dist/lib/json.d.ts.map +1 -0
  63. package/dist/{json.js → lib/json.js} +2 -5
  64. package/dist/lib/json.js.map +1 -0
  65. package/dist/lib/language-detection.d.ts.map +1 -0
  66. package/dist/{language-detection.js → lib/language-detection.js} +1 -7
  67. package/dist/lib/language-detection.js.map +1 -0
  68. package/dist/{markdown-cleanup.d.ts → lib/markdown-cleanup.d.ts} +1 -1
  69. package/dist/lib/markdown-cleanup.d.ts.map +1 -0
  70. package/dist/{markdown-cleanup.js → lib/markdown-cleanup.js} +2 -5
  71. package/dist/lib/markdown-cleanup.js.map +1 -0
  72. package/dist/lib/mcp-lifecycle.d.ts +5 -0
  73. package/dist/lib/mcp-lifecycle.d.ts.map +1 -0
  74. package/dist/lib/mcp-lifecycle.js +51 -0
  75. package/dist/lib/mcp-lifecycle.js.map +1 -0
  76. package/dist/lib/mcp-validator.d.ts.map +1 -0
  77. package/dist/{mcp-validator.js → lib/mcp-validator.js} +6 -12
  78. package/dist/lib/mcp-validator.js.map +1 -0
  79. package/dist/{mcp.d.ts → lib/mcp.d.ts} +1 -1
  80. package/dist/lib/mcp.d.ts.map +1 -0
  81. package/dist/{mcp.js → lib/mcp.js} +64 -37
  82. package/dist/lib/mcp.js.map +1 -0
  83. package/dist/lib/observability.d.ts.map +1 -0
  84. package/dist/{observability.js → lib/observability.js} +2 -1
  85. package/dist/lib/observability.js.map +1 -0
  86. package/dist/lib/server-tuning.d.ts.map +1 -0
  87. package/dist/{server-tuning.js → lib/server-tuning.js} +3 -2
  88. package/dist/lib/server-tuning.js.map +1 -0
  89. package/dist/{session.d.ts → lib/session.d.ts} +5 -1
  90. package/dist/lib/session.d.ts.map +1 -0
  91. package/dist/{session.js → lib/session.js} +46 -36
  92. package/dist/lib/session.js.map +1 -0
  93. package/dist/lib/timer-utils.d.ts +13 -0
  94. package/dist/lib/timer-utils.d.ts.map +1 -0
  95. package/dist/lib/timer-utils.js +44 -0
  96. package/dist/lib/timer-utils.js.map +1 -0
  97. package/dist/lib/tool-errors.d.ts.map +1 -0
  98. package/dist/{tool-errors.js → lib/tool-errors.js} +8 -5
  99. package/dist/lib/tool-errors.js.map +1 -0
  100. package/dist/{tool-pipeline.d.ts → lib/tool-pipeline.d.ts} +1 -2
  101. package/dist/lib/tool-pipeline.d.ts.map +1 -0
  102. package/dist/{tool-pipeline.js → lib/tool-pipeline.js} +11 -27
  103. package/dist/lib/tool-pipeline.js.map +1 -0
  104. package/dist/{tool-progress.d.ts → lib/tool-progress.d.ts} +1 -2
  105. package/dist/lib/tool-progress.d.ts.map +1 -0
  106. package/dist/{tool-progress.js → lib/tool-progress.js} +27 -21
  107. package/dist/lib/tool-progress.js.map +1 -0
  108. package/dist/lib/type-guards.d.ts.map +1 -0
  109. package/dist/{type-guards.js → lib/type-guards.js} +3 -4
  110. package/dist/lib/type-guards.js.map +1 -0
  111. package/dist/{prompts.d.ts → prompts/index.d.ts} +1 -1
  112. package/dist/prompts/index.d.ts.map +1 -0
  113. package/dist/{prompts.js → prompts/index.js} +13 -13
  114. package/dist/prompts/index.js.map +1 -0
  115. package/dist/{resources.d.ts → resources/index.d.ts} +1 -1
  116. package/dist/resources/index.d.ts.map +1 -0
  117. package/dist/{resources.js → resources/index.js} +30 -34
  118. package/dist/resources/index.js.map +1 -0
  119. package/dist/resources/instructions.d.ts.map +1 -0
  120. package/dist/resources/instructions.js +43 -0
  121. package/dist/resources/instructions.js.map +1 -0
  122. package/dist/schemas/inputs.d.ts +8 -0
  123. package/dist/schemas/inputs.d.ts.map +1 -0
  124. package/dist/schemas/inputs.js +25 -0
  125. package/dist/schemas/inputs.js.map +1 -0
  126. package/dist/schemas/outputs.d.ts +24 -0
  127. package/dist/schemas/outputs.d.ts.map +1 -0
  128. package/dist/schemas/outputs.js +78 -0
  129. package/dist/schemas/outputs.js.map +1 -0
  130. package/dist/server.d.ts.map +1 -1
  131. package/dist/server.js +31 -26
  132. package/dist/server.js.map +1 -1
  133. package/dist/tasks/execution.d.ts.map +1 -1
  134. package/dist/tasks/execution.js +105 -63
  135. package/dist/tasks/execution.js.map +1 -1
  136. package/dist/tasks/manager.d.ts +10 -0
  137. package/dist/tasks/manager.d.ts.map +1 -1
  138. package/dist/tasks/manager.js +62 -54
  139. package/dist/tasks/manager.js.map +1 -1
  140. package/dist/tasks/owner.d.ts +4 -4
  141. package/dist/tasks/owner.d.ts.map +1 -1
  142. package/dist/tasks/owner.js +9 -15
  143. package/dist/tasks/owner.js.map +1 -1
  144. package/dist/tasks/tool-registry.d.ts +12 -0
  145. package/dist/tasks/tool-registry.d.ts.map +1 -0
  146. package/dist/tasks/tool-registry.js +14 -0
  147. package/dist/tasks/tool-registry.js.map +1 -0
  148. package/dist/tools/fetch-url.d.ts +29 -0
  149. package/dist/tools/fetch-url.d.ts.map +1 -0
  150. package/dist/{tools.js → tools/fetch-url.js} +120 -167
  151. package/dist/tools/fetch-url.js.map +1 -0
  152. package/dist/tools/index.d.ts +3 -0
  153. package/dist/tools/index.d.ts.map +1 -0
  154. package/dist/tools/index.js +5 -0
  155. package/dist/tools/index.js.map +1 -0
  156. package/dist/transform/transform.d.ts.map +1 -1
  157. package/dist/transform/transform.js +164 -176
  158. package/dist/transform/transform.js.map +1 -1
  159. package/dist/transform/worker-pool.d.ts.map +1 -1
  160. package/dist/transform/worker-pool.js +9 -11
  161. package/dist/transform/worker-pool.js.map +1 -1
  162. package/dist/transform/workers/shared.d.ts +8 -0
  163. package/dist/transform/workers/shared.d.ts.map +1 -0
  164. package/dist/transform/workers/shared.js +131 -0
  165. package/dist/transform/workers/shared.js.map +1 -0
  166. package/dist/transform/workers/transform-child.js +5 -132
  167. package/dist/transform/workers/transform-child.js.map +1 -1
  168. package/dist/transform/workers/transform-worker.js +7 -125
  169. package/dist/transform/workers/transform-worker.js.map +1 -1
  170. package/package.json +8 -7
  171. package/dist/cache.d.ts.map +0 -1
  172. package/dist/cache.js.map +0 -1
  173. package/dist/config.d.ts.map +0 -1
  174. package/dist/config.js.map +0 -1
  175. package/dist/crypto.d.ts.map +0 -1
  176. package/dist/crypto.js.map +0 -1
  177. package/dist/dom-noise-removal.d.ts.map +0 -1
  178. package/dist/dom-noise-removal.js.map +0 -1
  179. package/dist/download.d.ts.map +0 -1
  180. package/dist/download.js.map +0 -1
  181. package/dist/errors.d.ts.map +0 -1
  182. package/dist/errors.js.map +0 -1
  183. package/dist/examples/mcp-fetch-url-client.js +0 -329
  184. package/dist/examples/mcp-fetch-url-client.js.map +0 -1
  185. package/dist/fetch-content.d.ts.map +0 -1
  186. package/dist/fetch-content.js.map +0 -1
  187. package/dist/fetch-stream.d.ts.map +0 -1
  188. package/dist/fetch-stream.js.map +0 -1
  189. package/dist/fetch.d.ts.map +0 -1
  190. package/dist/fetch.js.map +0 -1
  191. package/dist/host-normalization.d.ts.map +0 -1
  192. package/dist/host-normalization.js.map +0 -1
  193. package/dist/instructions.d.ts.map +0 -1
  194. package/dist/instructions.js +0 -108
  195. package/dist/instructions.js.map +0 -1
  196. package/dist/ip-blocklist.d.ts.map +0 -1
  197. package/dist/ip-blocklist.js.map +0 -1
  198. package/dist/json.d.ts.map +0 -1
  199. package/dist/json.js.map +0 -1
  200. package/dist/language-detection.d.ts.map +0 -1
  201. package/dist/language-detection.js.map +0 -1
  202. package/dist/markdown-cleanup.d.ts.map +0 -1
  203. package/dist/markdown-cleanup.js.map +0 -1
  204. package/dist/mcp-validator.d.ts.map +0 -1
  205. package/dist/mcp-validator.js.map +0 -1
  206. package/dist/mcp.d.ts.map +0 -1
  207. package/dist/mcp.js.map +0 -1
  208. package/dist/observability.d.ts.map +0 -1
  209. package/dist/observability.js.map +0 -1
  210. package/dist/prompts.d.ts.map +0 -1
  211. package/dist/prompts.js.map +0 -1
  212. package/dist/resources.d.ts.map +0 -1
  213. package/dist/resources.js.map +0 -1
  214. package/dist/server-tuning.d.ts.map +0 -1
  215. package/dist/server-tuning.js.map +0 -1
  216. package/dist/session.d.ts.map +0 -1
  217. package/dist/session.js.map +0 -1
  218. package/dist/timer-utils.d.ts +0 -6
  219. package/dist/timer-utils.d.ts.map +0 -1
  220. package/dist/timer-utils.js +0 -30
  221. package/dist/timer-utils.js.map +0 -1
  222. package/dist/tool-errors.d.ts.map +0 -1
  223. package/dist/tool-errors.js.map +0 -1
  224. package/dist/tool-pipeline.d.ts.map +0 -1
  225. package/dist/tool-pipeline.js.map +0 -1
  226. package/dist/tool-progress.d.ts.map +0 -1
  227. package/dist/tool-progress.js.map +0 -1
  228. package/dist/tools.d.ts +0 -54
  229. package/dist/tools.d.ts.map +0 -1
  230. package/dist/tools.js.map +0 -1
  231. package/dist/type-guards.d.ts.map +0 -1
  232. package/dist/type-guards.js.map +0 -1
  233. /package/dist/{cache.d.ts → lib/cache.d.ts} +0 -0
  234. /package/dist/{crypto.d.ts → lib/crypto.d.ts} +0 -0
  235. /package/dist/{dom-noise-removal.d.ts → lib/dom-noise-removal.d.ts} +0 -0
  236. /package/dist/{download.d.ts → lib/download.d.ts} +0 -0
  237. /package/dist/{fetch-content.d.ts → lib/fetch-content.d.ts} +0 -0
  238. /package/dist/{fetch-stream.d.ts → lib/fetch-stream.d.ts} +0 -0
  239. /package/dist/{fetch.d.ts → lib/fetch.d.ts} +0 -0
  240. /package/dist/{host-normalization.d.ts → lib/host-normalization.d.ts} +0 -0
  241. /package/dist/{ip-blocklist.d.ts → lib/ip-blocklist.d.ts} +0 -0
  242. /package/dist/{json.d.ts → lib/json.d.ts} +0 -0
  243. /package/dist/{language-detection.d.ts → lib/language-detection.d.ts} +0 -0
  244. /package/dist/{mcp-validator.d.ts → lib/mcp-validator.d.ts} +0 -0
  245. /package/dist/{observability.d.ts → lib/observability.d.ts} +0 -0
  246. /package/dist/{server-tuning.d.ts → lib/server-tuning.d.ts} +0 -0
  247. /package/dist/{tool-errors.d.ts → lib/tool-errors.d.ts} +0 -0
  248. /package/dist/{type-guards.d.ts → lib/type-guards.d.ts} +0 -0
  249. /package/dist/{instructions.d.ts → resources/instructions.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
- import { setInterval as setIntervalPromise } from 'node:timers/promises';
1
+ import { getErrorMessage, isAbortError } from './errors.js';
2
2
  import { logInfo, logWarn, unregisterMcpSessionServerByServer, } from './observability.js';
3
+ import { startAbortableIntervalLoop } from './timer-utils.js';
3
4
  export function composeCloseHandlers(first, second) {
4
5
  if (!first)
5
6
  return second;
@@ -20,16 +21,10 @@ const SESSION_CLOSE_BATCH_SIZE = 10;
20
21
  function getCleanupIntervalMs(sessionTtlMs) {
21
22
  return Math.min(Math.max(Math.floor(sessionTtlMs / 2), MIN_CLEANUP_INTERVAL_MS), MAX_CLEANUP_INTERVAL_MS);
22
23
  }
23
- function formatError(error) {
24
- return error instanceof Error ? error.message : String(error);
25
- }
26
- function isAbortError(error) {
27
- return error instanceof Error && error.name === 'AbortError';
28
- }
29
24
  function handleSessionCleanupError(error) {
30
25
  if (isAbortError(error))
31
26
  return;
32
- logWarn('Session cleanup loop failed', { error: formatError(error) });
27
+ logWarn('Session cleanup loop failed', { error: getErrorMessage(error) });
33
28
  }
34
29
  function getRejectedSettledResult(result) {
35
30
  return result.status === 'rejected' ? result : undefined;
@@ -39,7 +34,7 @@ function logRejectedSettledResults(results, message) {
39
34
  const rejected = getRejectedSettledResult(result);
40
35
  if (!rejected)
41
36
  continue;
42
- logWarn(message, { error: formatError(rejected.reason) });
37
+ logWarn(message, { error: getErrorMessage(rejected.reason) });
43
38
  }
44
39
  }
45
40
  function isSessionExpired(session, now, sessionTtlMs) {
@@ -57,45 +52,58 @@ function chunkArray(items, size) {
57
52
  class SessionCleanupLoop {
58
53
  store;
59
54
  sessionTtlMs;
60
- constructor(store, sessionTtlMs) {
55
+ onEvictSession;
56
+ cleanupIntervalMsOverride;
57
+ constructor(store, sessionTtlMs, onEvictSession, cleanupIntervalMsOverride) {
61
58
  this.store = store;
62
59
  this.sessionTtlMs = sessionTtlMs;
60
+ this.onEvictSession = onEvictSession;
61
+ this.cleanupIntervalMsOverride = cleanupIntervalMsOverride;
63
62
  }
64
63
  start() {
65
64
  const controller = new AbortController();
66
- void this.run(controller.signal).catch(handleSessionCleanupError);
65
+ const intervalMs = this.cleanupIntervalMsOverride ?? getCleanupIntervalMs(this.sessionTtlMs);
66
+ startAbortableIntervalLoop(intervalMs, Date.now, {
67
+ signal: controller.signal,
68
+ onTick: async (getNow) => {
69
+ await this.handleTick(getNow(), controller.signal);
70
+ },
71
+ onError: handleSessionCleanupError,
72
+ });
67
73
  return controller;
68
74
  }
69
- async run(signal) {
70
- const intervalMs = getCleanupIntervalMs(this.sessionTtlMs);
71
- const ticks = setIntervalPromise(intervalMs, Date.now, {
72
- signal,
73
- ref: false,
74
- });
75
- for await (const getNow of ticks) {
76
- const now = getNow();
77
- const evicted = this.store.evictExpired();
78
- for (const batch of chunkArray(evicted, SESSION_CLOSE_BATCH_SIZE)) {
79
- const results = await Promise.allSettled(batch.map(async (session) => this.closeExpiredSession(session)));
80
- logRejectedSettledResults(results, 'Failed to process expired session cleanup task');
81
- if (signal.aborted)
82
- return;
75
+ async handleTick(now, signal) {
76
+ const evicted = this.store.evictExpired();
77
+ for (const batch of chunkArray(evicted, SESSION_CLOSE_BATCH_SIZE)) {
78
+ const results = await Promise.allSettled(batch.map(async (session) => this.closeExpiredSession(session)));
79
+ logRejectedSettledResults(results, 'Failed to process expired session cleanup task');
80
+ if (signal.aborted)
81
+ return;
82
+ }
83
+ if (evicted.length > 0) {
84
+ logInfo('Expired sessions evicted', {
85
+ evicted: evicted.length,
86
+ timestamp: new Date(now).toISOString(),
87
+ });
88
+ }
89
+ }
90
+ async closeExpiredSession(session) {
91
+ if (this.onEvictSession) {
92
+ try {
93
+ await this.onEvictSession(session);
83
94
  }
84
- if (evicted.length > 0) {
85
- logInfo('Expired sessions evicted', {
86
- evicted: evicted.length,
87
- timestamp: new Date(now).toISOString(),
95
+ catch (error) {
96
+ logWarn('Expired session pre-close hook failed', {
97
+ error: getErrorMessage(error),
88
98
  });
89
99
  }
90
100
  }
91
- }
92
- async closeExpiredSession(session) {
93
101
  try {
94
102
  unregisterMcpSessionServerByServer(session.server);
95
103
  }
96
104
  catch (error) {
97
105
  logWarn('Failed to unregister session server', {
98
- error: formatError(error),
106
+ error: getErrorMessage(error),
99
107
  });
100
108
  }
101
109
  const [transportResult, serverResult] = await Promise.allSettled([
@@ -111,12 +119,12 @@ class SessionCleanupLoop {
111
119
  if (error == null)
112
120
  return;
113
121
  logWarn(`Failed to close expired session ${target}`, {
114
- error: formatError(error),
122
+ error: getErrorMessage(error),
115
123
  });
116
124
  }
117
125
  }
118
- export function startSessionCleanupLoop(store, sessionTtlMs) {
119
- return new SessionCleanupLoop(store, sessionTtlMs).start();
126
+ export function startSessionCleanupLoop(store, sessionTtlMs, options) {
127
+ return new SessionCleanupLoop(store, sessionTtlMs, options?.onEvictSession, options?.cleanupIntervalMs).start();
120
128
  }
121
129
  function moveSessionToEnd(sessions, sessionId, session) {
122
130
  sessions.delete(sessionId);
@@ -171,7 +179,9 @@ class InMemorySessionStore {
171
179
  this.inflight += 1;
172
180
  }
173
181
  decrementInFlight() {
174
- this.inflight = Math.max(0, this.inflight - 1);
182
+ if (this.inflight === 0)
183
+ return;
184
+ this.inflight -= 1;
175
185
  }
176
186
  clear() {
177
187
  const entries = [...this.sessions.values()];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface CancellableTimeout<T> {
2
+ promise: Promise<T>;
3
+ cancel: () => void;
4
+ }
5
+ interface IntervalLoopOptions<T> {
6
+ signal: AbortSignal;
7
+ onTick: (value: T) => void | Promise<void>;
8
+ onError?: (error: unknown) => void;
9
+ }
10
+ export declare function createUnrefTimeout<T>(timeoutMs: number, value: T): CancellableTimeout<T>;
11
+ export declare function startAbortableIntervalLoop<T>(intervalMs: number, value: T, options: IntervalLoopOptions<T>): void;
12
+ export {};
13
+ //# sourceMappingURL=timer-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer-utils.d.ts","sourceRoot":"","sources":["../../src/lib/timer-utils.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,UAAU,mBAAmB,CAAC,CAAC;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAkBD,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,CAAC,GACP,kBAAkB,CAAC,CAAC,CAAC,CAcvB;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC9B,IAAI,CAiBN"}
@@ -0,0 +1,44 @@
1
+ import { setInterval as setIntervalPromise, setTimeout as setTimeoutPromise, } from 'node:timers/promises';
2
+ import { isAbortError } from './errors.js';
3
+ function createAbortSafeTimeoutPromise(timeoutMs, value, signal) {
4
+ return setTimeoutPromise(timeoutMs, value, {
5
+ ref: false,
6
+ signal,
7
+ }).catch((err) => {
8
+ if (isAbortError(err)) {
9
+ return new Promise(() => { });
10
+ }
11
+ throw err;
12
+ });
13
+ }
14
+ export function createUnrefTimeout(timeoutMs, value) {
15
+ const controller = new AbortController();
16
+ const promise = createAbortSafeTimeoutPromise(timeoutMs, value, controller.signal);
17
+ return {
18
+ promise,
19
+ cancel: () => {
20
+ controller.abort();
21
+ },
22
+ };
23
+ }
24
+ export function startAbortableIntervalLoop(intervalMs, value, options) {
25
+ const ticks = setIntervalPromise(intervalMs, value, {
26
+ signal: options.signal,
27
+ ref: false,
28
+ });
29
+ void (async () => {
30
+ try {
31
+ for await (const tickValue of ticks) {
32
+ await options.onTick(tickValue);
33
+ if (options.signal.aborted)
34
+ return;
35
+ }
36
+ }
37
+ catch (error) {
38
+ if (isAbortError(error))
39
+ return;
40
+ options.onError?.(error);
41
+ }
42
+ })();
43
+ }
44
+ //# sourceMappingURL=timer-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer-utils.js","sourceRoot":"","sources":["../../src/lib/timer-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,kBAAkB,EACjC,UAAU,IAAI,iBAAiB,GAChC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAa3C,SAAS,6BAA6B,CACpC,SAAiB,EACjB,KAAQ,EACR,MAAmB;IAEnB,OAAO,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE;QACzC,GAAG,EAAE,KAAK;QACV,MAAM;KACP,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACxB,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,OAAO,CAAI,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,KAAQ;IAER,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,6BAA6B,CAC3C,SAAS,EACT,KAAK,EACL,UAAU,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO;QACL,OAAO;QACP,MAAM,EAAE,GAAG,EAAE;YACX,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,UAAkB,EAClB,KAAQ,EACR,OAA+B;IAE/B,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,EAAE,KAAK,EAAE;QAClD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,KAAK;KACX,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;gBACpC,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAChC,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,YAAY,CAAC,KAAK,CAAC;gBAAE,OAAO;YAChC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-errors.d.ts","sourceRoot":"","sources":["../../src/lib/tool-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAQzE,KAAK,iBAAiB,GAAG,cAAc,GAAG;IACxC,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,GACA,iBAAiB,CAenB;AAoCD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,MAAM,EACX,eAAe,SAAqB,GACnC,iBAAiB,CAWnB"}
@@ -1,4 +1,4 @@
1
- import { FetchError, isSystemError } from './errors.js';
1
+ import { FetchError, isAbortError, isSystemError } from './errors.js';
2
2
  export function createToolErrorResponse(message, url, extra) {
3
3
  const errorContent = {
4
4
  error: message,
@@ -19,8 +19,11 @@ function isValidationError(error) {
19
19
  isSystemError(error) &&
20
20
  error.code === 'VALIDATION_ERROR');
21
21
  }
22
+ function isHandledToolError(error) {
23
+ return error instanceof FetchError || isValidationError(error);
24
+ }
22
25
  function resolveToolErrorMessage(error, fallbackMessage) {
23
- if (isValidationError(error) || error instanceof FetchError) {
26
+ if (isHandledToolError(error)) {
24
27
  return error.message;
25
28
  }
26
29
  if (error instanceof Error) {
@@ -29,11 +32,11 @@ function resolveToolErrorMessage(error, fallbackMessage) {
29
32
  return `${fallbackMessage}: Unknown error`;
30
33
  }
31
34
  function resolveToolErrorCode(error) {
32
- if (isValidationError(error))
33
- return 'VALIDATION_ERROR';
34
35
  if (error instanceof FetchError)
35
36
  return error.code;
36
- if (error instanceof Error && error.name === 'AbortError')
37
+ if (isValidationError(error))
38
+ return 'VALIDATION_ERROR';
39
+ if (isAbortError(error))
37
40
  return 'ABORTED';
38
41
  return 'FETCH_ERROR';
39
42
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-errors.js","sourceRoot":"","sources":["../../src/lib/tool-errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUtE,MAAM,UAAU,uBAAuB,CACrC,OAAe,EACf,GAAW,EACX,KAIC;IAED,MAAM,YAAY,GAA4B;QAC5C,KAAK,EAAE,OAAO;QACd,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG;QACH,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,SAAS;YACjC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;YAClC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,KAAK,YAAY,KAAK;QACtB,aAAa,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAClC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAc;IAEd,OAAO,KAAK,YAAY,UAAU,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAc,EACd,eAAuB;IAEvB,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,GAAG,eAAe,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,eAAe,iBAAiB,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IACnD,IAAI,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACxD,IAAI,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAc,EACd,GAAW,EACX,eAAe,GAAG,kBAAkB;IAEpC,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,uBAAuB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3C,IAAI;YACJ,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,uBAAuB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC"}
@@ -1,6 +1,5 @@
1
- import type { MarkdownTransformResult } from './transform/types.js';
1
+ import type { MarkdownTransformResult } from '../transform/types.js';
2
2
  type JsonRecord = Record<string, unknown>;
3
- export declare function readUnknown(obj: unknown, key: string): unknown;
4
3
  export declare function readString(obj: unknown, key: string): string | undefined;
5
4
  export declare function readNestedRecord(obj: unknown, keys: readonly string[]): JsonRecord | undefined;
6
5
  export declare function withSignal(signal?: AbortSignal): {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-pipeline.d.ts","sourceRoot":"","sources":["../../src/lib/tool-pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { z } from 'zod';
2
2
  import * as cache from './cache.js';
3
+ import { transformBufferToMarkdown } from '../transform/transform.js';
3
4
  import { config } from './config.js';
4
5
  import { getErrorMessage } from './errors.js';
5
6
  import { fetchNormalizedUrlBuffer, normalizeUrl, transformToRawUrl, } from './fetch.js';
6
7
  import { logDebug, logWarn } from './observability.js';
7
- import { transformBufferToMarkdown } from './transform/transform.js';
8
8
  import { isObject } from './type-guards.js';
9
9
  function asRecord(value) {
10
10
  return isObject(value) ? value : undefined;
11
11
  }
12
- export function readUnknown(obj, key) {
12
+ function readUnknown(obj, key) {
13
13
  const record = asRecord(obj);
14
14
  return record ? record[key] : undefined;
15
15
  }
@@ -147,29 +147,22 @@ const inlineLimiter = new InlineContentLimiter();
147
147
  function applyInlineContentLimit(content, inlineLimitOverride) {
148
148
  return inlineLimiter.apply(content, inlineLimitOverride);
149
149
  }
150
- function createUrlResolution(params) {
151
- return {
152
- normalizedUrl: params.normalizedUrl,
153
- originalUrl: params.originalUrl,
154
- transformed: params.transformed,
155
- };
156
- }
157
150
  function resolveNormalizedUrl(url) {
158
151
  const { normalizedUrl: validatedUrl } = normalizeUrl(url);
159
152
  const transformedResult = transformToRawUrl(validatedUrl);
160
153
  if (!transformedResult.transformed) {
161
- return createUrlResolution({
154
+ return {
162
155
  normalizedUrl: validatedUrl,
163
156
  originalUrl: validatedUrl,
164
157
  transformed: false,
165
- });
158
+ };
166
159
  }
167
160
  const { normalizedUrl: transformedUrl } = normalizeUrl(transformedResult.url);
168
- return createUrlResolution({
161
+ return {
169
162
  normalizedUrl: transformedUrl,
170
163
  originalUrl: validatedUrl,
171
164
  transformed: true,
172
- });
165
+ };
173
166
  }
174
167
  function logRawUrlTransformation(resolvedUrl) {
175
168
  if (!resolvedUrl.transformed)
@@ -276,14 +269,15 @@ export async function executeFetchPipeline(options) {
276
269
  }
277
270
  logDebug('Fetching URL', { url: resolvedUrl.normalizedUrl });
278
271
  const { buffer, encoding, truncated, finalUrl } = await fetchNormalizedUrlBuffer(resolvedUrl.normalizedUrl, withSignal(options.signal));
279
- const transformUrl = finalUrl || resolvedUrl.normalizedUrl;
272
+ const resolvedFinalUrl = finalUrl || resolvedUrl.normalizedUrl;
273
+ const transformUrl = resolvedFinalUrl;
280
274
  const data = await options.transform({ buffer, encoding, ...(truncated ? { truncated: true } : {}) }, transformUrl);
281
275
  if (cache.isEnabled()) {
282
276
  persistCache({
283
277
  cacheKey,
284
278
  data,
285
279
  serialize: options.serialize,
286
- normalizedUrl: finalUrl || resolvedUrl.normalizedUrl,
280
+ normalizedUrl: resolvedFinalUrl,
287
281
  cacheNamespace: options.cacheNamespace,
288
282
  });
289
283
  if (finalUrl && finalUrl !== resolvedUrl.normalizedUrl) {
@@ -312,18 +306,8 @@ export async function executeFetchPipeline(options) {
312
306
  function normalizeExtractedMetadata(metadata) {
313
307
  if (!metadata)
314
308
  return undefined;
315
- const normalized = {
316
- ...(metadata.title ? { title: metadata.title } : {}),
317
- ...(metadata.description ? { description: metadata.description } : {}),
318
- ...(metadata.author ? { author: metadata.author } : {}),
319
- ...(metadata.image ? { image: metadata.image } : {}),
320
- ...(metadata.favicon ? { favicon: metadata.favicon } : {}),
321
- ...(metadata.publishedAt ? { publishedAt: metadata.publishedAt } : {}),
322
- ...(metadata.modifiedAt ? { modifiedAt: metadata.modifiedAt } : {}),
323
- };
324
- if (Object.keys(normalized).length === 0)
325
- return undefined;
326
- return normalized;
309
+ const normalized = Object.fromEntries(Object.entries(metadata).filter(([, v]) => Boolean(v)));
310
+ return Object.keys(normalized).length > 0 ? normalized : undefined;
327
311
  }
328
312
  const cachedMarkdownSchema = z
329
313
  .object({
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-pipeline.js","sourceRoot":"","sources":["../../src/lib/tool-pipeline.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,8 @@ export interface ToolHandlerExtra {
24
24
  onProgress?: (progress: number, message: string) => void;
25
25
  }
26
26
  export interface ProgressReporter {
27
- report: (progress: number, message: string) => Promise<void>;
27
+ report: (progress: number, message: string) => void;
28
28
  }
29
- export declare const FETCH_PROGRESS_TOTAL = 4;
30
29
  export declare function createProgressReporter(extra?: ToolHandlerExtra): ProgressReporter;
31
30
  export {};
32
31
  //# sourceMappingURL=tool-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-progress.d.ts","sourceRoot":"","sources":["../../src/lib/tool-progress.ts"],"names":[],"mappings":"AAQA,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAErC,UAAU,WAAW;IACnB,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,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;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,wBAAwB,CAAC;IACjC,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAED,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;CAC1D;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAoJD,wBAAgB,sBAAsB,CACpC,KAAK,CAAC,EAAE,gBAAgB,GACvB,gBAAgB,CAElB"}
@@ -4,7 +4,7 @@ import { isObject } from './type-guards.js';
4
4
  /* -------------------------------------------------------------------------------------------------
5
5
  * Constants
6
6
  * ------------------------------------------------------------------------------------------------- */
7
- export const FETCH_PROGRESS_TOTAL = 4;
7
+ const FETCH_PROGRESS_TOTAL = 4;
8
8
  const PROGRESS_NOTIFICATION_TIMEOUT_MS = 5000;
9
9
  /* -------------------------------------------------------------------------------------------------
10
10
  * Helpers
@@ -41,11 +41,11 @@ class ToolProgressReporter {
41
41
  const relatedTaskMeta = resolveRelatedTaskMeta(extra?._meta);
42
42
  const onProgress = extra?.onProgress;
43
43
  if (token === null && !onProgress) {
44
- return { report: async () => { } };
44
+ return { report: () => { } };
45
45
  }
46
46
  return new ToolProgressReporter(token, sendNotification, relatedTaskMeta, onProgress);
47
47
  }
48
- async report(progress, message) {
48
+ report(progress, message) {
49
49
  if (this.isTerminal)
50
50
  return;
51
51
  const effectiveProgress = Math.max(progress, this.lastProgress);
@@ -54,7 +54,9 @@ class ToolProgressReporter {
54
54
  if (effectiveProgress >= FETCH_PROGRESS_TOTAL) {
55
55
  this.isTerminal = true;
56
56
  }
57
- if (this.onProgress) {
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) {
58
60
  try {
59
61
  this.onProgress(effectiveProgress, message);
60
62
  }
@@ -69,22 +71,7 @@ class ToolProgressReporter {
69
71
  if (!isIncreasing || this.token === null || !this.sendNotification)
70
72
  return;
71
73
  const { sendNotification } = this;
72
- const notification = {
73
- method: 'notifications/progress',
74
- params: {
75
- progressToken: this.token,
76
- progress: effectiveProgress,
77
- total: FETCH_PROGRESS_TOTAL,
78
- message,
79
- ...(this.relatedTaskMeta
80
- ? {
81
- _meta: {
82
- 'io.modelcontextprotocol/related-task': this.relatedTaskMeta,
83
- },
84
- }
85
- : {}),
86
- },
87
- };
74
+ const notification = this.createProgressNotification(this.token, effectiveProgress, message);
88
75
  this.reportQueue = this.reportQueue.then(async () => {
89
76
  let timeoutId;
90
77
  const timeoutPromise = new Promise((resolve) => {
@@ -114,7 +101,26 @@ class ToolProgressReporter {
114
101
  clearTimeout(timeoutId);
115
102
  }
116
103
  });
117
- await this.reportQueue;
104
+ // Do not await reportQueue: notifications drain asynchronously so the caller
105
+ // is not blocked for up to N × PROGRESS_NOTIFICATION_TIMEOUT_MS.
106
+ }
107
+ createProgressNotification(token, progress, message) {
108
+ return {
109
+ method: 'notifications/progress',
110
+ params: {
111
+ progressToken: token,
112
+ progress,
113
+ total: FETCH_PROGRESS_TOTAL,
114
+ message,
115
+ ...(this.relatedTaskMeta
116
+ ? {
117
+ _meta: {
118
+ 'io.modelcontextprotocol/related-task': this.relatedTaskMeta,
119
+ },
120
+ }
121
+ : {}),
122
+ },
123
+ };
118
124
  }
119
125
  }
120
126
  export function createProgressReporter(extra) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-progress.js","sourceRoot":"","sources":["../../src/lib/tool-progress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-guards.d.ts","sourceRoot":"","sources":["../../src/lib/type-guards.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CACtB,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAEvC;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAOtD;AAED,UAAU,QAAQ;IAChB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D"}
@@ -3,10 +3,9 @@ export function isObject(value) {
3
3
  }
4
4
  export function isError(value) {
5
5
  const { isError: isErrorFn } = Error;
6
- if (typeof isErrorFn === 'function') {
7
- return isErrorFn(value);
8
- }
9
- return value instanceof Error;
6
+ return typeof isErrorFn === 'function'
7
+ ? isErrorFn(value)
8
+ : value instanceof Error;
10
9
  }
11
10
  export function isLikeNode(value) {
12
11
  return isObject(value);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-guards.js","sourceRoot":"","sources":["../../src/lib/type-guards.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CACtB,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAE9B,CAAC;IACF,OAAO,OAAO,SAAS,KAAK,UAAU;QACpC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;AAC7B,CAAC;AAcD,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
@@ -5,4 +5,4 @@ interface IconInfo {
5
5
  }
6
6
  export declare function registerGetHelpPrompt(server: McpServer, instructions: string, iconInfo?: IconInfo): void;
7
7
  export {};
8
- //# sourceMappingURL=prompts.d.ts.map
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiBD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CAwBN"}
@@ -1,17 +1,17 @@
1
1
  function buildOptionalPromptIcons(iconInfo) {
2
- if (!iconInfo)
3
- return {};
4
- return {
5
- icons: [
6
- {
7
- src: iconInfo.src,
8
- mimeType: iconInfo.mimeType,
9
- },
10
- ],
11
- };
2
+ return iconInfo
3
+ ? {
4
+ icons: [
5
+ {
6
+ src: iconInfo.src,
7
+ mimeType: iconInfo.mimeType,
8
+ },
9
+ ],
10
+ }
11
+ : {};
12
12
  }
13
13
  export function registerGetHelpPrompt(server, instructions, iconInfo) {
14
- const description = 'Return Fetch URL server instructions: how to fetch URLs, handle truncated content, recover full content via cacheResourceUri, use task mode for long pages, and route errors by code.';
14
+ const description = 'Return Fetch URL server instructions: workflows, cache usage, task mode, and error handling.';
15
15
  server.registerPrompt('get-help', {
16
16
  title: 'Get Help',
17
17
  description,
@@ -20,7 +20,7 @@ export function registerGetHelpPrompt(server, instructions, iconInfo) {
20
20
  description,
21
21
  messages: [
22
22
  {
23
- role: 'user',
23
+ role: 'assistant',
24
24
  content: {
25
25
  type: 'text',
26
26
  text: instructions,
@@ -29,4 +29,4 @@ export function registerGetHelpPrompt(server, instructions, iconInfo) {
29
29
  ],
30
30
  }));
31
31
  }
32
- //# sourceMappingURL=prompts.js.map
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAQA,SAAS,wBAAwB,CAC/B,QAAmB;IAEnB,OAAO,QAAQ;QACb,CAAC,CAAC;YACE,KAAK,EAAE;gBACL;oBACE,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B;aACF;SACF;QACH,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,YAAoB,EACpB,QAAmB;IAEnB,MAAM,WAAW,GACf,8FAA8F,CAAC;IAEjG,MAAM,CAAC,cAAc,CACnB,UAAU,EACV;QACE,KAAK,EAAE,UAAU;QACjB,WAAW;QACX,GAAG,wBAAwB,CAAC,QAAQ,CAAC;KACtC,EACD,GAAoB,EAAE,CAAC,CAAC;QACtB,WAAW;QACX,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY;iBACnB;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -6,4 +6,4 @@ interface IconInfo {
6
6
  export declare function registerInstructionResource(server: McpServer, instructions: string, iconInfo?: IconInfo): void;
7
7
  export declare function registerCacheResourceTemplate(server: McpServer, iconInfo?: IconInfo): void;
8
8
  export {};
9
- //# sourceMappingURL=resources.d.ts.map
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEf,MAAM,yCAAyC,CAAC;AAuBjD,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2UD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CAwBN;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,SAAS,EACjB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CA4BN"}