@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
@@ -0,0 +1,1555 @@
1
+ /**
2
+ * Orchestrator tool registry. Each entry is a `DefinedTool` — call
3
+ * `.toAiTool()` to get an AI-SDK-compatible tool object, or `.run()` for
4
+ * direct unit-test invocation.
5
+ *
6
+ * Phase 1 covers the canonical tool patterns:
7
+ * - HTTP / sitemap I/O (fetch_page, fetch_sitemap)
8
+ * - Page parsing (parse_page)
9
+ * - Template clustering (detect_templates, sample_template)
10
+ * - Per-page rule checks (check_rule_*)
11
+ * - Cluster-aware rule checks (check_rule_near_duplicate, check_rule_schema_consistency)
12
+ * - Multi-page AEO rule checks (check_rule_faq_coverage, _citable_facts, etc.)
13
+ * - Domain-level checks (check_domain_llms_txt, check_domain_crawler_access)
14
+ *
15
+ * Future phases extend this map with the remaining rule wrappers (links/*,
16
+ * tech/redirect-chain, tech/soft-404, etc. — most useful as part of
17
+ * `check_all_rules` once that escape hatch lands), schema/text validators,
18
+ * and external probes (SerpAPI, ask_ai_engine).
19
+ */
20
+ export { defineTool } from "./types.js";
21
+ export type { DefinedTool, ToolDefinition, ToolOk, ToolErr, ToolResult } from "./types.js";
22
+ export { fetchPageTool } from "./fetch-page.js";
23
+ export { fetchSitemapTool } from "./fetch-sitemap.js";
24
+ export { parsePageTool } from "./parse-page.js";
25
+ export { detectTemplatesTool } from "./detect-templates.js";
26
+ export { sampleTemplateTool } from "./sample-template.js";
27
+ export { checkRuleThinContentTool } from "./check-rule-thin-content.js";
28
+ export { checkRuleMissingAuthorTool } from "./check-rule-missing-author.js";
29
+ export { checkRuleCanonicalConsistencyTool } from "./check-rule-canonical-consistency.js";
30
+ export { checkRuleJsonLdValidTool } from "./check-rule-json-ld-valid.js";
31
+ export { checkRuleAnswerFirstTool } from "./check-rule-answer-first.js";
32
+ export { checkRuleNearDuplicateTool } from "./check-rule-near-duplicate.js";
33
+ export { checkRuleFaqCoverageTool } from "./check-rule-faq-coverage.js";
34
+ export { checkRuleCitableFactsTool } from "./check-rule-citable-facts.js";
35
+ export { checkRuleFreshnessSignalsTool } from "./check-rule-freshness-signals.js";
36
+ export { checkRuleContentModularityTool } from "./check-rule-content-modularity.js";
37
+ export { checkRuleSummaryBaitTool } from "./check-rule-summary-bait.js";
38
+ export { checkRuleRequiredFieldsTool } from "./check-rule-required-fields.js";
39
+ export { checkRuleSchemaConsistencyTool } from "./check-rule-schema-consistency.js";
40
+ export { checkDomainLlmsTxtTool } from "./check-domain-llms-txt.js";
41
+ export { checkDomainCrawlerAccessTool } from "./check-domain-crawler-access.js";
42
+ export { checkRobotsTool } from "./check-robots.js";
43
+ export { checkIndexabilityTool } from "./check-indexability.js";
44
+ export { validateJsonLdTool } from "./validate-jsonld.js";
45
+ export { querySerpTool } from "./query-serp.js";
46
+ export { askAiEngineTool } from "./ask-ai-engine.js";
47
+ /**
48
+ * The full orchestrator tool registry, keyed by tool name.
49
+ *
50
+ * To convert into AI-SDK input shape:
51
+ * const aiTools = Object.fromEntries(
52
+ * Object.entries(orchestratorTools).map(([k, t]) => [k, t.toAiTool()])
53
+ * );
54
+ * streamText({ tools: aiTools, ... });
55
+ */
56
+ export declare const orchestratorTools: {
57
+ readonly fetch_page: {
58
+ name: string;
59
+ description: string;
60
+ inputSchema: import("zod").ZodType<{
61
+ url: string;
62
+ timeoutMs?: number | undefined;
63
+ cacheDir?: string | undefined;
64
+ cacheTtlMs?: number | undefined;
65
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
66
+ url: string;
67
+ timeoutMs?: number | undefined;
68
+ cacheDir?: string | undefined;
69
+ cacheTtlMs?: number | undefined;
70
+ }, unknown>>;
71
+ outputSchema: import("zod").ZodType<{
72
+ url: string;
73
+ status: number;
74
+ headers: Record<string, string>;
75
+ pageId: string;
76
+ bodyExcerpt: string;
77
+ fromCache: boolean;
78
+ bodyBytes: number;
79
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
80
+ url: string;
81
+ status: number;
82
+ headers: Record<string, string>;
83
+ pageId: string;
84
+ bodyExcerpt: string;
85
+ fromCache: boolean;
86
+ bodyBytes: number;
87
+ }, unknown>>;
88
+ toAiTool(): import("ai").Tool<{
89
+ url: string;
90
+ timeoutMs?: number | undefined;
91
+ cacheDir?: string | undefined;
92
+ cacheTtlMs?: number | undefined;
93
+ }, import("./types.js").ToolResult<{
94
+ url: string;
95
+ status: number;
96
+ headers: Record<string, string>;
97
+ pageId: string;
98
+ bodyExcerpt: string;
99
+ fromCache: boolean;
100
+ bodyBytes: number;
101
+ }>>;
102
+ run(input: {
103
+ url: string;
104
+ timeoutMs?: number | undefined;
105
+ cacheDir?: string | undefined;
106
+ cacheTtlMs?: number | undefined;
107
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
108
+ url: string;
109
+ status: number;
110
+ headers: Record<string, string>;
111
+ pageId: string;
112
+ bodyExcerpt: string;
113
+ fromCache: boolean;
114
+ bodyBytes: number;
115
+ }>>;
116
+ };
117
+ readonly fetch_sitemap: {
118
+ name: string;
119
+ description: string;
120
+ inputSchema: import("zod").ZodType<{
121
+ sitemapUrl: string;
122
+ maxUrls?: number | undefined;
123
+ maxDepth?: number | undefined;
124
+ timeoutMs?: number | undefined;
125
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
126
+ sitemapUrl: string;
127
+ maxUrls?: number | undefined;
128
+ maxDepth?: number | undefined;
129
+ timeoutMs?: number | undefined;
130
+ }, unknown>>;
131
+ outputSchema: import("zod").ZodType<{
132
+ rootUrl: string;
133
+ urlCount: number;
134
+ urls: string[];
135
+ truncated: boolean;
136
+ childSitemaps: string[];
137
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
138
+ rootUrl: string;
139
+ urlCount: number;
140
+ urls: string[];
141
+ truncated: boolean;
142
+ childSitemaps: string[];
143
+ }, unknown>>;
144
+ toAiTool(): import("ai").Tool<{
145
+ sitemapUrl: string;
146
+ maxUrls?: number | undefined;
147
+ maxDepth?: number | undefined;
148
+ timeoutMs?: number | undefined;
149
+ }, import("./types.js").ToolResult<{
150
+ rootUrl: string;
151
+ urlCount: number;
152
+ urls: string[];
153
+ truncated: boolean;
154
+ childSitemaps: string[];
155
+ }>>;
156
+ run(input: {
157
+ sitemapUrl: string;
158
+ maxUrls?: number | undefined;
159
+ maxDepth?: number | undefined;
160
+ timeoutMs?: number | undefined;
161
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
162
+ rootUrl: string;
163
+ urlCount: number;
164
+ urls: string[];
165
+ truncated: boolean;
166
+ childSitemaps: string[];
167
+ }>>;
168
+ };
169
+ readonly parse_page: {
170
+ name: string;
171
+ description: string;
172
+ inputSchema: import("zod").ZodType<{
173
+ pageId: string;
174
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
175
+ pageId: string;
176
+ }, unknown>>;
177
+ outputSchema: import("zod").ZodType<{
178
+ url: string;
179
+ title: string;
180
+ metaDescription: string;
181
+ canonical: string;
182
+ robotsMeta: string;
183
+ headings: {
184
+ h1: string[];
185
+ h2: string[];
186
+ };
187
+ contentWordCount: number;
188
+ jsonLdBlockCount: number;
189
+ jsonLdTypes: string[];
190
+ outboundLinkCount: number;
191
+ internalLinkCount: number;
192
+ hasAuthorSignal: boolean;
193
+ hasFaqBlock: boolean;
194
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
195
+ url: string;
196
+ title: string;
197
+ metaDescription: string;
198
+ canonical: string;
199
+ robotsMeta: string;
200
+ headings: {
201
+ h1: string[];
202
+ h2: string[];
203
+ };
204
+ contentWordCount: number;
205
+ jsonLdBlockCount: number;
206
+ jsonLdTypes: string[];
207
+ outboundLinkCount: number;
208
+ internalLinkCount: number;
209
+ hasAuthorSignal: boolean;
210
+ hasFaqBlock: boolean;
211
+ }, unknown>>;
212
+ toAiTool(): import("ai").Tool<{
213
+ pageId: string;
214
+ }, import("./types.js").ToolResult<{
215
+ url: string;
216
+ title: string;
217
+ metaDescription: string;
218
+ canonical: string;
219
+ robotsMeta: string;
220
+ headings: {
221
+ h1: string[];
222
+ h2: string[];
223
+ };
224
+ contentWordCount: number;
225
+ jsonLdBlockCount: number;
226
+ jsonLdTypes: string[];
227
+ outboundLinkCount: number;
228
+ internalLinkCount: number;
229
+ hasAuthorSignal: boolean;
230
+ hasFaqBlock: boolean;
231
+ }>>;
232
+ run(input: {
233
+ pageId: string;
234
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
235
+ url: string;
236
+ title: string;
237
+ metaDescription: string;
238
+ canonical: string;
239
+ robotsMeta: string;
240
+ headings: {
241
+ h1: string[];
242
+ h2: string[];
243
+ };
244
+ contentWordCount: number;
245
+ jsonLdBlockCount: number;
246
+ jsonLdTypes: string[];
247
+ outboundLinkCount: number;
248
+ internalLinkCount: number;
249
+ hasAuthorSignal: boolean;
250
+ hasFaqBlock: boolean;
251
+ }>>;
252
+ };
253
+ readonly detect_templates: {
254
+ name: string;
255
+ description: string;
256
+ inputSchema: import("zod").ZodType<{
257
+ urls: string[];
258
+ minRatio?: number | undefined;
259
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
260
+ urls: string[];
261
+ minRatio?: number | undefined;
262
+ }, unknown>>;
263
+ outputSchema: import("zod").ZodType<{
264
+ templateCount: number;
265
+ totalUrls: number;
266
+ templates: {
267
+ template: string;
268
+ count: number;
269
+ ratio: number;
270
+ }[];
271
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
272
+ templateCount: number;
273
+ totalUrls: number;
274
+ templates: {
275
+ template: string;
276
+ count: number;
277
+ ratio: number;
278
+ }[];
279
+ }, unknown>>;
280
+ toAiTool(): import("ai").Tool<{
281
+ urls: string[];
282
+ minRatio?: number | undefined;
283
+ }, import("./types.js").ToolResult<{
284
+ templateCount: number;
285
+ totalUrls: number;
286
+ templates: {
287
+ template: string;
288
+ count: number;
289
+ ratio: number;
290
+ }[];
291
+ }>>;
292
+ run(input: {
293
+ urls: string[];
294
+ minRatio?: number | undefined;
295
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
296
+ templateCount: number;
297
+ totalUrls: number;
298
+ templates: {
299
+ template: string;
300
+ count: number;
301
+ ratio: number;
302
+ }[];
303
+ }>>;
304
+ };
305
+ readonly sample_template: {
306
+ name: string;
307
+ description: string;
308
+ inputSchema: import("zod").ZodType<{
309
+ urls: string[];
310
+ n: number;
311
+ template?: string | undefined;
312
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
313
+ urls: string[];
314
+ n: number;
315
+ template?: string | undefined;
316
+ }, unknown>>;
317
+ outputSchema: import("zod").ZodType<{
318
+ sample: string[];
319
+ sampledFrom: number;
320
+ template: null;
321
+ } | {
322
+ sample: string[];
323
+ sampledFrom: number;
324
+ template: string;
325
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
326
+ sample: string[];
327
+ sampledFrom: number;
328
+ template: null;
329
+ } | {
330
+ sample: string[];
331
+ sampledFrom: number;
332
+ template: string;
333
+ }, unknown>>;
334
+ toAiTool(): import("ai").Tool<{
335
+ urls: string[];
336
+ n: number;
337
+ template?: string | undefined;
338
+ }, import("./types.js").ToolResult<{
339
+ sample: string[];
340
+ sampledFrom: number;
341
+ template: null;
342
+ } | {
343
+ sample: string[];
344
+ sampledFrom: number;
345
+ template: string;
346
+ }>>;
347
+ run(input: {
348
+ urls: string[];
349
+ n: number;
350
+ template?: string | undefined;
351
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
352
+ sample: string[];
353
+ sampledFrom: number;
354
+ template: null;
355
+ } | {
356
+ sample: string[];
357
+ sampledFrom: number;
358
+ template: string;
359
+ }>>;
360
+ };
361
+ readonly check_rule_thin_content: {
362
+ name: string;
363
+ description: string;
364
+ inputSchema: import("zod").ZodType<{
365
+ pageId: string;
366
+ minWords?: number | undefined;
367
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
368
+ pageId: string;
369
+ minWords?: number | undefined;
370
+ }, unknown>>;
371
+ outputSchema: import("zod").ZodType<{
372
+ isThin: boolean;
373
+ wordCount: number;
374
+ threshold: number;
375
+ finding: {
376
+ ruleId: "spam/thin-content";
377
+ severity: "error";
378
+ confidence: "high" | "medium" | "low" | "speculative";
379
+ message: string;
380
+ fix?: string | undefined;
381
+ } | null;
382
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
383
+ isThin: boolean;
384
+ wordCount: number;
385
+ threshold: number;
386
+ finding: {
387
+ ruleId: "spam/thin-content";
388
+ severity: "error";
389
+ confidence: "high" | "medium" | "low" | "speculative";
390
+ message: string;
391
+ fix?: string | undefined;
392
+ } | null;
393
+ }, unknown>>;
394
+ toAiTool(): import("ai").Tool<{
395
+ pageId: string;
396
+ minWords?: number | undefined;
397
+ }, import("./types.js").ToolResult<{
398
+ isThin: boolean;
399
+ wordCount: number;
400
+ threshold: number;
401
+ finding: {
402
+ ruleId: "spam/thin-content";
403
+ severity: "error";
404
+ confidence: "high" | "medium" | "low" | "speculative";
405
+ message: string;
406
+ fix?: string | undefined;
407
+ } | null;
408
+ }>>;
409
+ run(input: {
410
+ pageId: string;
411
+ minWords?: number | undefined;
412
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
413
+ isThin: boolean;
414
+ wordCount: number;
415
+ threshold: number;
416
+ finding: {
417
+ ruleId: "spam/thin-content";
418
+ severity: "error";
419
+ confidence: "high" | "medium" | "low" | "speculative";
420
+ message: string;
421
+ fix?: string | undefined;
422
+ } | null;
423
+ }>>;
424
+ };
425
+ readonly check_rule_missing_author: {
426
+ name: string;
427
+ description: string;
428
+ inputSchema: import("zod").ZodType<{
429
+ pageId: string;
430
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
431
+ pageId: string;
432
+ }, unknown>>;
433
+ outputSchema: import("zod").ZodType<{
434
+ hasAuthorSignal: boolean;
435
+ finding: {
436
+ ruleId: "content/missing-author";
437
+ severity: "warning";
438
+ confidence: "high" | "medium" | "low" | "speculative";
439
+ message: string;
440
+ fix?: string | undefined;
441
+ } | null;
442
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
443
+ hasAuthorSignal: boolean;
444
+ finding: {
445
+ ruleId: "content/missing-author";
446
+ severity: "warning";
447
+ confidence: "high" | "medium" | "low" | "speculative";
448
+ message: string;
449
+ fix?: string | undefined;
450
+ } | null;
451
+ }, unknown>>;
452
+ toAiTool(): import("ai").Tool<{
453
+ pageId: string;
454
+ }, import("./types.js").ToolResult<{
455
+ hasAuthorSignal: boolean;
456
+ finding: {
457
+ ruleId: "content/missing-author";
458
+ severity: "warning";
459
+ confidence: "high" | "medium" | "low" | "speculative";
460
+ message: string;
461
+ fix?: string | undefined;
462
+ } | null;
463
+ }>>;
464
+ run(input: {
465
+ pageId: string;
466
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
467
+ hasAuthorSignal: boolean;
468
+ finding: {
469
+ ruleId: "content/missing-author";
470
+ severity: "warning";
471
+ confidence: "high" | "medium" | "low" | "speculative";
472
+ message: string;
473
+ fix?: string | undefined;
474
+ } | null;
475
+ }>>;
476
+ };
477
+ readonly check_rule_canonical_consistency: {
478
+ name: string;
479
+ description: string;
480
+ inputSchema: import("zod").ZodType<{
481
+ pageId: string;
482
+ knownUrls?: string[] | undefined;
483
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
484
+ pageId: string;
485
+ knownUrls?: string[] | undefined;
486
+ }, unknown>>;
487
+ outputSchema: import("zod").ZodType<{
488
+ hasCanonical: boolean;
489
+ canonicalUrl: string | null;
490
+ selfReferencing: boolean;
491
+ findings: {
492
+ ruleId: "tech/canonical-consistency";
493
+ severity: "info" | "warning" | "error" | "critical";
494
+ message: string;
495
+ fix?: string | undefined;
496
+ relatedUrls?: string[] | undefined;
497
+ }[];
498
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
499
+ hasCanonical: boolean;
500
+ canonicalUrl: string | null;
501
+ selfReferencing: boolean;
502
+ findings: {
503
+ ruleId: "tech/canonical-consistency";
504
+ severity: "info" | "warning" | "error" | "critical";
505
+ message: string;
506
+ fix?: string | undefined;
507
+ relatedUrls?: string[] | undefined;
508
+ }[];
509
+ }, unknown>>;
510
+ toAiTool(): import("ai").Tool<{
511
+ pageId: string;
512
+ knownUrls?: string[] | undefined;
513
+ }, import("./types.js").ToolResult<{
514
+ hasCanonical: boolean;
515
+ canonicalUrl: string | null;
516
+ selfReferencing: boolean;
517
+ findings: {
518
+ ruleId: "tech/canonical-consistency";
519
+ severity: "info" | "warning" | "error" | "critical";
520
+ message: string;
521
+ fix?: string | undefined;
522
+ relatedUrls?: string[] | undefined;
523
+ }[];
524
+ }>>;
525
+ run(input: {
526
+ pageId: string;
527
+ knownUrls?: string[] | undefined;
528
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
529
+ hasCanonical: boolean;
530
+ canonicalUrl: string | null;
531
+ selfReferencing: boolean;
532
+ findings: {
533
+ ruleId: "tech/canonical-consistency";
534
+ severity: "info" | "warning" | "error" | "critical";
535
+ message: string;
536
+ fix?: string | undefined;
537
+ relatedUrls?: string[] | undefined;
538
+ }[];
539
+ }>>;
540
+ };
541
+ readonly check_rule_json_ld_valid: {
542
+ name: string;
543
+ description: string;
544
+ inputSchema: import("zod").ZodType<{
545
+ pageId: string;
546
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
547
+ pageId: string;
548
+ }, unknown>>;
549
+ outputSchema: import("zod").ZodType<{
550
+ jsonLdBlockCount: number;
551
+ hasParseError: boolean;
552
+ findings: {
553
+ ruleId: "schema/json-ld-valid";
554
+ severity: "error";
555
+ message: string;
556
+ fix?: string | undefined;
557
+ }[];
558
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
559
+ jsonLdBlockCount: number;
560
+ hasParseError: boolean;
561
+ findings: {
562
+ ruleId: "schema/json-ld-valid";
563
+ severity: "error";
564
+ message: string;
565
+ fix?: string | undefined;
566
+ }[];
567
+ }, unknown>>;
568
+ toAiTool(): import("ai").Tool<{
569
+ pageId: string;
570
+ }, import("./types.js").ToolResult<{
571
+ jsonLdBlockCount: number;
572
+ hasParseError: boolean;
573
+ findings: {
574
+ ruleId: "schema/json-ld-valid";
575
+ severity: "error";
576
+ message: string;
577
+ fix?: string | undefined;
578
+ }[];
579
+ }>>;
580
+ run(input: {
581
+ pageId: string;
582
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
583
+ jsonLdBlockCount: number;
584
+ hasParseError: boolean;
585
+ findings: {
586
+ ruleId: "schema/json-ld-valid";
587
+ severity: "error";
588
+ message: string;
589
+ fix?: string | undefined;
590
+ }[];
591
+ }>>;
592
+ };
593
+ readonly check_rule_answer_first: {
594
+ name: string;
595
+ description: string;
596
+ inputSchema: import("zod").ZodType<{
597
+ pageId: string;
598
+ maxFirstParagraphWords?: number | undefined;
599
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
600
+ pageId: string;
601
+ maxFirstParagraphWords?: number | undefined;
602
+ }, unknown>>;
603
+ outputSchema: import("zod").ZodType<{
604
+ finding: {
605
+ ruleId: "aeo/answer-first";
606
+ severity: "warning" | "error";
607
+ confidence: "high" | "medium" | "low" | "speculative";
608
+ message: string;
609
+ fix?: string | undefined;
610
+ } | null;
611
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
612
+ finding: {
613
+ ruleId: "aeo/answer-first";
614
+ severity: "warning" | "error";
615
+ confidence: "high" | "medium" | "low" | "speculative";
616
+ message: string;
617
+ fix?: string | undefined;
618
+ } | null;
619
+ }, unknown>>;
620
+ toAiTool(): import("ai").Tool<{
621
+ pageId: string;
622
+ maxFirstParagraphWords?: number | undefined;
623
+ }, import("./types.js").ToolResult<{
624
+ finding: {
625
+ ruleId: "aeo/answer-first";
626
+ severity: "warning" | "error";
627
+ confidence: "high" | "medium" | "low" | "speculative";
628
+ message: string;
629
+ fix?: string | undefined;
630
+ } | null;
631
+ }>>;
632
+ run(input: {
633
+ pageId: string;
634
+ maxFirstParagraphWords?: number | undefined;
635
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
636
+ finding: {
637
+ ruleId: "aeo/answer-first";
638
+ severity: "warning" | "error";
639
+ confidence: "high" | "medium" | "low" | "speculative";
640
+ message: string;
641
+ fix?: string | undefined;
642
+ } | null;
643
+ }>>;
644
+ };
645
+ readonly check_rule_near_duplicate: {
646
+ name: string;
647
+ description: string;
648
+ inputSchema: import("zod").ZodType<{
649
+ pageIds: string[];
650
+ threshold?: number | undefined;
651
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
652
+ pageIds: string[];
653
+ threshold?: number | undefined;
654
+ }, unknown>>;
655
+ outputSchema: import("zod").ZodType<{
656
+ pairCount: number;
657
+ pairs: {
658
+ leftUrl: string;
659
+ rightUrl: string;
660
+ similarity: number;
661
+ }[];
662
+ findings: {
663
+ ruleId: "spam/near-duplicate";
664
+ severity: "critical";
665
+ message: string;
666
+ pageUrl: string;
667
+ similarity: number;
668
+ relatedUrls?: string[] | undefined;
669
+ }[];
670
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
671
+ pairCount: number;
672
+ pairs: {
673
+ leftUrl: string;
674
+ rightUrl: string;
675
+ similarity: number;
676
+ }[];
677
+ findings: {
678
+ ruleId: "spam/near-duplicate";
679
+ severity: "critical";
680
+ message: string;
681
+ pageUrl: string;
682
+ similarity: number;
683
+ relatedUrls?: string[] | undefined;
684
+ }[];
685
+ }, unknown>>;
686
+ toAiTool(): import("ai").Tool<{
687
+ pageIds: string[];
688
+ threshold?: number | undefined;
689
+ }, import("./types.js").ToolResult<{
690
+ pairCount: number;
691
+ pairs: {
692
+ leftUrl: string;
693
+ rightUrl: string;
694
+ similarity: number;
695
+ }[];
696
+ findings: {
697
+ ruleId: "spam/near-duplicate";
698
+ severity: "critical";
699
+ message: string;
700
+ pageUrl: string;
701
+ similarity: number;
702
+ relatedUrls?: string[] | undefined;
703
+ }[];
704
+ }>>;
705
+ run(input: {
706
+ pageIds: string[];
707
+ threshold?: number | undefined;
708
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
709
+ pairCount: number;
710
+ pairs: {
711
+ leftUrl: string;
712
+ rightUrl: string;
713
+ similarity: number;
714
+ }[];
715
+ findings: {
716
+ ruleId: "spam/near-duplicate";
717
+ severity: "critical";
718
+ message: string;
719
+ pageUrl: string;
720
+ similarity: number;
721
+ relatedUrls?: string[] | undefined;
722
+ }[];
723
+ }>>;
724
+ };
725
+ readonly check_rule_faq_coverage: {
726
+ name: string;
727
+ description: string;
728
+ inputSchema: import("zod").ZodType<{
729
+ pageIds: string[];
730
+ minQuestionHeadings?: number | undefined;
731
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
732
+ pageIds: string[];
733
+ minQuestionHeadings?: number | undefined;
734
+ }, unknown>>;
735
+ outputSchema: import("zod").ZodType<{
736
+ findings: {
737
+ ruleId: "aeo/faq-coverage";
738
+ severity: "info" | "warning" | "error" | "critical";
739
+ message: string;
740
+ pageUrl?: string | undefined;
741
+ fix?: string | undefined;
742
+ }[];
743
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
744
+ findings: {
745
+ ruleId: "aeo/faq-coverage";
746
+ severity: "info" | "warning" | "error" | "critical";
747
+ message: string;
748
+ pageUrl?: string | undefined;
749
+ fix?: string | undefined;
750
+ }[];
751
+ }, unknown>>;
752
+ toAiTool(): import("ai").Tool<{
753
+ pageIds: string[];
754
+ minQuestionHeadings?: number | undefined;
755
+ }, import("./types.js").ToolResult<{
756
+ findings: {
757
+ ruleId: "aeo/faq-coverage";
758
+ severity: "info" | "warning" | "error" | "critical";
759
+ message: string;
760
+ pageUrl?: string | undefined;
761
+ fix?: string | undefined;
762
+ }[];
763
+ }>>;
764
+ run(input: {
765
+ pageIds: string[];
766
+ minQuestionHeadings?: number | undefined;
767
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
768
+ findings: {
769
+ ruleId: "aeo/faq-coverage";
770
+ severity: "info" | "warning" | "error" | "critical";
771
+ message: string;
772
+ pageUrl?: string | undefined;
773
+ fix?: string | undefined;
774
+ }[];
775
+ }>>;
776
+ };
777
+ readonly check_rule_citable_facts: {
778
+ name: string;
779
+ description: string;
780
+ inputSchema: import("zod").ZodType<{
781
+ pageIds: string[];
782
+ minFactsPerPage?: number | undefined;
783
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
784
+ pageIds: string[];
785
+ minFactsPerPage?: number | undefined;
786
+ }, unknown>>;
787
+ outputSchema: import("zod").ZodType<{
788
+ findings: {
789
+ ruleId: "aeo/citable-facts";
790
+ severity: "info" | "warning" | "error" | "critical";
791
+ message: string;
792
+ confidence?: "high" | "medium" | "low" | "speculative" | undefined;
793
+ pageUrl?: string | undefined;
794
+ fix?: string | undefined;
795
+ }[];
796
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
797
+ findings: {
798
+ ruleId: "aeo/citable-facts";
799
+ severity: "info" | "warning" | "error" | "critical";
800
+ message: string;
801
+ confidence?: "high" | "medium" | "low" | "speculative" | undefined;
802
+ pageUrl?: string | undefined;
803
+ fix?: string | undefined;
804
+ }[];
805
+ }, unknown>>;
806
+ toAiTool(): import("ai").Tool<{
807
+ pageIds: string[];
808
+ minFactsPerPage?: number | undefined;
809
+ }, import("./types.js").ToolResult<{
810
+ findings: {
811
+ ruleId: "aeo/citable-facts";
812
+ severity: "info" | "warning" | "error" | "critical";
813
+ message: string;
814
+ confidence?: "high" | "medium" | "low" | "speculative" | undefined;
815
+ pageUrl?: string | undefined;
816
+ fix?: string | undefined;
817
+ }[];
818
+ }>>;
819
+ run(input: {
820
+ pageIds: string[];
821
+ minFactsPerPage?: number | undefined;
822
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
823
+ findings: {
824
+ ruleId: "aeo/citable-facts";
825
+ severity: "info" | "warning" | "error" | "critical";
826
+ message: string;
827
+ confidence?: "high" | "medium" | "low" | "speculative" | undefined;
828
+ pageUrl?: string | undefined;
829
+ fix?: string | undefined;
830
+ }[];
831
+ }>>;
832
+ };
833
+ readonly check_rule_freshness_signals: {
834
+ name: string;
835
+ description: string;
836
+ inputSchema: import("zod").ZodType<{
837
+ pageIds: string[];
838
+ maxStaleDays?: number | undefined;
839
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
840
+ pageIds: string[];
841
+ maxStaleDays?: number | undefined;
842
+ }, unknown>>;
843
+ outputSchema: import("zod").ZodType<{
844
+ findings: {
845
+ ruleId: "aeo/freshness-signals";
846
+ severity: "info" | "warning" | "error" | "critical";
847
+ message: string;
848
+ pageUrl?: string | undefined;
849
+ fix?: string | undefined;
850
+ }[];
851
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
852
+ findings: {
853
+ ruleId: "aeo/freshness-signals";
854
+ severity: "info" | "warning" | "error" | "critical";
855
+ message: string;
856
+ pageUrl?: string | undefined;
857
+ fix?: string | undefined;
858
+ }[];
859
+ }, unknown>>;
860
+ toAiTool(): import("ai").Tool<{
861
+ pageIds: string[];
862
+ maxStaleDays?: number | undefined;
863
+ }, import("./types.js").ToolResult<{
864
+ findings: {
865
+ ruleId: "aeo/freshness-signals";
866
+ severity: "info" | "warning" | "error" | "critical";
867
+ message: string;
868
+ pageUrl?: string | undefined;
869
+ fix?: string | undefined;
870
+ }[];
871
+ }>>;
872
+ run(input: {
873
+ pageIds: string[];
874
+ maxStaleDays?: number | undefined;
875
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
876
+ findings: {
877
+ ruleId: "aeo/freshness-signals";
878
+ severity: "info" | "warning" | "error" | "critical";
879
+ message: string;
880
+ pageUrl?: string | undefined;
881
+ fix?: string | undefined;
882
+ }[];
883
+ }>>;
884
+ };
885
+ readonly check_rule_content_modularity: {
886
+ name: string;
887
+ description: string;
888
+ inputSchema: import("zod").ZodType<{
889
+ pageIds: string[];
890
+ maxParagraphWords?: number | undefined;
891
+ minSelfContainedRatio?: number | undefined;
892
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
893
+ pageIds: string[];
894
+ maxParagraphWords?: number | undefined;
895
+ minSelfContainedRatio?: number | undefined;
896
+ }, unknown>>;
897
+ outputSchema: import("zod").ZodType<{
898
+ findings: {
899
+ ruleId: "aeo/content-modularity";
900
+ severity: "info" | "warning" | "error" | "critical";
901
+ message: string;
902
+ pageUrl?: string | undefined;
903
+ fix?: string | undefined;
904
+ }[];
905
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
906
+ findings: {
907
+ ruleId: "aeo/content-modularity";
908
+ severity: "info" | "warning" | "error" | "critical";
909
+ message: string;
910
+ pageUrl?: string | undefined;
911
+ fix?: string | undefined;
912
+ }[];
913
+ }, unknown>>;
914
+ toAiTool(): import("ai").Tool<{
915
+ pageIds: string[];
916
+ maxParagraphWords?: number | undefined;
917
+ minSelfContainedRatio?: number | undefined;
918
+ }, import("./types.js").ToolResult<{
919
+ findings: {
920
+ ruleId: "aeo/content-modularity";
921
+ severity: "info" | "warning" | "error" | "critical";
922
+ message: string;
923
+ pageUrl?: string | undefined;
924
+ fix?: string | undefined;
925
+ }[];
926
+ }>>;
927
+ run(input: {
928
+ pageIds: string[];
929
+ maxParagraphWords?: number | undefined;
930
+ minSelfContainedRatio?: number | undefined;
931
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
932
+ findings: {
933
+ ruleId: "aeo/content-modularity";
934
+ severity: "info" | "warning" | "error" | "critical";
935
+ message: string;
936
+ pageUrl?: string | undefined;
937
+ fix?: string | undefined;
938
+ }[];
939
+ }>>;
940
+ };
941
+ readonly check_rule_summary_bait: {
942
+ name: string;
943
+ description: string;
944
+ inputSchema: import("zod").ZodType<{
945
+ pageIds: string[];
946
+ openerWordCount?: number | undefined;
947
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
948
+ pageIds: string[];
949
+ openerWordCount?: number | undefined;
950
+ }, unknown>>;
951
+ outputSchema: import("zod").ZodType<{
952
+ findings: {
953
+ ruleId: "aeo/summary-bait";
954
+ severity: "info" | "warning" | "error" | "critical";
955
+ message: string;
956
+ pageUrl?: string | undefined;
957
+ fix?: string | undefined;
958
+ }[];
959
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
960
+ findings: {
961
+ ruleId: "aeo/summary-bait";
962
+ severity: "info" | "warning" | "error" | "critical";
963
+ message: string;
964
+ pageUrl?: string | undefined;
965
+ fix?: string | undefined;
966
+ }[];
967
+ }, unknown>>;
968
+ toAiTool(): import("ai").Tool<{
969
+ pageIds: string[];
970
+ openerWordCount?: number | undefined;
971
+ }, import("./types.js").ToolResult<{
972
+ findings: {
973
+ ruleId: "aeo/summary-bait";
974
+ severity: "info" | "warning" | "error" | "critical";
975
+ message: string;
976
+ pageUrl?: string | undefined;
977
+ fix?: string | undefined;
978
+ }[];
979
+ }>>;
980
+ run(input: {
981
+ pageIds: string[];
982
+ openerWordCount?: number | undefined;
983
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
984
+ findings: {
985
+ ruleId: "aeo/summary-bait";
986
+ severity: "info" | "warning" | "error" | "critical";
987
+ message: string;
988
+ pageUrl?: string | undefined;
989
+ fix?: string | undefined;
990
+ }[];
991
+ }>>;
992
+ };
993
+ readonly check_rule_required_fields: {
994
+ name: string;
995
+ description: string;
996
+ inputSchema: import("zod").ZodType<{
997
+ pageIds: string[];
998
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
999
+ pageIds: string[];
1000
+ }, unknown>>;
1001
+ outputSchema: import("zod").ZodType<{
1002
+ findings: {
1003
+ ruleId: "schema/required-fields";
1004
+ severity: "info" | "warning" | "error" | "critical";
1005
+ message: string;
1006
+ pageUrl?: string | undefined;
1007
+ fix?: string | undefined;
1008
+ }[];
1009
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1010
+ findings: {
1011
+ ruleId: "schema/required-fields";
1012
+ severity: "info" | "warning" | "error" | "critical";
1013
+ message: string;
1014
+ pageUrl?: string | undefined;
1015
+ fix?: string | undefined;
1016
+ }[];
1017
+ }, unknown>>;
1018
+ toAiTool(): import("ai").Tool<{
1019
+ pageIds: string[];
1020
+ }, import("./types.js").ToolResult<{
1021
+ findings: {
1022
+ ruleId: "schema/required-fields";
1023
+ severity: "info" | "warning" | "error" | "critical";
1024
+ message: string;
1025
+ pageUrl?: string | undefined;
1026
+ fix?: string | undefined;
1027
+ }[];
1028
+ }>>;
1029
+ run(input: {
1030
+ pageIds: string[];
1031
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
1032
+ findings: {
1033
+ ruleId: "schema/required-fields";
1034
+ severity: "info" | "warning" | "error" | "critical";
1035
+ message: string;
1036
+ pageUrl?: string | undefined;
1037
+ fix?: string | undefined;
1038
+ }[];
1039
+ }>>;
1040
+ };
1041
+ readonly check_rule_schema_consistency: {
1042
+ name: string;
1043
+ description: string;
1044
+ inputSchema: import("zod").ZodType<{
1045
+ pageIds: string[];
1046
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1047
+ pageIds: string[];
1048
+ }, unknown>>;
1049
+ outputSchema: import("zod").ZodType<{
1050
+ findings: {
1051
+ ruleId: "schema/consistency";
1052
+ severity: "info" | "warning" | "error" | "critical";
1053
+ message: string;
1054
+ pageUrl?: string | undefined;
1055
+ relatedUrls?: string[] | undefined;
1056
+ fix?: string | undefined;
1057
+ }[];
1058
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1059
+ findings: {
1060
+ ruleId: "schema/consistency";
1061
+ severity: "info" | "warning" | "error" | "critical";
1062
+ message: string;
1063
+ pageUrl?: string | undefined;
1064
+ relatedUrls?: string[] | undefined;
1065
+ fix?: string | undefined;
1066
+ }[];
1067
+ }, unknown>>;
1068
+ toAiTool(): import("ai").Tool<{
1069
+ pageIds: string[];
1070
+ }, import("./types.js").ToolResult<{
1071
+ findings: {
1072
+ ruleId: "schema/consistency";
1073
+ severity: "info" | "warning" | "error" | "critical";
1074
+ message: string;
1075
+ pageUrl?: string | undefined;
1076
+ relatedUrls?: string[] | undefined;
1077
+ fix?: string | undefined;
1078
+ }[];
1079
+ }>>;
1080
+ run(input: {
1081
+ pageIds: string[];
1082
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
1083
+ findings: {
1084
+ ruleId: "schema/consistency";
1085
+ severity: "info" | "warning" | "error" | "critical";
1086
+ message: string;
1087
+ pageUrl?: string | undefined;
1088
+ relatedUrls?: string[] | undefined;
1089
+ fix?: string | undefined;
1090
+ }[];
1091
+ }>>;
1092
+ };
1093
+ readonly check_domain_llms_txt: {
1094
+ name: string;
1095
+ description: string;
1096
+ inputSchema: import("zod").ZodType<{
1097
+ origin: string;
1098
+ timeoutMs?: number | undefined;
1099
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1100
+ origin: string;
1101
+ timeoutMs?: number | undefined;
1102
+ }, unknown>>;
1103
+ outputSchema: import("zod").ZodType<{
1104
+ origin: string;
1105
+ llmsTxtUrl: string;
1106
+ found: boolean;
1107
+ findings: {
1108
+ ruleId: "aeo/llms-txt";
1109
+ severity: "info" | "warning" | "error" | "critical";
1110
+ message: string;
1111
+ fix?: string | undefined;
1112
+ }[];
1113
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1114
+ origin: string;
1115
+ llmsTxtUrl: string;
1116
+ found: boolean;
1117
+ findings: {
1118
+ ruleId: "aeo/llms-txt";
1119
+ severity: "info" | "warning" | "error" | "critical";
1120
+ message: string;
1121
+ fix?: string | undefined;
1122
+ }[];
1123
+ }, unknown>>;
1124
+ toAiTool(): import("ai").Tool<{
1125
+ origin: string;
1126
+ timeoutMs?: number | undefined;
1127
+ }, import("./types.js").ToolResult<{
1128
+ origin: string;
1129
+ llmsTxtUrl: string;
1130
+ found: boolean;
1131
+ findings: {
1132
+ ruleId: "aeo/llms-txt";
1133
+ severity: "info" | "warning" | "error" | "critical";
1134
+ message: string;
1135
+ fix?: string | undefined;
1136
+ }[];
1137
+ }>>;
1138
+ run(input: {
1139
+ origin: string;
1140
+ timeoutMs?: number | undefined;
1141
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
1142
+ origin: string;
1143
+ llmsTxtUrl: string;
1144
+ found: boolean;
1145
+ findings: {
1146
+ ruleId: "aeo/llms-txt";
1147
+ severity: "info" | "warning" | "error" | "critical";
1148
+ message: string;
1149
+ fix?: string | undefined;
1150
+ }[];
1151
+ }>>;
1152
+ };
1153
+ readonly check_domain_crawler_access: {
1154
+ name: string;
1155
+ description: string;
1156
+ inputSchema: import("zod").ZodType<{
1157
+ origin: string;
1158
+ timeoutMs?: number | undefined;
1159
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1160
+ origin: string;
1161
+ timeoutMs?: number | undefined;
1162
+ }, unknown>>;
1163
+ outputSchema: import("zod").ZodType<{
1164
+ origin: string;
1165
+ robotsTxtUrl: string;
1166
+ robotsTxtPresent: boolean;
1167
+ findings: {
1168
+ ruleId: "aeo/crawler-access";
1169
+ severity: "info" | "warning" | "error" | "critical";
1170
+ message: string;
1171
+ fix?: string | undefined;
1172
+ }[];
1173
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1174
+ origin: string;
1175
+ robotsTxtUrl: string;
1176
+ robotsTxtPresent: boolean;
1177
+ findings: {
1178
+ ruleId: "aeo/crawler-access";
1179
+ severity: "info" | "warning" | "error" | "critical";
1180
+ message: string;
1181
+ fix?: string | undefined;
1182
+ }[];
1183
+ }, unknown>>;
1184
+ toAiTool(): import("ai").Tool<{
1185
+ origin: string;
1186
+ timeoutMs?: number | undefined;
1187
+ }, import("./types.js").ToolResult<{
1188
+ origin: string;
1189
+ robotsTxtUrl: string;
1190
+ robotsTxtPresent: boolean;
1191
+ findings: {
1192
+ ruleId: "aeo/crawler-access";
1193
+ severity: "info" | "warning" | "error" | "critical";
1194
+ message: string;
1195
+ fix?: string | undefined;
1196
+ }[];
1197
+ }>>;
1198
+ run(input: {
1199
+ origin: string;
1200
+ timeoutMs?: number | undefined;
1201
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
1202
+ origin: string;
1203
+ robotsTxtUrl: string;
1204
+ robotsTxtPresent: boolean;
1205
+ findings: {
1206
+ ruleId: "aeo/crawler-access";
1207
+ severity: "info" | "warning" | "error" | "critical";
1208
+ message: string;
1209
+ fix?: string | undefined;
1210
+ }[];
1211
+ }>>;
1212
+ };
1213
+ readonly check_robots: {
1214
+ name: string;
1215
+ description: string;
1216
+ inputSchema: import("zod").ZodType<{
1217
+ origin: string;
1218
+ testUrl?: string | undefined;
1219
+ userAgent?: string | undefined;
1220
+ timeoutMs?: number | undefined;
1221
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1222
+ origin: string;
1223
+ testUrl?: string | undefined;
1224
+ userAgent?: string | undefined;
1225
+ timeoutMs?: number | undefined;
1226
+ }, unknown>>;
1227
+ outputSchema: import("zod").ZodType<{
1228
+ origin: string;
1229
+ robotsTxtUrl: string;
1230
+ robotsTxtPresent: boolean;
1231
+ disallowPatterns: string[];
1232
+ crawlDelaySeconds: number;
1233
+ hasSitemapDirective: boolean;
1234
+ testUrlBlocked: boolean | null;
1235
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1236
+ origin: string;
1237
+ robotsTxtUrl: string;
1238
+ robotsTxtPresent: boolean;
1239
+ disallowPatterns: string[];
1240
+ crawlDelaySeconds: number;
1241
+ hasSitemapDirective: boolean;
1242
+ testUrlBlocked: boolean | null;
1243
+ }, unknown>>;
1244
+ toAiTool(): import("ai").Tool<{
1245
+ origin: string;
1246
+ testUrl?: string | undefined;
1247
+ userAgent?: string | undefined;
1248
+ timeoutMs?: number | undefined;
1249
+ }, import("./types.js").ToolResult<{
1250
+ origin: string;
1251
+ robotsTxtUrl: string;
1252
+ robotsTxtPresent: boolean;
1253
+ disallowPatterns: string[];
1254
+ crawlDelaySeconds: number;
1255
+ hasSitemapDirective: boolean;
1256
+ testUrlBlocked: boolean | null;
1257
+ }>>;
1258
+ run(input: {
1259
+ origin: string;
1260
+ testUrl?: string | undefined;
1261
+ userAgent?: string | undefined;
1262
+ timeoutMs?: number | undefined;
1263
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
1264
+ origin: string;
1265
+ robotsTxtUrl: string;
1266
+ robotsTxtPresent: boolean;
1267
+ disallowPatterns: string[];
1268
+ crawlDelaySeconds: number;
1269
+ hasSitemapDirective: boolean;
1270
+ testUrlBlocked: boolean | null;
1271
+ }>>;
1272
+ };
1273
+ readonly check_indexability: {
1274
+ name: string;
1275
+ description: string;
1276
+ inputSchema: import("zod").ZodType<{
1277
+ pageId: string;
1278
+ xRobotsTagHeader?: string | undefined;
1279
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1280
+ pageId: string;
1281
+ xRobotsTagHeader?: string | undefined;
1282
+ }, unknown>>;
1283
+ outputSchema: import("zod").ZodType<{
1284
+ url: string;
1285
+ indexable: boolean;
1286
+ reasons: string[];
1287
+ metaRobots: string;
1288
+ metaNoindex: boolean;
1289
+ xRobotsNoindex: boolean;
1290
+ canonicalUrl: string;
1291
+ canonicalSelfReferencing: boolean;
1292
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1293
+ url: string;
1294
+ indexable: boolean;
1295
+ reasons: string[];
1296
+ metaRobots: string;
1297
+ metaNoindex: boolean;
1298
+ xRobotsNoindex: boolean;
1299
+ canonicalUrl: string;
1300
+ canonicalSelfReferencing: boolean;
1301
+ }, unknown>>;
1302
+ toAiTool(): import("ai").Tool<{
1303
+ pageId: string;
1304
+ xRobotsTagHeader?: string | undefined;
1305
+ }, import("./types.js").ToolResult<{
1306
+ url: string;
1307
+ indexable: boolean;
1308
+ reasons: string[];
1309
+ metaRobots: string;
1310
+ metaNoindex: boolean;
1311
+ xRobotsNoindex: boolean;
1312
+ canonicalUrl: string;
1313
+ canonicalSelfReferencing: boolean;
1314
+ }>>;
1315
+ run(input: {
1316
+ pageId: string;
1317
+ xRobotsTagHeader?: string | undefined;
1318
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
1319
+ url: string;
1320
+ indexable: boolean;
1321
+ reasons: string[];
1322
+ metaRobots: string;
1323
+ metaNoindex: boolean;
1324
+ xRobotsNoindex: boolean;
1325
+ canonicalUrl: string;
1326
+ canonicalSelfReferencing: boolean;
1327
+ }>>;
1328
+ };
1329
+ readonly validate_jsonld: {
1330
+ name: string;
1331
+ description: string;
1332
+ inputSchema: import("zod").ZodType<{
1333
+ pageId: string;
1334
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1335
+ pageId: string;
1336
+ }, unknown>>;
1337
+ outputSchema: import("zod").ZodType<{
1338
+ url: string;
1339
+ blocks: {
1340
+ index: number;
1341
+ types: string[];
1342
+ hasContext: boolean;
1343
+ missingRequired: string[];
1344
+ ok: boolean;
1345
+ }[];
1346
+ totalBlocks: number;
1347
+ okBlocks: number;
1348
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1349
+ url: string;
1350
+ blocks: {
1351
+ index: number;
1352
+ types: string[];
1353
+ hasContext: boolean;
1354
+ missingRequired: string[];
1355
+ ok: boolean;
1356
+ }[];
1357
+ totalBlocks: number;
1358
+ okBlocks: number;
1359
+ }, unknown>>;
1360
+ toAiTool(): import("ai").Tool<{
1361
+ pageId: string;
1362
+ }, import("./types.js").ToolResult<{
1363
+ url: string;
1364
+ blocks: {
1365
+ index: number;
1366
+ types: string[];
1367
+ hasContext: boolean;
1368
+ missingRequired: string[];
1369
+ ok: boolean;
1370
+ }[];
1371
+ totalBlocks: number;
1372
+ okBlocks: number;
1373
+ }>>;
1374
+ run(input: {
1375
+ pageId: string;
1376
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
1377
+ url: string;
1378
+ blocks: {
1379
+ index: number;
1380
+ types: string[];
1381
+ hasContext: boolean;
1382
+ missingRequired: string[];
1383
+ ok: boolean;
1384
+ }[];
1385
+ totalBlocks: number;
1386
+ okBlocks: number;
1387
+ }>>;
1388
+ };
1389
+ readonly query_serp: {
1390
+ name: string;
1391
+ description: string;
1392
+ inputSchema: import("zod").ZodType<{
1393
+ keyword: string;
1394
+ locale?: string | undefined;
1395
+ language?: string | undefined;
1396
+ num?: number | undefined;
1397
+ apiKey?: string | undefined;
1398
+ cacheDir?: string | undefined;
1399
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1400
+ keyword: string;
1401
+ locale?: string | undefined;
1402
+ language?: string | undefined;
1403
+ num?: number | undefined;
1404
+ apiKey?: string | undefined;
1405
+ cacheDir?: string | undefined;
1406
+ }, unknown>>;
1407
+ outputSchema: import("zod").ZodType<{
1408
+ keyword: string;
1409
+ locale: string;
1410
+ language: string;
1411
+ resultCount: number;
1412
+ organicResults: {
1413
+ position: number;
1414
+ title: string;
1415
+ url: string;
1416
+ snippet: string | null;
1417
+ source: string | null;
1418
+ }[];
1419
+ hasAnswerBox: boolean;
1420
+ hasKnowledgeGraph: boolean;
1421
+ fromCache: boolean;
1422
+ apiCostUsd: number;
1423
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1424
+ keyword: string;
1425
+ locale: string;
1426
+ language: string;
1427
+ resultCount: number;
1428
+ organicResults: {
1429
+ position: number;
1430
+ title: string;
1431
+ url: string;
1432
+ snippet: string | null;
1433
+ source: string | null;
1434
+ }[];
1435
+ hasAnswerBox: boolean;
1436
+ hasKnowledgeGraph: boolean;
1437
+ fromCache: boolean;
1438
+ apiCostUsd: number;
1439
+ }, unknown>>;
1440
+ toAiTool(): import("ai").Tool<{
1441
+ keyword: string;
1442
+ locale?: string | undefined;
1443
+ language?: string | undefined;
1444
+ num?: number | undefined;
1445
+ apiKey?: string | undefined;
1446
+ cacheDir?: string | undefined;
1447
+ }, import("./types.js").ToolResult<{
1448
+ keyword: string;
1449
+ locale: string;
1450
+ language: string;
1451
+ resultCount: number;
1452
+ organicResults: {
1453
+ position: number;
1454
+ title: string;
1455
+ url: string;
1456
+ snippet: string | null;
1457
+ source: string | null;
1458
+ }[];
1459
+ hasAnswerBox: boolean;
1460
+ hasKnowledgeGraph: boolean;
1461
+ fromCache: boolean;
1462
+ apiCostUsd: number;
1463
+ }>>;
1464
+ run(input: {
1465
+ keyword: string;
1466
+ locale?: string | undefined;
1467
+ language?: string | undefined;
1468
+ num?: number | undefined;
1469
+ apiKey?: string | undefined;
1470
+ cacheDir?: string | undefined;
1471
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
1472
+ keyword: string;
1473
+ locale: string;
1474
+ language: string;
1475
+ resultCount: number;
1476
+ organicResults: {
1477
+ position: number;
1478
+ title: string;
1479
+ url: string;
1480
+ snippet: string | null;
1481
+ source: string | null;
1482
+ }[];
1483
+ hasAnswerBox: boolean;
1484
+ hasKnowledgeGraph: boolean;
1485
+ fromCache: boolean;
1486
+ apiCostUsd: number;
1487
+ }>>;
1488
+ };
1489
+ readonly ask_ai_engine: {
1490
+ name: string;
1491
+ description: string;
1492
+ inputSchema: import("zod").ZodType<{
1493
+ engine: "anthropic" | "perplexity" | "gemini";
1494
+ query: string;
1495
+ candidateUrl?: string | undefined;
1496
+ apiKey?: string | undefined;
1497
+ cacheDir?: string | undefined;
1498
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1499
+ engine: "anthropic" | "perplexity" | "gemini";
1500
+ query: string;
1501
+ candidateUrl?: string | undefined;
1502
+ apiKey?: string | undefined;
1503
+ cacheDir?: string | undefined;
1504
+ }, unknown>>;
1505
+ outputSchema: import("zod").ZodType<{
1506
+ engine: "anthropic" | "perplexity" | "gemini";
1507
+ query: string;
1508
+ answer: string;
1509
+ citedUrls: string[];
1510
+ candidateCited: boolean | null;
1511
+ fromCache: boolean;
1512
+ apiCostUsd: number;
1513
+ }, unknown, import("zod/v4/core").$ZodTypeInternals<{
1514
+ engine: "anthropic" | "perplexity" | "gemini";
1515
+ query: string;
1516
+ answer: string;
1517
+ citedUrls: string[];
1518
+ candidateCited: boolean | null;
1519
+ fromCache: boolean;
1520
+ apiCostUsd: number;
1521
+ }, unknown>>;
1522
+ toAiTool(): import("ai").Tool<{
1523
+ engine: "anthropic" | "perplexity" | "gemini";
1524
+ query: string;
1525
+ candidateUrl?: string | undefined;
1526
+ apiKey?: string | undefined;
1527
+ cacheDir?: string | undefined;
1528
+ }, import("./types.js").ToolResult<{
1529
+ engine: "anthropic" | "perplexity" | "gemini";
1530
+ query: string;
1531
+ answer: string;
1532
+ citedUrls: string[];
1533
+ candidateCited: boolean | null;
1534
+ fromCache: boolean;
1535
+ apiCostUsd: number;
1536
+ }>>;
1537
+ run(input: {
1538
+ engine: "anthropic" | "perplexity" | "gemini";
1539
+ query: string;
1540
+ candidateUrl?: string | undefined;
1541
+ apiKey?: string | undefined;
1542
+ cacheDir?: string | undefined;
1543
+ }, ctx?: import("./types.js").ToolExecuteContext): Promise<import("./types.js").ToolResult<{
1544
+ engine: "anthropic" | "perplexity" | "gemini";
1545
+ query: string;
1546
+ answer: string;
1547
+ citedUrls: string[];
1548
+ candidateCited: boolean | null;
1549
+ fromCache: boolean;
1550
+ apiCostUsd: number;
1551
+ }>>;
1552
+ };
1553
+ };
1554
+ export type OrchestratorToolName = keyof typeof orchestratorTools;
1555
+ //# sourceMappingURL=index.d.ts.map