@wootsup/yt-builder-mcp 1.9.0 → 1.11.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 (111) hide show
  1. package/README.md +19 -10
  2. package/dist/gateway/advanced-read-tool.d.ts.map +1 -1
  3. package/dist/gateway/advanced-read-tool.js +14 -2
  4. package/dist/gateway/advanced-read-tool.js.map +1 -1
  5. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
  6. package/dist/gateway/advanced-tool/domains.js +5 -0
  7. package/dist/gateway/advanced-tool/domains.js.map +1 -1
  8. package/dist/gateway/advanced-tool/execute.d.ts +7 -1
  9. package/dist/gateway/advanced-tool/execute.d.ts.map +1 -1
  10. package/dist/gateway/advanced-tool/execute.js +58 -4
  11. package/dist/gateway/advanced-tool/execute.js.map +1 -1
  12. package/dist/server.d.ts +14 -11
  13. package/dist/server.d.ts.map +1 -1
  14. package/dist/server.js +14 -11
  15. package/dist/server.js.map +1 -1
  16. package/dist/sites/tools/sites-list.d.ts.map +1 -1
  17. package/dist/sites/tools/sites-list.js +22 -2
  18. package/dist/sites/tools/sites-list.js.map +1 -1
  19. package/dist/tools/elements/builders.d.ts.map +1 -1
  20. package/dist/tools/elements/builders.js +69 -31
  21. package/dist/tools/elements/builders.js.map +1 -1
  22. package/dist/tools/elements/handlers-write.d.ts +2 -0
  23. package/dist/tools/elements/handlers-write.d.ts.map +1 -1
  24. package/dist/tools/elements/handlers-write.js +132 -9
  25. package/dist/tools/elements/handlers-write.js.map +1 -1
  26. package/dist/tools/elements/handlers.d.ts +7 -4
  27. package/dist/tools/elements/handlers.d.ts.map +1 -1
  28. package/dist/tools/elements/handlers.js +49 -8
  29. package/dist/tools/elements/handlers.js.map +1 -1
  30. package/dist/tools/elements/schema-validation.d.ts +18 -0
  31. package/dist/tools/elements/schema-validation.d.ts.map +1 -1
  32. package/dist/tools/elements/schema-validation.js +49 -5
  33. package/dist/tools/elements/schema-validation.js.map +1 -1
  34. package/dist/tools/format/sources-format.d.ts +12 -5
  35. package/dist/tools/format/sources-format.d.ts.map +1 -1
  36. package/dist/tools/format/sources-format.js +31 -6
  37. package/dist/tools/format/sources-format.js.map +1 -1
  38. package/dist/tools/health.d.ts.map +1 -1
  39. package/dist/tools/health.js +18 -5
  40. package/dist/tools/health.js.map +1 -1
  41. package/dist/tools/inspection.d.ts.map +1 -1
  42. package/dist/tools/inspection.js +81 -12
  43. package/dist/tools/inspection.js.map +1 -1
  44. package/dist/tools/layout-flatten.d.ts +7 -1
  45. package/dist/tools/layout-flatten.d.ts.map +1 -1
  46. package/dist/tools/layout-flatten.js +24 -13
  47. package/dist/tools/layout-flatten.js.map +1 -1
  48. package/dist/tools/library.d.ts +23 -0
  49. package/dist/tools/library.d.ts.map +1 -1
  50. package/dist/tools/library.js +213 -15
  51. package/dist/tools/library.js.map +1 -1
  52. package/dist/tools/local-content/builders.js +11 -11
  53. package/dist/tools/local-content/builders.js.map +1 -1
  54. package/dist/tools/local-content/handlers.d.ts.map +1 -1
  55. package/dist/tools/local-content/handlers.js +34 -5
  56. package/dist/tools/local-content/handlers.js.map +1 -1
  57. package/dist/tools/local-content/schemas.d.ts +9 -4
  58. package/dist/tools/local-content/schemas.d.ts.map +1 -1
  59. package/dist/tools/local-content/schemas.js +14 -6
  60. package/dist/tools/local-content/schemas.js.map +1 -1
  61. package/dist/tools/multi-items/builders.d.ts.map +1 -1
  62. package/dist/tools/multi-items/builders.js +11 -8
  63. package/dist/tools/multi-items/builders.js.map +1 -1
  64. package/dist/tools/pages/builders.d.ts.map +1 -1
  65. package/dist/tools/pages/builders.js +122 -46
  66. package/dist/tools/pages/builders.js.map +1 -1
  67. package/dist/tools/pages/handlers-audit.d.ts +129 -0
  68. package/dist/tools/pages/handlers-audit.d.ts.map +1 -0
  69. package/dist/tools/pages/handlers-audit.js +704 -0
  70. package/dist/tools/pages/handlers-audit.js.map +1 -0
  71. package/dist/tools/pages/handlers-read.d.ts +8 -3
  72. package/dist/tools/pages/handlers-read.d.ts.map +1 -1
  73. package/dist/tools/pages/handlers-read.js +172 -25
  74. package/dist/tools/pages/handlers-read.js.map +1 -1
  75. package/dist/tools/pages/handlers-write.d.ts +17 -3
  76. package/dist/tools/pages/handlers-write.d.ts.map +1 -1
  77. package/dist/tools/pages/handlers-write.js +79 -26
  78. package/dist/tools/pages/handlers-write.js.map +1 -1
  79. package/dist/tools/pages/index.d.ts +5 -1
  80. package/dist/tools/pages/index.d.ts.map +1 -1
  81. package/dist/tools/pages/index.js +5 -1
  82. package/dist/tools/pages/index.js.map +1 -1
  83. package/dist/tools/pages/schemas.d.ts +319 -1
  84. package/dist/tools/pages/schemas.d.ts.map +1 -1
  85. package/dist/tools/pages/schemas.js +340 -4
  86. package/dist/tools/pages/schemas.js.map +1 -1
  87. package/dist/tools/pages/target.d.ts +162 -0
  88. package/dist/tools/pages/target.d.ts.map +1 -0
  89. package/dist/tools/pages/target.js +239 -0
  90. package/dist/tools/pages/target.js.map +1 -0
  91. package/dist/tools/shared-schemas.d.ts +22 -0
  92. package/dist/tools/shared-schemas.d.ts.map +1 -1
  93. package/dist/tools/shared-schemas.js +22 -0
  94. package/dist/tools/shared-schemas.js.map +1 -1
  95. package/dist/tools/sources/builders.d.ts.map +1 -1
  96. package/dist/tools/sources/builders.js +46 -28
  97. package/dist/tools/sources/builders.js.map +1 -1
  98. package/dist/tools/sources/handlers-bind.d.ts +7 -8
  99. package/dist/tools/sources/handlers-bind.d.ts.map +1 -1
  100. package/dist/tools/sources/handlers-bind.js +106 -7
  101. package/dist/tools/sources/handlers-bind.js.map +1 -1
  102. package/dist/tools/sparse-fields.d.ts +12 -0
  103. package/dist/tools/sparse-fields.d.ts.map +1 -1
  104. package/dist/tools/sparse-fields.js +34 -2
  105. package/dist/tools/sparse-fields.js.map +1 -1
  106. package/dist/tools/tool-builder/results.d.ts.map +1 -1
  107. package/dist/tools/tool-builder/results.js +114 -0
  108. package/dist/tools/tool-builder/results.js.map +1 -1
  109. package/manifest.json +1 -1
  110. package/package.json +1 -1
  111. package/skills/yt-builder-mcp/SKILL.md +735 -44
@@ -14,10 +14,11 @@
14
14
  import { detailResult } from '@getimo/mcp-toolkit';
15
15
  import { z } from 'zod';
16
16
  import { encodeTemplateId } from '../../client.js';
17
+ import { RestError } from '../../errors.js';
17
18
  import { PHASE_CONFIRM, PHASE_SEND, PHASE_SERVER } from '../progress-phases.js';
18
19
  import { createProgressReporter, errorResult, jsonResult, structuredResult, } from '../tool-builder.js';
19
20
  // ─── page_save ──────────────────────────────────────────────────────
20
- export async function handlePageSave(client, { template_id, etag, layout, dry_run }, extra) {
21
+ export async function handlePageSave(client, { template_id, etag, layout, dry_run, quick_check }, extra) {
21
22
  const progress = extra ? createProgressReporter(extra) : null;
22
23
  await progress?.report(0, 3, PHASE_SEND);
23
24
  await progress?.report(1, 3, PHASE_SERVER);
@@ -25,11 +26,14 @@ export async function handlePageSave(client, { template_id, etag, layout, dry_ru
25
26
  // F85: forward `layout` only when supplied so the historical save
26
27
  // body (`{}`) is byte-unchanged for the re-run-transforms path.
27
28
  // U3/F3: forward `dry_run` only when set (a preflight, no persist).
29
+ // Task 8: forward `quick_check` only when set (opt-in for save).
28
30
  const body = {};
29
31
  if (layout !== undefined)
30
32
  body.layout = layout;
31
33
  if (dry_run !== undefined)
32
34
  body.dry_run = dry_run;
35
+ if (quick_check !== undefined)
36
+ body.quick_check = quick_check;
33
37
  const data = await client.post(`/pages/${encodeTemplateId(template_id)}/save`, Object.keys(body).length > 0 ? { body, etag } : { etag });
34
38
  await progress?.report(2, 3, PHASE_CONFIRM);
35
39
  // U3/F3+F4: the REST response shape is freeform (no strict
@@ -43,9 +47,11 @@ export async function handlePageSave(client, { template_id, etag, layout, dry_ru
43
47
  return errorResult({
44
48
  error: e,
45
49
  context: { template_id, etag, dry_run: dry_run ?? false },
46
- hint: 'On 412 (precondition failed) refresh via yootheme_builder_get_etag ' +
47
- 'and retry someone else edited the page. On 422 the supplied ' +
48
- '`layout` failed validation: ' +
50
+ hint: 'On 412 (precondition failed) the CURRENT ETag is already in this ' +
51
+ 'errorretry immediately with the `current_etag` field (or the ' +
52
+ 'value in the "current resource ETag (…)" message); only call ' +
53
+ 'yootheme_builder_get_etag if you also need to re-read the layout. ' +
54
+ 'On 422 the supplied `layout` failed validation: ' +
49
55
  // U3/F1 — the double-nest reject. The single most common cause:
50
56
  // feeding page_get_layout`s `.layout` (the FULL template node)
51
57
  // back in verbatim.
@@ -94,12 +100,19 @@ function withCmsWarningText(result, data) {
94
100
  content: [...result.content, { type: 'text', text: warning }],
95
101
  };
96
102
  }
97
- export async function handlePagePublish(client, { template_id, etag }, extra) {
103
+ export async function handlePagePublish(client, { template_id, etag, quick_check }, extra) {
98
104
  const progress = extra ? createProgressReporter(extra) : null;
99
105
  await progress?.report(0, 3, PHASE_SEND);
100
106
  await progress?.report(1, 3, PHASE_SERVER);
101
107
  try {
102
- const data = await client.post(`/pages/${encodeTemplateId(template_id)}/publish`, { etag });
108
+ // Task 8: the publish QuickCheck is DEFAULT ON server-side. Forward a
109
+ // body ONLY when the caller explicitly set `quick_check` (`false` to
110
+ // opt out) so the historical `{ etag }`-only shape is byte-unchanged
111
+ // for the common default-on path.
112
+ const body = {};
113
+ if (quick_check !== undefined)
114
+ body.quick_check = quick_check;
115
+ const data = await client.post(`/pages/${encodeTemplateId(template_id)}/publish`, Object.keys(body).length > 0 ? { body, etag } : { etag });
103
116
  await progress?.report(2, 3, PHASE_CONFIRM);
104
117
  return withCmsWarningText(jsonResult(data), data);
105
118
  }
@@ -107,8 +120,10 @@ export async function handlePagePublish(client, { template_id, etag }, extra) {
107
120
  return errorResult({
108
121
  error: e,
109
122
  context: { template_id, etag },
110
- hint: 'On 412 (precondition failed) refresh via yootheme_builder_get_etag ' +
111
- 'and retry.',
123
+ hint: 'On 412 (precondition failed) the CURRENT ETag is already in this ' +
124
+ 'error retry immediately with the `current_etag` field (or the ' +
125
+ 'value in the "current resource ETag (…)" message); only call ' +
126
+ 'yootheme_builder_get_etag if you also need to re-read the layout.',
112
127
  });
113
128
  }
114
129
  }
@@ -167,22 +182,39 @@ export async function handlePagesCreate(client, input, extra) {
167
182
  slug: input.slug,
168
183
  dry_run: input.dry_run ?? false,
169
184
  },
170
- hint: 'Common issues: missing title (400), unknown element type in layout ' +
171
- '(422), Builder pre-check failed (422 dry-run or wet), post_type/content_type ' +
172
- 'other than page/article (403). For dry-run: re-submit without dry_run:true ' +
173
- 'to actually create. ' +
174
- // F95 (2026-06-10): a `body_parse_failed` 400 means the AI host
175
- // TRUNCATED the arguments JSON in transit (a known failure mode
176
- // for large inline `layout` payloads ~10KB+). Do NOT retry the
177
- // same giant all-in-one create — create the page with a
178
- // small/empty layout first, then build it up element-by-element.
179
- 'On a `body_parse_failed` 400 the tool-call arguments were truncated in ' +
180
- 'transit (large inline `layout`): create the page with an empty/small ' +
181
- 'layout, then add elements one at a time via element_add / ' +
182
- 'element_bind_source instead of one giant inline `layout`.',
185
+ hint: pagesCreateHint(e),
183
186
  });
184
187
  }
185
188
  }
189
+ /**
190
+ * SOURCES_BINDING-20 — status-aware catch hint for `pages_create`.
191
+ *
192
+ * A 403 is a CAPABILITY denial (the resolved CMS user lacks core.create) — the
193
+ * SAME key keeps being denied, so the generic "re-submit without dry_run:true to
194
+ * actually create" advice directly CONTRADICTS the failure (a wet retry is
195
+ * denied identically). On a 403 give capability-specific guidance and NO
196
+ * dry-run/re-submit advice; keep the create/body-parse guidance for the other
197
+ * status classes it actually describes.
198
+ */
199
+ function pagesCreateHint(e) {
200
+ if (e instanceof RestError && e.status === 403) {
201
+ return ('A 403 is a CAPABILITY denial, not a retryable error — re-submitting the same ' +
202
+ 'request (wet or dry-run) is denied identically. The resolved CMS user lacks the ' +
203
+ 'create capability (WordPress publish_pages / edit_pages, Joomla core.create on ' +
204
+ 'com_content). Resolve/elevate the user behind this Bearer key, or verify the ACL, ' +
205
+ 'then retry. Run yootheme_builder_diagnose to check auth + which user this key maps to.');
206
+ }
207
+ return ('Common issues: missing title (400), unknown element type in layout ' +
208
+ '(422), Builder pre-check failed (422 dry-run or wet). For dry-run: re-submit ' +
209
+ 'without dry_run:true to actually create. ' +
210
+ // F95 (2026-06-10): a `body_parse_failed` 400 means the AI host TRUNCATED
211
+ // the arguments JSON in transit (a known failure mode for large inline
212
+ // `layout` payloads ~10KB+). Create with a small/empty layout first.
213
+ 'On a `body_parse_failed` 400 the tool-call arguments were truncated in ' +
214
+ 'transit (large inline `layout`): create the page with an empty/small ' +
215
+ 'layout, then add elements one at a time via element_add / ' +
216
+ 'element_bind_source instead of one giant inline `layout`.');
217
+ }
186
218
  /**
187
219
  * The recency reminder appended to every successful dynamize (research:
188
220
  * checklist echo — keeps the "verify visually" step salient even in a
@@ -302,10 +334,18 @@ export const TEMPLATE_SET_TYPE_OUTPUT_SCHEMA = z.object({
302
334
  type: z.string(),
303
335
  // The PRIOR assignment (the read of the current type, folded in).
304
336
  previous_type: z.string(),
305
- // The ETag the write was performed against (the If-Match the caller sent).
337
+ // SOURCES_BINDING-16: the POST-WRITE ETag (== new_etag) always safe to
338
+ // chain into the next write (was the pre-write input etag, which 412'd).
339
+ // On a dry_run nothing persists, so etag == new_etag == the current ETag.
306
340
  etag: z.string(),
307
341
  // The bumped ETag after the write — pass as `etag` on the next write.
308
342
  new_etag: z.string(),
343
+ // PAGES_LIBRARY_MEDIA-14: present + true ONLY on a dry_run preflight (the
344
+ // re-type was validated + previewed but NOT persisted).
345
+ dry_run: z.boolean().optional(),
346
+ // PAGES_LIBRARY_MEDIA-14: whether the (dry-run) re-type would actually
347
+ // change the stored assignment (`type !== previous_type`).
348
+ would_change: z.boolean().optional(),
309
349
  });
310
350
  /**
311
351
  * N3 — SET a theme template's archive/single TYPE assignment in ONE ETag-locked
@@ -315,22 +355,35 @@ export const TEMPLATE_SET_TYPE_OUTPUT_SCHEMA = z.object({
315
355
  * assignment into the response as `previous_type`. Theme-template-only — a
316
356
  * per-page/article id is refused (422) by the controller.
317
357
  */
318
- export async function handleTemplateSetType(client, { template_id, type, etag }, extra) {
358
+ export async function handleTemplateSetType(client, { template_id, type, etag, dry_run }, extra) {
319
359
  const progress = extra ? createProgressReporter(extra) : null;
320
360
  await progress?.report(0, 3, PHASE_SEND);
321
361
  await progress?.report(1, 3, PHASE_SERVER);
322
362
  try {
323
- const data = await client.post(`/pages/${encodeTemplateId(template_id)}/type`, { body: { type }, etag });
363
+ const data = await client.post(`/pages/${encodeTemplateId(template_id)}/type`,
364
+ // PAGES_LIBRARY_MEDIA-14: forward `dry_run` only when set so an
365
+ // ordinary re-type stays byte-identical; the PHP branch previews
366
+ // without persisting.
367
+ { body: { type, ...(dry_run ? { dry_run: true } : {}) }, etag });
324
368
  await progress?.report(2, 3, PHASE_CONFIRM);
325
369
  // Project to exactly the strict output-schema keys so structuredContent
326
370
  // never carries an undeclared key (a strict host -32602-rejects extras).
327
371
  // Fall back to request/sane values so the shape is always complete.
372
+ // SOURCES_BINDING-16: `etag` = the POST-WRITE etag (chainable), not the input.
373
+ const newEtag = typeof data.new_etag === 'string' ? data.new_etag : '';
374
+ const postWriteEtag = newEtag !== '' ? newEtag : (typeof data.etag === 'string' ? data.etag : etag);
328
375
  const structured = {
329
376
  template_id: typeof data.template_id === 'string' ? data.template_id : template_id,
330
377
  type: typeof data.type === 'string' ? data.type : type,
331
378
  previous_type: typeof data.previous_type === 'string' ? data.previous_type : '',
332
- etag: typeof data.etag === 'string' ? data.etag : etag,
333
- new_etag: typeof data.new_etag === 'string' ? data.new_etag : '',
379
+ etag: postWriteEtag,
380
+ new_etag: newEtag,
381
+ // PAGES_LIBRARY_MEDIA-14: surface the dry-run preview flags when the
382
+ // PHP branch returned them (absent on a real persisted write).
383
+ ...(typeof data.dry_run === 'boolean' ? { dry_run: data.dry_run } : {}),
384
+ ...(typeof data.would_change === 'boolean'
385
+ ? { would_change: data.would_change }
386
+ : {}),
334
387
  };
335
388
  const toolkitResult = detailResult({
336
389
  title: 'Template type reassigned',
@@ -1 +1 @@
1
- {"version":3,"file":"handlers-write.js","sourceRoot":"","sources":["../../../src/tools/pages/handlers-write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers-write.js","sourceRoot":"","sources":["../../../src/tools/pages/handlers-write.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,12 @@
10
10
  *
11
11
  * Round-2 R2-A2-CRIT1 — split out of the original `src/tools/pages.ts`.
12
12
  *
13
+ * Task 6 (pages_audit design, 2026-07-19) added `yootheme_builder_pages_audit`
14
+ * (handler in the dedicated `./handlers-audit.js`, not `handlers-read.ts`).
15
+ *
13
16
  * @license MIT
14
17
  */
15
18
  export { buildPagesTools } from './builders.js';
16
- export { ETAG_OUTPUT_SCHEMA, PAGE_DYNAMIZE_INPUT, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
19
+ export { handlePagesAudit, type PagesAuditArgs } from './handlers-audit.js';
20
+ export { ETAG_OUTPUT_SCHEMA, FINDING, PAGE_DYNAMIZE_INPUT, PAGES_AUDIT_INPUT, PAGES_AUDIT_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, QUICK_CHECK, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
17
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACH,kBAAkB,EAClB,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,WAAW,EACX,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
@@ -10,8 +10,12 @@
10
10
  *
11
11
  * Round-2 R2-A2-CRIT1 — split out of the original `src/tools/pages.ts`.
12
12
  *
13
+ * Task 6 (pages_audit design, 2026-07-19) added `yootheme_builder_pages_audit`
14
+ * (handler in the dedicated `./handlers-audit.js`, not `handlers-read.ts`).
15
+ *
13
16
  * @license MIT
14
17
  */
15
18
  export { buildPagesTools } from './builders.js';
16
- export { ETAG_OUTPUT_SCHEMA, PAGE_DYNAMIZE_INPUT, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
19
+ export { handlePagesAudit } from './handlers-audit.js';
20
+ export { ETAG_OUTPUT_SCHEMA, FINDING, PAGE_DYNAMIZE_INPUT, PAGES_AUDIT_INPUT, PAGES_AUDIT_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, QUICK_CHECK, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
17
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAuB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACH,kBAAkB,EAClB,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,WAAW,EACX,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
@@ -47,6 +47,9 @@ export declare const TEMPLATE_SUMMARY_OUTPUT_SCHEMA: z.ZodObject<{
47
47
  path: z.ZodString;
48
48
  name: z.ZodString;
49
49
  }, z.core.$strip>>;
50
+ heading_levels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
51
+ images_missing_alt: z.ZodOptional<z.ZodNumber>;
52
+ disabled_elements: z.ZodOptional<z.ZodNumber>;
50
53
  etag: z.ZodString;
51
54
  }, z.core.$strip>;
52
55
  /**
@@ -199,6 +202,7 @@ export declare const PAGE_DYNAMIZE_INPUT: {
199
202
  menu_item: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
200
203
  }, z.core.$strip>;
201
204
  etag: z.ZodOptional<z.ZodString>;
205
+ dry_run: z.ZodOptional<z.ZodBoolean>;
202
206
  };
203
207
  /**
204
208
  * Wire shape for `yootheme_builder_pages_delete` on success.
@@ -216,19 +220,76 @@ export declare const PAGES_DELETE_OUTPUT_SCHEMA: z.ZodObject<{
216
220
  new_etag: z.ZodOptional<z.ZodString>;
217
221
  changed_paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
218
222
  }, z.core.$strip>;
223
+ /**
224
+ * The five addressing keys, in the order they are documented + put on the
225
+ * wire. SSOT for both the `matched_by` echo enum and the runtime iteration in
226
+ * `./target.ts`.
227
+ */
228
+ export declare const TARGET_KEYS: readonly ["template_id", "post_id", "url", "special", "title"];
229
+ /**
230
+ * The semantic-special vocabulary, byte-identical to PHP `SpecialTargetMap`'s
231
+ * key set. `date` is IN the vocabulary but unsupported on both platforms — it
232
+ * resolves to a clean `special_not_supported` error rather than "unknown
233
+ * special", which is why it is listed here.
234
+ */
235
+ export declare const SPECIAL_TARGET_TOKENS: readonly ["home", "front-page", "blog", "search", "404", "category", "tag", "author", "archive", "date"];
236
+ export declare const PAGES_TARGET: z.ZodObject<{
237
+ template_id: z.ZodOptional<z.ZodString>;
238
+ post_id: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
239
+ url: z.ZodOptional<z.ZodString>;
240
+ special: z.ZodOptional<z.ZodEnum<{
241
+ date: "date";
242
+ search: "search";
243
+ author: "author";
244
+ home: "home";
245
+ "front-page": "front-page";
246
+ blog: "blog";
247
+ 404: "404";
248
+ category: "category";
249
+ tag: "tag";
250
+ archive: "archive";
251
+ }>>;
252
+ title: z.ZodOptional<z.ZodString>;
253
+ }, z.core.$strip>;
219
254
  export declare const PAGES_RESOLVE_INPUT: {
220
- readonly url: z.ZodString;
255
+ readonly url: z.ZodOptional<z.ZodString>;
256
+ readonly target: z.ZodOptional<z.ZodObject<{
257
+ template_id: z.ZodOptional<z.ZodString>;
258
+ post_id: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
259
+ url: z.ZodOptional<z.ZodString>;
260
+ special: z.ZodOptional<z.ZodEnum<{
261
+ date: "date";
262
+ search: "search";
263
+ author: "author";
264
+ home: "home";
265
+ "front-page": "front-page";
266
+ blog: "blog";
267
+ 404: "404";
268
+ category: "category";
269
+ tag: "tag";
270
+ archive: "archive";
271
+ }>>;
272
+ title: z.ZodOptional<z.ZodString>;
273
+ }, z.core.$strip>>;
221
274
  };
222
275
  export declare const PAGES_RESOLVE_OUTPUT_SCHEMA: z.ZodObject<{
223
276
  template_id: z.ZodString;
224
277
  post_id: z.ZodNullable<z.ZodNumber>;
225
278
  type: z.ZodString;
279
+ label: z.ZodOptional<z.ZodString>;
226
280
  frontend_url: z.ZodNullable<z.ZodString>;
227
281
  context: z.ZodNullable<z.ZodString>;
228
282
  resolved_via: z.ZodEnum<{
229
283
  per_page: "per_page";
230
284
  theme_template: "theme_template";
231
285
  }>;
286
+ matched_by: z.ZodOptional<z.ZodEnum<{
287
+ url: "url";
288
+ title: "title";
289
+ template_id: "template_id";
290
+ post_id: "post_id";
291
+ special: "special";
292
+ }>>;
232
293
  }, z.core.$strip>;
233
294
  /**
234
295
  * Wire shape for `yootheme_builder_render_preview` on success.
@@ -262,4 +323,261 @@ export declare const RENDER_PREVIEW_OUTPUT_SCHEMA: z.ZodObject<{
262
323
  matched: z.ZodOptional<z.ZodBoolean>;
263
324
  snippet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
264
325
  }, z.core.$strip>;
326
+ /**
327
+ * The human-locatable address of ONE audit hit (B-3/B-5) — mirrors the PHP
328
+ * `FindingLocator::toArray()` wire shape. `path` stays the machine write
329
+ * address; `breadcrumb`/`element_type`/`element_name` are what a HUMAN needs
330
+ * to find the element in the customizer. Per the PHP null-key policy the
331
+ * optional members are OMITTED rather than sent as null.
332
+ *
333
+ * FAIL-SOFT BY CONSTRUCTION. `pages[]` rows used to ride through
334
+ * `.catchall(z.unknown())` untyped; now that `locators` is a typed array, a
335
+ * mismatch is no longer stripped — the MCP SDK THROWS `McpError`
336
+ * (InvalidParams) on an outputSchema violation, which fails the WHOLE audit
337
+ * call. So the optional members are `.nullish()` (an explicit `null` from a
338
+ * host that does not honour the omit-nulls policy must not be fatal) and the
339
+ * object carries a `.catchall`, so a field a future host version adds can
340
+ * never hard-fail an otherwise perfectly good audit.
341
+ *
342
+ * `repeat` is the one deliberately STRICT member: PHP emits it clamped to
343
+ * `>= 1` (`repeat: 0` is meaningless — a hit that renders zero times is not a
344
+ * hit), so `min(1)` states the real contract rather than tolerating a value
345
+ * that could only mean a producer bug.
346
+ */
347
+ export declare const FINDING_LOCATOR: z.ZodObject<{
348
+ path: z.ZodString;
349
+ breadcrumb: z.ZodString;
350
+ element_type: z.ZodString;
351
+ element_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
352
+ heading_source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
353
+ content_snippet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
354
+ repeat: z.ZodNumber;
355
+ prop: z.ZodOptional<z.ZodNullable<z.ZodString>>;
356
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
357
+ }, z.core.$catchall<z.ZodUnknown>>;
358
+ /**
359
+ * One audit finding. `pages` carries per-page mini-evidence whose KEYS vary
360
+ * by check code (`first_headline_path`, `alt_paths`, `cluster_id`,
361
+ * `iterated`, `disabled_elements`, `elements_content`, ...) — `.catchall`
362
+ * keeps every row's base `{id, label}` typed while tolerating the
363
+ * check-specific extras without a per-code union.
364
+ *
365
+ * The ADDITIVE B-3/B-5 keys (`locators`, `hits_truncated`,
366
+ * `locators_stripped`, `builder_url`) are declared EXPLICITLY for
367
+ * self-documentation — the `.catchall` already tolerated them, but a named
368
+ * member states the contract. All stay `.optional()`: a host plugin predating
369
+ * B-3 emits none of them.
370
+ *
371
+ * `hits_truncated` and `locators_stripped` mean DIFFERENT things and are never
372
+ * interchangeable: the former says the upstream `hit_cap` dropped hits (so the
373
+ * raw `paths`/`alt_paths`/`skips`/`dead_anchors` arrays are incomplete), the
374
+ * latter says the transport's shrink-to-fit shed locator PROSE while leaving
375
+ * those arrays complete.
376
+ *
377
+ * FORWARD-COMPAT `.catchall`, for the same reason `FINDING_LOCATOR` carries one:
378
+ * the handler forwards each finding VERBATIM, and a strict object generates
379
+ * `additionalProperties:false`, so ONE additive field on the PHP side (an
380
+ * explicit hit total, a new evidence key) would make a strict host -32602-reject
381
+ * an otherwise perfect audit. Every declared member is still validated; only
382
+ * UNDECLARED ones ride through untyped.
383
+ */
384
+ export declare const FINDING: z.ZodObject<{
385
+ code: z.ZodString;
386
+ category: z.ZodEnum<{
387
+ content: "content";
388
+ seo: "seo";
389
+ structure: "structure";
390
+ links: "links";
391
+ }>;
392
+ severity: z.ZodEnum<{
393
+ warning: "warning";
394
+ critical: "critical";
395
+ info: "info";
396
+ }>;
397
+ title: z.ZodString;
398
+ count: z.ZodNumber;
399
+ pages: z.ZodArray<z.ZodObject<{
400
+ id: z.ZodString;
401
+ label: z.ZodString;
402
+ locators: z.ZodOptional<z.ZodArray<z.ZodObject<{
403
+ path: z.ZodString;
404
+ breadcrumb: z.ZodString;
405
+ element_type: z.ZodString;
406
+ element_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
407
+ heading_source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
408
+ content_snippet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
409
+ repeat: z.ZodNumber;
410
+ prop: z.ZodOptional<z.ZodNullable<z.ZodString>>;
411
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
412
+ }, z.core.$catchall<z.ZodUnknown>>>>;
413
+ hits: z.ZodOptional<z.ZodNumber>;
414
+ hits_truncated: z.ZodOptional<z.ZodBoolean>;
415
+ locators_stripped: z.ZodOptional<z.ZodBoolean>;
416
+ builder_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
417
+ }, z.core.$catchall<z.ZodUnknown>>>;
418
+ pages_truncated: z.ZodBoolean;
419
+ fix_hint: z.ZodOptional<z.ZodObject<{
420
+ tool: z.ZodString;
421
+ args_template: z.ZodRecord<z.ZodString, z.ZodUnknown>;
422
+ note: z.ZodString;
423
+ }, z.core.$strip>>;
424
+ }, z.core.$catchall<z.ZodUnknown>>;
425
+ /**
426
+ * The advisory block `page_publish` (default on) / `page_save`
427
+ * (opt-in via `quick_check:true`) attach (Task 8). Design §7: `{clean:true}`
428
+ * on zero findings, else `{findings, note}` pointing at `pages_audit` for
429
+ * the site-wide (scope==='site') checks this per-page pass does not run.
430
+ */
431
+ export declare const QUICK_CHECK: z.ZodObject<{
432
+ clean: z.ZodOptional<z.ZodBoolean>;
433
+ findings: z.ZodOptional<z.ZodArray<z.ZodObject<{
434
+ code: z.ZodString;
435
+ category: z.ZodEnum<{
436
+ content: "content";
437
+ seo: "seo";
438
+ structure: "structure";
439
+ links: "links";
440
+ }>;
441
+ severity: z.ZodEnum<{
442
+ warning: "warning";
443
+ critical: "critical";
444
+ info: "info";
445
+ }>;
446
+ title: z.ZodString;
447
+ count: z.ZodNumber;
448
+ pages: z.ZodArray<z.ZodObject<{
449
+ id: z.ZodString;
450
+ label: z.ZodString;
451
+ locators: z.ZodOptional<z.ZodArray<z.ZodObject<{
452
+ path: z.ZodString;
453
+ breadcrumb: z.ZodString;
454
+ element_type: z.ZodString;
455
+ element_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
456
+ heading_source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
457
+ content_snippet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
458
+ repeat: z.ZodNumber;
459
+ prop: z.ZodOptional<z.ZodNullable<z.ZodString>>;
460
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
461
+ }, z.core.$catchall<z.ZodUnknown>>>>;
462
+ hits: z.ZodOptional<z.ZodNumber>;
463
+ hits_truncated: z.ZodOptional<z.ZodBoolean>;
464
+ locators_stripped: z.ZodOptional<z.ZodBoolean>;
465
+ builder_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
466
+ }, z.core.$catchall<z.ZodUnknown>>>;
467
+ pages_truncated: z.ZodBoolean;
468
+ fix_hint: z.ZodOptional<z.ZodObject<{
469
+ tool: z.ZodString;
470
+ args_template: z.ZodRecord<z.ZodString, z.ZodUnknown>;
471
+ note: z.ZodString;
472
+ }, z.core.$strip>>;
473
+ }, z.core.$catchall<z.ZodUnknown>>>>;
474
+ note: z.ZodOptional<z.ZodString>;
475
+ }, z.core.$strip>;
476
+ /**
477
+ * Input shape for `yootheme_builder_pages_audit` (design §5). `site_id` is
478
+ * spread in separately by `builders.ts` (mirrors PAGES_RESOLVE_INPUT).
479
+ */
480
+ export declare const PAGES_AUDIT_INPUT: {
481
+ target: z.ZodOptional<z.ZodObject<{
482
+ template_id: z.ZodOptional<z.ZodString>;
483
+ post_id: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
484
+ url: z.ZodOptional<z.ZodString>;
485
+ special: z.ZodOptional<z.ZodEnum<{
486
+ date: "date";
487
+ search: "search";
488
+ author: "author";
489
+ home: "home";
490
+ "front-page": "front-page";
491
+ blog: "blog";
492
+ 404: "404";
493
+ category: "category";
494
+ tag: "tag";
495
+ archive: "archive";
496
+ }>>;
497
+ title: z.ZodOptional<z.ZodString>;
498
+ }, z.core.$strip>>;
499
+ types: z.ZodOptional<z.ZodArray<z.ZodString>>;
500
+ checks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
501
+ content: "content";
502
+ seo: "seo";
503
+ structure: "structure";
504
+ links: "links";
505
+ }>>>;
506
+ thin_content_threshold: z.ZodOptional<z.ZodNumber>;
507
+ stale_after_months: z.ZodOptional<z.ZodNumber>;
508
+ max_chars: z.ZodOptional<z.ZodNumber>;
509
+ };
510
+ /**
511
+ * Wire shape for `yootheme_builder_pages_audit` (design §5). `scanned.by_type`
512
+ * is a `Record<string, number>` — the PHP side already normalizes an empty
513
+ * sweep to `(object) []` (`{}` over the wire), matching this schema without
514
+ * the array-vs-object workaround `template_summary` needed (Task #46).
515
+ */
516
+ export declare const PAGES_AUDIT_OUTPUT_SCHEMA: z.ZodObject<{
517
+ etag: z.ZodString;
518
+ scope: z.ZodOptional<z.ZodString>;
519
+ note: z.ZodOptional<z.ZodString>;
520
+ resolved_target: z.ZodOptional<z.ZodObject<{
521
+ template_id: z.ZodOptional<z.ZodString>;
522
+ post_id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>>;
523
+ type: z.ZodOptional<z.ZodString>;
524
+ label: z.ZodOptional<z.ZodString>;
525
+ frontend_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
526
+ context: z.ZodOptional<z.ZodNullable<z.ZodString>>;
527
+ resolved_via: z.ZodOptional<z.ZodString>;
528
+ matched_by: z.ZodOptional<z.ZodString>;
529
+ }, z.core.$strip>>;
530
+ scanned: z.ZodObject<{
531
+ templates: z.ZodNumber;
532
+ by_type: z.ZodRecord<z.ZodString, z.ZodNumber>;
533
+ }, z.core.$strip>;
534
+ summary: z.ZodObject<{
535
+ critical: z.ZodNumber;
536
+ warning: z.ZodNumber;
537
+ info: z.ZodNumber;
538
+ }, z.core.$strip>;
539
+ findings: z.ZodArray<z.ZodObject<{
540
+ code: z.ZodString;
541
+ category: z.ZodEnum<{
542
+ content: "content";
543
+ seo: "seo";
544
+ structure: "structure";
545
+ links: "links";
546
+ }>;
547
+ severity: z.ZodEnum<{
548
+ warning: "warning";
549
+ critical: "critical";
550
+ info: "info";
551
+ }>;
552
+ title: z.ZodString;
553
+ count: z.ZodNumber;
554
+ pages: z.ZodArray<z.ZodObject<{
555
+ id: z.ZodString;
556
+ label: z.ZodString;
557
+ locators: z.ZodOptional<z.ZodArray<z.ZodObject<{
558
+ path: z.ZodString;
559
+ breadcrumb: z.ZodString;
560
+ element_type: z.ZodString;
561
+ element_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
562
+ heading_source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
563
+ content_snippet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
564
+ repeat: z.ZodNumber;
565
+ prop: z.ZodOptional<z.ZodNullable<z.ZodString>>;
566
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
567
+ }, z.core.$catchall<z.ZodUnknown>>>>;
568
+ hits: z.ZodOptional<z.ZodNumber>;
569
+ hits_truncated: z.ZodOptional<z.ZodBoolean>;
570
+ locators_stripped: z.ZodOptional<z.ZodBoolean>;
571
+ builder_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
572
+ }, z.core.$catchall<z.ZodUnknown>>>;
573
+ pages_truncated: z.ZodBoolean;
574
+ fix_hint: z.ZodOptional<z.ZodObject<{
575
+ tool: z.ZodString;
576
+ args_template: z.ZodRecord<z.ZodString, z.ZodUnknown>;
577
+ note: z.ZodString;
578
+ }, z.core.$strip>>;
579
+ }, z.core.$catchall<z.ZodUnknown>>>;
580
+ disclaimer: z.ZodString;
581
+ structured_truncated: z.ZodOptional<z.ZodBoolean>;
582
+ }, z.core.$strip>;
265
583
  //# 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;AAExB,eAAO,MAAM,wBAAwB;;;;;;;;;;iBA6CnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;iBA8B/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAWH,eAAO,MAAM,8BAA8B;;;;;;;;;;;iBAazC,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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAUH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;kCAYF,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAmCI,CAAC;AAEzB;;;;;GAKG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAItB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DU,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiDpC,CAAC"}