@wootsup/yt-builder-mcp 1.2.0 → 1.4.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 (241) hide show
  1. package/README.md +16 -12
  2. package/dist/catalog/build-catalog.d.ts +63 -0
  3. package/dist/catalog/build-catalog.d.ts.map +1 -0
  4. package/dist/catalog/build-catalog.js +166 -0
  5. package/dist/catalog/build-catalog.js.map +1 -0
  6. package/dist/cli/doctor-command.d.ts +21 -0
  7. package/dist/cli/doctor-command.d.ts.map +1 -0
  8. package/dist/cli/doctor-command.js +111 -0
  9. package/dist/cli/doctor-command.js.map +1 -0
  10. package/dist/cli/invocation-decision.d.ts.map +1 -1
  11. package/dist/cli/invocation-decision.js +2 -0
  12. package/dist/cli/invocation-decision.js.map +1 -1
  13. package/dist/client.d.ts +14 -0
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +9 -0
  16. package/dist/client.js.map +1 -1
  17. package/dist/diagnostics/ca-trust.d.ts +16 -0
  18. package/dist/diagnostics/ca-trust.d.ts.map +1 -0
  19. package/dist/diagnostics/ca-trust.js +54 -0
  20. package/dist/diagnostics/ca-trust.js.map +1 -0
  21. package/dist/diagnostics/diagnose-network-error.d.ts +37 -0
  22. package/dist/diagnostics/diagnose-network-error.d.ts.map +1 -0
  23. package/dist/diagnostics/diagnose-network-error.js +158 -0
  24. package/dist/diagnostics/diagnose-network-error.js.map +1 -0
  25. package/dist/diagnostics/doctor.d.ts +62 -0
  26. package/dist/diagnostics/doctor.d.ts.map +1 -0
  27. package/dist/diagnostics/doctor.js +165 -0
  28. package/dist/diagnostics/doctor.js.map +1 -0
  29. package/dist/gateway/advanced-read-tool.d.ts +37 -0
  30. package/dist/gateway/advanced-read-tool.d.ts.map +1 -0
  31. package/dist/gateway/advanced-read-tool.js +156 -0
  32. package/dist/gateway/advanced-read-tool.js.map +1 -0
  33. package/dist/gateway/advanced-tool/domains.d.ts +18 -3
  34. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
  35. package/dist/gateway/advanced-tool/domains.js +28 -9
  36. package/dist/gateway/advanced-tool/domains.js.map +1 -1
  37. package/dist/gateway/advanced-tool/register.d.ts.map +1 -1
  38. package/dist/gateway/advanced-tool/register.js +43 -11
  39. package/dist/gateway/advanced-tool/register.js.map +1 -1
  40. package/dist/gateway/essentials.d.ts +14 -4
  41. package/dist/gateway/essentials.d.ts.map +1 -1
  42. package/dist/gateway/essentials.js +46 -5
  43. package/dist/gateway/essentials.js.map +1 -1
  44. package/dist/gateway/test-support.d.ts +2 -2
  45. package/dist/gateway/test-support.js +2 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +45 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/install-skill.d.ts +1 -1
  50. package/dist/install-skill.js +2 -2
  51. package/dist/net/extra-headers.d.ts +66 -0
  52. package/dist/net/extra-headers.d.ts.map +1 -0
  53. package/dist/net/extra-headers.js +164 -0
  54. package/dist/net/extra-headers.js.map +1 -0
  55. package/dist/net/internal-host.d.ts +45 -0
  56. package/dist/net/internal-host.d.ts.map +1 -0
  57. package/dist/net/internal-host.js +164 -0
  58. package/dist/net/internal-host.js.map +1 -0
  59. package/dist/net/proxy-dispatcher.d.ts +40 -0
  60. package/dist/net/proxy-dispatcher.d.ts.map +1 -0
  61. package/dist/net/proxy-dispatcher.js +65 -0
  62. package/dist/net/proxy-dispatcher.js.map +1 -0
  63. package/dist/proxy/bridge.d.ts +43 -0
  64. package/dist/proxy/bridge.d.ts.map +1 -0
  65. package/dist/proxy/bridge.js +155 -0
  66. package/dist/proxy/bridge.js.map +1 -0
  67. package/dist/proxy/mode.d.ts +10 -0
  68. package/dist/proxy/mode.d.ts.map +1 -0
  69. package/dist/proxy/mode.js +20 -0
  70. package/dist/proxy/mode.js.map +1 -0
  71. package/dist/server.d.ts +5 -3
  72. package/dist/server.d.ts.map +1 -1
  73. package/dist/server.js +13 -3
  74. package/dist/server.js.map +1 -1
  75. package/dist/setup-ca-env.d.ts +40 -0
  76. package/dist/setup-ca-env.d.ts.map +1 -0
  77. package/dist/setup-ca-env.js +58 -0
  78. package/dist/setup-ca-env.js.map +1 -0
  79. package/dist/setup-ca-reprobe.d.ts +38 -0
  80. package/dist/setup-ca-reprobe.d.ts.map +1 -0
  81. package/dist/setup-ca-reprobe.js +68 -0
  82. package/dist/setup-ca-reprobe.js.map +1 -0
  83. package/dist/setup-cli.d.ts +37 -2
  84. package/dist/setup-cli.d.ts.map +1 -1
  85. package/dist/setup-cli.js +178 -4
  86. package/dist/setup-cli.js.map +1 -1
  87. package/dist/setup-npx-spec.d.ts +44 -0
  88. package/dist/setup-npx-spec.d.ts.map +1 -0
  89. package/dist/setup-npx-spec.js +66 -0
  90. package/dist/setup-npx-spec.js.map +1 -0
  91. package/dist/setup-prompts.d.ts +14 -1
  92. package/dist/setup-prompts.d.ts.map +1 -1
  93. package/dist/setup-prompts.js +53 -1
  94. package/dist/setup-prompts.js.map +1 -1
  95. package/dist/setup-wizard-defaults.d.ts.map +1 -1
  96. package/dist/setup-wizard-defaults.js +29 -5
  97. package/dist/setup-wizard-defaults.js.map +1 -1
  98. package/dist/setup-wizard-handshake.d.ts +4 -4
  99. package/dist/setup-wizard-handshake.d.ts.map +1 -1
  100. package/dist/setup-wizard-handshake.js +46 -12
  101. package/dist/setup-wizard-handshake.js.map +1 -1
  102. package/dist/setup-wizard-types.d.ts +81 -0
  103. package/dist/setup-wizard-types.d.ts.map +1 -1
  104. package/dist/setup-wizard.d.ts +2 -2
  105. package/dist/setup-wizard.d.ts.map +1 -1
  106. package/dist/setup-wizard.js +140 -18
  107. package/dist/setup-wizard.js.map +1 -1
  108. package/dist/sites/client-pool.d.ts +8 -1
  109. package/dist/sites/client-pool.d.ts.map +1 -1
  110. package/dist/sites/client-pool.js +34 -4
  111. package/dist/sites/client-pool.js.map +1 -1
  112. package/dist/sites/registry.d.ts +30 -0
  113. package/dist/sites/registry.d.ts.map +1 -1
  114. package/dist/sites/registry.js.map +1 -1
  115. package/dist/sites/store.d.ts +8 -1
  116. package/dist/sites/store.d.ts.map +1 -1
  117. package/dist/sites/store.js +17 -2
  118. package/dist/sites/store.js.map +1 -1
  119. package/dist/sites/tools/use-site.d.ts.map +1 -1
  120. package/dist/sites/tools/use-site.js +26 -6
  121. package/dist/sites/tools/use-site.js.map +1 -1
  122. package/dist/tools/bind-guidance.d.ts +80 -0
  123. package/dist/tools/bind-guidance.d.ts.map +1 -0
  124. package/dist/tools/bind-guidance.js +95 -0
  125. package/dist/tools/bind-guidance.js.map +1 -0
  126. package/dist/tools/elements/builders.d.ts.map +1 -1
  127. package/dist/tools/elements/builders.js +63 -13
  128. package/dist/tools/elements/builders.js.map +1 -1
  129. package/dist/tools/elements/handlers-write.d.ts +19 -2
  130. package/dist/tools/elements/handlers-write.d.ts.map +1 -1
  131. package/dist/tools/elements/handlers-write.js +179 -10
  132. package/dist/tools/elements/handlers-write.js.map +1 -1
  133. package/dist/tools/elements/handlers.d.ts +8 -2
  134. package/dist/tools/elements/handlers.d.ts.map +1 -1
  135. package/dist/tools/elements/handlers.js +76 -28
  136. package/dist/tools/elements/handlers.js.map +1 -1
  137. package/dist/tools/elements/layout-hierarchy-rules.d.ts +62 -0
  138. package/dist/tools/elements/layout-hierarchy-rules.d.ts.map +1 -0
  139. package/dist/tools/elements/layout-hierarchy-rules.js +154 -0
  140. package/dist/tools/elements/layout-hierarchy-rules.js.map +1 -0
  141. package/dist/tools/format/elements-format.d.ts +35 -0
  142. package/dist/tools/format/elements-format.d.ts.map +1 -1
  143. package/dist/tools/format/elements-format.js +124 -1
  144. package/dist/tools/format/elements-format.js.map +1 -1
  145. package/dist/tools/format/health-format.d.ts +3 -0
  146. package/dist/tools/format/health-format.d.ts.map +1 -1
  147. package/dist/tools/format/health-format.js +21 -4
  148. package/dist/tools/format/health-format.js.map +1 -1
  149. package/dist/tools/format/inspection-format.d.ts +18 -0
  150. package/dist/tools/format/inspection-format.d.ts.map +1 -1
  151. package/dist/tools/format/inspection-format.js +22 -1
  152. package/dist/tools/format/inspection-format.js.map +1 -1
  153. package/dist/tools/format/pages-format.d.ts.map +1 -1
  154. package/dist/tools/format/pages-format.js +7 -0
  155. package/dist/tools/format/pages-format.js.map +1 -1
  156. package/dist/tools/format/sources-format.d.ts +8 -0
  157. package/dist/tools/format/sources-format.d.ts.map +1 -1
  158. package/dist/tools/format/sources-format.js +10 -0
  159. package/dist/tools/format/sources-format.js.map +1 -1
  160. package/dist/tools/health.d.ts.map +1 -1
  161. package/dist/tools/health.js +56 -0
  162. package/dist/tools/health.js.map +1 -1
  163. package/dist/tools/index.d.ts.map +1 -1
  164. package/dist/tools/index.js +4 -0
  165. package/dist/tools/index.js.map +1 -1
  166. package/dist/tools/inspection.d.ts +24 -0
  167. package/dist/tools/inspection.d.ts.map +1 -1
  168. package/dist/tools/inspection.js +140 -41
  169. package/dist/tools/inspection.js.map +1 -1
  170. package/dist/tools/layout-flatten.d.ts +11 -8
  171. package/dist/tools/layout-flatten.d.ts.map +1 -1
  172. package/dist/tools/layout-flatten.js +17 -6
  173. package/dist/tools/layout-flatten.js.map +1 -1
  174. package/dist/tools/multi-items/builders.d.ts.map +1 -1
  175. package/dist/tools/multi-items/builders.js +11 -2
  176. package/dist/tools/multi-items/builders.js.map +1 -1
  177. package/dist/tools/multi-items/inspect-handler.d.ts +13 -0
  178. package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -1
  179. package/dist/tools/multi-items/inspect-handler.js +147 -3
  180. package/dist/tools/multi-items/inspect-handler.js.map +1 -1
  181. package/dist/tools/pages/builders.d.ts.map +1 -1
  182. package/dist/tools/pages/builders.js +153 -39
  183. package/dist/tools/pages/builders.js.map +1 -1
  184. package/dist/tools/pages/handlers-read.d.ts +40 -5
  185. package/dist/tools/pages/handlers-read.d.ts.map +1 -1
  186. package/dist/tools/pages/handlers-read.js +404 -76
  187. package/dist/tools/pages/handlers-read.js.map +1 -1
  188. package/dist/tools/pages/handlers-write.d.ts +95 -1
  189. package/dist/tools/pages/handlers-write.d.ts.map +1 -1
  190. package/dist/tools/pages/handlers-write.js +137 -8
  191. package/dist/tools/pages/handlers-write.js.map +1 -1
  192. package/dist/tools/pages/index.d.ts +1 -1
  193. package/dist/tools/pages/index.d.ts.map +1 -1
  194. package/dist/tools/pages/index.js +1 -1
  195. package/dist/tools/pages/index.js.map +1 -1
  196. package/dist/tools/pages/schemas.d.ts +74 -5
  197. package/dist/tools/pages/schemas.d.ts.map +1 -1
  198. package/dist/tools/pages/schemas.js +243 -8
  199. package/dist/tools/pages/schemas.js.map +1 -1
  200. package/dist/tools/shared-schemas.d.ts +3 -0
  201. package/dist/tools/shared-schemas.d.ts.map +1 -1
  202. package/dist/tools/shared-schemas.js +43 -13
  203. package/dist/tools/shared-schemas.js.map +1 -1
  204. package/dist/tools/sources/builders.d.ts.map +1 -1
  205. package/dist/tools/sources/builders.js +93 -10
  206. package/dist/tools/sources/builders.js.map +1 -1
  207. package/dist/tools/sources/handlers-bind.d.ts +13 -1
  208. package/dist/tools/sources/handlers-bind.d.ts.map +1 -1
  209. package/dist/tools/sources/handlers-bind.js +163 -1
  210. package/dist/tools/sources/handlers-bind.js.map +1 -1
  211. package/dist/tools/sources/handlers.d.ts +12 -1
  212. package/dist/tools/sources/handlers.d.ts.map +1 -1
  213. package/dist/tools/sources/handlers.js +103 -16
  214. package/dist/tools/sources/handlers.js.map +1 -1
  215. package/dist/tools/sparse-fields.d.ts +73 -0
  216. package/dist/tools/sparse-fields.d.ts.map +1 -1
  217. package/dist/tools/sparse-fields.js +136 -0
  218. package/dist/tools/sparse-fields.js.map +1 -1
  219. package/dist/tools/sublayout/builders.d.ts +23 -0
  220. package/dist/tools/sublayout/builders.d.ts.map +1 -0
  221. package/dist/tools/sublayout/builders.js +54 -0
  222. package/dist/tools/sublayout/builders.js.map +1 -0
  223. package/dist/tools/sublayout/index.d.ts +13 -0
  224. package/dist/tools/sublayout/index.d.ts.map +1 -0
  225. package/dist/tools/sublayout/index.js +13 -0
  226. package/dist/tools/sublayout/index.js.map +1 -0
  227. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts +95 -0
  228. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts.map +1 -0
  229. package/dist/tools/sublayout/inspect-sublayout-handler.js +181 -0
  230. package/dist/tools/sublayout/inspect-sublayout-handler.js.map +1 -0
  231. package/dist/tools/tool-builder/results.d.ts +31 -0
  232. package/dist/tools/tool-builder/results.d.ts.map +1 -1
  233. package/dist/tools/tool-builder/results.js +95 -4
  234. package/dist/tools/tool-builder/results.js.map +1 -1
  235. package/dist/update/update-check.d.ts +56 -0
  236. package/dist/update/update-check.d.ts.map +1 -0
  237. package/dist/update/update-check.js +155 -0
  238. package/dist/update/update-check.js.map +1 -0
  239. package/manifest.json +1 -1
  240. package/package.json +5 -2
  241. package/skills/yt-builder-mcp/SKILL.md +148 -82
@@ -26,8 +26,19 @@ export const PAGES_LIST_OUTPUT_SCHEMA = z.object({
26
26
  // this template.") so the agent can render an instruction to the
27
27
  // end-user. All three keys are kept on the row-record (not an extra
28
28
  // schema object) so per-item sparse-field projection works.
29
+ //
30
+ // F33 (2026-06-10): each row also carries `builder_url` — a version-
31
+ // aware (WP YT4/YT5) + platform-aware (Joomla com_ajax) "open in the
32
+ // YOOtheme Pro builder" deep-link (or null when the host could not
33
+ // resolve the admin base). Kept on the row-record so per-item sparse-
34
+ // field projection + available_fields discovery surface it.
29
35
  items: z.array(z.record(z.string(), z.unknown())),
30
36
  total: z.number(),
37
+ // B2 (Glöckle 2026-06-25): pagination. `total` is the (filtered) count;
38
+ // `returned` is how many rows this page carries; `next_cursor` (present
39
+ // only when more remain) is passed back as `cursor` for the next page.
40
+ returned: z.number().optional(),
41
+ next_cursor: z.string().optional(),
31
42
  etag: z.string().optional(),
32
43
  projected_fields: z.array(z.string()).optional(),
33
44
  // F-004 fix (2026-05-25 exhaustive audit): projection-feedback —
@@ -37,6 +48,10 @@ export const PAGES_LIST_OUTPUT_SCHEMA = z.object({
37
48
  // (previously: items came back as `[{}, {}, …]` silently).
38
49
  available_fields: z.array(z.string()).optional(),
39
50
  unknown_fields: z.array(z.string()).optional(),
51
+ // F23 (2026-06-10): the LOUD unknown-projection warning also rides in
52
+ // structuredContent — hosts that surface structuredContent (not the
53
+ // text leg) to the model would otherwise never see it.
54
+ projection_warning: z.string().optional(),
40
55
  });
41
56
  export const SCHEMA_OUTPUT_SCHEMA = z.object({
42
57
  // F-006 (2026-05-26): `rel_path` is the agent-preferred path form
@@ -44,15 +59,28 @@ export const SCHEMA_OUTPUT_SCHEMA = z.object({
44
59
  // fully-qualified `/templates/<id>/layout/...` pointer) stays on the
45
60
  // row for back-compat but is optional so callers reading the schema
46
61
  // know `rel_path` is the canonical projection column.
47
- items: z.array(z.object({
48
- rel_path: z.string(),
62
+ //
63
+ // G-B (Glöckle 2026-06-26): every row-field is now `.optional()` +
64
+ // `.passthrough()` so a `fields[]` projection (which drops the unrequested
65
+ // keys) still validates — exactly the relaxation `element_list`'s output
66
+ // schema uses. The default (no fields) full row still carries all keys.
67
+ items: z.array(z
68
+ .object({
69
+ rel_path: z.string().optional(),
49
70
  path: z.string().optional(),
50
- element_type: z.string(),
51
- label: z.string(),
52
- has_binding: z.boolean(),
53
- })),
71
+ element_type: z.string().optional(),
72
+ label: z.string().optional(),
73
+ has_binding: z.boolean().optional(),
74
+ })
75
+ .passthrough()),
54
76
  total: z.number(),
55
77
  template_id: z.string(),
78
+ // G-B: `fields[]` projection echo + the F23 unknown-field feedback,
79
+ // emitted ONLY when the caller passed `fields[]`.
80
+ projected_fields: z.array(z.string()).optional(),
81
+ available_fields: z.array(z.string()).optional(),
82
+ unknown_fields: z.array(z.string()).optional(),
83
+ projection_warning: z.string().optional(),
56
84
  });
57
85
  export const ETAG_OUTPUT_SCHEMA = z.object({
58
86
  etag: z.string(),
@@ -113,7 +141,39 @@ export const PAGES_CREATE_INPUT = {
113
141
  status: z
114
142
  .enum(['publish', 'draft', 'pending', 'private', 'future'])
115
143
  .optional()
116
- .describe('Initial post status. Default: draft (Q6 design — no public empty page).'),
144
+ .describe('Initial post status. Default: draft (Q6 design — no public empty page). ' +
145
+ 'WordPress accepts all five; Joomla maps draft→state 0 / publish→state 1 ' +
146
+ '(the other three are WP-only). For the common make-it-live case prefer ' +
147
+ 'the `published` boolean below.'),
148
+ // F12 (2026-06-09): friendly one-boolean publish shortcut. A fresh
149
+ // draft on Joomla returns 404 to anonymous front-end visitors (state
150
+ // 0); there was no ergonomic MCP path to flip it live. `published`
151
+ // maps to the existing `status` field the PHP host already honours
152
+ // (WP post_status=publish, Joomla state=1) — see the handler. Default
153
+ // false keeps the safe "no public empty page" behaviour. When the
154
+ // caller sets an explicit `status`, that wins (published is the
155
+ // shortcut, not an override).
156
+ published: z
157
+ .boolean()
158
+ .default(false)
159
+ .describe('When true, the page/article is created LIVE (WP post_status=publish, ' +
160
+ 'Joomla state=1) so anonymous visitors can render it immediately. ' +
161
+ 'Default false: created as a draft, visible only in the builder until ' +
162
+ 'you publish. Ignored when an explicit `status` is provided.'),
163
+ // F64 (2026-06-10): Joomla-only routing helper. A published Joomla
164
+ // article without a menu item has NO SEF route (anonymous 404). When
165
+ // truthy AND the article is published, the host creates a
166
+ // com_content single-article menu item via the Joomla Menu-Table API
167
+ // under a dedicated HIDDEN menutype (string value picks the
168
+ // menutype; `mainmenu` is rejected server-side so customer
169
+ // navigation is never polluted). Ignored on WordPress.
170
+ menu_item: z
171
+ .union([z.boolean(), z.string().min(1).max(64)])
172
+ .optional()
173
+ .describe('Joomla only: create a SEF route for the new article. true = ' +
174
+ 'hidden default menutype; a string picks the menutype ' +
175
+ '("mainmenu" is rejected). Requires published/status=publish. ' +
176
+ 'Without a route a published Joomla article 404s for visitors.'),
117
177
  layout: z
118
178
  .record(z.string(), z.unknown())
119
179
  .optional()
@@ -150,6 +210,12 @@ export const PAGES_CREATE_OUTPUT_SCHEMA = z
150
210
  slug: z.string(),
151
211
  status: z.string(),
152
212
  frontend_url: z.string().nullable(),
213
+ // F33 (2026-06-10): "open in the YOOtheme Pro builder" deep-link for
214
+ // the freshly-created page/article. Version-aware (WP YT4/YT5) +
215
+ // platform-aware (Joomla com_ajax). Nullable: null when the host
216
+ // could not resolve the admin base. `.optional()` keeps the schema
217
+ // back-compatible with an older host that predates the field.
218
+ builder_url: z.string().nullable().optional(),
153
219
  template_id: z
154
220
  .string()
155
221
  .describe('Synthetic per-page template id, e.g. "page:3275" (WP) or "article:42" (Joomla).'),
@@ -203,7 +269,8 @@ export const PAGES_DELETE_INPUT = {
203
269
  .number()
204
270
  .int()
205
271
  .positive()
206
- .describe('WP page post_id to delete.'),
272
+ .describe('ID of the page/article to delete — WordPress post_id or Joomla article_id ' +
273
+ '(the numeric part of the template_id, e.g. 42 for "article:42").'),
207
274
  confirm: z
208
275
  .literal(true)
209
276
  .describe('Must be true. Confirm gate prevents accidental deletes.'),
@@ -212,6 +279,154 @@ export const PAGES_DELETE_INPUT = {
212
279
  .optional()
213
280
  .describe('If true, hard-deletes (wp_delete_post force=true). Default: trash (recoverable).'),
214
281
  };
282
+ // ─── P-G (Goldstandard wave 3) — page_dynamize ────────────────────────
283
+ //
284
+ // The composite "dynamize an existing designed layout" write. The recipe
285
+ // of `dynamize-existing-layout.md` encoded server-side — the agent supplies
286
+ // ONLY the language-level inputs (which list source, which leaf maps to
287
+ // which flow field). F98 HYBRID EXECUTION: server runs the deterministic
288
+ // steps (copy byte-identically, swap queries + leaf names, keep everything
289
+ // else), reaching 85-95% compliance vs 60-70% for instruction-only.
290
+ /**
291
+ * A single `leaf_map` / `conditions` value — the F96 FieldMappingValue
292
+ * shape reused verbatim (mirrors `field_mappings` in `sources/builders.ts`):
293
+ * EITHER a plain string (the new flat field name) OR a structured
294
+ * `{name, filters?}` carrying an explicit YT5 filters operator (e.g. a
295
+ * `_condition` `{condition:'!!'}` or a date format `{date:'D, d.m.y'}`).
296
+ */
297
+ const FIELD_MAPPING_VALUE = z.union([
298
+ z.string(),
299
+ z
300
+ .object({
301
+ name: z.string().min(1).describe('Source-field name (e.g. "home_crest").'),
302
+ filters: z
303
+ .record(z.string(), z.unknown())
304
+ .optional()
305
+ .describe('YT5 filters operator object. Examples: {condition:"!!"} ' +
306
+ '(render only when non-empty), {condition:"!"} (only when empty), ' +
307
+ '{date:"D, d.m.y"} (format an ISO date).'),
308
+ })
309
+ .strict(),
310
+ ]);
311
+ /**
312
+ * Input shape for `yootheme_builder_page_dynamize`. Wraps
313
+ * `POST /pages/dynamize`. Narrowest-schema rule: `template_id` +
314
+ * `list_source_name` + `page.title` are required non-empty; `page` carries
315
+ * the create-machinery passthrough; the reference selector is `section_name`
316
+ * OR `element_path` (exactly-one is enforced server-side so a miss can list
317
+ * the available named sections as remediation).
318
+ */
319
+ export const PAGE_DYNAMIZE_INPUT = {
320
+ template_id: z
321
+ .string()
322
+ .min(1)
323
+ .describe('Template holding the REFERENCE section (e.g. "default"). ' +
324
+ 'Use yootheme_builder_pages_list / yootheme_builder_template_summary to discover.'),
325
+ section_name: z
326
+ .string()
327
+ .min(1)
328
+ .optional()
329
+ .describe('Named landmark section to copy (as listed in ' +
330
+ 'yootheme_builder_template_summary.named_sections). Provide THIS or ' +
331
+ '`element_path` — exactly one. On a miss the error lists the available sections.'),
332
+ element_path: z
333
+ .string()
334
+ .min(1)
335
+ .optional()
336
+ .describe('JSON-Pointer / rel-path to the reference subtree (e.g. "/children/2"). ' +
337
+ 'Provide THIS or `section_name` — exactly one.'),
338
+ list_source_name: z
339
+ .string()
340
+ .min(1)
341
+ .optional()
342
+ .describe('SINGLE-block path: the published flow LIST source the one iterating column ' +
343
+ 'query is rewritten to (e.g. "apiMapperFlowAbcList"). Provide THIS or ' +
344
+ '`source_map` — exactly one. Use yootheme_builder_sources_list to discover.'),
345
+ // F201 (multi-block): a section with SEVERAL source blocks (Played / Next /
346
+ // Later) dynamizes in ONE call. Each entry keys the EXISTING iterating
347
+ // column query (`match`) to its flow list source (`source_name`) + its own
348
+ // leaf_map. Provide THIS or `list_source_name` — exactly one.
349
+ source_map: z
350
+ .array(z
351
+ .object({
352
+ match: z
353
+ .string()
354
+ .min(1)
355
+ .describe('The EXISTING iterating column query name to swap (e.g. "theme.played").'),
356
+ source_name: z
357
+ .string()
358
+ .min(1)
359
+ .describe('The flow LIST source this block is rewritten to (e.g. "apiMapperFlowPlayedList").'),
360
+ leaf_map: z
361
+ .record(z.string(), FIELD_MAPPING_VALUE)
362
+ .optional()
363
+ .describe('Per-block leaf remap — same shape + rules as the single-block `leaf_map`.'),
364
+ })
365
+ .strict())
366
+ .optional()
367
+ .describe('MULTI-block path: a section with several source blocks (Played / Next / Later) ' +
368
+ 'dynamizes in ONE call. Array of {match, source_name, leaf_map?}. Unmatched ' +
369
+ 'blocks stay verbatim and surface in summary.unmatched_sources.'),
370
+ leaf_map: z
371
+ .record(z.string(), FIELD_MAPPING_VALUE)
372
+ .optional()
373
+ .describe('Maps ORIGINAL leaf field-names (the source.props.*.name values in the ' +
374
+ 'copied subtree, INCLUDING nested originals like ' +
375
+ '"field.match.home_team.crest.imagefile") → your flow\'s flat field names. ' +
376
+ 'Each value is a plain string OR {name, filters?} (F96 shape). The #parent ' +
377
+ 'query form is preserved — only the leaf NAME changes. Unmapped leaves are ' +
378
+ 'KEPT verbatim (default-KEEP). For a SUB-QUERY panel (its own source.query, ' +
379
+ 'leaves bound RELATIVE), key by the QUALIFIED "<subquery>.<leaf>" form (e.g. ' +
380
+ '"field.match_home_team.name") so the panel converts to #parent. Map an IMAGE ' +
381
+ 'leaf to an image/path field — binding a text field to an image prop renders a ' +
382
+ 'broken 0x0 image.'),
383
+ conditions: z
384
+ .record(z.string(), z
385
+ .object({
386
+ name: z.string().min(1).describe('Source-field name driving the condition.'),
387
+ filters: z
388
+ .object({
389
+ condition: z
390
+ .enum(['!', '!!'])
391
+ .describe('"!!" = render only when the field is non-empty; "!" = only when empty.'),
392
+ })
393
+ .describe('YT5 _condition operator.'),
394
+ })
395
+ .strict())
396
+ .optional()
397
+ .describe('Optional per-prop `_condition` overrides, keyed by ELEMENT-PROP name ' +
398
+ '(e.g. "content"). Use for per-row visibility (played vs upcoming).'),
399
+ remove_leaves: z
400
+ .array(z.string().min(1))
401
+ .optional()
402
+ .describe('EXPLICIT prop-path removals (rel-path pointers, e.g. "/children/0/children/1"). ' +
403
+ 'Default is KEEP — only remove a leaf whose TARGET cannot exist for the new ' +
404
+ 'data (e.g. a detail-link whose article doesn\'t exist for API rows).'),
405
+ page: z
406
+ .object({
407
+ title: z.string().min(1).describe('New page title (required).'),
408
+ slug: z.string().min(1).optional().describe('Optional explicit slug.'),
409
+ published: z
410
+ .boolean()
411
+ .optional()
412
+ .describe('When true, the page is created LIVE (anonymous visitors can render it).'),
413
+ status: z
414
+ .enum(['publish', 'draft', 'pending', 'private', 'future'])
415
+ .optional()
416
+ .describe('Fine-grained WordPress status (wins over `published`).'),
417
+ menu_item: z
418
+ .union([z.boolean(), z.string().min(1).max(64)])
419
+ .optional()
420
+ .describe('Joomla only: create a SEF route. true = hidden menutype; a string picks it.'),
421
+ })
422
+ .describe('Passthrough to the existing create machinery (slug-collision, menu_item routing).'),
423
+ etag: z
424
+ .string()
425
+ .min(1)
426
+ .optional()
427
+ .describe('Optimistic-lock ETag from yootheme_builder_get_etag. Optional; when provided, ' +
428
+ '412 on conflict. Recommended for collaborative edits.'),
429
+ };
215
430
  /**
216
431
  * Wire shape for `yootheme_builder_pages_delete` on success.
217
432
  *
@@ -229,4 +444,24 @@ export const PAGES_DELETE_OUTPUT_SCHEMA = z
229
444
  etag: z.string(),
230
445
  })
231
446
  .refine((v) => typeof v.page_id === 'number' || typeof v.article_id === 'number', { message: 'response must contain either page_id (WP) or article_id (Joomla)' });
447
+ // ─── G-A (Track-C URL→layout) — pages_resolve ───────────────────────
448
+ export const PAGES_RESOLVE_INPUT = {
449
+ url: z
450
+ .string()
451
+ .min(1)
452
+ .describe('A public frontend URL of the page/article (e.g. ' +
453
+ '"https://site.com/schedule-demo/"). Resolved to the per-page ' +
454
+ 'template_id that renders it — paste a URL, get a layout-addressable id.'),
455
+ };
456
+ export const PAGES_RESOLVE_OUTPUT_SCHEMA = z.object({
457
+ // The `page:<id>` (WP) / `article:<id>` (Joomla) token every read tool
458
+ // accepts as `template_id` (page_get_layout, page_get_schema, element_*).
459
+ template_id: z.string(),
460
+ // The resolved integer post-id (WP) / article-id (Joomla).
461
+ post_id: z.number().int().positive(),
462
+ // Content type — `get_post_type` on WP (e.g. "page"/"post"), "article" on Joomla.
463
+ type: z.string(),
464
+ // Canonical permalink (null when the platform cannot re-derive one).
465
+ frontend_url: z.string().nullable(),
466
+ });
232
467
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/tools/pages/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/tools/pages/schemas.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@
9
9
  */
10
10
  import { z } from 'zod';
11
11
  export declare const TEMPLATE_ID: z.ZodString;
12
+ export declare const TEMPLATE_ID_OPTIONAL: z.ZodOptional<z.ZodString>;
13
+ export declare const POST_ID: z.ZodOptional<z.ZodNumber>;
14
+ export declare const RESOLVE_URL: z.ZodOptional<z.ZodString>;
12
15
  export declare const ELEMENT_PATH: z.ZodString;
13
16
  export declare const ETAG: z.ZodString;
14
17
  export declare const PROPS: z.ZodRecord<z.ZodString, z.ZodUnknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"shared-schemas.d.ts","sourceRoot":"","sources":["../../src/tools/shared-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,WAAW,aAKnB,CAAC;AASN,eAAO,MAAM,YAAY,aAoBpB,CAAC;AAEN,eAAO,MAAM,IAAI,aAYZ,CAAC;AAEN,eAAO,MAAM,KAAK,wCAKb,CAAC;AAEN;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,4BAOtB,CAAC"}
1
+ {"version":3,"file":"shared-schemas.d.ts","sourceRoot":"","sources":["../../src/tools/shared-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,WAAW,aAUnB,CAAC;AAaN,eAAO,MAAM,oBAAoB,4BAS5B,CAAC;AAEN,eAAO,MAAM,OAAO,4BASf,CAAC;AAEN,eAAO,MAAM,WAAW,4BASnB,CAAC;AAEN,eAAO,MAAM,YAAY,aAgBpB,CAAC;AAEN,eAAO,MAAM,IAAI,aAYZ,CAAC;AAEN,eAAO,MAAM,KAAK,wCAKb,CAAC;AAEN;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,4BAOtB,CAAC"}
@@ -11,7 +11,13 @@ import { z } from 'zod';
11
11
  export const TEMPLATE_ID = z
12
12
  .string()
13
13
  .min(1)
14
- .describe('Template ID (e.g. "default"). Use yootheme_builder_pages_list to discover.');
14
+ .describe(
15
+ // F206 (P3): name the argument key explicitly and rule out the
16
+ // look-alikes. The Desktop client guessed `page_id` / `id` for tools
17
+ // that take this schema; the arg key is `template_id` (NOT `page_id`,
18
+ // NOT `id`). Use yootheme_builder_pages_list to discover valid values.
19
+ 'Template ID (e.g. "default"). The argument key is `template_id` ' +
20
+ '(NOT `page_id`, NOT `id`). Use yootheme_builder_pages_list to discover.');
15
21
  // F-102 (2026-05-26): the input-arg name is **`element_path`** (NOT
16
22
  // `element_rel_path`). `rel_path` is a PROJECTION COLUMN name on the
17
23
  // output of `element_list` / `page_get_schema` — copy its VALUE back
@@ -19,26 +25,50 @@ export const TEMPLATE_ID = z
19
25
  // `.describe()` string so the LLM sees it at every call site that
20
26
  // reuses this shared schema. There is no `element_rel_path` server
21
27
  // argument anywhere.
28
+ // G-A (Track-C URL→layout): the three interchangeable addressing modes a
29
+ // read tool accepts. `template_id` becomes optional (one of the three is
30
+ // required); `post_id` and `url` are the cold-agent fast-paths so ONE MCP
31
+ // call reaches a layout from a bare numeric id or a pasted public URL.
32
+ export const TEMPLATE_ID_OPTIONAL = z
33
+ .string()
34
+ .min(1)
35
+ .optional()
36
+ .describe('Template ID (e.g. "default" or "page:42"). Use yootheme_builder_pages_list ' +
37
+ 'to discover. OPTIONAL — instead you may pass `post_id` (a numeric ' +
38
+ 'WP post-id / Joomla article-id) or `url` (a public page URL). Exactly ' +
39
+ 'one of template_id / post_id / url is required.');
40
+ export const POST_ID = z
41
+ .number()
42
+ .int()
43
+ .positive()
44
+ .optional()
45
+ .describe('A numeric WordPress post-id / Joomla article-id (e.g. 6420). Resolves ' +
46
+ 'directly to that page\'s per-page layout — no need to know the ' +
47
+ '`page:`/`article:` prefix. Alternative to template_id / url.');
48
+ export const RESOLVE_URL = z
49
+ .string()
50
+ .min(1)
51
+ .optional()
52
+ .describe('A public frontend URL of the page (e.g. "https://site.com/schedule-demo/"). ' +
53
+ 'Resolved to the per-page layout in one call — paste a URL, get the layout. ' +
54
+ 'Alternative to template_id / post_id. 404s for theme-template URLs ' +
55
+ '(use yootheme_builder_pages_list instead).');
22
56
  export const ELEMENT_PATH = z
23
57
  .string()
24
58
  .min(1)
25
59
  .describe(
26
60
  // Wave-16 #34 (6.3): lead with the standard JSON-Pointer (RFC-6901)
27
61
  // docstring so every element_path param across all tools opens with
28
- // the canonical form + the enumerate-paths pointer. The F-102
29
- // disambiguation (element_path vs the element_rel_path projection
30
- // column) follows and stays load-bearing.
62
+ // the canonical form + the enumerate-paths pointer. F165 (2026-06-11)
63
+ // tightened the trailing essay; the F-102 disambiguation
64
+ // (element_path is the INPUT arg, element_rel_path is only the
65
+ // element_list projection COLUMN) stays load-bearing.
31
66
  'JSON-Pointer (RFC-6901) style: /0/children/1. ' +
32
67
  'Use yootheme_builder_element_list to enumerate valid paths. ' +
33
- 'Field name is `element_path` (NOT ' +
34
- '`element_rel_path` that is the projection column name on ' +
35
- '`element_list` / `page_get_schema` output, not an input arg). ' +
36
- '**`rel_path` VALUE from `element_list` is the preferred form** ' +
37
- '— copy it straight back here as `element_path` (e.g. `/children/0` ' +
38
- 'or `/children/0/children/1`); the server resolves it within this ' +
39
- 'template. Fully-qualified pointers (`/templates/<id>/layout/' +
40
- 'children/0/...`) are also accepted. Both forms work everywhere ' +
41
- '`element_path` appears.');
68
+ 'Preferred: copy a `rel_path` VALUE from element_list (e.g. ' +
69
+ '`/children/0`); fully-qualified pointers also work. The arg is ' +
70
+ '`element_path`; `element_rel_path` is only the list projection ' +
71
+ 'column, not an input arg.');
42
72
  export const ETAG = z
43
73
  .string()
44
74
  .min(1)
@@ -1 +1 @@
1
- {"version":3,"file":"shared-schemas.js","sourceRoot":"","sources":["../../src/tools/shared-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACvB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,CACL,4EAA4E,CAC/E,CAAC;AAEN,oEAAoE;AACpE,qEAAqE;AACrE,qEAAqE;AACrE,+DAA+D;AAC/D,kEAAkE;AAClE,mEAAmE;AACnE,qBAAqB;AACrB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ;AACL,oEAAoE;AACpE,oEAAoE;AACpE,8DAA8D;AAC9D,kEAAkE;AAClE,0CAA0C;AAC1C,gDAAgD;IAC5C,8DAA8D;IAC9D,oCAAoC;IACpC,6DAA6D;IAC7D,gEAAgE;IAChE,iEAAiE;IACjE,qEAAqE;IACrE,mEAAmE;IACnE,8DAA8D;IAC9D,iEAAiE;IACjE,yBAAyB,CAChC,CAAC;AAEN,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;KAChB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,CACL,mEAAmE;IAC/D,sEAAsE;IACtE,2DAA2D;IAC3D,oEAAoE;IACpE,mEAAmE;IACnE,uEAAuE;IACvE,kEAAkE;IAClE,qCAAqC,CAC5C,CAAC;AAEN,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC;KACjB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KAC/B,QAAQ,CACL,qEAAqE;IACjE,0EAA0E,CACjF,CAAC;AAEN;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE;KACnC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KACd,KAAK,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;KAC7E,QAAQ,EAAE;KACV,QAAQ,CACL,+DAA+D;IAC/D,4DAA4D,CAC/D,CAAC"}
1
+ {"version":3,"file":"shared-schemas.js","sourceRoot":"","sources":["../../src/tools/shared-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACvB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ;AACL,+DAA+D;AAC/D,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,kEAAkE;IAC9D,yEAAyE,CAChF,CAAC;AAEN,oEAAoE;AACpE,qEAAqE;AACrE,qEAAqE;AACrE,+DAA+D;AAC/D,kEAAkE;AAClE,mEAAmE;AACnE,qBAAqB;AACrB,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAChC,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,EAAE;KACV,QAAQ,CACL,6EAA6E;IACzE,oEAAoE;IACpE,wEAAwE;IACxE,iDAAiD,CACxD,CAAC;AAEN,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC;KACnB,MAAM,EAAE;KACR,GAAG,EAAE;KACL,QAAQ,EAAE;KACV,QAAQ,EAAE;KACV,QAAQ,CACL,wEAAwE;IACpE,iEAAiE;IACjE,8DAA8D,CACrE,CAAC;AAEN,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACvB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,EAAE;KACV,QAAQ,CACL,8EAA8E;IAC1E,6EAA6E;IAC7E,qEAAqE;IACrE,4CAA4C,CACnD,CAAC;AAEN,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ;AACL,oEAAoE;AACpE,oEAAoE;AACpE,sEAAsE;AACtE,yDAAyD;AACzD,+DAA+D;AAC/D,sDAAsD;AACtD,gDAAgD;IAC5C,8DAA8D;IAC9D,6DAA6D;IAC7D,iEAAiE;IACjE,iEAAiE;IACjE,2BAA2B,CAClC,CAAC;AAEN,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;KAChB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,QAAQ,CACL,mEAAmE;IAC/D,sEAAsE;IACtE,2DAA2D;IAC3D,oEAAoE;IACpE,mEAAmE;IACnE,uEAAuE;IACvE,kEAAkE;IAClE,qCAAqC,CAC5C,CAAC;AAEN,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC;KACjB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KAC/B,QAAQ,CACL,qEAAqE;IACjE,0EAA0E,CACjF,CAAC;AAEN;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE;KACnC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KACd,KAAK,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;KAC7E,QAAQ,EAAE;KACV,QAAQ,CACL,+DAA+D;IAC/D,4DAA4D,CAC/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/tools/sources/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAI7D,OAAO,EAMH,KAAK,iBAAiB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGH,KAAK,kBAAkB,EAK1B,MAAM,eAAe,CAAC;AAEvB,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,SAAS,iBAAiB,EAAE,CAiI9B"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/tools/sources/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAI7D,OAAO,EAMH,KAAK,iBAAiB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGH,KAAK,kBAAkB,EAK1B,MAAM,eAAe,CAAC;AAEvB,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,SAAS,iBAAiB,EAAE,CAwN9B"}
@@ -9,7 +9,7 @@
9
9
  import { z } from 'zod';
10
10
  import { withSiteRetry } from '../pool-resolve-helper.js';
11
11
  import { ELEMENT_PATH, ETAG, SITE_ID_SCHEMA, TEMPLATE_ID } from '../shared-schemas.js';
12
- import { FIELDS } from '../sparse-fields.js';
12
+ import { FIELDS, MAX_CHARS } from '../sparse-fields.js';
13
13
  import { defineTool, destructive, mutating, readOnly, withSiteMeta, } from '../tool-builder.js';
14
14
  import { BINDING_OUTPUT_SCHEMA, SOURCES_LIST_OUTPUT_SCHEMA, handleElementBindSource, handleElementGetBinding, handleElementUnbindSource, handleSourcesList, } from './handlers.js';
15
15
  export function buildSourcesTools(pool, deps) {
@@ -26,13 +26,38 @@ export function buildSourcesTools(pool, deps) {
26
26
  description: 'List all data sources, feeds, and dynamic content sources available in the ' +
27
27
  'YOOtheme Pro builder. Returns name + label + origin (apimapper / wordpress / ' +
28
28
  'joomla / essentials) per source. CALL THIS BEFORE binding any element to a data source. ' +
29
- 'Pick a source name from the list and pass it to `element_bind_source`. ' +
30
- 'Keywords: list sources, list data sources, list feeds, list bindings, ' +
31
- 'dynamic content, available data, what sources exist. ' +
32
- 'Pass `fields[]` to narrow each row. Operates on the default site unless site_id is provided.',
29
+ 'Then bind directly with yootheme_builder_element_bind_source. ' +
30
+ 'Keywords: list sources, list feeds, list bindings, dynamic content, what sources exist. ' +
31
+ 'Paginates (`limit`/`cursor`/`total`); scope with `group`/`kind`/`name_contains`; ' +
32
+ 'slim with `fields[]`; bound output with `max_chars`. ' +
33
+ 'Operates on the default site unless site_id is provided.',
33
34
  inputSchema: {
34
35
  site_id: SITE_ID_SCHEMA,
35
36
  fields: FIELDS,
37
+ limit: z
38
+ .number()
39
+ .int()
40
+ .min(1)
41
+ .max(200)
42
+ .optional()
43
+ .describe('Max rows to return (1-200, default 50). The response carries next_cursor when more remain.'),
44
+ cursor: z
45
+ .string()
46
+ .optional()
47
+ .describe('Opaque cursor from a previous response\'s next_cursor — fetches the next page.'),
48
+ name_contains: z
49
+ .string()
50
+ .optional()
51
+ .describe('Case-insensitive substring filter on the source name / label (e.g. "weather").'),
52
+ group: z
53
+ .string()
54
+ .optional()
55
+ .describe('Filter by origin group: "apimapper" | "wordpress" | "joomla" | "essentials".'),
56
+ kind: z
57
+ .string()
58
+ .optional()
59
+ .describe('Filter by GraphQL type / kind (e.g. "PostsQuery"). Discover values from the KIND column.'),
60
+ max_chars: MAX_CHARS,
36
61
  },
37
62
  outputSchema: SOURCES_LIST_OUTPUT_SCHEMA,
38
63
  annotations: readOnly('List Sources'),
@@ -55,9 +80,22 @@ export function buildSourcesTools(pool, deps) {
55
80
  }),
56
81
  defineTool({
57
82
  name: 'yootheme_builder_element_bind_source',
58
- description: 'Binds a Builder source to an element (sets `props.source`). Use bindingLevel ' +
59
- '"item" on Multi-Items containers (grid/slideshow/switcher/…) to bind on the ' +
60
- 'first *_item child instead of the container itself. Requires ETag. ' +
83
+ description: 'Binds a Builder source to an element (canonical shape: `source` top-level). ' +
84
+ 'Pass `field_mappings` in the SAME call; bindingLevel "item" binds a ' +
85
+ 'container\'s first *_item child. ' +
86
+ // F71/C3 (2026-06-10) + F188/F189 (2026-06-12): a leaf DIRECTLY
87
+ // under an iterating *_item auto-CONSOLIDATES onto the item's own
88
+ // slots (409 slot_collision when the slot is taken / not a slot);
89
+ // a leaf under a `#parent` fragment keeps the INHERIT form; a
90
+ // standalone query renders empty on YT5. A `…List` on a grid_item
91
+ // with nested children is render-dead (iterator_is_leaf_renderer).
92
+ 'Leaf under an iterating *_item → CONSOLIDATE onto item slots (409 ' +
93
+ 'slot_collision if taken/not a slot); leaf under a #parent fragment → INHERIT ' +
94
+ '(`__node_item__`); standalone renders empty. List on a grid_item with ' +
95
+ 'children → iterator_is_leaf_renderer. ' +
96
+ // F39 (2026-06-10): map_item location contract.
97
+ 'Map: bind `map_item`, map `location` to a "lat,lng" field or no markers. ' +
98
+ 'Requires ETag. Call directly. ' +
61
99
  'Operates on the default site unless site_id is provided.',
62
100
  inputSchema: {
63
101
  site_id: SITE_ID_SCHEMA,
@@ -74,9 +112,54 @@ export function buildSourcesTools(pool, deps) {
74
112
  .describe('Optional explicit "<origin>:<name>" id; skips ambiguity ' +
75
113
  'resolution when ≥2 sources share `source_name`.'),
76
114
  field_mappings: z
77
- .record(z.string(), z.string())
115
+ .record(z.string(),
116
+ // F96/F82 (2026-06-10): a value may be EITHER a plain
117
+ // string source-field name OR a structured object
118
+ // `{name, filters?}`. The object form carries an
119
+ // explicit YT5 filters operator so the theme-canonical
120
+ // leaf (e.g. a `_condition` prop with
121
+ // `{condition: '!!'}`, or a date-format
122
+ // `{date: 'D, d.m.y'}`) is authorable in ONE bind call.
123
+ z.union([
124
+ z.string(),
125
+ z
126
+ .object({
127
+ name: z
128
+ .string()
129
+ .min(1)
130
+ .describe('Source-field name (e.g. "match_date").'),
131
+ filters: z
132
+ .record(z.string(), z.unknown())
133
+ .optional()
134
+ .describe('YT5 filters operator object. Examples: ' +
135
+ '{condition:"!!"} (render only when the field is ' +
136
+ 'non-empty — used on a `_condition` prop), ' +
137
+ '{condition:"!"} (only when empty), ' +
138
+ '{date:"D, d.m.y"} (format an ISO date).'),
139
+ })
140
+ .strict(),
141
+ ]))
78
142
  .optional()
79
- .describe('Optional {prop_name: source_field_name} map written to `source.props`. ' +
143
+ .describe('Optional {prop_name: mapping} written to `source.props`. Each mapping ' +
144
+ 'is EITHER a plain source-field name string, OR an object ' +
145
+ '{name, filters?} where `filters` is a YT5 operator object. ' +
146
+ // F96/F82 (2026-06-10): the object form unlocks the theme-canonical
147
+ // leaf. A `_condition` prop needs `filters:{condition:"!!"}` (render
148
+ // only when filled) / `{condition:"!"}` (only when empty) — a bare
149
+ // `_condition` with no filters operator is INERT (renders always).
150
+ 'Use the object form for the theme-canonical YT5 leaf: a `_condition` ' +
151
+ 'prop REQUIRES filters {condition:"!!"} (render only when the field is ' +
152
+ 'non-empty) or {condition:"!"} (only when empty) — a bare _condition ' +
153
+ 'with no filters operator renders ALWAYS. Date-format leaves use ' +
154
+ '{name:"<field>", filters:{date:"D, d.m.y"}}. ' +
155
+ // F43 (2026-06-10): this is a FULL REPLACE, not a merge — each
156
+ // bind call rebuilds props from ONLY these mappings; anything
157
+ // omitted is dropped. Re-send ALL mappings you want to keep on
158
+ // every call (do not pass a partial patch to refine one field).
159
+ 'FULL REPLACE (not a merge): each call rebuilds `source.props` from ' +
160
+ 'only these mappings — omitted props are dropped (dropped keys are ' +
161
+ 'surfaced as `dropped_field_mappings` + a warning), so re-send ALL ' +
162
+ 'mappings you want to keep every call. ' +
80
163
  'Pass "__node_item__" (or "__node_item__:<field>") as the value to ' +
81
164
  'emit YT-Pro INHERIT bindings ("Node - Item (Source/Items)" picker ' +
82
165
  'entry) on child *_item elements.'),
@@ -1 +1 @@
1
- {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/tools/sources/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/tools/sources/builders.ts"],"names":[],"mappings":"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"}