@wootsup/yt-builder-mcp 1.1.7 → 1.3.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 (249) hide show
  1. package/README.md +14 -10
  2. package/bin/yt-builder-mcp.js +55 -40
  3. package/dist/auth.d.ts +18 -0
  4. package/dist/auth.d.ts.map +1 -1
  5. package/dist/auth.js +18 -0
  6. package/dist/auth.js.map +1 -1
  7. package/dist/catalog/build-catalog.d.ts +63 -0
  8. package/dist/catalog/build-catalog.d.ts.map +1 -0
  9. package/dist/catalog/build-catalog.js +166 -0
  10. package/dist/catalog/build-catalog.js.map +1 -0
  11. package/dist/cli/invocation-decision.d.ts +57 -0
  12. package/dist/cli/invocation-decision.d.ts.map +1 -0
  13. package/dist/cli/invocation-decision.js +86 -0
  14. package/dist/cli/invocation-decision.js.map +1 -0
  15. package/dist/client.d.ts +28 -0
  16. package/dist/client.d.ts.map +1 -1
  17. package/dist/client.js +40 -1
  18. package/dist/client.js.map +1 -1
  19. package/dist/clients/claude-code.d.ts.map +1 -1
  20. package/dist/clients/claude-code.js +3 -1
  21. package/dist/clients/claude-code.js.map +1 -1
  22. package/dist/clients/claude-desktop.d.ts.map +1 -1
  23. package/dist/clients/claude-desktop.js +3 -1
  24. package/dist/clients/claude-desktop.js.map +1 -1
  25. package/dist/clients/cline.d.ts.map +1 -1
  26. package/dist/clients/cline.js +3 -1
  27. package/dist/clients/cline.js.map +1 -1
  28. package/dist/clients/codex-cli.d.ts +1 -1
  29. package/dist/clients/codex-cli.d.ts.map +1 -1
  30. package/dist/clients/codex-cli.js +98 -0
  31. package/dist/clients/codex-cli.js.map +1 -1
  32. package/dist/clients/continue.d.ts.map +1 -1
  33. package/dist/clients/continue.js +70 -1
  34. package/dist/clients/continue.js.map +1 -1
  35. package/dist/clients/cursor.d.ts.map +1 -1
  36. package/dist/clients/cursor.js +3 -1
  37. package/dist/clients/cursor.js.map +1 -1
  38. package/dist/clients/gemini-cli.d.ts.map +1 -1
  39. package/dist/clients/gemini-cli.js +3 -1
  40. package/dist/clients/gemini-cli.js.map +1 -1
  41. package/dist/clients/index.d.ts +104 -0
  42. package/dist/clients/index.d.ts.map +1 -1
  43. package/dist/clients/index.js +141 -0
  44. package/dist/clients/index.js.map +1 -1
  45. package/dist/clients/roo-code.d.ts.map +1 -1
  46. package/dist/clients/roo-code.js +3 -1
  47. package/dist/clients/roo-code.js.map +1 -1
  48. package/dist/clients/zed.d.ts.map +1 -1
  49. package/dist/clients/zed.js +3 -1
  50. package/dist/clients/zed.js.map +1 -1
  51. package/dist/gateway/advanced-read-tool.d.ts +37 -0
  52. package/dist/gateway/advanced-read-tool.d.ts.map +1 -0
  53. package/dist/gateway/advanced-read-tool.js +156 -0
  54. package/dist/gateway/advanced-read-tool.js.map +1 -0
  55. package/dist/gateway/advanced-tool/domains.d.ts +18 -3
  56. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
  57. package/dist/gateway/advanced-tool/domains.js +28 -9
  58. package/dist/gateway/advanced-tool/domains.js.map +1 -1
  59. package/dist/gateway/advanced-tool/register.d.ts.map +1 -1
  60. package/dist/gateway/advanced-tool/register.js +43 -11
  61. package/dist/gateway/advanced-tool/register.js.map +1 -1
  62. package/dist/gateway/essentials.d.ts +14 -4
  63. package/dist/gateway/essentials.d.ts.map +1 -1
  64. package/dist/gateway/essentials.js +55 -5
  65. package/dist/gateway/essentials.js.map +1 -1
  66. package/dist/gateway/test-support.d.ts +3 -3
  67. package/dist/gateway/test-support.js +3 -3
  68. package/dist/index.d.ts +2 -1
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +19 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/install-skill.js +1 -1
  73. package/dist/proxy/bridge.d.ts +36 -0
  74. package/dist/proxy/bridge.d.ts.map +1 -0
  75. package/dist/proxy/bridge.js +129 -0
  76. package/dist/proxy/bridge.js.map +1 -0
  77. package/dist/proxy/mode.d.ts +10 -0
  78. package/dist/proxy/mode.d.ts.map +1 -0
  79. package/dist/proxy/mode.js +20 -0
  80. package/dist/proxy/mode.js.map +1 -0
  81. package/dist/server.d.ts +6 -4
  82. package/dist/server.d.ts.map +1 -1
  83. package/dist/server.js +14 -4
  84. package/dist/server.js.map +1 -1
  85. package/dist/setup-cli.d.ts +41 -0
  86. package/dist/setup-cli.d.ts.map +1 -1
  87. package/dist/setup-cli.js +163 -1
  88. package/dist/setup-cli.js.map +1 -1
  89. package/dist/setup-prompts.d.ts +23 -0
  90. package/dist/setup-prompts.d.ts.map +1 -1
  91. package/dist/setup-prompts.js +76 -1
  92. package/dist/setup-prompts.js.map +1 -1
  93. package/dist/setup-wizard.d.ts.map +1 -1
  94. package/dist/setup-wizard.js +7 -0
  95. package/dist/setup-wizard.js.map +1 -1
  96. package/dist/sites/bootstrap.d.ts +41 -0
  97. package/dist/sites/bootstrap.d.ts.map +1 -0
  98. package/dist/sites/bootstrap.js +58 -0
  99. package/dist/sites/bootstrap.js.map +1 -0
  100. package/dist/sites/client-pool.d.ts +33 -0
  101. package/dist/sites/client-pool.d.ts.map +1 -1
  102. package/dist/sites/client-pool.js +69 -1
  103. package/dist/sites/client-pool.js.map +1 -1
  104. package/dist/sites/registry.d.ts +30 -0
  105. package/dist/sites/registry.d.ts.map +1 -1
  106. package/dist/sites/registry.js.map +1 -1
  107. package/dist/sites/store.d.ts +8 -1
  108. package/dist/sites/store.d.ts.map +1 -1
  109. package/dist/sites/store.js +17 -2
  110. package/dist/sites/store.js.map +1 -1
  111. package/dist/sites/tools/index.d.ts.map +1 -1
  112. package/dist/sites/tools/index.js +9 -1
  113. package/dist/sites/tools/index.js.map +1 -1
  114. package/dist/sites/tools/use-site.d.ts +47 -0
  115. package/dist/sites/tools/use-site.d.ts.map +1 -0
  116. package/dist/sites/tools/use-site.js +203 -0
  117. package/dist/sites/tools/use-site.js.map +1 -0
  118. package/dist/tools/bind-guidance.d.ts +80 -0
  119. package/dist/tools/bind-guidance.d.ts.map +1 -0
  120. package/dist/tools/bind-guidance.js +95 -0
  121. package/dist/tools/bind-guidance.js.map +1 -0
  122. package/dist/tools/elements/builders.d.ts.map +1 -1
  123. package/dist/tools/elements/builders.js +75 -18
  124. package/dist/tools/elements/builders.js.map +1 -1
  125. package/dist/tools/elements/handlers-write.d.ts +20 -3
  126. package/dist/tools/elements/handlers-write.d.ts.map +1 -1
  127. package/dist/tools/elements/handlers-write.js +372 -10
  128. package/dist/tools/elements/handlers-write.js.map +1 -1
  129. package/dist/tools/elements/handlers.d.ts +6 -1
  130. package/dist/tools/elements/handlers.d.ts.map +1 -1
  131. package/dist/tools/elements/handlers.js +77 -10
  132. package/dist/tools/elements/handlers.js.map +1 -1
  133. package/dist/tools/elements/layout-hierarchy-rules.d.ts +62 -0
  134. package/dist/tools/elements/layout-hierarchy-rules.d.ts.map +1 -0
  135. package/dist/tools/elements/layout-hierarchy-rules.js +154 -0
  136. package/dist/tools/elements/layout-hierarchy-rules.js.map +1 -0
  137. package/dist/tools/format/elements-format.d.ts +35 -0
  138. package/dist/tools/format/elements-format.d.ts.map +1 -1
  139. package/dist/tools/format/elements-format.js +134 -12
  140. package/dist/tools/format/elements-format.js.map +1 -1
  141. package/dist/tools/format/inspection-format.d.ts +29 -0
  142. package/dist/tools/format/inspection-format.d.ts.map +1 -1
  143. package/dist/tools/format/inspection-format.js +99 -22
  144. package/dist/tools/format/inspection-format.js.map +1 -1
  145. package/dist/tools/format/pages-format.d.ts.map +1 -1
  146. package/dist/tools/format/pages-format.js +7 -0
  147. package/dist/tools/format/pages-format.js.map +1 -1
  148. package/dist/tools/format/sources-format.d.ts +8 -0
  149. package/dist/tools/format/sources-format.d.ts.map +1 -1
  150. package/dist/tools/format/sources-format.js +10 -0
  151. package/dist/tools/format/sources-format.js.map +1 -1
  152. package/dist/tools/health.d.ts.map +1 -1
  153. package/dist/tools/health.js +24 -0
  154. package/dist/tools/health.js.map +1 -1
  155. package/dist/tools/index.d.ts.map +1 -1
  156. package/dist/tools/index.js +4 -0
  157. package/dist/tools/index.js.map +1 -1
  158. package/dist/tools/inspection.d.ts +24 -0
  159. package/dist/tools/inspection.d.ts.map +1 -1
  160. package/dist/tools/inspection.js +297 -5
  161. package/dist/tools/inspection.js.map +1 -1
  162. package/dist/tools/layout-flatten.d.ts +11 -8
  163. package/dist/tools/layout-flatten.d.ts.map +1 -1
  164. package/dist/tools/layout-flatten.js +17 -6
  165. package/dist/tools/layout-flatten.js.map +1 -1
  166. package/dist/tools/multi-items/builders.d.ts.map +1 -1
  167. package/dist/tools/multi-items/builders.js +18 -3
  168. package/dist/tools/multi-items/builders.js.map +1 -1
  169. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +1 -1
  170. package/dist/tools/multi-items/clean-implode-handler.js +2 -2
  171. package/dist/tools/multi-items/clean-implode-handler.js.map +1 -1
  172. package/dist/tools/multi-items/format/inspection-format.d.ts +41 -0
  173. package/dist/tools/multi-items/format/inspection-format.d.ts.map +1 -0
  174. package/dist/tools/multi-items/format/inspection-format.js +64 -0
  175. package/dist/tools/multi-items/format/inspection-format.js.map +1 -0
  176. package/dist/tools/multi-items/inspect-handler.d.ts +50 -2
  177. package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -1
  178. package/dist/tools/multi-items/inspect-handler.js +237 -10
  179. package/dist/tools/multi-items/inspect-handler.js.map +1 -1
  180. package/dist/tools/multi-items/inspection-cache.d.ts +85 -0
  181. package/dist/tools/multi-items/inspection-cache.d.ts.map +1 -0
  182. package/dist/tools/multi-items/inspection-cache.js +126 -0
  183. package/dist/tools/multi-items/inspection-cache.js.map +1 -0
  184. package/dist/tools/pages/builders.d.ts +31 -2
  185. package/dist/tools/pages/builders.d.ts.map +1 -1
  186. package/dist/tools/pages/builders.js +173 -17
  187. package/dist/tools/pages/builders.js.map +1 -1
  188. package/dist/tools/pages/handlers-read.d.ts +6 -2
  189. package/dist/tools/pages/handlers-read.d.ts.map +1 -1
  190. package/dist/tools/pages/handlers-read.js +228 -26
  191. package/dist/tools/pages/handlers-read.js.map +1 -1
  192. package/dist/tools/pages/handlers-write.d.ts +143 -7
  193. package/dist/tools/pages/handlers-write.d.ts.map +1 -1
  194. package/dist/tools/pages/handlers-write.js +215 -11
  195. package/dist/tools/pages/handlers-write.js.map +1 -1
  196. package/dist/tools/pages/index.d.ts +1 -1
  197. package/dist/tools/pages/index.d.ts.map +1 -1
  198. package/dist/tools/pages/index.js +1 -1
  199. package/dist/tools/pages/index.js.map +1 -1
  200. package/dist/tools/pages/schemas.d.ts +166 -0
  201. package/dist/tools/pages/schemas.d.ts.map +1 -1
  202. package/dist/tools/pages/schemas.js +347 -0
  203. package/dist/tools/pages/schemas.js.map +1 -1
  204. package/dist/tools/shared-schemas.d.ts.map +1 -1
  205. package/dist/tools/shared-schemas.js +26 -11
  206. package/dist/tools/shared-schemas.js.map +1 -1
  207. package/dist/tools/sources/builders.d.ts.map +1 -1
  208. package/dist/tools/sources/builders.js +64 -6
  209. package/dist/tools/sources/builders.js.map +1 -1
  210. package/dist/tools/sources/handlers-bind.d.ts +13 -1
  211. package/dist/tools/sources/handlers-bind.d.ts.map +1 -1
  212. package/dist/tools/sources/handlers-bind.js +219 -5
  213. package/dist/tools/sources/handlers-bind.js.map +1 -1
  214. package/dist/tools/sources/handlers.d.ts +3 -0
  215. package/dist/tools/sources/handlers.d.ts.map +1 -1
  216. package/dist/tools/sources/handlers.js +45 -8
  217. package/dist/tools/sources/handlers.js.map +1 -1
  218. package/dist/tools/sparse-fields.d.ts +23 -0
  219. package/dist/tools/sparse-fields.d.ts.map +1 -1
  220. package/dist/tools/sparse-fields.js +29 -0
  221. package/dist/tools/sparse-fields.js.map +1 -1
  222. package/dist/tools/sublayout/builders.d.ts +23 -0
  223. package/dist/tools/sublayout/builders.d.ts.map +1 -0
  224. package/dist/tools/sublayout/builders.js +54 -0
  225. package/dist/tools/sublayout/builders.js.map +1 -0
  226. package/dist/tools/sublayout/index.d.ts +13 -0
  227. package/dist/tools/sublayout/index.d.ts.map +1 -0
  228. package/dist/tools/sublayout/index.js +13 -0
  229. package/dist/tools/sublayout/index.js.map +1 -0
  230. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts +95 -0
  231. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts.map +1 -0
  232. package/dist/tools/sublayout/inspect-sublayout-handler.js +181 -0
  233. package/dist/tools/sublayout/inspect-sublayout-handler.js.map +1 -0
  234. package/dist/tools/tool-builder/results.d.ts +31 -0
  235. package/dist/tools/tool-builder/results.d.ts.map +1 -1
  236. package/dist/tools/tool-builder/results.js +95 -4
  237. package/dist/tools/tool-builder/results.js.map +1 -1
  238. package/dist/uninstall-skill.d.ts +52 -0
  239. package/dist/uninstall-skill.d.ts.map +1 -0
  240. package/dist/uninstall-skill.js +146 -0
  241. package/dist/uninstall-skill.js.map +1 -0
  242. package/dist/uninstall.d.ts +73 -0
  243. package/dist/uninstall.d.ts.map +1 -0
  244. package/dist/uninstall.js +82 -0
  245. package/dist/uninstall.js.map +1 -0
  246. package/icon.png +0 -0
  247. package/manifest.json +10 -10
  248. package/package.json +7 -3
  249. package/skills/yt-builder-mcp/SKILL.md +157 -88
@@ -1 +1 @@
1
- {"version":3,"file":"inspect-handler.js","sourceRoot":"","sources":["../../../src/tools/multi-items/inspect-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAmB,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AAEhG,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;QACzB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5D,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE;QACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACzC,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,EAAE,MAAM,EAAyB,EACjC,EAAE,WAAW,EAAE,YAAY,EAAiD;IAE5E,MAAM,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CACzB,UAAU,kBAAkB,CAAC,WAAW,CAAC,aAAa,OAAO,sBAAsB,CACtF,CAAC;QACF,kDAAkD;QAClD,yDAAyD;QACzD,8DAA8D;QAC9D,iEAAiE;QACjE,6CAA6C;QAC7C,OAAO,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,WAAW,CAAC;YACf,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;YACtC,IAAI,EACA,gFAAgF;gBAChF,8CAA8C;SACrD,CAAC,CAAC;IACP,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"inspect-handler.js","sourceRoot":"","sources":["../../../src/tools/multi-items/inspect-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * InspectionCache — Wave-16 #34 (6.2).
3
+ *
4
+ * A tiny in-process TTL cache for `inspect_multi_items_binding` results.
5
+ * Keyed by `(template_id, element_path, etag)`:
6
+ *
7
+ * - `template_id` + `element_path` identify the element;
8
+ * - `etag` is the GLOBAL state ETag (from `GET /etag`). Every write
9
+ * tool bumps it (see ETAG schema note: "every successful write
10
+ * returns a NEW ETag"). So a write to ANY template surfaces a fresh
11
+ * etag → a NEW cache key → a guaranteed miss. The stale entry for a
12
+ * mutated template can never be served. This reuses the existing
13
+ * etag-bump mechanism rather than inventing a parallel invalidation
14
+ * channel.
15
+ *
16
+ * TTL is a hard 60s upper bound so an entry cannot live indefinitely
17
+ * even if the etag never changes (read-only sessions). The clock is
18
+ * injectable so the TTL behaviour is testable without sleeping.
19
+ *
20
+ * Bounded growth — Wave-16 Phase-6 nit. The key embeds the GLOBAL etag,
21
+ * and every write bumps it, so each `set()` lands under a NEW key while
22
+ * the old-etag entries are never re-queried (the handler always reads the
23
+ * current etag). Without a bound they would accumulate in the Map forever
24
+ * in a long-lived high-write session. Two cheap defenses keep it bounded:
25
+ *
26
+ * 1. Opportunistic sweep on every `set()`: drop entries already past
27
+ * the TTL. The TTL is a hard upper bound, so a past-TTL entry is dead
28
+ * and can never be served — sweeping it changes no observable
29
+ * behaviour, it only reclaims the slot.
30
+ * 2. Hard max-size cap with oldest-first eviction (belt-and-suspenders)
31
+ * for the pathological case where many DISTINCT keys all stay fresh
32
+ * (a read-only burst the sweep cannot reclaim). `Map` preserves
33
+ * insertion order, so the oldest entry is the first key.
34
+ *
35
+ * Concrete generic type `T` — no `any`. The cache stores whatever the
36
+ * handler computed (the structured inspect payload).
37
+ *
38
+ * @license MIT
39
+ */
40
+ /** Hard TTL upper bound for a cached inspection entry (60 seconds). */
41
+ export declare const INSPECTION_CACHE_TTL_MS = 60000;
42
+ /**
43
+ * Hard ceiling on live entries. Reached only when many DISTINCT keys stay
44
+ * fresh inside the TTL (a read-only burst the TTL-sweep cannot reclaim);
45
+ * the normal write-driven etag churn is reclaimed by the sweep long before
46
+ * this. 256 covers a generous working set while keeping the Map tiny.
47
+ */
48
+ export declare const INSPECTION_CACHE_MAX_ENTRIES = 256;
49
+ /** Monotonic-ish millisecond clock; defaults to `Date.now`. */
50
+ export type Clock = () => number;
51
+ export declare class InspectionCache<T> {
52
+ private readonly store;
53
+ private readonly now;
54
+ private readonly ttlMs;
55
+ private readonly maxEntries;
56
+ constructor(now?: Clock, ttlMs?: number, maxEntries?: number);
57
+ /** Build the composite cache key. Pipe-joined; the parts are
58
+ * server-controlled identifiers (template id, JSON-Pointer, quoted
59
+ * etag) so collision via a literal `|` in a value is not a concern. */
60
+ private key;
61
+ /** Read a fresh entry, or `undefined` on miss / expiry. Expired
62
+ * entries are evicted on access. */
63
+ get(templateId: string, elementPath: string, etag: string): T | undefined;
64
+ /**
65
+ * Store a value under the composite key, stamped with the clock.
66
+ *
67
+ * Bounds the Map first (sweep past-TTL entries, then enforce the
68
+ * max-size cap with oldest-first eviction) so a long-lived high-write
69
+ * session cannot leak old-etag keys. See class doc for the why.
70
+ */
71
+ set(templateId: string, elementPath: string, etag: string, value: T): void;
72
+ /**
73
+ * Number of LIVE (non-expired) entries currently held. Counts rather
74
+ * than returns `store.size` so a caller (and the tests) sees the true
75
+ * working-set size even if a not-yet-swept dead entry lingers.
76
+ */
77
+ size(): number;
78
+ /** Drop every entry whose TTL has elapsed. Cheap, and dead entries
79
+ * can never be served, so this changes no observable behaviour. */
80
+ private sweepExpired;
81
+ /** Evict oldest-first until the Map is within the max-size cap. `Map`
82
+ * iterates in insertion order, so the first key is the oldest. */
83
+ private enforceMaxEntries;
84
+ }
85
+ //# sourceMappingURL=inspection-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspection-cache.d.ts","sourceRoot":"","sources":["../../../src/tools/multi-items/inspection-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,uEAAuE;AACvE,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,+DAA+D;AAC/D,MAAM,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;AAOjC,qBAAa,eAAe,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAC1D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAGhC,GAAG,GAAE,KAAgB,EACrB,KAAK,GAAE,MAAgC,EACvC,UAAU,GAAE,MAAqC;IAOrD;;2EAEuE;IACvE,OAAO,CAAC,GAAG;IAIX;wCACoC;IACpC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAWzE;;;;;;OAMG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAO1E;;;;OAIG;IACH,IAAI,IAAI,MAAM;IASd;uEACmE;IACnE,OAAO,CAAC,YAAY;IASpB;sEACkE;IAClE,OAAO,CAAC,iBAAiB;CAO5B"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * InspectionCache — Wave-16 #34 (6.2).
3
+ *
4
+ * A tiny in-process TTL cache for `inspect_multi_items_binding` results.
5
+ * Keyed by `(template_id, element_path, etag)`:
6
+ *
7
+ * - `template_id` + `element_path` identify the element;
8
+ * - `etag` is the GLOBAL state ETag (from `GET /etag`). Every write
9
+ * tool bumps it (see ETAG schema note: "every successful write
10
+ * returns a NEW ETag"). So a write to ANY template surfaces a fresh
11
+ * etag → a NEW cache key → a guaranteed miss. The stale entry for a
12
+ * mutated template can never be served. This reuses the existing
13
+ * etag-bump mechanism rather than inventing a parallel invalidation
14
+ * channel.
15
+ *
16
+ * TTL is a hard 60s upper bound so an entry cannot live indefinitely
17
+ * even if the etag never changes (read-only sessions). The clock is
18
+ * injectable so the TTL behaviour is testable without sleeping.
19
+ *
20
+ * Bounded growth — Wave-16 Phase-6 nit. The key embeds the GLOBAL etag,
21
+ * and every write bumps it, so each `set()` lands under a NEW key while
22
+ * the old-etag entries are never re-queried (the handler always reads the
23
+ * current etag). Without a bound they would accumulate in the Map forever
24
+ * in a long-lived high-write session. Two cheap defenses keep it bounded:
25
+ *
26
+ * 1. Opportunistic sweep on every `set()`: drop entries already past
27
+ * the TTL. The TTL is a hard upper bound, so a past-TTL entry is dead
28
+ * and can never be served — sweeping it changes no observable
29
+ * behaviour, it only reclaims the slot.
30
+ * 2. Hard max-size cap with oldest-first eviction (belt-and-suspenders)
31
+ * for the pathological case where many DISTINCT keys all stay fresh
32
+ * (a read-only burst the sweep cannot reclaim). `Map` preserves
33
+ * insertion order, so the oldest entry is the first key.
34
+ *
35
+ * Concrete generic type `T` — no `any`. The cache stores whatever the
36
+ * handler computed (the structured inspect payload).
37
+ *
38
+ * @license MIT
39
+ */
40
+ /** Hard TTL upper bound for a cached inspection entry (60 seconds). */
41
+ export const INSPECTION_CACHE_TTL_MS = 60_000;
42
+ /**
43
+ * Hard ceiling on live entries. Reached only when many DISTINCT keys stay
44
+ * fresh inside the TTL (a read-only burst the TTL-sweep cannot reclaim);
45
+ * the normal write-driven etag churn is reclaimed by the sweep long before
46
+ * this. 256 covers a generous working set while keeping the Map tiny.
47
+ */
48
+ export const INSPECTION_CACHE_MAX_ENTRIES = 256;
49
+ export class InspectionCache {
50
+ store = new Map();
51
+ now;
52
+ ttlMs;
53
+ maxEntries;
54
+ constructor(now = Date.now, ttlMs = INSPECTION_CACHE_TTL_MS, maxEntries = INSPECTION_CACHE_MAX_ENTRIES) {
55
+ this.now = now;
56
+ this.ttlMs = ttlMs;
57
+ this.maxEntries = maxEntries;
58
+ }
59
+ /** Build the composite cache key. Pipe-joined; the parts are
60
+ * server-controlled identifiers (template id, JSON-Pointer, quoted
61
+ * etag) so collision via a literal `|` in a value is not a concern. */
62
+ key(templateId, elementPath, etag) {
63
+ return `${templateId}|${elementPath}|${etag}`;
64
+ }
65
+ /** Read a fresh entry, or `undefined` on miss / expiry. Expired
66
+ * entries are evicted on access. */
67
+ get(templateId, elementPath, etag) {
68
+ const k = this.key(templateId, elementPath, etag);
69
+ const entry = this.store.get(k);
70
+ if (entry === undefined)
71
+ return undefined;
72
+ if (this.now() - entry.storedAt >= this.ttlMs) {
73
+ this.store.delete(k);
74
+ return undefined;
75
+ }
76
+ return entry.value;
77
+ }
78
+ /**
79
+ * Store a value under the composite key, stamped with the clock.
80
+ *
81
+ * Bounds the Map first (sweep past-TTL entries, then enforce the
82
+ * max-size cap with oldest-first eviction) so a long-lived high-write
83
+ * session cannot leak old-etag keys. See class doc for the why.
84
+ */
85
+ set(templateId, elementPath, etag, value) {
86
+ const k = this.key(templateId, elementPath, etag);
87
+ this.sweepExpired();
88
+ this.store.set(k, { value, storedAt: this.now() });
89
+ this.enforceMaxEntries();
90
+ }
91
+ /**
92
+ * Number of LIVE (non-expired) entries currently held. Counts rather
93
+ * than returns `store.size` so a caller (and the tests) sees the true
94
+ * working-set size even if a not-yet-swept dead entry lingers.
95
+ */
96
+ size() {
97
+ let live = 0;
98
+ const cutoff = this.now();
99
+ for (const entry of this.store.values()) {
100
+ if (cutoff - entry.storedAt < this.ttlMs)
101
+ live++;
102
+ }
103
+ return live;
104
+ }
105
+ /** Drop every entry whose TTL has elapsed. Cheap, and dead entries
106
+ * can never be served, so this changes no observable behaviour. */
107
+ sweepExpired() {
108
+ const cutoff = this.now();
109
+ for (const [k, entry] of this.store) {
110
+ if (cutoff - entry.storedAt >= this.ttlMs) {
111
+ this.store.delete(k);
112
+ }
113
+ }
114
+ }
115
+ /** Evict oldest-first until the Map is within the max-size cap. `Map`
116
+ * iterates in insertion order, so the first key is the oldest. */
117
+ enforceMaxEntries() {
118
+ while (this.store.size > this.maxEntries) {
119
+ const oldest = this.store.keys().next().value;
120
+ if (oldest === undefined)
121
+ break;
122
+ this.store.delete(oldest);
123
+ }
124
+ }
125
+ }
126
+ //# sourceMappingURL=inspection-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspection-cache.js","sourceRoot":"","sources":["../../../src/tools/multi-items/inspection-cache.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,41 @@
3
3
  *
4
4
  * Split out of `src/tools/pages.ts` (Round-2 R2-A2-CRIT1). Handler
5
5
  * bodies live in `./handlers-read.ts` (pages_list, page_get_layout,
6
- * page_get_schema, get_etag) and `./handlers-write.ts` (page_save,
7
- * page_publish — 3-phase progress contract).
6
+ * page_get_schema, get_etag, template_summary) and `./handlers-write.ts`
7
+ * (page_save, page_publish, pages_create, pages_delete — 3-phase
8
+ * progress contract).
9
+ *
10
+ * Surface: 9 page-level tools (pre-C4: 7; v1.2 C4 added pages_create +
11
+ * pages_delete wrapping POST /pages and DELETE /pages/{id}).
8
12
  *
9
13
  * @license MIT
10
14
  */
11
15
  import type { ClientPool } from '../../sites/client-pool.js';
12
16
  import { type AnyToolDefinition } from '../tool-builder.js';
17
+ /**
18
+ * Render-context descriptor emitted by the page builders (Wave-16 #33-C).
19
+ *
20
+ * Gives the calling agent the page's template lineage, locale, and origin
21
+ * site in one place so it does not need a second round-trip to reason
22
+ * about where/how a page renders. `site_url` is always populated from the
23
+ * resolved site; `parent_template_id` and `locale` are `null` when the
24
+ * builder cannot reach them (rather than absent) so the shape is stable
25
+ * for consumers.
26
+ */
27
+ export interface RenderContext {
28
+ readonly parent_template_id: string | null;
29
+ readonly locale: string | null;
30
+ readonly site_url: string;
31
+ }
32
+ /**
33
+ * Build the {@link RenderContext} from the data reachable in a page
34
+ * builder. Pure: no I/O, no `any`. Missing `parentTemplateId` / `locale`
35
+ * collapse to `null`.
36
+ */
37
+ export declare function buildRenderContext(input: {
38
+ siteUrl: string;
39
+ parentTemplateId?: string | null;
40
+ locale?: string | null;
41
+ }): RenderContext;
13
42
  export declare function buildPagesTools(pool: ClientPool): readonly AnyToolDefinition[];
14
43
  //# sourceMappingURL=builders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAI7D,OAAO,EAKH,KAAK,iBAAiB,EACzB,MAAM,oBAAoB,CAAC;AA8B5B,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,iBAAiB,EAAE,CAoI9E"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/builders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAK7D,OAAO,EAMH,KAAK,iBAAiB,EACzB,MAAM,oBAAoB,CAAC;AAwC5B;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,aAAa,CAMhB;AAyCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,iBAAiB,EAAE,CAiR9E"}
@@ -3,8 +3,12 @@
3
3
  *
4
4
  * Split out of `src/tools/pages.ts` (Round-2 R2-A2-CRIT1). Handler
5
5
  * bodies live in `./handlers-read.ts` (pages_list, page_get_layout,
6
- * page_get_schema, get_etag) and `./handlers-write.ts` (page_save,
7
- * page_publish — 3-phase progress contract).
6
+ * page_get_schema, get_etag, template_summary) and `./handlers-write.ts`
7
+ * (page_save, page_publish, pages_create, pages_delete — 3-phase
8
+ * progress contract).
9
+ *
10
+ * Surface: 9 page-level tools (pre-C4: 7; v1.2 C4 added pages_create +
11
+ * pages_delete wrapping POST /pages and DELETE /pages/{id}).
8
12
  *
9
13
  * @license MIT
10
14
  */
@@ -12,10 +16,10 @@ import { z } from 'zod';
12
16
  import { withSiteRetry } from '../pool-resolve-helper.js';
13
17
  import { SITE_ID_SCHEMA, TEMPLATE_ID } from '../shared-schemas.js';
14
18
  import { FIELDS, FLAT } from '../sparse-fields.js';
15
- import { defineTool, mutating, readOnly, withSiteMeta, } from '../tool-builder.js';
19
+ import { creating, defineTool, mutating, readOnly, withSiteMeta, } from '../tool-builder.js';
16
20
  import { handleGetEtag, handlePageGetLayout, handlePageGetSchema, handlePagesList, handleTemplateSummary, } from './handlers-read.js';
17
- import { handlePagePublish, handlePageSave } from './handlers-write.js';
18
- import { ETAG_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
21
+ import { handlePageDynamize, handlePagePublish, handlePagesCreate, handlePagesDelete, handlePageSave, } from './handlers-write.js';
22
+ import { ETAG_OUTPUT_SCHEMA, PAGE_DYNAMIZE_INPUT, PAGES_CREATE_INPUT, PAGES_DELETE_INPUT, PAGES_DELETE_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
19
23
  // F-14: page-level save/publish accept OPTIONAL ETag (no precondition lock
20
24
  // at template level — element/binding mutations REQUIRE one via the strict
21
25
  // ETAG in shared-schemas.ts). Schema and description now agree: optional
@@ -27,16 +31,58 @@ const ETAG = z
27
31
  .describe('Optimistic-lock ETag (from yootheme_builder_get_etag). ' +
28
32
  'Optional; when provided, optimistic-lock is enforced (412 on conflict). ' +
29
33
  'When omitted, last-write-wins applies. Recommended for collaborative edits.');
34
+ /**
35
+ * Build the {@link RenderContext} from the data reachable in a page
36
+ * builder. Pure: no I/O, no `any`. Missing `parentTemplateId` / `locale`
37
+ * collapse to `null`.
38
+ */
39
+ export function buildRenderContext(input) {
40
+ return {
41
+ parent_template_id: input.parentTemplateId ?? null,
42
+ locale: input.locale ?? null,
43
+ site_url: input.siteUrl,
44
+ };
45
+ }
46
+ /**
47
+ * Best-effort locale extraction from a resolved site. The registry does
48
+ * not (yet) carry an explicit locale, so we read it from the platform
49
+ * descriptor when present; otherwise `null` (the consumer-stable
50
+ * "unknown" value). Kept narrow + guarded so this stays `any`-free.
51
+ */
52
+ function localeForSite(site) {
53
+ const platform = site.platform;
54
+ if (typeof platform === 'object' && platform !== null && 'locale' in platform) {
55
+ const value = platform.locale;
56
+ if (typeof value === 'string' && value !== '') {
57
+ return value;
58
+ }
59
+ }
60
+ return null;
61
+ }
62
+ /**
63
+ * Stamp a {@link RenderContext} into a tool result's free-form
64
+ * result-level `_meta` (next to the site-meta `withSiteMeta` adds).
65
+ * Never touches `structuredContent` — that stays schema-pure so it keeps
66
+ * validating against the tool's `outputSchema`. Pure: returns a new
67
+ * result, does not mutate the input.
68
+ */
69
+ function withRenderContext(result, ctx) {
70
+ const base = result._meta;
71
+ const mergedMeta = base !== undefined && base !== null && typeof base === 'object'
72
+ ? { ...base, render_context: ctx }
73
+ : { render_context: ctx };
74
+ return { ...result, _meta: mergedMeta };
75
+ }
30
76
  export function buildPagesTools(pool) {
31
77
  return [
32
78
  defineTool({
33
79
  name: 'yootheme_builder_pages_list',
34
80
  description: 'List all pages, templates, and layouts in the YOOtheme Pro builder. ' +
35
- 'Returns template_id, label, type, element count, and frontend_url per row. ' +
81
+ 'Returns template_id, label, type, element count, frontend_url, and ' +
82
+ 'builder_url (deep-link to open it in the builder) per row. ' +
36
83
  'CALL THIS FIRST to discover available template IDs before any tool that needs ' +
37
84
  'a template_id (page_get_layout, element_list, page_get_schema, etc.). ' +
38
- 'Keywords: list pages, list templates, list layouts, discover template_id, ' +
39
- 'index, available templates, what pages exist. ' +
85
+ 'Keywords: list pages, list templates, discover template_id. ' +
40
86
  'Pass `fields:["id","label"]` to slim. ' +
41
87
  'Returns ALL pages in one call (no pagination, typically <50 templates per site). ' +
42
88
  'Operates on the default site unless site_id is provided.',
@@ -47,13 +93,31 @@ export function buildPagesTools(pool) {
47
93
  }),
48
94
  defineTool({
49
95
  name: 'yootheme_builder_page_get_layout',
50
- description: 'Get full layout tree for one template. Default nested `{layout, ' +
51
- 'etag}`. Set `flat:true` for depth-first array `{elements:[...], ' +
52
- 'etag}`; combine with `fields[]` to project per-element. ' +
53
- 'Operates on the default site unless site_id is provided.',
96
+ description: 'Get the layout tree for one template. For dynamize/bind work prefer ' +
97
+ '`mode:"bindings_only"` just the binding skeleton (path, element_type, ' +
98
+ 'name, has_binding, source{query_name,props,has_condition}, children), no ' +
99
+ 'style props, typically <=15% of full size. Default `mode:"full"` returns ' +
100
+ 'nested `{layout, etag}`. `flat:true` gives a depth-first ' +
101
+ '`{elements:[...], etag}` array (combine with `fields[]`). A repeated full ' +
102
+ 'read of an unchanged template auto-skips with `[unchanged]` — `force:true` ' +
103
+ 're-fetches. Operates on the default site unless site_id is provided.',
54
104
  inputSchema: {
55
105
  site_id: SITE_ID_SCHEMA,
56
106
  template_id: TEMPLATE_ID,
107
+ // F195 (P0): bindings_only returns the trimmed binding skeleton —
108
+ // recommended for dynamize/bind workflows (token-efficient).
109
+ mode: z
110
+ .enum(['full', 'bindings_only'])
111
+ .optional()
112
+ .describe('full (default) = whole nested layout; bindings_only = trimmed ' +
113
+ 'binding skeleton (path/type/name/has_binding/source/children, ' +
114
+ 'no style props). Prefer bindings_only for dynamize/bind work.'),
115
+ // F195 (P0): bypass the per-process unchanged-read dedup.
116
+ force: z
117
+ .boolean()
118
+ .optional()
119
+ .describe('Re-fetch even if this exact (template, etag) full layout was ' +
120
+ 'already read this session (bypasses the [unchanged] dedup).'),
57
121
  flat: FLAT,
58
122
  fields: FIELDS,
59
123
  },
@@ -94,6 +158,12 @@ export function buildPagesTools(pool) {
94
158
  'count, max nesting depth, and named landmark sections — computed ' +
95
159
  'server-side in one call. Use this to grasp a large template before ' +
96
160
  'pulling element_list or page_get_layout. ' +
161
+ // F206 (P3): concrete first-call example. The Desktop client
162
+ // rejected the first guessed call because no example showed the
163
+ // exact arg shape (the whole yt-builder package used none, while
164
+ // apimapper's schema.ts does). Mirrors apimapper's 'Example:'
165
+ // pattern.
166
+ 'Example: yootheme_builder_template_summary({ template_id: "default" }). ' +
97
167
  'Operates on the default site unless site_id is provided.',
98
168
  inputSchema: { site_id: SITE_ID_SCHEMA, template_id: TEMPLATE_ID },
99
169
  outputSchema: TEMPLATE_SUMMARY_OUTPUT_SCHEMA,
@@ -102,17 +172,33 @@ export function buildPagesTools(pool) {
102
172
  }),
103
173
  defineTool({
104
174
  name: 'yootheme_builder_page_save',
105
- description: 'Re-run save-transforms and persist. ETag optional when provided, 412 on ' +
106
- 'conflict; when omitted, last-write-wins. Recommended for collaborative edits. ' +
107
- 'No-op when state is byte-identical (returns `no_changes:true`, ETag unchanged). ' +
175
+ description: 'Re-run save-transforms + flush caches. Optionally pass a whole `layout` to ' +
176
+ 'REPLACE the template tree ATOMICALLY (F85) — ideal for wholesale dynamization ' +
177
+ '(read layout swap query remap fields → write back). A supplied layout is ' +
178
+ 'validated + ETag-locked; on rejection nothing is persisted. Omit `layout` to just ' +
179
+ 're-run transforms (no-op if byte-identical) — for incremental edits use ' +
180
+ 'element_add/update/bind/delete first. New pages: pages_create. Publish: page_publish. ' +
181
+ 'ETag optional (412 on conflict; else last-write-wins). ' +
108
182
  'Operates on the default site unless site_id is provided.',
109
183
  inputSchema: {
110
184
  site_id: SITE_ID_SCHEMA,
111
185
  template_id: TEMPLATE_ID,
112
186
  etag: ETAG,
187
+ // F85: optional whole-layout atomic replacement (ARTICLE/page
188
+ // templates + theme templates). Same shape as pages_create.layout.
189
+ layout: z
190
+ .record(z.string(), z.unknown())
191
+ .optional()
192
+ .describe('Optional whole YT layout-node object (e.g. {type:"layout",children:[...]}) ' +
193
+ 'to replace the template tree atomically. Validated + ETag-locked. ' +
194
+ 'Omit to just re-run save-transforms.'),
113
195
  },
114
196
  annotations: mutating('Save Page'),
115
- handler: async ({ site_id, ...rest }, extra) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handlePageSave(client, rest, extra), site)),
197
+ handler: async ({ site_id, ...rest }, extra) => withSiteRetry(pool, site_id, async (client, site) => withRenderContext(withSiteMeta(await handlePageSave(client, rest, extra), site), buildRenderContext({
198
+ siteUrl: site.url,
199
+ parentTemplateId: rest.template_id,
200
+ locale: localeForSite(site),
201
+ }))),
116
202
  }),
117
203
  defineTool({
118
204
  name: 'yootheme_builder_page_publish',
@@ -129,7 +215,77 @@ export function buildPagesTools(pool) {
129
215
  // unchanged template snapshots the same ETag and flushes
130
216
  // the same caches. Matrix marks `idempotentHint:true`.
131
217
  annotations: mutating('Publish Page'),
132
- handler: async ({ site_id, ...rest }, extra) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handlePagePublish(client, rest, extra), site)),
218
+ handler: async ({ site_id, ...rest }, extra) => withSiteRetry(pool, site_id, async (client, site) => withRenderContext(withSiteMeta(await handlePagePublish(client, rest, extra), site), buildRenderContext({
219
+ siteUrl: site.url,
220
+ parentTemplateId: rest.template_id,
221
+ locale: localeForSite(site),
222
+ }))),
223
+ }),
224
+ // ─── C4 (v1.2) — pages_create + pages_delete ──────────────────
225
+ // First-class customer-facing page-level mutations. Both wrap
226
+ // Phase B REST endpoints (POST /pages, DELETE /pages/{id}) and
227
+ // are L1 essentials (see gateway/essentials.ts).
228
+ defineTool({
229
+ name: 'yootheme_builder_pages_create',
230
+ description: 'Create a page (WordPress) or article (Joomla 5/6) with a YOOtheme per-page ' +
231
+ 'layout. Required: title. Optional: slug, status (default draft), published ' +
232
+ '(default false → live on true: WP publish / Joomla state 1), layout (JSON), ' +
233
+ 'menu_item (Joomla SEF route), dry_run (preflight, no persist). Returns page_id ' +
234
+ '(WP) / article_id (Joomla), slug, template_id (page:{id} or article:{id}), etag, ' +
235
+ 'warnings. Joomla: a published article has NO SEF route until a menu item points ' +
236
+ 'at it — pass menu_item, else frontend_url may 404. ' +
237
+ 'Operates on the default site unless site_id is provided.',
238
+ inputSchema: { site_id: SITE_ID_SCHEMA, ...PAGES_CREATE_INPUT },
239
+ // No outputSchema: the response shape is a discriminated union
240
+ // (201 wet vs 200 dry-run). page_get_layout uses the same pattern.
241
+ annotations: mutating('Create Page'),
242
+ handler: async ({ site_id, ...rest }, extra) => withSiteRetry(pool, site_id, async (client, site) => withRenderContext(withSiteMeta(await handlePagesCreate(client, rest, extra), site), buildRenderContext({
243
+ siteUrl: site.url,
244
+ // A new page has no caller-supplied parent
245
+ // template; null until the REST response carries
246
+ // one (kept stable rather than absent).
247
+ parentTemplateId: null,
248
+ locale: localeForSite(site),
249
+ }))),
250
+ }),
251
+ // ─── P-G (Goldstandard wave 3) — page_dynamize ────────────────
252
+ // THE one-call canonical path to dynamize an existing designed
253
+ // section. L1 essential: an agent must reach it directly INSTEAD
254
+ // of hand-editing layout JSON (the recipe is CODE, server-side).
255
+ defineTool({
256
+ name: 'yootheme_builder_page_dynamize',
257
+ description: 'One-call way to dynamize a designed section: copies the layout ' +
258
+ 'byte-identically and swaps only what you map. Use INSTEAD of ' +
259
+ 'hand-editing JSON. Give a REFERENCE (section_name from ' +
260
+ 'template_summary, or element_path) + list_source_name + a leaf_map ' +
261
+ '(original leaf field-name → flat flow field; #parent + tuned props kept). ' +
262
+ 'A section with several source blocks (Played/Next/Later) dynamizes in ONE ' +
263
+ 'call via source_map ({match, source_name, leaf_map?}[]). Sub-query panels: ' +
264
+ 'key by "<subquery>.<leaf>". Returns page + `summary`. Requires page.title. ' +
265
+ 'Operates on the default site unless site_id is provided.',
266
+ inputSchema: { site_id: SITE_ID_SCHEMA, ...PAGE_DYNAMIZE_INPUT },
267
+ // No outputSchema: the response is the create wire-shape (WP
268
+ // page_id / Joomla article_id discriminated union) plus the
269
+ // `summary` object — pages_create uses the same no-outputSchema
270
+ // pattern for its discriminated union.
271
+ annotations: creating('Dynamize Page'),
272
+ handler: async ({ site_id, ...rest }, extra) => withSiteRetry(pool, site_id, async (client, site) => withRenderContext(withSiteMeta(await handlePageDynamize(client, rest, extra), site), buildRenderContext({
273
+ siteUrl: site.url,
274
+ parentTemplateId: null,
275
+ locale: localeForSite(site),
276
+ }))),
277
+ }),
278
+ defineTool({
279
+ name: 'yootheme_builder_pages_delete',
280
+ description: 'Delete a page (WordPress) or article (Joomla 5/6) with its YOOtheme per-page ' +
281
+ 'layout. Requires confirm:true (gate against accidental deletion). Default: trash ' +
282
+ '(recoverable). force:true: permanent delete. Refuses non-page/article types with ' +
283
+ '403 (Layer 9 defense). Returns deleted:true, page_id (WP) / article_id (Joomla), ' +
284
+ 'force_deleted, bumped etag. Operates on the default site unless site_id is provided.',
285
+ inputSchema: { site_id: SITE_ID_SCHEMA, ...PAGES_DELETE_INPUT },
286
+ outputSchema: PAGES_DELETE_OUTPUT_SCHEMA,
287
+ annotations: mutating('Delete Page'),
288
+ handler: async ({ site_id, ...rest }, extra) => withSiteRetry(pool, site_id, async (client, site) => withSiteMeta(await handlePagesDelete(client, rest, extra), site)),
133
289
  }),
134
290
  ];
135
291
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/tools/pages/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../../src/tools/pages/builders.ts"],"names":[],"mappings":"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"}
@@ -7,15 +7,19 @@
7
7
  *
8
8
  * @license MIT
9
9
  */
10
- import type { RestClient } from '../../client.js';
10
+ import { type RestClient } from '../../client.js';
11
11
  import { type ToolResult } from '../tool-builder.js';
12
12
  export declare function handlePagesList(client: RestClient, { fields }: {
13
13
  fields?: readonly string[];
14
14
  }): Promise<ToolResult>;
15
- export declare function handlePageGetLayout(client: RestClient, { template_id, flat, fields }: {
15
+ /** Test-only: clear the dedup cache between cases (mirrors the bus reset idiom). */
16
+ export declare function __resetLayoutDedupCacheForTests(): void;
17
+ export declare function handlePageGetLayout(client: RestClient, { template_id, flat, fields, mode, force }: {
16
18
  template_id: string;
17
19
  flat?: boolean;
18
20
  fields?: readonly string[];
21
+ mode?: 'full' | 'bindings_only';
22
+ force?: boolean;
19
23
  }): Promise<ToolResult>;
20
24
  export declare function handlePageGetSchema(client: RestClient, { template_id }: {
21
25
  template_id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"handlers-read.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/handlers-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAiBlD,OAAO,EAIH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAI5B,wBAAsB,eAAe,CACjC,MAAM,EAAE,UAAU,EAClB,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC3C,OAAO,CAAC,UAAU,CAAC,CAyCrB;AAID,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,GACF,OAAO,CAAC,UAAU,CAAC,CA+DrB;AAID,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,UAAU,CAAC,CA4CrB;AAID,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB3E;AAID;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,UAAU,CAAC,CA6BrB"}
1
+ {"version":3,"file":"handlers-read.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/handlers-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAkBpE,OAAO,EAIH,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAI5B,wBAAsB,eAAe,CACjC,MAAM,EAAE,UAAU,EAClB,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC3C,OAAO,CAAC,UAAU,CAAC,CAwCrB;AAsBD,oFAAoF;AACpF,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAuED,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,GACF,OAAO,CAAC,UAAU,CAAC,CA0KrB;AAID,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,UAAU,CAAC,CA4CrB;AAID,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB3E;AAID;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,UAAU,CAAC,CA8CrB"}