@wootsup/yt-builder-mcp 1.11.0 → 2.0.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 (853) hide show
  1. package/README.md +131 -33
  2. package/bin/node-floor.d.ts +28 -0
  3. package/bin/node-floor.js +123 -0
  4. package/bin/yt-builder-mcp.js +52 -11
  5. package/dist/auth.d.ts +3 -121
  6. package/dist/auth.d.ts.map +1 -1
  7. package/dist/auth.js +40 -170
  8. package/dist/auth.js.map +1 -1
  9. package/dist/catalog/build-catalog.d.ts +4 -49
  10. package/dist/catalog/build-catalog.d.ts.map +1 -1
  11. package/dist/catalog/build-catalog.js +15 -126
  12. package/dist/catalog/build-catalog.js.map +1 -1
  13. package/dist/catalog/json-schema.d.ts +3 -0
  14. package/dist/catalog/json-schema.d.ts.map +1 -0
  15. package/dist/catalog/json-schema.js +68 -0
  16. package/dist/catalog/json-schema.js.map +1 -0
  17. package/dist/catalog/output-shapes.d.ts +6 -0
  18. package/dist/catalog/output-shapes.d.ts.map +1 -0
  19. package/dist/catalog/output-shapes.js +89 -0
  20. package/dist/catalog/output-shapes.js.map +1 -0
  21. package/dist/catalog/tool-catalog-markdown.d.ts +1 -37
  22. package/dist/catalog/tool-catalog-markdown.d.ts.map +1 -1
  23. package/dist/catalog/tool-catalog-markdown.js +9 -41
  24. package/dist/catalog/tool-catalog-markdown.js.map +1 -1
  25. package/dist/cli/doctor-command.d.ts +2 -7
  26. package/dist/cli/doctor-command.d.ts.map +1 -1
  27. package/dist/cli/doctor-command.js +33 -54
  28. package/dist/cli/doctor-command.js.map +1 -1
  29. package/dist/cli/invocation-decision.d.ts +4 -52
  30. package/dist/cli/invocation-decision.d.ts.map +1 -1
  31. package/dist/cli/invocation-decision.js +45 -54
  32. package/dist/cli/invocation-decision.js.map +1 -1
  33. package/dist/client.d.ts +3 -107
  34. package/dist/client.d.ts.map +1 -1
  35. package/dist/client.js +34 -115
  36. package/dist/client.js.map +1 -1
  37. package/dist/clients/claude-code.d.ts +0 -15
  38. package/dist/clients/claude-code.d.ts.map +1 -1
  39. package/dist/clients/claude-code.js +0 -22
  40. package/dist/clients/claude-code.js.map +1 -1
  41. package/dist/clients/claude-desktop.d.ts +0 -16
  42. package/dist/clients/claude-desktop.d.ts.map +1 -1
  43. package/dist/clients/claude-desktop.js +0 -18
  44. package/dist/clients/claude-desktop.js.map +1 -1
  45. package/dist/clients/cline.d.ts +0 -23
  46. package/dist/clients/cline.d.ts.map +1 -1
  47. package/dist/clients/cline.js +0 -33
  48. package/dist/clients/cline.js.map +1 -1
  49. package/dist/clients/codex-cli.d.ts +0 -39
  50. package/dist/clients/codex-cli.d.ts.map +1 -1
  51. package/dist/clients/codex-cli.js +0 -137
  52. package/dist/clients/codex-cli.js.map +1 -1
  53. package/dist/clients/continue.d.ts +0 -10
  54. package/dist/clients/continue.d.ts.map +1 -1
  55. package/dist/clients/continue.js +0 -26
  56. package/dist/clients/continue.js.map +1 -1
  57. package/dist/clients/cursor.d.ts +0 -9
  58. package/dist/clients/cursor.d.ts.map +1 -1
  59. package/dist/clients/cursor.js +0 -11
  60. package/dist/clients/cursor.js.map +1 -1
  61. package/dist/clients/gemini-cli.d.ts +0 -15
  62. package/dist/clients/gemini-cli.d.ts.map +1 -1
  63. package/dist/clients/gemini-cli.js +0 -17
  64. package/dist/clients/gemini-cli.js.map +1 -1
  65. package/dist/clients/home.d.ts +0 -12
  66. package/dist/clients/home.d.ts.map +1 -1
  67. package/dist/clients/home.js +0 -12
  68. package/dist/clients/home.js.map +1 -1
  69. package/dist/clients/index.d.ts +0 -150
  70. package/dist/clients/index.d.ts.map +1 -1
  71. package/dist/clients/index.js +0 -112
  72. package/dist/clients/index.js.map +1 -1
  73. package/dist/clients/roo-code.d.ts +0 -20
  74. package/dist/clients/roo-code.d.ts.map +1 -1
  75. package/dist/clients/roo-code.js +0 -22
  76. package/dist/clients/roo-code.js.map +1 -1
  77. package/dist/clients/zed.d.ts +0 -9
  78. package/dist/clients/zed.d.ts.map +1 -1
  79. package/dist/clients/zed.js +0 -18
  80. package/dist/clients/zed.js.map +1 -1
  81. package/dist/compat-floor.d.ts +35 -0
  82. package/dist/compat-floor.d.ts.map +1 -0
  83. package/dist/compat-floor.js +84 -0
  84. package/dist/compat-floor.js.map +1 -0
  85. package/dist/compat-probe.d.ts +6 -0
  86. package/dist/compat-probe.d.ts.map +1 -0
  87. package/dist/compat-probe.js +20 -0
  88. package/dist/compat-probe.js.map +1 -0
  89. package/dist/diagnostics/ca-reexec.d.ts +0 -30
  90. package/dist/diagnostics/ca-reexec.d.ts.map +1 -1
  91. package/dist/diagnostics/ca-reexec.js +0 -62
  92. package/dist/diagnostics/ca-reexec.js.map +1 -1
  93. package/dist/diagnostics/ca-trust.d.ts +0 -22
  94. package/dist/diagnostics/ca-trust.d.ts.map +1 -1
  95. package/dist/diagnostics/ca-trust.js +3 -42
  96. package/dist/diagnostics/ca-trust.js.map +1 -1
  97. package/dist/diagnostics/diagnose-network-error.d.ts +1 -38
  98. package/dist/diagnostics/diagnose-network-error.d.ts.map +1 -1
  99. package/dist/diagnostics/diagnose-network-error.js +26 -37
  100. package/dist/diagnostics/diagnose-network-error.js.map +1 -1
  101. package/dist/diagnostics/doctor.d.ts +13 -65
  102. package/dist/diagnostics/doctor.d.ts.map +1 -1
  103. package/dist/diagnostics/doctor.js +46 -70
  104. package/dist/diagnostics/doctor.js.map +1 -1
  105. package/dist/diagnostics/startup-self-probe.d.ts +3 -25
  106. package/dist/diagnostics/startup-self-probe.d.ts.map +1 -1
  107. package/dist/diagnostics/startup-self-probe.js +11 -48
  108. package/dist/diagnostics/startup-self-probe.js.map +1 -1
  109. package/dist/errors/hints.d.ts +0 -44
  110. package/dist/errors/hints.d.ts.map +1 -1
  111. package/dist/errors/hints.js +0 -32
  112. package/dist/errors/hints.js.map +1 -1
  113. package/dist/errors/mask.d.ts +0 -31
  114. package/dist/errors/mask.d.ts.map +1 -1
  115. package/dist/errors/mask.js +0 -32
  116. package/dist/errors/mask.js.map +1 -1
  117. package/dist/errors/redact-credentials.d.ts +2 -0
  118. package/dist/errors/redact-credentials.d.ts.map +1 -0
  119. package/dist/errors/redact-credentials.js +13 -0
  120. package/dist/errors/redact-credentials.js.map +1 -0
  121. package/dist/errors/sanitize.d.ts +0 -29
  122. package/dist/errors/sanitize.d.ts.map +1 -1
  123. package/dist/errors/sanitize.js +0 -40
  124. package/dist/errors/sanitize.js.map +1 -1
  125. package/dist/errors.d.ts +6 -17
  126. package/dist/errors.d.ts.map +1 -1
  127. package/dist/errors.js +16 -21
  128. package/dist/errors.js.map +1 -1
  129. package/dist/gateway/advanced-read-tool.d.ts +0 -32
  130. package/dist/gateway/advanced-read-tool.d.ts.map +1 -1
  131. package/dist/gateway/advanced-read-tool.js +43 -111
  132. package/dist/gateway/advanced-read-tool.js.map +1 -1
  133. package/dist/gateway/advanced-tool/discovery.d.ts +1 -12
  134. package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -1
  135. package/dist/gateway/advanced-tool/discovery.js +18 -16
  136. package/dist/gateway/advanced-tool/discovery.js.map +1 -1
  137. package/dist/gateway/advanced-tool/domains.d.ts +7 -66
  138. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
  139. package/dist/gateway/advanced-tool/domains.js +36 -80
  140. package/dist/gateway/advanced-tool/domains.js.map +1 -1
  141. package/dist/gateway/advanced-tool/execute.d.ts +0 -25
  142. package/dist/gateway/advanced-tool/execute.d.ts.map +1 -1
  143. package/dist/gateway/advanced-tool/execute.js +13 -49
  144. package/dist/gateway/advanced-tool/execute.js.map +1 -1
  145. package/dist/gateway/advanced-tool/index.d.ts +1 -32
  146. package/dist/gateway/advanced-tool/index.d.ts.map +1 -1
  147. package/dist/gateway/advanced-tool/index.js +1 -35
  148. package/dist/gateway/advanced-tool/index.js.map +1 -1
  149. package/dist/gateway/advanced-tool/register.d.ts +0 -14
  150. package/dist/gateway/advanced-tool/register.d.ts.map +1 -1
  151. package/dist/gateway/advanced-tool/register.js +22 -58
  152. package/dist/gateway/advanced-tool/register.js.map +1 -1
  153. package/dist/gateway/advanced-tool.d.ts +0 -11
  154. package/dist/gateway/advanced-tool.d.ts.map +1 -1
  155. package/dist/gateway/advanced-tool.js +0 -11
  156. package/dist/gateway/advanced-tool.js.map +1 -1
  157. package/dist/gateway/capturing-server.d.ts +3 -88
  158. package/dist/gateway/capturing-server.d.ts.map +1 -1
  159. package/dist/gateway/capturing-server.js +0 -77
  160. package/dist/gateway/capturing-server.js.map +1 -1
  161. package/dist/gateway/essentials.d.ts +1 -63
  162. package/dist/gateway/essentials.d.ts.map +1 -1
  163. package/dist/gateway/essentials.js +10 -174
  164. package/dist/gateway/essentials.js.map +1 -1
  165. package/dist/gateway/test-support.d.ts +0 -28
  166. package/dist/gateway/test-support.d.ts.map +1 -1
  167. package/dist/gateway/test-support.js +0 -29
  168. package/dist/gateway/test-support.js.map +1 -1
  169. package/dist/health-response.d.ts +2 -0
  170. package/dist/health-response.d.ts.map +1 -0
  171. package/dist/health-response.js +7 -0
  172. package/dist/health-response.js.map +1 -0
  173. package/dist/icon-data.js +0 -3
  174. package/dist/icon-data.js.map +1 -1
  175. package/dist/index.d.ts +7 -23
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/index.js +46 -130
  178. package/dist/index.js.map +1 -1
  179. package/dist/install-skill.d.ts +0 -44
  180. package/dist/install-skill.d.ts.map +1 -1
  181. package/dist/install-skill.js +5 -46
  182. package/dist/install-skill.js.map +1 -1
  183. package/dist/net/extra-headers.d.ts +0 -58
  184. package/dist/net/extra-headers.d.ts.map +1 -1
  185. package/dist/net/extra-headers.js +0 -67
  186. package/dist/net/extra-headers.js.map +1 -1
  187. package/dist/net/internal-host.d.ts +0 -31
  188. package/dist/net/internal-host.d.ts.map +1 -1
  189. package/dist/net/internal-host.js +7 -65
  190. package/dist/net/internal-host.js.map +1 -1
  191. package/dist/net/proxy-dispatcher.d.ts +0 -37
  192. package/dist/net/proxy-dispatcher.d.ts.map +1 -1
  193. package/dist/net/proxy-dispatcher.js +0 -40
  194. package/dist/net/proxy-dispatcher.js.map +1 -1
  195. package/dist/net/public-fetch.d.ts +53 -0
  196. package/dist/net/public-fetch.d.ts.map +1 -0
  197. package/dist/net/public-fetch.js +143 -0
  198. package/dist/net/public-fetch.js.map +1 -0
  199. package/dist/net/public-page-report.d.ts +26 -0
  200. package/dist/net/public-page-report.d.ts.map +1 -0
  201. package/dist/net/public-page-report.js +145 -0
  202. package/dist/net/public-page-report.js.map +1 -0
  203. package/dist/net/redirect-safe-fetch.d.ts +14 -0
  204. package/dist/net/redirect-safe-fetch.d.ts.map +1 -0
  205. package/dist/net/redirect-safe-fetch.js +61 -0
  206. package/dist/net/redirect-safe-fetch.js.map +1 -0
  207. package/dist/net/session-recovery-fetch.d.ts +7 -0
  208. package/dist/net/session-recovery-fetch.d.ts.map +1 -0
  209. package/dist/net/session-recovery-fetch.js +139 -0
  210. package/dist/net/session-recovery-fetch.js.map +1 -0
  211. package/dist/net/site-basic-auth.d.ts +1 -59
  212. package/dist/net/site-basic-auth.d.ts.map +1 -1
  213. package/dist/net/site-basic-auth.js +5 -94
  214. package/dist/net/site-basic-auth.js.map +1 -1
  215. package/dist/package-version.d.ts +2 -0
  216. package/dist/package-version.d.ts.map +1 -0
  217. package/dist/package-version.js +15 -0
  218. package/dist/package-version.js.map +1 -0
  219. package/dist/platform/detect.d.ts +0 -54
  220. package/dist/platform/detect.d.ts.map +1 -1
  221. package/dist/platform/detect.js +0 -53
  222. package/dist/platform/detect.js.map +1 -1
  223. package/dist/platform/index.d.ts +0 -100
  224. package/dist/platform/index.d.ts.map +1 -1
  225. package/dist/platform/index.js +0 -106
  226. package/dist/platform/index.js.map +1 -1
  227. package/dist/platform/joomla.d.ts +0 -35
  228. package/dist/platform/joomla.d.ts.map +1 -1
  229. package/dist/platform/joomla.js +0 -35
  230. package/dist/platform/joomla.js.map +1 -1
  231. package/dist/proxy/bridge.d.ts +36 -76
  232. package/dist/proxy/bridge.d.ts.map +1 -1
  233. package/dist/proxy/bridge.js +443 -136
  234. package/dist/proxy/bridge.js.map +1 -1
  235. package/dist/proxy/confirm-elicitation.d.ts +22 -0
  236. package/dist/proxy/confirm-elicitation.d.ts.map +1 -0
  237. package/dist/proxy/confirm-elicitation.js +170 -0
  238. package/dist/proxy/confirm-elicitation.js.map +1 -0
  239. package/dist/proxy/confirm-question-contract.d.ts +6 -0
  240. package/dist/proxy/confirm-question-contract.d.ts.map +1 -0
  241. package/dist/proxy/confirm-question-contract.js +9 -0
  242. package/dist/proxy/confirm-question-contract.js.map +1 -0
  243. package/dist/proxy/confirm-question.d.ts +2 -0
  244. package/dist/proxy/confirm-question.d.ts.map +1 -0
  245. package/dist/proxy/confirm-question.js +125 -0
  246. package/dist/proxy/confirm-question.js.map +1 -0
  247. package/dist/proxy/instructions.d.ts +4 -0
  248. package/dist/proxy/instructions.d.ts.map +1 -0
  249. package/dist/proxy/instructions.js +12 -0
  250. package/dist/proxy/instructions.js.map +1 -0
  251. package/dist/proxy/mode.d.ts +14 -9
  252. package/dist/proxy/mode.d.ts.map +1 -1
  253. package/dist/proxy/mode.js +58 -34
  254. package/dist/proxy/mode.js.map +1 -1
  255. package/dist/proxy/multi-site.d.ts +42 -0
  256. package/dist/proxy/multi-site.d.ts.map +1 -0
  257. package/dist/proxy/multi-site.js +134 -0
  258. package/dist/proxy/multi-site.js.map +1 -0
  259. package/dist/proxy/request-headers.d.ts +9 -0
  260. package/dist/proxy/request-headers.d.ts.map +1 -0
  261. package/dist/proxy/request-headers.js +17 -0
  262. package/dist/proxy/request-headers.js.map +1 -0
  263. package/dist/proxy/shadow-tools.d.ts +9 -0
  264. package/dist/proxy/shadow-tools.d.ts.map +1 -0
  265. package/dist/proxy/shadow-tools.js +42 -0
  266. package/dist/proxy/shadow-tools.js.map +1 -0
  267. package/dist/proxy/tools-list-cap.d.ts +7 -0
  268. package/dist/proxy/tools-list-cap.d.ts.map +1 -0
  269. package/dist/proxy/tools-list-cap.js +14 -0
  270. package/dist/proxy/tools-list-cap.js.map +1 -0
  271. package/dist/proxy/transport-uncertainty.d.ts +2 -0
  272. package/dist/proxy/transport-uncertainty.d.ts.map +1 -0
  273. package/dist/proxy/transport-uncertainty.js +8 -0
  274. package/dist/proxy/transport-uncertainty.js.map +1 -0
  275. package/dist/proxy/upstream-error.d.ts +7 -0
  276. package/dist/proxy/upstream-error.d.ts.map +1 -0
  277. package/dist/proxy/upstream-error.js +35 -0
  278. package/dist/proxy/upstream-error.js.map +1 -0
  279. package/dist/proxy/wire-dialect.d.ts +5 -0
  280. package/dist/proxy/wire-dialect.d.ts.map +1 -0
  281. package/dist/proxy/wire-dialect.js +33 -0
  282. package/dist/proxy/wire-dialect.js.map +1 -0
  283. package/dist/server.d.ts +14 -82
  284. package/dist/server.d.ts.map +1 -1
  285. package/dist/server.js +107 -203
  286. package/dist/server.js.map +1 -1
  287. package/dist/setup/banner-color.d.ts +13 -0
  288. package/dist/setup/banner-color.d.ts.map +1 -0
  289. package/dist/setup/banner-color.js +93 -0
  290. package/dist/setup/banner-color.js.map +1 -0
  291. package/dist/setup/banner.d.ts +22 -0
  292. package/dist/setup/banner.d.ts.map +1 -0
  293. package/dist/setup/banner.js +119 -0
  294. package/dist/setup/banner.js.map +1 -0
  295. package/dist/setup/ca-recovery.d.ts +20 -0
  296. package/dist/setup/ca-recovery.d.ts.map +1 -0
  297. package/dist/setup/ca-recovery.js +92 -0
  298. package/dist/setup/ca-recovery.js.map +1 -0
  299. package/dist/setup/closing.d.ts +15 -0
  300. package/dist/setup/closing.d.ts.map +1 -0
  301. package/dist/setup/closing.js +43 -0
  302. package/dist/setup/closing.js.map +1 -0
  303. package/dist/setup/corporate-ca.d.ts +16 -0
  304. package/dist/setup/corporate-ca.d.ts.map +1 -0
  305. package/dist/setup/corporate-ca.js +32 -0
  306. package/dist/setup/corporate-ca.js.map +1 -0
  307. package/dist/setup/host-platform.d.ts +8 -0
  308. package/dist/setup/host-platform.d.ts.map +1 -0
  309. package/dist/setup/host-platform.js +21 -0
  310. package/dist/setup/host-platform.js.map +1 -0
  311. package/dist/setup/install-configs.d.ts +18 -0
  312. package/dist/setup/install-configs.d.ts.map +1 -0
  313. package/dist/setup/install-configs.js +70 -0
  314. package/dist/setup/install-configs.js.map +1 -0
  315. package/dist/setup/multi-site-loop.d.ts +14 -0
  316. package/dist/setup/multi-site-loop.d.ts.map +1 -0
  317. package/dist/setup/multi-site-loop.js +20 -0
  318. package/dist/setup/multi-site-loop.js.map +1 -0
  319. package/dist/setup/phases.d.ts +18 -0
  320. package/dist/setup/phases.d.ts.map +1 -0
  321. package/dist/setup/phases.js +55 -0
  322. package/dist/setup/phases.js.map +1 -0
  323. package/dist/setup/registry-remedy.d.ts +12 -0
  324. package/dist/setup/registry-remedy.d.ts.map +1 -0
  325. package/dist/setup/registry-remedy.js +37 -0
  326. package/dist/setup/registry-remedy.js.map +1 -0
  327. package/dist/setup/resume.d.ts +28 -0
  328. package/dist/setup/resume.d.ts.map +1 -0
  329. package/dist/setup/resume.js +99 -0
  330. package/dist/setup/resume.js.map +1 -0
  331. package/dist/setup-ca-env.d.ts +0 -30
  332. package/dist/setup-ca-env.d.ts.map +1 -1
  333. package/dist/setup-ca-env.js +0 -28
  334. package/dist/setup-ca-env.js.map +1 -1
  335. package/dist/setup-ca-reprobe.d.ts +0 -25
  336. package/dist/setup-ca-reprobe.d.ts.map +1 -1
  337. package/dist/setup-ca-reprobe.js +0 -34
  338. package/dist/setup-ca-reprobe.js.map +1 -1
  339. package/dist/setup-cli-confirm.d.ts +0 -34
  340. package/dist/setup-cli-confirm.d.ts.map +1 -1
  341. package/dist/setup-cli-confirm.js +0 -36
  342. package/dist/setup-cli-confirm.js.map +1 -1
  343. package/dist/setup-cli.d.ts +6 -167
  344. package/dist/setup-cli.d.ts.map +1 -1
  345. package/dist/setup-cli.js +161 -173
  346. package/dist/setup-cli.js.map +1 -1
  347. package/dist/setup-npx-spec.d.ts +0 -36
  348. package/dist/setup-npx-spec.d.ts.map +1 -1
  349. package/dist/setup-npx-spec.js +0 -38
  350. package/dist/setup-npx-spec.js.map +1 -1
  351. package/dist/setup-prompts.d.ts +5 -70
  352. package/dist/setup-prompts.d.ts.map +1 -1
  353. package/dist/setup-prompts.js +67 -107
  354. package/dist/setup-prompts.js.map +1 -1
  355. package/dist/setup-token.d.ts +0 -34
  356. package/dist/setup-token.d.ts.map +1 -1
  357. package/dist/setup-token.js +0 -40
  358. package/dist/setup-token.js.map +1 -1
  359. package/dist/setup-wizard-defaults.d.ts +0 -36
  360. package/dist/setup-wizard-defaults.d.ts.map +1 -1
  361. package/dist/setup-wizard-defaults.js +0 -75
  362. package/dist/setup-wizard-defaults.js.map +1 -1
  363. package/dist/setup-wizard-handshake.d.ts +1 -19
  364. package/dist/setup-wizard-handshake.d.ts.map +1 -1
  365. package/dist/setup-wizard-handshake.js +8 -45
  366. package/dist/setup-wizard-handshake.js.map +1 -1
  367. package/dist/setup-wizard-types.d.ts +16 -209
  368. package/dist/setup-wizard-types.d.ts.map +1 -1
  369. package/dist/setup-wizard-types.js +0 -9
  370. package/dist/setup-wizard-types.js.map +1 -1
  371. package/dist/setup-wizard.d.ts +0 -28
  372. package/dist/setup-wizard.d.ts.map +1 -1
  373. package/dist/setup-wizard.js +167 -412
  374. package/dist/setup-wizard.js.map +1 -1
  375. package/dist/setup.d.ts +0 -15
  376. package/dist/setup.d.ts.map +1 -1
  377. package/dist/setup.js +0 -15
  378. package/dist/setup.js.map +1 -1
  379. package/dist/sites/bootstrap.d.ts +0 -38
  380. package/dist/sites/bootstrap.d.ts.map +1 -1
  381. package/dist/sites/bootstrap.js +0 -44
  382. package/dist/sites/bootstrap.js.map +1 -1
  383. package/dist/sites/cli/add-site.d.ts +0 -76
  384. package/dist/sites/cli/add-site.d.ts.map +1 -1
  385. package/dist/sites/cli/add-site.js +0 -71
  386. package/dist/sites/cli/add-site.js.map +1 -1
  387. package/dist/sites/cli/list-sites.d.ts +0 -31
  388. package/dist/sites/cli/list-sites.d.ts.map +1 -1
  389. package/dist/sites/cli/list-sites.js +0 -45
  390. package/dist/sites/cli/list-sites.js.map +1 -1
  391. package/dist/sites/cli/remove-site.d.ts +0 -37
  392. package/dist/sites/cli/remove-site.d.ts.map +1 -1
  393. package/dist/sites/cli/remove-site.js +0 -37
  394. package/dist/sites/cli/remove-site.js.map +1 -1
  395. package/dist/sites/cli/set-default.d.ts +0 -25
  396. package/dist/sites/cli/set-default.d.ts.map +1 -1
  397. package/dist/sites/cli/set-default.js +0 -22
  398. package/dist/sites/cli/set-default.js.map +1 -1
  399. package/dist/sites/cli/test-site.d.ts +0 -44
  400. package/dist/sites/cli/test-site.d.ts.map +1 -1
  401. package/dist/sites/cli/test-site.js +0 -39
  402. package/dist/sites/cli/test-site.js.map +1 -1
  403. package/dist/sites/client-pool.d.ts +11 -164
  404. package/dist/sites/client-pool.d.ts.map +1 -1
  405. package/dist/sites/client-pool.js +73 -194
  406. package/dist/sites/client-pool.js.map +1 -1
  407. package/dist/sites/config-problem.d.ts +2 -0
  408. package/dist/sites/config-problem.d.ts.map +1 -0
  409. package/dist/sites/config-problem.js +13 -0
  410. package/dist/sites/config-problem.js.map +1 -0
  411. package/dist/sites/env-bridge.d.ts +0 -69
  412. package/dist/sites/env-bridge.d.ts.map +1 -1
  413. package/dist/sites/env-bridge.js +2 -71
  414. package/dist/sites/env-bridge.js.map +1 -1
  415. package/dist/sites/op-inject.d.ts +23 -0
  416. package/dist/sites/op-inject.d.ts.map +1 -0
  417. package/dist/sites/op-inject.js +131 -0
  418. package/dist/sites/op-inject.js.map +1 -0
  419. package/dist/sites/paths.d.ts +0 -19
  420. package/dist/sites/paths.d.ts.map +1 -1
  421. package/dist/sites/paths.js +0 -19
  422. package/dist/sites/paths.js.map +1 -1
  423. package/dist/sites/probe.d.ts +1 -47
  424. package/dist/sites/probe.d.ts.map +1 -1
  425. package/dist/sites/probe.js +4 -46
  426. package/dist/sites/probe.js.map +1 -1
  427. package/dist/sites/registry.d.ts +4 -135
  428. package/dist/sites/registry.d.ts.map +1 -1
  429. package/dist/sites/registry.js +4 -98
  430. package/dist/sites/registry.js.map +1 -1
  431. package/dist/sites/schema.d.ts +3 -51
  432. package/dist/sites/schema.d.ts.map +1 -1
  433. package/dist/sites/schema.js +6 -52
  434. package/dist/sites/schema.js.map +1 -1
  435. package/dist/sites/secret-resolver.d.ts +6 -76
  436. package/dist/sites/secret-resolver.d.ts.map +1 -1
  437. package/dist/sites/secret-resolver.js +39 -104
  438. package/dist/sites/secret-resolver.js.map +1 -1
  439. package/dist/sites/store.d.ts +12 -69
  440. package/dist/sites/store.d.ts.map +1 -1
  441. package/dist/sites/store.js +37 -86
  442. package/dist/sites/store.js.map +1 -1
  443. package/dist/sites/substituted-registry.d.ts +11 -0
  444. package/dist/sites/substituted-registry.d.ts.map +1 -0
  445. package/dist/sites/substituted-registry.js +13 -0
  446. package/dist/sites/substituted-registry.js.map +1 -0
  447. package/dist/sites/tools/fetch-public-url.d.ts +4 -0
  448. package/dist/sites/tools/fetch-public-url.d.ts.map +1 -0
  449. package/dist/sites/tools/fetch-public-url.js +231 -0
  450. package/dist/sites/tools/fetch-public-url.js.map +1 -0
  451. package/dist/sites/tools/index.d.ts +2 -26
  452. package/dist/sites/tools/index.d.ts.map +1 -1
  453. package/dist/sites/tools/index.js +5 -28
  454. package/dist/sites/tools/index.js.map +1 -1
  455. package/dist/sites/tools/sites-list.d.ts +3 -47
  456. package/dist/sites/tools/sites-list.d.ts.map +1 -1
  457. package/dist/sites/tools/sites-list.js +68 -80
  458. package/dist/sites/tools/sites-list.js.map +1 -1
  459. package/dist/sites/tools/sites-overview.d.ts +4 -0
  460. package/dist/sites/tools/sites-overview.d.ts.map +1 -0
  461. package/dist/sites/tools/sites-overview.js +209 -0
  462. package/dist/sites/tools/sites-overview.js.map +1 -0
  463. package/dist/sites/tools/sites-test.d.ts +2 -45
  464. package/dist/sites/tools/sites-test.d.ts.map +1 -1
  465. package/dist/sites/tools/sites-test.js +1 -56
  466. package/dist/sites/tools/sites-test.js.map +1 -1
  467. package/dist/sites/tools/use-site.d.ts +2 -45
  468. package/dist/sites/tools/use-site.d.ts.map +1 -1
  469. package/dist/sites/tools/use-site.js +31 -80
  470. package/dist/sites/tools/use-site.js.map +1 -1
  471. package/dist/sites/unknown-name-result.d.ts +10 -0
  472. package/dist/sites/unknown-name-result.d.ts.map +1 -0
  473. package/dist/sites/unknown-name-result.js +13 -0
  474. package/dist/sites/unknown-name-result.js.map +1 -0
  475. package/dist/skill-instructions.d.ts +7 -0
  476. package/dist/skill-instructions.d.ts.map +1 -0
  477. package/dist/skill-instructions.js +84 -0
  478. package/dist/skill-instructions.js.map +1 -0
  479. package/dist/skill-loader.d.ts +0 -102
  480. package/dist/skill-loader.d.ts.map +1 -1
  481. package/dist/skill-loader.js +4 -142
  482. package/dist/skill-loader.js.map +1 -1
  483. package/dist/skill-manifest.d.ts +0 -20
  484. package/dist/skill-manifest.d.ts.map +1 -1
  485. package/dist/skill-manifest.js +1 -21
  486. package/dist/skill-manifest.js.map +1 -1
  487. package/dist/skill-topics.d.ts +19 -0
  488. package/dist/skill-topics.d.ts.map +1 -0
  489. package/dist/skill-topics.js +181 -0
  490. package/dist/skill-topics.js.map +1 -0
  491. package/dist/tools/active-site.d.ts +16 -0
  492. package/dist/tools/active-site.d.ts.map +1 -0
  493. package/dist/tools/active-site.js +55 -0
  494. package/dist/tools/active-site.js.map +1 -0
  495. package/dist/tools/bind-guidance.d.ts +2 -72
  496. package/dist/tools/bind-guidance.d.ts.map +1 -1
  497. package/dist/tools/bind-guidance.js +2 -72
  498. package/dist/tools/bind-guidance.js.map +1 -1
  499. package/dist/tools/budgeted-table.d.ts +16 -0
  500. package/dist/tools/budgeted-table.d.ts.map +1 -0
  501. package/dist/tools/budgeted-table.js +203 -0
  502. package/dist/tools/budgeted-table.js.map +1 -0
  503. package/dist/tools/elements/bind-output-schema.d.ts +69 -0
  504. package/dist/tools/elements/bind-output-schema.d.ts.map +1 -0
  505. package/dist/tools/elements/bind-output-schema.js +64 -0
  506. package/dist/tools/elements/bind-output-schema.js.map +1 -0
  507. package/dist/tools/elements/builders.d.ts +1 -22
  508. package/dist/tools/elements/builders.d.ts.map +1 -1
  509. package/dist/tools/elements/builders.js +171 -133
  510. package/dist/tools/elements/builders.js.map +1 -1
  511. package/dist/tools/elements/index.d.ts +0 -26
  512. package/dist/tools/elements/index.d.ts.map +1 -1
  513. package/dist/tools/elements/index.js +0 -25
  514. package/dist/tools/elements/index.js.map +1 -1
  515. package/dist/tools/elements/read-output-schemas.d.ts +121 -0
  516. package/dist/tools/elements/read-output-schemas.d.ts.map +1 -0
  517. package/dist/tools/elements/read-output-schemas.js +225 -0
  518. package/dist/tools/elements/read-output-schemas.js.map +1 -0
  519. package/dist/tools/elements/write-output-schemas.d.ts +185 -0
  520. package/dist/tools/elements/write-output-schemas.d.ts.map +1 -0
  521. package/dist/tools/elements/write-output-schemas.js +98 -0
  522. package/dist/tools/elements/write-output-schemas.js.map +1 -0
  523. package/dist/tools/elements.d.ts +0 -11
  524. package/dist/tools/elements.d.ts.map +1 -1
  525. package/dist/tools/elements.js +0 -11
  526. package/dist/tools/elements.js.map +1 -1
  527. package/dist/tools/format/health-format.d.ts +42 -43
  528. package/dist/tools/format/health-format.d.ts.map +1 -1
  529. package/dist/tools/format/health-format.js +32 -55
  530. package/dist/tools/format/health-format.js.map +1 -1
  531. package/dist/tools/format/inspection-format.d.ts +4 -49
  532. package/dist/tools/format/inspection-format.d.ts.map +1 -1
  533. package/dist/tools/format/inspection-format.js +46 -114
  534. package/dist/tools/format/inspection-format.js.map +1 -1
  535. package/dist/tools/format/pages-format.d.ts +32 -69
  536. package/dist/tools/format/pages-format.d.ts.map +1 -1
  537. package/dist/tools/format/pages-format.js +115 -133
  538. package/dist/tools/format/pages-format.js.map +1 -1
  539. package/dist/tools/format/sources-format.d.ts +5 -39
  540. package/dist/tools/format/sources-format.d.ts.map +1 -1
  541. package/dist/tools/format/sources-format.js +57 -87
  542. package/dist/tools/format/sources-format.js.map +1 -1
  543. package/dist/tools/health-output-schemas.d.ts +82 -0
  544. package/dist/tools/health-output-schemas.d.ts.map +1 -0
  545. package/dist/tools/health-output-schemas.js +130 -0
  546. package/dist/tools/health-output-schemas.js.map +1 -0
  547. package/dist/tools/health.d.ts +2 -20
  548. package/dist/tools/health.d.ts.map +1 -1
  549. package/dist/tools/health.js +59 -184
  550. package/dist/tools/health.js.map +1 -1
  551. package/dist/tools/index.d.ts +1 -26
  552. package/dist/tools/index.d.ts.map +1 -1
  553. package/dist/tools/index.js +13 -33
  554. package/dist/tools/index.js.map +1 -1
  555. package/dist/tools/inspection.d.ts +21 -17
  556. package/dist/tools/inspection.d.ts.map +1 -1
  557. package/dist/tools/inspection.js +431 -268
  558. package/dist/tools/inspection.js.map +1 -1
  559. package/dist/tools/library.d.ts +118 -126
  560. package/dist/tools/library.d.ts.map +1 -1
  561. package/dist/tools/library.js +723 -456
  562. package/dist/tools/library.js.map +1 -1
  563. package/dist/tools/local-content/builders.d.ts +1 -17
  564. package/dist/tools/local-content/builders.d.ts.map +1 -1
  565. package/dist/tools/local-content/builders.js +105 -48
  566. package/dist/tools/local-content/builders.js.map +1 -1
  567. package/dist/tools/local-content/index.d.ts +0 -15
  568. package/dist/tools/local-content/index.d.ts.map +1 -1
  569. package/dist/tools/local-content/index.js +0 -14
  570. package/dist/tools/local-content/index.js.map +1 -1
  571. package/dist/tools/local-content/schemas.d.ts +31 -47
  572. package/dist/tools/local-content/schemas.d.ts.map +1 -1
  573. package/dist/tools/local-content/schemas.js +33 -62
  574. package/dist/tools/local-content/schemas.js.map +1 -1
  575. package/dist/tools/modules/builders.d.ts +4 -0
  576. package/dist/tools/modules/builders.d.ts.map +1 -0
  577. package/dist/tools/modules/builders.js +58 -0
  578. package/dist/tools/modules/builders.js.map +1 -0
  579. package/dist/tools/modules/index.d.ts +2 -0
  580. package/dist/tools/modules/index.d.ts.map +1 -0
  581. package/dist/tools/modules/index.js +2 -0
  582. package/dist/tools/modules/index.js.map +1 -0
  583. package/dist/tools/modules/module-id-schema.d.ts +4 -0
  584. package/dist/tools/modules/module-id-schema.d.ts.map +1 -0
  585. package/dist/tools/modules/module-id-schema.js +14 -0
  586. package/dist/tools/modules/module-id-schema.js.map +1 -0
  587. package/dist/tools/modules/module-type-fields.d.ts +10 -0
  588. package/dist/tools/modules/module-type-fields.d.ts.map +1 -0
  589. package/dist/tools/modules/module-type-fields.js +34 -0
  590. package/dist/tools/modules/module-type-fields.js.map +1 -0
  591. package/dist/tools/modules/modules-create.d.ts +59 -0
  592. package/dist/tools/modules/modules-create.d.ts.map +1 -0
  593. package/dist/tools/modules/modules-create.js +154 -0
  594. package/dist/tools/modules/modules-create.js.map +1 -0
  595. package/dist/tools/modules/modules-delete.d.ts +51 -0
  596. package/dist/tools/modules/modules-delete.d.ts.map +1 -0
  597. package/dist/tools/modules/modules-delete.js +180 -0
  598. package/dist/tools/modules/modules-delete.js.map +1 -0
  599. package/dist/tools/modules/modules-update.d.ts +43 -0
  600. package/dist/tools/modules/modules-update.d.ts.map +1 -0
  601. package/dist/tools/modules/modules-update.js +177 -0
  602. package/dist/tools/modules/modules-update.js.map +1 -0
  603. package/dist/tools/modules/placement-hints.d.ts +5 -0
  604. package/dist/tools/modules/placement-hints.d.ts.map +1 -0
  605. package/dist/tools/modules/placement-hints.js +90 -0
  606. package/dist/tools/modules/placement-hints.js.map +1 -0
  607. package/dist/tools/modules/placement-ways.d.ts +13 -0
  608. package/dist/tools/modules/placement-ways.d.ts.map +1 -0
  609. package/dist/tools/modules/placement-ways.js +61 -0
  610. package/dist/tools/modules/placement-ways.js.map +1 -0
  611. package/dist/tools/multi-items/builders.d.ts +1 -21
  612. package/dist/tools/multi-items/builders.d.ts.map +1 -1
  613. package/dist/tools/multi-items/builders.js +22 -67
  614. package/dist/tools/multi-items/builders.js.map +1 -1
  615. package/dist/tools/multi-items/index.d.ts +0 -15
  616. package/dist/tools/multi-items/index.d.ts.map +1 -1
  617. package/dist/tools/multi-items/index.js +0 -15
  618. package/dist/tools/multi-items/index.js.map +1 -1
  619. package/dist/tools/multi-items/item-container-map.d.ts +0 -35
  620. package/dist/tools/multi-items/item-container-map.d.ts.map +1 -1
  621. package/dist/tools/multi-items/item-container-map.js +0 -35
  622. package/dist/tools/multi-items/item-container-map.js.map +1 -1
  623. package/dist/tools/multi-items/output-schemas.d.ts +101 -0
  624. package/dist/tools/multi-items/output-schemas.d.ts.map +1 -0
  625. package/dist/tools/multi-items/output-schemas.js +74 -0
  626. package/dist/tools/multi-items/output-schemas.js.map +1 -0
  627. package/dist/tools/navigation/builders.d.ts +3 -0
  628. package/dist/tools/navigation/builders.d.ts.map +1 -0
  629. package/dist/tools/navigation/builders.js +25 -0
  630. package/dist/tools/navigation/builders.js.map +1 -0
  631. package/dist/tools/navigation/index.d.ts +2 -0
  632. package/dist/tools/navigation/index.d.ts.map +1 -0
  633. package/dist/tools/navigation/index.js +2 -0
  634. package/dist/tools/navigation/index.js.map +1 -0
  635. package/dist/tools/navigation/schemas.d.ts +16 -0
  636. package/dist/tools/navigation/schemas.d.ts.map +1 -0
  637. package/dist/tools/navigation/schemas.js +11 -0
  638. package/dist/tools/navigation/schemas.js.map +1 -0
  639. package/dist/tools/output-schema-metadata.d.ts +5 -0
  640. package/dist/tools/output-schema-metadata.d.ts.map +1 -0
  641. package/dist/tools/output-schema-metadata.js +83 -0
  642. package/dist/tools/output-schema-metadata.js.map +1 -0
  643. package/dist/tools/pages/builders.d.ts +1 -41
  644. package/dist/tools/pages/builders.d.ts.map +1 -1
  645. package/dist/tools/pages/builders.js +373 -359
  646. package/dist/tools/pages/builders.js.map +1 -1
  647. package/dist/tools/pages/header-transparency.d.ts +34 -0
  648. package/dist/tools/pages/header-transparency.d.ts.map +1 -0
  649. package/dist/tools/pages/header-transparency.js +85 -0
  650. package/dist/tools/pages/header-transparency.js.map +1 -0
  651. package/dist/tools/pages/index.d.ts +1 -19
  652. package/dist/tools/pages/index.d.ts.map +1 -1
  653. package/dist/tools/pages/index.js +1 -19
  654. package/dist/tools/pages/index.js.map +1 -1
  655. package/dist/tools/pages/schemas.d.ts +392 -224
  656. package/dist/tools/pages/schemas.d.ts.map +1 -1
  657. package/dist/tools/pages/schemas.js +605 -458
  658. package/dist/tools/pages/schemas.js.map +1 -1
  659. package/dist/tools/pages/write-output-schemas.d.ts +139 -0
  660. package/dist/tools/pages/write-output-schemas.d.ts.map +1 -0
  661. package/dist/tools/pages/write-output-schemas.js +138 -0
  662. package/dist/tools/pages/write-output-schemas.js.map +1 -0
  663. package/dist/tools/pages.d.ts +0 -11
  664. package/dist/tools/pages.d.ts.map +1 -1
  665. package/dist/tools/pages.js +0 -11
  666. package/dist/tools/pages.js.map +1 -1
  667. package/dist/tools/pool-resolve-helper.d.ts +0 -52
  668. package/dist/tools/pool-resolve-helper.d.ts.map +1 -1
  669. package/dist/tools/pool-resolve-helper.js +29 -104
  670. package/dist/tools/pool-resolve-helper.js.map +1 -1
  671. package/dist/tools/progress-phases.d.ts +0 -42
  672. package/dist/tools/progress-phases.d.ts.map +1 -1
  673. package/dist/tools/progress-phases.js +0 -44
  674. package/dist/tools/progress-phases.js.map +1 -1
  675. package/dist/tools/response-budget.d.ts +8 -0
  676. package/dist/tools/response-budget.d.ts.map +1 -0
  677. package/dist/tools/response-budget.js +7 -0
  678. package/dist/tools/response-budget.js.map +1 -0
  679. package/dist/tools/shared-schemas.d.ts +12 -43
  680. package/dist/tools/shared-schemas.d.ts.map +1 -1
  681. package/dist/tools/shared-schemas.js +42 -97
  682. package/dist/tools/shared-schemas.js.map +1 -1
  683. package/dist/tools/skill/builders.d.ts +3 -0
  684. package/dist/tools/skill/builders.d.ts.map +1 -0
  685. package/dist/tools/skill/builders.js +81 -0
  686. package/dist/tools/skill/builders.js.map +1 -0
  687. package/dist/tools/sources/builders.d.ts +1 -11
  688. package/dist/tools/sources/builders.d.ts.map +1 -1
  689. package/dist/tools/sources/builders.js +195 -173
  690. package/dist/tools/sources/builders.js.map +1 -1
  691. package/dist/tools/sources/index.d.ts +0 -17
  692. package/dist/tools/sources/index.d.ts.map +1 -1
  693. package/dist/tools/sources/index.js +0 -16
  694. package/dist/tools/sources/index.js.map +1 -1
  695. package/dist/tools/sources/read-output-schemas.d.ts +101 -0
  696. package/dist/tools/sources/read-output-schemas.d.ts.map +1 -0
  697. package/dist/tools/sources/read-output-schemas.js +105 -0
  698. package/dist/tools/sources/read-output-schemas.js.map +1 -0
  699. package/dist/tools/sources/source-name-argument.d.ts +17 -0
  700. package/dist/tools/sources/source-name-argument.d.ts.map +1 -0
  701. package/dist/tools/sources/source-name-argument.js +64 -0
  702. package/dist/tools/sources/source-name-argument.js.map +1 -0
  703. package/dist/tools/sources/write-output-schemas.d.ts +100 -0
  704. package/dist/tools/sources/write-output-schemas.d.ts.map +1 -0
  705. package/dist/tools/sources/write-output-schemas.js +61 -0
  706. package/dist/tools/sources/write-output-schemas.js.map +1 -0
  707. package/dist/tools/sources.d.ts +0 -12
  708. package/dist/tools/sources.d.ts.map +1 -1
  709. package/dist/tools/sources.js +0 -12
  710. package/dist/tools/sources.js.map +1 -1
  711. package/dist/tools/sparse-fields.d.ts +19 -194
  712. package/dist/tools/sparse-fields.d.ts.map +1 -1
  713. package/dist/tools/sparse-fields.js +212 -196
  714. package/dist/tools/sparse-fields.js.map +1 -1
  715. package/dist/tools/strict-input.d.ts +5 -0
  716. package/dist/tools/strict-input.d.ts.map +1 -0
  717. package/dist/tools/strict-input.js +55 -0
  718. package/dist/tools/strict-input.js.map +1 -0
  719. package/dist/tools/sublayout/builders.d.ts +1 -21
  720. package/dist/tools/sublayout/builders.d.ts.map +1 -1
  721. package/dist/tools/sublayout/builders.js +10 -40
  722. package/dist/tools/sublayout/builders.js.map +1 -1
  723. package/dist/tools/sublayout/index.d.ts +1 -11
  724. package/dist/tools/sublayout/index.d.ts.map +1 -1
  725. package/dist/tools/sublayout/index.js +1 -11
  726. package/dist/tools/sublayout/index.js.map +1 -1
  727. package/dist/tools/sublayout/output-schemas.d.ts +57 -0
  728. package/dist/tools/sublayout/output-schemas.d.ts.map +1 -0
  729. package/dist/tools/sublayout/output-schemas.js +51 -0
  730. package/dist/tools/sublayout/output-schemas.js.map +1 -0
  731. package/dist/tools/tool-builder/annotations.d.ts +1 -49
  732. package/dist/tools/tool-builder/annotations.d.ts.map +1 -1
  733. package/dist/tools/tool-builder/annotations.js +9 -49
  734. package/dist/tools/tool-builder/annotations.js.map +1 -1
  735. package/dist/tools/tool-builder/confirm-preview.d.ts +24 -0
  736. package/dist/tools/tool-builder/confirm-preview.d.ts.map +1 -0
  737. package/dist/tools/tool-builder/confirm-preview.js +37 -0
  738. package/dist/tools/tool-builder/confirm-preview.js.map +1 -0
  739. package/dist/tools/tool-builder/define.d.ts +6 -26
  740. package/dist/tools/tool-builder/define.d.ts.map +1 -1
  741. package/dist/tools/tool-builder/define.js +0 -25
  742. package/dist/tools/tool-builder/define.js.map +1 -1
  743. package/dist/tools/tool-builder/index.d.ts +3 -26
  744. package/dist/tools/tool-builder/index.d.ts.map +1 -1
  745. package/dist/tools/tool-builder/index.js +2 -25
  746. package/dist/tools/tool-builder/index.js.map +1 -1
  747. package/dist/tools/tool-builder/results.d.ts +4 -111
  748. package/dist/tools/tool-builder/results.d.ts.map +1 -1
  749. package/dist/tools/tool-builder/results.js +258 -250
  750. package/dist/tools/tool-builder/results.js.map +1 -1
  751. package/dist/tools/tool-builder/types.d.ts +5 -59
  752. package/dist/tools/tool-builder/types.d.ts.map +1 -1
  753. package/dist/tools/tool-builder/types.js +0 -7
  754. package/dist/tools/tool-builder/types.js.map +1 -1
  755. package/dist/tools/tool-builder.d.ts +0 -14
  756. package/dist/tools/tool-builder.d.ts.map +1 -1
  757. package/dist/tools/tool-builder.js +0 -14
  758. package/dist/tools/tool-builder.js.map +1 -1
  759. package/dist/uninstall-skill.d.ts +0 -41
  760. package/dist/uninstall-skill.d.ts.map +1 -1
  761. package/dist/uninstall-skill.js +0 -49
  762. package/dist/uninstall-skill.js.map +1 -1
  763. package/dist/uninstall.d.ts +0 -41
  764. package/dist/uninstall.d.ts.map +1 -1
  765. package/dist/uninstall.js +1 -29
  766. package/dist/uninstall.js.map +1 -1
  767. package/dist/update/update-check.d.ts +0 -26
  768. package/dist/update/update-check.d.ts.map +1 -1
  769. package/dist/update/update-check.js +0 -25
  770. package/dist/update/update-check.js.map +1 -1
  771. package/manifest.json +4 -5
  772. package/package.json +5 -5
  773. package/skills/yt-builder-mcp/SKILL.md +2958 -382
  774. package/dist/tools/elements/handlers-write.d.ts +0 -70
  775. package/dist/tools/elements/handlers-write.d.ts.map +0 -1
  776. package/dist/tools/elements/handlers-write.js +0 -700
  777. package/dist/tools/elements/handlers-write.js.map +0 -1
  778. package/dist/tools/elements/handlers.d.ts +0 -125
  779. package/dist/tools/elements/handlers.d.ts.map +0 -1
  780. package/dist/tools/elements/handlers.js +0 -571
  781. package/dist/tools/elements/handlers.js.map +0 -1
  782. package/dist/tools/elements/layout-hierarchy-rules.d.ts +0 -62
  783. package/dist/tools/elements/layout-hierarchy-rules.d.ts.map +0 -1
  784. package/dist/tools/elements/layout-hierarchy-rules.js +0 -154
  785. package/dist/tools/elements/layout-hierarchy-rules.js.map +0 -1
  786. package/dist/tools/elements/schema-validation.d.ts +0 -96
  787. package/dist/tools/elements/schema-validation.d.ts.map +0 -1
  788. package/dist/tools/elements/schema-validation.js +0 -249
  789. package/dist/tools/elements/schema-validation.js.map +0 -1
  790. package/dist/tools/elicitation.d.ts +0 -87
  791. package/dist/tools/elicitation.d.ts.map +0 -1
  792. package/dist/tools/elicitation.js +0 -100
  793. package/dist/tools/elicitation.js.map +0 -1
  794. package/dist/tools/format/elements-format.d.ts +0 -75
  795. package/dist/tools/format/elements-format.d.ts.map +0 -1
  796. package/dist/tools/format/elements-format.js +0 -324
  797. package/dist/tools/format/elements-format.js.map +0 -1
  798. package/dist/tools/format/source-schema-format.d.ts +0 -74
  799. package/dist/tools/format/source-schema-format.d.ts.map +0 -1
  800. package/dist/tools/format/source-schema-format.js +0 -208
  801. package/dist/tools/format/source-schema-format.js.map +0 -1
  802. package/dist/tools/layout-flatten.d.ts +0 -84
  803. package/dist/tools/layout-flatten.d.ts.map +0 -1
  804. package/dist/tools/layout-flatten.js +0 -129
  805. package/dist/tools/layout-flatten.js.map +0 -1
  806. package/dist/tools/local-content/handlers.d.ts +0 -54
  807. package/dist/tools/local-content/handlers.d.ts.map +0 -1
  808. package/dist/tools/local-content/handlers.js +0 -316
  809. package/dist/tools/local-content/handlers.js.map +0 -1
  810. package/dist/tools/multi-items/clean-implode-handler.d.ts +0 -37
  811. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +0 -1
  812. package/dist/tools/multi-items/clean-implode-handler.js +0 -65
  813. package/dist/tools/multi-items/clean-implode-handler.js.map +0 -1
  814. package/dist/tools/multi-items/format/inspection-format.d.ts +0 -41
  815. package/dist/tools/multi-items/format/inspection-format.d.ts.map +0 -1
  816. package/dist/tools/multi-items/format/inspection-format.js +0 -64
  817. package/dist/tools/multi-items/format/inspection-format.js.map +0 -1
  818. package/dist/tools/multi-items/inspect-handler.d.ts +0 -97
  819. package/dist/tools/multi-items/inspect-handler.d.ts.map +0 -1
  820. package/dist/tools/multi-items/inspect-handler.js +0 -323
  821. package/dist/tools/multi-items/inspect-handler.js.map +0 -1
  822. package/dist/tools/multi-items/inspection-cache.d.ts +0 -85
  823. package/dist/tools/multi-items/inspection-cache.d.ts.map +0 -1
  824. package/dist/tools/multi-items/inspection-cache.js +0 -126
  825. package/dist/tools/multi-items/inspection-cache.js.map +0 -1
  826. package/dist/tools/pages/handlers-audit.d.ts +0 -129
  827. package/dist/tools/pages/handlers-audit.d.ts.map +0 -1
  828. package/dist/tools/pages/handlers-audit.js +0 -704
  829. package/dist/tools/pages/handlers-audit.js.map +0 -1
  830. package/dist/tools/pages/handlers-read.d.ts +0 -95
  831. package/dist/tools/pages/handlers-read.d.ts.map +0 -1
  832. package/dist/tools/pages/handlers-read.js +0 -929
  833. package/dist/tools/pages/handlers-read.js.map +0 -1
  834. package/dist/tools/pages/handlers-write.d.ts +0 -212
  835. package/dist/tools/pages/handlers-write.d.ts.map +0 -1
  836. package/dist/tools/pages/handlers-write.js +0 -418
  837. package/dist/tools/pages/handlers-write.js.map +0 -1
  838. package/dist/tools/pages/target.d.ts +0 -162
  839. package/dist/tools/pages/target.d.ts.map +0 -1
  840. package/dist/tools/pages/target.js +0 -239
  841. package/dist/tools/pages/target.js.map +0 -1
  842. package/dist/tools/sources/handlers-bind.d.ts +0 -148
  843. package/dist/tools/sources/handlers-bind.d.ts.map +0 -1
  844. package/dist/tools/sources/handlers-bind.js +0 -655
  845. package/dist/tools/sources/handlers-bind.js.map +0 -1
  846. package/dist/tools/sources/handlers.d.ts +0 -114
  847. package/dist/tools/sources/handlers.d.ts.map +0 -1
  848. package/dist/tools/sources/handlers.js +0 -285
  849. package/dist/tools/sources/handlers.js.map +0 -1
  850. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts +0 -95
  851. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts.map +0 -1
  852. package/dist/tools/sublayout/inspect-sublayout-handler.js +0 -181
  853. package/dist/tools/sublayout/inspect-sublayout-handler.js.map +0 -1
@@ -1,75 +1,16 @@
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 { supportsSystemCa } from './diagnostics/ca-trust.js';
18
- import { hasProxyConfigured } from './net/proxy-dispatcher.js';
19
- import { JoomlaPlatform, WordPressPlatform, } from './platform/index.js';
20
- import { SERVER_NAME, SERVER_VERSION } from './server.js';
21
- import { buildCaEnv } from './setup-ca-env.js';
22
- import { buildNpxSpec } from './setup-npx-spec.js';
23
- import { DEFAULT_WIZARD_DEPS, rollbackWrites, } from './setup-wizard-defaults.js';
24
- // Re-export the public surface so `import { runWizard, WizardDeps } from
25
- // './setup-wizard.js'` continues to work without touching the split files.
1
+ import { cancel, log, outro } from '@clack/prompts';
2
+ import { JoomlaPlatform, WordPressPlatform } from './platform/index.js';
3
+ import { SERVER_VERSION } from './server.js';
4
+ import { attemptCaRecovery } from './setup/ca-recovery.js';
5
+ import { RegistryWriteFailure, REGISTRY_SITE_MISSING_REMEDY, } from './setup/registry-remedy.js';
6
+ import { resolveHostPlatform } from './setup/host-platform.js';
7
+ import { installClientConfigs } from './setup/install-configs.js';
8
+ import { announcePhase, runStep } from './setup/phases.js';
9
+ import { resolveSiteId } from './sites/schema.js';
10
+ import { DEFAULT_WIZARD_DEPS, rollbackWrites } from './setup-wizard-defaults.js';
26
11
  export { DEFAULT_WIZARD_DEPS, majorMinor } from './setup-wizard-defaults.js';
27
- // 1.0.2 Wave-R Part 2: renamed `yootheme-builder` → `yt-builder-mcp`
28
- // to match the package slug + REST namespace + GitHub repo + skill
29
- // folder. Pre-1.0.1 installs (alpha-tester only, per Thomas 2026-05-23)
30
- // would land their server under the old key; no migration logic is
31
- // shipped because there were no production installs to migrate. If
32
- // someone re-runs setup they'll get a fresh `yt-builder-mcp` entry +
33
- // the legacy `yootheme-builder` entry stays dormant (harmless, points
34
- // at the same npm package).
35
- const SERVER_KEY = 'yt-builder-mcp';
36
- /**
37
- * G-E #6 — the honest outcome message when the operator chose the OS trust store
38
- * (`--use-system-ca`). Node only consults that store when (re)started with the
39
- * flag, which the WRITTEN config does but the setup process did NOT — so we can
40
- * never validate it in-process. We say so plainly instead of reporting a false ❌.
41
- */
42
- const SYSTEM_CA_DEFERRED_MESSAGE = '✅ Configured to use the OS trust store (--use-system-ca) — this takes effect when ' +
43
- "your AI client next launches the server. The current setup process can't validate it in-process.";
44
- /**
45
- * Honest outcome when the health probe failed with an opaque TIMEOUT and we
46
- * auto-attempted the OS-trust-store recovery (a TLS-inspecting corporate proxy
47
- * whose CA chain can't be built hangs into a 30s timeout rather than a clean
48
- * cert error). Like {@link SYSTEM_CA_DEFERRED_MESSAGE}, system mode can't be
49
- * validated in-process — but a timeout is ALSO ambiguous (it can be a genuine
50
- * proxy/VPN reachability problem), so we keep the proxy/VPN guidance visible:
51
- * if the next launch still fails, the cause was reachability, not the CA.
52
- */
53
- const TIMEOUT_SYSTEM_CA_DEFERRED_MESSAGE = '✅ The connection timed out — a TLS-inspecting corporate proxy can hang the handshake this way, so the ' +
54
- 'server was configured to use the OS trust store (--use-system-ca), validated when your AI client next ' +
55
- 'launches the server. If it still fails after restart, the timeout was a reachability problem instead: ' +
56
- 'the site may be internal (VPN needed) or require a proxy (set HTTPS_PROXY). Never disables TLS verification.';
57
- /**
58
- * Run the interactive setup wizard. Returns a process exit-code so the
59
- * outer dispatcher can `process.exit(rc)` cleanly.
60
- *
61
- * Exit codes:
62
- * 0 — success (configs written, handshake OK)
63
- * 1 — invalid input that prevents proceeding
64
- * 2 — health probe failed and user declined to continue
65
- * 3 — auth probe failed and user declined to continue
66
- * 4 — write failed; configs rolled back
67
- * 5 — handshake failed; configs rolled back
68
- * 130 — user cancelled (matches the SIGINT convention)
69
- */
70
12
  export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
71
13
  const logFn = deps.log ?? ((line) => process.stderr.write(`${line}\n`));
72
- // 1. Detect clients + collect answers.
73
14
  const detected = deps.detectClients();
74
15
  const answers = await deps.prompt({ detected });
75
16
  if (answers === null)
@@ -78,216 +19,96 @@ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
78
19
  logFn('Both the WordPress URL and the Bearer key are required.');
79
20
  return 1;
80
21
  }
81
- // 1b. Resolve the host platform EXACTLY ONCE, up-front, so every probe
82
- // AND the written config target the correct REST namespace (WordPress
83
- // `/wp-json/...` vs Joomla `/api/index.php/...`). This is the fix for
84
- // the silent-WordPress class: an origin-only Joomla URL used to fall
85
- // through to `/wp-json` at every probe and at runtime.
86
- //
87
- // Resolution order:
88
- // 1. `--platform` flag (answers.platform) WINS — no probe.
89
- // 2. `deps.resolvePlatform` (URL-shape → Joomla-first runtime probe)
90
- // → a concrete kind, or `null` when it cannot decide.
91
- // 3. On `null`: PROMPT (interactive) via `deps.promptPlatform`, else
92
- // warn + fall back to WordPress (non-interactive back-compat).
93
- // We never probe per-request afterwards — the resolved Platform is
94
- // threaded into all probes below.
95
- let resolvedKind;
96
- if (answers.platform !== undefined) {
97
- resolvedKind = answers.platform;
98
- }
99
- else {
100
- const detected = deps.resolvePlatform !== undefined
101
- ? await deps.resolvePlatform(answers.wpUrl)
102
- : null;
103
- if (detected !== null) {
104
- resolvedKind = detected;
105
- }
106
- else if (deps.promptPlatform !== undefined) {
107
- const picked = await deps.promptPlatform();
108
- if (picked === null) {
109
- cancel('Setup cancelled.');
110
- return 130;
111
- }
112
- resolvedKind = picked;
113
- }
114
- else {
115
- resolvedKind = 'wordpress';
116
- logFn(`Could not auto-detect the platform for ${answers.wpUrl} — defaulting to WordPress. `
117
- + 'Re-run with `--platform joomla` if this is a Joomla install.');
118
- }
119
- }
22
+ const resolvedKind = await resolveHostPlatform({ answers, deps, logFn });
23
+ if (resolvedKind === null)
24
+ return 130;
120
25
  const resolvedPlatform = resolvedKind === 'joomla'
121
26
  ? new JoomlaPlatform(answers.wpUrl)
122
27
  : new WordPressPlatform(answers.wpUrl);
123
- // 2a. Identity probe (no auth) — confirms the URL hosts our plugin
124
- // and cross-checks against the URL the user entered. Optional
125
- // dep for back-compat: missing field = skip (older WizardDeps
126
- // bags + pre-6.5 plugins don't expose it).
127
- if (deps.probeIdentity !== undefined) {
128
- const idSpinner = spinner();
129
- idSpinner.start('Verifying plugin identity…');
130
- const identity = await deps.probeIdentity(answers.wpUrl, resolvedPlatform);
131
- if (identity.ok) {
132
- const summary = identity.siteurl !== undefined
133
- ? `Plugin identified at ${identity.siteurl}.`
134
- : 'Plugin identified.';
135
- idSpinner.stop(summary);
136
- if (identity.siteurl !== undefined && identity.siteurl !== answers.wpUrl) {
137
- log.warn(`URL mismatch: you entered ${answers.wpUrl} but the plugin reports its canonical URL as ${identity.siteurl}. ` +
138
- `Using the URL you entered — fix the mismatch if you get auth errors.`);
139
- }
28
+ if (deps.saveResume !== undefined) {
29
+ try {
30
+ await deps.saveResume({
31
+ url: answers.wpUrl,
32
+ platform: resolvedKind,
33
+ clients: answers.selectedClients,
34
+ });
140
35
  }
141
- else {
142
- idSpinner.stop('Identity probe failed.');
36
+ catch (e) {
37
+ logFn(`Could not save the setup resume file: ${e instanceof Error ? e.message : String(e)}`);
38
+ }
39
+ }
40
+ announcePhase('Checking');
41
+ const probeIdentity = deps.probeIdentity;
42
+ if (probeIdentity !== undefined) {
43
+ const identity = await runStep({
44
+ running: 'Verifying plugin identity…',
45
+ run: async () => probeIdentity(answers.wpUrl, resolvedPlatform),
46
+ verdict: (r) => r.ok
47
+ ? {
48
+ ok: true,
49
+ message: r.siteurl !== undefined
50
+ ? `Plugin identified at ${r.siteurl}.`
51
+ : 'Plugin identified.',
52
+ }
53
+ : { ok: false, message: 'Identity probe failed.' },
54
+ });
55
+ if (!identity.ok) {
143
56
  log.warn(`Identity probe: ${identity.error ?? 'unknown'} (continuing — older plugins lack this endpoint).`);
144
57
  }
58
+ else if (identity.siteurl !== undefined && identity.siteurl !== answers.wpUrl) {
59
+ log.warn(`URL mismatch: you entered ${answers.wpUrl} but the plugin reports its canonical URL as ${identity.siteurl}. ` +
60
+ `Using the URL you entered — fix the mismatch if you get auth errors.`);
61
+ }
145
62
  }
146
- // The CA choice the wizard ends up writing into the env block. Seeded from
147
- // any non-interactive `--ca` / `--ca=system` answer, then possibly set by
148
- // the interactive CA prompt (G-D #6) when a probe hits a TLS-trust error.
149
63
  let caChoice = {
150
64
  ...(answers.caCertPath !== undefined ? { caCertPath: answers.caCertPath } : {}),
151
65
  ...(answers.caMode !== undefined ? { caMode: answers.caMode } : {}),
152
66
  };
153
67
  const nodeVersion = deps.nodeVersion ?? process.version;
154
- // 2b. Health probe (no auth).
155
- const healthSpinner = spinner();
156
- healthSpinner.start('Probing plugin health…');
157
- let health = await deps.probeHealth(answers.wpUrl, resolvedPlatform);
68
+ const now = deps.now ?? (() => performance.now());
69
+ const healthProbeStartedAt = now();
70
+ let health = await runStep({
71
+ running: 'Probing plugin health…',
72
+ run: async () => deps.probeHealth(answers.wpUrl, resolvedPlatform),
73
+ verdict: (r) => r.ok
74
+ ? {
75
+ ok: true,
76
+ message: r.pluginVersion !== undefined
77
+ ? `Plugin reachable (v${r.pluginVersion}).`
78
+ : 'Plugin reachable.',
79
+ }
80
+ : { ok: false, message: 'Plugin probe failed.' },
81
+ });
82
+ const healthProbeMs = now() - healthProbeStartedAt;
83
+ let timeoutMs;
84
+ if (healthProbeMs > 5000 && (health.ok || health.timeout === true)) {
85
+ const seconds = Math.round(healthProbeMs / 1000);
86
+ const message = health.ok
87
+ ? `Site took ${seconds}s to answer. Raise the timeout to 30s? (default 15s)`
88
+ : `No answer within ${seconds}s. Raise the timeout to 30s? (default 15s)`;
89
+ const raise = await deps.confirmContinue(message);
90
+ if (raise)
91
+ timeoutMs = 30_000;
92
+ }
158
93
  let auth;
159
- // Set once the operator picked the OS trust store (--use-system-ca) and the
160
- // post-CA re-probe failed: the OS store can't be validated in THIS process,
161
- // so we defer validation to the next server launch instead of treating the
162
- // (false-negative) failure as a reason to discard the correct config.
163
94
  let systemCaDeferred = false;
164
- if (health.ok) {
165
- healthSpinner.stop(health.pluginVersion !== undefined
166
- ? `Plugin reachable (v${health.pluginVersion}).`
167
- : 'Plugin reachable.');
168
- }
169
- else {
170
- healthSpinner.stop('Plugin probe failed.');
171
- // G-D #6/#8 — a TLS chain-of-trust failure is the corporate
172
- // TLS-inspection signature. Offer to self-configure the CA (OS trust
173
- // store on a supporting Node, or a .pem path), write it into the env
174
- // block, and RE-PROBE so the operator sees ✅/❌ now instead of a silent
175
- // first-tool-call timeout. Only when a CA prompt is wired AND none was
176
- // already supplied non-interactively.
177
- const caAlreadyChosen = caChoice.caCertPath !== undefined || caChoice.caMode !== undefined;
178
- if (health.caTrust === true && deps.promptCa !== undefined && !caAlreadyChosen) {
179
- log.warn(`Corporate TLS-inspection detected: ${health.error ?? 'the TLS certificate could not be verified'}`);
180
- const systemCaSupported = supportsSystemCa(nodeVersion);
181
- const picked = await deps.promptCa({ systemCaSupported });
182
- if (picked === null) {
183
- cancel('Setup cancelled.');
184
- return 130;
185
- }
186
- if (picked.choice !== 'skip') {
187
- caChoice =
188
- picked.choice === 'system'
189
- ? { caMode: 'system' }
190
- : { caCertPath: picked.path };
191
- // Re-probe with the CA applied at runtime. When no dedicated
192
- // re-prober is wired, fall back to the ordinary probes (the
193
- // choice is still recorded into the env block either way).
194
- const reSpinner = spinner();
195
- reSpinner.start('Re-checking the connection with the CA applied…');
196
- if (deps.applyAndReProbe !== undefined) {
197
- const re = await deps.applyAndReProbe({ wpUrl: answers.wpUrl, bearer: answers.bearer, choice: picked, platform: resolvedPlatform });
198
- health = re.health;
199
- auth = re.auth;
200
- }
201
- else {
202
- health = await deps.probeHealth(answers.wpUrl, resolvedPlatform);
203
- auth = await deps.probeAuth(answers.wpUrl, answers.bearer, resolvedPlatform);
204
- }
205
- // G-E #6 honesty fix: the OS trust store is consulted ONLY when
206
- // Node is (re)started with --use-system-ca — which the WRITTEN
207
- // config does, but THIS setup process was not. So an in-process
208
- // re-probe in system mode is a guaranteed false-negative: a ❌
209
- // here would (on decline) discard the CORRECT config. Treat a
210
- // system-mode re-probe failure as "configured, validates at next
211
- // launch" — write the config and skip the generic/auth/handshake
212
- // in-process checks (which would hit the same untrusted CA). File
213
- // (.pem) mode DOES validate in-process (undici Agent trusts the
214
- // CA), so it keeps the honest ✅/❌ verdict.
215
- if (picked.choice === 'system' && !health.ok) {
216
- systemCaDeferred = true;
217
- reSpinner.stop('OS trust store configured (--use-system-ca).');
218
- logFn(SYSTEM_CA_DEFERRED_MESSAGE);
219
- }
220
- else {
221
- reSpinner.stop(health.ok ? '✅ connected — CA trusted.' : `❌ still failing: ${health.error ?? 'unknown'}`);
222
- }
223
- }
224
- }
225
- // Timeout → OS-trust-store auto-bake (Glöckle corporate-CA timeout gap).
226
- // A TLS-inspecting corporate proxy whose root CA chain can't be built
227
- // often hangs the handshake into an OPAQUE 30s timeout rather than a
228
- // clean cert code — so `health.caTrust` is false and the CA prompt above
229
- // never fires, leaving the operator to set NODE_OPTIONS=--use-system-ca
230
- // by hand. When the probe failed with a TIMEOUT, this Node can read the
231
- // OS trust store (Node ≥ 22.15), and NO CA was chosen yet, attempt the
232
- // SAME system-CA recovery the caTrust branch does: bake caMode:'system'
233
- // and RE-PROBE. `--use-system-ca` only ADDS the OS store (never disables
234
- // TLS), so attempting it on a timeout is safe even if the timeout turns
235
- // out to be a genuine proxy/VPN issue — the re-probe just fails again and
236
- // the proxy/VPN guidance is still shown. Like the caTrust branch, system
237
- // mode can't validate in-process, so a still-failing re-probe defers
238
- // validation to next launch (the written config is correct) rather than
239
- // discarding it; the ambiguity (CA vs reachability) is surfaced honestly.
240
- const caChosenSoFar = caChoice.caCertPath !== undefined || caChoice.caMode !== undefined;
241
- if (!health.ok && health.timeout === true && !caChosenSoFar && supportsSystemCa(nodeVersion)) {
242
- log.warn(`The connection timed out — attempting the OS trust store (--use-system-ca) in case a corporate TLS-inspection proxy is hanging the TLS handshake: ${health.error ?? 'timeout'}`);
243
- caChoice = { caMode: 'system' };
244
- const reSpinner = spinner();
245
- reSpinner.start('Re-checking the connection with --use-system-ca applied…');
246
- if (deps.applyAndReProbe !== undefined) {
247
- const re = await deps.applyAndReProbe({
248
- wpUrl: answers.wpUrl,
249
- bearer: answers.bearer,
250
- choice: { choice: 'system' },
251
- platform: resolvedPlatform,
252
- });
253
- health = re.health;
254
- auth = re.auth;
255
- }
256
- else {
257
- health = await deps.probeHealth(answers.wpUrl, resolvedPlatform);
258
- auth = await deps.probeAuth(answers.wpUrl, answers.bearer, resolvedPlatform);
259
- }
260
- if (health.ok) {
261
- reSpinner.stop('✅ connected — OS trust store resolved the timeout.');
262
- }
263
- else {
264
- // System mode can't validate in-process (the OS store is only
265
- // read when Node restarts WITH the flag). Defer validation to the
266
- // next launch instead of discarding the (now correct) config —
267
- // but keep the proxy/VPN guidance visible for the ambiguous case.
268
- systemCaDeferred = true;
269
- reSpinner.stop('OS trust store configured (--use-system-ca).');
270
- logFn(TIMEOUT_SYSTEM_CA_DEFERRED_MESSAGE);
271
- }
272
- }
273
- else if (!health.ok && health.timeout === true && !caChosenSoFar && !supportsSystemCa(nodeVersion)) {
274
- // Below the system-CA floor we cannot write a flag the target Node
275
- // would reject. Warn to supply a .pem instead (the only CA option on
276
- // an old Node), then fall through to the generic continue decision.
277
- // Route through BOTH the clack UI and the logFn sink so the warning is
278
- // capturable in non-TTY / test contexts (mirrors the P0.1 below-floor
279
- // branch). Intentionally does NOT name the OS-trust-store flag (the
280
- // whole point is that it's unavailable on this Node).
281
- const warnPem = `The connection timed out and this Node (${nodeVersion}) is below 22.15, so the OS trust store cannot be read. ` +
282
- 'If a corporate TLS-inspection proxy is the cause, re-run setup with `--ca <path-to-corp-root-ca.pem>` ' +
283
- '(export your corporate root CA to a .pem). Otherwise the site may need a VPN/proxy. Never disable TLS verification.';
284
- log.warn(warnPem);
285
- logFn(warnPem);
286
- }
287
- // If the connection is still down after the (optional) CA step, fall
288
- // through to the generic continue-anyway decision — UNLESS system-CA was
289
- // configured, where validation is deferred to next launch and the (false-
290
- // negative) in-process failure must not discard the config.
95
+ if (!health.ok) {
96
+ const recovered = await attemptCaRecovery({
97
+ answers,
98
+ deps,
99
+ platform: resolvedPlatform,
100
+ nodeVersion,
101
+ caChoice,
102
+ health,
103
+ logFn,
104
+ });
105
+ if (recovered.cancelled === true)
106
+ return 130;
107
+ caChoice = recovered.caChoice;
108
+ health = recovered.health;
109
+ if (recovered.auth !== undefined)
110
+ auth = recovered.auth;
111
+ systemCaDeferred = recovered.systemCaDeferred;
291
112
  if (!health.ok && !systemCaDeferred) {
292
113
  log.error(`Could not reach the plugin: ${health.error ?? 'unknown'}`);
293
114
  const cont = await deps.confirmContinue('Continue anyway and write the config? (You can fix this later.)');
@@ -297,20 +118,14 @@ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
297
118
  }
298
119
  }
299
120
  }
300
- // 3. Auth probe (Bearer). Skip when the CA re-probe already produced an
301
- // auth result (avoids a redundant round-trip on the corporate path), or
302
- // when system-CA validation is deferred (an in-process auth probe would
303
- // hit the same untrusted-CA false-negative and discard the config).
304
121
  if (auth === undefined && !systemCaDeferred) {
305
- const authSpinner = spinner();
306
- authSpinner.start('Verifying Bearer key…');
307
- auth = await deps.probeAuth(answers.wpUrl, answers.bearer, resolvedPlatform);
308
- if (auth.ok) {
309
- authSpinner.stop('Bearer key accepted.');
310
- }
311
- else {
312
- authSpinner.stop('Bearer probe failed.');
313
- }
122
+ auth = await runStep({
123
+ running: 'Verifying Bearer key…',
124
+ run: async () => deps.probeAuth(answers.wpUrl, answers.bearer, resolvedPlatform),
125
+ verdict: (r) => r.ok
126
+ ? { ok: true, message: 'Bearer key accepted.' }
127
+ : { ok: false, message: 'Bearer probe failed.' },
128
+ });
314
129
  }
315
130
  const authOk = auth?.ok ?? false;
316
131
  if (!authOk && !systemCaDeferred) {
@@ -321,130 +136,41 @@ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
321
136
  return 3;
322
137
  }
323
138
  }
324
- // 4. Write configs. Track previous content for rollback.
325
- //
326
- // Wave 7 (2026-05-24): write BOTH env-var names so the config works
327
- // with every release line — pre-Wave-7 servers only know
328
- // YTB_MCP_WP_URL; Wave-7+ servers prefer YTB_MCP_SITE_URL but still
329
- // honour the legacy alias. The wizard intentionally writes both so a
330
- // wizard-rendered config never needs editing after an npm upgrade.
331
- //
332
- // Slice 3 (proxy flip): YTB_MCP_MODE=proxy makes the Node package a thin
333
- // stdio<->HTTP proxy to the plugin's own PHP MCP endpoint
334
- // (${site}/wp-json/yt-builder-mcp/mcp). resolveMode() reads YTB_MCP_SITE_URL
335
- // + YTB_MCP_BEARER_TOKEN verbatim; the legacy WP_URL key is harmless (read
336
- // only by the fat loader). Flip YTB_MCP_MODE off to fall back to fat.
337
- // Corporate TLS-inspection: trust the chosen root CA natively. `buildCaEnv`
338
- // resolves the right key for the strategy + Node version: a `.pem` path →
339
- // NODE_EXTRA_CA_CERTS (any Node); OS trust store → NODE_OPTIONS=--use-system-ca
340
- // (Node ≥ 22.15, else warn to use a .pem). Never disables verification.
341
- // Pass an empty `currentEnv` so the WRITTEN config's NODE_OPTIONS is a clean
342
- // `--use-system-ca` for the MCP server's own runtime — not the operator's
343
- // current shell NODE_OPTIONS (which is irrelevant to the spawned server).
344
- //
345
- // P0.1 (default-on CA bake) — the install-blocker Glöckle hit: a DEFAULT
346
- // `setup` (no `--ca` flag) against a corporate-proxied / TLS-inspected site
347
- // baked NOTHING, so the very first `/mcp` connect hung 30s on the untrusted
348
- // CA. Make the bake default-on: when the operator gave NO explicit CA choice
349
- // AND we have a corporate-network signal (a forward proxy is configured, OR
350
- // the health probe reported a TLS chain-of-trust failure), auto-select the
351
- // OS trust store on a supporting Node (Node ≥ 22.15 → NODE_OPTIONS=
352
- // --use-system-ca, zero-export). On an older Node we can't write a flag it
353
- // would reject, so we leave the env untouched and warn the operator to
354
- // re-run with `--ca <corp-root-ca.pem>`. Idempotent: `withSystemCaFlag`
355
- // dedupes the flag. An explicit `--ca` / interactive CA choice always wins
356
- // (this only fills the gap when the operator chose nothing).
357
- const caExplicit = caChoice.caCertPath !== undefined || caChoice.caMode !== undefined;
358
- if (!caExplicit) {
359
- const proxyPresent = hasProxyConfigured(deps.processEnv ?? process.env);
360
- const tlsTrustFailure = health.caTrust === true;
361
- if (proxyPresent || tlsTrustFailure) {
362
- const reason = proxyPresent
363
- ? 'a corporate forward proxy (HTTP(S)_PROXY) is configured'
364
- : 'the site presented an untrusted (TLS-inspection) certificate';
365
- if (supportsSystemCa(nodeVersion)) {
366
- caChoice = { caMode: 'system' };
367
- const baked = `Corporate network detected (${reason}) — baking NODE_OPTIONS=--use-system-ca so the server trusts your OS / corporate root CA store. Re-run with \`--ca <path-to-corp-root-ca.pem>\` to pin a specific .pem instead. Never disables TLS verification.`;
368
- // Route through BOTH the clack UI (human, interactive) and the
369
- // logFn sink (stderr / captured in tests + non-TTY installs).
370
- log.info(baked);
371
- logFn(baked);
372
- }
373
- else {
374
- const warnPem = `Corporate network detected (${reason}), but this Node (${nodeVersion}) is below 22.15 and cannot read the OS trust store (--use-system-ca). Re-run setup with \`--ca <path-to-corp-root-ca.pem>\` (export your corporate root CA to a .pem). Never disable TLS verification.`;
375
- log.warn(warnPem);
376
- logFn(warnPem);
377
- }
378
- }
379
- }
380
- const caEnv = buildCaEnv(caChoice, nodeVersion, {});
381
- for (const w of caEnv.warnings)
382
- log.warn(w);
383
- // Glöckle gap #15 — pin the npx version when requested (`--pin` /
384
- // YTB_MCP_VERSION); default is the floating @latest the update-notifier
385
- // expects. A malformed pin degrades to floating with a warning.
386
- const npx = buildNpxSpec(SERVER_NAME, answers.versionPin);
387
- if (npx.error !== undefined)
388
- log.warn(npx.error);
389
- if (npx.pinned) {
390
- log.info(`Pinning the MCP server to ${npx.spec} (air-gapped / reproducible). Re-run setup without --pin to float to the latest.`);
391
- }
392
- const serverConfig = {
393
- command: 'npx',
394
- args: ['-y', npx.spec],
395
- env: {
396
- YTB_MCP_SITE_URL: answers.wpUrl,
397
- YTB_MCP_WP_URL: answers.wpUrl,
398
- YTB_MCP_BEARER_TOKEN: answers.bearer,
399
- YTB_MCP_MODE: 'proxy',
400
- // Persist the resolved platform so the runtime proxy (proxy/mode.ts)
401
- // routes to the Joomla `/api/index.php/...` `/mcp` endpoint instead
402
- // of silently assuming the WordPress `/wp-json/...` one. Shared
403
- // contract with Slice A: values are 'wordpress' | 'joomla'.
404
- YTB_MCP_PLATFORM: resolvedKind,
405
- ...caEnv.env,
406
- },
407
- };
408
- const writes = [];
409
- let writeFailed = false;
410
- for (const id of answers.selectedClients) {
411
- const result = await deps.writeClient(id, SERVER_KEY, serverConfig);
412
- writes.push(result);
413
- if (!result.ok) {
414
- writeFailed = true;
415
- break;
416
- }
417
- }
418
- const summary = writes
419
- .map((r) => r.ok
420
- ? ` ✓ ${r.label}: configured`
421
- : ` ✗ ${r.label}: FAILED (${r.error ?? 'unknown'})`)
422
- .join('\n');
423
- note(summary, 'Results');
424
- if (writeFailed) {
425
- log.error('Write failed — rolling back any partial writes.');
426
- await rollbackWrites(writes, logFn);
139
+ announcePhase('Installing');
140
+ const installed = await installClientConfigs({
141
+ answers,
142
+ deps,
143
+ resolvedKind,
144
+ caChoice,
145
+ health,
146
+ nodeVersion,
147
+ ...(timeoutMs !== undefined ? { timeoutMs } : {}),
148
+ logFn,
149
+ });
150
+ if (installed.writeFailed)
427
151
  return 4;
428
- }
429
- // 5. Dist-tag handshake (only when auth probe succeeded — there's
430
- // no point handshaking with a known-bad token).
152
+ const writes = installed.writes;
431
153
  if (authOk) {
432
- const hsSpinner = spinner();
433
- hsSpinner.start('Verifying dist-tag handshake…');
434
- const hs = await deps.handshake(answers.wpUrl, answers.bearer, SERVER_VERSION, resolvedPlatform);
154
+ const hs = await runStep({
155
+ running: 'Verifying dist-tag handshake…',
156
+ run: async () => deps.handshake(answers.wpUrl, answers.bearer, SERVER_VERSION, resolvedPlatform),
157
+ verdict: (r) => {
158
+ if (!r.ok)
159
+ return { ok: false, message: 'Handshake failed.' };
160
+ return {
161
+ ok: true,
162
+ message: r.warning !== undefined ? 'Handshake OK (with warning).' : 'Handshake OK.',
163
+ };
164
+ },
165
+ });
435
166
  if (!hs.ok) {
436
- hsSpinner.stop('Handshake failed.');
437
167
  log.error(`Handshake failed after writing configs: ${hs.error ?? 'unknown'}. Rolling back.`);
438
168
  await rollbackWrites(writes, logFn);
169
+ cancel('Setup stopped: the handshake failed and the client configs were rolled back.');
439
170
  return 5;
440
171
  }
441
- if (hs.warning !== undefined) {
442
- hsSpinner.stop('Handshake OK (with warning).');
172
+ if (hs.warning !== undefined)
443
173
  log.warn(hs.warning);
444
- }
445
- else {
446
- hsSpinner.stop('Handshake OK.');
447
- }
448
174
  }
449
175
  else if (systemCaDeferred) {
450
176
  log.info('Skipping the live handshake — the OS trust store is validated when the MCP server next launches.');
@@ -452,33 +178,62 @@ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
452
178
  else {
453
179
  log.warn('Skipping handshake because the Bearer probe failed.');
454
180
  }
455
- // W9 persist the answers to the multi-site sites.json registry
456
- // when the dispatcher wired a `persistSite` callback. We do this
457
- // AFTER the handshake passes so the sites.json never contains a
458
- // site that failed the probe. Optional hook so pre-W9 callers
459
- // (and tests that drive the wizard without sites.json) skip the
460
- // write transparently.
181
+ let persistFailed = false;
461
182
  if (deps.persistSite !== undefined && writes.every((r) => r.ok)) {
462
183
  try {
463
- // Persist the RESOLVED platform (not 'auto') so sites.json records
464
- // the concrete kind the wizard decided on — deterministic routing
465
- // on the next boot, no re-probe.
466
- await deps.persistSite({ ...answers, platform: resolvedKind });
184
+ const receipt = await deps.persistSite({ ...answers, platform: resolvedKind });
185
+ if (typeof receipt === 'string' && receipt.length > 0)
186
+ log.step(receipt);
467
187
  }
468
188
  catch (e) {
469
189
  const msg = e instanceof Error ? e.message : String(e);
470
- log.error(`Failed to persist site to sites.json: ${msg}`);
471
- // Don't rollback the client configs — the env-var path
472
- // still works; the sites.json file is an additive surface.
473
- // Operator just sees the warning + can retry with `add-site`.
190
+ persistFailed = true;
191
+ const cause = msg.replace(/\.\s*$/, '');
192
+ log.error(`Failed to persist site to sites.json: ${cause}. `
193
+ + (e instanceof RegistryWriteFailure
194
+ ? e.remedy
195
+ : REGISTRY_SITE_MISSING_REMEDY));
474
196
  }
475
197
  }
476
- if (writes.every((r) => r.ok) && (authOk || systemCaDeferred)) {
477
- outro('Done — restart your AI client to load the new MCP server.');
198
+ if (deps.installSkill !== undefined) {
199
+ try {
200
+ await runStep({
201
+ running: 'Installing the skill…',
202
+ run: deps.installSkill,
203
+ verdict: (message) => ({ ok: true, message }),
204
+ onThrow: (message) => `Skill install skipped (${message}). Run 'yt-builder-mcp install-skill' manually.`,
205
+ });
206
+ }
207
+ catch {
208
+ }
478
209
  }
479
- else {
480
- outro('Setup finished with warnings. See the messages above.');
210
+ try {
211
+ deps.clearResume?.();
212
+ }
213
+ catch (e) {
214
+ logFn(`Could not remove the setup resume file: ${e instanceof Error ? e.message : String(e)}`);
215
+ }
216
+ if (persistFailed) {
217
+ outro('Setup finished: your AI clients are configured, the site registry is not.');
218
+ return 6;
219
+ }
220
+ const cleanPass = writes.every((r) => r.ok) && (authOk || systemCaDeferred);
221
+ if (deps.confirmAnotherSite !== undefined && (await deps.confirmAnotherSite())) {
222
+ if (!cleanPass) {
223
+ log.warn('This site is configured, but with warnings. See the messages above.');
224
+ }
225
+ return 0;
226
+ }
227
+ if (cleanPass) {
228
+ await deps.printClosing?.({
229
+ siteId: resolveSiteId(answers.siteId),
230
+ url: answers.wpUrl,
231
+ clientLabels: writes.filter((r) => r.ok).map((r) => r.label),
232
+ });
481
233
  }
234
+ outro(cleanPass
235
+ ? 'Done — restart your AI client to load the new MCP server.'
236
+ : 'Setup finished with warnings. See the messages above.');
482
237
  return 0;
483
238
  }
484
239
  //# sourceMappingURL=setup-wizard.js.map