@wootsup/yt-builder-mcp 1.1.5 → 1.1.7

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 (400) hide show
  1. package/README.md +56 -55
  2. package/dist/auth.d.ts +119 -0
  3. package/dist/auth.d.ts.map +1 -0
  4. package/dist/auth.js +226 -0
  5. package/dist/auth.js.map +1 -0
  6. package/dist/client.d.ts +84 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +151 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/clients/claude-code.d.ts +18 -0
  11. package/dist/clients/claude-code.d.ts.map +1 -0
  12. package/dist/clients/claude-code.js +53 -0
  13. package/dist/clients/claude-code.js.map +1 -0
  14. package/dist/clients/claude-desktop.d.ts +19 -0
  15. package/dist/clients/claude-desktop.d.ts.map +1 -0
  16. package/dist/clients/claude-desktop.js +56 -0
  17. package/dist/clients/claude-desktop.js.map +1 -0
  18. package/dist/clients/cline.d.ts +26 -0
  19. package/dist/clients/cline.d.ts.map +1 -0
  20. package/dist/clients/cline.js +80 -0
  21. package/dist/clients/cline.js.map +1 -0
  22. package/dist/clients/codex-cli.d.ts +42 -0
  23. package/dist/clients/codex-cli.d.ts.map +1 -0
  24. package/dist/clients/codex-cli.js +194 -0
  25. package/dist/clients/codex-cli.js.map +1 -0
  26. package/dist/clients/continue.d.ts +13 -0
  27. package/dist/clients/continue.d.ts.map +1 -0
  28. package/dist/clients/continue.js +52 -0
  29. package/dist/clients/continue.js.map +1 -0
  30. package/dist/clients/cursor.d.ts +12 -0
  31. package/dist/clients/cursor.d.ts.map +1 -0
  32. package/dist/clients/cursor.js +38 -0
  33. package/dist/clients/cursor.js.map +1 -0
  34. package/dist/clients/gemini-cli.d.ts +18 -0
  35. package/dist/clients/gemini-cli.d.ts.map +1 -0
  36. package/dist/clients/gemini-cli.js +44 -0
  37. package/dist/clients/gemini-cli.js.map +1 -0
  38. package/dist/clients/home.d.ts +14 -0
  39. package/dist/clients/home.d.ts.map +1 -0
  40. package/dist/clients/home.js +20 -0
  41. package/dist/clients/home.js.map +1 -0
  42. package/dist/clients/index.d.ts +52 -0
  43. package/dist/clients/index.d.ts.map +1 -0
  44. package/dist/clients/index.js +72 -0
  45. package/dist/clients/index.js.map +1 -0
  46. package/dist/clients/roo-code.d.ts +23 -0
  47. package/dist/clients/roo-code.d.ts.map +1 -0
  48. package/dist/clients/roo-code.js +69 -0
  49. package/dist/clients/roo-code.js.map +1 -0
  50. package/dist/clients/zed.d.ts +12 -0
  51. package/dist/clients/zed.d.ts.map +1 -0
  52. package/dist/clients/zed.js +41 -0
  53. package/dist/clients/zed.js.map +1 -0
  54. package/dist/errors/hints.d.ts +51 -0
  55. package/dist/errors/hints.d.ts.map +1 -0
  56. package/dist/errors/hints.js +95 -0
  57. package/dist/errors/hints.js.map +1 -0
  58. package/dist/errors/mask.d.ts +35 -0
  59. package/dist/errors/mask.d.ts.map +1 -0
  60. package/dist/errors/mask.js +49 -0
  61. package/dist/errors/mask.js.map +1 -0
  62. package/dist/errors/sanitize.d.ts +31 -0
  63. package/dist/errors/sanitize.d.ts.map +1 -0
  64. package/dist/errors/sanitize.js +100 -0
  65. package/dist/errors/sanitize.js.map +1 -0
  66. package/dist/errors.d.ts +42 -0
  67. package/dist/errors.d.ts.map +1 -0
  68. package/dist/errors.js +61 -0
  69. package/dist/errors.js.map +1 -0
  70. package/dist/gateway/advanced-tool/discovery.d.ts +19 -0
  71. package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -0
  72. package/dist/gateway/advanced-tool/discovery.js +53 -0
  73. package/dist/gateway/advanced-tool/discovery.js.map +1 -0
  74. package/dist/gateway/advanced-tool/domains.d.ts +47 -0
  75. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -0
  76. package/dist/gateway/advanced-tool/domains.js +94 -0
  77. package/dist/gateway/advanced-tool/domains.js.map +1 -0
  78. package/dist/gateway/advanced-tool/execute.d.ts +29 -0
  79. package/dist/gateway/advanced-tool/execute.d.ts.map +1 -0
  80. package/dist/gateway/advanced-tool/execute.js +54 -0
  81. package/dist/gateway/advanced-tool/execute.js.map +1 -0
  82. package/dist/gateway/advanced-tool/index.d.ts +36 -0
  83. package/dist/gateway/advanced-tool/index.d.ts.map +1 -0
  84. package/dist/gateway/advanced-tool/index.js +39 -0
  85. package/dist/gateway/advanced-tool/index.js.map +1 -0
  86. package/dist/gateway/advanced-tool/register.d.ts +18 -0
  87. package/dist/gateway/advanced-tool/register.d.ts.map +1 -0
  88. package/dist/gateway/advanced-tool/register.js +69 -0
  89. package/dist/gateway/advanced-tool/register.js.map +1 -0
  90. package/dist/gateway/advanced-tool.d.ts +13 -0
  91. package/dist/gateway/advanced-tool.d.ts.map +1 -0
  92. package/dist/gateway/advanced-tool.js +13 -0
  93. package/dist/gateway/advanced-tool.js.map +1 -0
  94. package/dist/gateway/capturing-server.d.ts +117 -0
  95. package/dist/gateway/capturing-server.d.ts.map +1 -0
  96. package/dist/gateway/capturing-server.js +103 -0
  97. package/dist/gateway/capturing-server.js.map +1 -0
  98. package/dist/gateway/essentials.d.ts +50 -0
  99. package/dist/gateway/essentials.d.ts.map +1 -0
  100. package/dist/gateway/essentials.js +94 -0
  101. package/dist/gateway/essentials.js.map +1 -0
  102. package/dist/gateway/test-support.d.ts +41 -0
  103. package/dist/gateway/test-support.d.ts.map +1 -0
  104. package/dist/gateway/test-support.js +60 -0
  105. package/dist/gateway/test-support.js.map +1 -0
  106. package/dist/index.d.ts +29 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +111 -0
  109. package/dist/index.js.map +1 -0
  110. package/dist/install-skill.d.ts +43 -0
  111. package/dist/install-skill.d.ts.map +1 -0
  112. package/dist/install-skill.js +118 -0
  113. package/dist/install-skill.js.map +1 -0
  114. package/dist/platform/detect.d.ts +64 -0
  115. package/dist/platform/detect.d.ts.map +1 -0
  116. package/dist/platform/detect.js +98 -0
  117. package/dist/platform/detect.js.map +1 -0
  118. package/dist/platform/index.d.ts +121 -0
  119. package/dist/platform/index.d.ts.map +1 -0
  120. package/dist/platform/index.js +176 -0
  121. package/dist/platform/index.js.map +1 -0
  122. package/dist/platform/joomla.d.ts +44 -0
  123. package/dist/platform/joomla.d.ts.map +1 -0
  124. package/dist/platform/joomla.js +46 -0
  125. package/dist/platform/joomla.js.map +1 -0
  126. package/dist/server.d.ts +110 -0
  127. package/dist/server.d.ts.map +1 -0
  128. package/dist/server.js +274 -0
  129. package/dist/server.js.map +1 -0
  130. package/dist/setup-cli-confirm.d.ts +36 -0
  131. package/dist/setup-cli-confirm.d.ts.map +1 -0
  132. package/dist/setup-cli-confirm.js +59 -0
  133. package/dist/setup-cli-confirm.js.map +1 -0
  134. package/dist/setup-cli.d.ts +152 -0
  135. package/dist/setup-cli.d.ts.map +1 -0
  136. package/dist/setup-cli.js +870 -0
  137. package/dist/setup-cli.js.map +1 -0
  138. package/dist/setup-prompts.d.ts +41 -0
  139. package/dist/setup-prompts.d.ts.map +1 -0
  140. package/dist/setup-prompts.js +146 -0
  141. package/dist/setup-prompts.js.map +1 -0
  142. package/dist/setup-token.d.ts +38 -0
  143. package/dist/setup-token.d.ts.map +1 -0
  144. package/dist/setup-token.js +106 -0
  145. package/dist/setup-token.js.map +1 -0
  146. package/dist/setup-wizard-defaults.d.ts +43 -0
  147. package/dist/setup-wizard-defaults.d.ts.map +1 -0
  148. package/dist/setup-wizard-defaults.js +160 -0
  149. package/dist/setup-wizard-defaults.js.map +1 -0
  150. package/dist/setup-wizard-handshake.d.ts +25 -0
  151. package/dist/setup-wizard-handshake.d.ts.map +1 -0
  152. package/dist/setup-wizard-handshake.js +103 -0
  153. package/dist/setup-wizard-handshake.js.map +1 -0
  154. package/dist/setup-wizard-types.d.ts +164 -0
  155. package/dist/setup-wizard-types.d.ts.map +1 -0
  156. package/dist/setup-wizard-types.js +11 -0
  157. package/dist/setup-wizard-types.js.map +1 -0
  158. package/dist/setup-wizard.d.ts +33 -0
  159. package/dist/setup-wizard.d.ts.map +1 -0
  160. package/dist/setup-wizard.js +199 -0
  161. package/dist/setup-wizard.js.map +1 -0
  162. package/dist/setup.d.ts +17 -0
  163. package/dist/setup.d.ts.map +1 -0
  164. package/dist/setup.js +33 -0
  165. package/dist/setup.js.map +1 -0
  166. package/dist/sites/cli/add-site.d.ts +106 -0
  167. package/dist/sites/cli/add-site.d.ts.map +1 -0
  168. package/dist/sites/cli/add-site.js +185 -0
  169. package/dist/sites/cli/add-site.js.map +1 -0
  170. package/dist/sites/cli/list-sites.d.ts +40 -0
  171. package/dist/sites/cli/list-sites.d.ts.map +1 -0
  172. package/dist/sites/cli/list-sites.js +116 -0
  173. package/dist/sites/cli/list-sites.js.map +1 -0
  174. package/dist/sites/cli/remove-site.d.ts +60 -0
  175. package/dist/sites/cli/remove-site.d.ts.map +1 -0
  176. package/dist/sites/cli/remove-site.js +120 -0
  177. package/dist/sites/cli/remove-site.js.map +1 -0
  178. package/dist/sites/cli/set-default.d.ts +47 -0
  179. package/dist/sites/cli/set-default.d.ts.map +1 -0
  180. package/dist/sites/cli/set-default.js +69 -0
  181. package/dist/sites/cli/set-default.js.map +1 -0
  182. package/dist/sites/cli/test-site.d.ts +77 -0
  183. package/dist/sites/cli/test-site.d.ts.map +1 -0
  184. package/dist/sites/cli/test-site.js +146 -0
  185. package/dist/sites/cli/test-site.js.map +1 -0
  186. package/dist/sites/client-pool.d.ts +124 -0
  187. package/dist/sites/client-pool.d.ts.map +1 -0
  188. package/dist/sites/client-pool.js +172 -0
  189. package/dist/sites/client-pool.js.map +1 -0
  190. package/dist/sites/env-bridge.d.ts +55 -0
  191. package/dist/sites/env-bridge.d.ts.map +1 -0
  192. package/dist/sites/env-bridge.js +94 -0
  193. package/dist/sites/env-bridge.js.map +1 -0
  194. package/dist/sites/paths.d.ts +21 -0
  195. package/dist/sites/paths.d.ts.map +1 -0
  196. package/dist/sites/paths.js +37 -0
  197. package/dist/sites/paths.js.map +1 -0
  198. package/dist/sites/probe.d.ts +60 -0
  199. package/dist/sites/probe.d.ts.map +1 -0
  200. package/dist/sites/probe.js +112 -0
  201. package/dist/sites/probe.js.map +1 -0
  202. package/dist/sites/registry.d.ts +142 -0
  203. package/dist/sites/registry.d.ts.map +1 -0
  204. package/dist/sites/registry.js +163 -0
  205. package/dist/sites/registry.js.map +1 -0
  206. package/dist/sites/schema.d.ts +90 -0
  207. package/dist/sites/schema.d.ts.map +1 -0
  208. package/dist/sites/schema.js +71 -0
  209. package/dist/sites/schema.js.map +1 -0
  210. package/dist/sites/secret-resolver.d.ts +115 -0
  211. package/dist/sites/secret-resolver.d.ts.map +1 -0
  212. package/dist/sites/secret-resolver.js +225 -0
  213. package/dist/sites/secret-resolver.js.map +1 -0
  214. package/dist/sites/store.d.ts +82 -0
  215. package/dist/sites/store.d.ts.map +1 -0
  216. package/dist/sites/store.js +198 -0
  217. package/dist/sites/store.js.map +1 -0
  218. package/dist/sites/tools/index.d.ts +28 -0
  219. package/dist/sites/tools/index.d.ts.map +1 -0
  220. package/dist/sites/tools/index.js +30 -0
  221. package/dist/sites/tools/index.js.map +1 -0
  222. package/dist/sites/tools/sites-list.d.ts +48 -0
  223. package/dist/sites/tools/sites-list.d.ts.map +1 -0
  224. package/dist/sites/tools/sites-list.js +137 -0
  225. package/dist/sites/tools/sites-list.js.map +1 -0
  226. package/dist/sites/tools/sites-test.d.ts +47 -0
  227. package/dist/sites/tools/sites-test.d.ts.map +1 -0
  228. package/dist/sites/tools/sites-test.js +148 -0
  229. package/dist/sites/tools/sites-test.js.map +1 -0
  230. package/dist/skill-loader.d.ts +111 -0
  231. package/dist/skill-loader.d.ts.map +1 -0
  232. package/dist/skill-loader.js +191 -0
  233. package/dist/skill-loader.js.map +1 -0
  234. package/dist/tools/elements/builders.d.ts +24 -0
  235. package/dist/tools/elements/builders.d.ts.map +1 -0
  236. package/dist/tools/elements/builders.js +199 -0
  237. package/dist/tools/elements/builders.js.map +1 -0
  238. package/dist/tools/elements/handlers-write.d.ts +49 -0
  239. package/dist/tools/elements/handlers-write.d.ts.map +1 -0
  240. package/dist/tools/elements/handlers-write.js +148 -0
  241. package/dist/tools/elements/handlers-write.js.map +1 -0
  242. package/dist/tools/elements/handlers.d.ts +70 -0
  243. package/dist/tools/elements/handlers.d.ts.map +1 -0
  244. package/dist/tools/elements/handlers.js +292 -0
  245. package/dist/tools/elements/handlers.js.map +1 -0
  246. package/dist/tools/elements/index.d.ts +28 -0
  247. package/dist/tools/elements/index.d.ts.map +1 -0
  248. package/dist/tools/elements/index.js +27 -0
  249. package/dist/tools/elements/index.js.map +1 -0
  250. package/dist/tools/elements.d.ts +13 -0
  251. package/dist/tools/elements.d.ts.map +1 -0
  252. package/dist/tools/elements.js +13 -0
  253. package/dist/tools/elements.js.map +1 -0
  254. package/dist/tools/elicitation.d.ts +87 -0
  255. package/dist/tools/elicitation.d.ts.map +1 -0
  256. package/dist/tools/elicitation.js +100 -0
  257. package/dist/tools/elicitation.js.map +1 -0
  258. package/dist/tools/format/elements-format.d.ts +40 -0
  259. package/dist/tools/format/elements-format.d.ts.map +1 -0
  260. package/dist/tools/format/elements-format.js +194 -0
  261. package/dist/tools/format/elements-format.js.map +1 -0
  262. package/dist/tools/format/health-format.d.ts +79 -0
  263. package/dist/tools/format/health-format.d.ts.map +1 -0
  264. package/dist/tools/format/health-format.js +181 -0
  265. package/dist/tools/format/health-format.js.map +1 -0
  266. package/dist/tools/format/inspection-format.d.ts +59 -0
  267. package/dist/tools/format/inspection-format.d.ts.map +1 -0
  268. package/dist/tools/format/inspection-format.js +303 -0
  269. package/dist/tools/format/inspection-format.js.map +1 -0
  270. package/dist/tools/format/pages-format.d.ts +57 -0
  271. package/dist/tools/format/pages-format.d.ts.map +1 -0
  272. package/dist/tools/format/pages-format.js +157 -0
  273. package/dist/tools/format/pages-format.js.map +1 -0
  274. package/dist/tools/format/sources-format.d.ts +44 -0
  275. package/dist/tools/format/sources-format.d.ts.map +1 -0
  276. package/dist/tools/format/sources-format.js +242 -0
  277. package/dist/tools/format/sources-format.js.map +1 -0
  278. package/dist/tools/health.d.ts +22 -0
  279. package/dist/tools/health.d.ts.map +1 -0
  280. package/dist/tools/health.js +220 -0
  281. package/dist/tools/health.js.map +1 -0
  282. package/dist/tools/index.d.ts +30 -0
  283. package/dist/tools/index.d.ts.map +1 -0
  284. package/dist/tools/index.js +39 -0
  285. package/dist/tools/index.js.map +1 -0
  286. package/dist/tools/inspection.d.ts +14 -0
  287. package/dist/tools/inspection.d.ts.map +1 -0
  288. package/dist/tools/inspection.js +208 -0
  289. package/dist/tools/inspection.js.map +1 -0
  290. package/dist/tools/layout-flatten.d.ts +75 -0
  291. package/dist/tools/layout-flatten.d.ts.map +1 -0
  292. package/dist/tools/layout-flatten.js +107 -0
  293. package/dist/tools/layout-flatten.js.map +1 -0
  294. package/dist/tools/multi-items/builders.d.ts +23 -0
  295. package/dist/tools/multi-items/builders.d.ts.map +1 -0
  296. package/dist/tools/multi-items/builders.js +78 -0
  297. package/dist/tools/multi-items/builders.js.map +1 -0
  298. package/dist/tools/multi-items/clean-implode-handler.d.ts +36 -0
  299. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +1 -0
  300. package/dist/tools/multi-items/clean-implode-handler.js +57 -0
  301. package/dist/tools/multi-items/clean-implode-handler.js.map +1 -0
  302. package/dist/tools/multi-items/index.d.ts +18 -0
  303. package/dist/tools/multi-items/index.d.ts.map +1 -0
  304. package/dist/tools/multi-items/index.js +18 -0
  305. package/dist/tools/multi-items/index.js.map +1 -0
  306. package/dist/tools/multi-items/inspect-handler.d.ts +41 -0
  307. package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -0
  308. package/dist/tools/multi-items/inspect-handler.js +50 -0
  309. package/dist/tools/multi-items/inspect-handler.js.map +1 -0
  310. package/dist/tools/multi-items/item-container-map.d.ts +41 -0
  311. package/dist/tools/multi-items/item-container-map.d.ts.map +1 -0
  312. package/dist/tools/multi-items/item-container-map.js +73 -0
  313. package/dist/tools/multi-items/item-container-map.js.map +1 -0
  314. package/dist/tools/pages/builders.d.ts +14 -0
  315. package/dist/tools/pages/builders.d.ts.map +1 -0
  316. package/dist/tools/pages/builders.js +136 -0
  317. package/dist/tools/pages/builders.js.map +1 -0
  318. package/dist/tools/pages/handlers-read.d.ts +33 -0
  319. package/dist/tools/pages/handlers-read.d.ts.map +1 -0
  320. package/dist/tools/pages/handlers-read.js +203 -0
  321. package/dist/tools/pages/handlers-read.js.map +1 -0
  322. package/dist/tools/pages/handlers-write.d.ts +21 -0
  323. package/dist/tools/pages/handlers-write.d.ts.map +1 -0
  324. package/dist/tools/pages/handlers-write.js +52 -0
  325. package/dist/tools/pages/handlers-write.js.map +1 -0
  326. package/dist/tools/pages/index.d.ts +17 -0
  327. package/dist/tools/pages/index.d.ts.map +1 -0
  328. package/dist/tools/pages/index.js +17 -0
  329. package/dist/tools/pages/index.js.map +1 -0
  330. package/dist/tools/pages/schemas.d.ts +45 -0
  331. package/dist/tools/pages/schemas.d.ts.map +1 -0
  332. package/dist/tools/pages/schemas.js +82 -0
  333. package/dist/tools/pages/schemas.js.map +1 -0
  334. package/dist/tools/pages.d.ts +13 -0
  335. package/dist/tools/pages.d.ts.map +1 -0
  336. package/dist/tools/pages.js +13 -0
  337. package/dist/tools/pages.js.map +1 -0
  338. package/dist/tools/pool-resolve-helper.d.ts +83 -0
  339. package/dist/tools/pool-resolve-helper.d.ts.map +1 -0
  340. package/dist/tools/pool-resolve-helper.js +148 -0
  341. package/dist/tools/pool-resolve-helper.js.map +1 -0
  342. package/dist/tools/progress-phases.d.ts +46 -0
  343. package/dist/tools/progress-phases.d.ts.map +1 -0
  344. package/dist/tools/progress-phases.js +48 -0
  345. package/dist/tools/progress-phases.js.map +1 -0
  346. package/dist/tools/shared-schemas.d.ts +25 -0
  347. package/dist/tools/shared-schemas.d.ts.map +1 -0
  348. package/dist/tools/shared-schemas.js +59 -0
  349. package/dist/tools/shared-schemas.js.map +1 -0
  350. package/dist/tools/sources/builders.d.ts +13 -0
  351. package/dist/tools/sources/builders.d.ts.map +1 -0
  352. package/dist/tools/sources/builders.js +118 -0
  353. package/dist/tools/sources/builders.js.map +1 -0
  354. package/dist/tools/sources/handlers-bind.d.ts +28 -0
  355. package/dist/tools/sources/handlers-bind.d.ts.map +1 -0
  356. package/dist/tools/sources/handlers-bind.js +129 -0
  357. package/dist/tools/sources/handlers-bind.js.map +1 -0
  358. package/dist/tools/sources/handlers.d.ts +47 -0
  359. package/dist/tools/sources/handlers.d.ts.map +1 -0
  360. package/dist/tools/sources/handlers.js +108 -0
  361. package/dist/tools/sources/handlers.js.map +1 -0
  362. package/dist/tools/sources/index.d.ts +19 -0
  363. package/dist/tools/sources/index.d.ts.map +1 -0
  364. package/dist/tools/sources/index.js +18 -0
  365. package/dist/tools/sources/index.js.map +1 -0
  366. package/dist/tools/sources.d.ts +14 -0
  367. package/dist/tools/sources.d.ts.map +1 -0
  368. package/dist/tools/sources.js +14 -0
  369. package/dist/tools/sources.js.map +1 -0
  370. package/dist/tools/sparse-fields.d.ts +106 -0
  371. package/dist/tools/sparse-fields.d.ts.map +1 -0
  372. package/dist/tools/sparse-fields.js +165 -0
  373. package/dist/tools/sparse-fields.js.map +1 -0
  374. package/dist/tools/tool-builder/annotations.d.ts +55 -0
  375. package/dist/tools/tool-builder/annotations.d.ts.map +1 -0
  376. package/dist/tools/tool-builder/annotations.js +86 -0
  377. package/dist/tools/tool-builder/annotations.js.map +1 -0
  378. package/dist/tools/tool-builder/define.d.ts +31 -0
  379. package/dist/tools/tool-builder/define.d.ts.map +1 -0
  380. package/dist/tools/tool-builder/define.js +31 -0
  381. package/dist/tools/tool-builder/define.js.map +1 -0
  382. package/dist/tools/tool-builder/index.d.ts +28 -0
  383. package/dist/tools/tool-builder/index.d.ts.map +1 -0
  384. package/dist/tools/tool-builder/index.js +27 -0
  385. package/dist/tools/tool-builder/index.js.map +1 -0
  386. package/dist/tools/tool-builder/results.d.ts +104 -0
  387. package/dist/tools/tool-builder/results.d.ts.map +1 -0
  388. package/dist/tools/tool-builder/results.js +224 -0
  389. package/dist/tools/tool-builder/results.js.map +1 -0
  390. package/dist/tools/tool-builder/types.d.ts +97 -0
  391. package/dist/tools/tool-builder/types.d.ts.map +1 -0
  392. package/dist/tools/tool-builder/types.js +9 -0
  393. package/dist/tools/tool-builder/types.js.map +1 -0
  394. package/dist/tools/tool-builder.d.ts +16 -0
  395. package/dist/tools/tool-builder.d.ts.map +1 -0
  396. package/dist/tools/tool-builder.js +16 -0
  397. package/dist/tools/tool-builder.js.map +1 -0
  398. package/manifest.json +1 -1
  399. package/package.json +2 -1
  400. package/skills/yt-builder-mcp/SKILL.md +108 -107
@@ -0,0 +1,224 @@
1
+ /**
2
+ * `tool-builder/results` — envelope builders (`jsonResult`,
3
+ * `errorResult`, `structuredResult`, `confirmGuard`) + the shared
4
+ * `sanitizeContentItem` helper. Every payload accepted here runs
5
+ * through the `sanitizeSecrets` / `sanitizeForLogs` boundary so an
6
+ * upstream regression can never land in the LLM context. The mask
7
+ * is concentrated here — `define.ts` and call-sites do not re-mask.
8
+ *
9
+ * Split from `tool-builder.ts` in Round-1.5.
10
+ *
11
+ * @license MIT
12
+ */
13
+ import { NetworkError, RestError } from '../../errors.js';
14
+ import { sanitizeForLogs } from '../../errors/mask.js';
15
+ import { sanitizeSecrets } from '../../errors/sanitize.js';
16
+ function stringify(value) {
17
+ try {
18
+ return JSON.stringify(value, null, 2);
19
+ }
20
+ catch {
21
+ return String(value);
22
+ }
23
+ }
24
+ /**
25
+ * Convert any JSON-serializable value into the MCP content envelope
26
+ * (2-space JSON). Wave G.6.4b: every payload is deep-walked through
27
+ * `sanitizeSecrets` before stringification so an upstream regression
28
+ * (REST handler surfacing `oauth_refresh_token`, `auth_data`, etc.)
29
+ * can never land in the LLM context.
30
+ */
31
+ export function jsonResult(payload, options = {}) {
32
+ const safe = sanitizeSecrets(payload);
33
+ return {
34
+ content: [{ type: 'text', text: stringify(safe) }],
35
+ ...(options.isError === true ? { isError: true } : {}),
36
+ };
37
+ }
38
+ /** Extract `(message, status?, code?)` from any thrown value, honouring
39
+ * `RestError` / `NetworkError` shape distinctions. */
40
+ function describeError(e) {
41
+ if (e instanceof RestError)
42
+ return { message: e.message, status: e.status, code: e.code };
43
+ if (e instanceof NetworkError)
44
+ return { message: e.message };
45
+ if (e instanceof Error)
46
+ return { message: e.message };
47
+ return { message: stringify(e) };
48
+ }
49
+ /**
50
+ * Render a structured error result with `context` (echoed input) and a
51
+ * recovery `hint`. Wave G.6.3 defense-in-depth: message is
52
+ * mask-and-truncate'd; context is deep-walked so an input param that
53
+ * accidentally echoed a secret-bearing value cannot leak.
54
+ */
55
+ export function errorResult(opts) {
56
+ const { message, status, code } = describeError(opts.error);
57
+ return jsonResult({
58
+ error: sanitizeForLogs(message),
59
+ ...(status !== undefined ? { status } : {}),
60
+ ...(code !== undefined ? { code } : {}),
61
+ context: sanitizeSecrets(opts.context),
62
+ hint: opts.hint,
63
+ }, { isError: true });
64
+ }
65
+ /**
66
+ * Confirm-guard preview helper for destructive tools. Returns the
67
+ * preview `ToolResult` when `confirm` is false; callers `return` it
68
+ * before executing the destructive REST call.
69
+ */
70
+ export function confirmGuard(opts) {
71
+ return jsonResult({
72
+ preview: true,
73
+ warning: 'DESTRUCTIVE — Confirmation required',
74
+ operation: opts.operation,
75
+ details: opts.details,
76
+ instruction: 'Ask the user to confirm, then call again with `confirm: true`.',
77
+ });
78
+ }
79
+ /**
80
+ * Sanitise a single content item from a toolkit builder. Text items
81
+ * frequently embed a JSON-stringified payload — if it parses, deep-walk
82
+ * and re-stringify; otherwise leave as-is (toolkit-rendered tables /
83
+ * details are already domain-mapped at the call site).
84
+ */
85
+ function sanitizeContentItem(item) {
86
+ if (item.type !== 'text' || typeof item.text !== 'string')
87
+ return item;
88
+ const text = item.text;
89
+ try {
90
+ const parsed = JSON.parse(text);
91
+ const safe = sanitizeSecrets(parsed);
92
+ return { ...item, text: stringify(safe) };
93
+ }
94
+ catch {
95
+ // Not JSON — toolkit-rendered text. No structural redaction
96
+ // possible without false-positives; the caller has already
97
+ // mapped raw secrets out via field-projection helpers.
98
+ return item;
99
+ }
100
+ }
101
+ /**
102
+ * Merge a toolkit `StructuredCallToolResult` (carries `content[0].text`
103
+ * + `_meta.ui`) with a domain-typed `structuredContent` payload. The
104
+ * result satisfies both Rich-Card hosts (read `_meta.ui`) AND
105
+ * structured-output hosts (read `structuredContent`, may validate
106
+ * against `outputSchema`). Single envelope-merger from every migrated
107
+ * tool's handler — toolkit builders are wrapped, not modified.
108
+ */
109
+ /**
110
+ * W6.2 — site-awareness envelope wrapper.
111
+ *
112
+ * Stamps a resolved-site descriptor onto a tool result so the human +
113
+ * agent both know which connected site the call ran against. Two
114
+ * channels:
115
+ *
116
+ * 1. **text-prefix PRIMARY surface** — `[<label or site_id> @
117
+ * <hostname>] ` is injected at the start of `content[0].text`
118
+ * when that block is a text item. Per the W6 web-research
119
+ * addendum (HCFV §B, Claude-Desktop UI gap doc'd in plan
120
+ * Z.1329-1332), `_meta` is read by the agent but NOT rendered as
121
+ * a UI widget today — so the prefix is the only thing Maria the
122
+ * Claude-Desktop-user reliably SEES. LOAD-BEARING.
123
+ *
124
+ * 2. **result-level `_meta` SECONDARY surface** — `_meta:
125
+ * {site_id, site_url, platform}` is merged into the RESULT-level
126
+ * `_meta` (alongside the toolkit's `_meta.ui`). This is the
127
+ * MCP-spec metadata channel: free-form and NOT validated against
128
+ * the tool's `outputSchema`.
129
+ *
130
+ * W12-R2 fix: site meta was previously merged into
131
+ * `structuredContent._meta`. That broke real hosts. Every tool's
132
+ * `outputSchema` is generated with `additionalProperties:false`,
133
+ * so an undeclared `_meta` key inside `structuredContent` fails
134
+ * client-side schema validation (`-32602`) and surfaces as a
135
+ * "Failed to call tool" toast in Claude Desktop EVEN ON A
136
+ * SUCCESSFUL CALL. `live-verify.mjs` never caught it because raw
137
+ * JSON-RPC calls skip the host's structuredContent↔outputSchema
138
+ * validation. `structuredContent` must stay schema-pure.
139
+ *
140
+ * Pure function: never mutates the input result. Non-text blocks
141
+ * (resource / image / etc.) pass through verbatim. `structuredContent`
142
+ * is passed through UNTOUCHED so it always validates against
143
+ * `outputSchema`. Empty `content[]` is tolerated and produces a
144
+ * prefix-free result (the meta still lands in result-level `_meta`).
145
+ *
146
+ * Label-fallback: `site.label` wins; falls back to `site.id`.
147
+ *
148
+ * Hostname extraction defaults to `new URL(site.url).host`. A
149
+ * malformed URL falls back to the raw site.url string so the prefix
150
+ * remains user-readable even when the registry was hand-edited.
151
+ */
152
+ export function withSiteMeta(result, site) {
153
+ const displayLabel = site.label ?? site.id;
154
+ let host;
155
+ try {
156
+ host = new URL(site.url).host;
157
+ }
158
+ catch {
159
+ host = site.url;
160
+ }
161
+ const prefix = `[${displayLabel} @ ${host}] `;
162
+ const meta = {
163
+ site_id: site.id,
164
+ site_url: site.url,
165
+ platform: site.platform.kind,
166
+ };
167
+ // W12-R1.2 (A4-F2): site-awareness is the LOAD-BEARING surface for
168
+ // Claude-Desktop users. When the wrapped result has no text content
169
+ // (e.g. an image-only / resource-only / empty-list response), the
170
+ // prefix would otherwise be lost and the agent would have no visible
171
+ // signal of which site the call ran against. Prepend a synthetic
172
+ // text block so the prefix is ALWAYS the first visible glyph.
173
+ // Trim the trailing space — a standalone prefix block reads better
174
+ // without it.
175
+ const firstItem = result.content[0];
176
+ const needsSynthetic = result.content.length === 0
177
+ || firstItem === undefined
178
+ || firstItem.type !== 'text';
179
+ const newContent = needsSynthetic
180
+ ? [
181
+ { type: 'text', text: prefix.trimEnd() },
182
+ ...result.content,
183
+ ]
184
+ : result.content.map((item, idx) => {
185
+ if (idx !== 0)
186
+ return item;
187
+ if (item.type !== 'text')
188
+ return item;
189
+ const existingText = typeof item.text === 'string' ? item.text : '';
190
+ return { ...item, text: prefix + existingText };
191
+ });
192
+ // Site meta merges into the RESULT-level `_meta` (next to the
193
+ // toolkit's `_meta.ui`), NEVER into `structuredContent`. The latter
194
+ // is validated by the host against the tool's `outputSchema`
195
+ // (additionalProperties:false); an undeclared key there triggers a
196
+ // `-32602` "Failed to call tool" reject even on success. The result
197
+ // envelope `_meta` is the spec's free-form metadata channel.
198
+ const baseTopMeta = result._meta;
199
+ const mergedTopMeta = baseTopMeta !== undefined && baseTopMeta !== null && typeof baseTopMeta === 'object'
200
+ ? { ...baseTopMeta, ...meta }
201
+ : meta;
202
+ return {
203
+ ...result,
204
+ content: newContent,
205
+ _meta: mergedTopMeta,
206
+ };
207
+ }
208
+ export function structuredResult(toolkitResult, structuredContent) {
209
+ // Wave G.6.4b — deep-walk-sanitise all three legs (text content,
210
+ // _meta.ui, structuredContent) so regressing sources never bypass
211
+ // the LLM-boundary mask.
212
+ const safeContent = toolkitResult.content.map(sanitizeContentItem);
213
+ const safeStructured = sanitizeSecrets(structuredContent);
214
+ const safeMeta = toolkitResult._meta !== undefined
215
+ ? sanitizeSecrets(toolkitResult._meta)
216
+ : undefined;
217
+ return {
218
+ content: safeContent,
219
+ ...(safeMeta !== undefined ? { _meta: safeMeta } : {}),
220
+ ...(toolkitResult.isError === true ? { isError: true } : {}),
221
+ structuredContent: safeStructured,
222
+ };
223
+ }
224
+ //# sourceMappingURL=results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results.js","sourceRoot":"","sources":["../../../src/tools/tool-builder/results.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * `tool-builder/types` — pure type declarations for the tool-definition
3
+ * system. Split from `tool-builder.ts` in Round-1.5 (replaces the
4
+ * Round-1 LoC-exception spec-amendment with a structural code-fix).
5
+ *
6
+ * @license MIT
7
+ */
8
+ import type { ServerNotification } from '@modelcontextprotocol/sdk/types.js';
9
+ import type { ZodRawShape, z } from 'zod';
10
+ /**
11
+ * A content item the SDK accepts. Mirrors the SDK
12
+ * `CallToolResult.content[number]` union (text/image/resource). Tools
13
+ * in this server only emit text, but the toolkit's structured builders
14
+ * return the wider union, so the envelope-merger must accept it.
15
+ */
16
+ export type ToolContent = {
17
+ type: string;
18
+ [key: string]: unknown;
19
+ };
20
+ /**
21
+ * MCP-compatible content envelope. Fields:
22
+ * - `content` — text blocks shown to the LLM.
23
+ * - `isError` — flag honoured by the SDK for error results.
24
+ * - `_meta.ui` — Rich-Card hints (toolkit structured-display
25
+ * protocol: data-table, detail, stats, error).
26
+ * - `structuredContent` — domain-typed payload validated against the
27
+ * tool's optional `outputSchema`.
28
+ */
29
+ export interface ToolResult {
30
+ content: ToolContent[];
31
+ isError?: boolean;
32
+ _meta?: {
33
+ ui?: unknown;
34
+ } & Record<string, unknown>;
35
+ structuredContent?: Record<string, unknown>;
36
+ }
37
+ export interface ToolAnnotations {
38
+ readonly title?: string;
39
+ /** Tool does not mutate state. */
40
+ readonly readOnlyHint?: boolean;
41
+ /** Tool may delete or otherwise destroy state. */
42
+ readonly destructiveHint?: boolean;
43
+ /** Tool talks to a system outside the host process. */
44
+ readonly openWorldHint?: boolean;
45
+ /** Identical invocations have identical effects (PUT-style). */
46
+ readonly idempotentHint?: boolean;
47
+ }
48
+ /**
49
+ * Minimal MCP-handler `extra` surface used by Wave G.5 progress reports.
50
+ * Only `_meta.progressToken` and `sendNotification` are consumed; the
51
+ * toolkit's `createProgressReporter` is defined against this same
52
+ * minimal shape so we forward verbatim with no cast at the call site.
53
+ */
54
+ export interface HandlerExtra {
55
+ readonly _meta?: {
56
+ progressToken?: string | number;
57
+ };
58
+ readonly sendNotification: (notification: ServerNotification) => Promise<void>;
59
+ }
60
+ export type ToolHandler<TSchema extends ZodRawShape> = (args: z.infer<z.ZodObject<TSchema>>, extra?: HandlerExtra) => Promise<ToolResult>;
61
+ export interface ToolDefinition<TSchema extends ZodRawShape = ZodRawShape> {
62
+ readonly name: string;
63
+ readonly description: string;
64
+ readonly inputSchema: TSchema;
65
+ /**
66
+ * Optional Zod schema describing the `structuredContent` payload.
67
+ * Hosts that support MCP structured output validate responses
68
+ * against this schema. Set on migrated tools using
69
+ * `structuredResult` / `tableResult` / `detailResult` /
70
+ * `statsResult`; tools on `jsonResult` may omit it.
71
+ */
72
+ readonly outputSchema?: z.ZodTypeAny;
73
+ readonly annotations: ToolAnnotations;
74
+ readonly handler: ToolHandler<TSchema>;
75
+ /**
76
+ * F-203 follow-up (Audit 2026-05-26 reviewer Gap 2): optional refined
77
+ * `ZodObject` representation of the input shape. When present,
78
+ * `registerToolOn` forwards THIS to the SDK in place of the raw
79
+ * `inputSchema` shape — so a top-level `.refine()` / `.superRefine()`
80
+ * is honoured by the SDK's pre-handler validation and a violation
81
+ * surfaces as a JSON-RPC `-32602 InvalidParams` envelope BEFORE the
82
+ * handler runs.
83
+ *
84
+ * The handler signature is still derived from `inputSchema: TSchema`
85
+ * (the raw shape) so the per-handler arg type stays inferred and
86
+ * stable. The refined object MUST be built from the SAME shape — any
87
+ * drift will compile-fail on the handler's argument typing.
88
+ */
89
+ readonly inputObjectSchema?: z.ZodTypeAny;
90
+ }
91
+ /**
92
+ * Type-erased tool definition used by the aggregator and server. Tools
93
+ * carry their own runtime-typed handler internally — at the registry
94
+ * boundary we only need the metadata + an opaque handler.
95
+ */
96
+ export type AnyToolDefinition = ToolDefinition<any>;
97
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/tool-builder/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,uDAAuD;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,gEAAgE;IAChE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACrD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,YAAY,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAED,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,WAAW,IAAI,CACnD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EACnC,KAAK,CAAC,EAAE,YAAY,KACnB,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzB,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACvC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;CAC7C;AAED;;;;GAIG;AAEH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `tool-builder/types` — pure type declarations for the tool-definition
3
+ * system. Split from `tool-builder.ts` in Round-1.5 (replaces the
4
+ * Round-1 LoC-exception spec-amendment with a structural code-fix).
5
+ *
6
+ * @license MIT
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/tool-builder/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `tool-builder.ts` — backward-compat re-export barrel.
3
+ *
4
+ * The implementation was split into `tool-builder/{types,annotations,
5
+ * results,define}.ts` in Round-1.5 (replaces the Round-1 LoC-exception
6
+ * spec-amendment with a structural code-fix). All existing
7
+ * `./tool-builder.js` imports continue to work via this re-export.
8
+ *
9
+ * For new code, prefer importing from `./tool-builder/index.js` (or
10
+ * the specific submodule) — but the barrel here is the stable
11
+ * public-import path for the package's internal modules.
12
+ *
13
+ * @license MIT
14
+ */
15
+ export * from './tool-builder/index.js';
16
+ //# sourceMappingURL=tool-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-builder.d.ts","sourceRoot":"","sources":["../../src/tools/tool-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `tool-builder.ts` — backward-compat re-export barrel.
3
+ *
4
+ * The implementation was split into `tool-builder/{types,annotations,
5
+ * results,define}.ts` in Round-1.5 (replaces the Round-1 LoC-exception
6
+ * spec-amendment with a structural code-fix). All existing
7
+ * `./tool-builder.js` imports continue to work via this re-export.
8
+ *
9
+ * For new code, prefer importing from `./tool-builder/index.js` (or
10
+ * the specific submodule) — but the barrel here is the stable
11
+ * public-import path for the package's internal modules.
12
+ *
13
+ * @license MIT
14
+ */
15
+ export * from './tool-builder/index.js';
16
+ //# sourceMappingURL=tool-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-builder.js","sourceRoot":"","sources":["../../src/tools/tool-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,cAAc,yBAAyB,CAAC"}
package/manifest.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "dxt_version": "0.1",
3
3
  "name": "@wootsup/yt-builder-mcp",
4
4
  "display_name": "YT Builder MCP for YOOtheme Pro (unofficial)",
5
- "version": "1.1.5",
5
+ "version": "1.1.6",
6
6
  "description": "Drive your YOOtheme Pro Page Builder programmatically from Claude, Cursor, Codex, Gemini and 5 other MCP-capable AI assistants — read layouts, edit settings, add elements, bind dynamic sources. Works on WordPress and Joomla 5/6. Built for YOOtheme Pro 4.0+. Independent third-party project, not affiliated with YOOtheme GmbH.",
7
7
  "long_description": "YT Builder MCP gives AI assistants a typed, scoped, and idempotent surface for your YOOtheme Pro Page Builder, on either WordPress or Joomla 5/6. Tools cover page discovery, layout inspection, element CRUD, source binding, and diagnostics. Bearer auth, optimistic locking via ETag, scope hierarchy (read < write < admin), and structured-error responses keep the agent safe and the workflow correct on first try. Independent third-party project — YOOtheme® is a registered trademark of YOOtheme GmbH (yootheme.com); YT Builder MCP is built by WootsUp (getimo productions) and is not affiliated with, endorsed by, or sponsored by YOOtheme.",
8
8
  "icon": "icon.png",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wootsup/yt-builder-mcp",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "type": "module",
5
5
  "description": "YT Builder MCP — drive your page builder from Claude, Cursor, Codex, Gemini and 5 other MCP-capable AI assistants. Built for YOOtheme Pro 4.0+. Independent third-party project, not affiliated with YOOtheme GmbH.",
6
6
  "license": "MIT",
@@ -49,6 +49,7 @@
49
49
  },
50
50
  "scripts": {
51
51
  "build": "tsc",
52
+ "prepublishOnly": "npm run build",
52
53
  "dev": "tsc --watch",
53
54
  "test": "vitest run",
54
55
  "test:watch": "vitest",