@wootsup/yt-builder-mcp 1.1.6 → 1.1.7

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 (397) hide show
  1. package/dist/auth.d.ts +119 -0
  2. package/dist/auth.d.ts.map +1 -0
  3. package/dist/auth.js +226 -0
  4. package/dist/auth.js.map +1 -0
  5. package/dist/client.d.ts +84 -0
  6. package/dist/client.d.ts.map +1 -0
  7. package/dist/client.js +151 -0
  8. package/dist/client.js.map +1 -0
  9. package/dist/clients/claude-code.d.ts +18 -0
  10. package/dist/clients/claude-code.d.ts.map +1 -0
  11. package/dist/clients/claude-code.js +53 -0
  12. package/dist/clients/claude-code.js.map +1 -0
  13. package/dist/clients/claude-desktop.d.ts +19 -0
  14. package/dist/clients/claude-desktop.d.ts.map +1 -0
  15. package/dist/clients/claude-desktop.js +56 -0
  16. package/dist/clients/claude-desktop.js.map +1 -0
  17. package/dist/clients/cline.d.ts +26 -0
  18. package/dist/clients/cline.d.ts.map +1 -0
  19. package/dist/clients/cline.js +80 -0
  20. package/dist/clients/cline.js.map +1 -0
  21. package/dist/clients/codex-cli.d.ts +42 -0
  22. package/dist/clients/codex-cli.d.ts.map +1 -0
  23. package/dist/clients/codex-cli.js +194 -0
  24. package/dist/clients/codex-cli.js.map +1 -0
  25. package/dist/clients/continue.d.ts +13 -0
  26. package/dist/clients/continue.d.ts.map +1 -0
  27. package/dist/clients/continue.js +52 -0
  28. package/dist/clients/continue.js.map +1 -0
  29. package/dist/clients/cursor.d.ts +12 -0
  30. package/dist/clients/cursor.d.ts.map +1 -0
  31. package/dist/clients/cursor.js +38 -0
  32. package/dist/clients/cursor.js.map +1 -0
  33. package/dist/clients/gemini-cli.d.ts +18 -0
  34. package/dist/clients/gemini-cli.d.ts.map +1 -0
  35. package/dist/clients/gemini-cli.js +44 -0
  36. package/dist/clients/gemini-cli.js.map +1 -0
  37. package/dist/clients/home.d.ts +14 -0
  38. package/dist/clients/home.d.ts.map +1 -0
  39. package/dist/clients/home.js +20 -0
  40. package/dist/clients/home.js.map +1 -0
  41. package/dist/clients/index.d.ts +52 -0
  42. package/dist/clients/index.d.ts.map +1 -0
  43. package/dist/clients/index.js +72 -0
  44. package/dist/clients/index.js.map +1 -0
  45. package/dist/clients/roo-code.d.ts +23 -0
  46. package/dist/clients/roo-code.d.ts.map +1 -0
  47. package/dist/clients/roo-code.js +69 -0
  48. package/dist/clients/roo-code.js.map +1 -0
  49. package/dist/clients/zed.d.ts +12 -0
  50. package/dist/clients/zed.d.ts.map +1 -0
  51. package/dist/clients/zed.js +41 -0
  52. package/dist/clients/zed.js.map +1 -0
  53. package/dist/errors/hints.d.ts +51 -0
  54. package/dist/errors/hints.d.ts.map +1 -0
  55. package/dist/errors/hints.js +95 -0
  56. package/dist/errors/hints.js.map +1 -0
  57. package/dist/errors/mask.d.ts +35 -0
  58. package/dist/errors/mask.d.ts.map +1 -0
  59. package/dist/errors/mask.js +49 -0
  60. package/dist/errors/mask.js.map +1 -0
  61. package/dist/errors/sanitize.d.ts +31 -0
  62. package/dist/errors/sanitize.d.ts.map +1 -0
  63. package/dist/errors/sanitize.js +100 -0
  64. package/dist/errors/sanitize.js.map +1 -0
  65. package/dist/errors.d.ts +42 -0
  66. package/dist/errors.d.ts.map +1 -0
  67. package/dist/errors.js +61 -0
  68. package/dist/errors.js.map +1 -0
  69. package/dist/gateway/advanced-tool/discovery.d.ts +19 -0
  70. package/dist/gateway/advanced-tool/discovery.d.ts.map +1 -0
  71. package/dist/gateway/advanced-tool/discovery.js +53 -0
  72. package/dist/gateway/advanced-tool/discovery.js.map +1 -0
  73. package/dist/gateway/advanced-tool/domains.d.ts +47 -0
  74. package/dist/gateway/advanced-tool/domains.d.ts.map +1 -0
  75. package/dist/gateway/advanced-tool/domains.js +94 -0
  76. package/dist/gateway/advanced-tool/domains.js.map +1 -0
  77. package/dist/gateway/advanced-tool/execute.d.ts +29 -0
  78. package/dist/gateway/advanced-tool/execute.d.ts.map +1 -0
  79. package/dist/gateway/advanced-tool/execute.js +54 -0
  80. package/dist/gateway/advanced-tool/execute.js.map +1 -0
  81. package/dist/gateway/advanced-tool/index.d.ts +36 -0
  82. package/dist/gateway/advanced-tool/index.d.ts.map +1 -0
  83. package/dist/gateway/advanced-tool/index.js +39 -0
  84. package/dist/gateway/advanced-tool/index.js.map +1 -0
  85. package/dist/gateway/advanced-tool/register.d.ts +18 -0
  86. package/dist/gateway/advanced-tool/register.d.ts.map +1 -0
  87. package/dist/gateway/advanced-tool/register.js +69 -0
  88. package/dist/gateway/advanced-tool/register.js.map +1 -0
  89. package/dist/gateway/advanced-tool.d.ts +13 -0
  90. package/dist/gateway/advanced-tool.d.ts.map +1 -0
  91. package/dist/gateway/advanced-tool.js +13 -0
  92. package/dist/gateway/advanced-tool.js.map +1 -0
  93. package/dist/gateway/capturing-server.d.ts +117 -0
  94. package/dist/gateway/capturing-server.d.ts.map +1 -0
  95. package/dist/gateway/capturing-server.js +103 -0
  96. package/dist/gateway/capturing-server.js.map +1 -0
  97. package/dist/gateway/essentials.d.ts +50 -0
  98. package/dist/gateway/essentials.d.ts.map +1 -0
  99. package/dist/gateway/essentials.js +94 -0
  100. package/dist/gateway/essentials.js.map +1 -0
  101. package/dist/gateway/test-support.d.ts +41 -0
  102. package/dist/gateway/test-support.d.ts.map +1 -0
  103. package/dist/gateway/test-support.js +60 -0
  104. package/dist/gateway/test-support.js.map +1 -0
  105. package/dist/index.d.ts +29 -0
  106. package/dist/index.d.ts.map +1 -0
  107. package/dist/index.js +111 -0
  108. package/dist/index.js.map +1 -0
  109. package/dist/install-skill.d.ts +43 -0
  110. package/dist/install-skill.d.ts.map +1 -0
  111. package/dist/install-skill.js +118 -0
  112. package/dist/install-skill.js.map +1 -0
  113. package/dist/platform/detect.d.ts +64 -0
  114. package/dist/platform/detect.d.ts.map +1 -0
  115. package/dist/platform/detect.js +98 -0
  116. package/dist/platform/detect.js.map +1 -0
  117. package/dist/platform/index.d.ts +121 -0
  118. package/dist/platform/index.d.ts.map +1 -0
  119. package/dist/platform/index.js +176 -0
  120. package/dist/platform/index.js.map +1 -0
  121. package/dist/platform/joomla.d.ts +44 -0
  122. package/dist/platform/joomla.d.ts.map +1 -0
  123. package/dist/platform/joomla.js +46 -0
  124. package/dist/platform/joomla.js.map +1 -0
  125. package/dist/server.d.ts +110 -0
  126. package/dist/server.d.ts.map +1 -0
  127. package/dist/server.js +274 -0
  128. package/dist/server.js.map +1 -0
  129. package/dist/setup-cli-confirm.d.ts +36 -0
  130. package/dist/setup-cli-confirm.d.ts.map +1 -0
  131. package/dist/setup-cli-confirm.js +59 -0
  132. package/dist/setup-cli-confirm.js.map +1 -0
  133. package/dist/setup-cli.d.ts +152 -0
  134. package/dist/setup-cli.d.ts.map +1 -0
  135. package/dist/setup-cli.js +870 -0
  136. package/dist/setup-cli.js.map +1 -0
  137. package/dist/setup-prompts.d.ts +41 -0
  138. package/dist/setup-prompts.d.ts.map +1 -0
  139. package/dist/setup-prompts.js +146 -0
  140. package/dist/setup-prompts.js.map +1 -0
  141. package/dist/setup-token.d.ts +38 -0
  142. package/dist/setup-token.d.ts.map +1 -0
  143. package/dist/setup-token.js +106 -0
  144. package/dist/setup-token.js.map +1 -0
  145. package/dist/setup-wizard-defaults.d.ts +43 -0
  146. package/dist/setup-wizard-defaults.d.ts.map +1 -0
  147. package/dist/setup-wizard-defaults.js +160 -0
  148. package/dist/setup-wizard-defaults.js.map +1 -0
  149. package/dist/setup-wizard-handshake.d.ts +25 -0
  150. package/dist/setup-wizard-handshake.d.ts.map +1 -0
  151. package/dist/setup-wizard-handshake.js +103 -0
  152. package/dist/setup-wizard-handshake.js.map +1 -0
  153. package/dist/setup-wizard-types.d.ts +164 -0
  154. package/dist/setup-wizard-types.d.ts.map +1 -0
  155. package/dist/setup-wizard-types.js +11 -0
  156. package/dist/setup-wizard-types.js.map +1 -0
  157. package/dist/setup-wizard.d.ts +33 -0
  158. package/dist/setup-wizard.d.ts.map +1 -0
  159. package/dist/setup-wizard.js +199 -0
  160. package/dist/setup-wizard.js.map +1 -0
  161. package/dist/setup.d.ts +17 -0
  162. package/dist/setup.d.ts.map +1 -0
  163. package/dist/setup.js +33 -0
  164. package/dist/setup.js.map +1 -0
  165. package/dist/sites/cli/add-site.d.ts +106 -0
  166. package/dist/sites/cli/add-site.d.ts.map +1 -0
  167. package/dist/sites/cli/add-site.js +185 -0
  168. package/dist/sites/cli/add-site.js.map +1 -0
  169. package/dist/sites/cli/list-sites.d.ts +40 -0
  170. package/dist/sites/cli/list-sites.d.ts.map +1 -0
  171. package/dist/sites/cli/list-sites.js +116 -0
  172. package/dist/sites/cli/list-sites.js.map +1 -0
  173. package/dist/sites/cli/remove-site.d.ts +60 -0
  174. package/dist/sites/cli/remove-site.d.ts.map +1 -0
  175. package/dist/sites/cli/remove-site.js +120 -0
  176. package/dist/sites/cli/remove-site.js.map +1 -0
  177. package/dist/sites/cli/set-default.d.ts +47 -0
  178. package/dist/sites/cli/set-default.d.ts.map +1 -0
  179. package/dist/sites/cli/set-default.js +69 -0
  180. package/dist/sites/cli/set-default.js.map +1 -0
  181. package/dist/sites/cli/test-site.d.ts +77 -0
  182. package/dist/sites/cli/test-site.d.ts.map +1 -0
  183. package/dist/sites/cli/test-site.js +146 -0
  184. package/dist/sites/cli/test-site.js.map +1 -0
  185. package/dist/sites/client-pool.d.ts +124 -0
  186. package/dist/sites/client-pool.d.ts.map +1 -0
  187. package/dist/sites/client-pool.js +172 -0
  188. package/dist/sites/client-pool.js.map +1 -0
  189. package/dist/sites/env-bridge.d.ts +55 -0
  190. package/dist/sites/env-bridge.d.ts.map +1 -0
  191. package/dist/sites/env-bridge.js +94 -0
  192. package/dist/sites/env-bridge.js.map +1 -0
  193. package/dist/sites/paths.d.ts +21 -0
  194. package/dist/sites/paths.d.ts.map +1 -0
  195. package/dist/sites/paths.js +37 -0
  196. package/dist/sites/paths.js.map +1 -0
  197. package/dist/sites/probe.d.ts +60 -0
  198. package/dist/sites/probe.d.ts.map +1 -0
  199. package/dist/sites/probe.js +112 -0
  200. package/dist/sites/probe.js.map +1 -0
  201. package/dist/sites/registry.d.ts +142 -0
  202. package/dist/sites/registry.d.ts.map +1 -0
  203. package/dist/sites/registry.js +163 -0
  204. package/dist/sites/registry.js.map +1 -0
  205. package/dist/sites/schema.d.ts +90 -0
  206. package/dist/sites/schema.d.ts.map +1 -0
  207. package/dist/sites/schema.js +71 -0
  208. package/dist/sites/schema.js.map +1 -0
  209. package/dist/sites/secret-resolver.d.ts +115 -0
  210. package/dist/sites/secret-resolver.d.ts.map +1 -0
  211. package/dist/sites/secret-resolver.js +225 -0
  212. package/dist/sites/secret-resolver.js.map +1 -0
  213. package/dist/sites/store.d.ts +82 -0
  214. package/dist/sites/store.d.ts.map +1 -0
  215. package/dist/sites/store.js +198 -0
  216. package/dist/sites/store.js.map +1 -0
  217. package/dist/sites/tools/index.d.ts +28 -0
  218. package/dist/sites/tools/index.d.ts.map +1 -0
  219. package/dist/sites/tools/index.js +30 -0
  220. package/dist/sites/tools/index.js.map +1 -0
  221. package/dist/sites/tools/sites-list.d.ts +48 -0
  222. package/dist/sites/tools/sites-list.d.ts.map +1 -0
  223. package/dist/sites/tools/sites-list.js +137 -0
  224. package/dist/sites/tools/sites-list.js.map +1 -0
  225. package/dist/sites/tools/sites-test.d.ts +47 -0
  226. package/dist/sites/tools/sites-test.d.ts.map +1 -0
  227. package/dist/sites/tools/sites-test.js +148 -0
  228. package/dist/sites/tools/sites-test.js.map +1 -0
  229. package/dist/skill-loader.d.ts +111 -0
  230. package/dist/skill-loader.d.ts.map +1 -0
  231. package/dist/skill-loader.js +191 -0
  232. package/dist/skill-loader.js.map +1 -0
  233. package/dist/tools/elements/builders.d.ts +24 -0
  234. package/dist/tools/elements/builders.d.ts.map +1 -0
  235. package/dist/tools/elements/builders.js +199 -0
  236. package/dist/tools/elements/builders.js.map +1 -0
  237. package/dist/tools/elements/handlers-write.d.ts +49 -0
  238. package/dist/tools/elements/handlers-write.d.ts.map +1 -0
  239. package/dist/tools/elements/handlers-write.js +148 -0
  240. package/dist/tools/elements/handlers-write.js.map +1 -0
  241. package/dist/tools/elements/handlers.d.ts +70 -0
  242. package/dist/tools/elements/handlers.d.ts.map +1 -0
  243. package/dist/tools/elements/handlers.js +292 -0
  244. package/dist/tools/elements/handlers.js.map +1 -0
  245. package/dist/tools/elements/index.d.ts +28 -0
  246. package/dist/tools/elements/index.d.ts.map +1 -0
  247. package/dist/tools/elements/index.js +27 -0
  248. package/dist/tools/elements/index.js.map +1 -0
  249. package/dist/tools/elements.d.ts +13 -0
  250. package/dist/tools/elements.d.ts.map +1 -0
  251. package/dist/tools/elements.js +13 -0
  252. package/dist/tools/elements.js.map +1 -0
  253. package/dist/tools/elicitation.d.ts +87 -0
  254. package/dist/tools/elicitation.d.ts.map +1 -0
  255. package/dist/tools/elicitation.js +100 -0
  256. package/dist/tools/elicitation.js.map +1 -0
  257. package/dist/tools/format/elements-format.d.ts +40 -0
  258. package/dist/tools/format/elements-format.d.ts.map +1 -0
  259. package/dist/tools/format/elements-format.js +194 -0
  260. package/dist/tools/format/elements-format.js.map +1 -0
  261. package/dist/tools/format/health-format.d.ts +79 -0
  262. package/dist/tools/format/health-format.d.ts.map +1 -0
  263. package/dist/tools/format/health-format.js +181 -0
  264. package/dist/tools/format/health-format.js.map +1 -0
  265. package/dist/tools/format/inspection-format.d.ts +59 -0
  266. package/dist/tools/format/inspection-format.d.ts.map +1 -0
  267. package/dist/tools/format/inspection-format.js +303 -0
  268. package/dist/tools/format/inspection-format.js.map +1 -0
  269. package/dist/tools/format/pages-format.d.ts +57 -0
  270. package/dist/tools/format/pages-format.d.ts.map +1 -0
  271. package/dist/tools/format/pages-format.js +157 -0
  272. package/dist/tools/format/pages-format.js.map +1 -0
  273. package/dist/tools/format/sources-format.d.ts +44 -0
  274. package/dist/tools/format/sources-format.d.ts.map +1 -0
  275. package/dist/tools/format/sources-format.js +242 -0
  276. package/dist/tools/format/sources-format.js.map +1 -0
  277. package/dist/tools/health.d.ts +22 -0
  278. package/dist/tools/health.d.ts.map +1 -0
  279. package/dist/tools/health.js +220 -0
  280. package/dist/tools/health.js.map +1 -0
  281. package/dist/tools/index.d.ts +30 -0
  282. package/dist/tools/index.d.ts.map +1 -0
  283. package/dist/tools/index.js +39 -0
  284. package/dist/tools/index.js.map +1 -0
  285. package/dist/tools/inspection.d.ts +14 -0
  286. package/dist/tools/inspection.d.ts.map +1 -0
  287. package/dist/tools/inspection.js +208 -0
  288. package/dist/tools/inspection.js.map +1 -0
  289. package/dist/tools/layout-flatten.d.ts +75 -0
  290. package/dist/tools/layout-flatten.d.ts.map +1 -0
  291. package/dist/tools/layout-flatten.js +107 -0
  292. package/dist/tools/layout-flatten.js.map +1 -0
  293. package/dist/tools/multi-items/builders.d.ts +23 -0
  294. package/dist/tools/multi-items/builders.d.ts.map +1 -0
  295. package/dist/tools/multi-items/builders.js +78 -0
  296. package/dist/tools/multi-items/builders.js.map +1 -0
  297. package/dist/tools/multi-items/clean-implode-handler.d.ts +36 -0
  298. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +1 -0
  299. package/dist/tools/multi-items/clean-implode-handler.js +57 -0
  300. package/dist/tools/multi-items/clean-implode-handler.js.map +1 -0
  301. package/dist/tools/multi-items/index.d.ts +18 -0
  302. package/dist/tools/multi-items/index.d.ts.map +1 -0
  303. package/dist/tools/multi-items/index.js +18 -0
  304. package/dist/tools/multi-items/index.js.map +1 -0
  305. package/dist/tools/multi-items/inspect-handler.d.ts +41 -0
  306. package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -0
  307. package/dist/tools/multi-items/inspect-handler.js +50 -0
  308. package/dist/tools/multi-items/inspect-handler.js.map +1 -0
  309. package/dist/tools/multi-items/item-container-map.d.ts +41 -0
  310. package/dist/tools/multi-items/item-container-map.d.ts.map +1 -0
  311. package/dist/tools/multi-items/item-container-map.js +73 -0
  312. package/dist/tools/multi-items/item-container-map.js.map +1 -0
  313. package/dist/tools/pages/builders.d.ts +14 -0
  314. package/dist/tools/pages/builders.d.ts.map +1 -0
  315. package/dist/tools/pages/builders.js +136 -0
  316. package/dist/tools/pages/builders.js.map +1 -0
  317. package/dist/tools/pages/handlers-read.d.ts +33 -0
  318. package/dist/tools/pages/handlers-read.d.ts.map +1 -0
  319. package/dist/tools/pages/handlers-read.js +203 -0
  320. package/dist/tools/pages/handlers-read.js.map +1 -0
  321. package/dist/tools/pages/handlers-write.d.ts +21 -0
  322. package/dist/tools/pages/handlers-write.d.ts.map +1 -0
  323. package/dist/tools/pages/handlers-write.js +52 -0
  324. package/dist/tools/pages/handlers-write.js.map +1 -0
  325. package/dist/tools/pages/index.d.ts +17 -0
  326. package/dist/tools/pages/index.d.ts.map +1 -0
  327. package/dist/tools/pages/index.js +17 -0
  328. package/dist/tools/pages/index.js.map +1 -0
  329. package/dist/tools/pages/schemas.d.ts +45 -0
  330. package/dist/tools/pages/schemas.d.ts.map +1 -0
  331. package/dist/tools/pages/schemas.js +82 -0
  332. package/dist/tools/pages/schemas.js.map +1 -0
  333. package/dist/tools/pages.d.ts +13 -0
  334. package/dist/tools/pages.d.ts.map +1 -0
  335. package/dist/tools/pages.js +13 -0
  336. package/dist/tools/pages.js.map +1 -0
  337. package/dist/tools/pool-resolve-helper.d.ts +83 -0
  338. package/dist/tools/pool-resolve-helper.d.ts.map +1 -0
  339. package/dist/tools/pool-resolve-helper.js +148 -0
  340. package/dist/tools/pool-resolve-helper.js.map +1 -0
  341. package/dist/tools/progress-phases.d.ts +46 -0
  342. package/dist/tools/progress-phases.d.ts.map +1 -0
  343. package/dist/tools/progress-phases.js +48 -0
  344. package/dist/tools/progress-phases.js.map +1 -0
  345. package/dist/tools/shared-schemas.d.ts +25 -0
  346. package/dist/tools/shared-schemas.d.ts.map +1 -0
  347. package/dist/tools/shared-schemas.js +59 -0
  348. package/dist/tools/shared-schemas.js.map +1 -0
  349. package/dist/tools/sources/builders.d.ts +13 -0
  350. package/dist/tools/sources/builders.d.ts.map +1 -0
  351. package/dist/tools/sources/builders.js +118 -0
  352. package/dist/tools/sources/builders.js.map +1 -0
  353. package/dist/tools/sources/handlers-bind.d.ts +28 -0
  354. package/dist/tools/sources/handlers-bind.d.ts.map +1 -0
  355. package/dist/tools/sources/handlers-bind.js +129 -0
  356. package/dist/tools/sources/handlers-bind.js.map +1 -0
  357. package/dist/tools/sources/handlers.d.ts +47 -0
  358. package/dist/tools/sources/handlers.d.ts.map +1 -0
  359. package/dist/tools/sources/handlers.js +108 -0
  360. package/dist/tools/sources/handlers.js.map +1 -0
  361. package/dist/tools/sources/index.d.ts +19 -0
  362. package/dist/tools/sources/index.d.ts.map +1 -0
  363. package/dist/tools/sources/index.js +18 -0
  364. package/dist/tools/sources/index.js.map +1 -0
  365. package/dist/tools/sources.d.ts +14 -0
  366. package/dist/tools/sources.d.ts.map +1 -0
  367. package/dist/tools/sources.js +14 -0
  368. package/dist/tools/sources.js.map +1 -0
  369. package/dist/tools/sparse-fields.d.ts +106 -0
  370. package/dist/tools/sparse-fields.d.ts.map +1 -0
  371. package/dist/tools/sparse-fields.js +165 -0
  372. package/dist/tools/sparse-fields.js.map +1 -0
  373. package/dist/tools/tool-builder/annotations.d.ts +55 -0
  374. package/dist/tools/tool-builder/annotations.d.ts.map +1 -0
  375. package/dist/tools/tool-builder/annotations.js +86 -0
  376. package/dist/tools/tool-builder/annotations.js.map +1 -0
  377. package/dist/tools/tool-builder/define.d.ts +31 -0
  378. package/dist/tools/tool-builder/define.d.ts.map +1 -0
  379. package/dist/tools/tool-builder/define.js +31 -0
  380. package/dist/tools/tool-builder/define.js.map +1 -0
  381. package/dist/tools/tool-builder/index.d.ts +28 -0
  382. package/dist/tools/tool-builder/index.d.ts.map +1 -0
  383. package/dist/tools/tool-builder/index.js +27 -0
  384. package/dist/tools/tool-builder/index.js.map +1 -0
  385. package/dist/tools/tool-builder/results.d.ts +104 -0
  386. package/dist/tools/tool-builder/results.d.ts.map +1 -0
  387. package/dist/tools/tool-builder/results.js +224 -0
  388. package/dist/tools/tool-builder/results.js.map +1 -0
  389. package/dist/tools/tool-builder/types.d.ts +97 -0
  390. package/dist/tools/tool-builder/types.d.ts.map +1 -0
  391. package/dist/tools/tool-builder/types.js +9 -0
  392. package/dist/tools/tool-builder/types.js.map +1 -0
  393. package/dist/tools/tool-builder.d.ts +16 -0
  394. package/dist/tools/tool-builder.d.ts.map +1 -0
  395. package/dist/tools/tool-builder.js +16 -0
  396. package/dist/tools/tool-builder.js.map +1 -0
  397. package/package.json +2 -1
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Secret-masking helpers — Wave G.6.2.
3
+ *
4
+ * `maskBearerToken` rewrites any `Bearer <token>` substring to
5
+ * `Bearer ***masked***`. `sanitizeForLogs` additionally truncates very
6
+ * long strings so a paste of a multi-MB stack trace can't blow the
7
+ * context budget.
8
+ *
9
+ * Defense-in-depth: this is the single choke-point for any string
10
+ * (error message, response body excerpt, log line) that crosses the
11
+ * MCP boundary into the LLM's view.
12
+ *
13
+ * @license MIT
14
+ */
15
+ /** Maximum length for a sanitised log string. Anything longer is truncated. */
16
+ export const LOG_TRUNCATION_LIMIT = 2000;
17
+ /**
18
+ * Replace every `Bearer <opaque-token>` substring with `Bearer ***masked***`.
19
+ *
20
+ * Token-shape is intentionally permissive — we'd rather over-mask than
21
+ * leak. Any non-whitespace run following the literal `Bearer ` is treated
22
+ * as the token and replaced.
23
+ */
24
+ export function maskBearerToken(input) {
25
+ if (input === '')
26
+ return '';
27
+ // The `g` flag handles repeated occurrences in one string.
28
+ return input.replace(/Bearer\s+\S+/g, 'Bearer ***masked***');
29
+ }
30
+ /**
31
+ * Sanitise a string before it joins the LLM-visible output:
32
+ * 1. mask any Bearer tokens
33
+ * 2. truncate to `LOG_TRUNCATION_LIMIT` chars with a clear suffix
34
+ *
35
+ * Non-string inputs (null / undefined) collapse to an empty string —
36
+ * caller code typically passes `error?.message` and `?? ''` is a common
37
+ * upstream pattern.
38
+ */
39
+ export function sanitizeForLogs(input) {
40
+ if (input === null || input === undefined)
41
+ return '';
42
+ if (input === '')
43
+ return '';
44
+ const masked = maskBearerToken(input);
45
+ if (masked.length <= LOG_TRUNCATION_LIMIT)
46
+ return masked;
47
+ return masked.slice(0, LOG_TRUNCATION_LIMIT) + '... [truncated]';
48
+ }
49
+ //# sourceMappingURL=mask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask.js","sourceRoot":"","sources":["../../src/errors/mask.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IACzC,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC5B,2DAA2D;IAC3D,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,IAAI,oBAAoB;QAAE,OAAO,MAAM,CAAC;IACzD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,GAAG,iBAAiB,CAAC;AACrE,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `sanitizeSecrets` — recursive value-walker that swaps any value at a
3
+ * known-secret key for the sentinel `[REDACTED]`.
4
+ *
5
+ * Wave G.6.4. Pattern ported verbatim from
6
+ * `apimapper-mcp/src/modules/apimapper/credential-sanitizer.ts` because
7
+ * it's the same defense-in-depth shape and the apimapper version is
8
+ * audit-hardened (A4 round 1 + 2).
9
+ *
10
+ * Used on both the error-path (RestError.body excerpts) AND the
11
+ * success-path (jsonResult / structuredResult payloads in
12
+ * `tool-builder.ts`) so a regressing REST handler — or a logging path —
13
+ * can never leak `oauth_refresh_token` / `auth_data` / `bearer` etc.
14
+ * into the LLM's context.
15
+ *
16
+ * Key-list intentionally mirrors apimapper-mcp; review both together
17
+ * when extending.
18
+ *
19
+ * @license MIT
20
+ */
21
+ /**
22
+ * Recursively walk any JSON-serialisable value and redact any nested
23
+ * value whose key matches a known-secret name. Returns a fresh tree —
24
+ * the input is never mutated.
25
+ *
26
+ * Primitives (string / number / boolean / null / undefined) pass through
27
+ * unchanged. Arrays are mapped element-wise. Objects are reconstructed
28
+ * with `[REDACTED]` substituted at any secret key.
29
+ */
30
+ export declare function sanitizeSecrets<T>(input: T): T;
31
+ //# sourceMappingURL=sanitize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/errors/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAuDH;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAgB9C"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * `sanitizeSecrets` — recursive value-walker that swaps any value at a
3
+ * known-secret key for the sentinel `[REDACTED]`.
4
+ *
5
+ * Wave G.6.4. Pattern ported verbatim from
6
+ * `apimapper-mcp/src/modules/apimapper/credential-sanitizer.ts` because
7
+ * it's the same defense-in-depth shape and the apimapper version is
8
+ * audit-hardened (A4 round 1 + 2).
9
+ *
10
+ * Used on both the error-path (RestError.body excerpts) AND the
11
+ * success-path (jsonResult / structuredResult payloads in
12
+ * `tool-builder.ts`) so a regressing REST handler — or a logging path —
13
+ * can never leak `oauth_refresh_token` / `auth_data` / `bearer` etc.
14
+ * into the LLM's context.
15
+ *
16
+ * Key-list intentionally mirrors apimapper-mcp; review both together
17
+ * when extending.
18
+ *
19
+ * @license MIT
20
+ */
21
+ const SECRET_KEYS = new Set([
22
+ // Generic auth tokens
23
+ 'token',
24
+ 'bearer',
25
+ 'bearer_token',
26
+ 'bearerToken',
27
+ // Plugin-internal auth blob
28
+ 'auth_data',
29
+ 'authData',
30
+ // OAuth flows
31
+ 'oauth_refresh_token',
32
+ 'oauthRefreshToken',
33
+ 'refresh_token',
34
+ 'refreshToken',
35
+ 'access_token',
36
+ 'accessToken',
37
+ // App-secret pairs
38
+ 'client_secret',
39
+ 'clientSecret',
40
+ 'api_key',
41
+ 'apiKey',
42
+ 'password',
43
+ 'secret',
44
+ 'secrets',
45
+ 'raw_secret',
46
+ 'rawSecret',
47
+ // Defense-in-depth additions (cf. apimapper A4 audit round 2)
48
+ 'private_key',
49
+ 'privateKey',
50
+ 'signing_key',
51
+ 'signingKey',
52
+ 'webhook_secret',
53
+ 'webhookSecret',
54
+ 'consumer_secret',
55
+ 'consumerSecret',
56
+ 'consumer_key',
57
+ 'consumerKey',
58
+ 'session_token',
59
+ 'sessionToken',
60
+ 'id_token',
61
+ 'idToken',
62
+ // W12-R1.3 (A2-M2) — 1Password Secret References are not secrets
63
+ // per se (the ref string itself is safe to log), BUT they identify
64
+ // the vault path + item + field of a real bearer. Surfacing them
65
+ // verbatim in an error payload that ends up in a Discord paste, a
66
+ // GitHub issue, or an LLM-shared transcript leaks the production
67
+ // 1Password layout to anyone reading. Treat as secret to be safe.
68
+ 'bearer_ref',
69
+ 'bearerRef',
70
+ 'token_ref',
71
+ 'tokenRef',
72
+ ]);
73
+ /**
74
+ * Recursively walk any JSON-serialisable value and redact any nested
75
+ * value whose key matches a known-secret name. Returns a fresh tree —
76
+ * the input is never mutated.
77
+ *
78
+ * Primitives (string / number / boolean / null / undefined) pass through
79
+ * unchanged. Arrays are mapped element-wise. Objects are reconstructed
80
+ * with `[REDACTED]` substituted at any secret key.
81
+ */
82
+ export function sanitizeSecrets(input) {
83
+ if (Array.isArray(input)) {
84
+ return input.map((item) => sanitizeSecrets(item));
85
+ }
86
+ if (input !== null && typeof input === 'object') {
87
+ const out = {};
88
+ for (const [k, v] of Object.entries(input)) {
89
+ if (SECRET_KEYS.has(k)) {
90
+ out[k] = '[REDACTED]';
91
+ }
92
+ else {
93
+ out[k] = sanitizeSecrets(v);
94
+ }
95
+ }
96
+ return out;
97
+ }
98
+ return input;
99
+ }
100
+ //# sourceMappingURL=sanitize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/errors/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS;IAChC,sBAAsB;IACtB,OAAO;IACP,QAAQ;IACR,cAAc;IACd,aAAa;IACb,4BAA4B;IAC5B,WAAW;IACX,UAAU;IACV,cAAc;IACd,qBAAqB;IACrB,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,eAAe;IACf,cAAc;IACd,SAAS;IACT,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,WAAW;IACX,8DAA8D;IAC9D,aAAa;IACb,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,eAAe;IACf,cAAc;IACd,UAAU;IACV,SAAS;IACT,iEAAiE;IACjE,mEAAmE;IACnE,iEAAiE;IACjE,kEAAkE;IAClE,iEAAiE;IACjE,kEAAkE;IAClE,YAAY;IACZ,WAAW;IACX,WAAW;IACX,UAAU;CACb,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAI,KAAQ;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAiB,CAAC;IACtE,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACpE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;QACL,CAAC;QACD,OAAO,GAAmB,CAAC;IAC/B,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Error types for the YT Builder MCP package.
3
+ *
4
+ * `RestError` wraps non-2xx responses from the WP REST API with the
5
+ * status, the canonical WP_Error `code` (if present) and the human
6
+ * message. `ConfigError` is thrown when the server is missing
7
+ * environment configuration.
8
+ *
9
+ * Wave G.6.3: `body` is routed through `sanitizeSecrets` at construction
10
+ * time so any secret-bearing field returned by the upstream REST API
11
+ * (e.g. WP_Error data carrying `auth_data` or `oauth_refresh_token`)
12
+ * never lands in the LLM context — even if a future tool decides to
13
+ * echo `error.body` somewhere.
14
+ *
15
+ * @license MIT
16
+ */
17
+ export interface RestErrorPayload {
18
+ readonly status: number;
19
+ readonly code?: string;
20
+ readonly message: string;
21
+ /** Original parsed JSON body (or null if the body was not JSON). */
22
+ readonly body: unknown;
23
+ }
24
+ export declare class RestError extends Error {
25
+ readonly status: number;
26
+ readonly code?: string;
27
+ readonly body: unknown;
28
+ constructor(payload: RestErrorPayload);
29
+ }
30
+ export declare class ConfigError extends Error {
31
+ constructor(message: string);
32
+ }
33
+ export interface NetworkErrorPayload {
34
+ readonly cause: unknown;
35
+ readonly url: string;
36
+ }
37
+ export declare class NetworkError extends Error {
38
+ readonly cause: unknown;
39
+ readonly url: string;
40
+ constructor(payload: NetworkErrorPayload);
41
+ }
42
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,SAAU,SAAQ,KAAK;IAChC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAgB,IAAI,EAAE,OAAO,CAAC;gBAElB,OAAO,EAAE,gBAAgB;CAUxC;AAED,qBAAa,WAAY,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI9B;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,KAAK;IACnC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAC/B,SAAgB,GAAG,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,mBAAmB;CAM3C"}
package/dist/errors.js ADDED
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Error types for the YT Builder MCP package.
3
+ *
4
+ * `RestError` wraps non-2xx responses from the WP REST API with the
5
+ * status, the canonical WP_Error `code` (if present) and the human
6
+ * message. `ConfigError` is thrown when the server is missing
7
+ * environment configuration.
8
+ *
9
+ * Wave G.6.3: `body` is routed through `sanitizeSecrets` at construction
10
+ * time so any secret-bearing field returned by the upstream REST API
11
+ * (e.g. WP_Error data carrying `auth_data` or `oauth_refresh_token`)
12
+ * never lands in the LLM context — even if a future tool decides to
13
+ * echo `error.body` somewhere.
14
+ *
15
+ * @license MIT
16
+ */
17
+ import { sanitizeSecrets } from './errors/sanitize.js';
18
+ export class RestError extends Error {
19
+ status;
20
+ code;
21
+ body;
22
+ constructor(payload) {
23
+ super(payload.message);
24
+ this.name = 'RestError';
25
+ this.status = payload.status;
26
+ this.code = payload.code;
27
+ // Deep-walk redaction at construction time (Wave G.6.3). The
28
+ // input body is never mutated; sanitizeSecrets returns a fresh
29
+ // tree with redacted secret-keys.
30
+ this.body = sanitizeSecrets(payload.body);
31
+ }
32
+ }
33
+ export class ConfigError extends Error {
34
+ constructor(message) {
35
+ super(message);
36
+ this.name = 'ConfigError';
37
+ }
38
+ }
39
+ export class NetworkError extends Error {
40
+ cause;
41
+ url;
42
+ constructor(payload) {
43
+ super(`Network error contacting ${payload.url}: ${describeCause(payload.cause)}`);
44
+ this.name = 'NetworkError';
45
+ this.cause = payload.cause;
46
+ this.url = payload.url;
47
+ }
48
+ }
49
+ function describeCause(cause) {
50
+ if (cause instanceof Error)
51
+ return cause.message;
52
+ if (typeof cause === 'string')
53
+ return cause;
54
+ try {
55
+ return JSON.stringify(cause);
56
+ }
57
+ catch {
58
+ return String(cause);
59
+ }
60
+ }
61
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAUvD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAChB,MAAM,CAAS;IACf,IAAI,CAAU;IACd,IAAI,CAAU;IAE9B,YAAY,OAAyB;QACjC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,6DAA6D;QAC7D,+DAA+D;QAC/D,kCAAkC;QAClC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACJ;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IAClC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC9B,CAAC;CACJ;AAOD,MAAM,OAAO,YAAa,SAAQ,KAAK;IACnB,KAAK,CAAU;IACf,GAAG,CAAS;IAE5B,YAAY,OAA4B;QACpC,KAAK,CAAC,4BAA4B,OAAO,CAAC,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAC3B,CAAC;CACJ;AAED,SAAS,aAAa,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AACL,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Gateway discovery-mode dispatch — handles `{ tool }`-only invocations
3
+ * by returning the target tool's description, JSON-schema, and
4
+ * annotations. Never invokes the target handler.
5
+ *
6
+ * Round-2 (R2-A2-CRIT2) extracted from `gateway/advanced-tool.ts`.
7
+ *
8
+ * @license MIT
9
+ */
10
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
11
+ import { type ZodRawShape } from 'zod';
12
+ import type { AdvancedToolEntry } from '../capturing-server.js';
13
+ /** Reads the captured config's inputSchema as a Zod raw-shape (or empty). */
14
+ export declare function shapeOf(entry: AdvancedToolEntry): ZodRawShape;
15
+ /** Builds a JSON-schema for a captured tool's inputs, with a defensive fallback. */
16
+ export declare function inputSchemaJson(entry: AdvancedToolEntry): unknown;
17
+ /** Builds the discovery-mode result for a target tool. */
18
+ export declare function discoveryResult(toolName: string, entry: AdvancedToolEntry): CallToolResult;
19
+ //# sourceMappingURL=discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/gateway/advanced-tool/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAK,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,WAAW,CAI7D;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAQjE;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,cAAc,CA0B1F"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Gateway discovery-mode dispatch — handles `{ tool }`-only invocations
3
+ * by returning the target tool's description, JSON-schema, and
4
+ * annotations. Never invokes the target handler.
5
+ *
6
+ * Round-2 (R2-A2-CRIT2) extracted from `gateway/advanced-tool.ts`.
7
+ *
8
+ * @license MIT
9
+ */
10
+ import { z } from 'zod';
11
+ /** Reads the captured config's inputSchema as a Zod raw-shape (or empty). */
12
+ export function shapeOf(entry) {
13
+ const schema = entry.config.inputSchema;
14
+ if (schema && typeof schema === 'object')
15
+ return schema;
16
+ return {};
17
+ }
18
+ /** Builds a JSON-schema for a captured tool's inputs, with a defensive fallback. */
19
+ export function inputSchemaJson(entry) {
20
+ try {
21
+ return z.toJSONSchema(z.object(shapeOf(entry)));
22
+ }
23
+ catch {
24
+ // A schema that cannot be JSON-projected still yields a usable
25
+ // discovery payload — description + annotations carry the rest.
26
+ return { note: 'input schema could not be derived' };
27
+ }
28
+ }
29
+ /** Builds the discovery-mode result for a target tool. */
30
+ export function discoveryResult(toolName, entry) {
31
+ const cfg = entry.config;
32
+ const schema = inputSchemaJson(entry);
33
+ const payload = {
34
+ tool: toolName,
35
+ description: cfg.description ?? '',
36
+ inputSchema: schema,
37
+ annotations: cfg.annotations ?? {},
38
+ };
39
+ return {
40
+ content: [
41
+ {
42
+ type: 'text',
43
+ text: `Discovery for ${toolName}\n\n` +
44
+ `${cfg.description ?? ''}\n\n` +
45
+ `Annotations: ${JSON.stringify(cfg.annotations ?? {})}\n\n` +
46
+ `Input schema:\n${JSON.stringify(schema, null, 2)}\n\n` +
47
+ `Call yootheme_builder_advanced again with { tool: "${toolName}", arguments: {...} } to run it.`,
48
+ },
49
+ ],
50
+ structuredContent: payload,
51
+ };
52
+ }
53
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/gateway/advanced-tool/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,CAAC,EAAoB,MAAM,KAAK,CAAC;AAI1C,6EAA6E;AAC7E,MAAM,UAAU,OAAO,CAAC,KAAwB;IAC5C,MAAM,MAAM,GAAI,KAAK,CAAC,MAAoC,CAAC,WAAW,CAAC;IACvE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAqB,CAAC;IACvE,OAAO,EAAE,CAAC;AACd,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAAC,KAAwB;IACpD,IAAI,CAAC;QACD,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACL,+DAA+D;QAC/D,gEAAgE;QAChE,OAAO,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC;IACzD,CAAC;AACL,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,KAAwB;IACtE,MAAM,GAAG,GAAG,KAAK,CAAC,MAGjB,CAAC;IACF,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;QAClC,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;KACrC,CAAC;IACF,OAAO;QACH,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EACA,iBAAiB,QAAQ,MAAM;oBAC/B,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,MAAM;oBAC9B,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,MAAM;oBAC3D,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM;oBACvD,sDAAsD,QAAQ,kCAAkC;aACvG;SACJ;QACD,iBAAiB,EAAE,OAAO;KAC7B,CAAC;AACN,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Gateway domain taxonomy — single source of truth for grouping
3
+ * advanced tools by domain in description, errors, and discovery
4
+ * payloads.
5
+ *
6
+ * Round-2 (R2-A2-CRIT2) extracted from `gateway/advanced-tool.ts`
7
+ * to keep that file ≤ 200 LoC per Architecture §11.
8
+ *
9
+ * The 4-entry `DOMAIN_ORDER` contract is pinned by
10
+ * `tests/gateway/domain-order.test.ts` — any change here MUST update
11
+ * that pin-test (Round-2 audit follow-up R2-A1-N1).
12
+ *
13
+ * @license MIT
14
+ */
15
+ import type { AdvancedToolEntry } from '../capturing-server.js';
16
+ /**
17
+ * Domains used to group advanced tool names. Order = display order in
18
+ * gateway description, errors, and discovery responses. Aligned with
19
+ * YOOtheme builder concepts (Design-Doc §3.1.1). Round-1 I4 trimmed
20
+ * from 8→4 (singular forms now route via DOMAIN_PREFIX_MAP, not
21
+ * duplicate entries). Pinned by `tests/gateway/domain-order.test.ts`.
22
+ */
23
+ export declare const DOMAIN_ORDER: readonly ["pages", "elements", "sources", "multi-items", "inspection"];
24
+ /**
25
+ * Prefix→domain routing table. Each domain accepts plural
26
+ * (`pages_list`) + singular (`page_save`, `element_add`, `source_…`)
27
+ * stems via `stem.startsWith(prefix + '_')` or full-equality. Anything
28
+ * outside the taxonomy falls through to 'misc'.
29
+ *
30
+ * The `multi-items` domain captures the YT-Pro Multi-Items binding
31
+ * pattern tools (inspect / clean-implode). Stems used:
32
+ * - `inspect_multi_items_binding` → starts with `inspect_multi_items`
33
+ * - `clean_implode_directives` → starts with `clean_implode`
34
+ */
35
+ export declare const DOMAIN_PREFIX_MAP: Record<(typeof DOMAIN_ORDER)[number], readonly string[]>;
36
+ export declare const TOOL_PREFIX = "yootheme_builder_";
37
+ /** Maps a tool name to its display domain (the first underscore-segment after the prefix). */
38
+ export declare function domainOf(toolName: string): string;
39
+ /** Groups tool names by domain, in DOMAIN_ORDER, for stable output. */
40
+ export declare function groupByDomain(toolNames: string[]): Map<string, string[]>;
41
+ /** Renders the grouped tool list as readable text (used in description + errors). */
42
+ export declare function renderGroupedList(toolNames: string[]): string;
43
+ /** Builds the gateway tool's description, grouping every advanced tool by domain. */
44
+ export declare function buildDescription(toolNames: string[]): string;
45
+ /** Re-export the AdvancedToolEntry type so consumers don't need a second import path. */
46
+ export type { AdvancedToolEntry };
47
+ //# sourceMappingURL=domains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../../src/gateway/advanced-tool/domains.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,wEAAyE,CAAC;AAEnG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAMtF,CAAC;AAEF,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAE/C,8FAA8F;AAC9F,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAYxE;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAO7D;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAe5D;AAED,yFAAyF;AACzF,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Gateway domain taxonomy — single source of truth for grouping
3
+ * advanced tools by domain in description, errors, and discovery
4
+ * payloads.
5
+ *
6
+ * Round-2 (R2-A2-CRIT2) extracted from `gateway/advanced-tool.ts`
7
+ * to keep that file ≤ 200 LoC per Architecture §11.
8
+ *
9
+ * The 4-entry `DOMAIN_ORDER` contract is pinned by
10
+ * `tests/gateway/domain-order.test.ts` — any change here MUST update
11
+ * that pin-test (Round-2 audit follow-up R2-A1-N1).
12
+ *
13
+ * @license MIT
14
+ */
15
+ /**
16
+ * Domains used to group advanced tool names. Order = display order in
17
+ * gateway description, errors, and discovery responses. Aligned with
18
+ * YOOtheme builder concepts (Design-Doc §3.1.1). Round-1 I4 trimmed
19
+ * from 8→4 (singular forms now route via DOMAIN_PREFIX_MAP, not
20
+ * duplicate entries). Pinned by `tests/gateway/domain-order.test.ts`.
21
+ */
22
+ export const DOMAIN_ORDER = ['pages', 'elements', 'sources', 'multi-items', 'inspection'];
23
+ /**
24
+ * Prefix→domain routing table. Each domain accepts plural
25
+ * (`pages_list`) + singular (`page_save`, `element_add`, `source_…`)
26
+ * stems via `stem.startsWith(prefix + '_')` or full-equality. Anything
27
+ * outside the taxonomy falls through to 'misc'.
28
+ *
29
+ * The `multi-items` domain captures the YT-Pro Multi-Items binding
30
+ * pattern tools (inspect / clean-implode). Stems used:
31
+ * - `inspect_multi_items_binding` → starts with `inspect_multi_items`
32
+ * - `clean_implode_directives` → starts with `clean_implode`
33
+ */
34
+ export const DOMAIN_PREFIX_MAP = {
35
+ pages: ['pages', 'page'],
36
+ elements: ['elements', 'element'],
37
+ sources: ['sources', 'source'],
38
+ 'multi-items': ['inspect_multi_items', 'clean_implode'],
39
+ inspection: ['inspection'],
40
+ };
41
+ export const TOOL_PREFIX = 'yootheme_builder_';
42
+ /** Maps a tool name to its display domain (the first underscore-segment after the prefix). */
43
+ export function domainOf(toolName) {
44
+ const stem = toolName.startsWith(TOOL_PREFIX) ? toolName.slice(TOOL_PREFIX.length) : toolName;
45
+ for (const domain of DOMAIN_ORDER) {
46
+ for (const prefix of DOMAIN_PREFIX_MAP[domain]) {
47
+ if (stem === prefix || stem.startsWith(`${prefix}_`))
48
+ return domain;
49
+ }
50
+ }
51
+ return 'misc';
52
+ }
53
+ /** Groups tool names by domain, in DOMAIN_ORDER, for stable output. */
54
+ export function groupByDomain(toolNames) {
55
+ const groups = new Map();
56
+ for (const domain of DOMAIN_ORDER)
57
+ groups.set(domain, []);
58
+ for (const name of [...toolNames].sort()) {
59
+ const domain = domainOf(name);
60
+ const bucket = groups.get(domain);
61
+ if (bucket)
62
+ bucket.push(name);
63
+ }
64
+ for (const [domain, names] of groups) {
65
+ if (names.length === 0)
66
+ groups.delete(domain);
67
+ }
68
+ return groups;
69
+ }
70
+ /** Renders the grouped tool list as readable text (used in description + errors). */
71
+ export function renderGroupedList(toolNames) {
72
+ const groups = groupByDomain(toolNames);
73
+ const lines = [];
74
+ for (const [domain, names] of groups) {
75
+ lines.push(` ${domain}: ${names.join(', ')}`);
76
+ }
77
+ return lines.join('\n');
78
+ }
79
+ /** Builds the gateway tool's description, grouping every advanced tool by domain. */
80
+ export function buildDescription(toolNames) {
81
+ const toolCount = toolNames.length;
82
+ const domains = [...groupByDomain(toolNames).keys()];
83
+ const domainCount = domains.length;
84
+ const domainList = domains.join(', ');
85
+ return (`Routes to ${String(toolCount)} advanced YOOtheme Builder tools across ${String(domainCount)} ` +
86
+ `domain${domainCount === 1 ? '' : 's'}${domainCount > 0 ? ` (${domainList})` : ''}. ` +
87
+ 'Call with { tool } for a target\'s schema + annotations, or ' +
88
+ '{ tool, arguments } to run it. The target tool\'s own confirmation ' +
89
+ 'guards and behavior stay in effect.\n\n' +
90
+ 'Available advanced tools by domain:\n' +
91
+ `${renderGroupedList(toolNames)}\n\n` +
92
+ 'For connectivity diagnostics use yootheme_builder_health or yootheme_builder_diagnose (top-level).');
93
+ }
94
+ //# sourceMappingURL=domains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domains.js","sourceRoot":"","sources":["../../../src/gateway/advanced-tool/domains.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Gateway execute-mode dispatch — handles `{ tool, arguments }`
3
+ * invocations by validating `arguments` against the target tool's Zod
4
+ * schema in `.strict()` mode, then invoking the captured handler with
5
+ * the parsed args and the original SDK `extra` (so progress/elicitation/
6
+ * AbortSignal of the target tool keep working).
7
+ *
8
+ * Round-2 (R2-A2-CRIT2) extracted from `gateway/advanced-tool.ts`.
9
+ *
10
+ * @license MIT
11
+ */
12
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
13
+ import type { AdvancedToolEntry } from '../capturing-server.js';
14
+ /** Builds an error CallToolResult with structured payload (echoed into text + structuredContent). */
15
+ export declare function errorResult(payload: {
16
+ message: string;
17
+ code: string;
18
+ suggestion: string;
19
+ details?: Record<string, unknown>;
20
+ }): CallToolResult;
21
+ /**
22
+ * Executes a captured advanced tool with strict-validated arguments.
23
+ *
24
+ * Returns a structured `invalid_arguments` error on Zod-validation
25
+ * failure; otherwise invokes `entry.handler` with `(parsedArgs, extra)`
26
+ * and returns its CallToolResult verbatim.
27
+ */
28
+ export declare function executeAdvancedTool(toolName: string, entry: AdvancedToolEntry, rawArgs: Record<string, unknown>, extra: unknown): Promise<CallToolResult>;
29
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/gateway/advanced-tool/execute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,qGAAqG;AACrG,wBAAgB,WAAW,CAAC,OAAO,EAAE;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,GAAG,cAAc,CAYjB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,OAAO,GACf,OAAO,CAAC,cAAc,CAAC,CAoBzB"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Gateway execute-mode dispatch — handles `{ tool, arguments }`
3
+ * invocations by validating `arguments` against the target tool's Zod
4
+ * schema in `.strict()` mode, then invoking the captured handler with
5
+ * the parsed args and the original SDK `extra` (so progress/elicitation/
6
+ * AbortSignal of the target tool keep working).
7
+ *
8
+ * Round-2 (R2-A2-CRIT2) extracted from `gateway/advanced-tool.ts`.
9
+ *
10
+ * @license MIT
11
+ */
12
+ import { z } from 'zod';
13
+ import { inputSchemaJson, shapeOf } from './discovery.js';
14
+ /** Builds an error CallToolResult with structured payload (echoed into text + structuredContent). */
15
+ export function errorResult(payload) {
16
+ const body = {
17
+ error: payload.message,
18
+ code: payload.code,
19
+ suggestion: payload.suggestion,
20
+ ...(payload.details !== undefined ? { details: payload.details } : {}),
21
+ };
22
+ return {
23
+ content: [{ type: 'text', text: JSON.stringify(body, null, 2) }],
24
+ structuredContent: body,
25
+ isError: true,
26
+ };
27
+ }
28
+ /**
29
+ * Executes a captured advanced tool with strict-validated arguments.
30
+ *
31
+ * Returns a structured `invalid_arguments` error on Zod-validation
32
+ * failure; otherwise invokes `entry.handler` with `(parsedArgs, extra)`
33
+ * and returns its CallToolResult verbatim.
34
+ */
35
+ export async function executeAdvancedTool(toolName, entry, rawArgs, extra) {
36
+ // strict() surfaces unknown keys as Zod issues rather than silently
37
+ // dropping them, so callers can self-correct when they pass schema-
38
+ // extra keys.
39
+ const parsed = z.object(shapeOf(entry)).strict().safeParse(rawArgs);
40
+ if (!parsed.success) {
41
+ return errorResult({
42
+ message: `Invalid arguments for "${toolName}".`,
43
+ code: 'invalid_arguments',
44
+ suggestion: `Call yootheme_builder_advanced with { tool: "${toolName}" } to see ` +
45
+ 'the expected schema, then retry with corrected arguments.',
46
+ details: {
47
+ issues: parsed.error.issues,
48
+ expected_schema: inputSchemaJson(entry),
49
+ },
50
+ });
51
+ }
52
+ return entry.handler(parsed.data, extra);
53
+ }
54
+ //# sourceMappingURL=execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/gateway/advanced-tool/execute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE1D,qGAAqG;AACrG,MAAM,UAAU,WAAW,CAAC,OAK3B;IACG,MAAM,IAAI,GAAG;QACT,KAAK,EAAE,OAAO,CAAC,OAAO;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzE,CAAC;IACF,OAAO;QACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAChE,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,IAAI;KAChB,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACrC,QAAgB,EAChB,KAAwB,EACxB,OAAgC,EAChC,KAAc;IAEd,oEAAoE;IACpE,oEAAoE;IACpE,cAAc;IACd,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,WAAW,CAAC;YACf,OAAO,EAAE,0BAA0B,QAAQ,IAAI;YAC/C,IAAI,EAAE,mBAAmB;YACzB,UAAU,EACN,gDAAgD,QAAQ,aAAa;gBACrE,2DAA2D;YAC/D,OAAO,EAAE;gBACL,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;gBAC3B,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC;aAC1C;SACJ,CAAC,CAAC;IACP,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC"}