@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,199 @@
1
+ /**
2
+ * Interactive setup wizard for `@wootsup/yt-builder-mcp`.
3
+ *
4
+ * `runWizard()` accepts a {@link WizardDeps} bag so unit tests can drive
5
+ * a deterministic prompt → validate → probe → write → handshake sequence
6
+ * without touching real subprocesses or filesystems.
7
+ *
8
+ * After the Round-1 audit I5 fix, this file is the wizard ALGORITHM only:
9
+ * - `WizardDeps` and its result types live in `setup-wizard-types.ts`.
10
+ * - Default real-I/O implementations + `rollbackWrites` + `majorMinor`
11
+ * live in `setup-wizard-defaults.ts`.
12
+ * - The CLI dispatcher + main-guard live in `setup-cli.ts`.
13
+ *
14
+ * @license MIT
15
+ */
16
+ import { cancel, log, note, outro, spinner } from '@clack/prompts';
17
+ import { SERVER_NAME, SERVER_VERSION } from './server.js';
18
+ import { DEFAULT_WIZARD_DEPS, rollbackWrites, } from './setup-wizard-defaults.js';
19
+ // Re-export the public surface so `import { runWizard, WizardDeps } from
20
+ // './setup-wizard.js'` continues to work without touching the split files.
21
+ export { DEFAULT_WIZARD_DEPS, majorMinor } from './setup-wizard-defaults.js';
22
+ // 1.0.2 Wave-R Part 2: renamed `yootheme-builder` → `yt-builder-mcp`
23
+ // to match the package slug + REST namespace + GitHub repo + skill
24
+ // folder. Pre-1.0.1 installs (alpha-tester only, per Thomas 2026-05-23)
25
+ // would land their server under the old key; no migration logic is
26
+ // shipped because there were no production installs to migrate. If
27
+ // someone re-runs setup they'll get a fresh `yt-builder-mcp` entry +
28
+ // the legacy `yootheme-builder` entry stays dormant (harmless, points
29
+ // at the same npm package).
30
+ const SERVER_KEY = 'yt-builder-mcp';
31
+ /**
32
+ * Run the interactive setup wizard. Returns a process exit-code so the
33
+ * outer dispatcher can `process.exit(rc)` cleanly.
34
+ *
35
+ * Exit codes:
36
+ * 0 — success (configs written, handshake OK)
37
+ * 1 — invalid input that prevents proceeding
38
+ * 2 — health probe failed and user declined to continue
39
+ * 3 — auth probe failed and user declined to continue
40
+ * 4 — write failed; configs rolled back
41
+ * 5 — handshake failed; configs rolled back
42
+ * 130 — user cancelled (matches the SIGINT convention)
43
+ */
44
+ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
45
+ const logFn = deps.log ?? ((line) => process.stderr.write(`${line}\n`));
46
+ // 1. Detect clients + collect answers.
47
+ const detected = deps.detectClients();
48
+ const answers = await deps.prompt({ detected });
49
+ if (answers === null)
50
+ return 130;
51
+ if (answers.wpUrl === '' || answers.bearer === '') {
52
+ logFn('Both the WordPress URL and the Bearer key are required.');
53
+ return 1;
54
+ }
55
+ // 2a. Identity probe (no auth) — confirms the URL hosts our plugin
56
+ // and cross-checks against the URL the user entered. Optional
57
+ // dep for back-compat: missing field = skip (older WizardDeps
58
+ // bags + pre-6.5 plugins don't expose it).
59
+ if (deps.probeIdentity !== undefined) {
60
+ const idSpinner = spinner();
61
+ idSpinner.start('Verifying plugin identity…');
62
+ const identity = await deps.probeIdentity(answers.wpUrl);
63
+ if (identity.ok) {
64
+ const summary = identity.siteurl !== undefined
65
+ ? `Plugin identified at ${identity.siteurl}.`
66
+ : 'Plugin identified.';
67
+ idSpinner.stop(summary);
68
+ if (identity.siteurl !== undefined && identity.siteurl !== answers.wpUrl) {
69
+ log.warn(`URL mismatch: you entered ${answers.wpUrl} but the plugin reports its canonical URL as ${identity.siteurl}. ` +
70
+ `Using the URL you entered — fix the mismatch if you get auth errors.`);
71
+ }
72
+ }
73
+ else {
74
+ idSpinner.stop('Identity probe failed.');
75
+ log.warn(`Identity probe: ${identity.error ?? 'unknown'} (continuing — older plugins lack this endpoint).`);
76
+ }
77
+ }
78
+ // 2b. Health probe (no auth).
79
+ const healthSpinner = spinner();
80
+ healthSpinner.start('Probing plugin health…');
81
+ const health = await deps.probeHealth(answers.wpUrl);
82
+ if (health.ok) {
83
+ healthSpinner.stop(health.pluginVersion !== undefined
84
+ ? `Plugin reachable (v${health.pluginVersion}).`
85
+ : 'Plugin reachable.');
86
+ }
87
+ else {
88
+ healthSpinner.stop('Plugin probe failed.');
89
+ log.error(`Could not reach the plugin: ${health.error ?? 'unknown'}`);
90
+ const cont = await deps.confirmContinue('Continue anyway and write the config? (You can fix this later.)');
91
+ if (!cont) {
92
+ cancel('Setup cancelled.');
93
+ return 2;
94
+ }
95
+ }
96
+ // 3. Auth probe (Bearer).
97
+ const authSpinner = spinner();
98
+ authSpinner.start('Verifying Bearer key…');
99
+ const auth = await deps.probeAuth(answers.wpUrl, answers.bearer);
100
+ const authOk = auth.ok;
101
+ if (authOk) {
102
+ authSpinner.stop('Bearer key accepted.');
103
+ }
104
+ else {
105
+ authSpinner.stop('Bearer probe failed.');
106
+ log.warn(`Auth probe failed: ${auth.error ?? 'unknown'}`);
107
+ const cont = await deps.confirmContinue('Continue anyway and write the config?');
108
+ if (!cont) {
109
+ cancel('Setup cancelled.');
110
+ return 3;
111
+ }
112
+ }
113
+ // 4. Write configs. Track previous content for rollback.
114
+ //
115
+ // Wave 7 (2026-05-24): write BOTH env-var names so the config works
116
+ // with every release line — pre-Wave-7 servers only know
117
+ // YTB_MCP_WP_URL; Wave-7+ servers prefer YTB_MCP_SITE_URL but still
118
+ // honour the legacy alias. The wizard intentionally writes both so a
119
+ // wizard-rendered config never needs editing after an npm upgrade.
120
+ const serverConfig = {
121
+ command: 'npx',
122
+ args: ['-y', SERVER_NAME],
123
+ env: {
124
+ YTB_MCP_SITE_URL: answers.wpUrl,
125
+ YTB_MCP_WP_URL: answers.wpUrl,
126
+ YTB_MCP_BEARER_TOKEN: answers.bearer,
127
+ },
128
+ };
129
+ const writes = [];
130
+ let writeFailed = false;
131
+ for (const id of answers.selectedClients) {
132
+ const result = await deps.writeClient(id, SERVER_KEY, serverConfig);
133
+ writes.push(result);
134
+ if (!result.ok) {
135
+ writeFailed = true;
136
+ break;
137
+ }
138
+ }
139
+ const summary = writes
140
+ .map((r) => r.ok
141
+ ? ` ✓ ${r.label}: configured`
142
+ : ` ✗ ${r.label}: FAILED (${r.error ?? 'unknown'})`)
143
+ .join('\n');
144
+ note(summary, 'Results');
145
+ if (writeFailed) {
146
+ log.error('Write failed — rolling back any partial writes.');
147
+ await rollbackWrites(writes, logFn);
148
+ return 4;
149
+ }
150
+ // 5. Dist-tag handshake (only when auth probe succeeded — there's
151
+ // no point handshaking with a known-bad token).
152
+ if (authOk) {
153
+ const hsSpinner = spinner();
154
+ hsSpinner.start('Verifying dist-tag handshake…');
155
+ const hs = await deps.handshake(answers.wpUrl, answers.bearer, SERVER_VERSION);
156
+ if (!hs.ok) {
157
+ hsSpinner.stop('Handshake failed.');
158
+ log.error(`Handshake failed after writing configs: ${hs.error ?? 'unknown'}. Rolling back.`);
159
+ await rollbackWrites(writes, logFn);
160
+ return 5;
161
+ }
162
+ if (hs.warning !== undefined) {
163
+ hsSpinner.stop('Handshake OK (with warning).');
164
+ log.warn(hs.warning);
165
+ }
166
+ else {
167
+ hsSpinner.stop('Handshake OK.');
168
+ }
169
+ }
170
+ else {
171
+ log.warn('Skipping handshake because the Bearer probe failed.');
172
+ }
173
+ // W9 — persist the answers to the multi-site sites.json registry
174
+ // when the dispatcher wired a `persistSite` callback. We do this
175
+ // AFTER the handshake passes so the sites.json never contains a
176
+ // site that failed the probe. Optional hook so pre-W9 callers
177
+ // (and tests that drive the wizard without sites.json) skip the
178
+ // write transparently.
179
+ if (deps.persistSite !== undefined && writes.every((r) => r.ok)) {
180
+ try {
181
+ await deps.persistSite(answers);
182
+ }
183
+ catch (e) {
184
+ const msg = e instanceof Error ? e.message : String(e);
185
+ log.error(`Failed to persist site to sites.json: ${msg}`);
186
+ // Don't rollback the client configs — the env-var path
187
+ // still works; the sites.json file is an additive surface.
188
+ // Operator just sees the warning + can retry with `add-site`.
189
+ }
190
+ }
191
+ if (writes.every((r) => r.ok) && authOk) {
192
+ outro('Done — restart your AI client to load the new MCP server.');
193
+ }
194
+ else {
195
+ outro('Setup finished with warnings. See the messages above.');
196
+ }
197
+ return 0;
198
+ }
199
+ //# sourceMappingURL=setup-wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../src/setup-wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Backwards-compat entry point for `npx -y @wootsup/yt-builder-mcp setup`.
3
+ *
4
+ * The Wave G.7 refactor moved the wizard implementation into
5
+ * {@link runWizard} (with dependency injection so it's unit-testable)
6
+ * and the subcommand dispatcher into {@link runCli}, both in
7
+ * `./setup-cli.ts`. This file remains so the published `bin/`
8
+ * shim that does `import('../dist/setup.js')` still works after a
9
+ * partial deploy where only the published tarball is updated; it
10
+ * simply forwards to `runWizard()`.
11
+ *
12
+ * `YTB_MCP_TEST_MODE=1` short-circuits the wizard for smoke tests.
13
+ *
14
+ * @license MIT
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
package/dist/setup.js ADDED
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Backwards-compat entry point for `npx -y @wootsup/yt-builder-mcp setup`.
3
+ *
4
+ * The Wave G.7 refactor moved the wizard implementation into
5
+ * {@link runWizard} (with dependency injection so it's unit-testable)
6
+ * and the subcommand dispatcher into {@link runCli}, both in
7
+ * `./setup-cli.ts`. This file remains so the published `bin/`
8
+ * shim that does `import('../dist/setup.js')` still works after a
9
+ * partial deploy where only the published tarball is updated; it
10
+ * simply forwards to `runWizard()`.
11
+ *
12
+ * `YTB_MCP_TEST_MODE=1` short-circuits the wizard for smoke tests.
13
+ *
14
+ * @license MIT
15
+ */
16
+ import { runWizard } from './setup-cli.js';
17
+ const TEST_MODE = process.env.YTB_MCP_TEST_MODE === '1';
18
+ async function run() {
19
+ if (TEST_MODE) {
20
+ process.stderr.write('[yt-builder-mcp setup] Test mode — exiting after banner.\n');
21
+ return;
22
+ }
23
+ const code = await runWizard();
24
+ if (code !== 0) {
25
+ process.exit(code);
26
+ }
27
+ }
28
+ run().catch((e) => {
29
+ const message = e instanceof Error ? e.message : String(e);
30
+ process.stderr.write(`[yt-builder-mcp setup] fatal: ${message}\n`);
31
+ process.exit(1);
32
+ });
33
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAC;AAExD,KAAK,UAAU,GAAG;IACd,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QACnF,OAAO;IACX,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC;IAC/B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;AACL,CAAC;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;IACvB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,OAAO,IAAI,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Phase 3 — boot-time active-site selection from `YTB_MCP_PROFILE`.
3
+ *
4
+ * The YT Builder analogue of api-mapper's `bootstrapActiveProfile`
5
+ * (`APIMAPPER_PROFILE` → ProfileStore.setActive). Here the "profile" is
6
+ * a registry `site_id` and the active pointer is the {@link ClientPool}'s
7
+ * in-memory override — the registry itself is immutable, nothing is
8
+ * written to disk.
9
+ *
10
+ * Why this exists: a customer who manages several client sites typically
11
+ * adds one MCP-client entry per site, each binding a different
12
+ * `YTB_MCP_PROFILE`. Without this bridge every entry would boot on the
13
+ * registry's lone `default_site_id` and the first tool call would target
14
+ * the wrong site until the user manually ran `yootheme_builder_use_site`.
15
+ *
16
+ * Behaviour (pinned by tests/sites/bootstrap-active-site.test.ts —
17
+ * deliberately identical to api-mapper's bootstrapActiveProfile):
18
+ * - unset / whitespace-only → no override (registry default applies)
19
+ * - "default" → no-op (the manifest default value is the
20
+ * implicit registry-default state)
21
+ * - "<known site_id>" → pool.setActiveSite(id)
22
+ * - "<unknown site_id>" → no-op, no throw (a fresh host that
23
+ * inherited the var from a different
24
+ * config must not crash or phantom-switch)
25
+ *
26
+ * Best-effort + synchronous: `setActiveSite` is a pure in-memory pointer
27
+ * move (no I/O), so unlike the api-mapper async store version this needs
28
+ * no try/catch around disk reads. An unknown id is pre-checked against
29
+ * the registry so the `UnknownSiteError` path is never reached.
30
+ *
31
+ * @license MIT
32
+ */
33
+ import type { ClientPool } from './client-pool.js';
34
+ /**
35
+ * Seed the pool's active-site override from `env[YTB_MCP_PROFILE]`.
36
+ *
37
+ * @param pool The process-wide {@link ClientPool}.
38
+ * @param env Env source (defaults to `process.env`). Injectable for tests.
39
+ */
40
+ export declare function bootstrapActiveSite(pool: ClientPool, env?: NodeJS.ProcessEnv): void;
41
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/sites/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,UAAU,EAChB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACrC,IAAI,CAoBN"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Phase 3 — boot-time active-site selection from `YTB_MCP_PROFILE`.
3
+ *
4
+ * The YT Builder analogue of api-mapper's `bootstrapActiveProfile`
5
+ * (`APIMAPPER_PROFILE` → ProfileStore.setActive). Here the "profile" is
6
+ * a registry `site_id` and the active pointer is the {@link ClientPool}'s
7
+ * in-memory override — the registry itself is immutable, nothing is
8
+ * written to disk.
9
+ *
10
+ * Why this exists: a customer who manages several client sites typically
11
+ * adds one MCP-client entry per site, each binding a different
12
+ * `YTB_MCP_PROFILE`. Without this bridge every entry would boot on the
13
+ * registry's lone `default_site_id` and the first tool call would target
14
+ * the wrong site until the user manually ran `yootheme_builder_use_site`.
15
+ *
16
+ * Behaviour (pinned by tests/sites/bootstrap-active-site.test.ts —
17
+ * deliberately identical to api-mapper's bootstrapActiveProfile):
18
+ * - unset / whitespace-only → no override (registry default applies)
19
+ * - "default" → no-op (the manifest default value is the
20
+ * implicit registry-default state)
21
+ * - "<known site_id>" → pool.setActiveSite(id)
22
+ * - "<unknown site_id>" → no-op, no throw (a fresh host that
23
+ * inherited the var from a different
24
+ * config must not crash or phantom-switch)
25
+ *
26
+ * Best-effort + synchronous: `setActiveSite` is a pure in-memory pointer
27
+ * move (no I/O), so unlike the api-mapper async store version this needs
28
+ * no try/catch around disk reads. An unknown id is pre-checked against
29
+ * the registry so the `UnknownSiteError` path is never reached.
30
+ *
31
+ * @license MIT
32
+ */
33
+ import { ENV_PROFILE } from '../auth.js';
34
+ /**
35
+ * Seed the pool's active-site override from `env[YTB_MCP_PROFILE]`.
36
+ *
37
+ * @param pool The process-wide {@link ClientPool}.
38
+ * @param env Env source (defaults to `process.env`). Injectable for tests.
39
+ */
40
+ export function bootstrapActiveSite(pool, env = process.env) {
41
+ const desired = (env[ENV_PROFILE] ?? '').trim();
42
+ // Unset / whitespace / the manifest default → leave the registry
43
+ // default in effect (no override).
44
+ if (desired === '' || desired === 'default')
45
+ return;
46
+ // Only switch when the named site actually exists in the registry.
47
+ // An inherited / stale var pointing at a site that is not configured
48
+ // on THIS host must be a silent no-op — never a crash, never a
49
+ // phantom override.
50
+ if (pool.registry.get(desired) === null) {
51
+ process.stderr.write(`[yt-builder-mcp] notice: ${ENV_PROFILE}="${desired}" does not match any `
52
+ + 'configured site_id — keeping the registry default. '
53
+ + 'Use yootheme_builder_sites_list to see available IDs.\n');
54
+ return;
55
+ }
56
+ pool.setActiveSite(desired);
57
+ }
58
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/sites/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAC/B,IAAgB,EAChB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,iEAAiE;IACjE,mCAAmC;IACnC,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAEpD,mEAAmE;IACnE,qEAAqE;IACrE,+DAA+D;IAC/D,oBAAoB;IACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,4BAA4B,WAAW,KAAK,OAAO,uBAAuB;cACxE,qDAAqD;cACrD,yDAAyD,CAC9D,CAAC;QACF,OAAO;IACX,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * W9 — `add-site` CLI subcommand.
3
+ *
4
+ * Adds (or, with `--yes`, overwrites) a single site entry in the
5
+ * on-disk `sites.json` registry. Pure file-IO surface: loads, mutates
6
+ * in memory, and atomic-saves through {@link saveSitesFile}. NEVER
7
+ * touches the network — the optional connectivity probe lives in
8
+ * `test-site` so callers can compose the two.
9
+ *
10
+ * Design choices (per plan §W9):
11
+ * - **Mutual-exclusion `--token` vs `--token-ref`.** Exactly one
12
+ * credential field must be set; reuses the W1 SiteEntry refine() as
13
+ * the on-disk guard but also pre-checks here for an immediate CLI
14
+ * error rather than a Zod surprise at save time.
15
+ * - **Auto-default on first site.** If `sites.json` is empty (or did
16
+ * not exist), the first added entry gets `is_default: true` AND
17
+ * `default_site_id` is updated, regardless of whether `--default`
18
+ * was passed. The plan calls this out explicitly so users don't
19
+ * end up with a registry that has sites but no default.
20
+ * - **Idempotent + safe overwrite.** Re-adding the same `site_id`
21
+ * fails with exit code 2 unless `--yes` is passed; with `--yes` the
22
+ * existing entry is replaced AND its `is_default` flag is preserved
23
+ * so an overwrite of the default site stays the default.
24
+ * - **Defence-in-depth platform default.** When `--platform` is
25
+ * omitted the entry stores `'auto'`, which the W3 registry resolves
26
+ * at first use via the runtime probe.
27
+ *
28
+ * @license MIT
29
+ */
30
+ import { type SitesFileT } from '../schema.js';
31
+ /**
32
+ * Parsed shape consumed by {@link addSiteCommand}. The dispatcher
33
+ * (`setup-cli.ts:runCli`) translates argv flags into this object and
34
+ * the public test surface drives it directly so flag parsing is
35
+ * exercised separately from the file-IO and registry-mutation logic.
36
+ */
37
+ export interface AddSiteArgs {
38
+ readonly url: string;
39
+ /** Inline plain bearer; mutually exclusive with `tokenRef`. */
40
+ readonly token?: string;
41
+ /** 1Password Secret Reference; mutually exclusive with `token`. */
42
+ readonly tokenRef?: string;
43
+ /** Optional explicit platform hint; defaults to `'auto'`. */
44
+ readonly platform?: 'auto' | 'wordpress' | 'joomla';
45
+ /** Optional human-readable label (≤120 chars). */
46
+ readonly label?: string;
47
+ /** When true, mark the new site as the default. Ignored if it's
48
+ * the first site (auto-default applies). */
49
+ readonly default?: boolean;
50
+ /** Override the site_id slug; defaults to `'default'`. */
51
+ readonly siteId?: string;
52
+ /** Skip "this site_id exists" guard and overwrite instead. */
53
+ readonly yes?: boolean;
54
+ }
55
+ /**
56
+ * Outcome of a successful add. The CLI dispatcher uses this to render
57
+ * the "Site '<id>' added (default)." line + the restart hint. Returned
58
+ * as a value (not stdout-side) so tests can assert without parsing
59
+ * captured stdout.
60
+ */
61
+ export interface AddSiteResult {
62
+ /** site_id that was written. */
63
+ readonly siteId: string;
64
+ /** Path of the sites.json that was written. */
65
+ readonly path: string;
66
+ /** True when this site was first AND auto-promoted to default. */
67
+ readonly becameDefault: boolean;
68
+ /** True when an existing entry with the same site_id was replaced. */
69
+ readonly overwritten: boolean;
70
+ /** True when --default flag was honoured (and not just auto-default). */
71
+ readonly defaultRequested: boolean;
72
+ }
73
+ /**
74
+ * Domain-tagged CLI failure. The dispatcher maps these to exit codes
75
+ * (typically 2 for "input invalid" + a friendly stderr line). Carries
76
+ * a `code` so tests / callers can branch without substring matching.
77
+ */
78
+ export declare class AddSiteError extends Error {
79
+ readonly code: string;
80
+ constructor(code: string, message: string);
81
+ }
82
+ /**
83
+ * Test/IO injection seam. Production callers use the default
84
+ * implementations imported above; tests inject in-memory store
85
+ * helpers and a frozen `now()`.
86
+ */
87
+ export interface AddSiteDeps {
88
+ readonly load: (path: string) => Promise<SitesFileT>;
89
+ readonly save: (path: string, data: SitesFileT) => Promise<void>;
90
+ readonly now?: () => string;
91
+ }
92
+ /**
93
+ * Add (or overwrite-with-`--yes`) a single site entry. See file header
94
+ * for the auto-default / mutual-exclusion / idempotency contract.
95
+ *
96
+ * @throws {AddSiteError} on any input-validation failure or when the
97
+ * site_id already exists and `--yes` was not passed.
98
+ */
99
+ export declare function addSiteCommand(args: AddSiteArgs, path: string, deps: AddSiteDeps): Promise<AddSiteResult>;
100
+ /**
101
+ * Default IO deps wired to the real store. Exported so the dispatcher
102
+ * + the W9 wizard-internal call-site can both share them without
103
+ * duplicating the import surface.
104
+ */
105
+ export declare const DEFAULT_ADD_SITE_DEPS: AddSiteDeps;
106
+ //# sourceMappingURL=add-site.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-site.d.ts","sourceRoot":"","sources":["../../../src/sites/cli/add-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAKH,KAAK,UAAU,EAClB,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACpD,kDAAkD;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;iDAC6C;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC1B,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACtC;AAED;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,KAAK;aACP,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI5D;AA0GD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAChC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,GAClB,OAAO,CAAC,aAAa,CAAC,CAoExB;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAQnC,CAAC"}