@wootsup/yt-builder-mcp 1.10.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/README.md +12 -11
  2. package/bin/yt-builder-mcp.js +1 -1
  3. package/dist/auth.d.ts +1 -1
  4. package/dist/auth.js +1 -1
  5. package/dist/catalog/tool-catalog-markdown.d.ts.map +1 -1
  6. package/dist/catalog/tool-catalog-markdown.js +13 -1
  7. package/dist/catalog/tool-catalog-markdown.js.map +1 -1
  8. package/dist/cli/doctor-command.d.ts.map +1 -1
  9. package/dist/cli/doctor-command.js +22 -2
  10. package/dist/cli/doctor-command.js.map +1 -1
  11. package/dist/client.d.ts +3 -3
  12. package/dist/client.js +1 -1
  13. package/dist/client.js.map +1 -1
  14. package/dist/clients/index.d.ts +1 -1
  15. package/dist/clients/index.js +1 -1
  16. package/dist/diagnostics/ca-reexec.js +2 -2
  17. package/dist/diagnostics/diagnose-network-error.d.ts +1 -1
  18. package/dist/diagnostics/doctor.d.ts +34 -2
  19. package/dist/diagnostics/doctor.d.ts.map +1 -1
  20. package/dist/diagnostics/doctor.js +63 -2
  21. package/dist/diagnostics/doctor.js.map +1 -1
  22. package/dist/diagnostics/startup-self-probe.js +1 -1
  23. package/dist/gateway/advanced-read-tool.d.ts.map +1 -1
  24. package/dist/gateway/advanced-read-tool.js +14 -2
  25. package/dist/gateway/advanced-read-tool.js.map +1 -1
  26. package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -1
  27. package/dist/gateway/advanced-tool/discovery.js +12 -1
  28. package/dist/gateway/advanced-tool/discovery.js.map +1 -1
  29. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
  30. package/dist/gateway/advanced-tool/domains.js +5 -0
  31. package/dist/gateway/advanced-tool/domains.js.map +1 -1
  32. package/dist/gateway/advanced-tool/execute.d.ts +7 -1
  33. package/dist/gateway/advanced-tool/execute.d.ts.map +1 -1
  34. package/dist/gateway/advanced-tool/execute.js +58 -4
  35. package/dist/gateway/advanced-tool/execute.js.map +1 -1
  36. package/dist/gateway/essentials.d.ts +4 -4
  37. package/dist/gateway/essentials.d.ts.map +1 -1
  38. package/dist/gateway/essentials.js +12 -7
  39. package/dist/gateway/essentials.js.map +1 -1
  40. package/dist/install-skill.js +1 -1
  41. package/dist/net/extra-headers.d.ts +1 -1
  42. package/dist/net/extra-headers.js +1 -1
  43. package/dist/net/internal-host.js +2 -2
  44. package/dist/net/proxy-dispatcher.js +1 -1
  45. package/dist/net/proxy-dispatcher.js.map +1 -1
  46. package/dist/net/site-basic-auth.d.ts +2 -2
  47. package/dist/net/site-basic-auth.js +2 -2
  48. package/dist/proxy/bridge.d.ts +2 -2
  49. package/dist/proxy/bridge.js +3 -3
  50. package/dist/proxy/bridge.js.map +1 -1
  51. package/dist/server.d.ts +3 -3
  52. package/dist/server.js +3 -3
  53. package/dist/setup-cli.d.ts +2 -2
  54. package/dist/setup-cli.js +2 -2
  55. package/dist/setup-cli.js.map +1 -1
  56. package/dist/setup-npx-spec.d.ts +1 -1
  57. package/dist/setup-npx-spec.js +1 -1
  58. package/dist/setup-wizard-handshake.js +1 -1
  59. package/dist/setup-wizard-types.d.ts +1 -1
  60. package/dist/setup-wizard.js +3 -3
  61. package/dist/setup-wizard.js.map +1 -1
  62. package/dist/sites/client-pool.d.ts +1 -1
  63. package/dist/sites/client-pool.js +1 -1
  64. package/dist/sites/tools/sites-list.d.ts.map +1 -1
  65. package/dist/sites/tools/sites-list.js +26 -4
  66. package/dist/sites/tools/sites-list.js.map +1 -1
  67. package/dist/sites/tools/sites-test.js +1 -1
  68. package/dist/sites/tools/sites-test.js.map +1 -1
  69. package/dist/sites/tools/use-site.js +2 -2
  70. package/dist/sites/tools/use-site.js.map +1 -1
  71. package/dist/tools/budgeted-table.d.ts +21 -0
  72. package/dist/tools/budgeted-table.d.ts.map +1 -0
  73. package/dist/tools/budgeted-table.js +137 -0
  74. package/dist/tools/budgeted-table.js.map +1 -0
  75. package/dist/tools/elements/builders.d.ts.map +1 -1
  76. package/dist/tools/elements/builders.js +102 -40
  77. package/dist/tools/elements/builders.js.map +1 -1
  78. package/dist/tools/elements/handlers-write.d.ts +21 -0
  79. package/dist/tools/elements/handlers-write.d.ts.map +1 -1
  80. package/dist/tools/elements/handlers-write.js +231 -11
  81. package/dist/tools/elements/handlers-write.js.map +1 -1
  82. package/dist/tools/elements/handlers.d.ts +20 -12
  83. package/dist/tools/elements/handlers.d.ts.map +1 -1
  84. package/dist/tools/elements/handlers.js +77 -26
  85. package/dist/tools/elements/handlers.js.map +1 -1
  86. package/dist/tools/elements/schema-validation.d.ts +147 -7
  87. package/dist/tools/elements/schema-validation.d.ts.map +1 -1
  88. package/dist/tools/elements/schema-validation.js +508 -28
  89. package/dist/tools/elements/schema-validation.js.map +1 -1
  90. package/dist/tools/format/elements-format.d.ts.map +1 -1
  91. package/dist/tools/format/elements-format.js +56 -12
  92. package/dist/tools/format/elements-format.js.map +1 -1
  93. package/dist/tools/format/health-format.d.ts +16 -0
  94. package/dist/tools/format/health-format.d.ts.map +1 -1
  95. package/dist/tools/format/health-format.js +9 -0
  96. package/dist/tools/format/health-format.js.map +1 -1
  97. package/dist/tools/format/inspection-format.d.ts +7 -0
  98. package/dist/tools/format/inspection-format.d.ts.map +1 -1
  99. package/dist/tools/format/inspection-format.js +18 -0
  100. package/dist/tools/format/inspection-format.js.map +1 -1
  101. package/dist/tools/format/pages-format.d.ts +1 -1
  102. package/dist/tools/format/pages-format.d.ts.map +1 -1
  103. package/dist/tools/format/pages-format.js +7 -0
  104. package/dist/tools/format/pages-format.js.map +1 -1
  105. package/dist/tools/format/sources-format.d.ts +12 -5
  106. package/dist/tools/format/sources-format.d.ts.map +1 -1
  107. package/dist/tools/format/sources-format.js +31 -6
  108. package/dist/tools/format/sources-format.js.map +1 -1
  109. package/dist/tools/health.d.ts.map +1 -1
  110. package/dist/tools/health.js +85 -11
  111. package/dist/tools/health.js.map +1 -1
  112. package/dist/tools/index.d.ts.map +1 -1
  113. package/dist/tools/index.js +7 -0
  114. package/dist/tools/index.js.map +1 -1
  115. package/dist/tools/inspection.d.ts +34 -0
  116. package/dist/tools/inspection.d.ts.map +1 -1
  117. package/dist/tools/inspection.js +666 -62
  118. package/dist/tools/inspection.js.map +1 -1
  119. package/dist/tools/layout-flatten.d.ts +7 -1
  120. package/dist/tools/layout-flatten.d.ts.map +1 -1
  121. package/dist/tools/layout-flatten.js +24 -13
  122. package/dist/tools/layout-flatten.js.map +1 -1
  123. package/dist/tools/library.d.ts +29 -2
  124. package/dist/tools/library.d.ts.map +1 -1
  125. package/dist/tools/library.js +247 -34
  126. package/dist/tools/library.js.map +1 -1
  127. package/dist/tools/local-content/builders.js +14 -14
  128. package/dist/tools/local-content/builders.js.map +1 -1
  129. package/dist/tools/local-content/handlers.d.ts +3 -1
  130. package/dist/tools/local-content/handlers.d.ts.map +1 -1
  131. package/dist/tools/local-content/handlers.js +42 -9
  132. package/dist/tools/local-content/handlers.js.map +1 -1
  133. package/dist/tools/local-content/schemas.d.ts +9 -4
  134. package/dist/tools/local-content/schemas.d.ts.map +1 -1
  135. package/dist/tools/local-content/schemas.js +14 -6
  136. package/dist/tools/local-content/schemas.js.map +1 -1
  137. package/dist/tools/multi-items/builders.d.ts.map +1 -1
  138. package/dist/tools/multi-items/builders.js +11 -10
  139. package/dist/tools/multi-items/builders.js.map +1 -1
  140. package/dist/tools/navigation/builders.d.ts +18 -0
  141. package/dist/tools/navigation/builders.d.ts.map +1 -0
  142. package/dist/tools/navigation/builders.js +47 -0
  143. package/dist/tools/navigation/builders.js.map +1 -0
  144. package/dist/tools/navigation/handlers.d.ts +30 -0
  145. package/dist/tools/navigation/handlers.d.ts.map +1 -0
  146. package/dist/tools/navigation/handlers.js +41 -0
  147. package/dist/tools/navigation/handlers.js.map +1 -0
  148. package/dist/tools/navigation/index.d.ts +15 -0
  149. package/dist/tools/navigation/index.d.ts.map +1 -0
  150. package/dist/tools/navigation/index.js +14 -0
  151. package/dist/tools/navigation/index.js.map +1 -0
  152. package/dist/tools/navigation/schemas.d.ts +46 -0
  153. package/dist/tools/navigation/schemas.d.ts.map +1 -0
  154. package/dist/tools/navigation/schemas.js +41 -0
  155. package/dist/tools/navigation/schemas.js.map +1 -0
  156. package/dist/tools/pages/builders.d.ts.map +1 -1
  157. package/dist/tools/pages/builders.js +213 -81
  158. package/dist/tools/pages/builders.js.map +1 -1
  159. package/dist/tools/pages/handlers-audit.d.ts +112 -3
  160. package/dist/tools/pages/handlers-audit.d.ts.map +1 -1
  161. package/dist/tools/pages/handlers-audit.js +623 -7
  162. package/dist/tools/pages/handlers-audit.js.map +1 -1
  163. package/dist/tools/pages/handlers-read.d.ts +51 -8
  164. package/dist/tools/pages/handlers-read.d.ts.map +1 -1
  165. package/dist/tools/pages/handlers-read.js +348 -69
  166. package/dist/tools/pages/handlers-read.js.map +1 -1
  167. package/dist/tools/pages/handlers-write.d.ts +7 -3
  168. package/dist/tools/pages/handlers-write.d.ts.map +1 -1
  169. package/dist/tools/pages/handlers-write.js +69 -25
  170. package/dist/tools/pages/handlers-write.js.map +1 -1
  171. package/dist/tools/pages/header-transparency.d.ts +64 -0
  172. package/dist/tools/pages/header-transparency.d.ts.map +1 -0
  173. package/dist/tools/pages/header-transparency.js +119 -0
  174. package/dist/tools/pages/header-transparency.js.map +1 -0
  175. package/dist/tools/pages/schemas.d.ts +284 -13
  176. package/dist/tools/pages/schemas.d.ts.map +1 -1
  177. package/dist/tools/pages/schemas.js +434 -26
  178. package/dist/tools/pages/schemas.js.map +1 -1
  179. package/dist/tools/pages/target.d.ts +162 -0
  180. package/dist/tools/pages/target.d.ts.map +1 -0
  181. package/dist/tools/pages/target.js +239 -0
  182. package/dist/tools/pages/target.js.map +1 -0
  183. package/dist/tools/response-budget.d.ts +77 -0
  184. package/dist/tools/response-budget.d.ts.map +1 -0
  185. package/dist/tools/response-budget.js +134 -0
  186. package/dist/tools/response-budget.js.map +1 -0
  187. package/dist/tools/shared-schemas.d.ts +45 -0
  188. package/dist/tools/shared-schemas.d.ts.map +1 -1
  189. package/dist/tools/shared-schemas.js +50 -0
  190. package/dist/tools/shared-schemas.js.map +1 -1
  191. package/dist/tools/sources/builders.d.ts.map +1 -1
  192. package/dist/tools/sources/builders.js +55 -39
  193. package/dist/tools/sources/builders.js.map +1 -1
  194. package/dist/tools/sources/handlers-bind.d.ts +10 -11
  195. package/dist/tools/sources/handlers-bind.d.ts.map +1 -1
  196. package/dist/tools/sources/handlers-bind.js +110 -9
  197. package/dist/tools/sources/handlers-bind.js.map +1 -1
  198. package/dist/tools/sources/handlers.d.ts +4 -2
  199. package/dist/tools/sources/handlers.d.ts.map +1 -1
  200. package/dist/tools/sources/handlers.js +11 -7
  201. package/dist/tools/sources/handlers.js.map +1 -1
  202. package/dist/tools/sparse-fields.d.ts +61 -8
  203. package/dist/tools/sparse-fields.d.ts.map +1 -1
  204. package/dist/tools/sparse-fields.js +124 -12
  205. package/dist/tools/sparse-fields.js.map +1 -1
  206. package/dist/tools/sublayout/builders.d.ts.map +1 -1
  207. package/dist/tools/sublayout/builders.js +1 -2
  208. package/dist/tools/sublayout/builders.js.map +1 -1
  209. package/dist/tools/tool-builder/results.d.ts +19 -6
  210. package/dist/tools/tool-builder/results.d.ts.map +1 -1
  211. package/dist/tools/tool-builder/results.js +133 -6
  212. package/dist/tools/tool-builder/results.js.map +1 -1
  213. package/manifest.json +1 -1
  214. package/package.json +2 -2
  215. package/skills/yt-builder-mcp/SKILL.md +1713 -72
@@ -38,19 +38,34 @@ export declare const ETAG_OUTPUT_SCHEMA: z.ZodObject<{
38
38
  generated_at: z.ZodOptional<z.ZodString>;
39
39
  }, z.core.$strip>;
40
40
  export declare const TEMPLATE_SUMMARY_OUTPUT_SCHEMA: z.ZodObject<{
41
- template_id: z.ZodString;
42
- counts_by_type: z.ZodRecord<z.ZodString, z.ZodNumber>;
43
- bound_count: z.ZodNumber;
44
- max_depth: z.ZodNumber;
45
- total: z.ZodNumber;
46
- named_sections: z.ZodArray<z.ZodObject<{
41
+ template_id: z.ZodOptional<z.ZodString>;
42
+ counts_by_type: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
43
+ bound_count: z.ZodOptional<z.ZodNumber>;
44
+ max_depth: z.ZodOptional<z.ZodNumber>;
45
+ total: z.ZodOptional<z.ZodNumber>;
46
+ named_sections: z.ZodOptional<z.ZodArray<z.ZodObject<{
47
47
  path: z.ZodString;
48
48
  name: z.ZodString;
49
- }, z.core.$strip>>;
49
+ }, z.core.$strip>>>;
50
50
  heading_levels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
51
+ heading_levels_note: z.ZodOptional<z.ZodString>;
51
52
  images_missing_alt: z.ZodOptional<z.ZodNumber>;
52
53
  disabled_elements: z.ZodOptional<z.ZodNumber>;
53
- etag: z.ZodString;
54
+ already_dynamized: z.ZodOptional<z.ZodBoolean>;
55
+ is_theme_template: z.ZodOptional<z.ZodBoolean>;
56
+ etag: z.ZodOptional<z.ZodString>;
57
+ content_nodes: z.ZodOptional<z.ZodArray<z.ZodObject<{
58
+ path: z.ZodString;
59
+ type: z.ZodString;
60
+ status: z.ZodBoolean;
61
+ effective_visible: z.ZodBoolean;
62
+ hidden_on_mobile: z.ZodBoolean;
63
+ headings: z.ZodArray<z.ZodString>;
64
+ alts: z.ZodArray<z.ZodString>;
65
+ }, z.core.$strip>>>;
66
+ next_cursor: z.ZodOptional<z.ZodString>;
67
+ summaries: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
68
+ not_found: z.ZodOptional<z.ZodArray<z.ZodString>>;
54
69
  }, z.core.$strip>;
55
70
  /**
56
71
  * Input shape for `yootheme_builder_pages_create`.
@@ -202,6 +217,7 @@ export declare const PAGE_DYNAMIZE_INPUT: {
202
217
  menu_item: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
203
218
  }, z.core.$strip>;
204
219
  etag: z.ZodOptional<z.ZodString>;
220
+ dry_run: z.ZodOptional<z.ZodBoolean>;
205
221
  };
206
222
  /**
207
223
  * Wire shape for `yootheme_builder_pages_delete` on success.
@@ -219,19 +235,76 @@ export declare const PAGES_DELETE_OUTPUT_SCHEMA: z.ZodObject<{
219
235
  new_etag: z.ZodOptional<z.ZodString>;
220
236
  changed_paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
221
237
  }, z.core.$strip>;
238
+ /**
239
+ * The five addressing keys, in the order they are documented + put on the
240
+ * wire. SSOT for both the `matched_by` echo enum and the runtime iteration in
241
+ * `./target.ts`.
242
+ */
243
+ export declare const TARGET_KEYS: readonly ["template_id", "post_id", "url", "special", "title"];
244
+ /**
245
+ * The semantic-special vocabulary, byte-identical to PHP `SpecialTargetMap`'s
246
+ * key set. `date` is IN the vocabulary but unsupported on both platforms — it
247
+ * resolves to a clean `special_not_supported` error rather than "unknown
248
+ * special", which is why it is listed here.
249
+ */
250
+ export declare const SPECIAL_TARGET_TOKENS: readonly ["home", "front-page", "blog", "search", "404", "category", "tag", "author", "archive", "date"];
251
+ export declare const PAGES_TARGET: z.ZodObject<{
252
+ template_id: z.ZodOptional<z.ZodString>;
253
+ post_id: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
254
+ url: z.ZodOptional<z.ZodString>;
255
+ special: z.ZodOptional<z.ZodEnum<{
256
+ date: "date";
257
+ search: "search";
258
+ author: "author";
259
+ home: "home";
260
+ "front-page": "front-page";
261
+ blog: "blog";
262
+ 404: "404";
263
+ category: "category";
264
+ tag: "tag";
265
+ archive: "archive";
266
+ }>>;
267
+ title: z.ZodOptional<z.ZodString>;
268
+ }, z.core.$strip>;
222
269
  export declare const PAGES_RESOLVE_INPUT: {
223
- readonly url: z.ZodString;
270
+ readonly url: z.ZodOptional<z.ZodString>;
271
+ readonly target: z.ZodOptional<z.ZodObject<{
272
+ template_id: z.ZodOptional<z.ZodString>;
273
+ post_id: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
274
+ url: z.ZodOptional<z.ZodString>;
275
+ special: z.ZodOptional<z.ZodEnum<{
276
+ date: "date";
277
+ search: "search";
278
+ author: "author";
279
+ home: "home";
280
+ "front-page": "front-page";
281
+ blog: "blog";
282
+ 404: "404";
283
+ category: "category";
284
+ tag: "tag";
285
+ archive: "archive";
286
+ }>>;
287
+ title: z.ZodOptional<z.ZodString>;
288
+ }, z.core.$strip>>;
224
289
  };
225
290
  export declare const PAGES_RESOLVE_OUTPUT_SCHEMA: z.ZodObject<{
226
291
  template_id: z.ZodString;
227
292
  post_id: z.ZodNullable<z.ZodNumber>;
228
293
  type: z.ZodString;
294
+ label: z.ZodOptional<z.ZodString>;
229
295
  frontend_url: z.ZodNullable<z.ZodString>;
230
296
  context: z.ZodNullable<z.ZodString>;
231
297
  resolved_via: z.ZodEnum<{
232
298
  per_page: "per_page";
233
299
  theme_template: "theme_template";
234
300
  }>;
301
+ matched_by: z.ZodOptional<z.ZodEnum<{
302
+ url: "url";
303
+ title: "title";
304
+ template_id: "template_id";
305
+ post_id: "post_id";
306
+ special: "special";
307
+ }>>;
235
308
  }, z.core.$strip>;
236
309
  /**
237
310
  * Wire shape for `yootheme_builder_render_preview` on success.
@@ -249,7 +322,7 @@ export declare const PAGES_RESOLVE_OUTPUT_SCHEMA: z.ZodObject<{
249
322
  * - cache_purge_hint: the constant operator steer (purge Rocket/CDN after save).
250
323
  * - template_id: echoed back (the resolved id the render ran on).
251
324
  * - matched: OPTIONAL — present ONLY when the caller passed `expect`; did the
252
- * rendered HTML contain that substring (Glöckle HANDOFF-6 #4).
325
+ * rendered HTML contain that substring (customer HANDOFF-6 #4).
253
326
  * - snippet: OPTIONAL — present ONLY when the caller passed `expect`; a
254
327
  * ~200-char window around the first match (or null when not
255
328
  * matched / the render threw). NULLABLE so the no-match case
@@ -265,12 +338,109 @@ export declare const RENDER_PREVIEW_OUTPUT_SCHEMA: z.ZodObject<{
265
338
  matched: z.ZodOptional<z.ZodBoolean>;
266
339
  snippet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
267
340
  }, z.core.$strip>;
341
+ /**
342
+ * Wire shape for `yootheme_builder_heading_outline` on success.
343
+ *
344
+ * STRICT (additionalProperties:false default ZodObject) — every field the
345
+ * handler puts in structuredContent MUST be declared here, or a strict MCP
346
+ * host -32602-rejects the SUCCESS.
347
+ *
348
+ * - outline: every H1-H6 heading, in TRUE document order, each carrying its
349
+ * TEXT and the source element that carries it (`element_type`/`path`).
350
+ * - images: every image this pass sees (populated OR empty alt) — `alt` is
351
+ * null for a missing/empty alt, the raw string otherwise; `is_generic_alt`
352
+ * flags an exact match against the same generic-phrase list pages_audit's
353
+ * `generic-alt-text` check uses ("logo", "image", "photo", ...).
354
+ * - h1_count / has_level_skip / images_missing_alt: derived flags —
355
+ * has_level_skip mirrors pages_audit's `heading-skip` check EXACTLY (a
356
+ * level more than one above the highest seen so far, including a
357
+ * document that OPENS below h1).
358
+ */
359
+ export declare const HEADING_OUTLINE_OUTPUT_SCHEMA: z.ZodObject<{
360
+ template_id: z.ZodString;
361
+ mode: z.ZodEnum<{
362
+ rendered: "rendered";
363
+ builder: "builder";
364
+ }>;
365
+ etag: z.ZodString;
366
+ outline: z.ZodArray<z.ZodObject<{
367
+ level: z.ZodString;
368
+ text: z.ZodString;
369
+ element_type: z.ZodString;
370
+ path: z.ZodString;
371
+ }, z.core.$strip>>;
372
+ images: z.ZodArray<z.ZodObject<{
373
+ alt: z.ZodNullable<z.ZodString>;
374
+ is_generic_alt: z.ZodBoolean;
375
+ element_type: z.ZodString;
376
+ path: z.ZodString;
377
+ }, z.core.$strip>>;
378
+ h1_count: z.ZodNumber;
379
+ has_level_skip: z.ZodBoolean;
380
+ images_missing_alt: z.ZodNumber;
381
+ }, z.core.$strip>;
382
+ /**
383
+ * The human-locatable address of ONE audit hit (B-3/B-5) — mirrors the PHP
384
+ * `FindingLocator::toArray()` wire shape. `path` stays the machine write
385
+ * address; `breadcrumb`/`element_type`/`element_name` are what a HUMAN needs
386
+ * to find the element in the customizer. Per the PHP null-key policy the
387
+ * optional members are OMITTED rather than sent as null.
388
+ *
389
+ * FAIL-SOFT BY CONSTRUCTION. `pages[]` rows used to ride through
390
+ * `.catchall(z.unknown())` untyped; now that `locators` is a typed array, a
391
+ * mismatch is no longer stripped — the MCP SDK THROWS `McpError`
392
+ * (InvalidParams) on an outputSchema violation, which fails the WHOLE audit
393
+ * call. So the optional members are `.nullish()` (an explicit `null` from a
394
+ * host that does not honour the omit-nulls policy must not be fatal) and the
395
+ * object carries a `.catchall`, so a field a future host version adds can
396
+ * never hard-fail an otherwise perfectly good audit.
397
+ *
398
+ * `repeat` is the one deliberately STRICT member: PHP emits it clamped to
399
+ * `>= 1` (`repeat: 0` is meaningless — a hit that renders zero times is not a
400
+ * hit), so `min(1)` states the real contract rather than tolerating a value
401
+ * that could only mean a producer bug.
402
+ */
403
+ export declare const FINDING_LOCATOR: z.ZodObject<{
404
+ path: z.ZodString;
405
+ breadcrumb: z.ZodString;
406
+ element_type: z.ZodString;
407
+ element_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
408
+ heading_source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
409
+ content_snippet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
410
+ repeat: z.ZodNumber;
411
+ prop: z.ZodOptional<z.ZodNullable<z.ZodString>>;
412
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
413
+ }, z.core.$catchall<z.ZodUnknown>>;
268
414
  /**
269
415
  * One audit finding. `pages` carries per-page mini-evidence whose KEYS vary
270
416
  * by check code (`first_headline_path`, `alt_paths`, `cluster_id`,
271
417
  * `iterated`, `disabled_elements`, `elements_content`, ...) — `.catchall`
272
418
  * keeps every row's base `{id, label}` typed while tolerating the
273
419
  * check-specific extras without a per-code union.
420
+ *
421
+ * The ADDITIVE B-3/B-5 keys (`locators`, `hits_truncated`,
422
+ * `locators_stripped`, `builder_url`) are declared EXPLICITLY for
423
+ * self-documentation — the `.catchall` already tolerated them, but a named
424
+ * member states the contract. All stay `.optional()`: a host plugin predating
425
+ * B-3 emits none of them.
426
+ *
427
+ * `frontend_url` (T-B1, 2026-07-24) rides alongside `builder_url` on EVERY
428
+ * page entry now, not just the nine element-located "hit" checks — a
429
+ * theme/archive template with no public route legitimately omits it (never
430
+ * emitted as `null`), same convention as `builder_url`.
431
+ *
432
+ * `hits_truncated` and `locators_stripped` mean DIFFERENT things and are never
433
+ * interchangeable: the former says the upstream `hit_cap` dropped hits (so the
434
+ * raw `paths`/`alt_paths`/`skips`/`dead_anchors` arrays are incomplete), the
435
+ * latter says the transport's shrink-to-fit shed locator PROSE while leaving
436
+ * those arrays complete.
437
+ *
438
+ * FORWARD-COMPAT `.catchall`, for the same reason `FINDING_LOCATOR` carries one:
439
+ * the handler forwards each finding VERBATIM, and a strict object generates
440
+ * `additionalProperties:false`, so ONE additive field on the PHP side (an
441
+ * explicit hit total, a new evidence key) would make a strict host -32602-reject
442
+ * an otherwise perfect audit. Every declared member is still validated; only
443
+ * UNDECLARED ones ride through untyped.
274
444
  */
275
445
  export declare const FINDING: z.ZodObject<{
276
446
  code: z.ZodString;
@@ -279,6 +449,7 @@ export declare const FINDING: z.ZodObject<{
279
449
  seo: "seo";
280
450
  structure: "structure";
281
451
  links: "links";
452
+ design: "design";
282
453
  }>;
283
454
  severity: z.ZodEnum<{
284
455
  warning: "warning";
@@ -290,6 +461,22 @@ export declare const FINDING: z.ZodObject<{
290
461
  pages: z.ZodArray<z.ZodObject<{
291
462
  id: z.ZodString;
292
463
  label: z.ZodString;
464
+ locators: z.ZodOptional<z.ZodArray<z.ZodObject<{
465
+ path: z.ZodString;
466
+ breadcrumb: z.ZodString;
467
+ element_type: z.ZodString;
468
+ element_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
469
+ heading_source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
470
+ content_snippet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
471
+ repeat: z.ZodNumber;
472
+ prop: z.ZodOptional<z.ZodNullable<z.ZodString>>;
473
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
474
+ }, z.core.$catchall<z.ZodUnknown>>>>;
475
+ hits: z.ZodOptional<z.ZodNumber>;
476
+ hits_truncated: z.ZodOptional<z.ZodBoolean>;
477
+ locators_stripped: z.ZodOptional<z.ZodBoolean>;
478
+ builder_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
479
+ frontend_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
293
480
  }, z.core.$catchall<z.ZodUnknown>>>;
294
481
  pages_truncated: z.ZodBoolean;
295
482
  fix_hint: z.ZodOptional<z.ZodObject<{
@@ -297,7 +484,7 @@ export declare const FINDING: z.ZodObject<{
297
484
  args_template: z.ZodRecord<z.ZodString, z.ZodUnknown>;
298
485
  note: z.ZodString;
299
486
  }, z.core.$strip>>;
300
- }, z.core.$strip>;
487
+ }, z.core.$catchall<z.ZodUnknown>>;
301
488
  /**
302
489
  * The advisory block `page_publish` (default on) / `page_save`
303
490
  * (opt-in via `quick_check:true`) attach (Task 8). Design §7: `{clean:true}`
@@ -313,6 +500,7 @@ export declare const QUICK_CHECK: z.ZodObject<{
313
500
  seo: "seo";
314
501
  structure: "structure";
315
502
  links: "links";
503
+ design: "design";
316
504
  }>;
317
505
  severity: z.ZodEnum<{
318
506
  warning: "warning";
@@ -324,6 +512,22 @@ export declare const QUICK_CHECK: z.ZodObject<{
324
512
  pages: z.ZodArray<z.ZodObject<{
325
513
  id: z.ZodString;
326
514
  label: z.ZodString;
515
+ locators: z.ZodOptional<z.ZodArray<z.ZodObject<{
516
+ path: z.ZodString;
517
+ breadcrumb: z.ZodString;
518
+ element_type: z.ZodString;
519
+ element_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
520
+ heading_source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
521
+ content_snippet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
522
+ repeat: z.ZodNumber;
523
+ prop: z.ZodOptional<z.ZodNullable<z.ZodString>>;
524
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
525
+ }, z.core.$catchall<z.ZodUnknown>>>>;
526
+ hits: z.ZodOptional<z.ZodNumber>;
527
+ hits_truncated: z.ZodOptional<z.ZodBoolean>;
528
+ locators_stripped: z.ZodOptional<z.ZodBoolean>;
529
+ builder_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
530
+ frontend_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
327
531
  }, z.core.$catchall<z.ZodUnknown>>>;
328
532
  pages_truncated: z.ZodBoolean;
329
533
  fix_hint: z.ZodOptional<z.ZodObject<{
@@ -331,7 +535,7 @@ export declare const QUICK_CHECK: z.ZodObject<{
331
535
  args_template: z.ZodRecord<z.ZodString, z.ZodUnknown>;
332
536
  note: z.ZodString;
333
537
  }, z.core.$strip>>;
334
- }, z.core.$strip>>>;
538
+ }, z.core.$catchall<z.ZodUnknown>>>>;
335
539
  note: z.ZodOptional<z.ZodString>;
336
540
  }, z.core.$strip>;
337
541
  /**
@@ -339,16 +543,40 @@ export declare const QUICK_CHECK: z.ZodObject<{
339
543
  * spread in separately by `builders.ts` (mirrors PAGES_RESOLVE_INPUT).
340
544
  */
341
545
  export declare const PAGES_AUDIT_INPUT: {
546
+ mode: z.ZodOptional<z.ZodEnum<{
547
+ rendered: "rendered";
548
+ builder: "builder";
549
+ }>>;
550
+ target: z.ZodOptional<z.ZodObject<{
551
+ template_id: z.ZodOptional<z.ZodString>;
552
+ post_id: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
553
+ url: z.ZodOptional<z.ZodString>;
554
+ special: z.ZodOptional<z.ZodEnum<{
555
+ date: "date";
556
+ search: "search";
557
+ author: "author";
558
+ home: "home";
559
+ "front-page": "front-page";
560
+ blog: "blog";
561
+ 404: "404";
562
+ category: "category";
563
+ tag: "tag";
564
+ archive: "archive";
565
+ }>>;
566
+ title: z.ZodOptional<z.ZodString>;
567
+ }, z.core.$strip>>;
342
568
  types: z.ZodOptional<z.ZodArray<z.ZodString>>;
343
569
  checks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
344
570
  content: "content";
345
571
  seo: "seo";
346
572
  structure: "structure";
347
573
  links: "links";
574
+ design: "design";
348
575
  }>>>;
349
576
  thin_content_threshold: z.ZodOptional<z.ZodNumber>;
350
577
  stale_after_months: z.ZodOptional<z.ZodNumber>;
351
578
  max_chars: z.ZodOptional<z.ZodNumber>;
579
+ include_meta: z.ZodDefault<z.ZodBoolean>;
352
580
  };
353
581
  /**
354
582
  * Wire shape for `yootheme_builder_pages_audit` (design §5). `scanned.by_type`
@@ -358,6 +586,18 @@ export declare const PAGES_AUDIT_INPUT: {
358
586
  */
359
587
  export declare const PAGES_AUDIT_OUTPUT_SCHEMA: z.ZodObject<{
360
588
  etag: z.ZodString;
589
+ scope: z.ZodOptional<z.ZodString>;
590
+ note: z.ZodOptional<z.ZodString>;
591
+ resolved_target: z.ZodOptional<z.ZodObject<{
592
+ template_id: z.ZodOptional<z.ZodString>;
593
+ post_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
594
+ type: z.ZodOptional<z.ZodString>;
595
+ label: z.ZodOptional<z.ZodString>;
596
+ frontend_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
597
+ context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
598
+ resolved_via: z.ZodOptional<z.ZodString>;
599
+ matched_by: z.ZodOptional<z.ZodString>;
600
+ }, z.core.$strip>>;
361
601
  scanned: z.ZodObject<{
362
602
  templates: z.ZodNumber;
363
603
  by_type: z.ZodRecord<z.ZodString, z.ZodNumber>;
@@ -374,6 +614,7 @@ export declare const PAGES_AUDIT_OUTPUT_SCHEMA: z.ZodObject<{
374
614
  seo: "seo";
375
615
  structure: "structure";
376
616
  links: "links";
617
+ design: "design";
377
618
  }>;
378
619
  severity: z.ZodEnum<{
379
620
  warning: "warning";
@@ -385,6 +626,22 @@ export declare const PAGES_AUDIT_OUTPUT_SCHEMA: z.ZodObject<{
385
626
  pages: z.ZodArray<z.ZodObject<{
386
627
  id: z.ZodString;
387
628
  label: z.ZodString;
629
+ locators: z.ZodOptional<z.ZodArray<z.ZodObject<{
630
+ path: z.ZodString;
631
+ breadcrumb: z.ZodString;
632
+ element_type: z.ZodString;
633
+ element_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
634
+ heading_source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
635
+ content_snippet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
636
+ repeat: z.ZodNumber;
637
+ prop: z.ZodOptional<z.ZodNullable<z.ZodString>>;
638
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
639
+ }, z.core.$catchall<z.ZodUnknown>>>>;
640
+ hits: z.ZodOptional<z.ZodNumber>;
641
+ hits_truncated: z.ZodOptional<z.ZodBoolean>;
642
+ locators_stripped: z.ZodOptional<z.ZodBoolean>;
643
+ builder_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
644
+ frontend_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
388
645
  }, z.core.$catchall<z.ZodUnknown>>>;
389
646
  pages_truncated: z.ZodBoolean;
390
647
  fix_hint: z.ZodOptional<z.ZodObject<{
@@ -392,7 +649,21 @@ export declare const PAGES_AUDIT_OUTPUT_SCHEMA: z.ZodObject<{
392
649
  args_template: z.ZodRecord<z.ZodString, z.ZodUnknown>;
393
650
  note: z.ZodString;
394
651
  }, z.core.$strip>>;
395
- }, z.core.$strip>>;
652
+ }, z.core.$catchall<z.ZodUnknown>>>;
396
653
  disclaimer: z.ZodString;
654
+ structured_truncated: z.ZodOptional<z.ZodBoolean>;
655
+ mode: z.ZodOptional<z.ZodEnum<{
656
+ rendered: "rendered";
657
+ }>>;
658
+ render_scan: z.ZodOptional<z.ZodObject<{
659
+ attempted: z.ZodNumber;
660
+ rendered: z.ZodNumber;
661
+ capped: z.ZodBoolean;
662
+ }, z.core.$strip>>;
663
+ render_errors: z.ZodOptional<z.ZodArray<z.ZodObject<{
664
+ id: z.ZodString;
665
+ label: z.ZodString;
666
+ error: z.ZodString;
667
+ }, z.core.$strip>>>;
397
668
  }, z.core.$strip>;
398
669
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,wBAAwB;;;;;;;;;;iBA6CnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBA8B/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAWH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;iBAuBzC,CAAC;AAWH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;CAiE9B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBA2BlC,CAAC;AAEN;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;iBAe7C,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB;;;;CAoB9B,CAAC;AAmCF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqI/B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;iBAoBlC,CAAC;AAIN,eAAO,MAAM,mBAAmB;;CAStB,CAAC;AAEX,eAAO,MAAM,2BAA2B;;;;;;;;;;iBAqBtC,CAAC;AASH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;iBAavC,CAAC;AAUH;;;;;;GAMG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBlB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAItB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAqCU,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAapC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,wBAAwB;;;;;;;;;;iBA6CnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBA8B/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AA6BH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwEzC,CAAC;AAWH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;CAiE9B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBA2BlC,CAAC;AAEN;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;iBAe7C,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB;;;;CAoB9B,CAAC;AAmCF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiJ/B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;iBAoBlC,CAAC;AAkBN;;;;GAIG;AACH,eAAO,MAAM,WAAW,gEAAiE,CAAC;AAE1F;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,0GAWxB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;iBA4CpB,CAAC;AAEN,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;CAmBtB,CAAC;AAEX,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;iBA+BtC,CAAC;AASH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;iBAavC,CAAC;AAgBH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;iBAuBxC,CAAC;AAUH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;kCAYF,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAoCI,CAAC;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAItB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkGU,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0EpC,CAAC"}