@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,568 @@
1
+ import { z } from "zod";
2
+ declare const manifestSchema: z.ZodObject<{
3
+ domain: z.ZodString;
4
+ verdict: z.ZodEnum<{
5
+ ready: "ready";
6
+ concerning: "concerning";
7
+ critical: "critical";
8
+ caution: "caution";
9
+ }>;
10
+ categories: z.ZodObject<{
11
+ integrity: z.ZodEnum<{
12
+ A: "A";
13
+ B: "B";
14
+ C: "C";
15
+ D: "D";
16
+ F: "F";
17
+ }>;
18
+ discoverability: z.ZodEnum<{
19
+ A: "A";
20
+ B: "B";
21
+ C: "C";
22
+ D: "D";
23
+ F: "F";
24
+ }>;
25
+ citation: z.ZodEnum<{
26
+ A: "A";
27
+ B: "B";
28
+ C: "C";
29
+ D: "D";
30
+ F: "F";
31
+ }>;
32
+ data: z.ZodEnum<{
33
+ A: "A";
34
+ B: "B";
35
+ C: "C";
36
+ D: "D";
37
+ F: "F";
38
+ }>;
39
+ }, z.core.$strip>;
40
+ templates: z.ZodArray<z.ZodObject<{
41
+ templateId: z.ZodString;
42
+ affectedUrlCount: z.ZodNumber;
43
+ recommendation: z.ZodString;
44
+ examples: z.ZodArray<z.ZodObject<{
45
+ url: z.ZodString;
46
+ changes: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
47
+ type: z.ZodLiteral<"replace_h1">;
48
+ before: z.ZodString;
49
+ after: z.ZodString;
50
+ reason: z.ZodString;
51
+ }, z.core.$strip>, z.ZodObject<{
52
+ type: z.ZodLiteral<"rewrite_meta">;
53
+ field: z.ZodEnum<{
54
+ title: "title";
55
+ description: "description";
56
+ }>;
57
+ before: z.ZodString;
58
+ after: z.ZodString;
59
+ reason: z.ZodString;
60
+ }, z.core.$strip>, z.ZodObject<{
61
+ type: z.ZodLiteral<"add_jsonld">;
62
+ block: z.ZodRecord<z.ZodString, z.ZodUnknown>;
63
+ reason: z.ZodString;
64
+ }, z.core.$strip>, z.ZodObject<{
65
+ type: z.ZodLiteral<"add_faq_block">;
66
+ html: z.ZodString;
67
+ reason: z.ZodString;
68
+ }, z.core.$strip>, z.ZodObject<{
69
+ type: z.ZodLiteral<"rewrite_intro">;
70
+ before: z.ZodString;
71
+ after: z.ZodString;
72
+ reason: z.ZodString;
73
+ }, z.core.$strip>, z.ZodObject<{
74
+ type: z.ZodLiteral<"add_internal_link">;
75
+ from: z.ZodString;
76
+ to: z.ZodString;
77
+ anchor: z.ZodString;
78
+ reason: z.ZodString;
79
+ }, z.core.$strip>, z.ZodObject<{
80
+ type: z.ZodLiteral<"remove_thin_block">;
81
+ selector: z.ZodString;
82
+ reason: z.ZodString;
83
+ }, z.core.$strip>], "type">>;
84
+ }, z.core.$strip>>;
85
+ rationale: z.ZodString;
86
+ }, z.core.$strip>>;
87
+ pages: z.ZodArray<z.ZodObject<{
88
+ url: z.ZodString;
89
+ changes: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
90
+ type: z.ZodLiteral<"replace_h1">;
91
+ before: z.ZodString;
92
+ after: z.ZodString;
93
+ reason: z.ZodString;
94
+ }, z.core.$strip>, z.ZodObject<{
95
+ type: z.ZodLiteral<"rewrite_meta">;
96
+ field: z.ZodEnum<{
97
+ title: "title";
98
+ description: "description";
99
+ }>;
100
+ before: z.ZodString;
101
+ after: z.ZodString;
102
+ reason: z.ZodString;
103
+ }, z.core.$strip>, z.ZodObject<{
104
+ type: z.ZodLiteral<"add_jsonld">;
105
+ block: z.ZodRecord<z.ZodString, z.ZodUnknown>;
106
+ reason: z.ZodString;
107
+ }, z.core.$strip>, z.ZodObject<{
108
+ type: z.ZodLiteral<"add_faq_block">;
109
+ html: z.ZodString;
110
+ reason: z.ZodString;
111
+ }, z.core.$strip>, z.ZodObject<{
112
+ type: z.ZodLiteral<"rewrite_intro">;
113
+ before: z.ZodString;
114
+ after: z.ZodString;
115
+ reason: z.ZodString;
116
+ }, z.core.$strip>, z.ZodObject<{
117
+ type: z.ZodLiteral<"add_internal_link">;
118
+ from: z.ZodString;
119
+ to: z.ZodString;
120
+ anchor: z.ZodString;
121
+ reason: z.ZodString;
122
+ }, z.core.$strip>, z.ZodObject<{
123
+ type: z.ZodLiteral<"remove_thin_block">;
124
+ selector: z.ZodString;
125
+ reason: z.ZodString;
126
+ }, z.core.$strip>], "type">>;
127
+ }, z.core.$strip>>;
128
+ domainLevel: z.ZodArray<z.ZodObject<{
129
+ type: z.ZodEnum<{
130
+ robots_txt: "robots_txt";
131
+ sitemap_xml: "sitemap_xml";
132
+ canonical_strategy: "canonical_strategy";
133
+ }>;
134
+ before: z.ZodNullable<z.ZodString>;
135
+ after: z.ZodString;
136
+ reason: z.ZodString;
137
+ }, z.core.$strip>>;
138
+ summary: z.ZodOptional<z.ZodString>;
139
+ }, z.core.$strip>;
140
+ export type FixManifest = z.infer<typeof manifestSchema>;
141
+ /**
142
+ * Terminal tool. The orchestrator MUST call this to close out the session;
143
+ * the runner detects the call and stops the LLM loop. Validation happens
144
+ * via Zod at the tool boundary — a malformed manifest produces an
145
+ * OUTPUT_VALIDATION error and the LLM gets to retry within budget.
146
+ *
147
+ * The execute() body is a no-op acknowledgement; the runner pulls the
148
+ * manifest from the input arg, not the return value. We still emit
149
+ * `accepted: true` as the tool result so the LLM gets confirmation.
150
+ */
151
+ export declare const finishAuditTool: {
152
+ name: string;
153
+ description: string;
154
+ inputSchema: z.ZodType<{
155
+ manifest: {
156
+ domain: string;
157
+ verdict: "ready" | "concerning" | "critical" | "caution";
158
+ categories: {
159
+ integrity: "A" | "B" | "C" | "D" | "F";
160
+ discoverability: "A" | "B" | "C" | "D" | "F";
161
+ citation: "A" | "B" | "C" | "D" | "F";
162
+ data: "A" | "B" | "C" | "D" | "F";
163
+ };
164
+ templates: {
165
+ templateId: string;
166
+ affectedUrlCount: number;
167
+ recommendation: string;
168
+ examples: {
169
+ url: string;
170
+ changes: ({
171
+ type: "replace_h1";
172
+ before: string;
173
+ after: string;
174
+ reason: string;
175
+ } | {
176
+ type: "rewrite_meta";
177
+ field: "title" | "description";
178
+ before: string;
179
+ after: string;
180
+ reason: string;
181
+ } | {
182
+ type: "add_jsonld";
183
+ block: Record<string, unknown>;
184
+ reason: string;
185
+ } | {
186
+ type: "add_faq_block";
187
+ html: string;
188
+ reason: string;
189
+ } | {
190
+ type: "rewrite_intro";
191
+ before: string;
192
+ after: string;
193
+ reason: string;
194
+ } | {
195
+ type: "add_internal_link";
196
+ from: string;
197
+ to: string;
198
+ anchor: string;
199
+ reason: string;
200
+ } | {
201
+ type: "remove_thin_block";
202
+ selector: string;
203
+ reason: string;
204
+ })[];
205
+ }[];
206
+ rationale: string;
207
+ }[];
208
+ pages: {
209
+ url: string;
210
+ changes: ({
211
+ type: "replace_h1";
212
+ before: string;
213
+ after: string;
214
+ reason: string;
215
+ } | {
216
+ type: "rewrite_meta";
217
+ field: "title" | "description";
218
+ before: string;
219
+ after: string;
220
+ reason: string;
221
+ } | {
222
+ type: "add_jsonld";
223
+ block: Record<string, unknown>;
224
+ reason: string;
225
+ } | {
226
+ type: "add_faq_block";
227
+ html: string;
228
+ reason: string;
229
+ } | {
230
+ type: "rewrite_intro";
231
+ before: string;
232
+ after: string;
233
+ reason: string;
234
+ } | {
235
+ type: "add_internal_link";
236
+ from: string;
237
+ to: string;
238
+ anchor: string;
239
+ reason: string;
240
+ } | {
241
+ type: "remove_thin_block";
242
+ selector: string;
243
+ reason: string;
244
+ })[];
245
+ }[];
246
+ domainLevel: {
247
+ type: "robots_txt" | "sitemap_xml" | "canonical_strategy";
248
+ before: string | null;
249
+ after: string;
250
+ reason: string;
251
+ }[];
252
+ summary?: string | undefined;
253
+ };
254
+ }, unknown, z.core.$ZodTypeInternals<{
255
+ manifest: {
256
+ domain: string;
257
+ verdict: "ready" | "concerning" | "critical" | "caution";
258
+ categories: {
259
+ integrity: "A" | "B" | "C" | "D" | "F";
260
+ discoverability: "A" | "B" | "C" | "D" | "F";
261
+ citation: "A" | "B" | "C" | "D" | "F";
262
+ data: "A" | "B" | "C" | "D" | "F";
263
+ };
264
+ templates: {
265
+ templateId: string;
266
+ affectedUrlCount: number;
267
+ recommendation: string;
268
+ examples: {
269
+ url: string;
270
+ changes: ({
271
+ type: "replace_h1";
272
+ before: string;
273
+ after: string;
274
+ reason: string;
275
+ } | {
276
+ type: "rewrite_meta";
277
+ field: "title" | "description";
278
+ before: string;
279
+ after: string;
280
+ reason: string;
281
+ } | {
282
+ type: "add_jsonld";
283
+ block: Record<string, unknown>;
284
+ reason: string;
285
+ } | {
286
+ type: "add_faq_block";
287
+ html: string;
288
+ reason: string;
289
+ } | {
290
+ type: "rewrite_intro";
291
+ before: string;
292
+ after: string;
293
+ reason: string;
294
+ } | {
295
+ type: "add_internal_link";
296
+ from: string;
297
+ to: string;
298
+ anchor: string;
299
+ reason: string;
300
+ } | {
301
+ type: "remove_thin_block";
302
+ selector: string;
303
+ reason: string;
304
+ })[];
305
+ }[];
306
+ rationale: string;
307
+ }[];
308
+ pages: {
309
+ url: string;
310
+ changes: ({
311
+ type: "replace_h1";
312
+ before: string;
313
+ after: string;
314
+ reason: string;
315
+ } | {
316
+ type: "rewrite_meta";
317
+ field: "title" | "description";
318
+ before: string;
319
+ after: string;
320
+ reason: string;
321
+ } | {
322
+ type: "add_jsonld";
323
+ block: Record<string, unknown>;
324
+ reason: string;
325
+ } | {
326
+ type: "add_faq_block";
327
+ html: string;
328
+ reason: string;
329
+ } | {
330
+ type: "rewrite_intro";
331
+ before: string;
332
+ after: string;
333
+ reason: string;
334
+ } | {
335
+ type: "add_internal_link";
336
+ from: string;
337
+ to: string;
338
+ anchor: string;
339
+ reason: string;
340
+ } | {
341
+ type: "remove_thin_block";
342
+ selector: string;
343
+ reason: string;
344
+ })[];
345
+ }[];
346
+ domainLevel: {
347
+ type: "robots_txt" | "sitemap_xml" | "canonical_strategy";
348
+ before: string | null;
349
+ after: string;
350
+ reason: string;
351
+ }[];
352
+ summary?: string | undefined;
353
+ };
354
+ }, unknown>>;
355
+ outputSchema: z.ZodType<{
356
+ accepted: true;
357
+ }, unknown, z.core.$ZodTypeInternals<{
358
+ accepted: true;
359
+ }, unknown>>;
360
+ toAiTool(): import("ai").Tool<{
361
+ manifest: {
362
+ domain: string;
363
+ verdict: "ready" | "concerning" | "critical" | "caution";
364
+ categories: {
365
+ integrity: "A" | "B" | "C" | "D" | "F";
366
+ discoverability: "A" | "B" | "C" | "D" | "F";
367
+ citation: "A" | "B" | "C" | "D" | "F";
368
+ data: "A" | "B" | "C" | "D" | "F";
369
+ };
370
+ templates: {
371
+ templateId: string;
372
+ affectedUrlCount: number;
373
+ recommendation: string;
374
+ examples: {
375
+ url: string;
376
+ changes: ({
377
+ type: "replace_h1";
378
+ before: string;
379
+ after: string;
380
+ reason: string;
381
+ } | {
382
+ type: "rewrite_meta";
383
+ field: "title" | "description";
384
+ before: string;
385
+ after: string;
386
+ reason: string;
387
+ } | {
388
+ type: "add_jsonld";
389
+ block: Record<string, unknown>;
390
+ reason: string;
391
+ } | {
392
+ type: "add_faq_block";
393
+ html: string;
394
+ reason: string;
395
+ } | {
396
+ type: "rewrite_intro";
397
+ before: string;
398
+ after: string;
399
+ reason: string;
400
+ } | {
401
+ type: "add_internal_link";
402
+ from: string;
403
+ to: string;
404
+ anchor: string;
405
+ reason: string;
406
+ } | {
407
+ type: "remove_thin_block";
408
+ selector: string;
409
+ reason: string;
410
+ })[];
411
+ }[];
412
+ rationale: string;
413
+ }[];
414
+ pages: {
415
+ url: string;
416
+ changes: ({
417
+ type: "replace_h1";
418
+ before: string;
419
+ after: string;
420
+ reason: string;
421
+ } | {
422
+ type: "rewrite_meta";
423
+ field: "title" | "description";
424
+ before: string;
425
+ after: string;
426
+ reason: string;
427
+ } | {
428
+ type: "add_jsonld";
429
+ block: Record<string, unknown>;
430
+ reason: string;
431
+ } | {
432
+ type: "add_faq_block";
433
+ html: string;
434
+ reason: string;
435
+ } | {
436
+ type: "rewrite_intro";
437
+ before: string;
438
+ after: string;
439
+ reason: string;
440
+ } | {
441
+ type: "add_internal_link";
442
+ from: string;
443
+ to: string;
444
+ anchor: string;
445
+ reason: string;
446
+ } | {
447
+ type: "remove_thin_block";
448
+ selector: string;
449
+ reason: string;
450
+ })[];
451
+ }[];
452
+ domainLevel: {
453
+ type: "robots_txt" | "sitemap_xml" | "canonical_strategy";
454
+ before: string | null;
455
+ after: string;
456
+ reason: string;
457
+ }[];
458
+ summary?: string | undefined;
459
+ };
460
+ }, import("../tools/types.js").ToolResult<{
461
+ accepted: true;
462
+ }>>;
463
+ run(input: {
464
+ manifest: {
465
+ domain: string;
466
+ verdict: "ready" | "concerning" | "critical" | "caution";
467
+ categories: {
468
+ integrity: "A" | "B" | "C" | "D" | "F";
469
+ discoverability: "A" | "B" | "C" | "D" | "F";
470
+ citation: "A" | "B" | "C" | "D" | "F";
471
+ data: "A" | "B" | "C" | "D" | "F";
472
+ };
473
+ templates: {
474
+ templateId: string;
475
+ affectedUrlCount: number;
476
+ recommendation: string;
477
+ examples: {
478
+ url: string;
479
+ changes: ({
480
+ type: "replace_h1";
481
+ before: string;
482
+ after: string;
483
+ reason: string;
484
+ } | {
485
+ type: "rewrite_meta";
486
+ field: "title" | "description";
487
+ before: string;
488
+ after: string;
489
+ reason: string;
490
+ } | {
491
+ type: "add_jsonld";
492
+ block: Record<string, unknown>;
493
+ reason: string;
494
+ } | {
495
+ type: "add_faq_block";
496
+ html: string;
497
+ reason: string;
498
+ } | {
499
+ type: "rewrite_intro";
500
+ before: string;
501
+ after: string;
502
+ reason: string;
503
+ } | {
504
+ type: "add_internal_link";
505
+ from: string;
506
+ to: string;
507
+ anchor: string;
508
+ reason: string;
509
+ } | {
510
+ type: "remove_thin_block";
511
+ selector: string;
512
+ reason: string;
513
+ })[];
514
+ }[];
515
+ rationale: string;
516
+ }[];
517
+ pages: {
518
+ url: string;
519
+ changes: ({
520
+ type: "replace_h1";
521
+ before: string;
522
+ after: string;
523
+ reason: string;
524
+ } | {
525
+ type: "rewrite_meta";
526
+ field: "title" | "description";
527
+ before: string;
528
+ after: string;
529
+ reason: string;
530
+ } | {
531
+ type: "add_jsonld";
532
+ block: Record<string, unknown>;
533
+ reason: string;
534
+ } | {
535
+ type: "add_faq_block";
536
+ html: string;
537
+ reason: string;
538
+ } | {
539
+ type: "rewrite_intro";
540
+ before: string;
541
+ after: string;
542
+ reason: string;
543
+ } | {
544
+ type: "add_internal_link";
545
+ from: string;
546
+ to: string;
547
+ anchor: string;
548
+ reason: string;
549
+ } | {
550
+ type: "remove_thin_block";
551
+ selector: string;
552
+ reason: string;
553
+ })[];
554
+ }[];
555
+ domainLevel: {
556
+ type: "robots_txt" | "sitemap_xml" | "canonical_strategy";
557
+ before: string | null;
558
+ after: string;
559
+ reason: string;
560
+ }[];
561
+ summary?: string | undefined;
562
+ };
563
+ }, ctx?: import("../tools/types.js").ToolExecuteContext): Promise<import("../tools/types.js").ToolResult<{
564
+ accepted: true;
565
+ }>>;
566
+ };
567
+ export { manifestSchema };
568
+ //# sourceMappingURL=finish-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finish-tool.d.ts","sourceRoot":"","sources":["../../../src/ai/orchestrator/finish-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgFxB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAclB,CAAC;AAUH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEzD;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS1B,CAAC;AAEH,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { z } from "zod";
2
+ import { defineTool } from "../tools/types.js";
3
+ /**
4
+ * Manifest schema. Mirrors the spec at §7.1 of the orchestrator design doc.
5
+ * Patch unions are kept narrow to constrain LLM output — adding a new patch
6
+ * type is an explicit migration here + a new validator in Phase 4.
7
+ */
8
+ const verdictSchema = z.enum(["ready", "caution", "concerning", "critical"]);
9
+ const gradeSchema = z.enum(["A", "B", "C", "D", "F"]);
10
+ const pageChangeSchema = z.discriminatedUnion("type", [
11
+ z.object({
12
+ type: z.literal("replace_h1"),
13
+ before: z.string(),
14
+ after: z.string(),
15
+ reason: z.string(),
16
+ }),
17
+ z.object({
18
+ type: z.literal("rewrite_meta"),
19
+ field: z.enum(["title", "description"]),
20
+ before: z.string(),
21
+ after: z.string(),
22
+ reason: z.string(),
23
+ }),
24
+ z.object({
25
+ type: z.literal("add_jsonld"),
26
+ block: z.record(z.string(), z.unknown()),
27
+ reason: z.string(),
28
+ }),
29
+ z.object({
30
+ type: z.literal("add_faq_block"),
31
+ html: z.string(),
32
+ reason: z.string(),
33
+ }),
34
+ z.object({
35
+ type: z.literal("rewrite_intro"),
36
+ before: z.string(),
37
+ after: z.string(),
38
+ reason: z.string(),
39
+ }),
40
+ z.object({
41
+ type: z.literal("add_internal_link"),
42
+ from: z.string().url(),
43
+ to: z.string().url(),
44
+ anchor: z.string(),
45
+ reason: z.string(),
46
+ }),
47
+ z.object({
48
+ type: z.literal("remove_thin_block"),
49
+ selector: z.string(),
50
+ reason: z.string(),
51
+ }),
52
+ ]);
53
+ const pagePatchSchema = z.object({
54
+ url: z.string().url(),
55
+ changes: z.array(pageChangeSchema),
56
+ });
57
+ const templatePatchSchema = z.object({
58
+ templateId: z.string(),
59
+ affectedUrlCount: z.number().int().nonnegative(),
60
+ recommendation: z.string(),
61
+ examples: z.array(z.object({
62
+ url: z.string().url(),
63
+ changes: z.array(pageChangeSchema),
64
+ })),
65
+ rationale: z.string(),
66
+ });
67
+ const domainPatchSchema = z.object({
68
+ type: z.enum(["robots_txt", "sitemap_xml", "canonical_strategy"]),
69
+ before: z.string().nullable(),
70
+ after: z.string(),
71
+ reason: z.string(),
72
+ });
73
+ const manifestSchema = z.object({
74
+ domain: z.string(),
75
+ verdict: verdictSchema,
76
+ categories: z.object({
77
+ integrity: gradeSchema,
78
+ discoverability: gradeSchema,
79
+ citation: gradeSchema,
80
+ data: gradeSchema,
81
+ }),
82
+ templates: z.array(templatePatchSchema),
83
+ pages: z.array(pagePatchSchema),
84
+ domainLevel: z.array(domainPatchSchema),
85
+ /** Free-text summary for the orchestrator UI. Optional — dashboard can synthesize one. */
86
+ summary: z.string().optional(),
87
+ });
88
+ const inputSchema = z.object({
89
+ manifest: manifestSchema,
90
+ });
91
+ const outputSchema = z.object({
92
+ accepted: z.literal(true),
93
+ });
94
+ /**
95
+ * Terminal tool. The orchestrator MUST call this to close out the session;
96
+ * the runner detects the call and stops the LLM loop. Validation happens
97
+ * via Zod at the tool boundary — a malformed manifest produces an
98
+ * OUTPUT_VALIDATION error and the LLM gets to retry within budget.
99
+ *
100
+ * The execute() body is a no-op acknowledgement; the runner pulls the
101
+ * manifest from the input arg, not the return value. We still emit
102
+ * `accepted: true` as the tool result so the LLM gets confirmation.
103
+ */
104
+ export const finishAuditTool = defineTool({
105
+ name: "finish_audit",
106
+ description: "Terminate the audit session and emit the final fix manifest. Required: call this exactly once, with the full manifest as input. The runner stops the LLM loop on this call. Manifest must include `domain`, `verdict`, `categories`, plus the three patch arrays (templates, pages, domainLevel) — empty arrays are fine when there's nothing actionable in that bucket.",
107
+ inputSchema,
108
+ outputSchema,
109
+ async execute() {
110
+ return { accepted: true };
111
+ },
112
+ });
113
+ export { manifestSchema };
114
+ //# sourceMappingURL=finish-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finish-tool.js","sourceRoot":"","sources":["../../../src/ai/orchestrator/finish-tool.ts"],"names":[],"mappings":"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"}