@jdi-code/claude-code 1.0.3 → 1.2.0

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 (539) hide show
  1. package/README.md +104 -369
  2. package/dist/{chunk-4t7n5hfg.js → chunk-0318ehfm.js} +8 -8
  3. package/dist/chunk-050fe4m3.js +68 -0
  4. package/dist/chunk-06v69x0b.js +127 -0
  5. package/dist/chunk-07069jq1.js +30 -0
  6. package/dist/chunk-0c9xpqm8.js +106 -0
  7. package/dist/chunk-0hxxwcs1.js +107 -0
  8. package/dist/chunk-0nsb3kxz.js +440 -0
  9. package/dist/{chunk-1cbn5kxf.js → chunk-0rpb2bdp.js} +3 -2
  10. package/dist/{chunk-vykgfhrb.js → chunk-0svbkpfn.js} +5 -5
  11. package/dist/chunk-0vg07894.js +121 -0
  12. package/dist/{chunk-e4vsvf0r.js → chunk-0zefjhrg.js} +4 -4
  13. package/dist/chunk-0zfmj5y2.js +106 -0
  14. package/dist/{chunk-czkshaff.js → chunk-107p04a0.js} +13 -11
  15. package/dist/{chunk-z4dm354d.js → chunk-13f30tg0.js} +1 -1
  16. package/dist/{chunk-44fpr6jq.js → chunk-168xb8v1.js} +4 -2
  17. package/dist/{chunk-0w63x62y.js → chunk-181q7ysj.js} +79 -63
  18. package/dist/{chunk-6mapphaq.js → chunk-18jc5efa.js} +8 -8
  19. package/dist/chunk-19j7nkpy.js +133 -0
  20. package/dist/chunk-1c2qp0ks.js +33068 -0
  21. package/dist/{chunk-0e1xsncc.js → chunk-1cwdhk7a.js} +1 -1
  22. package/dist/{chunk-7m2nd8da.js → chunk-1erfksyp.js} +6 -9
  23. package/dist/{chunk-rs45skes.js → chunk-1h1tc4mw.js} +13 -10
  24. package/dist/{chunk-91rcbmch.js → chunk-1rngm3yy.js} +155 -184
  25. package/dist/{chunk-3gqdqmzb.js → chunk-1vthytca.js} +16 -12
  26. package/dist/{chunk-xe6z85xc.js → chunk-1xbs4yb6.js} +19 -16
  27. package/dist/chunk-1xj1yz5n.js +109 -0
  28. package/dist/chunk-21mfpnva.js +85 -0
  29. package/dist/chunk-2361j94t.js +1811 -0
  30. package/dist/chunk-238g70xa.js +1 -1
  31. package/dist/chunk-250f5ce1.js +108 -0
  32. package/dist/{chunk-8yx1trkj.js → chunk-29r4exv2.js} +105 -211
  33. package/dist/chunk-2a8yf5ct.js +72 -0
  34. package/dist/{chunk-h3fqb66h.js → chunk-2bnerkhs.js} +110 -135
  35. package/dist/{chunk-0nt9md2b.js → chunk-2cctz9ww.js} +101 -8
  36. package/dist/chunk-2fwze72g.js +24 -0
  37. package/dist/{chunk-h3qa8f5w.js → chunk-2jvpw0q1.js} +229 -363
  38. package/dist/{chunk-9wm5e9e9.js → chunk-2mj88mnr.js} +42 -31
  39. package/dist/chunk-2q0schcc.js +133 -0
  40. package/dist/{chunk-r66hz8j6.js → chunk-2qp2hc02.js} +14 -12
  41. package/dist/chunk-2t0xa4dt.js +145 -0
  42. package/dist/chunk-2tzxsnha.js +360 -0
  43. package/dist/chunk-2v8cya3p.js +54 -0
  44. package/dist/chunk-2w00z1ct.js +105 -0
  45. package/dist/{chunk-2md1yavs.js → chunk-2wpfdv2t.js} +43 -32
  46. package/dist/chunk-2xcr3eqt.js +65 -0
  47. package/dist/chunk-30bpz5m2.js +34 -0
  48. package/dist/{chunk-hrzerbfw.js → chunk-36b2q5fg.js} +14 -14
  49. package/dist/{chunk-edg1yhec.js → chunk-3aady5e2.js} +2 -2
  50. package/dist/chunk-3ewzhjyb.js +207 -0
  51. package/dist/{chunk-z47tm067.js → chunk-3kpptrnz.js} +54 -47
  52. package/dist/{chunk-yd3av9a3.js → chunk-3na967x3.js} +2 -2
  53. package/dist/chunk-3nk79af8.js +8 -0
  54. package/dist/{chunk-z0cm9r7f.js → chunk-3r66czp1.js} +10 -10
  55. package/dist/{chunk-rnjbczcy.js → chunk-3y3qasy6.js} +13 -11
  56. package/dist/{chunk-nxsh6de2.js → chunk-404qm8xt.js} +16 -12
  57. package/dist/{chunk-mhqthgdg.js → chunk-41grdp0q.js} +5 -5
  58. package/dist/chunk-4cp6193g.js +9076 -0
  59. package/dist/chunk-4g18phg9.js +2535 -0
  60. package/dist/{chunk-6n2qgm9v.js → chunk-4hv90qcz.js} +1 -1
  61. package/dist/chunk-4jkfzf6g.js +81 -0
  62. package/dist/{chunk-5frcqxsv.js → chunk-4m6k7588.js} +127117 -138842
  63. package/dist/chunk-4nspekjp.js +69 -0
  64. package/dist/chunk-4x29t96w.js +119 -0
  65. package/dist/{chunk-40b8p5em.js → chunk-585cb3h6.js} +14 -12
  66. package/dist/{chunk-5dbar61y.js → chunk-59qz55py.js} +77 -61
  67. package/dist/chunk-5bta6qne.js +1030 -0
  68. package/dist/chunk-5dmczs66.js +123 -0
  69. package/dist/{chunk-9e2kqv5g.js → chunk-5pevjsyw.js} +3 -10
  70. package/dist/{chunk-5ndexvh1.js → chunk-5py41v61.js} +10226 -16961
  71. package/dist/{chunk-d5e75scx.js → chunk-5q2gm8dt.js} +5 -5
  72. package/dist/{chunk-893mewv4.js → chunk-5rpyh7nn.js} +1 -1
  73. package/dist/{chunk-hx2tr4ep.js → chunk-5z28bqne.js} +34 -475
  74. package/dist/chunk-5zzwydag.js +1170 -0
  75. package/dist/{chunk-4tyxyfsv.js → chunk-61gm3j90.js} +2 -2
  76. package/dist/chunk-64c1avct.js +13 -0
  77. package/dist/chunk-64hks9ax.js +456 -0
  78. package/dist/{chunk-bw9a5v0b.js → chunk-64m7ax9d.js} +4 -4
  79. package/dist/{chunk-cha1tdry.js → chunk-66hjztcb.js} +1 -1
  80. package/dist/{chunk-q25bjaev.js → chunk-677as3nh.js} +2 -2
  81. package/dist/chunk-69v14ada.js +76 -0
  82. package/dist/chunk-6eahnbxj.js +101 -0
  83. package/dist/chunk-6eg4c33n.js +196 -0
  84. package/dist/chunk-6fjfwj7q.js +214 -0
  85. package/dist/{chunk-70qb5sds.js → chunk-6kwwke3r.js} +2 -2
  86. package/dist/chunk-6m0pc6py.js +311 -0
  87. package/dist/chunk-6mpw9h55.js +1071 -0
  88. package/dist/{chunk-v1mgv1et.js → chunk-6p4cyhb3.js} +4 -3
  89. package/dist/chunk-6r1dx518.js +111 -0
  90. package/dist/{chunk-1n1xqxv5.js → chunk-713bh4cd.js} +1072 -1736
  91. package/dist/{chunk-nstbdz07.js → chunk-7246q965.js} +85 -69
  92. package/dist/{chunk-w6q6a1qj.js → chunk-74mdk2e7.js} +564 -864
  93. package/dist/{chunk-77czbpcq.js → chunk-76pa90ge.js} +104 -90
  94. package/dist/chunk-77nkh0x1.js +82 -0
  95. package/dist/chunk-7bsbnzpm.js +65 -0
  96. package/dist/chunk-7r3v46aq.js +167 -0
  97. package/dist/chunk-7vf8s593.js +235 -0
  98. package/dist/chunk-7x6ng8fp.js +64 -0
  99. package/dist/chunk-7xy990yb.js +81 -0
  100. package/dist/chunk-7xyswgjh.js +8 -0
  101. package/dist/chunk-80p18mf8.js +228 -0
  102. package/dist/{chunk-dv1wfr85.js → chunk-8225arm6.js} +5 -4
  103. package/dist/{chunk-vdbes184.js → chunk-82rh5hpz.js} +70 -10
  104. package/dist/chunk-84nf3k34.js +73 -0
  105. package/dist/chunk-85v0yx5b.js +106 -0
  106. package/dist/{chunk-x5j50p5x.js → chunk-86f4vq6n.js} +5 -5
  107. package/dist/{chunk-e5ga3s0y.js → chunk-86vec0h6.js} +148 -421
  108. package/dist/chunk-8az1n4zt.js +110 -0
  109. package/dist/{chunk-ctw5jwcd.js → chunk-8bwqtasa.js} +10 -10
  110. package/dist/chunk-8c9jtmsm.js +100 -0
  111. package/dist/{chunk-fqc5mcw7.js → chunk-8ca80ew2.js} +9 -9
  112. package/dist/chunk-8g5pe1gr.js +37 -0
  113. package/dist/{chunk-g0j0t6qk.js → chunk-8g747a8x.js} +1 -1
  114. package/dist/{chunk-3vzs2gbq.js → chunk-8gxztyqd.js} +4 -4
  115. package/dist/{chunk-45kxdsp8.js → chunk-8h6sdj66.js} +13 -10
  116. package/dist/{chunk-s8amjdwf.js → chunk-8ht15c7w.js} +7 -7
  117. package/dist/{chunk-ywxd4qw4.js → chunk-8mm8b6dd.js} +2 -5
  118. package/dist/{chunk-sdj9b9wh.js → chunk-8pn8tvgg.js} +9 -154
  119. package/dist/{chunk-pxrffn0w.js → chunk-8vnxjgz9.js} +11 -5
  120. package/dist/chunk-9525p9tg.js +401 -0
  121. package/dist/{chunk-y47cg3kz.js → chunk-9a0rsdre.js} +17 -13
  122. package/dist/chunk-9a2pa53f.js +308 -0
  123. package/dist/chunk-9es2dav7.js +507 -0
  124. package/dist/chunk-9pq45ycx.js +217 -0
  125. package/dist/chunk-9qwkw406.js +121 -0
  126. package/dist/chunk-9rf1x0z9.js +109 -0
  127. package/dist/{chunk-ghmbr193.js → chunk-9rvqx05m.js} +9 -9
  128. package/dist/{chunk-dchkdhzs.js → chunk-9sd3tz3p.js} +91 -75
  129. package/dist/chunk-9x5zgy22.js +12 -0
  130. package/dist/{chunk-q6b51yc5.js → chunk-9z4vq44b.js} +3 -3
  131. package/dist/chunk-a136cvvz.js +27 -0
  132. package/dist/{chunk-8hq5kk3y.js → chunk-a4twdmhf.js} +3 -2
  133. package/dist/{chunk-d18z9pna.js → chunk-a7rhvq9b.js} +2 -2
  134. package/dist/{chunk-pmjqdasm.js → chunk-a8jbqb9f.js} +2313 -4199
  135. package/dist/chunk-a9xhsth1.js +1068 -0
  136. package/dist/{chunk-kd63fbhw.js → chunk-achjqrhd.js} +81 -65
  137. package/dist/{chunk-67kbbt9h.js → chunk-af2vfhm4.js} +42 -31
  138. package/dist/{chunk-js8rvgs1.js → chunk-ahn9tgz7.js} +3 -3
  139. package/dist/chunk-ajets2e9.js +103 -0
  140. package/dist/chunk-akxywws0.js +79 -0
  141. package/dist/{chunk-meefz2g4.js → chunk-aqvgkvsq.js} +7 -7
  142. package/dist/{chunk-r6b58y3x.js → chunk-ase86y73.js} +1 -3
  143. package/dist/{chunk-hjhc4cpt.js → chunk-awb4vc41.js} +2 -2
  144. package/dist/{chunk-1jrcb7cs.js → chunk-b0mt3wzx.js} +37 -82
  145. package/dist/chunk-b4zy6y92.js +105 -0
  146. package/dist/{chunk-ax83mpvw.js → chunk-b65yxs9e.js} +26 -26
  147. package/dist/{chunk-wzx6mmft.js → chunk-b7b39zx2.js} +120 -118
  148. package/dist/{chunk-8bedvdm1.js → chunk-b81hd3m6.js} +1 -1
  149. package/dist/chunk-bbr7mwpv.js +117 -0
  150. package/dist/{chunk-1a61g8t2.js → chunk-bdzqt6gy.js} +83 -64
  151. package/dist/chunk-bkm0zms8.js +110 -0
  152. package/dist/{chunk-0vvej174.js → chunk-bs8r4665.js} +5 -5
  153. package/dist/{chunk-xvc4gp3x.js → chunk-bszdmr4k.js} +24 -24
  154. package/dist/{chunk-8ngxagxq.js → chunk-bt64sq5y.js} +4 -3
  155. package/dist/chunk-bvcpr8qa.js +909 -0
  156. package/dist/chunk-bx811wk6.js +118 -0
  157. package/dist/{chunk-3be7ka25.js → chunk-bxcfz5gy.js} +1 -1
  158. package/dist/{chunk-77g09znh.js → chunk-byv2p9hn.js} +22 -16
  159. package/dist/{chunk-wbkahkdc.js → chunk-c03am3es.js} +8 -6
  160. package/dist/chunk-c1x69s30.js +116 -0
  161. package/dist/chunk-c5vkve4j.js +68 -0
  162. package/dist/chunk-c6sjhj89.js +1284 -0
  163. package/dist/chunk-cb0wxajw.js +142 -0
  164. package/dist/{chunk-vyc0rjyx.js → chunk-cbrt5vsb.js} +1 -1
  165. package/dist/{chunk-4kxr1pwz.js → chunk-cgmy7r62.js} +30 -17
  166. package/dist/chunk-chsyvavm.js +3435 -0
  167. package/dist/{chunk-z72st5c8.js → chunk-cmsknj6n.js} +4774 -3386
  168. package/dist/{chunk-cdz5yb0r.js → chunk-crmjpsqe.js} +13 -2
  169. package/dist/chunk-cs039fnj.js +123 -0
  170. package/dist/{chunk-e7393td6.js → chunk-cznf6k4g.js} +13 -9
  171. package/dist/{chunk-fw49pe3p.js → chunk-cztjpxq4.js} +6 -6
  172. package/dist/{chunk-n8sjmqba.js → chunk-d0n93ge4.js} +141 -100
  173. package/dist/{chunk-spde0bf5.js → chunk-d14ygn80.js} +3 -3
  174. package/dist/chunk-d4mdda98.js +94 -0
  175. package/dist/chunk-d5qggsbm.js +137 -0
  176. package/dist/{chunk-55wgxwa9.js → chunk-d7886r6a.js} +6928 -6935
  177. package/dist/{chunk-eh8h36nt.js → chunk-d9gxtzmz.js} +42 -31
  178. package/dist/{chunk-xk66xrkk.js → chunk-da312cj9.js} +54 -72
  179. package/dist/{chunk-j287ctwr.js → chunk-df19zqjj.js} +77 -61
  180. package/dist/chunk-dm3n2qgd.js +24 -0
  181. package/dist/{chunk-m21hvkn4.js → chunk-dncgrfdt.js} +2 -2
  182. package/dist/{chunk-0nz8sqg4.js → chunk-dq3rw4b5.js} +1294 -873
  183. package/dist/{chunk-ey03t39w.js → chunk-dw1f4b7e.js} +257 -194
  184. package/dist/chunk-dx1jrvdz.js +339 -0
  185. package/dist/{chunk-0ragr30c.js → chunk-dxeadbxq.js} +12 -12
  186. package/dist/{chunk-gdp8wgnd.js → chunk-e8b9gcwf.js} +88 -72
  187. package/dist/chunk-e9k5a3cy.js +409 -0
  188. package/dist/chunk-e9mer45h.js +64 -0
  189. package/dist/{chunk-5qbwrz8m.js → chunk-ea2f7wt3.js} +13 -13
  190. package/dist/chunk-eak7m65m.js +1182 -0
  191. package/dist/chunk-ebhgmeyk.js +245 -0
  192. package/dist/chunk-eg93k7ac.js +117 -0
  193. package/dist/{chunk-jgv78tv0.js → chunk-ej1yvp43.js} +8 -8
  194. package/dist/chunk-ekr8pwpv.js +1408 -0
  195. package/dist/{chunk-m4edbpcz.js → chunk-epg124e3.js} +117 -143
  196. package/dist/chunk-eyqnj23w.js +5368 -0
  197. package/dist/chunk-f2bvkxbw.js +267 -0
  198. package/dist/chunk-f537x96t.js +295 -0
  199. package/dist/chunk-f6wdmebb.js +108 -0
  200. package/dist/chunk-feyzykye.js +10 -0
  201. package/dist/{chunk-ep47dy22.js → chunk-fj3ywwqv.js} +7 -7
  202. package/dist/{chunk-9gttd1xq.js → chunk-fjv7p1kc.js} +4 -4
  203. package/dist/{chunk-1rnkpxy4.js → chunk-fpe5nywt.js} +10 -115
  204. package/dist/chunk-fvpgrg19.js +434 -0
  205. package/dist/{chunk-9xmsmn93.js → chunk-fvqrkmtn.js} +5 -5
  206. package/dist/{chunk-6g62sjpf.js → chunk-fz0ch109.js} +4 -3
  207. package/dist/{chunk-5xz7ts0k.js → chunk-g0vh71q6.js} +188 -339
  208. package/dist/chunk-g1gtvtv8.js +384 -0
  209. package/dist/chunk-g5g9wm20.js +66 -0
  210. package/dist/{chunk-v399mzxk.js → chunk-g63tgj4f.js} +2 -2
  211. package/dist/{chunk-kkkneeg1.js → chunk-gay98970.js} +21 -16
  212. package/dist/chunk-gey7mwcw.js +36 -0
  213. package/dist/{chunk-w5ctjgmx.js → chunk-gtyh1yd1.js} +2 -2
  214. package/dist/{chunk-tjaqa99q.js → chunk-gx8016vp.js} +3 -3
  215. package/dist/{chunk-f2mhrmww.js → chunk-h0rbjg6x.js} +1 -8
  216. package/dist/{chunk-7z8j9qfn.js → chunk-h1mr3371.js} +3 -3
  217. package/dist/chunk-h2yxyeq4.js +132 -0
  218. package/dist/{chunk-qqfa0dqg.js → chunk-h4b85amj.js} +20 -32
  219. package/dist/chunk-h707k8xq.js +64 -0
  220. package/dist/{chunk-3z6rf0m3.js → chunk-h7rcjx8d.js} +5 -5
  221. package/dist/chunk-hch5yeq8.js +121 -0
  222. package/dist/{chunk-4anyx5bv.js → chunk-hd4azb7x.js} +5 -5
  223. package/dist/chunk-hjnbg9qw.js +32 -0
  224. package/dist/{chunk-e2yv57c2.js → chunk-hk9mmkba.js} +8 -8
  225. package/dist/{chunk-f1rrxxcf.js → chunk-hs9w0p45.js} +7 -131
  226. package/dist/{chunk-9f7xza5r.js → chunk-htaan7k0.js} +11 -11
  227. package/dist/chunk-htg84hvs.js +300 -0
  228. package/dist/chunk-hvyr6p4r.js +433 -0
  229. package/dist/chunk-j0r5vkvw.js +267 -0
  230. package/dist/{chunk-9gbamk79.js → chunk-j5bth84e.js} +5 -1
  231. package/dist/{chunk-vratq94g.js → chunk-j9gxwbe3.js} +1 -1
  232. package/dist/{chunk-3r24h7t6.js → chunk-jaaxk89e.js} +1 -1
  233. package/dist/chunk-je7jake4.js +3584 -0
  234. package/dist/chunk-jeqhpyxr.js +126 -0
  235. package/dist/chunk-jngf0nar.js +135 -0
  236. package/dist/chunk-jqjbc5ef.js +795 -0
  237. package/dist/{chunk-xf4wsjdm.js → chunk-jwrmmv7j.js} +9 -7
  238. package/dist/{chunk-j9wpkwjj.js → chunk-jwyzy83k.js} +6 -6
  239. package/dist/chunk-jz8v9sn3.js +228 -0
  240. package/dist/{chunk-bqfnp99q.js → chunk-k3s4yk22.js} +1 -1
  241. package/dist/chunk-k5c09bzv.js +443 -0
  242. package/dist/chunk-kbktwsms.js +372 -0
  243. package/dist/chunk-ke0hn0xr.js +260 -0
  244. package/dist/chunk-kehe7a71.js +41 -0
  245. package/dist/{chunk-1xkekb9y.js → chunk-kfd89dsd.js} +5 -3
  246. package/dist/chunk-ktjjb0k9.js +104 -0
  247. package/dist/{chunk-b74ht3xj.js → chunk-kxgcshx1.js} +78 -62
  248. package/dist/chunk-kz2fpejx.js +651 -0
  249. package/dist/{chunk-zvbpaaa1.js → chunk-kz3ctzg3.js} +110 -115
  250. package/dist/{chunk-72p24c9k.js → chunk-m268mm4c.js} +127 -188
  251. package/dist/{chunk-jafes477.js → chunk-m2bcpk8j.js} +4 -3
  252. package/dist/{chunk-4qv4z794.js → chunk-m32mdkts.js} +42 -31
  253. package/dist/chunk-m74w3187.js +164 -0
  254. package/dist/chunk-m7s7j422.js +166 -0
  255. package/dist/chunk-majhpxx5.js +594 -0
  256. package/dist/{chunk-q6av622g.js → chunk-mdk3xgya.js} +17 -13
  257. package/dist/{chunk-8bw3ft0x.js → chunk-mfcbez9a.js} +4 -4
  258. package/dist/{chunk-df6bwb4a.js → chunk-mj6w3ttg.js} +2 -2
  259. package/dist/{chunk-drrw55jr.js → chunk-mk6kj3q2.js} +1336 -2840
  260. package/dist/{chunk-vqr58rfh.js → chunk-mky388t4.js} +27 -67
  261. package/dist/chunk-mn61mk4v.js +351 -0
  262. package/dist/chunk-mx28h61f.js +1147 -0
  263. package/dist/chunk-my57sgky.js +883 -0
  264. package/dist/{chunk-k48thqgp.js → chunk-myk8saf6.js} +95 -190
  265. package/dist/chunk-n2zdmx4g.js +66 -0
  266. package/dist/{chunk-720qpv6d.js → chunk-n833arxq.js} +79 -63
  267. package/dist/{chunk-w2z5pqd3.js → chunk-n9ktjngj.js} +6 -6
  268. package/dist/{chunk-2tw2ve8h.js → chunk-nb2ntesh.js} +14 -10
  269. package/dist/{chunk-y18mc4m4.js → chunk-nbqv8ref.js} +10 -10
  270. package/dist/{chunk-74v9z7z4.js → chunk-nd4rncgd.js} +3 -13
  271. package/dist/chunk-nda50ze4.js +341 -0
  272. package/dist/{chunk-gb2q3nvc.js → chunk-nea2sah6.js} +5 -5
  273. package/dist/{chunk-t36rb2a8.js → chunk-nefsxetf.js} +294 -500
  274. package/dist/chunk-netzwgv1.js +154 -0
  275. package/dist/chunk-nfk9e540.js +107 -0
  276. package/dist/{chunk-xszk7n10.js → chunk-nh3cd07f.js} +1 -1
  277. package/dist/chunk-njq2hmjy.js +270 -0
  278. package/dist/chunk-nn5j7h8a.js +156 -0
  279. package/dist/{chunk-6fjab2dp.js → chunk-nrvkwzmq.js} +2 -2
  280. package/dist/chunk-nsextsmp.js +360 -0
  281. package/dist/{chunk-amhzxqj4.js → chunk-nt90fta7.js} +5 -5
  282. package/dist/{chunk-qbx1rq4f.js → chunk-p6sqbnqb.js} +193 -327
  283. package/dist/chunk-p8c23zr7.js +61 -0
  284. package/dist/chunk-p8enbwjk.js +183 -0
  285. package/dist/chunk-p8yggvgf.js +436 -0
  286. package/dist/{chunk-96awg5tc.js → chunk-pcfhe19b.js} +80 -17
  287. package/dist/{chunk-sfq65q9w.js → chunk-pgv9sa3a.js} +10 -14
  288. package/dist/chunk-ppwjyveh.js +8 -0
  289. package/dist/chunk-ppxvfp6m.js +424 -0
  290. package/dist/{chunk-zsfxha74.js → chunk-pshjyzq4.js} +8 -7
  291. package/dist/{chunk-35x3tjnr.js → chunk-pwr83fyy.js} +14 -8
  292. package/dist/chunk-q1976kze.js +473 -0
  293. package/dist/chunk-q387p8pp.js +943 -0
  294. package/dist/{chunk-b6av9ny9.js → chunk-q3ffkhnp.js} +132 -20
  295. package/dist/{chunk-w7wgpqcp.js → chunk-q50q8mc5.js} +7 -7
  296. package/dist/{chunk-e5pntxye.js → chunk-q7tpyeb3.js} +6 -4
  297. package/dist/{chunk-7ymfj7m3.js → chunk-q82r31er.js} +1 -1
  298. package/dist/chunk-qajrkk97.js +298 -0
  299. package/dist/chunk-qdazcrd7.js +362 -0
  300. package/dist/chunk-qhwvhgty.js +61 -0
  301. package/dist/{chunk-455a8z6g.js → chunk-qqk0kvsw.js} +138 -98
  302. package/dist/chunk-qqya1xyt.js +513 -0
  303. package/dist/{chunk-mzdwvbb0.js → chunk-qs6wypj1.js} +2 -2
  304. package/dist/chunk-qtahf5s5.js +113 -0
  305. package/dist/{chunk-tj79kfmn.js → chunk-qv9phqbv.js} +7 -7
  306. package/dist/{chunk-r5k04v8g.js → chunk-qyygv221.js} +13 -9
  307. package/dist/{chunk-zfc67eqj.js → chunk-r34f6vwc.js} +4 -4
  308. package/dist/{chunk-nerv0jvx.js → chunk-r59rgjxq.js} +1 -1
  309. package/dist/{chunk-7sb5axvf.js → chunk-r7j395t6.js} +2 -2
  310. package/dist/chunk-rb31sqzm.js +106 -0
  311. package/dist/{chunk-twsxz9ph.js → chunk-rbwy1qmm.js} +42 -31
  312. package/dist/{chunk-99t8enmg.js → chunk-re3crc6t.js} +10 -7
  313. package/dist/chunk-rhw4ayb1.js +6851 -0
  314. package/dist/{chunk-h6wtwdk0.js → chunk-rm31ynek.js} +8 -8
  315. package/dist/{chunk-eqrh0yjm.js → chunk-rr4e4axp.js} +2 -2
  316. package/dist/{chunk-neh2frnn.js → chunk-rs8304k5.js} +6 -6
  317. package/dist/{chunk-gax0fcbx.js → chunk-s1s8qfdh.js} +5 -5
  318. package/dist/{chunk-src9fqj8.js → chunk-s2483y2h.js} +3 -3
  319. package/dist/chunk-s2nhzjmt.js +113 -0
  320. package/dist/{chunk-7jma9mhn.js → chunk-sfhws681.js} +77 -61
  321. package/dist/{chunk-e3g8q4cn.js → chunk-sg66v252.js} +10 -8
  322. package/dist/{chunk-vp25xhav.js → chunk-szyt0xvf.js} +69 -78
  323. package/dist/{chunk-v7455ztd.js → chunk-t7j91et3.js} +86 -67
  324. package/dist/{chunk-mt25echc.js → chunk-tezak8rx.js} +1 -1
  325. package/dist/chunk-tf1p9trz.js +190 -0
  326. package/dist/{chunk-05gxvwvf.js → chunk-tm82sqkr.js} +96 -79
  327. package/dist/chunk-tpjetyb0.js +106 -0
  328. package/dist/chunk-trxvrrac.js +149 -0
  329. package/dist/chunk-tv9pcdnz.js +51 -0
  330. package/dist/{chunk-e5tfw9f7.js → chunk-twh7pzm8.js} +248 -307
  331. package/dist/{chunk-1x2wb3tc.js → chunk-txfvkh0w.js} +8 -8
  332. package/dist/chunk-var1et7e.js +66 -0
  333. package/dist/{chunk-se7v9emp.js → chunk-vbhvx4ma.js} +12 -10
  334. package/dist/{chunk-hqmz36b3.js → chunk-vf612n57.js} +21 -101
  335. package/dist/{chunk-3sdp7ds7.js → chunk-vfcty2ga.js} +10 -10
  336. package/dist/chunk-vhhyv8z8.js +147 -0
  337. package/dist/{chunk-48z7dgy1.js → chunk-vjcxs86z.js} +3 -3
  338. package/dist/{chunk-k5bpc8d5.js → chunk-vmnf3h9c.js} +43 -32
  339. package/dist/{chunk-fpjeh2em.js → chunk-vr7wmmyn.js} +17 -13
  340. package/dist/{chunk-9ewmqkgb.js → chunk-vxp2mhqy.js} +8 -8
  341. package/dist/{chunk-d238zp4m.js → chunk-w4gwnrwa.js} +2 -2
  342. package/dist/{chunk-jhsywyw8.js → chunk-wahkzh83.js} +9 -9
  343. package/dist/chunk-wdd4en5q.js +117 -0
  344. package/dist/{chunk-gm2m2yba.js → chunk-wgfnd174.js} +43 -32
  345. package/dist/chunk-wk1jw4dm.js +139 -0
  346. package/dist/chunk-wnpjc8hg.js +1018 -0
  347. package/dist/chunk-wv1t041q.js +151 -0
  348. package/dist/chunk-wvtmrmaj.js +130 -0
  349. package/dist/chunk-wyavftcj.js +103 -0
  350. package/dist/{chunk-4589pec2.js → chunk-x2dp18yj.js} +18 -46
  351. package/dist/{chunk-fj4hkg6k.js → chunk-x474ybns.js} +79 -110
  352. package/dist/chunk-x67cvhb8.js +134 -0
  353. package/dist/chunk-x6r4v44b.js +8 -0
  354. package/dist/{chunk-s0xfxkys.js → chunk-xk9pxqqx.js} +6 -6
  355. package/dist/{chunk-m06q12hg.js → chunk-xkt36p6r.js} +1 -1
  356. package/dist/{chunk-g653q217.js → chunk-xnav6j8h.js} +62 -374
  357. package/dist/chunk-xrjb0zyc.js +146 -0
  358. package/dist/chunk-xv3era3s.js +8 -0
  359. package/dist/{chunk-p7g7pf3f.js → chunk-y3r7v9pq.js} +4 -4
  360. package/dist/{chunk-3sagmdbp.js → chunk-y4szkj7r.js} +80 -64
  361. package/dist/{chunk-7d2700y8.js → chunk-y8syxjw1.js} +24 -54
  362. package/dist/chunk-y98z50mm.js +158 -0
  363. package/dist/chunk-ycrfxq10.js +123 -0
  364. package/dist/{chunk-8440dz44.js → chunk-yfjzdc0q.js} +9 -9
  365. package/dist/{chunk-cejskpky.js → chunk-ygf7pmmr.js} +145 -153
  366. package/dist/chunk-yha3z3ab.js +259 -0
  367. package/dist/chunk-ym5r3jnk.js +2007 -0
  368. package/dist/{chunk-28r6z9br.js → chunk-ys2gtqb0.js} +1 -3
  369. package/dist/{chunk-rzgtgtaf.js → chunk-ytg2n0dd.js} +7 -7
  370. package/dist/{chunk-q5hb65kq.js → chunk-ytzw9kw1.js} +78 -62
  371. package/dist/chunk-yzx3mhfd.js +110 -0
  372. package/dist/chunk-z1bs6d7k.js +24 -0
  373. package/dist/{chunk-6h9zcxaa.js → chunk-z1mvcq39.js} +4 -4
  374. package/dist/{chunk-gbq6jz9a.js → chunk-z3qhctbk.js} +134 -170
  375. package/dist/chunk-z9jn3442.js +146 -0
  376. package/dist/{chunk-5q7c8vt9.js → chunk-zbsz51qa.js} +41 -32
  377. package/dist/{chunk-n1erf6kh.js → chunk-ze6zvkg6.js} +5 -5
  378. package/dist/{chunk-t0rgmccj.js → chunk-zejm280k.js} +1 -1
  379. package/dist/{chunk-gfkppe34.js → chunk-zf47p99b.js} +10 -10
  380. package/dist/{chunk-53nbpp47.js → chunk-zhtrjznv.js} +557 -1502
  381. package/dist/{chunk-das977za.js → chunk-zq6tz1zv.js} +61 -100
  382. package/dist/chunk-zrw9gm80.js +264 -0
  383. package/dist/chunk-zseb1639.js +37 -0
  384. package/dist/{chunk-spqaamnc.js → chunk-zsgha506.js} +2 -2
  385. package/dist/chunk-zst7b4sp.js +2840 -0
  386. package/dist/{chunk-0xn1zr3e.js → chunk-zxkzzpgd.js} +145 -121
  387. package/dist/{chunk-g3t0act8.js → chunk-zzm33q8x.js} +1 -1
  388. package/dist/cli.js +20 -117
  389. package/dist/download-ripgrep.js +24821 -0
  390. package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
  391. package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
  392. package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
  393. package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
  394. package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
  395. package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
  396. package/package.json +22 -14
  397. package/scripts/download-ripgrep.ts +335 -0
  398. package/scripts/postinstall.cjs +319 -0
  399. package/dist/chunk-0gemty6d.js +0 -70
  400. package/dist/chunk-0pjw8y9z.js +0 -2833
  401. package/dist/chunk-1c8z1b5v.js +0 -16
  402. package/dist/chunk-1ebedmba.js +0 -90
  403. package/dist/chunk-1rvz0433.js +0 -722
  404. package/dist/chunk-1wfb8e3m.js +0 -107
  405. package/dist/chunk-2qjywwq4.js +0 -3445
  406. package/dist/chunk-2y659zbj.js +0 -103
  407. package/dist/chunk-41md7gny.js +0 -91
  408. package/dist/chunk-45m062tx.js +0 -2058
  409. package/dist/chunk-4br37gsw.js +0 -107
  410. package/dist/chunk-4nfrc6sq.js +0 -2431
  411. package/dist/chunk-4pdedeb4.js +0 -2644
  412. package/dist/chunk-4wzyhqbt.js +0 -444
  413. package/dist/chunk-4zsw4fhp.js +0 -67
  414. package/dist/chunk-52wv09zw.js +0 -102
  415. package/dist/chunk-55sfqnz4.js +0 -1921
  416. package/dist/chunk-5cd9cptq.js +0 -110
  417. package/dist/chunk-5dbk24zg.js +0 -890
  418. package/dist/chunk-5tfppbkq.js +0 -55
  419. package/dist/chunk-60xyrp86.js +0 -117
  420. package/dist/chunk-6deqb0mc.js +0 -376
  421. package/dist/chunk-6kpbgc5w.js +0 -23
  422. package/dist/chunk-6ndpfxcn.js +0 -222
  423. package/dist/chunk-7nvpa5ex.js +0 -123
  424. package/dist/chunk-7va8tw32.js +0 -128
  425. package/dist/chunk-7z3tkgec.js +0 -66
  426. package/dist/chunk-8e8set87.js +0 -281
  427. package/dist/chunk-8fg1egbv.js +0 -107
  428. package/dist/chunk-8thd6sgk.js +0 -106
  429. package/dist/chunk-8ytkb7k9.js +0 -84
  430. package/dist/chunk-9s5nkgsg.js +0 -699
  431. package/dist/chunk-9wce9hrc.js +0 -1015
  432. package/dist/chunk-9y91z69v.js +0 -44
  433. package/dist/chunk-ae76ded0.js +0 -30
  434. package/dist/chunk-b0eez8w0.js +0 -169
  435. package/dist/chunk-b57sb1dw.js +0 -642
  436. package/dist/chunk-bg3mt9bm.js +0 -28
  437. package/dist/chunk-bhdt6k7w.js +0 -15
  438. package/dist/chunk-bm1qb16p.js +0 -17
  439. package/dist/chunk-bsbmmfyt.js +0 -17
  440. package/dist/chunk-c7q12yes.js +0 -269
  441. package/dist/chunk-cv6y320h.js +0 -299
  442. package/dist/chunk-cvy3vntc.js +0 -65
  443. package/dist/chunk-cy2hswr1.js +0 -15
  444. package/dist/chunk-d5d398m4.js +0 -184
  445. package/dist/chunk-d7q4zp2z.js +0 -89
  446. package/dist/chunk-dnk519qv.js +0 -94
  447. package/dist/chunk-dqqde43e.js +0 -93
  448. package/dist/chunk-dy4ayw0p.js +0 -522
  449. package/dist/chunk-e4ak3jfc.js +0 -1154
  450. package/dist/chunk-e64spn53.js +0 -283
  451. package/dist/chunk-e8pk14j0.js +0 -527
  452. package/dist/chunk-eashsrsv.js +0 -88
  453. package/dist/chunk-eb90vwvr.js +0 -152
  454. package/dist/chunk-ese2g7hc.js +0 -92
  455. package/dist/chunk-et4jnyb5.js +0 -713
  456. package/dist/chunk-fdy0651p.js +0 -212
  457. package/dist/chunk-frsyts9j.js +0 -1170
  458. package/dist/chunk-ft2jssz4.js +0 -424
  459. package/dist/chunk-g41hzcy2.js +0 -101
  460. package/dist/chunk-g8dr8vvj.js +0 -111
  461. package/dist/chunk-gj71pd83.js +0 -5395
  462. package/dist/chunk-gjdwtdch.js +0 -154
  463. package/dist/chunk-gyj242zr.js +0 -20
  464. package/dist/chunk-hr719wjg.js +0 -144
  465. package/dist/chunk-hs8ph4p8.js +0 -8
  466. package/dist/chunk-j7gpr82p.js +0 -105
  467. package/dist/chunk-jczedp5x.js +0 -91
  468. package/dist/chunk-jd0t67a6.js +0 -259
  469. package/dist/chunk-jgyp3mzg.js +0 -1318
  470. package/dist/chunk-jq1kp9yy.js +0 -90
  471. package/dist/chunk-jskhn7bz.js +0 -71
  472. package/dist/chunk-k5aas9d3.js +0 -6108
  473. package/dist/chunk-k8jcy7mj.js +0 -48
  474. package/dist/chunk-ka22ccvm.js +0 -1581
  475. package/dist/chunk-ka6jav10.js +0 -91
  476. package/dist/chunk-kq6j096k.js +0 -538
  477. package/dist/chunk-kqd0e3xj.js +0 -463
  478. package/dist/chunk-kqjrsah4.js +0 -85
  479. package/dist/chunk-m390jta5.js +0 -114
  480. package/dist/chunk-m44a9yfj.js +0 -90
  481. package/dist/chunk-m5c8ng6v.js +0 -328
  482. package/dist/chunk-meag7bbe.js +0 -89
  483. package/dist/chunk-mnsrmwn8.js +0 -604
  484. package/dist/chunk-mzj4mtye.js +0 -115
  485. package/dist/chunk-mzy911jq.js +0 -128
  486. package/dist/chunk-n0fwapk6.js +0 -347
  487. package/dist/chunk-nt0mgsh6.js +0 -496
  488. package/dist/chunk-nwcfrws3.js +0 -273
  489. package/dist/chunk-pa2xksyb.js +0 -57
  490. package/dist/chunk-pnhs96g8.js +0 -140
  491. package/dist/chunk-ps4c75j7.js +0 -105
  492. package/dist/chunk-q0yg73za.js +0 -490
  493. package/dist/chunk-q5by3da6.js +0 -8
  494. package/dist/chunk-qbmhde47.js +0 -92
  495. package/dist/chunk-qp3dw7b4.js +0 -100
  496. package/dist/chunk-qt0b9x2w.js +0 -42
  497. package/dist/chunk-qxe98jgk.js +0 -584
  498. package/dist/chunk-r7n42k56.js +0 -756
  499. package/dist/chunk-radsjrmv.js +0 -55
  500. package/dist/chunk-rckj9gd1.js +0 -55
  501. package/dist/chunk-rn4kqfvd.js +0 -99
  502. package/dist/chunk-rngmdt2v.js +0 -97
  503. package/dist/chunk-rs5e0520.js +0 -87
  504. package/dist/chunk-s274nv8k.js +0 -8
  505. package/dist/chunk-s7t2e2tw.js +0 -1493
  506. package/dist/chunk-sbbt0ct3.js +0 -90
  507. package/dist/chunk-t0mnk0qp.js +0 -105
  508. package/dist/chunk-t1qmy36p.js +0 -94
  509. package/dist/chunk-tdy66rf9.js +0 -116
  510. package/dist/chunk-tf40vqky.js +0 -70
  511. package/dist/chunk-tmcxeatp.js +0 -116
  512. package/dist/chunk-v3gm2day.js +0 -8
  513. package/dist/chunk-v496te8v.js +0 -192
  514. package/dist/chunk-vd2hwk8d.js +0 -61
  515. package/dist/chunk-vdsmt7v0.js +0 -998
  516. package/dist/chunk-vf3qxte3.js +0 -93
  517. package/dist/chunk-vfqe1jqj.js +0 -643
  518. package/dist/chunk-vk3270s6.js +0 -119
  519. package/dist/chunk-vsr9mbnq.js +0 -195
  520. package/dist/chunk-w18zryr9.js +0 -348
  521. package/dist/chunk-wdxcgk6m.js +0 -196
  522. package/dist/chunk-wef07p3j.js +0 -131
  523. package/dist/chunk-wf4q1xj3.js +0 -62
  524. package/dist/chunk-wjq4zq3t.js +0 -162
  525. package/dist/chunk-wp4hc4n7.js +0 -133
  526. package/dist/chunk-x0rjttct.js +0 -420
  527. package/dist/chunk-xdw5dv00.js +0 -8
  528. package/dist/chunk-xm8fv5c9.js +0 -469
  529. package/dist/chunk-xq5ztz4g.js +0 -130
  530. package/dist/chunk-xvcdtezw.js +0 -401
  531. package/dist/chunk-y7njq3z3.js +0 -1866
  532. package/dist/chunk-ycxwftfh.js +0 -97
  533. package/dist/chunk-yn38f69a.js +0 -105
  534. package/dist/chunk-yp5kc8hq.js +0 -372
  535. package/dist/chunk-z09n2krq.js +0 -752
  536. package/dist/chunk-zerg8qwf.js +0 -96
  537. package/dist/{chunk-p452k1xp.js → chunk-57s5mr32.js} +9 -9
  538. package/dist/{chunk-27xc1csx.js → chunk-dggvswz1.js} +3 -3
  539. package/dist/{chunk-zxzwfa0b.js → chunk-pbyq1tm3.js} +3 -3
@@ -2,45 +2,51 @@
2
2
  import {
3
3
  ClaudeMdExternalIncludesDialog,
4
4
  init_ClaudeMdExternalIncludesDialog
5
- } from "./chunk-fdy0651p.js";
5
+ } from "./chunk-bbr7mwpv.js";
6
6
  import {
7
7
  init_bridgeEnabled
8
- } from "./chunk-74v9z7z4.js";
8
+ } from "./chunk-nd4rncgd.js";
9
9
  import {
10
10
  ModelPicker,
11
11
  init_ModelPicker,
12
12
  init_extraUsage,
13
13
  isBilledAsExtraUsage
14
- } from "./chunk-et4jnyb5.js";
14
+ } from "./chunk-e9k5a3cy.js";
15
15
  import {
16
16
  ThemePicker,
17
17
  init_ThemePicker
18
- } from "./chunk-q0yg73za.js";
18
+ } from "./chunk-zrw9gm80.js";
19
19
  import {
20
20
  OverageCreditUpsell,
21
21
  init_OverageCreditUpsell,
22
22
  isEligibleForOverageCreditGrant
23
- } from "./chunk-v496te8v.js";
23
+ } from "./chunk-z9jn3442.js";
24
24
  import {
25
25
  SearchBox,
26
- init_SearchBox,
26
+ init_SearchBox
27
+ } from "./chunk-21mfpnva.js";
28
+ import {
27
29
  init_useSearchInput,
28
30
  useSearchInput
29
- } from "./chunk-f1rrxxcf.js";
31
+ } from "./chunk-hs9w0p45.js";
30
32
  import {
31
33
  Tab,
32
- Tabs,
33
34
  init_Tabs,
34
35
  useTabHeaderFocus
35
- } from "./chunk-yp5kc8hq.js";
36
+ } from "./chunk-2xcr3eqt.js";
37
+ import {
38
+ init_modalContext,
39
+ useIsInsideModal,
40
+ useModalOrTerminalSize
41
+ } from "./chunk-z1bs6d7k.js";
36
42
  import {
37
43
  fetchUtilization,
38
44
  init_usage
39
- } from "./chunk-src9fqj8.js";
45
+ } from "./chunk-s2483y2h.js";
40
46
  import {
47
+ ConfigurableShortcutHint,
41
48
  DEFAULT_OUTPUT_STYLE_NAME,
42
49
  OUTPUT_STYLE_CONFIG,
43
- ProgressBar,
44
50
  Select,
45
51
  TextInput,
46
52
  buildAPIProviderProperties,
@@ -52,6 +58,7 @@ import {
52
58
  buildMemoryDiagnostics,
53
59
  buildSandboxProperties,
54
60
  buildSettingSourcesProperties,
61
+ exports_BriefTool,
55
62
  extraUsage,
56
63
  formatCost,
57
64
  getAllOutputStyles,
@@ -63,12 +70,14 @@ import {
63
70
  hasAccessToIDEExtensionDiffFeature,
64
71
  hasExternalClaudeMdIncludes,
65
72
  init_AppState,
73
+ init_BriefTool,
74
+ init_ConfigurableShortcutHint,
66
75
  init_CustomSelect,
67
- init_ProgressBar,
68
76
  init_TextInput,
69
77
  init_claudemd,
70
78
  init_cost_tracker,
71
79
  init_extra_usage,
80
+ init_fullscreen,
72
81
  init_ide,
73
82
  init_outputStyles,
74
83
  init_permissionSetup,
@@ -76,59 +85,31 @@ import {
76
85
  init_sessionStorage,
77
86
  init_status,
78
87
  init_teammateModel,
88
+ init_useTerminalSize,
89
+ isFullscreenEnvEnabled,
79
90
  isSupportedTerminal,
80
91
  transitionPlanAutoMode,
81
92
  useAppState,
82
93
  useAppStateStore,
83
- useSetAppState
84
- } from "./chunk-5frcqxsv.js";
94
+ useSetAppState,
95
+ useTerminalSize
96
+ } from "./chunk-4m6k7588.js";
85
97
  import {
86
98
  clearCliTeammateModeOverride,
87
99
  getCliTeammateModeOverride,
88
100
  init_teammateModeSnapshot
89
- } from "./chunk-q6b51yc5.js";
90
- import {
91
- Byline,
92
- ConfigurableShortcutHint,
93
- Dialog,
94
- KeyboardShortcutHint,
95
- init_Byline,
96
- init_ConfigurableShortcutHint,
97
- init_Dialog,
98
- init_KeyboardShortcutHint
99
- } from "./chunk-kqd0e3xj.js";
101
+ } from "./chunk-9z4vq44b.js";
100
102
  import {
101
103
  init_useExitOnCtrlCDWithKeybindings,
102
104
  useExitOnCtrlCDWithKeybindings
103
- } from "./chunk-rn4kqfvd.js";
105
+ } from "./chunk-2cctz9ww.js";
104
106
  import {
105
- Pane,
106
- init_Pane,
107
- init_modalContext,
108
107
  init_useKeybinding,
109
- init_useTerminalSize,
110
- useIsInsideModal,
111
108
  useKeybinding,
112
- useKeybindings,
113
- useModalOrTerminalSize,
114
- useTerminalSize
115
- } from "./chunk-g653q217.js";
116
- import {
117
- ThemedBox_default,
118
- ThemedText,
119
- init_fullscreen,
120
- init_ink,
121
- isFullscreenEnvEnabled,
122
- require_compiler_runtime,
123
- useTerminalFocus,
124
- useTheme,
125
- useThemeSetting
126
- } from "./chunk-z72st5c8.js";
127
- import {
128
- require_jsx_dev_runtime,
129
- require_react
130
- } from "./chunk-g338npwr.js";
109
+ useKeybindings
110
+ } from "./chunk-xnav6j8h.js";
131
111
  import {
112
+ EXTERNAL_PERMISSION_MODES,
132
113
  FAST_MODE_MODEL_DISPLAY,
133
114
  clearFastModeCooldown,
134
115
  formatAutoUpdaterDisabledReason,
@@ -149,7 +130,6 @@ import {
149
130
  init_growthbook,
150
131
  init_model,
151
132
  init_settings1 as init_settings,
152
- init_source,
153
133
  isAgentSwarmsEnabled,
154
134
  isExternalPermissionMode,
155
135
  isFastModeAvailable,
@@ -161,50 +141,67 @@ import {
161
141
  permissionModeFromString,
162
142
  permissionModeTitle,
163
143
  saveGlobalConfig,
164
- source_default,
165
144
  toExternalPermissionMode,
166
145
  updateSettingsForSource
167
- } from "./chunk-53nbpp47.js";
168
- import {
169
- EXTERNAL_PERMISSION_MODES
170
- } from "./chunk-6kpbgc5w.js";
146
+ } from "./chunk-zhtrjznv.js";
171
147
  import {
172
148
  formatResetText,
173
149
  init_format
174
- } from "./chunk-1rvz0433.js";
150
+ } from "./chunk-64hks9ax.js";
151
+ import {
152
+ Byline,
153
+ Dialog,
154
+ KeyboardShortcutHint,
155
+ Pane,
156
+ ProgressBar,
157
+ Tabs,
158
+ ThemedBox_default,
159
+ ThemedText,
160
+ init_source,
161
+ init_src,
162
+ source_default,
163
+ useTerminalFocus,
164
+ useTheme,
165
+ useThemeSetting
166
+ } from "./chunk-cmsknj6n.js";
167
+ import {
168
+ require_jsx_dev_runtime,
169
+ require_react
170
+ } from "./chunk-g338npwr.js";
175
171
  import {
176
172
  init_analytics,
177
173
  logEvent
178
- } from "./chunk-f2mhrmww.js";
174
+ } from "./chunk-h0rbjg6x.js";
179
175
  import {
180
- figures_default,
181
- init_figures
182
- } from "./chunk-hx2tr4ep.js";
176
+ getCwd,
177
+ init_cwd
178
+ } from "./chunk-b81hd3m6.js";
183
179
  import {
184
180
  init_log,
185
181
  logError
186
- } from "./chunk-p7g7pf3f.js";
182
+ } from "./chunk-y3r7v9pq.js";
187
183
  import {
188
- getCwd,
189
- init_cwd
190
- } from "./chunk-8bedvdm1.js";
184
+ figures_default,
185
+ init_figures
186
+ } from "./chunk-qajrkk97.js";
191
187
  import {
192
188
  init_slowOperations,
193
189
  jsonStringify
194
- } from "./chunk-nxsh6de2.js";
190
+ } from "./chunk-404qm8xt.js";
195
191
  import {
196
192
  init_envUtils,
197
193
  isEnvTruthy,
198
194
  isRunningOnHomespace
199
- } from "./chunk-3r24h7t6.js";
195
+ } from "./chunk-jaaxk89e.js";
200
196
  import {
201
197
  getSessionId,
202
198
  getUserMsgOptIn,
203
199
  init_state,
204
200
  setUserMsgOptIn
205
- } from "./chunk-qqfa0dqg.js";
201
+ } from "./chunk-h4b85amj.js";
206
202
  import {
207
203
  __esm,
204
+ __toCommonJS,
208
205
  __toESM
209
206
  } from "./chunk-qp2qdcda.js";
210
207
 
@@ -216,19 +213,14 @@ function buildPrimarySection() {
216
213
  dimColor: true,
217
214
  children: "/rename to add a name"
218
215
  }, undefined, false, undefined, this);
219
- return [{
220
- label: "Version",
221
- value: MACRO.VERSION
222
- }, {
223
- label: "Session name",
224
- value: nameValue
225
- }, {
226
- label: "Session ID",
227
- value: sessionId
228
- }, {
229
- label: "cwd",
230
- value: getCwd()
231
- }, ...buildAccountProperties(), ...buildAPIProviderProperties()];
216
+ return [
217
+ { label: "Version", value: "2.1.888" },
218
+ { label: "Session name", value: nameValue },
219
+ { label: "Session ID", value: sessionId },
220
+ { label: "cwd", value: getCwd() },
221
+ ...buildAccountProperties(),
222
+ ...buildAPIProviderProperties()
223
+ ];
232
224
  }
233
225
  function buildSecondarySection({
234
226
  mainLoopModel,
@@ -237,413 +229,205 @@ function buildSecondarySection({
237
229
  context
238
230
  }) {
239
231
  const modelLabel = getModelDisplayLabel(mainLoopModel);
240
- return [{
241
- label: "Model",
242
- value: modelLabel
243
- }, ...buildIDEProperties(mcp.clients, context.options.ideInstallationStatus, theme), ...buildMcpProperties(mcp.clients, theme), ...buildSandboxProperties(), ...buildSettingSourcesProperties()];
232
+ return [
233
+ { label: "Model", value: modelLabel },
234
+ ...buildIDEProperties(mcp.clients, context.options.ideInstallationStatus, theme),
235
+ ...buildMcpProperties(mcp.clients, theme),
236
+ ...buildSandboxProperties(),
237
+ ...buildSettingSourcesProperties()
238
+ ];
244
239
  }
245
240
  async function buildDiagnostics() {
246
- return [...await buildInstallationDiagnostics(), ...await buildInstallationHealthDiagnostics(), ...await buildMemoryDiagnostics()];
241
+ return [
242
+ ...await buildInstallationDiagnostics(),
243
+ ...await buildInstallationHealthDiagnostics(),
244
+ ...await buildMemoryDiagnostics()
245
+ ];
247
246
  }
248
- function PropertyValue(t0) {
249
- const $ = import_compiler_runtime.c(8);
250
- const {
251
- value
252
- } = t0;
247
+ function PropertyValue({
248
+ value
249
+ }) {
253
250
  if (Array.isArray(value)) {
254
- let t1;
255
- if ($[0] !== value) {
256
- let t22;
257
- if ($[2] !== value.length) {
258
- t22 = (item, i) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
251
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
252
+ flexWrap: "wrap",
253
+ columnGap: 1,
254
+ flexShrink: 99,
255
+ children: value.map((item, i) => {
256
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
259
257
  children: [
260
258
  item,
261
259
  i < value.length - 1 ? "," : ""
262
260
  ]
263
261
  }, i, true, undefined, this);
264
- $[2] = value.length;
265
- $[3] = t22;
266
- } else {
267
- t22 = $[3];
268
- }
269
- t1 = value.map(t22);
270
- $[0] = value;
271
- $[1] = t1;
272
- } else {
273
- t1 = $[1];
274
- }
275
- let t2;
276
- if ($[4] !== t1) {
277
- t2 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
278
- flexWrap: "wrap",
279
- columnGap: 1,
280
- flexShrink: 99,
281
- children: t1
282
- }, undefined, false, undefined, this);
283
- $[4] = t1;
284
- $[5] = t2;
285
- } else {
286
- t2 = $[5];
287
- }
288
- return t2;
262
+ })
263
+ }, undefined, false, undefined, this);
289
264
  }
290
265
  if (typeof value === "string") {
291
- let t1;
292
- if ($[6] !== value) {
293
- t1 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
294
- children: value
295
- }, undefined, false, undefined, this);
296
- $[6] = value;
297
- $[7] = t1;
298
- } else {
299
- t1 = $[7];
300
- }
301
- return t1;
266
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
267
+ children: value
268
+ }, undefined, false, undefined, this);
302
269
  }
303
270
  return value;
304
271
  }
305
- function Status(t0) {
306
- const $ = import_compiler_runtime.c(20);
307
- const {
308
- context,
309
- diagnosticsPromise
310
- } = t0;
311
- const mainLoopModel = useAppState(_temp);
312
- const mcp = useAppState(_temp2);
272
+ function Status({
273
+ context,
274
+ diagnosticsPromise
275
+ }) {
276
+ const mainLoopModel = useAppState((s) => s.mainLoopModel);
277
+ const mcp = useAppState((s) => s.mcp);
313
278
  const [theme] = useTheme();
314
- let t1;
315
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
316
- t1 = buildPrimarySection();
317
- $[0] = t1;
318
- } else {
319
- t1 = $[0];
320
- }
321
- let t2;
322
- if ($[1] !== context || $[2] !== mainLoopModel || $[3] !== mcp || $[4] !== theme) {
323
- t2 = buildSecondarySection({
324
- mainLoopModel,
325
- mcp,
326
- theme,
327
- context
328
- });
329
- $[1] = context;
330
- $[2] = mainLoopModel;
331
- $[3] = mcp;
332
- $[4] = theme;
333
- $[5] = t2;
334
- } else {
335
- t2 = $[5];
336
- }
337
- let t3;
338
- if ($[6] !== t2) {
339
- t3 = [t1, t2];
340
- $[6] = t2;
341
- $[7] = t3;
342
- } else {
343
- t3 = $[7];
344
- }
345
- const sections = t3;
279
+ const sections = React.useMemo(() => [
280
+ buildPrimarySection(),
281
+ buildSecondarySection({ mainLoopModel, mcp, theme, context })
282
+ ], [mainLoopModel, mcp, theme, context]);
346
283
  const grow = useIsInsideModal() ? 1 : undefined;
347
- let t4;
348
- if ($[8] !== sections) {
349
- t4 = sections.map(_temp4);
350
- $[8] = sections;
351
- $[9] = t4;
352
- } else {
353
- t4 = $[9];
354
- }
355
- let t5;
356
- if ($[10] !== diagnosticsPromise) {
357
- t5 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(import_react.Suspense, {
358
- fallback: null,
359
- children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Diagnostics, {
360
- promise: diagnosticsPromise
361
- }, undefined, false, undefined, this)
362
- }, undefined, false, undefined, this);
363
- $[10] = diagnosticsPromise;
364
- $[11] = t5;
365
- } else {
366
- t5 = $[11];
367
- }
368
- let t6;
369
- if ($[12] !== grow || $[13] !== t4 || $[14] !== t5) {
370
- t6 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
371
- flexDirection: "column",
372
- gap: 1,
373
- flexGrow: grow,
374
- children: [
375
- t4,
376
- t5
377
- ]
378
- }, undefined, true, undefined, this);
379
- $[12] = grow;
380
- $[13] = t4;
381
- $[14] = t5;
382
- $[15] = t6;
383
- } else {
384
- t6 = $[15];
385
- }
386
- let t7;
387
- if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
388
- t7 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
389
- dimColor: true,
390
- children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ConfigurableShortcutHint, {
391
- action: "confirm:no",
392
- context: "Settings",
393
- fallback: "Esc",
394
- description: "cancel"
395
- }, undefined, false, undefined, this)
396
- }, undefined, false, undefined, this);
397
- $[16] = t7;
398
- } else {
399
- t7 = $[16];
400
- }
401
- let t8;
402
- if ($[17] !== grow || $[18] !== t6) {
403
- t8 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
404
- flexDirection: "column",
405
- flexGrow: grow,
406
- children: [
407
- t6,
408
- t7
409
- ]
410
- }, undefined, true, undefined, this);
411
- $[17] = grow;
412
- $[18] = t6;
413
- $[19] = t8;
414
- } else {
415
- t8 = $[19];
416
- }
417
- return t8;
418
- }
419
- function _temp4(properties, i) {
420
- return properties.length > 0 && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
421
- flexDirection: "column",
422
- children: properties.map(_temp3)
423
- }, i, false, undefined, this);
424
- }
425
- function _temp3(t0, j) {
426
- const {
427
- label,
428
- value
429
- } = t0;
430
284
  return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
431
- flexDirection: "row",
432
- gap: 1,
433
- flexShrink: 0,
285
+ flexDirection: "column",
286
+ flexGrow: grow,
434
287
  children: [
435
- label !== undefined && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
436
- bold: true,
288
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
289
+ flexDirection: "column",
290
+ gap: 1,
291
+ flexGrow: grow,
437
292
  children: [
438
- label,
439
- ":"
293
+ sections.map((properties, i) => properties.length > 0 && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
294
+ flexDirection: "column",
295
+ children: properties.map(({ label, value }, j) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
296
+ flexDirection: "row",
297
+ gap: 1,
298
+ flexShrink: 0,
299
+ children: [
300
+ label !== undefined && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
301
+ bold: true,
302
+ children: [
303
+ label,
304
+ ":"
305
+ ]
306
+ }, undefined, true, undefined, this),
307
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(PropertyValue, {
308
+ value
309
+ }, undefined, false, undefined, this)
310
+ ]
311
+ }, j, true, undefined, this))
312
+ }, i, false, undefined, this)),
313
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(import_react.Suspense, {
314
+ fallback: null,
315
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Diagnostics, {
316
+ promise: diagnosticsPromise
317
+ }, undefined, false, undefined, this)
318
+ }, undefined, false, undefined, this)
440
319
  ]
441
320
  }, undefined, true, undefined, this),
442
- /* @__PURE__ */ jsx_dev_runtime.jsxDEV(PropertyValue, {
443
- value
321
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
322
+ dimColor: true,
323
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ConfigurableShortcutHint, {
324
+ action: "confirm:no",
325
+ context: "Settings",
326
+ fallback: "Esc",
327
+ description: "cancel"
328
+ }, undefined, false, undefined, this)
444
329
  }, undefined, false, undefined, this)
445
330
  ]
446
- }, j, true, undefined, this);
447
- }
448
- function _temp2(s_0) {
449
- return s_0.mcp;
450
- }
451
- function _temp(s) {
452
- return s.mainLoopModel;
331
+ }, undefined, true, undefined, this);
453
332
  }
454
- function Diagnostics(t0) {
455
- const $ = import_compiler_runtime.c(5);
456
- const {
457
- promise
458
- } = t0;
333
+ function Diagnostics({
334
+ promise
335
+ }) {
459
336
  const diagnostics = import_react.use(promise);
460
- if (diagnostics.length === 0) {
337
+ if (diagnostics.length === 0)
461
338
  return null;
462
- }
463
- let t1;
464
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
465
- t1 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
466
- bold: true,
467
- children: "System Diagnostics"
468
- }, undefined, false, undefined, this);
469
- $[0] = t1;
470
- } else {
471
- t1 = $[0];
472
- }
473
- let t2;
474
- if ($[1] !== diagnostics) {
475
- t2 = diagnostics.map(_temp5);
476
- $[1] = diagnostics;
477
- $[2] = t2;
478
- } else {
479
- t2 = $[2];
480
- }
481
- let t3;
482
- if ($[3] !== t2) {
483
- t3 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
484
- flexDirection: "column",
485
- paddingBottom: 1,
486
- children: [
487
- t1,
488
- t2
489
- ]
490
- }, undefined, true, undefined, this);
491
- $[3] = t2;
492
- $[4] = t3;
493
- } else {
494
- t3 = $[4];
495
- }
496
- return t3;
497
- }
498
- function _temp5(diagnostic, i) {
499
339
  return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
500
- flexDirection: "row",
501
- gap: 1,
502
- paddingX: 1,
340
+ flexDirection: "column",
341
+ paddingBottom: 1,
503
342
  children: [
504
343
  /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
505
- color: "error",
506
- children: figures_default.warning
344
+ bold: true,
345
+ children: "System Diagnostics"
507
346
  }, undefined, false, undefined, this),
508
- typeof diagnostic === "string" ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
509
- wrap: "wrap",
510
- children: diagnostic
511
- }, undefined, false, undefined, this) : diagnostic
347
+ diagnostics.map((diagnostic, i) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
348
+ flexDirection: "row",
349
+ gap: 1,
350
+ paddingX: 1,
351
+ children: [
352
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
353
+ color: "error",
354
+ children: figures_default.warning
355
+ }, undefined, false, undefined, this),
356
+ typeof diagnostic === "string" ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
357
+ wrap: "wrap",
358
+ children: diagnostic
359
+ }, undefined, false, undefined, this) : diagnostic
360
+ ]
361
+ }, i, true, undefined, this))
512
362
  ]
513
- }, i, true, undefined, this);
363
+ }, undefined, true, undefined, this);
514
364
  }
515
- var import_compiler_runtime, import_react, jsx_dev_runtime;
365
+ var React, import_react, jsx_dev_runtime;
516
366
  var init_Status = __esm(() => {
517
367
  init_figures();
518
368
  init_state();
519
369
  init_modalContext();
520
- init_ink();
370
+ init_src();
521
371
  init_AppState();
522
372
  init_cwd();
523
373
  init_sessionStorage();
524
374
  init_status();
525
375
  init_ConfigurableShortcutHint();
526
- import_compiler_runtime = __toESM(require_compiler_runtime(), 1);
376
+ React = __toESM(require_react(), 1);
527
377
  import_react = __toESM(require_react(), 1);
528
378
  jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
529
379
  });
530
380
 
531
381
  // src/components/ChannelDowngradeDialog.tsx
532
- function ChannelDowngradeDialog(t0) {
533
- const $ = import_compiler_runtime2.c(17);
534
- const {
535
- currentVersion,
536
- onChoice
537
- } = t0;
538
- let t1;
539
- if ($[0] !== onChoice) {
540
- t1 = function handleSelect2(value) {
541
- onChoice(value);
542
- };
543
- $[0] = onChoice;
544
- $[1] = t1;
545
- } else {
546
- t1 = $[1];
547
- }
548
- const handleSelect = t1;
549
- let t2;
550
- if ($[2] !== onChoice) {
551
- t2 = function handleCancel2() {
552
- onChoice("cancel");
553
- };
554
- $[2] = onChoice;
555
- $[3] = t2;
556
- } else {
557
- t2 = $[3];
558
- }
559
- const handleCancel = t2;
560
- let t3;
561
- if ($[4] !== currentVersion) {
562
- t3 = /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
563
- children: [
564
- "The stable channel may have an older version than what you're currently running (",
565
- currentVersion,
566
- ")."
567
- ]
568
- }, undefined, true, undefined, this);
569
- $[4] = currentVersion;
570
- $[5] = t3;
571
- } else {
572
- t3 = $[5];
573
- }
574
- let t4;
575
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
576
- t4 = /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
577
- dimColor: true,
578
- children: "How would you like to handle this?"
579
- }, undefined, false, undefined, this);
580
- $[6] = t4;
581
- } else {
582
- t4 = $[6];
583
- }
584
- let t5;
585
- if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
586
- t5 = {
587
- label: "Allow possible downgrade to stable version",
588
- value: "downgrade"
589
- };
590
- $[7] = t5;
591
- } else {
592
- t5 = $[7];
593
- }
594
- const t6 = `Stay on current version (${currentVersion}) until stable catches up`;
595
- let t7;
596
- if ($[8] !== t6) {
597
- t7 = [t5, {
598
- label: t6,
599
- value: "stay"
600
- }];
601
- $[8] = t6;
602
- $[9] = t7;
603
- } else {
604
- t7 = $[9];
605
- }
606
- let t8;
607
- if ($[10] !== handleSelect || $[11] !== t7) {
608
- t8 = /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Select, {
609
- options: t7,
610
- onChange: handleSelect
611
- }, undefined, false, undefined, this);
612
- $[10] = handleSelect;
613
- $[11] = t7;
614
- $[12] = t8;
615
- } else {
616
- t8 = $[12];
382
+ function ChannelDowngradeDialog({
383
+ currentVersion,
384
+ onChoice
385
+ }) {
386
+ function handleSelect(value) {
387
+ onChoice(value);
617
388
  }
618
- let t9;
619
- if ($[13] !== handleCancel || $[14] !== t3 || $[15] !== t8) {
620
- t9 = /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Dialog, {
621
- title: "Switch to Stable Channel",
622
- onCancel: handleCancel,
623
- color: "permission",
624
- hideBorder: true,
625
- hideInputGuide: true,
626
- children: [
627
- t3,
628
- t4,
629
- t8
630
- ]
631
- }, undefined, true, undefined, this);
632
- $[13] = handleCancel;
633
- $[14] = t3;
634
- $[15] = t8;
635
- $[16] = t9;
636
- } else {
637
- t9 = $[16];
389
+ function handleCancel() {
390
+ onChoice("cancel");
638
391
  }
639
- return t9;
392
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Dialog, {
393
+ title: "Switch to Stable Channel",
394
+ onCancel: handleCancel,
395
+ color: "permission",
396
+ hideBorder: true,
397
+ hideInputGuide: true,
398
+ children: [
399
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
400
+ children: [
401
+ "The stable channel may have an older version than what you're currently running (",
402
+ currentVersion,
403
+ ")."
404
+ ]
405
+ }, undefined, true, undefined, this),
406
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
407
+ dimColor: true,
408
+ children: "How would you like to handle this?"
409
+ }, undefined, false, undefined, this),
410
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Select, {
411
+ options: [
412
+ {
413
+ label: "Allow possible downgrade to stable version",
414
+ value: "downgrade"
415
+ },
416
+ {
417
+ label: `Stay on current version (${currentVersion}) until stable catches up`,
418
+ value: "stay"
419
+ }
420
+ ],
421
+ onChange: handleSelect
422
+ }, undefined, false, undefined, this)
423
+ ]
424
+ }, undefined, true, undefined, this);
640
425
  }
641
- var import_compiler_runtime2, jsx_dev_runtime2;
426
+ var jsx_dev_runtime2;
642
427
  var init_ChannelDowngradeDialog = __esm(() => {
643
- init_ink();
428
+ init_src();
644
429
  init_CustomSelect();
645
- init_Dialog();
646
- import_compiler_runtime2 = __toESM(require_compiler_runtime(), 1);
430
+ init_src();
647
431
  jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
648
432
  });
649
433
 
@@ -655,79 +439,45 @@ function mapConfigsToOptions(styles) {
655
439
  description: config?.description ?? DEFAULT_OUTPUT_STYLE_DESCRIPTION
656
440
  }));
657
441
  }
658
- function OutputStylePicker(t0) {
659
- const $ = import_compiler_runtime3.c(16);
660
- const {
661
- initialStyle,
662
- onComplete,
663
- onCancel,
664
- isStandaloneCommand
665
- } = t0;
666
- let t1;
667
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
668
- t1 = [];
669
- $[0] = t1;
670
- } else {
671
- t1 = $[0];
672
- }
673
- const [styleOptions, setStyleOptions] = import_react2.useState(t1);
442
+ function OutputStylePicker({
443
+ initialStyle,
444
+ onComplete,
445
+ onCancel,
446
+ isStandaloneCommand
447
+ }) {
448
+ const [styleOptions, setStyleOptions] = import_react2.useState([]);
674
449
  const [isLoading, setIsLoading] = import_react2.useState(true);
675
- let t2;
676
- let t3;
677
- if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
678
- t2 = () => {
679
- getAllOutputStyles(getCwd()).then((allStyles) => {
680
- const options = mapConfigsToOptions(allStyles);
681
- setStyleOptions(options);
682
- setIsLoading(false);
683
- }).catch(() => {
684
- const builtInOptions = mapConfigsToOptions(OUTPUT_STYLE_CONFIG);
685
- setStyleOptions(builtInOptions);
686
- setIsLoading(false);
687
- });
688
- };
689
- t3 = [];
690
- $[1] = t2;
691
- $[2] = t3;
692
- } else {
693
- t2 = $[1];
694
- t3 = $[2];
695
- }
696
- import_react2.useEffect(t2, t3);
697
- let t4;
698
- if ($[3] !== onComplete) {
699
- t4 = (style) => {
700
- const outputStyle = style;
701
- onComplete(outputStyle);
702
- };
703
- $[3] = onComplete;
704
- $[4] = t4;
705
- } else {
706
- t4 = $[4];
707
- }
708
- const handleStyleSelect = t4;
709
- const t5 = !isStandaloneCommand;
710
- const t6 = !isStandaloneCommand;
711
- let t7;
712
- if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
713
- t7 = /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
714
- marginTop: 1,
715
- children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
716
- dimColor: true,
717
- children: "This changes how Claude Code communicates with you"
718
- }, undefined, false, undefined, this)
719
- }, undefined, false, undefined, this);
720
- $[5] = t7;
721
- } else {
722
- t7 = $[5];
723
- }
724
- let t8;
725
- if ($[6] !== handleStyleSelect || $[7] !== initialStyle || $[8] !== isLoading || $[9] !== styleOptions) {
726
- t8 = /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
450
+ import_react2.useEffect(() => {
451
+ getAllOutputStyles(getCwd()).then((allStyles) => {
452
+ const options = mapConfigsToOptions(allStyles);
453
+ setStyleOptions(options);
454
+ setIsLoading(false);
455
+ }).catch(() => {
456
+ const builtInOptions = mapConfigsToOptions(OUTPUT_STYLE_CONFIG);
457
+ setStyleOptions(builtInOptions);
458
+ setIsLoading(false);
459
+ });
460
+ }, []);
461
+ const handleStyleSelect = import_react2.useCallback((style) => {
462
+ const outputStyle = style;
463
+ onComplete(outputStyle);
464
+ }, [onComplete]);
465
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Dialog, {
466
+ title: "Preferred output style",
467
+ onCancel,
468
+ hideInputGuide: !isStandaloneCommand,
469
+ hideBorder: !isStandaloneCommand,
470
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
727
471
  flexDirection: "column",
728
472
  gap: 1,
729
473
  children: [
730
- t7,
474
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
475
+ marginTop: 1,
476
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
477
+ dimColor: true,
478
+ children: "This changes how Claude Code communicates with you"
479
+ }, undefined, false, undefined, this)
480
+ }, undefined, false, undefined, this),
731
481
  isLoading ? /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
732
482
  dimColor: true,
733
483
  children: "Loading output styles\u2026"
@@ -738,160 +488,72 @@ function OutputStylePicker(t0) {
738
488
  defaultValue: initialStyle
739
489
  }, undefined, false, undefined, this)
740
490
  ]
741
- }, undefined, true, undefined, this);
742
- $[6] = handleStyleSelect;
743
- $[7] = initialStyle;
744
- $[8] = isLoading;
745
- $[9] = styleOptions;
746
- $[10] = t8;
747
- } else {
748
- t8 = $[10];
749
- }
750
- let t9;
751
- if ($[11] !== onCancel || $[12] !== t5 || $[13] !== t6 || $[14] !== t8) {
752
- t9 = /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Dialog, {
753
- title: "Preferred output style",
754
- onCancel,
755
- hideInputGuide: t5,
756
- hideBorder: t6,
757
- children: t8
758
- }, undefined, false, undefined, this);
759
- $[11] = onCancel;
760
- $[12] = t5;
761
- $[13] = t6;
762
- $[14] = t8;
763
- $[15] = t9;
764
- } else {
765
- t9 = $[15];
766
- }
767
- return t9;
491
+ }, undefined, true, undefined, this)
492
+ }, undefined, false, undefined, this);
768
493
  }
769
- var import_compiler_runtime3, import_react2, jsx_dev_runtime3, DEFAULT_OUTPUT_STYLE_LABEL = "Default", DEFAULT_OUTPUT_STYLE_DESCRIPTION = "Claude completes coding tasks efficiently and provides concise responses";
494
+ var import_react2, jsx_dev_runtime3, DEFAULT_OUTPUT_STYLE_LABEL = "Default", DEFAULT_OUTPUT_STYLE_DESCRIPTION = "Claude completes coding tasks efficiently and provides concise responses";
770
495
  var init_OutputStylePicker = __esm(() => {
771
496
  init_outputStyles();
772
- init_ink();
497
+ init_src();
773
498
  init_cwd();
774
499
  init_select();
775
- init_Dialog();
776
- import_compiler_runtime3 = __toESM(require_compiler_runtime(), 1);
777
500
  import_react2 = __toESM(require_react(), 1);
778
501
  jsx_dev_runtime3 = __toESM(require_jsx_dev_runtime(), 1);
779
502
  });
780
503
 
781
504
  // src/components/LanguagePicker.tsx
782
- function LanguagePicker(t0) {
783
- const $ = import_compiler_runtime4.c(13);
784
- const {
785
- initialLanguage,
786
- onComplete,
787
- onCancel
788
- } = t0;
505
+ function LanguagePicker({
506
+ initialLanguage,
507
+ onComplete,
508
+ onCancel
509
+ }) {
789
510
  const [language, setLanguage] = import_react3.useState(initialLanguage);
790
511
  const [cursorOffset, setCursorOffset] = import_react3.useState((initialLanguage ?? "").length);
791
- let t1;
792
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
793
- t1 = {
794
- context: "Settings"
795
- };
796
- $[0] = t1;
797
- } else {
798
- t1 = $[0];
512
+ useKeybinding("confirm:no", onCancel, { context: "Settings" });
513
+ function handleSubmit() {
514
+ const trimmed = language?.trim();
515
+ onComplete(trimmed || undefined);
799
516
  }
800
- useKeybinding("confirm:no", onCancel, t1);
801
- let t2;
802
- if ($[1] !== language || $[2] !== onComplete) {
803
- t2 = function handleSubmit2() {
804
- const trimmed = language?.trim();
805
- onComplete(trimmed || undefined);
806
- };
807
- $[1] = language;
808
- $[2] = onComplete;
809
- $[3] = t2;
810
- } else {
811
- t2 = $[3];
812
- }
813
- const handleSubmit = t2;
814
- let t3;
815
- if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
816
- t3 = /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
817
- children: "Enter your preferred response and voice language:"
818
- }, undefined, false, undefined, this);
819
- $[4] = t3;
820
- } else {
821
- t3 = $[4];
822
- }
823
- let t4;
824
- if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
825
- t4 = /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
826
- children: figures_default.pointer
827
- }, undefined, false, undefined, this);
828
- $[5] = t4;
829
- } else {
830
- t4 = $[5];
831
- }
832
- const t5 = language ?? "";
833
- let t6;
834
- if ($[6] !== cursorOffset || $[7] !== handleSubmit || $[8] !== t5) {
835
- t6 = /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
836
- flexDirection: "row",
837
- gap: 1,
838
- children: [
839
- t4,
840
- /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(TextInput, {
841
- value: t5,
842
- onChange: setLanguage,
843
- onSubmit: handleSubmit,
844
- focus: true,
845
- showCursor: true,
846
- placeholder: `e.g., Japanese, \u65E5\u672C\u8A9E, Espa\xF1ol${figures_default.ellipsis}`,
847
- columns: 60,
848
- cursorOffset,
849
- onChangeCursorOffset: setCursorOffset
850
- }, undefined, false, undefined, this)
851
- ]
852
- }, undefined, true, undefined, this);
853
- $[6] = cursorOffset;
854
- $[7] = handleSubmit;
855
- $[8] = t5;
856
- $[9] = t6;
857
- } else {
858
- t6 = $[9];
859
- }
860
- let t7;
861
- if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
862
- t7 = /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
863
- dimColor: true,
864
- children: "Leave empty for default (English)"
865
- }, undefined, false, undefined, this);
866
- $[10] = t7;
867
- } else {
868
- t7 = $[10];
869
- }
870
- let t8;
871
- if ($[11] !== t6) {
872
- t8 = /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
873
- flexDirection: "column",
874
- gap: 1,
875
- children: [
876
- t3,
877
- t6,
878
- t7
879
- ]
880
- }, undefined, true, undefined, this);
881
- $[11] = t6;
882
- $[12] = t8;
883
- } else {
884
- t8 = $[12];
885
- }
886
- return t8;
517
+ return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
518
+ flexDirection: "column",
519
+ gap: 1,
520
+ children: [
521
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
522
+ children: "Enter your preferred response and voice language:"
523
+ }, undefined, false, undefined, this),
524
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
525
+ flexDirection: "row",
526
+ gap: 1,
527
+ children: [
528
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
529
+ children: figures_default.pointer
530
+ }, undefined, false, undefined, this),
531
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(TextInput, {
532
+ value: language ?? "",
533
+ onChange: setLanguage,
534
+ onSubmit: handleSubmit,
535
+ focus: true,
536
+ showCursor: true,
537
+ placeholder: `e.g., Japanese, \u65E5\u672C\u8A9E, Espa\xF1ol${figures_default.ellipsis}`,
538
+ columns: 60,
539
+ cursorOffset,
540
+ onChangeCursorOffset: setCursorOffset
541
+ }, undefined, false, undefined, this)
542
+ ]
543
+ }, undefined, true, undefined, this),
544
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
545
+ dimColor: true,
546
+ children: "Leave empty for default (English)"
547
+ }, undefined, false, undefined, this)
548
+ ]
549
+ }, undefined, true, undefined, this);
887
550
  }
888
- var import_compiler_runtime4, import_react3, jsx_dev_runtime4;
551
+ var import_react3, jsx_dev_runtime4;
889
552
  var init_LanguagePicker = __esm(() => {
890
553
  init_figures();
891
- init_ink();
554
+ init_src();
892
555
  init_useKeybinding();
893
556
  init_TextInput();
894
- import_compiler_runtime4 = __toESM(require_compiler_runtime(), 1);
895
557
  import_react3 = __toESM(require_react(), 1);
896
558
  jsx_dev_runtime4 = __toESM(require_jsx_dev_runtime(), 1);
897
559
  });
@@ -904,61 +566,56 @@ function Config({
904
566
  onIsSearchModeChange,
905
567
  contentHeight
906
568
  }) {
907
- const {
908
- headerFocused,
909
- focusHeader
910
- } = useTabHeaderFocus();
569
+ const { headerFocused, focusHeader } = useTabHeaderFocus();
911
570
  const insideModal = useIsInsideModal();
912
571
  const [, setTheme] = useTheme();
913
572
  const themeSetting = useThemeSetting();
914
573
  const [globalConfig, setGlobalConfig] = import_react4.useState(getGlobalConfig());
915
- const initialConfig = React2.useRef(getGlobalConfig());
574
+ const initialConfig = React3.useRef(getGlobalConfig());
916
575
  const [settingsData, setSettingsData] = import_react4.useState(getInitialSettings());
917
- const initialSettingsData = React2.useRef(getInitialSettings());
576
+ const initialSettingsData = React3.useRef(getInitialSettings());
918
577
  const [currentOutputStyle, setCurrentOutputStyle] = import_react4.useState(settingsData?.outputStyle || DEFAULT_OUTPUT_STYLE_NAME);
919
- const initialOutputStyle = React2.useRef(currentOutputStyle);
578
+ const initialOutputStyle = React3.useRef(currentOutputStyle);
920
579
  const [currentLanguage, setCurrentLanguage] = import_react4.useState(settingsData?.language);
921
- const initialLanguage = React2.useRef(currentLanguage);
580
+ const initialLanguage = React3.useRef(currentLanguage);
922
581
  const [selectedIndex, setSelectedIndex] = import_react4.useState(0);
923
582
  const [scrollOffset, setScrollOffset] = import_react4.useState(0);
924
583
  const [isSearchMode, setIsSearchMode] = import_react4.useState(true);
925
584
  const isTerminalFocused = useTerminalFocus();
926
- const {
927
- rows
928
- } = useTerminalSize();
585
+ const { rows } = useTerminalSize();
929
586
  const paneCap = contentHeight ?? Math.min(Math.floor(rows * 0.8), 30);
930
587
  const maxVisible = Math.max(5, paneCap - 10);
931
588
  const mainLoopModel = useAppState((s) => s.mainLoopModel);
932
- const verbose = useAppState((s_0) => s_0.verbose);
933
- const thinkingEnabled = useAppState((s_1) => s_1.thinkingEnabled);
934
- const isFastMode = useAppState((s_2) => isFastModeEnabled() ? s_2.fastMode : false);
935
- const promptSuggestionEnabled = useAppState((s_3) => s_3.promptSuggestionEnabled);
589
+ const verbose = useAppState((s) => s.verbose);
590
+ const thinkingEnabled = useAppState((s) => s.thinkingEnabled);
591
+ const isFastMode = useAppState((s) => isFastModeEnabled() ? s.fastMode : false);
592
+ const promptSuggestionEnabled = useAppState((s) => s.promptSuggestionEnabled);
936
593
  const showAutoInDefaultModePicker = false;
937
- const showDefaultViewPicker = false;
594
+ const showDefaultViewPicker = (init_BriefTool(), __toCommonJS(exports_BriefTool)).isBriefEntitled();
938
595
  const setAppState = useSetAppState();
939
596
  const [changes, setChanges] = import_react4.useState({});
940
- const initialThinkingEnabled = React2.useRef(thinkingEnabled);
597
+ const initialThinkingEnabled = React3.useRef(thinkingEnabled);
941
598
  const [initialLocalSettings] = import_react4.useState(() => getSettingsForSource("localSettings"));
942
599
  const [initialUserSettings] = import_react4.useState(() => getSettingsForSource("userSettings"));
943
- const initialThemeSetting = React2.useRef(themeSetting);
600
+ const initialThemeSetting = React3.useRef(themeSetting);
944
601
  const store = useAppStateStore();
945
602
  const [initialAppState] = import_react4.useState(() => {
946
- const s_4 = store.getState();
603
+ const s = store.getState();
947
604
  return {
948
- mainLoopModel: s_4.mainLoopModel,
949
- mainLoopModelForSession: s_4.mainLoopModelForSession,
950
- verbose: s_4.verbose,
951
- thinkingEnabled: s_4.thinkingEnabled,
952
- fastMode: s_4.fastMode,
953
- promptSuggestionEnabled: s_4.promptSuggestionEnabled,
954
- isBriefOnly: s_4.isBriefOnly,
955
- replBridgeEnabled: s_4.replBridgeEnabled,
956
- replBridgeOutboundOnly: s_4.replBridgeOutboundOnly,
957
- settings: s_4.settings
605
+ mainLoopModel: s.mainLoopModel,
606
+ mainLoopModelForSession: s.mainLoopModelForSession,
607
+ verbose: s.verbose,
608
+ thinkingEnabled: s.thinkingEnabled,
609
+ fastMode: s.fastMode,
610
+ promptSuggestionEnabled: s.promptSuggestionEnabled,
611
+ isBriefOnly: s.isBriefOnly,
612
+ replBridgeEnabled: s.replBridgeEnabled,
613
+ replBridgeOutboundOnly: s.replBridgeOutboundOnly,
614
+ settings: s.settings
958
615
  };
959
616
  });
960
617
  const [initialUserMsgOptIn] = import_react4.useState(() => getUserMsgOptIn());
961
- const isDirty = React2.useRef(false);
618
+ const isDirty = React3.useRef(false);
962
619
  const [showThinkingWarning, setShowThinkingWarning] = import_react4.useState(false);
963
620
  const [showSubmenu, setShowSubmenu] = import_react4.useState(null);
964
621
  const {
@@ -972,12 +629,12 @@ function Config({
972
629
  passthroughCtrlKeys: ["c", "d"]
973
630
  });
974
631
  const ownsEsc = isSearchMode && !headerFocused;
975
- React2.useEffect(() => {
632
+ React3.useEffect(() => {
976
633
  onIsSearchModeChange?.(ownsEsc);
977
634
  }, [ownsEsc, onIsSearchModeChange]);
978
635
  const isConnectedToIde = hasAccessToIDEExtensionDiffFeature(context.options.mcpClients);
979
636
  const isFileCheckpointingAvailable = !isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING);
980
- const memoryFiles = React2.use(getMemoryFiles(true));
637
+ const memoryFiles = React3.use(getMemoryFiles(true));
981
638
  const shouldShowExternalIncludesToggle = hasExternalClaudeMdIncludes(memoryFiles);
982
639
  const autoUpdaterDisabledReason = getAutoUpdaterDisabledReason();
983
640
  function onChangeMainModelConfig(value) {
@@ -991,49 +648,28 @@ function Config({
991
648
  mainLoopModel: value,
992
649
  mainLoopModelForSession: null
993
650
  }));
994
- setChanges((prev_0) => {
651
+ setChanges((prev) => {
995
652
  const valStr = modelDisplayString(value) + (isBilledAsExtraUsage(value, false, isOpus1mMergeEnabled()) ? " \xB7 Billed as extra usage" : "");
996
- if ("model" in prev_0) {
997
- const {
998
- model,
999
- ...rest
1000
- } = prev_0;
1001
- return {
1002
- ...rest,
1003
- model: valStr
1004
- };
653
+ if ("model" in prev) {
654
+ const { model, ...rest } = prev;
655
+ return { ...rest, model: valStr };
1005
656
  }
1006
- return {
1007
- ...prev_0,
1008
- model: valStr
1009
- };
657
+ return { ...prev, model: valStr };
1010
658
  });
1011
659
  }
1012
- function onChangeVerbose(value_0) {
1013
- saveGlobalConfig((current) => ({
1014
- ...current,
1015
- verbose: value_0
1016
- }));
1017
- setGlobalConfig({
1018
- ...getGlobalConfig(),
1019
- verbose: value_0
1020
- });
1021
- setAppState((prev_1) => ({
1022
- ...prev_1,
1023
- verbose: value_0
660
+ function onChangeVerbose(value) {
661
+ saveGlobalConfig((current) => ({ ...current, verbose: value }));
662
+ setGlobalConfig({ ...getGlobalConfig(), verbose: value });
663
+ setAppState((prev) => ({
664
+ ...prev,
665
+ verbose: value
1024
666
  }));
1025
- setChanges((prev_2) => {
1026
- if ("verbose" in prev_2) {
1027
- const {
1028
- verbose: verbose_0,
1029
- ...rest_0
1030
- } = prev_2;
1031
- return rest_0;
667
+ setChanges((prev) => {
668
+ if ("verbose" in prev) {
669
+ const { verbose: verbose2, ...rest } = prev;
670
+ return rest;
1032
671
  }
1033
- return {
1034
- ...prev_2,
1035
- verbose: value_0
1036
- };
672
+ return { ...prev, verbose: value };
1037
673
  });
1038
674
  }
1039
675
  const settingsItems = [
@@ -1043,14 +679,8 @@ function Config({
1043
679
  value: globalConfig.autoCompactEnabled,
1044
680
  type: "boolean",
1045
681
  onChange(autoCompactEnabled) {
1046
- saveGlobalConfig((current_0) => ({
1047
- ...current_0,
1048
- autoCompactEnabled
1049
- }));
1050
- setGlobalConfig({
1051
- ...getGlobalConfig(),
1052
- autoCompactEnabled
1053
- });
682
+ saveGlobalConfig((current) => ({ ...current, autoCompactEnabled }));
683
+ setGlobalConfig({ ...getGlobalConfig(), autoCompactEnabled });
1054
684
  logEvent("tengu_auto_compact_setting_changed", {
1055
685
  enabled: autoCompactEnabled
1056
686
  });
@@ -1065,8 +695,8 @@ function Config({
1065
695
  updateSettingsForSource("localSettings", {
1066
696
  spinnerTipsEnabled
1067
697
  });
1068
- setSettingsData((prev_3) => ({
1069
- ...prev_3,
698
+ setSettingsData((prev) => ({
699
+ ...prev,
1070
700
  spinnerTipsEnabled
1071
701
  }));
1072
702
  logEvent("tengu_tips_setting_changed", {
@@ -1083,16 +713,13 @@ function Config({
1083
713
  updateSettingsForSource("localSettings", {
1084
714
  prefersReducedMotion
1085
715
  });
1086
- setSettingsData((prev_4) => ({
1087
- ...prev_4,
716
+ setSettingsData((prev) => ({
717
+ ...prev,
1088
718
  prefersReducedMotion
1089
719
  }));
1090
- setAppState((prev_5) => ({
1091
- ...prev_5,
1092
- settings: {
1093
- ...prev_5.settings,
1094
- prefersReducedMotion
1095
- }
720
+ setAppState((prev) => ({
721
+ ...prev,
722
+ settings: { ...prev.settings, prefersReducedMotion }
1096
723
  }));
1097
724
  logEvent("tengu_reduce_motion_setting_changed", {
1098
725
  enabled: prefersReducedMotion
@@ -1105,87 +732,109 @@ function Config({
1105
732
  value: thinkingEnabled ?? true,
1106
733
  type: "boolean",
1107
734
  onChange(enabled) {
1108
- setAppState((prev_6) => ({
1109
- ...prev_6,
1110
- thinkingEnabled: enabled
1111
- }));
735
+ setAppState((prev) => ({ ...prev, thinkingEnabled: enabled }));
1112
736
  updateSettingsForSource("userSettings", {
1113
737
  alwaysThinkingEnabled: enabled ? undefined : false
1114
738
  });
1115
- logEvent("tengu_thinking_toggled", {
1116
- enabled
1117
- });
739
+ logEvent("tengu_thinking_toggled", { enabled });
1118
740
  }
1119
741
  },
1120
- ...isFastModeEnabled() && isFastModeAvailable() ? [{
1121
- id: "fastMode",
1122
- label: `Fast mode (${FAST_MODE_MODEL_DISPLAY} only)`,
1123
- value: !!isFastMode,
1124
- type: "boolean",
1125
- onChange(enabled_0) {
1126
- clearFastModeCooldown();
1127
- updateSettingsForSource("userSettings", {
1128
- fastMode: enabled_0 ? true : undefined
1129
- });
1130
- if (enabled_0) {
1131
- setAppState((prev_7) => ({
1132
- ...prev_7,
1133
- mainLoopModel: getFastModeModel(),
1134
- mainLoopModelForSession: null,
1135
- fastMode: true
1136
- }));
1137
- setChanges((prev_8) => ({
1138
- ...prev_8,
1139
- model: getFastModeModel(),
1140
- "Fast mode": "ON"
1141
- }));
1142
- } else {
1143
- setAppState((prev_9) => ({
1144
- ...prev_9,
1145
- fastMode: false
1146
- }));
1147
- setChanges((prev_10) => ({
1148
- ...prev_10,
1149
- "Fast mode": "OFF"
742
+ ...isFastModeEnabled() && isFastModeAvailable() ? [
743
+ {
744
+ id: "fastMode",
745
+ label: `Fast mode (${FAST_MODE_MODEL_DISPLAY} only)`,
746
+ value: !!isFastMode,
747
+ type: "boolean",
748
+ onChange(enabled) {
749
+ clearFastModeCooldown();
750
+ updateSettingsForSource("userSettings", {
751
+ fastMode: enabled ? true : undefined
752
+ });
753
+ if (enabled) {
754
+ setAppState((prev) => ({
755
+ ...prev,
756
+ mainLoopModel: getFastModeModel(),
757
+ mainLoopModelForSession: null,
758
+ fastMode: true
759
+ }));
760
+ setChanges((prev) => ({
761
+ ...prev,
762
+ model: getFastModeModel(),
763
+ "Fast mode": "ON"
764
+ }));
765
+ } else {
766
+ setAppState((prev) => ({
767
+ ...prev,
768
+ fastMode: false
769
+ }));
770
+ setChanges((prev) => ({ ...prev, "Fast mode": "OFF" }));
771
+ }
772
+ }
773
+ }
774
+ ] : [],
775
+ ...getFeatureValue_CACHED_MAY_BE_STALE("tengu_chomp_inflection", false) ? [
776
+ {
777
+ id: "promptSuggestionEnabled",
778
+ label: "Prompt suggestions",
779
+ value: promptSuggestionEnabled,
780
+ type: "boolean",
781
+ onChange(enabled) {
782
+ setAppState((prev) => ({
783
+ ...prev,
784
+ promptSuggestionEnabled: enabled
1150
785
  }));
786
+ updateSettingsForSource("userSettings", {
787
+ promptSuggestionEnabled: enabled ? undefined : false
788
+ });
1151
789
  }
1152
790
  }
1153
- }] : [],
1154
- ...getFeatureValue_CACHED_MAY_BE_STALE("tengu_chomp_inflection", false) ? [{
1155
- id: "promptSuggestionEnabled",
1156
- label: "Prompt suggestions",
1157
- value: promptSuggestionEnabled,
1158
- type: "boolean",
1159
- onChange(enabled_1) {
1160
- setAppState((prev_11) => ({
1161
- ...prev_11,
1162
- promptSuggestionEnabled: enabled_1
1163
- }));
1164
- updateSettingsForSource("userSettings", {
1165
- promptSuggestionEnabled: enabled_1 ? undefined : false
1166
- });
791
+ ] : [],
792
+ ...process.env.USER_TYPE === "ant" ? [
793
+ {
794
+ id: "speculationEnabled",
795
+ label: "Speculative execution",
796
+ value: globalConfig.speculationEnabled ?? true,
797
+ type: "boolean",
798
+ onChange(enabled) {
799
+ saveGlobalConfig((current) => {
800
+ if (current.speculationEnabled === enabled)
801
+ return current;
802
+ return {
803
+ ...current,
804
+ speculationEnabled: enabled
805
+ };
806
+ });
807
+ setGlobalConfig({
808
+ ...getGlobalConfig(),
809
+ speculationEnabled: enabled
810
+ });
811
+ logEvent("tengu_speculation_setting_changed", {
812
+ enabled
813
+ });
814
+ }
1167
815
  }
1168
- }] : [],
1169
- ...[],
1170
- ...isFileCheckpointingAvailable ? [{
1171
- id: "fileCheckpointingEnabled",
1172
- label: "Rewind code (checkpoints)",
1173
- value: globalConfig.fileCheckpointingEnabled,
1174
- type: "boolean",
1175
- onChange(enabled_3) {
1176
- saveGlobalConfig((current_2) => ({
1177
- ...current_2,
1178
- fileCheckpointingEnabled: enabled_3
1179
- }));
1180
- setGlobalConfig({
1181
- ...getGlobalConfig(),
1182
- fileCheckpointingEnabled: enabled_3
1183
- });
1184
- logEvent("tengu_file_history_snapshots_setting_changed", {
1185
- enabled: enabled_3
1186
- });
816
+ ] : [],
817
+ ...isFileCheckpointingAvailable ? [
818
+ {
819
+ id: "fileCheckpointingEnabled",
820
+ label: "Rewind code (checkpoints)",
821
+ value: globalConfig.fileCheckpointingEnabled,
822
+ type: "boolean",
823
+ onChange(enabled) {
824
+ saveGlobalConfig((current) => ({
825
+ ...current,
826
+ fileCheckpointingEnabled: enabled
827
+ }));
828
+ setGlobalConfig({
829
+ ...getGlobalConfig(),
830
+ fileCheckpointingEnabled: enabled
831
+ });
832
+ logEvent("tengu_file_history_snapshots_setting_changed", {
833
+ enabled
834
+ });
835
+ }
1187
836
  }
1188
- }] : [],
837
+ ] : [],
1189
838
  {
1190
839
  id: "verbose",
1191
840
  label: "Verbose output",
@@ -1199,52 +848,45 @@ function Config({
1199
848
  value: globalConfig.terminalProgressBarEnabled,
1200
849
  type: "boolean",
1201
850
  onChange(terminalProgressBarEnabled) {
1202
- saveGlobalConfig((current_3) => ({
1203
- ...current_3,
851
+ saveGlobalConfig((current) => ({
852
+ ...current,
1204
853
  terminalProgressBarEnabled
1205
854
  }));
1206
- setGlobalConfig({
1207
- ...getGlobalConfig(),
1208
- terminalProgressBarEnabled
1209
- });
855
+ setGlobalConfig({ ...getGlobalConfig(), terminalProgressBarEnabled });
1210
856
  logEvent("tengu_terminal_progress_bar_setting_changed", {
1211
857
  enabled: terminalProgressBarEnabled
1212
858
  });
1213
859
  }
1214
860
  },
1215
- ...getFeatureValue_CACHED_MAY_BE_STALE("tengu_terminal_sidebar", false) ? [{
1216
- id: "showStatusInTerminalTab",
1217
- label: "Show status in terminal tab",
1218
- value: globalConfig.showStatusInTerminalTab ?? false,
1219
- type: "boolean",
1220
- onChange(showStatusInTerminalTab) {
1221
- saveGlobalConfig((current_4) => ({
1222
- ...current_4,
1223
- showStatusInTerminalTab
1224
- }));
1225
- setGlobalConfig({
1226
- ...getGlobalConfig(),
1227
- showStatusInTerminalTab
1228
- });
1229
- logEvent("tengu_terminal_tab_status_setting_changed", {
1230
- enabled: showStatusInTerminalTab
1231
- });
861
+ ...getFeatureValue_CACHED_MAY_BE_STALE("tengu_terminal_sidebar", false) ? [
862
+ {
863
+ id: "showStatusInTerminalTab",
864
+ label: "Show status in terminal tab",
865
+ value: globalConfig.showStatusInTerminalTab ?? false,
866
+ type: "boolean",
867
+ onChange(showStatusInTerminalTab) {
868
+ saveGlobalConfig((current) => ({
869
+ ...current,
870
+ showStatusInTerminalTab
871
+ }));
872
+ setGlobalConfig({
873
+ ...getGlobalConfig(),
874
+ showStatusInTerminalTab
875
+ });
876
+ logEvent("tengu_terminal_tab_status_setting_changed", {
877
+ enabled: showStatusInTerminalTab
878
+ });
879
+ }
1232
880
  }
1233
- }] : [],
881
+ ] : [],
1234
882
  {
1235
883
  id: "showTurnDuration",
1236
884
  label: "Show turn duration",
1237
885
  value: globalConfig.showTurnDuration,
1238
886
  type: "boolean",
1239
887
  onChange(showTurnDuration) {
1240
- saveGlobalConfig((current_5) => ({
1241
- ...current_5,
1242
- showTurnDuration
1243
- }));
1244
- setGlobalConfig({
1245
- ...getGlobalConfig(),
1246
- showTurnDuration
1247
- });
888
+ saveGlobalConfig((current) => ({ ...current, showTurnDuration }));
889
+ setGlobalConfig({ ...getGlobalConfig(), showTurnDuration });
1248
890
  logEvent("tengu_show_turn_duration_setting_changed", {
1249
891
  enabled: showTurnDuration
1250
892
  });
@@ -1259,7 +901,10 @@ function Config({
1259
901
  const allModes = EXTERNAL_PERMISSION_MODES;
1260
902
  const excluded = ["bypassPermissions"];
1261
903
  if (false) {}
1262
- return [...priorityOrder, ...allModes.filter((m) => !priorityOrder.includes(m) && !excluded.includes(m))];
904
+ return [
905
+ ...priorityOrder,
906
+ ...allModes.filter((m) => !priorityOrder.includes(m) && !excluded.includes(m))
907
+ ];
1263
908
  })(),
1264
909
  type: "enum",
1265
910
  onChange(mode) {
@@ -1275,17 +920,14 @@ function Config({
1275
920
  logError(result.error);
1276
921
  return;
1277
922
  }
1278
- setSettingsData((prev_12) => ({
1279
- ...prev_12,
923
+ setSettingsData((prev) => ({
924
+ ...prev,
1280
925
  permissions: {
1281
- ...prev_12?.permissions,
926
+ ...prev?.permissions,
1282
927
  defaultMode: validatedMode
1283
928
  }
1284
929
  }));
1285
- setChanges((prev_13) => ({
1286
- ...prev_13,
1287
- defaultPermissionMode: mode
1288
- }));
930
+ setChanges((prev) => ({ ...prev, defaultPermissionMode: mode }));
1289
931
  logEvent("tengu_config_changed", {
1290
932
  setting: "defaultPermissionMode",
1291
933
  value: mode
@@ -1299,14 +941,8 @@ function Config({
1299
941
  value: globalConfig.respectGitignore,
1300
942
  type: "boolean",
1301
943
  onChange(respectGitignore) {
1302
- saveGlobalConfig((current_6) => ({
1303
- ...current_6,
1304
- respectGitignore
1305
- }));
1306
- setGlobalConfig({
1307
- ...getGlobalConfig(),
1308
- respectGitignore
1309
- });
944
+ saveGlobalConfig((current) => ({ ...current, respectGitignore }));
945
+ setGlobalConfig({ ...getGlobalConfig(), respectGitignore });
1310
946
  logEvent("tengu_respect_gitignore_setting_changed", {
1311
947
  enabled: respectGitignore
1312
948
  });
@@ -1318,40 +954,30 @@ function Config({
1318
954
  value: globalConfig.copyFullResponse,
1319
955
  type: "boolean",
1320
956
  onChange(copyFullResponse) {
1321
- saveGlobalConfig((current_7) => ({
1322
- ...current_7,
1323
- copyFullResponse
1324
- }));
1325
- setGlobalConfig({
1326
- ...getGlobalConfig(),
1327
- copyFullResponse
1328
- });
957
+ saveGlobalConfig((current) => ({ ...current, copyFullResponse }));
958
+ setGlobalConfig({ ...getGlobalConfig(), copyFullResponse });
1329
959
  logEvent("tengu_config_changed", {
1330
960
  setting: "copyFullResponse",
1331
961
  value: String(copyFullResponse)
1332
962
  });
1333
963
  }
1334
964
  },
1335
- ...isFullscreenEnvEnabled() ? [{
1336
- id: "copyOnSelect",
1337
- label: "Copy on select",
1338
- value: globalConfig.copyOnSelect ?? true,
1339
- type: "boolean",
1340
- onChange(copyOnSelect) {
1341
- saveGlobalConfig((current_8) => ({
1342
- ...current_8,
1343
- copyOnSelect
1344
- }));
1345
- setGlobalConfig({
1346
- ...getGlobalConfig(),
1347
- copyOnSelect
1348
- });
1349
- logEvent("tengu_config_changed", {
1350
- setting: "copyOnSelect",
1351
- value: String(copyOnSelect)
1352
- });
965
+ ...isFullscreenEnvEnabled() ? [
966
+ {
967
+ id: "copyOnSelect",
968
+ label: "Copy on select",
969
+ value: globalConfig.copyOnSelect ?? true,
970
+ type: "boolean",
971
+ onChange(copyOnSelect) {
972
+ saveGlobalConfig((current) => ({ ...current, copyOnSelect }));
973
+ setGlobalConfig({ ...getGlobalConfig(), copyOnSelect });
974
+ logEvent("tengu_config_changed", {
975
+ setting: "copyOnSelect",
976
+ value: String(copyOnSelect)
977
+ });
978
+ }
1353
979
  }
1354
- }] : [],
980
+ ] : [],
1355
981
  autoUpdaterDisabledReason ? {
1356
982
  id: "autoUpdatesChannel",
1357
983
  label: "Auto-update channel",
@@ -1376,11 +1002,19 @@ function Config({
1376
1002
  id: "notifChannel",
1377
1003
  label: "Notifications",
1378
1004
  value: globalConfig.preferredNotifChannel,
1379
- options: ["auto", "iterm2", "terminal_bell", "iterm2_with_bell", "kitty", "ghostty", "notifications_disabled"],
1005
+ options: [
1006
+ "auto",
1007
+ "iterm2",
1008
+ "terminal_bell",
1009
+ "iterm2_with_bell",
1010
+ "kitty",
1011
+ "ghostty",
1012
+ "notifications_disabled"
1013
+ ],
1380
1014
  type: "enum",
1381
1015
  onChange(notifChannel) {
1382
- saveGlobalConfig((current_9) => ({
1383
- ...current_9,
1016
+ saveGlobalConfig((current) => ({
1017
+ ...current,
1384
1018
  preferredNotifChannel: notifChannel
1385
1019
  }));
1386
1020
  setGlobalConfig({
@@ -1397,40 +1031,31 @@ function Config({
1397
1031
  type: "managedEnum",
1398
1032
  onChange: () => {}
1399
1033
  },
1400
- ...showDefaultViewPicker ? [{
1401
- id: "defaultView",
1402
- label: "What you see by default",
1403
- value: settingsData?.defaultView === undefined ? "default" : String(settingsData.defaultView),
1404
- options: ["transcript", "chat", "default"],
1405
- type: "enum",
1406
- onChange(selected) {
1407
- const defaultView = selected === "default" ? undefined : selected;
1408
- updateSettingsForSource("localSettings", {
1409
- defaultView
1410
- });
1411
- setSettingsData((prev_17) => ({
1412
- ...prev_17,
1413
- defaultView
1414
- }));
1415
- const nextBrief = defaultView === "chat";
1416
- setAppState((prev_18) => {
1417
- if (prev_18.isBriefOnly === nextBrief)
1418
- return prev_18;
1419
- return {
1420
- ...prev_18,
1421
- isBriefOnly: nextBrief
1422
- };
1423
- });
1424
- setUserMsgOptIn(nextBrief);
1425
- setChanges((prev_19) => ({
1426
- ...prev_19,
1427
- "Default view": selected
1428
- }));
1429
- logEvent("tengu_default_view_setting_changed", {
1430
- value: defaultView ?? "unset"
1431
- });
1034
+ ...showDefaultViewPicker ? [
1035
+ {
1036
+ id: "defaultView",
1037
+ label: "What you see by default",
1038
+ value: settingsData?.defaultView === undefined ? "default" : String(settingsData.defaultView),
1039
+ options: ["transcript", "chat", "default"],
1040
+ type: "enum",
1041
+ onChange(selected) {
1042
+ const defaultView = selected === "default" ? undefined : selected;
1043
+ updateSettingsForSource("localSettings", { defaultView });
1044
+ setSettingsData((prev) => ({ ...prev, defaultView }));
1045
+ const nextBrief = defaultView === "chat";
1046
+ setAppState((prev) => {
1047
+ if (prev.isBriefOnly === nextBrief)
1048
+ return prev;
1049
+ return { ...prev, isBriefOnly: nextBrief };
1050
+ });
1051
+ setUserMsgOptIn(nextBrief);
1052
+ setChanges((prev) => ({ ...prev, "Default view": selected }));
1053
+ logEvent("tengu_default_view_setting_changed", {
1054
+ value: defaultView ?? "unset"
1055
+ });
1056
+ }
1432
1057
  }
1433
- }] : [],
1058
+ ] : [],
1434
1059
  {
1435
1060
  id: "language",
1436
1061
  label: "Language",
@@ -1444,17 +1069,17 @@ function Config({
1444
1069
  value: globalConfig.editorMode === "emacs" ? "normal" : globalConfig.editorMode || "normal",
1445
1070
  options: ["normal", "vim"],
1446
1071
  type: "enum",
1447
- onChange(value_1) {
1448
- saveGlobalConfig((current_13) => ({
1449
- ...current_13,
1450
- editorMode: value_1
1072
+ onChange(value) {
1073
+ saveGlobalConfig((current) => ({
1074
+ ...current,
1075
+ editorMode: value
1451
1076
  }));
1452
1077
  setGlobalConfig({
1453
1078
  ...getGlobalConfig(),
1454
- editorMode: value_1
1079
+ editorMode: value
1455
1080
  });
1456
1081
  logEvent("tengu_editor_mode_changed", {
1457
- mode: value_1,
1082
+ mode: value,
1458
1083
  source: "config_panel"
1459
1084
  });
1460
1085
  }
@@ -1464,21 +1089,21 @@ function Config({
1464
1089
  label: "Show PR status footer",
1465
1090
  value: globalConfig.prStatusFooterEnabled ?? true,
1466
1091
  type: "boolean",
1467
- onChange(enabled_4) {
1468
- saveGlobalConfig((current_14) => {
1469
- if (current_14.prStatusFooterEnabled === enabled_4)
1470
- return current_14;
1092
+ onChange(enabled) {
1093
+ saveGlobalConfig((current) => {
1094
+ if (current.prStatusFooterEnabled === enabled)
1095
+ return current;
1471
1096
  return {
1472
- ...current_14,
1473
- prStatusFooterEnabled: enabled_4
1097
+ ...current,
1098
+ prStatusFooterEnabled: enabled
1474
1099
  };
1475
1100
  });
1476
1101
  setGlobalConfig({
1477
1102
  ...getGlobalConfig(),
1478
- prStatusFooterEnabled: enabled_4
1103
+ prStatusFooterEnabled: enabled
1479
1104
  });
1480
1105
  logEvent("tengu_pr_status_footer_setting_changed", {
1481
- enabled: enabled_4
1106
+ enabled
1482
1107
  });
1483
1108
  }
1484
1109
  },
@@ -1489,196 +1114,204 @@ function Config({
1489
1114
  type: "managedEnum",
1490
1115
  onChange: onChangeMainModelConfig
1491
1116
  },
1492
- ...isConnectedToIde ? [{
1493
- id: "diffTool",
1494
- label: "Diff tool",
1495
- value: globalConfig.diffTool ?? "auto",
1496
- options: ["terminal", "auto"],
1497
- type: "enum",
1498
- onChange(diffTool) {
1499
- saveGlobalConfig((current_15) => ({
1500
- ...current_15,
1501
- diffTool
1502
- }));
1503
- setGlobalConfig({
1504
- ...getGlobalConfig(),
1505
- diffTool
1506
- });
1507
- logEvent("tengu_diff_tool_changed", {
1508
- tool: diffTool,
1509
- source: "config_panel"
1510
- });
1117
+ ...isConnectedToIde ? [
1118
+ {
1119
+ id: "diffTool",
1120
+ label: "Diff tool",
1121
+ value: globalConfig.diffTool ?? "auto",
1122
+ options: ["terminal", "auto"],
1123
+ type: "enum",
1124
+ onChange(diffTool) {
1125
+ saveGlobalConfig((current) => ({
1126
+ ...current,
1127
+ diffTool
1128
+ }));
1129
+ setGlobalConfig({
1130
+ ...getGlobalConfig(),
1131
+ diffTool
1132
+ });
1133
+ logEvent("tengu_diff_tool_changed", {
1134
+ tool: diffTool,
1135
+ source: "config_panel"
1136
+ });
1137
+ }
1511
1138
  }
1512
- }] : [],
1513
- ...!isSupportedTerminal() ? [{
1514
- id: "autoConnectIde",
1515
- label: "Auto-connect to IDE (external terminal)",
1516
- value: globalConfig.autoConnectIde ?? false,
1517
- type: "boolean",
1518
- onChange(autoConnectIde) {
1519
- saveGlobalConfig((current_16) => ({
1520
- ...current_16,
1521
- autoConnectIde
1522
- }));
1523
- setGlobalConfig({
1524
- ...getGlobalConfig(),
1525
- autoConnectIde
1526
- });
1527
- logEvent("tengu_auto_connect_ide_changed", {
1528
- enabled: autoConnectIde,
1529
- source: "config_panel"
1530
- });
1139
+ ] : [],
1140
+ ...!isSupportedTerminal() ? [
1141
+ {
1142
+ id: "autoConnectIde",
1143
+ label: "Auto-connect to IDE (external terminal)",
1144
+ value: globalConfig.autoConnectIde ?? false,
1145
+ type: "boolean",
1146
+ onChange(autoConnectIde) {
1147
+ saveGlobalConfig((current) => ({ ...current, autoConnectIde }));
1148
+ setGlobalConfig({ ...getGlobalConfig(), autoConnectIde });
1149
+ logEvent("tengu_auto_connect_ide_changed", {
1150
+ enabled: autoConnectIde,
1151
+ source: "config_panel"
1152
+ });
1153
+ }
1531
1154
  }
1532
- }] : [],
1533
- ...isSupportedTerminal() ? [{
1534
- id: "autoInstallIdeExtension",
1535
- label: "Auto-install IDE extension",
1536
- value: globalConfig.autoInstallIdeExtension ?? true,
1537
- type: "boolean",
1538
- onChange(autoInstallIdeExtension) {
1539
- saveGlobalConfig((current_17) => ({
1540
- ...current_17,
1541
- autoInstallIdeExtension
1542
- }));
1543
- setGlobalConfig({
1544
- ...getGlobalConfig(),
1545
- autoInstallIdeExtension
1546
- });
1547
- logEvent("tengu_auto_install_ide_extension_changed", {
1548
- enabled: autoInstallIdeExtension,
1549
- source: "config_panel"
1550
- });
1155
+ ] : [],
1156
+ ...isSupportedTerminal() ? [
1157
+ {
1158
+ id: "autoInstallIdeExtension",
1159
+ label: "Auto-install IDE extension",
1160
+ value: globalConfig.autoInstallIdeExtension ?? true,
1161
+ type: "boolean",
1162
+ onChange(autoInstallIdeExtension) {
1163
+ saveGlobalConfig((current) => ({
1164
+ ...current,
1165
+ autoInstallIdeExtension
1166
+ }));
1167
+ setGlobalConfig({ ...getGlobalConfig(), autoInstallIdeExtension });
1168
+ logEvent("tengu_auto_install_ide_extension_changed", {
1169
+ enabled: autoInstallIdeExtension,
1170
+ source: "config_panel"
1171
+ });
1172
+ }
1551
1173
  }
1552
- }] : [],
1174
+ ] : [],
1553
1175
  {
1554
1176
  id: "claudeInChromeDefaultEnabled",
1555
1177
  label: "Claude in Chrome enabled by default",
1556
1178
  value: globalConfig.claudeInChromeDefaultEnabled ?? true,
1557
1179
  type: "boolean",
1558
- onChange(enabled_5) {
1559
- saveGlobalConfig((current_18) => ({
1560
- ...current_18,
1561
- claudeInChromeDefaultEnabled: enabled_5
1180
+ onChange(enabled) {
1181
+ saveGlobalConfig((current) => ({
1182
+ ...current,
1183
+ claudeInChromeDefaultEnabled: enabled
1562
1184
  }));
1563
1185
  setGlobalConfig({
1564
1186
  ...getGlobalConfig(),
1565
- claudeInChromeDefaultEnabled: enabled_5
1187
+ claudeInChromeDefaultEnabled: enabled
1566
1188
  });
1567
1189
  logEvent("tengu_claude_in_chrome_setting_changed", {
1568
- enabled: enabled_5
1190
+ enabled
1569
1191
  });
1570
1192
  }
1571
1193
  },
1572
1194
  ...isAgentSwarmsEnabled() ? (() => {
1573
1195
  const cliOverride = getCliTeammateModeOverride();
1574
1196
  const label = cliOverride ? `Teammate mode [overridden: ${cliOverride}]` : "Teammate mode";
1575
- return [{
1576
- id: "teammateMode",
1577
- label,
1578
- value: globalConfig.teammateMode ?? "auto",
1579
- options: ["auto", "tmux", "in-process"],
1580
- type: "enum",
1581
- onChange(mode_0) {
1582
- if (mode_0 !== "auto" && mode_0 !== "tmux" && mode_0 !== "in-process") {
1583
- return;
1197
+ return [
1198
+ {
1199
+ id: "teammateMode",
1200
+ label,
1201
+ value: globalConfig.teammateMode ?? "auto",
1202
+ options: ["auto", "tmux", "in-process"],
1203
+ type: "enum",
1204
+ onChange(mode) {
1205
+ if (mode !== "auto" && mode !== "tmux" && mode !== "in-process") {
1206
+ return;
1207
+ }
1208
+ clearCliTeammateModeOverride(mode);
1209
+ saveGlobalConfig((current) => ({
1210
+ ...current,
1211
+ teammateMode: mode
1212
+ }));
1213
+ setGlobalConfig({
1214
+ ...getGlobalConfig(),
1215
+ teammateMode: mode
1216
+ });
1217
+ logEvent("tengu_teammate_mode_changed", {
1218
+ mode
1219
+ });
1584
1220
  }
1585
- clearCliTeammateModeOverride(mode_0);
1586
- saveGlobalConfig((current_19) => ({
1587
- ...current_19,
1588
- teammateMode: mode_0
1589
- }));
1590
- setGlobalConfig({
1591
- ...getGlobalConfig(),
1592
- teammateMode: mode_0
1593
- });
1594
- logEvent("tengu_teammate_mode_changed", {
1595
- mode: mode_0
1596
- });
1221
+ },
1222
+ {
1223
+ id: "teammateDefaultModel",
1224
+ label: "Default teammate model",
1225
+ value: teammateModelDisplayString(globalConfig.teammateDefaultModel),
1226
+ type: "managedEnum",
1227
+ onChange() {}
1597
1228
  }
1598
- }, {
1599
- id: "teammateDefaultModel",
1600
- label: "Default teammate model",
1601
- value: teammateModelDisplayString(globalConfig.teammateDefaultModel),
1602
- type: "managedEnum",
1603
- onChange() {}
1604
- }];
1229
+ ];
1605
1230
  })() : [],
1606
1231
  ...[],
1607
- ...shouldShowExternalIncludesToggle ? [{
1608
- id: "showExternalIncludesDialog",
1609
- label: "External CLAUDE.md includes",
1610
- value: (() => {
1611
- const projectConfig = getCurrentProjectConfig();
1612
- if (projectConfig.hasClaudeMdExternalIncludesApproved) {
1613
- return "true";
1614
- } else {
1615
- return "false";
1616
- }
1617
- })(),
1618
- type: "managedEnum",
1619
- onChange() {}
1620
- }] : [],
1621
- ...process.env.ANTHROPIC_API_KEY && !isRunningOnHomespace() ? [{
1622
- id: "apiKey",
1623
- label: /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1624
- children: [
1625
- "Use custom API key:",
1626
- " ",
1627
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1628
- bold: true,
1629
- children: normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY)
1630
- }, undefined, false, undefined, this)
1631
- ]
1632
- }, undefined, true, undefined, this),
1633
- searchText: "Use custom API key",
1634
- value: Boolean(process.env.ANTHROPIC_API_KEY && globalConfig.customApiKeyResponses?.approved?.includes(normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY))),
1635
- type: "boolean",
1636
- onChange(useCustomKey) {
1637
- saveGlobalConfig((current_22) => {
1638
- const updated = {
1639
- ...current_22
1640
- };
1641
- if (!updated.customApiKeyResponses) {
1642
- updated.customApiKeyResponses = {
1643
- approved: [],
1644
- rejected: []
1645
- };
1232
+ ...shouldShowExternalIncludesToggle ? [
1233
+ {
1234
+ id: "showExternalIncludesDialog",
1235
+ label: "External CLAUDE.md includes",
1236
+ value: (() => {
1237
+ const projectConfig = getCurrentProjectConfig();
1238
+ if (projectConfig.hasClaudeMdExternalIncludesApproved) {
1239
+ return "true";
1240
+ } else {
1241
+ return "false";
1646
1242
  }
1647
- if (!updated.customApiKeyResponses.approved) {
1648
- updated.customApiKeyResponses = {
1649
- ...updated.customApiKeyResponses,
1650
- approved: []
1651
- };
1652
- }
1653
- if (!updated.customApiKeyResponses.rejected) {
1654
- updated.customApiKeyResponses = {
1655
- ...updated.customApiKeyResponses,
1656
- rejected: []
1657
- };
1658
- }
1659
- if (process.env.ANTHROPIC_API_KEY) {
1660
- const truncatedKey = normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY);
1661
- if (useCustomKey) {
1243
+ })(),
1244
+ type: "managedEnum",
1245
+ onChange() {}
1246
+ }
1247
+ ] : [],
1248
+ ...process.env.ANTHROPIC_API_KEY && !isRunningOnHomespace() ? [
1249
+ {
1250
+ id: "apiKey",
1251
+ label: /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1252
+ children: [
1253
+ "Use custom API key:",
1254
+ " ",
1255
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1256
+ bold: true,
1257
+ children: normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY)
1258
+ }, undefined, false, undefined, this)
1259
+ ]
1260
+ }, undefined, true, undefined, this),
1261
+ searchText: "Use custom API key",
1262
+ value: Boolean(process.env.ANTHROPIC_API_KEY && globalConfig.customApiKeyResponses?.approved?.includes(normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY))),
1263
+ type: "boolean",
1264
+ onChange(useCustomKey) {
1265
+ saveGlobalConfig((current) => {
1266
+ const updated = { ...current };
1267
+ if (!updated.customApiKeyResponses) {
1268
+ updated.customApiKeyResponses = {
1269
+ approved: [],
1270
+ rejected: []
1271
+ };
1272
+ }
1273
+ if (!updated.customApiKeyResponses.approved) {
1662
1274
  updated.customApiKeyResponses = {
1663
1275
  ...updated.customApiKeyResponses,
1664
- approved: [...(updated.customApiKeyResponses.approved ?? []).filter((k) => k !== truncatedKey), truncatedKey],
1665
- rejected: (updated.customApiKeyResponses.rejected ?? []).filter((k_0) => k_0 !== truncatedKey)
1276
+ approved: []
1666
1277
  };
1667
- } else {
1278
+ }
1279
+ if (!updated.customApiKeyResponses.rejected) {
1668
1280
  updated.customApiKeyResponses = {
1669
1281
  ...updated.customApiKeyResponses,
1670
- approved: (updated.customApiKeyResponses.approved ?? []).filter((k_1) => k_1 !== truncatedKey),
1671
- rejected: [...(updated.customApiKeyResponses.rejected ?? []).filter((k_2) => k_2 !== truncatedKey), truncatedKey]
1282
+ rejected: []
1672
1283
  };
1673
1284
  }
1674
- }
1675
- return updated;
1676
- });
1677
- setGlobalConfig(getGlobalConfig());
1285
+ if (process.env.ANTHROPIC_API_KEY) {
1286
+ const truncatedKey = normalizeApiKeyForConfig(process.env.ANTHROPIC_API_KEY);
1287
+ if (useCustomKey) {
1288
+ updated.customApiKeyResponses = {
1289
+ ...updated.customApiKeyResponses,
1290
+ approved: [
1291
+ ...(updated.customApiKeyResponses.approved ?? []).filter((k) => k !== truncatedKey),
1292
+ truncatedKey
1293
+ ],
1294
+ rejected: (updated.customApiKeyResponses.rejected ?? []).filter((k) => k !== truncatedKey)
1295
+ };
1296
+ } else {
1297
+ updated.customApiKeyResponses = {
1298
+ ...updated.customApiKeyResponses,
1299
+ approved: (updated.customApiKeyResponses.approved ?? []).filter((k) => k !== truncatedKey),
1300
+ rejected: [
1301
+ ...(updated.customApiKeyResponses.rejected ?? []).filter((k) => k !== truncatedKey),
1302
+ truncatedKey
1303
+ ]
1304
+ };
1305
+ }
1306
+ }
1307
+ return updated;
1308
+ });
1309
+ setGlobalConfig(getGlobalConfig());
1310
+ }
1678
1311
  }
1679
- }] : []
1312
+ ] : []
1680
1313
  ];
1681
- const filteredSettingsItems = React2.useMemo(() => {
1314
+ const filteredSettingsItems = React3.useMemo(() => {
1682
1315
  if (!searchQuery)
1683
1316
  return settingsItems;
1684
1317
  const lowerQuery = searchQuery.toLowerCase();
@@ -1689,40 +1322,40 @@ function Config({
1689
1322
  return searchableText.toLowerCase().includes(lowerQuery);
1690
1323
  });
1691
1324
  }, [settingsItems, searchQuery]);
1692
- React2.useEffect(() => {
1325
+ React3.useEffect(() => {
1693
1326
  if (selectedIndex >= filteredSettingsItems.length) {
1694
1327
  const newIndex = Math.max(0, filteredSettingsItems.length - 1);
1695
1328
  setSelectedIndex(newIndex);
1696
1329
  setScrollOffset(Math.max(0, newIndex - maxVisible + 1));
1697
1330
  return;
1698
1331
  }
1699
- setScrollOffset((prev_21) => {
1700
- if (selectedIndex < prev_21)
1332
+ setScrollOffset((prev) => {
1333
+ if (selectedIndex < prev)
1701
1334
  return selectedIndex;
1702
- if (selectedIndex >= prev_21 + maxVisible)
1335
+ if (selectedIndex >= prev + maxVisible)
1703
1336
  return selectedIndex - maxVisible + 1;
1704
- return prev_21;
1337
+ return prev;
1705
1338
  });
1706
1339
  }, [filteredSettingsItems.length, selectedIndex, maxVisible]);
1707
- const adjustScrollOffset = import_react4.useCallback((newIndex_0) => {
1708
- setScrollOffset((prev_22) => {
1709
- if (newIndex_0 < prev_22)
1710
- return newIndex_0;
1711
- if (newIndex_0 >= prev_22 + maxVisible)
1712
- return newIndex_0 - maxVisible + 1;
1713
- return prev_22;
1340
+ const adjustScrollOffset = import_react4.useCallback((newIndex) => {
1341
+ setScrollOffset((prev) => {
1342
+ if (newIndex < prev)
1343
+ return newIndex;
1344
+ if (newIndex >= prev + maxVisible)
1345
+ return newIndex - maxVisible + 1;
1346
+ return prev;
1714
1347
  });
1715
1348
  }, [maxVisible]);
1716
1349
  const handleSaveAndClose = import_react4.useCallback(() => {
1717
1350
  if (showSubmenu !== null) {
1718
1351
  return;
1719
1352
  }
1720
- const formattedChanges = Object.entries(changes).map(([key, value_2]) => {
1353
+ const formattedChanges = Object.entries(changes).map(([key, value]) => {
1721
1354
  logEvent("tengu_config_changed", {
1722
1355
  key,
1723
- value: value_2
1356
+ value
1724
1357
  });
1725
- return `Set ${key} to ${source_default.bold(value_2)}`;
1358
+ return `Set ${key} to ${source_default.bold(value)}`;
1726
1359
  });
1727
1360
  const effectiveApiKey = isRunningOnHomespace() ? undefined : process.env.ANTHROPIC_API_KEY;
1728
1361
  const initialUsingCustomKey = Boolean(effectiveApiKey && initialConfig.current.customApiKeyResponses?.approved?.includes(normalizeApiKeyForConfig(effectiveApiKey)));
@@ -1790,11 +1423,19 @@ function Config({
1790
1423
  onClose(formattedChanges.join(`
1791
1424
  `));
1792
1425
  } else {
1793
- onClose("Config dialog dismissed", {
1794
- display: "system"
1795
- });
1426
+ onClose("Config dialog dismissed", { display: "system" });
1796
1427
  }
1797
- }, [showSubmenu, changes, globalConfig, mainLoopModel, currentOutputStyle, currentLanguage, settingsData?.autoUpdatesChannel, isFastModeEnabled() ? settingsData?.fastMode : undefined, onClose]);
1428
+ }, [
1429
+ showSubmenu,
1430
+ changes,
1431
+ globalConfig,
1432
+ mainLoopModel,
1433
+ currentOutputStyle,
1434
+ currentLanguage,
1435
+ settingsData?.autoUpdatesChannel,
1436
+ isFastModeEnabled() ? settingsData?.fastMode : undefined,
1437
+ onClose
1438
+ ]);
1798
1439
  const revertChanges = import_react4.useCallback(() => {
1799
1440
  if (themeSetting !== initialThemeSetting.current) {
1800
1441
  setTheme(initialThemeSetting.current);
@@ -1817,14 +1458,11 @@ function Config({
1817
1458
  language: iu?.language,
1818
1459
  ...{},
1819
1460
  syntaxHighlightingDisabled: iu?.syntaxHighlightingDisabled,
1820
- permissions: iu?.permissions === undefined ? undefined : {
1821
- ...iu.permissions,
1822
- defaultMode: iu.permissions.defaultMode
1823
- }
1461
+ permissions: iu?.permissions === undefined ? undefined : { ...iu.permissions, defaultMode: iu.permissions.defaultMode }
1824
1462
  });
1825
1463
  const ia = initialAppState;
1826
- setAppState((prev_23) => ({
1827
- ...prev_23,
1464
+ setAppState((prev) => ({
1465
+ ...prev,
1828
1466
  mainLoopModel: ia.mainLoopModel,
1829
1467
  mainLoopModelForSession: ia.mainLoopModelForSession,
1830
1468
  verbose: ia.verbose,
@@ -1835,12 +1473,20 @@ function Config({
1835
1473
  replBridgeEnabled: ia.replBridgeEnabled,
1836
1474
  replBridgeOutboundOnly: ia.replBridgeOutboundOnly,
1837
1475
  settings: ia.settings,
1838
- toolPermissionContext: transitionPlanAutoMode(prev_23.toolPermissionContext)
1476
+ toolPermissionContext: transitionPlanAutoMode(prev.toolPermissionContext)
1839
1477
  }));
1840
1478
  if (getUserMsgOptIn() !== initialUserMsgOptIn) {
1841
1479
  setUserMsgOptIn(initialUserMsgOptIn);
1842
1480
  }
1843
- }, [themeSetting, setTheme, initialLocalSettings, initialUserSettings, initialAppState, initialUserMsgOptIn, setAppState]);
1481
+ }, [
1482
+ themeSetting,
1483
+ setTheme,
1484
+ initialLocalSettings,
1485
+ initialUserSettings,
1486
+ initialAppState,
1487
+ initialUserMsgOptIn,
1488
+ setAppState
1489
+ ]);
1844
1490
  const handleEscape = import_react4.useCallback(() => {
1845
1491
  if (showSubmenu !== null) {
1846
1492
  return;
@@ -1848,9 +1494,7 @@ function Config({
1848
1494
  if (isDirty.current) {
1849
1495
  revertChanges();
1850
1496
  }
1851
- onClose("Config dialog dismissed", {
1852
- display: "system"
1853
- });
1497
+ onClose("Config dialog dismissed", { display: "system" });
1854
1498
  }, [showSubmenu, revertChanges, onClose]);
1855
1499
  useKeybinding("confirm:no", handleEscape, {
1856
1500
  context: "Settings",
@@ -1861,26 +1505,26 @@ function Config({
1861
1505
  isActive: showSubmenu === null && !isSearchMode && !headerFocused
1862
1506
  });
1863
1507
  const toggleSetting = import_react4.useCallback(() => {
1864
- const setting_0 = filteredSettingsItems[selectedIndex];
1865
- if (!setting_0 || !setting_0.onChange) {
1508
+ const setting = filteredSettingsItems[selectedIndex];
1509
+ if (!setting || !setting.onChange) {
1866
1510
  return;
1867
1511
  }
1868
- if (setting_0.type === "boolean") {
1512
+ if (setting.type === "boolean") {
1869
1513
  isDirty.current = true;
1870
- setting_0.onChange(!setting_0.value);
1871
- if (setting_0.id === "thinkingEnabled") {
1872
- const newValue = !setting_0.value;
1514
+ setting.onChange(!setting.value);
1515
+ if (setting.id === "thinkingEnabled") {
1516
+ const newValue = !setting.value;
1873
1517
  const backToInitial = newValue === initialThinkingEnabled.current;
1874
1518
  if (backToInitial) {
1875
1519
  setShowThinkingWarning(false);
1876
- } else if (context.messages.some((m_0) => m_0.type === "assistant")) {
1520
+ } else if (context.messages.some((m) => m.type === "assistant")) {
1877
1521
  setShowThinkingWarning(true);
1878
1522
  }
1879
1523
  }
1880
1524
  return;
1881
1525
  }
1882
- if (setting_0.id === "theme" || setting_0.id === "model" || setting_0.id === "teammateDefaultModel" || setting_0.id === "showExternalIncludesDialog" || setting_0.id === "outputStyle" || setting_0.id === "language") {
1883
- switch (setting_0.id) {
1526
+ if (setting.id === "theme" || setting.id === "model" || setting.id === "teammateDefaultModel" || setting.id === "showExternalIncludesDialog" || setting.id === "outputStyle" || setting.id === "language") {
1527
+ switch (setting.id) {
1884
1528
  case "theme":
1885
1529
  setShowSubmenu("Theme");
1886
1530
  setTabsHidden(true);
@@ -1907,7 +1551,7 @@ function Config({
1907
1551
  return;
1908
1552
  }
1909
1553
  }
1910
- if (setting_0.id === "autoUpdatesChannel") {
1554
+ if (setting.id === "autoUpdatesChannel") {
1911
1555
  if (autoUpdaterDisabledReason) {
1912
1556
  setShowSubmenu("EnableAutoUpdates");
1913
1557
  setTabsHidden(true);
@@ -1923,8 +1567,8 @@ function Config({
1923
1567
  autoUpdatesChannel: "latest",
1924
1568
  minimumVersion: undefined
1925
1569
  });
1926
- setSettingsData((prev_24) => ({
1927
- ...prev_24,
1570
+ setSettingsData((prev) => ({
1571
+ ...prev,
1928
1572
  autoUpdatesChannel: "latest",
1929
1573
  minimumVersion: undefined
1930
1574
  }));
@@ -1934,19 +1578,25 @@ function Config({
1934
1578
  }
1935
1579
  return;
1936
1580
  }
1937
- if (setting_0.type === "enum") {
1581
+ if (setting.type === "enum") {
1938
1582
  isDirty.current = true;
1939
- const currentIndex = setting_0.options.indexOf(setting_0.value);
1940
- const nextIndex = (currentIndex + 1) % setting_0.options.length;
1941
- setting_0.onChange(setting_0.options[nextIndex]);
1583
+ const currentIndex = setting.options.indexOf(setting.value);
1584
+ const nextIndex = (currentIndex + 1) % setting.options.length;
1585
+ setting.onChange(setting.options[nextIndex]);
1942
1586
  return;
1943
1587
  }
1944
- }, [autoUpdaterDisabledReason, filteredSettingsItems, selectedIndex, settingsData?.autoUpdatesChannel, setTabsHidden]);
1588
+ }, [
1589
+ autoUpdaterDisabledReason,
1590
+ filteredSettingsItems,
1591
+ selectedIndex,
1592
+ settingsData?.autoUpdatesChannel,
1593
+ setTabsHidden
1594
+ ]);
1945
1595
  const moveSelection = (delta) => {
1946
1596
  setShowThinkingWarning(false);
1947
- const newIndex_1 = Math.max(0, Math.min(filteredSettingsItems.length - 1, selectedIndex + delta));
1948
- setSelectedIndex(newIndex_1);
1949
- adjustScrollOffset(newIndex_1);
1597
+ const newIndex = Math.max(0, Math.min(filteredSettingsItems.length - 1, selectedIndex + delta));
1598
+ setSelectedIndex(newIndex);
1599
+ adjustScrollOffset(newIndex);
1950
1600
  };
1951
1601
  useKeybindings({
1952
1602
  "select:previous": () => {
@@ -2007,7 +1657,14 @@ function Config({
2007
1657
  setIsSearchMode(true);
2008
1658
  setSearchQuery(e.key);
2009
1659
  }
2010
- }, [showSubmenu, headerFocused, isSearchMode, searchQuery, setSearchQuery, toggleSetting]);
1660
+ }, [
1661
+ showSubmenu,
1662
+ headerFocused,
1663
+ isSearchMode,
1664
+ searchQuery,
1665
+ setSearchQuery,
1666
+ toggleSetting
1667
+ ]);
2011
1668
  return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedBox_default, {
2012
1669
  flexDirection: "column",
2013
1670
  width: "100%",
@@ -2017,9 +1674,9 @@ function Config({
2017
1674
  children: showSubmenu === "Theme" ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(jsx_dev_runtime5.Fragment, {
2018
1675
  children: [
2019
1676
  /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemePicker, {
2020
- onThemeSelect: (setting_1) => {
1677
+ onThemeSelect: (setting) => {
2021
1678
  isDirty.current = true;
2022
- setTheme(setting_1);
1679
+ setTheme(setting);
2023
1680
  setShowSubmenu(null);
2024
1681
  setTabsHidden(false);
2025
1682
  },
@@ -2055,9 +1712,9 @@ function Config({
2055
1712
  children: [
2056
1713
  /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ModelPicker, {
2057
1714
  initial: mainLoopModel,
2058
- onSelect: (model_0, _effort) => {
1715
+ onSelect: (model, _effort) => {
2059
1716
  isDirty.current = true;
2060
- onChangeMainModelConfig(model_0);
1717
+ onChangeMainModelConfig(model);
2061
1718
  setShowSubmenu(null);
2062
1719
  setTabsHidden(false);
2063
1720
  },
@@ -2091,27 +1748,24 @@ function Config({
2091
1748
  initial: globalConfig.teammateDefaultModel ?? null,
2092
1749
  skipSettingsWrite: true,
2093
1750
  headerText: "Default model for newly spawned teammates. The leader can override via the tool call's model parameter.",
2094
- onSelect: (model_1, _effort_0) => {
1751
+ onSelect: (model, _effort) => {
2095
1752
  setShowSubmenu(null);
2096
1753
  setTabsHidden(false);
2097
- if (globalConfig.teammateDefaultModel === undefined && model_1 === null) {
1754
+ if (globalConfig.teammateDefaultModel === undefined && model === null) {
2098
1755
  return;
2099
1756
  }
2100
1757
  isDirty.current = true;
2101
- saveGlobalConfig((current_23) => current_23.teammateDefaultModel === model_1 ? current_23 : {
2102
- ...current_23,
2103
- teammateDefaultModel: model_1
2104
- });
1758
+ saveGlobalConfig((current) => current.teammateDefaultModel === model ? current : { ...current, teammateDefaultModel: model });
2105
1759
  setGlobalConfig({
2106
1760
  ...getGlobalConfig(),
2107
- teammateDefaultModel: model_1
1761
+ teammateDefaultModel: model
2108
1762
  });
2109
- setChanges((prev_25) => ({
2110
- ...prev_25,
2111
- teammateDefaultModel: teammateModelDisplayString(model_1)
1763
+ setChanges((prev) => ({
1764
+ ...prev,
1765
+ teammateDefaultModel: teammateModelDisplayString(model)
2112
1766
  }));
2113
1767
  logEvent("tengu_teammate_default_model_changed", {
2114
- model: model_1
1768
+ model
2115
1769
  });
2116
1770
  },
2117
1771
  onCancel: () => {
@@ -2268,31 +1922,31 @@ function Config({
2268
1922
  }, undefined, true, undefined, this)
2269
1923
  ]
2270
1924
  }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(Select, {
2271
- options: [{
2272
- label: "Enable with latest channel",
2273
- value: "latest"
2274
- }, {
2275
- label: "Enable with stable channel",
2276
- value: "stable"
2277
- }],
1925
+ options: [
1926
+ {
1927
+ label: "Enable with latest channel",
1928
+ value: "latest"
1929
+ },
1930
+ {
1931
+ label: "Enable with stable channel",
1932
+ value: "stable"
1933
+ }
1934
+ ],
2278
1935
  onChange: (channel) => {
2279
1936
  isDirty.current = true;
2280
1937
  setShowSubmenu(null);
2281
1938
  setTabsHidden(false);
2282
- saveGlobalConfig((current_24) => ({
2283
- ...current_24,
1939
+ saveGlobalConfig((current) => ({
1940
+ ...current,
2284
1941
  autoUpdates: true
2285
1942
  }));
2286
- setGlobalConfig({
2287
- ...getGlobalConfig(),
2288
- autoUpdates: true
2289
- });
1943
+ setGlobalConfig({ ...getGlobalConfig(), autoUpdates: true });
2290
1944
  updateSettingsForSource("userSettings", {
2291
1945
  autoUpdatesChannel: channel,
2292
1946
  minimumVersion: undefined
2293
1947
  });
2294
- setSettingsData((prev_26) => ({
2295
- ...prev_26,
1948
+ setSettingsData((prev) => ({
1949
+ ...prev,
2296
1950
  autoUpdatesChannel: channel,
2297
1951
  minimumVersion: undefined
2298
1952
  }));
@@ -2302,7 +1956,7 @@ function Config({
2302
1956
  }
2303
1957
  }, undefined, false, undefined, this)
2304
1958
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ChannelDowngradeDialog, {
2305
- currentVersion: MACRO.VERSION,
1959
+ currentVersion: "2.1.888",
2306
1960
  onChoice: (choice) => {
2307
1961
  setShowSubmenu(null);
2308
1962
  setTabsHidden(false);
@@ -2314,11 +1968,11 @@ function Config({
2314
1968
  autoUpdatesChannel: "stable"
2315
1969
  };
2316
1970
  if (choice === "stay") {
2317
- newSettings.minimumVersion = MACRO.VERSION;
1971
+ newSettings.minimumVersion = "2.1.888";
2318
1972
  }
2319
1973
  updateSettingsForSource("userSettings", newSettings);
2320
- setSettingsData((prev_27) => ({
2321
- ...prev_27,
1974
+ setSettingsData((prev) => ({
1975
+ ...prev,
2322
1976
  ...newSettings
2323
1977
  }));
2324
1978
  logEvent("tengu_autoupdate_channel_changed", {
@@ -2359,10 +2013,10 @@ function Config({
2359
2013
  " more above"
2360
2014
  ]
2361
2015
  }, undefined, true, undefined, this),
2362
- filteredSettingsItems.slice(scrollOffset, scrollOffset + maxVisible).map((setting_2, i) => {
2016
+ filteredSettingsItems.slice(scrollOffset, scrollOffset + maxVisible).map((setting, i) => {
2363
2017
  const actualIndex = scrollOffset + i;
2364
2018
  const isSelected = actualIndex === selectedIndex && !headerFocused && !isSearchMode;
2365
- return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(React2.Fragment, {
2019
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(React3.Fragment, {
2366
2020
  children: /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedBox_default, {
2367
2021
  children: [
2368
2022
  /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedBox_default, {
@@ -2372,18 +2026,18 @@ function Config({
2372
2026
  children: [
2373
2027
  isSelected ? figures_default.pointer : " ",
2374
2028
  " ",
2375
- setting_2.label
2029
+ setting.label
2376
2030
  ]
2377
2031
  }, undefined, true, undefined, this)
2378
2032
  }, undefined, false, undefined, this),
2379
2033
  /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedBox_default, {
2380
- children: setting_2.type === "boolean" ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(jsx_dev_runtime5.Fragment, {
2034
+ children: setting.type === "boolean" ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(jsx_dev_runtime5.Fragment, {
2381
2035
  children: [
2382
2036
  /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2383
2037
  color: isSelected ? "suggestion" : undefined,
2384
- children: setting_2.value.toString()
2038
+ children: setting.value.toString()
2385
2039
  }, undefined, false, undefined, this),
2386
- showThinkingWarning && setting_2.id === "thinkingEnabled" && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2040
+ showThinkingWarning && setting.id === "thinkingEnabled" && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2387
2041
  color: "warning",
2388
2042
  children: [
2389
2043
  " ",
@@ -2391,18 +2045,18 @@ function Config({
2391
2045
  ]
2392
2046
  }, undefined, true, undefined, this)
2393
2047
  ]
2394
- }, undefined, true, undefined, this) : setting_2.id === "theme" ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2048
+ }, undefined, true, undefined, this) : setting.id === "theme" ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2395
2049
  color: isSelected ? "suggestion" : undefined,
2396
- children: THEME_LABELS[setting_2.value.toString()] ?? setting_2.value.toString()
2397
- }, undefined, false, undefined, this) : setting_2.id === "notifChannel" ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2050
+ children: THEME_LABELS[setting.value.toString()] ?? setting.value.toString()
2051
+ }, undefined, false, undefined, this) : setting.id === "notifChannel" ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2398
2052
  color: isSelected ? "suggestion" : undefined,
2399
2053
  children: /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(NotifChannelLabel, {
2400
- value: setting_2.value.toString()
2054
+ value: setting.value.toString()
2401
2055
  }, undefined, false, undefined, this)
2402
- }, undefined, false, undefined, this) : setting_2.id === "defaultPermissionMode" ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2056
+ }, undefined, false, undefined, this) : setting.id === "defaultPermissionMode" ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2403
2057
  color: isSelected ? "suggestion" : undefined,
2404
- children: permissionModeTitle(setting_2.value)
2405
- }, undefined, false, undefined, this) : setting_2.id === "autoUpdatesChannel" && autoUpdaterDisabledReason ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedBox_default, {
2058
+ children: permissionModeTitle(setting.value)
2059
+ }, undefined, false, undefined, this) : setting.id === "autoUpdatesChannel" && autoUpdaterDisabledReason ? /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedBox_default, {
2406
2060
  flexDirection: "column",
2407
2061
  children: [
2408
2062
  /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
@@ -2420,12 +2074,12 @@ function Config({
2420
2074
  ]
2421
2075
  }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2422
2076
  color: isSelected ? "suggestion" : undefined,
2423
- children: setting_2.value.toString()
2077
+ children: setting.value.toString()
2424
2078
  }, undefined, false, undefined, this)
2425
2079
  }, isSelected ? "selected" : "unselected", false, undefined, this)
2426
2080
  ]
2427
2081
  }, undefined, true, undefined, this)
2428
- }, setting_2.id, false, undefined, this);
2082
+ }, setting.id, false, undefined, this);
2429
2083
  }),
2430
2084
  scrollOffset + maxVisible < filteredSettingsItems.length && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2431
2085
  dimColor: true,
@@ -2526,101 +2180,61 @@ function teammateModelDisplayString(value) {
2526
2180
  return "Default (leader's model)";
2527
2181
  return modelDisplayString(value);
2528
2182
  }
2529
- function NotifChannelLabel(t0) {
2530
- const $ = import_compiler_runtime5.c(4);
2531
- const {
2532
- value
2533
- } = t0;
2183
+ function NotifChannelLabel({ value }) {
2534
2184
  switch (value) {
2535
- case "auto": {
2185
+ case "auto":
2536
2186
  return "Auto";
2537
- }
2538
- case "iterm2": {
2539
- let t1;
2540
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
2541
- t1 = /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2542
- children: [
2543
- "iTerm2 ",
2544
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2545
- dimColor: true,
2546
- children: "(OSC 9)"
2547
- }, undefined, false, undefined, this)
2548
- ]
2549
- }, undefined, true, undefined, this);
2550
- $[0] = t1;
2551
- } else {
2552
- t1 = $[0];
2553
- }
2554
- return t1;
2555
- }
2556
- case "terminal_bell": {
2557
- let t1;
2558
- if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
2559
- t1 = /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2560
- children: [
2561
- "Terminal Bell ",
2562
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2563
- dimColor: true,
2564
- children: "(\\a)"
2565
- }, undefined, false, undefined, this)
2566
- ]
2567
- }, undefined, true, undefined, this);
2568
- $[1] = t1;
2569
- } else {
2570
- t1 = $[1];
2571
- }
2572
- return t1;
2573
- }
2574
- case "kitty": {
2575
- let t1;
2576
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
2577
- t1 = /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2578
- children: [
2579
- "Kitty ",
2580
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2581
- dimColor: true,
2582
- children: "(OSC 99)"
2583
- }, undefined, false, undefined, this)
2584
- ]
2585
- }, undefined, true, undefined, this);
2586
- $[2] = t1;
2587
- } else {
2588
- t1 = $[2];
2589
- }
2590
- return t1;
2591
- }
2592
- case "ghostty": {
2593
- let t1;
2594
- if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
2595
- t1 = /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2596
- children: [
2597
- "Ghostty ",
2598
- /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2599
- dimColor: true,
2600
- children: "(OSC 777)"
2601
- }, undefined, false, undefined, this)
2602
- ]
2603
- }, undefined, true, undefined, this);
2604
- $[3] = t1;
2605
- } else {
2606
- t1 = $[3];
2607
- }
2608
- return t1;
2609
- }
2610
- case "iterm2_with_bell": {
2187
+ case "iterm2":
2188
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2189
+ children: [
2190
+ "iTerm2 ",
2191
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2192
+ dimColor: true,
2193
+ children: "(OSC 9)"
2194
+ }, undefined, false, undefined, this)
2195
+ ]
2196
+ }, undefined, true, undefined, this);
2197
+ case "terminal_bell":
2198
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2199
+ children: [
2200
+ "Terminal Bell ",
2201
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2202
+ dimColor: true,
2203
+ children: "(\\a)"
2204
+ }, undefined, false, undefined, this)
2205
+ ]
2206
+ }, undefined, true, undefined, this);
2207
+ case "kitty":
2208
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2209
+ children: [
2210
+ "Kitty ",
2211
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2212
+ dimColor: true,
2213
+ children: "(OSC 99)"
2214
+ }, undefined, false, undefined, this)
2215
+ ]
2216
+ }, undefined, true, undefined, this);
2217
+ case "ghostty":
2218
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2219
+ children: [
2220
+ "Ghostty ",
2221
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
2222
+ dimColor: true,
2223
+ children: "(OSC 777)"
2224
+ }, undefined, false, undefined, this)
2225
+ ]
2226
+ }, undefined, true, undefined, this);
2227
+ case "iterm2_with_bell":
2611
2228
  return "iTerm2 w/ Bell";
2612
- }
2613
- case "notifications_disabled": {
2229
+ case "notifications_disabled":
2614
2230
  return "Disabled";
2615
- }
2616
- default: {
2231
+ default:
2617
2232
  return value;
2618
- }
2619
2233
  }
2620
2234
  }
2621
- var import_compiler_runtime5, React2, import_react4, jsx_dev_runtime5, THEME_LABELS;
2235
+ var React3, import_react4, jsx_dev_runtime5, THEME_LABELS;
2622
2236
  var init_Config = __esm(() => {
2623
- init_ink();
2237
+ init_src();
2624
2238
  init_useKeybinding();
2625
2239
  init_figures();
2626
2240
  init_config();
@@ -2639,15 +2253,14 @@ var init_Config = __esm(() => {
2639
2253
  init_extraUsage();
2640
2254
  init_ClaudeMdExternalIncludesDialog();
2641
2255
  init_ChannelDowngradeDialog();
2642
- init_Dialog();
2256
+ init_src();
2643
2257
  init_CustomSelect();
2644
2258
  init_OutputStylePicker();
2645
2259
  init_LanguagePicker();
2646
2260
  init_claudemd();
2647
- init_KeyboardShortcutHint();
2648
- init_ConfigurableShortcutHint();
2649
- init_Byline();
2261
+ init_src();
2650
2262
  init_Tabs();
2263
+ init_ConfigurableShortcutHint();
2651
2264
  init_modalContext();
2652
2265
  init_SearchBox();
2653
2266
  init_ide();
@@ -2663,8 +2276,7 @@ var init_Config = __esm(() => {
2663
2276
  init_useTerminalSize();
2664
2277
  init_fastMode();
2665
2278
  init_fullscreen();
2666
- import_compiler_runtime5 = __toESM(require_compiler_runtime(), 1);
2667
- React2 = __toESM(require_react(), 1);
2279
+ React3 = __toESM(require_react(), 1);
2668
2280
  import_react4 = __toESM(require_react(), 1);
2669
2281
  jsx_dev_runtime5 = __toESM(require_jsx_dev_runtime(), 1);
2670
2282
  THEME_LABELS = {
@@ -2679,36 +2291,21 @@ var init_Config = __esm(() => {
2679
2291
  });
2680
2292
 
2681
2293
  // src/components/Settings/Usage.tsx
2682
- function LimitBar(t0) {
2683
- const $ = import_compiler_runtime6.c(34);
2684
- const {
2685
- title,
2686
- limit,
2687
- maxWidth,
2688
- showTimeInReset: t1,
2689
- extraSubtext
2690
- } = t0;
2691
- const showTimeInReset = t1 === undefined ? true : t1;
2692
- const {
2693
- utilization,
2694
- resets_at
2695
- } = limit;
2294
+ function LimitBar({
2295
+ title,
2296
+ limit,
2297
+ maxWidth,
2298
+ showTimeInReset = true,
2299
+ extraSubtext
2300
+ }) {
2301
+ const { utilization, resets_at } = limit;
2696
2302
  if (utilization === null) {
2697
2303
  return null;
2698
2304
  }
2699
2305
  const usedText = `${Math.floor(utilization)}% used`;
2700
2306
  let subtext;
2701
2307
  if (resets_at) {
2702
- let t2;
2703
- if ($[0] !== resets_at || $[1] !== showTimeInReset) {
2704
- t2 = formatResetText(resets_at, true, showTimeInReset);
2705
- $[0] = resets_at;
2706
- $[1] = showTimeInReset;
2707
- $[2] = t2;
2708
- } else {
2709
- t2 = $[2];
2710
- }
2711
- subtext = `Resets ${t2}`;
2308
+ subtext = `Resets ${formatResetText(resets_at, true, showTimeInReset)}`;
2712
2309
  }
2713
2310
  if (extraSubtext) {
2714
2311
  if (subtext) {
@@ -2717,189 +2314,84 @@ function LimitBar(t0) {
2717
2314
  subtext = extraSubtext;
2718
2315
  }
2719
2316
  }
2720
- if (maxWidth >= 62) {
2721
- let t2;
2722
- if ($[3] !== title) {
2723
- t2 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2724
- bold: true,
2725
- children: title
2726
- }, undefined, false, undefined, this);
2727
- $[3] = title;
2728
- $[4] = t2;
2729
- } else {
2730
- t2 = $[4];
2731
- }
2732
- const t3 = utilization / 100;
2733
- let t4;
2734
- if ($[5] !== t3) {
2735
- t4 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ProgressBar, {
2736
- ratio: t3,
2737
- width: 50,
2738
- fillColor: "rate_limit_fill",
2739
- emptyColor: "rate_limit_empty"
2740
- }, undefined, false, undefined, this);
2741
- $[5] = t3;
2742
- $[6] = t4;
2743
- } else {
2744
- t4 = $[6];
2745
- }
2746
- let t5;
2747
- if ($[7] !== usedText) {
2748
- t5 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2749
- children: usedText
2750
- }, undefined, false, undefined, this);
2751
- $[7] = usedText;
2752
- $[8] = t5;
2753
- } else {
2754
- t5 = $[8];
2755
- }
2756
- let t6;
2757
- if ($[9] !== t4 || $[10] !== t5) {
2758
- t6 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
2759
- flexDirection: "row",
2760
- gap: 1,
2761
- children: [
2762
- t4,
2763
- t5
2764
- ]
2765
- }, undefined, true, undefined, this);
2766
- $[9] = t4;
2767
- $[10] = t5;
2768
- $[11] = t6;
2769
- } else {
2770
- t6 = $[11];
2771
- }
2772
- let t7;
2773
- if ($[12] !== subtext) {
2774
- t7 = subtext && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2775
- dimColor: true,
2776
- children: subtext
2777
- }, undefined, false, undefined, this);
2778
- $[12] = subtext;
2779
- $[13] = t7;
2780
- } else {
2781
- t7 = $[13];
2782
- }
2783
- let t8;
2784
- if ($[14] !== t2 || $[15] !== t6 || $[16] !== t7) {
2785
- t8 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
2786
- flexDirection: "column",
2787
- children: [
2788
- t2,
2789
- t6,
2790
- t7
2791
- ]
2792
- }, undefined, true, undefined, this);
2793
- $[14] = t2;
2794
- $[15] = t6;
2795
- $[16] = t7;
2796
- $[17] = t8;
2797
- } else {
2798
- t8 = $[17];
2799
- }
2800
- return t8;
2317
+ const maxBarWidth = 50;
2318
+ const usedLabelSpace = 12;
2319
+ if (maxWidth >= maxBarWidth + usedLabelSpace) {
2320
+ return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
2321
+ flexDirection: "column",
2322
+ children: [
2323
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2324
+ bold: true,
2325
+ children: title
2326
+ }, undefined, false, undefined, this),
2327
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
2328
+ flexDirection: "row",
2329
+ gap: 1,
2330
+ children: [
2331
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ProgressBar, {
2332
+ ratio: utilization / 100,
2333
+ width: maxBarWidth,
2334
+ fillColor: "rate_limit_fill",
2335
+ emptyColor: "rate_limit_empty"
2336
+ }, undefined, false, undefined, this),
2337
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2338
+ children: usedText
2339
+ }, undefined, false, undefined, this)
2340
+ ]
2341
+ }, undefined, true, undefined, this),
2342
+ subtext && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2343
+ dimColor: true,
2344
+ children: subtext
2345
+ }, undefined, false, undefined, this)
2346
+ ]
2347
+ }, undefined, true, undefined, this);
2801
2348
  } else {
2802
- let t2;
2803
- if ($[18] !== title) {
2804
- t2 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2805
- bold: true,
2806
- children: title
2807
- }, undefined, false, undefined, this);
2808
- $[18] = title;
2809
- $[19] = t2;
2810
- } else {
2811
- t2 = $[19];
2812
- }
2813
- let t3;
2814
- if ($[20] !== subtext) {
2815
- t3 = subtext && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(jsx_dev_runtime6.Fragment, {
2816
- children: [
2817
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2818
- children: " "
2819
- }, undefined, false, undefined, this),
2820
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2821
- dimColor: true,
2822
- children: [
2823
- "\xB7 ",
2824
- subtext
2825
- ]
2826
- }, undefined, true, undefined, this)
2827
- ]
2828
- }, undefined, true, undefined, this);
2829
- $[20] = subtext;
2830
- $[21] = t3;
2831
- } else {
2832
- t3 = $[21];
2833
- }
2834
- let t4;
2835
- if ($[22] !== t2 || $[23] !== t3) {
2836
- t4 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2837
- children: [
2838
- t2,
2839
- t3
2840
- ]
2841
- }, undefined, true, undefined, this);
2842
- $[22] = t2;
2843
- $[23] = t3;
2844
- $[24] = t4;
2845
- } else {
2846
- t4 = $[24];
2847
- }
2848
- const t5 = utilization / 100;
2849
- let t6;
2850
- if ($[25] !== maxWidth || $[26] !== t5) {
2851
- t6 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ProgressBar, {
2852
- ratio: t5,
2853
- width: maxWidth,
2854
- fillColor: "rate_limit_fill",
2855
- emptyColor: "rate_limit_empty"
2856
- }, undefined, false, undefined, this);
2857
- $[25] = maxWidth;
2858
- $[26] = t5;
2859
- $[27] = t6;
2860
- } else {
2861
- t6 = $[27];
2862
- }
2863
- let t7;
2864
- if ($[28] !== usedText) {
2865
- t7 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2866
- children: usedText
2867
- }, undefined, false, undefined, this);
2868
- $[28] = usedText;
2869
- $[29] = t7;
2870
- } else {
2871
- t7 = $[29];
2872
- }
2873
- let t8;
2874
- if ($[30] !== t4 || $[31] !== t6 || $[32] !== t7) {
2875
- t8 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
2876
- flexDirection: "column",
2877
- children: [
2878
- t4,
2879
- t6,
2880
- t7
2881
- ]
2882
- }, undefined, true, undefined, this);
2883
- $[30] = t4;
2884
- $[31] = t6;
2885
- $[32] = t7;
2886
- $[33] = t8;
2887
- } else {
2888
- t8 = $[33];
2889
- }
2890
- return t8;
2349
+ return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
2350
+ flexDirection: "column",
2351
+ children: [
2352
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2353
+ children: [
2354
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2355
+ bold: true,
2356
+ children: title
2357
+ }, undefined, false, undefined, this),
2358
+ subtext && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(jsx_dev_runtime6.Fragment, {
2359
+ children: [
2360
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2361
+ children: " "
2362
+ }, undefined, false, undefined, this),
2363
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2364
+ dimColor: true,
2365
+ children: [
2366
+ "\xB7 ",
2367
+ subtext
2368
+ ]
2369
+ }, undefined, true, undefined, this)
2370
+ ]
2371
+ }, undefined, true, undefined, this)
2372
+ ]
2373
+ }, undefined, true, undefined, this),
2374
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ProgressBar, {
2375
+ ratio: utilization / 100,
2376
+ width: maxWidth,
2377
+ fillColor: "rate_limit_fill",
2378
+ emptyColor: "rate_limit_empty"
2379
+ }, undefined, false, undefined, this),
2380
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2381
+ children: usedText
2382
+ }, undefined, false, undefined, this)
2383
+ ]
2384
+ }, undefined, true, undefined, this);
2891
2385
  }
2892
2386
  }
2893
2387
  function Usage() {
2894
2388
  const [utilization, setUtilization] = import_react5.useState(null);
2895
2389
  const [error, setError] = import_react5.useState(null);
2896
2390
  const [isLoading, setIsLoading] = import_react5.useState(true);
2897
- const {
2898
- columns
2899
- } = useTerminalSize();
2391
+ const { columns } = useTerminalSize();
2900
2392
  const availableWidth = columns - 2;
2901
2393
  const maxWidth = Math.min(availableWidth, 80);
2902
- const loadUtilization = React3.useCallback(async () => {
2394
+ const loadUtilization = React4.useCallback(async () => {
2903
2395
  setIsLoading(true);
2904
2396
  setError(null);
2905
2397
  try {
@@ -2919,10 +2411,7 @@ function Usage() {
2919
2411
  }, [loadUtilization]);
2920
2412
  useKeybinding("settings:retry", () => {
2921
2413
  loadUtilization();
2922
- }, {
2923
- context: "Settings",
2924
- isActive: !!error && !isLoading
2925
- });
2414
+ }, { context: "Settings", isActive: !!error && !isLoading });
2926
2415
  if (error) {
2927
2416
  return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
2928
2417
  flexDirection: "column",
@@ -2980,33 +2469,34 @@ function Usage() {
2980
2469
  }
2981
2470
  const subscriptionType = getSubscriptionType();
2982
2471
  const showSonnetBar = subscriptionType === "max" || subscriptionType === "team" || subscriptionType === null;
2983
- const limits = [{
2984
- title: "Current session",
2985
- limit: utilization.five_hour
2986
- }, {
2987
- title: "Current week (all models)",
2988
- limit: utilization.seven_day
2989
- }, ...showSonnetBar ? [{
2990
- title: "Current week (Sonnet only)",
2991
- limit: utilization.seven_day_sonnet
2992
- }] : []];
2472
+ const limits = [
2473
+ {
2474
+ title: "Current session",
2475
+ limit: utilization.five_hour
2476
+ },
2477
+ {
2478
+ title: "Current week (all models)",
2479
+ limit: utilization.seven_day
2480
+ },
2481
+ ...showSonnetBar ? [
2482
+ {
2483
+ title: "Current week (Sonnet only)",
2484
+ limit: utilization.seven_day_sonnet
2485
+ }
2486
+ ] : []
2487
+ ];
2993
2488
  return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
2994
2489
  flexDirection: "column",
2995
2490
  gap: 1,
2996
2491
  width: "100%",
2997
2492
  children: [
2998
- limits.some(({
2999
- limit
3000
- }) => limit) || /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2493
+ limits.some(({ limit }) => limit) || /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
3001
2494
  dimColor: true,
3002
2495
  children: "/usage is only available for subscription plans."
3003
2496
  }, undefined, false, undefined, this),
3004
- limits.map(({
2497
+ limits.map(({ title, limit }) => limit && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(LimitBar, {
3005
2498
  title,
3006
- limit: limit_0
3007
- }) => limit_0 && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(LimitBar, {
3008
- title,
3009
- limit: limit_0,
2499
+ limit,
3010
2500
  maxWidth
3011
2501
  }, title, false, undefined, this)),
3012
2502
  utilization.extra_usage && /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ExtraUsageSection, {
@@ -3028,12 +2518,10 @@ function Usage() {
3028
2518
  ]
3029
2519
  }, undefined, true, undefined, this);
3030
2520
  }
3031
- function ExtraUsageSection(t0) {
3032
- const $ = import_compiler_runtime6.c(20);
3033
- const {
3034
- extraUsage: extraUsage2,
3035
- maxWidth
3036
- } = t0;
2521
+ function ExtraUsageSection({
2522
+ extraUsage: extraUsage2,
2523
+ maxWidth
2524
+ }) {
3037
2525
  const subscriptionType = getSubscriptionType();
3038
2526
  const isProOrMax = subscriptionType === "pro" || subscriptionType === "max";
3039
2527
  if (!isProOrMax) {
@@ -3041,33 +2529,7 @@ function ExtraUsageSection(t0) {
3041
2529
  }
3042
2530
  if (!extraUsage2.is_enabled) {
3043
2531
  if (extraUsage.isEnabled()) {
3044
- let t12;
3045
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
3046
- t12 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
3047
- flexDirection: "column",
3048
- children: [
3049
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
3050
- bold: true,
3051
- children: EXTRA_USAGE_SECTION_TITLE
3052
- }, undefined, false, undefined, this),
3053
- /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
3054
- dimColor: true,
3055
- children: "Extra usage not enabled \xB7 /extra-usage to enable"
3056
- }, undefined, false, undefined, this)
3057
- ]
3058
- }, undefined, true, undefined, this);
3059
- $[0] = t12;
3060
- } else {
3061
- t12 = $[0];
3062
- }
3063
- return t12;
3064
- }
3065
- return null;
3066
- }
3067
- if (extraUsage2.monthly_limit === null) {
3068
- let t12;
3069
- if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
3070
- t12 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
2532
+ return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
3071
2533
  flexDirection: "column",
3072
2534
  children: [
3073
2535
  /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
@@ -3076,183 +2538,100 @@ function ExtraUsageSection(t0) {
3076
2538
  }, undefined, false, undefined, this),
3077
2539
  /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
3078
2540
  dimColor: true,
3079
- children: "Unlimited"
2541
+ children: "Extra usage not enabled \xB7 /extra-usage to enable"
3080
2542
  }, undefined, false, undefined, this)
3081
2543
  ]
3082
2544
  }, undefined, true, undefined, this);
3083
- $[1] = t12;
3084
- } else {
3085
- t12 = $[1];
3086
2545
  }
3087
- return t12;
3088
- }
3089
- if (typeof extraUsage2.used_credits !== "number" || typeof extraUsage2.utilization !== "number") {
3090
2546
  return null;
3091
2547
  }
3092
- const t1 = extraUsage2.used_credits / 100;
3093
- let t2;
3094
- if ($[2] !== t1) {
3095
- t2 = formatCost(t1, 2);
3096
- $[2] = t1;
3097
- $[3] = t2;
3098
- } else {
3099
- t2 = $[3];
3100
- }
3101
- const formattedUsedCredits = t2;
3102
- const t3 = extraUsage2.monthly_limit / 100;
3103
- let t4;
3104
- if ($[4] !== t3) {
3105
- t4 = formatCost(t3, 2);
3106
- $[4] = t3;
3107
- $[5] = t4;
3108
- } else {
3109
- t4 = $[5];
3110
- }
3111
- const formattedMonthlyLimit = t4;
3112
- let T0;
3113
- let t5;
3114
- let t6;
3115
- let t7;
3116
- if ($[6] !== extraUsage2.utilization) {
3117
- const now = new Date;
3118
- const oneMonthReset = new Date(now.getFullYear(), now.getMonth() + 1, 1);
3119
- T0 = LimitBar;
3120
- t7 = EXTRA_USAGE_SECTION_TITLE;
3121
- t5 = extraUsage2.utilization;
3122
- t6 = oneMonthReset.toISOString();
3123
- $[6] = extraUsage2.utilization;
3124
- $[7] = T0;
3125
- $[8] = t5;
3126
- $[9] = t6;
3127
- $[10] = t7;
3128
- } else {
3129
- T0 = $[7];
3130
- t5 = $[8];
3131
- t6 = $[9];
3132
- t7 = $[10];
3133
- }
3134
- let t8;
3135
- if ($[11] !== t5 || $[12] !== t6) {
3136
- t8 = {
3137
- utilization: t5,
3138
- resets_at: t6
3139
- };
3140
- $[11] = t5;
3141
- $[12] = t6;
3142
- $[13] = t8;
3143
- } else {
3144
- t8 = $[13];
2548
+ if (extraUsage2.monthly_limit === null) {
2549
+ return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
2550
+ flexDirection: "column",
2551
+ children: [
2552
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2553
+ bold: true,
2554
+ children: EXTRA_USAGE_SECTION_TITLE
2555
+ }, undefined, false, undefined, this),
2556
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
2557
+ dimColor: true,
2558
+ children: "Unlimited"
2559
+ }, undefined, false, undefined, this)
2560
+ ]
2561
+ }, undefined, true, undefined, this);
3145
2562
  }
3146
- const t9 = `${formattedUsedCredits} / ${formattedMonthlyLimit} spent`;
3147
- let t10;
3148
- if ($[14] !== T0 || $[15] !== maxWidth || $[16] !== t7 || $[17] !== t8 || $[18] !== t9) {
3149
- t10 = /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(T0, {
3150
- title: t7,
3151
- limit: t8,
3152
- showTimeInReset: false,
3153
- extraSubtext: t9,
3154
- maxWidth
3155
- }, undefined, false, undefined, this);
3156
- $[14] = T0;
3157
- $[15] = maxWidth;
3158
- $[16] = t7;
3159
- $[17] = t8;
3160
- $[18] = t9;
3161
- $[19] = t10;
3162
- } else {
3163
- t10 = $[19];
2563
+ if (typeof extraUsage2.used_credits !== "number" || typeof extraUsage2.utilization !== "number") {
2564
+ return null;
3164
2565
  }
3165
- return t10;
2566
+ const formattedUsedCredits = formatCost(extraUsage2.used_credits / 100, 2);
2567
+ const formattedMonthlyLimit = formatCost(extraUsage2.monthly_limit / 100, 2);
2568
+ const now = new Date;
2569
+ const oneMonthReset = new Date(now.getFullYear(), now.getMonth() + 1, 1);
2570
+ return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(LimitBar, {
2571
+ title: EXTRA_USAGE_SECTION_TITLE,
2572
+ limit: {
2573
+ utilization: extraUsage2.utilization,
2574
+ resets_at: oneMonthReset.toISOString()
2575
+ },
2576
+ showTimeInReset: false,
2577
+ extraSubtext: `${formattedUsedCredits} / ${formattedMonthlyLimit} spent`,
2578
+ maxWidth
2579
+ }, undefined, false, undefined, this);
3166
2580
  }
3167
- var import_compiler_runtime6, React3, import_react5, jsx_dev_runtime6, EXTRA_USAGE_SECTION_TITLE = "Extra usage";
2581
+ var React4, import_react5, jsx_dev_runtime6, EXTRA_USAGE_SECTION_TITLE = "Extra usage";
3168
2582
  var init_Usage = __esm(() => {
3169
2583
  init_extra_usage();
3170
2584
  init_cost_tracker();
3171
2585
  init_auth();
3172
2586
  init_useTerminalSize();
3173
- init_ink();
2587
+ init_src();
3174
2588
  init_useKeybinding();
3175
2589
  init_usage();
3176
2590
  init_format();
3177
2591
  init_log();
3178
2592
  init_slowOperations();
3179
2593
  init_ConfigurableShortcutHint();
3180
- init_Byline();
3181
- init_ProgressBar();
2594
+ init_src();
3182
2595
  init_OverageCreditUpsell();
3183
- import_compiler_runtime6 = __toESM(require_compiler_runtime(), 1);
3184
- React3 = __toESM(require_react(), 1);
2596
+ React4 = __toESM(require_react(), 1);
3185
2597
  import_react5 = __toESM(require_react(), 1);
3186
2598
  jsx_dev_runtime6 = __toESM(require_jsx_dev_runtime(), 1);
3187
2599
  });
3188
2600
 
3189
2601
  // src/components/Settings/Settings.tsx
3190
- function Settings(t0) {
3191
- const $ = import_compiler_runtime7.c(25);
3192
- const {
3193
- onClose,
3194
- context,
3195
- defaultTab
3196
- } = t0;
2602
+ function Settings({
2603
+ onClose,
2604
+ context,
2605
+ defaultTab
2606
+ }) {
3197
2607
  const [selectedTab, setSelectedTab] = import_react6.useState(defaultTab);
3198
2608
  const [tabsHidden, setTabsHidden] = import_react6.useState(false);
3199
2609
  const [configOwnsEsc, setConfigOwnsEsc] = import_react6.useState(false);
3200
2610
  const [gatesOwnsEsc, setGatesOwnsEsc] = import_react6.useState(false);
3201
2611
  const insideModal = useIsInsideModal();
3202
- const {
3203
- rows
3204
- } = useModalOrTerminalSize(useTerminalSize());
2612
+ const { rows } = useModalOrTerminalSize(useTerminalSize());
3205
2613
  const contentHeight = insideModal ? rows + 1 : Math.max(15, Math.min(Math.floor(rows * 0.8), 30));
3206
- const [diagnosticsPromise] = import_react6.useState(_temp22);
2614
+ const [diagnosticsPromise] = import_react6.useState(() => buildDiagnostics().catch(() => []));
3207
2615
  useExitOnCtrlCDWithKeybindings();
3208
- let t1;
3209
- if ($[0] !== onClose || $[1] !== tabsHidden) {
3210
- t1 = () => {
3211
- if (tabsHidden) {
3212
- return;
3213
- }
3214
- onClose("Status dialog dismissed", {
3215
- display: "system"
3216
- });
3217
- };
3218
- $[0] = onClose;
3219
- $[1] = tabsHidden;
3220
- $[2] = t1;
3221
- } else {
3222
- t1 = $[2];
3223
- }
3224
- const handleEscape = t1;
3225
- const t2 = !tabsHidden && !(selectedTab === "Config" && configOwnsEsc) && !(selectedTab === "Gates" && gatesOwnsEsc);
3226
- let t3;
3227
- if ($[3] !== t2) {
3228
- t3 = {
3229
- context: "Settings",
3230
- isActive: t2
3231
- };
3232
- $[3] = t2;
3233
- $[4] = t3;
3234
- } else {
3235
- t3 = $[4];
3236
- }
3237
- useKeybinding("confirm:no", handleEscape, t3);
3238
- let t4;
3239
- if ($[5] !== context || $[6] !== diagnosticsPromise) {
3240
- t4 = /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
2616
+ const handleEscape = () => {
2617
+ if (tabsHidden) {
2618
+ return;
2619
+ }
2620
+ onClose("Status dialog dismissed", { display: "system" });
2621
+ };
2622
+ useKeybinding("confirm:no", handleEscape, {
2623
+ context: "Settings",
2624
+ isActive: !tabsHidden && !(selectedTab === "Config" && configOwnsEsc) && !(selectedTab === "Gates" && gatesOwnsEsc)
2625
+ });
2626
+ const tabs = [
2627
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
3241
2628
  title: "Status",
3242
2629
  children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Status, {
3243
2630
  context,
3244
2631
  diagnosticsPromise
3245
2632
  }, undefined, false, undefined, this)
3246
- }, "status", false, undefined, this);
3247
- $[5] = context;
3248
- $[6] = diagnosticsPromise;
3249
- $[7] = t4;
3250
- } else {
3251
- t4 = $[7];
3252
- }
3253
- let t5;
3254
- if ($[8] !== contentHeight || $[9] !== context || $[10] !== onClose) {
3255
- t5 = /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
2633
+ }, "status", false, undefined, this),
2634
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
3256
2635
  title: "Config",
3257
2636
  children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(import_react6.Suspense, {
3258
2637
  fallback: null,
@@ -3264,88 +2643,45 @@ function Settings(t0) {
3264
2643
  contentHeight
3265
2644
  }, undefined, false, undefined, this)
3266
2645
  }, undefined, false, undefined, this)
3267
- }, "config", false, undefined, this);
3268
- $[8] = contentHeight;
3269
- $[9] = context;
3270
- $[10] = onClose;
3271
- $[11] = t5;
3272
- } else {
3273
- t5 = $[11];
3274
- }
3275
- let t6;
3276
- if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
3277
- t6 = /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
2646
+ }, "config", false, undefined, this),
2647
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
3278
2648
  title: "Usage",
3279
2649
  children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Usage, {}, undefined, false, undefined, this)
3280
- }, "usage", false, undefined, this);
3281
- $[12] = t6;
3282
- } else {
3283
- t6 = $[12];
3284
- }
3285
- let t7;
3286
- if ($[13] !== contentHeight) {
3287
- t7 = [];
3288
- $[13] = contentHeight;
3289
- $[14] = t7;
3290
- } else {
3291
- t7 = $[14];
3292
- }
3293
- let t8;
3294
- if ($[15] !== t4 || $[16] !== t5 || $[17] !== t7) {
3295
- t8 = [t4, t5, t6, ...t7];
3296
- $[15] = t4;
3297
- $[16] = t5;
3298
- $[17] = t7;
3299
- $[18] = t8;
3300
- } else {
3301
- t8 = $[18];
3302
- }
3303
- const tabs = t8;
3304
- const t9 = defaultTab !== "Config" && defaultTab !== "Gates";
3305
- const t10 = tabsHidden || insideModal ? undefined : contentHeight;
3306
- let t11;
3307
- if ($[19] !== selectedTab || $[20] !== t10 || $[21] !== t9 || $[22] !== tabs || $[23] !== tabsHidden) {
3308
- t11 = /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Pane, {
2650
+ }, "usage", false, undefined, this),
2651
+ ...process.env.USER_TYPE === "ant" ? [
2652
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
2653
+ title: "Gates",
2654
+ children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Gates, {
2655
+ onOwnsEscChange: setGatesOwnsEsc,
2656
+ contentHeight
2657
+ }, undefined, false, undefined, this)
2658
+ }, "gates", false, undefined, this)
2659
+ ] : []
2660
+ ];
2661
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Pane, {
2662
+ color: "permission",
2663
+ children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tabs, {
3309
2664
  color: "permission",
3310
- children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tabs, {
3311
- color: "permission",
3312
- selectedTab,
3313
- onTabChange: setSelectedTab,
3314
- hidden: tabsHidden,
3315
- initialHeaderFocused: t9,
3316
- contentHeight: t10,
3317
- children: tabs
3318
- }, undefined, false, undefined, this)
3319
- }, undefined, false, undefined, this);
3320
- $[19] = selectedTab;
3321
- $[20] = t10;
3322
- $[21] = t9;
3323
- $[22] = tabs;
3324
- $[23] = tabsHidden;
3325
- $[24] = t11;
3326
- } else {
3327
- t11 = $[24];
3328
- }
3329
- return t11;
3330
- }
3331
- function _temp22() {
3332
- return buildDiagnostics().catch(_temp6);
3333
- }
3334
- function _temp6() {
3335
- return [];
2665
+ selectedTab,
2666
+ onTabChange: setSelectedTab,
2667
+ hidden: tabsHidden,
2668
+ initialHeaderFocused: defaultTab !== "Config" && defaultTab !== "Gates",
2669
+ contentHeight: tabsHidden || insideModal ? undefined : contentHeight,
2670
+ children: tabs
2671
+ }, undefined, false, undefined, this)
2672
+ }, undefined, false, undefined, this);
3336
2673
  }
3337
- var import_compiler_runtime7, import_react6, jsx_dev_runtime7;
2674
+ var import_react6, jsx_dev_runtime7;
3338
2675
  var init_Settings = __esm(() => {
3339
2676
  init_useKeybinding();
3340
2677
  init_useExitOnCtrlCDWithKeybindings();
3341
2678
  init_useTerminalSize();
3342
2679
  init_modalContext();
3343
- init_Pane();
2680
+ init_src();
3344
2681
  init_Tabs();
3345
2682
  init_Status();
3346
2683
  init_Config();
3347
2684
  init_Usage();
3348
- import_compiler_runtime7 = __toESM(require_compiler_runtime(), 1);
3349
2685
  import_react6 = __toESM(require_react(), 1);
3350
2686
  jsx_dev_runtime7 = __toESM(require_jsx_dev_runtime(), 1);
3351
2687
  });