@wootsup/yt-builder-mcp 1.12.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 (857) hide show
  1. package/README.md +128 -30
  2. package/bin/node-floor.d.ts +28 -0
  3. package/bin/node-floor.js +123 -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 +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 +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 +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 +1 -85
  102. package/dist/diagnostics/doctor.d.ts.map +1 -1
  103. package/dist/diagnostics/doctor.js +5 -90
  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 +15 -24
  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 +9 -178
  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 +65 -79
  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 +0 -55
  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 +29 -78
  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 +14 -19
  500. package/dist/tools/budgeted-table.d.ts.map +1 -1
  501. package/dist/tools/budgeted-table.js +171 -105
  502. package/dist/tools/budgeted-table.js.map +1 -1
  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 +147 -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 +26 -43
  528. package/dist/tools/format/health-format.d.ts.map +1 -1
  529. package/dist/tools/format/health-format.js +28 -60
  530. package/dist/tools/format/health-format.js.map +1 -1
  531. package/dist/tools/format/inspection-format.d.ts +2 -54
  532. package/dist/tools/format/inspection-format.d.ts.map +1 -1
  533. package/dist/tools/format/inspection-format.js +33 -119
  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 +114 -139
  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 +46 -232
  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 +12 -39
  554. package/dist/tools/index.js.map +1 -1
  555. package/dist/tools/inspection.d.ts +4 -34
  556. package/dist/tools/inspection.d.ts.map +1 -1
  557. package/dist/tools/inspection.js +164 -536
  558. package/dist/tools/inspection.js.map +1 -1
  559. package/dist/tools/library.d.ts +115 -127
  560. package/dist/tools/library.d.ts.map +1 -1
  561. package/dist/tools/library.js +706 -454
  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 +103 -46
  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 -65
  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 +1 -16
  628. package/dist/tools/navigation/builders.d.ts.map +1 -1
  629. package/dist/tools/navigation/builders.js +5 -27
  630. package/dist/tools/navigation/builders.js.map +1 -1
  631. package/dist/tools/navigation/index.d.ts +0 -13
  632. package/dist/tools/navigation/index.d.ts.map +1 -1
  633. package/dist/tools/navigation/index.js +0 -12
  634. package/dist/tools/navigation/index.js.map +1 -1
  635. package/dist/tools/navigation/schemas.d.ts +0 -30
  636. package/dist/tools/navigation/schemas.d.ts.map +1 -1
  637. package/dist/tools/navigation/schemas.js +0 -30
  638. package/dist/tools/navigation/schemas.js.map +1 -1
  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 +320 -405
  646. package/dist/tools/pages/builders.js.map +1 -1
  647. package/dist/tools/pages/header-transparency.d.ts +2 -32
  648. package/dist/tools/pages/header-transparency.d.ts.map +1 -1
  649. package/dist/tools/pages/header-transparency.js +9 -43
  650. package/dist/tools/pages/header-transparency.js.map +1 -1
  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 +323 -241
  656. package/dist/tools/pages/schemas.d.ts.map +1 -1
  657. package/dist/tools/pages/schemas.js +514 -549
  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 +0 -69
  676. package/dist/tools/response-budget.d.ts.map +1 -1
  677. package/dist/tools/response-budget.js +0 -127
  678. package/dist/tools/response-budget.js.map +1 -1
  679. package/dist/tools/shared-schemas.d.ts +11 -65
  680. package/dist/tools/shared-schemas.d.ts.map +1 -1
  681. package/dist/tools/shared-schemas.js +40 -123
  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 +194 -170
  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 +16 -232
  712. package/dist/tools/sparse-fields.d.ts.map +1 -1
  713. package/dist/tools/sparse-fields.js +178 -242
  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 -39
  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 -124
  748. package/dist/tools/tool-builder/results.d.ts.map +1 -1
  749. package/dist/tools/tool-builder/results.js +258 -263
  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 +4 -4
  773. package/skills/yt-builder-mcp/SKILL.md +1857 -400
  774. package/dist/tools/elements/handlers-write.d.ts +0 -89
  775. package/dist/tools/elements/handlers-write.d.ts.map +0 -1
  776. package/dist/tools/elements/handlers-write.js +0 -797
  777. package/dist/tools/elements/handlers-write.js.map +0 -1
  778. package/dist/tools/elements/handlers.d.ts +0 -130
  779. package/dist/tools/elements/handlers.d.ts.map +0 -1
  780. package/dist/tools/elements/handlers.js +0 -581
  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 -218
  787. package/dist/tools/elements/schema-validation.d.ts.map +0 -1
  788. package/dist/tools/elements/schema-validation.js +0 -685
  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 -368
  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 -56
  807. package/dist/tools/local-content/handlers.d.ts.map +0 -1
  808. package/dist/tools/local-content/handlers.js +0 -320
  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/navigation/handlers.d.ts +0 -30
  827. package/dist/tools/navigation/handlers.d.ts.map +0 -1
  828. package/dist/tools/navigation/handlers.js +0 -41
  829. package/dist/tools/navigation/handlers.js.map +0 -1
  830. package/dist/tools/pages/handlers-audit.d.ts +0 -140
  831. package/dist/tools/pages/handlers-audit.d.ts.map +0 -1
  832. package/dist/tools/pages/handlers-audit.js +0 -714
  833. package/dist/tools/pages/handlers-audit.js.map +0 -1
  834. package/dist/tools/pages/handlers-read.d.ts +0 -133
  835. package/dist/tools/pages/handlers-read.d.ts.map +0 -1
  836. package/dist/tools/pages/handlers-read.js +0 -1061
  837. package/dist/tools/pages/handlers-read.js.map +0 -1
  838. package/dist/tools/pages/handlers-write.d.ts +0 -212
  839. package/dist/tools/pages/handlers-write.d.ts.map +0 -1
  840. package/dist/tools/pages/handlers-write.js +0 -419
  841. package/dist/tools/pages/handlers-write.js.map +0 -1
  842. package/dist/tools/pages/target.d.ts +0 -162
  843. package/dist/tools/pages/target.d.ts.map +0 -1
  844. package/dist/tools/pages/target.js +0 -239
  845. package/dist/tools/pages/target.js.map +0 -1
  846. package/dist/tools/sources/handlers-bind.d.ts +0 -148
  847. package/dist/tools/sources/handlers-bind.d.ts.map +0 -1
  848. package/dist/tools/sources/handlers-bind.js +0 -657
  849. package/dist/tools/sources/handlers-bind.js.map +0 -1
  850. package/dist/tools/sources/handlers.d.ts +0 -116
  851. package/dist/tools/sources/handlers.d.ts.map +0 -1
  852. package/dist/tools/sources/handlers.js +0 -289
  853. package/dist/tools/sources/handlers.js.map +0 -1
  854. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts +0 -95
  855. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts.map +0 -1
  856. package/dist/tools/sublayout/inspect-sublayout-handler.js +0 -181
  857. package/dist/tools/sublayout/inspect-sublayout-handler.js.map +0 -1
package/README.md CHANGED
@@ -63,29 +63,35 @@ The wizard auto-detects and configures the following clients:
63
63
 
64
64
  ## Tool surface (gateway model)
65
65
 
66
- The server catalogues **52 tools + 2 gateways = 54 reachable** end-to-end,
67
- of which **42 are advertised in `tools/list`** (well under Cursor's ~40-tool
66
+ The server catalogues **60 tools + 2 gateways = 62 reachable** end-to-end,
67
+ of which **49 are advertised in `tools/list`** (well under Cursor's ~40-tool
68
68
  cap — the 3-lane split keeps the advertised surface small while every
69
69
  catalogued tool stays callable):
70
70
 
71
71
  - **2 direct top-level tools** (always in `tools/list`):
72
72
  `yootheme_builder_health`, `yootheme_builder_diagnose`. The
73
73
  "the gateway itself might be broken" escape hatch.
74
- - **38 essential forwarded tools** (always in `tools/list`): the most-used
74
+ - **45 essential forwarded tools** (always in `tools/list`): the most-used
75
75
  reads and writes (`pages_list`, `pages_create`, `pages_delete`,
76
- `page_dynamize`, `get_etag`, `element_list`, `element_add`,
76
+ `pages_set_status`, `pages_restore` (the one correct way back from the
77
+ trash — a gateway-only placement would leave it discoverable only to a
78
+ caller who already knows it exists),
79
+ `page_generate_dynamic`, `get_etag`, `element_list`, `element_add`,
77
80
  `element_update_settings`, `sources_list`, `element_types_list`,
78
81
  `inspect_multi_items_binding`, the multi-site `sites_list` / `sites_test` /
79
- `use_site`, and the bind→save→publish chain `element_bind_source` /
80
- `page_save` / `page_publish`, among others).
81
- - **2 gateway tools** exposing the remaining **12 advanced tools**:
82
- - `yootheme_builder_advanced` (write-capable) routes **all 12**
83
- (`page_get_schema`, `element_unbind_source`,
84
- `clean_implode_directives`, `inspect_sublayout`, `layout_query`,
82
+ `use_site`, `get_skill` (the full-guide retrieval tool), `modules_delete`
83
+ (the one gateway-only destructive tool that removes data outside the
84
+ layout tree, promoted so a host can gate it individually), and the
85
+ bind→save→publish→unbind chain `element_bind_source` / `page_save` /
86
+ `page_publish` / `element_unbind_source`, among others).
87
+ - **2 gateway tools** exposing the remaining **13 advanced tools**:
88
+ - `yootheme_builder_advanced` (write-capable) routes **all 13**
89
+ (`clean_implode_directives`, `inspect_sublayout`, `layout_query`,
85
90
  `library_save_as`, `library_delete`, `local_content_types`,
86
- `local_content_read`, `pages_audit`, `heading_outline`, `navigation`).
91
+ `local_content_read`, `pages_audit`, `heading_outline`, `navigation`,
92
+ `header_transparency_set`, `modules_update`, `modules_create`).
87
93
  - `yootheme_builder_advanced_read` (read-only-annotated) routes only the
88
- **8 read-only** advanced tools (`page_get_schema`, `inspect_sublayout`,
94
+ **7 read-only** advanced tools (`inspect_sublayout`,
89
95
  `layout_query`, `local_content_types`, `local_content_read`,
90
96
  `pages_audit`, `heading_outline`, `navigation`), so MCP hosts can
91
97
  auto-allow pure inspection without a per-call write-approval prompt.
@@ -93,20 +99,13 @@ catalogued tool stays callable):
93
99
  (returns the schema) or `({ tool, arguments })` to execute.
94
100
 
95
101
  See `skills/yt-builder-mcp/SKILL.md` for the full catalog and canonical
96
- workflows, and `docs/TOOL-CATALOG.md` for an auto-generated reference.
97
-
98
- ## Tool catalogue
99
-
100
- | Domain | Count | Tools |
101
- |-------------|------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
102
- | Health | 2 | `health`, `diagnose` |
103
- | Sites | 2 | `sites_list`, `sites_test` |
104
- | Pages | 7 | `pages_list`, `page_get_layout`, `page_get_schema`, `template_summary`, `get_etag`, `page_save`, `page_publish` |
105
- | Elements | 7 | `element_list`, `element_get`, `element_add`, `element_update_settings`, `element_move`, `element_clone`, `element_delete` |
106
- | Sources | 5 | `sources_list`, `element_get_binding`, `element_bind_source`, `element_unbind_source`, `inspect_multi_items_binding` |
107
- | Inspection | 3 | `element_types_list`, `element_type_get_schema`, `clean_implode_directives` |
108
- | Sublayout | 1 | `inspect_sublayout` (F154 — fragment subtree + render-time inner-grid gate; advanced/gateway-routed) |
109
- | Gateway | 2 | `advanced` (write, routes all 10 advanced tools), `advanced_read` (read-only, routes the 6 read-only advanced tools) |
102
+ workflows, and `docs/TOOL-CATALOG.md` for an auto-generated, per-tool
103
+ reference (regenerated from the live registry by
104
+ `node scripts/extract-tools.mjs` — never hand-copied here, which is
105
+ exactly why the numbers above stay accurate release over release; an
106
+ earlier, hand-maintained domain-count table on this exact spot had
107
+ drifted to less than half the real tool count and a stale gateway
108
+ count before it was replaced with this pointer).
110
109
 
111
110
  All tool names are prefixed with `yootheme_builder_` at the MCP server boundary.
112
111
 
@@ -114,7 +113,18 @@ All tool names are prefixed with `yootheme_builder_` at the MCP server boundary.
114
113
 
115
114
  ```
116
115
  yt-builder-mcp setup Interactive first-run wizard (default).
116
+ yt-builder-mcp doctor Diagnose connectivity (Node version, corporate
117
+ proxy/TLS, site reachability, bearer validity,
118
+ update status). Run this first when setup "hangs".
117
119
  yt-builder-mcp install-skill Install the bundled agent skill.
120
+ yt-builder-mcp uninstall Remove yt-builder-mcp from configured AI clients
121
+ (alias: remove) (and, optionally, the installed skill).
122
+ yt-builder-mcp add-site Add a site to the multi-site registry (see
123
+ "Multi-site setup" below).
124
+ yt-builder-mcp list-sites List configured sites (no network calls).
125
+ yt-builder-mcp remove-site <id> Remove a site; auto-promotes the next as default.
126
+ yt-builder-mcp set-default <id> Flip which configured site is the default.
127
+ yt-builder-mcp test-site <id> Probe /health + /etag for one configured site.
118
128
  yt-builder-mcp --version, -v Print package version.
119
129
  yt-builder-mcp --help, -h Show usage.
120
130
  ```
@@ -131,9 +141,9 @@ AI clients that follow the `~/AGENTS.md` discovery protocol. The
131
141
  single location keeps the skill discoverable across every supported
132
142
  client without per-client write logic.
133
143
 
134
- The skill ships with the 5 canonical workflows (build hero, bind
135
- source, clone section, diagnose 401, add custom element) plus a
136
- 26-tool auto-generated catalog appendix.
144
+ The skill ships with the 6 canonical workflows (build hero, bind
145
+ source, clone section, diagnose 401, add custom element, SEO audit)
146
+ plus a 60-tool auto-generated catalog appendix.
137
147
 
138
148
  ## MCPB bundle (Claude Desktop one-click install)
139
149
 
@@ -164,6 +174,11 @@ When launched by an AI client (or directly):
164
174
  | `YTB_MCP_PLATFORM` | No | Explicit platform hint: `wordpress` or `joomla`. Set to `joomla` when `YTB_MCP_SITE_URL` is an origin-only Joomla URL (no `/api/index.php/` in the path). Defaults to URL-shape auto-detection. |
165
175
  | `YTB_MCP_TIMEOUT_MS` | No | REST timeout (default 15000). |
166
176
  | `YTB_MCP_TEST_MODE` | No | `1` skips the stdio loop (smoke tests). |
177
+ | `YTB_MCP_SITES_FILE` | No | Path to the multi-site registry (see "Multi-site setup" above). Defaults to `~/.config/yt-builder-mcp/sites.json`. |
178
+ | `YTB_MCP_PROFILE` | No | Boots the server pinned to one `site_id` from the registry, for a one-MCP-entry-per-site setup. |
179
+ | `YTB_MCP_EXTRA_HEADERS` | No | Extra HTTP headers merged into every outbound request (a WAF cookie, a corporate gateway secret, HTTP Basic-Auth, …). Either a JSON object (`{"X-WAF-Token":"abc"}`) or `Name: value` lines. An `Authorization` entry here is always dropped — the Bearer owns that header. |
180
+ | `YTB_MCP_SITE_BASIC_AUTH` | No | `user:pass` for a site fronted by an HTTP Basic-Auth realm. Sent as the `Authorization: Basic …` header; the plugin Bearer then travels on `X-Authorization`. |
181
+ | `YTB_MCP_VERSION` | No | Version-pin fallback used when `--pin` isn't passed at setup time (see "Corporate TLS interception / air-gapped installs"). |
167
182
 
168
183
  ## Manual MCP config (no wizard)
169
184
 
@@ -195,6 +210,58 @@ For a Joomla install at an origin-only URL, also set the platform hint:
195
210
  }
196
211
  ```
197
212
 
213
+ ## Multi-site setup (more than one WordPress/Joomla site)
214
+
215
+ Instead of one `env` block per AI client, add every site once to a
216
+ shared on-disk registry and address each by `site_id`:
217
+
218
+ ```bash
219
+ npx -y @wootsup/yt-builder-mcp add-site \
220
+ --url https://shop.example.com --token "$YTB_TOKEN" \
221
+ --label "Shop" --site-id shop --default
222
+
223
+ npx -y @wootsup/yt-builder-mcp add-site \
224
+ --url https://blog.example.com --token-ref "op://Vault/blog/token" \
225
+ --label "Blog" --site-id blog
226
+
227
+ npx -y @wootsup/yt-builder-mcp list-sites
228
+ npx -y @wootsup/yt-builder-mcp test-site shop
229
+ npx -y @wootsup/yt-builder-mcp set-default blog
230
+ npx -y @wootsup/yt-builder-mcp remove-site blog
231
+ ```
232
+
233
+ `add-site` flags:
234
+
235
+ | Flag | Required? | Description |
236
+ |------|-----------|-------------|
237
+ | `--url <site-url>` | Yes | Site base URL (WordPress or Joomla). |
238
+ | `--token <bearer>` | One of these two | Plain Bearer key. Mutually exclusive with `--token-ref`. |
239
+ | `--token-ref <op://…>` | One of these two | 1Password Secret Reference (`op://<vault>/<item>/<field>`) instead of a plain-text key. |
240
+ | `--platform auto\|wordpress\|joomla` | No (default `auto`) | Explicit platform hint; `auto` is runtime-detected on first use. |
241
+ | `--label "<text>"` | No | Human-readable label shown by `list-sites`. |
242
+ | `--site-id <slug>` | No (default `default`) | Registry key used by every other multi-site command and by a tool call's optional `site_id` argument. |
243
+ | `--default` | No | Mark this site as the default (the first added site becomes default automatically). |
244
+ | `--yes` | No | Overwrite an existing `site_id` instead of failing. |
245
+ | `--sites-file <path>` | No | Registry file to write, overriding `YTB_MCP_SITES_FILE` / the default path for this one call. |
246
+
247
+ The registry lives at `~/.config/yt-builder-mcp/sites.json`
248
+ (`$XDG_CONFIG_HOME/yt-builder-mcp/sites.json` when that variable is
249
+ set). `YTB_MCP_SITES_FILE` is the switch that makes the server READ a
250
+ registry at all: without it the server ignores `sites.json` entirely and
251
+ runs off the single-site `YTB_MCP_SITE_URL` / `YTB_MCP_BEARER_TOKEN`
252
+ pair. `setup` writes it for you, pointing at the registry it filled; set
253
+ it by hand only to name a different path. When the file it names is
254
+ missing or holds no sites, the server falls back to the single-site pair,
255
+ so an unpopulated registry never costs you a working config.
256
+ `YTB_MCP_PROFILE=<site_id>` boots the server
257
+ pinned to one site from the registry — useful when you'd rather run
258
+ one MCP entry per site than one shared multi-site entry.
259
+
260
+ `uninstall` (alias `remove`) accepts `--all` (every detected client +
261
+ the skill, no prompts), `--yes`/`-y` (skip the final confirmation),
262
+ `--keep-skill` (remove client entries but leave the installed skill in
263
+ place), and `--force`.
264
+
198
265
  ## Non-interactive CI usage
199
266
 
200
267
  For scripted / CI installs, pass the answers as flags and add
@@ -222,6 +289,36 @@ The wizard still runs its plugin-health + auth probes and uses the
222
289
  exit codes documented in the table below, so CI can branch on the
223
290
  exit code to detect whether the install actually succeeded.
224
291
 
292
+ ### Corporate TLS interception / air-gapped installs
293
+
294
+ | Flag | Description |
295
+ |------|-------------|
296
+ | `--ca <path>` | Trust a corporate root CA `.pem` (writes `NODE_EXTRA_CA_CERTS=<path>` into the generated client config). |
297
+ | `--use-system-ca` (or `--ca=system`) | Trust the OS certificate store instead of an exported file — zero-export, needs Node ≥ 22.15 (writes `NODE_OPTIONS=--use-system-ca`). |
298
+ | `--pin <version>` | Pin the generated client config to an exact version (`npx -y @wootsup/yt-builder-mcp@<version>`) instead of the floating `@latest`. Falls back to the `YTB_MCP_VERSION` env var when omitted. |
299
+
300
+ The interactive wizard auto-offers `--ca` / `--use-system-ca` the
301
+ moment a probe fails with a TLS-inspection certificate error, so these
302
+ flags are mainly for the non-interactive/CI path.
303
+
304
+ ### One-click setup (pickup mode)
305
+
306
+ The host plugin's admin UI can hand the wizard a freshly-minted Bearer
307
+ key directly, skipping the URL/token prompts entirely:
308
+
309
+ ```bash
310
+ npx -y @wootsup/yt-builder-mcp setup \
311
+ --pickup https://example.com/wp-json/yt-builder-mcp/v1/setup/pickup \
312
+ --nonce "$NONCE" \
313
+ --client claude-desktop
314
+ ```
315
+
316
+ The pickup URL and nonce are revealed together in wp-admin → Tools →
317
+ "YT Builder MCP" (WordPress) or Administrator → Components → "YT
318
+ Builder MCP" (Joomla). The pickup is IP-bound, single-use, and expires
319
+ after 5 minutes; any `--url`/`--token` passed alongside `--pickup` are
320
+ ignored (with a stderr warning).
321
+
225
322
  ## Exit codes (CLI)
226
323
 
227
324
  The CLI returns POSIX-style exit codes for scripting / CI:
@@ -234,12 +331,13 @@ The CLI returns POSIX-style exit codes for scripting / CI:
234
331
  | 3 | Auth probe failed and user declined to continue |
235
332
  | 4 | Write failed; configs rolled back |
236
333
  | 5 | Handshake failed; configs rolled back |
334
+ | 6 | AI clients configured, but the site could not be recorded in `sites.json`; nothing rolled back |
237
335
  | 99 | Unhandled fatal in dispatcher |
238
336
  | 130 | User cancelled (SIGINT) |
239
337
 
240
338
  ## Documentation
241
339
 
242
- - [SKILL.md (bundled agent skill)](./skills/yt-builder-mcp/SKILL.md): 5 canonical workflows, gateway model, tool catalog
340
+ - [SKILL.md (bundled agent skill)](./skills/yt-builder-mcp/SKILL.md): 6 canonical workflows, gateway model, tool catalog
243
341
  - [REST API Reference](https://wootsup.com/docs/mcp/yootheme-wordpress/)
244
342
  - [MCP Tool Reference](https://wootsup.com/docs/mcp/yootheme-wordpress/tools)
245
343
 
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Type declaration for `node-floor.js`.
3
+ *
4
+ * That file is deliberately plain JavaScript outside the `src/` tree — its
5
+ * own docblock explains why: it guards the import that would otherwise throw
6
+ * while the module graph is being instantiated. `tsconfig.tests.json` still
7
+ * type-checks the tests that import it, and a `.js` module with no sibling
8
+ * declaration types as `any` there (TS7016) — this file is that declaration,
9
+ * kept in sync with the implementation by hand since the source itself
10
+ * cannot carry types without becoming the thing it guards against.
11
+ *
12
+ * @license MIT
13
+ */
14
+
15
+ export declare const NODE_PREFLIGHT_FLOOR: readonly [number, number, number];
16
+ export declare const UNSUPPORTED_NODE_MAJOR: number;
17
+ export declare const NODE_TOO_OLD_EXIT: number;
18
+ export declare const NODE_UNSUPPORTED_LINE_EXIT: number;
19
+
20
+ export interface NodeRuntimeRefusal {
21
+ readonly exitCode: number;
22
+ readonly message: string;
23
+ }
24
+
25
+ export declare function nodeRuntimeRefusal(
26
+ versionString: string,
27
+ floor?: readonly [number, number, number],
28
+ ): NodeRuntimeRefusal | null;
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Refuse to run on a Node this package cannot work on, and say so in words the
3
+ * reader can act on.
4
+ *
5
+ * Why this cannot live in `dist/`: a dependency of the setup wizard uses a
6
+ * terminal-formatting helper from a Node builtin. Where the helper is missing
7
+ * entirely, importing it throws while the module graph is being INSTANTIATED,
8
+ * not when the code runs — so every subcommand dies, `--version` included,
9
+ * before a single line of ours executes. Anything that diagnoses that
10
+ * situation must therefore sit OUTSIDE the graph it diagnoses: this file is
11
+ * plain JavaScript, imports nothing, and is loaded before the first `dist/`
12
+ * module.
13
+ *
14
+ * The consequence for the floor number: it is duplicated here, because the
15
+ * authoritative `NODE_FLOOR` lives behind exactly the import this guard runs
16
+ * ahead of. `tests/setup/engines-floor.test.ts` holds the two together — the
17
+ * duplication is deliberate and watched, not an oversight.
18
+ *
19
+ * ## The floor comes from a MEASUREMENT that contradicts a declaration
20
+ *
21
+ * Anyone changing these numbers needs this, because the obvious source is
22
+ * wrong. The dependency declares it needs `>= 20.12.0`. It does not: it calls
23
+ * the formatting helper with an ARRAY of styles, and that overload arrived
24
+ * later than the helper itself. Measured 2026-08-31 by bisection over nine
25
+ * installed releases, each confirmed against the real wizard and not only
26
+ * against the helper:
27
+ *
28
+ * 20.12.0 helper present, array form REJECTED → wizard dies at the first prompt
29
+ * 20.13.0 array form accepted → wizard runs ← the floor
30
+ * 21.0.0 helper ABSENT → module fails to load
31
+ * 21.7.3 helper present, array form REJECTED → wizard dies at the first prompt
32
+ * 22.0.0 array form accepted → wizard runs
33
+ *
34
+ * So the supported set is not one interval: the array overload was backported
35
+ * into the 20 line from 20.13.0, and never into the 21 line at all. 21.7.3 is
36
+ * the last release that line ever had, so no Node 21 can run this package —
37
+ * which is why a plain floor comparison is not enough and the 21 line is
38
+ * refused separately below.
39
+ *
40
+ * @license MIT
41
+ */
42
+
43
+ /**
44
+ * Minimum supported Node. Kept equal to `NODE_FLOOR` in
45
+ * `src/diagnostics/doctor.ts` by `tests/setup/engines-floor.test.ts`.
46
+ */
47
+ export const NODE_PREFLIGHT_FLOOR = [20, 13, 0];
48
+
49
+ /**
50
+ * Major version of the line that never received the backport (see above).
51
+ *
52
+ * This is why the guard is STRICTER than the package's own `engines.node`,
53
+ * which is a plain lower bound and therefore admits this line. npm compares
54
+ * against that bound, so it prints no `EBADENGINE` warning before installing
55
+ * here — nothing tells the customer in advance, and this refusal at first
56
+ * start is the first and only notice they get. Its wording carries that
57
+ * weight: it has to explain the whole situation on its own.
58
+ */
59
+ export const UNSUPPORTED_NODE_MAJOR = 21;
60
+
61
+ /**
62
+ * Exit codes. Both mean "this interpreter cannot run the package", and they
63
+ * are distinct so a caller can tell WHICH refusal it hit without parsing
64
+ * prose. Neither collides with the CLI's generic fatal (99) or with any code
65
+ * `runCli` returns (0, 1, 2, 130). The values are the conventional
66
+ * `EX_CONFIG` and `EX_UNAVAILABLE` from sysexits.
67
+ */
68
+ export const NODE_TOO_OLD_EXIT = 78;
69
+ export const NODE_UNSUPPORTED_LINE_EXIT = 69;
70
+
71
+ const RESTART_HINT = 'then run the command again. If an AI client starts this server for you,\n'
72
+ + 'restart that client afterwards so it picks up the newer Node.\n';
73
+
74
+ /**
75
+ * The refusal for `versionString`, or `null` when this Node can run the
76
+ * package.
77
+ *
78
+ * Returns the exit code alongside the message so the caller never has to
79
+ * decide which refusal it is holding.
80
+ *
81
+ * Takes the version as an argument rather than reading `process.version` so
82
+ * the decision is testable on any machine, against any version.
83
+ *
84
+ * **An unparseable version is allowed through, deliberately.** Blocking would
85
+ * turn an unrecognised-but-working runtime into a refusal to start, which is
86
+ * worse than the confusing loader error the caller would otherwise get: that
87
+ * error is the behaviour this guard replaces, not one it introduces.
88
+ */
89
+ export function nodeRuntimeRefusal(versionString, floor = NODE_PREFLIGHT_FLOOR) {
90
+ const m = /^v?(\d+)\.(\d+)\.(\d+)/.exec(String(versionString ?? ''));
91
+ if (m === null) return null;
92
+
93
+ const found = [Number(m[1]), Number(m[2]), Number(m[3])];
94
+ const shown = found.join('.');
95
+
96
+ // Checked before the floor: every release of this line is numerically
97
+ // above the floor and none of them works.
98
+ if (found[0] === UNSUPPORTED_NODE_MAJOR) {
99
+ return {
100
+ exitCode: NODE_UNSUPPORTED_LINE_EXIT,
101
+ message: `yt-builder-mcp cannot run on the Node.js ${UNSUPPORTED_NODE_MAJOR} line, `
102
+ + `and this is Node.js ${shown}.\n`
103
+ + `\n`
104
+ + `No Node.js ${UNSUPPORTED_NODE_MAJOR} release carries the terminal formatting this package\n`
105
+ + `needs. Install Node.js ${UNSUPPORTED_NODE_MAJOR + 1} or newer (an LTS release is recommended),\n`
106
+ + RESTART_HINT,
107
+ };
108
+ }
109
+
110
+ for (let i = 0; i < 3; i++) {
111
+ if (found[i] > floor[i]) return null;
112
+ if (found[i] < floor[i]) {
113
+ return {
114
+ exitCode: NODE_TOO_OLD_EXIT,
115
+ message: `yt-builder-mcp needs Node.js ${floor.join('.')} or newer, but this is Node.js ${shown}.\n`
116
+ + `\n`
117
+ + `Install Node.js ${floor[0]}.${floor[1]} or newer (an LTS release is recommended),\n`
118
+ + RESTART_HINT,
119
+ };
120
+ }
121
+ }
122
+ return null;
123
+ }
@@ -9,11 +9,14 @@
9
9
  * `remove-site` / `set-default` / `test-site` / `help` /
10
10
  * `--help` / `-h` / `--version` / `-v`): forward argv to
11
11
  * `runCli()` in `dist/setup-cli.js` (Wave G.7).
12
- * - 'hint' no OR unknown subcommand AND stdin is an interactive TTY
12
+ * - 'unknown'→ a word was given and it is not one of ours: name it back,
13
+ * suggest the likely command, exit 2. Both at a terminal and
14
+ * off one — no MCP client passes a word we do not know.
15
+ * - 'hint' → NO subcommand AND stdin is an interactive TTY
13
16
  * (a human ran the bin directly): print a discoverability
14
17
  * hint to stderr and exit 0, instead of silently blocking
15
18
  * on the stdio read loop ("hang").
16
- * - 'server' → no OR unknown subcommand AND stdin is NOT a TTY (a real
19
+ * - 'server' → NO subcommand AND stdin is NOT a TTY (a real
17
20
  * AI client piping JSON-RPC over stdin): import
18
21
  * `dist/index.js`, which starts the MCP stdio server (or,
19
22
  * under YTB_MCP_TEST_MODE=1, prints the tool list to stderr
@@ -44,20 +47,23 @@
44
47
  *
45
48
  * @license MIT
46
49
  */
47
- import { argv, stdin, stderr, exit } from 'node:process';
50
+ import { argv, stdin, stderr, exit, version } from 'node:process';
48
51
  import { spawnSync } from 'node:child_process';
49
52
  import { fileURLToPath } from 'node:url';
50
53
 
51
- import {
54
+ import { nodeRuntimeRefusal } from './node-floor.js';
55
+
56
+ // Dynamic, not static: a static import is hoisted above everything in this
57
+ // file, so nothing written here could run ahead of it. This is the ONLY
58
+ // `dist/` module loaded before the runtime check below, and it is loaded
59
+ // because the check needs to know the route first.
60
+ const {
52
61
  decideInvocation,
53
62
  isKnownSubcommand,
54
63
  BARE_INVOCATION_HINT,
55
- } from '../dist/cli/invocation-decision.js';
56
- import {
57
- decideCaReexec,
58
- CA_REEXEC_SENTINEL,
59
- USE_SYSTEM_CA_FLAG,
60
- } from '../dist/diagnostics/ca-reexec.js';
64
+ unknownSubcommandMessage,
65
+ UNKNOWN_SUBCOMMAND_EXIT_CODE,
66
+ } = await import('../dist/cli/invocation-decision.js');
61
67
 
62
68
  const args = argv.slice(2);
63
69
  const subcommand = args[0];
@@ -75,6 +81,31 @@ if (isKnownSubcommand(subcommand)) {
75
81
  action = decideInvocation(subcommand, stdin.isTTY);
76
82
  }
77
83
 
84
+ // The runtime check applies to the routes a PERSON drives, never to the
85
+ // server. Measured: `dist/index.js` loads on every version from the oldest
86
+ // supported upwards, so the server never needed this floor — only the setup
87
+ // wizard's terminal-formatting dependency does. Refusing the server route
88
+ // would take a working MCP server away from a customer whose only real
89
+ // problem is that `setup` cannot run.
90
+ //
91
+ // The cost of standing here rather than at the top of the file, stated so
92
+ // nobody has to rediscover it: the check is no longer ahead of every `dist/`
93
+ // import. Two are outside it — `invocation-decision.js` above, which must
94
+ // load to decide the route at all, and `index.js` on the server branch,
95
+ // which is deliberately unguarded. Should either ever pull in the wizard's
96
+ // dependency, directly or through one of its own, that import throws while
97
+ // the module graph is instantiated and this check never gets to speak: the
98
+ // customer is back to a message about a missing module export. Both are
99
+ // small and neither imports the wizard today, which is a measurement, not a
100
+ // guarantee.
101
+ if (action !== 'server') {
102
+ const refusal = nodeRuntimeRefusal(version);
103
+ if (refusal !== null) {
104
+ stderr.write(refusal.message);
105
+ exit(refusal.exitCode);
106
+ }
107
+ }
108
+
78
109
  if (action === 'cli') {
79
110
  try {
80
111
  const { runCli } = await import('../dist/setup-cli.js');
@@ -85,6 +116,11 @@ if (action === 'cli') {
85
116
  stderr.write(`yt-builder-mcp: fatal: ${msg}\n`);
86
117
  exit(99);
87
118
  }
119
+ } else if (action === 'unknown') {
120
+ // A word that is not ours. Said out loud, with a non-zero code — the two
121
+ // things a customer who mistyped needs and used to get neither of.
122
+ stderr.write(`${unknownSubcommandMessage(subcommand)}\n`);
123
+ exit(UNKNOWN_SUBCOMMAND_EXIT_CODE);
88
124
  } else if (action === 'hint') {
89
125
  stderr.write(`${BARE_INVOCATION_HINT}\n`);
90
126
  exit(0);
@@ -99,6 +135,11 @@ if (action === 'cli') {
99
135
  // normal in-process start — a re-exec failure must never break startup.
100
136
  if (process.env.YTB_MCP_TEST_MODE !== '1') {
101
137
  try {
138
+ const {
139
+ decideCaReexec,
140
+ CA_REEXEC_SENTINEL,
141
+ USE_SYSTEM_CA_FLAG,
142
+ } = await import('../dist/diagnostics/ca-reexec.js');
102
143
  const shouldReexec = decideCaReexec({
103
144
  nodeVersion: process.version,
104
145
  execArgv: process.execArgv,
package/dist/auth.d.ts CHANGED
@@ -1,148 +1,30 @@
1
- /**
2
- * Auth / configuration loading for the MCP server.
3
- *
4
- * The MCP server reads two environment variables on startup:
5
- *
6
- * YTB_MCP_SITE_URL — base URL of the host CMS install (WordPress
7
- * OR Joomla), e.g. `https://example.com`.
8
- * The per-platform REST namespace
9
- * (`/wp-json/yt-builder-mcp/v1` for WP,
10
- * `/api/index.php/v1/yt-builder-mcp` for
11
- * Joomla) is appended internally based on
12
- * runtime platform detection.
13
- * YTB_MCP_WP_URL — DEPRECATED alias for YTB_MCP_SITE_URL,
14
- * kept for back-compat with pre-Wave 7
15
- * configurations. A non-fatal deprecation
16
- * notice is written to stderr when the
17
- * legacy var is used in non-test mode.
18
- * YTB_MCP_BEARER_TOKEN — the Bearer key generated by the plugin
19
- * Settings page (`wp-admin → YT Builder MCP`
20
- * on WordPress, `Components → YT Builder MCP`
21
- * on Joomla).
22
- *
23
- * `loadConfig()` throws `ConfigError` if either is missing, so the
24
- * server fails fast with a useful message rather than emitting cryptic
25
- * 401/Network errors deep in the request stack.
26
- *
27
- * @license MIT
28
- */
29
1
  import { SiteRegistry } from './sites/registry.js';
30
2
  export interface ServerConfig {
31
- /** Base URL of the host-CMS install (no trailing slash). */
32
3
  readonly baseUrl: string;
33
- /** Bearer key. */
34
4
  readonly bearerToken: string;
35
- /** Network timeout (ms) for REST calls. */
36
5
  readonly timeoutMs: number;
37
- /**
38
- * Optional explicit platform hint from {@link ENV_PLATFORM}.
39
- * `undefined` lets the consumer rely on URL-shape detection.
40
- */
41
6
  readonly platformHint?: 'wordpress' | 'joomla';
42
7
  }
43
8
  export interface LoadConfigOptions {
44
- /** Allow the bearer-token to be empty (for health-only smoke tests). */
45
9
  readonly allowMissingToken?: boolean;
46
- /** Source of env vars (defaults to process.env). */
47
10
  readonly env?: NodeJS.ProcessEnv;
48
11
  }
49
- /**
50
- * Canonical env-var name for the host-CMS base URL (Wave 7+: covers
51
- * both WordPress and Joomla). Prefer this for all new configurations.
52
- */
53
12
  export declare const ENV_SITE_URL = "YTB_MCP_SITE_URL";
54
- /**
55
- * Legacy env-var name kept for back-compat. Pre-Wave-7 configurations
56
- * (every release through v1.0.x) used `YTB_MCP_WP_URL`. New code should
57
- * use {@link ENV_SITE_URL}; this constant is retained so the wizard,
58
- * tests, and error hints can still reference the legacy name.
59
- */
60
13
  export declare const ENV_WP_URL = "YTB_MCP_WP_URL";
61
14
  export declare const ENV_BEARER = "YTB_MCP_BEARER_TOKEN";
62
15
  export declare const ENV_TIMEOUT = "YTB_MCP_TIMEOUT_MS";
63
16
  export declare const ENV_TEST_MODE = "YTB_MCP_TEST_MODE";
64
- /**
65
- * U3 — env-var name for a site-level HTTP **Basic-Auth** realm (`user:pass`),
66
- * distinct from the plugin Bearer. A site fronted by a pure HTTP Basic realm
67
- * (e.g. `qa.customer.de`) needs `Authorization: Basic …`, which collides with
68
- * the Bearer on the one `Authorization` header — and `YTB_MCP_EXTRA_HEADERS`
69
- * forbids an `Authorization` key. This routes the Basic credentials on URL
70
- * userinfo (`https://user:pass@host`) instead, so the realm gets Basic while
71
- * the plugin still gets the Bearer. Canonical definition + parser live in
72
- * `net/site-basic-auth.ts`; re-exported here next to the other `ENV_*` names.
73
- */
74
17
  export { ENV_SITE_BASIC_AUTH } from './net/site-basic-auth.js';
75
- /**
76
- * Optional platform hint env var — `'wordpress'` or `'joomla'`. When
77
- * unset, the server auto-detects from the URL shape (cookbook §3.7.1):
78
- * - URL contains `/wp-json/` → wordpress
79
- * - URL contains `/api/index.php/` → joomla
80
- * - origin-only URL → defaults to wordpress (back-compat)
81
- *
82
- * Set this to `'joomla'` when your YTB_MCP_SITE_URL is an origin-only
83
- * Joomla URL like `https://example.com/joomla`.
84
- */
85
18
  export declare const ENV_PLATFORM = "YTB_MCP_PLATFORM";
86
- /**
87
- * W10 — canonical env-var name for the multi-site registry file. When
88
- * set, {@link loadRegistry} loads + validates the JSON at this path and
89
- * the legacy {@link ENV_SITE_URL} / {@link ENV_BEARER} pair is ignored.
90
- * When unset, the env-bridge falls back to building a one-site registry
91
- * from the legacy single-site pair.
92
- */
93
19
  export declare const ENV_SITES_FILE = "YTB_MCP_SITES_FILE";
94
- /**
95
- * Optional boot-time active-site selector. Names a registry `site_id`
96
- * that becomes the active (default-target) site the moment the server
97
- * boots — the YT Builder analogue of api-mapper's `APIMAPPER_PROFILE`.
98
- *
99
- * Resolution (see {@link bootstrapActiveSite} in `sites/bootstrap.ts`):
100
- * - unset / whitespace / `"default"` → no override; the registry's
101
- * own default site applies.
102
- * - `"<known site_id>"` → that site becomes active.
103
- * - `"<unknown site_id>"` → silently ignored (no phantom
104
- * switch on a fresh host that inherited the var from elsewhere).
105
- *
106
- * The runtime `yootheme_builder_use_site` tool switches it later within
107
- * a session; this env var only seeds the INITIAL active site so a
108
- * multi-client config (one MCP entry per client site, each with its own
109
- * `YTB_MCP_PROFILE`) lands on the right site without a first tool call.
110
- */
111
20
  export declare const ENV_PROFILE = "YTB_MCP_PROFILE";
21
+ export declare function readHostEnv(env: NodeJS.ProcessEnv, key: string): string | undefined;
22
+ export declare const DEFAULT_TIMEOUT_MS = 15000;
23
+ export declare function resolveTimeoutMs(env?: NodeJS.ProcessEnv): number;
112
24
  export declare function loadConfig(options?: LoadConfigOptions): ServerConfig;
113
25
  export declare function isTestMode(env?: NodeJS.ProcessEnv): boolean;
114
- /**
115
- * Options accepted by {@link loadRegistry}.
116
- */
117
26
  export interface LoadRegistryOptions {
118
- /** Source of env vars (defaults to process.env). */
119
27
  readonly env?: NodeJS.ProcessEnv;
120
28
  }
121
- /**
122
- * W10 — canonical boot-time registry loader.
123
- *
124
- * Resolution order:
125
- * 1. **Sites file** — if {@link ENV_SITES_FILE} is set to a non-empty
126
- * string, parse + validate the JSON at that path and wrap it in a
127
- * {@link SiteRegistry}. Schema failures bubble up as
128
- * `SitesFileError` (the store does not swallow them); the caller
129
- * decides whether to fail-fast or fall back. Wave 10 chooses
130
- * fail-fast — explicit file = explicit intent.
131
- *
132
- * 2. **Legacy env-bridge** — synthesise a one-site registry from the
133
- * pre-W10 single-site env-vars ({@link ENV_SITE_URL} +
134
- * {@link ENV_BEARER}, with {@link ENV_PLATFORM} as optional hint).
135
- * Preserves the single-site UX for every customer who has not
136
- * migrated to a sites.json yet.
137
- *
138
- * 3. **Hard fail** — neither configured. Surface a {@link ConfigError}
139
- * with the three setup options so the operator knows exactly which
140
- * knob to turn.
141
- *
142
- * This function replaces {@link loadConfig} on the main boot path.
143
- * `loadConfig` is intentionally retained for the test-mode fallback in
144
- * `index.ts` (`--test-mode` smoke probes) and for any embedded consumer
145
- * that still wants a flat `ServerConfig`.
146
- */
147
29
  export declare function loadRegistry(opts?: LoadRegistryOptions): Promise<SiteRegistry>;
148
30
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,MAAM,WAAW,YAAY;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC,oDAAoD;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpC;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,qBAAqB,CAAC;AAC/C;;;;;GAKG;AACH,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,UAAU,yBAAyB,CAAC;AACjD,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,aAAa,sBAAsB,CAAC;AACjD;;;;;;;;;GASG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,qBAAqB,CAAC;AAC/C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,uBAAuB,CAAC;AACnD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAkC7C,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,YAAY,CA8ExE;AAED,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAExE;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,YAAY,CAC9B,IAAI,GAAE,mBAAwB,GAC/B,OAAO,CAAC,YAAY,CAAC,CA8CvB"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,MAAM,WAAW,YAAY;IAEzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAK3B,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAE9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAErC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpC;AAMD,eAAO,MAAM,YAAY,qBAAqB,CAAC;AAO/C,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAC3C,eAAO,MAAM,UAAU,yBAAyB,CAAC;AACjD,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,aAAa,sBAAsB,CAAC;AAWjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAW/D,eAAO,MAAM,YAAY,qBAAqB,CAAC;AAQ/C,eAAO,MAAM,cAAc,uBAAuB,CAAC;AAkBnD,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAoB7C,wBAAgB,WAAW,CACvB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,EAAE,MAAM,GACZ,MAAM,GAAG,SAAS,CAIpB;AAED,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAmBzC,wBAAgB,gBAAgB,CAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACrC,MAAM,CAQR;AAgCD,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,YAAY,CA4ExE;AAED,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAExE;AASD,MAAM,WAAW,mBAAmB;IAEhC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpC;AA4BD,wBAAsB,YAAY,CAC9B,IAAI,GAAE,mBAAwB,GAC/B,OAAO,CAAC,YAAY,CAAC,CA6GvB"}