@pseolint/core 0.4.1 → 0.5.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.
Files changed (321) hide show
  1. package/README.md +264 -169
  2. package/dist/ai/manifest/diff.d.ts +78 -0
  3. package/dist/ai/manifest/diff.d.ts.map +1 -0
  4. package/dist/ai/manifest/diff.js +139 -0
  5. package/dist/ai/manifest/diff.js.map +1 -0
  6. package/dist/ai/manifest/index.d.ts +18 -0
  7. package/dist/ai/manifest/index.d.ts.map +1 -0
  8. package/dist/ai/manifest/index.js +15 -0
  9. package/dist/ai/manifest/index.js.map +1 -0
  10. package/dist/ai/manifest/validate-manifest.d.ts +37 -0
  11. package/dist/ai/manifest/validate-manifest.d.ts.map +1 -0
  12. package/dist/ai/manifest/validate-manifest.js +67 -0
  13. package/dist/ai/manifest/validate-manifest.js.map +1 -0
  14. package/dist/ai/manifest/validators/domain-patches.d.ts +15 -0
  15. package/dist/ai/manifest/validators/domain-patches.d.ts.map +1 -0
  16. package/dist/ai/manifest/validators/domain-patches.js +110 -0
  17. package/dist/ai/manifest/validators/domain-patches.js.map +1 -0
  18. package/dist/ai/manifest/validators/index.d.ts +5 -0
  19. package/dist/ai/manifest/validators/index.d.ts.map +1 -0
  20. package/dist/ai/manifest/validators/index.js +4 -0
  21. package/dist/ai/manifest/validators/index.js.map +1 -0
  22. package/dist/ai/manifest/validators/page-changes.d.ts +36 -0
  23. package/dist/ai/manifest/validators/page-changes.d.ts.map +1 -0
  24. package/dist/ai/manifest/validators/page-changes.js +221 -0
  25. package/dist/ai/manifest/validators/page-changes.js.map +1 -0
  26. package/dist/ai/manifest/validators/types.d.ts +17 -0
  27. package/dist/ai/manifest/validators/types.d.ts.map +1 -0
  28. package/dist/ai/manifest/validators/types.js +5 -0
  29. package/dist/ai/manifest/validators/types.js.map +1 -0
  30. package/dist/ai/orchestrate.d.ts +74 -0
  31. package/dist/ai/orchestrate.d.ts.map +1 -0
  32. package/dist/ai/orchestrate.js +54 -0
  33. package/dist/ai/orchestrate.js.map +1 -0
  34. package/dist/ai/orchestrator/budget.d.ts +57 -0
  35. package/dist/ai/orchestrator/budget.d.ts.map +1 -0
  36. package/dist/ai/orchestrator/budget.js +114 -0
  37. package/dist/ai/orchestrator/budget.js.map +1 -0
  38. package/dist/ai/orchestrator/finish-tool.d.ts +568 -0
  39. package/dist/ai/orchestrator/finish-tool.d.ts.map +1 -0
  40. package/dist/ai/orchestrator/finish-tool.js +114 -0
  41. package/dist/ai/orchestrator/finish-tool.js.map +1 -0
  42. package/dist/ai/orchestrator/index.d.ts +25 -0
  43. package/dist/ai/orchestrator/index.d.ts.map +1 -0
  44. package/dist/ai/orchestrator/index.js +21 -0
  45. package/dist/ai/orchestrator/index.js.map +1 -0
  46. package/dist/ai/orchestrator/log.d.ts +24 -0
  47. package/dist/ai/orchestrator/log.d.ts.map +1 -0
  48. package/dist/ai/orchestrator/log.js +48 -0
  49. package/dist/ai/orchestrator/log.js.map +1 -0
  50. package/dist/ai/orchestrator/page-cache.d.ts +64 -0
  51. package/dist/ai/orchestrator/page-cache.d.ts.map +1 -0
  52. package/dist/ai/orchestrator/page-cache.js +127 -0
  53. package/dist/ai/orchestrator/page-cache.js.map +1 -0
  54. package/dist/ai/orchestrator/prompt.d.ts +16 -0
  55. package/dist/ai/orchestrator/prompt.d.ts.map +1 -0
  56. package/dist/ai/orchestrator/prompt.js +52 -0
  57. package/dist/ai/orchestrator/prompt.js.map +1 -0
  58. package/dist/ai/orchestrator/runner.d.ts +65 -0
  59. package/dist/ai/orchestrator/runner.d.ts.map +1 -0
  60. package/dist/ai/orchestrator/runner.js +223 -0
  61. package/dist/ai/orchestrator/runner.js.map +1 -0
  62. package/dist/ai/orchestrator/session.d.ts +44 -0
  63. package/dist/ai/orchestrator/session.d.ts.map +1 -0
  64. package/dist/ai/orchestrator/session.js +64 -0
  65. package/dist/ai/orchestrator/session.js.map +1 -0
  66. package/dist/ai/orchestrator/types.d.ts +99 -0
  67. package/dist/ai/orchestrator/types.d.ts.map +1 -0
  68. package/dist/ai/orchestrator/types.js +8 -0
  69. package/dist/ai/orchestrator/types.js.map +1 -0
  70. package/dist/ai/probes/cache.d.ts +12 -0
  71. package/dist/ai/probes/cache.d.ts.map +1 -0
  72. package/dist/ai/probes/cache.js +46 -0
  73. package/dist/ai/probes/cache.js.map +1 -0
  74. package/dist/ai/tools/ask-ai-engine.d.ts +77 -0
  75. package/dist/ai/tools/ask-ai-engine.d.ts.map +1 -0
  76. package/dist/ai/tools/ask-ai-engine.js +253 -0
  77. package/dist/ai/tools/ask-ai-engine.js.map +1 -0
  78. package/dist/ai/tools/check-domain-crawler-access.d.ts +71 -0
  79. package/dist/ai/tools/check-domain-crawler-access.d.ts.map +1 -0
  80. package/dist/ai/tools/check-domain-crawler-access.js +76 -0
  81. package/dist/ai/tools/check-domain-crawler-access.js.map +1 -0
  82. package/dist/ai/tools/check-domain-llms-txt.d.ts +70 -0
  83. package/dist/ai/tools/check-domain-llms-txt.d.ts.map +1 -0
  84. package/dist/ai/tools/check-domain-llms-txt.js +75 -0
  85. package/dist/ai/tools/check-domain-llms-txt.js.map +1 -0
  86. package/dist/ai/tools/check-indexability.d.ts +58 -0
  87. package/dist/ai/tools/check-indexability.d.ts.map +1 -0
  88. package/dist/ai/tools/check-indexability.js +64 -0
  89. package/dist/ai/tools/check-indexability.js.map +1 -0
  90. package/dist/ai/tools/check-robots.d.ts +68 -0
  91. package/dist/ai/tools/check-robots.d.ts.map +1 -0
  92. package/dist/ai/tools/check-robots.js +90 -0
  93. package/dist/ai/tools/check-robots.js.map +1 -0
  94. package/dist/ai/tools/check-rule-answer-first.d.ts +54 -0
  95. package/dist/ai/tools/check-rule-answer-first.d.ts.map +1 -0
  96. package/dist/ai/tools/check-rule-answer-first.js +50 -0
  97. package/dist/ai/tools/check-rule-answer-first.js.map +1 -0
  98. package/dist/ai/tools/check-rule-canonical-consistency.d.ts +66 -0
  99. package/dist/ai/tools/check-rule-canonical-consistency.d.ts.map +1 -0
  100. package/dist/ai/tools/check-rule-canonical-consistency.js +51 -0
  101. package/dist/ai/tools/check-rule-canonical-consistency.js.map +1 -0
  102. package/dist/ai/tools/check-rule-citable-facts.d.ts +58 -0
  103. package/dist/ai/tools/check-rule-citable-facts.d.ts.map +1 -0
  104. package/dist/ai/tools/check-rule-citable-facts.js +41 -0
  105. package/dist/ai/tools/check-rule-citable-facts.js.map +1 -0
  106. package/dist/ai/tools/check-rule-content-modularity.d.ts +58 -0
  107. package/dist/ai/tools/check-rule-content-modularity.d.ts.map +1 -0
  108. package/dist/ai/tools/check-rule-content-modularity.js +45 -0
  109. package/dist/ai/tools/check-rule-content-modularity.js.map +1 -0
  110. package/dist/ai/tools/check-rule-faq-coverage.d.ts +54 -0
  111. package/dist/ai/tools/check-rule-faq-coverage.d.ts.map +1 -0
  112. package/dist/ai/tools/check-rule-faq-coverage.js +39 -0
  113. package/dist/ai/tools/check-rule-faq-coverage.js.map +1 -0
  114. package/dist/ai/tools/check-rule-freshness-signals.d.ts +54 -0
  115. package/dist/ai/tools/check-rule-freshness-signals.d.ts.map +1 -0
  116. package/dist/ai/tools/check-rule-freshness-signals.js +45 -0
  117. package/dist/ai/tools/check-rule-freshness-signals.js.map +1 -0
  118. package/dist/ai/tools/check-rule-json-ld-valid.d.ts +54 -0
  119. package/dist/ai/tools/check-rule-json-ld-valid.d.ts.map +1 -0
  120. package/dist/ai/tools/check-rule-json-ld-valid.js +44 -0
  121. package/dist/ai/tools/check-rule-json-ld-valid.js.map +1 -0
  122. package/dist/ai/tools/check-rule-missing-author.d.ts +54 -0
  123. package/dist/ai/tools/check-rule-missing-author.d.ts.map +1 -0
  124. package/dist/ai/tools/check-rule-missing-author.js +45 -0
  125. package/dist/ai/tools/check-rule-missing-author.js.map +1 -0
  126. package/dist/ai/tools/check-rule-near-duplicate.d.ts +82 -0
  127. package/dist/ai/tools/check-rule-near-duplicate.d.ts.map +1 -0
  128. package/dist/ai/tools/check-rule-near-duplicate.js +63 -0
  129. package/dist/ai/tools/check-rule-near-duplicate.js.map +1 -0
  130. package/dist/ai/tools/check-rule-required-fields.d.ts +50 -0
  131. package/dist/ai/tools/check-rule-required-fields.d.ts.map +1 -0
  132. package/dist/ai/tools/check-rule-required-fields.js +38 -0
  133. package/dist/ai/tools/check-rule-required-fields.js.map +1 -0
  134. package/dist/ai/tools/check-rule-schema-consistency.d.ts +54 -0
  135. package/dist/ai/tools/check-rule-schema-consistency.d.ts.map +1 -0
  136. package/dist/ai/tools/check-rule-schema-consistency.js +44 -0
  137. package/dist/ai/tools/check-rule-schema-consistency.js.map +1 -0
  138. package/dist/ai/tools/check-rule-summary-bait.d.ts +54 -0
  139. package/dist/ai/tools/check-rule-summary-bait.d.ts.map +1 -0
  140. package/dist/ai/tools/check-rule-summary-bait.js +39 -0
  141. package/dist/ai/tools/check-rule-summary-bait.js.map +1 -0
  142. package/dist/ai/tools/check-rule-thin-content.d.ts +66 -0
  143. package/dist/ai/tools/check-rule-thin-content.d.ts.map +1 -0
  144. package/dist/ai/tools/check-rule-thin-content.js +58 -0
  145. package/dist/ai/tools/check-rule-thin-content.js.map +1 -0
  146. package/dist/ai/tools/detect-templates.d.ts +60 -0
  147. package/dist/ai/tools/detect-templates.d.ts.map +1 -0
  148. package/dist/ai/tools/detect-templates.js +43 -0
  149. package/dist/ai/tools/detect-templates.js.map +1 -0
  150. package/dist/ai/tools/fetch-page.d.ts +70 -0
  151. package/dist/ai/tools/fetch-page.d.ts.map +1 -0
  152. package/dist/ai/tools/fetch-page.js +93 -0
  153. package/dist/ai/tools/fetch-page.js.map +1 -0
  154. package/dist/ai/tools/fetch-sitemap.d.ts +60 -0
  155. package/dist/ai/tools/fetch-sitemap.d.ts.map +1 -0
  156. package/dist/ai/tools/fetch-sitemap.js +116 -0
  157. package/dist/ai/tools/fetch-sitemap.js.map +1 -0
  158. package/dist/ai/tools/index.d.ts +1555 -0
  159. package/dist/ai/tools/index.d.ts.map +1 -0
  160. package/dist/ai/tools/index.js +119 -0
  161. package/dist/ai/tools/index.js.map +1 -0
  162. package/dist/ai/tools/parse-page.d.ts +94 -0
  163. package/dist/ai/tools/parse-page.d.ts.map +1 -0
  164. package/dist/ai/tools/parse-page.js +108 -0
  165. package/dist/ai/tools/parse-page.js.map +1 -0
  166. package/dist/ai/tools/query-serp.d.ts +113 -0
  167. package/dist/ai/tools/query-serp.d.ts.map +1 -0
  168. package/dist/ai/tools/query-serp.js +131 -0
  169. package/dist/ai/tools/query-serp.js.map +1 -0
  170. package/dist/ai/tools/sample-template.d.ts +67 -0
  171. package/dist/ai/tools/sample-template.d.ts.map +1 -0
  172. package/dist/ai/tools/sample-template.js +75 -0
  173. package/dist/ai/tools/sample-template.js.map +1 -0
  174. package/dist/ai/tools/types.d.ts +73 -0
  175. package/dist/ai/tools/types.d.ts.map +1 -0
  176. package/dist/ai/tools/types.js +64 -0
  177. package/dist/ai/tools/types.js.map +1 -0
  178. package/dist/ai/tools/validate-jsonld.d.ts +62 -0
  179. package/dist/ai/tools/validate-jsonld.d.ts.map +1 -0
  180. package/dist/ai/tools/validate-jsonld.js +84 -0
  181. package/dist/ai/tools/validate-jsonld.js.map +1 -0
  182. package/dist/auditor.d.ts +16 -1
  183. package/dist/auditor.d.ts.map +1 -1
  184. package/dist/auditor.js +862 -88
  185. package/dist/auditor.js.map +1 -1
  186. package/dist/backpressure.d.ts.map +1 -1
  187. package/dist/backpressure.js +10 -3
  188. package/dist/backpressure.js.map +1 -1
  189. package/dist/enrich-findings.d.ts.map +1 -1
  190. package/dist/enrich-findings.js +15 -1
  191. package/dist/enrich-findings.js.map +1 -1
  192. package/dist/formatters/bucket-findings.d.ts +43 -0
  193. package/dist/formatters/bucket-findings.d.ts.map +1 -0
  194. package/dist/formatters/bucket-findings.js +110 -0
  195. package/dist/formatters/bucket-findings.js.map +1 -0
  196. package/dist/formatters/console.d.ts.map +1 -1
  197. package/dist/formatters/console.js +116 -34
  198. package/dist/formatters/console.js.map +1 -1
  199. package/dist/formatters/fixplan.d.ts +13 -0
  200. package/dist/formatters/fixplan.d.ts.map +1 -0
  201. package/dist/formatters/fixplan.js +328 -0
  202. package/dist/formatters/fixplan.js.map +1 -0
  203. package/dist/formatters/html.d.ts.map +1 -1
  204. package/dist/formatters/html.js +27 -0
  205. package/dist/formatters/html.js.map +1 -1
  206. package/dist/formatters/index.d.ts +2 -0
  207. package/dist/formatters/index.d.ts.map +1 -1
  208. package/dist/formatters/index.js +1 -0
  209. package/dist/formatters/index.js.map +1 -1
  210. package/dist/formatters/markdown.d.ts.map +1 -1
  211. package/dist/formatters/markdown.js +97 -9
  212. package/dist/formatters/markdown.js.map +1 -1
  213. package/dist/index.d.ts +12 -1
  214. package/dist/index.d.ts.map +1 -1
  215. package/dist/index.js +8 -0
  216. package/dist/index.js.map +1 -1
  217. package/dist/page-filter.d.ts +64 -6
  218. package/dist/page-filter.d.ts.map +1 -1
  219. package/dist/page-filter.js +124 -3
  220. package/dist/page-filter.js.map +1 -1
  221. package/dist/rule-references.d.ts.map +1 -1
  222. package/dist/rule-references.js +5 -0
  223. package/dist/rule-references.js.map +1 -1
  224. package/dist/rules/aeo/answer-first.d.ts.map +1 -1
  225. package/dist/rules/aeo/answer-first.js +17 -3
  226. package/dist/rules/aeo/answer-first.js.map +1 -1
  227. package/dist/rules/aeo/citable-facts.d.ts.map +1 -1
  228. package/dist/rules/aeo/citable-facts.js +12 -1
  229. package/dist/rules/aeo/citable-facts.js.map +1 -1
  230. package/dist/rules/aeo/content-modularity.d.ts.map +1 -1
  231. package/dist/rules/aeo/content-modularity.js +3 -0
  232. package/dist/rules/aeo/content-modularity.js.map +1 -1
  233. package/dist/rules/aeo/crawler-access.d.ts.map +1 -1
  234. package/dist/rules/aeo/crawler-access.js +6 -0
  235. package/dist/rules/aeo/crawler-access.js.map +1 -1
  236. package/dist/rules/aeo/faq-coverage.d.ts.map +1 -1
  237. package/dist/rules/aeo/faq-coverage.js +4 -0
  238. package/dist/rules/aeo/faq-coverage.js.map +1 -1
  239. package/dist/rules/aeo/freshness-signals.d.ts.map +1 -1
  240. package/dist/rules/aeo/freshness-signals.js +9 -2
  241. package/dist/rules/aeo/freshness-signals.js.map +1 -1
  242. package/dist/rules/aeo/llms-txt.d.ts.map +1 -1
  243. package/dist/rules/aeo/llms-txt.js +6 -1
  244. package/dist/rules/aeo/llms-txt.js.map +1 -1
  245. package/dist/rules/aeo/summary-bait.d.ts.map +1 -1
  246. package/dist/rules/aeo/summary-bait.js +5 -2
  247. package/dist/rules/aeo/summary-bait.js.map +1 -1
  248. package/dist/rules/content/heading-structure.d.ts +21 -0
  249. package/dist/rules/content/heading-structure.d.ts.map +1 -0
  250. package/dist/rules/content/heading-structure.js +56 -0
  251. package/dist/rules/content/heading-structure.js.map +1 -0
  252. package/dist/rules/content/image-alt-text.d.ts +18 -0
  253. package/dist/rules/content/image-alt-text.d.ts.map +1 -0
  254. package/dist/rules/content/image-alt-text.js +77 -0
  255. package/dist/rules/content/image-alt-text.js.map +1 -0
  256. package/dist/rules/content/missing-author.d.ts.map +1 -1
  257. package/dist/rules/content/missing-author.js +10 -2
  258. package/dist/rules/content/missing-author.js.map +1 -1
  259. package/dist/rules/content/title-uniqueness.d.ts +18 -0
  260. package/dist/rules/content/title-uniqueness.d.ts.map +1 -0
  261. package/dist/rules/content/title-uniqueness.js +70 -0
  262. package/dist/rules/content/title-uniqueness.js.map +1 -0
  263. package/dist/rules/links/host-section-divergence.d.ts +3 -0
  264. package/dist/rules/links/host-section-divergence.d.ts.map +1 -0
  265. package/dist/rules/links/host-section-divergence.js +158 -0
  266. package/dist/rules/links/host-section-divergence.js.map +1 -0
  267. package/dist/rules/links/link-depth.d.ts +12 -1
  268. package/dist/rules/links/link-depth.d.ts.map +1 -1
  269. package/dist/rules/links/link-depth.js +25 -12
  270. package/dist/rules/links/link-depth.js.map +1 -1
  271. package/dist/rules/scope.d.ts.map +1 -1
  272. package/dist/rules/scope.js +5 -0
  273. package/dist/rules/scope.js.map +1 -1
  274. package/dist/rules/spam/doorway-pattern.d.ts.map +1 -1
  275. package/dist/rules/spam/doorway-pattern.js +27 -4
  276. package/dist/rules/spam/doorway-pattern.js.map +1 -1
  277. package/dist/rules/spam/publication-velocity.d.ts +1 -1
  278. package/dist/rules/spam/publication-velocity.d.ts.map +1 -1
  279. package/dist/rules/spam/publication-velocity.js +9 -4
  280. package/dist/rules/spam/publication-velocity.js.map +1 -1
  281. package/dist/rules/spam/template-coverage.js +1 -1
  282. package/dist/rules/spam/template-coverage.js.map +1 -1
  283. package/dist/rules/spam/template-diversity.js +1 -1
  284. package/dist/rules/spam/template-diversity.js.map +1 -1
  285. package/dist/rules/spam/thin-content.d.ts.map +1 -1
  286. package/dist/rules/spam/thin-content.js +9 -1
  287. package/dist/rules/spam/thin-content.js.map +1 -1
  288. package/dist/rules/tech/hreflang-consistency.d.ts.map +1 -1
  289. package/dist/rules/tech/hreflang-consistency.js +33 -4
  290. package/dist/rules/tech/hreflang-consistency.js.map +1 -1
  291. package/dist/rules/tech/og-completeness.d.ts +11 -0
  292. package/dist/rules/tech/og-completeness.d.ts.map +1 -1
  293. package/dist/rules/tech/og-completeness.js +22 -23
  294. package/dist/rules/tech/og-completeness.js.map +1 -1
  295. package/dist/ruleset-version.d.ts +8 -0
  296. package/dist/ruleset-version.d.ts.map +1 -0
  297. package/dist/ruleset-version.js +8 -0
  298. package/dist/ruleset-version.js.map +1 -0
  299. package/dist/scrape-strategy.d.ts +42 -0
  300. package/dist/scrape-strategy.d.ts.map +1 -0
  301. package/dist/scrape-strategy.js +101 -0
  302. package/dist/scrape-strategy.js.map +1 -0
  303. package/dist/site-classifier.d.ts +1 -1
  304. package/dist/site-classifier.d.ts.map +1 -1
  305. package/dist/site-classifier.js +217 -0
  306. package/dist/site-classifier.js.map +1 -1
  307. package/dist/state.d.ts +36 -1
  308. package/dist/state.d.ts.map +1 -1
  309. package/dist/state.js +3 -1
  310. package/dist/state.js.map +1 -1
  311. package/dist/stratified-sample.d.ts +9 -1
  312. package/dist/stratified-sample.d.ts.map +1 -1
  313. package/dist/stratified-sample.js +23 -6
  314. package/dist/stratified-sample.js.map +1 -1
  315. package/dist/types.d.ts +179 -2
  316. package/dist/types.d.ts.map +1 -1
  317. package/dist/types.js.map +1 -1
  318. package/dist/url-normalize.d.ts.map +1 -1
  319. package/dist/url-normalize.js +13 -1
  320. package/dist/url-normalize.js.map +1 -1
  321. package/package.json +90 -90
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/formatters/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/formatters/markdown.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -53,12 +53,23 @@ export type { SafeMode } from "./types.js";
53
53
  export type { CacheOptions, CacheStats, SamplingStrategy, StateOptions } from "./types.js";
54
54
  export { stratifiedSample, inferUrlTemplate } from "./stratified-sample.js";
55
55
  export { readState, writeState, computeContentHash, normalizeHtmlForHash, STATE_SCHEMA_VERSION } from "./state.js";
56
- export type { RunState, UrlStateEntry, RenderMode } from "./state.js";
56
+ export type { RunState, UrlStateEntry, RenderMode, Finding } from "./state.js";
57
+ export { CORE_RULESET_VERSION } from "./ruleset-version.js";
58
+ export { planScrapeStrategy, DEFAULT_AGE_FLOOR_DAYS } from "./scrape-strategy.js";
59
+ export type { ScrapePlan, ScrapeStrategyInputs, RefetchReason, SkipReason, GscDelta, GscThresholds, } from "./scrape-strategy.js";
57
60
  export type { AiOptions, } from "./types.js";
58
61
  export type { TokenUsage, RootCause, TriageResult, } from "./ai/types.js";
59
62
  export { triageFindings, triage } from "./ai/triage.js";
60
63
  export type { TriageOptions, TriageOutcome } from "./ai/triage.js";
61
64
  export { createLanguageModel, detectProvider } from "./ai/adapters/index.js";
65
+ export { orchestrate } from "./ai/orchestrate.js";
66
+ export type { OrchestrateOptions, OrchestrateResult } from "./ai/orchestrate.js";
67
+ export { runOrchestrator, finishAuditTool, manifestSchema, buildSystemPrompt, DEFAULT_BUDGET, } from "./ai/orchestrator/index.js";
68
+ export type { RunOrchestratorOptions, FixManifest, BudgetCaps, UsageSnapshot, StopReason, SessionEvent, SessionResult, } from "./ai/orchestrator/index.js";
69
+ export { orchestratorTools, defineTool } from "./ai/tools/index.js";
70
+ export type { OrchestratorToolName } from "./ai/tools/index.js";
71
+ export { validateManifest, diffManifest, diffPageChange, diffDomainPatch, } from "./ai/manifest/index.js";
72
+ export type { ManifestValidationReport, PatchValidationFailure, ValidationResult, PatchDiff, ManifestDiff, } from "./ai/manifest/index.js";
62
73
  export type { ProviderId, ResolvedModel } from "./ai/adapters/index.js";
63
74
  export { PROMPT_VERSION, assignFindingId } from "./ai/prompt.js";
64
75
  export { estimateCostUsd } from "./ai/cost.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -50,8 +50,16 @@ export { summaryBaitRule } from "./rules/aeo/summary-bait.js";
50
50
  export { cachedFetch, cacheKeyFor, clearCache, getCacheSizeInfo, pruneCache, safeFetch } from "./cache.js";
51
51
  export { stratifiedSample, inferUrlTemplate } from "./stratified-sample.js";
52
52
  export { readState, writeState, computeContentHash, normalizeHtmlForHash, STATE_SCHEMA_VERSION } from "./state.js";
53
+ export { CORE_RULESET_VERSION } from "./ruleset-version.js";
54
+ export { planScrapeStrategy, DEFAULT_AGE_FLOOR_DAYS } from "./scrape-strategy.js";
53
55
  export { triageFindings, triage } from "./ai/triage.js";
54
56
  export { createLanguageModel, detectProvider } from "./ai/adapters/index.js";
57
+ // AI orchestrator (single public entry point composing tools + runner +
58
+ // manifest validation + diff generation).
59
+ export { orchestrate } from "./ai/orchestrate.js";
60
+ export { runOrchestrator, finishAuditTool, manifestSchema, buildSystemPrompt, DEFAULT_BUDGET, } from "./ai/orchestrator/index.js";
61
+ export { orchestratorTools, defineTool } from "./ai/tools/index.js";
62
+ export { validateManifest, diffManifest, diffPageChange, diffDomainPatch, } from "./ai/manifest/index.js";
55
63
  export { PROMPT_VERSION, assignFindingId } from "./ai/prompt.js";
56
64
  export { estimateCostUsd } from "./ai/cost.js";
57
65
  export * from "./telemetry/index.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAClI,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI3G,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAYnH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Page-skip detection helpers used by the auditor pipeline (v0.4.1).
2
+ * Page-skip detection helpers used by the auditor pipeline (v0.4.1+).
3
3
  *
4
- * Two policy filters live here, each gated by an AuditOption:
4
+ * Five policy filters live here, each gated by an AuditOption:
5
5
  * - `detectNoindex(page)` honours `<meta name="robots" content="noindex">`
6
6
  * and `X-Robots-Tag: noindex` HTTP headers. The site owner already told
7
7
  * Google not to index these pages — auditing them produces noise the
@@ -12,8 +12,20 @@
12
12
  * regex). Two signals are required for a positive verdict, which keeps
13
13
  * the false-positive rate low: a marketing landing page with a single
14
14
  * password input or a single auth-shaped heading won't trip it.
15
+ * - `detectBoilerplatePage(page)` (v0.4.2) flags cookie / legal / consent /
16
+ * imprint pages. A single signal is enough because the patterns are
17
+ * anchored + specific (the title or H1 matches the whole-string compliance
18
+ * regex, or the URL path is one of the well-known compliance slugs).
19
+ * - `detectSearchResultPage(page)` (v0.4.2) flags pages that look like
20
+ * internal search-result URLs (query parameter `q` / `query` / `search` /
21
+ * `s` / `keyword`, or path under `/search`). Per Google's own guidance
22
+ * these should be noindex'd — auditing them generates noise.
23
+ * - `detectEmptyBodyPage(page)` (v0.4.2) flags un-hydrated SPA shells:
24
+ * body text < 100 chars, script tags present, and no substantive
25
+ * `<noscript>` fallback. These fail every content rule but the underlying
26
+ * fix is server-side rendering, not content quality.
15
27
  *
16
- * Both functions are pure and synchronous so they can be called inside the
28
+ * All functions are pure and synchronous so they can be called inside the
17
29
  * `parsedPages` map step without disrupting the existing pipeline shape.
18
30
  */
19
31
  import type { ParsedPage } from "./types.js";
@@ -36,15 +48,61 @@ export interface AuthDetectionResult {
36
48
  * borderline cases that might warrant a manual config exclude.
37
49
  */
38
50
  export declare function detectAuthPage(page: ParsedPage): AuthDetectionResult;
51
+ export interface BoilerplateDetectionResult {
52
+ isBoilerplate: boolean;
53
+ signals: Array<"boilerplate-title" | "boilerplate-h1" | "boilerplate-url">;
54
+ }
55
+ /**
56
+ * Heuristic boilerplate-page detection. Single-signal trigger (1+ = positive)
57
+ * because the patterns are anchored and specific — a marketing page that
58
+ * merely mentions "privacy" in its body won't fire any signal. Cookie / legal
59
+ * / consent / imprint pages exist for compliance, never as SEO targets, so
60
+ * auditing them produces routine findings the user already knows about.
61
+ */
62
+ export declare function detectBoilerplatePage(page: ParsedPage): BoilerplateDetectionResult;
63
+ /**
64
+ * Returns true when the URL has search-result hallmarks: a recognised search
65
+ * query parameter (`?q=`, `?query=`, `?search=`, `?s=`, `?keyword=`) or a
66
+ * pathname of `/search` or starting with `/search/`. Returns false for
67
+ * unparseable URLs (e.g. filesystem paths from local directory audits).
68
+ */
69
+ export declare function detectSearchResultPage(page: ParsedPage): boolean;
70
+ export interface EmptyBodyDetectionResult {
71
+ isEmpty: boolean;
72
+ reason?: string;
73
+ }
74
+ /**
75
+ * Heuristic detection of un-hydrated SPA shells. Three conditions must hold:
76
+ * 1. `contentText` (post-render-or-parse body text) trimmed < 100 chars
77
+ * 2. The HTML contains at least one `<script src=...>` tag (script-driven)
78
+ * 3. No substantive `<noscript>` fallback (combined noscript content
79
+ * <= 200 chars). A page with a long noscript block is doing
80
+ * progressive enhancement, not failing — don't flag it.
81
+ *
82
+ * Returns `{ isEmpty: true, reason: "spa-shell" }` when all three hold.
83
+ */
84
+ export declare function detectEmptyBodyPage(page: ParsedPage): EmptyBodyDetectionResult;
39
85
  /**
40
86
  * Combined skip decision for the auditor pipeline. Returns the reason string
41
87
  * to surface in `summary.skippedUrls` diagnostics, or `null` when the page
42
- * should be audited normally. Order matters: `noindex` takes priority over
43
- * `auth-detected` because it's the more specific (site-owner-declared) signal.
88
+ * should be audited normally. Order matters the priority is:
89
+ * `noindex` > `auth-detected` > `boilerplate` > `search-result` > `spa-shell`.
90
+ *
91
+ * - `noindex` first: the site-owner-declared signal beats every heuristic.
92
+ * - `auth-detected` next: a confirmed auth surface wins over generic
93
+ * boilerplate / search / shell heuristics.
94
+ * - `boilerplate` next: a clearly compliance-page-shaped URL beats the
95
+ * generic search/shell signals.
96
+ * - `search-result` next: explicit search hallmarks beat the empty-body
97
+ * fallback (a search page MAY be a SPA but the better label is "search").
98
+ * - `spa-shell` last: the most generic "we couldn't audit this" reason.
44
99
  */
45
100
  export interface PageSkipOptions {
46
101
  respectNoindex: boolean;
47
102
  skipDetectedAuth: boolean;
103
+ skipBoilerplate: boolean;
104
+ skipSearchPages: boolean;
105
+ skipEmptyBody: boolean;
48
106
  }
49
- export declare function pageSkipReason(page: ParsedPage, options: PageSkipOptions): "noindex" | "auth-detected" | null;
107
+ export declare function pageSkipReason(page: ParsedPage, options: PageSkipOptions): "noindex" | "auth-detected" | "boilerplate" | "search-result" | "spa-shell" | null;
50
108
  //# sourceMappingURL=page-filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-filter.d.ts","sourceRoot":"","sources":["../src/page-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAIvD;AA6BD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;CAC7D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAqBpE;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,eAAe,GACvB,SAAS,GAAG,eAAe,GAAG,IAAI,CAIpC"}
1
+ {"version":3,"file":"page-filter.d.ts","sourceRoot":"","sources":["../src/page-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAIvD;AA6BD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC,CAAC;CAC7D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAqBpE;AAkBD,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,mBAAmB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;CAC5E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,0BAA0B,CAyBlF;AASD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAgBhE;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,wBAAwB,CAoB9E;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,eAAe,GACvB,SAAS,GAAG,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,GAAG,IAAI,CAOpF"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Page-skip detection helpers used by the auditor pipeline (v0.4.1).
2
+ * Page-skip detection helpers used by the auditor pipeline (v0.4.1+).
3
3
  *
4
- * Two policy filters live here, each gated by an AuditOption:
4
+ * Five policy filters live here, each gated by an AuditOption:
5
5
  * - `detectNoindex(page)` honours `<meta name="robots" content="noindex">`
6
6
  * and `X-Robots-Tag: noindex` HTTP headers. The site owner already told
7
7
  * Google not to index these pages — auditing them produces noise the
@@ -12,8 +12,20 @@
12
12
  * regex). Two signals are required for a positive verdict, which keeps
13
13
  * the false-positive rate low: a marketing landing page with a single
14
14
  * password input or a single auth-shaped heading won't trip it.
15
+ * - `detectBoilerplatePage(page)` (v0.4.2) flags cookie / legal / consent /
16
+ * imprint pages. A single signal is enough because the patterns are
17
+ * anchored + specific (the title or H1 matches the whole-string compliance
18
+ * regex, or the URL path is one of the well-known compliance slugs).
19
+ * - `detectSearchResultPage(page)` (v0.4.2) flags pages that look like
20
+ * internal search-result URLs (query parameter `q` / `query` / `search` /
21
+ * `s` / `keyword`, or path under `/search`). Per Google's own guidance
22
+ * these should be noindex'd — auditing them generates noise.
23
+ * - `detectEmptyBodyPage(page)` (v0.4.2) flags un-hydrated SPA shells:
24
+ * body text < 100 chars, script tags present, and no substantive
25
+ * `<noscript>` fallback. These fail every content rule but the underlying
26
+ * fix is server-side rendering, not content quality.
15
27
  *
16
- * Both functions are pure and synchronous so they can be called inside the
28
+ * All functions are pure and synchronous so they can be called inside the
17
29
  * `parsedPages` map step without disrupting the existing pipeline shape.
18
30
  */
19
31
  /**
@@ -76,11 +88,120 @@ export function detectAuthPage(page) {
76
88
  }
77
89
  return { isAuth: signals.length >= 2, signals };
78
90
  }
91
+ /**
92
+ * Boilerplate (cookie / legal / consent / imprint) title and H1 pattern.
93
+ * Whole-string match (anchored), case-insensitive. Applied to the title
94
+ * AFTER stripping the brand suffix (`Privacy Policy | MyApp` → `Privacy`).
95
+ */
96
+ const BOILERPLATE_TITLE_REGEX = /^(cookie|cookies|cookie[-\s]?policy|gdpr|ccpa|privacy|terms|terms[-\s](?:of[-\s])?(?:use|service|sale)|legal|disclaimer|impressum|imprint|do[-\s]not[-\s]sell|accessibility(?:[-\s]statement)?|copyright[-\s]notice)$/i;
97
+ /**
98
+ * Boilerplate URL pathname pattern. Matches `/cookies`, `/cookie-policy`,
99
+ * `/privacy`, `/terms/anything`, `/impressum`, etc. Anchored at path start
100
+ * so a marketing URL like `/blog/privacy-by-design` is NOT matched.
101
+ */
102
+ const BOILERPLATE_URL_REGEX = /^\/(?:cookies?|cookie-policy|gdpr|ccpa|privacy|terms|legal|disclaimer|impressum|imprint|accessibility|do-not-sell|copyright)(?:\/.*)?$/i;
103
+ /**
104
+ * Heuristic boilerplate-page detection. Single-signal trigger (1+ = positive)
105
+ * because the patterns are anchored and specific — a marketing page that
106
+ * merely mentions "privacy" in its body won't fire any signal. Cookie / legal
107
+ * / consent / imprint pages exist for compliance, never as SEO targets, so
108
+ * auditing them produces routine findings the user already knows about.
109
+ */
110
+ export function detectBoilerplatePage(page) {
111
+ const signals = [];
112
+ const cleanedTitle = stripBrandSuffix(page.title ?? "");
113
+ if (cleanedTitle && BOILERPLATE_TITLE_REGEX.test(cleanedTitle)) {
114
+ signals.push("boilerplate-title");
115
+ }
116
+ const firstH1 = (page.headings?.h1 ?? [])[0]?.trim() ?? "";
117
+ if (firstH1 && BOILERPLATE_TITLE_REGEX.test(firstH1)) {
118
+ signals.push("boilerplate-h1");
119
+ }
120
+ // URL pathname check. `page.url` may be a filesystem path on local audits,
121
+ // so wrap the URL parse in try/catch and skip the signal on failure.
122
+ try {
123
+ const pathname = new URL(page.url).pathname;
124
+ if (BOILERPLATE_URL_REGEX.test(pathname)) {
125
+ signals.push("boilerplate-url");
126
+ }
127
+ }
128
+ catch {
129
+ // unparseable URL (filesystem path); skip the URL signal
130
+ }
131
+ return { isBoilerplate: signals.length >= 1, signals };
132
+ }
133
+ /**
134
+ * Search-result query parameter names we treat as evidence of an internal
135
+ * search-result page. Compared case-insensitively against the URL's
136
+ * searchParams keys.
137
+ */
138
+ const SEARCH_QUERY_PARAMS = new Set(["q", "query", "search", "s", "keyword"]);
139
+ /**
140
+ * Returns true when the URL has search-result hallmarks: a recognised search
141
+ * query parameter (`?q=`, `?query=`, `?search=`, `?s=`, `?keyword=`) or a
142
+ * pathname of `/search` or starting with `/search/`. Returns false for
143
+ * unparseable URLs (e.g. filesystem paths from local directory audits).
144
+ */
145
+ export function detectSearchResultPage(page) {
146
+ let parsed;
147
+ try {
148
+ parsed = new URL(page.url);
149
+ }
150
+ catch {
151
+ return false;
152
+ }
153
+ for (const key of parsed.searchParams.keys()) {
154
+ if (SEARCH_QUERY_PARAMS.has(key.toLowerCase()))
155
+ return true;
156
+ }
157
+ const pathname = parsed.pathname;
158
+ if (pathname === "/search" || pathname.startsWith("/search/"))
159
+ return true;
160
+ return false;
161
+ }
162
+ /**
163
+ * Heuristic detection of un-hydrated SPA shells. Three conditions must hold:
164
+ * 1. `contentText` (post-render-or-parse body text) trimmed < 100 chars
165
+ * 2. The HTML contains at least one `<script src=...>` tag (script-driven)
166
+ * 3. No substantive `<noscript>` fallback (combined noscript content
167
+ * <= 200 chars). A page with a long noscript block is doing
168
+ * progressive enhancement, not failing — don't flag it.
169
+ *
170
+ * Returns `{ isEmpty: true, reason: "spa-shell" }` when all three hold.
171
+ */
172
+ export function detectEmptyBodyPage(page) {
173
+ const bodyLen = (page.contentText ?? "").trim().length;
174
+ if (bodyLen >= 100)
175
+ return { isEmpty: false };
176
+ const html = page.html ?? "";
177
+ if (!/<script\s[^>]*src\s*=/i.test(html))
178
+ return { isEmpty: false };
179
+ // Sum the visible content length of every <noscript>...</noscript> block.
180
+ // If the site provides a substantive noscript fallback, it's a
181
+ // progressive-enhancement page, not a broken SPA shell.
182
+ let noscriptTextLen = 0;
183
+ const noscriptRe = /<noscript[^>]*>([\s\S]*?)<\/noscript>/gi;
184
+ let match;
185
+ while ((match = noscriptRe.exec(html)) !== null) {
186
+ noscriptTextLen += match[1].replace(/<[^>]+>/g, "").trim().length;
187
+ if (noscriptTextLen > 200)
188
+ break;
189
+ }
190
+ if (noscriptTextLen > 200)
191
+ return { isEmpty: false };
192
+ return { isEmpty: true, reason: "spa-shell" };
193
+ }
79
194
  export function pageSkipReason(page, options) {
80
195
  if (options.respectNoindex && detectNoindex(page))
81
196
  return "noindex";
82
197
  if (options.skipDetectedAuth && detectAuthPage(page).isAuth)
83
198
  return "auth-detected";
199
+ if (options.skipBoilerplate && detectBoilerplatePage(page).isBoilerplate)
200
+ return "boilerplate";
201
+ if (options.skipSearchPages && detectSearchResultPage(page))
202
+ return "search-result";
203
+ if (options.skipEmptyBody && detectEmptyBodyPage(page).isEmpty)
204
+ return "spa-shell";
84
205
  return null;
85
206
  }
86
207
  //# sourceMappingURL=page-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-filter.js","sourceRoot":"","sources":["../src/page-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-filter.js","sourceRoot":"","sources":["../src/page-filter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-references.d.ts","sourceRoot":"","sources":["../src/rule-references.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuClD,CAAC"}
1
+ {"version":3,"file":"rule-references.d.ts","sourceRoot":"","sources":["../src/rule-references.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4ClD,CAAC"}
@@ -11,10 +11,14 @@ export const RULE_REFERENCES = {
11
11
  "content/meta-uniqueness": "https://developers.google.com/search/docs/appearance/snippet#meta-descriptions",
12
12
  "content/missing-author": "https://developers.google.com/search/docs/fundamentals/creating-helpful-content#eeat",
13
13
  "content/eeat-signals": "https://developers.google.com/search/docs/fundamentals/creating-helpful-content#eeat",
14
+ "content/title-uniqueness": "https://developers.google.com/search/docs/appearance/title-link",
15
+ "content/heading-structure": "https://developers.google.com/search/docs/appearance/title-link#headings",
16
+ "content/image-alt-text": "https://developers.google.com/search/docs/appearance/google-images#descriptive-alt-text",
14
17
  "links/orphan-pages": "https://developers.google.com/search/docs/crawling-indexing/links-crawlable",
15
18
  "links/dead-ends": "https://developers.google.com/search/docs/crawling-indexing/links-crawlable",
16
19
  "links/cluster-connectivity": "https://developers.google.com/search/docs/crawling-indexing/links-crawlable",
17
20
  "links/link-depth": "https://developers.google.com/search/docs/crawling-indexing/links-crawlable",
21
+ "links/host-section-divergence": "https://developers.google.com/search/docs/essentials/spam-policies#site-reputation",
18
22
  "tech/robots-compliance": "https://developers.google.com/search/docs/crawling-indexing/robots/intro",
19
23
  "tech/canonical-consistency": "https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls",
20
24
  "tech/canonical-noindex-conflict": "https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls",
@@ -23,6 +27,7 @@ export const RULE_REFERENCES = {
23
27
  "tech/redirect-chain": "https://developers.google.com/search/docs/crawling-indexing/301-redirects",
24
28
  "tech/soft-404": "https://developers.google.com/search/docs/crawling-indexing/soft-404-errors",
25
29
  "tech/hreflang-consistency": "https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites",
30
+ "tech/og-completeness": "https://ogp.me/",
26
31
  "schema/json-ld-valid": "https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data",
27
32
  "schema/required-fields": "https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data",
28
33
  "schema/consistency": "https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data",
@@ -1 +1 @@
1
- {"version":3,"file":"rule-references.js","sourceRoot":"","sources":["../src/rule-references.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,qBAAqB,EAAE,oFAAoF;IAC3G,kBAAkB,EAAE,kFAAkF;IACtG,mBAAmB,EAAE,iFAAiF;IACtG,wBAAwB,EAAE,iFAAiF;IAC3G,yBAAyB,EAAE,kFAAkF;IAC7G,2BAA2B,EAAE,kGAAkG;IAC/H,sBAAsB,EAAE,kFAAkF;IAC1G,wBAAwB,EAAE,kFAAkF;IAC5G,sBAAsB,EAAE,iFAAiF;IACzG,yBAAyB,EAAE,gFAAgF;IAC3G,wBAAwB,EAAE,sFAAsF;IAChH,sBAAsB,EAAE,sFAAsF;IAC9G,oBAAoB,EAAE,6EAA6E;IACnG,iBAAiB,EAAE,6EAA6E;IAChG,4BAA4B,EAAE,6EAA6E;IAC3G,kBAAkB,EAAE,6EAA6E;IACjG,wBAAwB,EAAE,0EAA0E;IACpG,4BAA4B,EAAE,wFAAwF;IACtH,iCAAiC,EAAE,wFAAwF;IAC3H,8BAA8B,EAAE,4EAA4E;IAC5G,2BAA2B,EAAE,+EAA+E;IAC5G,qBAAqB,EAAE,2EAA2E;IAClG,eAAe,EAAE,6EAA6E;IAC9F,2BAA2B,EAAE,iGAAiG;IAC9H,sBAAsB,EAAE,4FAA4F;IACpH,wBAAwB,EAAE,4FAA4F;IACtH,oBAAoB,EAAE,4FAA4F;IAClH,sBAAsB,EAAE,wFAAwF;IAChH,sBAAsB,EAAE,iFAAiF;IACzG,6BAA6B,EAAE,oFAAoF;IACnH,cAAc,EAAE,qBAAqB;IACrC,oBAAoB,EAAE,0CAA0C;IAChE,uBAAuB,EAAE,wEAAwE;IACjG,kBAAkB,EAAE,8EAA8E;IAClG,kBAAkB,EAAE,wEAAwE;IAC5F,mBAAmB,EAAE,iFAAiF;IACtG,wBAAwB,EAAE,4FAA4F;IACtH,kBAAkB,EAAE,iFAAiF;CACtG,CAAC"}
1
+ {"version":3,"file":"rule-references.js","sourceRoot":"","sources":["../src/rule-references.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,qBAAqB,EAAE,oFAAoF;IAC3G,kBAAkB,EAAE,kFAAkF;IACtG,mBAAmB,EAAE,iFAAiF;IACtG,wBAAwB,EAAE,iFAAiF;IAC3G,yBAAyB,EAAE,kFAAkF;IAC7G,2BAA2B,EAAE,kGAAkG;IAC/H,sBAAsB,EAAE,kFAAkF;IAC1G,wBAAwB,EAAE,kFAAkF;IAC5G,sBAAsB,EAAE,iFAAiF;IACzG,yBAAyB,EAAE,gFAAgF;IAC3G,wBAAwB,EAAE,sFAAsF;IAChH,sBAAsB,EAAE,sFAAsF;IAC9G,0BAA0B,EAAE,iEAAiE;IAC7F,2BAA2B,EAAE,0EAA0E;IACvG,wBAAwB,EAAE,yFAAyF;IACnH,oBAAoB,EAAE,6EAA6E;IACnG,iBAAiB,EAAE,6EAA6E;IAChG,4BAA4B,EAAE,6EAA6E;IAC3G,kBAAkB,EAAE,6EAA6E;IACjG,+BAA+B,EAAE,oFAAoF;IACrH,wBAAwB,EAAE,0EAA0E;IACpG,4BAA4B,EAAE,wFAAwF;IACtH,iCAAiC,EAAE,wFAAwF;IAC3H,8BAA8B,EAAE,4EAA4E;IAC5G,2BAA2B,EAAE,+EAA+E;IAC5G,qBAAqB,EAAE,2EAA2E;IAClG,eAAe,EAAE,6EAA6E;IAC9F,2BAA2B,EAAE,iGAAiG;IAC9H,sBAAsB,EAAE,iBAAiB;IACzC,sBAAsB,EAAE,4FAA4F;IACpH,wBAAwB,EAAE,4FAA4F;IACtH,oBAAoB,EAAE,4FAA4F;IAClH,sBAAsB,EAAE,wFAAwF;IAChH,sBAAsB,EAAE,iFAAiF;IACzG,6BAA6B,EAAE,oFAAoF;IACnH,cAAc,EAAE,qBAAqB;IACrC,oBAAoB,EAAE,0CAA0C;IAChE,uBAAuB,EAAE,wEAAwE;IACjG,kBAAkB,EAAE,8EAA8E;IAClG,kBAAkB,EAAE,wEAAwE;IAC5F,mBAAmB,EAAE,iFAAiF;IACtG,wBAAwB,EAAE,4FAA4F;IACtH,kBAAkB,EAAE,iFAAiF;CACtG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"answer-first.d.ts","sourceRoot":"","sources":["../../../src/rules/aeo/answer-first.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEhF,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA6BD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0D1D;AA8CD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EAAE,EACnB,cAAc,EAAE,iBAAiB,EAAE,EACnC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,EAAE,CA0Dd"}
1
+ {"version":3,"file":"answer-first.d.ts","sourceRoot":"","sources":["../../../src/rules/aeo/answer-first.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5F,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA6BD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0D1D;AA8CD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,UAAU,EAAE,EACnB,cAAc,EAAE,iBAAiB,EAAE,EACnC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,EAAE,CA4Ed"}
@@ -172,14 +172,28 @@ export function answerFirstRule(pages, entityPatterns, options) {
172
172
  reasons.push(`opener is ${s.wordCount} words (too long to extract)`);
173
173
  if (isBoilerplateOpener(s.paragraph))
174
174
  reasons.push("opener is boilerplate ('Welcome to...', 'Generate your...')");
175
- if (!hasConcreteFact(s.paragraph))
175
+ const lacksFact = !hasConcreteFact(s.paragraph);
176
+ const lacksEntity = !hasNamedEntity(s.paragraph, entityPatterns);
177
+ if (lacksFact)
176
178
  reasons.push("no specific numbers, dates, or dollar amounts");
177
- if (!hasNamedEntity(s.paragraph, entityPatterns))
179
+ if (lacksEntity)
178
180
  reasons.push("no named entities (agencies, laws, proper nouns)");
181
+ // Confidence ladder:
182
+ // too-long opener → low (marketing/narrative pages legitimately use long openers)
183
+ // no facts AND no entity → medium (signal is present but interpretation is ambiguous)
184
+ // otherwise → high (templated/boilerplate openers are clear AEO failures)
185
+ const confidence = s.wordCount > tooLong ? "low" :
186
+ (lacksFact && lacksEntity) ? "medium" :
187
+ "high";
188
+ const contextNote = confidence === "low" || confidence === "medium"
189
+ ? " Marketing pages legitimately use narrative openers; this matters more for FAQ-style or directory pages."
190
+ : "";
179
191
  findings.push({
180
192
  ruleId: "aeo/answer-first",
181
193
  severity,
182
- message: `${s.url} does not open with a direct, extractable answer${reasons.length ? `: ${reasons.join("; ")}` : "."}`,
194
+ confidence,
195
+ message: `${s.url} does not open with a direct, extractable answer${reasons.length ? `: ${reasons.join("; ")}` : "."}` +
196
+ contextNote,
183
197
  pageUrl: s.url,
184
198
  fix: `Restructure the template to open with entity-specific facts. Instead of boilerplate or a topic preamble, ` +
185
199
  `lead with a complete-answer sentence containing the key number, date, agency, or form name a reader ` +
@@ -1 +1 @@
1
- {"version":3,"file":"answer-first.js","sourceRoot":"","sources":["../../../src/rules/aeo/answer-first.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"answer-first.js","sourceRoot":"","sources":["../../../src/rules/aeo/answer-first.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"citable-facts.d.ts","sourceRoot":"","sources":["../../../src/rules/aeo/citable-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEhF,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAkCD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EAAE,EACnB,cAAc,EAAE,iBAAiB,EAAE,EACnC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,UAAU,EAAE,CAmEd"}
1
+ {"version":3,"file":"citable-facts.d.ts","sourceRoot":"","sources":["../../../src/rules/aeo/citable-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5F,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAkCD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EAAE,EACnB,cAAc,EAAE,iBAAiB,EAAE,EACnC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,UAAU,EAAE,CA+Ed"}
@@ -67,15 +67,26 @@ export function citableFactsRule(pages, entityPatterns, options) {
67
67
  if (unique.length >= targetFacts)
68
68
  continue;
69
69
  const severity = unique.length < minFacts ? "error" : "warning";
70
+ // Confidence ladder:
71
+ // 0 unique facts → high (almost certainly content-poor)
72
+ // 1-2 facts → medium (borderline; could be a short-form page)
73
+ // 3-7 facts → low (warning tier; narrative pages legitimately have fewer concrete numbers)
74
+ const confidence = unique.length === 0 ? "high" :
75
+ unique.length < minFacts ? "medium" :
76
+ "low";
70
77
  const templateDrag = facts.length - unique.length;
71
78
  const templateNote = templateDrag > 0
72
79
  ? ` (${templateDrag} additional fact${templateDrag === 1 ? "" : "s"} appear on most pages and don't count as entity-specific)`
73
80
  : "";
81
+ const lowConfidenceCaveat = confidence === "low"
82
+ ? " Low confidence: prose-style pages can legitimately cite fewer hard numbers — verify whether AI Overview citation matters for this page."
83
+ : "";
74
84
  findings.push({
75
85
  ruleId: "aeo/citable-facts",
76
86
  severity,
87
+ confidence,
77
88
  message: `${page.url} has ${unique.length} unique citable fact${unique.length === 1 ? "" : "s"}${templateNote}. ` +
78
- `AI Overviews cite specific numbers and named references.`,
89
+ `AI Overviews cite specific numbers and named references.${lowConfidenceCaveat}`,
79
90
  pageUrl: page.url,
80
91
  fix: `Replace vague language ("varies", "several weeks", "affordable", "many options") with ` +
81
92
  `specific values a reader or AI engine would cite: exact prices, percentages, dates, ` +
@@ -1 +1 @@
1
- {"version":3,"file":"citable-facts.js","sourceRoot":"","sources":["../../../src/rules/aeo/citable-facts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"citable-facts.js","sourceRoot":"","sources":["../../../src/rules/aeo/citable-facts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"content-modularity.d.ts","sourceRoot":"","sources":["../../../src/rules/aeo/content-modularity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AA+FD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,CAAC,EAAE,wBAAwB,GACjC,UAAU,EAAE,CAyCd"}
1
+ {"version":3,"file":"content-modularity.d.ts","sourceRoot":"","sources":["../../../src/rules/aeo/content-modularity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AA+FD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,CAAC,EAAE,wBAAwB,GACjC,UAAU,EAAE,CA4Cd"}
@@ -93,6 +93,9 @@ export function contentModularityRule(pages, options) {
93
93
  findings.push({
94
94
  ruleId: "aeo/content-modularity",
95
95
  severity: "warning",
96
+ // Always low: these are stylistic recommendations, not penalties. A page that
97
+ // ignores all of them can still rank and get cited.
98
+ confidence: "low",
96
99
  message: `${page.url} has ${issues.length}/${sections.length} sections that are not independently extractable. ` +
97
100
  `Examples — ${examples}.`,
98
101
  pageUrl: page.url,
@@ -1 +1 @@
1
- {"version":3,"file":"content-modularity.js","sourceRoot":"","sources":["../../../src/rules/aeo/content-modularity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-modularity.js","sourceRoot":"","sources":["../../../src/rules/aeo/content-modularity.ts"],"names":[],"mappings":"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"}