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.
Files changed (99) hide show
  1. package/README.md +39 -5
  2. package/dist/cli.js +1299 -85
  3. package/dist/cli.js.map +1 -1
  4. package/dist/core/application-tracker.d.ts +85 -0
  5. package/dist/core/application-tracker.d.ts.map +1 -0
  6. package/dist/core/application-tracker.js +184 -0
  7. package/dist/core/application-tracker.js.map +1 -0
  8. package/dist/core/apply.d.ts +163 -0
  9. package/dist/core/apply.d.ts.map +1 -0
  10. package/dist/core/apply.js +817 -0
  11. package/dist/core/apply.js.map +1 -0
  12. package/dist/core/branding.d.ts +1 -1
  13. package/dist/core/branding.d.ts.map +1 -1
  14. package/dist/core/budget.d.ts +43 -0
  15. package/dist/core/budget.d.ts.map +1 -0
  16. package/dist/core/budget.js +325 -0
  17. package/dist/core/budget.js.map +1 -0
  18. package/dist/core/challenge-detection.d.ts +27 -0
  19. package/dist/core/challenge-detection.d.ts.map +1 -0
  20. package/dist/core/challenge-detection.js +436 -0
  21. package/dist/core/challenge-detection.js.map +1 -0
  22. package/dist/core/change-tracking.d.ts.map +1 -1
  23. package/dist/core/change-tracking.js +10 -1
  24. package/dist/core/change-tracking.js.map +1 -1
  25. package/dist/core/crawler.d.ts.map +1 -1
  26. package/dist/core/crawler.js +17 -4
  27. package/dist/core/crawler.js.map +1 -1
  28. package/dist/core/diff.d.ts +62 -0
  29. package/dist/core/diff.d.ts.map +1 -0
  30. package/dist/core/diff.js +289 -0
  31. package/dist/core/diff.js.map +1 -0
  32. package/dist/core/extract-listings.d.ts +39 -0
  33. package/dist/core/extract-listings.d.ts.map +1 -0
  34. package/dist/core/extract-listings.js +331 -0
  35. package/dist/core/extract-listings.js.map +1 -0
  36. package/dist/core/extract.d.ts.map +1 -1
  37. package/dist/core/extract.js +15 -2
  38. package/dist/core/extract.js.map +1 -1
  39. package/dist/core/fetcher.d.ts +29 -3
  40. package/dist/core/fetcher.d.ts.map +1 -1
  41. package/dist/core/fetcher.js +158 -20
  42. package/dist/core/fetcher.js.map +1 -1
  43. package/dist/core/human.d.ts +176 -0
  44. package/dist/core/human.d.ts.map +1 -0
  45. package/dist/core/human.js +681 -0
  46. package/dist/core/human.js.map +1 -0
  47. package/dist/core/jobs.d.ts +12 -2
  48. package/dist/core/jobs.d.ts.map +1 -1
  49. package/dist/core/jobs.js +124 -2
  50. package/dist/core/jobs.js.map +1 -1
  51. package/dist/core/map.d.ts.map +1 -1
  52. package/dist/core/map.js +14 -2
  53. package/dist/core/map.js.map +1 -1
  54. package/dist/core/paginate.d.ts +32 -0
  55. package/dist/core/paginate.d.ts.map +1 -0
  56. package/dist/core/paginate.js +107 -0
  57. package/dist/core/paginate.js.map +1 -0
  58. package/dist/core/rate-governor.d.ts +81 -0
  59. package/dist/core/rate-governor.d.ts.map +1 -0
  60. package/dist/core/rate-governor.js +238 -0
  61. package/dist/core/rate-governor.js.map +1 -0
  62. package/dist/core/search-provider.d.ts +5 -0
  63. package/dist/core/search-provider.d.ts.map +1 -1
  64. package/dist/core/search-provider.js +81 -2
  65. package/dist/core/search-provider.js.map +1 -1
  66. package/dist/core/site-search.d.ts +45 -0
  67. package/dist/core/site-search.d.ts.map +1 -0
  68. package/dist/core/site-search.js +253 -0
  69. package/dist/core/site-search.js.map +1 -0
  70. package/dist/core/strategies.d.ts +8 -0
  71. package/dist/core/strategies.d.ts.map +1 -1
  72. package/dist/core/strategies.js +185 -45
  73. package/dist/core/strategies.js.map +1 -1
  74. package/dist/core/strategy-hooks.d.ts +6 -0
  75. package/dist/core/strategy-hooks.d.ts.map +1 -1
  76. package/dist/core/strategy-hooks.js.map +1 -1
  77. package/dist/core/table-format.d.ts +31 -0
  78. package/dist/core/table-format.d.ts.map +1 -0
  79. package/dist/core/table-format.js +147 -0
  80. package/dist/core/table-format.js.map +1 -0
  81. package/dist/core/user-agents.d.ts +58 -0
  82. package/dist/core/user-agents.d.ts.map +1 -0
  83. package/dist/core/user-agents.js +159 -0
  84. package/dist/core/user-agents.js.map +1 -0
  85. package/dist/core/watch.d.ts +100 -0
  86. package/dist/core/watch.d.ts.map +1 -0
  87. package/dist/core/watch.js +368 -0
  88. package/dist/core/watch.js.map +1 -0
  89. package/dist/index.d.ts +13 -2
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +41 -4
  92. package/dist/index.js.map +1 -1
  93. package/dist/mcp/server.js +3 -0
  94. package/dist/mcp/server.js.map +1 -1
  95. package/dist/types.d.ts +73 -0
  96. package/dist/types.d.ts.map +1 -1
  97. package/dist/types.js.map +1 -1
  98. package/llms.txt +1 -1
  99. 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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"}
@@ -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-core';
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,iBAAiB,CAAC;AAQ5C,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"}
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 — ![alt](url) → 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 — ![alt](url) → 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"}