cli-jaw 2.2.0 → 2.2.1
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.ko.md +1 -1
- package/README.md +22 -3
- package/README.zh-CN.md +1 -1
- package/dist/bin/cli-jaw.js +5 -1
- package/dist/bin/cli-jaw.js.map +1 -1
- package/dist/bin/commands/bgtask.js +2 -1
- package/dist/bin/commands/bgtask.js.map +1 -1
- package/dist/bin/commands/dispatch-batch-summary.js +38 -0
- package/dist/bin/commands/dispatch-batch-summary.js.map +1 -0
- package/dist/bin/commands/dispatch.js +91 -52
- package/dist/bin/commands/dispatch.js.map +1 -1
- package/dist/bin/commands/jwc.js +237 -0
- package/dist/bin/commands/jwc.js.map +1 -0
- package/dist/bin/commands/skill.js +17 -4
- package/dist/bin/commands/skill.js.map +1 -1
- package/dist/bin/commands/worker.js +162 -4
- package/dist/bin/commands/worker.js.map +1 -1
- package/dist/lib/mcp/skills-distribution.js +17 -19
- package/dist/lib/mcp/skills-distribution.js.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/src/agent/jwc-runtime.js +12 -3
- package/dist/src/agent/jwc-runtime.js.map +1 -1
- package/dist/src/bgtask/registry.js +12 -2
- package/dist/src/bgtask/registry.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/browser-escalation.js +122 -0
- package/dist/src/browser/adaptive-fetch/browser-escalation.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/browser-flow.js +57 -0
- package/dist/src/browser/adaptive-fetch/browser-flow.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/candidate-discovery.js +116 -0
- package/dist/src/browser/adaptive-fetch/candidate-discovery.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/feed-parser.js +152 -0
- package/dist/src/browser/adaptive-fetch/feed-parser.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/index.js +9 -59
- package/dist/src/browser/adaptive-fetch/index.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/live-smoke-manifest.js +43 -0
- package/dist/src/browser/adaptive-fetch/live-smoke-manifest.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/metadata.js +74 -5
- package/dist/src/browser/adaptive-fetch/metadata.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/public-endpoint-normalizers.js +414 -0
- package/dist/src/browser/adaptive-fetch/public-endpoint-normalizers.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/reader-adapters.js +36 -0
- package/dist/src/browser/adaptive-fetch/reader-adapters.js.map +1 -1
- package/dist/src/cli/commands.js +2 -0
- package/dist/src/cli/commands.js.map +1 -1
- package/dist/src/cli/handlers-search.js +28 -0
- package/dist/src/cli/handlers-search.js.map +1 -0
- package/dist/src/cli/handlers.js +12 -1
- package/dist/src/cli/handlers.js.map +1 -1
- package/dist/src/code-mode/acp-host.js +1 -8
- package/dist/src/code-mode/acp-host.js.map +1 -1
- package/dist/src/orchestrator/pipeline.js +2 -4
- package/dist/src/orchestrator/pipeline.js.map +1 -1
- package/dist/src/orchestrator/worker-output-store.js +64 -0
- package/dist/src/orchestrator/worker-output-store.js.map +1 -0
- package/dist/src/orchestrator/worker-progress.js.map +1 -1
- package/dist/src/orchestrator/worker-registry.js +91 -10
- package/dist/src/orchestrator/worker-registry.js.map +1 -1
- package/dist/src/orchestrator/worker-replay-notice.js +28 -0
- package/dist/src/orchestrator/worker-replay-notice.js.map +1 -0
- package/dist/src/orchestrator/worker-run-store.js +142 -0
- package/dist/src/orchestrator/worker-run-store.js.map +1 -0
- package/dist/src/routes/bgtask.js +13 -4
- package/dist/src/routes/bgtask.js.map +1 -1
- package/dist/src/routes/orchestrate.js +53 -4
- package/dist/src/routes/orchestrate.js.map +1 -1
- package/dist/src/shared/runtime-observability.js +20 -0
- package/dist/src/shared/runtime-observability.js.map +1 -0
- package/dist/src/workflows/search.js +34 -0
- package/dist/src/workflows/search.js.map +1 -0
- package/package.json +6 -7
- package/public/dist/assets/{app-BsVpXeLC.js → app-BbBXyLe3.js} +4 -4
- package/public/dist/assets/{bgtask-badge-DqMU3pM3.js → bgtask-badge-BioRIkPz.js} +1 -1
- package/public/dist/assets/bgtask-badge-BwMVGFG_.js +1 -0
- package/public/dist/assets/{employees-BhkR2-xi.js → employees-B8cUYBRx.js} +1 -1
- package/public/dist/assets/manager-Ceg2x8D0.js +13 -0
- package/public/dist/assets/{manager-U147AWWu.css → manager-CwAlpgV7.css} +1 -1
- package/public/dist/assets/{memory-DERWDVjI.js → memory-3J4rzlxy.js} +1 -1
- package/public/dist/assets/memory-B5CQnDFI.js +1 -0
- package/public/dist/assets/message-history-BYswFI5p.js +1 -0
- package/public/dist/assets/{message-history-CK0ah3pB.js → message-history-Vv3aIRWS.js} +2 -2
- package/public/dist/assets/{render-CqzsW5KN.js → render-BVZ1xMEu.js} +1 -1
- package/public/dist/assets/{settings-DdwmhI5a.js → settings-C5FVzFpn.js} +1 -1
- package/public/dist/assets/settings-DZ4wz5SY.js +1 -0
- package/public/dist/assets/{settings-core-AiF7o3Ns.js → settings-core-5lL6lIyu.js} +1 -1
- package/public/dist/assets/settings-core-DYnePZHe.js +1 -0
- package/public/dist/assets/{sidebar-Bhtk2fPc.js → sidebar-jRPFidCd.js} +3 -3
- package/public/dist/assets/{skills-Cs8byPIx.js → skills-BjOjT5sG.js} +1 -1
- package/public/dist/assets/skills-CH0wHfkw.js +1 -0
- package/public/dist/assets/{slash-commands-C5erv0KS.js → slash-commands-B2oqpz-B.js} +1 -1
- package/public/dist/assets/slash-commands-C_9y_-8B.js +1 -0
- package/public/dist/assets/{trace-drawer-CtmD6jwj.js → trace-drawer-BQIdKFZx.js} +1 -1
- package/public/dist/assets/{ui-DaFl446W.js → ui-B9KmU-Qr.js} +1 -1
- package/public/dist/assets/ui-BCJ4lcQ4.js +1 -0
- package/public/dist/index.html +1 -1
- package/public/dist/manager/index.html +2 -2
- package/public/js/features/command-info.ts +1 -0
- package/public/locales/en.json +2 -0
- package/public/locales/ja.json +2 -0
- package/public/locales/ko.json +2 -0
- package/public/locales/zh.json +2 -0
- package/public/manager/src/SidebarRailRouter.tsx +7 -3
- package/public/manager/src/background-tasks/background-task-client.ts +21 -1
- package/public/manager/src/main.tsx +2 -0
- package/public/manager/src/workers/WorkerProgressMonitorPanel.tsx +2 -0
- package/public/manager/src/workers/WorkerRunsPanel.tsx +152 -0
- package/public/manager/src/workers/useWorkerRuns.ts +138 -0
- package/public/manager/src/workers/worker-runs-client.ts +112 -0
- package/public/manager/src/workers/worker-runs.css +208 -0
- package/scripts/bundle-sidecar.sh +2 -64
- package/scripts/check-electron-sidecar-no-jwc.cjs +57 -0
- package/scripts/install-risk-gate.mjs +3 -2
- package/scripts/jwc-no-global-smoke.mjs +14 -22
- package/public/dist/assets/bgtask-badge-YR8SMYrp.js +0 -1
- package/public/dist/assets/manager-ycX0r7uL.js +0 -13
- package/public/dist/assets/memory-CfeG2ViL.js +0 -1
- package/public/dist/assets/message-history-BaI36ciH.js +0 -1
- package/public/dist/assets/settings-VeoQiKpd.js +0 -1
- package/public/dist/assets/settings-core-DlfGtuWD.js +0 -1
- package/public/dist/assets/skills-Z0rMlwnf.js +0 -1
- package/public/dist/assets/slash-commands-CZKlw4A6.js +0 -1
- package/public/dist/assets/ui-WRcA4tUT.js +0 -1
- package/scripts/check-electron-sidecar-jwc.cjs +0 -117
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { validateFetchUrl } from './safety.js';
|
|
2
|
+
const LANE_ORDER = ['official', 'package', 'academic', 'community', 'realtime', 'archive', 'fetch'];
|
|
3
|
+
const LANE_BASE_SCORE = {
|
|
4
|
+
official: 80,
|
|
5
|
+
package: 72,
|
|
6
|
+
academic: 70,
|
|
7
|
+
community: 58,
|
|
8
|
+
realtime: 54,
|
|
9
|
+
archive: 45,
|
|
10
|
+
fetch: 40,
|
|
11
|
+
};
|
|
12
|
+
export function extractCandidateUrlsFromText(text) {
|
|
13
|
+
const urls = [...text.matchAll(/\bhttps?:\/\/[^\s<>"')\]]+/gi)]
|
|
14
|
+
.map(match => match[0].replace(/[.,;:!?]+$/g, ''));
|
|
15
|
+
return [...new Set(urls)];
|
|
16
|
+
}
|
|
17
|
+
export function rankDiscoveredCandidates(inputs, options = {}) {
|
|
18
|
+
const rejected = [];
|
|
19
|
+
const byUrl = new Map();
|
|
20
|
+
for (const input of inputs) {
|
|
21
|
+
const parsed = parsePublicUrl(input.url, rejected);
|
|
22
|
+
if (!parsed)
|
|
23
|
+
continue;
|
|
24
|
+
const normalizedUrl = normalizeCandidateUrl(parsed);
|
|
25
|
+
const lane = input.lane || classifyCandidateLane(parsed, input, options);
|
|
26
|
+
const reasons = scoreReasons(parsed, lane, input, options);
|
|
27
|
+
const candidate = {
|
|
28
|
+
url: parsed.href,
|
|
29
|
+
normalizedUrl,
|
|
30
|
+
hostname: parsed.hostname,
|
|
31
|
+
title: input.title || '',
|
|
32
|
+
snippet: input.snippet || '',
|
|
33
|
+
source: input.source || 'native_search',
|
|
34
|
+
lane,
|
|
35
|
+
score: LANE_BASE_SCORE[lane] + reasons.length * 3 + (parsed.protocol === 'https:' ? 2 : 0),
|
|
36
|
+
reasons,
|
|
37
|
+
};
|
|
38
|
+
const existing = byUrl.get(normalizedUrl);
|
|
39
|
+
if (!existing || candidate.score > existing.score)
|
|
40
|
+
byUrl.set(normalizedUrl, candidate);
|
|
41
|
+
}
|
|
42
|
+
const candidates = [...byUrl.values()]
|
|
43
|
+
.sort((a, b) => b.score - a.score || LANE_ORDER.indexOf(a.lane) - LANE_ORDER.indexOf(b.lane))
|
|
44
|
+
.slice(0, options.maxCandidates || 12);
|
|
45
|
+
return { candidates, lanes: groupByLane(candidates), rejected };
|
|
46
|
+
}
|
|
47
|
+
function parsePublicUrl(url, rejected) {
|
|
48
|
+
try {
|
|
49
|
+
return validateFetchUrl(url, { allowPrivateNetwork: false });
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
rejected.push({ url, reason: error.message || 'invalid-url' });
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function classifyCandidateLane(url, input, options) {
|
|
57
|
+
const host = url.hostname.replace(/^www\./, '');
|
|
58
|
+
const haystack = `${input.title || ''}\n${input.snippet || ''}\n${host}`.toLowerCase();
|
|
59
|
+
if ((options.officialDomains || []).some(domain => domainMatch(host, domain)))
|
|
60
|
+
return 'official';
|
|
61
|
+
if (/^(docs?|developer|dev|api)\./i.test(host) || /\bofficial\b|\bdocs?\b|\bapi reference\b/.test(haystack))
|
|
62
|
+
return 'official';
|
|
63
|
+
if (/github\.com|npmjs\.com|pypi\.org|crates\.io|pkg\.go\.dev|packagist\.org|rubygems\.org$/i.test(host))
|
|
64
|
+
return 'package';
|
|
65
|
+
if (/arxiv\.org|doi\.org|crossref\.org|pubmed\.ncbi\.nlm\.nih\.gov|semanticscholar\.org|scholar\.google\./i.test(host))
|
|
66
|
+
return 'academic';
|
|
67
|
+
if (/reddit\.com|stackoverflow\.com|stackexchange\.com|news\.ycombinator\.com|lobste\.rs|dev\.to|v2ex\.com/i.test(host))
|
|
68
|
+
return 'community';
|
|
69
|
+
if (/x\.com|twitter\.com|bsky\.app|mastodon\.social|threads\.net/i.test(host))
|
|
70
|
+
return 'realtime';
|
|
71
|
+
if (/webcache|archive\.org|web\.archive\.org/i.test(host))
|
|
72
|
+
return 'archive';
|
|
73
|
+
return 'fetch';
|
|
74
|
+
}
|
|
75
|
+
function scoreReasons(url, lane, input, options) {
|
|
76
|
+
const reasons = [lane];
|
|
77
|
+
const host = url.hostname.replace(/^www\./, '');
|
|
78
|
+
if ((options.officialDomains || []).some(domain => domainMatch(host, domain)))
|
|
79
|
+
reasons.push('official-domain-match');
|
|
80
|
+
if (input.title)
|
|
81
|
+
reasons.push('title-present');
|
|
82
|
+
if (input.snippet)
|
|
83
|
+
reasons.push('snippet-present');
|
|
84
|
+
if (!hasTrackingParams(url))
|
|
85
|
+
reasons.push('clean-url');
|
|
86
|
+
if (url.pathname && url.pathname !== '/')
|
|
87
|
+
reasons.push('deep-link');
|
|
88
|
+
return reasons;
|
|
89
|
+
}
|
|
90
|
+
function normalizeCandidateUrl(url) {
|
|
91
|
+
const copy = new URL(url.href);
|
|
92
|
+
copy.hash = '';
|
|
93
|
+
for (const key of [...copy.searchParams.keys()]) {
|
|
94
|
+
if (/^(utm_|fbclid|gclid|mc_cid|mc_eid)/i.test(key))
|
|
95
|
+
copy.searchParams.delete(key);
|
|
96
|
+
}
|
|
97
|
+
copy.hostname = copy.hostname.replace(/^www\./, '');
|
|
98
|
+
return copy.href.replace(/\/$/, '');
|
|
99
|
+
}
|
|
100
|
+
function hasTrackingParams(url) {
|
|
101
|
+
return [...url.searchParams.keys()].some(key => /^(utm_|fbclid|gclid|mc_cid|mc_eid)/i.test(key));
|
|
102
|
+
}
|
|
103
|
+
function groupByLane(candidates) {
|
|
104
|
+
const lanes = LANE_ORDER.reduce((acc, lane) => {
|
|
105
|
+
acc[lane] = [];
|
|
106
|
+
return acc;
|
|
107
|
+
}, {});
|
|
108
|
+
for (const candidate of candidates)
|
|
109
|
+
lanes[candidate.lane].push(candidate);
|
|
110
|
+
return lanes;
|
|
111
|
+
}
|
|
112
|
+
function domainMatch(host, domain) {
|
|
113
|
+
const clean = domain.replace(/^https?:\/\//, '').replace(/^www\./, '').split('/')[0] || domain;
|
|
114
|
+
return host === clean || host.endsWith(`.${clean}`);
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=candidate-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candidate-discovery.js","sourceRoot":"","sources":["../../../../src/browser/adaptive-fetch/candidate-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { normalizeWhitespace } from './transforms.js';
|
|
2
|
+
export function parsePublicFeed(rawText, json) {
|
|
3
|
+
if (json)
|
|
4
|
+
return parseJsonFeed(json);
|
|
5
|
+
if (!/<(?:rss|feed|rdf:RDF|item|entry)\b/i.test(rawText))
|
|
6
|
+
return null;
|
|
7
|
+
const itemBlocks = (xmlBlocks(rawText, 'item').length ? xmlBlocks(rawText, 'item') : xmlBlocks(rawText, 'entry')).slice(0, 5);
|
|
8
|
+
const title = xmlTag(rawText, 'title') || 'RSS/Atom feed';
|
|
9
|
+
return {
|
|
10
|
+
kind: 'rss-atom',
|
|
11
|
+
title,
|
|
12
|
+
description: xmlTag(rawText, 'description') || xmlTag(rawText, 'subtitle'),
|
|
13
|
+
url: xmlTag(rawText, 'link') || xmlLinkHref(rawText),
|
|
14
|
+
items: itemBlocks.slice(0, 3).map(parseXmlFeedItem),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function formatFeedEvidence(feed) {
|
|
18
|
+
const lines = [
|
|
19
|
+
`Feed: ${feed.title}`,
|
|
20
|
+
line('Description', feed.description),
|
|
21
|
+
line('Home', feed.url),
|
|
22
|
+
...feed.items.flatMap((item, index) => feedItemLines(item, index)),
|
|
23
|
+
].filter((value) => Boolean(value && normalizeWhitespace(value)));
|
|
24
|
+
return {
|
|
25
|
+
kind: feed.kind,
|
|
26
|
+
title: normalizeWhitespace(feed.title),
|
|
27
|
+
text: normalizeWhitespace(lines.join('\n')),
|
|
28
|
+
metadata: {
|
|
29
|
+
feedKind: feed.kind,
|
|
30
|
+
items: feed.items.length,
|
|
31
|
+
itemUrls: feed.items.map(item => item.url).filter(Boolean),
|
|
32
|
+
mediaUrls: feed.items.map(item => item.mediaUrl).filter(Boolean),
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function parseJsonFeed(json) {
|
|
37
|
+
const obj = asObject(json);
|
|
38
|
+
const items = arr(obj['items']).slice(0, 3).map(value => {
|
|
39
|
+
const item = asObject(value);
|
|
40
|
+
const author = asObject(item['author']);
|
|
41
|
+
const authors = arr(item['authors'])
|
|
42
|
+
.map(value => str(asObject(value)['name'] || asObject(value)['url']))
|
|
43
|
+
.filter(Boolean);
|
|
44
|
+
return {
|
|
45
|
+
title: str(item['title']),
|
|
46
|
+
date: str(item['date_published'] || item['date_modified']),
|
|
47
|
+
url: str(item['url'] || item['external_url']),
|
|
48
|
+
summary: clip(stripHtml(str(item['summary'] || item['content_text'] || item['content_html']))),
|
|
49
|
+
author: str(author['name'] || author['url']) || authors.join(', '),
|
|
50
|
+
tags: arr(item['tags']).map(str).filter(Boolean),
|
|
51
|
+
mediaUrl: firstAttachmentUrl(item),
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
const title = str(obj['title']);
|
|
55
|
+
if (!title && items.length === 0)
|
|
56
|
+
return null;
|
|
57
|
+
return {
|
|
58
|
+
kind: 'feed-json',
|
|
59
|
+
title: title || 'Feed',
|
|
60
|
+
description: str(obj['description']),
|
|
61
|
+
url: str(obj['home_page_url'] || obj['feed_url']),
|
|
62
|
+
items,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function parseXmlFeedItem(block) {
|
|
66
|
+
return {
|
|
67
|
+
title: xmlTag(block, 'title'),
|
|
68
|
+
date: xmlTag(block, 'pubDate') || xmlTag(block, 'published') || xmlTag(block, 'updated'),
|
|
69
|
+
url: xmlTag(block, 'link') || xmlLinkHref(block) || xmlTag(block, 'guid') || xmlTag(block, 'id'),
|
|
70
|
+
summary: clip(stripHtml(xmlTag(block, 'description') || xmlTag(block, 'summary') || xmlTag(block, 'encoded') || xmlTag(block, 'content'))),
|
|
71
|
+
author: xmlTag(block, 'creator') || xmlTag(block, 'author') || xmlTag(block, 'name'),
|
|
72
|
+
tags: [...new Set(xmlTags(block, 'category').map(str).filter(Boolean))],
|
|
73
|
+
mediaUrl: enclosureUrl(block) || mediaUrl(block),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function feedItemLines(item, index) {
|
|
77
|
+
return [
|
|
78
|
+
item.title ? `Item ${index + 1}: ${item.title}` : '',
|
|
79
|
+
line(' Date', item.date),
|
|
80
|
+
line(' URL', item.url),
|
|
81
|
+
line(' Author', item.author),
|
|
82
|
+
line(' Tags', item.tags.join(', ')),
|
|
83
|
+
line(' Media', item.mediaUrl),
|
|
84
|
+
line(' Summary', item.summary),
|
|
85
|
+
].filter((value) => Boolean(value));
|
|
86
|
+
}
|
|
87
|
+
function firstAttachmentUrl(item) {
|
|
88
|
+
const attachment = asObject(arr(item['attachments'])[0]);
|
|
89
|
+
return str(attachment['url']);
|
|
90
|
+
}
|
|
91
|
+
function xmlBlocks(xml, tag) {
|
|
92
|
+
const tagPattern = `(?:[\\w.-]+:)?${escapeRegExp(tag)}`;
|
|
93
|
+
return [...xml.matchAll(new RegExp(`<${tagPattern}(?:\\s[^>]*)?>[\\s\\S]*?<\\/${tagPattern}>`, 'gi'))].map(match => match[0]);
|
|
94
|
+
}
|
|
95
|
+
function xmlTags(xml, tag) {
|
|
96
|
+
const tagPattern = `(?:[\\w.-]+:)?${escapeRegExp(tag)}`;
|
|
97
|
+
return [...xml.matchAll(new RegExp(`<${tagPattern}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/${tagPattern}>`, 'gi'))].map(match => cleanXml(match[1] || ''));
|
|
98
|
+
}
|
|
99
|
+
function xmlTag(xml, tag) {
|
|
100
|
+
return xmlTags(xml, tag)[0] || '';
|
|
101
|
+
}
|
|
102
|
+
function xmlLinkHref(xml) {
|
|
103
|
+
const match = xml.match(/<(?:[\w.-]+:)?link\b[^>]*href=["']([^"']+)["'][^>]*\/?>/i);
|
|
104
|
+
return cleanXml(match?.[1] || '');
|
|
105
|
+
}
|
|
106
|
+
function enclosureUrl(xml) {
|
|
107
|
+
const match = xml.match(/<enclosure\b[^>]*url=["']([^"']+)["'][^>]*\/?>/i);
|
|
108
|
+
return cleanXml(match?.[1] || '');
|
|
109
|
+
}
|
|
110
|
+
function mediaUrl(xml) {
|
|
111
|
+
const match = xml.match(/<(?:media|mrss):(?:thumbnail|content)\b[^>]*(?:url|href)=["']([^"']+)["'][^>]*\/?>/i);
|
|
112
|
+
return cleanXml(match?.[1] || '');
|
|
113
|
+
}
|
|
114
|
+
function line(label, value) {
|
|
115
|
+
const text = Array.isArray(value) ? value.map(str).filter(Boolean).join(', ') : str(value);
|
|
116
|
+
return text ? `${label}: ${text}` : null;
|
|
117
|
+
}
|
|
118
|
+
function asObject(value) {
|
|
119
|
+
return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
120
|
+
}
|
|
121
|
+
function arr(value) {
|
|
122
|
+
return Array.isArray(value) ? value : [];
|
|
123
|
+
}
|
|
124
|
+
function str(value) {
|
|
125
|
+
if (value == null)
|
|
126
|
+
return '';
|
|
127
|
+
return normalizeWhitespace(String(value));
|
|
128
|
+
}
|
|
129
|
+
function stripHtml(value) {
|
|
130
|
+
return normalizeWhitespace(decodeXml(value).replace(/<[^>]+>/g, ' '));
|
|
131
|
+
}
|
|
132
|
+
function cleanXml(value) {
|
|
133
|
+
return stripHtml(value.replace(/<!\[CDATA\[([\s\S]*?)\]\]>/g, '$1'));
|
|
134
|
+
}
|
|
135
|
+
function decodeXml(value) {
|
|
136
|
+
return value
|
|
137
|
+
.replace(/ /g, ' ')
|
|
138
|
+
.replace(/&/g, '&')
|
|
139
|
+
.replace(/</g, '<')
|
|
140
|
+
.replace(/>/g, '>')
|
|
141
|
+
.replace(/"/g, '"')
|
|
142
|
+
.replace(/'/g, "'")
|
|
143
|
+
.replace(/&#x([0-9a-f]+);/gi, (_, hex) => String.fromCodePoint(parseInt(hex, 16)))
|
|
144
|
+
.replace(/&#(\d+);/g, (_, num) => String.fromCodePoint(parseInt(num, 10)));
|
|
145
|
+
}
|
|
146
|
+
function clip(value, max = 240) {
|
|
147
|
+
return value.length > max ? `${value.slice(0, max - 3)}...` : value;
|
|
148
|
+
}
|
|
149
|
+
function escapeRegExp(text) {
|
|
150
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=feed-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed-parser.js","sourceRoot":"","sources":["../../../../src/browser/adaptive-fetch/feed-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,9 @@ import { fetchTextCandidate } from './fetcher.js';
|
|
|
7
7
|
import { fromFetchResult, fromUserSessionResult, fromHumanResolvedResult } from './reader-adapters.js';
|
|
8
8
|
import { chooseBestReaderCandidate, scoreReaderCandidate } from './content-scorer.js';
|
|
9
9
|
import { fetchThirdPartyReaderCandidate } from './third-party-readers.js';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { fromBrowserResult, fromNetworkCandidate } from './reader-adapters.js';
|
|
10
|
+
import { collectBrowserMetadataCandidate, collectBrowserStructuredResultCandidates, collectDefuddleCandidate, collectNetworkJsonCandidates, } from './browser-escalation.js';
|
|
11
|
+
import { tryBrowserEscalation } from './browser-flow.js';
|
|
12
|
+
import { fromBrowserResult, fromMetadataResult, fromNetworkCandidate } from './reader-adapters.js';
|
|
13
13
|
import { classifyChallengeType } from './challenge-detector.js';
|
|
14
14
|
import { shouldTryUserSession, navigateInUserSession } from './browser-session.js';
|
|
15
15
|
import { humanResolve } from './human-loop.js';
|
|
@@ -223,6 +223,12 @@ export async function runAdaptiveFetch(input, deps = {}) {
|
|
|
223
223
|
const browserResult = await tryBrowserEscalation(parsed.href, options, deps, trace, detectedChallenge);
|
|
224
224
|
if (browserResult) {
|
|
225
225
|
readerCandidates.push(fromBrowserResult(browserResult));
|
|
226
|
+
const metadataCandidate = collectBrowserMetadataCandidate(browserResult);
|
|
227
|
+
if (metadataCandidate)
|
|
228
|
+
readerCandidates.push(fromMetadataResult(metadataCandidate));
|
|
229
|
+
for (const structuredCandidate of collectBrowserStructuredResultCandidates(browserResult)) {
|
|
230
|
+
readerCandidates.push(fromBrowserResult(structuredCandidate));
|
|
231
|
+
}
|
|
226
232
|
const defuddleCandidate = collectDefuddleCandidate(browserResult);
|
|
227
233
|
if (defuddleCandidate)
|
|
228
234
|
readerCandidates.push(fromBrowserResult(defuddleCandidate));
|
|
@@ -463,62 +469,6 @@ function shouldReturnWithoutBrowser(best, options) {
|
|
|
463
469
|
return Boolean(best);
|
|
464
470
|
return Boolean(best && best.verdict === 'strong_ok');
|
|
465
471
|
}
|
|
466
|
-
async function tryBrowserEscalation(url, options, deps, trace, challengeInfo) {
|
|
467
|
-
if (options.browserMode === 'never')
|
|
468
|
-
return null;
|
|
469
|
-
try {
|
|
470
|
-
const result = await collectBrowserCandidate(url, {
|
|
471
|
-
browserDeps: deps,
|
|
472
|
-
browserSession: options.browserSession,
|
|
473
|
-
timeoutMs: options.timeoutMs,
|
|
474
|
-
selector: options.selector,
|
|
475
|
-
allowPrivateNetwork: options.allowPrivateNetwork,
|
|
476
|
-
challengeInfo,
|
|
477
|
-
});
|
|
478
|
-
const scored = scoreReaderCandidate(fromBrowserResult(result));
|
|
479
|
-
appendAttempt(trace, {
|
|
480
|
-
source: 'browser',
|
|
481
|
-
verdict: scored.verdict,
|
|
482
|
-
url: result['finalUrl'],
|
|
483
|
-
status: result['status'],
|
|
484
|
-
reason: `score:${scored.score}`,
|
|
485
|
-
});
|
|
486
|
-
const defuddleCandidate = collectDefuddleCandidate(result);
|
|
487
|
-
if (defuddleCandidate) {
|
|
488
|
-
const scoredDefuddle = scoreReaderCandidate(fromBrowserResult(defuddleCandidate));
|
|
489
|
-
appendAttempt(trace, {
|
|
490
|
-
source: 'browser',
|
|
491
|
-
verdict: scoredDefuddle.verdict,
|
|
492
|
-
url: defuddleCandidate['finalUrl'],
|
|
493
|
-
status: defuddleCandidate['status'],
|
|
494
|
-
reason: `score:${scoredDefuddle.score}`,
|
|
495
|
-
});
|
|
496
|
-
}
|
|
497
|
-
for (const networkCandidate of collectNetworkJsonCandidates(result)) {
|
|
498
|
-
const scoredNetwork = scoreReaderCandidate(fromNetworkCandidate(networkCandidate));
|
|
499
|
-
appendAttempt(trace, {
|
|
500
|
-
source: 'network_api',
|
|
501
|
-
verdict: scoredNetwork.verdict,
|
|
502
|
-
url: networkCandidate['finalUrl'],
|
|
503
|
-
status: networkCandidate['status'],
|
|
504
|
-
reason: `score:${scoredNetwork.score}`,
|
|
505
|
-
});
|
|
506
|
-
}
|
|
507
|
-
return result;
|
|
508
|
-
}
|
|
509
|
-
catch (error) {
|
|
510
|
-
if (error instanceof BrowserRequiredError || error?.['code'] === 'browser_required') {
|
|
511
|
-
appendAttempt(trace, {
|
|
512
|
-
source: 'browser',
|
|
513
|
-
verdict: 'browser_required',
|
|
514
|
-
url,
|
|
515
|
-
reason: error.message,
|
|
516
|
-
});
|
|
517
|
-
return null;
|
|
518
|
-
}
|
|
519
|
-
throw error;
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
472
|
function hasUnresolvedChallenge(candidates, best) {
|
|
523
473
|
if (best && best.verdict === 'strong_ok')
|
|
524
474
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/adaptive-fetch/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/browser/adaptive-fetch/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export const LIVE_SMOKE_MANIFEST_VERSION = 1;
|
|
2
|
+
export const LIVE_SMOKE_MANIFEST = [
|
|
3
|
+
{
|
|
4
|
+
id: 'npm-public-endpoint',
|
|
5
|
+
url: 'https://www.npmjs.com/package/cli-jaw',
|
|
6
|
+
expectedLabels: ['npm-registry', 'direct-fetch'],
|
|
7
|
+
expectedEvidence: ['public-endpoint:npm-registry'],
|
|
8
|
+
browserMode: 'auto',
|
|
9
|
+
reason: 'package registry public endpoint drift check',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
id: 'github-public-endpoint',
|
|
13
|
+
url: 'https://github.com/fivetaku/insane-search',
|
|
14
|
+
expectedLabels: ['github-repo-api', 'direct-fetch'],
|
|
15
|
+
expectedEvidence: ['public-endpoint:github-repo-api'],
|
|
16
|
+
browserMode: 'auto',
|
|
17
|
+
reason: 'GitHub repo API reader drift check',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: 'hacker-news-public-api',
|
|
21
|
+
url: 'https://news.ycombinator.com/item?id=8863',
|
|
22
|
+
expectedLabels: ['hacker-news-item-api', 'hacker-news-algolia-item-api', 'direct-fetch'],
|
|
23
|
+
expectedEvidence: ['public-endpoint:hacker-news-item-api'],
|
|
24
|
+
browserMode: 'auto',
|
|
25
|
+
reason: 'community public API and fallback reader drift check',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 'metadata-browser-ladder',
|
|
29
|
+
url: 'https://example.com/',
|
|
30
|
+
expectedLabels: ['browser-render', 'browser-metadata'],
|
|
31
|
+
expectedEvidence: ['browser-render', 'browser-dom-metadata'],
|
|
32
|
+
browserMode: 'required',
|
|
33
|
+
reason: 'rendered DOM metadata/browser ladder contract check',
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
export function getLiveSmokeManifest() {
|
|
37
|
+
return LIVE_SMOKE_MANIFEST.map(entry => ({
|
|
38
|
+
...entry,
|
|
39
|
+
expectedLabels: [...entry.expectedLabels],
|
|
40
|
+
expectedEvidence: [...entry.expectedEvidence],
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=live-smoke-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-smoke-manifest.js","sourceRoot":"","sources":["../../../../src/browser/adaptive-fetch/live-smoke-manifest.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAA6B;IACzD;QACI,EAAE,EAAE,qBAAqB;QACzB,GAAG,EAAE,uCAAuC;QAC5C,cAAc,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;QAChD,gBAAgB,EAAE,CAAC,8BAA8B,CAAC;QAClD,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,8CAA8C;KACzD;IACD;QACI,EAAE,EAAE,wBAAwB;QAC5B,GAAG,EAAE,2CAA2C;QAChD,cAAc,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC;QACnD,gBAAgB,EAAE,CAAC,iCAAiC,CAAC;QACrD,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,oCAAoC;KAC/C;IACD;QACI,EAAE,EAAE,wBAAwB;QAC5B,GAAG,EAAE,2CAA2C;QAChD,cAAc,EAAE,CAAC,sBAAsB,EAAE,8BAA8B,EAAE,cAAc,CAAC;QACxF,gBAAgB,EAAE,CAAC,sCAAsC,CAAC;QAC1D,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,sDAAsD;KACjE;IACD;QACI,EAAE,EAAE,yBAAyB;QAC7B,GAAG,EAAE,sBAAsB;QAC3B,cAAc,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;QACtD,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;QAC5D,WAAW,EAAE,UAAU;QACvB,MAAM,EAAE,qDAAqD;KAChE;CACJ,CAAC;AAEF,MAAM,UAAU,oBAAoB;IAChC,OAAO,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrC,GAAG,KAAK;QACR,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC;QACzC,gBAAgB,EAAE,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC;KAChD,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
@@ -7,6 +7,9 @@ export function extractMetadataFromHtml(html = '', finalUrl = '') {
|
|
|
7
7
|
const feedUrls = extractFeedUrls(html, finalUrl);
|
|
8
8
|
const oEmbedUrls = extractOembedUrls(html, finalUrl);
|
|
9
9
|
const jsonLd = extractJsonLdBlocks(html);
|
|
10
|
+
const openGraph = extractOpenGraph(html);
|
|
11
|
+
const twitterCard = extractTwitterCard(html);
|
|
12
|
+
const media = extractMediaMetadata({ openGraph, twitterCard, jsonLd, base: finalUrl });
|
|
10
13
|
const text = htmlToReadableText(html);
|
|
11
14
|
return {
|
|
12
15
|
source: 'metadata',
|
|
@@ -18,7 +21,9 @@ export function extractMetadataFromHtml(html = '', finalUrl = '') {
|
|
|
18
21
|
description,
|
|
19
22
|
feedUrls,
|
|
20
23
|
oEmbedUrls,
|
|
21
|
-
openGraph
|
|
24
|
+
openGraph,
|
|
25
|
+
twitterCard,
|
|
26
|
+
media,
|
|
22
27
|
jsonLd,
|
|
23
28
|
},
|
|
24
29
|
evidence: [
|
|
@@ -27,6 +32,7 @@ export function extractMetadataFromHtml(html = '', finalUrl = '') {
|
|
|
27
32
|
canonicalUrl ? 'canonical' : null,
|
|
28
33
|
feedUrls.length > 0 ? 'feed-link' : null,
|
|
29
34
|
oEmbedUrls.length > 0 ? 'oembed-link' : null,
|
|
35
|
+
Object.keys(media).length > 0 ? 'media-metadata' : null,
|
|
30
36
|
jsonLd.length > 0 ? 'json-ld' : null,
|
|
31
37
|
].filter(Boolean),
|
|
32
38
|
warnings: [],
|
|
@@ -51,12 +57,75 @@ export function extractJsonLdBlocks(html = '') {
|
|
|
51
57
|
}
|
|
52
58
|
function extractOpenGraph(html) {
|
|
53
59
|
const og = {};
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
for (const tag of metaTags(html)) {
|
|
61
|
+
const property = getTagAttr(tag, 'property');
|
|
62
|
+
if (!property.toLowerCase().startsWith('og:'))
|
|
63
|
+
continue;
|
|
64
|
+
const content = getTagAttr(tag, 'content');
|
|
65
|
+
if (content)
|
|
66
|
+
og[property.slice(3)] = content;
|
|
67
|
+
}
|
|
58
68
|
return og;
|
|
59
69
|
}
|
|
70
|
+
function extractTwitterCard(html) {
|
|
71
|
+
const twitter = {};
|
|
72
|
+
for (const tag of metaTags(html)) {
|
|
73
|
+
const name = getTagAttr(tag, 'name') || getTagAttr(tag, 'property');
|
|
74
|
+
if (!name.toLowerCase().startsWith('twitter:'))
|
|
75
|
+
continue;
|
|
76
|
+
const content = getTagAttr(tag, 'content');
|
|
77
|
+
if (content)
|
|
78
|
+
twitter[name.slice('twitter:'.length)] = content;
|
|
79
|
+
}
|
|
80
|
+
return twitter;
|
|
81
|
+
}
|
|
82
|
+
function extractMediaMetadata(input) {
|
|
83
|
+
const jsonLdMedia = input.jsonLd.flatMap(findJsonLdMedia).slice(0, 5);
|
|
84
|
+
const media = {};
|
|
85
|
+
const imageUrl = resolveMaybeUrl(input.openGraph['image'] || input.twitterCard['image'] || '', input.base);
|
|
86
|
+
const videoUrl = resolveMaybeUrl(input.openGraph['video'] || input.twitterCard['player'] || '', input.base);
|
|
87
|
+
const audioUrl = resolveMaybeUrl(input.openGraph['audio'] || '', input.base);
|
|
88
|
+
if (imageUrl)
|
|
89
|
+
media['imageUrl'] = imageUrl;
|
|
90
|
+
if (videoUrl)
|
|
91
|
+
media['videoUrl'] = videoUrl;
|
|
92
|
+
if (audioUrl)
|
|
93
|
+
media['audioUrl'] = audioUrl;
|
|
94
|
+
if (input.openGraph['image:width'])
|
|
95
|
+
media['imageWidth'] = input.openGraph['image:width'];
|
|
96
|
+
if (input.openGraph['image:height'])
|
|
97
|
+
media['imageHeight'] = input.openGraph['image:height'];
|
|
98
|
+
if (input.openGraph['video:width'] || input.twitterCard['player:width'])
|
|
99
|
+
media['videoWidth'] = input.openGraph['video:width'] || input.twitterCard['player:width'];
|
|
100
|
+
if (input.openGraph['video:height'] || input.twitterCard['player:height'])
|
|
101
|
+
media['videoHeight'] = input.openGraph['video:height'] || input.twitterCard['player:height'];
|
|
102
|
+
if (jsonLdMedia.length > 0)
|
|
103
|
+
media['jsonLdMedia'] = jsonLdMedia;
|
|
104
|
+
return media;
|
|
105
|
+
}
|
|
106
|
+
function findJsonLdMedia(value) {
|
|
107
|
+
if (Array.isArray(value))
|
|
108
|
+
return value.flatMap(findJsonLdMedia);
|
|
109
|
+
if (!value || typeof value !== 'object')
|
|
110
|
+
return [];
|
|
111
|
+
const obj = value;
|
|
112
|
+
const graph = Array.isArray(obj['@graph']) ? obj['@graph'].flatMap(findJsonLdMedia) : [];
|
|
113
|
+
const type = String(obj['@type'] || '');
|
|
114
|
+
const isMedia = /^(ImageObject|VideoObject|AudioObject|MediaObject)$/i.test(type);
|
|
115
|
+
const nested = ['image', 'video', 'audio', 'thumbnail', 'thumbnailUrl']
|
|
116
|
+
.flatMap(key => findJsonLdMedia(obj[key]));
|
|
117
|
+
const current = isMedia ? [{
|
|
118
|
+
type,
|
|
119
|
+
name: normalizeWhitespace(String(obj['name'] || obj['headline'] || '')),
|
|
120
|
+
url: normalizeWhitespace(String(obj['contentUrl'] || obj['embedUrl'] || obj['url'] || '')),
|
|
121
|
+
thumbnailUrl: normalizeWhitespace(String(obj['thumbnailUrl'] || '')),
|
|
122
|
+
duration: normalizeWhitespace(String(obj['duration'] || '')),
|
|
123
|
+
}] : [];
|
|
124
|
+
return [...current, ...graph, ...nested].filter(media => media['url'] || media['thumbnailUrl'] || media['name']);
|
|
125
|
+
}
|
|
126
|
+
function metaTags(html) {
|
|
127
|
+
return [...html.matchAll(/<meta\b[^>]*>/gi)].map(match => match[0]);
|
|
128
|
+
}
|
|
60
129
|
export function extractFeedUrls(html = '', base = '') {
|
|
61
130
|
const urls = [];
|
|
62
131
|
const re = /<link\b[^>]*>/gi;
|