smart-web-mcp 1.10.1 → 1.10.3

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.
@@ -6,6 +6,7 @@ import { tryFeedFallback, tryStructuredGenericFallback } from "../generic-fallba
6
6
  import { hasPaywallMarker, stripPaywallBoilerplate } from "../paywall.js";
7
7
  import { collectBbPressPages, extractGenericDiscussion } from "../generic-discussion.js";
8
8
  import { isMissingPageShell } from "../missing-page.js";
9
+ import { extractDocumentToc } from "../../extraction/toc.js";
9
10
  /**
10
11
  * When the browser lane was used, `context.active.anchors` contains the full
11
12
  * DOM anchor list including href + text. Extract absolute hrefs from it,
@@ -375,19 +376,25 @@ export async function normalizeArticleLike(context, extra) {
375
376
  scopeArticle: !indexLike,
376
377
  });
377
378
  const article = articleFieldsFromDocument(document);
378
- const reference = requestedReplyPage ? null : await tryArticleReferenceFallback(context, article);
379
+ // A source-bound short original is not an unavailable page just because
380
+ // whole-page navigation/reply text makes a generic transport heuristic weak.
381
+ const verifiedDiscussionOriginal = Boolean(discussion && article.text && !article.quality?.partial && !isMissingPageShell(article));
382
+ const reference = requestedReplyPage || verifiedDiscussionOriginal ? null : await tryArticleReferenceFallback(context, article);
379
383
  if (reference)
380
384
  return reference;
381
- const structured = requestedReplyPage ? null : tryStructuredGenericFallback(context, article);
385
+ const structured = requestedReplyPage || verifiedDiscussionOriginal ? null : tryStructuredGenericFallback(context, article);
382
386
  if (structured)
383
387
  return structured;
384
- const feed = requestedReplyPage ? null : await tryFeedFallback(context, article);
388
+ const feed = requestedReplyPage || verifiedDiscussionOriginal ? null : await tryFeedFallback(context, article);
385
389
  if (feed)
386
390
  return feed;
387
391
  const missingOriginal = isMissingPageShell(article);
388
392
  const replyPageUnverified = requestedReplyPage && !verifiedReplyPage;
389
393
  const ok = Boolean(article.text) && !article.quality?.partial && !missingOriginal && !replyPageUnverified;
390
394
  const base = context.resolvedUrl || context.url;
395
+ // Chapter/section indexes are source-owned navigation, not article prose.
396
+ // Inspect the acquired document even when primary-content selection omitted it.
397
+ const toc = requestedHash || discussion ? null : extractDocumentToc(context.active.content, base);
391
398
  // Keep the selected original and source-bound reply bodies, not row controls
392
399
  // or whole-page browser inventories, as the discussion's evidence scope.
393
400
  const scopedHtml = document.scopedHtml === undefined ? undefined
@@ -486,6 +493,7 @@ export async function normalizeArticleLike(context, extra) {
486
493
  description: article.description,
487
494
  text: article.text,
488
495
  body_coverage: { collected_chars: article.text.length, complete: ok },
496
+ ...(toc ? { toc: toc.entries, toc_coverage: toc.coverage } : {}),
489
497
  ...(context.includeComments && discussion ? { comment_coverage: discussion.coverage } : {}),
490
498
  author: article.author,
491
499
  image: article.image,
@@ -501,10 +509,11 @@ export async function normalizeArticleLike(context, extra) {
501
509
  },
502
510
  thread,
503
511
  comments: context.includeComments ? discussion?.comments || [] : [],
504
- outbound_links: document.scopedHtml ? cleanNormalizedLinks(outboundLinks) : dedupeUrls(outboundLinks),
512
+ outbound_links: toc ? cleanNormalizedLinks([...toc.entries.map(entry => entry.url), ...outboundLinks])
513
+ : document.scopedHtml ? cleanNormalizedLinks(outboundLinks) : dedupeUrls(outboundLinks),
505
514
  ...(scopedHtml ? { assetHtml: scopedHtml } : {}),
506
515
  ...(discussion?.continuationContent !== undefined ? { continuationContent: discussion.continuationContent } : {}),
507
- partial: !ok || Boolean(context.includeComments && discussion && !discussion.coverage.complete),
516
+ partial: !ok || Boolean(toc && !toc.coverage.complete) || Boolean(context.includeComments && discussion && !discussion.coverage.complete),
508
517
  errors: replyPageUnverified
509
518
  ? [...context.errors, { category: "unavailable", code: "reply_page_unverified", message: "The requested reply page lacks source-bound pagination and original evidence" }]
510
519
  : missingOriginal
@@ -1 +1 @@
1
- {"version":3,"file":"article.js","sourceRoot":"","sources":["../../../src/smartfetch/providers/article.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC/K,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,kBAAkB,EAA8E,MAAM,8BAA8B,CAAA;AAC5L,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAEvF,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAA0B;IAC/D,MAAM,OAAO,GAAI,OAAO,CAAC,MAA8D,CAAC,OAAO,CAAA;IAC/F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAA;IAC/C,uEAAuE;IACvE,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QAC3D,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,WAAW,CAAC,CAAC,CAAA;AAClD,CAAC;AAiBD,SAAS,yBAAyB,CAAC,QAA2B;IAC5D,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,mEAAmE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAA;AACtG,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;SACvB,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC;SAC1C,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC;SACzC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;SAC3B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,uBAAuB,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;SAChD,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtB,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;SAC1B,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,IAAI,EAAE,CAAA;AACX,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAA;IAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAA;IAC3H,OAAO;QACL,KAAK;QACL,WAAW;QACX,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,mBAAmB;KAC/B,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AACxD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,SAAiB;IAChD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7B,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,IAAI,CAAA;IACzC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAA;AACrD,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;QACtD,OAAO,IAAI;aACR,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC;aACxC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;aACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAA;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,IAAI,GAAG,CACZ,SAAS,CAAC,KAAK,CAAC;SACb,WAAW,EAAE;SACb,KAAK,CAAC,eAAe,CAAC;SACtB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CACtC,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA0B,EAAE,OAAsB;IAC9E,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;IACzD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QACxB,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;QAC9C,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QAC1C,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;KAC1B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC;AAED,SAAS,2BAA2B,CAAC,OAA0B,EAAE,OAAsB,EAAE,IAAkB;IACzG,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/D,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACrC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9F,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC3C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC9H,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACvD,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,CAAA;IAC/E,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,UAAU,IAAI,UAAU,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;QAAE,KAAK,IAAI,EAAE,CAAA;IAC1J,IAAI,aAAa;QAAE,KAAK,IAAI,EAAE,CAAA;IAC9B,IAAI,YAAY,IAAI,CAAC;QAAE,KAAK,IAAI,EAAE,CAAA;IAClC,IAAI,WAAW,IAAI,CAAC;QAAE,KAAK,IAAI,EAAE,CAAA;IACjC,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG;QAAE,KAAK,IAAI,EAAE,CAAA;IACtC,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG;QAAE,KAAK,IAAI,EAAE,CAAA;IACtC,IAAI,gBAAgB,CAAC,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,IAAI,mDAAmD,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;QAAE,KAAK,IAAI,EAAE,CAAA;IAC3I,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,CAAA;AAClF,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,OAA0B,EAAE,OAAsB;IAC3F,MAAM,WAAW,GAAG,uBAAuB,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IAC9E,MAAM,cAAc,GAAG,uBAAuB,CAAC,GAAG,OAAO,CAAC,WAAW,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IAC3F,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACxH,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,qBAAqB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAClI,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAE3B,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,IAAI,cAAc,CAAA;IAC7D,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAErC,MAAM,QAAQ,GAAmB,EAAE,CAAA;IACnC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;YAChI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;QACzE,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAA;QAC9I,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ;SACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAClE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;SAC7H,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;IAElD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAEpC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;IACvB,MAAM,cAAc,GAAG,QAAQ,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,WAAW,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1G,MAAM,iBAAiB,GAAG,qBAAqB;QAC7C,CAAC,CAAC,yDAAyD;QAC3D,CAAC,CAAC,uGAAuG,CAAA;IAC3G,OAAO;QACL,IAAI,EAAE;YACJ,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;YAC5B,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC;YACpE,WAAW,EAAE,yCAAyC,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,iBAAiB,EAAE;YAC/F,IAAI,EAAE;gBACJ,iBAAiB;gBACjB,mCAAmC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG;gBACtD,cAAc,CAAC,CAAC,CAAC,yBAAyB,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC/D,oBAAoB,IAAI,CAAC,OAAO,EAAE;gBAClC,wGAAwG;aACzG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9B,MAAM,EAAE,gBAAgB;YACxB,SAAS,EAAE,0BAA0B;SACtC;QACD,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;YACnB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,aAAa,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;SACzC,CAAC,CAAC;QACH,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACnF,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,0BAA0B;KACD,CAAA;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,GAAW;IAClE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,QAAQ,CAAC,IAAI;YAAE,OAAO;gBACxB,GAAG,QAAQ;gBACX,WAAW,EAAE,gBAAgB;gBAC7B,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1I,OAAO,EAAE;oBACP,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;oBACjC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM;oBAC7D,kBAAkB,EAAE,KAAK;oBACzB,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI;oBACvB,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,sBAAsB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;iBACnH;aACF,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;IACzI,OAAO,yBAAyB,CAAC,QAAQ,CAAC,CAAA;AAC5C,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAA;QACrE,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,IAAI,CAAA;QAC7B,qEAAqE;QACrE,IAAI,wHAAwH,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QACpJ,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QACpD,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5D,IAAI,iEAAiE,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7F,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,WAAmB;IAC7D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,GAAG,CAAC,QAAQ,KAAK,wBAAwB;YAAE,OAAO,IAAI,CAAA;QAC1D,IAAI,GAAG,CAAC,QAAQ,KAAK,iBAAiB,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAClG,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACjF,IAAI,KAAK;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QACvD,IAAI,GAAG,CAAC,QAAQ,KAAK,iBAAiB,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAA;QACvF,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA0B;IACnD,IAAI,MAAW,CAAA;IACf,IAAI,CAAC;QAAC,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAA;IAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;WAC/E,0CAA0C,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnF,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAA;IACnC,IAAI,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACxD,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAA;IACjE,MAAM,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IACtD,IAAI,CAAC,MAAM,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAAE,OAAO,IAAI,CAAA;IAExF,MAAM,KAAK,GAAG,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;WAClF,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,cAAc,CAAA;IAChG,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,OAAgB,EAAE,IAAI,EAAE,gCAAgC,EAAE,OAAO,EAAE,iGAAiG,EAAE,CAAA;IAChM,OAAO;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,iEAAiE,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,sBAAsB,EAAE;QACrK,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,EAAE;QAClB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;KAC9B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAA0B,EAAE,KAA+B;IACpG,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,YAAY;QAAE,OAAO,YAAY,CAAA;IACrC,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,kBAAkB,GAAG,qEAAqE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAClH,IAAI,UAAU,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,kBAAkB,CAAC,IAAI,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAClI,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACpH,IAAI,UAAU,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC9C,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAA;IACrG,CAAC;IACD,IAAI,iBAAiB,GAAG,KAAK,CAAA;IAC7B,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9I,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;QACnI,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,GAAG,QAAQ,CAAA;YACrB,iBAAiB,GAAG,IAAI,CAAA;QAC1B,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;IAC3E,IAAI,UAAU;QAAE,OAAO,YAAY,CAAC,eAAe,CAAA;IACnD,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;IAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,IAAI,aAAa,IAAI,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAC7G,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAA;QACjD,IAAI,CAAC;YAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,aAAa,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAA;QAAC,CAAC;IACnF,CAAC,CAAC,CAAC,CAAA;IACH,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;IAC7F,MAAM,SAAS,GAAG,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACjI,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,YAAY,EAAE,UAAU,EAAE;QAC1E,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;QACjD,YAAY,EAAE,CAAC,SAAS;KACzB,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACjG,IAAI,SAAS;QAAE,OAAO,SAAS,CAAA;IAC/B,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC7F,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IACjC,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAChF,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrB,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IACnD,MAAM,mBAAmB,GAAG,kBAAkB,IAAI,CAAC,iBAAiB,CAAA;IACpE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,eAAe,IAAI,CAAC,mBAAmB,CAAA;IACzG,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAA;IAC/C,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;QAC9D,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChH,MAAM,UAAU,GAAG,UAAU,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC1G,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAA;IAC3H,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/G,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,0BAA0B,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAC5G,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAE9E,2EAA2E;IAC3E,oEAAoE;IACpE,IAAI,MAAM,GAA8B,EAAE,CAAA;IAC1C,IAAI,SAAS,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YACnF,yFAAyF;YACzF,2DAA2D;YAC3D,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,UAAU,GAAI,OAAO,CAAC,MAA8D,CAAC,OAAO,CAAA;gBAClG,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,OAAO,UAAU;yBACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;yBACrF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;gBACnC,CAAC;gBACD,OAAO,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;YACjD,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QAE5C,uEAAuE;QACvE,0CAA0C;QAC1C,2EAA2E;QAC3E,IAAI,UAAU,GAAG,EAAE,CAAA;QACnB,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;YAC5B,UAAU,GAAG,MAAM,CAAC,MAAM,CAAA;YAC1B,gEAAgE;YAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACxF,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5C,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAExB,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YACzD,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAA;YACzC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC3B,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAA;gBACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;gBACzC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAA;gBACtF,iEAAiE;gBACjE,mEAAmE;gBACnE,MAAM,cAAc,GAAG,iDAAiD,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC1F,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBACxD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,cAAc,IAAI,WAAW;oBAAE,OAAO,KAAK,CAAA;gBACnE,IAAI,UAAU,EAAE,CAAC;oBACf,6EAA6E;oBAC7E,iFAAiF;oBACjF,OAAO,CAAC,QAAQ,CAAA;gBAClB,CAAC;gBACD,2DAA2D;gBAC3D,IAAI,CAAC,kBAAkB;oBAAE,OAAO,KAAK,CAAA;gBACrC,sEAAsE;gBACtE,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAAE,OAAO,KAAK,CAAA;gBACnE,OAAO,IAAI,CAAA;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACd,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;QACxC,MAAM,GAAG,cAAc;aACpB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;YAClB,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAA;YACzC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACvB,OAAO,IAAI,CAAA;QACb,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;aACb,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAA;IAC7F,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACnF,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC/D,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACpD,GAAG,0BAA0B,CAAC,WAAW,EAAE,IAAI,CAAC;QAChD,GAAG,WAAW,CAAC,WAAW,CAAC;KAC5B,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,iBAAiB;QAC/D,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtH,CAAC,CAAC,cAAc,CAAA;IAElB,OAAO;QACL,IAAI,EAAE;YACJ,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,aAAa,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;YACrE,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3F,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB;YACnI,GAAG,KAAK;SACT;QACD,MAAM;QACN,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QACnE,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC;QACrG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,UAAU,EAAE,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,OAAO,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/F,MAAM,EAAE,mBAAmB;YACzB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,8EAA8E,EAAE,CAAC;YAC1K,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,4EAA4E,EAAE,CAAC;gBACzK,CAAC,CAAC,OAAO,CAAC,MAAM;QAClB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;KAC9B,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"article.js","sourceRoot":"","sources":["../../../src/smartfetch/providers/article.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,9 @@ import { naverBlogMobilePostUrl } from "./smartfetch/providers/naver-blog.js";
20
20
  import { NAVER_CAFE_READY_SELECTOR, naverCafeMobilePostUrl } from "./smartfetch/providers/naver-cafe-native.js";
21
21
  import { exportComments } from "./comment-export.js";
22
22
  import { exportBody } from "./body-export.js";
23
+ import { inspectPageAccess } from "./page-access.js";
24
+ import { isMissingPageShell } from "./smartfetch/missing-page.js";
25
+ import { extractDocumentFromAdapter } from "./extraction/document.js";
23
26
  const FAILURE_CACHE_TTL_MS = 30_000;
24
27
  const IMPIT_MAX_REDIRECTS = 5;
25
28
  const TEXT_RENDER_LIMITS = {
@@ -73,6 +76,38 @@ function operatorRecoveryReason(result) {
73
76
  }
74
77
  return "";
75
78
  }
79
+ async function genericBrowserRecoveryReason(browser, requestedUrl, previousText) {
80
+ if (!browser.ok || hasTerminalSafetyBlock([browser.error]) || browser.http_status === 429 || browser.retry_after)
81
+ return "browser recovery failed or requires backoff";
82
+ let exact = false;
83
+ try {
84
+ const landed = new URL(browser.final_url || "");
85
+ exact = sameDiscussionIdentity(new URL(requestedUrl), landed);
86
+ }
87
+ catch { /* Missing browser identity is not a recovered original. */ }
88
+ if (!exact)
89
+ return "browser recovery changed source identity";
90
+ const access = inspectPageAccess(browser.content);
91
+ if (access.auth || access.interactive || access.evidence)
92
+ return "browser recovery requires user participation";
93
+ // Verify original-body acquisition here; fragment/reply intent is checked by
94
+ // the existing scoped normalizer, not a whole-body preflight.
95
+ const bodyUrl = new URL(requestedUrl);
96
+ bodyUrl.hash = "";
97
+ const article = await extractDocumentFromAdapter(browser, bodyUrl.href);
98
+ if (article.quality?.partial || !article.text.trim() || isMissingPageShell(article)
99
+ || previousText !== undefined && article.text.trim() === previousText.trim())
100
+ return "browser recovery did not verify readable original content";
101
+ return "";
102
+ }
103
+ function browserRecoveryBoundary(browser, rejected) {
104
+ if (browser.http_status === 429 || browser.retry_after || hasTerminalSafetyBlock([browser.error]) || browser.error?.code === "operator_browser_user_required")
105
+ return browser;
106
+ if (rejected === "browser recovery requires user participation")
107
+ return { ...browser, ok: false,
108
+ error: { category: "block", code: "operator_browser_user_required", message: "Approved browser reached a mandatory participation boundary; user action is required" } };
109
+ return undefined;
110
+ }
76
111
  function preflightCooldown(result, method) {
77
112
  if (result.http_status !== 429 && !result.retry_after)
78
113
  return undefined;
@@ -428,6 +463,8 @@ async function runPlaywrightFetch(url, timeoutMs, target, profileDir, waitForSel
428
463
  content: "",
429
464
  links: [],
430
465
  error: result.error,
466
+ ...(result.http_status !== undefined ? { http_status: result.http_status } : {}),
467
+ ...(result.retry_after ? { retry_after: result.retry_after } : {}),
431
468
  };
432
469
  }
433
470
  return {
@@ -945,19 +982,28 @@ async function runSmartfetchTask(options, runtime, deadlineAt, output) {
945
982
  else if (operatorRecoveryReason(active) || needsBotChallengeBrowserUpgrade(active)) {
946
983
  // Direct-client failure does not prove the approved browser cannot read it.
947
984
  const browserResult = await runPlaywrightFetchWithRuntime(options.url, remaining(), target, runtime, profileDir, options.wait_for, options.includeComments);
985
+ const rejected = target === "generic" ? await genericBrowserRecoveryReason(browserResult, options.url) : "";
948
986
  browserAttempt.attempted = true;
949
- browserAttempt.ok = browserResult.ok;
987
+ browserAttempt.ok = browserResult.ok && !rejected;
950
988
  browserAttempt.method = browserResult.method;
951
989
  browserAttempt.reason = operatorRecoveryReason(active) || "impit returned bot-challenge interstitial — upgraded to browser";
990
+ if (rejected)
991
+ browserAttempt.reason += `; ${rejected}`;
952
992
  output.evidence.playwright_attempted = true;
953
993
  output.retrieval_method.push(browserResult.method);
954
994
  if (browserResult.error)
955
995
  output.errors.push(browserResult.error);
956
996
  remaining();
957
- output.evidence.playwright_success = browserResult.ok;
997
+ output.evidence.playwright_success = browserAttempt.ok;
958
998
  effectiveLane = "browser";
959
999
  effectiveReason = browserAttempt.reason;
960
- if (browserResult.ok)
1000
+ const boundary = browserRecoveryBoundary(browserResult, rejected);
1001
+ if (boundary) {
1002
+ active = boundary;
1003
+ if (boundary.error && !browserResult.error)
1004
+ output.errors.push(boundary.error);
1005
+ }
1006
+ else if (browserAttempt.ok)
961
1007
  active = browserResult;
962
1008
  }
963
1009
  }
@@ -987,7 +1033,49 @@ async function runSmartfetchTask(options, runtime, deadlineAt, output) {
987
1033
  }
988
1034
  const archiveTarget = inferTarget(active.final_url || options.url, "auto");
989
1035
  const archiveProvider = resolveSmartfetchProvider(active.final_url || options.url, archiveTarget);
990
- const suppressRetries = hasTerminalSafetyBlock([active.error]) || active.http_status === 429 || Boolean(active.retry_after);
1036
+ let suppressRetries = hasTerminalSafetyBlock([active.error]) || active.error?.code === "operator_browser_user_required" || active.http_status === 429 || Boolean(active.retry_after);
1037
+ let genericRecoveryIncomplete = false;
1038
+ // A transport-success shell is not a fulfilled generic read. Use the approved
1039
+ // owned browser once before optional relays, without asking for force_dynamic.
1040
+ // Preserve cheap structured/feed recovery and real participation boundaries.
1041
+ if (target === "generic" && effectiveLane === "direct" && !browserAttempt.attempted && !suppressRetries
1042
+ && !options.includeComments && !new URL(options.url).hash
1043
+ && !profileDir && configText("fetch.browserCdpUrl") && active.ok
1044
+ && !/self\.__next_f\.push\(|<script[^>]*id=["']__NEXT_DATA__["']|<link[^>]*type=["']application\/(?:rss|atom)\+xml["']/i.test(active.content)) {
1045
+ const directAccess = inspectPageAccess(active.content);
1046
+ const article = await extractDocumentFromAdapter(active, options.url);
1047
+ remaining();
1048
+ if (!directAccess.auth && !directAccess.interactive && !directAccess.evidence
1049
+ && !isMissingPageShell(article)
1050
+ && (article.quality?.partial || /^(?:loading(?:\s+(?:content|page|article|documentation))?(?:\.{1,3}|…)?|please wait(?:\.{1,3}|…)?)$/i.test(article.text.trim()))) {
1051
+ const browserResult = await runPlaywrightFetchWithRuntime(options.url, remaining(), target, runtime, profileDir, options.wait_for, options.includeComments);
1052
+ remaining();
1053
+ const rejected = await genericBrowserRecoveryReason(browserResult, options.url, article.text);
1054
+ remaining();
1055
+ browserAttempt.attempted = true;
1056
+ browserAttempt.ok = browserResult.ok && !rejected;
1057
+ browserAttempt.method = browserResult.method;
1058
+ browserAttempt.reason = `low-yield direct original — approved browser before optional relays${rejected ? `; ${rejected}` : ""}`;
1059
+ output.evidence.playwright_attempted = true;
1060
+ output.evidence.playwright_success = browserAttempt.ok;
1061
+ output.retrieval_method.push(browserResult.method);
1062
+ if (browserResult.error)
1063
+ output.errors.push(browserResult.error);
1064
+ genericRecoveryIncomplete = !browserAttempt.ok;
1065
+ const boundary = browserRecoveryBoundary(browserResult, rejected);
1066
+ if (boundary) {
1067
+ active = boundary;
1068
+ if (boundary.error && !browserResult.error)
1069
+ output.errors.push(boundary.error);
1070
+ suppressRetries = true;
1071
+ }
1072
+ if (browserAttempt.ok) {
1073
+ active = browserResult;
1074
+ effectiveLane = "browser";
1075
+ effectiveReason = browserAttempt.reason;
1076
+ }
1077
+ }
1078
+ }
991
1079
  // A visible review-to-unlock prompt is a participation boundary, not a
992
1080
  // weak article to be sent through third-party relay/archive retries.
993
1081
  const lockedBlindPreview = ["teamblind.com", "www.teamblind.com"].includes(new URL(options.url).hostname)
@@ -1054,6 +1142,8 @@ async function runSmartfetchTask(options, runtime, deadlineAt, output) {
1054
1142
  output.errors.push(...relayed.errors);
1055
1143
  const jinaErrors = relayed.errors.filter((error) => error.code.startsWith("jina_reader"));
1056
1144
  const jinaSucceeded = active.method === "jina_reader" || active.method === "jina_reader_json";
1145
+ if (jinaSucceeded)
1146
+ genericRecoveryIncomplete = false;
1057
1147
  jinaAttempt.attempted = jinaSucceeded || jinaErrors.length > 0 || active.method !== beforeMethod;
1058
1148
  jinaAttempt.ok = jinaSucceeded;
1059
1149
  if (jinaSucceeded)
@@ -1088,11 +1178,12 @@ async function runSmartfetchTask(options, runtime, deadlineAt, output) {
1088
1178
  ? archiveErrors[0]?.message || "Archive fallback did not improve the page"
1089
1179
  : "Archive fallback was eligible but was not used or not needed";
1090
1180
  if (archiveSucceeded) {
1181
+ genericRecoveryIncomplete = false;
1091
1182
  usedArchive = true;
1092
1183
  output.retrieval_method.push(active.method);
1093
1184
  }
1094
1185
  }
1095
- if (effectiveLane === "direct" && (needsDynamicCrawl(active) || needsSpaBrowserFallback(active))) {
1186
+ if (effectiveLane === "direct" && !suppressRetries && (needsDynamicCrawl(active) || needsSpaBrowserFallback(active))) {
1096
1187
  const scraped = await maybeUseAdaptiveScraper(active.final_url || options.url, active, remaining());
1097
1188
  remaining();
1098
1189
  output.errors.push(...scraped.errors);
@@ -1105,6 +1196,7 @@ async function runSmartfetchTask(options, runtime, deadlineAt, output) {
1105
1196
  delete adaptiveScraperAttempt.method;
1106
1197
  if (scraped.succeeded) {
1107
1198
  active = scraped.active;
1199
+ genericRecoveryIncomplete = false;
1108
1200
  output.retrieval_method.push(scraped.active.method);
1109
1201
  }
1110
1202
  }
@@ -1117,22 +1209,32 @@ async function runSmartfetchTask(options, runtime, deadlineAt, output) {
1117
1209
  // SPA auto-fallback: after cheap alternatives (Jina, archive, adaptive scraper) didn't help,
1118
1210
  // if the direct fetch result looks like an SPA shell, upgrade to Playwright.
1119
1211
  // This must come AFTER Jina/archive so those cheap paths get a chance first.
1120
- if (effectiveLane === "direct" && !browserAttempt.attempted && needsSpaBrowserFallback(active)) {
1212
+ if (effectiveLane === "direct" && !suppressRetries && !browserAttempt.attempted && needsSpaBrowserFallback(active)) {
1121
1213
  const browserResult = await runPlaywrightFetchWithRuntime(options.url, remaining(), target, runtime, profileDir, options.wait_for, options.includeComments);
1214
+ const rejected = target === "generic" ? await genericBrowserRecoveryReason(browserResult, options.url) : "";
1122
1215
  browserAttempt.attempted = true;
1123
- browserAttempt.ok = browserResult.ok;
1216
+ browserAttempt.ok = browserResult.ok && !rejected;
1124
1217
  browserAttempt.method = browserResult.method;
1125
- browserAttempt.reason = "direct fetch returned SPA shell — auto-fallback to browser for JS rendering";
1218
+ browserAttempt.reason = `direct fetch returned SPA shell — auto-fallback to browser for JS rendering${rejected ? `; ${rejected}` : ""}`;
1126
1219
  output.evidence.playwright_attempted = true;
1127
1220
  output.retrieval_method.push(browserResult.method);
1128
1221
  if (browserResult.error)
1129
1222
  output.errors.push(browserResult.error);
1130
1223
  remaining();
1131
- output.evidence.playwright_success = browserResult.ok;
1224
+ output.evidence.playwright_success = browserAttempt.ok;
1132
1225
  effectiveLane = "browser";
1133
1226
  effectiveReason = "direct fetch returned SPA shell — auto-fallback to browser for JS rendering";
1134
- if (browserResult.ok)
1227
+ const boundary = browserRecoveryBoundary(browserResult, rejected);
1228
+ if (boundary) {
1229
+ active = boundary;
1230
+ if (boundary.error && !browserResult.error)
1231
+ output.errors.push(boundary.error);
1232
+ suppressRetries = true;
1233
+ }
1234
+ else if (browserAttempt.ok)
1135
1235
  active = browserResult;
1236
+ if (target === "generic" && !browserAttempt.ok)
1237
+ genericRecoveryIncomplete = true;
1136
1238
  }
1137
1239
  let recoveredBrowserDiscussion = null;
1138
1240
  // A body-only direct success cannot satisfy an explicit discussion read.
@@ -1290,8 +1392,13 @@ async function runSmartfetchTask(options, runtime, deadlineAt, output) {
1290
1392
  output.partial = true;
1291
1393
  output.assessment = createAssessment({
1292
1394
  confidence: "low", blocked_reason: active.error?.message || "Retrieval stopped",
1293
- signals: [hasTerminalSafetyBlock([active.error]) ? "resolve:blocked" : "retrieval:cooldown"],
1395
+ signals: [hasTerminalSafetyBlock([active.error]) ? "resolve:blocked" : active.http_status === 429 || active.retry_after ? "retrieval:cooldown" : "retrieval:retry_suppressed"],
1294
1396
  });
1397
+ if (active.error?.code === "operator_browser_user_required") {
1398
+ const suppressedSignals = output.assessment.signals;
1399
+ output.assessment = assessSmartfetchOutput({ url: options.url, requestedTarget: options.target || "auto", finalTarget: effectiveTarget, active, provider, output });
1400
+ output.assessment.signals.push(...suppressedSignals);
1401
+ }
1295
1402
  output.pipeline.normalize = buildNormalizeStage({ provider, partial: true });
1296
1403
  output.pipeline.assess = output.assessment;
1297
1404
  return attachResearchHandoff(output);
@@ -1355,6 +1462,11 @@ async function runSmartfetchTask(options, runtime, deadlineAt, output) {
1355
1462
  }, normalized);
1356
1463
  remaining();
1357
1464
  const enriched = academic.normalized;
1465
+ if (genericRecoveryIncomplete) {
1466
+ enriched.partial = true;
1467
+ if (enriched.post?.body_coverage && typeof enriched.post.body_coverage === "object")
1468
+ enriched.post.body_coverage = { ...enriched.post.body_coverage, complete: false };
1469
+ }
1358
1470
  if (recoveredBrowserDiscussion && provider.id === "generic" && enriched.post) {
1359
1471
  enriched.comments = recoveredBrowserDiscussion.comments;
1360
1472
  enriched.post.comment_coverage = recoveredBrowserDiscussion.coverage;
@@ -1506,6 +1618,9 @@ export function renderSmartfetch(output, format) {
1506
1618
  const exportReceipt = exported ? `Comment export: ${exported.path}\ncomments=${exported.comments_count} complete=${exported.complete} bytes=${exported.bytes} sha256=${exported.sha256}` : "";
1507
1619
  const bodyExported = projected.body_export;
1508
1620
  const bodyExportReceipt = bodyExported ? `Body export: ${bodyExported.path}\nchars=${bodyExported.chars} complete=${bodyExported.complete} bytes=${bodyExported.bytes} sha256=${bodyExported.sha256}` : "";
1621
+ const tocRows = Array.isArray(post.toc) ? post.toc.filter((row) => Boolean(row && typeof row === "object" && typeof row.title === "string" && typeof row.url === "string" && Number.isInteger(row.level) && row.level >= 0 && row.level <= 20)) : [];
1622
+ const tocCoverage = post.toc_coverage;
1623
+ const tocText = tocRows.length ? `Table of contents (${tocRows.length}/${tocCoverage?.collected_items ?? tocRows.length} collected entries delivered; complete=${tocCoverage?.complete === true}):\n${tocRows.map(row => `${" ".repeat(row.level)}- ${row.title} — ${row.url}`).join("\n")}` : "";
1509
1624
  if (format === "text") {
1510
1625
  // Explicit full output must not hide projected comments behind the compact text view.
1511
1626
  // The projection policy still bounds each field and the total response.
@@ -1568,7 +1683,7 @@ export function renderSmartfetch(output, format) {
1568
1683
  const continuation = assessment.continuation ? `continuation: ${assessment.continuation.status} — ${assessment.continuation.reason}` : "";
1569
1684
  const budget = projected.budget?.truncated ? `budget: truncated fields=${Object.keys(projected.budget.fields).join(",")}` : "";
1570
1685
  const compactBudget = renderBudget ? `text_view: ${fullPolicy ? "full" : "compact"} renderer omitted ${renderBudget}` : "";
1571
- return [title, meta, exportReceipt, bodyExportReceipt, textBody.text, results.join("\n"), comments.join("\n"), linkItems.visible.join("\n"), download, assets.join("\n"), handoff, continuation, budget, compactBudget].filter(Boolean).join("\n\n").trim();
1686
+ return [title, meta, exportReceipt, bodyExportReceipt, tocText, textBody.text, results.join("\n"), comments.join("\n"), linkItems.visible.join("\n"), download, assets.join("\n"), handoff, continuation, budget, compactBudget].filter(Boolean).join("\n\n").trim();
1572
1687
  }
1573
1688
  const parts = [];
1574
1689
  const url = String(post?.url || projected.url || "").trim();
@@ -1604,6 +1719,8 @@ export function renderSmartfetch(output, format) {
1604
1719
  parts.push("Interactive flow likely: yes");
1605
1720
  if (meta.length > 0)
1606
1721
  parts.push(meta.join("\n"));
1722
+ if (tocText)
1723
+ parts.push(`## ${tocText}`);
1607
1724
  if (text)
1608
1725
  parts.push(text);
1609
1726
  if (Array.isArray(projected.comments) && projected.comments.length > 0) {
@@ -1707,6 +1824,8 @@ async function runPlaywrightFetchWithRuntime(url, timeoutMs, target, runtime, pr
1707
1824
  content: "",
1708
1825
  links: [],
1709
1826
  error: result.error,
1827
+ ...(result.http_status !== undefined ? { http_status: result.http_status } : {}),
1828
+ ...(result.retry_after ? { retry_after: result.retry_after } : {}),
1710
1829
  };
1711
1830
  }
1712
1831
  return {