webpeel 0.8.1 → 0.9.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 +39 -5
- package/dist/cli.js +1299 -85
- package/dist/cli.js.map +1 -1
- package/dist/core/application-tracker.d.ts +85 -0
- package/dist/core/application-tracker.d.ts.map +1 -0
- package/dist/core/application-tracker.js +184 -0
- package/dist/core/application-tracker.js.map +1 -0
- package/dist/core/apply.d.ts +163 -0
- package/dist/core/apply.d.ts.map +1 -0
- package/dist/core/apply.js +817 -0
- package/dist/core/apply.js.map +1 -0
- package/dist/core/branding.d.ts +1 -1
- package/dist/core/branding.d.ts.map +1 -1
- package/dist/core/budget.d.ts +43 -0
- package/dist/core/budget.d.ts.map +1 -0
- package/dist/core/budget.js +325 -0
- package/dist/core/budget.js.map +1 -0
- package/dist/core/challenge-detection.d.ts +27 -0
- package/dist/core/challenge-detection.d.ts.map +1 -0
- package/dist/core/challenge-detection.js +436 -0
- package/dist/core/challenge-detection.js.map +1 -0
- package/dist/core/change-tracking.d.ts.map +1 -1
- package/dist/core/change-tracking.js +10 -1
- package/dist/core/change-tracking.js.map +1 -1
- package/dist/core/crawler.d.ts.map +1 -1
- package/dist/core/crawler.js +17 -4
- package/dist/core/crawler.js.map +1 -1
- package/dist/core/diff.d.ts +62 -0
- package/dist/core/diff.d.ts.map +1 -0
- package/dist/core/diff.js +289 -0
- package/dist/core/diff.js.map +1 -0
- package/dist/core/extract-listings.d.ts +39 -0
- package/dist/core/extract-listings.d.ts.map +1 -0
- package/dist/core/extract-listings.js +331 -0
- package/dist/core/extract-listings.js.map +1 -0
- package/dist/core/extract.d.ts.map +1 -1
- package/dist/core/extract.js +15 -2
- package/dist/core/extract.js.map +1 -1
- package/dist/core/fetcher.d.ts +29 -3
- package/dist/core/fetcher.d.ts.map +1 -1
- package/dist/core/fetcher.js +158 -20
- package/dist/core/fetcher.js.map +1 -1
- package/dist/core/human.d.ts +176 -0
- package/dist/core/human.d.ts.map +1 -0
- package/dist/core/human.js +681 -0
- package/dist/core/human.js.map +1 -0
- package/dist/core/jobs.d.ts +12 -2
- package/dist/core/jobs.d.ts.map +1 -1
- package/dist/core/jobs.js +124 -2
- package/dist/core/jobs.js.map +1 -1
- package/dist/core/map.d.ts.map +1 -1
- package/dist/core/map.js +14 -2
- package/dist/core/map.js.map +1 -1
- package/dist/core/paginate.d.ts +32 -0
- package/dist/core/paginate.d.ts.map +1 -0
- package/dist/core/paginate.js +107 -0
- package/dist/core/paginate.js.map +1 -0
- package/dist/core/rate-governor.d.ts +81 -0
- package/dist/core/rate-governor.d.ts.map +1 -0
- package/dist/core/rate-governor.js +238 -0
- package/dist/core/rate-governor.js.map +1 -0
- package/dist/core/search-provider.d.ts +5 -0
- package/dist/core/search-provider.d.ts.map +1 -1
- package/dist/core/search-provider.js +81 -2
- package/dist/core/search-provider.js.map +1 -1
- package/dist/core/site-search.d.ts +45 -0
- package/dist/core/site-search.d.ts.map +1 -0
- package/dist/core/site-search.js +253 -0
- package/dist/core/site-search.js.map +1 -0
- package/dist/core/strategies.d.ts +8 -0
- package/dist/core/strategies.d.ts.map +1 -1
- package/dist/core/strategies.js +185 -45
- package/dist/core/strategies.js.map +1 -1
- package/dist/core/strategy-hooks.d.ts +6 -0
- package/dist/core/strategy-hooks.d.ts.map +1 -1
- package/dist/core/strategy-hooks.js.map +1 -1
- package/dist/core/table-format.d.ts +31 -0
- package/dist/core/table-format.d.ts.map +1 -0
- package/dist/core/table-format.js +147 -0
- package/dist/core/table-format.js.map +1 -0
- package/dist/core/user-agents.d.ts +58 -0
- package/dist/core/user-agents.d.ts.map +1 -0
- package/dist/core/user-agents.js +159 -0
- package/dist/core/user-agents.js.map +1 -0
- package/dist/core/watch.d.ts +100 -0
- package/dist/core/watch.d.ts.map +1 -0
- package/dist/core/watch.js +368 -0
- package/dist/core/watch.js.map +1 -0
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +3 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/types.d.ts +73 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/llms.txt +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/core/apply.ts"],"names":[],"mappings":"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"}
|
package/dist/core/branding.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Branding and design system extraction from web pages
|
|
3
3
|
* Extracts colors, fonts, typography, spacing, components, and CSS variables
|
|
4
4
|
*/
|
|
5
|
-
import type { Page } from 'playwright
|
|
5
|
+
import type { Page } from 'playwright';
|
|
6
6
|
export interface BrandingProfile {
|
|
7
7
|
colorScheme: 'light' | 'dark' | 'both';
|
|
8
8
|
logo?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/core/branding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/core/branding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAQvC,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC,CAAC;IACF,KAAK,EAAE,KAAK,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC,CAAC;IACF,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAyO1E"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smart content distillation for WebPeel
|
|
3
|
+
*
|
|
4
|
+
* Intelligently compresses content to fit within a token budget using
|
|
5
|
+
* heuristic-based techniques — no LLM required.
|
|
6
|
+
*
|
|
7
|
+
* This is NOT simple truncation: it prioritises information-dense content
|
|
8
|
+
* and progressively removes lower-value sections while preserving structure.
|
|
9
|
+
*
|
|
10
|
+
* @module budget
|
|
11
|
+
*/
|
|
12
|
+
/** Tokens per listing item used for budget estimation in extract-all mode */
|
|
13
|
+
export declare const TOKENS_PER_LISTING_ITEM = 50;
|
|
14
|
+
/**
|
|
15
|
+
* Distill content to fit within a token budget using smart compression.
|
|
16
|
+
*
|
|
17
|
+
* Strategy (applied progressively until within budget):
|
|
18
|
+
* 1. Remove image markdown —  → keep meaningful alt text
|
|
19
|
+
* 2. Remove boilerplate sections (cookie banners, nav headings, etc.)
|
|
20
|
+
* 3. Compress tables to MAX_TABLE_ROWS data rows
|
|
21
|
+
* 4. Collapse redundant whitespace
|
|
22
|
+
* 5. Remove low information-density paragraphs
|
|
23
|
+
* 6. Hard-truncate with notice as last resort
|
|
24
|
+
*
|
|
25
|
+
* @param content The content string to distill
|
|
26
|
+
* @param budget Maximum token budget (rough: 1 token ≈ 4 chars)
|
|
27
|
+
* @param format Content format: 'markdown' | 'text' | 'json'
|
|
28
|
+
* @returns Distilled content within the budget
|
|
29
|
+
*/
|
|
30
|
+
export declare function distillToBudget(content: string, budget: number, format: 'markdown' | 'text' | 'json'): string;
|
|
31
|
+
/**
|
|
32
|
+
* Calculate how many listing items fit within a token budget.
|
|
33
|
+
*
|
|
34
|
+
* @param totalItems Total available items
|
|
35
|
+
* @param budget Token budget
|
|
36
|
+
* @returns { maxItems, truncated, totalAvailable }
|
|
37
|
+
*/
|
|
38
|
+
export declare function budgetListings(totalItems: number, budget: number): {
|
|
39
|
+
maxItems: number;
|
|
40
|
+
truncated: boolean;
|
|
41
|
+
totalAvailable: number;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=budget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../../src/core/budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA0BH,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAM1C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GACnC,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAQlE"}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smart content distillation for WebPeel
|
|
3
|
+
*
|
|
4
|
+
* Intelligently compresses content to fit within a token budget using
|
|
5
|
+
* heuristic-based techniques — no LLM required.
|
|
6
|
+
*
|
|
7
|
+
* This is NOT simple truncation: it prioritises information-dense content
|
|
8
|
+
* and progressively removes lower-value sections while preserving structure.
|
|
9
|
+
*
|
|
10
|
+
* @module budget
|
|
11
|
+
*/
|
|
12
|
+
import { estimateTokens } from './markdown.js';
|
|
13
|
+
/* ------------------------------------------------------------------ */
|
|
14
|
+
/* Constants */
|
|
15
|
+
/* ------------------------------------------------------------------ */
|
|
16
|
+
/**
|
|
17
|
+
* Heading patterns that indicate low-value boilerplate sections.
|
|
18
|
+
* When a heading matches, its entire section is removed.
|
|
19
|
+
*/
|
|
20
|
+
const BOILERPLATE_HEADING_PATTERNS = [
|
|
21
|
+
/^#{1,3}\s*(cookie(s| notice| policy| banner| consent)?|privacy( policy)?|terms( of (use|service))?|disclaimer|copyright)/i,
|
|
22
|
+
/^#{1,3}\s*(about us|contact( us)?|subscribe|newsletter|follow us|social media)/i,
|
|
23
|
+
/^#{1,3}\s*(related posts?|you may also|more from|popular posts?|trending|recent posts?)/i,
|
|
24
|
+
/^#{1,3}\s*(comments?|leave a (comment|reply)|tags?|categories?|share this)/i,
|
|
25
|
+
/^#{1,3}\s*(table of contents?|toc|index)/i,
|
|
26
|
+
/^#{1,3}\s*(advertisement|sponsored|promoted|ad(s| section)?)/i,
|
|
27
|
+
/^#{1,3}\s*(navigation|menu|sidebar|footer|header)/i,
|
|
28
|
+
/^#{1,3}\s*(sign[\s-]*up|log[\s-]*in|register|create( an)? account|get started)/i,
|
|
29
|
+
];
|
|
30
|
+
/** Maximum data rows to keep when compressing a markdown table */
|
|
31
|
+
const MAX_TABLE_ROWS = 3;
|
|
32
|
+
/** Tokens per listing item used for budget estimation in extract-all mode */
|
|
33
|
+
export const TOKENS_PER_LISTING_ITEM = 50;
|
|
34
|
+
/* ------------------------------------------------------------------ */
|
|
35
|
+
/* Public API */
|
|
36
|
+
/* ------------------------------------------------------------------ */
|
|
37
|
+
/**
|
|
38
|
+
* Distill content to fit within a token budget using smart compression.
|
|
39
|
+
*
|
|
40
|
+
* Strategy (applied progressively until within budget):
|
|
41
|
+
* 1. Remove image markdown —  → keep meaningful alt text
|
|
42
|
+
* 2. Remove boilerplate sections (cookie banners, nav headings, etc.)
|
|
43
|
+
* 3. Compress tables to MAX_TABLE_ROWS data rows
|
|
44
|
+
* 4. Collapse redundant whitespace
|
|
45
|
+
* 5. Remove low information-density paragraphs
|
|
46
|
+
* 6. Hard-truncate with notice as last resort
|
|
47
|
+
*
|
|
48
|
+
* @param content The content string to distill
|
|
49
|
+
* @param budget Maximum token budget (rough: 1 token ≈ 4 chars)
|
|
50
|
+
* @param format Content format: 'markdown' | 'text' | 'json'
|
|
51
|
+
* @returns Distilled content within the budget
|
|
52
|
+
*/
|
|
53
|
+
export function distillToBudget(content, budget, format) {
|
|
54
|
+
if (!content || budget <= 0)
|
|
55
|
+
return content;
|
|
56
|
+
if (estimateTokens(content) <= budget)
|
|
57
|
+
return content;
|
|
58
|
+
if (format === 'json') {
|
|
59
|
+
return distillJson(content, budget);
|
|
60
|
+
}
|
|
61
|
+
return distillMarkdown(content, budget);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Calculate how many listing items fit within a token budget.
|
|
65
|
+
*
|
|
66
|
+
* @param totalItems Total available items
|
|
67
|
+
* @param budget Token budget
|
|
68
|
+
* @returns { maxItems, truncated, totalAvailable }
|
|
69
|
+
*/
|
|
70
|
+
export function budgetListings(totalItems, budget) {
|
|
71
|
+
const maxItems = Math.max(1, Math.floor(budget / TOKENS_PER_LISTING_ITEM));
|
|
72
|
+
const truncated = maxItems < totalItems;
|
|
73
|
+
return {
|
|
74
|
+
maxItems: truncated ? maxItems : totalItems,
|
|
75
|
+
truncated,
|
|
76
|
+
totalAvailable: totalItems,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/* ------------------------------------------------------------------ */
|
|
80
|
+
/* Markdown / text distillation */
|
|
81
|
+
/* ------------------------------------------------------------------ */
|
|
82
|
+
function distillMarkdown(content, budget) {
|
|
83
|
+
let result = content;
|
|
84
|
+
// Step 1: Remove decorative images (minimal info loss)
|
|
85
|
+
if (estimateTokens(result) > budget) {
|
|
86
|
+
result = removeImages(result);
|
|
87
|
+
}
|
|
88
|
+
// Step 2: Remove boilerplate sections
|
|
89
|
+
if (estimateTokens(result) > budget) {
|
|
90
|
+
result = removeBoilerplateSections(result);
|
|
91
|
+
}
|
|
92
|
+
// Step 3: Compress wide tables
|
|
93
|
+
if (estimateTokens(result) > budget) {
|
|
94
|
+
result = compressTables(result);
|
|
95
|
+
}
|
|
96
|
+
// Step 4: Collapse redundant whitespace
|
|
97
|
+
if (estimateTokens(result) > budget) {
|
|
98
|
+
result = compressWhitespace(result);
|
|
99
|
+
}
|
|
100
|
+
// Step 5: Remove low-density paragraphs
|
|
101
|
+
if (estimateTokens(result) > budget) {
|
|
102
|
+
result = removeWeakParagraphs(result, budget);
|
|
103
|
+
}
|
|
104
|
+
// Step 6: Hard-truncate with notice as last resort
|
|
105
|
+
if (estimateTokens(result) > budget) {
|
|
106
|
+
result = hardTruncate(result, budget);
|
|
107
|
+
}
|
|
108
|
+
return result.trim();
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Remove image markdown — replace informative alt text, drop decorative images.
|
|
112
|
+
*/
|
|
113
|
+
function removeImages(content) {
|
|
114
|
+
return content
|
|
115
|
+
.replace(/!\[([^\]]*)\]\([^)]+\)/g, (_, alt) => {
|
|
116
|
+
const a = alt.trim();
|
|
117
|
+
// Keep short, descriptive alt text as a text label
|
|
118
|
+
return a.length > 0 && a.length < 60 ? `[Image: ${a}]` : '';
|
|
119
|
+
})
|
|
120
|
+
// Clean up empty image labels that remain
|
|
121
|
+
.replace(/\[Image: \]\s*/g, '');
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Remove boilerplate sections by matching heading patterns.
|
|
125
|
+
*
|
|
126
|
+
* When a boilerplate heading is found, everything up to (but not including)
|
|
127
|
+
* the next heading of equal or higher importance is removed.
|
|
128
|
+
*/
|
|
129
|
+
function removeBoilerplateSections(content) {
|
|
130
|
+
const lines = content.split('\n');
|
|
131
|
+
const result = [];
|
|
132
|
+
let skipping = false;
|
|
133
|
+
let skipDepth = 0;
|
|
134
|
+
for (const line of lines) {
|
|
135
|
+
const headingMatch = line.match(/^(#{1,6})\s/);
|
|
136
|
+
if (headingMatch) {
|
|
137
|
+
const depth = headingMatch[1].length;
|
|
138
|
+
// Stop skipping when we encounter a heading of equal or higher priority
|
|
139
|
+
if (skipping && depth <= skipDepth) {
|
|
140
|
+
skipping = false;
|
|
141
|
+
}
|
|
142
|
+
// Check if this heading starts a boilerplate section
|
|
143
|
+
if (!skipping && BOILERPLATE_HEADING_PATTERNS.some(p => p.test(line))) {
|
|
144
|
+
skipping = true;
|
|
145
|
+
skipDepth = depth;
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (!skipping) {
|
|
150
|
+
result.push(line);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return result.join('\n');
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Compress markdown tables to MAX_TABLE_ROWS data rows + header + separator.
|
|
157
|
+
*/
|
|
158
|
+
function compressTables(content) {
|
|
159
|
+
const lines = content.split('\n');
|
|
160
|
+
const result = [];
|
|
161
|
+
let inTable = false;
|
|
162
|
+
let headerDone = false;
|
|
163
|
+
let separatorDone = false;
|
|
164
|
+
let dataRows = 0;
|
|
165
|
+
let truncatedNote = false;
|
|
166
|
+
for (const line of lines) {
|
|
167
|
+
const trimmed = line.trim();
|
|
168
|
+
const isTableRow = trimmed.startsWith('|') && trimmed.endsWith('|');
|
|
169
|
+
const isSeparator = isTableRow && /^\|[\s|:-]+\|$/.test(trimmed);
|
|
170
|
+
if (isTableRow) {
|
|
171
|
+
if (!inTable) {
|
|
172
|
+
// New table begins
|
|
173
|
+
inTable = true;
|
|
174
|
+
headerDone = false;
|
|
175
|
+
separatorDone = false;
|
|
176
|
+
dataRows = 0;
|
|
177
|
+
truncatedNote = false;
|
|
178
|
+
}
|
|
179
|
+
if (!headerDone) {
|
|
180
|
+
result.push(line);
|
|
181
|
+
headerDone = true;
|
|
182
|
+
}
|
|
183
|
+
else if (isSeparator && !separatorDone) {
|
|
184
|
+
result.push(line);
|
|
185
|
+
separatorDone = true;
|
|
186
|
+
}
|
|
187
|
+
else if (!isSeparator) {
|
|
188
|
+
if (dataRows < MAX_TABLE_ROWS) {
|
|
189
|
+
result.push(line);
|
|
190
|
+
dataRows++;
|
|
191
|
+
}
|
|
192
|
+
else if (!truncatedNote) {
|
|
193
|
+
result.push(`| ... | *(${MAX_TABLE_ROWS}+ rows — additional rows omitted)* | ... |`);
|
|
194
|
+
truncatedNote = true;
|
|
195
|
+
}
|
|
196
|
+
// Further rows silently dropped
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
inTable = false;
|
|
201
|
+
result.push(line);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return result.join('\n');
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Collapse runs of 3+ blank lines to a single blank line.
|
|
208
|
+
*/
|
|
209
|
+
function compressWhitespace(content) {
|
|
210
|
+
return content.replace(/\n{3,}/g, '\n\n');
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Remove paragraphs scored as low information-density until within budget.
|
|
214
|
+
*
|
|
215
|
+
* Scoring heuristics:
|
|
216
|
+
* - Word count is the base score
|
|
217
|
+
* - Very short paragraphs (< 50 chars) are heavily penalised
|
|
218
|
+
* - Unusual avg word length penalised (nav menus, link lists)
|
|
219
|
+
* - Long bullet lists scored slightly lower
|
|
220
|
+
* - Headings and code blocks are never removed
|
|
221
|
+
*/
|
|
222
|
+
function removeWeakParagraphs(content, budget) {
|
|
223
|
+
const paragraphs = content.split('\n\n');
|
|
224
|
+
const scored = paragraphs.map((para, i) => {
|
|
225
|
+
const trimmed = para.trim();
|
|
226
|
+
const isHeading = /^#{1,6}\s/.test(trimmed);
|
|
227
|
+
const isCodeBlock = trimmed.startsWith('```');
|
|
228
|
+
const isHtmlComment = trimmed.startsWith('<!--');
|
|
229
|
+
// Never remove structural elements
|
|
230
|
+
if (isHeading || isCodeBlock || isHtmlComment) {
|
|
231
|
+
return { para, score: Number.MAX_SAFE_INTEGER, i };
|
|
232
|
+
}
|
|
233
|
+
// Strip markdown formatting for text analysis
|
|
234
|
+
const textOnly = trimmed.replace(/[#*_\[\]\(\)\-`|>~]/g, '');
|
|
235
|
+
const words = textOnly.split(/\s+/).filter(w => w.length > 0);
|
|
236
|
+
let score = words.length;
|
|
237
|
+
// Heavily penalise very short paragraphs (likely nav labels / single words)
|
|
238
|
+
if (textOnly.length < 50)
|
|
239
|
+
score *= 0.15;
|
|
240
|
+
// Penalise unusual avg word lengths (short = icon labels, long = data URIs)
|
|
241
|
+
const avgWordLen = words.length > 0 ? textOnly.length / words.length : 0;
|
|
242
|
+
if (avgWordLen < 3 || avgWordLen > 15)
|
|
243
|
+
score *= 0.4;
|
|
244
|
+
// Slightly penalise long bullet lists (repetitive structure)
|
|
245
|
+
const lines = trimmed.split('\n');
|
|
246
|
+
const bulletLines = lines.filter(l => /^[-*]\s/.test(l.trim()));
|
|
247
|
+
if (bulletLines.length > 3 && bulletLines.length === lines.length) {
|
|
248
|
+
score *= 0.7;
|
|
249
|
+
}
|
|
250
|
+
return { para, score, i };
|
|
251
|
+
});
|
|
252
|
+
// Sort ascending — weakest paragraphs first
|
|
253
|
+
const byScore = [...scored].sort((a, b) => a.score - b.score);
|
|
254
|
+
const removed = new Set();
|
|
255
|
+
let current = content;
|
|
256
|
+
for (const item of byScore) {
|
|
257
|
+
if (estimateTokens(current) <= budget)
|
|
258
|
+
break;
|
|
259
|
+
// Don't remove paragraphs with reasonable content
|
|
260
|
+
if (item.score >= 8)
|
|
261
|
+
break;
|
|
262
|
+
removed.add(item.i);
|
|
263
|
+
current = scored
|
|
264
|
+
.filter(s => !removed.has(s.i))
|
|
265
|
+
.map(s => s.para)
|
|
266
|
+
.join('\n\n');
|
|
267
|
+
}
|
|
268
|
+
return current;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Hard-truncate at a clean line boundary, appending a notice.
|
|
272
|
+
* Used only as the last resort after all other compression steps fail.
|
|
273
|
+
*/
|
|
274
|
+
function hardTruncate(content, budget) {
|
|
275
|
+
// Leave ~15 tokens for the truncation notice
|
|
276
|
+
const maxChars = Math.max((budget - 15) * 4, 0);
|
|
277
|
+
if (content.length <= maxChars)
|
|
278
|
+
return content;
|
|
279
|
+
// Find the last newline before the character limit
|
|
280
|
+
let cut = maxChars;
|
|
281
|
+
while (cut > 0 && content[cut] !== '\n')
|
|
282
|
+
cut--;
|
|
283
|
+
if (cut === 0)
|
|
284
|
+
cut = maxChars; // No newline found — hard cut
|
|
285
|
+
return content.slice(0, cut).trimEnd() + '\n\n[Content distilled to fit budget]';
|
|
286
|
+
}
|
|
287
|
+
/* ------------------------------------------------------------------ */
|
|
288
|
+
/* JSON distillation */
|
|
289
|
+
/* ------------------------------------------------------------------ */
|
|
290
|
+
/**
|
|
291
|
+
* Distill JSON content:
|
|
292
|
+
* - Arrays: binary-search for the maximum number of items that fit
|
|
293
|
+
* - Objects: fall back to text truncation
|
|
294
|
+
*/
|
|
295
|
+
function distillJson(content, budget) {
|
|
296
|
+
try {
|
|
297
|
+
const parsed = JSON.parse(content);
|
|
298
|
+
if (Array.isArray(parsed)) {
|
|
299
|
+
// Binary search for max items that fit within budget
|
|
300
|
+
let lo = 0;
|
|
301
|
+
let hi = parsed.length;
|
|
302
|
+
while (lo < hi) {
|
|
303
|
+
const mid = Math.ceil((lo + hi) / 2);
|
|
304
|
+
const slice = parsed.slice(0, mid);
|
|
305
|
+
if (estimateTokens(JSON.stringify(slice, null, 2)) <= budget) {
|
|
306
|
+
lo = mid;
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
hi = mid - 1;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return JSON.stringify(parsed.slice(0, lo), null, 2);
|
|
313
|
+
}
|
|
314
|
+
// Non-array JSON — fall back to text truncation
|
|
315
|
+
const str = JSON.stringify(parsed, null, 2);
|
|
316
|
+
if (estimateTokens(str) <= budget)
|
|
317
|
+
return str;
|
|
318
|
+
return hardTruncate(str, budget);
|
|
319
|
+
}
|
|
320
|
+
catch {
|
|
321
|
+
// Invalid JSON — treat as plain text
|
|
322
|
+
return hardTruncate(content, budget);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/core/budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Challenge / bot-protection page detection.
|
|
3
|
+
*
|
|
4
|
+
* Analyzes raw HTML (and optional HTTP status code) to determine whether the
|
|
5
|
+
* response is a bot-challenge or block page rather than real content.
|
|
6
|
+
*
|
|
7
|
+
* Design goals:
|
|
8
|
+
* - Fast: pure string/regex matching, no DOM parsing required
|
|
9
|
+
* - Low false-positive rate: uses confidence scoring, only flags at >= 0.7
|
|
10
|
+
* - No external dependencies
|
|
11
|
+
*/
|
|
12
|
+
export type ChallengeType = 'cloudflare' | 'captcha' | 'akamai' | 'perimeterx' | 'datadome' | 'incapsula' | 'generic-block' | 'empty-shell';
|
|
13
|
+
export interface ChallengeDetectionResult {
|
|
14
|
+
isChallenge: boolean;
|
|
15
|
+
type?: ChallengeType;
|
|
16
|
+
/** Confidence score from 0 (not a challenge) to 1 (definitely a challenge). */
|
|
17
|
+
confidence: number;
|
|
18
|
+
details?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Detect whether an HTML response is a bot-challenge or block page.
|
|
22
|
+
*
|
|
23
|
+
* @param html - Raw HTML response body.
|
|
24
|
+
* @param statusCode - HTTP status code (optional but improves accuracy).
|
|
25
|
+
*/
|
|
26
|
+
export declare function detectChallenge(html: string, statusCode?: number): ChallengeDetectionResult;
|
|
27
|
+
//# sourceMappingURL=challenge-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"challenge-detection.d.ts","sourceRoot":"","sources":["../../src/core/challenge-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,WAAW,GACX,eAAe,GACf,aAAa,CAAC;AAElB,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6aD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,wBAAwB,CAyD1B"}
|