claude-code-best 1.0.3

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 (447) hide show
  1. package/README.md +437 -0
  2. package/dist/chunk-02y0y853.js +277 -0
  3. package/dist/chunk-03nqtgyr.js +93 -0
  4. package/dist/chunk-067wa5sn.js +275 -0
  5. package/dist/chunk-06saje2v.js +39 -0
  6. package/dist/chunk-0731m51q.js +8 -0
  7. package/dist/chunk-07ysf2mw.js +184 -0
  8. package/dist/chunk-0e1xsncc.js +969 -0
  9. package/dist/chunk-0ewgfms5.js +117 -0
  10. package/dist/chunk-0he1tqj5.js +274 -0
  11. package/dist/chunk-0paqc2yw.js +15 -0
  12. package/dist/chunk-0rc2rn3b.js +338 -0
  13. package/dist/chunk-0sb5scxx.js +220 -0
  14. package/dist/chunk-0vkfrmqm.js +690 -0
  15. package/dist/chunk-0wftg29n.js +43 -0
  16. package/dist/chunk-0xjaqda8.js +1124 -0
  17. package/dist/chunk-1141xmr4.js +8 -0
  18. package/dist/chunk-128nh5j9.js +3057 -0
  19. package/dist/chunk-165b9y9k.js +70 -0
  20. package/dist/chunk-17g3drrw.js +121 -0
  21. package/dist/chunk-1cbn5kxf.js +7 -0
  22. package/dist/chunk-1dyeexvn.js +173 -0
  23. package/dist/chunk-1h2famwb.js +49 -0
  24. package/dist/chunk-1hhdpn3t.js +32 -0
  25. package/dist/chunk-1jv1ckhg.js +1152 -0
  26. package/dist/chunk-1pxd1xfp.js +103 -0
  27. package/dist/chunk-1tzexy7d.js +258 -0
  28. package/dist/chunk-1w361mz1.js +438 -0
  29. package/dist/chunk-1xkekb9y.js +19 -0
  30. package/dist/chunk-201dvaa3.js +246 -0
  31. package/dist/chunk-238g70xa.js +36 -0
  32. package/dist/chunk-248szg6m.js +63 -0
  33. package/dist/chunk-271zt54b.js +1871 -0
  34. package/dist/chunk-27xc1csx.js +104 -0
  35. package/dist/chunk-2a27tvzp.js +281 -0
  36. package/dist/chunk-2a42s11t.js +412 -0
  37. package/dist/chunk-2eykm0j0.js +20 -0
  38. package/dist/chunk-2fwze72g.js +24 -0
  39. package/dist/chunk-2g1zxpt7.js +2833 -0
  40. package/dist/chunk-2gzv8nrw.js +205 -0
  41. package/dist/chunk-2jb48txn.js +98 -0
  42. package/dist/chunk-2k995y2x.js +880 -0
  43. package/dist/chunk-2kbk09sb.js +263 -0
  44. package/dist/chunk-2kc13eta.js +88 -0
  45. package/dist/chunk-2mcp388c.js +250 -0
  46. package/dist/chunk-2mcrd0rj.js +672 -0
  47. package/dist/chunk-2nayx6q1.js +63 -0
  48. package/dist/chunk-2t3vw4tx.js +22820 -0
  49. package/dist/chunk-2tkt52mz.js +165 -0
  50. package/dist/chunk-2tme3s1c.js +114 -0
  51. package/dist/chunk-2tw2ve8h.js +145 -0
  52. package/dist/chunk-2v1br2x0.js +59 -0
  53. package/dist/chunk-2x3gmbws.js +120 -0
  54. package/dist/chunk-30rst83v.js +168 -0
  55. package/dist/chunk-36k3f7pn.js +165 -0
  56. package/dist/chunk-3be7ka25.js +56 -0
  57. package/dist/chunk-3c25bcsw.js +17 -0
  58. package/dist/chunk-3cn070p7.js +3205 -0
  59. package/dist/chunk-3gqdqmzb.js +75 -0
  60. package/dist/chunk-3h8a89gy.js +46 -0
  61. package/dist/chunk-3nk79af8.js +8 -0
  62. package/dist/chunk-3psth3ez.js +266 -0
  63. package/dist/chunk-3r24h7t6.js +113 -0
  64. package/dist/chunk-3s5r02ps.js +648 -0
  65. package/dist/chunk-3vpqaqc6.js +339 -0
  66. package/dist/chunk-3w6s9m5w.js +16 -0
  67. package/dist/chunk-404wc7d4.js +385 -0
  68. package/dist/chunk-41xeh3t9.js +81 -0
  69. package/dist/chunk-4491abz9.js +99 -0
  70. package/dist/chunk-44fpr6jq.js +434 -0
  71. package/dist/chunk-45kxdsp8.js +444 -0
  72. package/dist/chunk-495d85x1.js +8066 -0
  73. package/dist/chunk-4bgz02m1.js +285 -0
  74. package/dist/chunk-4dfmgx6h.js +69 -0
  75. package/dist/chunk-4fbyr2hm.js +279 -0
  76. package/dist/chunk-4g3v8y12.js +23 -0
  77. package/dist/chunk-4gj6zzg1.js +98 -0
  78. package/dist/chunk-4jm600zv.js +13 -0
  79. package/dist/chunk-4y62603j.js +117 -0
  80. package/dist/chunk-4zfkzkt6.js +37 -0
  81. package/dist/chunk-52n4py3b.js +225 -0
  82. package/dist/chunk-55wgxwa9.js +13877 -0
  83. package/dist/chunk-5a3cw988.js +38 -0
  84. package/dist/chunk-5dsvtbwb.js +87 -0
  85. package/dist/chunk-5hva0tsg.js +726 -0
  86. package/dist/chunk-5r3ak65p.js +229 -0
  87. package/dist/chunk-5t59fqg3.js +127 -0
  88. package/dist/chunk-5wnn3t3a.js +71 -0
  89. package/dist/chunk-5wxspfct.js +40 -0
  90. package/dist/chunk-60nc5bh3.js +1579 -0
  91. package/dist/chunk-6bd8brc4.js +48 -0
  92. package/dist/chunk-6dcq96a3.js +128 -0
  93. package/dist/chunk-6dj5t602.js +341 -0
  94. package/dist/chunk-6fkwz9yk.js +716 -0
  95. package/dist/chunk-6gr3c3w9.js +378 -0
  96. package/dist/chunk-6heqkcjx.js +153 -0
  97. package/dist/chunk-6n2qgm9v.js +8 -0
  98. package/dist/chunk-6tm5941a.js +152 -0
  99. package/dist/chunk-6tq2v3rk.js +186 -0
  100. package/dist/chunk-73rpbt04.js +1947 -0
  101. package/dist/chunk-760252na.js +101 -0
  102. package/dist/chunk-7739pg2c.js +4261 -0
  103. package/dist/chunk-77g09znh.js +391 -0
  104. package/dist/chunk-79zmgkg5.js +750 -0
  105. package/dist/chunk-7ahman84.js +87 -0
  106. package/dist/chunk-7aw745vx.js +40175 -0
  107. package/dist/chunk-7d35rxr3.js +69 -0
  108. package/dist/chunk-7enxknwt.js +442 -0
  109. package/dist/chunk-7j0wpf4m.js +89 -0
  110. package/dist/chunk-7m2nd8da.js +110 -0
  111. package/dist/chunk-7q6pjeyp.js +1493 -0
  112. package/dist/chunk-7qwme3ab.js +120 -0
  113. package/dist/chunk-7rgwp44r.js +130 -0
  114. package/dist/chunk-7rn4t7tx.js +162 -0
  115. package/dist/chunk-7vtykt4v.js +102 -0
  116. package/dist/chunk-7whgbwhx.js +584 -0
  117. package/dist/chunk-7wm1rjfm.js +16392 -0
  118. package/dist/chunk-7wm5s02e.js +216 -0
  119. package/dist/chunk-7xyswgjh.js +8 -0
  120. package/dist/chunk-7ymfj7m3.js +151 -0
  121. package/dist/chunk-7z8j9qfn.js +121 -0
  122. package/dist/chunk-83hfzbx3.js +10 -0
  123. package/dist/chunk-8bedvdm1.js +32 -0
  124. package/dist/chunk-8c32awe2.js +21933 -0
  125. package/dist/chunk-8d5eyjse.js +26840 -0
  126. package/dist/chunk-8fmbf525.js +95 -0
  127. package/dist/chunk-8hq5kk3y.js +44 -0
  128. package/dist/chunk-8mqwac85.js +73 -0
  129. package/dist/chunk-8tnsngw2.js +31 -0
  130. package/dist/chunk-8y12jxg8.js +10 -0
  131. package/dist/chunk-8ymf4e6z.js +48 -0
  132. package/dist/chunk-90wp6wez.js +10510 -0
  133. package/dist/chunk-91gk0g2y.js +654 -0
  134. package/dist/chunk-97r68x5g.js +3373 -0
  135. package/dist/chunk-9egdc8n4.js +463 -0
  136. package/dist/chunk-9gbamk79.js +93 -0
  137. package/dist/chunk-9rcbyag3.js +16 -0
  138. package/dist/chunk-9rr0wepz.js +56 -0
  139. package/dist/chunk-9x5zgy22.js +12 -0
  140. package/dist/chunk-a3csma98.js +74 -0
  141. package/dist/chunk-a8ejc632.js +3094 -0
  142. package/dist/chunk-a9vdeb6y.js +258 -0
  143. package/dist/chunk-a9zh40sj.js +48 -0
  144. package/dist/chunk-ajp7hmws.js +422 -0
  145. package/dist/chunk-ap2a2er6.js +690 -0
  146. package/dist/chunk-as261f01.js +500 -0
  147. package/dist/chunk-av73dywf.js +862 -0
  148. package/dist/chunk-avwewk4v.js +176 -0
  149. package/dist/chunk-b0105v1f.js +79 -0
  150. package/dist/chunk-b4wg70y1.js +54 -0
  151. package/dist/chunk-bjqw6798.js +328 -0
  152. package/dist/chunk-bm1qb16p.js +17 -0
  153. package/dist/chunk-bmvzacx5.js +998 -0
  154. package/dist/chunk-bq6x1ehp.js +908 -0
  155. package/dist/chunk-bqfnp99q.js +477 -0
  156. package/dist/chunk-bqq4zamw.js +27 -0
  157. package/dist/chunk-brcnd1j0.js +26 -0
  158. package/dist/chunk-bsk44136.js +229 -0
  159. package/dist/chunk-bw093kge.js +129 -0
  160. package/dist/chunk-by7ezad6.js +87 -0
  161. package/dist/chunk-c4q9x8t2.js +105 -0
  162. package/dist/chunk-c6421kme.js +54 -0
  163. package/dist/chunk-cdajcgne.js +195 -0
  164. package/dist/chunk-cdz5yb0r.js +57 -0
  165. package/dist/chunk-cfv996bs.js +22 -0
  166. package/dist/chunk-cg43nnpk.js +87 -0
  167. package/dist/chunk-cgfdkzhb.js +12 -0
  168. package/dist/chunk-ch8avrbh.js +86 -0
  169. package/dist/chunk-chkyv40s.js +2642 -0
  170. package/dist/chunk-ckcagq32.js +208 -0
  171. package/dist/chunk-cpe70sxw.js +79 -0
  172. package/dist/chunk-ctw5jwcd.js +213 -0
  173. package/dist/chunk-cvge4pvp.js +122 -0
  174. package/dist/chunk-d049dd11.js +348 -0
  175. package/dist/chunk-d18z9pna.js +106 -0
  176. package/dist/chunk-d7tw94h4.js +114 -0
  177. package/dist/chunk-da4ve9t5.js +9300 -0
  178. package/dist/chunk-daeav7vb.js +418 -0
  179. package/dist/chunk-dd60e5wj.js +41 -0
  180. package/dist/chunk-def1dc97.js +154 -0
  181. package/dist/chunk-dgqrcy74.js +48 -0
  182. package/dist/chunk-dnh7jtpb.js +37 -0
  183. package/dist/chunk-drv8qvwz.js +83 -0
  184. package/dist/chunk-dv1wfr85.js +6373 -0
  185. package/dist/chunk-dvfb4qwt.js +40 -0
  186. package/dist/chunk-dxnv8hfn.js +536 -0
  187. package/dist/chunk-dy3tzxgq.js +91 -0
  188. package/dist/chunk-e3g8q4cn.js +1646 -0
  189. package/dist/chunk-e5pntxye.js +37 -0
  190. package/dist/chunk-e6s36z54.js +1322 -0
  191. package/dist/chunk-e7393td6.js +42 -0
  192. package/dist/chunk-ea18z8vr.js +438 -0
  193. package/dist/chunk-ebfsjcvm.js +281 -0
  194. package/dist/chunk-ehtwnxpg.js +1591 -0
  195. package/dist/chunk-epmheefa.js +780 -0
  196. package/dist/chunk-eqp1rfft.js +17 -0
  197. package/dist/chunk-eskw6xkv.js +41 -0
  198. package/dist/chunk-ewadzrm8.js +103 -0
  199. package/dist/chunk-ex978bsn.js +24 -0
  200. package/dist/chunk-exy9bnjf.js +212 -0
  201. package/dist/chunk-f1f3dmd5.js +713 -0
  202. package/dist/chunk-f5ma3nh5.js +3436 -0
  203. package/dist/chunk-f7yg1atj.js +47 -0
  204. package/dist/chunk-fakajzny.js +372 -0
  205. package/dist/chunk-fbv4apne.js +51 -0
  206. package/dist/chunk-fcz5eche.js +467 -0
  207. package/dist/chunk-fpf4cgbt.js +4521 -0
  208. package/dist/chunk-fpjzr5jj.js +674 -0
  209. package/dist/chunk-ftrm87vt.js +467 -0
  210. package/dist/chunk-ftsp0cj3.js +105 -0
  211. package/dist/chunk-fv7hhcns.js +345 -0
  212. package/dist/chunk-fvcwxb8x.js +83 -0
  213. package/dist/chunk-fyc5fepv.js +10 -0
  214. package/dist/chunk-g00hs992.js +90 -0
  215. package/dist/chunk-g0j0t6qk.js +26 -0
  216. package/dist/chunk-g338npwr.js +1061 -0
  217. package/dist/chunk-g3t0act8.js +8 -0
  218. package/dist/chunk-g5fpkpeg.js +520 -0
  219. package/dist/chunk-g6e1ab2k.js +143 -0
  220. package/dist/chunk-g7fxbqsc.js +157 -0
  221. package/dist/chunk-g9q2cznf.js +173123 -0
  222. package/dist/chunk-g9qyg278.js +88 -0
  223. package/dist/chunk-g9xf7jc4.js +564 -0
  224. package/dist/chunk-gax0fcbx.js +182 -0
  225. package/dist/chunk-gf96dtb6.js +373 -0
  226. package/dist/chunk-gkjdjqfs.js +112 -0
  227. package/dist/chunk-gkrx7ptx.js +242 -0
  228. package/dist/chunk-gqk545se.js +6107 -0
  229. package/dist/chunk-grdvmq7q.js +1391 -0
  230. package/dist/chunk-gyj242zr.js +20 -0
  231. package/dist/chunk-gzmjp1eb.js +696 -0
  232. package/dist/chunk-h0qngp9w.js +157 -0
  233. package/dist/chunk-h0rbjg6x.js +55 -0
  234. package/dist/chunk-h2j4t3fk.js +41651 -0
  235. package/dist/chunk-h6c8cms4.js +458 -0
  236. package/dist/chunk-ha0xq3e9.js +779 -0
  237. package/dist/chunk-hakdhagh.js +16606 -0
  238. package/dist/chunk-hbh17tng.js +1013 -0
  239. package/dist/chunk-hdfzyzk4.js +85 -0
  240. package/dist/chunk-hdtb5jce.js +101 -0
  241. package/dist/chunk-hdwh7ncw.js +2334 -0
  242. package/dist/chunk-hfzj1m07.js +118 -0
  243. package/dist/chunk-hg776v69.js +745 -0
  244. package/dist/chunk-hgtf13es.js +655 -0
  245. package/dist/chunk-hh7cmy4k.js +20 -0
  246. package/dist/chunk-hjhc4cpt.js +69 -0
  247. package/dist/chunk-hk9xz7gk.js +118 -0
  248. package/dist/chunk-hpwa620w.js +602 -0
  249. package/dist/chunk-hqmz36b3.js +552 -0
  250. package/dist/chunk-hrzerbfw.js +1299 -0
  251. package/dist/chunk-hx2tr4ep.js +7189 -0
  252. package/dist/chunk-hzhe8ygc.js +547 -0
  253. package/dist/chunk-j2k4p94p.js +55 -0
  254. package/dist/chunk-j3a4p81y.js +184 -0
  255. package/dist/chunk-j5j6nrfq.js +40 -0
  256. package/dist/chunk-j5zq8axt.js +432 -0
  257. package/dist/chunk-j64ga6ta.js +8035 -0
  258. package/dist/chunk-j8rw3m89.js +198 -0
  259. package/dist/chunk-j99mjxam.js +220 -0
  260. package/dist/chunk-jafes477.js +29 -0
  261. package/dist/chunk-jaqg0k7h.js +271 -0
  262. package/dist/chunk-jce5r25x.js +18 -0
  263. package/dist/chunk-jd32zbps.js +15 -0
  264. package/dist/chunk-jdew773m.js +115 -0
  265. package/dist/chunk-jdgeec04.js +4249 -0
  266. package/dist/chunk-jfv3zczw.js +227 -0
  267. package/dist/chunk-jjsx6t78.js +169 -0
  268. package/dist/chunk-jnhkref0.js +30 -0
  269. package/dist/chunk-jpr8js4w.js +328 -0
  270. package/dist/chunk-jx817w05.js +11 -0
  271. package/dist/chunk-jy35mvy3.js +1095 -0
  272. package/dist/chunk-jz6sqm8m.js +9175 -0
  273. package/dist/chunk-jzmz18nn.js +65 -0
  274. package/dist/chunk-k0g3jve7.js +89 -0
  275. package/dist/chunk-k0p9w03v.js +4957 -0
  276. package/dist/chunk-k1g3g183.js +128 -0
  277. package/dist/chunk-k1p54aq6.js +54 -0
  278. package/dist/chunk-k3vpzx3c.js +160 -0
  279. package/dist/chunk-k5c8ssc6.js +99 -0
  280. package/dist/chunk-k808gmhk.js +71 -0
  281. package/dist/chunk-k9c3888e.js +644 -0
  282. package/dist/chunk-kexj9c6y.js +5398 -0
  283. package/dist/chunk-kgg1gq3t.js +113 -0
  284. package/dist/chunk-ks0m9njy.js +542 -0
  285. package/dist/chunk-kwekc97v.js +18 -0
  286. package/dist/chunk-kwkrek4t.js +95 -0
  287. package/dist/chunk-m06q12hg.js +61 -0
  288. package/dist/chunk-m23b51r2.js +724 -0
  289. package/dist/chunk-m4gcjpj3.js +103 -0
  290. package/dist/chunk-m6rk1r6q.js +194 -0
  291. package/dist/chunk-madfgr3n.js +216 -0
  292. package/dist/chunk-mb2xmb0d.js +53 -0
  293. package/dist/chunk-mnx3wyv4.js +175 -0
  294. package/dist/chunk-mt25echc.js +6157 -0
  295. package/dist/chunk-mv1pbf3a.js +297 -0
  296. package/dist/chunk-my7r0cca.js +469 -0
  297. package/dist/chunk-n0qaeaa5.js +256 -0
  298. package/dist/chunk-n5crdyay.js +1549 -0
  299. package/dist/chunk-n5t9m8h9.js +524 -0
  300. package/dist/chunk-n78qmqpq.js +208 -0
  301. package/dist/chunk-n7ttdtk0.js +641 -0
  302. package/dist/chunk-njtjmsx7.js +71 -0
  303. package/dist/chunk-nka1g8f4.js +773 -0
  304. package/dist/chunk-nprycdaa.js +525 -0
  305. package/dist/chunk-npv8q5qr.js +333 -0
  306. package/dist/chunk-nq0fxyxh.js +752 -0
  307. package/dist/chunk-nrp9yaq6.js +86 -0
  308. package/dist/chunk-nt837qt9.js +21 -0
  309. package/dist/chunk-nx6nds18.js +60 -0
  310. package/dist/chunk-nxsh6de2.js +1711 -0
  311. package/dist/chunk-p196v9d0.js +140 -0
  312. package/dist/chunk-p2816w9z.js +1486 -0
  313. package/dist/chunk-p2d5nh3g.js +342 -0
  314. package/dist/chunk-p2pztr2r.js +104 -0
  315. package/dist/chunk-p68nf56z.js +92 -0
  316. package/dist/chunk-p6pc9xrz.js +3443 -0
  317. package/dist/chunk-p7g7pf3f.js +336 -0
  318. package/dist/chunk-p7skftb4.js +108 -0
  319. package/dist/chunk-pa2235xc.js +160 -0
  320. package/dist/chunk-pabnr66n.js +83 -0
  321. package/dist/chunk-pmzbyaat.js +99 -0
  322. package/dist/chunk-ppwjyveh.js +8 -0
  323. package/dist/chunk-pqzk7nbh.js +91 -0
  324. package/dist/chunk-ps49ymvj.js +43 -0
  325. package/dist/chunk-ptmcaxqn.js +155 -0
  326. package/dist/chunk-pvvew193.js +802 -0
  327. package/dist/chunk-pvx0x5zm.js +2057 -0
  328. package/dist/chunk-pwwa7s62.js +11 -0
  329. package/dist/chunk-pxvatg16.js +847 -0
  330. package/dist/chunk-py77warv.js +66 -0
  331. package/dist/chunk-q1e6pzwh.js +224 -0
  332. package/dist/chunk-q1txr206.js +532 -0
  333. package/dist/chunk-q25bjaev.js +15 -0
  334. package/dist/chunk-q43gccx5.js +92 -0
  335. package/dist/chunk-q6av622g.js +38 -0
  336. package/dist/chunk-qdrwxg3e.js +316 -0
  337. package/dist/chunk-qnbdekts.js +299 -0
  338. package/dist/chunk-qnfx3qtx.js +617 -0
  339. package/dist/chunk-qp2qdcda.js +100 -0
  340. package/dist/chunk-qqfa0dqg.js +2343 -0
  341. package/dist/chunk-qwvrkydc.js +253 -0
  342. package/dist/chunk-qz2x630m.js +49145 -0
  343. package/dist/chunk-r66hz8j6.js +34 -0
  344. package/dist/chunk-r6b58y3x.js +17 -0
  345. package/dist/chunk-r8f13sz1.js +1551 -0
  346. package/dist/chunk-ra0r65nx.js +173 -0
  347. package/dist/chunk-rcdpvnxh.js +826 -0
  348. package/dist/chunk-rf2w4x97.js +266 -0
  349. package/dist/chunk-rn0v1hk8.js +34 -0
  350. package/dist/chunk-rq1kckze.js +98 -0
  351. package/dist/chunk-rs45skes.js +123 -0
  352. package/dist/chunk-rse6x10x.js +89 -0
  353. package/dist/chunk-rxdhy7ve.js +131 -0
  354. package/dist/chunk-rxwb7b78.js +10476 -0
  355. package/dist/chunk-s0wvh65m.js +5810 -0
  356. package/dist/chunk-s39js2d3.js +61 -0
  357. package/dist/chunk-s3pzvdss.js +50 -0
  358. package/dist/chunk-s8y2tfzf.js +5012 -0
  359. package/dist/chunk-sb2sew2f.js +32 -0
  360. package/dist/chunk-scb48p4v.js +496 -0
  361. package/dist/chunk-sd36yzx8.js +954 -0
  362. package/dist/chunk-sdj9b9wh.js +782 -0
  363. package/dist/chunk-sjqtqj35.js +28 -0
  364. package/dist/chunk-spqaamnc.js +63 -0
  365. package/dist/chunk-sq0wf7jj.js +1919 -0
  366. package/dist/chunk-sy1hkkty.js +400 -0
  367. package/dist/chunk-sy9jf9v2.js +109 -0
  368. package/dist/chunk-szj5wvdy.js +28 -0
  369. package/dist/chunk-t0brxw87.js +153 -0
  370. package/dist/chunk-t0rgmccj.js +39 -0
  371. package/dist/chunk-t2km9bn3.js +87 -0
  372. package/dist/chunk-t4afbt2j.js +88 -0
  373. package/dist/chunk-t4c5qtdc.js +42 -0
  374. package/dist/chunk-t94jxd0x.js +100 -0
  375. package/dist/chunk-t9z6njcr.js +1585 -0
  376. package/dist/chunk-tb2g2bba.js +192 -0
  377. package/dist/chunk-tdpvdzbf.js +97 -0
  378. package/dist/chunk-tf4dw2e2.js +142 -0
  379. package/dist/chunk-tjaqa99q.js +125 -0
  380. package/dist/chunk-tp40437d.js +90 -0
  381. package/dist/chunk-ts2p6bv1.js +224 -0
  382. package/dist/chunk-tse7q7k1.js +255 -0
  383. package/dist/chunk-ttk5dzz8.js +25 -0
  384. package/dist/chunk-v1kzp02e.js +785 -0
  385. package/dist/chunk-v1mgv1et.js +15 -0
  386. package/dist/chunk-v399mzxk.js +58 -0
  387. package/dist/chunk-v4h5psgs.js +247 -0
  388. package/dist/chunk-v78fj8by.js +145 -0
  389. package/dist/chunk-v9smspw2.js +4301 -0
  390. package/dist/chunk-vabm7x8v.js +61 -0
  391. package/dist/chunk-veaq13qy.js +490 -0
  392. package/dist/chunk-vest0y6x.js +3830 -0
  393. package/dist/chunk-vf5sd1nq.js +12 -0
  394. package/dist/chunk-vmz3wcnv.js +641 -0
  395. package/dist/chunk-vpb723tx.js +38 -0
  396. package/dist/chunk-vratq94g.js +349 -0
  397. package/dist/chunk-vsgv16zj.js +756 -0
  398. package/dist/chunk-vxa0avb0.js +105 -0
  399. package/dist/chunk-vyc0rjyx.js +31 -0
  400. package/dist/chunk-vyjeh50y.js +2149 -0
  401. package/dist/chunk-vzqrbsd1.js +22 -0
  402. package/dist/chunk-w0hx9v3y.js +109 -0
  403. package/dist/chunk-w0r5627q.js +788 -0
  404. package/dist/chunk-w2qfgzzh.js +306 -0
  405. package/dist/chunk-w2z5pqd3.js +336 -0
  406. package/dist/chunk-w7h2yphx.js +17 -0
  407. package/dist/chunk-w7wgpqcp.js +157 -0
  408. package/dist/chunk-wf7yz2j0.js +849 -0
  409. package/dist/chunk-wfz0qffj.js +3939 -0
  410. package/dist/chunk-whvdag1y.js +6956 -0
  411. package/dist/chunk-wm2f2f1z.js +20 -0
  412. package/dist/chunk-wqpr7002.js +765 -0
  413. package/dist/chunk-wsqhnjj3.js +606 -0
  414. package/dist/chunk-wszmas1q.js +62 -0
  415. package/dist/chunk-wzpdet3m.js +843 -0
  416. package/dist/chunk-x14dq3v1.js +722 -0
  417. package/dist/chunk-x6bg700t.js +88 -0
  418. package/dist/chunk-x6r4v44b.js +8 -0
  419. package/dist/chunk-x8b7vft8.js +132 -0
  420. package/dist/chunk-xmdcxa8r.js +374 -0
  421. package/dist/chunk-xs0hwvpa.js +476 -0
  422. package/dist/chunk-xsq9ae7x.js +90 -0
  423. package/dist/chunk-xszk7n10.js +14358 -0
  424. package/dist/chunk-xv3era3s.js +8 -0
  425. package/dist/chunk-xyqr1cww.js +4389 -0
  426. package/dist/chunk-y1784krc.js +19 -0
  427. package/dist/chunk-y42a2xmv.js +1316 -0
  428. package/dist/chunk-y47cg3kz.js +42 -0
  429. package/dist/chunk-y56ckcf8.js +44 -0
  430. package/dist/chunk-ybgghjqa.js +602 -0
  431. package/dist/chunk-yt6z8030.js +810 -0
  432. package/dist/chunk-ytg914ra.js +28 -0
  433. package/dist/chunk-ywxd4qw4.js +22 -0
  434. package/dist/chunk-yym1e1dr.js +202 -0
  435. package/dist/chunk-z2dp53wn.js +17 -0
  436. package/dist/chunk-z4wtem3z.js +305 -0
  437. package/dist/chunk-zacq47b2.js +84 -0
  438. package/dist/chunk-ze747xz6.js +692 -0
  439. package/dist/chunk-zk2wsm7d.js +15 -0
  440. package/dist/chunk-zkmxtgc3.js +287 -0
  441. package/dist/chunk-zsfxha74.js +17655 -0
  442. package/dist/chunk-zv3hxg5y.js +267 -0
  443. package/dist/chunk-zw2x3xxq.js +96 -0
  444. package/dist/chunk-zyf9epwn.js +642 -0
  445. package/dist/chunk-zz21rvr7.js +27 -0
  446. package/dist/cli.js +81 -0
  447. package/package.json +165 -0
@@ -0,0 +1,724 @@
1
+ // @bun
2
+ import {
3
+ cliError,
4
+ cliOk
5
+ } from "./chunk-z2dp53wn.js";
6
+ import {
7
+ AppStateProvider,
8
+ KeybindingSetup,
9
+ SelectMulti,
10
+ addMcpConfig,
11
+ clearMcpClientConfig,
12
+ clearServerTokensFromLocalStorage,
13
+ connectToServer,
14
+ describeMcpConfigFilePath,
15
+ ensureConfigScope,
16
+ getAllMcpConfigs,
17
+ getMcpClientConfig,
18
+ getMcpConfigByName,
19
+ getMcpConfigsByScope,
20
+ getMcpServerConnectionBatchSize,
21
+ getScopeLabel,
22
+ gracefulShutdown,
23
+ init_AppState,
24
+ init_KeybindingProviderSetup,
25
+ init_SelectMulti,
26
+ init_auth,
27
+ init_client,
28
+ init_config as init_config2,
29
+ init_gracefulShutdown,
30
+ init_utils,
31
+ readClientSecret,
32
+ removeMcpConfig,
33
+ saveMcpClientSecret
34
+ } from "./chunk-g9q2cznf.js";
35
+ import"./chunk-q1e6pzwh.js";
36
+ import"./chunk-201dvaa3.js";
37
+ import"./chunk-248szg6m.js";
38
+ import"./chunk-t0rgmccj.js";
39
+ import"./chunk-def1dc97.js";
40
+ import {
41
+ Byline,
42
+ ConfigurableShortcutHint,
43
+ Dialog,
44
+ KeyboardShortcutHint,
45
+ init_Byline,
46
+ init_ConfigurableShortcutHint,
47
+ init_Dialog,
48
+ init_KeyboardShortcutHint
49
+ } from "./chunk-9egdc8n4.js";
50
+ import"./chunk-ehtwnxpg.js";
51
+ import"./chunk-b0105v1f.js";
52
+ import"./chunk-hgtf13es.js";
53
+ import"./chunk-3be7ka25.js";
54
+ import"./chunk-rcdpvnxh.js";
55
+ import {
56
+ init_p_map,
57
+ pMap
58
+ } from "./chunk-2gzv8nrw.js";
59
+ import"./chunk-45kxdsp8.js";
60
+ import"./chunk-cgfdkzhb.js";
61
+ import"./chunk-madfgr3n.js";
62
+ import"./chunk-pmzbyaat.js";
63
+ import"./chunk-9gbamk79.js";
64
+ import"./chunk-ha0xq3e9.js";
65
+ import"./chunk-hfzj1m07.js";
66
+ import"./chunk-pvvew193.js";
67
+ import {
68
+ ThemedBox_default,
69
+ ThemedText,
70
+ color,
71
+ init_ink,
72
+ render,
73
+ require_compiler_runtime,
74
+ useTheme
75
+ } from "./chunk-8d5eyjse.js";
76
+ import"./chunk-7m2nd8da.js";
77
+ import"./chunk-ps49ymvj.js";
78
+ import {
79
+ require_jsx_dev_runtime,
80
+ require_react
81
+ } from "./chunk-g338npwr.js";
82
+ import"./chunk-2v1br2x0.js";
83
+ import"./chunk-zk2wsm7d.js";
84
+ import"./chunk-zkmxtgc3.js";
85
+ import"./chunk-m06q12hg.js";
86
+ import"./chunk-grdvmq7q.js";
87
+ import {
88
+ getCurrentProjectConfig,
89
+ getGlobalConfig,
90
+ init_config1 as init_config,
91
+ init_stringUtils,
92
+ plural,
93
+ saveCurrentProjectConfig
94
+ } from "./chunk-7wm1rjfm.js";
95
+ import {
96
+ init_json,
97
+ safeParseJSON
98
+ } from "./chunk-e3g8q4cn.js";
99
+ import"./chunk-ctw5jwcd.js";
100
+ import"./chunk-vratq94g.js";
101
+ import"./chunk-5hva0tsg.js";
102
+ import"./chunk-0e1xsncc.js";
103
+ import"./chunk-g0j0t6qk.js";
104
+ import"./chunk-3c25bcsw.js";
105
+ import {
106
+ getPlatform,
107
+ init_platform
108
+ } from "./chunk-tjaqa99q.js";
109
+ import"./chunk-55wgxwa9.js";
110
+ import"./chunk-spqaamnc.js";
111
+ import"./chunk-4jm600zv.js";
112
+ import"./chunk-w2z5pqd3.js";
113
+ import"./chunk-7ymfj7m3.js";
114
+ import"./chunk-f5ma3nh5.js";
115
+ import"./chunk-qz2x630m.js";
116
+ import"./chunk-cvge4pvp.js";
117
+ import"./chunk-p2816w9z.js";
118
+ import"./chunk-v9smspw2.js";
119
+ import"./chunk-v1kzp02e.js";
120
+ import"./chunk-0vkfrmqm.js";
121
+ import"./chunk-0xjaqda8.js";
122
+ import"./chunk-x14dq3v1.js";
123
+ import"./chunk-cdz5yb0r.js";
124
+ import {
125
+ init_analytics,
126
+ logEvent
127
+ } from "./chunk-h0rbjg6x.js";
128
+ import"./chunk-7z8j9qfn.js";
129
+ import"./chunk-hrzerbfw.js";
130
+ import"./chunk-d18z9pna.js";
131
+ import"./chunk-qnfx3qtx.js";
132
+ import"./chunk-hjhc4cpt.js";
133
+ import"./chunk-vyc0rjyx.js";
134
+ import"./chunk-hx2tr4ep.js";
135
+ import"./chunk-p7g7pf3f.js";
136
+ import"./chunk-8tnsngw2.js";
137
+ import"./chunk-8bedvdm1.js";
138
+ import"./chunk-7wm5s02e.js";
139
+ import {
140
+ init_errors,
141
+ isFsInaccessible
142
+ } from "./chunk-nxsh6de2.js";
143
+ import {
144
+ init_process,
145
+ writeToStdout
146
+ } from "./chunk-fbv4apne.js";
147
+ import"./chunk-3r24h7t6.js";
148
+ import"./chunk-qqfa0dqg.js";
149
+ import"./chunk-hqmz36b3.js";
150
+ import"./chunk-4g3v8y12.js";
151
+ import"./chunk-7739pg2c.js";
152
+ import"./chunk-xszk7n10.js";
153
+ import"./chunk-sdj9b9wh.js";
154
+ import {
155
+ __require,
156
+ __toESM
157
+ } from "./chunk-qp2qdcda.js";
158
+
159
+ // src/cli/handlers/mcp.tsx
160
+ init_p_map();
161
+ import { stat } from "fs/promises";
162
+ import { cwd } from "process";
163
+
164
+ // src/components/MCPServerDesktopImportDialog.tsx
165
+ init_gracefulShutdown();
166
+ init_process();
167
+ init_ink();
168
+ init_config2();
169
+ init_stringUtils();
170
+ init_ConfigurableShortcutHint();
171
+ init_SelectMulti();
172
+ init_Byline();
173
+ init_Dialog();
174
+ init_KeyboardShortcutHint();
175
+ var import_compiler_runtime = __toESM(require_compiler_runtime(), 1);
176
+ var import_react = __toESM(require_react(), 1);
177
+ var jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
178
+ function MCPServerDesktopImportDialog(t0) {
179
+ const $ = import_compiler_runtime.c(36);
180
+ const {
181
+ servers,
182
+ scope,
183
+ onDone
184
+ } = t0;
185
+ let t1;
186
+ if ($[0] !== servers) {
187
+ t1 = Object.keys(servers);
188
+ $[0] = servers;
189
+ $[1] = t1;
190
+ } else {
191
+ t1 = $[1];
192
+ }
193
+ const serverNames = t1;
194
+ let t2;
195
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
196
+ t2 = {};
197
+ $[2] = t2;
198
+ } else {
199
+ t2 = $[2];
200
+ }
201
+ const [existingServers, setExistingServers] = import_react.useState(t2);
202
+ let t3;
203
+ let t4;
204
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
205
+ t3 = () => {
206
+ getAllMcpConfigs().then((t52) => {
207
+ const {
208
+ servers: servers_0
209
+ } = t52;
210
+ return setExistingServers(servers_0);
211
+ });
212
+ };
213
+ t4 = [];
214
+ $[3] = t3;
215
+ $[4] = t4;
216
+ } else {
217
+ t3 = $[3];
218
+ t4 = $[4];
219
+ }
220
+ import_react.useEffect(t3, t4);
221
+ let t5;
222
+ if ($[5] !== existingServers || $[6] !== serverNames) {
223
+ t5 = serverNames.filter((name) => existingServers[name] !== undefined);
224
+ $[5] = existingServers;
225
+ $[6] = serverNames;
226
+ $[7] = t5;
227
+ } else {
228
+ t5 = $[7];
229
+ }
230
+ const collisions = t5;
231
+ const onSubmit = async function onSubmit2(selectedServers) {
232
+ let importedCount = 0;
233
+ for (const serverName of selectedServers) {
234
+ const serverConfig = servers[serverName];
235
+ if (serverConfig) {
236
+ let finalName = serverName;
237
+ if (existingServers[finalName] !== undefined) {
238
+ let counter = 1;
239
+ while (existingServers[`${serverName}_${counter}`] !== undefined) {
240
+ counter++;
241
+ }
242
+ finalName = `${serverName}_${counter}`;
243
+ }
244
+ await addMcpConfig(finalName, serverConfig, scope);
245
+ importedCount++;
246
+ }
247
+ }
248
+ done(importedCount);
249
+ };
250
+ const [theme] = useTheme();
251
+ let t6;
252
+ if ($[8] !== onDone || $[9] !== scope || $[10] !== theme) {
253
+ t6 = (importedCount_0) => {
254
+ if (importedCount_0 > 0) {
255
+ writeToStdout(`
256
+ ${color("success", theme)(`Successfully imported ${importedCount_0} MCP ${plural(importedCount_0, "server")} to ${scope} config.`)}
257
+ `);
258
+ } else {
259
+ writeToStdout(`
260
+ No servers were imported.`);
261
+ }
262
+ onDone();
263
+ gracefulShutdown();
264
+ };
265
+ $[8] = onDone;
266
+ $[9] = scope;
267
+ $[10] = theme;
268
+ $[11] = t6;
269
+ } else {
270
+ t6 = $[11];
271
+ }
272
+ const done = t6;
273
+ let t7;
274
+ if ($[12] !== done) {
275
+ t7 = () => {
276
+ done(0);
277
+ };
278
+ $[12] = done;
279
+ $[13] = t7;
280
+ } else {
281
+ t7 = $[13];
282
+ }
283
+ const handleEscCancel = t7;
284
+ const t8 = serverNames.length;
285
+ let t9;
286
+ if ($[14] !== serverNames.length) {
287
+ t9 = plural(serverNames.length, "server");
288
+ $[14] = serverNames.length;
289
+ $[15] = t9;
290
+ } else {
291
+ t9 = $[15];
292
+ }
293
+ const t10 = `Found ${t8} MCP ${t9} in Claude Desktop.`;
294
+ let t11;
295
+ if ($[16] !== collisions.length) {
296
+ t11 = collisions.length > 0 && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
297
+ color: "warning",
298
+ children: "Note: Some servers already exist with the same name. If selected, they will be imported with a numbered suffix."
299
+ }, undefined, false, undefined, this);
300
+ $[16] = collisions.length;
301
+ $[17] = t11;
302
+ } else {
303
+ t11 = $[17];
304
+ }
305
+ let t12;
306
+ if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
307
+ t12 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
308
+ children: "Please select the servers you want to import:"
309
+ }, undefined, false, undefined, this);
310
+ $[18] = t12;
311
+ } else {
312
+ t12 = $[18];
313
+ }
314
+ let t13;
315
+ let t14;
316
+ if ($[19] !== collisions || $[20] !== serverNames) {
317
+ t13 = serverNames.map((server) => ({
318
+ label: `${server}${collisions.includes(server) ? " (already exists)" : ""}`,
319
+ value: server
320
+ }));
321
+ t14 = serverNames.filter((name_0) => !collisions.includes(name_0));
322
+ $[19] = collisions;
323
+ $[20] = serverNames;
324
+ $[21] = t13;
325
+ $[22] = t14;
326
+ } else {
327
+ t13 = $[21];
328
+ t14 = $[22];
329
+ }
330
+ let t15;
331
+ if ($[23] !== handleEscCancel || $[24] !== onSubmit || $[25] !== t13 || $[26] !== t14) {
332
+ t15 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(SelectMulti, {
333
+ options: t13,
334
+ defaultValue: t14,
335
+ onSubmit,
336
+ onCancel: handleEscCancel,
337
+ hideIndexes: true
338
+ }, undefined, false, undefined, this);
339
+ $[23] = handleEscCancel;
340
+ $[24] = onSubmit;
341
+ $[25] = t13;
342
+ $[26] = t14;
343
+ $[27] = t15;
344
+ } else {
345
+ t15 = $[27];
346
+ }
347
+ let t16;
348
+ if ($[28] !== handleEscCancel || $[29] !== t10 || $[30] !== t11 || $[31] !== t15) {
349
+ t16 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Dialog, {
350
+ title: "Import MCP Servers from Claude Desktop",
351
+ subtitle: t10,
352
+ color: "success",
353
+ onCancel: handleEscCancel,
354
+ hideInputGuide: true,
355
+ children: [
356
+ t11,
357
+ t12,
358
+ t15
359
+ ]
360
+ }, undefined, true, undefined, this);
361
+ $[28] = handleEscCancel;
362
+ $[29] = t10;
363
+ $[30] = t11;
364
+ $[31] = t15;
365
+ $[32] = t16;
366
+ } else {
367
+ t16 = $[32];
368
+ }
369
+ let t17;
370
+ if ($[33] === Symbol.for("react.memo_cache_sentinel")) {
371
+ t17 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
372
+ paddingX: 1,
373
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
374
+ dimColor: true,
375
+ italic: true,
376
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Byline, {
377
+ children: [
378
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(KeyboardShortcutHint, {
379
+ shortcut: "Space",
380
+ action: "select"
381
+ }, undefined, false, undefined, this),
382
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(KeyboardShortcutHint, {
383
+ shortcut: "Enter",
384
+ action: "confirm"
385
+ }, undefined, false, undefined, this),
386
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ConfigurableShortcutHint, {
387
+ action: "confirm:no",
388
+ context: "Confirmation",
389
+ fallback: "Esc",
390
+ description: "cancel"
391
+ }, undefined, false, undefined, this)
392
+ ]
393
+ }, undefined, true, undefined, this)
394
+ }, undefined, false, undefined, this)
395
+ }, undefined, false, undefined, this);
396
+ $[33] = t17;
397
+ } else {
398
+ t17 = $[33];
399
+ }
400
+ let t18;
401
+ if ($[34] !== t16) {
402
+ t18 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(jsx_dev_runtime.Fragment, {
403
+ children: [
404
+ t16,
405
+ t17
406
+ ]
407
+ }, undefined, true, undefined, this);
408
+ $[34] = t16;
409
+ $[35] = t18;
410
+ } else {
411
+ t18 = $[35];
412
+ }
413
+ return t18;
414
+ }
415
+
416
+ // src/cli/handlers/mcp.tsx
417
+ init_ink();
418
+ init_KeybindingProviderSetup();
419
+ init_analytics();
420
+ init_auth();
421
+ init_client();
422
+ init_config2();
423
+ init_utils();
424
+ init_AppState();
425
+ init_config();
426
+ init_errors();
427
+ init_gracefulShutdown();
428
+ init_json();
429
+ init_platform();
430
+ var jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
431
+ async function checkMcpServerHealth(name, server) {
432
+ try {
433
+ const result = await connectToServer(name, server);
434
+ if (result.type === "connected") {
435
+ return "\u2713 Connected";
436
+ } else if (result.type === "needs-auth") {
437
+ return "! Needs authentication";
438
+ } else {
439
+ return "\u2717 Failed to connect";
440
+ }
441
+ } catch (_error) {
442
+ return "\u2717 Connection error";
443
+ }
444
+ }
445
+ async function mcpServeHandler({
446
+ debug,
447
+ verbose
448
+ }) {
449
+ const providedCwd = cwd();
450
+ logEvent("tengu_mcp_start", {});
451
+ try {
452
+ await stat(providedCwd);
453
+ } catch (error) {
454
+ if (isFsInaccessible(error)) {
455
+ cliError(`Error: Directory ${providedCwd} does not exist`);
456
+ }
457
+ throw error;
458
+ }
459
+ try {
460
+ const {
461
+ setup
462
+ } = await import("./chunk-ap2a2er6.js");
463
+ await setup(providedCwd, "default", false, false, undefined, false);
464
+ const {
465
+ startMCPServer
466
+ } = await import("./chunk-gzmjp1eb.js");
467
+ await startMCPServer(providedCwd, debug ?? false, verbose ?? false);
468
+ } catch (error) {
469
+ cliError(`Error: Failed to start MCP server: ${error}`);
470
+ }
471
+ }
472
+ async function mcpRemoveHandler(name, options) {
473
+ const serverBeforeRemoval = getMcpConfigByName(name);
474
+ const cleanupSecureStorage = () => {
475
+ if (serverBeforeRemoval && (serverBeforeRemoval.type === "sse" || serverBeforeRemoval.type === "http")) {
476
+ clearServerTokensFromLocalStorage(name, serverBeforeRemoval);
477
+ clearMcpClientConfig(name, serverBeforeRemoval);
478
+ }
479
+ };
480
+ try {
481
+ if (options.scope) {
482
+ const scope = ensureConfigScope(options.scope);
483
+ logEvent("tengu_mcp_delete", {
484
+ name,
485
+ scope
486
+ });
487
+ await removeMcpConfig(name, scope);
488
+ cleanupSecureStorage();
489
+ process.stdout.write(`Removed MCP server ${name} from ${scope} config
490
+ `);
491
+ cliOk(`File modified: ${describeMcpConfigFilePath(scope)}`);
492
+ }
493
+ const projectConfig = getCurrentProjectConfig();
494
+ const globalConfig = getGlobalConfig();
495
+ const {
496
+ servers: projectServers
497
+ } = getMcpConfigsByScope("project");
498
+ const mcpJsonExists = !!projectServers[name];
499
+ const scopes = [];
500
+ if (projectConfig.mcpServers?.[name])
501
+ scopes.push("local");
502
+ if (mcpJsonExists)
503
+ scopes.push("project");
504
+ if (globalConfig.mcpServers?.[name])
505
+ scopes.push("user");
506
+ if (scopes.length === 0) {
507
+ cliError(`No MCP server found with name: "${name}"`);
508
+ } else if (scopes.length === 1) {
509
+ const scope = scopes[0];
510
+ logEvent("tengu_mcp_delete", {
511
+ name,
512
+ scope
513
+ });
514
+ await removeMcpConfig(name, scope);
515
+ cleanupSecureStorage();
516
+ process.stdout.write(`Removed MCP server "${name}" from ${scope} config
517
+ `);
518
+ cliOk(`File modified: ${describeMcpConfigFilePath(scope)}`);
519
+ } else {
520
+ process.stderr.write(`MCP server "${name}" exists in multiple scopes:
521
+ `);
522
+ scopes.forEach((scope) => {
523
+ process.stderr.write(` - ${getScopeLabel(scope)} (${describeMcpConfigFilePath(scope)})
524
+ `);
525
+ });
526
+ process.stderr.write(`
527
+ To remove from a specific scope, use:
528
+ `);
529
+ scopes.forEach((scope) => {
530
+ process.stderr.write(` claude mcp remove "${name}" -s ${scope}
531
+ `);
532
+ });
533
+ cliError();
534
+ }
535
+ } catch (error) {
536
+ cliError(error.message);
537
+ }
538
+ }
539
+ async function mcpListHandler() {
540
+ logEvent("tengu_mcp_list", {});
541
+ const {
542
+ servers: configs
543
+ } = await getAllMcpConfigs();
544
+ if (Object.keys(configs).length === 0) {
545
+ console.log("No MCP servers configured. Use `claude mcp add` to add a server.");
546
+ } else {
547
+ console.log(`Checking MCP server health...
548
+ `);
549
+ const entries = Object.entries(configs);
550
+ const results = await pMap(entries, async ([name, server]) => ({
551
+ name,
552
+ server,
553
+ status: await checkMcpServerHealth(name, server)
554
+ }), {
555
+ concurrency: getMcpServerConnectionBatchSize()
556
+ });
557
+ for (const {
558
+ name,
559
+ server,
560
+ status
561
+ } of results) {
562
+ if (server.type === "sse") {
563
+ console.log(`${name}: ${server.url} (SSE) - ${status}`);
564
+ } else if (server.type === "http") {
565
+ console.log(`${name}: ${server.url} (HTTP) - ${status}`);
566
+ } else if (server.type === "claudeai-proxy") {
567
+ console.log(`${name}: ${server.url} - ${status}`);
568
+ } else if (!server.type || server.type === "stdio") {
569
+ const args = Array.isArray(server.args) ? server.args : [];
570
+ console.log(`${name}: ${server.command} ${args.join(" ")} - ${status}`);
571
+ }
572
+ }
573
+ }
574
+ await gracefulShutdown(0);
575
+ }
576
+ async function mcpGetHandler(name) {
577
+ logEvent("tengu_mcp_get", {
578
+ name
579
+ });
580
+ const server = getMcpConfigByName(name);
581
+ if (!server) {
582
+ cliError(`No MCP server found with name: ${name}`);
583
+ }
584
+ console.log(`${name}:`);
585
+ console.log(` Scope: ${getScopeLabel(server.scope)}`);
586
+ const status = await checkMcpServerHealth(name, server);
587
+ console.log(` Status: ${status}`);
588
+ if (server.type === "sse") {
589
+ console.log(` Type: sse`);
590
+ console.log(` URL: ${server.url}`);
591
+ if (server.headers) {
592
+ console.log(" Headers:");
593
+ for (const [key, value] of Object.entries(server.headers)) {
594
+ console.log(` ${key}: ${value}`);
595
+ }
596
+ }
597
+ if (server.oauth?.clientId || server.oauth?.callbackPort) {
598
+ const parts = [];
599
+ if (server.oauth.clientId) {
600
+ parts.push("client_id configured");
601
+ const clientConfig = getMcpClientConfig(name, server);
602
+ if (clientConfig?.clientSecret)
603
+ parts.push("client_secret configured");
604
+ }
605
+ if (server.oauth.callbackPort)
606
+ parts.push(`callback_port ${server.oauth.callbackPort}`);
607
+ console.log(` OAuth: ${parts.join(", ")}`);
608
+ }
609
+ } else if (server.type === "http") {
610
+ console.log(` Type: http`);
611
+ console.log(` URL: ${server.url}`);
612
+ if (server.headers) {
613
+ console.log(" Headers:");
614
+ for (const [key, value] of Object.entries(server.headers)) {
615
+ console.log(` ${key}: ${value}`);
616
+ }
617
+ }
618
+ if (server.oauth?.clientId || server.oauth?.callbackPort) {
619
+ const parts = [];
620
+ if (server.oauth.clientId) {
621
+ parts.push("client_id configured");
622
+ const clientConfig = getMcpClientConfig(name, server);
623
+ if (clientConfig?.clientSecret)
624
+ parts.push("client_secret configured");
625
+ }
626
+ if (server.oauth.callbackPort)
627
+ parts.push(`callback_port ${server.oauth.callbackPort}`);
628
+ console.log(` OAuth: ${parts.join(", ")}`);
629
+ }
630
+ } else if (server.type === "stdio") {
631
+ console.log(` Type: stdio`);
632
+ console.log(` Command: ${server.command}`);
633
+ const args = Array.isArray(server.args) ? server.args : [];
634
+ console.log(` Args: ${args.join(" ")}`);
635
+ if (server.env) {
636
+ console.log(" Environment:");
637
+ for (const [key, value] of Object.entries(server.env)) {
638
+ console.log(` ${key}=${value}`);
639
+ }
640
+ }
641
+ }
642
+ console.log(`
643
+ To remove this server, run: claude mcp remove "${name}" -s ${server.scope}`);
644
+ await gracefulShutdown(0);
645
+ }
646
+ async function mcpAddJsonHandler(name, json, options) {
647
+ try {
648
+ const scope = ensureConfigScope(options.scope);
649
+ const parsedJson = safeParseJSON(json);
650
+ const needsSecret = options.clientSecret && parsedJson && typeof parsedJson === "object" && "type" in parsedJson && (parsedJson.type === "sse" || parsedJson.type === "http") && "url" in parsedJson && typeof parsedJson.url === "string" && "oauth" in parsedJson && parsedJson.oauth && typeof parsedJson.oauth === "object" && "clientId" in parsedJson.oauth;
651
+ const clientSecret = needsSecret ? await readClientSecret() : undefined;
652
+ await addMcpConfig(name, parsedJson, scope);
653
+ const transportType = parsedJson && typeof parsedJson === "object" && "type" in parsedJson ? String(parsedJson.type || "stdio") : "stdio";
654
+ if (clientSecret && parsedJson && typeof parsedJson === "object" && "type" in parsedJson && (parsedJson.type === "sse" || parsedJson.type === "http") && "url" in parsedJson && typeof parsedJson.url === "string") {
655
+ saveMcpClientSecret(name, {
656
+ type: parsedJson.type,
657
+ url: parsedJson.url
658
+ }, clientSecret);
659
+ }
660
+ logEvent("tengu_mcp_add", {
661
+ scope,
662
+ source: "json",
663
+ type: transportType
664
+ });
665
+ cliOk(`Added ${transportType} MCP server ${name} to ${scope} config`);
666
+ } catch (error) {
667
+ cliError(error.message);
668
+ }
669
+ }
670
+ async function mcpAddFromDesktopHandler(options) {
671
+ try {
672
+ const scope = ensureConfigScope(options.scope);
673
+ const platform = getPlatform();
674
+ logEvent("tengu_mcp_add", {
675
+ scope,
676
+ platform,
677
+ source: "desktop"
678
+ });
679
+ const {
680
+ readClaudeDesktopMcpServers
681
+ } = await import("./chunk-rs45skes.js");
682
+ const servers = await readClaudeDesktopMcpServers();
683
+ if (Object.keys(servers).length === 0) {
684
+ cliOk("No MCP servers found in Claude Desktop configuration or configuration file does not exist.");
685
+ }
686
+ const {
687
+ unmount
688
+ } = await render(/* @__PURE__ */ jsx_dev_runtime2.jsxDEV(AppStateProvider, {
689
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(KeybindingSetup, {
690
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(MCPServerDesktopImportDialog, {
691
+ servers,
692
+ scope,
693
+ onDone: () => {
694
+ unmount();
695
+ }
696
+ }, undefined, false, undefined, this)
697
+ }, undefined, false, undefined, this)
698
+ }, undefined, false, undefined, this), {
699
+ exitOnCtrlC: true
700
+ });
701
+ } catch (error) {
702
+ cliError(error.message);
703
+ }
704
+ }
705
+ async function mcpResetChoicesHandler() {
706
+ logEvent("tengu_mcp_reset_mcpjson_choices", {});
707
+ saveCurrentProjectConfig((current) => ({
708
+ ...current,
709
+ enabledMcpjsonServers: [],
710
+ disabledMcpjsonServers: [],
711
+ enableAllProjectMcpServers: false
712
+ }));
713
+ cliOk(`All project-scoped (.mcp.json) server approvals and rejections have been reset.
714
+ You will be prompted for approval next time you start Claude Code.`);
715
+ }
716
+ export {
717
+ mcpServeHandler,
718
+ mcpResetChoicesHandler,
719
+ mcpRemoveHandler,
720
+ mcpListHandler,
721
+ mcpGetHandler,
722
+ mcpAddJsonHandler,
723
+ mcpAddFromDesktopHandler
724
+ };