@caspian2026/agent-sdk 0.0.2

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 (371) hide show
  1. package/dist/chunk-018smjq7.js +26 -0
  2. package/dist/chunk-055q0a2m.js +146 -0
  3. package/dist/chunk-07069jq1.js +30 -0
  4. package/dist/chunk-0731m51q.js +8 -0
  5. package/dist/chunk-0awwmrwr.js +46 -0
  6. package/dist/chunk-0htx82k2.js +64 -0
  7. package/dist/chunk-0jmt5sx1.js +104 -0
  8. package/dist/chunk-0kj8bq80.js +252 -0
  9. package/dist/chunk-0kxcq8h9.js +86 -0
  10. package/dist/chunk-0paqc2yw.js +15 -0
  11. package/dist/chunk-0vkfrmqm.js +690 -0
  12. package/dist/chunk-0xjaqda8.js +1124 -0
  13. package/dist/chunk-10qhq6f8.js +458 -0
  14. package/dist/chunk-15m49c67.js +121 -0
  15. package/dist/chunk-15sfg4bs.js +65 -0
  16. package/dist/chunk-162ewhvy.js +869 -0
  17. package/dist/chunk-177s15bv.js +120 -0
  18. package/dist/chunk-19e603rv.js +284 -0
  19. package/dist/chunk-1ax1znzj.js +537 -0
  20. package/dist/chunk-1c4j7qn2.js +319 -0
  21. package/dist/chunk-1gx78081.js +66 -0
  22. package/dist/chunk-1h2famwb.js +49 -0
  23. package/dist/chunk-1nk93fqz.js +357 -0
  24. package/dist/chunk-1xct96nd.js +2520 -0
  25. package/dist/chunk-1xvcvdef.js +90 -0
  26. package/dist/chunk-1yrcnrs7.js +261 -0
  27. package/dist/chunk-21bcvwr7.js +660 -0
  28. package/dist/chunk-2352ts05.js +667 -0
  29. package/dist/chunk-23jzrwsw.js +43 -0
  30. package/dist/chunk-26hg7303.js +62 -0
  31. package/dist/chunk-2f21meep.js +122 -0
  32. package/dist/chunk-2fwze72g.js +24 -0
  33. package/dist/chunk-2gzv8nrw.js +205 -0
  34. package/dist/chunk-2h05vtpv.js +83 -0
  35. package/dist/chunk-2h0y6m16.js +465 -0
  36. package/dist/chunk-2n7bbxm6.js +168 -0
  37. package/dist/chunk-2nv3d0he.js +108 -0
  38. package/dist/chunk-2vqrdwx9.js +1811 -0
  39. package/dist/chunk-3389cj3w.js +120 -0
  40. package/dist/chunk-35sgv3er.js +231 -0
  41. package/dist/chunk-3c25bcsw.js +17 -0
  42. package/dist/chunk-3e20cj49.js +443 -0
  43. package/dist/chunk-3mr5ryx4.js +122 -0
  44. package/dist/chunk-3nk79af8.js +8 -0
  45. package/dist/chunk-3qbdzsvm.js +120 -0
  46. package/dist/chunk-3yprydpw.js +213 -0
  47. package/dist/chunk-430yrtmk.js +492 -0
  48. package/dist/chunk-46hd1gyd.js +140 -0
  49. package/dist/chunk-46hdszda.js +63 -0
  50. package/dist/chunk-46n7byh8.js +102 -0
  51. package/dist/chunk-4cp6193g.js +9076 -0
  52. package/dist/chunk-4dn3n459.js +409 -0
  53. package/dist/chunk-4hv90qcz.js +8 -0
  54. package/dist/chunk-4jm600zv.js +13 -0
  55. package/dist/chunk-4nspekjp.js +69 -0
  56. package/dist/chunk-505mxxa9.js +19 -0
  57. package/dist/chunk-50bay5qy.js +224 -0
  58. package/dist/chunk-537qfvn5.js +345 -0
  59. package/dist/chunk-55raexh7.js +14358 -0
  60. package/dist/chunk-572vjq78.js +56 -0
  61. package/dist/chunk-5apfzkpy.js +87 -0
  62. package/dist/chunk-5ccdsxgy.js +74 -0
  63. package/dist/chunk-5dmhsqap.js +32 -0
  64. package/dist/chunk-5fs6nkjr.js +98 -0
  65. package/dist/chunk-5nchekqe.js +87 -0
  66. package/dist/chunk-5pp28k2r.js +120 -0
  67. package/dist/chunk-5rt4b8q9.js +116 -0
  68. package/dist/chunk-5rv9c8yd.js +1072 -0
  69. package/dist/chunk-5z28bqne.js +6748 -0
  70. package/dist/chunk-64c1avct.js +13 -0
  71. package/dist/chunk-66zry909.js +11 -0
  72. package/dist/chunk-682qgta2.js +102 -0
  73. package/dist/chunk-68ffk5qa.js +14 -0
  74. package/dist/chunk-68w91pzt.js +79 -0
  75. package/dist/chunk-69fgaak0.js +654 -0
  76. package/dist/chunk-69n11zng.js +436 -0
  77. package/dist/chunk-6dj5t602.js +341 -0
  78. package/dist/chunk-6gh20s05.js +146 -0
  79. package/dist/chunk-6maej1hh.js +502 -0
  80. package/dist/chunk-6nsd9606.js +790 -0
  81. package/dist/chunk-6p4cyhb3.js +16 -0
  82. package/dist/chunk-6t4a9cgj.js +877 -0
  83. package/dist/chunk-6t8yqfks.js +227 -0
  84. package/dist/chunk-6vthy0fj.js +213 -0
  85. package/dist/chunk-70cw4cg9.js +1026 -0
  86. package/dist/chunk-70eey1nh.js +164 -0
  87. package/dist/chunk-76j2e9vy.js +68 -0
  88. package/dist/chunk-7acgdm7x.js +93 -0
  89. package/dist/chunk-7aw745vx.js +40175 -0
  90. package/dist/chunk-7gvwg1v9.js +122 -0
  91. package/dist/chunk-7h2ybnf3.js +636 -0
  92. package/dist/chunk-7kcm5hn2.js +155 -0
  93. package/dist/chunk-7m2hp89m.js +73 -0
  94. package/dist/chunk-7mqab3z7.js +31 -0
  95. package/dist/chunk-7sgtxrsc.js +1059 -0
  96. package/dist/chunk-7wm5s02e.js +216 -0
  97. package/dist/chunk-7xyswgjh.js +8 -0
  98. package/dist/chunk-7yxvpj5j.js +1452 -0
  99. package/dist/chunk-80a8vabn.js +93 -0
  100. package/dist/chunk-83e71kz6.js +180 -0
  101. package/dist/chunk-83hfzbx3.js +10 -0
  102. package/dist/chunk-8g5pe1gr.js +37 -0
  103. package/dist/chunk-8g747a8x.js +26 -0
  104. package/dist/chunk-8hj8ms5q.js +111 -0
  105. package/dist/chunk-8mkwsdk1.js +61 -0
  106. package/dist/chunk-8n42zyfx.js +40 -0
  107. package/dist/chunk-8qhxyqj9.js +1155 -0
  108. package/dist/chunk-8y30k9pz.js +38 -0
  109. package/dist/chunk-960ze3jj.js +124 -0
  110. package/dist/chunk-97wgdsab.js +35 -0
  111. package/dist/chunk-9grztvcg.js +93 -0
  112. package/dist/chunk-9x5zgy22.js +12 -0
  113. package/dist/chunk-a8792r1c.js +620 -0
  114. package/dist/chunk-ahr1r7c6.js +4275 -0
  115. package/dist/chunk-ase86y73.js +15 -0
  116. package/dist/chunk-b0kf00ff.js +637 -0
  117. package/dist/chunk-b0qptb1k.js +640 -0
  118. package/dist/chunk-b1kcd3ss.js +27 -0
  119. package/dist/chunk-b2fd462a.js +54 -0
  120. package/dist/chunk-bdrjvs5k.js +157 -0
  121. package/dist/chunk-beg7bdyz.js +90 -0
  122. package/dist/chunk-bg4x9ex0.js +21 -0
  123. package/dist/chunk-bktfq0ns.js +95 -0
  124. package/dist/chunk-bmbq6nt1.js +145 -0
  125. package/dist/chunk-bvf2z3g6.js +1003 -0
  126. package/dist/chunk-bxcfz5gy.js +56 -0
  127. package/dist/chunk-c11swzas.js +5368 -0
  128. package/dist/chunk-c37j5zxe.js +57 -0
  129. package/dist/chunk-c5mz5vw2.js +117 -0
  130. package/dist/chunk-c6sjhj89.js +1284 -0
  131. package/dist/chunk-c7jwbe76.js +29030 -0
  132. package/dist/chunk-cc2tg4q8.js +311 -0
  133. package/dist/chunk-cdhmrbj4.js +6353 -0
  134. package/dist/chunk-cdz5yb0r.js +57 -0
  135. package/dist/chunk-cfv996bs.js +22 -0
  136. package/dist/chunk-cgfdkzhb.js +12 -0
  137. package/dist/chunk-chakj069.js +310 -0
  138. package/dist/chunk-chsyvavm.js +3435 -0
  139. package/dist/chunk-cnsj3vq2.js +35 -0
  140. package/dist/chunk-ctdg0qxh.js +1386 -0
  141. package/dist/chunk-cxq7gc42.js +386 -0
  142. package/dist/chunk-d1pyf9as.js +8586 -0
  143. package/dist/chunk-d4kwjqjy.js +308 -0
  144. package/dist/chunk-d4mdda98.js +94 -0
  145. package/dist/chunk-d7886r6a.js +13870 -0
  146. package/dist/chunk-d7f1pzkq.js +95 -0
  147. package/dist/chunk-ddsjkqs4.js +39 -0
  148. package/dist/chunk-dm3n2qgd.js +24 -0
  149. package/dist/chunk-e2mv8ts8.js +115 -0
  150. package/dist/chunk-e4bhfc6d.js +2720 -0
  151. package/dist/chunk-e4p1jbs4.js +58 -0
  152. package/dist/chunk-e7h4qxgw.js +21 -0
  153. package/dist/chunk-e8p3fy6v.js +202 -0
  154. package/dist/chunk-e97mp86b.js +111 -0
  155. package/dist/chunk-ebqwkhyf.js +145 -0
  156. package/dist/chunk-eenq3avg.js +69 -0
  157. package/dist/chunk-efgjfast.js +61 -0
  158. package/dist/chunk-ehtwnxpg.js +1591 -0
  159. package/dist/chunk-en8wkxh7.js +173 -0
  160. package/dist/chunk-enkdxqas.js +33 -0
  161. package/dist/chunk-eqp1rfft.js +17 -0
  162. package/dist/chunk-ercvcek8.js +266 -0
  163. package/dist/chunk-etgh9xvt.js +369 -0
  164. package/dist/chunk-ev3qkf76.js +106 -0
  165. package/dist/chunk-evp5pb9x.js +3567 -0
  166. package/dist/chunk-ewadzrm8.js +103 -0
  167. package/dist/chunk-exah13mz.js +94 -0
  168. package/dist/chunk-f0rzvqmq.js +87 -0
  169. package/dist/chunk-f1m9pect.js +258 -0
  170. package/dist/chunk-fajg8x36.js +8158 -0
  171. package/dist/chunk-fbv4apne.js +51 -0
  172. package/dist/chunk-fbvw6wq9.js +116 -0
  173. package/dist/chunk-feyzykye.js +10 -0
  174. package/dist/chunk-fn1vvj8k.js +894 -0
  175. package/dist/chunk-fshfxw2q.js +183 -0
  176. package/dist/chunk-fyc5fepv.js +10 -0
  177. package/dist/chunk-g9f19ttm.js +15 -0
  178. package/dist/chunk-gcpfxk0c.js +644 -0
  179. package/dist/chunk-gdg6411p.js +106 -0
  180. package/dist/chunk-gkyzz8er.js +849 -0
  181. package/dist/chunk-gxahdggv.js +71 -0
  182. package/dist/chunk-h6fsks9j.js +220 -0
  183. package/dist/chunk-h9n54swm.js +27 -0
  184. package/dist/chunk-hakdhagh.js +16606 -0
  185. package/dist/chunk-hchy0hq6.js +159 -0
  186. package/dist/chunk-hh3k5s1s.js +180 -0
  187. package/dist/chunk-hqqkj5pg.js +202 -0
  188. package/dist/chunk-htpehq9t.js +251 -0
  189. package/dist/chunk-hwfknpxv.js +39 -0
  190. package/dist/chunk-hwn8vetn.js +394 -0
  191. package/dist/chunk-hx3j6n92.js +178 -0
  192. package/dist/chunk-hyb749hd.js +194 -0
  193. package/dist/chunk-hzgnejb1.js +90 -0
  194. package/dist/chunk-hzknr99c.js +477 -0
  195. package/dist/chunk-j3zhb8vv.js +152 -0
  196. package/dist/chunk-j5bth84e.js +97 -0
  197. package/dist/chunk-j64ga6ta.js +8035 -0
  198. package/dist/chunk-jaaxk89e.js +113 -0
  199. package/dist/chunk-jd32zbps.js +15 -0
  200. package/dist/chunk-jfja8q7w.js +91 -0
  201. package/dist/chunk-jgjqa49s.js +27 -0
  202. package/dist/chunk-jgpmpgx6.js +19 -0
  203. package/dist/chunk-jgwd85hp.js +91 -0
  204. package/dist/chunk-jk69qtzx.js +277 -0
  205. package/dist/chunk-jr1xm1dd.js +147 -0
  206. package/dist/chunk-jss0azv7.js +2337 -0
  207. package/dist/chunk-jxpmkae9.js +108 -0
  208. package/dist/chunk-jy9rxxqe.js +102 -0
  209. package/dist/chunk-jyw3np47.js +264 -0
  210. package/dist/chunk-jzthz1bx.js +15 -0
  211. package/dist/chunk-k0p9w03v.js +4957 -0
  212. package/dist/chunk-k2rybwww.js +92 -0
  213. package/dist/chunk-k3939ggz.js +168 -0
  214. package/dist/chunk-k591cwbg.js +345 -0
  215. package/dist/chunk-k5ez1h65.js +108 -0
  216. package/dist/chunk-k8vp0atq.js +2331 -0
  217. package/dist/chunk-kajf3jgq.js +694 -0
  218. package/dist/chunk-kbm69rtz.js +276 -0
  219. package/dist/chunk-kjh11txh.js +419 -0
  220. package/dist/chunk-kqggbte3.js +326 -0
  221. package/dist/chunk-kr6qfwq0.js +95 -0
  222. package/dist/chunk-kvfg8eeg.js +150 -0
  223. package/dist/chunk-kwekc97v.js +18 -0
  224. package/dist/chunk-m1cehfta.js +861 -0
  225. package/dist/chunk-m87bhhqv.js +61 -0
  226. package/dist/chunk-mg7pbk0r.js +151 -0
  227. package/dist/chunk-mpbfkp8j.js +418 -0
  228. package/dist/chunk-mpk1sjyk.js +117 -0
  229. package/dist/chunk-msecaxyj.js +74 -0
  230. package/dist/chunk-mswx2nma.js +103 -0
  231. package/dist/chunk-mw1kpeg9.js +6895 -0
  232. package/dist/chunk-mxr2s6d1.js +89 -0
  233. package/dist/chunk-my40g5hp.js +560 -0
  234. package/dist/chunk-n0kmh4ra.js +338 -0
  235. package/dist/chunk-n18q5yqs.js +397 -0
  236. package/dist/chunk-n7pnyq43.js +131 -0
  237. package/dist/chunk-naybw0p0.js +32 -0
  238. package/dist/chunk-nb6abcch.js +83 -0
  239. package/dist/chunk-ne5r3k03.js +350 -0
  240. package/dist/chunk-nebezy1d.js +997 -0
  241. package/dist/chunk-netzwgv1.js +154 -0
  242. package/dist/chunk-nhapyawz.js +32994 -0
  243. package/dist/chunk-npnvheft.js +156 -0
  244. package/dist/chunk-nrtksr2p.js +51 -0
  245. package/dist/chunk-nw9t5pq9.js +132 -0
  246. package/dist/chunk-nxgsnh2y.js +735 -0
  247. package/dist/chunk-p11xp4xp.js +266 -0
  248. package/dist/chunk-p1hwrf72.js +74 -0
  249. package/dist/chunk-p1zj9mg9.js +567 -0
  250. package/dist/chunk-p39a677r.js +115 -0
  251. package/dist/chunk-p7vkh4wx.js +15 -0
  252. package/dist/chunk-p8na2wwp.js +14 -0
  253. package/dist/chunk-pcb7fbyg.js +259 -0
  254. package/dist/chunk-pckwmrzd.js +409 -0
  255. package/dist/chunk-ped973jn.js +111 -0
  256. package/dist/chunk-phd1qfpc.js +5971 -0
  257. package/dist/chunk-pkkngdv0.js +524 -0
  258. package/dist/chunk-ppwjyveh.js +8 -0
  259. package/dist/chunk-pqvr8jq7.js +324 -0
  260. package/dist/chunk-prcah3ys.js +106 -0
  261. package/dist/chunk-ps49ymvj.js +43 -0
  262. package/dist/chunk-pwwa7s62.js +11 -0
  263. package/dist/chunk-pxdzy0jh.js +134 -0
  264. package/dist/chunk-q3jr5t07.js +62 -0
  265. package/dist/chunk-q6cfkntd.js +675 -0
  266. package/dist/chunk-q6m26rc8.js +88 -0
  267. package/dist/chunk-q6xs51jj.js +332 -0
  268. package/dist/chunk-q7jnesv8.js +74 -0
  269. package/dist/chunk-q7zpf4r2.js +440 -0
  270. package/dist/chunk-q8c88vjm.js +24 -0
  271. package/dist/chunk-qajrkk97.js +298 -0
  272. package/dist/chunk-qatfdxvd.js +34 -0
  273. package/dist/chunk-qb6k2afy.js +153 -0
  274. package/dist/chunk-qfk94vcn.js +329 -0
  275. package/dist/chunk-qj2e1apf.js +471 -0
  276. package/dist/chunk-qj2mk79w.js +111 -0
  277. package/dist/chunk-qk7dfae6.js +267 -0
  278. package/dist/chunk-qnfx3qtx.js +617 -0
  279. package/dist/chunk-qp2qdcda.js +100 -0
  280. package/dist/chunk-qq0phwn8.js +458 -0
  281. package/dist/chunk-qwqjesx7.js +258 -0
  282. package/dist/chunk-qygmcg7w.js +60 -0
  283. package/dist/chunk-qz2x630m.js +49145 -0
  284. package/dist/chunk-qzj4e8fn.js +357 -0
  285. package/dist/chunk-ratvcbmn.js +255 -0
  286. package/dist/chunk-rkg741k3.js +37 -0
  287. package/dist/chunk-rn0v1hk8.js +34 -0
  288. package/dist/chunk-rsq0h0rz.js +91 -0
  289. package/dist/chunk-rvnb2gn6.js +1053 -0
  290. package/dist/chunk-rx278zpa.js +75 -0
  291. package/dist/chunk-s3hsqf80.js +473 -0
  292. package/dist/chunk-s4cb0bcb.js +655 -0
  293. package/dist/chunk-s8kj6ajy.js +32 -0
  294. package/dist/chunk-sd36yzx8.js +954 -0
  295. package/dist/chunk-sfcpjh4r.js +98 -0
  296. package/dist/chunk-spybh2dy.js +175 -0
  297. package/dist/chunk-sw9ax3ym.js +92 -0
  298. package/dist/chunk-szj5wvdy.js +28 -0
  299. package/dist/chunk-t29a6zb5.js +45 -0
  300. package/dist/chunk-t9p85zff.js +24 -0
  301. package/dist/chunk-tc1aazk4.js +131 -0
  302. package/dist/chunk-tdbz9gbm.js +1030 -0
  303. package/dist/chunk-tjcfpk38.js +208 -0
  304. package/dist/chunk-tp2jxmcx.js +8427 -0
  305. package/dist/chunk-tqmtkm0k.js +92 -0
  306. package/dist/chunk-tvgvt220.js +22820 -0
  307. package/dist/chunk-v0qraze5.js +291 -0
  308. package/dist/chunk-v1kzp02e.js +785 -0
  309. package/dist/chunk-v78fj8by.js +145 -0
  310. package/dist/chunk-v8g3kad0.js +101 -0
  311. package/dist/chunk-v9smspw2.js +4301 -0
  312. package/dist/chunk-vawgyev5.js +157 -0
  313. package/dist/chunk-vb3x3cxe.js +375 -0
  314. package/dist/chunk-vf612n57.js +472 -0
  315. package/dist/chunk-vjn8mbcw.js +198 -0
  316. package/dist/chunk-vmbfv1y5.js +295 -0
  317. package/dist/chunk-vrf54kmt.js +321 -0
  318. package/dist/chunk-vyjeh50y.js +2149 -0
  319. package/dist/chunk-vzgkedm9.js +159745 -0
  320. package/dist/chunk-w004kfw0.js +245 -0
  321. package/dist/chunk-w0yhbmxn.js +132 -0
  322. package/dist/chunk-w4yn8cq7.js +123 -0
  323. package/dist/chunk-waqwgprq.js +1164 -0
  324. package/dist/chunk-wayfjcwt.js +447 -0
  325. package/dist/chunk-wby6yd4m.js +91 -0
  326. package/dist/chunk-wha6v7za.js +705 -0
  327. package/dist/chunk-wjcq2vkf.js +641 -0
  328. package/dist/chunk-wtjt9qyk.js +2670 -0
  329. package/dist/chunk-x2pvw7xw.js +42 -0
  330. package/dist/chunk-x6r4v44b.js +8 -0
  331. package/dist/chunk-x8d2ehd7.js +19 -0
  332. package/dist/chunk-xd6kmmb1.js +95 -0
  333. package/dist/chunk-xp61y5ba.js +125 -0
  334. package/dist/chunk-xv3era3s.js +8 -0
  335. package/dist/chunk-xxw9a0bq.js +58 -0
  336. package/dist/chunk-xzhaa7gd.js +112 -0
  337. package/dist/chunk-y1784krc.js +19 -0
  338. package/dist/chunk-y4ca9kqz.js +3830 -0
  339. package/dist/chunk-yff68ex1.js +113 -0
  340. package/dist/chunk-yg4vgpxs.js +436 -0
  341. package/dist/chunk-yk62vxj2.js +2964 -0
  342. package/dist/chunk-ym5r3jnk.js +2007 -0
  343. package/dist/chunk-ysanv95x.js +225 -0
  344. package/dist/chunk-yvtzznds.js +63 -0
  345. package/dist/chunk-yyex5gsf.js +269 -0
  346. package/dist/chunk-yyf72f78.js +456 -0
  347. package/dist/chunk-z19sd3bt.js +1648 -0
  348. package/dist/chunk-z2dp53wn.js +17 -0
  349. package/dist/chunk-z9n0183s.js +39 -0
  350. package/dist/chunk-zb8f6h5g.js +9174 -0
  351. package/dist/chunk-zctfbr1v.js +594 -0
  352. package/dist/chunk-zesnmkg3.js +2840 -0
  353. package/dist/chunk-zf47r1b7.js +94 -0
  354. package/dist/chunk-zghtdbat.js +253 -0
  355. package/dist/chunk-zpmwvd09.js +275 -0
  356. package/dist/chunk-zqncgyf6.js +127 -0
  357. package/dist/chunk-zr6mz36s.js +281 -0
  358. package/dist/chunk-zshzdw1n.js +141 -0
  359. package/dist/chunk-zx5kw7z4.js +40 -0
  360. package/dist/chunk-zzm33q8x.js +8 -0
  361. package/dist/cli.js +91 -0
  362. package/dist/download-ripgrep.js +24821 -0
  363. package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
  364. package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
  365. package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
  366. package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
  367. package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
  368. package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
  369. package/dist/vendor/ripgrep/x64-win32/rg.exe +0 -0
  370. package/package.json +122 -0
  371. package/scripts/postinstall.cjs +319 -0
@@ -0,0 +1,636 @@
1
+ // @bun
2
+ import {
3
+ Select,
4
+ clearServerCache,
5
+ detectIDEs,
6
+ detectRunningIDEs,
7
+ getCurrentWorktreeSession,
8
+ init_AppState,
9
+ init_CustomSelect,
10
+ init_client,
11
+ init_ide,
12
+ init_worktree,
13
+ isJetBrainsIde,
14
+ isSupportedJetBrainsTerminal,
15
+ isSupportedTerminal,
16
+ toIDEDisplayName,
17
+ useAppState,
18
+ useSetAppState
19
+ } from "./chunk-vzgkedm9.js";
20
+ import"./chunk-46hdszda.js";
21
+ import"./chunk-hwfknpxv.js";
22
+ import"./chunk-4nspekjp.js";
23
+ import"./chunk-jzthz1bx.js";
24
+ import"./chunk-1gx78081.js";
25
+ import"./chunk-2gzv8nrw.js";
26
+ import"./chunk-ehtwnxpg.js";
27
+ import"./chunk-68w91pzt.js";
28
+ import"./chunk-s4cb0bcb.js";
29
+ import"./chunk-cgfdkzhb.js";
30
+ import"./chunk-bxcfz5gy.js";
31
+ import"./chunk-nebezy1d.js";
32
+ import"./chunk-wayfjcwt.js";
33
+ import"./chunk-kbm69rtz.js";
34
+ import"./chunk-j5bth84e.js";
35
+ import"./chunk-nxgsnh2y.js";
36
+ import"./chunk-68ffk5qa.js";
37
+ import"./chunk-ps49ymvj.js";
38
+ import"./chunk-bmbq6nt1.js";
39
+ import"./chunk-15sfg4bs.js";
40
+ import"./chunk-p7vkh4wx.js";
41
+ import"./chunk-b0qptb1k.js";
42
+ import"./chunk-m87bhhqv.js";
43
+ import"./chunk-j3zhb8vv.js";
44
+ import"./chunk-b2fd462a.js";
45
+ import"./chunk-c11swzas.js";
46
+ import"./chunk-chsyvavm.js";
47
+ import"./chunk-5rv9c8yd.js";
48
+ import {
49
+ getGlobalConfig,
50
+ init_config,
51
+ saveGlobalConfig
52
+ } from "./chunk-tp2jxmcx.js";
53
+ import"./chunk-z19sd3bt.js";
54
+ import"./chunk-1ax1znzj.js";
55
+ import"./chunk-wha6v7za.js";
56
+ import"./chunk-6nsd9606.js";
57
+ import"./chunk-xp61y5ba.js";
58
+ import"./chunk-64c1avct.js";
59
+ import"./chunk-8g5pe1gr.js";
60
+ import"./chunk-4cp6193g.js";
61
+ import"./chunk-8g747a8x.js";
62
+ import"./chunk-d7886r6a.js";
63
+ import"./chunk-yvtzznds.js";
64
+ import"./chunk-4jm600zv.js";
65
+ import"./chunk-qz2x630m.js";
66
+ import"./chunk-2f21meep.js";
67
+ import"./chunk-nrtksr2p.js";
68
+ import"./chunk-3c25bcsw.js";
69
+ import"./chunk-s3hsqf80.js";
70
+ import"./chunk-yyf72f78.js";
71
+ import"./chunk-cdz5yb0r.js";
72
+ import {
73
+ Dialog,
74
+ ThemedBox_default,
75
+ ThemedText,
76
+ init_source,
77
+ init_src,
78
+ source_default
79
+ } from "./chunk-c7jwbe76.js";
80
+ import"./chunk-0vkfrmqm.js";
81
+ import {
82
+ require_jsx_dev_runtime,
83
+ require_react
84
+ } from "./chunk-7sgtxrsc.js";
85
+ import"./chunk-0xjaqda8.js";
86
+ import {
87
+ init_analytics,
88
+ logEvent
89
+ } from "./chunk-x8d2ehd7.js";
90
+ import"./chunk-15m49c67.js";
91
+ import"./chunk-tdbz9gbm.js";
92
+ import"./chunk-0awwmrwr.js";
93
+ import"./chunk-qnfx3qtx.js";
94
+ import {
95
+ execFileNoThrow,
96
+ init_execFileNoThrow
97
+ } from "./chunk-70eey1nh.js";
98
+ import"./chunk-1nk93fqz.js";
99
+ import {
100
+ getCwd,
101
+ init_cwd
102
+ } from "./chunk-s8kj6ajy.js";
103
+ import"./chunk-eenq3avg.js";
104
+ import"./chunk-7mqab3z7.js";
105
+ import"./chunk-5z28bqne.js";
106
+ import"./chunk-qajrkk97.js";
107
+ import"./chunk-phd1qfpc.js";
108
+ import"./chunk-fbv4apne.js";
109
+ import"./chunk-jaaxk89e.js";
110
+ import"./chunk-k8vp0atq.js";
111
+ import"./chunk-vf612n57.js";
112
+ import"./chunk-07069jq1.js";
113
+ import"./chunk-d4mdda98.js";
114
+ import"./chunk-55raexh7.js";
115
+ import"./chunk-v9smspw2.js";
116
+ import"./chunk-v1kzp02e.js";
117
+ import"./chunk-7wm5s02e.js";
118
+ import"./chunk-b0kf00ff.js";
119
+ import"./chunk-netzwgv1.js";
120
+ import {
121
+ __esm,
122
+ __toESM
123
+ } from "./chunk-qp2qdcda.js";
124
+
125
+ // src/components/IdeAutoConnectDialog.tsx
126
+ function IdeAutoConnectDialog({
127
+ onComplete
128
+ }) {
129
+ const handleSelect = import_react.useCallback(async (value) => {
130
+ const autoConnect = value === "yes";
131
+ saveGlobalConfig((current) => ({
132
+ ...current,
133
+ autoConnectIde: autoConnect,
134
+ hasIdeAutoConnectDialogBeenShown: true
135
+ }));
136
+ onComplete();
137
+ }, [onComplete]);
138
+ const options = [
139
+ { label: "Yes", value: "yes" },
140
+ { label: "No", value: "no" }
141
+ ];
142
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Dialog, {
143
+ title: "Do you wish to enable auto-connect to IDE?",
144
+ color: "ide",
145
+ onCancel: onComplete,
146
+ children: [
147
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Select, {
148
+ options,
149
+ onChange: handleSelect,
150
+ defaultValue: "yes"
151
+ }, undefined, false, undefined, this),
152
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
153
+ dimColor: true,
154
+ children: "You can also configure this in /config or with the --ide flag"
155
+ }, undefined, false, undefined, this)
156
+ ]
157
+ }, undefined, true, undefined, this);
158
+ }
159
+ function shouldShowAutoConnectDialog() {
160
+ const config = getGlobalConfig();
161
+ return !isSupportedTerminal() && config.autoConnectIde !== true && config.hasIdeAutoConnectDialogBeenShown !== true;
162
+ }
163
+ function IdeDisableAutoConnectDialog({
164
+ onComplete
165
+ }) {
166
+ const handleSelect = import_react.useCallback((value) => {
167
+ const disableAutoConnect = value === "yes";
168
+ if (disableAutoConnect) {
169
+ saveGlobalConfig((current) => ({
170
+ ...current,
171
+ autoConnectIde: false
172
+ }));
173
+ }
174
+ onComplete(disableAutoConnect);
175
+ }, [onComplete]);
176
+ const handleCancel = import_react.useCallback(() => {
177
+ onComplete(false);
178
+ }, [onComplete]);
179
+ const options = [
180
+ { label: "No", value: "no" },
181
+ { label: "Yes", value: "yes" }
182
+ ];
183
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Dialog, {
184
+ title: "Do you wish to disable auto-connect to IDE?",
185
+ subtitle: "You can also configure this in /config",
186
+ onCancel: handleCancel,
187
+ color: "ide",
188
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Select, {
189
+ options,
190
+ onChange: handleSelect,
191
+ defaultValue: "no"
192
+ }, undefined, false, undefined, this)
193
+ }, undefined, false, undefined, this);
194
+ }
195
+ function shouldShowDisableAutoConnectDialog() {
196
+ const config = getGlobalConfig();
197
+ return !isSupportedTerminal() && config.autoConnectIde === true;
198
+ }
199
+ var import_react, jsx_dev_runtime;
200
+ var init_IdeAutoConnectDialog = __esm(() => {
201
+ init_src();
202
+ init_config();
203
+ init_ide();
204
+ init_CustomSelect();
205
+ import_react = __toESM(require_react(), 1);
206
+ jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
207
+ });
208
+
209
+ // src/commands/ide/ide.tsx
210
+ import * as path from "path";
211
+ function IDEScreen({
212
+ availableIDEs,
213
+ unavailableIDEs,
214
+ selectedIDE,
215
+ onClose,
216
+ onSelect
217
+ }) {
218
+ const [selectedValue, setSelectedValue] = import_react2.useState(selectedIDE?.port?.toString() ?? "None");
219
+ const [showAutoConnectDialog, setShowAutoConnectDialog] = import_react2.useState(false);
220
+ const [showDisableAutoConnectDialog, setShowDisableAutoConnectDialog] = import_react2.useState(false);
221
+ const handleSelectIDE = import_react2.useCallback((value) => {
222
+ if (value !== "None" && shouldShowAutoConnectDialog()) {
223
+ setShowAutoConnectDialog(true);
224
+ } else if (value === "None" && shouldShowDisableAutoConnectDialog()) {
225
+ setShowDisableAutoConnectDialog(true);
226
+ } else {
227
+ onSelect(availableIDEs.find((ide) => ide.port === parseInt(value)));
228
+ }
229
+ }, [availableIDEs, onSelect]);
230
+ const ideCounts = availableIDEs.reduce((acc, ide) => {
231
+ acc[ide.name] = (acc[ide.name] || 0) + 1;
232
+ return acc;
233
+ }, {});
234
+ const options = availableIDEs.map((ide) => {
235
+ const hasMultipleInstances = (ideCounts[ide.name] || 0) > 1;
236
+ const showWorkspace = hasMultipleInstances && ide.workspaceFolders.length > 0;
237
+ return {
238
+ label: ide.name,
239
+ value: ide.port.toString(),
240
+ description: showWorkspace ? formatWorkspaceFolders(ide.workspaceFolders) : undefined
241
+ };
242
+ }).concat([{ label: "None", value: "None", description: undefined }]);
243
+ if (showAutoConnectDialog) {
244
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(IdeAutoConnectDialog, {
245
+ onComplete: () => handleSelectIDE(selectedValue)
246
+ }, undefined, false, undefined, this);
247
+ }
248
+ if (showDisableAutoConnectDialog) {
249
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(IdeDisableAutoConnectDialog, {
250
+ onComplete: () => {
251
+ onSelect(undefined);
252
+ }
253
+ }, undefined, false, undefined, this);
254
+ }
255
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Dialog, {
256
+ title: "Select IDE",
257
+ subtitle: "Connect to an IDE for integrated development features.",
258
+ onCancel: onClose,
259
+ color: "ide",
260
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
261
+ flexDirection: "column",
262
+ children: [
263
+ availableIDEs.length === 0 && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
264
+ dimColor: true,
265
+ children: isSupportedJetBrainsTerminal() ? `No available IDEs detected. Please install the plugin and restart your IDE:
266
+ ` + "https://docs.claude.com/s/claude-code-jetbrains" : "No available IDEs detected. Make sure your IDE has the Claude Code extension or plugin installed and is running."
267
+ }, undefined, false, undefined, this),
268
+ availableIDEs.length !== 0 && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Select, {
269
+ defaultValue: selectedValue,
270
+ defaultFocusValue: selectedValue,
271
+ options,
272
+ onChange: (value) => {
273
+ setSelectedValue(value);
274
+ handleSelectIDE(value);
275
+ }
276
+ }, undefined, false, undefined, this),
277
+ availableIDEs.length !== 0 && availableIDEs.some((ide) => ide.name === "VS Code" || ide.name === "Visual Studio Code") && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
278
+ marginTop: 1,
279
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
280
+ color: "warning",
281
+ children: "Note: Only one Claude Code instance can be connected to VS Code at a time."
282
+ }, undefined, false, undefined, this)
283
+ }, undefined, false, undefined, this),
284
+ availableIDEs.length !== 0 && !isSupportedTerminal() && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
285
+ marginTop: 1,
286
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
287
+ dimColor: true,
288
+ children: "Tip: You can enable auto-connect to IDE in /config or with the --ide flag"
289
+ }, undefined, false, undefined, this)
290
+ }, undefined, false, undefined, this),
291
+ unavailableIDEs.length > 0 && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
292
+ marginTop: 1,
293
+ flexDirection: "column",
294
+ children: [
295
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
296
+ dimColor: true,
297
+ children: [
298
+ "Found ",
299
+ unavailableIDEs.length,
300
+ " other running IDE(s). However, their workspace/project directories do not match the current cwd."
301
+ ]
302
+ }, undefined, true, undefined, this),
303
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
304
+ marginTop: 1,
305
+ flexDirection: "column",
306
+ children: unavailableIDEs.map((ide, index) => /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
307
+ paddingLeft: 3,
308
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
309
+ dimColor: true,
310
+ children: [
311
+ "\u2022 ",
312
+ ide.name,
313
+ ": ",
314
+ formatWorkspaceFolders(ide.workspaceFolders)
315
+ ]
316
+ }, undefined, true, undefined, this)
317
+ }, index, false, undefined, this))
318
+ }, undefined, false, undefined, this)
319
+ ]
320
+ }, undefined, true, undefined, this)
321
+ ]
322
+ }, undefined, true, undefined, this)
323
+ }, undefined, false, undefined, this);
324
+ }
325
+ async function findCurrentIDE(availableIDEs, dynamicMcpConfig) {
326
+ const currentConfig = dynamicMcpConfig?.ide;
327
+ if (!currentConfig || currentConfig.type !== "sse-ide" && currentConfig.type !== "ws-ide") {
328
+ return null;
329
+ }
330
+ for (const ide of availableIDEs) {
331
+ if (ide.url === currentConfig.url) {
332
+ return ide;
333
+ }
334
+ }
335
+ return null;
336
+ }
337
+ function IDEOpenSelection({
338
+ availableIDEs,
339
+ onSelectIDE,
340
+ onDone
341
+ }) {
342
+ const [selectedValue, setSelectedValue] = import_react2.useState(availableIDEs[0]?.port?.toString() ?? "");
343
+ const handleSelectIDE = import_react2.useCallback((value) => {
344
+ const selectedIDE = availableIDEs.find((ide) => ide.port === parseInt(value));
345
+ onSelectIDE(selectedIDE);
346
+ }, [availableIDEs, onSelectIDE]);
347
+ const options = availableIDEs.map((ide) => ({
348
+ label: ide.name,
349
+ value: ide.port.toString()
350
+ }));
351
+ function handleCancel() {
352
+ onDone("IDE selection cancelled", { display: "system" });
353
+ }
354
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Dialog, {
355
+ title: "Select an IDE to open the project",
356
+ onCancel: handleCancel,
357
+ color: "ide",
358
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Select, {
359
+ defaultValue: selectedValue,
360
+ defaultFocusValue: selectedValue,
361
+ options,
362
+ onChange: (value) => {
363
+ setSelectedValue(value);
364
+ handleSelectIDE(value);
365
+ }
366
+ }, undefined, false, undefined, this)
367
+ }, undefined, false, undefined, this);
368
+ }
369
+ function RunningIDESelector({
370
+ runningIDEs,
371
+ onSelectIDE,
372
+ onDone
373
+ }) {
374
+ const [selectedValue, setSelectedValue] = import_react2.useState(runningIDEs[0] ?? "");
375
+ const handleSelectIDE = import_react2.useCallback((value) => {
376
+ onSelectIDE(value);
377
+ }, [onSelectIDE]);
378
+ const options = runningIDEs.map((ide) => ({
379
+ label: toIDEDisplayName(ide),
380
+ value: ide
381
+ }));
382
+ function handleCancel() {
383
+ onDone("IDE selection cancelled", { display: "system" });
384
+ }
385
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Dialog, {
386
+ title: "Select IDE to install extension",
387
+ onCancel: handleCancel,
388
+ color: "ide",
389
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Select, {
390
+ defaultFocusValue: selectedValue,
391
+ options,
392
+ onChange: (value) => {
393
+ setSelectedValue(value);
394
+ handleSelectIDE(value);
395
+ }
396
+ }, undefined, false, undefined, this)
397
+ }, undefined, false, undefined, this);
398
+ }
399
+ function InstallOnMount({
400
+ ide,
401
+ onInstall
402
+ }) {
403
+ import_react2.useEffect(() => {
404
+ onInstall(ide);
405
+ }, [ide, onInstall]);
406
+ return null;
407
+ }
408
+ async function call(onDone, context, args) {
409
+ logEvent("tengu_ext_ide_command", {});
410
+ const {
411
+ options: { dynamicMcpConfig },
412
+ onChangeDynamicMcpConfig
413
+ } = context;
414
+ if (args?.trim() === "open") {
415
+ const worktreeSession = getCurrentWorktreeSession();
416
+ const targetPath = worktreeSession ? worktreeSession.worktreePath : getCwd();
417
+ const detectedIDEs2 = await detectIDEs(true);
418
+ const availableIDEs2 = detectedIDEs2.filter((ide) => ide.isValid);
419
+ if (availableIDEs2.length === 0) {
420
+ onDone("No IDEs with Claude Code extension detected.");
421
+ return null;
422
+ }
423
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(IDEOpenSelection, {
424
+ availableIDEs: availableIDEs2,
425
+ onSelectIDE: async (selectedIDE) => {
426
+ if (!selectedIDE) {
427
+ onDone("No IDE selected.");
428
+ return;
429
+ }
430
+ if (selectedIDE.name.toLowerCase().includes("vscode") || selectedIDE.name.toLowerCase().includes("cursor") || selectedIDE.name.toLowerCase().includes("windsurf")) {
431
+ const { code } = await execFileNoThrow("code", [targetPath]);
432
+ if (code === 0) {
433
+ onDone(`Opened ${worktreeSession ? "worktree" : "project"} in ${source_default.bold(selectedIDE.name)}`);
434
+ } else {
435
+ onDone(`Failed to open in ${selectedIDE.name}. Try opening manually: ${targetPath}`);
436
+ }
437
+ } else if (isSupportedJetBrainsTerminal()) {
438
+ onDone(`Please open the ${worktreeSession ? "worktree" : "project"} manually in ${source_default.bold(selectedIDE.name)}: ${targetPath}`);
439
+ } else {
440
+ onDone(`Please open the ${worktreeSession ? "worktree" : "project"} manually in ${source_default.bold(selectedIDE.name)}: ${targetPath}`);
441
+ }
442
+ },
443
+ onDone: () => {
444
+ onDone("Exited without opening IDE", { display: "system" });
445
+ }
446
+ }, undefined, false, undefined, this);
447
+ }
448
+ const detectedIDEs = await detectIDEs(true);
449
+ if (detectedIDEs.length === 0 && context.onInstallIDEExtension && !isSupportedTerminal()) {
450
+ const runningIDEs = await detectRunningIDEs();
451
+ const onInstall = (ide) => {
452
+ if (context.onInstallIDEExtension) {
453
+ context.onInstallIDEExtension(ide);
454
+ if (isJetBrainsIde(ide)) {
455
+ onDone(`Installed plugin to ${source_default.bold(toIDEDisplayName(ide))}
456
+ ` + `Please ${source_default.bold("restart your IDE")} completely for it to take effect`);
457
+ } else {
458
+ onDone(`Installed extension to ${source_default.bold(toIDEDisplayName(ide))}`);
459
+ }
460
+ }
461
+ };
462
+ if (runningIDEs.length > 1) {
463
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(RunningIDESelector, {
464
+ runningIDEs,
465
+ onSelectIDE: onInstall,
466
+ onDone: () => {
467
+ onDone("No IDE selected.", { display: "system" });
468
+ }
469
+ }, undefined, false, undefined, this);
470
+ } else if (runningIDEs.length === 1) {
471
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(InstallOnMount, {
472
+ ide: runningIDEs[0],
473
+ onInstall
474
+ }, undefined, false, undefined, this);
475
+ }
476
+ }
477
+ const availableIDEs = detectedIDEs.filter((ide) => ide.isValid);
478
+ const unavailableIDEs = detectedIDEs.filter((ide) => !ide.isValid);
479
+ const currentIDE = await findCurrentIDE(availableIDEs, dynamicMcpConfig);
480
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(IDECommandFlow, {
481
+ availableIDEs,
482
+ unavailableIDEs,
483
+ currentIDE,
484
+ dynamicMcpConfig,
485
+ onChangeDynamicMcpConfig,
486
+ onDone
487
+ }, undefined, false, undefined, this);
488
+ }
489
+ function IDECommandFlow({
490
+ availableIDEs,
491
+ unavailableIDEs,
492
+ currentIDE,
493
+ dynamicMcpConfig,
494
+ onChangeDynamicMcpConfig,
495
+ onDone
496
+ }) {
497
+ const [connectingIDE, setConnectingIDE] = import_react2.useState(null);
498
+ const ideClient = useAppState((s) => s.mcp.clients.find((c) => c.name === "ide"));
499
+ const setAppState = useSetAppState();
500
+ const isFirstCheckRef = import_react2.useRef(true);
501
+ import_react2.useEffect(() => {
502
+ if (!connectingIDE)
503
+ return;
504
+ if (isFirstCheckRef.current) {
505
+ isFirstCheckRef.current = false;
506
+ return;
507
+ }
508
+ if (!ideClient || ideClient.type === "pending")
509
+ return;
510
+ if (ideClient.type === "connected") {
511
+ onDone(`Connected to ${connectingIDE.name}.`);
512
+ } else if (ideClient.type === "failed") {
513
+ onDone(`Failed to connect to ${connectingIDE.name}.`);
514
+ }
515
+ }, [ideClient, connectingIDE, onDone]);
516
+ import_react2.useEffect(() => {
517
+ if (!connectingIDE)
518
+ return;
519
+ const timer = setTimeout(onDone, IDE_CONNECTION_TIMEOUT_MS, `Connection to ${connectingIDE.name} timed out.`);
520
+ return () => clearTimeout(timer);
521
+ }, [connectingIDE, onDone]);
522
+ const handleSelectIDE = import_react2.useCallback((selectedIDE) => {
523
+ if (!onChangeDynamicMcpConfig) {
524
+ onDone("Error connecting to IDE.");
525
+ return;
526
+ }
527
+ const newConfig = { ...dynamicMcpConfig || {} };
528
+ if (currentIDE) {
529
+ delete newConfig.ide;
530
+ }
531
+ if (!selectedIDE) {
532
+ if (ideClient && ideClient.type === "connected" && currentIDE) {
533
+ ideClient.client.onclose = () => {};
534
+ clearServerCache("ide", ideClient.config);
535
+ setAppState((prev) => ({
536
+ ...prev,
537
+ mcp: {
538
+ ...prev.mcp,
539
+ clients: prev.mcp.clients.filter((c) => c.name !== "ide"),
540
+ tools: prev.mcp.tools.filter((t) => !t.name?.startsWith("mcp__ide__")),
541
+ commands: prev.mcp.commands.filter((c) => !c.name?.startsWith("mcp__ide__"))
542
+ }
543
+ }));
544
+ }
545
+ onChangeDynamicMcpConfig(newConfig);
546
+ onDone(currentIDE ? `Disconnected from ${currentIDE.name}.` : "No IDE selected.");
547
+ return;
548
+ }
549
+ const url = selectedIDE.url;
550
+ newConfig.ide = {
551
+ type: url.startsWith("ws:") ? "ws-ide" : "sse-ide",
552
+ url,
553
+ ideName: selectedIDE.name,
554
+ authToken: selectedIDE.authToken,
555
+ ideRunningInWindows: selectedIDE.ideRunningInWindows,
556
+ scope: "dynamic"
557
+ };
558
+ isFirstCheckRef.current = true;
559
+ setConnectingIDE(selectedIDE);
560
+ onChangeDynamicMcpConfig(newConfig);
561
+ }, [
562
+ dynamicMcpConfig,
563
+ currentIDE,
564
+ ideClient,
565
+ setAppState,
566
+ onChangeDynamicMcpConfig,
567
+ onDone
568
+ ]);
569
+ if (connectingIDE) {
570
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
571
+ dimColor: true,
572
+ children: [
573
+ "Connecting to ",
574
+ connectingIDE.name,
575
+ "\u2026"
576
+ ]
577
+ }, undefined, true, undefined, this);
578
+ }
579
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(IDEScreen, {
580
+ availableIDEs,
581
+ unavailableIDEs,
582
+ selectedIDE: currentIDE,
583
+ onClose: () => onDone("IDE selection cancelled", { display: "system" }),
584
+ onSelect: handleSelectIDE
585
+ }, undefined, false, undefined, this);
586
+ }
587
+ function formatWorkspaceFolders(folders, maxLength = 100) {
588
+ if (folders.length === 0)
589
+ return "";
590
+ const cwd = getCwd();
591
+ const foldersToShow = folders.slice(0, 2);
592
+ const hasMore = folders.length > 2;
593
+ const ellipsisOverhead = hasMore ? 3 : 0;
594
+ const separatorOverhead = (foldersToShow.length - 1) * 2;
595
+ const availableLength = maxLength - separatorOverhead - ellipsisOverhead;
596
+ const maxLengthPerPath = Math.floor(availableLength / foldersToShow.length);
597
+ const cwdNFC = cwd.normalize("NFC");
598
+ const formattedFolders = foldersToShow.map((folder) => {
599
+ const folderNFC = folder.normalize("NFC");
600
+ if (folderNFC.startsWith(cwdNFC + path.sep)) {
601
+ folder = folderNFC.slice(cwdNFC.length + 1);
602
+ }
603
+ if (folder.length <= maxLengthPerPath) {
604
+ return folder;
605
+ }
606
+ return "\u2026" + folder.slice(-(maxLengthPerPath - 1));
607
+ });
608
+ let result = formattedFolders.join(", ");
609
+ if (hasMore) {
610
+ result += ", \u2026";
611
+ }
612
+ return result;
613
+ }
614
+ var import_react2, jsx_dev_runtime2, IDE_CONNECTION_TIMEOUT_MS = 35000;
615
+ var init_ide2 = __esm(() => {
616
+ init_source();
617
+ init_analytics();
618
+ init_CustomSelect();
619
+ init_src();
620
+ init_IdeAutoConnectDialog();
621
+ init_src();
622
+ init_client();
623
+ init_AppState();
624
+ init_cwd();
625
+ init_execFileNoThrow();
626
+ init_ide();
627
+ init_worktree();
628
+ import_react2 = __toESM(require_react(), 1);
629
+ jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
630
+ });
631
+ init_ide2();
632
+
633
+ export {
634
+ formatWorkspaceFolders,
635
+ call
636
+ };