@wootsup/yt-builder-mcp 1.4.1 → 1.6.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 (154) hide show
  1. package/dist/auth.d.ts +11 -0
  2. package/dist/auth.d.ts.map +1 -1
  3. package/dist/auth.js +11 -0
  4. package/dist/auth.js.map +1 -1
  5. package/dist/cli/doctor-command.d.ts.map +1 -1
  6. package/dist/cli/doctor-command.js +96 -8
  7. package/dist/cli/doctor-command.js.map +1 -1
  8. package/dist/client.d.ts +18 -0
  9. package/dist/client.d.ts.map +1 -1
  10. package/dist/client.js +13 -1
  11. package/dist/client.js.map +1 -1
  12. package/dist/clients/claude-code.d.ts.map +1 -1
  13. package/dist/clients/claude-code.js +5 -2
  14. package/dist/clients/claude-code.js.map +1 -1
  15. package/dist/clients/claude-desktop.d.ts.map +1 -1
  16. package/dist/clients/claude-desktop.js +5 -2
  17. package/dist/clients/claude-desktop.js.map +1 -1
  18. package/dist/clients/cline.d.ts.map +1 -1
  19. package/dist/clients/cline.js +5 -2
  20. package/dist/clients/cline.js.map +1 -1
  21. package/dist/clients/codex-cli.d.ts.map +1 -1
  22. package/dist/clients/codex-cli.js +127 -2
  23. package/dist/clients/codex-cli.js.map +1 -1
  24. package/dist/clients/continue.d.ts.map +1 -1
  25. package/dist/clients/continue.js +11 -2
  26. package/dist/clients/continue.js.map +1 -1
  27. package/dist/clients/cursor.d.ts.map +1 -1
  28. package/dist/clients/cursor.js +5 -2
  29. package/dist/clients/cursor.js.map +1 -1
  30. package/dist/clients/gemini-cli.d.ts.map +1 -1
  31. package/dist/clients/gemini-cli.js +5 -2
  32. package/dist/clients/gemini-cli.js.map +1 -1
  33. package/dist/clients/index.d.ts +49 -0
  34. package/dist/clients/index.d.ts.map +1 -1
  35. package/dist/clients/index.js +79 -0
  36. package/dist/clients/index.js.map +1 -1
  37. package/dist/clients/roo-code.d.ts.map +1 -1
  38. package/dist/clients/roo-code.js +5 -2
  39. package/dist/clients/roo-code.js.map +1 -1
  40. package/dist/clients/zed.d.ts.map +1 -1
  41. package/dist/clients/zed.js +22 -2
  42. package/dist/clients/zed.js.map +1 -1
  43. package/dist/diagnostics/doctor.d.ts +60 -2
  44. package/dist/diagnostics/doctor.d.ts.map +1 -1
  45. package/dist/diagnostics/doctor.js +185 -8
  46. package/dist/diagnostics/doctor.js.map +1 -1
  47. package/dist/diagnostics/startup-self-probe.d.ts +39 -0
  48. package/dist/diagnostics/startup-self-probe.d.ts.map +1 -0
  49. package/dist/diagnostics/startup-self-probe.js +87 -0
  50. package/dist/diagnostics/startup-self-probe.js.map +1 -0
  51. package/dist/gateway/essentials.d.ts +15 -6
  52. package/dist/gateway/essentials.d.ts.map +1 -1
  53. package/dist/gateway/essentials.js +51 -5
  54. package/dist/gateway/essentials.js.map +1 -1
  55. package/dist/index.d.ts +15 -1
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +37 -2
  58. package/dist/index.js.map +1 -1
  59. package/dist/net/proxy-dispatcher.d.ts +7 -0
  60. package/dist/net/proxy-dispatcher.d.ts.map +1 -1
  61. package/dist/net/proxy-dispatcher.js +7 -2
  62. package/dist/net/proxy-dispatcher.js.map +1 -1
  63. package/dist/net/site-basic-auth.d.ts +65 -0
  64. package/dist/net/site-basic-auth.d.ts.map +1 -0
  65. package/dist/net/site-basic-auth.js +118 -0
  66. package/dist/net/site-basic-auth.js.map +1 -0
  67. package/dist/proxy/bridge.d.ts +18 -1
  68. package/dist/proxy/bridge.d.ts.map +1 -1
  69. package/dist/proxy/bridge.js +23 -3
  70. package/dist/proxy/bridge.js.map +1 -1
  71. package/dist/setup-wizard-types.d.ts +9 -0
  72. package/dist/setup-wizard-types.d.ts.map +1 -1
  73. package/dist/setup-wizard.d.ts.map +1 -1
  74. package/dist/setup-wizard.js +37 -0
  75. package/dist/setup-wizard.js.map +1 -1
  76. package/dist/sites/client-pool.d.ts +35 -1
  77. package/dist/sites/client-pool.d.ts.map +1 -1
  78. package/dist/sites/client-pool.js +45 -1
  79. package/dist/sites/client-pool.js.map +1 -1
  80. package/dist/tools/elements/builders.d.ts.map +1 -1
  81. package/dist/tools/elements/builders.js +65 -8
  82. package/dist/tools/elements/builders.js.map +1 -1
  83. package/dist/tools/elements/handlers.d.ts +45 -0
  84. package/dist/tools/elements/handlers.d.ts.map +1 -1
  85. package/dist/tools/elements/handlers.js +178 -2
  86. package/dist/tools/elements/handlers.js.map +1 -1
  87. package/dist/tools/format/elements-format.d.ts.map +1 -1
  88. package/dist/tools/format/elements-format.js +8 -0
  89. package/dist/tools/format/elements-format.js.map +1 -1
  90. package/dist/tools/format/health-format.d.ts +2 -0
  91. package/dist/tools/format/health-format.d.ts.map +1 -1
  92. package/dist/tools/format/health-format.js +11 -0
  93. package/dist/tools/format/health-format.js.map +1 -1
  94. package/dist/tools/format/pages-format.d.ts +42 -0
  95. package/dist/tools/format/pages-format.d.ts.map +1 -1
  96. package/dist/tools/format/pages-format.js +43 -0
  97. package/dist/tools/format/pages-format.js.map +1 -1
  98. package/dist/tools/format/source-schema-format.d.ts +64 -0
  99. package/dist/tools/format/source-schema-format.d.ts.map +1 -0
  100. package/dist/tools/format/source-schema-format.js +161 -0
  101. package/dist/tools/format/source-schema-format.js.map +1 -0
  102. package/dist/tools/health.d.ts.map +1 -1
  103. package/dist/tools/health.js +31 -0
  104. package/dist/tools/health.js.map +1 -1
  105. package/dist/tools/multi-items/builders.js +2 -2
  106. package/dist/tools/multi-items/builders.js.map +1 -1
  107. package/dist/tools/multi-items/clean-implode-handler.d.ts +2 -1
  108. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +1 -1
  109. package/dist/tools/multi-items/clean-implode-handler.js +9 -1
  110. package/dist/tools/multi-items/clean-implode-handler.js.map +1 -1
  111. package/dist/tools/multi-items/inspect-handler.d.ts +8 -0
  112. package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -1
  113. package/dist/tools/multi-items/inspect-handler.js +48 -2
  114. package/dist/tools/multi-items/inspect-handler.js.map +1 -1
  115. package/dist/tools/pages/builders.d.ts.map +1 -1
  116. package/dist/tools/pages/builders.js +126 -28
  117. package/dist/tools/pages/builders.js.map +1 -1
  118. package/dist/tools/pages/handlers-read.d.ts +21 -2
  119. package/dist/tools/pages/handlers-read.d.ts.map +1 -1
  120. package/dist/tools/pages/handlers-read.js +183 -11
  121. package/dist/tools/pages/handlers-read.js.map +1 -1
  122. package/dist/tools/pages/handlers-write.d.ts +42 -1
  123. package/dist/tools/pages/handlers-write.d.ts.map +1 -1
  124. package/dist/tools/pages/handlers-write.js +114 -5
  125. package/dist/tools/pages/handlers-write.js.map +1 -1
  126. package/dist/tools/pages/schemas.d.ts +26 -0
  127. package/dist/tools/pages/schemas.d.ts.map +1 -1
  128. package/dist/tools/pages/schemas.js +38 -0
  129. package/dist/tools/pages/schemas.js.map +1 -1
  130. package/dist/tools/pool-resolve-helper.d.ts +11 -26
  131. package/dist/tools/pool-resolve-helper.d.ts.map +1 -1
  132. package/dist/tools/pool-resolve-helper.js +50 -0
  133. package/dist/tools/pool-resolve-helper.js.map +1 -1
  134. package/dist/tools/sources/builders.d.ts.map +1 -1
  135. package/dist/tools/sources/builders.js +258 -4
  136. package/dist/tools/sources/builders.js.map +1 -1
  137. package/dist/tools/sources/handlers-bind.d.ts +107 -0
  138. package/dist/tools/sources/handlers-bind.d.ts.map +1 -1
  139. package/dist/tools/sources/handlers-bind.js +197 -2
  140. package/dist/tools/sources/handlers-bind.js.map +1 -1
  141. package/dist/tools/sources/handlers.d.ts +54 -0
  142. package/dist/tools/sources/handlers.d.ts.map +1 -1
  143. package/dist/tools/sources/handlers.js +82 -0
  144. package/dist/tools/sources/handlers.js.map +1 -1
  145. package/dist/tools/sparse-fields.d.ts +37 -1
  146. package/dist/tools/sparse-fields.d.ts.map +1 -1
  147. package/dist/tools/sparse-fields.js +35 -5
  148. package/dist/tools/sparse-fields.js.map +1 -1
  149. package/dist/tools/tool-builder/results.d.ts.map +1 -1
  150. package/dist/tools/tool-builder/results.js +39 -0
  151. package/dist/tools/tool-builder/results.js.map +1 -1
  152. package/manifest.json +1 -1
  153. package/package.json +1 -1
  154. package/skills/yt-builder-mcp/SKILL.md +237 -39
@@ -101,10 +101,60 @@ export async function resolveSiteOrError(pool, siteId) {
101
101
  * withSiteRetry(pool, site_id, async (client, site) =>
102
102
  * withSiteMeta(await handleX(makeDeps(client), rest), site)),
103
103
  */
104
+ /**
105
+ * U2 — the read-only-token fast error returned by the write-tool pre-flight.
106
+ * Mirrors the PHP `read_only_token` chokepoint message so the Node fast path
107
+ * and the REST floor steer the agent identically.
108
+ */
109
+ function readOnlyTokenError(tool) {
110
+ return jsonResult({
111
+ error: `This bearer is read-only — regenerate a write-scoped key in `
112
+ + `YT Builder MCP → Keys to call "${tool}".`,
113
+ error_code: 'read_only_token',
114
+ hint: 'Run yootheme_builder_diagnose to confirm this key\'s token_scope, then '
115
+ + 'regenerate it with the `write` scope in the plugin admin '
116
+ + '(YT Builder MCP → Keys).',
117
+ }, { isError: true });
118
+ }
119
+ /**
120
+ * U2 — resolve a site + execute a WRITE handler-body, with a read-only-token
121
+ * PRE-FLIGHT in front of the 1-shot-401 retry.
122
+ *
123
+ * When the resolved site's coarse token scope is KNOWN to be `read` (learned by
124
+ * a prior health / diagnose call — see {@link ClientPool.tokenScope}), the write
125
+ * fails FAST: the read-only error is returned BEFORE the handler runs, so no
126
+ * ETag is fetched and no request body is built — the exact "fail-fast-before-prep"
127
+ * the U2 handoff asks for. An UNKNOWN scope (never probed) does NOT block; the
128
+ * PHP `read_only_token` chokepoint remains the authority, and the fast path is a
129
+ * pure latency/clarity optimisation, never a new gate.
130
+ *
131
+ * `toolName` is surfaced in the fast error so the steer names the exact tool.
132
+ */
133
+ export async function withWriteSiteRetry(pool, siteId, toolName, fn) {
134
+ const r1 = await resolveSiteOrError(pool, siteId);
135
+ if (!r1.ok)
136
+ return r1.error;
137
+ // Pre-flight: a KNOWN read-only key can never satisfy a write — refuse here,
138
+ // before any ETag fetch / body build. `undefined` (not yet learned) passes
139
+ // through to the REST chokepoint, which stays authoritative.
140
+ if (pool.tokenScope(r1.site.id) === 'read') {
141
+ return readOnlyTokenError(toolName);
142
+ }
143
+ return withSiteRetryResolved(pool, siteId, fn, r1);
144
+ }
104
145
  export async function withSiteRetry(pool, siteId, fn) {
105
146
  const r1 = await resolveSiteOrError(pool, siteId);
106
147
  if (!r1.ok)
107
148
  return r1.error;
149
+ return withSiteRetryResolved(pool, siteId, fn, r1);
150
+ }
151
+ /**
152
+ * Shared 1-shot-401 retry body. Split out of {@link withSiteRetry} so the U2
153
+ * write pre-flight ({@link withWriteSiteRetry}) can run its read-only check on
154
+ * the ALREADY-resolved site BEFORE entering the retry loop — without resolving
155
+ * the site twice.
156
+ */
157
+ async function withSiteRetryResolved(pool, siteId, fn, r1) {
108
158
  try {
109
159
  return await fn(r1.client, r1.site);
110
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pool-resolve-helper.js","sourceRoot":"","sources":["../../src/tools/pool-resolve-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool-resolve-helper.js","sourceRoot":"","sources":["../../src/tools/pool-resolve-helper.ts"],"names":[],"mappings":"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"}
@@ -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,CAwN9B"}
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,EAIH,KAAK,kBAAkB,EAM1B,MAAM,eAAe,CAAC;AAQvB,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,SAAS,iBAAiB,EAAE,CA0gB9B"}
@@ -7,11 +7,12 @@
7
7
  * @license MIT
8
8
  */
9
9
  import { z } from 'zod';
10
- import { withSiteRetry } from '../pool-resolve-helper.js';
10
+ import { withSiteRetry, withWriteSiteRetry } from '../pool-resolve-helper.js';
11
11
  import { ELEMENT_PATH, ETAG, SITE_ID_SCHEMA, TEMPLATE_ID } from '../shared-schemas.js';
12
12
  import { FIELDS, MAX_CHARS } from '../sparse-fields.js';
13
13
  import { defineTool, destructive, mutating, readOnly, withSiteMeta, } from '../tool-builder.js';
14
- import { BINDING_OUTPUT_SCHEMA, SOURCES_LIST_OUTPUT_SCHEMA, handleElementBindSource, handleElementGetBinding, handleElementUnbindSource, handleSourcesList, } from './handlers.js';
14
+ import { BINDING_OUTPUT_SCHEMA, SOURCES_LIST_OUTPUT_SCHEMA, SOURCE_SCHEMA_OUTPUT_SCHEMA, handleElementBindSource, handleElementGetBinding, handleElementUnbindSource, handleSourceGetSchema, handleSourcesList, } from './handlers.js';
15
+ import { ELEMENT_SET_SOURCE_OUTPUT_SCHEMA, RENAME_SOURCE_OUTPUT_SCHEMA, handleElementSetSource, handleRenameSource, } from './handlers-bind.js';
15
16
  export function buildSourcesTools(pool, deps) {
16
17
  // W6.3 — handlers receive a per-call `siteClient` via the
17
18
  // resolveSiteOrError helper; the elicitation capability is the
@@ -63,6 +64,30 @@ export function buildSourcesTools(pool, deps) {
63
64
  annotations: readOnly('List Sources'),
64
65
  handler: async ({ site_id, ...rest }) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handleSourcesList(makeDeps(client), rest), site)),
65
66
  }),
67
+ defineTool({
68
+ name: 'yootheme_builder_source_get_schema',
69
+ description: 'Introspect ONE data source: its query methods + arguments + RELATIONS ' +
70
+ '(e.g. Term→Posts: categoryFaqs.taxonomyCategoryFaq → field "faq") + a ' +
71
+ 'provides_archive_context flag (id:0 = current archive term, auto-scoped). ' +
72
+ 'CALL BEFORE binding on an archive/category template — turns a ~25-call ' +
73
+ 'code-dive into one. Keywords: source schema, query methods, relations, ' +
74
+ 'Term to Posts, current term, archive context, taxonomy binding. Get `name` ' +
75
+ 'from yootheme_builder_sources_list. ' +
76
+ 'Operates on the default site unless site_id is provided.',
77
+ inputSchema: {
78
+ site_id: SITE_ID_SCHEMA,
79
+ name: z
80
+ .string()
81
+ .min(1)
82
+ .describe('Exact source name from yootheme_builder_sources_list (e.g. ' +
83
+ '"categoryFaqs", "wp_posts"). The dotted <base>.<method> native ' +
84
+ 'shape is accepted too.'),
85
+ max_chars: MAX_CHARS,
86
+ },
87
+ outputSchema: SOURCE_SCHEMA_OUTPUT_SCHEMA,
88
+ annotations: readOnly('Get Source Schema'),
89
+ handler: async ({ site_id, ...rest }) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handleSourceGetSchema(makeDeps(client), rest), site)),
90
+ }),
66
91
  defineTool({
67
92
  name: 'yootheme_builder_element_get_binding',
68
93
  description: 'Read the source binding attached to an element — the bound source name, ' +
@@ -170,10 +195,239 @@ export function buildSourcesTools(pool, deps) {
170
195
  'container otherwise. "item": container targets resolve to their first ' +
171
196
  '*_item child. "container": binds on the container, response carries a ' +
172
197
  'warning because YT-Pro will clone the container N times.'),
198
+ // B5 (Glöckle onboarding, 2026-06-27) — relation traversal. The
199
+ // native archive-scoping pattern binds a Term→Posts RELATION,
200
+ // not a flat top-level source: e.g. categoryFaqs.taxonomyCategoryFaq
201
+ // → field "faq" scopes the bound list to the CURRENT category term
202
+ // (the resolver sets terms=[term_id] automatically). These params
203
+ // author the canonical `query.field` selector underneath the source
204
+ // name. Omit them all for the legacy flat top-level-source bind.
205
+ relation: z
206
+ .string()
207
+ .min(1)
208
+ .optional()
209
+ .describe('Optional relation METHOD to traverse from `source_name` (e.g. ' +
210
+ '"taxonomyCategoryFaq" on the "categoryFaqs" source). When set, the ' +
211
+ 'persisted query name becomes "<source_name>.<relation>" so YT-Pro ' +
212
+ 'resolves the relation (Term→Posts current-term scope) instead of the ' +
213
+ 'flat source. Discover relations via yootheme_builder_source_get_schema.'),
214
+ field: z
215
+ .string()
216
+ .min(1)
217
+ .optional()
218
+ .describe('Optional relation FIELD to select on the traversal (e.g. "faq" or ' +
219
+ '"children" on categoryFaqs.taxonomyCategoryFaq). Sets ' +
220
+ '`query.field.name`. Pair with `relation` for the native ' +
221
+ 'Term→Posts/current-term pattern; the field name comes from the source ' +
222
+ 'rest_base (yootheme_builder_source_get_schema lists it).'),
223
+ arguments: z
224
+ .record(z.string(), z.unknown())
225
+ .optional()
226
+ .describe('Optional GraphQL arguments for the relation `field` selector, written to ' +
227
+ '`query.field.arguments` (e.g. {order:"menu_order", order_direction:"ASC"}, ' +
228
+ 'or {id:0} for the current archive term). Ignored unless `field` is set.'),
229
+ directives: z
230
+ .array(z
231
+ .object({
232
+ name: z
233
+ .string()
234
+ .min(1)
235
+ .describe('Directive name (e.g. "include", "skip").'),
236
+ arguments: z
237
+ .record(z.string(), z.unknown())
238
+ .optional()
239
+ .describe('Directive arguments (e.g. {if:true}).'),
240
+ })
241
+ .strict())
242
+ .optional()
243
+ .describe('Optional GraphQL directives on the relation `field` selector, written to ' +
244
+ '`query.field.directives` as a list of {name, arguments?}. Ignored ' +
245
+ 'unless `field` is set.'),
246
+ // N2 (Glöckle hub, 2026-06-28) — TOP-LEVEL query arguments. The
247
+ // hub case (a Grid bound to a source with a per-category id
248
+ // filter, no relation field) needs to thread `source.query.arguments`
249
+ // VERBATIM. This is DISTINCT from the relation-FIELD `arguments`
250
+ // above (`query.field.arguments`): top-level args filter the source
251
+ // itself; field args filter the traversed relation. Both can be set.
252
+ query_arguments: z
253
+ .record(z.string(), z.unknown())
254
+ .optional()
255
+ .describe('Optional TOP-LEVEL GraphQL arguments for the bound source, written to ' +
256
+ '`source.query.arguments` (e.g. {id:1328} to scope an archive Grid to ' +
257
+ 'ONE category term, plus {offset, limit, order, order_direction}). ' +
258
+ 'DISTINCT from `arguments` above, which sets the relation-field selector ' +
259
+ '`query.field.arguments`; pass `query_arguments` to filter the source ' +
260
+ 'itself (the per-archive id filter the hub grids need).'),
173
261
  etag: ETAG,
174
262
  },
175
263
  annotations: mutating('Bind Source'),
176
- handler: async ({ site_id, ...rest }) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handleElementBindSource(makeDeps(client), rest), site)),
264
+ handler: async ({ site_id, ...rest }) => withWriteSiteRetry(pool, site_id, 'yootheme_builder_element_bind_source', async (client, site) => withSiteMeta(await handleElementBindSource(makeDeps(client), rest), site)),
265
+ }),
266
+ defineTool({
267
+ name: 'yootheme_builder_element_set_source',
268
+ description:
269
+ // F2 (Glöckle HANDOFF-4) — surgical source-edit; sets a precomposed
270
+ // source + the native item-level source_extended.props carrier
271
+ // bind_source cannot write, at a pointer, ETag-locked.
272
+ 'Surgically SET a precomposed `source` (+ optional ' +
273
+ '`source_extended.props`) on ONE element at a pointer, ETag-locked, ' +
274
+ 'leaving every OTHER node unchanged (no 14 KB page_save). Use this — ' +
275
+ 'not element_bind_source — when you have the exact source shape OR need ' +
276
+ '`source_extended.props`, the native Multi-Items item-mapping carrier ' +
277
+ 'bind_source cannot write. E.g. an FAQ accordion scoped to the term: ' +
278
+ 'source.query.name="categoryFaqs.taxonomyCategoryFaq", field={name:' +
279
+ '"faq"}, source_extended.props maps title/content to #node. ETag req. ' +
280
+ 'Operates on the default site unless site_id is provided.',
281
+ inputSchema: {
282
+ site_id: SITE_ID_SCHEMA,
283
+ template_id: TEMPLATE_ID,
284
+ element_path: ELEMENT_PATH,
285
+ // The precomposed `source` object → node.source. At least one of
286
+ // `source` / `source_extended` must be present.
287
+ source: z
288
+ .object({
289
+ query: z
290
+ .object({
291
+ name: z
292
+ .string()
293
+ .min(1)
294
+ .describe('Query name — the bare source (e.g. "wp_posts") OR the ' +
295
+ 'dotted relation traversal "<source>.<relation>" ' +
296
+ '(e.g. "categoryFaqs.taxonomyCategoryFaq" scopes to the ' +
297
+ 'current archive term). Discover via ' +
298
+ 'yootheme_builder_source_get_schema.'),
299
+ field: z
300
+ .object({
301
+ name: z
302
+ .string()
303
+ .min(1)
304
+ .describe('Relation field to select (e.g. "faq", "children").'),
305
+ arguments: z
306
+ .record(z.string(), z.unknown())
307
+ .optional()
308
+ .describe('GraphQL arguments on the field (e.g. ' +
309
+ '{order:"menu_order", order_direction:"ASC"}).'),
310
+ directives: z
311
+ .array(z
312
+ .object({
313
+ name: z.string().min(1),
314
+ arguments: z
315
+ .record(z.string(), z.unknown())
316
+ .optional(),
317
+ })
318
+ .strict())
319
+ .optional()
320
+ .describe('GraphQL directives on the field, e.g. ' +
321
+ '[{name:"slice", arguments:{offset:0}}].'),
322
+ })
323
+ .strict()
324
+ .optional()
325
+ .describe('Optional relation-field selector → query.field. Omit for a ' +
326
+ 'flat top-level-source bind.'),
327
+ arguments: z
328
+ .record(z.string(), z.unknown())
329
+ .optional()
330
+ .describe('Optional top-level query arguments.'),
331
+ })
332
+ .describe('The query selector (query.name is required).'),
333
+ props: z
334
+ .record(z.string(), z.unknown())
335
+ .optional()
336
+ .describe('Optional source-level prop mappings (source.props) for a flat ' +
337
+ 'top-level bind. For native item-level mappings use ' +
338
+ '`source_extended.props` instead.'),
339
+ })
340
+ .optional()
341
+ .describe('The precomposed `source` object written VERBATIM to node.source ' +
342
+ '(`{query:{name, field?, arguments?}, props?}`). At least one of ' +
343
+ '`source` / `source_extended` is required.'),
344
+ // The native item-level field-mapping carrier → node.source_extended.
345
+ source_extended: z
346
+ .object({
347
+ props: z
348
+ .record(z.string(), z
349
+ .object({
350
+ query: z
351
+ .object({ name: z.string().min(1) })
352
+ .optional()
353
+ .describe('The per-mapping query scope, e.g. {name:"#node"} ' +
354
+ '(the current row).'),
355
+ name: z
356
+ .string()
357
+ .optional()
358
+ .describe('Source-field name feeding this prop (e.g. "title").'),
359
+ filters: z
360
+ .record(z.string(), z.unknown())
361
+ .optional()
362
+ .describe('Optional YT5 filters operator object.'),
363
+ })
364
+ .strict())
365
+ .describe('Per-element-prop field-mappings, e.g. ' +
366
+ '{title:{query:{name:"#node"},name:"title"}, ' +
367
+ 'content:{query:{name:"#node"},name:"content"}}.'),
368
+ })
369
+ .nullable()
370
+ .optional()
371
+ .describe('The native item-level mapping container written VERBATIM to ' +
372
+ 'node.source_extended (the YT-Pro Multi-Items pattern). Pass `null` ' +
373
+ 'to CLEAR an existing source_extended.'),
374
+ etag: ETAG,
375
+ },
376
+ outputSchema: ELEMENT_SET_SOURCE_OUTPUT_SCHEMA,
377
+ annotations: mutating('Set Source'),
378
+ handler: async ({ site_id, ...rest }) => withWriteSiteRetry(pool, site_id, 'yootheme_builder_element_set_source', async (client, site) => withSiteMeta(await handleElementSetSource(makeDeps(client), rest), site)),
379
+ }),
380
+ defineTool({
381
+ name: 'yootheme_builder_rename_source',
382
+ description:
383
+ // N1 (Glöckle HANDOFF-5) — template-wide source/field rename.
384
+ 'Template-wide RENAME of a source / type / field name across EVERY ' +
385
+ 'binding in a template, in ONE ETag-locked write (not a whole-layout ' +
386
+ 'page_save) — preserving each binding\'s arguments, props and ' +
387
+ 'field_mappings. Use after a taxonomy/CPT rename (faq→help) breaks ' +
388
+ 'every bound layout. Pass `from`/`to` for one source, and/or ' +
389
+ '`source_map`/`field_map` to rename a relation + its field tokens ' +
390
+ 'together; the dotted "<source>.<relation>" form is rewritten ' +
391
+ 'segment-by-segment. Returns {replaced_count, changed_paths, new_etag}. ' +
392
+ 'ETag req. Operates on the default site unless site_id is provided.',
393
+ inputSchema: {
394
+ site_id: SITE_ID_SCHEMA,
395
+ template_id: TEMPLATE_ID,
396
+ // The single-source shorthand — `from`+`to`. Folded into source_map
397
+ // by the PHP controller. At least one rename instruction (this OR a
398
+ // source_map/field_map) is required.
399
+ from: z
400
+ .string()
401
+ .min(1)
402
+ .optional()
403
+ .describe('The source/type name to rename (e.g. "categoryFaqs"). Pair ' +
404
+ 'with `to`. Shorthand for a 1-entry source_map.'),
405
+ to: z
406
+ .string()
407
+ .min(1)
408
+ .optional()
409
+ .describe('The new source/type name (e.g. "categoryHelps"). Pair with `from`.'),
410
+ source_map: z
411
+ .record(z.string().min(1), z.string().min(1))
412
+ .optional()
413
+ .describe('Object of {old_token: new_token} source/type/relation-name ' +
414
+ 'renames, applied to `query.name` (each dot-segment of the ' +
415
+ 'dotted relation form independently) AND the relation ' +
416
+ '`query.field.name` selector. E.g. {taxonomyCategoryFaq:' +
417
+ '"taxonomyCategoryHelp", faq:"help"}.'),
418
+ field_map: z
419
+ .record(z.string().min(1), z.string().min(1))
420
+ .optional()
421
+ .describe('Object of {old_field: new_field} LEAF field-name renames, ' +
422
+ 'applied to every `source.props.<p>.name` and ' +
423
+ '`source_extended.props.<p>.name` token (e.g. {faq_title:' +
424
+ '"help_title", faq_body:"help_body"}). Filters + sibling keys ' +
425
+ 'are preserved.'),
426
+ etag: ETAG,
427
+ },
428
+ outputSchema: RENAME_SOURCE_OUTPUT_SCHEMA,
429
+ annotations: mutating('Rename Source'),
430
+ handler: async ({ site_id, ...rest }) => withWriteSiteRetry(pool, site_id, 'yootheme_builder_rename_source', async (client, site) => withSiteMeta(await handleRenameSource(makeDeps(client), rest), site)),
177
431
  }),
178
432
  defineTool({
179
433
  name: 'yootheme_builder_element_unbind_source',
@@ -194,7 +448,7 @@ export function buildSourcesTools(pool, deps) {
194
448
  'preview and the agent must retry with `confirm: true`.'),
195
449
  },
196
450
  annotations: destructive('Unbind Source'),
197
- handler: async ({ site_id, ...rest }) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handleElementUnbindSource(makeDeps(client), rest), site)),
451
+ handler: async ({ site_id, ...rest }) => withWriteSiteRetry(pool, site_id, 'yootheme_builder_element_unbind_source', async (client, site) => withSiteMeta(await handleElementUnbindSource(makeDeps(client), rest), site)),
198
452
  }),
199
453
  ];
200
454
  }
@@ -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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"}
@@ -8,6 +8,7 @@
8
8
  *
9
9
  * @license MIT
10
10
  */
11
+ import { z } from 'zod';
11
12
  import { type ToolResult } from '../tool-builder.js';
12
13
  import type { SourcesHandlerDeps } from './handlers.js';
13
14
  /**
@@ -22,6 +23,16 @@ export type FieldMappingValue = string | {
22
23
  name: string;
23
24
  filters?: Record<string, unknown>;
24
25
  };
26
+ /**
27
+ * B5 (Glöckle onboarding, 2026-06-27) — a GraphQL directive on the relation
28
+ * `query.field` selector. Mirrors the `directives` zod array in `./builders.ts`;
29
+ * forwarded verbatim — the PHP SourcesController normalises + persists it under
30
+ * `query.field.directives`.
31
+ */
32
+ export interface BindDirective {
33
+ name: string;
34
+ arguments?: Record<string, unknown>;
35
+ }
25
36
  export declare function handleElementBindSource({ client, elicitation }: SourcesHandlerDeps, input: {
26
37
  template_id: string;
27
38
  element_path: string;
@@ -30,6 +41,11 @@ export declare function handleElementBindSource({ client, elicitation }: Sources
30
41
  etag: string;
31
42
  bindingLevel?: 'auto' | 'container' | 'item';
32
43
  field_mappings?: Record<string, FieldMappingValue>;
44
+ relation?: string;
45
+ field?: string;
46
+ arguments?: Record<string, unknown>;
47
+ directives?: readonly BindDirective[];
48
+ query_arguments?: Record<string, unknown>;
33
49
  }): Promise<ToolResult>;
34
50
  export declare function handleElementUnbindSource({ client, elicitation }: SourcesHandlerDeps, input: {
35
51
  template_id: string;
@@ -37,4 +53,95 @@ export declare function handleElementUnbindSource({ client, elicitation }: Sourc
37
53
  etag: string;
38
54
  confirm?: boolean;
39
55
  }): Promise<ToolResult>;
56
+ /**
57
+ * F2 (Glöckle HANDOFF-4) — the `element_set_source` STRICT output schema.
58
+ *
59
+ * A default (strip) ZodObject so a strict (`additionalProperties:false`) host
60
+ * accepts the structuredContent and the shape-pin guard's `.strict()` re-parse
61
+ * passes. The success body the PHP `SourcesController::set_source` returns is
62
+ * `{template_id, element_path, etag, new_etag, changed_paths}` — EVERY key here
63
+ * must be DECLARED, else a strict MCP host -32602-rejects the success (the G2
64
+ * `changed_paths` lesson).
65
+ */
66
+ export declare const ELEMENT_SET_SOURCE_OUTPUT_SCHEMA: z.ZodObject<{
67
+ template_id: z.ZodString;
68
+ element_path: z.ZodString;
69
+ etag: z.ZodString;
70
+ new_etag: z.ZodString;
71
+ changed_paths: z.ZodArray<z.ZodString>;
72
+ }, z.core.$strip>;
73
+ /**
74
+ * One YT-Pro `source_extended.props` field-mapping (the native item-level
75
+ * carrier). Mirrors the `source_extended.props` value-shape in `./builders.ts`;
76
+ * forwarded VERBATIM — the PHP SourcesController writes it byte-identical (no
77
+ * normalization).
78
+ */
79
+ export interface SetSourcePropMapping {
80
+ query?: {
81
+ name: string;
82
+ };
83
+ name?: string;
84
+ filters?: Record<string, unknown>;
85
+ }
86
+ /**
87
+ * F2 — surgically set a PRECOMPOSED `source` (+ optional `source_extended`) onto
88
+ * ONE element at a pointer, ETag-locked, leaving the rest of the layout
89
+ * byte-unchanged. The two carriers are author-composed objects forwarded
90
+ * VERBATIM to `PUT /pages/<id>/elements/<path>/source`; the PHP controller is the
91
+ * single place that persists them onto `node.source` / `node.source_extended`.
92
+ */
93
+ export declare function handleElementSetSource({ client }: SourcesHandlerDeps, input: {
94
+ template_id: string;
95
+ element_path: string;
96
+ etag: string;
97
+ source?: {
98
+ query: {
99
+ name: string;
100
+ field?: {
101
+ name: string;
102
+ arguments?: Record<string, unknown>;
103
+ directives?: readonly BindDirective[];
104
+ };
105
+ arguments?: Record<string, unknown>;
106
+ };
107
+ props?: Record<string, unknown>;
108
+ };
109
+ source_extended?: {
110
+ props: Record<string, SetSourcePropMapping>;
111
+ } | null;
112
+ }): Promise<ToolResult>;
113
+ /**
114
+ * N1 (Glöckle HANDOFF-5) — the `rename_source` STRICT output schema.
115
+ *
116
+ * A default (strip) ZodObject so a strict (`additionalProperties:false`) host
117
+ * accepts the structuredContent and the shape-pin guard's `.strict()` re-parse
118
+ * passes. The success body the PHP `SourcesController::rename_source` returns is
119
+ * `{template_id, replaced_count, changed_paths, etag, new_etag}` — EVERY key here
120
+ * must be DECLARED, else a strict MCP host -32602-rejects the success (the G2
121
+ * `changed_paths` lesson).
122
+ */
123
+ export declare const RENAME_SOURCE_OUTPUT_SCHEMA: z.ZodObject<{
124
+ template_id: z.ZodString;
125
+ replaced_count: z.ZodNumber;
126
+ changed_paths: z.ZodArray<z.ZodString>;
127
+ etag: z.ZodString;
128
+ new_etag: z.ZodString;
129
+ }, z.core.$strip>;
130
+ /**
131
+ * N1 — TEMPLATE-WIDE rename every matching binding's source-name + field-name
132
+ * tokens in ONE ETag-locked write. The rename spec (the single-source shorthand
133
+ * `from`/`to` and/or the explicit `source_map`/`field_map`) is forwarded VERBATIM
134
+ * to `PUT /pages/<id>/rename-source`; the PHP controller is the single place that
135
+ * runs the SourceRenamer engine across the whole template, preserving every
136
+ * binding's arguments / props / field_mappings and leaving non-matching bindings
137
+ * byte-identical.
138
+ */
139
+ export declare function handleRenameSource({ client }: SourcesHandlerDeps, input: {
140
+ template_id: string;
141
+ etag: string;
142
+ from?: string;
143
+ to?: string;
144
+ source_map?: Record<string, string>;
145
+ field_map?: Record<string, string>;
146
+ }): Promise<ToolResult>;
40
147
  //# sourceMappingURL=handlers-bind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers-bind.d.ts","sourceRoot":"","sources":["../../../src/tools/sources/handlers-bind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH,OAAO,EAIH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAyMxD;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GACvB,MAAM,GACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAE1D,wBAAsB,uBAAuB,CACzC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAC3C,KAAK,EAAE;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CACtD,GACF,OAAO,CAAC,UAAU,CAAC,CAgIrB;AAID,wBAAsB,yBAAyB,CAC3C,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAC3C,KAAK,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACtF,OAAO,CAAC,UAAU,CAAC,CAoCrB"}
1
+ {"version":3,"file":"handlers-bind.d.ts","sourceRoot":"","sources":["../../../src/tools/sources/handlers-bind.ts"],"names":[],"mappings":"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"}