@zyycn/claudex 1.0.3-fork.2a74621

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 (450) hide show
  1. package/LICENSE.md +5 -0
  2. package/README.md +489 -0
  3. package/bin/claudex.js +40 -0
  4. package/dist/chunk-00xcm9ma.js +21933 -0
  5. package/dist/chunk-0503mmvy.js +153 -0
  6. package/dist/chunk-06saje2v.js +39 -0
  7. package/dist/chunk-0731m51q.js +8 -0
  8. package/dist/chunk-0htr6ryz.js +208 -0
  9. package/dist/chunk-0hw5q246.js +59 -0
  10. package/dist/chunk-0na45fm9.js +93 -0
  11. package/dist/chunk-0paqc2yw.js +15 -0
  12. package/dist/chunk-0q2xkmse.js +58 -0
  13. package/dist/chunk-0rvxx6st.js +195 -0
  14. package/dist/chunk-0vkfrmqm.js +690 -0
  15. package/dist/chunk-0xjaqda8.js +1124 -0
  16. package/dist/chunk-0xpb84zw.js +105 -0
  17. package/dist/chunk-1141xmr4.js +8 -0
  18. package/dist/chunk-14jv3jm7.js +17 -0
  19. package/dist/chunk-19vtvtzg.js +496 -0
  20. package/dist/chunk-1cbn5kxf.js +7 -0
  21. package/dist/chunk-1gj0rhkf.js +92 -0
  22. package/dist/chunk-1h2famwb.js +49 -0
  23. package/dist/chunk-1m68rrvt.js +173649 -0
  24. package/dist/chunk-1ss7dnmq.js +104 -0
  25. package/dist/chunk-1v6e40p8.js +160 -0
  26. package/dist/chunk-1vh98qr0.js +4521 -0
  27. package/dist/chunk-1xkekb9y.js +19 -0
  28. package/dist/chunk-1ydzf04y.js +713 -0
  29. package/dist/chunk-238g70xa.js +36 -0
  30. package/dist/chunk-27xc1csx.js +104 -0
  31. package/dist/chunk-297y1tw3.js +789 -0
  32. package/dist/chunk-2a42s11t.js +412 -0
  33. package/dist/chunk-2bpfbf16.js +998 -0
  34. package/dist/chunk-2eykm0j0.js +20 -0
  35. package/dist/chunk-2fwze72g.js +24 -0
  36. package/dist/chunk-2ge9kmgv.js +28 -0
  37. package/dist/chunk-2gzv8nrw.js +205 -0
  38. package/dist/chunk-2k995y2x.js +880 -0
  39. package/dist/chunk-2nayx6q1.js +63 -0
  40. package/dist/chunk-2qk1898r.js +74 -0
  41. package/dist/chunk-2qp0vrvd.js +83 -0
  42. package/dist/chunk-2sndq2nq.js +644 -0
  43. package/dist/chunk-2t1frg13.js +716 -0
  44. package/dist/chunk-2t3vw4tx.js +22820 -0
  45. package/dist/chunk-2ybjg7pc.js +432 -0
  46. package/dist/chunk-302gxdf9.js +161 -0
  47. package/dist/chunk-30rst83v.js +168 -0
  48. package/dist/chunk-33mdt86j.js +42 -0
  49. package/dist/chunk-33pgf56v.js +32 -0
  50. package/dist/chunk-36k7h1v1.js +372 -0
  51. package/dist/chunk-36zyyac9.js +41654 -0
  52. package/dist/chunk-37dbhqqr.js +1920 -0
  53. package/dist/chunk-37dydh7h.js +642 -0
  54. package/dist/chunk-38700exh.js +42 -0
  55. package/dist/chunk-3c25bcsw.js +17 -0
  56. package/dist/chunk-3h8a89gy.js +46 -0
  57. package/dist/chunk-3nk79af8.js +8 -0
  58. package/dist/chunk-3peatsdv.js +41 -0
  59. package/dist/chunk-3rd46sc5.js +221 -0
  60. package/dist/chunk-3s498jy8.js +1014 -0
  61. package/dist/chunk-3vs3nm7w.js +31 -0
  62. package/dist/chunk-3w6s9m5w.js +16 -0
  63. package/dist/chunk-3yccyqwm.js +692 -0
  64. package/dist/chunk-3zjjk0am.js +56 -0
  65. package/dist/chunk-3zzszjst.js +16415 -0
  66. package/dist/chunk-41m5za5y.js +154 -0
  67. package/dist/chunk-44fpr6jq.js +434 -0
  68. package/dist/chunk-48gwzq50.js +154 -0
  69. package/dist/chunk-495d85x1.js +8066 -0
  70. package/dist/chunk-4cse1nz6.js +98 -0
  71. package/dist/chunk-4f1wn74p.js +106 -0
  72. package/dist/chunk-4f9taz3j.js +86 -0
  73. package/dist/chunk-4g3v8y12.js +23 -0
  74. package/dist/chunk-4hh97qpv.js +765 -0
  75. package/dist/chunk-4jm600zv.js +13 -0
  76. package/dist/chunk-4jzv26gg.js +62 -0
  77. package/dist/chunk-4qgbmcm7.js +9193 -0
  78. package/dist/chunk-4qz9vbs1.js +349 -0
  79. package/dist/chunk-4tyttyn2.js +373 -0
  80. package/dist/chunk-4v0qvahs.js +89 -0
  81. package/dist/chunk-4zfkzkt6.js +37 -0
  82. package/dist/chunk-51xw8dbm.js +339 -0
  83. package/dist/chunk-525vnqc3.js +247 -0
  84. package/dist/chunk-557wwsxe.js +533 -0
  85. package/dist/chunk-55hj5hhv.js +84 -0
  86. package/dist/chunk-55wgxwa9.js +13877 -0
  87. package/dist/chunk-56jgazae.js +28 -0
  88. package/dist/chunk-58xxf3tz.js +521 -0
  89. package/dist/chunk-5c2m9q8v.js +109 -0
  90. package/dist/chunk-5fpcmgh8.js +348 -0
  91. package/dist/chunk-5gmd05y0.js +1153 -0
  92. package/dist/chunk-5gvng4zv.js +122 -0
  93. package/dist/chunk-5k5a32tj.js +537 -0
  94. package/dist/chunk-5md3w36r.js +275 -0
  95. package/dist/chunk-5z1vph5s.js +127 -0
  96. package/dist/chunk-5z78246t.js +54 -0
  97. package/dist/chunk-65s8h28p.js +123 -0
  98. package/dist/chunk-66qbb491.js +90 -0
  99. package/dist/chunk-693w4qr8.js +300 -0
  100. package/dist/chunk-6azerawy.js +2335 -0
  101. package/dist/chunk-6bd8brc4.js +48 -0
  102. package/dist/chunk-6d8k2crm.js +101 -0
  103. package/dist/chunk-6dj5t602.js +341 -0
  104. package/dist/chunk-6em0h8b4.js +88 -0
  105. package/dist/chunk-6gr3c3w9.js +378 -0
  106. package/dist/chunk-6gzakvec.js +87 -0
  107. package/dist/chunk-6hy71770.js +96 -0
  108. package/dist/chunk-6mtk8975.js +117 -0
  109. package/dist/chunk-6n2qgm9v.js +8 -0
  110. package/dist/chunk-6n7gewz2.js +253 -0
  111. package/dist/chunk-6r1112vx.js +469 -0
  112. package/dist/chunk-6r9v2rce.js +229 -0
  113. package/dist/chunk-6tq2v3rk.js +186 -0
  114. package/dist/chunk-70spdapk.js +79 -0
  115. package/dist/chunk-73rpbt04.js +1947 -0
  116. package/dist/chunk-760252na.js +101 -0
  117. package/dist/chunk-761tmgwx.js +6108 -0
  118. package/dist/chunk-76dy674m.js +648 -0
  119. package/dist/chunk-7739pg2c.js +4261 -0
  120. package/dist/chunk-78cznbzh.js +756 -0
  121. package/dist/chunk-78vqjj7t.js +1317 -0
  122. package/dist/chunk-79tame2q.js +280 -0
  123. package/dist/chunk-7aw745vx.js +40175 -0
  124. package/dist/chunk-7e6ahfxz.js +61 -0
  125. package/dist/chunk-7gd593wb.js +438 -0
  126. package/dist/chunk-7m2nd8da.js +110 -0
  127. package/dist/chunk-7pqesh1s.js +184 -0
  128. package/dist/chunk-7q237ftq.js +1585 -0
  129. package/dist/chunk-7vbxp63m.js +100 -0
  130. package/dist/chunk-7wm5s02e.js +216 -0
  131. package/dist/chunk-7xyswgjh.js +8 -0
  132. package/dist/chunk-7zaxrfnt.js +42 -0
  133. package/dist/chunk-83hfzbx3.js +10 -0
  134. package/dist/chunk-8bedvdm1.js +32 -0
  135. package/dist/chunk-8hq5kk3y.js +44 -0
  136. package/dist/chunk-8k0y8sk2.js +165 -0
  137. package/dist/chunk-8pb038eb.js +44 -0
  138. package/dist/chunk-8smr33wf.js +287 -0
  139. package/dist/chunk-8tnsngw2.js +31 -0
  140. package/dist/chunk-8vcz9eks.js +443 -0
  141. package/dist/chunk-8y12jxg8.js +10 -0
  142. package/dist/chunk-8ymf4e6z.js +48 -0
  143. package/dist/chunk-90wp6wez.js +10510 -0
  144. package/dist/chunk-9f9p2b84.js +848 -0
  145. package/dist/chunk-9gbamk79.js +93 -0
  146. package/dist/chunk-9k27xdmg.js +542 -0
  147. package/dist/chunk-9k2drwej.js +106 -0
  148. package/dist/chunk-9x5zgy22.js +12 -0
  149. package/dist/chunk-a5wwqn08.js +725 -0
  150. package/dist/chunk-a8ejc632.js +3094 -0
  151. package/dist/chunk-a9nr12c7.js +272 -0
  152. package/dist/chunk-a9vdeb6y.js +258 -0
  153. package/dist/chunk-a9zh40sj.js +48 -0
  154. package/dist/chunk-aberf6bd.js +282 -0
  155. package/dist/chunk-ada32h8c.js +40 -0
  156. package/dist/chunk-adg4351g.js +26840 -0
  157. package/dist/chunk-ae7s1rks.js +93 -0
  158. package/dist/chunk-agnasrp3.js +128 -0
  159. package/dist/chunk-akp4x1ve.js +93 -0
  160. package/dist/chunk-akyzxxs1.js +109 -0
  161. package/dist/chunk-ar08wx1s.js +468 -0
  162. package/dist/chunk-ar1vk71q.js +220 -0
  163. package/dist/chunk-arnhbg3z.js +87 -0
  164. package/dist/chunk-azk47w50.js +306 -0
  165. package/dist/chunk-b11e166f.js +173 -0
  166. package/dist/chunk-b292a9es.js +91 -0
  167. package/dist/chunk-b4v0varz.js +89 -0
  168. package/dist/chunk-b4wg70y1.js +54 -0
  169. package/dist/chunk-b75fzr8e.js +969 -0
  170. package/dist/chunk-b7cywkg9.js +908 -0
  171. package/dist/chunk-b80rg7hy.js +565 -0
  172. package/dist/chunk-b8x1gk3y.js +1299 -0
  173. package/dist/chunk-b9kme9pv.js +38 -0
  174. package/dist/chunk-bah68pmm.js +47 -0
  175. package/dist/chunk-bbxjktbd.js +69 -0
  176. package/dist/chunk-bc035ncb.js +153 -0
  177. package/dist/chunk-bedw0ft1.js +198 -0
  178. package/dist/chunk-bjqw6798.js +328 -0
  179. package/dist/chunk-bm1qb16p.js +17 -0
  180. package/dist/chunk-bqfnp99q.js +477 -0
  181. package/dist/chunk-bvp4dgm4.js +182 -0
  182. package/dist/chunk-c1k5g6t4.js +115 -0
  183. package/dist/chunk-c3r27fmp.js +73 -0
  184. package/dist/chunk-c9xk7hme.js +106 -0
  185. package/dist/chunk-cd155fv3.js +87 -0
  186. package/dist/chunk-cdz5yb0r.js +57 -0
  187. package/dist/chunk-cfv996bs.js +22 -0
  188. package/dist/chunk-cg606wr4.js +110 -0
  189. package/dist/chunk-cgfdkzhb.js +12 -0
  190. package/dist/chunk-chy5zbax.js +701 -0
  191. package/dist/chunk-ctkn4y2r.js +317 -0
  192. package/dist/chunk-czensfac.js +476 -0
  193. package/dist/chunk-d28x64s9.js +38 -0
  194. package/dist/chunk-d9kz373t.js +122 -0
  195. package/dist/chunk-dgqrcy74.js +48 -0
  196. package/dist/chunk-dnh7jtpb.js +37 -0
  197. package/dist/chunk-dnqqes3z.js +216 -0
  198. package/dist/chunk-dphmfzrv.js +250 -0
  199. package/dist/chunk-drzegvt5.js +86 -0
  200. package/dist/chunk-ds5nkfg0.js +1095 -0
  201. package/dist/chunk-dsf70j2y.js +1550 -0
  202. package/dist/chunk-dstxhxsx.js +121 -0
  203. package/dist/chunk-dv1wfr85.js +6373 -0
  204. package/dist/chunk-dxfhv5da.js +500 -0
  205. package/dist/chunk-e5pntxye.js +37 -0
  206. package/dist/chunk-e6q1y5gb.js +419 -0
  207. package/dist/chunk-e8bd8nfv.js +697 -0
  208. package/dist/chunk-e8d2zjs1.js +338 -0
  209. package/dist/chunk-e9aevcts.js +87 -0
  210. package/dist/chunk-eebcvtbb.js +1646 -0
  211. package/dist/chunk-egmp9ajp.js +144 -0
  212. package/dist/chunk-ehtwnxpg.js +1591 -0
  213. package/dist/chunk-eqp1rfft.js +17 -0
  214. package/dist/chunk-ewadzrm8.js +103 -0
  215. package/dist/chunk-eynjr6k5.js +169 -0
  216. package/dist/chunk-ezf1ppbj.js +208 -0
  217. package/dist/chunk-f4407gzr.js +129 -0
  218. package/dist/chunk-f5ma3nh5.js +3436 -0
  219. package/dist/chunk-fbpftpf0.js +69 -0
  220. package/dist/chunk-fbv4apne.js +51 -0
  221. package/dist/chunk-ffk6brrm.js +386 -0
  222. package/dist/chunk-fgebtwax.js +1872 -0
  223. package/dist/chunk-fkcn5zhs.js +40 -0
  224. package/dist/chunk-fm8gm3cm.js +120 -0
  225. package/dist/chunk-fw5ev6dp.js +458 -0
  226. package/dist/chunk-fyc5fepv.js +10 -0
  227. package/dist/chunk-fzj4am93.js +1493 -0
  228. package/dist/chunk-g0j0t6qk.js +26 -0
  229. package/dist/chunk-g338npwr.js +1061 -0
  230. package/dist/chunk-g3t0act8.js +8 -0
  231. package/dist/chunk-geyx5ybh.js +375 -0
  232. package/dist/chunk-gg3j3nv0.js +212 -0
  233. package/dist/chunk-gmaybtrd.js +726 -0
  234. package/dist/chunk-gqmkgbfr.js +256 -0
  235. package/dist/chunk-gv0tqhg0.js +118 -0
  236. package/dist/chunk-gyj242zr.js +20 -0
  237. package/dist/chunk-gz457zg6.js +463 -0
  238. package/dist/chunk-gzaaa3ex.js +166 -0
  239. package/dist/chunk-gzct9dkr.js +2057 -0
  240. package/dist/chunk-gzzfhtdv.js +7189 -0
  241. package/dist/chunk-h0qngp9w.js +157 -0
  242. package/dist/chunk-h0rbjg6x.js +55 -0
  243. package/dist/chunk-h4qh9a0e.js +3444 -0
  244. package/dist/chunk-hakdhagh.js +16606 -0
  245. package/dist/chunk-hazazgk5.js +3205 -0
  246. package/dist/chunk-hb7k1x8f.js +745 -0
  247. package/dist/chunk-hh7cmy4k.js +20 -0
  248. package/dist/chunk-hj4vr9dm.js +102 -0
  249. package/dist/chunk-hk90mbpv.js +3418 -0
  250. package/dist/chunk-hk9xz7gk.js +118 -0
  251. package/dist/chunk-hmtttwpt.js +132 -0
  252. package/dist/chunk-hqmz36b3.js +552 -0
  253. package/dist/chunk-hvm6gcy9.js +584 -0
  254. package/dist/chunk-hzhe8ygc.js +547 -0
  255. package/dist/chunk-j2k4p94p.js +55 -0
  256. package/dist/chunk-j2rbx1ej.js +96 -0
  257. package/dist/chunk-j3a4p81y.js +184 -0
  258. package/dist/chunk-j5hc27hv.js +444 -0
  259. package/dist/chunk-j64ga6ta.js +8035 -0
  260. package/dist/chunk-j84fcssx.js +54 -0
  261. package/dist/chunk-jce5r25x.js +18 -0
  262. package/dist/chunk-jd32zbps.js +15 -0
  263. package/dist/chunk-jdgeec04.js +4249 -0
  264. package/dist/chunk-jj0m6fr0.js +247 -0
  265. package/dist/chunk-jnhkref0.js +30 -0
  266. package/dist/chunk-jpp9dqv4.js +6956 -0
  267. package/dist/chunk-jr58a333.js +113 -0
  268. package/dist/chunk-jx817w05.js +11 -0
  269. package/dist/chunk-jxnvvps7.js +328 -0
  270. package/dist/chunk-jzmz18nn.js +65 -0
  271. package/dist/chunk-k0p9w03v.js +4957 -0
  272. package/dist/chunk-k2aj61ee.js +27 -0
  273. package/dist/chunk-kcv00nmk.js +849 -0
  274. package/dist/chunk-kecf7c6t.js +10476 -0
  275. package/dist/chunk-kffz0vxg.js +92 -0
  276. package/dist/chunk-kge53wbt.js +674 -0
  277. package/dist/chunk-khscb4ge.js +99 -0
  278. package/dist/chunk-kk4h10r3.js +3058 -0
  279. package/dist/chunk-kq0n3myz.js +71 -0
  280. package/dist/chunk-kwekc97v.js +18 -0
  281. package/dist/chunk-m44gmqd1.js +258 -0
  282. package/dist/chunk-m4kphr9e.js +71 -0
  283. package/dist/chunk-mbrkqdrq.js +155 -0
  284. package/dist/chunk-mt25echc.js +6157 -0
  285. package/dist/chunk-mvrpg273.js +89 -0
  286. package/dist/chunk-mzfgg9ne.js +275 -0
  287. package/dist/chunk-n0qaeaa5.js +256 -0
  288. package/dist/chunk-n0x2db3y.js +84 -0
  289. package/dist/chunk-n18sq04t.js +603 -0
  290. package/dist/chunk-n6qhan3n.js +243 -0
  291. package/dist/chunk-n7ttdtk0.js +641 -0
  292. package/dist/chunk-ncxetb9w.js +130 -0
  293. package/dist/chunk-ne67h2hc.js +277 -0
  294. package/dist/chunk-nfv508k1.js +306 -0
  295. package/dist/chunk-nj17bhkh.js +125 -0
  296. package/dist/chunk-nka1g8f4.js +773 -0
  297. package/dist/chunk-nma79c3w.js +281 -0
  298. package/dist/chunk-nq0fxyxh.js +752 -0
  299. package/dist/chunk-nt837qt9.js +21 -0
  300. package/dist/chunk-nwsmn6zm.js +15 -0
  301. package/dist/chunk-nypgx8vs.js +63 -0
  302. package/dist/chunk-p2816w9z.js +1486 -0
  303. package/dist/chunk-p2d5nh3g.js +342 -0
  304. package/dist/chunk-p331ghzg.js +391 -0
  305. package/dist/chunk-p3g43fdn.js +61 -0
  306. package/dist/chunk-p87jnvhk.js +97 -0
  307. package/dist/chunk-pb04jxp7.js +158 -0
  308. package/dist/chunk-pd6ph5ep.js +176 -0
  309. package/dist/chunk-pe0s50gj.js +32 -0
  310. package/dist/chunk-pe6w0anj.js +780 -0
  311. package/dist/chunk-ph936yc1.js +99 -0
  312. package/dist/chunk-pmsp9ed2.js +34 -0
  313. package/dist/chunk-ppwjyveh.js +8 -0
  314. package/dist/chunk-ps49ymvj.js +43 -0
  315. package/dist/chunk-pwwa7s62.js +11 -0
  316. package/dist/chunk-pxv7ggmm.js +1580 -0
  317. package/dist/chunk-py5y9jh1.js +38 -0
  318. package/dist/chunk-q0sq5qtt.js +606 -0
  319. package/dist/chunk-q1mq6fj3.js +118 -0
  320. package/dist/chunk-q25bjaev.js +15 -0
  321. package/dist/chunk-q55nn3jr.js +5018 -0
  322. package/dist/chunk-q6na5mcw.js +268 -0
  323. package/dist/chunk-q6wc9j6e.js +1556 -0
  324. package/dist/chunk-q7bxdsfd.js +22 -0
  325. package/dist/chunk-q82jz4qn.js +2838 -0
  326. package/dist/chunk-qbt1tq74.js +145 -0
  327. package/dist/chunk-qfzfjrk3.js +439 -0
  328. package/dist/chunk-qjg7a3vk.js +246 -0
  329. package/dist/chunk-qnfx3qtx.js +617 -0
  330. package/dist/chunk-qp2qdcda.js +100 -0
  331. package/dist/chunk-qpa4edje.js +95 -0
  332. package/dist/chunk-qqfa0dqg.js +2343 -0
  333. package/dist/chunk-qqfvrtr3.js +99 -0
  334. package/dist/chunk-qrqenkjd.js +140 -0
  335. package/dist/chunk-qrv8taxy.js +229 -0
  336. package/dist/chunk-qypqtrgp.js +176 -0
  337. package/dist/chunk-qywdhw43.js +89 -0
  338. package/dist/chunk-qz2x630m.js +49145 -0
  339. package/dist/chunk-r0v9bxma.js +83 -0
  340. package/dist/chunk-r6b58y3x.js +17 -0
  341. package/dist/chunk-r9madq2h.js +71 -0
  342. package/dist/chunk-raqgs410.js +116 -0
  343. package/dist/chunk-rc28tav4.js +202 -0
  344. package/dist/chunk-re1t10ba.js +5954 -0
  345. package/dist/chunk-res15ktd.js +18 -0
  346. package/dist/chunk-rkb7mqj8.js +603 -0
  347. package/dist/chunk-rn0v1hk8.js +34 -0
  348. package/dist/chunk-rrb8682q.js +120 -0
  349. package/dist/chunk-rs9gw711.js +115 -0
  350. package/dist/chunk-rtgznsee.js +43 -0
  351. package/dist/chunk-s2341895.js +24 -0
  352. package/dist/chunk-s2gr7ese.js +106 -0
  353. package/dist/chunk-s2t8vg8q.js +26 -0
  354. package/dist/chunk-s3pzvdss.js +50 -0
  355. package/dist/chunk-s56m7vrp.js +66 -0
  356. package/dist/chunk-s5dg9njs.js +826 -0
  357. package/dist/chunk-s7mpvz9v.js +811 -0
  358. package/dist/chunk-sbbj6ta3.js +1711 -0
  359. package/dist/chunk-sd36yzx8.js +954 -0
  360. package/dist/chunk-sdj9b9wh.js +782 -0
  361. package/dist/chunk-sdxgmmma.js +224 -0
  362. package/dist/chunk-sgrc7rmx.js +471 -0
  363. package/dist/chunk-shb6nvk6.js +27 -0
  364. package/dist/chunk-smtr0ngp.js +98 -0
  365. package/dist/chunk-sn55zm52.js +267 -0
  366. package/dist/chunk-ss4r21gw.js +61 -0
  367. package/dist/chunk-sv3cz176.js +400 -0
  368. package/dist/chunk-sy4rdq5h.js +116 -0
  369. package/dist/chunk-szj5wvdy.js +28 -0
  370. package/dist/chunk-t0rgmccj.js +39 -0
  371. package/dist/chunk-t133w5tm.js +298 -0
  372. package/dist/chunk-t3360k46.js +75 -0
  373. package/dist/chunk-tdbpneze.js +346 -0
  374. package/dist/chunk-tjk56vh8.js +81 -0
  375. package/dist/chunk-tm5bn7aw.js +266 -0
  376. package/dist/chunk-ts2p6bv1.js +224 -0
  377. package/dist/chunk-ttk5dzz8.js +25 -0
  378. package/dist/chunk-v1kzp02e.js +785 -0
  379. package/dist/chunk-v2fqnqgx.js +163 -0
  380. package/dist/chunk-v2xpxnmd.js +673 -0
  381. package/dist/chunk-v78fj8by.js +145 -0
  382. package/dist/chunk-v90xv5n9.js +157 -0
  383. package/dist/chunk-v9smspw2.js +4301 -0
  384. package/dist/chunk-vd3bb2zh.js +173 -0
  385. package/dist/chunk-vest0y6x.js +3830 -0
  386. package/dist/chunk-vf5sd1nq.js +12 -0
  387. package/dist/chunk-vhjx5fag.js +56 -0
  388. package/dist/chunk-vjf2rt5s.js +751 -0
  389. package/dist/chunk-vn1e1j7w.js +655 -0
  390. package/dist/chunk-vqk1n5qr.js +63 -0
  391. package/dist/chunk-vqvd3qz0.js +151 -0
  392. package/dist/chunk-vrmgtjyy.js +195 -0
  393. package/dist/chunk-vyjeh50y.js +2149 -0
  394. package/dist/chunk-w100pzs6.js +41 -0
  395. package/dist/chunk-w962tnq8.js +1322 -0
  396. package/dist/chunk-wae2sy8c.js +225 -0
  397. package/dist/chunk-wfprv7va.js +192 -0
  398. package/dist/chunk-wfz0qffj.js +3939 -0
  399. package/dist/chunk-wgcssf6v.js +722 -0
  400. package/dist/chunk-wh43g70w.js +40 -0
  401. package/dist/chunk-whb2mrcf.js +2643 -0
  402. package/dist/chunk-wn2268qd.js +335 -0
  403. package/dist/chunk-wq8v0d1k.js +1391 -0
  404. package/dist/chunk-wrhhmkf7.js +16 -0
  405. package/dist/chunk-wt69n71b.js +779 -0
  406. package/dist/chunk-wz2ekprb.js +130 -0
  407. package/dist/chunk-wzpdet3m.js +843 -0
  408. package/dist/chunk-x21zmsfa.js +104 -0
  409. package/dist/chunk-x2h31hmh.js +642 -0
  410. package/dist/chunk-x2qg3sdd.js +114 -0
  411. package/dist/chunk-x6r4v44b.js +8 -0
  412. package/dist/chunk-x7vg43fv.js +79 -0
  413. package/dist/chunk-x8b7vft8.js +132 -0
  414. package/dist/chunk-xbtacp2f.js +4389 -0
  415. package/dist/chunk-xq4cfvpn.js +213 -0
  416. package/dist/chunk-xqde96jm.js +60 -0
  417. package/dist/chunk-xsq9ae7x.js +90 -0
  418. package/dist/chunk-xsx5x369.js +526 -0
  419. package/dist/chunk-xszk7n10.js +14358 -0
  420. package/dist/chunk-xtv4fh71.js +53 -0
  421. package/dist/chunk-xv3era3s.js +8 -0
  422. package/dist/chunk-xxr0mzqt.js +90 -0
  423. package/dist/chunk-xzcz58pv.js +90 -0
  424. package/dist/chunk-y1784krc.js +19 -0
  425. package/dist/chunk-y9pt2qdf.js +69 -0
  426. package/dist/chunk-ya53e6g3.js +333 -0
  427. package/dist/chunk-ydde1jqg.js +490 -0
  428. package/dist/chunk-yh7amsbv.js +143 -0
  429. package/dist/chunk-yn80rxav.js +458 -0
  430. package/dist/chunk-ysvwcdav.js +9300 -0
  431. package/dist/chunk-ytvzxnx2.js +862 -0
  432. package/dist/chunk-yv9c6hfk.js +286 -0
  433. package/dist/chunk-yvdj4t96.js +88 -0
  434. package/dist/chunk-ywxd4qw4.js +22 -0
  435. package/dist/chunk-yysj6sxt.js +336 -0
  436. package/dist/chunk-z2dp53wn.js +17 -0
  437. package/dist/chunk-z2gj7190.js +5398 -0
  438. package/dist/chunk-z7ns4g0p.js +802 -0
  439. package/dist/chunk-z9b8pnt1.js +654 -0
  440. package/dist/chunk-zc6g0qqe.js +29 -0
  441. package/dist/chunk-zk2wsm7d.js +15 -0
  442. package/dist/chunk-zq4j9zys.js +264 -0
  443. package/dist/chunk-zsfxha74.js +17655 -0
  444. package/dist/chunk-ztmjzgq7.js +524 -0
  445. package/dist/chunk-zv2r5chy.js +91 -0
  446. package/dist/chunk-zx7pgp71.js +20 -0
  447. package/dist/chunk-zxvm58cn.js +102 -0
  448. package/dist/chunk-zydy88cv.js +70 -0
  449. package/dist/cli.js +92 -0
  450. package/package.json +36 -0
@@ -0,0 +1,779 @@
1
+ // @bun
2
+ import {
3
+ color,
4
+ init_color,
5
+ init_ink,
6
+ init_supports_hyperlinks,
7
+ supportsHyperlinks
8
+ } from "./chunk-adg4351g.js";
9
+ import {
10
+ getCurrentProjectConfig,
11
+ getGlobalConfig,
12
+ init_config1 as init_config,
13
+ init_file,
14
+ init_source,
15
+ isDirEmpty,
16
+ saveCurrentProjectConfig,
17
+ saveGlobalConfig,
18
+ source_default
19
+ } from "./chunk-3zzszjst.js";
20
+ import {
21
+ addItemToJSONCArray,
22
+ init_json,
23
+ safeParseJSONC
24
+ } from "./chunk-eebcvtbb.js";
25
+ import {
26
+ getPlatform,
27
+ init_platform
28
+ } from "./chunk-nj17bhkh.js";
29
+ import {
30
+ env,
31
+ init_env
32
+ } from "./chunk-wn2268qd.js";
33
+ import {
34
+ execFileNoThrow,
35
+ init_execFileNoThrow
36
+ } from "./chunk-gzzfhtdv.js";
37
+ import {
38
+ init_log,
39
+ logError
40
+ } from "./chunk-yysj6sxt.js";
41
+ import {
42
+ getCwd,
43
+ init_cwd
44
+ } from "./chunk-8bedvdm1.js";
45
+ import {
46
+ getFsImplementation,
47
+ init_debug,
48
+ init_errors,
49
+ init_fsOperations,
50
+ init_slowOperations,
51
+ isENOENT,
52
+ isFsInaccessible,
53
+ jsonParse,
54
+ jsonStringify,
55
+ logForDebugging
56
+ } from "./chunk-sbbj6ta3.js";
57
+ import {
58
+ init_memoize,
59
+ memoize_default
60
+ } from "./chunk-hqmz36b3.js";
61
+ import {
62
+ __esm
63
+ } from "./chunk-qp2qdcda.js";
64
+
65
+ // src/projectOnboardingState.ts
66
+ import { join } from "path";
67
+ function getSteps() {
68
+ const hasClaudeMd = getFsImplementation().existsSync(join(getCwd(), "CLAUDE.md"));
69
+ const isWorkspaceDirEmpty = isDirEmpty(getCwd());
70
+ return [
71
+ {
72
+ key: "workspace",
73
+ text: "Ask Claude to create a new app or clone a repository",
74
+ isComplete: false,
75
+ isCompletable: true,
76
+ isEnabled: isWorkspaceDirEmpty
77
+ },
78
+ {
79
+ key: "claudemd",
80
+ text: "Run /init to create a CLAUDE.md file with instructions for Claude",
81
+ isComplete: hasClaudeMd,
82
+ isCompletable: true,
83
+ isEnabled: !isWorkspaceDirEmpty
84
+ }
85
+ ];
86
+ }
87
+ function isProjectOnboardingComplete() {
88
+ return getSteps().filter(({ isCompletable, isEnabled }) => isCompletable && isEnabled).every(({ isComplete }) => isComplete);
89
+ }
90
+ function maybeMarkProjectOnboardingComplete() {
91
+ if (getCurrentProjectConfig().hasCompletedProjectOnboarding) {
92
+ return;
93
+ }
94
+ if (isProjectOnboardingComplete()) {
95
+ saveCurrentProjectConfig((current) => ({
96
+ ...current,
97
+ hasCompletedProjectOnboarding: true
98
+ }));
99
+ }
100
+ }
101
+ function incrementProjectOnboardingSeenCount() {
102
+ saveCurrentProjectConfig((current) => ({
103
+ ...current,
104
+ projectOnboardingSeenCount: current.projectOnboardingSeenCount + 1
105
+ }));
106
+ }
107
+ var shouldShowProjectOnboarding;
108
+ var init_projectOnboardingState = __esm(() => {
109
+ init_memoize();
110
+ init_config();
111
+ init_cwd();
112
+ init_file();
113
+ init_fsOperations();
114
+ shouldShowProjectOnboarding = memoize_default(() => {
115
+ const projectConfig = getCurrentProjectConfig();
116
+ if (projectConfig.hasCompletedProjectOnboarding || projectConfig.projectOnboardingSeenCount >= 4 || process.env.IS_DEMO) {
117
+ return false;
118
+ }
119
+ return !isProjectOnboardingComplete();
120
+ });
121
+ });
122
+
123
+ // src/utils/appleTerminalBackup.ts
124
+ import { stat } from "fs/promises";
125
+ import { homedir } from "os";
126
+ import { join as join2 } from "path";
127
+ function markTerminalSetupInProgress(backupPath) {
128
+ saveGlobalConfig((current) => ({
129
+ ...current,
130
+ appleTerminalSetupInProgress: true,
131
+ appleTerminalBackupPath: backupPath
132
+ }));
133
+ }
134
+ function markTerminalSetupComplete() {
135
+ saveGlobalConfig((current) => ({
136
+ ...current,
137
+ appleTerminalSetupInProgress: false
138
+ }));
139
+ }
140
+ function getTerminalRecoveryInfo() {
141
+ const config = getGlobalConfig();
142
+ return {
143
+ inProgress: config.appleTerminalSetupInProgress ?? false,
144
+ backupPath: config.appleTerminalBackupPath || null
145
+ };
146
+ }
147
+ function getTerminalPlistPath() {
148
+ return join2(homedir(), "Library", "Preferences", "com.apple.Terminal.plist");
149
+ }
150
+ async function backupTerminalPreferences() {
151
+ const terminalPlistPath = getTerminalPlistPath();
152
+ const backupPath = `${terminalPlistPath}.bak`;
153
+ try {
154
+ const { code } = await execFileNoThrow("defaults", [
155
+ "export",
156
+ "com.apple.Terminal",
157
+ terminalPlistPath
158
+ ]);
159
+ if (code !== 0) {
160
+ return null;
161
+ }
162
+ try {
163
+ await stat(terminalPlistPath);
164
+ } catch {
165
+ return null;
166
+ }
167
+ await execFileNoThrow("defaults", [
168
+ "export",
169
+ "com.apple.Terminal",
170
+ backupPath
171
+ ]);
172
+ markTerminalSetupInProgress(backupPath);
173
+ return backupPath;
174
+ } catch (error) {
175
+ logError(error);
176
+ return null;
177
+ }
178
+ }
179
+ async function checkAndRestoreTerminalBackup() {
180
+ const { inProgress, backupPath } = getTerminalRecoveryInfo();
181
+ if (!inProgress) {
182
+ return { status: "no_backup" };
183
+ }
184
+ if (!backupPath) {
185
+ markTerminalSetupComplete();
186
+ return { status: "no_backup" };
187
+ }
188
+ try {
189
+ await stat(backupPath);
190
+ } catch {
191
+ markTerminalSetupComplete();
192
+ return { status: "no_backup" };
193
+ }
194
+ try {
195
+ const { code } = await execFileNoThrow("defaults", [
196
+ "import",
197
+ "com.apple.Terminal",
198
+ backupPath
199
+ ]);
200
+ if (code !== 0) {
201
+ return { status: "failed", backupPath };
202
+ }
203
+ await execFileNoThrow("killall", ["cfprefsd"]);
204
+ markTerminalSetupComplete();
205
+ return { status: "restored" };
206
+ } catch (restoreError) {
207
+ logError(new Error(`Failed to restore Terminal.app settings with: ${restoreError}`));
208
+ markTerminalSetupComplete();
209
+ return { status: "failed", backupPath };
210
+ }
211
+ }
212
+ var init_appleTerminalBackup = __esm(() => {
213
+ init_config();
214
+ init_execFileNoThrow();
215
+ init_log();
216
+ });
217
+
218
+ // src/utils/completionCache.ts
219
+ import { mkdir, readFile, writeFile } from "fs/promises";
220
+ import { homedir as homedir2 } from "os";
221
+ import { dirname, join as join3 } from "path";
222
+ import { pathToFileURL } from "url";
223
+ function detectShell() {
224
+ const shell = process.env.SHELL || "";
225
+ const home = homedir2();
226
+ const claudeDir = join3(home, ".claude");
227
+ if (shell.endsWith("/zsh") || shell.endsWith("/zsh.exe")) {
228
+ const cacheFile = join3(claudeDir, "completion.zsh");
229
+ return {
230
+ name: "zsh",
231
+ rcFile: join3(home, ".zshrc"),
232
+ cacheFile,
233
+ completionLine: `[[ -f "${cacheFile}" ]] && source "${cacheFile}"`,
234
+ shellFlag: "zsh"
235
+ };
236
+ }
237
+ if (shell.endsWith("/bash") || shell.endsWith("/bash.exe")) {
238
+ const cacheFile = join3(claudeDir, "completion.bash");
239
+ return {
240
+ name: "bash",
241
+ rcFile: join3(home, ".bashrc"),
242
+ cacheFile,
243
+ completionLine: `[ -f "${cacheFile}" ] && source "${cacheFile}"`,
244
+ shellFlag: "bash"
245
+ };
246
+ }
247
+ if (shell.endsWith("/fish") || shell.endsWith("/fish.exe")) {
248
+ const xdg = process.env.XDG_CONFIG_HOME || join3(home, ".config");
249
+ const cacheFile = join3(claudeDir, "completion.fish");
250
+ return {
251
+ name: "fish",
252
+ rcFile: join3(xdg, "fish", "config.fish"),
253
+ cacheFile,
254
+ completionLine: `[ -f "${cacheFile}" ] && source "${cacheFile}"`,
255
+ shellFlag: "fish"
256
+ };
257
+ }
258
+ return null;
259
+ }
260
+ function formatPathLink(filePath) {
261
+ if (!supportsHyperlinks()) {
262
+ return filePath;
263
+ }
264
+ const fileUrl = pathToFileURL(filePath).href;
265
+ return `\x1B]8;;${fileUrl}\x07${filePath}\x1B]8;;\x07`;
266
+ }
267
+ async function setupShellCompletion(theme) {
268
+ const shell = detectShell();
269
+ if (!shell) {
270
+ return "";
271
+ }
272
+ try {
273
+ await mkdir(dirname(shell.cacheFile), { recursive: true });
274
+ } catch (e) {
275
+ logError(e);
276
+ return `${EOL}${color("warning", theme)(`Could not write ${shell.name} completion cache`)}${EOL}${source_default.dim(`Run manually: claude completion ${shell.shellFlag} > ${shell.cacheFile}`)}${EOL}`;
277
+ }
278
+ const claudeBin = process.argv[1] || "claude";
279
+ const result = await execFileNoThrow(claudeBin, [
280
+ "completion",
281
+ shell.shellFlag,
282
+ "--output",
283
+ shell.cacheFile
284
+ ]);
285
+ if (result.code !== 0) {
286
+ return `${EOL}${color("warning", theme)(`Could not generate ${shell.name} shell completions`)}${EOL}${source_default.dim(`Run manually: claude completion ${shell.shellFlag} > ${shell.cacheFile}`)}${EOL}`;
287
+ }
288
+ let existing = "";
289
+ try {
290
+ existing = await readFile(shell.rcFile, { encoding: "utf-8" });
291
+ if (existing.includes("claude completion") || existing.includes(shell.cacheFile)) {
292
+ return `${EOL}${color("success", theme)(`Shell completions updated for ${shell.name}`)}${EOL}${source_default.dim(`See ${formatPathLink(shell.rcFile)}`)}${EOL}`;
293
+ }
294
+ } catch (e) {
295
+ if (!isENOENT(e)) {
296
+ logError(e);
297
+ return `${EOL}${color("warning", theme)(`Could not install ${shell.name} shell completions`)}${EOL}${source_default.dim(`Add this to ${formatPathLink(shell.rcFile)}:`)}${EOL}${source_default.dim(shell.completionLine)}${EOL}`;
298
+ }
299
+ }
300
+ try {
301
+ const configDir = dirname(shell.rcFile);
302
+ await mkdir(configDir, { recursive: true });
303
+ const separator = existing && !existing.endsWith(`
304
+ `) ? `
305
+ ` : "";
306
+ const content = `${existing}${separator}
307
+ # Claude Code shell completions
308
+ ${shell.completionLine}
309
+ `;
310
+ await writeFile(shell.rcFile, content, { encoding: "utf-8" });
311
+ return `${EOL}${color("success", theme)(`Installed ${shell.name} shell completions`)}${EOL}${source_default.dim(`Added to ${formatPathLink(shell.rcFile)}`)}${EOL}${source_default.dim(`Run: source ${shell.rcFile}`)}${EOL}`;
312
+ } catch (error) {
313
+ logError(error);
314
+ return `${EOL}${color("warning", theme)(`Could not install ${shell.name} shell completions`)}${EOL}${source_default.dim(`Add this to ${formatPathLink(shell.rcFile)}:`)}${EOL}${source_default.dim(shell.completionLine)}${EOL}`;
315
+ }
316
+ }
317
+ async function regenerateCompletionCache() {
318
+ const shell = detectShell();
319
+ if (!shell) {
320
+ return;
321
+ }
322
+ logForDebugging(`update: Regenerating ${shell.name} completion cache`);
323
+ const claudeBin = process.argv[1] || "claude";
324
+ const result = await execFileNoThrow(claudeBin, [
325
+ "completion",
326
+ shell.shellFlag,
327
+ "--output",
328
+ shell.cacheFile
329
+ ]);
330
+ if (result.code !== 0) {
331
+ logForDebugging(`update: Failed to regenerate ${shell.name} completion cache`);
332
+ return;
333
+ }
334
+ logForDebugging(`update: Regenerated ${shell.name} completion cache at ${shell.cacheFile}`);
335
+ }
336
+ var EOL = `
337
+ `;
338
+ var init_completionCache = __esm(() => {
339
+ init_source();
340
+ init_color();
341
+ init_supports_hyperlinks();
342
+ init_debug();
343
+ init_errors();
344
+ init_execFileNoThrow();
345
+ init_log();
346
+ });
347
+
348
+ // src/commands/terminalSetup/terminalSetup.tsx
349
+ import { randomBytes } from "crypto";
350
+ import { copyFile, mkdir as mkdir2, readFile as readFile2, writeFile as writeFile2 } from "fs/promises";
351
+ import { homedir as homedir3, platform } from "os";
352
+ import { dirname as dirname2, join as join4 } from "path";
353
+ import { pathToFileURL as pathToFileURL2 } from "url";
354
+ function isVSCodeRemoteSSH() {
355
+ const askpassMain = process.env.VSCODE_GIT_ASKPASS_MAIN ?? "";
356
+ const path = process.env.PATH ?? "";
357
+ return askpassMain.includes(".vscode-server") || askpassMain.includes(".cursor-server") || askpassMain.includes(".windsurf-server") || path.includes(".vscode-server") || path.includes(".cursor-server") || path.includes(".windsurf-server");
358
+ }
359
+ function getNativeCSIuTerminalDisplayName() {
360
+ if (!env.terminal || !(env.terminal in NATIVE_CSIU_TERMINALS)) {
361
+ return null;
362
+ }
363
+ return NATIVE_CSIU_TERMINALS[env.terminal] ?? null;
364
+ }
365
+ function formatPathLink2(filePath) {
366
+ if (!supportsHyperlinks()) {
367
+ return filePath;
368
+ }
369
+ const fileUrl = pathToFileURL2(filePath).href;
370
+ return `\x1B]8;;${fileUrl}\x07${filePath}\x1B]8;;\x07`;
371
+ }
372
+ function shouldOfferTerminalSetup() {
373
+ return platform() === "darwin" && env.terminal === "Apple_Terminal" || env.terminal === "vscode" || env.terminal === "cursor" || env.terminal === "windsurf" || env.terminal === "alacritty" || env.terminal === "zed";
374
+ }
375
+ async function setupTerminal(theme) {
376
+ let result = "";
377
+ switch (env.terminal) {
378
+ case "Apple_Terminal":
379
+ result = await enableOptionAsMetaForTerminal(theme);
380
+ break;
381
+ case "vscode":
382
+ result = await installBindingsForVSCodeTerminal("VSCode", theme);
383
+ break;
384
+ case "cursor":
385
+ result = await installBindingsForVSCodeTerminal("Cursor", theme);
386
+ break;
387
+ case "windsurf":
388
+ result = await installBindingsForVSCodeTerminal("Windsurf", theme);
389
+ break;
390
+ case "alacritty":
391
+ result = await installBindingsForAlacritty(theme);
392
+ break;
393
+ case "zed":
394
+ result = await installBindingsForZed(theme);
395
+ break;
396
+ case null:
397
+ break;
398
+ }
399
+ saveGlobalConfig((current) => {
400
+ if (["vscode", "cursor", "windsurf", "alacritty", "zed"].includes(env.terminal ?? "")) {
401
+ if (current.shiftEnterKeyBindingInstalled === true)
402
+ return current;
403
+ return {
404
+ ...current,
405
+ shiftEnterKeyBindingInstalled: true
406
+ };
407
+ } else if (env.terminal === "Apple_Terminal") {
408
+ if (current.optionAsMetaKeyInstalled === true)
409
+ return current;
410
+ return {
411
+ ...current,
412
+ optionAsMetaKeyInstalled: true
413
+ };
414
+ }
415
+ return current;
416
+ });
417
+ maybeMarkProjectOnboardingComplete();
418
+ if (process.env.USER_TYPE === "ant") {
419
+ result += await setupShellCompletion(theme);
420
+ }
421
+ return result;
422
+ }
423
+ function isShiftEnterKeyBindingInstalled() {
424
+ return getGlobalConfig().shiftEnterKeyBindingInstalled === true;
425
+ }
426
+ function hasUsedBackslashReturn() {
427
+ return getGlobalConfig().hasUsedBackslashReturn === true;
428
+ }
429
+ function markBackslashReturnUsed() {
430
+ const config = getGlobalConfig();
431
+ if (!config.hasUsedBackslashReturn) {
432
+ saveGlobalConfig((current) => ({
433
+ ...current,
434
+ hasUsedBackslashReturn: true
435
+ }));
436
+ }
437
+ }
438
+ async function call(onDone, context, _args) {
439
+ if (env.terminal && env.terminal in NATIVE_CSIU_TERMINALS) {
440
+ const message = `Shift+Enter is natively supported in ${NATIVE_CSIU_TERMINALS[env.terminal]}.
441
+
442
+ No configuration needed. Just use Shift+Enter to add newlines.`;
443
+ onDone(message);
444
+ return null;
445
+ }
446
+ if (!shouldOfferTerminalSetup()) {
447
+ const terminalName = env.terminal || "your current terminal";
448
+ const currentPlatform = getPlatform();
449
+ let platformTerminals = "";
450
+ if (currentPlatform === "macos") {
451
+ platformTerminals = ` \u2022 macOS: Apple Terminal
452
+ `;
453
+ } else if (currentPlatform === "windows") {
454
+ platformTerminals = ` \u2022 Windows: Windows Terminal
455
+ `;
456
+ }
457
+ const message = `Terminal setup cannot be run from ${terminalName}.
458
+
459
+ This command configures a convenient Shift+Enter shortcut for multi-line prompts.
460
+ ${source_default.dim("Note: You can already use backslash (\\\\) + return to add newlines.")}
461
+
462
+ To set up the shortcut (optional):
463
+ 1. Exit tmux/screen temporarily
464
+ 2. Run /terminal-setup directly in one of these terminals:
465
+ ${platformTerminals} \u2022 IDE: VSCode, Cursor, Windsurf, Zed
466
+ \u2022 Other: Alacritty
467
+ 3. Return to tmux/screen - settings will persist
468
+
469
+ ${source_default.dim("Note: iTerm2, WezTerm, Ghostty, Kitty, and Warp support Shift+Enter natively.")}`;
470
+ onDone(message);
471
+ return null;
472
+ }
473
+ const result = await setupTerminal(context.options.theme);
474
+ onDone(result);
475
+ return null;
476
+ }
477
+ async function installBindingsForVSCodeTerminal(editor = "VSCode", theme) {
478
+ if (isVSCodeRemoteSSH()) {
479
+ return `${color("warning", theme)(`Cannot install keybindings from a remote ${editor} session.`)}${EOL2}${EOL2}${editor} keybindings must be installed on your local machine, not the remote server.${EOL2}${EOL2}To install the Shift+Enter keybinding:${EOL2}1. Open ${editor} on your local machine (not connected to remote)${EOL2}2. Open the Command Palette (Cmd/Ctrl+Shift+P) \u2192 "Preferences: Open Keyboard Shortcuts (JSON)"${EOL2}3. Add this keybinding (the file must be a JSON array):${EOL2}${EOL2}${source_default.dim(`[
480
+ {
481
+ "key": "shift+enter",
482
+ "command": "workbench.action.terminal.sendSequence",
483
+ "args": { "text": "\\u001b\\r" },
484
+ "when": "terminalFocus"
485
+ }
486
+ ]`)}${EOL2}`;
487
+ }
488
+ const editorDir = editor === "VSCode" ? "Code" : editor;
489
+ const userDirPath = join4(homedir3(), platform() === "win32" ? join4("AppData", "Roaming", editorDir, "User") : platform() === "darwin" ? join4("Library", "Application Support", editorDir, "User") : join4(".config", editorDir, "User"));
490
+ const keybindingsPath = join4(userDirPath, "keybindings.json");
491
+ try {
492
+ await mkdir2(userDirPath, {
493
+ recursive: true
494
+ });
495
+ let content = "[]";
496
+ let keybindings = [];
497
+ let fileExists = false;
498
+ try {
499
+ content = await readFile2(keybindingsPath, {
500
+ encoding: "utf-8"
501
+ });
502
+ fileExists = true;
503
+ keybindings = safeParseJSONC(content) ?? [];
504
+ } catch (e) {
505
+ if (!isFsInaccessible(e))
506
+ throw e;
507
+ }
508
+ if (fileExists) {
509
+ const randomSha = randomBytes(4).toString("hex");
510
+ const backupPath = `${keybindingsPath}.${randomSha}.bak`;
511
+ try {
512
+ await copyFile(keybindingsPath, backupPath);
513
+ } catch {
514
+ return `${color("warning", theme)(`Error backing up existing ${editor} terminal keybindings. Bailing out.`)}${EOL2}${source_default.dim(`See ${formatPathLink2(keybindingsPath)}`)}${EOL2}${source_default.dim(`Backup path: ${formatPathLink2(backupPath)}`)}${EOL2}`;
515
+ }
516
+ }
517
+ const existingBinding = keybindings.find((binding) => binding.key === "shift+enter" && binding.command === "workbench.action.terminal.sendSequence" && binding.when === "terminalFocus");
518
+ if (existingBinding) {
519
+ return `${color("warning", theme)(`Found existing ${editor} terminal Shift+Enter key binding. Remove it to continue.`)}${EOL2}${source_default.dim(`See ${formatPathLink2(keybindingsPath)}`)}${EOL2}`;
520
+ }
521
+ const newKeybinding = {
522
+ key: "shift+enter",
523
+ command: "workbench.action.terminal.sendSequence",
524
+ args: {
525
+ text: "\x1B\r"
526
+ },
527
+ when: "terminalFocus"
528
+ };
529
+ const updatedContent = addItemToJSONCArray(content, newKeybinding);
530
+ await writeFile2(keybindingsPath, updatedContent, {
531
+ encoding: "utf-8"
532
+ });
533
+ return `${color("success", theme)(`Installed ${editor} terminal Shift+Enter key binding`)}${EOL2}${source_default.dim(`See ${formatPathLink2(keybindingsPath)}`)}${EOL2}`;
534
+ } catch (error) {
535
+ logError(error);
536
+ throw new Error(`Failed to install ${editor} terminal Shift+Enter key binding`);
537
+ }
538
+ }
539
+ async function enableOptionAsMetaForProfile(profileName) {
540
+ const {
541
+ code: addCode
542
+ } = await execFileNoThrow("/usr/libexec/PlistBuddy", ["-c", `Add :'Window Settings':'${profileName}':useOptionAsMetaKey bool true`, getTerminalPlistPath()]);
543
+ if (addCode !== 0) {
544
+ const {
545
+ code: setCode
546
+ } = await execFileNoThrow("/usr/libexec/PlistBuddy", ["-c", `Set :'Window Settings':'${profileName}':useOptionAsMetaKey true`, getTerminalPlistPath()]);
547
+ if (setCode !== 0) {
548
+ logError(new Error(`Failed to enable Option as Meta key for Terminal.app profile: ${profileName}`));
549
+ return false;
550
+ }
551
+ }
552
+ return true;
553
+ }
554
+ async function disableAudioBellForProfile(profileName) {
555
+ const {
556
+ code: addCode
557
+ } = await execFileNoThrow("/usr/libexec/PlistBuddy", ["-c", `Add :'Window Settings':'${profileName}':Bell bool false`, getTerminalPlistPath()]);
558
+ if (addCode !== 0) {
559
+ const {
560
+ code: setCode
561
+ } = await execFileNoThrow("/usr/libexec/PlistBuddy", ["-c", `Set :'Window Settings':'${profileName}':Bell false`, getTerminalPlistPath()]);
562
+ if (setCode !== 0) {
563
+ logError(new Error(`Failed to disable audio bell for Terminal.app profile: ${profileName}`));
564
+ return false;
565
+ }
566
+ }
567
+ return true;
568
+ }
569
+ async function enableOptionAsMetaForTerminal(theme) {
570
+ try {
571
+ const backupPath = await backupTerminalPreferences();
572
+ if (!backupPath) {
573
+ throw new Error("Failed to create backup of Terminal.app preferences, bailing out");
574
+ }
575
+ const {
576
+ stdout: defaultProfile,
577
+ code: readCode
578
+ } = await execFileNoThrow("defaults", ["read", "com.apple.Terminal", "Default Window Settings"]);
579
+ if (readCode !== 0 || !defaultProfile.trim()) {
580
+ throw new Error("Failed to read default Terminal.app profile");
581
+ }
582
+ const {
583
+ stdout: startupProfile,
584
+ code: startupCode
585
+ } = await execFileNoThrow("defaults", ["read", "com.apple.Terminal", "Startup Window Settings"]);
586
+ if (startupCode !== 0 || !startupProfile.trim()) {
587
+ throw new Error("Failed to read startup Terminal.app profile");
588
+ }
589
+ let wasAnyProfileUpdated = false;
590
+ const defaultProfileName = defaultProfile.trim();
591
+ const optionAsMetaEnabled = await enableOptionAsMetaForProfile(defaultProfileName);
592
+ const audioBellDisabled = await disableAudioBellForProfile(defaultProfileName);
593
+ if (optionAsMetaEnabled || audioBellDisabled) {
594
+ wasAnyProfileUpdated = true;
595
+ }
596
+ const startupProfileName = startupProfile.trim();
597
+ if (startupProfileName !== defaultProfileName) {
598
+ const startupOptionAsMetaEnabled = await enableOptionAsMetaForProfile(startupProfileName);
599
+ const startupAudioBellDisabled = await disableAudioBellForProfile(startupProfileName);
600
+ if (startupOptionAsMetaEnabled || startupAudioBellDisabled) {
601
+ wasAnyProfileUpdated = true;
602
+ }
603
+ }
604
+ if (!wasAnyProfileUpdated) {
605
+ throw new Error("Failed to enable Option as Meta key or disable audio bell for any Terminal.app profile");
606
+ }
607
+ await execFileNoThrow("killall", ["cfprefsd"]);
608
+ markTerminalSetupComplete();
609
+ return `${color("success", theme)(`Configured Terminal.app settings:`)}${EOL2}${color("success", theme)('- Enabled "Use Option as Meta key"')}${EOL2}${color("success", theme)("- Switched to visual bell")}${EOL2}${source_default.dim("Option+Enter will now enter a newline.")}${EOL2}${source_default.dim("You must restart Terminal.app for changes to take effect.", theme)}${EOL2}`;
610
+ } catch (error) {
611
+ logError(error);
612
+ const restoreResult = await checkAndRestoreTerminalBackup();
613
+ const errorMessage = "Failed to enable Option as Meta key for Terminal.app.";
614
+ if (restoreResult.status === "restored") {
615
+ throw new Error(`${errorMessage} Your settings have been restored from backup.`);
616
+ } else if (restoreResult.status === "failed") {
617
+ throw new Error(`${errorMessage} Restoring from backup failed, try manually with: defaults import com.apple.Terminal ${restoreResult.backupPath}`);
618
+ } else {
619
+ throw new Error(`${errorMessage} No backup was available to restore from.`);
620
+ }
621
+ }
622
+ }
623
+ async function installBindingsForAlacritty(theme) {
624
+ const ALACRITTY_KEYBINDING = `[[keyboard.bindings]]
625
+ key = "Return"
626
+ mods = "Shift"
627
+ chars = "\\u001B\\r"`;
628
+ const configPaths = [];
629
+ const xdgConfigHome = process.env.XDG_CONFIG_HOME;
630
+ if (xdgConfigHome) {
631
+ configPaths.push(join4(xdgConfigHome, "alacritty", "alacritty.toml"));
632
+ } else {
633
+ configPaths.push(join4(homedir3(), ".config", "alacritty", "alacritty.toml"));
634
+ }
635
+ if (platform() === "win32") {
636
+ const appData = process.env.APPDATA;
637
+ if (appData) {
638
+ configPaths.push(join4(appData, "alacritty", "alacritty.toml"));
639
+ }
640
+ }
641
+ let configPath = null;
642
+ let configContent = "";
643
+ let configExists = false;
644
+ for (const path of configPaths) {
645
+ try {
646
+ configContent = await readFile2(path, {
647
+ encoding: "utf-8"
648
+ });
649
+ configPath = path;
650
+ configExists = true;
651
+ break;
652
+ } catch (e) {
653
+ if (!isFsInaccessible(e))
654
+ throw e;
655
+ }
656
+ }
657
+ if (!configPath) {
658
+ configPath = configPaths[0] ?? null;
659
+ }
660
+ if (!configPath) {
661
+ throw new Error("No valid config path found for Alacritty");
662
+ }
663
+ try {
664
+ if (configExists) {
665
+ if (configContent.includes('mods = "Shift"') && configContent.includes('key = "Return"')) {
666
+ return `${color("warning", theme)("Found existing Alacritty Shift+Enter key binding. Remove it to continue.")}${EOL2}${source_default.dim(`See ${formatPathLink2(configPath)}`)}${EOL2}`;
667
+ }
668
+ const randomSha = randomBytes(4).toString("hex");
669
+ const backupPath = `${configPath}.${randomSha}.bak`;
670
+ try {
671
+ await copyFile(configPath, backupPath);
672
+ } catch {
673
+ return `${color("warning", theme)("Error backing up existing Alacritty config. Bailing out.")}${EOL2}${source_default.dim(`See ${formatPathLink2(configPath)}`)}${EOL2}${source_default.dim(`Backup path: ${formatPathLink2(backupPath)}`)}${EOL2}`;
674
+ }
675
+ } else {
676
+ await mkdir2(dirname2(configPath), {
677
+ recursive: true
678
+ });
679
+ }
680
+ let updatedContent = configContent;
681
+ if (configContent && !configContent.endsWith(`
682
+ `)) {
683
+ updatedContent += `
684
+ `;
685
+ }
686
+ updatedContent += `
687
+ ` + ALACRITTY_KEYBINDING + `
688
+ `;
689
+ await writeFile2(configPath, updatedContent, {
690
+ encoding: "utf-8"
691
+ });
692
+ return `${color("success", theme)("Installed Alacritty Shift+Enter key binding")}${EOL2}${color("success", theme)("You may need to restart Alacritty for changes to take effect")}${EOL2}${source_default.dim(`See ${formatPathLink2(configPath)}`)}${EOL2}`;
693
+ } catch (error) {
694
+ logError(error);
695
+ throw new Error("Failed to install Alacritty Shift+Enter key binding");
696
+ }
697
+ }
698
+ async function installBindingsForZed(theme) {
699
+ const zedDir = join4(homedir3(), ".config", "zed");
700
+ const keymapPath = join4(zedDir, "keymap.json");
701
+ try {
702
+ await mkdir2(zedDir, {
703
+ recursive: true
704
+ });
705
+ let keymapContent = "[]";
706
+ let fileExists = false;
707
+ try {
708
+ keymapContent = await readFile2(keymapPath, {
709
+ encoding: "utf-8"
710
+ });
711
+ fileExists = true;
712
+ } catch (e) {
713
+ if (!isFsInaccessible(e))
714
+ throw e;
715
+ }
716
+ if (fileExists) {
717
+ if (keymapContent.includes("shift-enter")) {
718
+ return `${color("warning", theme)("Found existing Zed Shift+Enter key binding. Remove it to continue.")}${EOL2}${source_default.dim(`See ${formatPathLink2(keymapPath)}`)}${EOL2}`;
719
+ }
720
+ const randomSha = randomBytes(4).toString("hex");
721
+ const backupPath = `${keymapPath}.${randomSha}.bak`;
722
+ try {
723
+ await copyFile(keymapPath, backupPath);
724
+ } catch {
725
+ return `${color("warning", theme)("Error backing up existing Zed keymap. Bailing out.")}${EOL2}${source_default.dim(`See ${formatPathLink2(keymapPath)}`)}${EOL2}${source_default.dim(`Backup path: ${formatPathLink2(backupPath)}`)}${EOL2}`;
726
+ }
727
+ }
728
+ let keymap;
729
+ try {
730
+ keymap = jsonParse(keymapContent);
731
+ if (!Array.isArray(keymap)) {
732
+ keymap = [];
733
+ }
734
+ } catch {
735
+ keymap = [];
736
+ }
737
+ keymap.push({
738
+ context: "Terminal",
739
+ bindings: {
740
+ "shift-enter": ["terminal::SendText", "\x1B\r"]
741
+ }
742
+ });
743
+ await writeFile2(keymapPath, jsonStringify(keymap, null, 2) + `
744
+ `, {
745
+ encoding: "utf-8"
746
+ });
747
+ return `${color("success", theme)("Installed Zed Shift+Enter key binding")}${EOL2}${source_default.dim(`See ${formatPathLink2(keymapPath)}`)}${EOL2}`;
748
+ } catch (error) {
749
+ logError(error);
750
+ throw new Error("Failed to install Zed Shift+Enter key binding");
751
+ }
752
+ }
753
+ var EOL2 = `
754
+ `, NATIVE_CSIU_TERMINALS;
755
+ var init_terminalSetup = __esm(() => {
756
+ init_source();
757
+ init_supports_hyperlinks();
758
+ init_ink();
759
+ init_projectOnboardingState();
760
+ init_appleTerminalBackup();
761
+ init_completionCache();
762
+ init_config();
763
+ init_env();
764
+ init_errors();
765
+ init_execFileNoThrow();
766
+ init_json();
767
+ init_log();
768
+ init_platform();
769
+ init_slowOperations();
770
+ NATIVE_CSIU_TERMINALS = {
771
+ ghostty: "Ghostty",
772
+ kitty: "Kitty",
773
+ "iTerm.app": "iTerm2",
774
+ WezTerm: "WezTerm",
775
+ WarpTerminal: "Warp"
776
+ };
777
+ });
778
+
779
+ export { getSteps, maybeMarkProjectOnboardingComplete, shouldShowProjectOnboarding, incrementProjectOnboardingSeenCount, init_projectOnboardingState, checkAndRestoreTerminalBackup, init_appleTerminalBackup, regenerateCompletionCache, init_completionCache, getNativeCSIuTerminalDisplayName, shouldOfferTerminalSetup, setupTerminal, isShiftEnterKeyBindingInstalled, hasUsedBackslashReturn, markBackslashReturnUsed, call, init_terminalSetup };