@wootsup/yt-builder-mcp 1.12.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (869) hide show
  1. package/README.md +139 -40
  2. package/bin/node-floor.d.ts +28 -0
  3. package/bin/node-floor.js +150 -0
  4. package/bin/yt-builder-mcp.js +51 -10
  5. package/dist/auth.d.ts +3 -121
  6. package/dist/auth.d.ts.map +1 -1
  7. package/dist/auth.js +44 -174
  8. package/dist/auth.js.map +1 -1
  9. package/dist/catalog/build-catalog.d.ts +4 -49
  10. package/dist/catalog/build-catalog.d.ts.map +1 -1
  11. package/dist/catalog/build-catalog.js +15 -126
  12. package/dist/catalog/build-catalog.js.map +1 -1
  13. package/dist/catalog/json-schema.d.ts +3 -0
  14. package/dist/catalog/json-schema.d.ts.map +1 -0
  15. package/dist/catalog/json-schema.js +68 -0
  16. package/dist/catalog/json-schema.js.map +1 -0
  17. package/dist/catalog/output-shapes.d.ts +6 -0
  18. package/dist/catalog/output-shapes.d.ts.map +1 -0
  19. package/dist/catalog/output-shapes.js +89 -0
  20. package/dist/catalog/output-shapes.js.map +1 -0
  21. package/dist/catalog/tool-catalog-markdown.d.ts +1 -37
  22. package/dist/catalog/tool-catalog-markdown.d.ts.map +1 -1
  23. package/dist/catalog/tool-catalog-markdown.js +8 -52
  24. package/dist/catalog/tool-catalog-markdown.js.map +1 -1
  25. package/dist/cli/doctor-command.d.ts +2 -7
  26. package/dist/cli/doctor-command.d.ts.map +1 -1
  27. package/dist/cli/doctor-command.js +21 -62
  28. package/dist/cli/doctor-command.js.map +1 -1
  29. package/dist/cli/invocation-decision.d.ts +4 -52
  30. package/dist/cli/invocation-decision.d.ts.map +1 -1
  31. package/dist/cli/invocation-decision.js +46 -55
  32. package/dist/cli/invocation-decision.js.map +1 -1
  33. package/dist/client.d.ts +3 -107
  34. package/dist/client.d.ts.map +1 -1
  35. package/dist/client.js +34 -115
  36. package/dist/client.js.map +1 -1
  37. package/dist/clients/claude-code.d.ts +0 -15
  38. package/dist/clients/claude-code.d.ts.map +1 -1
  39. package/dist/clients/claude-code.js +1 -23
  40. package/dist/clients/claude-code.js.map +1 -1
  41. package/dist/clients/claude-desktop.d.ts +0 -16
  42. package/dist/clients/claude-desktop.d.ts.map +1 -1
  43. package/dist/clients/claude-desktop.js +1 -19
  44. package/dist/clients/claude-desktop.js.map +1 -1
  45. package/dist/clients/cline.d.ts +0 -23
  46. package/dist/clients/cline.d.ts.map +1 -1
  47. package/dist/clients/cline.js +1 -34
  48. package/dist/clients/cline.js.map +1 -1
  49. package/dist/clients/codex-cli.d.ts +0 -39
  50. package/dist/clients/codex-cli.d.ts.map +1 -1
  51. package/dist/clients/codex-cli.js +12 -147
  52. package/dist/clients/codex-cli.js.map +1 -1
  53. package/dist/clients/config-file.d.ts +15 -0
  54. package/dist/clients/config-file.d.ts.map +1 -0
  55. package/dist/clients/config-file.js +86 -0
  56. package/dist/clients/config-file.js.map +1 -0
  57. package/dist/clients/continue.d.ts +0 -10
  58. package/dist/clients/continue.d.ts.map +1 -1
  59. package/dist/clients/continue.js +3 -30
  60. package/dist/clients/continue.js.map +1 -1
  61. package/dist/clients/cursor.d.ts +0 -9
  62. package/dist/clients/cursor.d.ts.map +1 -1
  63. package/dist/clients/cursor.js +1 -12
  64. package/dist/clients/cursor.js.map +1 -1
  65. package/dist/clients/gemini-cli.d.ts +0 -15
  66. package/dist/clients/gemini-cli.d.ts.map +1 -1
  67. package/dist/clients/gemini-cli.js +1 -18
  68. package/dist/clients/gemini-cli.js.map +1 -1
  69. package/dist/clients/home.d.ts +0 -12
  70. package/dist/clients/home.d.ts.map +1 -1
  71. package/dist/clients/home.js +0 -12
  72. package/dist/clients/home.js.map +1 -1
  73. package/dist/clients/index.d.ts +2 -153
  74. package/dist/clients/index.d.ts.map +1 -1
  75. package/dist/clients/index.js +3 -153
  76. package/dist/clients/index.js.map +1 -1
  77. package/dist/clients/roo-code.d.ts +0 -20
  78. package/dist/clients/roo-code.d.ts.map +1 -1
  79. package/dist/clients/roo-code.js +1 -23
  80. package/dist/clients/roo-code.js.map +1 -1
  81. package/dist/clients/zed.d.ts +0 -9
  82. package/dist/clients/zed.d.ts.map +1 -1
  83. package/dist/clients/zed.js +1 -19
  84. package/dist/clients/zed.js.map +1 -1
  85. package/dist/compat-floor.d.ts +35 -0
  86. package/dist/compat-floor.d.ts.map +1 -0
  87. package/dist/compat-floor.js +84 -0
  88. package/dist/compat-floor.js.map +1 -0
  89. package/dist/compat-probe.d.ts +6 -0
  90. package/dist/compat-probe.d.ts.map +1 -0
  91. package/dist/compat-probe.js +20 -0
  92. package/dist/compat-probe.js.map +1 -0
  93. package/dist/diagnostics/ca-reexec.d.ts +0 -30
  94. package/dist/diagnostics/ca-reexec.d.ts.map +1 -1
  95. package/dist/diagnostics/ca-reexec.js +0 -62
  96. package/dist/diagnostics/ca-reexec.js.map +1 -1
  97. package/dist/diagnostics/ca-trust.d.ts +0 -22
  98. package/dist/diagnostics/ca-trust.d.ts.map +1 -1
  99. package/dist/diagnostics/ca-trust.js +3 -42
  100. package/dist/diagnostics/ca-trust.js.map +1 -1
  101. package/dist/diagnostics/diagnose-network-error.d.ts +1 -38
  102. package/dist/diagnostics/diagnose-network-error.d.ts.map +1 -1
  103. package/dist/diagnostics/diagnose-network-error.js +27 -38
  104. package/dist/diagnostics/diagnose-network-error.js.map +1 -1
  105. package/dist/diagnostics/doctor.d.ts +1 -85
  106. package/dist/diagnostics/doctor.d.ts.map +1 -1
  107. package/dist/diagnostics/doctor.js +7 -92
  108. package/dist/diagnostics/doctor.js.map +1 -1
  109. package/dist/diagnostics/startup-self-probe.d.ts +3 -25
  110. package/dist/diagnostics/startup-self-probe.d.ts.map +1 -1
  111. package/dist/diagnostics/startup-self-probe.js +11 -48
  112. package/dist/diagnostics/startup-self-probe.js.map +1 -1
  113. package/dist/errors/hints.d.ts +0 -44
  114. package/dist/errors/hints.d.ts.map +1 -1
  115. package/dist/errors/hints.js +1 -33
  116. package/dist/errors/hints.js.map +1 -1
  117. package/dist/errors/mask.d.ts +0 -31
  118. package/dist/errors/mask.d.ts.map +1 -1
  119. package/dist/errors/mask.js +0 -32
  120. package/dist/errors/mask.js.map +1 -1
  121. package/dist/errors/redact-credentials.d.ts +2 -0
  122. package/dist/errors/redact-credentials.d.ts.map +1 -0
  123. package/dist/errors/redact-credentials.js +13 -0
  124. package/dist/errors/redact-credentials.js.map +1 -0
  125. package/dist/errors/sanitize.d.ts +0 -29
  126. package/dist/errors/sanitize.d.ts.map +1 -1
  127. package/dist/errors/sanitize.js +0 -40
  128. package/dist/errors/sanitize.js.map +1 -1
  129. package/dist/errors.d.ts +6 -17
  130. package/dist/errors.d.ts.map +1 -1
  131. package/dist/errors.js +16 -21
  132. package/dist/errors.js.map +1 -1
  133. package/dist/gateway/advanced-read-tool.d.ts +0 -32
  134. package/dist/gateway/advanced-read-tool.d.ts.map +1 -1
  135. package/dist/gateway/advanced-read-tool.js +43 -111
  136. package/dist/gateway/advanced-read-tool.js.map +1 -1
  137. package/dist/gateway/advanced-tool/discovery.d.ts +1 -12
  138. package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -1
  139. package/dist/gateway/advanced-tool/discovery.js +15 -24
  140. package/dist/gateway/advanced-tool/discovery.js.map +1 -1
  141. package/dist/gateway/advanced-tool/domains.d.ts +7 -66
  142. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
  143. package/dist/gateway/advanced-tool/domains.js +36 -80
  144. package/dist/gateway/advanced-tool/domains.js.map +1 -1
  145. package/dist/gateway/advanced-tool/execute.d.ts +0 -25
  146. package/dist/gateway/advanced-tool/execute.d.ts.map +1 -1
  147. package/dist/gateway/advanced-tool/execute.js +13 -49
  148. package/dist/gateway/advanced-tool/execute.js.map +1 -1
  149. package/dist/gateway/advanced-tool/index.d.ts +1 -32
  150. package/dist/gateway/advanced-tool/index.d.ts.map +1 -1
  151. package/dist/gateway/advanced-tool/index.js +1 -35
  152. package/dist/gateway/advanced-tool/index.js.map +1 -1
  153. package/dist/gateway/advanced-tool/register.d.ts +0 -14
  154. package/dist/gateway/advanced-tool/register.d.ts.map +1 -1
  155. package/dist/gateway/advanced-tool/register.js +22 -58
  156. package/dist/gateway/advanced-tool/register.js.map +1 -1
  157. package/dist/gateway/advanced-tool.d.ts +0 -11
  158. package/dist/gateway/advanced-tool.d.ts.map +1 -1
  159. package/dist/gateway/advanced-tool.js +0 -11
  160. package/dist/gateway/advanced-tool.js.map +1 -1
  161. package/dist/gateway/capturing-server.d.ts +3 -88
  162. package/dist/gateway/capturing-server.d.ts.map +1 -1
  163. package/dist/gateway/capturing-server.js +0 -77
  164. package/dist/gateway/capturing-server.js.map +1 -1
  165. package/dist/gateway/essentials.d.ts +1 -63
  166. package/dist/gateway/essentials.d.ts.map +1 -1
  167. package/dist/gateway/essentials.js +9 -178
  168. package/dist/gateway/essentials.js.map +1 -1
  169. package/dist/gateway/test-support.d.ts +0 -28
  170. package/dist/gateway/test-support.d.ts.map +1 -1
  171. package/dist/gateway/test-support.js +0 -29
  172. package/dist/gateway/test-support.js.map +1 -1
  173. package/dist/health-response.d.ts +2 -0
  174. package/dist/health-response.d.ts.map +1 -0
  175. package/dist/health-response.js +7 -0
  176. package/dist/health-response.js.map +1 -0
  177. package/dist/icon-data.js +0 -3
  178. package/dist/icon-data.js.map +1 -1
  179. package/dist/index.d.ts +7 -23
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.js +46 -130
  182. package/dist/index.js.map +1 -1
  183. package/dist/install-skill.d.ts +0 -44
  184. package/dist/install-skill.d.ts.map +1 -1
  185. package/dist/install-skill.js +8 -48
  186. package/dist/install-skill.js.map +1 -1
  187. package/dist/net/extra-headers.d.ts +0 -58
  188. package/dist/net/extra-headers.d.ts.map +1 -1
  189. package/dist/net/extra-headers.js +0 -67
  190. package/dist/net/extra-headers.js.map +1 -1
  191. package/dist/net/internal-host.d.ts +0 -31
  192. package/dist/net/internal-host.d.ts.map +1 -1
  193. package/dist/net/internal-host.js +7 -65
  194. package/dist/net/internal-host.js.map +1 -1
  195. package/dist/net/proxy-dispatcher.d.ts +0 -37
  196. package/dist/net/proxy-dispatcher.d.ts.map +1 -1
  197. package/dist/net/proxy-dispatcher.js +0 -40
  198. package/dist/net/proxy-dispatcher.js.map +1 -1
  199. package/dist/net/public-fetch.d.ts +53 -0
  200. package/dist/net/public-fetch.d.ts.map +1 -0
  201. package/dist/net/public-fetch.js +143 -0
  202. package/dist/net/public-fetch.js.map +1 -0
  203. package/dist/net/public-page-report.d.ts +26 -0
  204. package/dist/net/public-page-report.d.ts.map +1 -0
  205. package/dist/net/public-page-report.js +145 -0
  206. package/dist/net/public-page-report.js.map +1 -0
  207. package/dist/net/redirect-safe-fetch.d.ts +14 -0
  208. package/dist/net/redirect-safe-fetch.d.ts.map +1 -0
  209. package/dist/net/redirect-safe-fetch.js +61 -0
  210. package/dist/net/redirect-safe-fetch.js.map +1 -0
  211. package/dist/net/session-recovery-fetch.d.ts +7 -0
  212. package/dist/net/session-recovery-fetch.d.ts.map +1 -0
  213. package/dist/net/session-recovery-fetch.js +139 -0
  214. package/dist/net/session-recovery-fetch.js.map +1 -0
  215. package/dist/net/site-basic-auth.d.ts +1 -59
  216. package/dist/net/site-basic-auth.d.ts.map +1 -1
  217. package/dist/net/site-basic-auth.js +5 -94
  218. package/dist/net/site-basic-auth.js.map +1 -1
  219. package/dist/package-version.d.ts +2 -0
  220. package/dist/package-version.d.ts.map +1 -0
  221. package/dist/package-version.js +15 -0
  222. package/dist/package-version.js.map +1 -0
  223. package/dist/platform/detect.d.ts +0 -54
  224. package/dist/platform/detect.d.ts.map +1 -1
  225. package/dist/platform/detect.js +0 -53
  226. package/dist/platform/detect.js.map +1 -1
  227. package/dist/platform/index.d.ts +0 -100
  228. package/dist/platform/index.d.ts.map +1 -1
  229. package/dist/platform/index.js +0 -106
  230. package/dist/platform/index.js.map +1 -1
  231. package/dist/platform/joomla.d.ts +0 -35
  232. package/dist/platform/joomla.d.ts.map +1 -1
  233. package/dist/platform/joomla.js +0 -35
  234. package/dist/platform/joomla.js.map +1 -1
  235. package/dist/product-name.d.ts +2 -0
  236. package/dist/product-name.d.ts.map +1 -0
  237. package/dist/product-name.js +2 -0
  238. package/dist/product-name.js.map +1 -0
  239. package/dist/proxy/bridge.d.ts +36 -76
  240. package/dist/proxy/bridge.d.ts.map +1 -1
  241. package/dist/proxy/bridge.js +443 -136
  242. package/dist/proxy/bridge.js.map +1 -1
  243. package/dist/proxy/confirm-elicitation.d.ts +22 -0
  244. package/dist/proxy/confirm-elicitation.d.ts.map +1 -0
  245. package/dist/proxy/confirm-elicitation.js +170 -0
  246. package/dist/proxy/confirm-elicitation.js.map +1 -0
  247. package/dist/proxy/confirm-question-contract.d.ts +6 -0
  248. package/dist/proxy/confirm-question-contract.d.ts.map +1 -0
  249. package/dist/proxy/confirm-question-contract.js +9 -0
  250. package/dist/proxy/confirm-question-contract.js.map +1 -0
  251. package/dist/proxy/confirm-question.d.ts +2 -0
  252. package/dist/proxy/confirm-question.d.ts.map +1 -0
  253. package/dist/proxy/confirm-question.js +125 -0
  254. package/dist/proxy/confirm-question.js.map +1 -0
  255. package/dist/proxy/instructions.d.ts +4 -0
  256. package/dist/proxy/instructions.d.ts.map +1 -0
  257. package/dist/proxy/instructions.js +12 -0
  258. package/dist/proxy/instructions.js.map +1 -0
  259. package/dist/proxy/mode.d.ts +14 -9
  260. package/dist/proxy/mode.d.ts.map +1 -1
  261. package/dist/proxy/mode.js +58 -34
  262. package/dist/proxy/mode.js.map +1 -1
  263. package/dist/proxy/multi-site.d.ts +42 -0
  264. package/dist/proxy/multi-site.d.ts.map +1 -0
  265. package/dist/proxy/multi-site.js +134 -0
  266. package/dist/proxy/multi-site.js.map +1 -0
  267. package/dist/proxy/request-headers.d.ts +9 -0
  268. package/dist/proxy/request-headers.d.ts.map +1 -0
  269. package/dist/proxy/request-headers.js +17 -0
  270. package/dist/proxy/request-headers.js.map +1 -0
  271. package/dist/proxy/shadow-tools.d.ts +9 -0
  272. package/dist/proxy/shadow-tools.d.ts.map +1 -0
  273. package/dist/proxy/shadow-tools.js +42 -0
  274. package/dist/proxy/shadow-tools.js.map +1 -0
  275. package/dist/proxy/tools-list-cap.d.ts +7 -0
  276. package/dist/proxy/tools-list-cap.d.ts.map +1 -0
  277. package/dist/proxy/tools-list-cap.js +14 -0
  278. package/dist/proxy/tools-list-cap.js.map +1 -0
  279. package/dist/proxy/transport-uncertainty.d.ts +2 -0
  280. package/dist/proxy/transport-uncertainty.d.ts.map +1 -0
  281. package/dist/proxy/transport-uncertainty.js +8 -0
  282. package/dist/proxy/transport-uncertainty.js.map +1 -0
  283. package/dist/proxy/upstream-error.d.ts +7 -0
  284. package/dist/proxy/upstream-error.d.ts.map +1 -0
  285. package/dist/proxy/upstream-error.js +35 -0
  286. package/dist/proxy/upstream-error.js.map +1 -0
  287. package/dist/proxy/wire-dialect.d.ts +5 -0
  288. package/dist/proxy/wire-dialect.d.ts.map +1 -0
  289. package/dist/proxy/wire-dialect.js +33 -0
  290. package/dist/proxy/wire-dialect.js.map +1 -0
  291. package/dist/server.d.ts +14 -82
  292. package/dist/server.d.ts.map +1 -1
  293. package/dist/server.js +109 -204
  294. package/dist/server.js.map +1 -1
  295. package/dist/setup/banner-color.d.ts +13 -0
  296. package/dist/setup/banner-color.d.ts.map +1 -0
  297. package/dist/setup/banner-color.js +93 -0
  298. package/dist/setup/banner-color.js.map +1 -0
  299. package/dist/setup/banner.d.ts +22 -0
  300. package/dist/setup/banner.d.ts.map +1 -0
  301. package/dist/setup/banner.js +120 -0
  302. package/dist/setup/banner.js.map +1 -0
  303. package/dist/setup/ca-recovery.d.ts +20 -0
  304. package/dist/setup/ca-recovery.d.ts.map +1 -0
  305. package/dist/setup/ca-recovery.js +92 -0
  306. package/dist/setup/ca-recovery.js.map +1 -0
  307. package/dist/setup/closing.d.ts +15 -0
  308. package/dist/setup/closing.d.ts.map +1 -0
  309. package/dist/setup/closing.js +43 -0
  310. package/dist/setup/closing.js.map +1 -0
  311. package/dist/setup/corporate-ca.d.ts +16 -0
  312. package/dist/setup/corporate-ca.d.ts.map +1 -0
  313. package/dist/setup/corporate-ca.js +32 -0
  314. package/dist/setup/corporate-ca.js.map +1 -0
  315. package/dist/setup/host-platform.d.ts +8 -0
  316. package/dist/setup/host-platform.d.ts.map +1 -0
  317. package/dist/setup/host-platform.js +21 -0
  318. package/dist/setup/host-platform.js.map +1 -0
  319. package/dist/setup/install-configs.d.ts +18 -0
  320. package/dist/setup/install-configs.d.ts.map +1 -0
  321. package/dist/setup/install-configs.js +95 -0
  322. package/dist/setup/install-configs.js.map +1 -0
  323. package/dist/setup/multi-site-loop.d.ts +14 -0
  324. package/dist/setup/multi-site-loop.d.ts.map +1 -0
  325. package/dist/setup/multi-site-loop.js +20 -0
  326. package/dist/setup/multi-site-loop.js.map +1 -0
  327. package/dist/setup/phases.d.ts +18 -0
  328. package/dist/setup/phases.d.ts.map +1 -0
  329. package/dist/setup/phases.js +55 -0
  330. package/dist/setup/phases.js.map +1 -0
  331. package/dist/setup/registry-remedy.d.ts +12 -0
  332. package/dist/setup/registry-remedy.d.ts.map +1 -0
  333. package/dist/setup/registry-remedy.js +37 -0
  334. package/dist/setup/registry-remedy.js.map +1 -0
  335. package/dist/setup/resume.d.ts +28 -0
  336. package/dist/setup/resume.d.ts.map +1 -0
  337. package/dist/setup/resume.js +99 -0
  338. package/dist/setup/resume.js.map +1 -0
  339. package/dist/setup-ca-env.d.ts +0 -30
  340. package/dist/setup-ca-env.d.ts.map +1 -1
  341. package/dist/setup-ca-env.js +0 -28
  342. package/dist/setup-ca-env.js.map +1 -1
  343. package/dist/setup-ca-reprobe.d.ts +0 -25
  344. package/dist/setup-ca-reprobe.d.ts.map +1 -1
  345. package/dist/setup-ca-reprobe.js +0 -34
  346. package/dist/setup-ca-reprobe.js.map +1 -1
  347. package/dist/setup-cli-confirm.d.ts +0 -34
  348. package/dist/setup-cli-confirm.d.ts.map +1 -1
  349. package/dist/setup-cli-confirm.js +0 -36
  350. package/dist/setup-cli-confirm.js.map +1 -1
  351. package/dist/setup-cli.d.ts +6 -167
  352. package/dist/setup-cli.d.ts.map +1 -1
  353. package/dist/setup-cli.js +165 -177
  354. package/dist/setup-cli.js.map +1 -1
  355. package/dist/setup-npx-spec.d.ts +0 -36
  356. package/dist/setup-npx-spec.d.ts.map +1 -1
  357. package/dist/setup-npx-spec.js +0 -38
  358. package/dist/setup-npx-spec.js.map +1 -1
  359. package/dist/setup-prompts.d.ts +5 -70
  360. package/dist/setup-prompts.d.ts.map +1 -1
  361. package/dist/setup-prompts.js +67 -107
  362. package/dist/setup-prompts.js.map +1 -1
  363. package/dist/setup-token.d.ts +0 -34
  364. package/dist/setup-token.d.ts.map +1 -1
  365. package/dist/setup-token.js +0 -40
  366. package/dist/setup-token.js.map +1 -1
  367. package/dist/setup-wizard-defaults.d.ts +2 -37
  368. package/dist/setup-wizard-defaults.d.ts.map +1 -1
  369. package/dist/setup-wizard-defaults.js +28 -93
  370. package/dist/setup-wizard-defaults.js.map +1 -1
  371. package/dist/setup-wizard-handshake.d.ts +1 -19
  372. package/dist/setup-wizard-handshake.d.ts.map +1 -1
  373. package/dist/setup-wizard-handshake.js +8 -45
  374. package/dist/setup-wizard-handshake.js.map +1 -1
  375. package/dist/setup-wizard-types.d.ts +18 -217
  376. package/dist/setup-wizard-types.d.ts.map +1 -1
  377. package/dist/setup-wizard-types.js +0 -9
  378. package/dist/setup-wizard-types.js.map +1 -1
  379. package/dist/setup-wizard-write-types.d.ts +19 -0
  380. package/dist/setup-wizard-write-types.d.ts.map +1 -0
  381. package/dist/setup-wizard-write-types.js +2 -0
  382. package/dist/setup-wizard-write-types.js.map +1 -0
  383. package/dist/setup-wizard.d.ts +0 -28
  384. package/dist/setup-wizard.d.ts.map +1 -1
  385. package/dist/setup-wizard.js +167 -412
  386. package/dist/setup-wizard.js.map +1 -1
  387. package/dist/setup.d.ts +0 -15
  388. package/dist/setup.d.ts.map +1 -1
  389. package/dist/setup.js +0 -15
  390. package/dist/setup.js.map +1 -1
  391. package/dist/sites/bootstrap.d.ts +0 -38
  392. package/dist/sites/bootstrap.d.ts.map +1 -1
  393. package/dist/sites/bootstrap.js +0 -44
  394. package/dist/sites/bootstrap.js.map +1 -1
  395. package/dist/sites/cli/add-site.d.ts +0 -76
  396. package/dist/sites/cli/add-site.d.ts.map +1 -1
  397. package/dist/sites/cli/add-site.js +0 -71
  398. package/dist/sites/cli/add-site.js.map +1 -1
  399. package/dist/sites/cli/list-sites.d.ts +0 -31
  400. package/dist/sites/cli/list-sites.d.ts.map +1 -1
  401. package/dist/sites/cli/list-sites.js +0 -45
  402. package/dist/sites/cli/list-sites.js.map +1 -1
  403. package/dist/sites/cli/remove-site.d.ts +0 -37
  404. package/dist/sites/cli/remove-site.d.ts.map +1 -1
  405. package/dist/sites/cli/remove-site.js +0 -37
  406. package/dist/sites/cli/remove-site.js.map +1 -1
  407. package/dist/sites/cli/set-default.d.ts +0 -25
  408. package/dist/sites/cli/set-default.d.ts.map +1 -1
  409. package/dist/sites/cli/set-default.js +0 -22
  410. package/dist/sites/cli/set-default.js.map +1 -1
  411. package/dist/sites/cli/test-site.d.ts +0 -44
  412. package/dist/sites/cli/test-site.d.ts.map +1 -1
  413. package/dist/sites/cli/test-site.js +0 -39
  414. package/dist/sites/cli/test-site.js.map +1 -1
  415. package/dist/sites/client-pool.d.ts +11 -164
  416. package/dist/sites/client-pool.d.ts.map +1 -1
  417. package/dist/sites/client-pool.js +73 -194
  418. package/dist/sites/client-pool.js.map +1 -1
  419. package/dist/sites/config-problem.d.ts +2 -0
  420. package/dist/sites/config-problem.d.ts.map +1 -0
  421. package/dist/sites/config-problem.js +13 -0
  422. package/dist/sites/config-problem.js.map +1 -0
  423. package/dist/sites/env-bridge.d.ts +0 -69
  424. package/dist/sites/env-bridge.d.ts.map +1 -1
  425. package/dist/sites/env-bridge.js +2 -71
  426. package/dist/sites/env-bridge.js.map +1 -1
  427. package/dist/sites/op-inject.d.ts +23 -0
  428. package/dist/sites/op-inject.d.ts.map +1 -0
  429. package/dist/sites/op-inject.js +131 -0
  430. package/dist/sites/op-inject.js.map +1 -0
  431. package/dist/sites/paths.d.ts +0 -19
  432. package/dist/sites/paths.d.ts.map +1 -1
  433. package/dist/sites/paths.js +0 -19
  434. package/dist/sites/paths.js.map +1 -1
  435. package/dist/sites/probe.d.ts +1 -47
  436. package/dist/sites/probe.d.ts.map +1 -1
  437. package/dist/sites/probe.js +4 -46
  438. package/dist/sites/probe.js.map +1 -1
  439. package/dist/sites/registry.d.ts +4 -135
  440. package/dist/sites/registry.d.ts.map +1 -1
  441. package/dist/sites/registry.js +4 -98
  442. package/dist/sites/registry.js.map +1 -1
  443. package/dist/sites/schema.d.ts +3 -51
  444. package/dist/sites/schema.d.ts.map +1 -1
  445. package/dist/sites/schema.js +6 -52
  446. package/dist/sites/schema.js.map +1 -1
  447. package/dist/sites/secret-resolver.d.ts +6 -76
  448. package/dist/sites/secret-resolver.d.ts.map +1 -1
  449. package/dist/sites/secret-resolver.js +39 -104
  450. package/dist/sites/secret-resolver.js.map +1 -1
  451. package/dist/sites/store.d.ts +12 -69
  452. package/dist/sites/store.d.ts.map +1 -1
  453. package/dist/sites/store.js +37 -86
  454. package/dist/sites/store.js.map +1 -1
  455. package/dist/sites/substituted-registry.d.ts +11 -0
  456. package/dist/sites/substituted-registry.d.ts.map +1 -0
  457. package/dist/sites/substituted-registry.js +13 -0
  458. package/dist/sites/substituted-registry.js.map +1 -0
  459. package/dist/sites/tools/fetch-public-url.d.ts +4 -0
  460. package/dist/sites/tools/fetch-public-url.d.ts.map +1 -0
  461. package/dist/sites/tools/fetch-public-url.js +231 -0
  462. package/dist/sites/tools/fetch-public-url.js.map +1 -0
  463. package/dist/sites/tools/index.d.ts +2 -26
  464. package/dist/sites/tools/index.d.ts.map +1 -1
  465. package/dist/sites/tools/index.js +5 -28
  466. package/dist/sites/tools/index.js.map +1 -1
  467. package/dist/sites/tools/sites-list.d.ts +3 -47
  468. package/dist/sites/tools/sites-list.d.ts.map +1 -1
  469. package/dist/sites/tools/sites-list.js +65 -79
  470. package/dist/sites/tools/sites-list.js.map +1 -1
  471. package/dist/sites/tools/sites-overview.d.ts +4 -0
  472. package/dist/sites/tools/sites-overview.d.ts.map +1 -0
  473. package/dist/sites/tools/sites-overview.js +209 -0
  474. package/dist/sites/tools/sites-overview.js.map +1 -0
  475. package/dist/sites/tools/sites-test.d.ts +2 -45
  476. package/dist/sites/tools/sites-test.d.ts.map +1 -1
  477. package/dist/sites/tools/sites-test.js +2 -56
  478. package/dist/sites/tools/sites-test.js.map +1 -1
  479. package/dist/sites/tools/use-site.d.ts +2 -45
  480. package/dist/sites/tools/use-site.d.ts.map +1 -1
  481. package/dist/sites/tools/use-site.js +31 -79
  482. package/dist/sites/tools/use-site.js.map +1 -1
  483. package/dist/sites/unknown-name-result.d.ts +10 -0
  484. package/dist/sites/unknown-name-result.d.ts.map +1 -0
  485. package/dist/sites/unknown-name-result.js +13 -0
  486. package/dist/sites/unknown-name-result.js.map +1 -0
  487. package/dist/skill-instructions.d.ts +7 -0
  488. package/dist/skill-instructions.d.ts.map +1 -0
  489. package/dist/skill-instructions.js +85 -0
  490. package/dist/skill-instructions.js.map +1 -0
  491. package/dist/skill-loader.d.ts +1 -103
  492. package/dist/skill-loader.d.ts.map +1 -1
  493. package/dist/skill-loader.js +6 -143
  494. package/dist/skill-loader.js.map +1 -1
  495. package/dist/skill-manifest.d.ts +0 -20
  496. package/dist/skill-manifest.d.ts.map +1 -1
  497. package/dist/skill-manifest.js +1 -21
  498. package/dist/skill-manifest.js.map +1 -1
  499. package/dist/skill-topics.d.ts +19 -0
  500. package/dist/skill-topics.d.ts.map +1 -0
  501. package/dist/skill-topics.js +181 -0
  502. package/dist/skill-topics.js.map +1 -0
  503. package/dist/tools/active-site.d.ts +16 -0
  504. package/dist/tools/active-site.d.ts.map +1 -0
  505. package/dist/tools/active-site.js +55 -0
  506. package/dist/tools/active-site.js.map +1 -0
  507. package/dist/tools/bind-guidance.d.ts +2 -72
  508. package/dist/tools/bind-guidance.d.ts.map +1 -1
  509. package/dist/tools/bind-guidance.js +2 -72
  510. package/dist/tools/bind-guidance.js.map +1 -1
  511. package/dist/tools/budgeted-table.d.ts +14 -19
  512. package/dist/tools/budgeted-table.d.ts.map +1 -1
  513. package/dist/tools/budgeted-table.js +171 -105
  514. package/dist/tools/budgeted-table.js.map +1 -1
  515. package/dist/tools/elements/bind-output-schema.d.ts +69 -0
  516. package/dist/tools/elements/bind-output-schema.d.ts.map +1 -0
  517. package/dist/tools/elements/bind-output-schema.js +64 -0
  518. package/dist/tools/elements/bind-output-schema.js.map +1 -0
  519. package/dist/tools/elements/builders.d.ts +1 -22
  520. package/dist/tools/elements/builders.d.ts.map +1 -1
  521. package/dist/tools/elements/builders.js +147 -133
  522. package/dist/tools/elements/builders.js.map +1 -1
  523. package/dist/tools/elements/index.d.ts +0 -26
  524. package/dist/tools/elements/index.d.ts.map +1 -1
  525. package/dist/tools/elements/index.js +0 -25
  526. package/dist/tools/elements/index.js.map +1 -1
  527. package/dist/tools/elements/read-output-schemas.d.ts +121 -0
  528. package/dist/tools/elements/read-output-schemas.d.ts.map +1 -0
  529. package/dist/tools/elements/read-output-schemas.js +225 -0
  530. package/dist/tools/elements/read-output-schemas.js.map +1 -0
  531. package/dist/tools/elements/write-output-schemas.d.ts +185 -0
  532. package/dist/tools/elements/write-output-schemas.d.ts.map +1 -0
  533. package/dist/tools/elements/write-output-schemas.js +98 -0
  534. package/dist/tools/elements/write-output-schemas.js.map +1 -0
  535. package/dist/tools/elements.d.ts +0 -11
  536. package/dist/tools/elements.d.ts.map +1 -1
  537. package/dist/tools/elements.js +0 -11
  538. package/dist/tools/elements.js.map +1 -1
  539. package/dist/tools/format/health-format.d.ts +26 -43
  540. package/dist/tools/format/health-format.d.ts.map +1 -1
  541. package/dist/tools/format/health-format.js +32 -63
  542. package/dist/tools/format/health-format.js.map +1 -1
  543. package/dist/tools/format/inspection-format.d.ts +2 -54
  544. package/dist/tools/format/inspection-format.d.ts.map +1 -1
  545. package/dist/tools/format/inspection-format.js +33 -119
  546. package/dist/tools/format/inspection-format.js.map +1 -1
  547. package/dist/tools/format/pages-format.d.ts +32 -69
  548. package/dist/tools/format/pages-format.d.ts.map +1 -1
  549. package/dist/tools/format/pages-format.js +114 -139
  550. package/dist/tools/format/pages-format.js.map +1 -1
  551. package/dist/tools/format/sources-format.d.ts +5 -39
  552. package/dist/tools/format/sources-format.d.ts.map +1 -1
  553. package/dist/tools/format/sources-format.js +57 -87
  554. package/dist/tools/format/sources-format.js.map +1 -1
  555. package/dist/tools/health-output-schemas.d.ts +84 -0
  556. package/dist/tools/health-output-schemas.d.ts.map +1 -0
  557. package/dist/tools/health-output-schemas.js +132 -0
  558. package/dist/tools/health-output-schemas.js.map +1 -0
  559. package/dist/tools/health.d.ts +2 -20
  560. package/dist/tools/health.d.ts.map +1 -1
  561. package/dist/tools/health.js +47 -233
  562. package/dist/tools/health.js.map +1 -1
  563. package/dist/tools/index.d.ts +1 -26
  564. package/dist/tools/index.d.ts.map +1 -1
  565. package/dist/tools/index.js +12 -39
  566. package/dist/tools/index.js.map +1 -1
  567. package/dist/tools/inspection.d.ts +4 -34
  568. package/dist/tools/inspection.d.ts.map +1 -1
  569. package/dist/tools/inspection.js +164 -536
  570. package/dist/tools/inspection.js.map +1 -1
  571. package/dist/tools/library.d.ts +115 -127
  572. package/dist/tools/library.d.ts.map +1 -1
  573. package/dist/tools/library.js +707 -455
  574. package/dist/tools/library.js.map +1 -1
  575. package/dist/tools/local-content/builders.d.ts +1 -17
  576. package/dist/tools/local-content/builders.d.ts.map +1 -1
  577. package/dist/tools/local-content/builders.js +103 -46
  578. package/dist/tools/local-content/builders.js.map +1 -1
  579. package/dist/tools/local-content/index.d.ts +0 -15
  580. package/dist/tools/local-content/index.d.ts.map +1 -1
  581. package/dist/tools/local-content/index.js +0 -14
  582. package/dist/tools/local-content/index.js.map +1 -1
  583. package/dist/tools/local-content/schemas.d.ts +31 -47
  584. package/dist/tools/local-content/schemas.d.ts.map +1 -1
  585. package/dist/tools/local-content/schemas.js +33 -62
  586. package/dist/tools/local-content/schemas.js.map +1 -1
  587. package/dist/tools/modules/builders.d.ts +4 -0
  588. package/dist/tools/modules/builders.d.ts.map +1 -0
  589. package/dist/tools/modules/builders.js +58 -0
  590. package/dist/tools/modules/builders.js.map +1 -0
  591. package/dist/tools/modules/index.d.ts +2 -0
  592. package/dist/tools/modules/index.d.ts.map +1 -0
  593. package/dist/tools/modules/index.js +2 -0
  594. package/dist/tools/modules/index.js.map +1 -0
  595. package/dist/tools/modules/module-id-schema.d.ts +4 -0
  596. package/dist/tools/modules/module-id-schema.d.ts.map +1 -0
  597. package/dist/tools/modules/module-id-schema.js +14 -0
  598. package/dist/tools/modules/module-id-schema.js.map +1 -0
  599. package/dist/tools/modules/module-type-fields.d.ts +10 -0
  600. package/dist/tools/modules/module-type-fields.d.ts.map +1 -0
  601. package/dist/tools/modules/module-type-fields.js +34 -0
  602. package/dist/tools/modules/module-type-fields.js.map +1 -0
  603. package/dist/tools/modules/modules-create.d.ts +59 -0
  604. package/dist/tools/modules/modules-create.d.ts.map +1 -0
  605. package/dist/tools/modules/modules-create.js +154 -0
  606. package/dist/tools/modules/modules-create.js.map +1 -0
  607. package/dist/tools/modules/modules-delete.d.ts +51 -0
  608. package/dist/tools/modules/modules-delete.d.ts.map +1 -0
  609. package/dist/tools/modules/modules-delete.js +180 -0
  610. package/dist/tools/modules/modules-delete.js.map +1 -0
  611. package/dist/tools/modules/modules-update.d.ts +43 -0
  612. package/dist/tools/modules/modules-update.d.ts.map +1 -0
  613. package/dist/tools/modules/modules-update.js +177 -0
  614. package/dist/tools/modules/modules-update.js.map +1 -0
  615. package/dist/tools/modules/placement-hints.d.ts +5 -0
  616. package/dist/tools/modules/placement-hints.d.ts.map +1 -0
  617. package/dist/tools/modules/placement-hints.js +90 -0
  618. package/dist/tools/modules/placement-hints.js.map +1 -0
  619. package/dist/tools/modules/placement-ways.d.ts +13 -0
  620. package/dist/tools/modules/placement-ways.d.ts.map +1 -0
  621. package/dist/tools/modules/placement-ways.js +61 -0
  622. package/dist/tools/modules/placement-ways.js.map +1 -0
  623. package/dist/tools/multi-items/builders.d.ts +1 -21
  624. package/dist/tools/multi-items/builders.d.ts.map +1 -1
  625. package/dist/tools/multi-items/builders.js +22 -65
  626. package/dist/tools/multi-items/builders.js.map +1 -1
  627. package/dist/tools/multi-items/index.d.ts +0 -15
  628. package/dist/tools/multi-items/index.d.ts.map +1 -1
  629. package/dist/tools/multi-items/index.js +0 -15
  630. package/dist/tools/multi-items/index.js.map +1 -1
  631. package/dist/tools/multi-items/item-container-map.d.ts +0 -35
  632. package/dist/tools/multi-items/item-container-map.d.ts.map +1 -1
  633. package/dist/tools/multi-items/item-container-map.js +0 -35
  634. package/dist/tools/multi-items/item-container-map.js.map +1 -1
  635. package/dist/tools/multi-items/output-schemas.d.ts +101 -0
  636. package/dist/tools/multi-items/output-schemas.d.ts.map +1 -0
  637. package/dist/tools/multi-items/output-schemas.js +74 -0
  638. package/dist/tools/multi-items/output-schemas.js.map +1 -0
  639. package/dist/tools/navigation/builders.d.ts +1 -16
  640. package/dist/tools/navigation/builders.d.ts.map +1 -1
  641. package/dist/tools/navigation/builders.js +5 -27
  642. package/dist/tools/navigation/builders.js.map +1 -1
  643. package/dist/tools/navigation/index.d.ts +0 -13
  644. package/dist/tools/navigation/index.d.ts.map +1 -1
  645. package/dist/tools/navigation/index.js +0 -12
  646. package/dist/tools/navigation/index.js.map +1 -1
  647. package/dist/tools/navigation/schemas.d.ts +0 -30
  648. package/dist/tools/navigation/schemas.d.ts.map +1 -1
  649. package/dist/tools/navigation/schemas.js +0 -30
  650. package/dist/tools/navigation/schemas.js.map +1 -1
  651. package/dist/tools/output-schema-metadata.d.ts +5 -0
  652. package/dist/tools/output-schema-metadata.d.ts.map +1 -0
  653. package/dist/tools/output-schema-metadata.js +83 -0
  654. package/dist/tools/output-schema-metadata.js.map +1 -0
  655. package/dist/tools/pages/builders.d.ts +1 -41
  656. package/dist/tools/pages/builders.d.ts.map +1 -1
  657. package/dist/tools/pages/builders.js +320 -405
  658. package/dist/tools/pages/builders.js.map +1 -1
  659. package/dist/tools/pages/header-transparency.d.ts +2 -32
  660. package/dist/tools/pages/header-transparency.d.ts.map +1 -1
  661. package/dist/tools/pages/header-transparency.js +9 -43
  662. package/dist/tools/pages/header-transparency.js.map +1 -1
  663. package/dist/tools/pages/index.d.ts +1 -19
  664. package/dist/tools/pages/index.d.ts.map +1 -1
  665. package/dist/tools/pages/index.js +1 -19
  666. package/dist/tools/pages/index.js.map +1 -1
  667. package/dist/tools/pages/schemas.d.ts +323 -241
  668. package/dist/tools/pages/schemas.d.ts.map +1 -1
  669. package/dist/tools/pages/schemas.js +514 -549
  670. package/dist/tools/pages/schemas.js.map +1 -1
  671. package/dist/tools/pages/write-output-schemas.d.ts +139 -0
  672. package/dist/tools/pages/write-output-schemas.d.ts.map +1 -0
  673. package/dist/tools/pages/write-output-schemas.js +138 -0
  674. package/dist/tools/pages/write-output-schemas.js.map +1 -0
  675. package/dist/tools/pages.d.ts +0 -11
  676. package/dist/tools/pages.d.ts.map +1 -1
  677. package/dist/tools/pages.js +0 -11
  678. package/dist/tools/pages.js.map +1 -1
  679. package/dist/tools/pool-resolve-helper.d.ts +0 -52
  680. package/dist/tools/pool-resolve-helper.d.ts.map +1 -1
  681. package/dist/tools/pool-resolve-helper.js +31 -106
  682. package/dist/tools/pool-resolve-helper.js.map +1 -1
  683. package/dist/tools/progress-phases.d.ts +0 -42
  684. package/dist/tools/progress-phases.d.ts.map +1 -1
  685. package/dist/tools/progress-phases.js +0 -44
  686. package/dist/tools/progress-phases.js.map +1 -1
  687. package/dist/tools/response-budget.d.ts +0 -69
  688. package/dist/tools/response-budget.d.ts.map +1 -1
  689. package/dist/tools/response-budget.js +0 -127
  690. package/dist/tools/response-budget.js.map +1 -1
  691. package/dist/tools/shared-schemas.d.ts +11 -65
  692. package/dist/tools/shared-schemas.d.ts.map +1 -1
  693. package/dist/tools/shared-schemas.js +40 -123
  694. package/dist/tools/shared-schemas.js.map +1 -1
  695. package/dist/tools/skill/builders.d.ts +3 -0
  696. package/dist/tools/skill/builders.d.ts.map +1 -0
  697. package/dist/tools/skill/builders.js +81 -0
  698. package/dist/tools/skill/builders.js.map +1 -0
  699. package/dist/tools/sources/builders.d.ts +1 -11
  700. package/dist/tools/sources/builders.d.ts.map +1 -1
  701. package/dist/tools/sources/builders.js +194 -170
  702. package/dist/tools/sources/builders.js.map +1 -1
  703. package/dist/tools/sources/index.d.ts +0 -17
  704. package/dist/tools/sources/index.d.ts.map +1 -1
  705. package/dist/tools/sources/index.js +0 -16
  706. package/dist/tools/sources/index.js.map +1 -1
  707. package/dist/tools/sources/read-output-schemas.d.ts +101 -0
  708. package/dist/tools/sources/read-output-schemas.d.ts.map +1 -0
  709. package/dist/tools/sources/read-output-schemas.js +105 -0
  710. package/dist/tools/sources/read-output-schemas.js.map +1 -0
  711. package/dist/tools/sources/source-name-argument.d.ts +17 -0
  712. package/dist/tools/sources/source-name-argument.d.ts.map +1 -0
  713. package/dist/tools/sources/source-name-argument.js +64 -0
  714. package/dist/tools/sources/source-name-argument.js.map +1 -0
  715. package/dist/tools/sources/write-output-schemas.d.ts +100 -0
  716. package/dist/tools/sources/write-output-schemas.d.ts.map +1 -0
  717. package/dist/tools/sources/write-output-schemas.js +61 -0
  718. package/dist/tools/sources/write-output-schemas.js.map +1 -0
  719. package/dist/tools/sources.d.ts +0 -12
  720. package/dist/tools/sources.d.ts.map +1 -1
  721. package/dist/tools/sources.js +0 -12
  722. package/dist/tools/sources.js.map +1 -1
  723. package/dist/tools/sparse-fields.d.ts +16 -232
  724. package/dist/tools/sparse-fields.d.ts.map +1 -1
  725. package/dist/tools/sparse-fields.js +178 -242
  726. package/dist/tools/sparse-fields.js.map +1 -1
  727. package/dist/tools/strict-input.d.ts +5 -0
  728. package/dist/tools/strict-input.d.ts.map +1 -0
  729. package/dist/tools/strict-input.js +55 -0
  730. package/dist/tools/strict-input.js.map +1 -0
  731. package/dist/tools/sublayout/builders.d.ts +1 -21
  732. package/dist/tools/sublayout/builders.d.ts.map +1 -1
  733. package/dist/tools/sublayout/builders.js +10 -39
  734. package/dist/tools/sublayout/builders.js.map +1 -1
  735. package/dist/tools/sublayout/index.d.ts +1 -11
  736. package/dist/tools/sublayout/index.d.ts.map +1 -1
  737. package/dist/tools/sublayout/index.js +1 -11
  738. package/dist/tools/sublayout/index.js.map +1 -1
  739. package/dist/tools/sublayout/output-schemas.d.ts +57 -0
  740. package/dist/tools/sublayout/output-schemas.d.ts.map +1 -0
  741. package/dist/tools/sublayout/output-schemas.js +51 -0
  742. package/dist/tools/sublayout/output-schemas.js.map +1 -0
  743. package/dist/tools/tool-builder/annotations.d.ts +1 -49
  744. package/dist/tools/tool-builder/annotations.d.ts.map +1 -1
  745. package/dist/tools/tool-builder/annotations.js +9 -49
  746. package/dist/tools/tool-builder/annotations.js.map +1 -1
  747. package/dist/tools/tool-builder/confirm-preview.d.ts +24 -0
  748. package/dist/tools/tool-builder/confirm-preview.d.ts.map +1 -0
  749. package/dist/tools/tool-builder/confirm-preview.js +37 -0
  750. package/dist/tools/tool-builder/confirm-preview.js.map +1 -0
  751. package/dist/tools/tool-builder/define.d.ts +6 -26
  752. package/dist/tools/tool-builder/define.d.ts.map +1 -1
  753. package/dist/tools/tool-builder/define.js +0 -25
  754. package/dist/tools/tool-builder/define.js.map +1 -1
  755. package/dist/tools/tool-builder/index.d.ts +3 -26
  756. package/dist/tools/tool-builder/index.d.ts.map +1 -1
  757. package/dist/tools/tool-builder/index.js +2 -25
  758. package/dist/tools/tool-builder/index.js.map +1 -1
  759. package/dist/tools/tool-builder/results.d.ts +4 -124
  760. package/dist/tools/tool-builder/results.d.ts.map +1 -1
  761. package/dist/tools/tool-builder/results.js +258 -263
  762. package/dist/tools/tool-builder/results.js.map +1 -1
  763. package/dist/tools/tool-builder/types.d.ts +5 -59
  764. package/dist/tools/tool-builder/types.d.ts.map +1 -1
  765. package/dist/tools/tool-builder/types.js +0 -7
  766. package/dist/tools/tool-builder/types.js.map +1 -1
  767. package/dist/tools/tool-builder.d.ts +0 -14
  768. package/dist/tools/tool-builder.d.ts.map +1 -1
  769. package/dist/tools/tool-builder.js +0 -14
  770. package/dist/tools/tool-builder.js.map +1 -1
  771. package/dist/uninstall-skill.d.ts +0 -41
  772. package/dist/uninstall-skill.d.ts.map +1 -1
  773. package/dist/uninstall-skill.js +3 -50
  774. package/dist/uninstall-skill.js.map +1 -1
  775. package/dist/uninstall.d.ts +0 -41
  776. package/dist/uninstall.d.ts.map +1 -1
  777. package/dist/uninstall.js +1 -29
  778. package/dist/uninstall.js.map +1 -1
  779. package/dist/update/update-check.d.ts +0 -26
  780. package/dist/update/update-check.d.ts.map +1 -1
  781. package/dist/update/update-check.js +0 -25
  782. package/dist/update/update-check.js.map +1 -1
  783. package/manifest.json +7 -12
  784. package/package.json +6 -11
  785. package/skills/yt-builder-mcp/SKILL.md +1871 -414
  786. package/dist/tools/elements/handlers-write.d.ts +0 -89
  787. package/dist/tools/elements/handlers-write.d.ts.map +0 -1
  788. package/dist/tools/elements/handlers-write.js +0 -797
  789. package/dist/tools/elements/handlers-write.js.map +0 -1
  790. package/dist/tools/elements/handlers.d.ts +0 -130
  791. package/dist/tools/elements/handlers.d.ts.map +0 -1
  792. package/dist/tools/elements/handlers.js +0 -581
  793. package/dist/tools/elements/handlers.js.map +0 -1
  794. package/dist/tools/elements/layout-hierarchy-rules.d.ts +0 -62
  795. package/dist/tools/elements/layout-hierarchy-rules.d.ts.map +0 -1
  796. package/dist/tools/elements/layout-hierarchy-rules.js +0 -154
  797. package/dist/tools/elements/layout-hierarchy-rules.js.map +0 -1
  798. package/dist/tools/elements/schema-validation.d.ts +0 -218
  799. package/dist/tools/elements/schema-validation.d.ts.map +0 -1
  800. package/dist/tools/elements/schema-validation.js +0 -685
  801. package/dist/tools/elements/schema-validation.js.map +0 -1
  802. package/dist/tools/elicitation.d.ts +0 -87
  803. package/dist/tools/elicitation.d.ts.map +0 -1
  804. package/dist/tools/elicitation.js +0 -100
  805. package/dist/tools/elicitation.js.map +0 -1
  806. package/dist/tools/format/elements-format.d.ts +0 -75
  807. package/dist/tools/format/elements-format.d.ts.map +0 -1
  808. package/dist/tools/format/elements-format.js +0 -368
  809. package/dist/tools/format/elements-format.js.map +0 -1
  810. package/dist/tools/format/source-schema-format.d.ts +0 -74
  811. package/dist/tools/format/source-schema-format.d.ts.map +0 -1
  812. package/dist/tools/format/source-schema-format.js +0 -208
  813. package/dist/tools/format/source-schema-format.js.map +0 -1
  814. package/dist/tools/layout-flatten.d.ts +0 -84
  815. package/dist/tools/layout-flatten.d.ts.map +0 -1
  816. package/dist/tools/layout-flatten.js +0 -129
  817. package/dist/tools/layout-flatten.js.map +0 -1
  818. package/dist/tools/local-content/handlers.d.ts +0 -56
  819. package/dist/tools/local-content/handlers.d.ts.map +0 -1
  820. package/dist/tools/local-content/handlers.js +0 -320
  821. package/dist/tools/local-content/handlers.js.map +0 -1
  822. package/dist/tools/multi-items/clean-implode-handler.d.ts +0 -37
  823. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +0 -1
  824. package/dist/tools/multi-items/clean-implode-handler.js +0 -65
  825. package/dist/tools/multi-items/clean-implode-handler.js.map +0 -1
  826. package/dist/tools/multi-items/format/inspection-format.d.ts +0 -41
  827. package/dist/tools/multi-items/format/inspection-format.d.ts.map +0 -1
  828. package/dist/tools/multi-items/format/inspection-format.js +0 -64
  829. package/dist/tools/multi-items/format/inspection-format.js.map +0 -1
  830. package/dist/tools/multi-items/inspect-handler.d.ts +0 -97
  831. package/dist/tools/multi-items/inspect-handler.d.ts.map +0 -1
  832. package/dist/tools/multi-items/inspect-handler.js +0 -323
  833. package/dist/tools/multi-items/inspect-handler.js.map +0 -1
  834. package/dist/tools/multi-items/inspection-cache.d.ts +0 -85
  835. package/dist/tools/multi-items/inspection-cache.d.ts.map +0 -1
  836. package/dist/tools/multi-items/inspection-cache.js +0 -126
  837. package/dist/tools/multi-items/inspection-cache.js.map +0 -1
  838. package/dist/tools/navigation/handlers.d.ts +0 -30
  839. package/dist/tools/navigation/handlers.d.ts.map +0 -1
  840. package/dist/tools/navigation/handlers.js +0 -41
  841. package/dist/tools/navigation/handlers.js.map +0 -1
  842. package/dist/tools/pages/handlers-audit.d.ts +0 -140
  843. package/dist/tools/pages/handlers-audit.d.ts.map +0 -1
  844. package/dist/tools/pages/handlers-audit.js +0 -714
  845. package/dist/tools/pages/handlers-audit.js.map +0 -1
  846. package/dist/tools/pages/handlers-read.d.ts +0 -133
  847. package/dist/tools/pages/handlers-read.d.ts.map +0 -1
  848. package/dist/tools/pages/handlers-read.js +0 -1061
  849. package/dist/tools/pages/handlers-read.js.map +0 -1
  850. package/dist/tools/pages/handlers-write.d.ts +0 -212
  851. package/dist/tools/pages/handlers-write.d.ts.map +0 -1
  852. package/dist/tools/pages/handlers-write.js +0 -419
  853. package/dist/tools/pages/handlers-write.js.map +0 -1
  854. package/dist/tools/pages/target.d.ts +0 -162
  855. package/dist/tools/pages/target.d.ts.map +0 -1
  856. package/dist/tools/pages/target.js +0 -239
  857. package/dist/tools/pages/target.js.map +0 -1
  858. package/dist/tools/sources/handlers-bind.d.ts +0 -148
  859. package/dist/tools/sources/handlers-bind.d.ts.map +0 -1
  860. package/dist/tools/sources/handlers-bind.js +0 -657
  861. package/dist/tools/sources/handlers-bind.js.map +0 -1
  862. package/dist/tools/sources/handlers.d.ts +0 -116
  863. package/dist/tools/sources/handlers.d.ts.map +0 -1
  864. package/dist/tools/sources/handlers.js +0 -289
  865. package/dist/tools/sources/handlers.js.map +0 -1
  866. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts +0 -95
  867. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts.map +0 -1
  868. package/dist/tools/sublayout/inspect-sublayout-handler.js +0 -181
  869. package/dist/tools/sublayout/inspect-sublayout-handler.js.map +0 -1
@@ -1,18 +1,8 @@
1
- /**
2
- * `tool-builder/results` — envelope builders (`jsonResult`,
3
- * `errorResult`, `structuredResult`, `confirmGuard`) + the shared
4
- * `sanitizeContentItem` helper. Every payload accepted here runs
5
- * through the `sanitizeSecrets` / `sanitizeForLogs` boundary so an
6
- * upstream regression can never land in the LLM context. The mask
7
- * is concentrated here — `define.ts` and call-sites do not re-mask.
8
- *
9
- * Split from `tool-builder.ts` in Round-1.5.
10
- *
11
- * @license MIT
12
- */
13
1
  import { NetworkError, RestError } from '../../errors.js';
14
2
  import { sanitizeForLogs } from '../../errors/mask.js';
15
3
  import { sanitizeSecrets } from '../../errors/sanitize.js';
4
+ import { redactCredentials } from '../../errors/redact-credentials.js';
5
+ import { activeSiteFromResolution, withActiveSiteKey } from '../active-site.js';
16
6
  function stringify(value) {
17
7
  try {
18
8
  return JSON.stringify(value, null, 2);
@@ -21,37 +11,7 @@ function stringify(value) {
21
11
  return String(value);
22
12
  }
23
13
  }
24
- /**
25
- * F80 (2026-06-10): the size at/above which a JSON-document text body is
26
- * split off into its own content block instead of carrying the in-band
27
- * `[label @ host] ` site-prefix.
28
- *
29
- * Why a threshold rather than "all JSON": a tool host (Claude Code, …)
30
- * spills only OVERSIZED tool results to a temp file. That file is read
31
- * back with `jq`, so the bytes must be pure JSON — an in-band prefix
32
- * corrupts the first line and breaks the parse (the observed F80
33
- * friction on `page_get_layout`, a multi-kB layout dump). Small JSON
34
- * envelopes (error results, single-element confirms, short lists) are
35
- * NEVER dumped, so they keep the in-band prefix — which preserves the
36
- * long-standing contract that `content[0].text` is the directly-parseable
37
- * JSON for those results (141 error-matrix / handler tests depend on it).
38
- *
39
- * 8 kB is comfortably below any host's spill threshold yet above every
40
- * small structured envelope this surface emits.
41
- */
42
14
  export const SITE_PREFIX_JSON_SPLIT_THRESHOLD = 8 * 1024;
43
- /**
44
- * Detect whether a text body is a PURE JSON DOCUMENT (object or array)
45
- * LARGE enough that a host might spill it to a `jq`-read temp file.
46
- * Tools like `page_get_layout` emit `jsonResult(data)` whose
47
- * `content[0].text` IS the JSON payload; for a large layout that text
48
- * lands in the dump verbatim, so an in-band `[label @ host] ` prefix
49
- * would corrupt the first bytes.
50
- *
51
- * Only OBJECT / ARRAY documents qualify (a bare scalar like `"hello"`
52
- * stays in-band). The cheap length + first-glyph pre-checks avoid a
53
- * JSON.parse on every human-readable table on the hot path.
54
- */
55
15
  function isLargeJsonDocumentText(text) {
56
16
  if (text.length < SITE_PREFIX_JSON_SPLIT_THRESHOLD)
57
17
  return false;
@@ -67,13 +27,6 @@ function isLargeJsonDocumentText(text) {
67
27
  return false;
68
28
  }
69
29
  }
70
- /**
71
- * Convert any JSON-serializable value into the MCP content envelope
72
- * (2-space JSON). Wave G.6.4b: every payload is deep-walked through
73
- * `sanitizeSecrets` before stringification so an upstream regression
74
- * (REST handler surfacing `oauth_refresh_token`, `auth_data`, etc.)
75
- * can never land in the LLM context.
76
- */
77
30
  export function jsonResult(payload, options = {}) {
78
31
  const safe = sanitizeSecrets(payload);
79
32
  return {
@@ -81,8 +34,27 @@ export function jsonResult(payload, options = {}) {
81
34
  ...(options.isError === true ? { isError: true } : {}),
82
35
  };
83
36
  }
84
- /** Extract `(message, status?, code?)` from any thrown value, honouring
85
- * `RestError` / `NetworkError` shape distinctions. */
37
+ export function rejectionOnBothLegs(payload) {
38
+ const safe = sanitizeSecrets(redactStrings(payload));
39
+ const r = jsonResult(safe, { isError: true });
40
+ if (safe === null || typeof safe !== 'object' || Array.isArray(safe))
41
+ return r;
42
+ return { ...r, structuredContent: safe };
43
+ }
44
+ function redactStrings(value) {
45
+ if (typeof value === 'string')
46
+ return redactCredentials(value);
47
+ if (Array.isArray(value))
48
+ return value.map(redactStrings);
49
+ if (value !== null && typeof value === 'object') {
50
+ const out = {};
51
+ for (const [k, v] of Object.entries(value)) {
52
+ out[k] = redactStrings(v);
53
+ }
54
+ return out;
55
+ }
56
+ return value;
57
+ }
86
58
  function describeError(e) {
87
59
  if (e instanceof RestError)
88
60
  return { message: e.message, status: e.status, code: e.code };
@@ -92,15 +64,6 @@ function describeError(e) {
92
64
  return { message: e.message };
93
65
  return { message: stringify(e) };
94
66
  }
95
- /**
96
- * G7 — pull the whitelisted nearest-path self-correction keys out of a thrown
97
- * value's `RestError.body`, if present. GENERIC: the moment any plugin version
98
- * emits the envelope on a 404, the Node HTTP path forwards it — mirroring the
99
- * already-self-correcting in-process path. Only `RestError` carries a parsed
100
- * upstream body; every other thrown value yields an empty envelope. The four
101
- * keys are individually type-guarded (a `null` `nearest_path` is preserved as a
102
- * legitimate "no candidate" signal); unknown keys never leak through.
103
- */
104
67
  function nearestPathFromError(e) {
105
68
  if (!(e instanceof RestError))
106
69
  return {};
@@ -119,27 +82,10 @@ function nearestPathFromError(e) {
119
82
  if (Array.isArray(b.available_paths) && b.available_paths.every((p) => typeof p === 'string')) {
120
83
  out.available_paths = b.available_paths;
121
84
  }
122
- // N4: the canonical id-form a bare-numeric not-found should re-address with.
123
85
  if (typeof b.expected_id_form === 'string')
124
86
  out.expected_id_form = b.expected_id_form;
125
87
  return out;
126
88
  }
127
- /**
128
- * ELEMENT_WRITE-2 — pull the CURRENT resource ETag out of a 412 RestError so a
129
- * stale-ETag write can be retried MECHANICALLY (copy `current_etag` from the
130
- * error, retry) instead of forcing an extra `get_etag` round-trip.
131
- *
132
- * A 412 (precondition-failed) write carries the live ETag in TWO possible
133
- * shapes: a structured `body.data.current_etag` (the canonical field a PHP host
134
- * emits) OR, on a host that only put it in prose, the message
135
- * `…does not match current resource ETag (…-r346)`. Both are checked; the
136
- * structured field wins. Returns the empty string sentinel `undefined` when the
137
- * error is not a 412 or carries no recoverable ETag, so the caller spreads
138
- * nothing on the happy path.
139
- *
140
- * Only `RestError` at status 412 is considered — a non-412 message that happens
141
- * to contain the phrase is never mined (it would surface a misleading value).
142
- */
143
89
  function currentEtagFromError(e) {
144
90
  if (!(e instanceof RestError) || e.status !== 412)
145
91
  return {};
@@ -163,20 +109,7 @@ function currentEtagFromError(e) {
163
109
  }
164
110
  return {};
165
111
  }
166
- /**
167
- * MM-2 / BUG-2 — the transport-side bound on a forwarded candidate list.
168
- *
169
- * Mirrors PHP's `AMBIGUITY_CANDIDATE_CAP = 10`, which BOTH producers already
170
- * apply before the list ever leaves the host, so in practice this is never
171
- * reached. It exists so a newer (or hostile) host cannot blow the error
172
- * envelope — and when it IS reached, `candidates_truncated` says so, because a
173
- * silently-shortened chooser would let an agent conclude it had seen every
174
- * option after trying the tenth.
175
- */
176
112
  const CANDIDATE_FORWARD_CAP = 10;
177
- /** Type-guard ONE candidate row. All three members are load-bearing: `id` is
178
- * what the retry addresses, `label` is what the user is shown, `type` is how
179
- * the two are told apart in a mixed page/template/category list. */
180
113
  function isAmbiguityCandidate(value) {
181
114
  if (value === null || typeof value !== 'object' || Array.isArray(value))
182
115
  return false;
@@ -186,28 +119,6 @@ function isAmbiguityCandidate(value) {
186
119
  && typeof row.label === 'string'
187
120
  && typeof row.type === 'string');
188
121
  }
189
- /**
190
- * MM-2 / BUG-2 — pull the AMBIGUITY CANDIDATE LIST out of a thrown value's
191
- * `RestError.body`.
192
- *
193
- * `title_ambiguous` (both platforms) and `blog_ambiguous` (Joomla) answer 409
194
- * with a list of distinct, addressable pages, and the MESSAGE they carry tells
195
- * the agent to pick one of them. Both in-process handlers already forward it
196
- * (`McpPagesResolveHandler` / `McpPagesAuditHandler`); without this the Node
197
- * transport handed the agent prose promising a list it never received — the
198
- * same tool answering the same site differently per transport.
199
- *
200
- * `data.candidates` is checked FIRST because it is where both CMSes actually
201
- * put it: WordPress via `WP_Error`'s data bag
202
- * (`PagesController::targetErrorResponse()`) and Joomla via
203
- * `JoomlaJsonResponse::error()`, which merges its `$data` into the SAME
204
- * WP-compatible `data:{…}` envelope. The top-level fallback costs one lookup
205
- * and covers any flatter envelope a future host emits.
206
- *
207
- * ALL-OR-NOTHING on shape: a list the agent renders as a chooser has to be
208
- * trustworthy, so one unusable row drops the whole list rather than presenting
209
- * a chooser with a dead option in it (the prose message still names the count).
210
- */
211
122
  function candidatesFromError(e) {
212
123
  if (!(e instanceof RestError))
213
124
  return {};
@@ -227,74 +138,254 @@ function candidatesFromError(e) {
227
138
  ? { candidates: raw.slice(0, CANDIDATE_FORWARD_CAP), candidates_truncated: true }
228
139
  : { candidates: [...raw] };
229
140
  }
230
- /**
231
- * Render a structured error result with `context` (echoed input) and a
232
- * recovery `hint`. Wave G.6.3 defense-in-depth: message is
233
- * mask-and-truncate'd; context is deep-walked so an input param that
234
- * accidentally echoed a secret-bearing value cannot leak.
235
- */
141
+ function isPlacementWay(value) {
142
+ if (value === null || typeof value !== 'object')
143
+ return false;
144
+ const v = value;
145
+ return (typeof v.placement === 'string'
146
+ && typeof v.reach === 'string'
147
+ && typeof v.summary === 'string'
148
+ && (v.can_limit_to_pages === undefined || typeof v.can_limit_to_pages === 'boolean'));
149
+ }
150
+ function waysFromError(e) {
151
+ if (!(e instanceof RestError))
152
+ return {};
153
+ const body = e.body;
154
+ if (body === null || typeof body !== 'object' || Array.isArray(body))
155
+ return {};
156
+ const b = body;
157
+ const nested = b.data;
158
+ const raw = nested !== null && typeof nested === 'object' && !Array.isArray(nested)
159
+ ? (nested.ways ?? b.ways)
160
+ : b.ways;
161
+ if (!Array.isArray(raw) || raw.length === 0)
162
+ return {};
163
+ if (!raw.every(isPlacementWay))
164
+ return {};
165
+ return { ways: raw };
166
+ }
167
+ function notesFromError(e) {
168
+ if (!(e instanceof RestError))
169
+ return {};
170
+ const body = e.body;
171
+ if (body === null || typeof body !== 'object' || Array.isArray(body))
172
+ return {};
173
+ const b = body;
174
+ const nested = b.data;
175
+ const raw = nested !== null && typeof nested === 'object' && !Array.isArray(nested)
176
+ ? (nested.notes ?? b.notes)
177
+ : b.notes;
178
+ if (!isStringArray(raw) || raw.length === 0)
179
+ return {};
180
+ return { notes: [...raw] };
181
+ }
182
+ function isRemovalIntent(value) {
183
+ if (value === null || typeof value !== 'object')
184
+ return false;
185
+ const v = value;
186
+ return (typeof v.intent === 'string'
187
+ && typeof v.effect === 'string'
188
+ && typeof v.reversible === 'boolean'
189
+ && typeof v.native_name === 'string'
190
+ && (v.restore_call === undefined
191
+ || v.restore_call === null
192
+ || typeof v.restore_call === 'string'));
193
+ }
194
+ function intentsFromError(e) {
195
+ if (!(e instanceof RestError))
196
+ return {};
197
+ const body = e.body;
198
+ if (body === null || typeof body !== 'object' || Array.isArray(body))
199
+ return {};
200
+ const b = body;
201
+ const nested = b.data;
202
+ const raw = nested !== null && typeof nested === 'object' && !Array.isArray(nested)
203
+ ? (nested.intents ?? b.intents)
204
+ : b.intents;
205
+ if (!Array.isArray(raw) || raw.length === 0)
206
+ return {};
207
+ if (!raw.every(isRemovalIntent))
208
+ return {};
209
+ return { intents: [...raw] };
210
+ }
211
+ function currentStateFromError(e) {
212
+ if (!(e instanceof RestError))
213
+ return {};
214
+ const body = e.body;
215
+ if (body === null || typeof body !== 'object' || Array.isArray(body))
216
+ return {};
217
+ const b = body;
218
+ const nested = b.data;
219
+ const raw = nested !== null && typeof nested === 'object' && !Array.isArray(nested)
220
+ ? (nested.current_state ?? b.current_state)
221
+ : b.current_state;
222
+ return typeof raw === 'string' && raw !== '' ? { current_state: raw } : {};
223
+ }
224
+ function declaredPositionsFromError(e) {
225
+ if (!(e instanceof RestError))
226
+ return {};
227
+ const body = e.body;
228
+ if (body === null || typeof body !== 'object' || Array.isArray(body))
229
+ return {};
230
+ const b = body;
231
+ const nested = b.data;
232
+ const raw = nested !== null && typeof nested === 'object' && !Array.isArray(nested)
233
+ ? (nested.declared_positions ?? b.declared_positions)
234
+ : b.declared_positions;
235
+ if (!isStringArray(raw) || raw.length === 0)
236
+ return {};
237
+ return { declared_positions: [...raw] };
238
+ }
239
+ const UNKNOWN_SOURCE_LIST_CAP = CANDIDATE_FORWARD_CAP;
240
+ function isStringArray(value) {
241
+ return Array.isArray(value) && value.every((v) => typeof v === 'string');
242
+ }
243
+ function unknownSourceFromError(e) {
244
+ if (!(e instanceof RestError))
245
+ return {};
246
+ const body = e.body;
247
+ if (body === null || typeof body !== 'object' || Array.isArray(body))
248
+ return {};
249
+ const b = body;
250
+ const nested = b.data;
251
+ const data = nested !== null && typeof nested === 'object' && !Array.isArray(nested)
252
+ ? nested
253
+ : b;
254
+ const given = data.given;
255
+ const didYouMean = data.did_you_mean;
256
+ const allPublished = data.all_published_sources;
257
+ if (typeof given !== 'string')
258
+ return {};
259
+ if (!isStringArray(didYouMean) || !isStringArray(allPublished))
260
+ return {};
261
+ const truncated = allPublished.length > UNKNOWN_SOURCE_LIST_CAP;
262
+ return {
263
+ given,
264
+ did_you_mean: didYouMean.slice(0, UNKNOWN_SOURCE_LIST_CAP),
265
+ all_published_sources: allPublished.slice(0, UNKNOWN_SOURCE_LIST_CAP),
266
+ ...(truncated ? { all_published_sources_truncated: true } : {}),
267
+ };
268
+ }
269
+ function serverHintFromError(error) {
270
+ const body = error?.body;
271
+ if (body === null || typeof body !== 'object')
272
+ return {};
273
+ const b = body;
274
+ const nested = b.data;
275
+ const raw = typeof b.hint === 'string'
276
+ ? b.hint
277
+ : nested !== null && typeof nested === 'object' && !Array.isArray(nested)
278
+ ? nested.hint
279
+ : undefined;
280
+ return typeof raw === 'string' && raw.trim() !== '' ? { server_hint: raw } : {};
281
+ }
282
+ export const PASSTHROUGH_ERROR_KEYS = [
283
+ 'element_path',
284
+ 'expected_etag',
285
+ 'error_code',
286
+ 'retry_after',
287
+ 'retry_after_ms',
288
+ 'retry_after_seconds',
289
+ 'limit',
290
+ 'window_seconds',
291
+ 'required_scope',
292
+ 'token_scope',
293
+ 'remediation',
294
+ 'min_client',
295
+ 'current_client',
296
+ ];
297
+ const RESERVED_RESULT_KEYS = new Set(['error', 'status', 'code', 'context', 'hint']);
298
+ for (const key of PASSTHROUGH_ERROR_KEYS) {
299
+ if (RESERVED_RESULT_KEYS.has(key)) {
300
+ throw new Error(`PASSTHROUGH_ERROR_KEYS must never shadow the fixed errorResult() key "${key}"`);
301
+ }
302
+ }
303
+ const PASSTHROUGH_VALUE_MAX_JSON_LENGTH = 2000;
304
+ function isForwardableScalar(value) {
305
+ if (typeof value === 'boolean')
306
+ return true;
307
+ if (typeof value === 'number')
308
+ return Number.isFinite(value);
309
+ return typeof value === 'string';
310
+ }
311
+ function passthroughFieldsFromError(e) {
312
+ if (!(e instanceof RestError))
313
+ return {};
314
+ const body = e.body;
315
+ if (body === null || typeof body !== 'object' || Array.isArray(body))
316
+ return {};
317
+ const b = body;
318
+ const nested = b.data;
319
+ const data = nested !== null && typeof nested === 'object' && !Array.isArray(nested)
320
+ ? nested
321
+ : undefined;
322
+ const out = {};
323
+ for (const key of PASSTHROUGH_ERROR_KEYS) {
324
+ const raw = data?.[key] ?? b[key];
325
+ if (!isForwardableScalar(raw))
326
+ continue;
327
+ if (stringify(raw).length > PASSTHROUGH_VALUE_MAX_JSON_LENGTH)
328
+ continue;
329
+ out[key] = raw;
330
+ }
331
+ return out;
332
+ }
236
333
  export function errorResult(opts) {
237
334
  const { message, status, code } = describeError(opts.error);
238
- // G7 (self-correcting errors): forward the shared nearest-path envelope when
239
- // the upstream 404 body carried it, so the agent retries IN-LOOP — the SAME
240
- // contract the in-process MCP surfaces emit. Spread LAST so it rides
241
- // alongside (never clobbers) error/status/code/context/hint; absent on every
242
- // non-enriched failure (empty envelope → no extra keys).
335
+ const passthrough = passthroughFieldsFromError(opts.error);
243
336
  const nearest = nearestPathFromError(opts.error);
244
- // MM-2: the ambiguity candidate list rides the SAME way — spread last,
245
- // alongside (never over) error/status/code/context/hint, and absent
246
- // entirely on every non-ambiguous failure.
337
+ const unknownSource = unknownSourceFromError(opts.error);
247
338
  const candidates = candidatesFromError(opts.error);
248
- // ELEMENT_WRITE-2 / PAGES_LIBRARY_MEDIA-7: a 412 write carries the live
249
- // ETag; surface it as `current_etag` so a retry is mechanical (no extra
250
- // get_etag round-trip). Spread last, alongside (never over) the other keys;
251
- // absent on every non-412 failure.
252
339
  const currentEtag = currentEtagFromError(opts.error);
340
+ const serverHintRaw = serverHintFromError(opts.error);
341
+ const serverHint = serverHintRaw.server_hint !== undefined && serverHintRaw.server_hint !== opts.hint
342
+ ? serverHintRaw
343
+ : {};
344
+ const ways = waysFromError(opts.error);
345
+ const notes = notesFromError(opts.error);
346
+ const declaredPositions = declaredPositionsFromError(opts.error);
347
+ const intents = intentsFromError(opts.error);
348
+ const currentState = currentStateFromError(opts.error);
253
349
  return jsonResult({
254
350
  error: sanitizeForLogs(message),
255
351
  ...(status !== undefined ? { status } : {}),
256
352
  ...(code !== undefined ? { code } : {}),
257
353
  context: sanitizeSecrets(opts.context),
258
354
  hint: opts.hint,
355
+ ...passthrough,
356
+ ...unknownSource,
259
357
  ...nearest,
260
358
  ...candidates,
261
359
  ...currentEtag,
360
+ ...ways,
361
+ ...notes,
362
+ ...declaredPositions,
363
+ ...intents,
364
+ ...currentState,
365
+ ...serverHint,
262
366
  }, { isError: true });
263
367
  }
264
- /**
265
- * Confirm-guard preview helper for destructive tools. Returns the
266
- * preview `ToolResult` when `confirm` is false; callers `return` it
267
- * before executing the destructive REST call.
268
- *
269
- * F131 (Wave 4a): the blocked-state result is now STRUCTURALLY distinct
270
- * from a successful mutation. Previously the preview was a plain
271
- * `jsonResult` with no `isError` — envelope-identical to a success — so a
272
- * model that did not parse `preview:true` read "delete succeeded" and
273
- * silently left the element in place (the dry-run / silent-no-op footgun
274
- * class). Three redundant signals now make the block unmistakable:
275
- * 1. result-level `isError: true` (hosts that only read the error flag),
276
- * 2. body `applied: false` + `requires_confirmation: true` (structured
277
- * consumers),
278
- * 3. a leading "NOT EXECUTED" line in the human-readable warning text
279
- * (models that skim prose).
280
- */
281
368
  export function confirmGuard(opts) {
282
- return jsonResult({
369
+ const warning = `NOT EXECUTED — DESTRUCTIVE operation requires confirmation. ` +
370
+ `The "${opts.operation}" call was BLOCKED and nothing was changed.`;
371
+ const instruction = 'Ask the user to confirm, then call again with `confirm: true`.';
372
+ return structuredResult(jsonResult({
283
373
  preview: true,
284
374
  applied: false,
285
375
  requires_confirmation: true,
286
- warning: `NOT EXECUTED — DESTRUCTIVE operation requires confirmation. The "${opts.operation}" call was BLOCKED and nothing was changed.`,
376
+ warning,
287
377
  operation: opts.operation,
288
378
  details: opts.details,
289
- instruction: 'Ask the user to confirm, then call again with `confirm: true`.',
290
- }, { isError: true });
379
+ instruction,
380
+ }), {
381
+ ...opts.structured,
382
+ ...opts.structuredExtra,
383
+ applied: false,
384
+ requires_confirmation: true,
385
+ warning,
386
+ instruction,
387
+ });
291
388
  }
292
- /**
293
- * Sanitise a single content item from a toolkit builder. Text items
294
- * frequently embed a JSON-stringified payload — if it parses, deep-walk
295
- * and re-stringify; otherwise leave as-is (toolkit-rendered tables /
296
- * details are already domain-mapped at the call site).
297
- */
298
389
  function sanitizeContentItem(item) {
299
390
  if (item.type !== 'text' || typeof item.text !== 'string')
300
391
  return item;
@@ -305,76 +396,9 @@ function sanitizeContentItem(item) {
305
396
  return { ...item, text: stringify(safe) };
306
397
  }
307
398
  catch {
308
- // Not JSON — toolkit-rendered text. No structural redaction
309
- // possible without false-positives; the caller has already
310
- // mapped raw secrets out via field-projection helpers.
311
399
  return item;
312
400
  }
313
401
  }
314
- /**
315
- * Merge a toolkit builder result (`tableResult` / `detailResult` /
316
- * `statsResult` / etc.) with a domain-typed `structuredContent` payload. The
317
- * result satisfies both Rich-Card hosts (read `_meta.ui`, present only when
318
- * the call site opted in) AND structured-output hosts (read
319
- * `structuredContent`, may validate against `outputSchema`). Single
320
- * envelope-merger from every migrated tool's handler — toolkit builders are
321
- * wrapped, not modified.
322
- *
323
- * T-C3c (native `@getimo/mcp-toolkit@1.2.0` migration): `includeMeta` is no
324
- * longer decided HERE. Every call site now threads it straight into its OWN
325
- * builder call (`tableResult(items, { ...opts, includeMeta })`, etc.), so the
326
- * toolkit either allocates the Rich-Card `_meta.ui` + embedded base64 marker
327
- * or never allocates them at all — nothing is stripped after the fact.
328
- * Replaces the T-C3 / T-C3b consumer-side shim (this file's own
329
- * `STRUCTURED_META_MARKER_RE` regex + `stripStructuredMetaItem`), which
330
- * duplicated the toolkit's marker format and risked drifting out of sync
331
- * with a future toolkit version. `toolkitResult._meta` is simply whatever
332
- * the builder decided to attach (or omit) — this function only sanitises and
333
- * merges it.
334
- */
335
- /**
336
- * W6.2 — site-awareness envelope wrapper.
337
- *
338
- * Stamps a resolved-site descriptor onto a tool result so the human +
339
- * agent both know which connected site the call ran against. Two
340
- * channels:
341
- *
342
- * 1. **text-prefix PRIMARY surface** — `[<label or site_id> @
343
- * <hostname>] ` is injected at the start of `content[0].text`
344
- * when that block is a text item. Per the W6 web-research
345
- * addendum (HCFV §B, Claude-Desktop UI gap doc'd in plan
346
- * Z.1329-1332), `_meta` is read by the agent but NOT rendered as
347
- * a UI widget today — so the prefix is the only thing Maria the
348
- * Claude-Desktop-user reliably SEES. LOAD-BEARING.
349
- *
350
- * 2. **result-level `_meta` SECONDARY surface** — `_meta:
351
- * {site_id, site_url, platform}` is merged into the RESULT-level
352
- * `_meta` (alongside the toolkit's `_meta.ui`). This is the
353
- * MCP-spec metadata channel: free-form and NOT validated against
354
- * the tool's `outputSchema`.
355
- *
356
- * W12-R2 fix: site meta was previously merged into
357
- * `structuredContent._meta`. That broke real hosts. Every tool's
358
- * `outputSchema` is generated with `additionalProperties:false`,
359
- * so an undeclared `_meta` key inside `structuredContent` fails
360
- * client-side schema validation (`-32602`) and surfaces as a
361
- * "Failed to call tool" toast in Claude Desktop EVEN ON A
362
- * SUCCESSFUL CALL. `live-verify.mjs` never caught it because raw
363
- * JSON-RPC calls skip the host's structuredContent↔outputSchema
364
- * validation. `structuredContent` must stay schema-pure.
365
- *
366
- * Pure function: never mutates the input result. Non-text blocks
367
- * (resource / image / etc.) pass through verbatim. `structuredContent`
368
- * is passed through UNTOUCHED so it always validates against
369
- * `outputSchema`. Empty `content[]` is tolerated and produces a
370
- * prefix-free result (the meta still lands in result-level `_meta`).
371
- *
372
- * Label-fallback: `site.label` wins; falls back to `site.id`.
373
- *
374
- * Hostname extraction defaults to `new URL(site.url).host`. A
375
- * malformed URL falls back to the raw site.url string so the prefix
376
- * remains user-readable even when the registry was hand-edited.
377
- */
378
402
  export function withSiteMeta(result, site) {
379
403
  const displayLabel = site.label ?? site.id;
380
404
  let host;
@@ -384,20 +408,11 @@ export function withSiteMeta(result, site) {
384
408
  catch {
385
409
  host = site.url;
386
410
  }
387
- // F178 (2026-06-12): when a call was routed via the PROCESS-WIDE
388
- // default/override (i.e. the caller omitted `site_id`), append a
389
- // ` · default` marker INSIDE the visible prefix so the human SEES the
390
- // call was not isolated from concurrent `use_site` switches. An
391
- // explicit `site_id` (or a legacy fixture without `resolvedVia`) gets
392
- // the plain prefix.
393
- const routedViaSharedDefault = site.resolvedVia === 'registry_default'
394
- || site.resolvedVia === 'active_override';
395
- const marker = routedViaSharedDefault ? ' · default' : '';
411
+ const marker = site.resolvedVia === 'active_override' ? ' · active override, not the configured default'
412
+ : site.resolvedVia === 'registry_default' ? ' · default'
413
+ : '';
396
414
  const prefix = `[${displayLabel} @ ${host}${marker}] `;
397
- // `resolved_site_id` is stamped LÜCKENLOS on every site-bound result
398
- // (it mirrors `site_id` but names the concept the agent reasons about
399
- // — "which site did this call actually land on"). `resolved_via` is
400
- // only stamped when known, so legacy fixtures add no noise.
415
+ const active = activeSiteFromResolution(site.id, site.resolvedVia);
401
416
  const meta = {
402
417
  site_id: site.id,
403
418
  site_url: site.url,
@@ -406,24 +421,12 @@ export function withSiteMeta(result, site) {
406
421
  ...(site.resolvedVia !== undefined
407
422
  ? { resolved_via: site.resolvedVia }
408
423
  : {}),
424
+ ...(active !== undefined ? { active_site: active } : {}),
409
425
  };
410
- // W12-R1.2 (A4-F2): site-awareness is the LOAD-BEARING surface for
411
- // Claude-Desktop users. When the wrapped result has no text content
412
- // (e.g. an image-only / resource-only / empty-list response), the
413
- // prefix would otherwise be lost and the agent would have no visible
414
- // signal of which site the call ran against. Prepend a synthetic
415
- // text block so the prefix is ALWAYS the first visible glyph.
416
- // Trim the trailing space — a standalone prefix block reads better
417
- // without it.
418
- //
419
- // F80 (2026-06-10): the SAME synthetic-block path is taken when the
420
- // first text body is a PURE JSON DOCUMENT (page_get_layout etc.).
421
- // Concatenating the prefix in-band there yields `[label @ host] {...}`
422
- // — not valid JSON — which corrupts the harness's file-dump of an
423
- // oversized result and breaks `jq`. Routing JSON documents through the
424
- // synthetic block keeps the JSON byte-pure while the human still sees
425
- // the marker first. Human-readable text (tables / details / prose)
426
- // keeps the in-band prefix unchanged.
426
+ const structured = result.structuredContent;
427
+ const enrichedStructured = active !== undefined && structured !== undefined && structured !== null && !Array.isArray(structured)
428
+ ? withActiveSiteKey(structured, active)
429
+ : structured;
427
430
  const firstItem = result.content[0];
428
431
  const firstIsLargeJsonDoc = firstItem !== undefined
429
432
  && firstItem.type === 'text'
@@ -446,12 +449,6 @@ export function withSiteMeta(result, site) {
446
449
  const existingText = typeof item.text === 'string' ? item.text : '';
447
450
  return { ...item, text: prefix + existingText };
448
451
  });
449
- // Site meta merges into the RESULT-level `_meta` (next to the
450
- // toolkit's `_meta.ui`), NEVER into `structuredContent`. The latter
451
- // is validated by the host against the tool's `outputSchema`
452
- // (additionalProperties:false); an undeclared key there triggers a
453
- // `-32602` "Failed to call tool" reject even on success. The result
454
- // envelope `_meta` is the spec's free-form metadata channel.
455
452
  const baseTopMeta = result._meta;
456
453
  const mergedTopMeta = baseTopMeta !== undefined && baseTopMeta !== null && typeof baseTopMeta === 'object'
457
454
  ? { ...baseTopMeta, ...meta }
@@ -459,13 +456,11 @@ export function withSiteMeta(result, site) {
459
456
  return {
460
457
  ...result,
461
458
  content: newContent,
459
+ ...(enrichedStructured !== undefined ? { structuredContent: enrichedStructured } : {}),
462
460
  _meta: mergedTopMeta,
463
461
  };
464
462
  }
465
463
  export function structuredResult(toolkitResult, structuredContent) {
466
- // Wave G.6.4b — deep-walk-sanitise all three legs (text content,
467
- // _meta.ui, structuredContent) so regressing sources never bypass
468
- // the LLM-boundary mask.
469
464
  const safeContent = toolkitResult.content.map(sanitizeContentItem);
470
465
  const safeStructured = sanitizeSecrets(structuredContent);
471
466
  const safeMeta = toolkitResult._meta !== undefined