webpeel 0.16.0 → 0.17.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 (113) hide show
  1. package/LICENSE +11 -657
  2. package/README.md +246 -325
  3. package/dist/cli.js +330 -73
  4. package/dist/cli.js.map +1 -1
  5. package/dist/core/browser-fetch.d.ts +12 -0
  6. package/dist/core/browser-fetch.d.ts.map +1 -1
  7. package/dist/core/browser-fetch.js +70 -17
  8. package/dist/core/browser-fetch.js.map +1 -1
  9. package/dist/core/cf-worker-proxy.d.ts +33 -0
  10. package/dist/core/cf-worker-proxy.d.ts.map +1 -0
  11. package/dist/core/cf-worker-proxy.js +88 -0
  12. package/dist/core/cf-worker-proxy.js.map +1 -0
  13. package/dist/core/chunker.d.ts +47 -0
  14. package/dist/core/chunker.d.ts.map +1 -0
  15. package/dist/core/chunker.js +250 -0
  16. package/dist/core/chunker.js.map +1 -0
  17. package/dist/core/cloak-fetch.d.ts +43 -0
  18. package/dist/core/cloak-fetch.d.ts.map +1 -0
  19. package/dist/core/cloak-fetch.js +141 -0
  20. package/dist/core/cloak-fetch.js.map +1 -0
  21. package/dist/core/crawl-checkpoint.d.ts +55 -0
  22. package/dist/core/crawl-checkpoint.d.ts.map +1 -0
  23. package/dist/core/crawl-checkpoint.js +105 -0
  24. package/dist/core/crawl-checkpoint.js.map +1 -0
  25. package/dist/core/crawler.d.ts +5 -1
  26. package/dist/core/crawler.d.ts.map +1 -1
  27. package/dist/core/crawler.js +60 -5
  28. package/dist/core/crawler.js.map +1 -1
  29. package/dist/core/cycle-fetch.d.ts +27 -0
  30. package/dist/core/cycle-fetch.d.ts.map +1 -0
  31. package/dist/core/cycle-fetch.js +99 -0
  32. package/dist/core/cycle-fetch.js.map +1 -0
  33. package/dist/core/domain-extractors.d.ts.map +1 -1
  34. package/dist/core/domain-extractors.js +754 -14
  35. package/dist/core/domain-extractors.js.map +1 -1
  36. package/dist/core/google-cache.d.ts +30 -0
  37. package/dist/core/google-cache.d.ts.map +1 -0
  38. package/dist/core/google-cache.js +181 -0
  39. package/dist/core/google-cache.js.map +1 -0
  40. package/dist/core/markdown.d.ts +11 -0
  41. package/dist/core/markdown.d.ts.map +1 -1
  42. package/dist/core/markdown.js +43 -0
  43. package/dist/core/markdown.js.map +1 -1
  44. package/dist/core/peel-tls.d.ts +26 -0
  45. package/dist/core/peel-tls.d.ts.map +1 -0
  46. package/dist/core/peel-tls.js +221 -0
  47. package/dist/core/peel-tls.js.map +1 -0
  48. package/dist/core/pipeline.d.ts +5 -1
  49. package/dist/core/pipeline.d.ts.map +1 -1
  50. package/dist/core/pipeline.js +269 -21
  51. package/dist/core/pipeline.js.map +1 -1
  52. package/dist/core/schema-postprocess.d.ts +33 -0
  53. package/dist/core/schema-postprocess.d.ts.map +1 -0
  54. package/dist/core/schema-postprocess.js +470 -0
  55. package/dist/core/schema-postprocess.js.map +1 -0
  56. package/dist/core/schema-templates.d.ts +20 -0
  57. package/dist/core/schema-templates.d.ts.map +1 -0
  58. package/dist/core/schema-templates.js +131 -0
  59. package/dist/core/schema-templates.js.map +1 -0
  60. package/dist/core/search-fallback.d.ts +28 -0
  61. package/dist/core/search-fallback.d.ts.map +1 -0
  62. package/dist/core/search-fallback.js +185 -0
  63. package/dist/core/search-fallback.js.map +1 -0
  64. package/dist/core/search-provider.d.ts +47 -4
  65. package/dist/core/search-provider.d.ts.map +1 -1
  66. package/dist/core/search-provider.js +278 -7
  67. package/dist/core/search-provider.js.map +1 -1
  68. package/dist/core/stealth-patches.d.ts +58 -0
  69. package/dist/core/stealth-patches.d.ts.map +1 -0
  70. package/dist/core/stealth-patches.js +340 -0
  71. package/dist/core/stealth-patches.js.map +1 -0
  72. package/dist/core/strategies.d.ts +20 -0
  73. package/dist/core/strategies.d.ts.map +1 -1
  74. package/dist/core/strategies.js +284 -48
  75. package/dist/core/strategies.js.map +1 -1
  76. package/dist/core/strategy-hooks.d.ts +1 -1
  77. package/dist/core/strategy-hooks.d.ts.map +1 -1
  78. package/dist/index.d.ts +11 -0
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +37 -15
  81. package/dist/index.js.map +1 -1
  82. package/dist/mcp/server.js +109 -4
  83. package/dist/mcp/server.js.map +1 -1
  84. package/dist/server/app.d.ts.map +1 -1
  85. package/dist/server/app.js +29 -0
  86. package/dist/server/app.js.map +1 -1
  87. package/dist/server/middleware/rate-limit.d.ts +2 -1
  88. package/dist/server/middleware/rate-limit.d.ts.map +1 -1
  89. package/dist/server/middleware/rate-limit.js +24 -8
  90. package/dist/server/middleware/rate-limit.js.map +1 -1
  91. package/dist/server/routes/agent.d.ts +4 -0
  92. package/dist/server/routes/agent.d.ts.map +1 -1
  93. package/dist/server/routes/agent.js +196 -9
  94. package/dist/server/routes/agent.js.map +1 -1
  95. package/dist/server/routes/batch.js +5 -5
  96. package/dist/server/routes/batch.js.map +1 -1
  97. package/dist/server/routes/compat.d.ts.map +1 -1
  98. package/dist/server/routes/compat.js +1 -0
  99. package/dist/server/routes/compat.js.map +1 -1
  100. package/dist/server/routes/fetch.d.ts.map +1 -1
  101. package/dist/server/routes/fetch.js +60 -6
  102. package/dist/server/routes/fetch.js.map +1 -1
  103. package/dist/server/routes/mcp.d.ts.map +1 -1
  104. package/dist/server/routes/mcp.js +103 -2
  105. package/dist/server/routes/mcp.js.map +1 -1
  106. package/dist/server/routes/search.js +1 -1
  107. package/dist/server/routes/search.js.map +1 -1
  108. package/dist/types.d.ts +55 -4
  109. package/dist/types.d.ts.map +1 -1
  110. package/dist/types.js +4 -1
  111. package/dist/types.js.map +1 -1
  112. package/llms.txt +55 -125
  113. package/package.json +15 -1
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { createHash } from 'crypto';
8
8
  import { smartFetch } from './strategies.js';
9
- import { htmlToMarkdown, htmlToText, estimateTokens, selectContent, detectMainContent, calculateQuality, truncateToTokenBudget, filterByTags, } from './markdown.js';
9
+ import { htmlToMarkdown, htmlToText, cleanForAI, estimateTokens, selectContent, detectMainContent, calculateQuality, truncateToTokenBudget, filterByTags, cleanMarkdownNoise, } from './markdown.js';
10
10
  import { pruneContent } from './content-pruner.js';
11
11
  import { distillToBudget } from './budget.js';
12
12
  import { extractMetadata, extractLinks, extractImages } from './metadata.js';
@@ -18,6 +18,8 @@ import { extractDomainData, getDomainExtractor } from './domain-extractors.js';
18
18
  import { extractReadableContent } from './readability.js';
19
19
  import { quickAnswer as runQuickAnswer } from './quick-answer.js';
20
20
  import { Timer } from './timing.js';
21
+ import { chunkContent } from './chunker.js';
22
+ import { BlockedError } from '../types.js';
21
23
  /** Create the initial PipelineContext with defaults */
22
24
  export function createContext(url, options) {
23
25
  return {
@@ -61,6 +63,10 @@ export function createContext(url, options) {
61
63
  quality: 0,
62
64
  // Link count — filled by parseContent() / buildResult
63
65
  linkCount: 0,
66
+ // Domain API first-pass flag
67
+ domainApiHandled: false,
68
+ // Warnings accumulator
69
+ warnings: [],
64
70
  };
65
71
  }
66
72
  // ---------------------------------------------------------------------------
@@ -202,24 +208,136 @@ export async function handleYouTube(ctx) {
202
208
  export async function fetchContent(ctx) {
203
209
  const needsBranding = ctx.options.branding && ctx.render;
204
210
  const needsAutoScroll = !!ctx.autoScrollOpts && ctx.render;
211
+ // Try API-based domain extraction first (Reddit, GitHub, HN use APIs, not HTML)
212
+ // This avoids expensive browser fetches that often get blocked
213
+ if (getDomainExtractor(ctx.url)) {
214
+ try {
215
+ ctx.timer.mark('domainApiFirst');
216
+ const ddResult = await extractDomainData('', ctx.url);
217
+ ctx.timer.end('domainApiFirst');
218
+ if (ddResult && ddResult.cleanContent.length > 50) {
219
+ ctx.domainData = ddResult;
220
+ ctx.content = ddResult.cleanContent;
221
+ // Create minimal fetchResult so downstream stages don't crash
222
+ ctx.fetchResult = {
223
+ html: ddResult.cleanContent,
224
+ url: ctx.url,
225
+ status: 200,
226
+ contentType: 'text/html',
227
+ method: 'domain-api',
228
+ };
229
+ ctx.title = ddResult.structured?.title || '';
230
+ ctx.quality = 0.95; // High quality — structured API data
231
+ // Compute basic metadata so downstream stages have wordCount etc.
232
+ const domainWordCount = ddResult.cleanContent.split(/\s+/).filter(Boolean).length;
233
+ ctx.metadata = {
234
+ ...(ctx.metadata || {}),
235
+ title: ddResult.structured?.title || ctx.title,
236
+ description: ddResult.structured?.description || ddResult.structured?.extract || '',
237
+ wordCount: domainWordCount,
238
+ language: ddResult.structured?.language || 'en',
239
+ };
240
+ ctx.domainApiHandled = true;
241
+ return; // Skip browser fetch entirely
242
+ }
243
+ }
244
+ catch (e) {
245
+ // Domain API failed — fall through to normal fetch
246
+ if (process.env.DEBUG)
247
+ console.debug('[webpeel]', 'domain API first-pass failed, falling back to fetch:', e instanceof Error ? e.message : e);
248
+ }
249
+ }
205
250
  ctx.timer.mark('fetch');
206
- const fetchResult = await smartFetch(ctx.url, {
207
- forceBrowser: ctx.render,
208
- stealth: ctx.stealth,
209
- waitMs: ctx.wait,
210
- userAgent: ctx.userAgent,
211
- timeoutMs: ctx.timeout,
212
- screenshot: ctx.screenshot,
213
- screenshotFullPage: ctx.screenshotFullPage,
214
- headers: ctx.headers,
215
- cookies: ctx.cookies,
216
- actions: ctx.actions,
217
- keepPageOpen: needsBranding || needsAutoScroll,
218
- profileDir: ctx.profileDir,
219
- headed: ctx.headed,
220
- storageState: ctx.storageState,
221
- proxy: ctx.proxy,
222
- });
251
+ let fetchResult;
252
+ try {
253
+ fetchResult = await smartFetch(ctx.url, {
254
+ forceBrowser: ctx.render,
255
+ stealth: ctx.stealth,
256
+ waitMs: ctx.wait,
257
+ userAgent: ctx.userAgent,
258
+ timeoutMs: ctx.timeout,
259
+ screenshot: ctx.screenshot,
260
+ screenshotFullPage: ctx.screenshotFullPage,
261
+ headers: ctx.headers,
262
+ cookies: ctx.cookies,
263
+ actions: ctx.actions,
264
+ keepPageOpen: needsBranding || needsAutoScroll,
265
+ profileDir: ctx.profileDir,
266
+ headed: ctx.headed,
267
+ storageState: ctx.storageState,
268
+ proxy: ctx.proxy,
269
+ proxies: ctx.options.proxies,
270
+ device: ctx.options.device,
271
+ viewportWidth: ctx.options.viewportWidth,
272
+ viewportHeight: ctx.options.viewportHeight,
273
+ waitUntil: ctx.options.waitUntil,
274
+ waitSelector: ctx.options.waitSelector,
275
+ blockResources: ctx.options.blockResources,
276
+ cloaked: ctx.options.cloaked,
277
+ cycle: ctx.options.cycle,
278
+ });
279
+ }
280
+ catch (fetchError) {
281
+ // If fetch failed but we have a domain extractor, try it as fallback
282
+ if (getDomainExtractor(ctx.url)) {
283
+ try {
284
+ const ddResult = await extractDomainData('', ctx.url);
285
+ if (ddResult && ddResult.cleanContent.length > 50) {
286
+ ctx.timer.end('fetch');
287
+ ctx.domainData = ddResult;
288
+ ctx.content = ddResult.cleanContent;
289
+ ctx.fetchResult = {
290
+ html: ddResult.cleanContent,
291
+ url: ctx.url,
292
+ status: 200,
293
+ contentType: 'text/html',
294
+ method: 'domain-api-fallback',
295
+ };
296
+ ctx.title = ddResult.structured?.title || '';
297
+ ctx.quality = 0.90;
298
+ const fallbackWordCount = ddResult.cleanContent.split(/\s+/).filter(Boolean).length;
299
+ ctx.metadata = { ...(ctx.metadata || {}), title: ddResult.structured?.title || ctx.title, wordCount: fallbackWordCount, language: 'en' };
300
+ ctx.domainApiHandled = true;
301
+ return;
302
+ }
303
+ }
304
+ catch (e) {
305
+ // Domain API also failed — throw original error
306
+ }
307
+ }
308
+ // Search-as-proxy fallback for blocked requests (BlockedError before pipeline)
309
+ // When all fetch strategies fail with a bot-protection block, try DDG search
310
+ // to get the title/snippet from the search engine's cached version.
311
+ if (fetchError instanceof BlockedError) {
312
+ try {
313
+ const { searchFallback } = await import('./search-fallback.js');
314
+ const searchResult = await searchFallback(ctx.url);
315
+ if (searchResult.cachedContent && searchResult.cachedContent.length > 50) {
316
+ ctx.timer.end('fetch');
317
+ ctx.content = searchResult.cachedContent;
318
+ ctx.title = searchResult.title || ctx.title;
319
+ ctx.quality = 0.4;
320
+ ctx.warnings.push('Content retrieved from search engine cache because the original page blocked direct access. Results may be incomplete.');
321
+ ctx.fetchResult = {
322
+ html: searchResult.cachedContent,
323
+ url: ctx.url,
324
+ status: 0,
325
+ contentType: 'text/markdown',
326
+ method: 'search-fallback',
327
+ };
328
+ ctx.metadata = {
329
+ ...(ctx.metadata || {}),
330
+ title: searchResult.title || ctx.title,
331
+ blocked: true,
332
+ fallbackSource: searchResult.source,
333
+ };
334
+ return;
335
+ }
336
+ }
337
+ catch { /* Search fallback also failed — rethrow original BlockedError */ }
338
+ }
339
+ throw fetchError;
340
+ }
223
341
  ctx.timer.end('fetch');
224
342
  // Auto-scroll to load lazy content, then grab fresh HTML
225
343
  if (needsAutoScroll && fetchResult.page) {
@@ -252,6 +370,10 @@ export async function fetchContent(ctx) {
252
370
  }
253
371
  }
254
372
  ctx.fetchResult = fetchResult;
373
+ // Warn when a challenge/CAPTCHA page was detected
374
+ if (fetchResult.challengeDetected) {
375
+ ctx.warnings.push('Challenge/CAPTCHA page detected. Content may be incomplete or from a bot-detection page.');
376
+ }
255
377
  }
256
378
  // ---------------------------------------------------------------------------
257
379
  // Stage 4: detectContentType
@@ -260,6 +382,9 @@ export async function fetchContent(ctx) {
260
382
  * Detect and set ctx.contentType based on response headers and content.
261
383
  */
262
384
  export function detectContentType(ctx) {
385
+ // Skip HTML parsing stages — domain API already provided clean content
386
+ if (ctx.domainApiHandled)
387
+ return;
263
388
  const fetchResult = ctx.fetchResult;
264
389
  const ct = (fetchResult.contentType || '').toLowerCase();
265
390
  const urlLower = fetchResult.url.toLowerCase();
@@ -280,15 +405,20 @@ export function detectContentType(ctx) {
280
405
  * Sets ctx.content, ctx.title, ctx.metadata, ctx.links, ctx.quality, ctx.prunedPercent.
281
406
  */
282
407
  export async function parseContent(ctx) {
408
+ // Skip HTML parsing stages — domain API already provided clean content
409
+ if (ctx.domainApiHandled)
410
+ return;
283
411
  const fetchResult = ctx.fetchResult;
284
412
  const { contentType, format, fullPage, raw, selector, exclude, includeTags, excludeTags } = ctx;
285
413
  const hasBuffer = !!fetchResult.buffer;
286
414
  if (contentType === 'document' && hasBuffer) {
287
415
  // Document parsing pipeline (PDF/DOCX)
416
+ // 'clean' maps to 'markdown' for extraction; cleanForAI is applied in buildResult
417
+ const docFormat = format === 'clean' ? 'markdown' : format;
288
418
  const docResult = await extractDocumentToFormat(fetchResult.buffer, {
289
419
  url: fetchResult.url,
290
420
  contentType: fetchResult.contentType,
291
- format,
421
+ format: docFormat,
292
422
  });
293
423
  ctx.content = docResult.content;
294
424
  ctx.title = docResult.metadata.title;
@@ -311,6 +441,9 @@ export async function parseContent(ctx) {
311
441
  case 'text':
312
442
  ctx.content = htmlToText(liteHtml);
313
443
  break;
444
+ case 'clean':
445
+ ctx.content = cleanForAI(htmlToMarkdown(liteHtml, { raw, prune: false }));
446
+ break;
314
447
  default:
315
448
  ctx.content = htmlToMarkdown(liteHtml, { raw, prune: false });
316
449
  break;
@@ -434,6 +567,12 @@ export async function parseContent(ctx) {
434
567
  case 'text':
435
568
  converted = htmlToText(htmlForConvert);
436
569
  break;
570
+ case 'clean': {
571
+ // First convert to markdown, then strip link syntax
572
+ const md = htmlToMarkdown(htmlForConvert, { raw, prune: false });
573
+ converted = cleanForAI(md);
574
+ break;
575
+ }
437
576
  case 'markdown':
438
577
  default:
439
578
  // prune:false — already pruned above; avoid double-pruning in htmlToMarkdown
@@ -465,6 +604,9 @@ export async function parseContent(ctx) {
465
604
  case 'text':
466
605
  retryConverted = htmlToText(contentHtml);
467
606
  break;
607
+ case 'clean':
608
+ retryConverted = cleanForAI(htmlToMarkdown(contentHtml, { raw, prune: false }));
609
+ break;
468
610
  case 'markdown':
469
611
  default:
470
612
  retryConverted = htmlToMarkdown(contentHtml, { raw, prune: false });
@@ -473,6 +615,10 @@ export async function parseContent(ctx) {
473
615
  ctx.timer.end('convert-retry');
474
616
  ctx.content = retryConverted;
475
617
  }
618
+ // Clean up markdown noise (empty links, excess newlines, trailing spaces)
619
+ if (format === 'markdown') {
620
+ ctx.content = cleanMarkdownNoise(ctx.content);
621
+ }
476
622
  ctx.quality = calculateQuality(ctx.content, fetchResult.html);
477
623
  }
478
624
  else if (contentType === 'json') {
@@ -643,6 +789,7 @@ export async function postProcess(ctx) {
643
789
  }
644
790
  budgetedContent = truncated;
645
791
  ctx.budgetFallback = true;
792
+ ctx.warnings.push('Content was truncated to fit budget using head truncation (BM25 distillation produced insufficient content)');
646
793
  if (process.env.DEBUG) {
647
794
  console.debug('[webpeel]', `budget distillation fallback: BM25 produced ${budgetedContent.length} chars (< 10% of ${originalContent.length}), using head truncation`);
648
795
  }
@@ -651,7 +798,7 @@ export async function postProcess(ctx) {
651
798
  }
652
799
  // Domain-aware structured extraction (Twitter, Reddit, GitHub, HN)
653
800
  // Fires when URL matches a known domain. Replaces content with clean markdown.
654
- if (getDomainExtractor(fetchResult.url)) {
801
+ if (getDomainExtractor(fetchResult.url) && !ctx.domainApiHandled) {
655
802
  try {
656
803
  ctx.timer.mark('domainExtract');
657
804
  const ddResult = await extractDomainData(fetchResult.html, fetchResult.url);
@@ -667,9 +814,63 @@ export async function postProcess(ctx) {
667
814
  console.debug('[webpeel]', 'domain extraction failed:', e instanceof Error ? e.message : e);
668
815
  }
669
816
  }
817
+ // === Challenge / bot-protection page detection ===
818
+ // If the extracted content looks like a challenge page (not real content),
819
+ // mark it and try the search-as-proxy fallback to get the real info.
820
+ if (ctx.content && ctx.content.length < 2000) {
821
+ const lowerContent = ctx.content.toLowerCase();
822
+ const challengeSignals = [
823
+ 'please verify you are a human',
824
+ 'access denied',
825
+ 'enable javascript and cookies',
826
+ 'checking your browser',
827
+ 'cloudflare',
828
+ 'just a moment',
829
+ 'ray id',
830
+ 'attention required',
831
+ 'please wait while we verify',
832
+ 'bot protection',
833
+ 'are you a robot',
834
+ 'captcha',
835
+ 'page not found',
836
+ 'not found',
837
+ 'forbidden',
838
+ 'error 403',
839
+ 'error 404',
840
+ '403 forbidden',
841
+ '404 not found',
842
+ 'sorry, this page',
843
+ 'blocked',
844
+ ];
845
+ const isChallengeContent = challengeSignals.some(s => lowerContent.includes(s))
846
+ || (ctx.content.length < 100 && (ctx.stealth || ctx.fetchResult?.method === 'stealth' || ctx.fetchResult?.method === 'browser'));
847
+ if (isChallengeContent) {
848
+ ctx.warnings.push('Bot protection detected. Content is a challenge page, not the actual page content.');
849
+ if (ctx.metadata) {
850
+ ctx.metadata.blocked = true;
851
+ ctx.metadata.challengeDetected = true;
852
+ }
853
+ // Try search fallback for the real content
854
+ try {
855
+ const { searchFallback } = await import('./search-fallback.js');
856
+ const searchResult = await searchFallback(ctx.url);
857
+ if (searchResult.cachedContent && searchResult.cachedContent.length > 50) {
858
+ ctx.content = searchResult.cachedContent;
859
+ ctx.title = searchResult.title || ctx.title;
860
+ ctx.quality = 0.4;
861
+ ctx.warnings.push('Content retrieved from search engine cache because the original page blocked direct access. Results may be incomplete.');
862
+ if (ctx.metadata) {
863
+ ctx.metadata.fallbackSource = searchResult.source;
864
+ }
865
+ }
866
+ }
867
+ catch { /* Search fallback failed — continue with challenge page content */ }
868
+ }
869
+ }
670
870
  // === Zero-token safety net ===
671
871
  // NEVER return empty content. If pipeline produced nothing, fall back.
672
872
  if (!ctx.content || ctx.content.trim().length === 0) {
873
+ ctx.warnings.push('Primary extraction failed; content sourced from fallback (meta description or raw HTML)');
673
874
  // Try 1: JSON-LD (may not have been tried if selector/raw was used)
674
875
  if (fetchResult.html) {
675
876
  const { extractJsonLd } = await import('./json-ld.js');
@@ -705,6 +906,24 @@ export async function postProcess(ctx) {
705
906
  return;
706
907
  }
707
908
  }
909
+ // Try 4: Search-as-proxy fallback (when page appears blocked)
910
+ // Search engines already crawled this page — use their cached snippet.
911
+ try {
912
+ const { searchFallback } = await import('./search-fallback.js');
913
+ const searchResult = await searchFallback(ctx.url);
914
+ if (searchResult.cachedContent && searchResult.cachedContent.length > 50) {
915
+ ctx.content = searchResult.cachedContent;
916
+ ctx.title = searchResult.title || ctx.title;
917
+ ctx.quality = 0.4; // Low quality — it's a search snippet, not the full page
918
+ ctx.warnings.push('Content retrieved from search engine cache because the original page blocked direct access. Results may be incomplete.');
919
+ if (ctx.metadata) {
920
+ ctx.metadata.blocked = true;
921
+ ctx.metadata.fallbackSource = searchResult.source;
922
+ }
923
+ return;
924
+ }
925
+ }
926
+ catch { /* Search fallback failed — continue to final empty handler */ }
708
927
  }
709
928
  }
710
929
  // ---------------------------------------------------------------------------
@@ -801,7 +1020,33 @@ export function buildResult(ctx) {
801
1020
  warning = 'Budget distillation was unable to identify key content. Showing first portion of page instead. This may be a listing or index page — try fetching without a budget for full content.';
802
1021
  }
803
1022
  else if (contentLen < 50) {
804
- warning = 'Very little content extracted. The page may be empty, behind a login wall, or require JavaScript rendering.';
1023
+ // Check if this looks like a blocked request
1024
+ const fetchMethod = ctx.fetchResult?.method || 'unknown';
1025
+ const triedStealth = fetchMethod === 'stealth' || ctx.options.stealth;
1026
+ const triedBrowser = fetchMethod === 'browser' || ctx.options.render;
1027
+ if (triedStealth || triedBrowser) {
1028
+ warning = 'This site appears to use bot protection (Cloudflare, Akamai, PerimeterX). Try: --cloaked flag, a residential proxy (--proxy), or check if the URL requires authentication.';
1029
+ // Set blocked flag in metadata
1030
+ if (ctx.metadata) {
1031
+ ctx.metadata.blocked = true;
1032
+ }
1033
+ }
1034
+ else {
1035
+ warning = 'Very little content extracted. The page may require JavaScript rendering (try --render), be behind a login wall, or use bot protection.';
1036
+ }
1037
+ }
1038
+ // Apply clean format if requested (after all other processing)
1039
+ if (ctx.format === 'clean' && ctx.content) {
1040
+ ctx.content = cleanForAI(ctx.content);
1041
+ }
1042
+ // Chunking for RAG pipelines
1043
+ let ragChunks;
1044
+ if (ctx.options.chunk) {
1045
+ const chunkOpts = typeof ctx.options.chunk === 'object'
1046
+ ? ctx.options.chunk
1047
+ : {};
1048
+ const chunkResult = chunkContent(ctx.content, chunkOpts);
1049
+ ragChunks = chunkResult.chunks;
805
1050
  }
806
1051
  return {
807
1052
  url: fetchResult.url,
@@ -824,12 +1069,15 @@ export function buildResult(ctx) {
824
1069
  linkCount: ctx.links.length,
825
1070
  freshness,
826
1071
  ...(warning !== undefined ? { warning } : {}),
1072
+ ...(ctx.metadata && ctx.metadata.blocked ? { blocked: true } : {}),
827
1073
  ...(ctx.prunedPercent !== undefined ? { prunedPercent: ctx.prunedPercent } : {}),
828
1074
  ...(ctx.domainData !== undefined ? { domainData: ctx.domainData } : {}),
829
1075
  ...(ctx.readabilityResult !== undefined ? { readability: ctx.readabilityResult } : {}),
830
1076
  ...(ctx.quickAnswerResult !== undefined ? { quickAnswer: ctx.quickAnswerResult } : {}),
831
1077
  timing: ctx.timer.toTiming(),
832
1078
  ...(ctx.jsonLdType !== undefined ? { jsonLdType: ctx.jsonLdType } : {}),
1079
+ ...(ctx.warnings.length > 0 ? { warnings: ctx.warnings } : {}),
1080
+ ...(ragChunks !== undefined ? { chunks: ragChunks } : {}),
833
1081
  };
834
1082
  }
835
1083
  //# sourceMappingURL=pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Post-process BM25 quickAnswer passages to extract specific values.
3
+ *
4
+ * BM25 finds relevant passages but can't extract values. This module
5
+ * applies field-type-aware regex extraction to pull the actual value
6
+ * from the passage.
7
+ */
8
+ /**
9
+ * Post-process a BM25 passage to extract the actual value for a given field name.
10
+ */
11
+ export declare function extractValueFromPassage(passage: string, fieldName: string): string;
12
+ /**
13
+ * Smart schema extraction that uses structural signals before falling back to BM25.
14
+ *
15
+ * For title/name: uses the page title or first heading
16
+ * For author: scans first 1000 chars for "by X" patterns
17
+ * For date: scans first 1000 chars for date patterns
18
+ * For price/email/phone/url: regex scan of full content
19
+ * For everything else: BM25 quickAnswer + post-processing
20
+ */
21
+ export declare function smartExtractSchemaFields(content: string, templateFields: Record<string, string>, quickAnswerFn: (opts: {
22
+ content: string;
23
+ question: string;
24
+ url?: string;
25
+ }) => {
26
+ answer: string;
27
+ confidence: number;
28
+ }, options?: {
29
+ pageTitle?: string;
30
+ pageUrl?: string;
31
+ metadata?: Record<string, any>;
32
+ }): Record<string, string>;
33
+ //# sourceMappingURL=schema-postprocess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-postprocess.d.ts","sourceRoot":"","sources":["../../src/core/schema-postprocess.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkLH;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAuBlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACtC,aAAa,EAAE,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EACpH,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC,GACA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2OxB"}