@wootsup/yt-builder-mcp 1.11.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (853) hide show
  1. package/README.md +131 -33
  2. package/bin/node-floor.d.ts +28 -0
  3. package/bin/node-floor.js +123 -0
  4. package/bin/yt-builder-mcp.js +52 -11
  5. package/dist/auth.d.ts +3 -121
  6. package/dist/auth.d.ts.map +1 -1
  7. package/dist/auth.js +40 -170
  8. package/dist/auth.js.map +1 -1
  9. package/dist/catalog/build-catalog.d.ts +4 -49
  10. package/dist/catalog/build-catalog.d.ts.map +1 -1
  11. package/dist/catalog/build-catalog.js +15 -126
  12. package/dist/catalog/build-catalog.js.map +1 -1
  13. package/dist/catalog/json-schema.d.ts +3 -0
  14. package/dist/catalog/json-schema.d.ts.map +1 -0
  15. package/dist/catalog/json-schema.js +68 -0
  16. package/dist/catalog/json-schema.js.map +1 -0
  17. package/dist/catalog/output-shapes.d.ts +6 -0
  18. package/dist/catalog/output-shapes.d.ts.map +1 -0
  19. package/dist/catalog/output-shapes.js +89 -0
  20. package/dist/catalog/output-shapes.js.map +1 -0
  21. package/dist/catalog/tool-catalog-markdown.d.ts +1 -37
  22. package/dist/catalog/tool-catalog-markdown.d.ts.map +1 -1
  23. package/dist/catalog/tool-catalog-markdown.js +9 -41
  24. package/dist/catalog/tool-catalog-markdown.js.map +1 -1
  25. package/dist/cli/doctor-command.d.ts +2 -7
  26. package/dist/cli/doctor-command.d.ts.map +1 -1
  27. package/dist/cli/doctor-command.js +33 -54
  28. package/dist/cli/doctor-command.js.map +1 -1
  29. package/dist/cli/invocation-decision.d.ts +4 -52
  30. package/dist/cli/invocation-decision.d.ts.map +1 -1
  31. package/dist/cli/invocation-decision.js +45 -54
  32. package/dist/cli/invocation-decision.js.map +1 -1
  33. package/dist/client.d.ts +3 -107
  34. package/dist/client.d.ts.map +1 -1
  35. package/dist/client.js +34 -115
  36. package/dist/client.js.map +1 -1
  37. package/dist/clients/claude-code.d.ts +0 -15
  38. package/dist/clients/claude-code.d.ts.map +1 -1
  39. package/dist/clients/claude-code.js +0 -22
  40. package/dist/clients/claude-code.js.map +1 -1
  41. package/dist/clients/claude-desktop.d.ts +0 -16
  42. package/dist/clients/claude-desktop.d.ts.map +1 -1
  43. package/dist/clients/claude-desktop.js +0 -18
  44. package/dist/clients/claude-desktop.js.map +1 -1
  45. package/dist/clients/cline.d.ts +0 -23
  46. package/dist/clients/cline.d.ts.map +1 -1
  47. package/dist/clients/cline.js +0 -33
  48. package/dist/clients/cline.js.map +1 -1
  49. package/dist/clients/codex-cli.d.ts +0 -39
  50. package/dist/clients/codex-cli.d.ts.map +1 -1
  51. package/dist/clients/codex-cli.js +0 -137
  52. package/dist/clients/codex-cli.js.map +1 -1
  53. package/dist/clients/continue.d.ts +0 -10
  54. package/dist/clients/continue.d.ts.map +1 -1
  55. package/dist/clients/continue.js +0 -26
  56. package/dist/clients/continue.js.map +1 -1
  57. package/dist/clients/cursor.d.ts +0 -9
  58. package/dist/clients/cursor.d.ts.map +1 -1
  59. package/dist/clients/cursor.js +0 -11
  60. package/dist/clients/cursor.js.map +1 -1
  61. package/dist/clients/gemini-cli.d.ts +0 -15
  62. package/dist/clients/gemini-cli.d.ts.map +1 -1
  63. package/dist/clients/gemini-cli.js +0 -17
  64. package/dist/clients/gemini-cli.js.map +1 -1
  65. package/dist/clients/home.d.ts +0 -12
  66. package/dist/clients/home.d.ts.map +1 -1
  67. package/dist/clients/home.js +0 -12
  68. package/dist/clients/home.js.map +1 -1
  69. package/dist/clients/index.d.ts +0 -150
  70. package/dist/clients/index.d.ts.map +1 -1
  71. package/dist/clients/index.js +0 -112
  72. package/dist/clients/index.js.map +1 -1
  73. package/dist/clients/roo-code.d.ts +0 -20
  74. package/dist/clients/roo-code.d.ts.map +1 -1
  75. package/dist/clients/roo-code.js +0 -22
  76. package/dist/clients/roo-code.js.map +1 -1
  77. package/dist/clients/zed.d.ts +0 -9
  78. package/dist/clients/zed.d.ts.map +1 -1
  79. package/dist/clients/zed.js +0 -18
  80. package/dist/clients/zed.js.map +1 -1
  81. package/dist/compat-floor.d.ts +35 -0
  82. package/dist/compat-floor.d.ts.map +1 -0
  83. package/dist/compat-floor.js +84 -0
  84. package/dist/compat-floor.js.map +1 -0
  85. package/dist/compat-probe.d.ts +6 -0
  86. package/dist/compat-probe.d.ts.map +1 -0
  87. package/dist/compat-probe.js +20 -0
  88. package/dist/compat-probe.js.map +1 -0
  89. package/dist/diagnostics/ca-reexec.d.ts +0 -30
  90. package/dist/diagnostics/ca-reexec.d.ts.map +1 -1
  91. package/dist/diagnostics/ca-reexec.js +0 -62
  92. package/dist/diagnostics/ca-reexec.js.map +1 -1
  93. package/dist/diagnostics/ca-trust.d.ts +0 -22
  94. package/dist/diagnostics/ca-trust.d.ts.map +1 -1
  95. package/dist/diagnostics/ca-trust.js +3 -42
  96. package/dist/diagnostics/ca-trust.js.map +1 -1
  97. package/dist/diagnostics/diagnose-network-error.d.ts +1 -38
  98. package/dist/diagnostics/diagnose-network-error.d.ts.map +1 -1
  99. package/dist/diagnostics/diagnose-network-error.js +26 -37
  100. package/dist/diagnostics/diagnose-network-error.js.map +1 -1
  101. package/dist/diagnostics/doctor.d.ts +13 -65
  102. package/dist/diagnostics/doctor.d.ts.map +1 -1
  103. package/dist/diagnostics/doctor.js +46 -70
  104. package/dist/diagnostics/doctor.js.map +1 -1
  105. package/dist/diagnostics/startup-self-probe.d.ts +3 -25
  106. package/dist/diagnostics/startup-self-probe.d.ts.map +1 -1
  107. package/dist/diagnostics/startup-self-probe.js +11 -48
  108. package/dist/diagnostics/startup-self-probe.js.map +1 -1
  109. package/dist/errors/hints.d.ts +0 -44
  110. package/dist/errors/hints.d.ts.map +1 -1
  111. package/dist/errors/hints.js +0 -32
  112. package/dist/errors/hints.js.map +1 -1
  113. package/dist/errors/mask.d.ts +0 -31
  114. package/dist/errors/mask.d.ts.map +1 -1
  115. package/dist/errors/mask.js +0 -32
  116. package/dist/errors/mask.js.map +1 -1
  117. package/dist/errors/redact-credentials.d.ts +2 -0
  118. package/dist/errors/redact-credentials.d.ts.map +1 -0
  119. package/dist/errors/redact-credentials.js +13 -0
  120. package/dist/errors/redact-credentials.js.map +1 -0
  121. package/dist/errors/sanitize.d.ts +0 -29
  122. package/dist/errors/sanitize.d.ts.map +1 -1
  123. package/dist/errors/sanitize.js +0 -40
  124. package/dist/errors/sanitize.js.map +1 -1
  125. package/dist/errors.d.ts +6 -17
  126. package/dist/errors.d.ts.map +1 -1
  127. package/dist/errors.js +16 -21
  128. package/dist/errors.js.map +1 -1
  129. package/dist/gateway/advanced-read-tool.d.ts +0 -32
  130. package/dist/gateway/advanced-read-tool.d.ts.map +1 -1
  131. package/dist/gateway/advanced-read-tool.js +43 -111
  132. package/dist/gateway/advanced-read-tool.js.map +1 -1
  133. package/dist/gateway/advanced-tool/discovery.d.ts +1 -12
  134. package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -1
  135. package/dist/gateway/advanced-tool/discovery.js +18 -16
  136. package/dist/gateway/advanced-tool/discovery.js.map +1 -1
  137. package/dist/gateway/advanced-tool/domains.d.ts +7 -66
  138. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
  139. package/dist/gateway/advanced-tool/domains.js +36 -80
  140. package/dist/gateway/advanced-tool/domains.js.map +1 -1
  141. package/dist/gateway/advanced-tool/execute.d.ts +0 -25
  142. package/dist/gateway/advanced-tool/execute.d.ts.map +1 -1
  143. package/dist/gateway/advanced-tool/execute.js +13 -49
  144. package/dist/gateway/advanced-tool/execute.js.map +1 -1
  145. package/dist/gateway/advanced-tool/index.d.ts +1 -32
  146. package/dist/gateway/advanced-tool/index.d.ts.map +1 -1
  147. package/dist/gateway/advanced-tool/index.js +1 -35
  148. package/dist/gateway/advanced-tool/index.js.map +1 -1
  149. package/dist/gateway/advanced-tool/register.d.ts +0 -14
  150. package/dist/gateway/advanced-tool/register.d.ts.map +1 -1
  151. package/dist/gateway/advanced-tool/register.js +22 -58
  152. package/dist/gateway/advanced-tool/register.js.map +1 -1
  153. package/dist/gateway/advanced-tool.d.ts +0 -11
  154. package/dist/gateway/advanced-tool.d.ts.map +1 -1
  155. package/dist/gateway/advanced-tool.js +0 -11
  156. package/dist/gateway/advanced-tool.js.map +1 -1
  157. package/dist/gateway/capturing-server.d.ts +3 -88
  158. package/dist/gateway/capturing-server.d.ts.map +1 -1
  159. package/dist/gateway/capturing-server.js +0 -77
  160. package/dist/gateway/capturing-server.js.map +1 -1
  161. package/dist/gateway/essentials.d.ts +1 -63
  162. package/dist/gateway/essentials.d.ts.map +1 -1
  163. package/dist/gateway/essentials.js +10 -174
  164. package/dist/gateway/essentials.js.map +1 -1
  165. package/dist/gateway/test-support.d.ts +0 -28
  166. package/dist/gateway/test-support.d.ts.map +1 -1
  167. package/dist/gateway/test-support.js +0 -29
  168. package/dist/gateway/test-support.js.map +1 -1
  169. package/dist/health-response.d.ts +2 -0
  170. package/dist/health-response.d.ts.map +1 -0
  171. package/dist/health-response.js +7 -0
  172. package/dist/health-response.js.map +1 -0
  173. package/dist/icon-data.js +0 -3
  174. package/dist/icon-data.js.map +1 -1
  175. package/dist/index.d.ts +7 -23
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/index.js +46 -130
  178. package/dist/index.js.map +1 -1
  179. package/dist/install-skill.d.ts +0 -44
  180. package/dist/install-skill.d.ts.map +1 -1
  181. package/dist/install-skill.js +5 -46
  182. package/dist/install-skill.js.map +1 -1
  183. package/dist/net/extra-headers.d.ts +0 -58
  184. package/dist/net/extra-headers.d.ts.map +1 -1
  185. package/dist/net/extra-headers.js +0 -67
  186. package/dist/net/extra-headers.js.map +1 -1
  187. package/dist/net/internal-host.d.ts +0 -31
  188. package/dist/net/internal-host.d.ts.map +1 -1
  189. package/dist/net/internal-host.js +7 -65
  190. package/dist/net/internal-host.js.map +1 -1
  191. package/dist/net/proxy-dispatcher.d.ts +0 -37
  192. package/dist/net/proxy-dispatcher.d.ts.map +1 -1
  193. package/dist/net/proxy-dispatcher.js +0 -40
  194. package/dist/net/proxy-dispatcher.js.map +1 -1
  195. package/dist/net/public-fetch.d.ts +53 -0
  196. package/dist/net/public-fetch.d.ts.map +1 -0
  197. package/dist/net/public-fetch.js +143 -0
  198. package/dist/net/public-fetch.js.map +1 -0
  199. package/dist/net/public-page-report.d.ts +26 -0
  200. package/dist/net/public-page-report.d.ts.map +1 -0
  201. package/dist/net/public-page-report.js +145 -0
  202. package/dist/net/public-page-report.js.map +1 -0
  203. package/dist/net/redirect-safe-fetch.d.ts +14 -0
  204. package/dist/net/redirect-safe-fetch.d.ts.map +1 -0
  205. package/dist/net/redirect-safe-fetch.js +61 -0
  206. package/dist/net/redirect-safe-fetch.js.map +1 -0
  207. package/dist/net/session-recovery-fetch.d.ts +7 -0
  208. package/dist/net/session-recovery-fetch.d.ts.map +1 -0
  209. package/dist/net/session-recovery-fetch.js +139 -0
  210. package/dist/net/session-recovery-fetch.js.map +1 -0
  211. package/dist/net/site-basic-auth.d.ts +1 -59
  212. package/dist/net/site-basic-auth.d.ts.map +1 -1
  213. package/dist/net/site-basic-auth.js +5 -94
  214. package/dist/net/site-basic-auth.js.map +1 -1
  215. package/dist/package-version.d.ts +2 -0
  216. package/dist/package-version.d.ts.map +1 -0
  217. package/dist/package-version.js +15 -0
  218. package/dist/package-version.js.map +1 -0
  219. package/dist/platform/detect.d.ts +0 -54
  220. package/dist/platform/detect.d.ts.map +1 -1
  221. package/dist/platform/detect.js +0 -53
  222. package/dist/platform/detect.js.map +1 -1
  223. package/dist/platform/index.d.ts +0 -100
  224. package/dist/platform/index.d.ts.map +1 -1
  225. package/dist/platform/index.js +0 -106
  226. package/dist/platform/index.js.map +1 -1
  227. package/dist/platform/joomla.d.ts +0 -35
  228. package/dist/platform/joomla.d.ts.map +1 -1
  229. package/dist/platform/joomla.js +0 -35
  230. package/dist/platform/joomla.js.map +1 -1
  231. package/dist/proxy/bridge.d.ts +36 -76
  232. package/dist/proxy/bridge.d.ts.map +1 -1
  233. package/dist/proxy/bridge.js +443 -136
  234. package/dist/proxy/bridge.js.map +1 -1
  235. package/dist/proxy/confirm-elicitation.d.ts +22 -0
  236. package/dist/proxy/confirm-elicitation.d.ts.map +1 -0
  237. package/dist/proxy/confirm-elicitation.js +170 -0
  238. package/dist/proxy/confirm-elicitation.js.map +1 -0
  239. package/dist/proxy/confirm-question-contract.d.ts +6 -0
  240. package/dist/proxy/confirm-question-contract.d.ts.map +1 -0
  241. package/dist/proxy/confirm-question-contract.js +9 -0
  242. package/dist/proxy/confirm-question-contract.js.map +1 -0
  243. package/dist/proxy/confirm-question.d.ts +2 -0
  244. package/dist/proxy/confirm-question.d.ts.map +1 -0
  245. package/dist/proxy/confirm-question.js +125 -0
  246. package/dist/proxy/confirm-question.js.map +1 -0
  247. package/dist/proxy/instructions.d.ts +4 -0
  248. package/dist/proxy/instructions.d.ts.map +1 -0
  249. package/dist/proxy/instructions.js +12 -0
  250. package/dist/proxy/instructions.js.map +1 -0
  251. package/dist/proxy/mode.d.ts +14 -9
  252. package/dist/proxy/mode.d.ts.map +1 -1
  253. package/dist/proxy/mode.js +58 -34
  254. package/dist/proxy/mode.js.map +1 -1
  255. package/dist/proxy/multi-site.d.ts +42 -0
  256. package/dist/proxy/multi-site.d.ts.map +1 -0
  257. package/dist/proxy/multi-site.js +134 -0
  258. package/dist/proxy/multi-site.js.map +1 -0
  259. package/dist/proxy/request-headers.d.ts +9 -0
  260. package/dist/proxy/request-headers.d.ts.map +1 -0
  261. package/dist/proxy/request-headers.js +17 -0
  262. package/dist/proxy/request-headers.js.map +1 -0
  263. package/dist/proxy/shadow-tools.d.ts +9 -0
  264. package/dist/proxy/shadow-tools.d.ts.map +1 -0
  265. package/dist/proxy/shadow-tools.js +42 -0
  266. package/dist/proxy/shadow-tools.js.map +1 -0
  267. package/dist/proxy/tools-list-cap.d.ts +7 -0
  268. package/dist/proxy/tools-list-cap.d.ts.map +1 -0
  269. package/dist/proxy/tools-list-cap.js +14 -0
  270. package/dist/proxy/tools-list-cap.js.map +1 -0
  271. package/dist/proxy/transport-uncertainty.d.ts +2 -0
  272. package/dist/proxy/transport-uncertainty.d.ts.map +1 -0
  273. package/dist/proxy/transport-uncertainty.js +8 -0
  274. package/dist/proxy/transport-uncertainty.js.map +1 -0
  275. package/dist/proxy/upstream-error.d.ts +7 -0
  276. package/dist/proxy/upstream-error.d.ts.map +1 -0
  277. package/dist/proxy/upstream-error.js +35 -0
  278. package/dist/proxy/upstream-error.js.map +1 -0
  279. package/dist/proxy/wire-dialect.d.ts +5 -0
  280. package/dist/proxy/wire-dialect.d.ts.map +1 -0
  281. package/dist/proxy/wire-dialect.js +33 -0
  282. package/dist/proxy/wire-dialect.js.map +1 -0
  283. package/dist/server.d.ts +14 -82
  284. package/dist/server.d.ts.map +1 -1
  285. package/dist/server.js +107 -203
  286. package/dist/server.js.map +1 -1
  287. package/dist/setup/banner-color.d.ts +13 -0
  288. package/dist/setup/banner-color.d.ts.map +1 -0
  289. package/dist/setup/banner-color.js +93 -0
  290. package/dist/setup/banner-color.js.map +1 -0
  291. package/dist/setup/banner.d.ts +22 -0
  292. package/dist/setup/banner.d.ts.map +1 -0
  293. package/dist/setup/banner.js +119 -0
  294. package/dist/setup/banner.js.map +1 -0
  295. package/dist/setup/ca-recovery.d.ts +20 -0
  296. package/dist/setup/ca-recovery.d.ts.map +1 -0
  297. package/dist/setup/ca-recovery.js +92 -0
  298. package/dist/setup/ca-recovery.js.map +1 -0
  299. package/dist/setup/closing.d.ts +15 -0
  300. package/dist/setup/closing.d.ts.map +1 -0
  301. package/dist/setup/closing.js +43 -0
  302. package/dist/setup/closing.js.map +1 -0
  303. package/dist/setup/corporate-ca.d.ts +16 -0
  304. package/dist/setup/corporate-ca.d.ts.map +1 -0
  305. package/dist/setup/corporate-ca.js +32 -0
  306. package/dist/setup/corporate-ca.js.map +1 -0
  307. package/dist/setup/host-platform.d.ts +8 -0
  308. package/dist/setup/host-platform.d.ts.map +1 -0
  309. package/dist/setup/host-platform.js +21 -0
  310. package/dist/setup/host-platform.js.map +1 -0
  311. package/dist/setup/install-configs.d.ts +18 -0
  312. package/dist/setup/install-configs.d.ts.map +1 -0
  313. package/dist/setup/install-configs.js +70 -0
  314. package/dist/setup/install-configs.js.map +1 -0
  315. package/dist/setup/multi-site-loop.d.ts +14 -0
  316. package/dist/setup/multi-site-loop.d.ts.map +1 -0
  317. package/dist/setup/multi-site-loop.js +20 -0
  318. package/dist/setup/multi-site-loop.js.map +1 -0
  319. package/dist/setup/phases.d.ts +18 -0
  320. package/dist/setup/phases.d.ts.map +1 -0
  321. package/dist/setup/phases.js +55 -0
  322. package/dist/setup/phases.js.map +1 -0
  323. package/dist/setup/registry-remedy.d.ts +12 -0
  324. package/dist/setup/registry-remedy.d.ts.map +1 -0
  325. package/dist/setup/registry-remedy.js +37 -0
  326. package/dist/setup/registry-remedy.js.map +1 -0
  327. package/dist/setup/resume.d.ts +28 -0
  328. package/dist/setup/resume.d.ts.map +1 -0
  329. package/dist/setup/resume.js +99 -0
  330. package/dist/setup/resume.js.map +1 -0
  331. package/dist/setup-ca-env.d.ts +0 -30
  332. package/dist/setup-ca-env.d.ts.map +1 -1
  333. package/dist/setup-ca-env.js +0 -28
  334. package/dist/setup-ca-env.js.map +1 -1
  335. package/dist/setup-ca-reprobe.d.ts +0 -25
  336. package/dist/setup-ca-reprobe.d.ts.map +1 -1
  337. package/dist/setup-ca-reprobe.js +0 -34
  338. package/dist/setup-ca-reprobe.js.map +1 -1
  339. package/dist/setup-cli-confirm.d.ts +0 -34
  340. package/dist/setup-cli-confirm.d.ts.map +1 -1
  341. package/dist/setup-cli-confirm.js +0 -36
  342. package/dist/setup-cli-confirm.js.map +1 -1
  343. package/dist/setup-cli.d.ts +6 -167
  344. package/dist/setup-cli.d.ts.map +1 -1
  345. package/dist/setup-cli.js +161 -173
  346. package/dist/setup-cli.js.map +1 -1
  347. package/dist/setup-npx-spec.d.ts +0 -36
  348. package/dist/setup-npx-spec.d.ts.map +1 -1
  349. package/dist/setup-npx-spec.js +0 -38
  350. package/dist/setup-npx-spec.js.map +1 -1
  351. package/dist/setup-prompts.d.ts +5 -70
  352. package/dist/setup-prompts.d.ts.map +1 -1
  353. package/dist/setup-prompts.js +67 -107
  354. package/dist/setup-prompts.js.map +1 -1
  355. package/dist/setup-token.d.ts +0 -34
  356. package/dist/setup-token.d.ts.map +1 -1
  357. package/dist/setup-token.js +0 -40
  358. package/dist/setup-token.js.map +1 -1
  359. package/dist/setup-wizard-defaults.d.ts +0 -36
  360. package/dist/setup-wizard-defaults.d.ts.map +1 -1
  361. package/dist/setup-wizard-defaults.js +0 -75
  362. package/dist/setup-wizard-defaults.js.map +1 -1
  363. package/dist/setup-wizard-handshake.d.ts +1 -19
  364. package/dist/setup-wizard-handshake.d.ts.map +1 -1
  365. package/dist/setup-wizard-handshake.js +8 -45
  366. package/dist/setup-wizard-handshake.js.map +1 -1
  367. package/dist/setup-wizard-types.d.ts +16 -209
  368. package/dist/setup-wizard-types.d.ts.map +1 -1
  369. package/dist/setup-wizard-types.js +0 -9
  370. package/dist/setup-wizard-types.js.map +1 -1
  371. package/dist/setup-wizard.d.ts +0 -28
  372. package/dist/setup-wizard.d.ts.map +1 -1
  373. package/dist/setup-wizard.js +167 -412
  374. package/dist/setup-wizard.js.map +1 -1
  375. package/dist/setup.d.ts +0 -15
  376. package/dist/setup.d.ts.map +1 -1
  377. package/dist/setup.js +0 -15
  378. package/dist/setup.js.map +1 -1
  379. package/dist/sites/bootstrap.d.ts +0 -38
  380. package/dist/sites/bootstrap.d.ts.map +1 -1
  381. package/dist/sites/bootstrap.js +0 -44
  382. package/dist/sites/bootstrap.js.map +1 -1
  383. package/dist/sites/cli/add-site.d.ts +0 -76
  384. package/dist/sites/cli/add-site.d.ts.map +1 -1
  385. package/dist/sites/cli/add-site.js +0 -71
  386. package/dist/sites/cli/add-site.js.map +1 -1
  387. package/dist/sites/cli/list-sites.d.ts +0 -31
  388. package/dist/sites/cli/list-sites.d.ts.map +1 -1
  389. package/dist/sites/cli/list-sites.js +0 -45
  390. package/dist/sites/cli/list-sites.js.map +1 -1
  391. package/dist/sites/cli/remove-site.d.ts +0 -37
  392. package/dist/sites/cli/remove-site.d.ts.map +1 -1
  393. package/dist/sites/cli/remove-site.js +0 -37
  394. package/dist/sites/cli/remove-site.js.map +1 -1
  395. package/dist/sites/cli/set-default.d.ts +0 -25
  396. package/dist/sites/cli/set-default.d.ts.map +1 -1
  397. package/dist/sites/cli/set-default.js +0 -22
  398. package/dist/sites/cli/set-default.js.map +1 -1
  399. package/dist/sites/cli/test-site.d.ts +0 -44
  400. package/dist/sites/cli/test-site.d.ts.map +1 -1
  401. package/dist/sites/cli/test-site.js +0 -39
  402. package/dist/sites/cli/test-site.js.map +1 -1
  403. package/dist/sites/client-pool.d.ts +11 -164
  404. package/dist/sites/client-pool.d.ts.map +1 -1
  405. package/dist/sites/client-pool.js +73 -194
  406. package/dist/sites/client-pool.js.map +1 -1
  407. package/dist/sites/config-problem.d.ts +2 -0
  408. package/dist/sites/config-problem.d.ts.map +1 -0
  409. package/dist/sites/config-problem.js +13 -0
  410. package/dist/sites/config-problem.js.map +1 -0
  411. package/dist/sites/env-bridge.d.ts +0 -69
  412. package/dist/sites/env-bridge.d.ts.map +1 -1
  413. package/dist/sites/env-bridge.js +2 -71
  414. package/dist/sites/env-bridge.js.map +1 -1
  415. package/dist/sites/op-inject.d.ts +23 -0
  416. package/dist/sites/op-inject.d.ts.map +1 -0
  417. package/dist/sites/op-inject.js +131 -0
  418. package/dist/sites/op-inject.js.map +1 -0
  419. package/dist/sites/paths.d.ts +0 -19
  420. package/dist/sites/paths.d.ts.map +1 -1
  421. package/dist/sites/paths.js +0 -19
  422. package/dist/sites/paths.js.map +1 -1
  423. package/dist/sites/probe.d.ts +1 -47
  424. package/dist/sites/probe.d.ts.map +1 -1
  425. package/dist/sites/probe.js +4 -46
  426. package/dist/sites/probe.js.map +1 -1
  427. package/dist/sites/registry.d.ts +4 -135
  428. package/dist/sites/registry.d.ts.map +1 -1
  429. package/dist/sites/registry.js +4 -98
  430. package/dist/sites/registry.js.map +1 -1
  431. package/dist/sites/schema.d.ts +3 -51
  432. package/dist/sites/schema.d.ts.map +1 -1
  433. package/dist/sites/schema.js +6 -52
  434. package/dist/sites/schema.js.map +1 -1
  435. package/dist/sites/secret-resolver.d.ts +6 -76
  436. package/dist/sites/secret-resolver.d.ts.map +1 -1
  437. package/dist/sites/secret-resolver.js +39 -104
  438. package/dist/sites/secret-resolver.js.map +1 -1
  439. package/dist/sites/store.d.ts +12 -69
  440. package/dist/sites/store.d.ts.map +1 -1
  441. package/dist/sites/store.js +37 -86
  442. package/dist/sites/store.js.map +1 -1
  443. package/dist/sites/substituted-registry.d.ts +11 -0
  444. package/dist/sites/substituted-registry.d.ts.map +1 -0
  445. package/dist/sites/substituted-registry.js +13 -0
  446. package/dist/sites/substituted-registry.js.map +1 -0
  447. package/dist/sites/tools/fetch-public-url.d.ts +4 -0
  448. package/dist/sites/tools/fetch-public-url.d.ts.map +1 -0
  449. package/dist/sites/tools/fetch-public-url.js +231 -0
  450. package/dist/sites/tools/fetch-public-url.js.map +1 -0
  451. package/dist/sites/tools/index.d.ts +2 -26
  452. package/dist/sites/tools/index.d.ts.map +1 -1
  453. package/dist/sites/tools/index.js +5 -28
  454. package/dist/sites/tools/index.js.map +1 -1
  455. package/dist/sites/tools/sites-list.d.ts +3 -47
  456. package/dist/sites/tools/sites-list.d.ts.map +1 -1
  457. package/dist/sites/tools/sites-list.js +68 -80
  458. package/dist/sites/tools/sites-list.js.map +1 -1
  459. package/dist/sites/tools/sites-overview.d.ts +4 -0
  460. package/dist/sites/tools/sites-overview.d.ts.map +1 -0
  461. package/dist/sites/tools/sites-overview.js +209 -0
  462. package/dist/sites/tools/sites-overview.js.map +1 -0
  463. package/dist/sites/tools/sites-test.d.ts +2 -45
  464. package/dist/sites/tools/sites-test.d.ts.map +1 -1
  465. package/dist/sites/tools/sites-test.js +1 -56
  466. package/dist/sites/tools/sites-test.js.map +1 -1
  467. package/dist/sites/tools/use-site.d.ts +2 -45
  468. package/dist/sites/tools/use-site.d.ts.map +1 -1
  469. package/dist/sites/tools/use-site.js +31 -80
  470. package/dist/sites/tools/use-site.js.map +1 -1
  471. package/dist/sites/unknown-name-result.d.ts +10 -0
  472. package/dist/sites/unknown-name-result.d.ts.map +1 -0
  473. package/dist/sites/unknown-name-result.js +13 -0
  474. package/dist/sites/unknown-name-result.js.map +1 -0
  475. package/dist/skill-instructions.d.ts +7 -0
  476. package/dist/skill-instructions.d.ts.map +1 -0
  477. package/dist/skill-instructions.js +84 -0
  478. package/dist/skill-instructions.js.map +1 -0
  479. package/dist/skill-loader.d.ts +0 -102
  480. package/dist/skill-loader.d.ts.map +1 -1
  481. package/dist/skill-loader.js +4 -142
  482. package/dist/skill-loader.js.map +1 -1
  483. package/dist/skill-manifest.d.ts +0 -20
  484. package/dist/skill-manifest.d.ts.map +1 -1
  485. package/dist/skill-manifest.js +1 -21
  486. package/dist/skill-manifest.js.map +1 -1
  487. package/dist/skill-topics.d.ts +19 -0
  488. package/dist/skill-topics.d.ts.map +1 -0
  489. package/dist/skill-topics.js +181 -0
  490. package/dist/skill-topics.js.map +1 -0
  491. package/dist/tools/active-site.d.ts +16 -0
  492. package/dist/tools/active-site.d.ts.map +1 -0
  493. package/dist/tools/active-site.js +55 -0
  494. package/dist/tools/active-site.js.map +1 -0
  495. package/dist/tools/bind-guidance.d.ts +2 -72
  496. package/dist/tools/bind-guidance.d.ts.map +1 -1
  497. package/dist/tools/bind-guidance.js +2 -72
  498. package/dist/tools/bind-guidance.js.map +1 -1
  499. package/dist/tools/budgeted-table.d.ts +16 -0
  500. package/dist/tools/budgeted-table.d.ts.map +1 -0
  501. package/dist/tools/budgeted-table.js +203 -0
  502. package/dist/tools/budgeted-table.js.map +1 -0
  503. package/dist/tools/elements/bind-output-schema.d.ts +69 -0
  504. package/dist/tools/elements/bind-output-schema.d.ts.map +1 -0
  505. package/dist/tools/elements/bind-output-schema.js +64 -0
  506. package/dist/tools/elements/bind-output-schema.js.map +1 -0
  507. package/dist/tools/elements/builders.d.ts +1 -22
  508. package/dist/tools/elements/builders.d.ts.map +1 -1
  509. package/dist/tools/elements/builders.js +171 -133
  510. package/dist/tools/elements/builders.js.map +1 -1
  511. package/dist/tools/elements/index.d.ts +0 -26
  512. package/dist/tools/elements/index.d.ts.map +1 -1
  513. package/dist/tools/elements/index.js +0 -25
  514. package/dist/tools/elements/index.js.map +1 -1
  515. package/dist/tools/elements/read-output-schemas.d.ts +121 -0
  516. package/dist/tools/elements/read-output-schemas.d.ts.map +1 -0
  517. package/dist/tools/elements/read-output-schemas.js +225 -0
  518. package/dist/tools/elements/read-output-schemas.js.map +1 -0
  519. package/dist/tools/elements/write-output-schemas.d.ts +185 -0
  520. package/dist/tools/elements/write-output-schemas.d.ts.map +1 -0
  521. package/dist/tools/elements/write-output-schemas.js +98 -0
  522. package/dist/tools/elements/write-output-schemas.js.map +1 -0
  523. package/dist/tools/elements.d.ts +0 -11
  524. package/dist/tools/elements.d.ts.map +1 -1
  525. package/dist/tools/elements.js +0 -11
  526. package/dist/tools/elements.js.map +1 -1
  527. package/dist/tools/format/health-format.d.ts +42 -43
  528. package/dist/tools/format/health-format.d.ts.map +1 -1
  529. package/dist/tools/format/health-format.js +32 -55
  530. package/dist/tools/format/health-format.js.map +1 -1
  531. package/dist/tools/format/inspection-format.d.ts +4 -49
  532. package/dist/tools/format/inspection-format.d.ts.map +1 -1
  533. package/dist/tools/format/inspection-format.js +46 -114
  534. package/dist/tools/format/inspection-format.js.map +1 -1
  535. package/dist/tools/format/pages-format.d.ts +32 -69
  536. package/dist/tools/format/pages-format.d.ts.map +1 -1
  537. package/dist/tools/format/pages-format.js +115 -133
  538. package/dist/tools/format/pages-format.js.map +1 -1
  539. package/dist/tools/format/sources-format.d.ts +5 -39
  540. package/dist/tools/format/sources-format.d.ts.map +1 -1
  541. package/dist/tools/format/sources-format.js +57 -87
  542. package/dist/tools/format/sources-format.js.map +1 -1
  543. package/dist/tools/health-output-schemas.d.ts +82 -0
  544. package/dist/tools/health-output-schemas.d.ts.map +1 -0
  545. package/dist/tools/health-output-schemas.js +130 -0
  546. package/dist/tools/health-output-schemas.js.map +1 -0
  547. package/dist/tools/health.d.ts +2 -20
  548. package/dist/tools/health.d.ts.map +1 -1
  549. package/dist/tools/health.js +59 -184
  550. package/dist/tools/health.js.map +1 -1
  551. package/dist/tools/index.d.ts +1 -26
  552. package/dist/tools/index.d.ts.map +1 -1
  553. package/dist/tools/index.js +13 -33
  554. package/dist/tools/index.js.map +1 -1
  555. package/dist/tools/inspection.d.ts +21 -17
  556. package/dist/tools/inspection.d.ts.map +1 -1
  557. package/dist/tools/inspection.js +431 -268
  558. package/dist/tools/inspection.js.map +1 -1
  559. package/dist/tools/library.d.ts +118 -126
  560. package/dist/tools/library.d.ts.map +1 -1
  561. package/dist/tools/library.js +723 -456
  562. package/dist/tools/library.js.map +1 -1
  563. package/dist/tools/local-content/builders.d.ts +1 -17
  564. package/dist/tools/local-content/builders.d.ts.map +1 -1
  565. package/dist/tools/local-content/builders.js +105 -48
  566. package/dist/tools/local-content/builders.js.map +1 -1
  567. package/dist/tools/local-content/index.d.ts +0 -15
  568. package/dist/tools/local-content/index.d.ts.map +1 -1
  569. package/dist/tools/local-content/index.js +0 -14
  570. package/dist/tools/local-content/index.js.map +1 -1
  571. package/dist/tools/local-content/schemas.d.ts +31 -47
  572. package/dist/tools/local-content/schemas.d.ts.map +1 -1
  573. package/dist/tools/local-content/schemas.js +33 -62
  574. package/dist/tools/local-content/schemas.js.map +1 -1
  575. package/dist/tools/modules/builders.d.ts +4 -0
  576. package/dist/tools/modules/builders.d.ts.map +1 -0
  577. package/dist/tools/modules/builders.js +58 -0
  578. package/dist/tools/modules/builders.js.map +1 -0
  579. package/dist/tools/modules/index.d.ts +2 -0
  580. package/dist/tools/modules/index.d.ts.map +1 -0
  581. package/dist/tools/modules/index.js +2 -0
  582. package/dist/tools/modules/index.js.map +1 -0
  583. package/dist/tools/modules/module-id-schema.d.ts +4 -0
  584. package/dist/tools/modules/module-id-schema.d.ts.map +1 -0
  585. package/dist/tools/modules/module-id-schema.js +14 -0
  586. package/dist/tools/modules/module-id-schema.js.map +1 -0
  587. package/dist/tools/modules/module-type-fields.d.ts +10 -0
  588. package/dist/tools/modules/module-type-fields.d.ts.map +1 -0
  589. package/dist/tools/modules/module-type-fields.js +34 -0
  590. package/dist/tools/modules/module-type-fields.js.map +1 -0
  591. package/dist/tools/modules/modules-create.d.ts +59 -0
  592. package/dist/tools/modules/modules-create.d.ts.map +1 -0
  593. package/dist/tools/modules/modules-create.js +154 -0
  594. package/dist/tools/modules/modules-create.js.map +1 -0
  595. package/dist/tools/modules/modules-delete.d.ts +51 -0
  596. package/dist/tools/modules/modules-delete.d.ts.map +1 -0
  597. package/dist/tools/modules/modules-delete.js +180 -0
  598. package/dist/tools/modules/modules-delete.js.map +1 -0
  599. package/dist/tools/modules/modules-update.d.ts +43 -0
  600. package/dist/tools/modules/modules-update.d.ts.map +1 -0
  601. package/dist/tools/modules/modules-update.js +177 -0
  602. package/dist/tools/modules/modules-update.js.map +1 -0
  603. package/dist/tools/modules/placement-hints.d.ts +5 -0
  604. package/dist/tools/modules/placement-hints.d.ts.map +1 -0
  605. package/dist/tools/modules/placement-hints.js +90 -0
  606. package/dist/tools/modules/placement-hints.js.map +1 -0
  607. package/dist/tools/modules/placement-ways.d.ts +13 -0
  608. package/dist/tools/modules/placement-ways.d.ts.map +1 -0
  609. package/dist/tools/modules/placement-ways.js +61 -0
  610. package/dist/tools/modules/placement-ways.js.map +1 -0
  611. package/dist/tools/multi-items/builders.d.ts +1 -21
  612. package/dist/tools/multi-items/builders.d.ts.map +1 -1
  613. package/dist/tools/multi-items/builders.js +22 -67
  614. package/dist/tools/multi-items/builders.js.map +1 -1
  615. package/dist/tools/multi-items/index.d.ts +0 -15
  616. package/dist/tools/multi-items/index.d.ts.map +1 -1
  617. package/dist/tools/multi-items/index.js +0 -15
  618. package/dist/tools/multi-items/index.js.map +1 -1
  619. package/dist/tools/multi-items/item-container-map.d.ts +0 -35
  620. package/dist/tools/multi-items/item-container-map.d.ts.map +1 -1
  621. package/dist/tools/multi-items/item-container-map.js +0 -35
  622. package/dist/tools/multi-items/item-container-map.js.map +1 -1
  623. package/dist/tools/multi-items/output-schemas.d.ts +101 -0
  624. package/dist/tools/multi-items/output-schemas.d.ts.map +1 -0
  625. package/dist/tools/multi-items/output-schemas.js +74 -0
  626. package/dist/tools/multi-items/output-schemas.js.map +1 -0
  627. package/dist/tools/navigation/builders.d.ts +3 -0
  628. package/dist/tools/navigation/builders.d.ts.map +1 -0
  629. package/dist/tools/navigation/builders.js +25 -0
  630. package/dist/tools/navigation/builders.js.map +1 -0
  631. package/dist/tools/navigation/index.d.ts +2 -0
  632. package/dist/tools/navigation/index.d.ts.map +1 -0
  633. package/dist/tools/navigation/index.js +2 -0
  634. package/dist/tools/navigation/index.js.map +1 -0
  635. package/dist/tools/navigation/schemas.d.ts +16 -0
  636. package/dist/tools/navigation/schemas.d.ts.map +1 -0
  637. package/dist/tools/navigation/schemas.js +11 -0
  638. package/dist/tools/navigation/schemas.js.map +1 -0
  639. package/dist/tools/output-schema-metadata.d.ts +5 -0
  640. package/dist/tools/output-schema-metadata.d.ts.map +1 -0
  641. package/dist/tools/output-schema-metadata.js +83 -0
  642. package/dist/tools/output-schema-metadata.js.map +1 -0
  643. package/dist/tools/pages/builders.d.ts +1 -41
  644. package/dist/tools/pages/builders.d.ts.map +1 -1
  645. package/dist/tools/pages/builders.js +373 -359
  646. package/dist/tools/pages/builders.js.map +1 -1
  647. package/dist/tools/pages/header-transparency.d.ts +34 -0
  648. package/dist/tools/pages/header-transparency.d.ts.map +1 -0
  649. package/dist/tools/pages/header-transparency.js +85 -0
  650. package/dist/tools/pages/header-transparency.js.map +1 -0
  651. package/dist/tools/pages/index.d.ts +1 -19
  652. package/dist/tools/pages/index.d.ts.map +1 -1
  653. package/dist/tools/pages/index.js +1 -19
  654. package/dist/tools/pages/index.js.map +1 -1
  655. package/dist/tools/pages/schemas.d.ts +392 -224
  656. package/dist/tools/pages/schemas.d.ts.map +1 -1
  657. package/dist/tools/pages/schemas.js +605 -458
  658. package/dist/tools/pages/schemas.js.map +1 -1
  659. package/dist/tools/pages/write-output-schemas.d.ts +139 -0
  660. package/dist/tools/pages/write-output-schemas.d.ts.map +1 -0
  661. package/dist/tools/pages/write-output-schemas.js +138 -0
  662. package/dist/tools/pages/write-output-schemas.js.map +1 -0
  663. package/dist/tools/pages.d.ts +0 -11
  664. package/dist/tools/pages.d.ts.map +1 -1
  665. package/dist/tools/pages.js +0 -11
  666. package/dist/tools/pages.js.map +1 -1
  667. package/dist/tools/pool-resolve-helper.d.ts +0 -52
  668. package/dist/tools/pool-resolve-helper.d.ts.map +1 -1
  669. package/dist/tools/pool-resolve-helper.js +29 -104
  670. package/dist/tools/pool-resolve-helper.js.map +1 -1
  671. package/dist/tools/progress-phases.d.ts +0 -42
  672. package/dist/tools/progress-phases.d.ts.map +1 -1
  673. package/dist/tools/progress-phases.js +0 -44
  674. package/dist/tools/progress-phases.js.map +1 -1
  675. package/dist/tools/response-budget.d.ts +8 -0
  676. package/dist/tools/response-budget.d.ts.map +1 -0
  677. package/dist/tools/response-budget.js +7 -0
  678. package/dist/tools/response-budget.js.map +1 -0
  679. package/dist/tools/shared-schemas.d.ts +12 -43
  680. package/dist/tools/shared-schemas.d.ts.map +1 -1
  681. package/dist/tools/shared-schemas.js +42 -97
  682. package/dist/tools/shared-schemas.js.map +1 -1
  683. package/dist/tools/skill/builders.d.ts +3 -0
  684. package/dist/tools/skill/builders.d.ts.map +1 -0
  685. package/dist/tools/skill/builders.js +81 -0
  686. package/dist/tools/skill/builders.js.map +1 -0
  687. package/dist/tools/sources/builders.d.ts +1 -11
  688. package/dist/tools/sources/builders.d.ts.map +1 -1
  689. package/dist/tools/sources/builders.js +195 -173
  690. package/dist/tools/sources/builders.js.map +1 -1
  691. package/dist/tools/sources/index.d.ts +0 -17
  692. package/dist/tools/sources/index.d.ts.map +1 -1
  693. package/dist/tools/sources/index.js +0 -16
  694. package/dist/tools/sources/index.js.map +1 -1
  695. package/dist/tools/sources/read-output-schemas.d.ts +101 -0
  696. package/dist/tools/sources/read-output-schemas.d.ts.map +1 -0
  697. package/dist/tools/sources/read-output-schemas.js +105 -0
  698. package/dist/tools/sources/read-output-schemas.js.map +1 -0
  699. package/dist/tools/sources/source-name-argument.d.ts +17 -0
  700. package/dist/tools/sources/source-name-argument.d.ts.map +1 -0
  701. package/dist/tools/sources/source-name-argument.js +64 -0
  702. package/dist/tools/sources/source-name-argument.js.map +1 -0
  703. package/dist/tools/sources/write-output-schemas.d.ts +100 -0
  704. package/dist/tools/sources/write-output-schemas.d.ts.map +1 -0
  705. package/dist/tools/sources/write-output-schemas.js +61 -0
  706. package/dist/tools/sources/write-output-schemas.js.map +1 -0
  707. package/dist/tools/sources.d.ts +0 -12
  708. package/dist/tools/sources.d.ts.map +1 -1
  709. package/dist/tools/sources.js +0 -12
  710. package/dist/tools/sources.js.map +1 -1
  711. package/dist/tools/sparse-fields.d.ts +19 -194
  712. package/dist/tools/sparse-fields.d.ts.map +1 -1
  713. package/dist/tools/sparse-fields.js +212 -196
  714. package/dist/tools/sparse-fields.js.map +1 -1
  715. package/dist/tools/strict-input.d.ts +5 -0
  716. package/dist/tools/strict-input.d.ts.map +1 -0
  717. package/dist/tools/strict-input.js +55 -0
  718. package/dist/tools/strict-input.js.map +1 -0
  719. package/dist/tools/sublayout/builders.d.ts +1 -21
  720. package/dist/tools/sublayout/builders.d.ts.map +1 -1
  721. package/dist/tools/sublayout/builders.js +10 -40
  722. package/dist/tools/sublayout/builders.js.map +1 -1
  723. package/dist/tools/sublayout/index.d.ts +1 -11
  724. package/dist/tools/sublayout/index.d.ts.map +1 -1
  725. package/dist/tools/sublayout/index.js +1 -11
  726. package/dist/tools/sublayout/index.js.map +1 -1
  727. package/dist/tools/sublayout/output-schemas.d.ts +57 -0
  728. package/dist/tools/sublayout/output-schemas.d.ts.map +1 -0
  729. package/dist/tools/sublayout/output-schemas.js +51 -0
  730. package/dist/tools/sublayout/output-schemas.js.map +1 -0
  731. package/dist/tools/tool-builder/annotations.d.ts +1 -49
  732. package/dist/tools/tool-builder/annotations.d.ts.map +1 -1
  733. package/dist/tools/tool-builder/annotations.js +9 -49
  734. package/dist/tools/tool-builder/annotations.js.map +1 -1
  735. package/dist/tools/tool-builder/confirm-preview.d.ts +24 -0
  736. package/dist/tools/tool-builder/confirm-preview.d.ts.map +1 -0
  737. package/dist/tools/tool-builder/confirm-preview.js +37 -0
  738. package/dist/tools/tool-builder/confirm-preview.js.map +1 -0
  739. package/dist/tools/tool-builder/define.d.ts +6 -26
  740. package/dist/tools/tool-builder/define.d.ts.map +1 -1
  741. package/dist/tools/tool-builder/define.js +0 -25
  742. package/dist/tools/tool-builder/define.js.map +1 -1
  743. package/dist/tools/tool-builder/index.d.ts +3 -26
  744. package/dist/tools/tool-builder/index.d.ts.map +1 -1
  745. package/dist/tools/tool-builder/index.js +2 -25
  746. package/dist/tools/tool-builder/index.js.map +1 -1
  747. package/dist/tools/tool-builder/results.d.ts +4 -111
  748. package/dist/tools/tool-builder/results.d.ts.map +1 -1
  749. package/dist/tools/tool-builder/results.js +258 -250
  750. package/dist/tools/tool-builder/results.js.map +1 -1
  751. package/dist/tools/tool-builder/types.d.ts +5 -59
  752. package/dist/tools/tool-builder/types.d.ts.map +1 -1
  753. package/dist/tools/tool-builder/types.js +0 -7
  754. package/dist/tools/tool-builder/types.js.map +1 -1
  755. package/dist/tools/tool-builder.d.ts +0 -14
  756. package/dist/tools/tool-builder.d.ts.map +1 -1
  757. package/dist/tools/tool-builder.js +0 -14
  758. package/dist/tools/tool-builder.js.map +1 -1
  759. package/dist/uninstall-skill.d.ts +0 -41
  760. package/dist/uninstall-skill.d.ts.map +1 -1
  761. package/dist/uninstall-skill.js +0 -49
  762. package/dist/uninstall-skill.js.map +1 -1
  763. package/dist/uninstall.d.ts +0 -41
  764. package/dist/uninstall.d.ts.map +1 -1
  765. package/dist/uninstall.js +1 -29
  766. package/dist/uninstall.js.map +1 -1
  767. package/dist/update/update-check.d.ts +0 -26
  768. package/dist/update/update-check.d.ts.map +1 -1
  769. package/dist/update/update-check.js +0 -25
  770. package/dist/update/update-check.js.map +1 -1
  771. package/manifest.json +4 -5
  772. package/package.json +5 -5
  773. package/skills/yt-builder-mcp/SKILL.md +2958 -382
  774. package/dist/tools/elements/handlers-write.d.ts +0 -70
  775. package/dist/tools/elements/handlers-write.d.ts.map +0 -1
  776. package/dist/tools/elements/handlers-write.js +0 -700
  777. package/dist/tools/elements/handlers-write.js.map +0 -1
  778. package/dist/tools/elements/handlers.d.ts +0 -125
  779. package/dist/tools/elements/handlers.d.ts.map +0 -1
  780. package/dist/tools/elements/handlers.js +0 -571
  781. package/dist/tools/elements/handlers.js.map +0 -1
  782. package/dist/tools/elements/layout-hierarchy-rules.d.ts +0 -62
  783. package/dist/tools/elements/layout-hierarchy-rules.d.ts.map +0 -1
  784. package/dist/tools/elements/layout-hierarchy-rules.js +0 -154
  785. package/dist/tools/elements/layout-hierarchy-rules.js.map +0 -1
  786. package/dist/tools/elements/schema-validation.d.ts +0 -96
  787. package/dist/tools/elements/schema-validation.d.ts.map +0 -1
  788. package/dist/tools/elements/schema-validation.js +0 -249
  789. package/dist/tools/elements/schema-validation.js.map +0 -1
  790. package/dist/tools/elicitation.d.ts +0 -87
  791. package/dist/tools/elicitation.d.ts.map +0 -1
  792. package/dist/tools/elicitation.js +0 -100
  793. package/dist/tools/elicitation.js.map +0 -1
  794. package/dist/tools/format/elements-format.d.ts +0 -75
  795. package/dist/tools/format/elements-format.d.ts.map +0 -1
  796. package/dist/tools/format/elements-format.js +0 -324
  797. package/dist/tools/format/elements-format.js.map +0 -1
  798. package/dist/tools/format/source-schema-format.d.ts +0 -74
  799. package/dist/tools/format/source-schema-format.d.ts.map +0 -1
  800. package/dist/tools/format/source-schema-format.js +0 -208
  801. package/dist/tools/format/source-schema-format.js.map +0 -1
  802. package/dist/tools/layout-flatten.d.ts +0 -84
  803. package/dist/tools/layout-flatten.d.ts.map +0 -1
  804. package/dist/tools/layout-flatten.js +0 -129
  805. package/dist/tools/layout-flatten.js.map +0 -1
  806. package/dist/tools/local-content/handlers.d.ts +0 -54
  807. package/dist/tools/local-content/handlers.d.ts.map +0 -1
  808. package/dist/tools/local-content/handlers.js +0 -316
  809. package/dist/tools/local-content/handlers.js.map +0 -1
  810. package/dist/tools/multi-items/clean-implode-handler.d.ts +0 -37
  811. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +0 -1
  812. package/dist/tools/multi-items/clean-implode-handler.js +0 -65
  813. package/dist/tools/multi-items/clean-implode-handler.js.map +0 -1
  814. package/dist/tools/multi-items/format/inspection-format.d.ts +0 -41
  815. package/dist/tools/multi-items/format/inspection-format.d.ts.map +0 -1
  816. package/dist/tools/multi-items/format/inspection-format.js +0 -64
  817. package/dist/tools/multi-items/format/inspection-format.js.map +0 -1
  818. package/dist/tools/multi-items/inspect-handler.d.ts +0 -97
  819. package/dist/tools/multi-items/inspect-handler.d.ts.map +0 -1
  820. package/dist/tools/multi-items/inspect-handler.js +0 -323
  821. package/dist/tools/multi-items/inspect-handler.js.map +0 -1
  822. package/dist/tools/multi-items/inspection-cache.d.ts +0 -85
  823. package/dist/tools/multi-items/inspection-cache.d.ts.map +0 -1
  824. package/dist/tools/multi-items/inspection-cache.js +0 -126
  825. package/dist/tools/multi-items/inspection-cache.js.map +0 -1
  826. package/dist/tools/pages/handlers-audit.d.ts +0 -129
  827. package/dist/tools/pages/handlers-audit.d.ts.map +0 -1
  828. package/dist/tools/pages/handlers-audit.js +0 -704
  829. package/dist/tools/pages/handlers-audit.js.map +0 -1
  830. package/dist/tools/pages/handlers-read.d.ts +0 -95
  831. package/dist/tools/pages/handlers-read.d.ts.map +0 -1
  832. package/dist/tools/pages/handlers-read.js +0 -929
  833. package/dist/tools/pages/handlers-read.js.map +0 -1
  834. package/dist/tools/pages/handlers-write.d.ts +0 -212
  835. package/dist/tools/pages/handlers-write.d.ts.map +0 -1
  836. package/dist/tools/pages/handlers-write.js +0 -418
  837. package/dist/tools/pages/handlers-write.js.map +0 -1
  838. package/dist/tools/pages/target.d.ts +0 -162
  839. package/dist/tools/pages/target.d.ts.map +0 -1
  840. package/dist/tools/pages/target.js +0 -239
  841. package/dist/tools/pages/target.js.map +0 -1
  842. package/dist/tools/sources/handlers-bind.d.ts +0 -148
  843. package/dist/tools/sources/handlers-bind.d.ts.map +0 -1
  844. package/dist/tools/sources/handlers-bind.js +0 -655
  845. package/dist/tools/sources/handlers-bind.js.map +0 -1
  846. package/dist/tools/sources/handlers.d.ts +0 -114
  847. package/dist/tools/sources/handlers.d.ts.map +0 -1
  848. package/dist/tools/sources/handlers.js +0 -285
  849. package/dist/tools/sources/handlers.js.map +0 -1
  850. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts +0 -95
  851. package/dist/tools/sublayout/inspect-sublayout-handler.d.ts.map +0 -1
  852. package/dist/tools/sublayout/inspect-sublayout-handler.js +0 -181
  853. package/dist/tools/sublayout/inspect-sublayout-handler.js.map +0 -1
@@ -1,97 +0,0 @@
1
- /**
2
- * `inspect_multi_items_binding` handler — surfaces Multi-Items binding
3
- * state on an element via REST round-trip.
4
- *
5
- * Companion of the PHP `MultiItemsInspector` — see
6
- * src/modules/builder-source-binding/src/MultiItemsInspector.php
7
- * for the report shape.
8
- *
9
- * Wave-16 #34:
10
- * - 6.1 depth-cap: the human-readable text leg is capped at
11
- * {@link MAX_INSPECTION_DEPTH}; structuredContent stays verbatim so
12
- * it keeps validating against the output schema.
13
- * - 6.4 severity marker: the response carries a typed `hint.severity`
14
- * ("advisory" | "blocking") so the agent can tell a structural
15
- * container-level binding bug apart from informational guidance.
16
- *
17
- * @license MIT
18
- */
19
- import { z } from 'zod';
20
- import { type RestClient } from '../../client.js';
21
- import { type ToolResult } from '../tool-builder.js';
22
- import { InspectionCache } from './inspection-cache.js';
23
- /**
24
- * Severity of the advisory hint the inspector attaches to every report.
25
- * `blocking` means the binding is structurally wrong (sits on the
26
- * container instead of the `*_item` child) and the rendered output will
27
- * be broken until fixed; `advisory` is informational guidance.
28
- */
29
- export type HintSeverity = 'advisory' | 'blocking';
30
- export declare const INSPECT_MULTI_ITEMS_OUTPUT_SCHEMA: z.ZodObject<{
31
- template_id: z.ZodString;
32
- report: z.ZodObject<{
33
- element_path: z.ZodString;
34
- element_type: z.ZodString;
35
- is_container: z.ZodBoolean;
36
- is_item: z.ZodBoolean;
37
- container_type: z.ZodNullable<z.ZodString>;
38
- item_type: z.ZodNullable<z.ZodString>;
39
- current_binding_level: z.ZodEnum<{
40
- container: "container";
41
- item: "item";
42
- none: "none";
43
- }>;
44
- item_child_binding_level: z.ZodOptional<z.ZodEnum<{
45
- item: "item";
46
- none: "none";
47
- }>>;
48
- is_bound: z.ZodOptional<z.ZodBoolean>;
49
- has_implode_directives: z.ZodBoolean;
50
- bound_source_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
- bound_source_exists: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
52
- source_missing_warning: z.ZodOptional<z.ZodString>;
53
- map_location_missing: z.ZodOptional<z.ZodBoolean>;
54
- field_mapping_count: z.ZodOptional<z.ZodNumber>;
55
- zero_field_mappings: z.ZodOptional<z.ZodBoolean>;
56
- iterator_is_leaf_renderer: z.ZodOptional<z.ZodBoolean>;
57
- relation_native_binding: z.ZodOptional<z.ZodBoolean>;
58
- archive_context: z.ZodOptional<z.ZodObject<{
59
- query_name: z.ZodString;
60
- relation: z.ZodString;
61
- relation_field: z.ZodString;
62
- current_term_arg: z.ZodString;
63
- current_term: z.ZodNumber;
64
- }, z.core.$strip>>;
65
- map_location_warning: z.ZodOptional<z.ZodString>;
66
- warning: z.ZodOptional<z.ZodString>;
67
- recommended_fix: z.ZodOptional<z.ZodString>;
68
- }, z.core.$strip>;
69
- etag: z.ZodString;
70
- hint: z.ZodOptional<z.ZodObject<{
71
- severity: z.ZodEnum<{
72
- advisory: "advisory";
73
- blocking: "blocking";
74
- }>;
75
- message: z.ZodString;
76
- }, z.core.$strip>>;
77
- }, z.core.$strip>;
78
- /** The structured inspect payload the handler caches + emits. */
79
- type InspectStructured = Record<string, unknown>;
80
- export interface MultiItemsHandlerDeps {
81
- readonly client: RestClient;
82
- /**
83
- * 6.2 — optional inspection cache. When provided, the handler keys
84
- * results on (template_id, element_path, global-etag) with a 60s TTL.
85
- * The builder injects one shared instance so repeat inspects within
86
- * the TTL skip the REST round-trip; a write bumps the global etag and
87
- * naturally invalidates the entry. Omit it to disable caching (e.g.
88
- * the cold-AI shape-pin tests that assert the raw round-trip).
89
- */
90
- readonly cache?: InspectionCache<InspectStructured>;
91
- }
92
- export declare function handleInspectMultiItemsBinding({ client, cache }: MultiItemsHandlerDeps, { template_id, element_path }: {
93
- template_id: string;
94
- element_path: string;
95
- }): Promise<ToolResult>;
96
- export {};
97
- //# sourceMappingURL=inspect-handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspect-handler.d.ts","sourceRoot":"","sources":["../../../src/tools/multi-items/inspect-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAuC,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAA6C,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AAEnD,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyE5C,CAAC;AAEH,iEAAiE;AACjE,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;CACvD;AAgPD,wBAAsB,8BAA8B,CAChD,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,qBAAqB,EACxC,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC7E,OAAO,CAAC,UAAU,CAAC,CAwCrB"}
@@ -1,323 +0,0 @@
1
- /**
2
- * `inspect_multi_items_binding` handler — surfaces Multi-Items binding
3
- * state on an element via REST round-trip.
4
- *
5
- * Companion of the PHP `MultiItemsInspector` — see
6
- * src/modules/builder-source-binding/src/MultiItemsInspector.php
7
- * for the report shape.
8
- *
9
- * Wave-16 #34:
10
- * - 6.1 depth-cap: the human-readable text leg is capped at
11
- * {@link MAX_INSPECTION_DEPTH}; structuredContent stays verbatim so
12
- * it keeps validating against the output schema.
13
- * - 6.4 severity marker: the response carries a typed `hint.severity`
14
- * ("advisory" | "blocking") so the agent can tell a structural
15
- * container-level binding bug apart from informational guidance.
16
- *
17
- * @license MIT
18
- */
19
- import { z } from 'zod';
20
- import { encodeElementPath, encodeTemplateId } from '../../client.js';
21
- import { errorResult, jsonResult, structuredResult } from '../tool-builder.js';
22
- import { capInspectionDepth } from './format/inspection-format.js';
23
- export const INSPECT_MULTI_ITEMS_OUTPUT_SCHEMA = z.object({
24
- template_id: z.string(),
25
- report: z.object({
26
- element_path: z.string(),
27
- element_type: z.string(),
28
- is_container: z.boolean(),
29
- is_item: z.boolean(),
30
- container_type: z.string().nullable(),
31
- item_type: z.string().nullable(),
32
- current_binding_level: z.enum(['none', 'container', 'item']),
33
- // C7 (2026-06-10) — binding level of the container's first `*_item`
34
- // child. Optional so a pre-C7 backend's report still validates.
35
- item_child_binding_level: z.enum(['none', 'item']).optional(),
36
- // C7 — single honest "is anything bound (here or on the item child)"
37
- // signal. Optional for back-compat with pre-C7 reports.
38
- is_bound: z.boolean().optional(),
39
- has_implode_directives: z.boolean(),
40
- // C7 — bound source name + live-registry existence cross-check.
41
- // `bound_source_exists` is null when the registry is not wired.
42
- bound_source_name: z.string().nullable().optional(),
43
- bound_source_exists: z.boolean().nullable().optional(),
44
- source_missing_warning: z.string().optional(),
45
- // F143 — true when a bound map_item/map carries no resolved
46
- // `location` leaf (the map renders 0 markers). Optional so reports
47
- // for non-map elements (and pre-F143 backends) still validate.
48
- map_location_missing: z.boolean().optional(),
49
- // F174 — number of field mappings on the bound node (0 when unbound /
50
- // mapping-less). Optional so a pre-F174 backend's report still validates.
51
- field_mapping_count: z.number().int().nonnegative().optional(),
52
- // F174 — true when the element IS bound but carries 0 field mappings
53
- // (the N clones render only the template's static placeholder text).
54
- // Optional for back-compat with pre-F174 reports.
55
- zero_field_mappings: z.boolean().optional(),
56
- // F189 — true when a `…List` source sits on a LEAF renderer (grid_item /
57
- // any non-container) with non-empty children (the children never paint).
58
- // Optional so reports for other shapes + pre-F189 backends still validate.
59
- iterator_is_leaf_renderer: z.boolean().optional(),
60
- // B8 (2026-06-27) — true when the binding is a relation-traversal NATIVE
61
- // binding (dotted query.name + current-term `id` arg), e.g.
62
- // categoryFaqs.taxonomyCategoryFaq → faq. A VALID, correctly-scoped item
63
- // binding — the verdict must NOT false-flag it. Optional so reports for
64
- // non-relation bindings + pre-B8 backends still validate.
65
- relation_native_binding: z.boolean().optional(),
66
- // B8 — the archive-context descriptor accompanying the flag (mirrors
67
- // SourceRegistry::getSourceSchema()'s archive_context record). Optional
68
- // (present only alongside relation_native_binding).
69
- archive_context: z
70
- .object({
71
- query_name: z.string(),
72
- relation: z.string(),
73
- relation_field: z.string(),
74
- current_term_arg: z.string(),
75
- current_term: z.number().int(),
76
- })
77
- .optional(),
78
- // F39 (2026-06-10) — emitted when a map/map_item is bound without a
79
- // `location` field mapping (renders 0 markers). Optional so non-map
80
- // reports still validate. Companion human-readable signal to the
81
- // structured `map_location_missing` boolean above.
82
- map_location_warning: z.string().optional(),
83
- warning: z.string().optional(),
84
- recommended_fix: z.string().optional(),
85
- }),
86
- etag: z.string(),
87
- // 6.4 — typed advisory/blocking marker. Optional so a verbatim REST
88
- // passthrough that predates this field still validates, but the
89
- // handler always populates it.
90
- hint: z
91
- .object({
92
- severity: z.enum(['advisory', 'blocking']),
93
- message: z.string(),
94
- })
95
- .optional(),
96
- });
97
- /**
98
- * Classify the report into an advisory/blocking hint.
99
- *
100
- * C7 (2026-06-10) — the verdict now reflects what is ACTUALLY bound, not
101
- * just the container-node's own binding level. Three structural bugs the
102
- * pre-C7 single-axis (`current_binding_level`) classifier produced:
103
- *
104
- * 1. A container bound *through* its `*_item` child reported "none" + a
105
- * reassuring "structurally correct" hint. Now `is_bound` /
106
- * `item_child_binding_level` make the child binding visible.
107
- * 2. A fully-unbound element was called "structurally correct". Now a
108
- * false `is_bound` yields an honest "no source binding present" hint.
109
- * 3. A binding to a since-deleted source looked fine. Now
110
- * `bound_source_exists === false` is `blocking` with the missing-
111
- * source message.
112
- *
113
- * Precedence: container-level binding (blocking) → deleted source
114
- * (blocking) → nothing bound (advisory, honest) → B8 relation-traversal
115
- * native binding (advisory, "structurally correct (relation/current-term)")
116
- * → bound + live (advisory, "structurally correct").
117
- */
118
- function buildHint(report) {
119
- const r = (report ?? {});
120
- // F143 — a bound map with no resolved `location` leaf renders 0
121
- // markers. That is a render-breaking bug, not advisory: surface it as
122
- // `blocking` even though the binding level itself is "item". This is the
123
- // structured-boolean entry point; the human-readable `map_location_warning`
124
- // (F39, branch 1b below) is the companion signal a different backend emits.
125
- if (r.map_location_missing === true) {
126
- const fix = typeof r.recommended_fix === 'string' && r.recommended_fix !== ''
127
- ? r.recommended_fix
128
- : 'Map a single `location` field holding a combined "lat,lng" string.';
129
- return {
130
- severity: 'blocking',
131
- message: 'Map is bound but no `location` field is mapped — no markers will ' +
132
- `render. ${fix}`,
133
- };
134
- }
135
- // F189 — a `…List` source on a LEAF renderer (grid_item / any non-container)
136
- // that carries non-empty children: repeatSource clones it per row but the
137
- // template renders ONLY its own slots, never its nested children → the
138
- // children are render-dead and the grid shows placeholders. Render-breaking
139
- // tier → blocking. The PHP inspector ships the human-readable `warning` with
140
- // both recipes; surface it verbatim. Runs before the zero-mappings / generic
141
- // branches so the iterator-shape bug is named first.
142
- if (r.iterator_is_leaf_renderer === true) {
143
- const msg = typeof r.warning === 'string' && r.warning !== ''
144
- ? r.warning
145
- : 'This element iterates a list source but is a LEAF renderer ' +
146
- '(grid_item / *_item) — its nested children are never rendered. ' +
147
- 'Map fields onto the item\'s own slots (title/meta/content/image), ' +
148
- 'or move the List onto a container (column/fragment/row) with #parent leaves.';
149
- return { severity: 'blocking', message: msg };
150
- }
151
- // F174 — a bound element with ZERO field mappings clones the container N
152
- // times but every clone renders only the template's static placeholder
153
- // text ("Title" / "Lorem ipsum"), not real data. The binding is
154
- // structurally item-level so every other signal reports healthy. Same
155
- // render-breaking tier as map_location_missing → blocking. The PHP
156
- // inspector ships the human-readable `warning`; surface it verbatim.
157
- if (r.zero_field_mappings === true) {
158
- const msg = typeof r.warning === 'string' && r.warning !== ''
159
- ? r.warning
160
- : 'Bound to a source but with 0 field mappings — the cloned items ' +
161
- 'render the template\'s static placeholder text (Title / Lorem ipsum), ' +
162
- 'not real data. Re-bind with field_mappings AT THIS ITEM ' +
163
- '(element_bind_source on this same element with non-empty ' +
164
- 'field_mappings). Do NOT bind the individual child leaves instead: ' +
165
- 'on YT5 a "#parent" leaf bind written directly under an iterating ' +
166
- 'item renders placeholder text.';
167
- return { severity: 'blocking', message: msg };
168
- }
169
- // (1) Container-level binding — the original structural bug. Blocking.
170
- if (r.current_binding_level === 'container') {
171
- const fix = typeof r.recommended_fix === 'string' && r.recommended_fix !== ''
172
- ? r.recommended_fix
173
- : 'Move the binding to the first `*_item` child element.';
174
- return { severity: 'blocking', message: fix };
175
- }
176
- // (1b) F39 — a map/map_item bound WITHOUT a `location` field mapping
177
- // renders zero markers. The PHP inspector only emits map_location_warning
178
- // for a genuinely-bound map pair, so its mere presence is the signal.
179
- // Blocking, because the map looks healthy but shows nothing.
180
- if (typeof r.map_location_warning === 'string' && r.map_location_warning !== '') {
181
- return { severity: 'blocking', message: r.map_location_warning };
182
- }
183
- // (2) C7 bug 3 — bound source no longer exists in the live registry.
184
- // `bound_source_exists` is only a hard `false` when the registry was
185
- // wired AND the name was absent; `null`/`undefined` (unknown) never trips
186
- // this branch.
187
- if (r.bound_source_exists === false) {
188
- const msg = typeof r.source_missing_warning === 'string' && r.source_missing_warning !== ''
189
- ? r.source_missing_warning
190
- : 'The bound source no longer exists in the live source registry — ' +
191
- 'the frontend will render empty. Re-bind to a current source.';
192
- return { severity: 'blocking', message: msg };
193
- }
194
- // (3) C7 bug 2 — nothing is actually bound (neither this node nor, for a
195
- // container, its item child). `is_bound` is the authoritative signal;
196
- // when a pre-C7 backend omits it, fall back to current_binding_level.
197
- const isBound = typeof r.is_bound === 'boolean'
198
- ? r.is_bound
199
- : r.current_binding_level === 'item';
200
- if (!isBound) {
201
- return {
202
- severity: 'advisory',
203
- message: 'No source binding present on this element' +
204
- (r.current_binding_level !== 'item' && r.item_child_binding_level !== 'item'
205
- ? ' or its item child'
206
- : '') +
207
- '. Bind a source directly: yootheme_builder_element_bind_source({ ' +
208
- 'template_id, element_path, source_name, field_mappings }) — for a ' +
209
- 'Multi-Items container, bind on the first `*_item` child.',
210
- };
211
- }
212
- // (3b) B8 — a relation-traversal NATIVE binding (dotted query.name +
213
- // current-term `id` arg, e.g. categoryFaqs.taxonomyCategoryFaq → faq). It is
214
- // a VALID, correctly-scoped item-level binding. The pre-B8 verdict had no
215
- // signal for it and fell through to the generic "structurally correct"
216
- // message; worse, an over-eager existence check could mis-read the dotted
217
- // name. Surface an EXPLICIT advisory naming the relation + current-term so
218
- // the agent stops treating a working archive binding as broken/none. Runs
219
- // AFTER every blocking branch (deleted source / container-level / map /
220
- // zero-mappings / iterator-leaf) and after the unbound check — so a genuinely
221
- // broken relation binding still reports blocking, never this advisory.
222
- if (r.relation_native_binding === true) {
223
- const ac = r.archive_context !== null && typeof r.archive_context === 'object'
224
- ? r.archive_context
225
- : {};
226
- const relation = typeof ac.relation === 'string' && ac.relation !== '' ? ac.relation : 'relation';
227
- const relationField = typeof ac.relation_field === 'string' && ac.relation_field !== '' ? ac.relation_field : 'the relation field';
228
- const termArg = typeof ac.current_term_arg === 'string' && ac.current_term_arg !== '' ? ac.current_term_arg : 'id';
229
- return {
230
- severity: 'advisory',
231
- message: 'Binding looks structurally correct (relation/current-term). This is a ' +
232
- `native relation-traversal binding — it follows the "${relation}" relation ` +
233
- `to "${relationField}" scoped to the CURRENT term (${termArg}: 0), the canonical ` +
234
- 'archive-context shape. It renders the current term\'s related items on an ' +
235
- 'archive/term page and is correctly scoped — NOT broken. Verify on a real ' +
236
- 'archive/term URL if it still renders empty.',
237
- };
238
- }
239
- // (4) C7 bug 1 — bound through the item child. Surface that explicitly so
240
- // the agent does not mistake the container's own "none" level for "unbound".
241
- if (r.item_child_binding_level === 'item') {
242
- return {
243
- severity: 'advisory',
244
- message: 'Binding looks structurally correct — the source is bound at the ' +
245
- 'item level (on the `*_item` child), which is the canonical ' +
246
- 'Multi-Items shape. Verify element_path via ' +
247
- 'yootheme_builder_element_list if the source still renders empty.',
248
- };
249
- }
250
- // (5) Genuinely item-bound with a live (or unknown) source.
251
- return {
252
- severity: 'advisory',
253
- message: 'Binding looks structurally correct. Verify element_path via ' +
254
- 'yootheme_builder_element_list if the source still renders empty.',
255
- };
256
- }
257
- /**
258
- * Render a structured inspect payload into the ToolResult envelope.
259
- * Shared by the cache-hit and cache-miss paths so both legs (text +
260
- * structuredContent) are built identically.
261
- *
262
- * 6.1 — the text leg is depth-capped so a deeply-nested report cannot
263
- * balloon the LLM context. structuredContent stays verbatim so it keeps
264
- * validating against INSPECT_MULTI_ITEMS_OUTPUT_SCHEMA
265
- * (additionalProperties:false).
266
- */
267
- function renderInspectResult(structured) {
268
- const text = jsonResult(capInspectionDepth(structured));
269
- return structuredResult(text, structured);
270
- }
271
- export async function handleInspectMultiItemsBinding({ client, cache }, { template_id, element_path }) {
272
- const encoded = encodeElementPath(element_path);
273
- try {
274
- // 6.2 — when a cache is wired, key on the GLOBAL state etag. Every
275
- // write tool bumps it, so a mutated template surfaces a fresh etag
276
- // → a new key → a guaranteed miss. Read-only repeats within the TTL
277
- // skip the inspect round-trip below.
278
- let cacheEtag;
279
- if (cache !== undefined) {
280
- cacheEtag = await fetchStateEtag(client);
281
- if (cacheEtag !== undefined) {
282
- const cached = cache.get(template_id, element_path, cacheEtag);
283
- if (cached !== undefined) {
284
- return renderInspectResult(cached);
285
- }
286
- }
287
- }
288
- const data = await client.get(`/pages/${encodeTemplateId(template_id)}/elements/${encoded}/multi-items/inspect`);
289
- // 6.4 — attach the typed severity marker to the structured payload.
290
- const hint = buildHint(data.report);
291
- const structured = { ...data, hint };
292
- if (cache !== undefined && cacheEtag !== undefined) {
293
- cache.set(template_id, element_path, cacheEtag, structured);
294
- }
295
- return renderInspectResult(structured);
296
- }
297
- catch (e) {
298
- return errorResult({
299
- error: e,
300
- context: { template_id, element_path },
301
- hint: 'Verify element_path via yootheme_builder_element_list. Paths are JSON-Pointer ' +
302
- '(RFC-6901) style: /0/children/1. Use yootheme_builder_element_list to enumerate ' +
303
- 'valid paths.',
304
- });
305
- }
306
- }
307
- /**
308
- * Read the global state ETag used as the cache-invalidation token.
309
- * Returns `undefined` (cache disabled for this call) if the etag probe
310
- * fails or returns a non-string — a missing etag must never poison the
311
- * cache key, and a probe failure should fall through to a live inspect
312
- * rather than abort the whole call.
313
- */
314
- async function fetchStateEtag(client) {
315
- try {
316
- const res = await client.get('/etag');
317
- return typeof res.etag === 'string' && res.etag !== '' ? res.etag : undefined;
318
- }
319
- catch {
320
- return undefined;
321
- }
322
- }
323
- //# sourceMappingURL=inspect-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspect-handler.js","sourceRoot":"","sources":["../../../src/tools/multi-items/inspect-handler.ts"],"names":[],"mappings":"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"}
@@ -1,85 +0,0 @@
1
- /**
2
- * InspectionCache — Wave-16 #34 (6.2).
3
- *
4
- * A tiny in-process TTL cache for `inspect_multi_items_binding` results.
5
- * Keyed by `(template_id, element_path, etag)`:
6
- *
7
- * - `template_id` + `element_path` identify the element;
8
- * - `etag` is the GLOBAL state ETag (from `GET /etag`). Every write
9
- * tool bumps it (see ETAG schema note: "every successful write
10
- * returns a NEW ETag"). So a write to ANY template surfaces a fresh
11
- * etag → a NEW cache key → a guaranteed miss. The stale entry for a
12
- * mutated template can never be served. This reuses the existing
13
- * etag-bump mechanism rather than inventing a parallel invalidation
14
- * channel.
15
- *
16
- * TTL is a hard 60s upper bound so an entry cannot live indefinitely
17
- * even if the etag never changes (read-only sessions). The clock is
18
- * injectable so the TTL behaviour is testable without sleeping.
19
- *
20
- * Bounded growth — Wave-16 Phase-6 nit. The key embeds the GLOBAL etag,
21
- * and every write bumps it, so each `set()` lands under a NEW key while
22
- * the old-etag entries are never re-queried (the handler always reads the
23
- * current etag). Without a bound they would accumulate in the Map forever
24
- * in a long-lived high-write session. Two cheap defenses keep it bounded:
25
- *
26
- * 1. Opportunistic sweep on every `set()`: drop entries already past
27
- * the TTL. The TTL is a hard upper bound, so a past-TTL entry is dead
28
- * and can never be served — sweeping it changes no observable
29
- * behaviour, it only reclaims the slot.
30
- * 2. Hard max-size cap with oldest-first eviction (belt-and-suspenders)
31
- * for the pathological case where many DISTINCT keys all stay fresh
32
- * (a read-only burst the sweep cannot reclaim). `Map` preserves
33
- * insertion order, so the oldest entry is the first key.
34
- *
35
- * Concrete generic type `T` — no `any`. The cache stores whatever the
36
- * handler computed (the structured inspect payload).
37
- *
38
- * @license MIT
39
- */
40
- /** Hard TTL upper bound for a cached inspection entry (60 seconds). */
41
- export declare const INSPECTION_CACHE_TTL_MS = 60000;
42
- /**
43
- * Hard ceiling on live entries. Reached only when many DISTINCT keys stay
44
- * fresh inside the TTL (a read-only burst the TTL-sweep cannot reclaim);
45
- * the normal write-driven etag churn is reclaimed by the sweep long before
46
- * this. 256 covers a generous working set while keeping the Map tiny.
47
- */
48
- export declare const INSPECTION_CACHE_MAX_ENTRIES = 256;
49
- /** Monotonic-ish millisecond clock; defaults to `Date.now`. */
50
- export type Clock = () => number;
51
- export declare class InspectionCache<T> {
52
- private readonly store;
53
- private readonly now;
54
- private readonly ttlMs;
55
- private readonly maxEntries;
56
- constructor(now?: Clock, ttlMs?: number, maxEntries?: number);
57
- /** Build the composite cache key. Pipe-joined; the parts are
58
- * server-controlled identifiers (template id, JSON-Pointer, quoted
59
- * etag) so collision via a literal `|` in a value is not a concern. */
60
- private key;
61
- /** Read a fresh entry, or `undefined` on miss / expiry. Expired
62
- * entries are evicted on access. */
63
- get(templateId: string, elementPath: string, etag: string): T | undefined;
64
- /**
65
- * Store a value under the composite key, stamped with the clock.
66
- *
67
- * Bounds the Map first (sweep past-TTL entries, then enforce the
68
- * max-size cap with oldest-first eviction) so a long-lived high-write
69
- * session cannot leak old-etag keys. See class doc for the why.
70
- */
71
- set(templateId: string, elementPath: string, etag: string, value: T): void;
72
- /**
73
- * Number of LIVE (non-expired) entries currently held. Counts rather
74
- * than returns `store.size` so a caller (and the tests) sees the true
75
- * working-set size even if a not-yet-swept dead entry lingers.
76
- */
77
- size(): number;
78
- /** Drop every entry whose TTL has elapsed. Cheap, and dead entries
79
- * can never be served, so this changes no observable behaviour. */
80
- private sweepExpired;
81
- /** Evict oldest-first until the Map is within the max-size cap. `Map`
82
- * iterates in insertion order, so the first key is the oldest. */
83
- private enforceMaxEntries;
84
- }
85
- //# sourceMappingURL=inspection-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inspection-cache.d.ts","sourceRoot":"","sources":["../../../src/tools/multi-items/inspection-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,uEAAuE;AACvE,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,+DAA+D;AAC/D,MAAM,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;AAOjC,qBAAa,eAAe,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAC1D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAGhC,GAAG,GAAE,KAAgB,EACrB,KAAK,GAAE,MAAgC,EACvC,UAAU,GAAE,MAAqC;IAOrD;;2EAEuE;IACvE,OAAO,CAAC,GAAG;IAIX;wCACoC;IACpC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAWzE;;;;;;OAMG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAO1E;;;;OAIG;IACH,IAAI,IAAI,MAAM;IASd;uEACmE;IACnE,OAAO,CAAC,YAAY;IASpB;sEACkE;IAClE,OAAO,CAAC,iBAAiB;CAO5B"}
@@ -1,126 +0,0 @@
1
- /**
2
- * InspectionCache — Wave-16 #34 (6.2).
3
- *
4
- * A tiny in-process TTL cache for `inspect_multi_items_binding` results.
5
- * Keyed by `(template_id, element_path, etag)`:
6
- *
7
- * - `template_id` + `element_path` identify the element;
8
- * - `etag` is the GLOBAL state ETag (from `GET /etag`). Every write
9
- * tool bumps it (see ETAG schema note: "every successful write
10
- * returns a NEW ETag"). So a write to ANY template surfaces a fresh
11
- * etag → a NEW cache key → a guaranteed miss. The stale entry for a
12
- * mutated template can never be served. This reuses the existing
13
- * etag-bump mechanism rather than inventing a parallel invalidation
14
- * channel.
15
- *
16
- * TTL is a hard 60s upper bound so an entry cannot live indefinitely
17
- * even if the etag never changes (read-only sessions). The clock is
18
- * injectable so the TTL behaviour is testable without sleeping.
19
- *
20
- * Bounded growth — Wave-16 Phase-6 nit. The key embeds the GLOBAL etag,
21
- * and every write bumps it, so each `set()` lands under a NEW key while
22
- * the old-etag entries are never re-queried (the handler always reads the
23
- * current etag). Without a bound they would accumulate in the Map forever
24
- * in a long-lived high-write session. Two cheap defenses keep it bounded:
25
- *
26
- * 1. Opportunistic sweep on every `set()`: drop entries already past
27
- * the TTL. The TTL is a hard upper bound, so a past-TTL entry is dead
28
- * and can never be served — sweeping it changes no observable
29
- * behaviour, it only reclaims the slot.
30
- * 2. Hard max-size cap with oldest-first eviction (belt-and-suspenders)
31
- * for the pathological case where many DISTINCT keys all stay fresh
32
- * (a read-only burst the sweep cannot reclaim). `Map` preserves
33
- * insertion order, so the oldest entry is the first key.
34
- *
35
- * Concrete generic type `T` — no `any`. The cache stores whatever the
36
- * handler computed (the structured inspect payload).
37
- *
38
- * @license MIT
39
- */
40
- /** Hard TTL upper bound for a cached inspection entry (60 seconds). */
41
- export const INSPECTION_CACHE_TTL_MS = 60_000;
42
- /**
43
- * Hard ceiling on live entries. Reached only when many DISTINCT keys stay
44
- * fresh inside the TTL (a read-only burst the TTL-sweep cannot reclaim);
45
- * the normal write-driven etag churn is reclaimed by the sweep long before
46
- * this. 256 covers a generous working set while keeping the Map tiny.
47
- */
48
- export const INSPECTION_CACHE_MAX_ENTRIES = 256;
49
- export class InspectionCache {
50
- store = new Map();
51
- now;
52
- ttlMs;
53
- maxEntries;
54
- constructor(now = Date.now, ttlMs = INSPECTION_CACHE_TTL_MS, maxEntries = INSPECTION_CACHE_MAX_ENTRIES) {
55
- this.now = now;
56
- this.ttlMs = ttlMs;
57
- this.maxEntries = maxEntries;
58
- }
59
- /** Build the composite cache key. Pipe-joined; the parts are
60
- * server-controlled identifiers (template id, JSON-Pointer, quoted
61
- * etag) so collision via a literal `|` in a value is not a concern. */
62
- key(templateId, elementPath, etag) {
63
- return `${templateId}|${elementPath}|${etag}`;
64
- }
65
- /** Read a fresh entry, or `undefined` on miss / expiry. Expired
66
- * entries are evicted on access. */
67
- get(templateId, elementPath, etag) {
68
- const k = this.key(templateId, elementPath, etag);
69
- const entry = this.store.get(k);
70
- if (entry === undefined)
71
- return undefined;
72
- if (this.now() - entry.storedAt >= this.ttlMs) {
73
- this.store.delete(k);
74
- return undefined;
75
- }
76
- return entry.value;
77
- }
78
- /**
79
- * Store a value under the composite key, stamped with the clock.
80
- *
81
- * Bounds the Map first (sweep past-TTL entries, then enforce the
82
- * max-size cap with oldest-first eviction) so a long-lived high-write
83
- * session cannot leak old-etag keys. See class doc for the why.
84
- */
85
- set(templateId, elementPath, etag, value) {
86
- const k = this.key(templateId, elementPath, etag);
87
- this.sweepExpired();
88
- this.store.set(k, { value, storedAt: this.now() });
89
- this.enforceMaxEntries();
90
- }
91
- /**
92
- * Number of LIVE (non-expired) entries currently held. Counts rather
93
- * than returns `store.size` so a caller (and the tests) sees the true
94
- * working-set size even if a not-yet-swept dead entry lingers.
95
- */
96
- size() {
97
- let live = 0;
98
- const cutoff = this.now();
99
- for (const entry of this.store.values()) {
100
- if (cutoff - entry.storedAt < this.ttlMs)
101
- live++;
102
- }
103
- return live;
104
- }
105
- /** Drop every entry whose TTL has elapsed. Cheap, and dead entries
106
- * can never be served, so this changes no observable behaviour. */
107
- sweepExpired() {
108
- const cutoff = this.now();
109
- for (const [k, entry] of this.store) {
110
- if (cutoff - entry.storedAt >= this.ttlMs) {
111
- this.store.delete(k);
112
- }
113
- }
114
- }
115
- /** Evict oldest-first until the Map is within the max-size cap. `Map`
116
- * iterates in insertion order, so the first key is the oldest. */
117
- enforceMaxEntries() {
118
- while (this.store.size > this.maxEntries) {
119
- const oldest = this.store.keys().next().value;
120
- if (oldest === undefined)
121
- break;
122
- this.store.delete(oldest);
123
- }
124
- }
125
- }
126
- //# sourceMappingURL=inspection-cache.js.map