@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.
- package/README.md +24 -21
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -12
- package/dist/cli.js.map +1 -1
- package/dist/http/auth.d.ts +15 -1
- package/dist/http/auth.d.ts.map +1 -1
- package/dist/http/auth.js +84 -17
- package/dist/http/auth.js.map +1 -1
- package/dist/http/health.d.ts +1 -1
- package/dist/http/health.d.ts.map +1 -1
- package/dist/http/health.js +5 -15
- package/dist/http/health.js.map +1 -1
- package/dist/http/helpers.d.ts +1 -8
- package/dist/http/helpers.d.ts.map +1 -1
- package/dist/http/helpers.js +13 -13
- package/dist/http/helpers.js.map +1 -1
- package/dist/http/native.d.ts.map +1 -1
- package/dist/http/native.js +126 -23
- package/dist/http/native.js.map +1 -1
- package/dist/http/rate-limit.d.ts +2 -1
- package/dist/http/rate-limit.d.ts.map +1 -1
- package/dist/http/rate-limit.js +33 -26
- package/dist/http/rate-limit.js.map +1 -1
- package/dist/index.js +22 -19
- package/dist/index.js.map +1 -1
- package/dist/lib/cache.d.ts.map +1 -0
- package/dist/{cache.js → lib/cache.js} +15 -11
- package/dist/lib/cache.js.map +1 -0
- package/dist/{config.d.ts → lib/config.d.ts} +2 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/{config.js → lib/config.js} +4 -2
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/crypto.d.ts.map +1 -0
- package/dist/{crypto.js → lib/crypto.js} +6 -3
- package/dist/lib/crypto.js.map +1 -0
- package/dist/lib/dom-noise-removal.d.ts.map +1 -0
- package/dist/{dom-noise-removal.js → lib/dom-noise-removal.js} +1 -2
- package/dist/lib/dom-noise-removal.js.map +1 -0
- package/dist/lib/download.d.ts.map +1 -0
- package/dist/{download.js → lib/download.js} +7 -7
- package/dist/lib/download.js.map +1 -0
- package/dist/{errors.d.ts → lib/errors.d.ts} +3 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/{errors.js → lib/errors.js} +8 -1
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/fetch-content.d.ts.map +1 -0
- package/dist/{fetch-content.js → lib/fetch-content.js} +3 -2
- package/dist/lib/fetch-content.js.map +1 -0
- package/dist/lib/fetch-stream.d.ts.map +1 -0
- package/dist/{fetch-stream.js → lib/fetch-stream.js} +3 -5
- package/dist/lib/fetch-stream.js.map +1 -0
- package/dist/lib/fetch.d.ts.map +1 -0
- package/dist/{fetch.js → lib/fetch.js} +100 -145
- package/dist/lib/fetch.js.map +1 -0
- package/dist/lib/host-normalization.d.ts.map +1 -0
- package/dist/{host-normalization.js → lib/host-normalization.js} +9 -9
- package/dist/lib/host-normalization.js.map +1 -0
- package/dist/lib/ip-blocklist.d.ts.map +1 -0
- package/dist/{ip-blocklist.js → lib/ip-blocklist.js} +11 -8
- package/dist/lib/ip-blocklist.js.map +1 -0
- package/dist/lib/json.d.ts.map +1 -0
- package/dist/{json.js → lib/json.js} +2 -5
- package/dist/lib/json.js.map +1 -0
- package/dist/lib/language-detection.d.ts.map +1 -0
- package/dist/{language-detection.js → lib/language-detection.js} +1 -7
- package/dist/lib/language-detection.js.map +1 -0
- package/dist/{markdown-cleanup.d.ts → lib/markdown-cleanup.d.ts} +1 -1
- package/dist/lib/markdown-cleanup.d.ts.map +1 -0
- package/dist/{markdown-cleanup.js → lib/markdown-cleanup.js} +2 -5
- package/dist/lib/markdown-cleanup.js.map +1 -0
- package/dist/lib/mcp-lifecycle.d.ts +5 -0
- package/dist/lib/mcp-lifecycle.d.ts.map +1 -0
- package/dist/lib/mcp-lifecycle.js +51 -0
- package/dist/lib/mcp-lifecycle.js.map +1 -0
- package/dist/lib/mcp-validator.d.ts.map +1 -0
- package/dist/{mcp-validator.js → lib/mcp-validator.js} +6 -12
- package/dist/lib/mcp-validator.js.map +1 -0
- package/dist/{mcp.d.ts → lib/mcp.d.ts} +1 -1
- package/dist/lib/mcp.d.ts.map +1 -0
- package/dist/{mcp.js → lib/mcp.js} +64 -37
- package/dist/lib/mcp.js.map +1 -0
- package/dist/lib/observability.d.ts.map +1 -0
- package/dist/{observability.js → lib/observability.js} +2 -1
- package/dist/lib/observability.js.map +1 -0
- package/dist/lib/server-tuning.d.ts.map +1 -0
- package/dist/{server-tuning.js → lib/server-tuning.js} +3 -2
- package/dist/lib/server-tuning.js.map +1 -0
- package/dist/{session.d.ts → lib/session.d.ts} +5 -1
- package/dist/lib/session.d.ts.map +1 -0
- package/dist/{session.js → lib/session.js} +46 -36
- package/dist/lib/session.js.map +1 -0
- package/dist/lib/timer-utils.d.ts +13 -0
- package/dist/lib/timer-utils.d.ts.map +1 -0
- package/dist/lib/timer-utils.js +44 -0
- package/dist/lib/timer-utils.js.map +1 -0
- package/dist/lib/tool-errors.d.ts.map +1 -0
- package/dist/{tool-errors.js → lib/tool-errors.js} +8 -5
- package/dist/lib/tool-errors.js.map +1 -0
- package/dist/{tool-pipeline.d.ts → lib/tool-pipeline.d.ts} +1 -2
- package/dist/lib/tool-pipeline.d.ts.map +1 -0
- package/dist/{tool-pipeline.js → lib/tool-pipeline.js} +11 -27
- package/dist/lib/tool-pipeline.js.map +1 -0
- package/dist/{tool-progress.d.ts → lib/tool-progress.d.ts} +1 -2
- package/dist/lib/tool-progress.d.ts.map +1 -0
- package/dist/{tool-progress.js → lib/tool-progress.js} +27 -21
- package/dist/lib/tool-progress.js.map +1 -0
- package/dist/lib/type-guards.d.ts.map +1 -0
- package/dist/{type-guards.js → lib/type-guards.js} +3 -4
- package/dist/lib/type-guards.js.map +1 -0
- package/dist/{prompts.d.ts → prompts/index.d.ts} +1 -1
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/{prompts.js → prompts/index.js} +13 -13
- package/dist/prompts/index.js.map +1 -0
- package/dist/{resources.d.ts → resources/index.d.ts} +1 -1
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/{resources.js → resources/index.js} +30 -34
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/instructions.d.ts.map +1 -0
- package/dist/resources/instructions.js +43 -0
- package/dist/resources/instructions.js.map +1 -0
- package/dist/schemas/inputs.d.ts +8 -0
- package/dist/schemas/inputs.d.ts.map +1 -0
- package/dist/schemas/inputs.js +25 -0
- package/dist/schemas/inputs.js.map +1 -0
- package/dist/schemas/outputs.d.ts +24 -0
- package/dist/schemas/outputs.d.ts.map +1 -0
- package/dist/schemas/outputs.js +78 -0
- package/dist/schemas/outputs.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +31 -26
- package/dist/server.js.map +1 -1
- package/dist/tasks/execution.d.ts.map +1 -1
- package/dist/tasks/execution.js +105 -63
- package/dist/tasks/execution.js.map +1 -1
- package/dist/tasks/manager.d.ts +10 -0
- package/dist/tasks/manager.d.ts.map +1 -1
- package/dist/tasks/manager.js +62 -54
- package/dist/tasks/manager.js.map +1 -1
- package/dist/tasks/owner.d.ts +4 -4
- package/dist/tasks/owner.d.ts.map +1 -1
- package/dist/tasks/owner.js +9 -15
- package/dist/tasks/owner.js.map +1 -1
- package/dist/tasks/tool-registry.d.ts +12 -0
- package/dist/tasks/tool-registry.d.ts.map +1 -0
- package/dist/tasks/tool-registry.js +14 -0
- package/dist/tasks/tool-registry.js.map +1 -0
- package/dist/tools/fetch-url.d.ts +29 -0
- package/dist/tools/fetch-url.d.ts.map +1 -0
- package/dist/{tools.js → tools/fetch-url.js} +120 -167
- package/dist/tools/fetch-url.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +5 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/transform/transform.d.ts.map +1 -1
- package/dist/transform/transform.js +164 -176
- package/dist/transform/transform.js.map +1 -1
- package/dist/transform/worker-pool.d.ts.map +1 -1
- package/dist/transform/worker-pool.js +9 -11
- package/dist/transform/worker-pool.js.map +1 -1
- package/dist/transform/workers/shared.d.ts +8 -0
- package/dist/transform/workers/shared.d.ts.map +1 -0
- package/dist/transform/workers/shared.js +131 -0
- package/dist/transform/workers/shared.js.map +1 -0
- package/dist/transform/workers/transform-child.js +5 -132
- package/dist/transform/workers/transform-child.js.map +1 -1
- package/dist/transform/workers/transform-worker.js +7 -125
- package/dist/transform/workers/transform-worker.js.map +1 -1
- package/package.json +8 -7
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/crypto.d.ts.map +0 -1
- package/dist/crypto.js.map +0 -1
- package/dist/dom-noise-removal.d.ts.map +0 -1
- package/dist/dom-noise-removal.js.map +0 -1
- package/dist/download.d.ts.map +0 -1
- package/dist/download.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/examples/mcp-fetch-url-client.js +0 -329
- package/dist/examples/mcp-fetch-url-client.js.map +0 -1
- package/dist/fetch-content.d.ts.map +0 -1
- package/dist/fetch-content.js.map +0 -1
- package/dist/fetch-stream.d.ts.map +0 -1
- package/dist/fetch-stream.js.map +0 -1
- package/dist/fetch.d.ts.map +0 -1
- package/dist/fetch.js.map +0 -1
- package/dist/host-normalization.d.ts.map +0 -1
- package/dist/host-normalization.js.map +0 -1
- package/dist/instructions.d.ts.map +0 -1
- package/dist/instructions.js +0 -108
- package/dist/instructions.js.map +0 -1
- package/dist/ip-blocklist.d.ts.map +0 -1
- package/dist/ip-blocklist.js.map +0 -1
- package/dist/json.d.ts.map +0 -1
- package/dist/json.js.map +0 -1
- package/dist/language-detection.d.ts.map +0 -1
- package/dist/language-detection.js.map +0 -1
- package/dist/markdown-cleanup.d.ts.map +0 -1
- package/dist/markdown-cleanup.js.map +0 -1
- package/dist/mcp-validator.d.ts.map +0 -1
- package/dist/mcp-validator.js.map +0 -1
- package/dist/mcp.d.ts.map +0 -1
- package/dist/mcp.js.map +0 -1
- package/dist/observability.d.ts.map +0 -1
- package/dist/observability.js.map +0 -1
- package/dist/prompts.d.ts.map +0 -1
- package/dist/prompts.js.map +0 -1
- package/dist/resources.d.ts.map +0 -1
- package/dist/resources.js.map +0 -1
- package/dist/server-tuning.d.ts.map +0 -1
- package/dist/server-tuning.js.map +0 -1
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js.map +0 -1
- package/dist/timer-utils.d.ts +0 -6
- package/dist/timer-utils.d.ts.map +0 -1
- package/dist/timer-utils.js +0 -30
- package/dist/timer-utils.js.map +0 -1
- package/dist/tool-errors.d.ts.map +0 -1
- package/dist/tool-errors.js.map +0 -1
- package/dist/tool-pipeline.d.ts.map +0 -1
- package/dist/tool-pipeline.js.map +0 -1
- package/dist/tool-progress.d.ts.map +0 -1
- package/dist/tool-progress.js.map +0 -1
- package/dist/tools.d.ts +0 -54
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js.map +0 -1
- package/dist/type-guards.d.ts.map +0 -1
- package/dist/type-guards.js.map +0 -1
- /package/dist/{cache.d.ts → lib/cache.d.ts} +0 -0
- /package/dist/{crypto.d.ts → lib/crypto.d.ts} +0 -0
- /package/dist/{dom-noise-removal.d.ts → lib/dom-noise-removal.d.ts} +0 -0
- /package/dist/{download.d.ts → lib/download.d.ts} +0 -0
- /package/dist/{fetch-content.d.ts → lib/fetch-content.d.ts} +0 -0
- /package/dist/{fetch-stream.d.ts → lib/fetch-stream.d.ts} +0 -0
- /package/dist/{fetch.d.ts → lib/fetch.d.ts} +0 -0
- /package/dist/{host-normalization.d.ts → lib/host-normalization.d.ts} +0 -0
- /package/dist/{ip-blocklist.d.ts → lib/ip-blocklist.d.ts} +0 -0
- /package/dist/{json.d.ts → lib/json.d.ts} +0 -0
- /package/dist/{language-detection.d.ts → lib/language-detection.d.ts} +0 -0
- /package/dist/{mcp-validator.d.ts → lib/mcp-validator.d.ts} +0 -0
- /package/dist/{observability.d.ts → lib/observability.d.ts} +0 -0
- /package/dist/{server-tuning.d.ts → lib/server-tuning.d.ts} +0 -0
- /package/dist/{tool-errors.d.ts → lib/tool-errors.d.ts} +0 -0
- /package/dist/{type-guards.d.ts → lib/type-guards.d.ts} +0 -0
- /package/dist/{instructions.d.ts → resources/instructions.d.ts} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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 (
|
|
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
|
|
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 '
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
-
|
|
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) =>
|
|
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
|
-
|
|
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:
|
|
44
|
+
return { report: () => { } };
|
|
45
45
|
}
|
|
46
46
|
return new ToolProgressReporter(token, sendNotification, relatedTaskMeta, onProgress);
|
|
47
47
|
}
|
|
48
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
7
|
-
|
|
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"}
|
|
@@ -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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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:
|
|
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: '
|
|
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=
|
|
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=
|
|
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"}
|