@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
@@ -1,10 +1,27 @@
1
1
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
2
2
  import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
3
- import { resolveMode } from './mode.js';
3
+ import { RestClient } from '../client.js';
4
+ import { probeCompatNotice } from '../compat-probe.js';
5
+ import { ConfigError } from '../errors.js';
6
+ import { configProblemFor } from '../sites/config-problem.js';
7
+ import { SitesFileError } from '../sites/store.js';
8
+ import { buildProxyInstructions } from './instructions.js';
9
+ import { resolveBridgeTarget } from './mode.js';
10
+ import { createProxyMultiSite } from './multi-site.js';
11
+ import { buildProxyRequestHeaders } from './request-headers.js';
12
+ import { TOOLS_LIST_WIRE_CAP_BYTES, oversizeToolsList } from './tools-list-cap.js';
13
+ import { createShadowToolBridge } from './shadow-tools.js';
14
+ import { buildInstructions } from '../skill-instructions.js';
4
15
  import { diagnoseNetworkError } from '../diagnostics/diagnose-network-error.js';
5
- import { mergeExtraHeaders, parseExtraHeaders } from '../net/extra-headers.js';
6
- import { applyUserinfoToUrl, parseSiteBasicAuth } from '../net/site-basic-auth.js';
7
- /** Narrow an unknown caught value to a human-readable message (no `any`). */
16
+ import { transportUncertaintyHint } from './transport-uncertainty.js';
17
+ import { parseExtraHeaders } from '../net/extra-headers.js';
18
+ import { parseSiteBasicAuth } from '../net/site-basic-auth.js';
19
+ import { createSessionRecoveryFetch } from '../net/session-recovery-fetch.js';
20
+ import { activeSiteFromRouting, textWithActiveSite, withActiveSiteKey, } from '../tools/active-site.js';
21
+ import { HostPrompter, needsHostPrompt, parksForHostPrompt, previewPayload, spliceHostPrompt, } from './confirm-elicitation.js';
22
+ import { promptFromPreview } from './confirm-question.js';
23
+ const PROXY_COMPAT_PROBE_TIMEOUT_MS = 4_000;
24
+ import { upstreamRpcError, upstreamRpcErrorMessage } from './upstream-error.js';
8
25
  function errorMessage(err) {
9
26
  if (err instanceof Error)
10
27
  return err.message;
@@ -17,10 +34,6 @@ function errorMessage(err) {
17
34
  return 'unknown error';
18
35
  }
19
36
  }
20
- /**
21
- * A forwarded message is request-shaped (and therefore answerable with a
22
- * JSON-RPC error) iff it carries a non-null `id`. Notifications have no `id`.
23
- */
24
37
  function requestId(msg) {
25
38
  if (msg !== null && typeof msg === 'object' && 'id' in msg) {
26
39
  const id = msg.id;
@@ -41,38 +54,15 @@ function isNestedCallToolResult(v) {
41
54
  const content = v.content;
42
55
  return Array.isArray(content) && content.length > 0 && isTextContentBlock(content[0]);
43
56
  }
44
- /**
45
- * Normalise the WordPress↔Joomla `/mcp` envelope asymmetry for `tools/call`
46
- * responses.
47
- *
48
- * The WP mcp-adapter (`ToolsHandler`) treats an Ability's return value as raw
49
- * data and `wp_json_encode`s our already-final `CallToolResult` into a fresh
50
- * text-content block. Over the wire that yields a DOUBLE-wrapped result —
51
- * `result.content[0].text` is itself a serialised `CallToolResult`
52
- * (`{"content":[{"type":"text","text":"<real-data-json>"}],"isError":…}`).
53
- * Joomla's `/api/` handler single-wraps: `result.content[0].text` is already
54
- * the real data JSON. The proxy bridge is a verbatim pipe, so a WP customer
55
- * would receive doubly-nested tool output while a Joomla customer would not.
56
- *
57
- * Strip EXACTLY ONE level of that nesting, and ONLY when the inner payload is
58
- * unmistakably a nested `CallToolResult`. Every shape check is defensive
59
- * (try/catch around the parse, strict block typing) so a genuine Joomla data
60
- * payload is never touched. Non-`tools/call` frames (initialize, tools/list,
61
- * JSON-RPC errors, notifications) are returned by reference, unchanged.
62
- *
63
- * Exported for unit tests.
64
- */
65
57
  export function normalizeProxyResponse(msg) {
66
58
  if (msg === null || typeof msg !== 'object')
67
59
  return msg;
68
60
  const result = msg.result;
69
61
  if (result === null || typeof result !== 'object')
70
62
  return msg;
71
- // Only tools/call responses carry a `result.content` array.
72
63
  const content = result.content;
73
64
  if (!Array.isArray(content))
74
65
  return msg;
75
- // A double-wrap is EXACTLY one text block whose text is a serialised result.
76
66
  if (content.length !== 1)
77
67
  return msg;
78
68
  const block = content[0];
@@ -83,15 +73,10 @@ export function normalizeProxyResponse(msg) {
83
73
  inner = JSON.parse(block.text);
84
74
  }
85
75
  catch {
86
- // Joomla single-wrap (text is the real data JSON, not nested) or plain
87
- // prose — leave the frame untouched.
88
76
  return msg;
89
77
  }
90
78
  if (!isNestedCallToolResult(inner))
91
79
  return msg;
92
- // Unpack one level: keep the outer result's fields, swap in the inner
93
- // content, and let the inner isError / structuredContent win when present
94
- // (the inner is the REAL tool result; the outer is the adapter's wrapper).
95
80
  const normalizedResult = {
96
81
  ...result,
97
82
  content: inner.content,
@@ -103,67 +88,373 @@ export function normalizeProxyResponse(msg) {
103
88
  }
104
89
  return { ...msg, result: normalizedResult };
105
90
  }
106
- /**
107
- * Wire two MCP transports into a transparent pipe: every message from one side
108
- * is relayed to the other, and a close/error on either side tears down the
109
- * other. The local→remote direction is verbatim; the remote→local direction
110
- * normalises the WP double-wrap (see `normalizeProxyResponse`) so WP and Joomla
111
- * customers receive identical, spec-clean tool results. The PHP server otherwise
112
- * owns the protocol semantics.
113
- * The caller is responsible for start()ing both transports.
114
- *
115
- * `StreamableHTTPClientTransport.send()` re-throws on any upstream failure
116
- * (401/5xx/connection refused / missing PHP endpoint). The forwarders MUST NOT
117
- * fire-and-forget that rejection: an unhandled rejection crashes the Node
118
- * process, so a wrong key / unreachable site would kill the proxy on the first
119
- * `initialize` instead of surfacing an actionable error. Each direction
120
- * therefore `.catch()`es its `send()`.
121
- */
122
- export function bridgeTransports(local, remote) {
123
- local.onmessage = (msg) => {
124
- remote.send(msg).catch((err) => {
125
- const message = errorMessage(err);
126
- // Turn an opaque transport failure (TLS-inspection CA, proxy, DNS,
127
- // timeout) into an actionable hint — the customer stress-test died with a
128
- // 30s timeout that looked like an auth problem. Falls back to the generic
129
- // config hint when the cause is not recognised.
130
- const diag = diagnoseNetworkError(err);
131
- const hint = diag !== null ? `${diag.summary} Fix: ${diag.fix}` : 'Check YTB_MCP_SITE_URL / YTB_MCP_BEARER_TOKEN.';
132
- // stderr only stdout is the JSON-RPC channel.
133
- console.error('[yt-builder-proxy] upstream send failed:', message + (diag !== null ? `\n → ${diag.fix}` : ''));
134
- const id = requestId(msg);
135
- if (id !== null) {
136
- // Hand the client an actionable error instead of a dead pipe.
137
- const frame = {
138
- jsonrpc: '2.0',
139
- id,
140
- error: {
141
- code: -32000,
142
- message: `Proxy upstream error: ${message}. ${hint}`,
143
- },
144
- };
145
- local.send(frame).catch((sendErr) => {
146
- console.error('[yt-builder-proxy] failed to deliver error frame:', errorMessage(sendErr));
147
- });
91
+ function isInitializeResult(result) {
92
+ return (typeof result.protocolVersion === 'string' &&
93
+ result.serverInfo !== null &&
94
+ typeof result.serverInfo === 'object');
95
+ }
96
+ function injectShadowSurface(msg, instructions, extraToolEntries) {
97
+ if (msg === null || typeof msg !== 'object')
98
+ return msg;
99
+ const result = msg.result;
100
+ if (result === null || typeof result !== 'object')
101
+ return msg;
102
+ const r = result;
103
+ if (instructions !== undefined && isInitializeResult(r)) {
104
+ return { ...msg, result: { ...r, instructions } };
105
+ }
106
+ if (extraToolEntries.length > 0 && Array.isArray(r.tools) && !('content' in r)) {
107
+ const ownNames = new Set(extraToolEntries.map((t) => t.name));
108
+ const foreign = r.tools.filter((t) => !ownNames.has(t.name));
109
+ return {
110
+ ...msg,
111
+ result: { ...r, tools: [...foreign, ...extraToolEntries] },
112
+ };
113
+ }
114
+ return msg;
115
+ }
116
+ function isNamedToolCall(msg, names) {
117
+ if (msg === null || typeof msg !== 'object')
118
+ return false;
119
+ const m = msg;
120
+ if (m.method !== 'tools/call')
121
+ return false;
122
+ const params = m.params;
123
+ if (params === null || typeof params !== 'object')
124
+ return false;
125
+ const name = params.name;
126
+ if (typeof name !== 'string' || !names.includes(name))
127
+ return false;
128
+ return requestId(msg) !== null;
129
+ }
130
+ function isToolCallRequest(msg) {
131
+ if (msg === null || typeof msg !== 'object')
132
+ return false;
133
+ const m = msg;
134
+ if (m.method !== 'tools/call')
135
+ return false;
136
+ const params = m.params;
137
+ if (params === null || typeof params !== 'object')
138
+ return false;
139
+ if (typeof params.name !== 'string')
140
+ return false;
141
+ return requestId(msg) !== null;
142
+ }
143
+ export const GATEWAY_TOOL_NAMES = [
144
+ 'yootheme_builder_advanced',
145
+ 'yootheme_builder_advanced_read',
146
+ ];
147
+ export const HEALTH_TOOL_NAME = 'yootheme_builder_health';
148
+ const MAX_PENDING_HEALTH_CALLS = 64;
149
+ function rememberActiveSite(pending, id, active) {
150
+ if (pending.size >= MAX_PENDING_HEALTH_CALLS) {
151
+ const oldest = pending.keys().next();
152
+ if (!(oldest.done ?? false))
153
+ pending.delete(oldest.value);
154
+ }
155
+ pending.set(id, active);
156
+ }
157
+ function rememberConfirmIntent(pending, id, toolName) {
158
+ if (pending.size >= MAX_PENDING_HEALTH_CALLS) {
159
+ const oldest = pending.keys().next();
160
+ if (!(oldest.done ?? false))
161
+ pending.delete(oldest.value);
162
+ }
163
+ pending.set(id, toolName);
164
+ }
165
+ function releaseConfirmIntent(pending, id) {
166
+ if (id !== null)
167
+ pending.delete(id);
168
+ }
169
+ function spliceActiveSite(result, active) {
170
+ const out = { ...result };
171
+ const structured = out.structuredContent;
172
+ if (structured !== null && typeof structured === 'object' && !Array.isArray(structured)) {
173
+ out.structuredContent = withActiveSiteKey(structured, active);
174
+ }
175
+ const content = out.content;
176
+ if (Array.isArray(content) && content.length > 0) {
177
+ const first = content[0];
178
+ if (isTextContentBlock(first) && first.type === 'text') {
179
+ const enriched = textWithActiveSite(first.text, active);
180
+ if (enriched !== null) {
181
+ out.content = [{ ...first, text: enriched }, ...content.slice(1)];
148
182
  }
149
- else {
150
- // A notification has no id to answer — tear the pipe down instead.
151
- void remote.close();
183
+ }
184
+ }
185
+ return out;
186
+ }
187
+ function applyPendingActiveSite(msg, pending) {
188
+ if (pending.size === 0 || msg === null || typeof msg !== 'object')
189
+ return msg;
190
+ const id = requestId(msg);
191
+ if (id === null)
192
+ return msg;
193
+ const active = pending.get(id);
194
+ if (active === undefined)
195
+ return msg;
196
+ pending.delete(id);
197
+ const result = msg.result;
198
+ if (result === null || typeof result !== 'object' || Array.isArray(result))
199
+ return msg;
200
+ return {
201
+ ...msg,
202
+ result: spliceActiveSite(result, active),
203
+ };
204
+ }
205
+ function readSiteId(args) {
206
+ const raw = args?.site_id;
207
+ return typeof raw === 'string' && raw.length > 0 ? raw : undefined;
208
+ }
209
+ function extractSiteIdArg(toolName, args) {
210
+ if (GATEWAY_TOOL_NAMES.includes(toolName)) {
211
+ const inner = args?.arguments;
212
+ return readSiteId(inner !== null && typeof inner === 'object' ? inner : undefined);
213
+ }
214
+ return readSiteId(args);
215
+ }
216
+ function isGatewayDiscoveryCall(toolName, args) {
217
+ if (!GATEWAY_TOOL_NAMES.includes(toolName))
218
+ return false;
219
+ if (args === undefined)
220
+ return true;
221
+ return !('arguments' in args) && !('input' in args);
222
+ }
223
+ async function answerLocalToolCall(msg, callTool, local, errorLabel) {
224
+ const id = requestId(msg);
225
+ if (id === null)
226
+ return;
227
+ try {
228
+ const result = await callTool(msg.params.name, msg.params.arguments);
229
+ await local.send({ jsonrpc: '2.0', id, result });
230
+ }
231
+ catch (err) {
232
+ const message = errorMessage(err);
233
+ console.error(`[yt-builder-proxy] ${errorLabel} call failed:`, message);
234
+ await local
235
+ .send({
236
+ jsonrpc: '2.0',
237
+ id,
238
+ error: { code: -32000, message: `${errorLabel} error: ${message}` },
239
+ })
240
+ .catch((sendErr) => {
241
+ console.error(`[yt-builder-proxy] failed to deliver ${errorLabel.toLowerCase()} error frame:`, errorMessage(sendErr));
242
+ });
243
+ }
244
+ }
245
+ async function routeToolCallBySite(msg, siteRouter, local, remote, pendingHealth, hostPrompt, release) {
246
+ const explicit = extractSiteIdArg(msg.params.name, msg.params.arguments);
247
+ const effective = explicit ?? siteRouter.activeSiteId();
248
+ const active = isGatewayDiscoveryCall(msg.params.name, msg.params.arguments)
249
+ ? undefined
250
+ : activeSiteFromRouting(explicit, siteRouter.activeSiteId(), siteRouter.defaultSiteId);
251
+ if (explicit !== undefined) {
252
+ const refusal = siteRouter.substitutedRefusal(explicit);
253
+ if (refusal !== null) {
254
+ const refusedId = requestId(msg);
255
+ release(refusedId);
256
+ if (refusedId !== null) {
257
+ await local
258
+ .send({ jsonrpc: '2.0', id: refusedId, result: refusal })
259
+ .catch((sendErr) => {
260
+ console.error('[yt-builder-proxy] failed to deliver substituted-registry refusal:', errorMessage(sendErr));
261
+ });
152
262
  }
263
+ return;
264
+ }
265
+ }
266
+ if (effective === null || effective === siteRouter.defaultSiteId) {
267
+ const forwardedId = requestId(msg);
268
+ if (active !== undefined && forwardedId !== null) {
269
+ rememberActiveSite(pendingHealth, forwardedId, active);
270
+ }
271
+ forwardToRemote(msg, remote, local, release);
272
+ return;
273
+ }
274
+ const id = requestId(msg);
275
+ const resolved = await siteRouter.resolve(effective);
276
+ if (!resolved.ok) {
277
+ release(id);
278
+ if (id !== null) {
279
+ await local
280
+ .send({ jsonrpc: '2.0', id, result: resolved.errorResult })
281
+ .catch((sendErr) => {
282
+ console.error('[yt-builder-proxy] failed to deliver site-routing error frame:', errorMessage(sendErr));
283
+ });
284
+ }
285
+ return;
286
+ }
287
+ try {
288
+ const result = await resolved.client.callTool({
289
+ name: msg.params.name,
290
+ arguments: msg.params.arguments,
153
291
  });
292
+ const answered = active !== undefined
293
+ ? spliceActiveSite(result, active)
294
+ : result;
295
+ const finished = await hostPrompt(id, answered);
296
+ if (id !== null) {
297
+ await local.send({ jsonrpc: '2.0', id, result: finished });
298
+ }
299
+ }
300
+ catch (err) {
301
+ const message = errorMessage(err);
302
+ console.error(`[yt-builder-proxy] site "${effective}" call failed:`, message);
303
+ release(id);
304
+ const routedUpstream = upstreamRpcError(message);
305
+ if (id !== null) {
306
+ await local
307
+ .send({
308
+ jsonrpc: '2.0',
309
+ id,
310
+ error: routedUpstream !== null
311
+ ? { code: routedUpstream.code, message: `Site "${effective}": ${upstreamRpcErrorMessage(routedUpstream)}` }
312
+ : {
313
+ code: -32000,
314
+ message: `Site "${effective}" call error: ${message}`
315
+ + transportUncertaintyHint(true),
316
+ },
317
+ })
318
+ .catch((sendErr) => {
319
+ console.error('[yt-builder-proxy] failed to deliver site-call error frame:', errorMessage(sendErr));
320
+ });
321
+ }
322
+ }
323
+ }
324
+ function forwardToRemote(msg, remote, local, release) {
325
+ remote.send(msg).catch((err) => {
326
+ const message = errorMessage(err);
327
+ const diag = diagnoseNetworkError(err);
328
+ const upstream = upstreamRpcError(message);
329
+ const uncertainty = upstream !== null ? '' : transportUncertaintyHint(isToolCallRequest(msg));
330
+ const hint = diag !== null ? `${diag.summary} Fix: ${diag.fix}${uncertainty}`
331
+ : upstream !== null ? ''
332
+ : `Check YTB_MCP_SITE_URL / YTB_MCP_BEARER_TOKEN.${uncertainty}`;
333
+ console.error('[yt-builder-proxy] upstream send failed:', message + (diag !== null ? `\n → ${diag.fix}` : ''));
334
+ const id = requestId(msg);
335
+ release(id);
336
+ if (id !== null) {
337
+ const frame = {
338
+ jsonrpc: '2.0',
339
+ id,
340
+ error: upstream !== null
341
+ ? { code: upstream.code, message: upstreamRpcErrorMessage(upstream) }
342
+ : { code: -32000, message: `Proxy upstream error: ${message}. ${hint}` },
343
+ };
344
+ local.send(frame).catch((sendErr) => {
345
+ console.error('[yt-builder-proxy] failed to deliver error frame:', errorMessage(sendErr));
346
+ });
347
+ }
348
+ else {
349
+ void remote.close();
350
+ }
351
+ });
352
+ }
353
+ export function bridgeTransports(local, remote, opts = {}) {
354
+ const { instructions, shadow, sitesShadow, siteRouter } = opts;
355
+ const extraToolEntries = [
356
+ ...(shadow !== undefined ? [shadow.listEntry] : []),
357
+ ...(sitesShadow !== undefined ? sitesShadow.listEntries : []),
358
+ ];
359
+ const pendingHealth = new Map();
360
+ const pendingConfirm = new Map();
361
+ const prompter = new HostPrompter(local);
362
+ const release = (id) => releaseConfirmIntent(pendingConfirm, id);
363
+ const hostPrompt = async (id, result) => {
364
+ if (id === null)
365
+ return result;
366
+ const toolName = pendingConfirm.get(id);
367
+ if (toolName === undefined)
368
+ return result;
369
+ pendingConfirm.delete(id);
370
+ const payload = previewPayload(result);
371
+ if (!needsHostPrompt(payload))
372
+ return result;
373
+ const answer = await prompter.ask(promptFromPreview(payload, toolName));
374
+ return spliceHostPrompt(result, answer);
375
+ };
376
+ local.onmessage = (msg) => {
377
+ prompter.noteClientCapabilities(msg);
378
+ if (prompter.consumeResponse(msg))
379
+ return;
380
+ if (shadow !== undefined && isNamedToolCall(msg, [shadow.toolName])) {
381
+ void answerLocalToolCall(msg, (_name, args) => shadow.callTool(args), local, 'Shadow tool');
382
+ return;
383
+ }
384
+ if (sitesShadow !== undefined && isNamedToolCall(msg, sitesShadow.toolNames)) {
385
+ void answerLocalToolCall(msg, (name, args) => sitesShadow.callTool(name, args), local, 'Sites tool');
386
+ return;
387
+ }
388
+ if (isToolCallRequest(msg) && parksForHostPrompt(msg.params.arguments)) {
389
+ const id = requestId(msg);
390
+ if (id !== null)
391
+ rememberConfirmIntent(pendingConfirm, id, msg.params.name);
392
+ }
393
+ if (siteRouter !== undefined && isToolCallRequest(msg)) {
394
+ void routeToolCallBySite(msg, siteRouter, local, remote, pendingHealth, hostPrompt, release);
395
+ return;
396
+ }
397
+ forwardToRemote(msg, remote, local, release);
154
398
  };
155
399
  remote.onmessage = (msg) => {
156
- // Normalise the WP-only double-wrap so the client sees the same shape it
157
- // would from Joomla. Non-tools/call frames pass through by reference.
400
+ const oversize = oversizeToolsList(msg, TOOLS_LIST_WIRE_CAP_BYTES);
401
+ if (oversize !== null) {
402
+ const id = requestId(msg);
403
+ const reason = `The site's tool list is ${oversize.bytes} bytes over ${oversize.count} entries, `
404
+ + `above the ${TOOLS_LIST_WIRE_CAP_BYTES}-byte ceiling. Refusing the connection: `
405
+ + 'a partial list would silently remove tools. Check the plugin version on this site.';
406
+ console.error(`[yt-builder-proxy] ${reason}`);
407
+ if (id === null) {
408
+ void remote.close();
409
+ return;
410
+ }
411
+ void local
412
+ .send({ jsonrpc: '2.0', id, error: { code: -32603, message: reason } })
413
+ .catch((err) => {
414
+ console.error('[yt-builder-proxy] downstream send failed:', errorMessage(err));
415
+ })
416
+ .finally(() => {
417
+ void remote.close();
418
+ });
419
+ return;
420
+ }
158
421
  const normalized = normalizeProxyResponse(msg);
159
- local.send(normalized).catch((err) => {
160
- console.error('[yt-builder-proxy] downstream send failed:', errorMessage(err));
422
+ const enriched = injectShadowSurface(normalized, instructions, extraToolEntries);
423
+ const answered = applyPendingActiveSite(enriched, pendingHealth);
424
+ const deliver = (frame) => {
425
+ local.send(frame).catch((err) => {
426
+ console.error('[yt-builder-proxy] downstream send failed:', errorMessage(err));
427
+ });
428
+ };
429
+ const id = requestId(answered);
430
+ const parked = id !== null && pendingConfirm.has(id);
431
+ if (!parked) {
432
+ deliver(answered);
433
+ return;
434
+ }
435
+ const result = answered.result;
436
+ if (result === null || typeof result !== 'object' || Array.isArray(result)) {
437
+ pendingConfirm.delete(id);
438
+ deliver(answered);
439
+ return;
440
+ }
441
+ void hostPrompt(id, result).then((finished) => {
442
+ deliver({ ...answered, result: finished });
161
443
  });
162
444
  };
445
+ let abgeschaltet = false;
163
446
  local.onclose = () => {
447
+ if (abgeschaltet) {
448
+ return;
449
+ }
450
+ abgeschaltet = true;
164
451
  void remote.close();
165
452
  };
166
453
  remote.onclose = () => {
454
+ if (abgeschaltet) {
455
+ return;
456
+ }
457
+ abgeschaltet = true;
167
458
  void local.close();
168
459
  };
169
460
  local.onerror = (err) => {
@@ -172,84 +463,100 @@ export function bridgeTransports(local, remote) {
172
463
  remote.onerror = (err) => {
173
464
  console.error('[yt-builder-proxy] remote transport error:', err.message);
174
465
  };
466
+ return {
467
+ pendingHostPromptCount: () => pendingConfirm.size,
468
+ };
175
469
  }
176
- /**
177
- * Build the upstream `requestInit.headers` for proxy mode: the Bearer is
178
- * authoritative; corporate extra headers (customer gap #14) only fill gaps —
179
- * `Authorization` can NEVER be overwritten. Exported for unit tests.
180
- */
181
- export function buildProxyRequestHeaders(config) {
182
- const base = { Authorization: `Bearer ${config.token}` };
183
- return config.extraHeaders !== undefined && Object.keys(config.extraHeaders).length > 0
184
- ? mergeExtraHeaders(base, config.extraHeaders)
185
- : base;
186
- }
187
- /**
188
- * Resolve the upstream endpoint URL the proxy connects to, splicing in the U3
189
- * site-level HTTP Basic userinfo (`https://user:pass@host/…`) when configured so
190
- * the realm gets `Authorization: Basic …`. The Bearer rides the Authorization
191
- * header (see {@link buildProxyRequestHeaders}) — independent transport, never
192
- * clobbered. Returns the original URL unchanged when no site-Basic is set.
193
- * Exported for unit tests.
194
- */
195
- export function resolveProxyEndpointUrl(config) {
196
- if (config.siteBasicUserinfo === undefined || config.siteBasicUserinfo === '') {
197
- return config.endpointUrl;
198
- }
199
- return new URL(applyUserinfoToUrl(config.endpointUrl, config.siteBasicUserinfo));
200
- }
201
- /** Injection seam for tests — production builds the real SDK transports. */
470
+ export { buildProxyRequestHeaders };
202
471
  function defaultTransports(config) {
203
- const remote = new StreamableHTTPClientTransport(resolveProxyEndpointUrl(config), {
472
+ const remote = new StreamableHTTPClientTransport(config.endpointUrl, {
204
473
  requestInit: { headers: buildProxyRequestHeaders(config) },
474
+ fetch: createSessionRecoveryFetch(),
205
475
  });
206
476
  const local = new StdioServerTransport();
207
477
  return { local, remote };
208
478
  }
209
- /** Build the real transports + bridge them; resolves when EITHER side closes. */
210
479
  export async function runProxy(config, deps = {}) {
211
480
  const { local, remote } = (deps.makeTransports ?? defaultTransports)(config);
212
- // Resolve the moment EITHER transport closes — never hang if the remote
213
- // (upstream) drops first. Capture the bridge's own onclose handlers so the
214
- // cross-teardown wiring still runs.
481
+ const shadow = deps.shadow ?? (await createShadowToolBridge());
482
+ const instructions = config.instructions ?? buildInstructions();
483
+ const multiSite = deps.multiSite
484
+ ?? (config.registry !== undefined
485
+ ? await createProxyMultiSite(config.registry, {
486
+ ...(config.extraHeaders !== undefined ? { extraHeaders: config.extraHeaders } : {}),
487
+ ...(config.siteBasicHeader !== undefined ? { siteBasicHeader: config.siteBasicHeader } : {}),
488
+ })
489
+ : undefined);
215
490
  const closed = new Promise((resolve) => {
216
- bridgeTransports(local, remote);
491
+ bridgeTransports(local, remote, {
492
+ instructions,
493
+ shadow,
494
+ ...(multiSite !== undefined
495
+ ? { sitesShadow: multiSite.sitesShadow, siteRouter: multiSite.siteRouter }
496
+ : {}),
497
+ });
217
498
  const prevLocalClose = local.onclose;
218
499
  const prevRemoteClose = remote.onclose;
500
+ let zuerst = null;
219
501
  local.onclose = () => {
502
+ zuerst ??= 'local';
220
503
  prevLocalClose?.();
221
- resolve();
504
+ resolve(zuerst);
222
505
  };
223
506
  remote.onclose = () => {
507
+ zuerst ??= 'remote';
224
508
  prevRemoteClose?.();
225
- resolve();
509
+ resolve(zuerst);
226
510
  };
227
511
  });
228
- // Start LOCAL (stdio) first so the listener is installed before any client
229
- // message can race in; only then open the upstream connection.
230
512
  await local.start();
231
513
  await remote.start();
232
- await closed;
514
+ return await closed;
233
515
  }
234
- /** Returns true if proxy mode handled the run; false → caller continues with fat. */
235
- export async function maybeRunProxy(env, deps = {}) {
236
- const resolved = resolveMode(env);
237
- if (resolved.mode !== 'proxy')
238
- return false;
516
+ export async function runBridge(env, deps = {}) {
517
+ let resolved;
518
+ try {
519
+ resolved = await resolveBridgeTarget(env);
520
+ }
521
+ catch (e) {
522
+ if (!(e instanceof ConfigError || e instanceof SitesFileError)) {
523
+ throw e;
524
+ }
525
+ const configProblem = configProblemFor(e);
526
+ const kind = configProblem === null ? 'starting unconfigured' : 'no site to connect to';
527
+ process.stderr.write(`[yt-builder-mcp] ${kind} — ${errorMessage(e)}\n`);
528
+ return { ran: false, configProblem };
529
+ }
239
530
  const run = deps.runProxy ?? runProxy;
240
- // customer gap #14 attach corporate extra headers (WAF / gateway secret) to
241
- // every upstream request. parseExtraHeaders reads YTB_MCP_EXTRA_HEADERS.
531
+ const probe = deps.probeCompat ?? probeProxyCompatNotice;
242
532
  const { headers: extraHeaders } = parseExtraHeaders(env);
243
- // U3 a site-level HTTP Basic-Auth realm rides URL userinfo, not a header
244
- // (the Bearer owns Authorization). parseSiteBasicAuth reads
245
- // YTB_MCP_SITE_BASIC_AUTH; `null` when unset/malformed → no userinfo spliced.
246
- const { userinfo: siteBasicUserinfo } = parseSiteBasicAuth(env);
247
- await run({
533
+ const { header: siteBasicHeader } = parseSiteBasicAuth(env);
534
+ const closedBy = await run({
248
535
  endpointUrl: resolved.endpointUrl,
249
536
  token: resolved.token,
537
+ instructions: buildProxyInstructions(env, resolved.registry, await probe(resolved.registry, resolved.token, extraHeaders)),
538
+ registry: resolved.registry,
250
539
  ...(Object.keys(extraHeaders).length > 0 ? { extraHeaders } : {}),
251
- ...(siteBasicUserinfo !== null ? { siteBasicUserinfo } : {}),
540
+ ...(siteBasicHeader !== null ? { siteBasicHeader } : {}),
252
541
  });
253
- return true;
542
+ return { ran: true, closedBy: closedBy ?? 'local' };
543
+ }
544
+ async function probeProxyCompatNotice(registry, token, extraHeaders) {
545
+ try {
546
+ const id = registry?.defaultSiteId() ?? null;
547
+ if (registry === undefined || id === null)
548
+ return undefined;
549
+ const platform = await registry.platformFor(id);
550
+ const client = new RestClient({
551
+ platform,
552
+ bearerToken: token,
553
+ timeoutMs: PROXY_COMPAT_PROBE_TIMEOUT_MS,
554
+ ...(Object.keys(extraHeaders).length > 0 ? { extraHeaders } : {}),
555
+ });
556
+ return await probeCompatNotice(client, id);
557
+ }
558
+ catch {
559
+ return undefined;
560
+ }
254
561
  }
255
562
  //# sourceMappingURL=bridge.js.map