@wootsup/yt-builder-mcp 1.1.0 → 1.1.6

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 (400) hide show
  1. package/README.md +56 -55
  2. package/manifest.json +15 -15
  3. package/package.json +2 -2
  4. package/skills/yt-builder-mcp/SKILL.md +130 -121
  5. package/dist/auth.d.ts +0 -119
  6. package/dist/auth.d.ts.map +0 -1
  7. package/dist/auth.js +0 -226
  8. package/dist/auth.js.map +0 -1
  9. package/dist/client.d.ts +0 -84
  10. package/dist/client.d.ts.map +0 -1
  11. package/dist/client.js +0 -151
  12. package/dist/client.js.map +0 -1
  13. package/dist/clients/claude-code.d.ts +0 -18
  14. package/dist/clients/claude-code.d.ts.map +0 -1
  15. package/dist/clients/claude-code.js +0 -53
  16. package/dist/clients/claude-code.js.map +0 -1
  17. package/dist/clients/claude-desktop.d.ts +0 -19
  18. package/dist/clients/claude-desktop.d.ts.map +0 -1
  19. package/dist/clients/claude-desktop.js +0 -56
  20. package/dist/clients/claude-desktop.js.map +0 -1
  21. package/dist/clients/cline.d.ts +0 -26
  22. package/dist/clients/cline.d.ts.map +0 -1
  23. package/dist/clients/cline.js +0 -80
  24. package/dist/clients/cline.js.map +0 -1
  25. package/dist/clients/codex-cli.d.ts +0 -42
  26. package/dist/clients/codex-cli.d.ts.map +0 -1
  27. package/dist/clients/codex-cli.js +0 -194
  28. package/dist/clients/codex-cli.js.map +0 -1
  29. package/dist/clients/continue.d.ts +0 -13
  30. package/dist/clients/continue.d.ts.map +0 -1
  31. package/dist/clients/continue.js +0 -52
  32. package/dist/clients/continue.js.map +0 -1
  33. package/dist/clients/cursor.d.ts +0 -12
  34. package/dist/clients/cursor.d.ts.map +0 -1
  35. package/dist/clients/cursor.js +0 -38
  36. package/dist/clients/cursor.js.map +0 -1
  37. package/dist/clients/gemini-cli.d.ts +0 -18
  38. package/dist/clients/gemini-cli.d.ts.map +0 -1
  39. package/dist/clients/gemini-cli.js +0 -44
  40. package/dist/clients/gemini-cli.js.map +0 -1
  41. package/dist/clients/home.d.ts +0 -14
  42. package/dist/clients/home.d.ts.map +0 -1
  43. package/dist/clients/home.js +0 -20
  44. package/dist/clients/home.js.map +0 -1
  45. package/dist/clients/index.d.ts +0 -52
  46. package/dist/clients/index.d.ts.map +0 -1
  47. package/dist/clients/index.js +0 -72
  48. package/dist/clients/index.js.map +0 -1
  49. package/dist/clients/roo-code.d.ts +0 -23
  50. package/dist/clients/roo-code.d.ts.map +0 -1
  51. package/dist/clients/roo-code.js +0 -69
  52. package/dist/clients/roo-code.js.map +0 -1
  53. package/dist/clients/zed.d.ts +0 -12
  54. package/dist/clients/zed.d.ts.map +0 -1
  55. package/dist/clients/zed.js +0 -41
  56. package/dist/clients/zed.js.map +0 -1
  57. package/dist/errors/hints.d.ts +0 -51
  58. package/dist/errors/hints.d.ts.map +0 -1
  59. package/dist/errors/hints.js +0 -95
  60. package/dist/errors/hints.js.map +0 -1
  61. package/dist/errors/mask.d.ts +0 -35
  62. package/dist/errors/mask.d.ts.map +0 -1
  63. package/dist/errors/mask.js +0 -49
  64. package/dist/errors/mask.js.map +0 -1
  65. package/dist/errors/sanitize.d.ts +0 -31
  66. package/dist/errors/sanitize.d.ts.map +0 -1
  67. package/dist/errors/sanitize.js +0 -100
  68. package/dist/errors/sanitize.js.map +0 -1
  69. package/dist/errors.d.ts +0 -42
  70. package/dist/errors.d.ts.map +0 -1
  71. package/dist/errors.js +0 -61
  72. package/dist/errors.js.map +0 -1
  73. package/dist/gateway/advanced-tool/discovery.d.ts +0 -19
  74. package/dist/gateway/advanced-tool/discovery.d.ts.map +0 -1
  75. package/dist/gateway/advanced-tool/discovery.js +0 -53
  76. package/dist/gateway/advanced-tool/discovery.js.map +0 -1
  77. package/dist/gateway/advanced-tool/domains.d.ts +0 -47
  78. package/dist/gateway/advanced-tool/domains.d.ts.map +0 -1
  79. package/dist/gateway/advanced-tool/domains.js +0 -94
  80. package/dist/gateway/advanced-tool/domains.js.map +0 -1
  81. package/dist/gateway/advanced-tool/execute.d.ts +0 -29
  82. package/dist/gateway/advanced-tool/execute.d.ts.map +0 -1
  83. package/dist/gateway/advanced-tool/execute.js +0 -54
  84. package/dist/gateway/advanced-tool/execute.js.map +0 -1
  85. package/dist/gateway/advanced-tool/index.d.ts +0 -36
  86. package/dist/gateway/advanced-tool/index.d.ts.map +0 -1
  87. package/dist/gateway/advanced-tool/index.js +0 -39
  88. package/dist/gateway/advanced-tool/index.js.map +0 -1
  89. package/dist/gateway/advanced-tool/register.d.ts +0 -18
  90. package/dist/gateway/advanced-tool/register.d.ts.map +0 -1
  91. package/dist/gateway/advanced-tool/register.js +0 -69
  92. package/dist/gateway/advanced-tool/register.js.map +0 -1
  93. package/dist/gateway/advanced-tool.d.ts +0 -13
  94. package/dist/gateway/advanced-tool.d.ts.map +0 -1
  95. package/dist/gateway/advanced-tool.js +0 -13
  96. package/dist/gateway/advanced-tool.js.map +0 -1
  97. package/dist/gateway/capturing-server.d.ts +0 -117
  98. package/dist/gateway/capturing-server.d.ts.map +0 -1
  99. package/dist/gateway/capturing-server.js +0 -103
  100. package/dist/gateway/capturing-server.js.map +0 -1
  101. package/dist/gateway/essentials.d.ts +0 -49
  102. package/dist/gateway/essentials.d.ts.map +0 -1
  103. package/dist/gateway/essentials.js +0 -92
  104. package/dist/gateway/essentials.js.map +0 -1
  105. package/dist/gateway/test-support.d.ts +0 -41
  106. package/dist/gateway/test-support.d.ts.map +0 -1
  107. package/dist/gateway/test-support.js +0 -60
  108. package/dist/gateway/test-support.js.map +0 -1
  109. package/dist/index.d.ts +0 -29
  110. package/dist/index.d.ts.map +0 -1
  111. package/dist/index.js +0 -113
  112. package/dist/index.js.map +0 -1
  113. package/dist/install-skill.d.ts +0 -43
  114. package/dist/install-skill.d.ts.map +0 -1
  115. package/dist/install-skill.js +0 -118
  116. package/dist/install-skill.js.map +0 -1
  117. package/dist/platform/detect.d.ts +0 -64
  118. package/dist/platform/detect.d.ts.map +0 -1
  119. package/dist/platform/detect.js +0 -98
  120. package/dist/platform/detect.js.map +0 -1
  121. package/dist/platform/index.d.ts +0 -121
  122. package/dist/platform/index.d.ts.map +0 -1
  123. package/dist/platform/index.js +0 -176
  124. package/dist/platform/index.js.map +0 -1
  125. package/dist/platform/joomla.d.ts +0 -44
  126. package/dist/platform/joomla.d.ts.map +0 -1
  127. package/dist/platform/joomla.js +0 -46
  128. package/dist/platform/joomla.js.map +0 -1
  129. package/dist/server.d.ts +0 -109
  130. package/dist/server.d.ts.map +0 -1
  131. package/dist/server.js +0 -237
  132. package/dist/server.js.map +0 -1
  133. package/dist/setup-cli-confirm.d.ts +0 -36
  134. package/dist/setup-cli-confirm.d.ts.map +0 -1
  135. package/dist/setup-cli-confirm.js +0 -59
  136. package/dist/setup-cli-confirm.js.map +0 -1
  137. package/dist/setup-cli.d.ts +0 -152
  138. package/dist/setup-cli.d.ts.map +0 -1
  139. package/dist/setup-cli.js +0 -870
  140. package/dist/setup-cli.js.map +0 -1
  141. package/dist/setup-prompts.d.ts +0 -41
  142. package/dist/setup-prompts.d.ts.map +0 -1
  143. package/dist/setup-prompts.js +0 -146
  144. package/dist/setup-prompts.js.map +0 -1
  145. package/dist/setup-token.d.ts +0 -38
  146. package/dist/setup-token.d.ts.map +0 -1
  147. package/dist/setup-token.js +0 -106
  148. package/dist/setup-token.js.map +0 -1
  149. package/dist/setup-wizard-defaults.d.ts +0 -43
  150. package/dist/setup-wizard-defaults.d.ts.map +0 -1
  151. package/dist/setup-wizard-defaults.js +0 -160
  152. package/dist/setup-wizard-defaults.js.map +0 -1
  153. package/dist/setup-wizard-handshake.d.ts +0 -25
  154. package/dist/setup-wizard-handshake.d.ts.map +0 -1
  155. package/dist/setup-wizard-handshake.js +0 -103
  156. package/dist/setup-wizard-handshake.js.map +0 -1
  157. package/dist/setup-wizard-types.d.ts +0 -164
  158. package/dist/setup-wizard-types.d.ts.map +0 -1
  159. package/dist/setup-wizard-types.js +0 -11
  160. package/dist/setup-wizard-types.js.map +0 -1
  161. package/dist/setup-wizard.d.ts +0 -33
  162. package/dist/setup-wizard.d.ts.map +0 -1
  163. package/dist/setup-wizard.js +0 -199
  164. package/dist/setup-wizard.js.map +0 -1
  165. package/dist/setup.d.ts +0 -17
  166. package/dist/setup.d.ts.map +0 -1
  167. package/dist/setup.js +0 -33
  168. package/dist/setup.js.map +0 -1
  169. package/dist/sites/cli/add-site.d.ts +0 -106
  170. package/dist/sites/cli/add-site.d.ts.map +0 -1
  171. package/dist/sites/cli/add-site.js +0 -185
  172. package/dist/sites/cli/add-site.js.map +0 -1
  173. package/dist/sites/cli/list-sites.d.ts +0 -40
  174. package/dist/sites/cli/list-sites.d.ts.map +0 -1
  175. package/dist/sites/cli/list-sites.js +0 -117
  176. package/dist/sites/cli/list-sites.js.map +0 -1
  177. package/dist/sites/cli/remove-site.d.ts +0 -60
  178. package/dist/sites/cli/remove-site.d.ts.map +0 -1
  179. package/dist/sites/cli/remove-site.js +0 -120
  180. package/dist/sites/cli/remove-site.js.map +0 -1
  181. package/dist/sites/cli/set-default.d.ts +0 -47
  182. package/dist/sites/cli/set-default.d.ts.map +0 -1
  183. package/dist/sites/cli/set-default.js +0 -69
  184. package/dist/sites/cli/set-default.js.map +0 -1
  185. package/dist/sites/cli/test-site.d.ts +0 -77
  186. package/dist/sites/cli/test-site.d.ts.map +0 -1
  187. package/dist/sites/cli/test-site.js +0 -146
  188. package/dist/sites/cli/test-site.js.map +0 -1
  189. package/dist/sites/client-pool.d.ts +0 -124
  190. package/dist/sites/client-pool.d.ts.map +0 -1
  191. package/dist/sites/client-pool.js +0 -172
  192. package/dist/sites/client-pool.js.map +0 -1
  193. package/dist/sites/env-bridge.d.ts +0 -55
  194. package/dist/sites/env-bridge.d.ts.map +0 -1
  195. package/dist/sites/env-bridge.js +0 -94
  196. package/dist/sites/env-bridge.js.map +0 -1
  197. package/dist/sites/paths.d.ts +0 -21
  198. package/dist/sites/paths.d.ts.map +0 -1
  199. package/dist/sites/paths.js +0 -37
  200. package/dist/sites/paths.js.map +0 -1
  201. package/dist/sites/probe.d.ts +0 -60
  202. package/dist/sites/probe.d.ts.map +0 -1
  203. package/dist/sites/probe.js +0 -112
  204. package/dist/sites/probe.js.map +0 -1
  205. package/dist/sites/registry.d.ts +0 -142
  206. package/dist/sites/registry.d.ts.map +0 -1
  207. package/dist/sites/registry.js +0 -163
  208. package/dist/sites/registry.js.map +0 -1
  209. package/dist/sites/schema.d.ts +0 -90
  210. package/dist/sites/schema.d.ts.map +0 -1
  211. package/dist/sites/schema.js +0 -71
  212. package/dist/sites/schema.js.map +0 -1
  213. package/dist/sites/secret-resolver.d.ts +0 -109
  214. package/dist/sites/secret-resolver.d.ts.map +0 -1
  215. package/dist/sites/secret-resolver.js +0 -189
  216. package/dist/sites/secret-resolver.js.map +0 -1
  217. package/dist/sites/store.d.ts +0 -82
  218. package/dist/sites/store.d.ts.map +0 -1
  219. package/dist/sites/store.js +0 -198
  220. package/dist/sites/store.js.map +0 -1
  221. package/dist/sites/tools/index.d.ts +0 -28
  222. package/dist/sites/tools/index.d.ts.map +0 -1
  223. package/dist/sites/tools/index.js +0 -30
  224. package/dist/sites/tools/index.js.map +0 -1
  225. package/dist/sites/tools/sites-list.d.ts +0 -48
  226. package/dist/sites/tools/sites-list.d.ts.map +0 -1
  227. package/dist/sites/tools/sites-list.js +0 -135
  228. package/dist/sites/tools/sites-list.js.map +0 -1
  229. package/dist/sites/tools/sites-test.d.ts +0 -47
  230. package/dist/sites/tools/sites-test.d.ts.map +0 -1
  231. package/dist/sites/tools/sites-test.js +0 -148
  232. package/dist/sites/tools/sites-test.js.map +0 -1
  233. package/dist/skill-loader.d.ts +0 -111
  234. package/dist/skill-loader.d.ts.map +0 -1
  235. package/dist/skill-loader.js +0 -191
  236. package/dist/skill-loader.js.map +0 -1
  237. package/dist/tools/elements/builders.d.ts +0 -24
  238. package/dist/tools/elements/builders.d.ts.map +0 -1
  239. package/dist/tools/elements/builders.js +0 -199
  240. package/dist/tools/elements/builders.js.map +0 -1
  241. package/dist/tools/elements/handlers-write.d.ts +0 -49
  242. package/dist/tools/elements/handlers-write.d.ts.map +0 -1
  243. package/dist/tools/elements/handlers-write.js +0 -148
  244. package/dist/tools/elements/handlers-write.js.map +0 -1
  245. package/dist/tools/elements/handlers.d.ts +0 -68
  246. package/dist/tools/elements/handlers.d.ts.map +0 -1
  247. package/dist/tools/elements/handlers.js +0 -206
  248. package/dist/tools/elements/handlers.js.map +0 -1
  249. package/dist/tools/elements/index.d.ts +0 -28
  250. package/dist/tools/elements/index.d.ts.map +0 -1
  251. package/dist/tools/elements/index.js +0 -27
  252. package/dist/tools/elements/index.js.map +0 -1
  253. package/dist/tools/elements.d.ts +0 -13
  254. package/dist/tools/elements.d.ts.map +0 -1
  255. package/dist/tools/elements.js +0 -13
  256. package/dist/tools/elements.js.map +0 -1
  257. package/dist/tools/elicitation.d.ts +0 -87
  258. package/dist/tools/elicitation.d.ts.map +0 -1
  259. package/dist/tools/elicitation.js +0 -100
  260. package/dist/tools/elicitation.js.map +0 -1
  261. package/dist/tools/format/elements-format.d.ts +0 -40
  262. package/dist/tools/format/elements-format.d.ts.map +0 -1
  263. package/dist/tools/format/elements-format.js +0 -194
  264. package/dist/tools/format/elements-format.js.map +0 -1
  265. package/dist/tools/format/health-format.d.ts +0 -79
  266. package/dist/tools/format/health-format.d.ts.map +0 -1
  267. package/dist/tools/format/health-format.js +0 -181
  268. package/dist/tools/format/health-format.js.map +0 -1
  269. package/dist/tools/format/inspection-format.d.ts +0 -58
  270. package/dist/tools/format/inspection-format.d.ts.map +0 -1
  271. package/dist/tools/format/inspection-format.js +0 -164
  272. package/dist/tools/format/inspection-format.js.map +0 -1
  273. package/dist/tools/format/pages-format.d.ts +0 -48
  274. package/dist/tools/format/pages-format.d.ts.map +0 -1
  275. package/dist/tools/format/pages-format.js +0 -137
  276. package/dist/tools/format/pages-format.js.map +0 -1
  277. package/dist/tools/format/sources-format.d.ts +0 -25
  278. package/dist/tools/format/sources-format.d.ts.map +0 -1
  279. package/dist/tools/format/sources-format.js +0 -208
  280. package/dist/tools/format/sources-format.js.map +0 -1
  281. package/dist/tools/health.d.ts +0 -22
  282. package/dist/tools/health.d.ts.map +0 -1
  283. package/dist/tools/health.js +0 -220
  284. package/dist/tools/health.js.map +0 -1
  285. package/dist/tools/index.d.ts +0 -30
  286. package/dist/tools/index.d.ts.map +0 -1
  287. package/dist/tools/index.js +0 -39
  288. package/dist/tools/index.js.map +0 -1
  289. package/dist/tools/inspection.d.ts +0 -14
  290. package/dist/tools/inspection.d.ts.map +0 -1
  291. package/dist/tools/inspection.js +0 -170
  292. package/dist/tools/inspection.js.map +0 -1
  293. package/dist/tools/layout-flatten.d.ts +0 -75
  294. package/dist/tools/layout-flatten.d.ts.map +0 -1
  295. package/dist/tools/layout-flatten.js +0 -107
  296. package/dist/tools/layout-flatten.js.map +0 -1
  297. package/dist/tools/multi-items/builders.d.ts +0 -23
  298. package/dist/tools/multi-items/builders.d.ts.map +0 -1
  299. package/dist/tools/multi-items/builders.js +0 -69
  300. package/dist/tools/multi-items/builders.js.map +0 -1
  301. package/dist/tools/multi-items/clean-implode-handler.d.ts +0 -28
  302. package/dist/tools/multi-items/clean-implode-handler.d.ts.map +0 -1
  303. package/dist/tools/multi-items/clean-implode-handler.js +0 -40
  304. package/dist/tools/multi-items/clean-implode-handler.js.map +0 -1
  305. package/dist/tools/multi-items/index.d.ts +0 -18
  306. package/dist/tools/multi-items/index.d.ts.map +0 -1
  307. package/dist/tools/multi-items/index.js +0 -18
  308. package/dist/tools/multi-items/index.js.map +0 -1
  309. package/dist/tools/multi-items/inspect-handler.d.ts +0 -41
  310. package/dist/tools/multi-items/inspect-handler.d.ts.map +0 -1
  311. package/dist/tools/multi-items/inspect-handler.js +0 -50
  312. package/dist/tools/multi-items/inspect-handler.js.map +0 -1
  313. package/dist/tools/multi-items/item-container-map.d.ts +0 -41
  314. package/dist/tools/multi-items/item-container-map.d.ts.map +0 -1
  315. package/dist/tools/multi-items/item-container-map.js +0 -73
  316. package/dist/tools/multi-items/item-container-map.js.map +0 -1
  317. package/dist/tools/pages/builders.d.ts +0 -14
  318. package/dist/tools/pages/builders.d.ts.map +0 -1
  319. package/dist/tools/pages/builders.js +0 -127
  320. package/dist/tools/pages/builders.js.map +0 -1
  321. package/dist/tools/pages/handlers-read.d.ts +0 -33
  322. package/dist/tools/pages/handlers-read.d.ts.map +0 -1
  323. package/dist/tools/pages/handlers-read.js +0 -171
  324. package/dist/tools/pages/handlers-read.js.map +0 -1
  325. package/dist/tools/pages/handlers-write.d.ts +0 -21
  326. package/dist/tools/pages/handlers-write.d.ts.map +0 -1
  327. package/dist/tools/pages/handlers-write.js +0 -52
  328. package/dist/tools/pages/handlers-write.js.map +0 -1
  329. package/dist/tools/pages/index.d.ts +0 -17
  330. package/dist/tools/pages/index.d.ts.map +0 -1
  331. package/dist/tools/pages/index.js +0 -17
  332. package/dist/tools/pages/index.js.map +0 -1
  333. package/dist/tools/pages/schemas.d.ts +0 -30
  334. package/dist/tools/pages/schemas.d.ts.map +0 -1
  335. package/dist/tools/pages/schemas.js +0 -48
  336. package/dist/tools/pages/schemas.js.map +0 -1
  337. package/dist/tools/pages.d.ts +0 -13
  338. package/dist/tools/pages.d.ts.map +0 -1
  339. package/dist/tools/pages.js +0 -13
  340. package/dist/tools/pages.js.map +0 -1
  341. package/dist/tools/pool-resolve-helper.d.ts +0 -83
  342. package/dist/tools/pool-resolve-helper.d.ts.map +0 -1
  343. package/dist/tools/pool-resolve-helper.js +0 -148
  344. package/dist/tools/pool-resolve-helper.js.map +0 -1
  345. package/dist/tools/progress-phases.d.ts +0 -46
  346. package/dist/tools/progress-phases.d.ts.map +0 -1
  347. package/dist/tools/progress-phases.js +0 -48
  348. package/dist/tools/progress-phases.js.map +0 -1
  349. package/dist/tools/shared-schemas.d.ts +0 -25
  350. package/dist/tools/shared-schemas.d.ts.map +0 -1
  351. package/dist/tools/shared-schemas.js +0 -48
  352. package/dist/tools/shared-schemas.js.map +0 -1
  353. package/dist/tools/sources/builders.d.ts +0 -13
  354. package/dist/tools/sources/builders.d.ts.map +0 -1
  355. package/dist/tools/sources/builders.js +0 -115
  356. package/dist/tools/sources/builders.js.map +0 -1
  357. package/dist/tools/sources/handlers-bind.d.ts +0 -28
  358. package/dist/tools/sources/handlers-bind.d.ts.map +0 -1
  359. package/dist/tools/sources/handlers-bind.js +0 -129
  360. package/dist/tools/sources/handlers-bind.js.map +0 -1
  361. package/dist/tools/sources/handlers.d.ts +0 -45
  362. package/dist/tools/sources/handlers.d.ts.map +0 -1
  363. package/dist/tools/sources/handlers.js +0 -91
  364. package/dist/tools/sources/handlers.js.map +0 -1
  365. package/dist/tools/sources/index.d.ts +0 -19
  366. package/dist/tools/sources/index.d.ts.map +0 -1
  367. package/dist/tools/sources/index.js +0 -18
  368. package/dist/tools/sources/index.js.map +0 -1
  369. package/dist/tools/sources.d.ts +0 -14
  370. package/dist/tools/sources.d.ts.map +0 -1
  371. package/dist/tools/sources.js +0 -14
  372. package/dist/tools/sources.js.map +0 -1
  373. package/dist/tools/sparse-fields.d.ts +0 -80
  374. package/dist/tools/sparse-fields.d.ts.map +0 -1
  375. package/dist/tools/sparse-fields.js +0 -144
  376. package/dist/tools/sparse-fields.js.map +0 -1
  377. package/dist/tools/tool-builder/annotations.d.ts +0 -55
  378. package/dist/tools/tool-builder/annotations.d.ts.map +0 -1
  379. package/dist/tools/tool-builder/annotations.js +0 -86
  380. package/dist/tools/tool-builder/annotations.js.map +0 -1
  381. package/dist/tools/tool-builder/define.d.ts +0 -31
  382. package/dist/tools/tool-builder/define.d.ts.map +0 -1
  383. package/dist/tools/tool-builder/define.js +0 -31
  384. package/dist/tools/tool-builder/define.js.map +0 -1
  385. package/dist/tools/tool-builder/index.d.ts +0 -28
  386. package/dist/tools/tool-builder/index.d.ts.map +0 -1
  387. package/dist/tools/tool-builder/index.js +0 -27
  388. package/dist/tools/tool-builder/index.js.map +0 -1
  389. package/dist/tools/tool-builder/results.d.ts +0 -93
  390. package/dist/tools/tool-builder/results.d.ts.map +0 -1
  391. package/dist/tools/tool-builder/results.js +0 -211
  392. package/dist/tools/tool-builder/results.js.map +0 -1
  393. package/dist/tools/tool-builder/types.d.ts +0 -82
  394. package/dist/tools/tool-builder/types.d.ts.map +0 -1
  395. package/dist/tools/tool-builder/types.js +0 -9
  396. package/dist/tools/tool-builder/types.js.map +0 -1
  397. package/dist/tools/tool-builder.d.ts +0 -16
  398. package/dist/tools/tool-builder.d.ts.map +0 -1
  399. package/dist/tools/tool-builder.js +0 -16
  400. package/dist/tools/tool-builder.js.map +0 -1
@@ -1,18 +0,0 @@
1
- /**
2
- * Google Gemini CLI config writer.
3
- *
4
- * All platforms: ~/.gemini/settings.json
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 { type ClientWriter } from './index.js';
17
- export declare const geminiCliClient: ClientWriter;
18
- //# sourceMappingURL=gemini-cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini-cli.d.ts","sourceRoot":"","sources":["../../src/clients/gemini-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAiB,KAAK,YAAY,EAAwB,MAAM,YAAY,CAAC;AAMpF,eAAO,MAAM,eAAe,EAAE,YAqB7B,CAAC"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Google Gemini CLI config writer.
3
- *
4
- * All platforms: ~/.gemini/settings.json
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(), '.gemini', 'settings.json');
22
- }
23
- export const geminiCliClient = {
24
- id: 'gemini-cli',
25
- label: 'Gemini CLI',
26
- configPath,
27
- isDetected: () => existsSync(join(userHome(), '.gemini')),
28
- apply: async (serverName, config) => {
29
- await patchJsonFile(configPath(), (current) => {
30
- const servers = current.mcpServers !== null &&
31
- typeof current.mcpServers === 'object' &&
32
- !Array.isArray(current.mcpServers)
33
- ? { ...current.mcpServers }
34
- : {};
35
- servers[serverName] = {
36
- command: config.command,
37
- args: config.args,
38
- env: config.env,
39
- };
40
- return { ...current, mcpServers: servers };
41
- });
42
- },
43
- };
44
- //# sourceMappingURL=gemini-cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini-cli.js","sourceRoot":"","sources":["../../src/clients/gemini-cli.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,SAAS,EAAE,eAAe,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAiB;IACzC,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,YAAY;IACnB,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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * `userHome()` — single source of truth for "where do AI clients live?".
3
- *
4
- * Returns `process.env.HOME` (or `USERPROFILE` on Windows) if set, falling
5
- * back to `os.homedir()`. The env-first ordering is important for tests:
6
- * Node's `os.homedir()` on POSIX uses `getpwuid_r`, which IGNORES the HOME
7
- * env override — so tests that set `process.env.HOME = tmpDir` would
8
- * otherwise stomp the real Claude / Cursor / Zed configs on the
9
- * developer's machine. Hard-learned during Wave-4 setup.
10
- *
11
- * @license MIT
12
- */
13
- export declare function userHome(): string;
14
- //# sourceMappingURL=home.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../src/clients/home.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,wBAAgB,QAAQ,IAAI,MAAM,CAIjC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * `userHome()` — single source of truth for "where do AI clients live?".
3
- *
4
- * Returns `process.env.HOME` (or `USERPROFILE` on Windows) if set, falling
5
- * back to `os.homedir()`. The env-first ordering is important for tests:
6
- * Node's `os.homedir()` on POSIX uses `getpwuid_r`, which IGNORES the HOME
7
- * env override — so tests that set `process.env.HOME = tmpDir` would
8
- * otherwise stomp the real Claude / Cursor / Zed configs on the
9
- * developer's machine. Hard-learned during Wave-4 setup.
10
- *
11
- * @license MIT
12
- */
13
- import { homedir } from 'node:os';
14
- export function userHome() {
15
- const home = process.env.HOME ?? process.env.USERPROFILE;
16
- if (home !== undefined && home !== '')
17
- return home;
18
- return homedir();
19
- }
20
- //# sourceMappingURL=home.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/clients/home.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,UAAU,QAAQ;IACpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACzD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,OAAO,EAAE,CAAC;AACrB,CAAC"}
@@ -1,52 +0,0 @@
1
- /**
2
- * Client-config-writers.
3
- *
4
- * Each supported AI client has its own module that knows
5
- * - which config file to read/write
6
- * - what JSON shape to inject under `mcpServers` (or equivalent)
7
- *
8
- * The setup wizard calls `detectAvailableClients()` to enumerate, then
9
- * `writeClientConfig({client, server})` once the user picks one.
10
- *
11
- * @license MIT
12
- */
13
- import { claudeCodeClient } from './claude-code.js';
14
- import { claudeDesktopClient } from './claude-desktop.js';
15
- import { clineClient } from './cline.js';
16
- import { codexCliClient } from './codex-cli.js';
17
- import { continueClient } from './continue.js';
18
- import { cursorClient } from './cursor.js';
19
- import { geminiCliClient } from './gemini-cli.js';
20
- import { rooCodeClient } from './roo-code.js';
21
- import { zedClient } from './zed.js';
22
- export interface McpServerConfig {
23
- readonly command: string;
24
- readonly args: readonly string[];
25
- readonly env: Record<string, string>;
26
- }
27
- export interface ClientWriter {
28
- readonly id: string;
29
- readonly label: string;
30
- /** Absolute path to the config file. */
31
- configPath: () => string;
32
- /** Returns true if the config file exists (client is "installed"). */
33
- isDetected: () => boolean;
34
- /** Apply the MCP server config to the file. Creates the file if missing. */
35
- apply: (serverName: string, config: McpServerConfig) => Promise<void>;
36
- }
37
- export declare const ALL_CLIENTS: readonly ClientWriter[];
38
- export interface DetectedClient {
39
- readonly id: string;
40
- readonly label: string;
41
- readonly configPath: string;
42
- readonly detected: boolean;
43
- }
44
- export declare function detectAvailableClients(): DetectedClient[];
45
- export declare function findClient(id: string): ClientWriter | undefined;
46
- /**
47
- * Shared helper: read a JSON file, mutate via callback, write back.
48
- * Creates parent directories if missing.
49
- */
50
- export declare function patchJsonFile(path: string, mutator: (current: Record<string, unknown>) => Record<string, unknown>): Promise<void>;
51
- export { claudeCodeClient, claudeDesktopClient, clineClient, codexCliClient, continueClient, cursorClient, geminiCliClient, rooCodeClient, zedClient, };
52
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,sEAAsE;IACtE,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,4EAA4E;IAC5E,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,YAAY,EAU9C,CAAC;AAEF,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,sBAAsB,IAAI,cAAc,EAAE,CAOzD;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE/D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvE,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EACb,SAAS,GACZ,CAAC"}
@@ -1,72 +0,0 @@
1
- /**
2
- * Client-config-writers.
3
- *
4
- * Each supported AI client has its own module that knows
5
- * - which config file to read/write
6
- * - what JSON shape to inject under `mcpServers` (or equivalent)
7
- *
8
- * The setup wizard calls `detectAvailableClients()` to enumerate, then
9
- * `writeClientConfig({client, server})` once the user picks one.
10
- *
11
- * @license MIT
12
- */
13
- import { existsSync } from 'node:fs';
14
- import { mkdir, readFile, writeFile } from 'node:fs/promises';
15
- import { dirname } from 'node:path';
16
- import { claudeCodeClient } from './claude-code.js';
17
- import { claudeDesktopClient } from './claude-desktop.js';
18
- import { clineClient } from './cline.js';
19
- import { codexCliClient } from './codex-cli.js';
20
- import { continueClient } from './continue.js';
21
- import { cursorClient } from './cursor.js';
22
- import { geminiCliClient } from './gemini-cli.js';
23
- import { rooCodeClient } from './roo-code.js';
24
- import { zedClient } from './zed.js';
25
- export const ALL_CLIENTS = [
26
- claudeDesktopClient,
27
- claudeCodeClient,
28
- cursorClient,
29
- zedClient,
30
- continueClient,
31
- clineClient,
32
- rooCodeClient,
33
- codexCliClient,
34
- geminiCliClient,
35
- ];
36
- export function detectAvailableClients() {
37
- return ALL_CLIENTS.map((c) => ({
38
- id: c.id,
39
- label: c.label,
40
- configPath: c.configPath(),
41
- detected: c.isDetected(),
42
- }));
43
- }
44
- export function findClient(id) {
45
- return ALL_CLIENTS.find((c) => c.id === id);
46
- }
47
- /**
48
- * Shared helper: read a JSON file, mutate via callback, write back.
49
- * Creates parent directories if missing.
50
- */
51
- export async function patchJsonFile(path, mutator) {
52
- let current = {};
53
- if (existsSync(path)) {
54
- try {
55
- const raw = await readFile(path, 'utf-8');
56
- const parsed = raw.trim() === '' ? {} : JSON.parse(raw);
57
- if (parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)) {
58
- current = parsed;
59
- }
60
- }
61
- catch {
62
- current = {};
63
- }
64
- }
65
- else {
66
- await mkdir(dirname(path), { recursive: true });
67
- }
68
- const next = mutator(current);
69
- await writeFile(path, JSON.stringify(next, null, 2) + '\n', 'utf-8');
70
- }
71
- export { claudeCodeClient, claudeDesktopClient, clineClient, codexCliClient, continueClient, cursorClient, geminiCliClient, rooCodeClient, zedClient, };
72
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAmBrC,MAAM,CAAC,MAAM,WAAW,GAA4B;IAChD,mBAAmB;IACnB,gBAAgB;IAChB,YAAY;IACZ,SAAS;IACT,cAAc;IACd,WAAW;IACX,aAAa;IACb,cAAc;IACd,eAAe;CAClB,CAAC;AASF,MAAM,UAAU,sBAAsB;IAClC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE;QAC1B,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE;KAC3B,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAU;IACjC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,IAAY,EACZ,OAAsE;IAEtE,IAAI,OAAO,GAA4B,EAAE,CAAC;IAC1C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC;YACrE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1E,OAAO,GAAG,MAAiC,CAAC;YAChD,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,GAAG,EAAE,CAAC;QACjB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EACb,SAAS,GACZ,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Roo Code MCP config writer.
3
- *
4
- * Roo Code (formerly Roo Cline) is the VS Code extension
5
- * `rooveterinaryinc.roo-cline` — a fork of Cline. It follows the
6
- * same VS Code globalStorage layout but its own settings file is
7
- * named `mcp_settings.json` (without the legacy `cline_` prefix
8
- * its parent uses).
9
- *
10
- * <vsCodeUserDir>/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json
11
- *
12
- * VS Code's `<vsCodeUserDir>` is:
13
- * macOS: ~/Library/Application Support/Code/User
14
- * Linux: ~/.config/Code/User
15
- * Windows: %APPDATA%\Code\User
16
- *
17
- * Schema mirrors Claude Desktop's `mcpServers` map.
18
- *
19
- * @license MIT
20
- */
21
- import { type ClientWriter } from './index.js';
22
- export declare const rooCodeClient: ClientWriter;
23
- //# sourceMappingURL=roo-code.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"roo-code.d.ts","sourceRoot":"","sources":["../../src/clients/roo-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,EAAiB,KAAK,YAAY,EAAwB,MAAM,YAAY,CAAC;AAkCpF,eAAO,MAAM,aAAa,EAAE,YAqB3B,CAAC"}
@@ -1,69 +0,0 @@
1
- /**
2
- * Roo Code MCP config writer.
3
- *
4
- * Roo Code (formerly Roo Cline) is the VS Code extension
5
- * `rooveterinaryinc.roo-cline` — a fork of Cline. It follows the
6
- * same VS Code globalStorage layout but its own settings file is
7
- * named `mcp_settings.json` (without the legacy `cline_` prefix
8
- * its parent uses).
9
- *
10
- * <vsCodeUserDir>/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json
11
- *
12
- * VS Code's `<vsCodeUserDir>` is:
13
- * macOS: ~/Library/Application Support/Code/User
14
- * Linux: ~/.config/Code/User
15
- * Windows: %APPDATA%\Code\User
16
- *
17
- * Schema mirrors Claude Desktop's `mcpServers` map.
18
- *
19
- * @license MIT
20
- */
21
- import { existsSync } from 'node:fs';
22
- import { platform } from 'node:os';
23
- import { join } from 'node:path';
24
- import { userHome } from './home.js';
25
- import { patchJsonFile } from './index.js';
26
- const EXTENSION_ID = 'rooveterinaryinc.roo-cline';
27
- const SETTINGS_FILENAME = 'mcp_settings.json';
28
- function vsCodeUserDir() {
29
- const home = userHome();
30
- switch (platform()) {
31
- case 'darwin':
32
- return join(home, 'Library', 'Application Support', 'Code', 'User');
33
- case 'win32': {
34
- const appData = process.env.APPDATA ?? join(home, 'AppData', 'Roaming');
35
- return join(appData, 'Code', 'User');
36
- }
37
- default:
38
- return join(home, '.config', 'Code', 'User');
39
- }
40
- }
41
- function configPath() {
42
- return join(vsCodeUserDir(), 'globalStorage', EXTENSION_ID, 'settings', SETTINGS_FILENAME);
43
- }
44
- function isDetected() {
45
- const extDir = join(vsCodeUserDir(), 'globalStorage', EXTENSION_ID);
46
- return existsSync(extDir) || existsSync(configPath());
47
- }
48
- export const rooCodeClient = {
49
- id: 'roo-code',
50
- label: 'Roo Code (VS Code)',
51
- configPath,
52
- isDetected,
53
- apply: async (serverName, config) => {
54
- await patchJsonFile(configPath(), (current) => {
55
- const servers = current.mcpServers !== null &&
56
- typeof current.mcpServers === 'object' &&
57
- !Array.isArray(current.mcpServers)
58
- ? { ...current.mcpServers }
59
- : {};
60
- servers[serverName] = {
61
- command: config.command,
62
- args: config.args,
63
- env: config.env,
64
- };
65
- return { ...current, mcpServers: servers };
66
- });
67
- },
68
- };
69
- //# sourceMappingURL=roo-code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"roo-code.js","sourceRoot":"","sources":["../../src/clients/roo-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;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,4BAA4B,CAAC;AAClD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,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,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,aAAa,GAAiB;IACvC,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,oBAAoB;IAC3B,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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Zed MCP config writer.
3
- *
4
- * Global: ~/.config/zed/settings.json (JSONC; we treat as JSON for write)
5
- *
6
- * Schema: `context_servers` map (Zed-specific naming).
7
- *
8
- * @license MIT
9
- */
10
- import { type ClientWriter } from './index.js';
11
- export declare const zedClient: ClientWriter;
12
- //# sourceMappingURL=zed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zed.d.ts","sourceRoot":"","sources":["../../src/clients/zed.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAiB,KAAK,YAAY,EAAwB,MAAM,YAAY,CAAC;AAMpF,eAAO,MAAM,SAAS,EAAE,YAwBvB,CAAC"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Zed MCP config writer.
3
- *
4
- * Global: ~/.config/zed/settings.json (JSONC; we treat as JSON for write)
5
- *
6
- * Schema: `context_servers` map (Zed-specific naming).
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(), '.config', 'zed', 'settings.json');
16
- }
17
- export const zedClient = {
18
- id: 'zed',
19
- label: 'Zed',
20
- configPath,
21
- isDetected: () => existsSync(join(userHome(), '.config', 'zed')),
22
- apply: async (serverName, config) => {
23
- await patchJsonFile(configPath(), (current) => {
24
- const servers = current.context_servers !== null &&
25
- typeof current.context_servers === 'object' &&
26
- !Array.isArray(current.context_servers)
27
- ? { ...current.context_servers }
28
- : {};
29
- servers[serverName] = {
30
- command: {
31
- path: config.command,
32
- args: config.args,
33
- env: config.env,
34
- },
35
- settings: {},
36
- };
37
- return { ...current, context_servers: servers };
38
- });
39
- },
40
- };
41
- //# sourceMappingURL=zed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zed.js","sourceRoot":"","sources":["../../src/clients/zed.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,KAAK,EAAE,eAAe,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAiB;IACnC,EAAE,EAAE,KAAK;IACT,KAAK,EAAE,KAAK;IACZ,UAAU;IACV,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAChE,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,eAAe,KAAK,IAAI;gBAChC,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ;gBAC3C,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;gBACnC,CAAC,CAAC,EAAE,GAAI,OAAO,CAAC,eAA2C,EAAE;gBAC7D,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,UAAU,CAAC,GAAG;gBAClB,OAAO,EAAE;oBACL,IAAI,EAAE,MAAM,CAAC,OAAO;oBACpB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;iBAClB;gBACD,QAAQ,EAAE,EAAE;aACf,CAAC;YACF,OAAO,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Error-code taxonomy + AI-friendly hint messages.
3
- *
4
- * `classify(status)` maps the HTTP status of a failed REST call into one
5
- * of nine canonical `YtbErrorCode` values. `hintFor(code)` returns a
6
- * recovery-oriented hint string the LLM can act on without re-reading the
7
- * raw error message.
8
- *
9
- * Centralising the taxonomy means every tool's catch-block emits the
10
- * same vocabulary, and the audit gate can pin the exact set of hints
11
- * that ship.
12
- *
13
- * Reference: `apimapper-mcp/src/modules/apimapper/client.ts:hintFor`
14
- * (Wave G.6.1 — same shape, ported for the YOOtheme Builder REST API).
15
- *
16
- * @license MIT
17
- */
18
- /**
19
- * Canonical YOOtheme-Builder-MCP error code union.
20
- *
21
- * Order is documentary only — `classify()` returns whichever applies.
22
- */
23
- export type YtbErrorCode = 'auth_invalid' | 'auth_missing' | 'forbidden' | 'not_found' | 'conflict_etag' | 'validation_error' | 'rate_limit' | 'server_error' | 'network';
24
- /** Options for `classify()` — second-tier signals (e.g. response headers). */
25
- export interface ClassifyOptions {
26
- /**
27
- * Whether the response carried a `WWW-Authenticate` header. Used to
28
- * distinguish `auth_missing` (no bearer sent → server didn't ask for one
29
- * via WWW-Authenticate; misconfigured client) from `auth_invalid`
30
- * (server rejected the bearer that WAS sent).
31
- */
32
- readonly hasWwwAuthenticate?: boolean;
33
- }
34
- /**
35
- * Map an HTTP status into a `YtbErrorCode`.
36
- *
37
- * Special-cases:
38
- * - 401 with `hasWwwAuthenticate: false` → `auth_missing`
39
- * - 401 with `hasWwwAuthenticate: true` → `auth_invalid` (default)
40
- * - 412 (Precondition Failed) is treated as `conflict_etag` alongside 409.
41
- * - Status 0 (no response) → `network`.
42
- * - Anything we don't recognise (incl. 2xx) → `server_error` so the agent
43
- * sees a non-empty hint rather than silently swallowing.
44
- */
45
- export declare function classify(status: number, options?: ClassifyOptions): YtbErrorCode;
46
- /**
47
- * Return a focused hint describing how the agent (or the user) can
48
- * recover from a given error code. Always non-empty.
49
- */
50
- export declare function hintFor(code: YtbErrorCode): string;
51
- //# sourceMappingURL=hints.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hints.d.ts","sourceRoot":"","sources":["../../src/errors/hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAClB,cAAc,GACd,cAAc,GACd,WAAW,GACX,WAAW,GACX,eAAe,GACf,kBAAkB,GAClB,YAAY,GACZ,cAAc,GACd,SAAS,CAAC;AAEhB,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,YAAY,CAYpF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA2DlD"}
@@ -1,95 +0,0 @@
1
- /**
2
- * Error-code taxonomy + AI-friendly hint messages.
3
- *
4
- * `classify(status)` maps the HTTP status of a failed REST call into one
5
- * of nine canonical `YtbErrorCode` values. `hintFor(code)` returns a
6
- * recovery-oriented hint string the LLM can act on without re-reading the
7
- * raw error message.
8
- *
9
- * Centralising the taxonomy means every tool's catch-block emits the
10
- * same vocabulary, and the audit gate can pin the exact set of hints
11
- * that ship.
12
- *
13
- * Reference: `apimapper-mcp/src/modules/apimapper/client.ts:hintFor`
14
- * (Wave G.6.1 — same shape, ported for the YOOtheme Builder REST API).
15
- *
16
- * @license MIT
17
- */
18
- /**
19
- * Map an HTTP status into a `YtbErrorCode`.
20
- *
21
- * Special-cases:
22
- * - 401 with `hasWwwAuthenticate: false` → `auth_missing`
23
- * - 401 with `hasWwwAuthenticate: true` → `auth_invalid` (default)
24
- * - 412 (Precondition Failed) is treated as `conflict_etag` alongside 409.
25
- * - Status 0 (no response) → `network`.
26
- * - Anything we don't recognise (incl. 2xx) → `server_error` so the agent
27
- * sees a non-empty hint rather than silently swallowing.
28
- */
29
- export function classify(status, options = {}) {
30
- if (status === 0)
31
- return 'network';
32
- if (status === 401) {
33
- return options.hasWwwAuthenticate === false ? 'auth_missing' : 'auth_invalid';
34
- }
35
- if (status === 403)
36
- return 'forbidden';
37
- if (status === 404)
38
- return 'not_found';
39
- if (status === 409 || status === 412)
40
- return 'conflict_etag';
41
- if (status === 422)
42
- return 'validation_error';
43
- if (status === 429)
44
- return 'rate_limit';
45
- if (status >= 500)
46
- return 'server_error';
47
- return 'server_error';
48
- }
49
- /**
50
- * Return a focused hint describing how the agent (or the user) can
51
- * recover from a given error code. Always non-empty.
52
- */
53
- export function hintFor(code) {
54
- switch (code) {
55
- case 'auth_invalid':
56
- return ('Bearer key rejected (HTTP 401, key signature invalid or revoked). ' +
57
- 'Open wp-admin → Tools → "YT Builder MCP" → Bearer Keys, regenerate the ' +
58
- 'key, and update YTB_MCP_BEARER_TOKEN in your AI-client config. ' +
59
- 'Then restart the client.');
60
- case 'auth_missing':
61
- return ('No Bearer credential sent (HTTP 401 without WWW-Authenticate echo). ' +
62
- 'Set the YTB_MCP_BEARER_TOKEN environment variable in your AI-client ' +
63
- 'MCP configuration to a key generated by the plugin Settings page.');
64
- case 'forbidden':
65
- return ('Permission denied (HTTP 403). Your Bearer key lacks the required ' +
66
- 'scope for this operation. Regenerate a key with the correct ' +
67
- 'scope (read / write / admin) in the plugin Settings page.');
68
- case 'not_found':
69
- return ('Resource not found (HTTP 404). Use the matching `*_list` tool ' +
70
- '(yootheme_builder_pages_list, yootheme_builder_element_list, …) ' +
71
- 'to discover valid IDs / paths. IDs are case-sensitive.');
72
- case 'conflict_etag':
73
- return ('Optimistic-lock failed (HTTP 409/412). Another writer changed ' +
74
- 'the state since you fetched it. Call yootheme_builder_get_etag ' +
75
- 'again to get the fresh ETag, then retry your write with that ETag.');
76
- case 'validation_error':
77
- return ('Request body failed validation (HTTP 422). Re-check the tool\'s ' +
78
- 'inputSchema and the element-type schema via ' +
79
- 'yootheme_builder_element_type_get_schema for valid `props` keys.');
80
- case 'rate_limit':
81
- return ('Rate limit reached (HTTP 429). This is likely Cloudflare or ' +
82
- 'another WAF in front of WordPress, not the plugin itself. Wait ' +
83
- 'a few seconds and retry. If persistent, check the WAF rate-limit ' +
84
- 'rule in your Cloudflare dashboard.');
85
- case 'server_error':
86
- return ('Upstream server error (HTTP 5xx or unexpected status). Retry ' +
87
- 'after a short delay; if it persists, check the WordPress error ' +
88
- 'log (wp-content/debug.log) for the underlying PHP exception.');
89
- case 'network':
90
- return ('Network or timeout error reaching WordPress. Verify ' +
91
- 'YTB_MCP_WP_URL is correct and reachable from this host (try ' +
92
- '`curl <YTB_MCP_WP_URL>/wp-json/yt-builder-mcp/v1/health`).');
93
- }
94
- }
95
- //# sourceMappingURL=hints.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hints.js","sourceRoot":"","sources":["../../src/errors/hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA6BH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,UAA2B,EAAE;IAClE,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IAClF,CAAC;IACD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,eAAe,CAAC;IAC7D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,kBAAkB,CAAC;IAC9C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IACxC,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,cAAc,CAAC;IACzC,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,IAAkB;IACtC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,cAAc;YACf,OAAO,CACH,oEAAoE;gBACpE,yEAAyE;gBACzE,iEAAiE;gBACjE,0BAA0B,CAC7B,CAAC;QACN,KAAK,cAAc;YACf,OAAO,CACH,sEAAsE;gBACtE,sEAAsE;gBACtE,mEAAmE,CACtE,CAAC;QACN,KAAK,WAAW;YACZ,OAAO,CACH,mEAAmE;gBACnE,8DAA8D;gBAC9D,2DAA2D,CAC9D,CAAC;QACN,KAAK,WAAW;YACZ,OAAO,CACH,gEAAgE;gBAChE,kEAAkE;gBAClE,wDAAwD,CAC3D,CAAC;QACN,KAAK,eAAe;YAChB,OAAO,CACH,gEAAgE;gBAChE,iEAAiE;gBACjE,oEAAoE,CACvE,CAAC;QACN,KAAK,kBAAkB;YACnB,OAAO,CACH,kEAAkE;gBAClE,8CAA8C;gBAC9C,kEAAkE,CACrE,CAAC;QACN,KAAK,YAAY;YACb,OAAO,CACH,8DAA8D;gBAC9D,iEAAiE;gBACjE,mEAAmE;gBACnE,oCAAoC,CACvC,CAAC;QACN,KAAK,cAAc;YACf,OAAO,CACH,+DAA+D;gBAC/D,iEAAiE;gBACjE,8DAA8D,CACjE,CAAC;QACN,KAAK,SAAS;YACV,OAAO,CACH,sDAAsD;gBACtD,8DAA8D;gBAC9D,4DAA4D,CAC/D,CAAC;IACV,CAAC;AACL,CAAC"}
@@ -1,35 +0,0 @@
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 declare 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 declare function maskBearerToken(input: string): string;
25
- /**
26
- * Sanitise a string before it joins the LLM-visible output:
27
- * 1. mask any Bearer tokens
28
- * 2. truncate to `LOG_TRUNCATION_LIMIT` chars with a clear suffix
29
- *
30
- * Non-string inputs (null / undefined) collapse to an empty string —
31
- * caller code typically passes `error?.message` and `?? ''` is a common
32
- * upstream pattern.
33
- */
34
- export declare function sanitizeForLogs(input: string): string;
35
- //# sourceMappingURL=mask.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../src/errors/mask.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrD"}