@j0hanz/fetch-url-mcp 1.10.2 → 1.10.4
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/http/native.d.ts.map +1 -1
- package/dist/http/native.js +20 -26
- package/dist/http/session-teardown.d.ts +17 -0
- package/dist/http/session-teardown.d.ts.map +1 -0
- package/dist/http/session-teardown.js +30 -0
- package/dist/lib/code-lang.d.ts.map +1 -1
- package/dist/lib/code-lang.js +2 -8
- package/dist/lib/core.d.ts.map +1 -1
- package/dist/lib/core.js +2 -0
- package/dist/lib/dom-prep.d.ts +2 -0
- package/dist/lib/dom-prep.d.ts.map +1 -1
- package/dist/lib/dom-prep.js +150 -139
- package/dist/lib/md-cleanup.d.ts.map +1 -1
- package/dist/lib/md-cleanup.js +53 -20
- package/dist/lib/progress.d.ts.map +1 -1
- package/dist/lib/progress.js +59 -32
- package/dist/lib/sdk-interop.d.ts +8 -0
- package/dist/lib/sdk-interop.d.ts.map +1 -0
- package/dist/lib/sdk-interop.js +73 -0
- package/dist/lib/task-handlers.d.ts +0 -2
- package/dist/lib/task-handlers.d.ts.map +1 -1
- package/dist/lib/task-handlers.js +9 -94
- package/dist/resources/index.js +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +10 -3
- package/dist/tasks/call-contract.d.ts +25 -0
- package/dist/tasks/call-contract.d.ts.map +1 -0
- package/dist/tasks/call-contract.js +58 -0
- package/dist/tasks/cursor-codec.d.ts +5 -0
- package/dist/tasks/cursor-codec.d.ts.map +1 -0
- package/dist/tasks/cursor-codec.js +41 -0
- package/dist/tasks/execution.d.ts +1 -20
- package/dist/tasks/execution.d.ts.map +1 -1
- package/dist/tasks/execution.js +7 -32
- package/dist/tasks/manager.d.ts +1 -5
- package/dist/tasks/manager.d.ts.map +1 -1
- package/dist/tasks/manager.js +16 -144
- package/dist/tasks/owner.d.ts +12 -2
- package/dist/tasks/owner.d.ts.map +1 -1
- package/dist/tasks/owner.js +52 -3
- package/dist/tasks/tool-registry.d.ts +1 -0
- package/dist/tasks/tool-registry.d.ts.map +1 -1
- package/dist/tasks/waiters.d.ts +27 -0
- package/dist/tasks/waiters.d.ts.map +1 -0
- package/dist/tasks/waiters.js +113 -0
- package/dist/tools/fetch-url-progress.d.ts +17 -0
- package/dist/tools/fetch-url-progress.d.ts.map +1 -0
- package/dist/tools/fetch-url-progress.js +78 -0
- package/dist/tools/fetch-url.d.ts +5 -9
- package/dist/tools/fetch-url.d.ts.map +1 -1
- package/dist/tools/fetch-url.js +43 -96
- package/dist/transform/next-flight.d.ts +2 -0
- package/dist/transform/next-flight.d.ts.map +1 -0
- package/dist/transform/next-flight.js +285 -0
- package/dist/transform/title-policy.d.ts +12 -0
- package/dist/transform/title-policy.d.ts.map +1 -0
- package/dist/transform/title-policy.js +85 -0
- package/dist/transform/transform.d.ts.map +1 -1
- package/dist/transform/transform.js +62 -475
- package/package.json +4 -4
- package/dist/tools/index.d.ts +0 -3
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -4
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
const TITLE_PART_SEPARATOR = /\s*(?:[-|:•·]|–|—)\s*/u;
|
|
2
|
+
const LEADING_HEADING_PATTERN = /^(#{1,6})\s+(.+?)\s*$/;
|
|
3
|
+
const HEADING_SCAN_LIMIT = 12;
|
|
4
|
+
export function normalizeSyntheticTitleToken(value) {
|
|
5
|
+
return (value ?? '').replace(/\s+/g, ' ').trim().toLowerCase();
|
|
6
|
+
}
|
|
7
|
+
export function shouldPreferPrimaryHeadingTitle(primaryHeading, title) {
|
|
8
|
+
const primary = normalizeSyntheticTitleToken(primaryHeading);
|
|
9
|
+
if (!primary)
|
|
10
|
+
return false;
|
|
11
|
+
const normalizedTitle = normalizeSyntheticTitleToken(title);
|
|
12
|
+
if (!normalizedTitle)
|
|
13
|
+
return true;
|
|
14
|
+
if (normalizedTitle === primary)
|
|
15
|
+
return true;
|
|
16
|
+
return normalizedTitle
|
|
17
|
+
.split(TITLE_PART_SEPARATOR)
|
|
18
|
+
.some((part) => part === primary);
|
|
19
|
+
}
|
|
20
|
+
export function isGithubRepositoryRootUrl(url) {
|
|
21
|
+
let parsed;
|
|
22
|
+
try {
|
|
23
|
+
parsed = new URL(url);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
const hostname = parsed.hostname.toLowerCase();
|
|
29
|
+
if (hostname !== 'github.com' && hostname !== 'www.github.com') {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return parsed.pathname.split('/').filter(Boolean).length === 2;
|
|
33
|
+
}
|
|
34
|
+
function normalizeHeadingText(value) {
|
|
35
|
+
return value.replace(/\s+/g, ' ').trim().toLowerCase();
|
|
36
|
+
}
|
|
37
|
+
export function stripLeadingHeading(markdown, headingText) {
|
|
38
|
+
if (!markdown)
|
|
39
|
+
return markdown;
|
|
40
|
+
const lines = markdown.split('\n');
|
|
41
|
+
const target = normalizeHeadingText(headingText);
|
|
42
|
+
let nonEmptySeen = 0;
|
|
43
|
+
for (let index = 0; index < lines.length && nonEmptySeen < HEADING_SCAN_LIMIT; index += 1) {
|
|
44
|
+
const trimmed = lines[index]?.trim() ?? '';
|
|
45
|
+
if (!trimmed)
|
|
46
|
+
continue;
|
|
47
|
+
nonEmptySeen += 1;
|
|
48
|
+
const match = LEADING_HEADING_PATTERN.exec(trimmed);
|
|
49
|
+
if (!match)
|
|
50
|
+
continue;
|
|
51
|
+
const current = normalizeHeadingText(match[2] ?? '');
|
|
52
|
+
if (current !== target)
|
|
53
|
+
return markdown;
|
|
54
|
+
lines.splice(index, 1);
|
|
55
|
+
if ((lines[index] ?? '').trim() === '') {
|
|
56
|
+
lines.splice(index, 1);
|
|
57
|
+
}
|
|
58
|
+
return lines.join('\n');
|
|
59
|
+
}
|
|
60
|
+
return markdown;
|
|
61
|
+
}
|
|
62
|
+
export function maybeStripGithubPrimaryHeading(markdown, primaryHeading, url) {
|
|
63
|
+
if (primaryHeading === undefined || !isGithubRepositoryRootUrl(url)) {
|
|
64
|
+
return markdown;
|
|
65
|
+
}
|
|
66
|
+
return stripLeadingHeading(markdown, primaryHeading);
|
|
67
|
+
}
|
|
68
|
+
function buildSyntheticTitlePrefix(url, favicon, suppressFavicon) {
|
|
69
|
+
if (!favicon || suppressFavicon)
|
|
70
|
+
return ' ';
|
|
71
|
+
let alt = '';
|
|
72
|
+
try {
|
|
73
|
+
alt = new URL(url).hostname;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
/* skip */
|
|
77
|
+
}
|
|
78
|
+
return `  `;
|
|
79
|
+
}
|
|
80
|
+
export function maybePrependSyntheticTitle(markdown, context, url) {
|
|
81
|
+
if (!context.title || /^(#{1,6})\s/.test(markdown.trimStart())) {
|
|
82
|
+
return markdown;
|
|
83
|
+
}
|
|
84
|
+
return `#${buildSyntheticTitlePrefix(url, context.favicon, context.suppressSyntheticFavicon)}${context.title}\n\n${markdown}`;
|
|
85
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/transform/transform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/transform/transform.ts"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EAEtB,MAAM,YAAY,CAAC;AAqCpB,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AA8ID,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,WAAW,GACnB,qBAAqB,GAAG,IAAI,CAE9B;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,qBAAqB,GAAG,IAAI,EACrC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,MAAM,CAER;AA6YD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAExD,GACA,gBAAgB,CAGlB;AAmLD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE;IACR,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GACA,MAAM,CAsBR;AAkJD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,GAAG,IAAI,EAChC,sBAAsB,EAAE,MAAM,GAAG,QAAQ,GACxC,OAAO,CAQT;AAgED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,gBAAgB,GAAG,IAAI,GAC/B,OAAO,IAAI,gBAAgB,CAE7B;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,GAAG,IAAI,EAChC,aAAa,EAAE,iBAAiB,EAChC,wBAAwB,EAAE,OAAO,EACjC,eAAe,EAAE,OAAO,GACvB,aAAa,GAAG,SAAS,CAuB3B;AAgYD,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,GACxB,uBAAuB,CAqCzB;AAaD,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAEjE;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,KAAK,yBAAyB,GAAG,gBAAgB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAkH1E,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,uBAAuB,CAAC,CAElC;AAED,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,uBAAuB,CAAC,CAElC"}
|