@j0hanz/fetch-url-mcp 1.2.0 → 1.3.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/dist/cache.d.ts +9 -3
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +44 -110
- package/dist/cache.js.map +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +9 -4
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +2 -3
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +18 -25
- package/dist/config.js.map +1 -0
- package/dist/crypto.d.ts +1 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +1 -0
- package/dist/crypto.js.map +1 -0
- package/dist/dom-noise-removal.d.ts +2 -1
- package/dist/dom-noise-removal.d.ts.map +1 -0
- package/dist/dom-noise-removal.js +8 -4
- package/dist/dom-noise-removal.js.map +1 -0
- package/dist/download.d.ts +4 -0
- package/dist/download.d.ts.map +1 -0
- package/dist/download.js +106 -0
- package/dist/download.js.map +1 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +1 -0
- package/dist/errors.js.map +1 -0
- package/dist/examples/mcp-fetch-url-client.js +19 -3
- package/dist/examples/mcp-fetch-url-client.js.map +1 -1
- package/dist/fetch-content.d.ts +1 -0
- package/dist/fetch-content.d.ts.map +1 -0
- package/dist/fetch-content.js +14 -14
- package/dist/fetch-content.js.map +1 -0
- package/dist/fetch-stream.d.ts +1 -0
- package/dist/fetch-stream.d.ts.map +1 -0
- package/dist/fetch-stream.js +6 -3
- package/dist/fetch-stream.js.map +1 -0
- package/dist/fetch.d.ts +1 -0
- package/dist/fetch.d.ts.map +1 -0
- package/dist/fetch.js +120 -51
- package/dist/fetch.js.map +1 -0
- package/dist/host-normalization.d.ts +1 -0
- package/dist/host-normalization.d.ts.map +1 -0
- package/dist/host-normalization.js +19 -6
- package/dist/host-normalization.js.map +1 -0
- package/dist/http/auth.d.ts +35 -0
- package/dist/http/auth.d.ts.map +1 -0
- package/dist/http/auth.js +283 -0
- package/dist/http/auth.js.map +1 -0
- package/dist/http/health.d.ts +7 -0
- package/dist/http/health.d.ts.map +1 -0
- package/dist/http/health.js +166 -0
- package/dist/http/health.js.map +1 -0
- package/dist/http/helpers.d.ts +58 -0
- package/dist/http/helpers.d.ts.map +1 -0
- package/dist/http/helpers.js +372 -0
- package/dist/http/helpers.js.map +1 -0
- package/dist/{http-native.d.ts → http/native.d.ts} +1 -0
- package/dist/http/native.d.ts.map +1 -0
- package/dist/http/native.js +529 -0
- package/dist/http/native.js.map +1 -0
- package/dist/http/rate-limit.d.ts +13 -0
- package/dist/http/rate-limit.d.ts.map +1 -0
- package/dist/http/rate-limit.js +81 -0
- package/dist/http/rate-limit.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -0
- package/dist/instructions.d.ts +2 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +108 -0
- package/dist/instructions.js.map +1 -0
- package/dist/ip-blocklist.d.ts +1 -0
- package/dist/ip-blocklist.d.ts.map +1 -0
- package/dist/ip-blocklist.js +2 -0
- package/dist/ip-blocklist.js.map +1 -0
- package/dist/json.d.ts +2 -1
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +19 -6
- package/dist/json.js.map +1 -0
- package/dist/language-detection.d.ts +1 -0
- package/dist/language-detection.d.ts.map +1 -0
- package/dist/language-detection.js +1 -0
- package/dist/language-detection.js.map +1 -0
- package/dist/markdown-cleanup.d.ts +2 -1
- package/dist/markdown-cleanup.d.ts.map +1 -0
- package/dist/markdown-cleanup.js +51 -52
- package/dist/markdown-cleanup.js.map +1 -0
- package/dist/mcp-validator.d.ts +1 -0
- package/dist/mcp-validator.d.ts.map +1 -0
- package/dist/mcp-validator.js +16 -8
- package/dist/mcp-validator.js.map +1 -0
- package/dist/mcp.d.ts +2 -2
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +17 -333
- package/dist/mcp.js.map +1 -0
- package/dist/observability.d.ts +2 -0
- package/dist/observability.d.ts.map +1 -0
- package/dist/observability.js +30 -5
- package/dist/observability.js.map +1 -0
- package/dist/prompts.d.ts +1 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +15 -3
- package/dist/prompts.js.map +1 -0
- package/dist/resources.d.ts +1 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +30 -23
- package/dist/resources.js.map +1 -0
- package/dist/server-tuning.d.ts +1 -0
- package/dist/server-tuning.d.ts.map +1 -0
- package/dist/server-tuning.js +11 -15
- package/dist/server-tuning.js.map +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +23 -23
- package/dist/server.js.map +1 -0
- package/dist/session.d.ts +1 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +55 -28
- package/dist/session.js.map +1 -0
- package/dist/tasks/execution.d.ts +42 -0
- package/dist/tasks/execution.d.ts.map +1 -0
- package/dist/tasks/execution.js +232 -0
- package/dist/tasks/execution.js.map +1 -0
- package/dist/{tasks.d.ts → tasks/manager.d.ts} +6 -0
- package/dist/tasks/manager.d.ts.map +1 -0
- package/dist/{tasks.js → tasks/manager.js} +86 -37
- package/dist/tasks/manager.js.map +1 -0
- package/dist/tasks/owner.d.ts +33 -0
- package/dist/tasks/owner.d.ts.map +1 -0
- package/dist/tasks/owner.js +99 -0
- package/dist/tasks/owner.js.map +1 -0
- package/dist/timer-utils.d.ts +1 -0
- package/dist/timer-utils.d.ts.map +1 -0
- package/dist/timer-utils.js +12 -5
- package/dist/timer-utils.js.map +1 -0
- package/dist/tool-errors.d.ts +12 -0
- package/dist/tool-errors.d.ts.map +1 -0
- package/dist/tool-errors.js +52 -0
- package/dist/tool-errors.js.map +1 -0
- package/dist/tool-pipeline.d.ts +72 -0
- package/dist/tool-pipeline.d.ts.map +1 -0
- package/dist/tool-pipeline.js +407 -0
- package/dist/tool-pipeline.js.map +1 -0
- package/dist/tool-progress.d.ts +32 -0
- package/dist/tool-progress.d.ts.map +1 -0
- package/dist/tool-progress.js +123 -0
- package/dist/tool-progress.js.map +1 -0
- package/dist/tools.d.ts +35 -111
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +93 -566
- package/dist/tools.js.map +1 -0
- package/dist/{transform.d.ts → transform/transform.d.ts} +2 -1
- package/dist/transform/transform.d.ts.map +1 -0
- package/dist/{transform.js → transform/transform.js} +73 -769
- package/dist/transform/transform.js.map +1 -0
- package/dist/{transform-types.d.ts → transform/types.d.ts} +1 -0
- package/dist/transform/types.d.ts.map +1 -0
- package/dist/{transform-types.js → transform/types.js} +1 -0
- package/dist/transform/types.js.map +1 -0
- package/dist/transform/worker-pool.d.ts +93 -0
- package/dist/transform/worker-pool.d.ts.map +1 -0
- package/dist/transform/worker-pool.js +759 -0
- package/dist/transform/worker-pool.js.map +1 -0
- package/dist/transform/workers/transform-child.d.ts +2 -0
- package/dist/transform/workers/transform-child.d.ts.map +1 -0
- package/dist/{workers → transform/workers}/transform-child.js +3 -1
- package/dist/transform/workers/transform-child.js.map +1 -0
- package/dist/transform/workers/transform-worker.d.ts +2 -0
- package/dist/transform/workers/transform-worker.d.ts.map +1 -0
- package/dist/{workers → transform/workers}/transform-worker.js +2 -1
- package/dist/transform/workers/transform-worker.js.map +1 -0
- package/dist/type-guards.d.ts +1 -0
- package/dist/type-guards.d.ts.map +1 -0
- package/dist/type-guards.js +1 -0
- package/dist/type-guards.js.map +1 -0
- package/package.json +6 -7
- package/dist/AGENTS.md +0 -152
- package/dist/http-native.js +0 -1320
- package/dist/instructions.md +0 -113
- package/dist/workers/transform-child.d.ts +0 -1
- package/dist/workers/transform-worker.d.ts +0 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { isObject } from '../type-guards.js';
|
|
2
|
+
function isRecord(value) {
|
|
3
|
+
return isObject(value);
|
|
4
|
+
}
|
|
5
|
+
export function compact(obj) {
|
|
6
|
+
const result = {};
|
|
7
|
+
for (const key of Object.keys(obj)) {
|
|
8
|
+
if (obj[key] !== undefined) {
|
|
9
|
+
result[key] = obj[key];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
function normalizeSendNotification(sendNotification) {
|
|
15
|
+
if (typeof sendNotification !== 'function')
|
|
16
|
+
return undefined;
|
|
17
|
+
const notify = sendNotification;
|
|
18
|
+
return async (notification) => {
|
|
19
|
+
await Promise.resolve(notify(notification));
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function normalizeAuthInfo(authInfo) {
|
|
23
|
+
if (!isObject(authInfo))
|
|
24
|
+
return undefined;
|
|
25
|
+
const { clientId, token } = authInfo;
|
|
26
|
+
const normalized = {};
|
|
27
|
+
if (typeof clientId === 'string')
|
|
28
|
+
normalized.clientId = clientId;
|
|
29
|
+
if (typeof token === 'string')
|
|
30
|
+
normalized.token = token;
|
|
31
|
+
return normalized.clientId || normalized.token ? normalized : undefined;
|
|
32
|
+
}
|
|
33
|
+
export function parseHandlerExtra(extra) {
|
|
34
|
+
if (!isObject(extra))
|
|
35
|
+
return undefined;
|
|
36
|
+
const parsed = {};
|
|
37
|
+
const { sessionId, authInfo, signal, requestId, sendNotification } = extra;
|
|
38
|
+
if (typeof sessionId === 'string')
|
|
39
|
+
parsed.sessionId = sessionId;
|
|
40
|
+
const normalizedAuthInfo = normalizeAuthInfo(authInfo);
|
|
41
|
+
if (normalizedAuthInfo) {
|
|
42
|
+
parsed.authInfo = normalizedAuthInfo;
|
|
43
|
+
}
|
|
44
|
+
if (signal instanceof AbortSignal)
|
|
45
|
+
parsed.signal = signal;
|
|
46
|
+
if (typeof requestId === 'string' || typeof requestId === 'number') {
|
|
47
|
+
parsed.requestId = requestId;
|
|
48
|
+
}
|
|
49
|
+
const normalizedSendNotification = normalizeSendNotification(sendNotification);
|
|
50
|
+
if (normalizedSendNotification) {
|
|
51
|
+
parsed.sendNotification = normalizedSendNotification;
|
|
52
|
+
}
|
|
53
|
+
return parsed;
|
|
54
|
+
}
|
|
55
|
+
export function resolveTaskOwnerKey(extra) {
|
|
56
|
+
if (extra?.sessionId)
|
|
57
|
+
return `session:${extra.sessionId}`;
|
|
58
|
+
if (extra?.authInfo?.clientId)
|
|
59
|
+
return `client:${extra.authInfo.clientId}`;
|
|
60
|
+
if (extra?.authInfo?.token)
|
|
61
|
+
return `token:${extra.authInfo.token}`;
|
|
62
|
+
return 'default';
|
|
63
|
+
}
|
|
64
|
+
export function resolveToolCallContext(extra) {
|
|
65
|
+
const context = {
|
|
66
|
+
ownerKey: resolveTaskOwnerKey(extra),
|
|
67
|
+
};
|
|
68
|
+
if (extra?.signal)
|
|
69
|
+
context.signal = extra.signal;
|
|
70
|
+
if (extra?.requestId !== undefined)
|
|
71
|
+
context.requestId = extra.requestId;
|
|
72
|
+
if (extra?.sendNotification)
|
|
73
|
+
context.sendNotification = extra.sendNotification;
|
|
74
|
+
return context;
|
|
75
|
+
}
|
|
76
|
+
export function isServerResult(value) {
|
|
77
|
+
return (isObject(value) && Array.isArray(value.content));
|
|
78
|
+
}
|
|
79
|
+
export function tryReadToolStructuredError(value) {
|
|
80
|
+
if (!isObject(value))
|
|
81
|
+
return undefined;
|
|
82
|
+
const record = value;
|
|
83
|
+
if (!Array.isArray(record.content) || record.content.length === 0)
|
|
84
|
+
return undefined;
|
|
85
|
+
const firstBlock = record.content[0];
|
|
86
|
+
if (!isObject(firstBlock) ||
|
|
87
|
+
firstBlock['type'] !== 'text' ||
|
|
88
|
+
typeof firstBlock['text'] !== 'string')
|
|
89
|
+
return undefined;
|
|
90
|
+
try {
|
|
91
|
+
const parsed = JSON.parse(firstBlock['text']);
|
|
92
|
+
return typeof parsed.error === 'string' ? parsed.error : undefined;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export { isRecord };
|
|
99
|
+
//# sourceMappingURL=owner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner.js","sourceRoot":"","sources":["../../src/tasks/owner.ts"],"names":[],"mappings":"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"}
|
package/dist/timer-utils.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timer-utils.d.ts","sourceRoot":"","sources":["../src/timer-utils.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AA0BD,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,CAAC,GACP,kBAAkB,CAAC,CAAC,CAAC,CAcvB"}
|
package/dist/timer-utils.js
CHANGED
|
@@ -3,17 +3,23 @@ import { isError } from './type-guards.js';
|
|
|
3
3
|
function isAbortError(error) {
|
|
4
4
|
return isError(error) && error.name === 'AbortError';
|
|
5
5
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
function createPendingPromise() {
|
|
7
|
+
return new Promise(() => { });
|
|
8
|
+
}
|
|
9
|
+
function createAbortSafeTimeoutPromise(timeoutMs, value, signal) {
|
|
10
|
+
return setTimeoutPromise(timeoutMs, value, {
|
|
9
11
|
ref: false,
|
|
10
|
-
signal
|
|
12
|
+
signal,
|
|
11
13
|
}).catch((err) => {
|
|
12
14
|
if (isAbortError(err)) {
|
|
13
|
-
return
|
|
15
|
+
return createPendingPromise();
|
|
14
16
|
}
|
|
15
17
|
throw err;
|
|
16
18
|
});
|
|
19
|
+
}
|
|
20
|
+
export function createUnrefTimeout(timeoutMs, value) {
|
|
21
|
+
const controller = new AbortController();
|
|
22
|
+
const promise = createAbortSafeTimeoutPromise(timeoutMs, value, controller.signal);
|
|
17
23
|
return {
|
|
18
24
|
promise,
|
|
19
25
|
cancel: () => {
|
|
@@ -21,3 +27,4 @@ export function createUnrefTimeout(timeoutMs, value) {
|
|
|
21
27
|
},
|
|
22
28
|
};
|
|
23
29
|
}
|
|
30
|
+
//# sourceMappingURL=timer-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timer-utils.js","sourceRoot":"","sources":["../src/timer-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAO3C,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;AACvD,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,IAAI,OAAO,CAAI,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,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,oBAAoB,EAAK,CAAC;QACnC,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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
type ToolErrorResponse = CallToolResult & {
|
|
3
|
+
isError: true;
|
|
4
|
+
};
|
|
5
|
+
export declare function createToolErrorResponse(message: string, url: string, extra?: {
|
|
6
|
+
code?: string;
|
|
7
|
+
statusCode?: number;
|
|
8
|
+
details?: Record<string, unknown>;
|
|
9
|
+
}): ToolErrorResponse;
|
|
10
|
+
export declare function handleToolError(error: unknown, url: string, fallbackMessage?: string): ToolErrorResponse;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=tool-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-errors.d.ts","sourceRoot":"","sources":["../src/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;AA8BD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,MAAM,EACX,eAAe,SAAqB,GACnC,iBAAiB,CAWnB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { FetchError, isSystemError } from './errors.js';
|
|
2
|
+
export function createToolErrorResponse(message, url, extra) {
|
|
3
|
+
const errorContent = {
|
|
4
|
+
error: message,
|
|
5
|
+
...(extra?.code ? { code: extra.code } : {}),
|
|
6
|
+
url,
|
|
7
|
+
...(extra?.statusCode !== undefined
|
|
8
|
+
? { statusCode: extra.statusCode }
|
|
9
|
+
: {}),
|
|
10
|
+
...(extra?.details ? { details: extra.details } : {}),
|
|
11
|
+
};
|
|
12
|
+
return {
|
|
13
|
+
content: [{ type: 'text', text: JSON.stringify(errorContent) }],
|
|
14
|
+
isError: true,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function isValidationError(error) {
|
|
18
|
+
return (error instanceof Error &&
|
|
19
|
+
isSystemError(error) &&
|
|
20
|
+
error.code === 'VALIDATION_ERROR');
|
|
21
|
+
}
|
|
22
|
+
function resolveToolErrorMessage(error, fallbackMessage) {
|
|
23
|
+
if (isValidationError(error) || error instanceof FetchError) {
|
|
24
|
+
return error.message;
|
|
25
|
+
}
|
|
26
|
+
if (error instanceof Error) {
|
|
27
|
+
return `${fallbackMessage}: ${error.message}`;
|
|
28
|
+
}
|
|
29
|
+
return `${fallbackMessage}: Unknown error`;
|
|
30
|
+
}
|
|
31
|
+
function resolveToolErrorCode(error) {
|
|
32
|
+
if (isValidationError(error))
|
|
33
|
+
return 'VALIDATION_ERROR';
|
|
34
|
+
if (error instanceof FetchError)
|
|
35
|
+
return error.code;
|
|
36
|
+
if (error instanceof Error && error.name === 'AbortError')
|
|
37
|
+
return 'ABORTED';
|
|
38
|
+
return 'FETCH_ERROR';
|
|
39
|
+
}
|
|
40
|
+
export function handleToolError(error, url, fallbackMessage = 'Operation failed') {
|
|
41
|
+
const message = resolveToolErrorMessage(error, fallbackMessage);
|
|
42
|
+
const code = resolveToolErrorCode(error);
|
|
43
|
+
if (error instanceof FetchError) {
|
|
44
|
+
return createToolErrorResponse(message, url, {
|
|
45
|
+
code,
|
|
46
|
+
statusCode: error.statusCode,
|
|
47
|
+
details: error.details,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return createToolErrorResponse(message, url, { code });
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=tool-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-errors.js","sourceRoot":"","sources":["../src/tool-errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUxD,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,uBAAuB,CAC9B,KAAc,EACd,eAAuB;IAEvB,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAC5D,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,iBAAiB,CAAC,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC;IACxD,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IACnD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IAC5E,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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { MarkdownTransformResult } from './transform/types.js';
|
|
2
|
+
type JsonRecord = Record<string, unknown>;
|
|
3
|
+
export declare function readUnknown(obj: unknown, key: string): unknown;
|
|
4
|
+
export declare function readString(obj: unknown, key: string): string | undefined;
|
|
5
|
+
export declare function readNestedRecord(obj: unknown, keys: readonly string[]): JsonRecord | undefined;
|
|
6
|
+
export declare function withSignal(signal?: AbortSignal): {
|
|
7
|
+
signal: AbortSignal;
|
|
8
|
+
} | Record<string, never>;
|
|
9
|
+
export declare const TRUNCATION_MARKER = "...[truncated]";
|
|
10
|
+
export interface InlineContentResult {
|
|
11
|
+
content?: string;
|
|
12
|
+
contentSize: number;
|
|
13
|
+
truncated?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function appendTruncationMarker(content: string, marker: string): string;
|
|
16
|
+
interface FetchPipelineOptions<T> {
|
|
17
|
+
url: string;
|
|
18
|
+
cacheNamespace: string;
|
|
19
|
+
signal?: AbortSignal;
|
|
20
|
+
cacheVary?: Record<string, unknown> | string;
|
|
21
|
+
forceRefresh?: boolean;
|
|
22
|
+
transform: (input: {
|
|
23
|
+
buffer: Uint8Array;
|
|
24
|
+
encoding: string;
|
|
25
|
+
truncated?: boolean;
|
|
26
|
+
}, url: string) => T | Promise<T>;
|
|
27
|
+
serialize?: (result: T) => string;
|
|
28
|
+
deserialize?: (cached: string) => T | undefined;
|
|
29
|
+
}
|
|
30
|
+
export interface PipelineResult<T> {
|
|
31
|
+
data: T;
|
|
32
|
+
fromCache: boolean;
|
|
33
|
+
url: string;
|
|
34
|
+
originalUrl?: string;
|
|
35
|
+
finalUrl?: string;
|
|
36
|
+
fetchedAt: string;
|
|
37
|
+
cacheKey?: string | null;
|
|
38
|
+
}
|
|
39
|
+
export declare function executeFetchPipeline<T>(options: FetchPipelineOptions<T>): Promise<PipelineResult<T>>;
|
|
40
|
+
export type MarkdownPipelineResult = MarkdownTransformResult & {
|
|
41
|
+
readonly content: string;
|
|
42
|
+
};
|
|
43
|
+
export declare function parseCachedMarkdownResult(cached: string): MarkdownPipelineResult | undefined;
|
|
44
|
+
export declare const markdownTransform: (input: {
|
|
45
|
+
buffer: Uint8Array;
|
|
46
|
+
encoding: string;
|
|
47
|
+
truncated?: boolean;
|
|
48
|
+
}, url: string, signal?: AbortSignal, skipNoiseRemoval?: boolean) => Promise<MarkdownPipelineResult>;
|
|
49
|
+
export declare function serializeMarkdownResult(result: MarkdownPipelineResult): string;
|
|
50
|
+
interface SharedFetchOptions {
|
|
51
|
+
readonly url: string;
|
|
52
|
+
readonly signal?: AbortSignal;
|
|
53
|
+
readonly cacheVary?: Record<string, unknown> | string;
|
|
54
|
+
readonly forceRefresh?: boolean;
|
|
55
|
+
readonly maxInlineChars?: number;
|
|
56
|
+
readonly transform: (input: {
|
|
57
|
+
buffer: Uint8Array;
|
|
58
|
+
encoding: string;
|
|
59
|
+
truncated?: boolean;
|
|
60
|
+
}, normalizedUrl: string) => MarkdownPipelineResult | Promise<MarkdownPipelineResult>;
|
|
61
|
+
readonly serialize?: (result: MarkdownPipelineResult) => string;
|
|
62
|
+
readonly deserialize?: (cached: string) => MarkdownPipelineResult | undefined;
|
|
63
|
+
}
|
|
64
|
+
interface SharedFetchDeps {
|
|
65
|
+
readonly executeFetchPipeline?: typeof executeFetchPipeline;
|
|
66
|
+
}
|
|
67
|
+
export declare function performSharedFetch(options: SharedFetchOptions, deps?: SharedFetchDeps): Promise<{
|
|
68
|
+
pipeline: PipelineResult<MarkdownPipelineResult>;
|
|
69
|
+
inlineResult: InlineContentResult;
|
|
70
|
+
}>;
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=tool-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-pipeline.d.ts","sourceRoot":"","sources":["../src/tool-pipeline.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAOpE,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAM1C,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxE;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,UAAU,GAAG,SAAS,CAOxB;AAUD,wBAAgB,UAAU,CACxB,MAAM,CAAC,EAAE,WAAW,GACnB;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAEjD;AAMD,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA2ED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAkBR;AAwDD,UAAU,oBAAoB,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,CACT,KAAK,EAAE;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,EACpE,GAAG,EAAE,MAAM,KACR,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AA6KD,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAuE5B;AAMD,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAwDF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GACb,sBAAsB,GAAG,SAAS,CAsBpC;AAED,eAAO,MAAM,iBAAiB,GAC5B,OAAO;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,EACpE,KAAK,MAAM,EACX,SAAS,WAAW,EACpB,mBAAmB,OAAO,KACzB,OAAO,CAAC,sBAAsB,CAUhC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAWR;AAMD,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,CAClB,KAAK,EAAE;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,EACpE,aAAa,EAAE,MAAM,KAClB,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,MAAM,CAAC;IAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,sBAAsB,GAAG,SAAS,CAAC;CAC/E;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,oBAAoB,CAAC;CAC7D;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC;IACT,QAAQ,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IACjD,YAAY,EAAE,mBAAmB,CAAC;CACnC,CAAC,CAqBD"}
|