@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,53 @@
1
+ /**
2
+ * Claude Code (Anthropic CLI) config writer.
3
+ *
4
+ * All platforms: ~/.claude.json (single file)
5
+ *
6
+ * Schema mirrors Claude Desktop's `mcpServers` map:
7
+ *
8
+ * {
9
+ * "mcpServers": {
10
+ * "<name>": { "command": "npx", "args": [...], "env": {...} }
11
+ * }
12
+ * }
13
+ *
14
+ * @license MIT
15
+ */
16
+ import { existsSync } from 'node:fs';
17
+ import { join } from 'node:path';
18
+ import { userHome } from './home.js';
19
+ import { patchJsonFile } from './index.js';
20
+ function configPath() {
21
+ return join(userHome(), '.claude.json');
22
+ }
23
+ /**
24
+ * Detection: either the user-config file already exists, or the
25
+ * `~/.claude/` directory does (Claude Code creates it on first run
26
+ * for skills, transcripts, etc., even before the JSON file lands).
27
+ */
28
+ function isDetected() {
29
+ const home = userHome();
30
+ return existsSync(join(home, '.claude.json')) || existsSync(join(home, '.claude'));
31
+ }
32
+ export const claudeCodeClient = {
33
+ id: 'claude-code',
34
+ label: 'Claude Code',
35
+ configPath,
36
+ isDetected,
37
+ apply: async (serverName, config) => {
38
+ await patchJsonFile(configPath(), (current) => {
39
+ const servers = current.mcpServers !== null &&
40
+ typeof current.mcpServers === 'object' &&
41
+ !Array.isArray(current.mcpServers)
42
+ ? { ...current.mcpServers }
43
+ : {};
44
+ servers[serverName] = {
45
+ command: config.command,
46
+ args: config.args,
47
+ env: config.env,
48
+ };
49
+ return { ...current, mcpServers: servers };
50
+ });
51
+ },
52
+ };
53
+ //# sourceMappingURL=claude-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/clients/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAA2C,MAAM,YAAY,CAAC;AAEpF,SAAS,UAAU;IACf,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU;IACf,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC1C,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,aAAa;IACpB,UAAU;IACV,UAAU;IACV,KAAK,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAuB,EAAE,EAAE;QACzD,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,OAAO,GACT,OAAO,CAAC,UAAU,KAAK,IAAI;gBAC3B,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;gBACtC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC9B,CAAC,CAAC,EAAE,GAAI,OAAO,CAAC,UAAsC,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,UAAU,CAAC,GAAG;gBAClB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;aAClB,CAAC;YACF,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Claude Desktop config writer.
3
+ *
4
+ * macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
5
+ * Windows: %APPDATA%\Claude\claude_desktop_config.json
6
+ * Linux: ~/.config/Claude/claude_desktop_config.json (unofficial)
7
+ *
8
+ * Schema:
9
+ * {
10
+ * "mcpServers": {
11
+ * "<name>": { "command": "npx", "args": [...], "env": {...} }
12
+ * }
13
+ * }
14
+ *
15
+ * @license MIT
16
+ */
17
+ import { type ClientWriter } from './index.js';
18
+ export declare const claudeDesktopClient: ClientWriter;
19
+ //# sourceMappingURL=claude-desktop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-desktop.d.ts","sourceRoot":"","sources":["../../src/clients/claude-desktop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EAAiB,KAAK,YAAY,EAAwB,MAAM,YAAY,CAAC;AAgBpF,eAAO,MAAM,mBAAmB,EAAE,YAqBjC,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Claude Desktop config writer.
3
+ *
4
+ * macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
5
+ * Windows: %APPDATA%\Claude\claude_desktop_config.json
6
+ * Linux: ~/.config/Claude/claude_desktop_config.json (unofficial)
7
+ *
8
+ * Schema:
9
+ * {
10
+ * "mcpServers": {
11
+ * "<name>": { "command": "npx", "args": [...], "env": {...} }
12
+ * }
13
+ * }
14
+ *
15
+ * @license MIT
16
+ */
17
+ import { existsSync } from 'node:fs';
18
+ import { platform } from 'node:os';
19
+ import { join } from 'node:path';
20
+ import { userHome } from './home.js';
21
+ import { patchJsonFile } from './index.js';
22
+ function configPath() {
23
+ const home = userHome();
24
+ switch (platform()) {
25
+ case 'darwin':
26
+ return join(home, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json');
27
+ case 'win32': {
28
+ const appData = process.env.APPDATA ?? join(home, 'AppData', 'Roaming');
29
+ return join(appData, 'Claude', 'claude_desktop_config.json');
30
+ }
31
+ default:
32
+ return join(home, '.config', 'Claude', 'claude_desktop_config.json');
33
+ }
34
+ }
35
+ export const claudeDesktopClient = {
36
+ id: 'claude-desktop',
37
+ label: 'Claude Desktop',
38
+ configPath,
39
+ isDetected: () => existsSync(configPath()),
40
+ apply: async (serverName, config) => {
41
+ await patchJsonFile(configPath(), (current) => {
42
+ const servers = current.mcpServers !== null &&
43
+ typeof current.mcpServers === 'object' &&
44
+ !Array.isArray(current.mcpServers)
45
+ ? { ...current.mcpServers }
46
+ : {};
47
+ servers[serverName] = {
48
+ command: config.command,
49
+ args: config.args,
50
+ env: config.env,
51
+ };
52
+ return { ...current, mcpServers: servers };
53
+ });
54
+ },
55
+ };
56
+ //# sourceMappingURL=claude-desktop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-desktop.js","sourceRoot":"","sources":["../../src/clients/claude-desktop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAA2C,MAAM,YAAY,CAAC;AAEpF,SAAS,UAAU;IACf,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,QAAQ,QAAQ,EAAE,EAAE,CAAC;QACjB,KAAK,QAAQ;YACT,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QAChG,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QACjE,CAAC;QACD;YACI,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IAC7E,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC7C,EAAE,EAAE,gBAAgB;IACpB,KAAK,EAAE,gBAAgB;IACvB,UAAU;IACV,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IAC1C,KAAK,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAuB,EAAE,EAAE;QACzD,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,OAAO,GACT,OAAO,CAAC,UAAU,KAAK,IAAI;gBAC3B,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;gBACtC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC9B,CAAC,CAAC,EAAE,GAAI,OAAO,CAAC,UAAsC,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,UAAU,CAAC,GAAG;gBAClB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;aAClB,CAAC;YACF,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Cline MCP config writer.
3
+ *
4
+ * Cline ships as the VS Code extension `saoudrizwan.claude-dev`. Per
5
+ * Cline's docs (`docs.cline.bot` "MCP / Configuration"), the per-user
6
+ * MCP server registry lives at
7
+ * `<vsCodeUserDir>/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
8
+ *
9
+ * VS Code's `<vsCodeUserDir>` is:
10
+ * macOS: ~/Library/Application Support/Code/User
11
+ * Linux: ~/.config/Code/User
12
+ * Windows: %APPDATA%\Code\User
13
+ *
14
+ * Schema mirrors Claude Desktop's `mcpServers` map:
15
+ *
16
+ * {
17
+ * "mcpServers": {
18
+ * "<name>": { "command": "npx", "args": [...], "env": {...} }
19
+ * }
20
+ * }
21
+ *
22
+ * @license MIT
23
+ */
24
+ import { type ClientWriter } from './index.js';
25
+ export declare const clineClient: ClientWriter;
26
+ //# sourceMappingURL=cline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline.d.ts","sourceRoot":"","sources":["../../src/clients/cline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,OAAO,EAAiB,KAAK,YAAY,EAAwB,MAAM,YAAY,CAAC;AA0CpF,eAAO,MAAM,WAAW,EAAE,YAqBzB,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Cline MCP config writer.
3
+ *
4
+ * Cline ships as the VS Code extension `saoudrizwan.claude-dev`. Per
5
+ * Cline's docs (`docs.cline.bot` "MCP / Configuration"), the per-user
6
+ * MCP server registry lives at
7
+ * `<vsCodeUserDir>/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
8
+ *
9
+ * VS Code's `<vsCodeUserDir>` is:
10
+ * macOS: ~/Library/Application Support/Code/User
11
+ * Linux: ~/.config/Code/User
12
+ * Windows: %APPDATA%\Code\User
13
+ *
14
+ * Schema mirrors Claude Desktop's `mcpServers` map:
15
+ *
16
+ * {
17
+ * "mcpServers": {
18
+ * "<name>": { "command": "npx", "args": [...], "env": {...} }
19
+ * }
20
+ * }
21
+ *
22
+ * @license MIT
23
+ */
24
+ import { existsSync } from 'node:fs';
25
+ import { platform } from 'node:os';
26
+ import { join } from 'node:path';
27
+ import { userHome } from './home.js';
28
+ import { patchJsonFile } from './index.js';
29
+ const EXTENSION_ID = 'saoudrizwan.claude-dev';
30
+ const SETTINGS_FILENAME = 'cline_mcp_settings.json';
31
+ function vsCodeUserDir() {
32
+ const home = userHome();
33
+ switch (platform()) {
34
+ case 'darwin':
35
+ return join(home, 'Library', 'Application Support', 'Code', 'User');
36
+ case 'win32': {
37
+ const appData = process.env.APPDATA ?? join(home, 'AppData', 'Roaming');
38
+ return join(appData, 'Code', 'User');
39
+ }
40
+ default:
41
+ return join(home, '.config', 'Code', 'User');
42
+ }
43
+ }
44
+ function configPath() {
45
+ return join(vsCodeUserDir(), 'globalStorage', EXTENSION_ID, 'settings', SETTINGS_FILENAME);
46
+ }
47
+ /**
48
+ * Detection: prefer the most concrete signal we can get without
49
+ * triggering false-negatives on a fresh install. The extension's
50
+ * globalStorage directory is created on first launch — checking for
51
+ * its existence reliably distinguishes "Cline installed" from "VS
52
+ * Code installed without Cline". As a fallback we accept the bare
53
+ * VS Code user dir so the wizard at least surfaces the option.
54
+ */
55
+ function isDetected() {
56
+ const extDir = join(vsCodeUserDir(), 'globalStorage', EXTENSION_ID);
57
+ return existsSync(extDir) || existsSync(configPath());
58
+ }
59
+ export const clineClient = {
60
+ id: 'cline',
61
+ label: 'Cline (VS Code)',
62
+ configPath,
63
+ isDetected,
64
+ apply: async (serverName, config) => {
65
+ await patchJsonFile(configPath(), (current) => {
66
+ const servers = current.mcpServers !== null &&
67
+ typeof current.mcpServers === 'object' &&
68
+ !Array.isArray(current.mcpServers)
69
+ ? { ...current.mcpServers }
70
+ : {};
71
+ servers[serverName] = {
72
+ command: config.command,
73
+ args: config.args,
74
+ env: config.env,
75
+ };
76
+ return { ...current, mcpServers: servers };
77
+ });
78
+ },
79
+ };
80
+ //# sourceMappingURL=cline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline.js","sourceRoot":"","sources":["../../src/clients/cline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAA2C,MAAM,YAAY,CAAC;AAEpF,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAC9C,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAEpD,SAAS,aAAa;IAClB,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,QAAQ,QAAQ,EAAE,EAAE,CAAC;QACjB,KAAK,QAAQ;YACT,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxE,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QACD;YACI,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;AACL,CAAC;AAED,SAAS,UAAU;IACf,OAAO,IAAI,CACP,aAAa,EAAE,EACf,eAAe,EACf,YAAY,EACZ,UAAU,EACV,iBAAiB,CACpB,CAAC;AACN,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,UAAU;IACf,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IACpE,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAiB;IACrC,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,iBAAiB;IACxB,UAAU;IACV,UAAU;IACV,KAAK,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAuB,EAAE,EAAE;QACzD,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,OAAO,GACT,OAAO,CAAC,UAAU,KAAK,IAAI;gBAC3B,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;gBACtC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC9B,CAAC,CAAC,EAAE,GAAI,OAAO,CAAC,UAAsC,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,UAAU,CAAC,GAAG;gBAClB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;aAClB,CAAC;YACF,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * OpenAI Codex CLI config writer.
3
+ *
4
+ * All platforms: ~/.codex/config.toml
5
+ *
6
+ * TOML schema:
7
+ *
8
+ * [mcp_servers.<name>]
9
+ * command = "npx"
10
+ * args = ["-y", "@wootsup/yt-builder-mcp"]
11
+ *
12
+ * [mcp_servers.<name>.env]
13
+ * KEY = "value"
14
+ *
15
+ * No TOML library is currently in this package's dependency closure
16
+ * (see `pnpm list` at build-time). To avoid pulling a new dep for one
17
+ * tiny use-case, this adapter uses a minimal serializer + an
18
+ * "append-or-replace section" regex strategy:
19
+ *
20
+ * - To write: emit the full `[mcp_servers.<name>] ...` block and
21
+ * any sub-tables (currently just `.env`) as a contiguous chunk.
22
+ * - To merge with an existing file: regex-delete any prior chunk
23
+ * for the same server name (top-level table + its sub-tables),
24
+ * then append the new chunk.
25
+ *
26
+ * Constraints (deliberately narrow — we own ALL writes via this
27
+ * adapter, so we never have to round-trip arbitrary user TOML):
28
+ *
29
+ * - string keys only
30
+ * - values: string, string[]
31
+ * - sub-tables: one level deep (just `.env`)
32
+ * - no inline tables, no datetime, no float, no bool
33
+ *
34
+ * If a customer hand-edits the file with richer TOML, those edits
35
+ * are preserved verbatim because we only touch our own
36
+ * `[mcp_servers.<name>]` sections by name.
37
+ *
38
+ * @license MIT
39
+ */
40
+ import type { ClientWriter } from './index.js';
41
+ export declare const codexCliClient: ClientWriter;
42
+ //# sourceMappingURL=codex-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-cli.d.ts","sourceRoot":"","sources":["../../src/clients/codex-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AA4HhE,eAAO,MAAM,cAAc,EAAE,YA6B5B,CAAC"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * OpenAI Codex CLI config writer.
3
+ *
4
+ * All platforms: ~/.codex/config.toml
5
+ *
6
+ * TOML schema:
7
+ *
8
+ * [mcp_servers.<name>]
9
+ * command = "npx"
10
+ * args = ["-y", "@wootsup/yt-builder-mcp"]
11
+ *
12
+ * [mcp_servers.<name>.env]
13
+ * KEY = "value"
14
+ *
15
+ * No TOML library is currently in this package's dependency closure
16
+ * (see `pnpm list` at build-time). To avoid pulling a new dep for one
17
+ * tiny use-case, this adapter uses a minimal serializer + an
18
+ * "append-or-replace section" regex strategy:
19
+ *
20
+ * - To write: emit the full `[mcp_servers.<name>] ...` block and
21
+ * any sub-tables (currently just `.env`) as a contiguous chunk.
22
+ * - To merge with an existing file: regex-delete any prior chunk
23
+ * for the same server name (top-level table + its sub-tables),
24
+ * then append the new chunk.
25
+ *
26
+ * Constraints (deliberately narrow — we own ALL writes via this
27
+ * adapter, so we never have to round-trip arbitrary user TOML):
28
+ *
29
+ * - string keys only
30
+ * - values: string, string[]
31
+ * - sub-tables: one level deep (just `.env`)
32
+ * - no inline tables, no datetime, no float, no bool
33
+ *
34
+ * If a customer hand-edits the file with richer TOML, those edits
35
+ * are preserved verbatim because we only touch our own
36
+ * `[mcp_servers.<name>]` sections by name.
37
+ *
38
+ * @license MIT
39
+ */
40
+ import { existsSync } from 'node:fs';
41
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
42
+ import { dirname, join } from 'node:path';
43
+ import { userHome } from './home.js';
44
+ function configPath() {
45
+ return join(userHome(), '.codex', 'config.toml');
46
+ }
47
+ /**
48
+ * Escape a string for use as a TOML basic-string value (between
49
+ * double quotes). Handles backslash, double-quote, and control
50
+ * characters via TOML's standard escape sequences.
51
+ */
52
+ function escapeTomlString(input) {
53
+ let out = '';
54
+ for (const ch of input) {
55
+ const code = ch.codePointAt(0) ?? 0;
56
+ if (ch === '\\')
57
+ out += '\\\\';
58
+ else if (ch === '"')
59
+ out += '\\"';
60
+ else if (ch === '\b')
61
+ out += '\\b';
62
+ else if (ch === '\t')
63
+ out += '\\t';
64
+ else if (ch === '\n')
65
+ out += '\\n';
66
+ else if (ch === '\f')
67
+ out += '\\f';
68
+ else if (ch === '\r')
69
+ out += '\\r';
70
+ else if (code < 0x20)
71
+ out += '\\u' + code.toString(16).padStart(4, '0').toUpperCase();
72
+ else
73
+ out += ch;
74
+ }
75
+ return out;
76
+ }
77
+ /**
78
+ * Bare key validity per TOML spec: ASCII letters, digits, underscore,
79
+ * dash. Anything else gets quoted.
80
+ */
81
+ function tomlKey(key) {
82
+ return /^[A-Za-z0-9_-]+$/.test(key) ? key : `"${escapeTomlString(key)}"`;
83
+ }
84
+ function tomlStringValue(value) {
85
+ return `"${escapeTomlString(value)}"`;
86
+ }
87
+ function tomlStringArray(values) {
88
+ return '[' + values.map((v) => tomlStringValue(v)).join(', ') + ']';
89
+ }
90
+ /**
91
+ * Render the `[mcp_servers.<name>]` block plus a `[mcp_servers.<name>.env]`
92
+ * sub-table when the env map is non-empty. Always ends with a trailing
93
+ * blank line so successive sections are visually separated.
94
+ */
95
+ function renderServerBlock(serverName, config) {
96
+ const nameKey = tomlKey(serverName);
97
+ const lines = [];
98
+ lines.push(`[mcp_servers.${nameKey}]`);
99
+ lines.push(`command = ${tomlStringValue(config.command)}`);
100
+ lines.push(`args = ${tomlStringArray(config.args)}`);
101
+ const envKeys = Object.keys(config.env);
102
+ if (envKeys.length === 0) {
103
+ lines.push('');
104
+ return lines.join('\n') + '\n';
105
+ }
106
+ lines.push('');
107
+ lines.push(`[mcp_servers.${nameKey}.env]`);
108
+ for (const key of envKeys) {
109
+ const v = config.env[key];
110
+ if (typeof v !== 'string')
111
+ continue;
112
+ lines.push(`${tomlKey(key)} = ${tomlStringValue(v)}`);
113
+ }
114
+ lines.push('');
115
+ return lines.join('\n') + '\n';
116
+ }
117
+ /**
118
+ * Strip any prior `[mcp_servers.<name>]` (and its `[mcp_servers.<name>.<sub>]`
119
+ * children) from an existing TOML body. We anchor on the literal table
120
+ * header and consume up to the next top-level `[...]` header or EOF.
121
+ *
122
+ * Regex notes:
123
+ * - `^` with `m` flag so the table header must start a line
124
+ * - `[\s\S]*?` lazy so we stop at the next header
125
+ * - `(?=\n\[[^.])` lookahead: next `[xxx]` that is NOT a sub-table
126
+ * of our removed section (sub-tables start with `[mcp_servers.<name>.`,
127
+ * containing a dot — so we want the next `[` followed by a non-`m`
128
+ * OR more conservatively, any `[` that doesn't start a sub-table).
129
+ *
130
+ * To keep this readable we just delete `[mcp_servers.<name>]` and any
131
+ * `[mcp_servers.<name>.*]` blocks individually.
132
+ */
133
+ function stripExistingSection(body, serverName) {
134
+ // Build matchers for both bare and quoted forms of the server key.
135
+ const bare = /^[A-Za-z0-9_-]+$/.test(serverName) ? serverName : null;
136
+ const quoted = `"${escapeTomlString(serverName)}"`;
137
+ const keyAlternatives = bare ? [bare, quoted] : [quoted];
138
+ let result = body;
139
+ for (const k of keyAlternatives) {
140
+ // Escape regex specials in the key (quoted form contains backslashes
141
+ // for embedded quotes — escape those for the regex itself).
142
+ const kEsc = k.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
143
+ // Match `[mcp_servers.<key>]` or `[mcp_servers.<key>.<sub>]` and
144
+ // everything up to the next top-level table header or EOF.
145
+ // A top-level header is `[mcp_servers.X]` (X != <key>) or `[anything]`
146
+ // that isn't our sub-table. To keep this simple we stop at the next
147
+ // line starting with `[` that isn't a sub-table of our key.
148
+ const re = new RegExp(`(^|\\n)\\[mcp_servers\\.${kEsc}(?:\\.[^\\]]+)?\\][^\\[]*?(?=\\n\\[|$)`, 'g');
149
+ result = result.replace(re, (match, leading) => leading);
150
+ }
151
+ // Collapse 3+ consecutive newlines to 2 so deletions don't leave gaps.
152
+ result = result.replace(/\n{3,}/g, '\n\n');
153
+ return result;
154
+ }
155
+ /**
156
+ * Detection: the `~/.codex/` directory exists. Codex CLI creates it
157
+ * during first-run auth (`codex login`), even before the user has
158
+ * configured any MCP servers.
159
+ */
160
+ function isDetected() {
161
+ return existsSync(join(userHome(), '.codex'));
162
+ }
163
+ export const codexCliClient = {
164
+ id: 'codex-cli',
165
+ label: 'Codex CLI',
166
+ configPath,
167
+ isDetected,
168
+ apply: async (serverName, config) => {
169
+ const path = configPath();
170
+ let existing = '';
171
+ if (existsSync(path)) {
172
+ try {
173
+ existing = await readFile(path, 'utf-8');
174
+ }
175
+ catch {
176
+ existing = '';
177
+ }
178
+ }
179
+ else {
180
+ await mkdir(dirname(path), { recursive: true });
181
+ }
182
+ const stripped = stripExistingSection(existing, serverName);
183
+ // Ensure a clean separator before our new section if there is
184
+ // pre-existing content that doesn't already end with a blank line.
185
+ let prefix = stripped;
186
+ if (prefix.length > 0 && !prefix.endsWith('\n\n')) {
187
+ prefix = prefix.endsWith('\n') ? prefix + '\n' : prefix + '\n\n';
188
+ }
189
+ const block = renderServerBlock(serverName, config);
190
+ const next = prefix + block;
191
+ await writeFile(path, next, 'utf-8');
192
+ },
193
+ };
194
+ //# sourceMappingURL=codex-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-cli.js","sourceRoot":"","sources":["../../src/clients/codex-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Continue MCP config writer.
3
+ *
4
+ * Global: ~/.continue/config.json
5
+ *
6
+ * Schema: `experimental.modelContextProtocolServers` array of
7
+ * { transport: { type: 'stdio', command, args, env } } entries.
8
+ *
9
+ * @license MIT
10
+ */
11
+ import { type ClientWriter } from './index.js';
12
+ export declare const continueClient: ClientWriter;
13
+ //# sourceMappingURL=continue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue.d.ts","sourceRoot":"","sources":["../../src/clients/continue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EAAiB,KAAK,YAAY,EAAwB,MAAM,YAAY,CAAC;AAgBpF,eAAO,MAAM,cAAc,EAAE,YAqC5B,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Continue MCP config writer.
3
+ *
4
+ * Global: ~/.continue/config.json
5
+ *
6
+ * Schema: `experimental.modelContextProtocolServers` array of
7
+ * { transport: { type: 'stdio', command, args, env } } entries.
8
+ *
9
+ * @license MIT
10
+ */
11
+ import { existsSync } from 'node:fs';
12
+ import { join } from 'node:path';
13
+ import { userHome } from './home.js';
14
+ import { patchJsonFile } from './index.js';
15
+ function configPath() {
16
+ return join(userHome(), '.continue', 'config.json');
17
+ }
18
+ export const continueClient = {
19
+ id: 'continue',
20
+ label: 'Continue',
21
+ configPath,
22
+ isDetected: () => existsSync(join(userHome(), '.continue')),
23
+ apply: async (serverName, config) => {
24
+ await patchJsonFile(configPath(), (current) => {
25
+ const experimental = current.experimental !== null &&
26
+ typeof current.experimental === 'object' &&
27
+ !Array.isArray(current.experimental)
28
+ ? { ...current.experimental }
29
+ : {};
30
+ const rawList = experimental.modelContextProtocolServers;
31
+ const list = Array.isArray(rawList)
32
+ ? rawList.filter((e) => e !== null &&
33
+ typeof e === 'object' &&
34
+ typeof e.name === 'string')
35
+ : [];
36
+ const entry = {
37
+ name: serverName,
38
+ transport: {
39
+ type: 'stdio',
40
+ command: config.command,
41
+ args: config.args,
42
+ env: config.env,
43
+ },
44
+ };
45
+ const filtered = list.filter((e) => e.name !== serverName);
46
+ filtered.push(entry);
47
+ experimental.modelContextProtocolServers = filtered;
48
+ return { ...current, experimental };
49
+ });
50
+ },
51
+ };
52
+ //# sourceMappingURL=continue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue.js","sourceRoot":"","sources":["../../src/clients/continue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAA2C,MAAM,YAAY,CAAC;AAEpF,SAAS,UAAU;IACf,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AACxD,CAAC;AAYD,MAAM,CAAC,MAAM,cAAc,GAAiB;IACxC,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,UAAU;IACjB,UAAU;IACV,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;IAC3D,KAAK,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAuB,EAAE,EAAE;QACzD,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,YAAY,GACd,OAAO,CAAC,YAAY,KAAK,IAAI;gBAC7B,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;gBACxC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;gBAChC,CAAC,CAAC,EAAE,GAAI,OAAO,CAAC,YAAwC,EAAE;gBAC1D,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,YAAY,CAAC,2BAA2B,CAAC;YACzD,MAAM,IAAI,GAA0B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBACtD,CAAC,CAAE,OAAO,CAAC,MAAM,CACX,CAAC,CAAC,EAA4B,EAAE,CAC5B,CAAC,KAAK,IAAI;oBACV,OAAO,CAAC,KAAK,QAAQ;oBACrB,OAAQ,CAAyB,CAAC,IAAI,KAAK,QAAQ,CAChC;gBAC7B,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,KAAK,GAAwB;gBAC/B,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;iBAClB;aACJ,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAC3D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,YAAY,CAAC,2BAA2B,GAAG,QAAQ,CAAC;YACpD,OAAO,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Cursor MCP config writer.
3
+ *
4
+ * Global: ~/.cursor/mcp.json
5
+ *
6
+ * Schema mirrors Claude Desktop's `mcpServers` map.
7
+ *
8
+ * @license MIT
9
+ */
10
+ import { type ClientWriter } from './index.js';
11
+ export declare const cursorClient: ClientWriter;
12
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/clients/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAiB,KAAK,YAAY,EAAwB,MAAM,YAAY,CAAC;AAMpF,eAAO,MAAM,YAAY,EAAE,YAqB1B,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Cursor MCP config writer.
3
+ *
4
+ * Global: ~/.cursor/mcp.json
5
+ *
6
+ * Schema mirrors Claude Desktop's `mcpServers` map.
7
+ *
8
+ * @license MIT
9
+ */
10
+ import { existsSync } from 'node:fs';
11
+ import { join } from 'node:path';
12
+ import { userHome } from './home.js';
13
+ import { patchJsonFile } from './index.js';
14
+ function configPath() {
15
+ return join(userHome(), '.cursor', 'mcp.json');
16
+ }
17
+ export const cursorClient = {
18
+ id: 'cursor',
19
+ label: 'Cursor',
20
+ configPath,
21
+ isDetected: () => existsSync(join(userHome(), '.cursor')),
22
+ apply: async (serverName, config) => {
23
+ await patchJsonFile(configPath(), (current) => {
24
+ const servers = current.mcpServers !== null &&
25
+ typeof current.mcpServers === 'object' &&
26
+ !Array.isArray(current.mcpServers)
27
+ ? { ...current.mcpServers }
28
+ : {};
29
+ servers[serverName] = {
30
+ command: config.command,
31
+ args: config.args,
32
+ env: config.env,
33
+ };
34
+ return { ...current, mcpServers: servers };
35
+ });
36
+ },
37
+ };
38
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/clients/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAA2C,MAAM,YAAY,CAAC;AAEpF,SAAS,UAAU;IACf,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAiB;IACtC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,UAAU;IACV,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;IACzD,KAAK,EAAE,KAAK,EAAE,UAAkB,EAAE,MAAuB,EAAE,EAAE;QACzD,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,OAAO,GACT,OAAO,CAAC,UAAU,KAAK,IAAI;gBAC3B,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;gBACtC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC9B,CAAC,CAAC,EAAE,GAAI,OAAO,CAAC,UAAsC,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,UAAU,CAAC,GAAG;gBAClB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;aAClB,CAAC;YACF,OAAO,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}