@wootsup/yt-builder-mcp 1.1.6 → 1.2.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 (430) hide show
  1. package/README.md +7 -7
  2. package/bin/yt-builder-mcp.js +55 -40
  3. package/dist/auth.d.ts +137 -0
  4. package/dist/auth.d.ts.map +1 -0
  5. package/dist/auth.js +244 -0
  6. package/dist/auth.js.map +1 -0
  7. package/dist/cli/invocation-decision.d.ts +57 -0
  8. package/dist/cli/invocation-decision.d.ts.map +1 -0
  9. package/dist/cli/invocation-decision.js +86 -0
  10. package/dist/cli/invocation-decision.js.map +1 -0
  11. package/dist/client.d.ts +112 -0
  12. package/dist/client.d.ts.map +1 -0
  13. package/dist/client.js +190 -0
  14. package/dist/client.js.map +1 -0
  15. package/dist/clients/claude-code.d.ts +18 -0
  16. package/dist/clients/claude-code.d.ts.map +1 -0
  17. package/dist/clients/claude-code.js +55 -0
  18. package/dist/clients/claude-code.js.map +1 -0
  19. package/dist/clients/claude-desktop.d.ts +19 -0
  20. package/dist/clients/claude-desktop.d.ts.map +1 -0
  21. package/dist/clients/claude-desktop.js +58 -0
  22. package/dist/clients/claude-desktop.js.map +1 -0
  23. package/dist/clients/cline.d.ts +26 -0
  24. package/dist/clients/cline.d.ts.map +1 -0
  25. package/dist/clients/cline.js +82 -0
  26. package/dist/clients/cline.js.map +1 -0
  27. package/dist/clients/codex-cli.d.ts +42 -0
  28. package/dist/clients/codex-cli.d.ts.map +1 -0
  29. package/dist/clients/codex-cli.js +292 -0
  30. package/dist/clients/codex-cli.js.map +1 -0
  31. package/dist/clients/continue.d.ts +13 -0
  32. package/dist/clients/continue.d.ts.map +1 -0
  33. package/dist/clients/continue.js +121 -0
  34. package/dist/clients/continue.js.map +1 -0
  35. package/dist/clients/cursor.d.ts +12 -0
  36. package/dist/clients/cursor.d.ts.map +1 -0
  37. package/dist/clients/cursor.js +40 -0
  38. package/dist/clients/cursor.js.map +1 -0
  39. package/dist/clients/gemini-cli.d.ts +18 -0
  40. package/dist/clients/gemini-cli.d.ts.map +1 -0
  41. package/dist/clients/gemini-cli.js +46 -0
  42. package/dist/clients/gemini-cli.js.map +1 -0
  43. package/dist/clients/home.d.ts +14 -0
  44. package/dist/clients/home.d.ts.map +1 -0
  45. package/dist/clients/home.js +20 -0
  46. package/dist/clients/home.js.map +1 -0
  47. package/dist/clients/index.d.ts +156 -0
  48. package/dist/clients/index.d.ts.map +1 -0
  49. package/dist/clients/index.js +213 -0
  50. package/dist/clients/index.js.map +1 -0
  51. package/dist/clients/roo-code.d.ts +23 -0
  52. package/dist/clients/roo-code.d.ts.map +1 -0
  53. package/dist/clients/roo-code.js +71 -0
  54. package/dist/clients/roo-code.js.map +1 -0
  55. package/dist/clients/zed.d.ts +12 -0
  56. package/dist/clients/zed.d.ts.map +1 -0
  57. package/dist/clients/zed.js +43 -0
  58. package/dist/clients/zed.js.map +1 -0
  59. package/dist/errors/hints.d.ts +51 -0
  60. package/dist/errors/hints.d.ts.map +1 -0
  61. package/dist/errors/hints.js +95 -0
  62. package/dist/errors/hints.js.map +1 -0
  63. package/dist/errors/mask.d.ts +35 -0
  64. package/dist/errors/mask.d.ts.map +1 -0
  65. package/dist/errors/mask.js +49 -0
  66. package/dist/errors/mask.js.map +1 -0
  67. package/dist/errors/sanitize.d.ts +31 -0
  68. package/dist/errors/sanitize.d.ts.map +1 -0
  69. package/dist/errors/sanitize.js +100 -0
  70. package/dist/errors/sanitize.js.map +1 -0
  71. package/dist/errors.d.ts +42 -0
  72. package/dist/errors.d.ts.map +1 -0
  73. package/dist/errors.js +61 -0
  74. package/dist/errors.js.map +1 -0
  75. package/dist/gateway/advanced-tool/discovery.d.ts +19 -0
  76. package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -0
  77. package/dist/gateway/advanced-tool/discovery.js +53 -0
  78. package/dist/gateway/advanced-tool/discovery.js.map +1 -0
  79. package/dist/gateway/advanced-tool/domains.d.ts +47 -0
  80. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -0
  81. package/dist/gateway/advanced-tool/domains.js +94 -0
  82. package/dist/gateway/advanced-tool/domains.js.map +1 -0
  83. package/dist/gateway/advanced-tool/execute.d.ts +29 -0
  84. package/dist/gateway/advanced-tool/execute.d.ts.map +1 -0
  85. package/dist/gateway/advanced-tool/execute.js +54 -0
  86. package/dist/gateway/advanced-tool/execute.js.map +1 -0
  87. package/dist/gateway/advanced-tool/index.d.ts +36 -0
  88. package/dist/gateway/advanced-tool/index.d.ts.map +1 -0
  89. package/dist/gateway/advanced-tool/index.js +39 -0
  90. package/dist/gateway/advanced-tool/index.js.map +1 -0
  91. package/dist/gateway/advanced-tool/register.d.ts +18 -0
  92. package/dist/gateway/advanced-tool/register.d.ts.map +1 -0
  93. package/dist/gateway/advanced-tool/register.js +69 -0
  94. package/dist/gateway/advanced-tool/register.js.map +1 -0
  95. package/dist/gateway/advanced-tool.d.ts +13 -0
  96. package/dist/gateway/advanced-tool.d.ts.map +1 -0
  97. package/dist/gateway/advanced-tool.js +13 -0
  98. package/dist/gateway/advanced-tool.js.map +1 -0
  99. package/dist/gateway/capturing-server.d.ts +117 -0
  100. package/dist/gateway/capturing-server.d.ts.map +1 -0
  101. package/dist/gateway/capturing-server.js +103 -0
  102. package/dist/gateway/capturing-server.js.map +1 -0
  103. package/dist/gateway/essentials.d.ts +50 -0
  104. package/dist/gateway/essentials.d.ts.map +1 -0
  105. package/dist/gateway/essentials.js +108 -0
  106. package/dist/gateway/essentials.js.map +1 -0
  107. package/dist/gateway/test-support.d.ts +41 -0
  108. package/dist/gateway/test-support.d.ts.map +1 -0
  109. package/dist/gateway/test-support.js +60 -0
  110. package/dist/gateway/test-support.js.map +1 -0
  111. package/dist/index.d.ts +30 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +119 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/install-skill.d.ts +43 -0
  116. package/dist/install-skill.d.ts.map +1 -0
  117. package/dist/install-skill.js +118 -0
  118. package/dist/install-skill.js.map +1 -0
  119. package/dist/platform/detect.d.ts +64 -0
  120. package/dist/platform/detect.d.ts.map +1 -0
  121. package/dist/platform/detect.js +98 -0
  122. package/dist/platform/detect.js.map +1 -0
  123. package/dist/platform/index.d.ts +121 -0
  124. package/dist/platform/index.d.ts.map +1 -0
  125. package/dist/platform/index.js +176 -0
  126. package/dist/platform/index.js.map +1 -0
  127. package/dist/platform/joomla.d.ts +44 -0
  128. package/dist/platform/joomla.d.ts.map +1 -0
  129. package/dist/platform/joomla.js +46 -0
  130. package/dist/platform/joomla.js.map +1 -0
  131. package/dist/server.d.ts +110 -0
  132. package/dist/server.d.ts.map +1 -0
  133. package/dist/server.js +274 -0
  134. package/dist/server.js.map +1 -0
  135. package/dist/setup-cli-confirm.d.ts +36 -0
  136. package/dist/setup-cli-confirm.d.ts.map +1 -0
  137. package/dist/setup-cli-confirm.js +59 -0
  138. package/dist/setup-cli-confirm.js.map +1 -0
  139. package/dist/setup-cli.d.ts +193 -0
  140. package/dist/setup-cli.d.ts.map +1 -0
  141. package/dist/setup-cli.js +1032 -0
  142. package/dist/setup-cli.js.map +1 -0
  143. package/dist/setup-prompts.d.ts +64 -0
  144. package/dist/setup-prompts.d.ts.map +1 -0
  145. package/dist/setup-prompts.js +221 -0
  146. package/dist/setup-prompts.js.map +1 -0
  147. package/dist/setup-token.d.ts +38 -0
  148. package/dist/setup-token.d.ts.map +1 -0
  149. package/dist/setup-token.js +106 -0
  150. package/dist/setup-token.js.map +1 -0
  151. package/dist/setup-wizard-defaults.d.ts +43 -0
  152. package/dist/setup-wizard-defaults.d.ts.map +1 -0
  153. package/dist/setup-wizard-defaults.js +160 -0
  154. package/dist/setup-wizard-defaults.js.map +1 -0
  155. package/dist/setup-wizard-handshake.d.ts +25 -0
  156. package/dist/setup-wizard-handshake.d.ts.map +1 -0
  157. package/dist/setup-wizard-handshake.js +103 -0
  158. package/dist/setup-wizard-handshake.js.map +1 -0
  159. package/dist/setup-wizard-types.d.ts +164 -0
  160. package/dist/setup-wizard-types.d.ts.map +1 -0
  161. package/dist/setup-wizard-types.js +11 -0
  162. package/dist/setup-wizard-types.js.map +1 -0
  163. package/dist/setup-wizard.d.ts +33 -0
  164. package/dist/setup-wizard.d.ts.map +1 -0
  165. package/dist/setup-wizard.js +199 -0
  166. package/dist/setup-wizard.js.map +1 -0
  167. package/dist/setup.d.ts +17 -0
  168. package/dist/setup.d.ts.map +1 -0
  169. package/dist/setup.js +33 -0
  170. package/dist/setup.js.map +1 -0
  171. package/dist/sites/bootstrap.d.ts +41 -0
  172. package/dist/sites/bootstrap.d.ts.map +1 -0
  173. package/dist/sites/bootstrap.js +58 -0
  174. package/dist/sites/bootstrap.js.map +1 -0
  175. package/dist/sites/cli/add-site.d.ts +106 -0
  176. package/dist/sites/cli/add-site.d.ts.map +1 -0
  177. package/dist/sites/cli/add-site.js +185 -0
  178. package/dist/sites/cli/add-site.js.map +1 -0
  179. package/dist/sites/cli/list-sites.d.ts +40 -0
  180. package/dist/sites/cli/list-sites.d.ts.map +1 -0
  181. package/dist/sites/cli/list-sites.js +116 -0
  182. package/dist/sites/cli/list-sites.js.map +1 -0
  183. package/dist/sites/cli/remove-site.d.ts +60 -0
  184. package/dist/sites/cli/remove-site.d.ts.map +1 -0
  185. package/dist/sites/cli/remove-site.js +120 -0
  186. package/dist/sites/cli/remove-site.js.map +1 -0
  187. package/dist/sites/cli/set-default.d.ts +47 -0
  188. package/dist/sites/cli/set-default.d.ts.map +1 -0
  189. package/dist/sites/cli/set-default.js +69 -0
  190. package/dist/sites/cli/set-default.js.map +1 -0
  191. package/dist/sites/cli/test-site.d.ts +77 -0
  192. package/dist/sites/cli/test-site.d.ts.map +1 -0
  193. package/dist/sites/cli/test-site.js +146 -0
  194. package/dist/sites/cli/test-site.js.map +1 -0
  195. package/dist/sites/client-pool.d.ts +157 -0
  196. package/dist/sites/client-pool.d.ts.map +1 -0
  197. package/dist/sites/client-pool.js +222 -0
  198. package/dist/sites/client-pool.js.map +1 -0
  199. package/dist/sites/env-bridge.d.ts +55 -0
  200. package/dist/sites/env-bridge.d.ts.map +1 -0
  201. package/dist/sites/env-bridge.js +94 -0
  202. package/dist/sites/env-bridge.js.map +1 -0
  203. package/dist/sites/paths.d.ts +21 -0
  204. package/dist/sites/paths.d.ts.map +1 -0
  205. package/dist/sites/paths.js +37 -0
  206. package/dist/sites/paths.js.map +1 -0
  207. package/dist/sites/probe.d.ts +60 -0
  208. package/dist/sites/probe.d.ts.map +1 -0
  209. package/dist/sites/probe.js +112 -0
  210. package/dist/sites/probe.js.map +1 -0
  211. package/dist/sites/registry.d.ts +142 -0
  212. package/dist/sites/registry.d.ts.map +1 -0
  213. package/dist/sites/registry.js +163 -0
  214. package/dist/sites/registry.js.map +1 -0
  215. package/dist/sites/schema.d.ts +90 -0
  216. package/dist/sites/schema.d.ts.map +1 -0
  217. package/dist/sites/schema.js +71 -0
  218. package/dist/sites/schema.js.map +1 -0
  219. package/dist/sites/secret-resolver.d.ts +115 -0
  220. package/dist/sites/secret-resolver.d.ts.map +1 -0
  221. package/dist/sites/secret-resolver.js +225 -0
  222. package/dist/sites/secret-resolver.js.map +1 -0
  223. package/dist/sites/store.d.ts +82 -0
  224. package/dist/sites/store.d.ts.map +1 -0
  225. package/dist/sites/store.js +198 -0
  226. package/dist/sites/store.js.map +1 -0
  227. package/dist/sites/tools/index.d.ts +28 -0
  228. package/dist/sites/tools/index.d.ts.map +1 -0
  229. package/dist/sites/tools/index.js +38 -0
  230. package/dist/sites/tools/index.js.map +1 -0
  231. package/dist/sites/tools/sites-list.d.ts +48 -0
  232. package/dist/sites/tools/sites-list.d.ts.map +1 -0
  233. package/dist/sites/tools/sites-list.js +137 -0
  234. package/dist/sites/tools/sites-list.js.map +1 -0
  235. package/dist/sites/tools/sites-test.d.ts +47 -0
  236. package/dist/sites/tools/sites-test.d.ts.map +1 -0
  237. package/dist/sites/tools/sites-test.js +148 -0
  238. package/dist/sites/tools/sites-test.js.map +1 -0
  239. package/dist/sites/tools/use-site.d.ts +47 -0
  240. package/dist/sites/tools/use-site.d.ts.map +1 -0
  241. package/dist/sites/tools/use-site.js +183 -0
  242. package/dist/sites/tools/use-site.js.map +1 -0
  243. package/dist/skill-loader.d.ts +111 -0
  244. package/dist/skill-loader.d.ts.map +1 -0
  245. package/dist/skill-loader.js +191 -0
  246. package/dist/skill-loader.js.map +1 -0
  247. package/dist/tools/elements/builders.d.ts +24 -0
  248. package/dist/tools/elements/builders.d.ts.map +1 -0
  249. package/dist/tools/elements/builders.js +208 -0
  250. package/dist/tools/elements/builders.js.map +1 -0
  251. package/dist/tools/elements/handlers-write.d.ts +49 -0
  252. package/dist/tools/elements/handlers-write.d.ts.map +1 -0
  253. package/dist/tools/elements/handlers-write.js +341 -0
  254. package/dist/tools/elements/handlers-write.js.map +1 -0
  255. package/dist/tools/elements/handlers.d.ts +70 -0
  256. package/dist/tools/elements/handlers.d.ts.map +1 -0
  257. package/dist/tools/elements/handlers.js +292 -0
  258. package/dist/tools/elements/handlers.js.map +1 -0
  259. package/dist/tools/elements/index.d.ts +28 -0
  260. package/dist/tools/elements/index.d.ts.map +1 -0
  261. package/dist/tools/elements/index.js +27 -0
  262. package/dist/tools/elements/index.js.map +1 -0
  263. package/dist/tools/elements.d.ts +13 -0
  264. package/dist/tools/elements.d.ts.map +1 -0
  265. package/dist/tools/elements.js +13 -0
  266. package/dist/tools/elements.js.map +1 -0
  267. package/dist/tools/elicitation.d.ts +87 -0
  268. package/dist/tools/elicitation.d.ts.map +1 -0
  269. package/dist/tools/elicitation.js +100 -0
  270. package/dist/tools/elicitation.js.map +1 -0
  271. package/dist/tools/format/elements-format.d.ts +40 -0
  272. package/dist/tools/format/elements-format.d.ts.map +1 -0
  273. package/dist/tools/format/elements-format.js +193 -0
  274. package/dist/tools/format/elements-format.js.map +1 -0
  275. package/dist/tools/format/health-format.d.ts +79 -0
  276. package/dist/tools/format/health-format.d.ts.map +1 -0
  277. package/dist/tools/format/health-format.js +181 -0
  278. package/dist/tools/format/health-format.js.map +1 -0
  279. package/dist/tools/format/inspection-format.d.ts +70 -0
  280. package/dist/tools/format/inspection-format.d.ts.map +1 -0
  281. package/dist/tools/format/inspection-format.js +359 -0
  282. package/dist/tools/format/inspection-format.js.map +1 -0
  283. package/dist/tools/format/pages-format.d.ts +57 -0
  284. package/dist/tools/format/pages-format.d.ts.map +1 -0
  285. package/dist/tools/format/pages-format.js +157 -0
  286. package/dist/tools/format/pages-format.js.map +1 -0
  287. package/dist/tools/format/sources-format.d.ts +44 -0
  288. package/dist/tools/format/sources-format.d.ts.map +1 -0
  289. package/dist/tools/format/sources-format.js +242 -0
  290. package/dist/tools/format/sources-format.js.map +1 -0
  291. package/dist/tools/health.d.ts +22 -0
  292. package/dist/tools/health.d.ts.map +1 -0
  293. package/dist/tools/health.js +220 -0
  294. package/dist/tools/health.js.map +1 -0
  295. package/dist/tools/index.d.ts +30 -0
  296. package/dist/tools/index.d.ts.map +1 -0
  297. package/dist/tools/index.js +39 -0
  298. package/dist/tools/index.js.map +1 -0
  299. package/dist/tools/inspection.d.ts +14 -0
  300. package/dist/tools/inspection.d.ts.map +1 -0
  301. package/dist/tools/inspection.js +401 -0
  302. package/dist/tools/inspection.js.map +1 -0
  303. package/dist/tools/layout-flatten.d.ts +75 -0
  304. package/dist/tools/layout-flatten.d.ts.map +1 -0
  305. package/dist/tools/layout-flatten.js +107 -0
  306. package/dist/tools/layout-flatten.js.map +1 -0
  307. package/dist/tools/multi-items/builders.d.ts +23 -0
  308. package/dist/tools/multi-items/builders.d.ts.map +1 -0
  309. package/dist/tools/multi-items/builders.js +84 -0
  310. package/dist/tools/multi-items/builders.js.map +1 -0
  311. package/dist/tools/multi-items/clean-implode-handler.d.ts +36 -0
  312. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +1 -0
  313. package/dist/tools/multi-items/clean-implode-handler.js +57 -0
  314. package/dist/tools/multi-items/clean-implode-handler.js.map +1 -0
  315. package/dist/tools/multi-items/format/inspection-format.d.ts +41 -0
  316. package/dist/tools/multi-items/format/inspection-format.d.ts.map +1 -0
  317. package/dist/tools/multi-items/format/inspection-format.js +64 -0
  318. package/dist/tools/multi-items/format/inspection-format.js.map +1 -0
  319. package/dist/tools/multi-items/index.d.ts +18 -0
  320. package/dist/tools/multi-items/index.d.ts.map +1 -0
  321. package/dist/tools/multi-items/index.js +18 -0
  322. package/dist/tools/multi-items/index.js.map +1 -0
  323. package/dist/tools/multi-items/inspect-handler.d.ts +76 -0
  324. package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -0
  325. package/dist/tools/multi-items/inspect-handler.js +133 -0
  326. package/dist/tools/multi-items/inspect-handler.js.map +1 -0
  327. package/dist/tools/multi-items/inspection-cache.d.ts +85 -0
  328. package/dist/tools/multi-items/inspection-cache.d.ts.map +1 -0
  329. package/dist/tools/multi-items/inspection-cache.js +126 -0
  330. package/dist/tools/multi-items/inspection-cache.js.map +1 -0
  331. package/dist/tools/multi-items/item-container-map.d.ts +41 -0
  332. package/dist/tools/multi-items/item-container-map.d.ts.map +1 -0
  333. package/dist/tools/multi-items/item-container-map.js +73 -0
  334. package/dist/tools/multi-items/item-container-map.js.map +1 -0
  335. package/dist/tools/pages/builders.d.ts +43 -0
  336. package/dist/tools/pages/builders.d.ts.map +1 -0
  337. package/dist/tools/pages/builders.js +229 -0
  338. package/dist/tools/pages/builders.js.map +1 -0
  339. package/dist/tools/pages/handlers-read.d.ts +33 -0
  340. package/dist/tools/pages/handlers-read.d.ts.map +1 -0
  341. package/dist/tools/pages/handlers-read.js +260 -0
  342. package/dist/tools/pages/handlers-read.js.map +1 -0
  343. package/dist/tools/pages/handlers-write.d.ts +63 -0
  344. package/dist/tools/pages/handlers-write.d.ts.map +1 -0
  345. package/dist/tools/pages/handlers-write.js +127 -0
  346. package/dist/tools/pages/handlers-write.js.map +1 -0
  347. package/dist/tools/pages/index.d.ts +17 -0
  348. package/dist/tools/pages/index.d.ts.map +1 -0
  349. package/dist/tools/pages/index.js +17 -0
  350. package/dist/tools/pages/index.js.map +1 -0
  351. package/dist/tools/pages/schemas.d.ts +157 -0
  352. package/dist/tools/pages/schemas.d.ts.map +1 -0
  353. package/dist/tools/pages/schemas.js +232 -0
  354. package/dist/tools/pages/schemas.js.map +1 -0
  355. package/dist/tools/pages.d.ts +13 -0
  356. package/dist/tools/pages.d.ts.map +1 -0
  357. package/dist/tools/pages.js +13 -0
  358. package/dist/tools/pages.js.map +1 -0
  359. package/dist/tools/pool-resolve-helper.d.ts +83 -0
  360. package/dist/tools/pool-resolve-helper.d.ts.map +1 -0
  361. package/dist/tools/pool-resolve-helper.js +148 -0
  362. package/dist/tools/pool-resolve-helper.js.map +1 -0
  363. package/dist/tools/progress-phases.d.ts +46 -0
  364. package/dist/tools/progress-phases.d.ts.map +1 -0
  365. package/dist/tools/progress-phases.js +48 -0
  366. package/dist/tools/progress-phases.js.map +1 -0
  367. package/dist/tools/shared-schemas.d.ts +25 -0
  368. package/dist/tools/shared-schemas.d.ts.map +1 -0
  369. package/dist/tools/shared-schemas.js +72 -0
  370. package/dist/tools/shared-schemas.js.map +1 -0
  371. package/dist/tools/sources/builders.d.ts +13 -0
  372. package/dist/tools/sources/builders.d.ts.map +1 -0
  373. package/dist/tools/sources/builders.js +118 -0
  374. package/dist/tools/sources/builders.js.map +1 -0
  375. package/dist/tools/sources/handlers-bind.d.ts +28 -0
  376. package/dist/tools/sources/handlers-bind.d.ts.map +1 -0
  377. package/dist/tools/sources/handlers-bind.js +181 -0
  378. package/dist/tools/sources/handlers-bind.js.map +1 -0
  379. package/dist/tools/sources/handlers.d.ts +47 -0
  380. package/dist/tools/sources/handlers.d.ts.map +1 -0
  381. package/dist/tools/sources/handlers.js +108 -0
  382. package/dist/tools/sources/handlers.js.map +1 -0
  383. package/dist/tools/sources/index.d.ts +19 -0
  384. package/dist/tools/sources/index.d.ts.map +1 -0
  385. package/dist/tools/sources/index.js +18 -0
  386. package/dist/tools/sources/index.js.map +1 -0
  387. package/dist/tools/sources.d.ts +14 -0
  388. package/dist/tools/sources.d.ts.map +1 -0
  389. package/dist/tools/sources.js +14 -0
  390. package/dist/tools/sources.js.map +1 -0
  391. package/dist/tools/sparse-fields.d.ts +106 -0
  392. package/dist/tools/sparse-fields.d.ts.map +1 -0
  393. package/dist/tools/sparse-fields.js +165 -0
  394. package/dist/tools/sparse-fields.js.map +1 -0
  395. package/dist/tools/tool-builder/annotations.d.ts +55 -0
  396. package/dist/tools/tool-builder/annotations.d.ts.map +1 -0
  397. package/dist/tools/tool-builder/annotations.js +86 -0
  398. package/dist/tools/tool-builder/annotations.js.map +1 -0
  399. package/dist/tools/tool-builder/define.d.ts +31 -0
  400. package/dist/tools/tool-builder/define.d.ts.map +1 -0
  401. package/dist/tools/tool-builder/define.js +31 -0
  402. package/dist/tools/tool-builder/define.js.map +1 -0
  403. package/dist/tools/tool-builder/index.d.ts +28 -0
  404. package/dist/tools/tool-builder/index.d.ts.map +1 -0
  405. package/dist/tools/tool-builder/index.js +27 -0
  406. package/dist/tools/tool-builder/index.js.map +1 -0
  407. package/dist/tools/tool-builder/results.d.ts +104 -0
  408. package/dist/tools/tool-builder/results.d.ts.map +1 -0
  409. package/dist/tools/tool-builder/results.js +224 -0
  410. package/dist/tools/tool-builder/results.js.map +1 -0
  411. package/dist/tools/tool-builder/types.d.ts +97 -0
  412. package/dist/tools/tool-builder/types.d.ts.map +1 -0
  413. package/dist/tools/tool-builder/types.js +9 -0
  414. package/dist/tools/tool-builder/types.js.map +1 -0
  415. package/dist/tools/tool-builder.d.ts +16 -0
  416. package/dist/tools/tool-builder.d.ts.map +1 -0
  417. package/dist/tools/tool-builder.js +16 -0
  418. package/dist/tools/tool-builder.js.map +1 -0
  419. package/dist/uninstall-skill.d.ts +52 -0
  420. package/dist/uninstall-skill.d.ts.map +1 -0
  421. package/dist/uninstall-skill.js +146 -0
  422. package/dist/uninstall-skill.js.map +1 -0
  423. package/dist/uninstall.d.ts +73 -0
  424. package/dist/uninstall.d.ts.map +1 -0
  425. package/dist/uninstall.js +82 -0
  426. package/dist/uninstall.js.map +1 -0
  427. package/icon.png +0 -0
  428. package/manifest.json +10 -10
  429. package/package.json +4 -1
  430. package/skills/yt-builder-mcp/SKILL.md +30 -26
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Page-tool READ handlers + shared output-schemas.
3
+ *
4
+ * Split out of `src/tools/pages.ts` (Round-2 R2-A2-CRIT1) to keep
5
+ * each file ≤ 200 LoC per Architecture §11. Write handlers (page_save,
6
+ * page_publish — 3-phase progress contract) live in `./handlers-write.ts`.
7
+ *
8
+ * @license MIT
9
+ */
10
+ import { type RestClient } from '../../client.js';
11
+ import { type ToolResult } from '../tool-builder.js';
12
+ export declare function handlePagesList(client: RestClient, { fields }: {
13
+ fields?: readonly string[];
14
+ }): Promise<ToolResult>;
15
+ export declare function handlePageGetLayout(client: RestClient, { template_id, flat, fields }: {
16
+ template_id: string;
17
+ flat?: boolean;
18
+ fields?: readonly string[];
19
+ }): Promise<ToolResult>;
20
+ export declare function handlePageGetSchema(client: RestClient, { template_id }: {
21
+ template_id: string;
22
+ }): Promise<ToolResult>;
23
+ export declare function handleGetEtag(client: RestClient): Promise<ToolResult>;
24
+ /**
25
+ * T9: a one-call structured overview of a template — element counts by
26
+ * type, binding count, max nesting depth, and named landmarks. Lets the
27
+ * agent grasp a 96-node template for ~1 kB instead of pulling the full
28
+ * element_list dump (20 kB+).
29
+ */
30
+ export declare function handleTemplateSummary(client: RestClient, { template_id }: {
31
+ template_id: string;
32
+ }): Promise<ToolResult>;
33
+ //# sourceMappingURL=handlers-read.d.ts.map
@@ -0,0 +1 @@
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;AAiBpE,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,CAsGrB;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"}
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Page-tool READ handlers + shared output-schemas.
3
+ *
4
+ * Split out of `src/tools/pages.ts` (Round-2 R2-A2-CRIT1) to keep
5
+ * each file ≤ 200 LoC per Architecture §11. Write handlers (page_save,
6
+ * page_publish — 3-phase progress contract) live in `./handlers-write.ts`.
7
+ *
8
+ * @license MIT
9
+ */
10
+ import { detailResult, tableResult } from '@getimo/mcp-toolkit';
11
+ import { encodeTemplateId } from '../../client.js';
12
+ import { flattenLayout } from '../layout-flatten.js';
13
+ import { PAGES_COMPACT_COLUMNS, PAGES_TABLE_COLUMNS, SCHEMA_COMPACT_COLUMNS, SCHEMA_TABLE_COLUMNS, buildEtagDetail, buildSchemaRows, mapPageRow, } from '../format/pages-format.js';
14
+ import { DEFAULT_FIELDS_PAGES_LIST, projectFields, projectedFieldsEcho, projectionFeedback, } from '../sparse-fields.js';
15
+ import { errorResult, jsonResult, structuredResult, } from '../tool-builder.js';
16
+ // ─── pages_list ─────────────────────────────────────────────────────
17
+ export async function handlePagesList(client, { fields }) {
18
+ try {
19
+ const data = await client.get('/pages');
20
+ const rawPages = Array.isArray(data.pages) ? data.pages : [];
21
+ const mapped = rawPages
22
+ .filter((x) => x !== null && typeof x === 'object')
23
+ .map(mapPageRow);
24
+ // Project AFTER mapping — keeps stable key names and lets the
25
+ // toolkit's tableResult format the raw, full-shape rows for the
26
+ // LLM text leg while the structuredContent leg carries the
27
+ // projected per-item slice.
28
+ const items = projectFields(mapped, fields, DEFAULT_FIELDS_PAGES_LIST);
29
+ const echo = projectedFieldsEcho(fields, DEFAULT_FIELDS_PAGES_LIST);
30
+ const feedback = projectionFeedback(mapped, fields);
31
+ const unknownNote = feedback !== undefined && feedback.unknown_fields.length > 0
32
+ ? ` (unknown fields ignored: ${feedback.unknown_fields.join(', ')}; available: ${feedback.available_fields.join(', ')})`
33
+ : '';
34
+ const toolkitResult = tableResult(mapped, {
35
+ columns: [...PAGES_TABLE_COLUMNS],
36
+ compactColumns: [...PAGES_COMPACT_COLUMNS],
37
+ header: (count) => `${String(count)} pages${unknownNote}`,
38
+ footer: 'Use yootheme_builder_page_get_schema <id> to inspect.',
39
+ });
40
+ return structuredResult(toolkitResult, {
41
+ items,
42
+ total: items.length,
43
+ ...(typeof data.etag === 'string' ? { etag: data.etag } : {}),
44
+ ...(echo !== undefined ? { projected_fields: [...echo] } : {}),
45
+ ...(feedback !== undefined ? {
46
+ available_fields: [...feedback.available_fields],
47
+ unknown_fields: [...feedback.unknown_fields],
48
+ } : {}),
49
+ });
50
+ }
51
+ catch (e) {
52
+ return errorResult({
53
+ error: e,
54
+ context: {},
55
+ hint: 'Run yootheme_builder_diagnose to verify connectivity and auth.',
56
+ });
57
+ }
58
+ }
59
+ // ─── page_get_layout ────────────────────────────────────────────────
60
+ export async function handlePageGetLayout(client, { template_id, flat, fields }) {
61
+ try {
62
+ const data = await client.get(`/pages/${encodeTemplateId(template_id)}/layout`);
63
+ if (flat !== true) {
64
+ // Default: nested passthrough — unchanged from pre-G.3.
65
+ return jsonResult(data);
66
+ }
67
+ // flat: true → depth-first walk on the nested layout. Apply
68
+ // pickFields per element when `fields[]` was passed; echo the
69
+ // projection so the AI knows the per-item shape it received.
70
+ //
71
+ // Two distinct envelope shapes reach this handler — both must
72
+ // flatten to the same element list:
73
+ //
74
+ // (A) Theme templates: `data.layout = {name, layout:
75
+ // {0:{...},1:{...}}, ...}` — the actual children live
76
+ // under the INNER `layout` field, keyed by stringified
77
+ // indices. F-208 (Audit 2026-05-26) fix descended one
78
+ // extra hop here so paths anchored on `/layout/0` rather
79
+ // than the double-prefixed `/layout/layout/0`.
80
+ //
81
+ // (B) Per-page templates (Wave-9 F7 fix, 2026-05-29): cold-AI
82
+ // #8 reported `elements:[]` for a non-empty per-page
83
+ // template. Root cause: per-page layouts come from
84
+ // PerPageLayoutEncoder which decodes to the BARE node
85
+ // tree `{type:'layout', children:[{...},{...}]}` — there
86
+ // is NO outer `{name, layout:{...}}` wrapper. The
87
+ // previous envelope-detect only triggered on the inner
88
+ // `layout` key, so for per-page it fell through to
89
+ // walking `data.layout` directly, where flattenLayout
90
+ // iterates top-level entries (`['type', 'layout']` +
91
+ // `['children', [...]]`) and emits nothing — neither
92
+ // entry is a valid element node.
93
+ //
94
+ // Per-page detection: a node with `type === 'layout'` and
95
+ // an array `children`. Pass its `.children` array to
96
+ // flattenLayout so the walker iterates the real elements
97
+ // (and paths anchor on `/layout/0`, `/layout/1`, ... so
98
+ // cold agents can copy them into element_path without
99
+ // further bookkeeping).
100
+ const dataLayout = data.layout;
101
+ const isObjectNode = dataLayout !== null &&
102
+ typeof dataLayout === 'object' &&
103
+ !Array.isArray(dataLayout);
104
+ const layoutObj = isObjectNode ? dataLayout : null;
105
+ const hasInnerLayoutField = layoutObj !== null &&
106
+ 'layout' in layoutObj &&
107
+ layoutObj.layout !== null &&
108
+ typeof layoutObj.layout === 'object';
109
+ const isPerPageRootNode = layoutObj !== null &&
110
+ layoutObj.type === 'layout' &&
111
+ Array.isArray(layoutObj.children);
112
+ let layoutRoot;
113
+ if (hasInnerLayoutField) {
114
+ // Shape (A) — theme template envelope.
115
+ layoutRoot = layoutObj.layout;
116
+ }
117
+ else if (isPerPageRootNode) {
118
+ // Shape (B) — per-page bare-layout-node. Iterate children
119
+ // directly so the walker sees real element nodes.
120
+ layoutRoot = layoutObj.children;
121
+ }
122
+ else {
123
+ // Back-compat: assume already in walkable form.
124
+ layoutRoot = dataLayout;
125
+ }
126
+ const flatElements = flattenLayout(layoutRoot);
127
+ const projected = projectFields(flatElements, fields,
128
+ // No default-set on layout.flat: keep "all" semantics
129
+ // unless caller opts-in. The echo helper below mirrors that.
130
+ []);
131
+ const echo = projectedFieldsEcho(fields, undefined);
132
+ // 1.0.1 Wave-1.7 F-COLD-3: forward the canonical pointer base
133
+ // through the flat-projection path too so cold agents iterating
134
+ // with `flat: true` see the same hint they get on the nested
135
+ // default payload.
136
+ return jsonResult({
137
+ elements: projected,
138
+ ...(typeof data.etag === 'string' ? { etag: data.etag } : {}),
139
+ ...(typeof data.layout_root_pointer === 'string'
140
+ ? { layout_root_pointer: data.layout_root_pointer }
141
+ : {}),
142
+ ...(typeof data.pointer_hint === 'string'
143
+ ? { pointer_hint: data.pointer_hint }
144
+ : {}),
145
+ ...(echo !== undefined ? { projected_fields: [...echo] } : {}),
146
+ });
147
+ }
148
+ catch (e) {
149
+ return errorResult({
150
+ error: e,
151
+ context: { template_id },
152
+ hint: 'Verify the template_id exists via yootheme_builder_pages_list. ' +
153
+ 'IDs are case-sensitive.',
154
+ });
155
+ }
156
+ }
157
+ // ─── page_get_schema ────────────────────────────────────────────────
158
+ export async function handlePageGetSchema(client, { template_id }) {
159
+ try {
160
+ const data = await client.get(`/pages/${encodeTemplateId(template_id)}/schema`);
161
+ const rawNodes = Array.isArray(data.nodes) ? data.nodes : [];
162
+ const items = buildSchemaRows(rawNodes.filter((x) => x !== null && typeof x === 'object'));
163
+ // Templates routinely exceed 21 nodes (a typical home page has
164
+ // 30–150 elements). Force compact level so the LLM never gets
165
+ // truncated text — toolkit's resolveDetailLevel honours the
166
+ // explicit override.
167
+ //
168
+ // TODO(toolkit-upstream): contribute a `compactWhen: (count) => boolean`
169
+ // field to @getimo/mcp-toolkit's AutoFormatOptions so this
170
+ // can be expressed declaratively on the config object instead
171
+ // of via the third positional argument. Tracked as Round-1.5
172
+ // follow-up (I2).
173
+ const toolkitResult = tableResult(items, {
174
+ columns: [...SCHEMA_TABLE_COLUMNS],
175
+ compactColumns: [...SCHEMA_COMPACT_COLUMNS],
176
+ header: (count) => `${String(count)} nodes in template "${template_id}"`,
177
+ footer: 'Use yootheme_builder_element_get <path> for full element data.',
178
+ }, 'compact');
179
+ return structuredResult(toolkitResult, {
180
+ items,
181
+ total: items.length,
182
+ template_id,
183
+ });
184
+ }
185
+ catch (e) {
186
+ return errorResult({
187
+ error: e,
188
+ context: { template_id },
189
+ hint: 'Verify the template_id exists via yootheme_builder_pages_list.',
190
+ });
191
+ }
192
+ }
193
+ // ─── get_etag ───────────────────────────────────────────────────────
194
+ export async function handleGetEtag(client) {
195
+ try {
196
+ const data = await client.get('/etag');
197
+ const toolkitResult = detailResult(buildEtagDetail({
198
+ etag: data.etag,
199
+ generated_at: data.generated_at,
200
+ }));
201
+ return structuredResult(toolkitResult, {
202
+ etag: data.etag,
203
+ ...(typeof data.generated_at === 'string'
204
+ ? { generated_at: data.generated_at }
205
+ : {}),
206
+ });
207
+ }
208
+ catch (e) {
209
+ return errorResult({
210
+ error: e,
211
+ context: {},
212
+ hint: 'Run yootheme_builder_diagnose to verify auth.',
213
+ });
214
+ }
215
+ }
216
+ // ─── template_summary (T9 — Audit-v3 B.5 token-efficient overview) ────
217
+ /**
218
+ * T9: a one-call structured overview of a template — element counts by
219
+ * type, binding count, max nesting depth, and named landmarks. Lets the
220
+ * agent grasp a 96-node template for ~1 kB instead of pulling the full
221
+ * element_list dump (20 kB+).
222
+ */
223
+ export async function handleTemplateSummary(client, { template_id }) {
224
+ try {
225
+ const data = await client.get(`/pages/${encodeTemplateId(template_id)}/summary`);
226
+ // F-AUDIT-2 (2026-05-26): template_summary now declares
227
+ // TEMPLATE_SUMMARY_OUTPUT_SCHEMA. The SDK requires
228
+ // `structuredContent` when an outputSchema is present, otherwise
229
+ // it raises `-32602 Output validation error`. Wrap the raw body
230
+ // with `structuredResult` so the text leg (LLM-readable JSON)
231
+ // stays unchanged AND the structuredContent leg validates.
232
+ //
233
+ // Task #46 Friction-3 (2026-05-29): PHP's `json_encode([])` emits
234
+ // `[]` (array) — not `{}` (object). The REST handler emits
235
+ // `counts_by_type: []` for empty templates, but the outputSchema
236
+ // declares `z.record(z.string(), z.number())` which requires an
237
+ // object. The mismatch surfaces as `-32602 counts_by_type
238
+ // expected record, received array`, swallowing the entire response
239
+ // for any empty / freshly-created template. Normalize array→object
240
+ // here so the schema validates and the agent sees the (valid,
241
+ // empty) summary. Same defensive shape applies to any future
242
+ // map-typed REST field that might come back empty.
243
+ const normalized = {
244
+ ...data,
245
+ };
246
+ if (Array.isArray(normalized.counts_by_type)) {
247
+ normalized.counts_by_type = {};
248
+ }
249
+ const toolkitResult = jsonResult(normalized);
250
+ return structuredResult({ content: toolkitResult.content }, normalized);
251
+ }
252
+ catch (e) {
253
+ return errorResult({
254
+ error: e,
255
+ context: { template_id },
256
+ hint: 'Verify the template_id exists via yootheme_builder_pages_list.',
257
+ });
258
+ }
259
+ }
260
+ //# sourceMappingURL=handlers-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers-read.js","sourceRoot":"","sources":["../../../src/tools/pages/handlers-read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Page-tool WRITE handlers — `page_save`, `page_publish`, `pages_create`,
3
+ * `pages_delete`. All implement the 3-phase progress contract
4
+ * (PHASE_SEND → PHASE_SERVER → PHASE_CONFIRM). PHASE_SERVER is emitted
5
+ * BEFORE the await so the synthetic intermediate fires even when the
6
+ * REST call ultimately errors — the dispatch IS the boundary, not the
7
+ * response.
8
+ *
9
+ * Split out of `src/tools/pages.ts` (Round-2 R2-A2-CRIT1).
10
+ * Extended with pages_create / pages_delete (v1.2 — C2 + C3).
11
+ *
12
+ * @license MIT
13
+ */
14
+ import { type RestClient } from '../../client.js';
15
+ import { type HandlerExtra, type ToolResult } from '../tool-builder.js';
16
+ interface SavePublishInput {
17
+ template_id: string;
18
+ etag?: string;
19
+ }
20
+ export declare function handlePageSave(client: RestClient, { template_id, etag }: SavePublishInput, extra?: HandlerExtra): Promise<ToolResult>;
21
+ export declare function handlePagePublish(client: RestClient, { template_id, etag }: SavePublishInput, extra?: HandlerExtra): Promise<ToolResult>;
22
+ /**
23
+ * Input shape for the `pages_create` handler. Mirrors the Zod schema
24
+ * `PAGES_CREATE_INPUT` in `./schemas.ts` — kept as a structural
25
+ * `interface` here so the handler has no runtime Zod dependency and
26
+ * accepts whatever the MCP harness has already validated.
27
+ */
28
+ interface PagesCreateInput {
29
+ readonly title: string;
30
+ readonly slug?: string;
31
+ readonly status?: 'publish' | 'draft' | 'pending' | 'private' | 'future';
32
+ readonly layout?: Record<string, unknown>;
33
+ readonly dry_run?: boolean;
34
+ }
35
+ /**
36
+ * `pages_create` — POST `/pages` with the provided body. On
37
+ * `dry_run:true`, the REST handler runs validation Layers 1+2+4
38
+ * without persisting and returns a dry-run report. On non-dry-run
39
+ * success, the REST handler returns 201 with the wire shape of
40
+ * `PAGES_CREATE_OUTPUT_SCHEMA`.
41
+ */
42
+ export declare function handlePagesCreate(client: RestClient, input: PagesCreateInput, extra?: HandlerExtra): Promise<ToolResult>;
43
+ /**
44
+ * Input shape for the `pages_delete` handler. Mirrors the Zod schema
45
+ * `PAGES_DELETE_INPUT` in `./schemas.ts`. `confirm` is `true` literal —
46
+ * the MCP boundary rejects requests without `confirm:true` before they
47
+ * ever reach this handler.
48
+ */
49
+ interface PagesDeleteInput {
50
+ readonly post_id: number;
51
+ readonly confirm: true;
52
+ readonly force?: boolean;
53
+ }
54
+ /**
55
+ * `pages_delete` — DELETE `/pages/{post_id}` with confirm + force in the
56
+ * body. `force:false` (default) trashes via `wp_delete_post(false)`
57
+ * (recoverable via wp-admin). `force:true` hard-deletes the post
58
+ * (irrecoverable). The REST handler returns 200 with the wire shape of
59
+ * `PAGES_DELETE_OUTPUT_SCHEMA` on success.
60
+ */
61
+ export declare function handlePagesDelete(client: RestClient, input: PagesDeleteInput, extra?: HandlerExtra): Promise<ToolResult>;
62
+ export {};
63
+ //# sourceMappingURL=handlers-write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers-write.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/handlers-write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAKH,KAAK,YAAY,EACjB,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAE5B,UAAU,gBAAgB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAsB,cAAc,CAChC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,gBAAgB,EACvC,KAAK,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CAoBrB;AAID,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,UAAU,EAClB,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,gBAAgB,EACvC,KAAK,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CAoBrB;AAID;;;;;GAKG;AACH,UAAU,gBAAgB;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,gBAAgB,EACvB,KAAK,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CAuBrB;AAID;;;;;GAKG;AACH,UAAU,gBAAgB;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,gBAAgB,EACvB,KAAK,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC,CAuCrB"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Page-tool WRITE handlers — `page_save`, `page_publish`, `pages_create`,
3
+ * `pages_delete`. All implement the 3-phase progress contract
4
+ * (PHASE_SEND → PHASE_SERVER → PHASE_CONFIRM). PHASE_SERVER is emitted
5
+ * BEFORE the await so the synthetic intermediate fires even when the
6
+ * REST call ultimately errors — the dispatch IS the boundary, not the
7
+ * response.
8
+ *
9
+ * Split out of `src/tools/pages.ts` (Round-2 R2-A2-CRIT1).
10
+ * Extended with pages_create / pages_delete (v1.2 — C2 + C3).
11
+ *
12
+ * @license MIT
13
+ */
14
+ import { encodeTemplateId } from '../../client.js';
15
+ import { PHASE_CONFIRM, PHASE_SEND, PHASE_SERVER } from '../progress-phases.js';
16
+ import { createProgressReporter, errorResult, jsonResult, structuredResult, } from '../tool-builder.js';
17
+ // ─── page_save ──────────────────────────────────────────────────────
18
+ export async function handlePageSave(client, { template_id, etag }, extra) {
19
+ const progress = extra ? createProgressReporter(extra) : null;
20
+ await progress?.report(0, 3, PHASE_SEND);
21
+ await progress?.report(1, 3, PHASE_SERVER);
22
+ try {
23
+ const data = await client.post(`/pages/${encodeTemplateId(template_id)}/save`, { etag });
24
+ await progress?.report(2, 3, PHASE_CONFIRM);
25
+ return jsonResult(data);
26
+ }
27
+ catch (e) {
28
+ return errorResult({
29
+ error: e,
30
+ context: { template_id, etag },
31
+ hint: 'On 412 (precondition failed) refresh via yootheme_builder_get_etag ' +
32
+ 'and retry — someone else edited the page.',
33
+ });
34
+ }
35
+ }
36
+ // ─── page_publish ───────────────────────────────────────────────────
37
+ export async function handlePagePublish(client, { template_id, etag }, extra) {
38
+ const progress = extra ? createProgressReporter(extra) : null;
39
+ await progress?.report(0, 3, PHASE_SEND);
40
+ await progress?.report(1, 3, PHASE_SERVER);
41
+ try {
42
+ const data = await client.post(`/pages/${encodeTemplateId(template_id)}/publish`, { etag });
43
+ await progress?.report(2, 3, PHASE_CONFIRM);
44
+ return jsonResult(data);
45
+ }
46
+ catch (e) {
47
+ return errorResult({
48
+ error: e,
49
+ context: { template_id, etag },
50
+ hint: 'On 412 (precondition failed) refresh via yootheme_builder_get_etag ' +
51
+ 'and retry.',
52
+ });
53
+ }
54
+ }
55
+ /**
56
+ * `pages_create` — POST `/pages` with the provided body. On
57
+ * `dry_run:true`, the REST handler runs validation Layers 1+2+4
58
+ * without persisting and returns a dry-run report. On non-dry-run
59
+ * success, the REST handler returns 201 with the wire shape of
60
+ * `PAGES_CREATE_OUTPUT_SCHEMA`.
61
+ */
62
+ export async function handlePagesCreate(client, input, extra) {
63
+ const progress = extra ? createProgressReporter(extra) : null;
64
+ await progress?.report(0, 3, PHASE_SEND);
65
+ await progress?.report(1, 3, PHASE_SERVER);
66
+ try {
67
+ const data = await client.post('/pages', { body: input });
68
+ await progress?.report(2, 3, PHASE_CONFIRM);
69
+ return jsonResult(data);
70
+ }
71
+ catch (e) {
72
+ return errorResult({
73
+ error: e,
74
+ context: {
75
+ title: input.title,
76
+ slug: input.slug,
77
+ dry_run: input.dry_run ?? false,
78
+ },
79
+ hint: 'Common issues: missing title (400), unknown element type in layout ' +
80
+ '(422), Builder pre-check failed (422 dry-run or wet), post_type other ' +
81
+ 'than "page" (403). For dry-run: re-submit without dry_run:true to ' +
82
+ 'actually create.',
83
+ });
84
+ }
85
+ }
86
+ /**
87
+ * `pages_delete` — DELETE `/pages/{post_id}` with confirm + force in the
88
+ * body. `force:false` (default) trashes via `wp_delete_post(false)`
89
+ * (recoverable via wp-admin). `force:true` hard-deletes the post
90
+ * (irrecoverable). The REST handler returns 200 with the wire shape of
91
+ * `PAGES_DELETE_OUTPUT_SCHEMA` on success.
92
+ */
93
+ export async function handlePagesDelete(client, input, extra) {
94
+ const progress = extra ? createProgressReporter(extra) : null;
95
+ await progress?.report(0, 3, PHASE_SEND);
96
+ await progress?.report(1, 3, PHASE_SERVER);
97
+ try {
98
+ const data = await client.delete(`/pages/${encodeURIComponent(String(input.post_id))}`, {
99
+ body: {
100
+ confirm: input.confirm,
101
+ force: input.force ?? false,
102
+ },
103
+ });
104
+ await progress?.report(2, 3, PHASE_CONFIRM);
105
+ // Task #38 (2026-05-29): pages_delete declares
106
+ // `outputSchema: PAGES_DELETE_OUTPUT_SCHEMA` in builders.ts. The
107
+ // host therefore validates `structuredContent` and rejects with
108
+ // `-32602 Output validation error` when it is missing. Use
109
+ // `structuredResult` (mirrors handlePagesList et al.) so the
110
+ // text leg stays LLM-readable AND the structured leg validates.
111
+ const toolkitResult = jsonResult(data);
112
+ return structuredResult({ content: toolkitResult.content }, data);
113
+ }
114
+ catch (e) {
115
+ return errorResult({
116
+ error: e,
117
+ context: {
118
+ post_id: input.post_id,
119
+ force: input.force ?? false,
120
+ },
121
+ hint: 'Common issues: missing confirm:true (400), unknown post id (404), ' +
122
+ 'post_type other than "page" (403). For permanent delete pass ' +
123
+ 'force:true; default is trash (recoverable via wp-admin).',
124
+ });
125
+ }
126
+ }
127
+ //# sourceMappingURL=handlers-write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers-write.js","sourceRoot":"","sources":["../../../src/tools/pages/handlers-write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Page-tool barrel — public entry-point for the 6 page-level tools:
3
+ *
4
+ * yootheme_builder_pages_list → list templates (tableResult + structuredContent)
5
+ * yootheme_builder_page_get_layout → full layout tree (jsonResult)
6
+ * yootheme_builder_page_get_schema → flat schema (tableResult compact)
7
+ * yootheme_builder_page_save → re-run save-transforms + persist
8
+ * yootheme_builder_page_publish → publish
9
+ * yootheme_builder_get_etag → top-level state ETag (detailResult)
10
+ *
11
+ * Round-2 R2-A2-CRIT1 — split out of the original `src/tools/pages.ts`.
12
+ *
13
+ * @license MIT
14
+ */
15
+ export { buildPagesTools } from './builders.js';
16
+ export { ETAG_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Page-tool barrel — public entry-point for the 6 page-level tools:
3
+ *
4
+ * yootheme_builder_pages_list → list templates (tableResult + structuredContent)
5
+ * yootheme_builder_page_get_layout → full layout tree (jsonResult)
6
+ * yootheme_builder_page_get_schema → flat schema (tableResult compact)
7
+ * yootheme_builder_page_save → re-run save-transforms + persist
8
+ * yootheme_builder_page_publish → publish
9
+ * yootheme_builder_get_etag → top-level state ETag (detailResult)
10
+ *
11
+ * Round-2 R2-A2-CRIT1 — split out of the original `src/tools/pages.ts`.
12
+ *
13
+ * @license MIT
14
+ */
15
+ export { buildPagesTools } from './builders.js';
16
+ export { ETAG_OUTPUT_SCHEMA, PAGES_LIST_OUTPUT_SCHEMA, SCHEMA_OUTPUT_SCHEMA, TEMPLATE_SUMMARY_OUTPUT_SCHEMA, } from './schemas.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,GACjC,MAAM,cAAc,CAAC"}