@wootsup/yt-builder-mcp 1.12.0 → 2.1.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 (869) hide show
  1. package/README.md +139 -40
  2. package/bin/node-floor.d.ts +28 -0
  3. package/bin/node-floor.js +150 -0
  4. package/bin/yt-builder-mcp.js +51 -10
  5. package/dist/auth.d.ts +3 -121
  6. package/dist/auth.d.ts.map +1 -1
  7. package/dist/auth.js +44 -174
  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 +8 -52
  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 +21 -62
  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 +46 -55
  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 +1 -23
  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 +1 -19
  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 +1 -34
  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 +12 -147
  52. package/dist/clients/codex-cli.js.map +1 -1
  53. package/dist/clients/config-file.d.ts +15 -0
  54. package/dist/clients/config-file.d.ts.map +1 -0
  55. package/dist/clients/config-file.js +86 -0
  56. package/dist/clients/config-file.js.map +1 -0
  57. package/dist/clients/continue.d.ts +0 -10
  58. package/dist/clients/continue.d.ts.map +1 -1
  59. package/dist/clients/continue.js +3 -30
  60. package/dist/clients/continue.js.map +1 -1
  61. package/dist/clients/cursor.d.ts +0 -9
  62. package/dist/clients/cursor.d.ts.map +1 -1
  63. package/dist/clients/cursor.js +1 -12
  64. package/dist/clients/cursor.js.map +1 -1
  65. package/dist/clients/gemini-cli.d.ts +0 -15
  66. package/dist/clients/gemini-cli.d.ts.map +1 -1
  67. package/dist/clients/gemini-cli.js +1 -18
  68. package/dist/clients/gemini-cli.js.map +1 -1
  69. package/dist/clients/home.d.ts +0 -12
  70. package/dist/clients/home.d.ts.map +1 -1
  71. package/dist/clients/home.js +0 -12
  72. package/dist/clients/home.js.map +1 -1
  73. package/dist/clients/index.d.ts +2 -153
  74. package/dist/clients/index.d.ts.map +1 -1
  75. package/dist/clients/index.js +3 -153
  76. package/dist/clients/index.js.map +1 -1
  77. package/dist/clients/roo-code.d.ts +0 -20
  78. package/dist/clients/roo-code.d.ts.map +1 -1
  79. package/dist/clients/roo-code.js +1 -23
  80. package/dist/clients/roo-code.js.map +1 -1
  81. package/dist/clients/zed.d.ts +0 -9
  82. package/dist/clients/zed.d.ts.map +1 -1
  83. package/dist/clients/zed.js +1 -19
  84. package/dist/clients/zed.js.map +1 -1
  85. package/dist/compat-floor.d.ts +35 -0
  86. package/dist/compat-floor.d.ts.map +1 -0
  87. package/dist/compat-floor.js +84 -0
  88. package/dist/compat-floor.js.map +1 -0
  89. package/dist/compat-probe.d.ts +6 -0
  90. package/dist/compat-probe.d.ts.map +1 -0
  91. package/dist/compat-probe.js +20 -0
  92. package/dist/compat-probe.js.map +1 -0
  93. package/dist/diagnostics/ca-reexec.d.ts +0 -30
  94. package/dist/diagnostics/ca-reexec.d.ts.map +1 -1
  95. package/dist/diagnostics/ca-reexec.js +0 -62
  96. package/dist/diagnostics/ca-reexec.js.map +1 -1
  97. package/dist/diagnostics/ca-trust.d.ts +0 -22
  98. package/dist/diagnostics/ca-trust.d.ts.map +1 -1
  99. package/dist/diagnostics/ca-trust.js +3 -42
  100. package/dist/diagnostics/ca-trust.js.map +1 -1
  101. package/dist/diagnostics/diagnose-network-error.d.ts +1 -38
  102. package/dist/diagnostics/diagnose-network-error.d.ts.map +1 -1
  103. package/dist/diagnostics/diagnose-network-error.js +27 -38
  104. package/dist/diagnostics/diagnose-network-error.js.map +1 -1
  105. package/dist/diagnostics/doctor.d.ts +1 -85
  106. package/dist/diagnostics/doctor.d.ts.map +1 -1
  107. package/dist/diagnostics/doctor.js +7 -92
  108. package/dist/diagnostics/doctor.js.map +1 -1
  109. package/dist/diagnostics/startup-self-probe.d.ts +3 -25
  110. package/dist/diagnostics/startup-self-probe.d.ts.map +1 -1
  111. package/dist/diagnostics/startup-self-probe.js +11 -48
  112. package/dist/diagnostics/startup-self-probe.js.map +1 -1
  113. package/dist/errors/hints.d.ts +0 -44
  114. package/dist/errors/hints.d.ts.map +1 -1
  115. package/dist/errors/hints.js +1 -33
  116. package/dist/errors/hints.js.map +1 -1
  117. package/dist/errors/mask.d.ts +0 -31
  118. package/dist/errors/mask.d.ts.map +1 -1
  119. package/dist/errors/mask.js +0 -32
  120. package/dist/errors/mask.js.map +1 -1
  121. package/dist/errors/redact-credentials.d.ts +2 -0
  122. package/dist/errors/redact-credentials.d.ts.map +1 -0
  123. package/dist/errors/redact-credentials.js +13 -0
  124. package/dist/errors/redact-credentials.js.map +1 -0
  125. package/dist/errors/sanitize.d.ts +0 -29
  126. package/dist/errors/sanitize.d.ts.map +1 -1
  127. package/dist/errors/sanitize.js +0 -40
  128. package/dist/errors/sanitize.js.map +1 -1
  129. package/dist/errors.d.ts +6 -17
  130. package/dist/errors.d.ts.map +1 -1
  131. package/dist/errors.js +16 -21
  132. package/dist/errors.js.map +1 -1
  133. package/dist/gateway/advanced-read-tool.d.ts +0 -32
  134. package/dist/gateway/advanced-read-tool.d.ts.map +1 -1
  135. package/dist/gateway/advanced-read-tool.js +43 -111
  136. package/dist/gateway/advanced-read-tool.js.map +1 -1
  137. package/dist/gateway/advanced-tool/discovery.d.ts +1 -12
  138. package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -1
  139. package/dist/gateway/advanced-tool/discovery.js +15 -24
  140. package/dist/gateway/advanced-tool/discovery.js.map +1 -1
  141. package/dist/gateway/advanced-tool/domains.d.ts +7 -66
  142. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
  143. package/dist/gateway/advanced-tool/domains.js +36 -80
  144. package/dist/gateway/advanced-tool/domains.js.map +1 -1
  145. package/dist/gateway/advanced-tool/execute.d.ts +0 -25
  146. package/dist/gateway/advanced-tool/execute.d.ts.map +1 -1
  147. package/dist/gateway/advanced-tool/execute.js +13 -49
  148. package/dist/gateway/advanced-tool/execute.js.map +1 -1
  149. package/dist/gateway/advanced-tool/index.d.ts +1 -32
  150. package/dist/gateway/advanced-tool/index.d.ts.map +1 -1
  151. package/dist/gateway/advanced-tool/index.js +1 -35
  152. package/dist/gateway/advanced-tool/index.js.map +1 -1
  153. package/dist/gateway/advanced-tool/register.d.ts +0 -14
  154. package/dist/gateway/advanced-tool/register.d.ts.map +1 -1
  155. package/dist/gateway/advanced-tool/register.js +22 -58
  156. package/dist/gateway/advanced-tool/register.js.map +1 -1
  157. package/dist/gateway/advanced-tool.d.ts +0 -11
  158. package/dist/gateway/advanced-tool.d.ts.map +1 -1
  159. package/dist/gateway/advanced-tool.js +0 -11
  160. package/dist/gateway/advanced-tool.js.map +1 -1
  161. package/dist/gateway/capturing-server.d.ts +3 -88
  162. package/dist/gateway/capturing-server.d.ts.map +1 -1
  163. package/dist/gateway/capturing-server.js +0 -77
  164. package/dist/gateway/capturing-server.js.map +1 -1
  165. package/dist/gateway/essentials.d.ts +1 -63
  166. package/dist/gateway/essentials.d.ts.map +1 -1
  167. package/dist/gateway/essentials.js +9 -178
  168. package/dist/gateway/essentials.js.map +1 -1
  169. package/dist/gateway/test-support.d.ts +0 -28
  170. package/dist/gateway/test-support.d.ts.map +1 -1
  171. package/dist/gateway/test-support.js +0 -29
  172. package/dist/gateway/test-support.js.map +1 -1
  173. package/dist/health-response.d.ts +2 -0
  174. package/dist/health-response.d.ts.map +1 -0
  175. package/dist/health-response.js +7 -0
  176. package/dist/health-response.js.map +1 -0
  177. package/dist/icon-data.js +0 -3
  178. package/dist/icon-data.js.map +1 -1
  179. package/dist/index.d.ts +7 -23
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.js +46 -130
  182. package/dist/index.js.map +1 -1
  183. package/dist/install-skill.d.ts +0 -44
  184. package/dist/install-skill.d.ts.map +1 -1
  185. package/dist/install-skill.js +8 -48
  186. package/dist/install-skill.js.map +1 -1
  187. package/dist/net/extra-headers.d.ts +0 -58
  188. package/dist/net/extra-headers.d.ts.map +1 -1
  189. package/dist/net/extra-headers.js +0 -67
  190. package/dist/net/extra-headers.js.map +1 -1
  191. package/dist/net/internal-host.d.ts +0 -31
  192. package/dist/net/internal-host.d.ts.map +1 -1
  193. package/dist/net/internal-host.js +7 -65
  194. package/dist/net/internal-host.js.map +1 -1
  195. package/dist/net/proxy-dispatcher.d.ts +0 -37
  196. package/dist/net/proxy-dispatcher.d.ts.map +1 -1
  197. package/dist/net/proxy-dispatcher.js +0 -40
  198. package/dist/net/proxy-dispatcher.js.map +1 -1
  199. package/dist/net/public-fetch.d.ts +53 -0
  200. package/dist/net/public-fetch.d.ts.map +1 -0
  201. package/dist/net/public-fetch.js +143 -0
  202. package/dist/net/public-fetch.js.map +1 -0
  203. package/dist/net/public-page-report.d.ts +26 -0
  204. package/dist/net/public-page-report.d.ts.map +1 -0
  205. package/dist/net/public-page-report.js +145 -0
  206. package/dist/net/public-page-report.js.map +1 -0
  207. package/dist/net/redirect-safe-fetch.d.ts +14 -0
  208. package/dist/net/redirect-safe-fetch.d.ts.map +1 -0
  209. package/dist/net/redirect-safe-fetch.js +61 -0
  210. package/dist/net/redirect-safe-fetch.js.map +1 -0
  211. package/dist/net/session-recovery-fetch.d.ts +7 -0
  212. package/dist/net/session-recovery-fetch.d.ts.map +1 -0
  213. package/dist/net/session-recovery-fetch.js +139 -0
  214. package/dist/net/session-recovery-fetch.js.map +1 -0
  215. package/dist/net/site-basic-auth.d.ts +1 -59
  216. package/dist/net/site-basic-auth.d.ts.map +1 -1
  217. package/dist/net/site-basic-auth.js +5 -94
  218. package/dist/net/site-basic-auth.js.map +1 -1
  219. package/dist/package-version.d.ts +2 -0
  220. package/dist/package-version.d.ts.map +1 -0
  221. package/dist/package-version.js +15 -0
  222. package/dist/package-version.js.map +1 -0
  223. package/dist/platform/detect.d.ts +0 -54
  224. package/dist/platform/detect.d.ts.map +1 -1
  225. package/dist/platform/detect.js +0 -53
  226. package/dist/platform/detect.js.map +1 -1
  227. package/dist/platform/index.d.ts +0 -100
  228. package/dist/platform/index.d.ts.map +1 -1
  229. package/dist/platform/index.js +0 -106
  230. package/dist/platform/index.js.map +1 -1
  231. package/dist/platform/joomla.d.ts +0 -35
  232. package/dist/platform/joomla.d.ts.map +1 -1
  233. package/dist/platform/joomla.js +0 -35
  234. package/dist/platform/joomla.js.map +1 -1
  235. package/dist/product-name.d.ts +2 -0
  236. package/dist/product-name.d.ts.map +1 -0
  237. package/dist/product-name.js +2 -0
  238. package/dist/product-name.js.map +1 -0
  239. package/dist/proxy/bridge.d.ts +36 -76
  240. package/dist/proxy/bridge.d.ts.map +1 -1
  241. package/dist/proxy/bridge.js +443 -136
  242. package/dist/proxy/bridge.js.map +1 -1
  243. package/dist/proxy/confirm-elicitation.d.ts +22 -0
  244. package/dist/proxy/confirm-elicitation.d.ts.map +1 -0
  245. package/dist/proxy/confirm-elicitation.js +170 -0
  246. package/dist/proxy/confirm-elicitation.js.map +1 -0
  247. package/dist/proxy/confirm-question-contract.d.ts +6 -0
  248. package/dist/proxy/confirm-question-contract.d.ts.map +1 -0
  249. package/dist/proxy/confirm-question-contract.js +9 -0
  250. package/dist/proxy/confirm-question-contract.js.map +1 -0
  251. package/dist/proxy/confirm-question.d.ts +2 -0
  252. package/dist/proxy/confirm-question.d.ts.map +1 -0
  253. package/dist/proxy/confirm-question.js +125 -0
  254. package/dist/proxy/confirm-question.js.map +1 -0
  255. package/dist/proxy/instructions.d.ts +4 -0
  256. package/dist/proxy/instructions.d.ts.map +1 -0
  257. package/dist/proxy/instructions.js +12 -0
  258. package/dist/proxy/instructions.js.map +1 -0
  259. package/dist/proxy/mode.d.ts +14 -9
  260. package/dist/proxy/mode.d.ts.map +1 -1
  261. package/dist/proxy/mode.js +58 -34
  262. package/dist/proxy/mode.js.map +1 -1
  263. package/dist/proxy/multi-site.d.ts +42 -0
  264. package/dist/proxy/multi-site.d.ts.map +1 -0
  265. package/dist/proxy/multi-site.js +134 -0
  266. package/dist/proxy/multi-site.js.map +1 -0
  267. package/dist/proxy/request-headers.d.ts +9 -0
  268. package/dist/proxy/request-headers.d.ts.map +1 -0
  269. package/dist/proxy/request-headers.js +17 -0
  270. package/dist/proxy/request-headers.js.map +1 -0
  271. package/dist/proxy/shadow-tools.d.ts +9 -0
  272. package/dist/proxy/shadow-tools.d.ts.map +1 -0
  273. package/dist/proxy/shadow-tools.js +42 -0
  274. package/dist/proxy/shadow-tools.js.map +1 -0
  275. package/dist/proxy/tools-list-cap.d.ts +7 -0
  276. package/dist/proxy/tools-list-cap.d.ts.map +1 -0
  277. package/dist/proxy/tools-list-cap.js +14 -0
  278. package/dist/proxy/tools-list-cap.js.map +1 -0
  279. package/dist/proxy/transport-uncertainty.d.ts +2 -0
  280. package/dist/proxy/transport-uncertainty.d.ts.map +1 -0
  281. package/dist/proxy/transport-uncertainty.js +8 -0
  282. package/dist/proxy/transport-uncertainty.js.map +1 -0
  283. package/dist/proxy/upstream-error.d.ts +7 -0
  284. package/dist/proxy/upstream-error.d.ts.map +1 -0
  285. package/dist/proxy/upstream-error.js +35 -0
  286. package/dist/proxy/upstream-error.js.map +1 -0
  287. package/dist/proxy/wire-dialect.d.ts +5 -0
  288. package/dist/proxy/wire-dialect.d.ts.map +1 -0
  289. package/dist/proxy/wire-dialect.js +33 -0
  290. package/dist/proxy/wire-dialect.js.map +1 -0
  291. package/dist/server.d.ts +14 -82
  292. package/dist/server.d.ts.map +1 -1
  293. package/dist/server.js +109 -204
  294. package/dist/server.js.map +1 -1
  295. package/dist/setup/banner-color.d.ts +13 -0
  296. package/dist/setup/banner-color.d.ts.map +1 -0
  297. package/dist/setup/banner-color.js +93 -0
  298. package/dist/setup/banner-color.js.map +1 -0
  299. package/dist/setup/banner.d.ts +22 -0
  300. package/dist/setup/banner.d.ts.map +1 -0
  301. package/dist/setup/banner.js +120 -0
  302. package/dist/setup/banner.js.map +1 -0
  303. package/dist/setup/ca-recovery.d.ts +20 -0
  304. package/dist/setup/ca-recovery.d.ts.map +1 -0
  305. package/dist/setup/ca-recovery.js +92 -0
  306. package/dist/setup/ca-recovery.js.map +1 -0
  307. package/dist/setup/closing.d.ts +15 -0
  308. package/dist/setup/closing.d.ts.map +1 -0
  309. package/dist/setup/closing.js +43 -0
  310. package/dist/setup/closing.js.map +1 -0
  311. package/dist/setup/corporate-ca.d.ts +16 -0
  312. package/dist/setup/corporate-ca.d.ts.map +1 -0
  313. package/dist/setup/corporate-ca.js +32 -0
  314. package/dist/setup/corporate-ca.js.map +1 -0
  315. package/dist/setup/host-platform.d.ts +8 -0
  316. package/dist/setup/host-platform.d.ts.map +1 -0
  317. package/dist/setup/host-platform.js +21 -0
  318. package/dist/setup/host-platform.js.map +1 -0
  319. package/dist/setup/install-configs.d.ts +18 -0
  320. package/dist/setup/install-configs.d.ts.map +1 -0
  321. package/dist/setup/install-configs.js +95 -0
  322. package/dist/setup/install-configs.js.map +1 -0
  323. package/dist/setup/multi-site-loop.d.ts +14 -0
  324. package/dist/setup/multi-site-loop.d.ts.map +1 -0
  325. package/dist/setup/multi-site-loop.js +20 -0
  326. package/dist/setup/multi-site-loop.js.map +1 -0
  327. package/dist/setup/phases.d.ts +18 -0
  328. package/dist/setup/phases.d.ts.map +1 -0
  329. package/dist/setup/phases.js +55 -0
  330. package/dist/setup/phases.js.map +1 -0
  331. package/dist/setup/registry-remedy.d.ts +12 -0
  332. package/dist/setup/registry-remedy.d.ts.map +1 -0
  333. package/dist/setup/registry-remedy.js +37 -0
  334. package/dist/setup/registry-remedy.js.map +1 -0
  335. package/dist/setup/resume.d.ts +28 -0
  336. package/dist/setup/resume.d.ts.map +1 -0
  337. package/dist/setup/resume.js +99 -0
  338. package/dist/setup/resume.js.map +1 -0
  339. package/dist/setup-ca-env.d.ts +0 -30
  340. package/dist/setup-ca-env.d.ts.map +1 -1
  341. package/dist/setup-ca-env.js +0 -28
  342. package/dist/setup-ca-env.js.map +1 -1
  343. package/dist/setup-ca-reprobe.d.ts +0 -25
  344. package/dist/setup-ca-reprobe.d.ts.map +1 -1
  345. package/dist/setup-ca-reprobe.js +0 -34
  346. package/dist/setup-ca-reprobe.js.map +1 -1
  347. package/dist/setup-cli-confirm.d.ts +0 -34
  348. package/dist/setup-cli-confirm.d.ts.map +1 -1
  349. package/dist/setup-cli-confirm.js +0 -36
  350. package/dist/setup-cli-confirm.js.map +1 -1
  351. package/dist/setup-cli.d.ts +6 -167
  352. package/dist/setup-cli.d.ts.map +1 -1
  353. package/dist/setup-cli.js +165 -177
  354. package/dist/setup-cli.js.map +1 -1
  355. package/dist/setup-npx-spec.d.ts +0 -36
  356. package/dist/setup-npx-spec.d.ts.map +1 -1
  357. package/dist/setup-npx-spec.js +0 -38
  358. package/dist/setup-npx-spec.js.map +1 -1
  359. package/dist/setup-prompts.d.ts +5 -70
  360. package/dist/setup-prompts.d.ts.map +1 -1
  361. package/dist/setup-prompts.js +67 -107
  362. package/dist/setup-prompts.js.map +1 -1
  363. package/dist/setup-token.d.ts +0 -34
  364. package/dist/setup-token.d.ts.map +1 -1
  365. package/dist/setup-token.js +0 -40
  366. package/dist/setup-token.js.map +1 -1
  367. package/dist/setup-wizard-defaults.d.ts +2 -37
  368. package/dist/setup-wizard-defaults.d.ts.map +1 -1
  369. package/dist/setup-wizard-defaults.js +28 -93
  370. package/dist/setup-wizard-defaults.js.map +1 -1
  371. package/dist/setup-wizard-handshake.d.ts +1 -19
  372. package/dist/setup-wizard-handshake.d.ts.map +1 -1
  373. package/dist/setup-wizard-handshake.js +8 -45
  374. package/dist/setup-wizard-handshake.js.map +1 -1
  375. package/dist/setup-wizard-types.d.ts +18 -217
  376. package/dist/setup-wizard-types.d.ts.map +1 -1
  377. package/dist/setup-wizard-types.js +0 -9
  378. package/dist/setup-wizard-types.js.map +1 -1
  379. package/dist/setup-wizard-write-types.d.ts +19 -0
  380. package/dist/setup-wizard-write-types.d.ts.map +1 -0
  381. package/dist/setup-wizard-write-types.js +2 -0
  382. package/dist/setup-wizard-write-types.js.map +1 -0
  383. package/dist/setup-wizard.d.ts +0 -28
  384. package/dist/setup-wizard.d.ts.map +1 -1
  385. package/dist/setup-wizard.js +167 -412
  386. package/dist/setup-wizard.js.map +1 -1
  387. package/dist/setup.d.ts +0 -15
  388. package/dist/setup.d.ts.map +1 -1
  389. package/dist/setup.js +0 -15
  390. package/dist/setup.js.map +1 -1
  391. package/dist/sites/bootstrap.d.ts +0 -38
  392. package/dist/sites/bootstrap.d.ts.map +1 -1
  393. package/dist/sites/bootstrap.js +0 -44
  394. package/dist/sites/bootstrap.js.map +1 -1
  395. package/dist/sites/cli/add-site.d.ts +0 -76
  396. package/dist/sites/cli/add-site.d.ts.map +1 -1
  397. package/dist/sites/cli/add-site.js +0 -71
  398. package/dist/sites/cli/add-site.js.map +1 -1
  399. package/dist/sites/cli/list-sites.d.ts +0 -31
  400. package/dist/sites/cli/list-sites.d.ts.map +1 -1
  401. package/dist/sites/cli/list-sites.js +0 -45
  402. package/dist/sites/cli/list-sites.js.map +1 -1
  403. package/dist/sites/cli/remove-site.d.ts +0 -37
  404. package/dist/sites/cli/remove-site.d.ts.map +1 -1
  405. package/dist/sites/cli/remove-site.js +0 -37
  406. package/dist/sites/cli/remove-site.js.map +1 -1
  407. package/dist/sites/cli/set-default.d.ts +0 -25
  408. package/dist/sites/cli/set-default.d.ts.map +1 -1
  409. package/dist/sites/cli/set-default.js +0 -22
  410. package/dist/sites/cli/set-default.js.map +1 -1
  411. package/dist/sites/cli/test-site.d.ts +0 -44
  412. package/dist/sites/cli/test-site.d.ts.map +1 -1
  413. package/dist/sites/cli/test-site.js +0 -39
  414. package/dist/sites/cli/test-site.js.map +1 -1
  415. package/dist/sites/client-pool.d.ts +11 -164
  416. package/dist/sites/client-pool.d.ts.map +1 -1
  417. package/dist/sites/client-pool.js +73 -194
  418. package/dist/sites/client-pool.js.map +1 -1
  419. package/dist/sites/config-problem.d.ts +2 -0
  420. package/dist/sites/config-problem.d.ts.map +1 -0
  421. package/dist/sites/config-problem.js +13 -0
  422. package/dist/sites/config-problem.js.map +1 -0
  423. package/dist/sites/env-bridge.d.ts +0 -69
  424. package/dist/sites/env-bridge.d.ts.map +1 -1
  425. package/dist/sites/env-bridge.js +2 -71
  426. package/dist/sites/env-bridge.js.map +1 -1
  427. package/dist/sites/op-inject.d.ts +23 -0
  428. package/dist/sites/op-inject.d.ts.map +1 -0
  429. package/dist/sites/op-inject.js +131 -0
  430. package/dist/sites/op-inject.js.map +1 -0
  431. package/dist/sites/paths.d.ts +0 -19
  432. package/dist/sites/paths.d.ts.map +1 -1
  433. package/dist/sites/paths.js +0 -19
  434. package/dist/sites/paths.js.map +1 -1
  435. package/dist/sites/probe.d.ts +1 -47
  436. package/dist/sites/probe.d.ts.map +1 -1
  437. package/dist/sites/probe.js +4 -46
  438. package/dist/sites/probe.js.map +1 -1
  439. package/dist/sites/registry.d.ts +4 -135
  440. package/dist/sites/registry.d.ts.map +1 -1
  441. package/dist/sites/registry.js +4 -98
  442. package/dist/sites/registry.js.map +1 -1
  443. package/dist/sites/schema.d.ts +3 -51
  444. package/dist/sites/schema.d.ts.map +1 -1
  445. package/dist/sites/schema.js +6 -52
  446. package/dist/sites/schema.js.map +1 -1
  447. package/dist/sites/secret-resolver.d.ts +6 -76
  448. package/dist/sites/secret-resolver.d.ts.map +1 -1
  449. package/dist/sites/secret-resolver.js +39 -104
  450. package/dist/sites/secret-resolver.js.map +1 -1
  451. package/dist/sites/store.d.ts +12 -69
  452. package/dist/sites/store.d.ts.map +1 -1
  453. package/dist/sites/store.js +37 -86
  454. package/dist/sites/store.js.map +1 -1
  455. package/dist/sites/substituted-registry.d.ts +11 -0
  456. package/dist/sites/substituted-registry.d.ts.map +1 -0
  457. package/dist/sites/substituted-registry.js +13 -0
  458. package/dist/sites/substituted-registry.js.map +1 -0
  459. package/dist/sites/tools/fetch-public-url.d.ts +4 -0
  460. package/dist/sites/tools/fetch-public-url.d.ts.map +1 -0
  461. package/dist/sites/tools/fetch-public-url.js +231 -0
  462. package/dist/sites/tools/fetch-public-url.js.map +1 -0
  463. package/dist/sites/tools/index.d.ts +2 -26
  464. package/dist/sites/tools/index.d.ts.map +1 -1
  465. package/dist/sites/tools/index.js +5 -28
  466. package/dist/sites/tools/index.js.map +1 -1
  467. package/dist/sites/tools/sites-list.d.ts +3 -47
  468. package/dist/sites/tools/sites-list.d.ts.map +1 -1
  469. package/dist/sites/tools/sites-list.js +65 -79
  470. package/dist/sites/tools/sites-list.js.map +1 -1
  471. package/dist/sites/tools/sites-overview.d.ts +4 -0
  472. package/dist/sites/tools/sites-overview.d.ts.map +1 -0
  473. package/dist/sites/tools/sites-overview.js +209 -0
  474. package/dist/sites/tools/sites-overview.js.map +1 -0
  475. package/dist/sites/tools/sites-test.d.ts +2 -45
  476. package/dist/sites/tools/sites-test.d.ts.map +1 -1
  477. package/dist/sites/tools/sites-test.js +2 -56
  478. package/dist/sites/tools/sites-test.js.map +1 -1
  479. package/dist/sites/tools/use-site.d.ts +2 -45
  480. package/dist/sites/tools/use-site.d.ts.map +1 -1
  481. package/dist/sites/tools/use-site.js +31 -79
  482. package/dist/sites/tools/use-site.js.map +1 -1
  483. package/dist/sites/unknown-name-result.d.ts +10 -0
  484. package/dist/sites/unknown-name-result.d.ts.map +1 -0
  485. package/dist/sites/unknown-name-result.js +13 -0
  486. package/dist/sites/unknown-name-result.js.map +1 -0
  487. package/dist/skill-instructions.d.ts +7 -0
  488. package/dist/skill-instructions.d.ts.map +1 -0
  489. package/dist/skill-instructions.js +85 -0
  490. package/dist/skill-instructions.js.map +1 -0
  491. package/dist/skill-loader.d.ts +1 -103
  492. package/dist/skill-loader.d.ts.map +1 -1
  493. package/dist/skill-loader.js +6 -143
  494. package/dist/skill-loader.js.map +1 -1
  495. package/dist/skill-manifest.d.ts +0 -20
  496. package/dist/skill-manifest.d.ts.map +1 -1
  497. package/dist/skill-manifest.js +1 -21
  498. package/dist/skill-manifest.js.map +1 -1
  499. package/dist/skill-topics.d.ts +19 -0
  500. package/dist/skill-topics.d.ts.map +1 -0
  501. package/dist/skill-topics.js +181 -0
  502. package/dist/skill-topics.js.map +1 -0
  503. package/dist/tools/active-site.d.ts +16 -0
  504. package/dist/tools/active-site.d.ts.map +1 -0
  505. package/dist/tools/active-site.js +55 -0
  506. package/dist/tools/active-site.js.map +1 -0
  507. package/dist/tools/bind-guidance.d.ts +2 -72
  508. package/dist/tools/bind-guidance.d.ts.map +1 -1
  509. package/dist/tools/bind-guidance.js +2 -72
  510. package/dist/tools/bind-guidance.js.map +1 -1
  511. package/dist/tools/budgeted-table.d.ts +14 -19
  512. package/dist/tools/budgeted-table.d.ts.map +1 -1
  513. package/dist/tools/budgeted-table.js +171 -105
  514. package/dist/tools/budgeted-table.js.map +1 -1
  515. package/dist/tools/elements/bind-output-schema.d.ts +69 -0
  516. package/dist/tools/elements/bind-output-schema.d.ts.map +1 -0
  517. package/dist/tools/elements/bind-output-schema.js +64 -0
  518. package/dist/tools/elements/bind-output-schema.js.map +1 -0
  519. package/dist/tools/elements/builders.d.ts +1 -22
  520. package/dist/tools/elements/builders.d.ts.map +1 -1
  521. package/dist/tools/elements/builders.js +147 -133
  522. package/dist/tools/elements/builders.js.map +1 -1
  523. package/dist/tools/elements/index.d.ts +0 -26
  524. package/dist/tools/elements/index.d.ts.map +1 -1
  525. package/dist/tools/elements/index.js +0 -25
  526. package/dist/tools/elements/index.js.map +1 -1
  527. package/dist/tools/elements/read-output-schemas.d.ts +121 -0
  528. package/dist/tools/elements/read-output-schemas.d.ts.map +1 -0
  529. package/dist/tools/elements/read-output-schemas.js +225 -0
  530. package/dist/tools/elements/read-output-schemas.js.map +1 -0
  531. package/dist/tools/elements/write-output-schemas.d.ts +185 -0
  532. package/dist/tools/elements/write-output-schemas.d.ts.map +1 -0
  533. package/dist/tools/elements/write-output-schemas.js +98 -0
  534. package/dist/tools/elements/write-output-schemas.js.map +1 -0
  535. package/dist/tools/elements.d.ts +0 -11
  536. package/dist/tools/elements.d.ts.map +1 -1
  537. package/dist/tools/elements.js +0 -11
  538. package/dist/tools/elements.js.map +1 -1
  539. package/dist/tools/format/health-format.d.ts +26 -43
  540. package/dist/tools/format/health-format.d.ts.map +1 -1
  541. package/dist/tools/format/health-format.js +32 -63
  542. package/dist/tools/format/health-format.js.map +1 -1
  543. package/dist/tools/format/inspection-format.d.ts +2 -54
  544. package/dist/tools/format/inspection-format.d.ts.map +1 -1
  545. package/dist/tools/format/inspection-format.js +33 -119
  546. package/dist/tools/format/inspection-format.js.map +1 -1
  547. package/dist/tools/format/pages-format.d.ts +32 -69
  548. package/dist/tools/format/pages-format.d.ts.map +1 -1
  549. package/dist/tools/format/pages-format.js +114 -139
  550. package/dist/tools/format/pages-format.js.map +1 -1
  551. package/dist/tools/format/sources-format.d.ts +5 -39
  552. package/dist/tools/format/sources-format.d.ts.map +1 -1
  553. package/dist/tools/format/sources-format.js +57 -87
  554. package/dist/tools/format/sources-format.js.map +1 -1
  555. package/dist/tools/health-output-schemas.d.ts +84 -0
  556. package/dist/tools/health-output-schemas.d.ts.map +1 -0
  557. package/dist/tools/health-output-schemas.js +132 -0
  558. package/dist/tools/health-output-schemas.js.map +1 -0
  559. package/dist/tools/health.d.ts +2 -20
  560. package/dist/tools/health.d.ts.map +1 -1
  561. package/dist/tools/health.js +47 -233
  562. package/dist/tools/health.js.map +1 -1
  563. package/dist/tools/index.d.ts +1 -26
  564. package/dist/tools/index.d.ts.map +1 -1
  565. package/dist/tools/index.js +12 -39
  566. package/dist/tools/index.js.map +1 -1
  567. package/dist/tools/inspection.d.ts +4 -34
  568. package/dist/tools/inspection.d.ts.map +1 -1
  569. package/dist/tools/inspection.js +164 -536
  570. package/dist/tools/inspection.js.map +1 -1
  571. package/dist/tools/library.d.ts +115 -127
  572. package/dist/tools/library.d.ts.map +1 -1
  573. package/dist/tools/library.js +707 -455
  574. package/dist/tools/library.js.map +1 -1
  575. package/dist/tools/local-content/builders.d.ts +1 -17
  576. package/dist/tools/local-content/builders.d.ts.map +1 -1
  577. package/dist/tools/local-content/builders.js +103 -46
  578. package/dist/tools/local-content/builders.js.map +1 -1
  579. package/dist/tools/local-content/index.d.ts +0 -15
  580. package/dist/tools/local-content/index.d.ts.map +1 -1
  581. package/dist/tools/local-content/index.js +0 -14
  582. package/dist/tools/local-content/index.js.map +1 -1
  583. package/dist/tools/local-content/schemas.d.ts +31 -47
  584. package/dist/tools/local-content/schemas.d.ts.map +1 -1
  585. package/dist/tools/local-content/schemas.js +33 -62
  586. package/dist/tools/local-content/schemas.js.map +1 -1
  587. package/dist/tools/modules/builders.d.ts +4 -0
  588. package/dist/tools/modules/builders.d.ts.map +1 -0
  589. package/dist/tools/modules/builders.js +58 -0
  590. package/dist/tools/modules/builders.js.map +1 -0
  591. package/dist/tools/modules/index.d.ts +2 -0
  592. package/dist/tools/modules/index.d.ts.map +1 -0
  593. package/dist/tools/modules/index.js +2 -0
  594. package/dist/tools/modules/index.js.map +1 -0
  595. package/dist/tools/modules/module-id-schema.d.ts +4 -0
  596. package/dist/tools/modules/module-id-schema.d.ts.map +1 -0
  597. package/dist/tools/modules/module-id-schema.js +14 -0
  598. package/dist/tools/modules/module-id-schema.js.map +1 -0
  599. package/dist/tools/modules/module-type-fields.d.ts +10 -0
  600. package/dist/tools/modules/module-type-fields.d.ts.map +1 -0
  601. package/dist/tools/modules/module-type-fields.js +34 -0
  602. package/dist/tools/modules/module-type-fields.js.map +1 -0
  603. package/dist/tools/modules/modules-create.d.ts +59 -0
  604. package/dist/tools/modules/modules-create.d.ts.map +1 -0
  605. package/dist/tools/modules/modules-create.js +154 -0
  606. package/dist/tools/modules/modules-create.js.map +1 -0
  607. package/dist/tools/modules/modules-delete.d.ts +51 -0
  608. package/dist/tools/modules/modules-delete.d.ts.map +1 -0
  609. package/dist/tools/modules/modules-delete.js +180 -0
  610. package/dist/tools/modules/modules-delete.js.map +1 -0
  611. package/dist/tools/modules/modules-update.d.ts +43 -0
  612. package/dist/tools/modules/modules-update.d.ts.map +1 -0
  613. package/dist/tools/modules/modules-update.js +177 -0
  614. package/dist/tools/modules/modules-update.js.map +1 -0
  615. package/dist/tools/modules/placement-hints.d.ts +5 -0
  616. package/dist/tools/modules/placement-hints.d.ts.map +1 -0
  617. package/dist/tools/modules/placement-hints.js +90 -0
  618. package/dist/tools/modules/placement-hints.js.map +1 -0
  619. package/dist/tools/modules/placement-ways.d.ts +13 -0
  620. package/dist/tools/modules/placement-ways.d.ts.map +1 -0
  621. package/dist/tools/modules/placement-ways.js +61 -0
  622. package/dist/tools/modules/placement-ways.js.map +1 -0
  623. package/dist/tools/multi-items/builders.d.ts +1 -21
  624. package/dist/tools/multi-items/builders.d.ts.map +1 -1
  625. package/dist/tools/multi-items/builders.js +22 -65
  626. package/dist/tools/multi-items/builders.js.map +1 -1
  627. package/dist/tools/multi-items/index.d.ts +0 -15
  628. package/dist/tools/multi-items/index.d.ts.map +1 -1
  629. package/dist/tools/multi-items/index.js +0 -15
  630. package/dist/tools/multi-items/index.js.map +1 -1
  631. package/dist/tools/multi-items/item-container-map.d.ts +0 -35
  632. package/dist/tools/multi-items/item-container-map.d.ts.map +1 -1
  633. package/dist/tools/multi-items/item-container-map.js +0 -35
  634. package/dist/tools/multi-items/item-container-map.js.map +1 -1
  635. package/dist/tools/multi-items/output-schemas.d.ts +101 -0
  636. package/dist/tools/multi-items/output-schemas.d.ts.map +1 -0
  637. package/dist/tools/multi-items/output-schemas.js +74 -0
  638. package/dist/tools/multi-items/output-schemas.js.map +1 -0
  639. package/dist/tools/navigation/builders.d.ts +1 -16
  640. package/dist/tools/navigation/builders.d.ts.map +1 -1
  641. package/dist/tools/navigation/builders.js +5 -27
  642. package/dist/tools/navigation/builders.js.map +1 -1
  643. package/dist/tools/navigation/index.d.ts +0 -13
  644. package/dist/tools/navigation/index.d.ts.map +1 -1
  645. package/dist/tools/navigation/index.js +0 -12
  646. package/dist/tools/navigation/index.js.map +1 -1
  647. package/dist/tools/navigation/schemas.d.ts +0 -30
  648. package/dist/tools/navigation/schemas.d.ts.map +1 -1
  649. package/dist/tools/navigation/schemas.js +0 -30
  650. package/dist/tools/navigation/schemas.js.map +1 -1
  651. package/dist/tools/output-schema-metadata.d.ts +5 -0
  652. package/dist/tools/output-schema-metadata.d.ts.map +1 -0
  653. package/dist/tools/output-schema-metadata.js +83 -0
  654. package/dist/tools/output-schema-metadata.js.map +1 -0
  655. package/dist/tools/pages/builders.d.ts +1 -41
  656. package/dist/tools/pages/builders.d.ts.map +1 -1
  657. package/dist/tools/pages/builders.js +320 -405
  658. package/dist/tools/pages/builders.js.map +1 -1
  659. package/dist/tools/pages/header-transparency.d.ts +2 -32
  660. package/dist/tools/pages/header-transparency.d.ts.map +1 -1
  661. package/dist/tools/pages/header-transparency.js +9 -43
  662. package/dist/tools/pages/header-transparency.js.map +1 -1
  663. package/dist/tools/pages/index.d.ts +1 -19
  664. package/dist/tools/pages/index.d.ts.map +1 -1
  665. package/dist/tools/pages/index.js +1 -19
  666. package/dist/tools/pages/index.js.map +1 -1
  667. package/dist/tools/pages/schemas.d.ts +323 -241
  668. package/dist/tools/pages/schemas.d.ts.map +1 -1
  669. package/dist/tools/pages/schemas.js +514 -549
  670. package/dist/tools/pages/schemas.js.map +1 -1
  671. package/dist/tools/pages/write-output-schemas.d.ts +139 -0
  672. package/dist/tools/pages/write-output-schemas.d.ts.map +1 -0
  673. package/dist/tools/pages/write-output-schemas.js +138 -0
  674. package/dist/tools/pages/write-output-schemas.js.map +1 -0
  675. package/dist/tools/pages.d.ts +0 -11
  676. package/dist/tools/pages.d.ts.map +1 -1
  677. package/dist/tools/pages.js +0 -11
  678. package/dist/tools/pages.js.map +1 -1
  679. package/dist/tools/pool-resolve-helper.d.ts +0 -52
  680. package/dist/tools/pool-resolve-helper.d.ts.map +1 -1
  681. package/dist/tools/pool-resolve-helper.js +31 -106
  682. package/dist/tools/pool-resolve-helper.js.map +1 -1
  683. package/dist/tools/progress-phases.d.ts +0 -42
  684. package/dist/tools/progress-phases.d.ts.map +1 -1
  685. package/dist/tools/progress-phases.js +0 -44
  686. package/dist/tools/progress-phases.js.map +1 -1
  687. package/dist/tools/response-budget.d.ts +0 -69
  688. package/dist/tools/response-budget.d.ts.map +1 -1
  689. package/dist/tools/response-budget.js +0 -127
  690. package/dist/tools/response-budget.js.map +1 -1
  691. package/dist/tools/shared-schemas.d.ts +11 -65
  692. package/dist/tools/shared-schemas.d.ts.map +1 -1
  693. package/dist/tools/shared-schemas.js +40 -123
  694. package/dist/tools/shared-schemas.js.map +1 -1
  695. package/dist/tools/skill/builders.d.ts +3 -0
  696. package/dist/tools/skill/builders.d.ts.map +1 -0
  697. package/dist/tools/skill/builders.js +81 -0
  698. package/dist/tools/skill/builders.js.map +1 -0
  699. package/dist/tools/sources/builders.d.ts +1 -11
  700. package/dist/tools/sources/builders.d.ts.map +1 -1
  701. package/dist/tools/sources/builders.js +194 -170
  702. package/dist/tools/sources/builders.js.map +1 -1
  703. package/dist/tools/sources/index.d.ts +0 -17
  704. package/dist/tools/sources/index.d.ts.map +1 -1
  705. package/dist/tools/sources/index.js +0 -16
  706. package/dist/tools/sources/index.js.map +1 -1
  707. package/dist/tools/sources/read-output-schemas.d.ts +101 -0
  708. package/dist/tools/sources/read-output-schemas.d.ts.map +1 -0
  709. package/dist/tools/sources/read-output-schemas.js +105 -0
  710. package/dist/tools/sources/read-output-schemas.js.map +1 -0
  711. package/dist/tools/sources/source-name-argument.d.ts +17 -0
  712. package/dist/tools/sources/source-name-argument.d.ts.map +1 -0
  713. package/dist/tools/sources/source-name-argument.js +64 -0
  714. package/dist/tools/sources/source-name-argument.js.map +1 -0
  715. package/dist/tools/sources/write-output-schemas.d.ts +100 -0
  716. package/dist/tools/sources/write-output-schemas.d.ts.map +1 -0
  717. package/dist/tools/sources/write-output-schemas.js +61 -0
  718. package/dist/tools/sources/write-output-schemas.js.map +1 -0
  719. package/dist/tools/sources.d.ts +0 -12
  720. package/dist/tools/sources.d.ts.map +1 -1
  721. package/dist/tools/sources.js +0 -12
  722. package/dist/tools/sources.js.map +1 -1
  723. package/dist/tools/sparse-fields.d.ts +16 -232
  724. package/dist/tools/sparse-fields.d.ts.map +1 -1
  725. package/dist/tools/sparse-fields.js +178 -242
  726. package/dist/tools/sparse-fields.js.map +1 -1
  727. package/dist/tools/strict-input.d.ts +5 -0
  728. package/dist/tools/strict-input.d.ts.map +1 -0
  729. package/dist/tools/strict-input.js +55 -0
  730. package/dist/tools/strict-input.js.map +1 -0
  731. package/dist/tools/sublayout/builders.d.ts +1 -21
  732. package/dist/tools/sublayout/builders.d.ts.map +1 -1
  733. package/dist/tools/sublayout/builders.js +10 -39
  734. package/dist/tools/sublayout/builders.js.map +1 -1
  735. package/dist/tools/sublayout/index.d.ts +1 -11
  736. package/dist/tools/sublayout/index.d.ts.map +1 -1
  737. package/dist/tools/sublayout/index.js +1 -11
  738. package/dist/tools/sublayout/index.js.map +1 -1
  739. package/dist/tools/sublayout/output-schemas.d.ts +57 -0
  740. package/dist/tools/sublayout/output-schemas.d.ts.map +1 -0
  741. package/dist/tools/sublayout/output-schemas.js +51 -0
  742. package/dist/tools/sublayout/output-schemas.js.map +1 -0
  743. package/dist/tools/tool-builder/annotations.d.ts +1 -49
  744. package/dist/tools/tool-builder/annotations.d.ts.map +1 -1
  745. package/dist/tools/tool-builder/annotations.js +9 -49
  746. package/dist/tools/tool-builder/annotations.js.map +1 -1
  747. package/dist/tools/tool-builder/confirm-preview.d.ts +24 -0
  748. package/dist/tools/tool-builder/confirm-preview.d.ts.map +1 -0
  749. package/dist/tools/tool-builder/confirm-preview.js +37 -0
  750. package/dist/tools/tool-builder/confirm-preview.js.map +1 -0
  751. package/dist/tools/tool-builder/define.d.ts +6 -26
  752. package/dist/tools/tool-builder/define.d.ts.map +1 -1
  753. package/dist/tools/tool-builder/define.js +0 -25
  754. package/dist/tools/tool-builder/define.js.map +1 -1
  755. package/dist/tools/tool-builder/index.d.ts +3 -26
  756. package/dist/tools/tool-builder/index.d.ts.map +1 -1
  757. package/dist/tools/tool-builder/index.js +2 -25
  758. package/dist/tools/tool-builder/index.js.map +1 -1
  759. package/dist/tools/tool-builder/results.d.ts +4 -124
  760. package/dist/tools/tool-builder/results.d.ts.map +1 -1
  761. package/dist/tools/tool-builder/results.js +258 -263
  762. package/dist/tools/tool-builder/results.js.map +1 -1
  763. package/dist/tools/tool-builder/types.d.ts +5 -59
  764. package/dist/tools/tool-builder/types.d.ts.map +1 -1
  765. package/dist/tools/tool-builder/types.js +0 -7
  766. package/dist/tools/tool-builder/types.js.map +1 -1
  767. package/dist/tools/tool-builder.d.ts +0 -14
  768. package/dist/tools/tool-builder.d.ts.map +1 -1
  769. package/dist/tools/tool-builder.js +0 -14
  770. package/dist/tools/tool-builder.js.map +1 -1
  771. package/dist/uninstall-skill.d.ts +0 -41
  772. package/dist/uninstall-skill.d.ts.map +1 -1
  773. package/dist/uninstall-skill.js +3 -50
  774. package/dist/uninstall-skill.js.map +1 -1
  775. package/dist/uninstall.d.ts +0 -41
  776. package/dist/uninstall.d.ts.map +1 -1
  777. package/dist/uninstall.js +1 -29
  778. package/dist/uninstall.js.map +1 -1
  779. package/dist/update/update-check.d.ts +0 -26
  780. package/dist/update/update-check.d.ts.map +1 -1
  781. package/dist/update/update-check.js +0 -25
  782. package/dist/update/update-check.js.map +1 -1
  783. package/manifest.json +7 -12
  784. package/package.json +6 -11
  785. package/skills/yt-builder-mcp/SKILL.md +1871 -414
  786. package/dist/tools/elements/handlers-write.d.ts +0 -89
  787. package/dist/tools/elements/handlers-write.d.ts.map +0 -1
  788. package/dist/tools/elements/handlers-write.js +0 -797
  789. package/dist/tools/elements/handlers-write.js.map +0 -1
  790. package/dist/tools/elements/handlers.d.ts +0 -130
  791. package/dist/tools/elements/handlers.d.ts.map +0 -1
  792. package/dist/tools/elements/handlers.js +0 -581
  793. package/dist/tools/elements/handlers.js.map +0 -1
  794. package/dist/tools/elements/layout-hierarchy-rules.d.ts +0 -62
  795. package/dist/tools/elements/layout-hierarchy-rules.d.ts.map +0 -1
  796. package/dist/tools/elements/layout-hierarchy-rules.js +0 -154
  797. package/dist/tools/elements/layout-hierarchy-rules.js.map +0 -1
  798. package/dist/tools/elements/schema-validation.d.ts +0 -218
  799. package/dist/tools/elements/schema-validation.d.ts.map +0 -1
  800. package/dist/tools/elements/schema-validation.js +0 -685
  801. package/dist/tools/elements/schema-validation.js.map +0 -1
  802. package/dist/tools/elicitation.d.ts +0 -87
  803. package/dist/tools/elicitation.d.ts.map +0 -1
  804. package/dist/tools/elicitation.js +0 -100
  805. package/dist/tools/elicitation.js.map +0 -1
  806. package/dist/tools/format/elements-format.d.ts +0 -75
  807. package/dist/tools/format/elements-format.d.ts.map +0 -1
  808. package/dist/tools/format/elements-format.js +0 -368
  809. package/dist/tools/format/elements-format.js.map +0 -1
  810. package/dist/tools/format/source-schema-format.d.ts +0 -74
  811. package/dist/tools/format/source-schema-format.d.ts.map +0 -1
  812. package/dist/tools/format/source-schema-format.js +0 -208
  813. package/dist/tools/format/source-schema-format.js.map +0 -1
  814. package/dist/tools/layout-flatten.d.ts +0 -84
  815. package/dist/tools/layout-flatten.d.ts.map +0 -1
  816. package/dist/tools/layout-flatten.js +0 -129
  817. package/dist/tools/layout-flatten.js.map +0 -1
  818. package/dist/tools/local-content/handlers.d.ts +0 -56
  819. package/dist/tools/local-content/handlers.d.ts.map +0 -1
  820. package/dist/tools/local-content/handlers.js +0 -320
  821. package/dist/tools/local-content/handlers.js.map +0 -1
  822. package/dist/tools/multi-items/clean-implode-handler.d.ts +0 -37
  823. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +0 -1
  824. package/dist/tools/multi-items/clean-implode-handler.js +0 -65
  825. package/dist/tools/multi-items/clean-implode-handler.js.map +0 -1
  826. package/dist/tools/multi-items/format/inspection-format.d.ts +0 -41
  827. package/dist/tools/multi-items/format/inspection-format.d.ts.map +0 -1
  828. package/dist/tools/multi-items/format/inspection-format.js +0 -64
  829. package/dist/tools/multi-items/format/inspection-format.js.map +0 -1
  830. package/dist/tools/multi-items/inspect-handler.d.ts +0 -97
  831. package/dist/tools/multi-items/inspect-handler.d.ts.map +0 -1
  832. package/dist/tools/multi-items/inspect-handler.js +0 -323
  833. package/dist/tools/multi-items/inspect-handler.js.map +0 -1
  834. package/dist/tools/multi-items/inspection-cache.d.ts +0 -85
  835. package/dist/tools/multi-items/inspection-cache.d.ts.map +0 -1
  836. package/dist/tools/multi-items/inspection-cache.js +0 -126
  837. package/dist/tools/multi-items/inspection-cache.js.map +0 -1
  838. package/dist/tools/navigation/handlers.d.ts +0 -30
  839. package/dist/tools/navigation/handlers.d.ts.map +0 -1
  840. package/dist/tools/navigation/handlers.js +0 -41
  841. package/dist/tools/navigation/handlers.js.map +0 -1
  842. package/dist/tools/pages/handlers-audit.d.ts +0 -140
  843. package/dist/tools/pages/handlers-audit.d.ts.map +0 -1
  844. package/dist/tools/pages/handlers-audit.js +0 -714
  845. package/dist/tools/pages/handlers-audit.js.map +0 -1
  846. package/dist/tools/pages/handlers-read.d.ts +0 -133
  847. package/dist/tools/pages/handlers-read.d.ts.map +0 -1
  848. package/dist/tools/pages/handlers-read.js +0 -1061
  849. package/dist/tools/pages/handlers-read.js.map +0 -1
  850. package/dist/tools/pages/handlers-write.d.ts +0 -212
  851. package/dist/tools/pages/handlers-write.d.ts.map +0 -1
  852. package/dist/tools/pages/handlers-write.js +0 -419
  853. package/dist/tools/pages/handlers-write.js.map +0 -1
  854. package/dist/tools/pages/target.d.ts +0 -162
  855. package/dist/tools/pages/target.d.ts.map +0 -1
  856. package/dist/tools/pages/target.js +0 -239
  857. package/dist/tools/pages/target.js.map +0 -1
  858. package/dist/tools/sources/handlers-bind.d.ts +0 -148
  859. package/dist/tools/sources/handlers-bind.d.ts.map +0 -1
  860. package/dist/tools/sources/handlers-bind.js +0 -657
  861. package/dist/tools/sources/handlers-bind.js.map +0 -1
  862. package/dist/tools/sources/handlers.d.ts +0 -116
  863. package/dist/tools/sources/handlers.d.ts.map +0 -1
  864. package/dist/tools/sources/handlers.js +0 -289
  865. package/dist/tools/sources/handlers.js.map +0 -1
  866. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts +0 -95
  867. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts.map +0 -1
  868. package/dist/tools/sublayout/inspect-sublayout-handler.js +0 -181
  869. 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 (customer 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 customer 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
- // customer 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