claude-code-best 1.1.0 → 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 (514) hide show
  1. package/README.md +66 -75
  2. package/dist/{chunk-q5b91nhh.js → chunk-01qzvbp3.js} +8 -2
  3. package/dist/{chunk-f9b4wb89.js → chunk-053bj0m0.js} +79 -73
  4. package/dist/chunk-05tt9tt1.js +653 -0
  5. package/dist/chunk-06sq1vz3.js +403 -0
  6. package/dist/chunk-07069jq1.js +30 -0
  7. package/dist/chunk-0dac8msw.js +135 -0
  8. package/dist/{chunk-m5eb5pt2.js → chunk-0ja0y3at.js} +6 -6
  9. package/dist/chunk-0jzdwbdc.js +14 -0
  10. package/dist/chunk-0nrq46nf.js +313 -0
  11. package/dist/chunk-0qz705wz.js +192 -0
  12. package/dist/{chunk-m94pnhfa.js → chunk-0rn4v8sg.js} +38 -28
  13. package/dist/{chunk-1cbn5kxf.js → chunk-0rpb2bdp.js} +3 -2
  14. package/dist/{chunk-zz21rvr7.js → chunk-127cmycn.js} +8 -5
  15. package/dist/chunk-12vk6z7z.js +109 -0
  16. package/dist/{chunk-vybkxr18.js → chunk-15y014gg.js} +41 -31
  17. package/dist/{chunk-44fpr6jq.js → chunk-168xb8v1.js} +4 -2
  18. package/dist/{chunk-8hsyagr8.js → chunk-16bnxyz0.js} +1 -1
  19. package/dist/{chunk-wsqhnjj3.js → chunk-1atfzck5.js} +24 -24
  20. package/dist/chunk-1cbhkqxg.js +310 -0
  21. package/dist/chunk-1csq8bf1.js +295 -0
  22. package/dist/{chunk-0e1xsncc.js → chunk-1cwdhk7a.js} +1 -1
  23. package/dist/{chunk-c8jv6rtj.js → chunk-1ebqpwhn.js} +74 -68
  24. package/dist/{chunk-vyd8jzde.js → chunk-1mh5vt6v.js} +91 -83
  25. package/dist/chunk-1qf125vg.js +123 -0
  26. package/dist/{chunk-ryj80g9p.js → chunk-1sp6713v.js} +131 -176
  27. package/dist/{chunk-d18z9pna.js → chunk-1thgdca1.js} +2 -2
  28. package/dist/chunk-1z1gfx2c.js +443 -0
  29. package/dist/{chunk-wc6wwwyb.js → chunk-21z7acxh.js} +3 -3
  30. package/dist/chunk-229pcf6p.js +509 -0
  31. package/dist/chunk-238g70xa.js +1 -1
  32. package/dist/{chunk-vpb723tx.js → chunk-23ad5t92.js} +5 -5
  33. package/dist/chunk-28043j1k.js +68 -0
  34. package/dist/chunk-299r6d9v.js +141 -0
  35. package/dist/{chunk-a6s8wnhe.js → chunk-2bw5nqsw.js} +4 -4
  36. package/dist/chunk-2mxstrx5.js +445 -0
  37. package/dist/{chunk-9g827w4j.js → chunk-2q39ej51.js} +6 -6
  38. package/dist/chunk-2qwgfjcj.js +5370 -0
  39. package/dist/chunk-2ss23j0q.js +3587 -0
  40. package/dist/{chunk-hy3g1nv8.js → chunk-2wvxddsg.js} +9 -7
  41. package/dist/chunk-2x2aznpc.js +134 -0
  42. package/dist/{chunk-bqq4zamw.js → chunk-2ys5wcxk.js} +3 -3
  43. package/dist/{chunk-x51h62jq.js → chunk-3cvcwgsr.js} +74 -68
  44. package/dist/{chunk-mecs0gpc.js → chunk-3xv7rjsy.js} +14 -11
  45. package/dist/chunk-42x5tjk2.js +42 -0
  46. package/dist/{chunk-q6rax9kh.js → chunk-436r0x2n.js} +5 -5
  47. package/dist/{chunk-zgrg0wk3.js → chunk-44q4jkwa.js} +27 -67
  48. package/dist/{chunk-zq9xa1xe.js → chunk-44w22kyx.js} +104 -139
  49. package/dist/{chunk-yhd82045.js → chunk-46fcr28b.js} +30 -9
  50. package/dist/{chunk-wm2f2f1z.js → chunk-474y75ga.js} +2 -2
  51. package/dist/{chunk-6fkwz9yk.js → chunk-478rpnqm.js} +8 -8
  52. package/dist/{chunk-rj86xm6z.js → chunk-48w0df8a.js} +1 -1
  53. package/dist/{chunk-v4t6dyyh.js → chunk-4cp6193g.js} +2 -2
  54. package/dist/chunk-4d0de73v.js +436 -0
  55. package/dist/chunk-4eecm90d.js +1030 -0
  56. package/dist/{chunk-q7tvkc86.js → chunk-4f4ccg1h.js} +10 -115
  57. package/dist/chunk-4h102wt5.js +65 -0
  58. package/dist/{chunk-3mgywd32.js → chunk-4hv90qcz.js} +1 -1
  59. package/dist/{chunk-bcrxtdcy.js → chunk-4jcqmf9w.js} +39 -29
  60. package/dist/{chunk-v8xem37v.js → chunk-4kk7vxed.js} +8 -6
  61. package/dist/chunk-4nspekjp.js +69 -0
  62. package/dist/chunk-4xmb7bvy.js +125 -0
  63. package/dist/{chunk-427m88ms.js → chunk-4xy0c1dz.js} +8 -8
  64. package/dist/{chunk-41mpwc8h.js → chunk-53c9gb9c.js} +19 -15
  65. package/dist/{chunk-bpts9jbq.js → chunk-53zsn91p.js} +39 -31
  66. package/dist/{chunk-t7cbhqd2.js → chunk-548g1d6z.js} +104 -119
  67. package/dist/chunk-559yvwh1.js +63 -0
  68. package/dist/chunk-5a6ahhvy.js +594 -0
  69. package/dist/{chunk-5tx8dsy0.js → chunk-5c6man70.js} +9531 -18004
  70. package/dist/chunk-5hb5ev7b.js +74 -0
  71. package/dist/{chunk-ggqx30m9.js → chunk-5z28bqne.js} +23 -311
  72. package/dist/{chunk-p7g7pf3f.js → chunk-61ahbn23.js} +8 -6
  73. package/dist/{chunk-0sb5scxx.js → chunk-652wnf1z.js} +5 -5
  74. package/dist/{chunk-7tqhx6dr.js → chunk-66jkaz3q.js} +109 -213
  75. package/dist/{chunk-q25bjaev.js → chunk-677as3nh.js} +2 -2
  76. package/dist/chunk-68ksfahx.js +386 -0
  77. package/dist/{chunk-xs0hwvpa.js → chunk-68pfxvxt.js} +14 -9
  78. package/dist/{chunk-epmheefa.js → chunk-69hys77v.js} +8 -8
  79. package/dist/{chunk-9g2ncq68.js → chunk-6ayqcq3h.js} +120 -127
  80. package/dist/chunk-6kpbgc5w.js +23 -0
  81. package/dist/chunk-6mpsxxsf.js +362 -0
  82. package/dist/chunk-6nze0g86.js +119 -0
  83. package/dist/{chunk-v1mgv1et.js → chunk-6p4cyhb3.js} +4 -3
  84. package/dist/{chunk-2w8633e3.js → chunk-6t62dbnb.js} +61 -100
  85. package/dist/chunk-6t87a3q6.js +2842 -0
  86. package/dist/{chunk-6mz58s8p.js → chunk-6xana182.js} +18 -14
  87. package/dist/{chunk-fpf4cgbt.js → chunk-7bfach0x.js} +9 -9
  88. package/dist/{chunk-n7158r58.js → chunk-7f1ggjr2.js} +75 -69
  89. package/dist/chunk-7fxjmmfw.js +1172 -0
  90. package/dist/{chunk-ckcagq32.js → chunk-7gqf9wej.js} +5 -5
  91. package/dist/{chunk-b1xt9jqg.js → chunk-7j3dkjqq.js} +15 -5
  92. package/dist/chunk-7ns74x0q.js +475 -0
  93. package/dist/{chunk-ghr4s9g6.js → chunk-7qmknpkq.js} +75 -69
  94. package/dist/chunk-7rzepn9c.js +83 -0
  95. package/dist/chunk-7tdcwje9.js +68 -0
  96. package/dist/{chunk-b4mnbry0.js → chunk-8201tnhf.js} +4 -4
  97. package/dist/{chunk-dv1wfr85.js → chunk-8225arm6.js} +5 -4
  98. package/dist/chunk-822wfv88.js +70 -0
  99. package/dist/chunk-837tm8ht.js +183 -0
  100. package/dist/chunk-8a2ajt5d.js +878 -0
  101. package/dist/{chunk-bj0rvnjw.js → chunk-8bymxfn4.js} +39 -29
  102. package/dist/chunk-8cwbzk7h.js +118 -0
  103. package/dist/chunk-8d0ev0m2.js +111 -0
  104. package/dist/{chunk-4pbx3g7s.js → chunk-8g747a8x.js} +1 -1
  105. package/dist/chunk-8kfwb79z.js +436 -0
  106. package/dist/{chunk-xyqr1cww.js → chunk-8me0yq6v.js} +12 -12
  107. package/dist/{chunk-k5gdea6r.js → chunk-8n8285ax.js} +78 -72
  108. package/dist/{chunk-sdj9b9wh.js → chunk-8pn8tvgg.js} +9 -154
  109. package/dist/{chunk-d7mx1phm.js → chunk-8qhr4n77.js} +61 -103
  110. package/dist/{chunk-7ejt5gqq.js → chunk-8s9bbk3r.js} +58 -45
  111. package/dist/{chunk-bmvb57qb.js → chunk-905d2hee.js} +5 -5
  112. package/dist/{chunk-fk06pejm.js → chunk-91xq5y4a.js} +9 -9
  113. package/dist/{chunk-ahjgghpe.js → chunk-93xsyzsp.js} +1 -1
  114. package/dist/chunk-99pmbfqp.js +230 -0
  115. package/dist/{chunk-cgn27dqf.js → chunk-9f14bkn9.js} +3 -3
  116. package/dist/{chunk-sa7nc0vv.js → chunk-9m78gjpd.js} +1 -1
  117. package/dist/{chunk-kq098bkj.js → chunk-9pm2d2gv.js} +245 -316
  118. package/dist/chunk-a136cvvz.js +27 -0
  119. package/dist/{chunk-n5t9m8h9.js → chunk-a1bjde7d.js} +7 -7
  120. package/dist/chunk-a2evk7n1.js +168 -0
  121. package/dist/{chunk-khdjg2v9.js → chunk-a3k4w4cm.js} +38 -28
  122. package/dist/chunk-a3mcc1sb.js +1403 -0
  123. package/dist/{chunk-8hq5kk3y.js → chunk-a4twdmhf.js} +3 -2
  124. package/dist/chunk-a8eaey19.js +66 -0
  125. package/dist/chunk-abkb5pw6.js +426 -0
  126. package/dist/chunk-ae76ded0.js +30 -0
  127. package/dist/{chunk-660kcy7p.js → chunk-agx5w9ce.js} +14 -8
  128. package/dist/chunk-ah46h8rp.js +70 -0
  129. package/dist/chunk-aj3azy6z.js +409 -0
  130. package/dist/chunk-an6z4rzv.js +158 -0
  131. package/dist/{chunk-r6b58y3x.js → chunk-ase86y73.js} +1 -3
  132. package/dist/{chunk-v0wa5ref.js → chunk-avfjb6pd.js} +13 -555
  133. package/dist/{chunk-5mrhhmas.js → chunk-az5x70pn.js} +8 -5
  134. package/dist/{chunk-49k5ktrj.js → chunk-b6rg3egp.js} +30 -15
  135. package/dist/chunk-b73r6ngr.js +125 -0
  136. package/dist/{chunk-8bedvdm1.js → chunk-b81hd3m6.js} +1 -1
  137. package/dist/{chunk-z7pr85qw.js → chunk-b9mhpc0v.js} +3 -3
  138. package/dist/chunk-b9ndqcdv.js +139 -0
  139. package/dist/{chunk-n5516f5q.js → chunk-bd8zk9tn.js} +4 -4
  140. package/dist/chunk-bdy6n17s.js +343 -0
  141. package/dist/{chunk-r55r29js.js → chunk-bf1j3azq.js} +131 -111
  142. package/dist/{chunk-83z0wrnz.js → chunk-bfcet2mw.js} +2 -2
  143. package/dist/{chunk-jy35mvy3.js → chunk-bmjmrk76.js} +7 -7
  144. package/dist/{chunk-2j0j79p0.js → chunk-bsj8e2mb.js} +8 -8
  145. package/dist/{chunk-snvypj85.js → chunk-bt64sq5y.js} +3 -2
  146. package/dist/{chunk-vyc0rjyx.js → chunk-bwg7582d.js} +1 -1
  147. package/dist/{chunk-3be7ka25.js → chunk-bxcfz5gy.js} +1 -1
  148. package/dist/{chunk-mvss16tj.js → chunk-c1k9tg7h.js} +289 -624
  149. package/dist/{chunk-crr52hf4.js → chunk-c5pxerks.js} +13 -11
  150. package/dist/chunk-c6sjhj89.js +1284 -0
  151. package/dist/{chunk-q6dpqj3z.js → chunk-c9q0phsg.js} +9 -6
  152. package/dist/chunk-caj0ab74.js +129 -0
  153. package/dist/{chunk-f64npa3b.js → chunk-chsyvavm.js} +704 -4
  154. package/dist/{chunk-dqh7e4mt.js → chunk-cjpt035a.js} +51 -41
  155. package/dist/{chunk-z8nbjar4.js → chunk-cmcbatgz.js} +7 -5
  156. package/dist/chunk-cnsj3vq2.js +35 -0
  157. package/dist/chunk-cqjmxeqv.js +269 -0
  158. package/dist/{chunk-bt9krt49.js → chunk-cvb1v08x.js} +38 -32
  159. package/dist/{chunk-j3215c49.js → chunk-cxhvyf7c.js} +227 -370
  160. package/dist/{chunk-24x87knx.js → chunk-cxx0e4nv.js} +1326 -2881
  161. package/dist/chunk-cy2hswr1.js +15 -0
  162. package/dist/{chunk-mwp7sj0q.js → chunk-cy6ezb6j.js} +115140 -121540
  163. package/dist/{chunk-ks0m9njy.js → chunk-d2jekryq.js} +8 -8
  164. package/dist/chunk-d4mdda98.js +94 -0
  165. package/dist/{chunk-33khw5gy.js → chunk-d6ve5pze.js} +7 -7
  166. package/dist/{chunk-26wtxbdc.js → chunk-d7886r6a.js} +6928 -6928
  167. package/dist/{chunk-9t1x831d.js → chunk-d83tmb5h.js} +82 -73
  168. package/dist/{chunk-g5sg6y9q.js → chunk-d8meetqc.js} +78 -71
  169. package/dist/{chunk-ra8fbt9p.js → chunk-d8r0q4ps.js} +537 -871
  170. package/dist/chunk-d95k8xkm.js +84 -0
  171. package/dist/chunk-dd4m7t1v.js +112 -0
  172. package/dist/{chunk-er9vzjac.js → chunk-dekbr08w.js} +16 -14
  173. package/dist/{chunk-cvge4pvp.js → chunk-dk8287aa.js} +1 -1
  174. package/dist/{chunk-9mfbqw9k.js → chunk-dm3n2qgd.js} +4 -4
  175. package/dist/{chunk-n6fbyke9.js → chunk-dmxte86x.js} +3 -3
  176. package/dist/{chunk-t24ytdcw.js → chunk-dqvwn28p.js} +12 -10
  177. package/dist/chunk-drkm8yx2.js +34 -0
  178. package/dist/{chunk-ptwn7qw7.js → chunk-dsbewdgm.js} +38 -10
  179. package/dist/{chunk-w7h2yphx.js → chunk-dwekpr47.js} +2 -2
  180. package/dist/{chunk-ks0dm6t3.js → chunk-e3299veq.js} +16 -70
  181. package/dist/{chunk-4x5ym4h2.js → chunk-e5hcyxae.js} +129 -15
  182. package/dist/chunk-e7h0nd5w.js +106 -0
  183. package/dist/{chunk-s2dmn3yg.js → chunk-eaemyebz.js} +5 -5
  184. package/dist/{chunk-cmdsbsb6.js → chunk-edzkkadh.js} +2 -2
  185. package/dist/chunk-em99fnet.js +128 -0
  186. package/dist/{chunk-hfzj1m07.js → chunk-epyaq1z0.js} +13 -4
  187. package/dist/{chunk-v9y80148.js → chunk-eqmkajs4.js} +96 -189
  188. package/dist/{chunk-cs6y2pc9.js → chunk-ergam9ft.js} +5 -5
  189. package/dist/chunk-es2fdse0.js +63 -0
  190. package/dist/{chunk-cenpqc2t.js → chunk-esn3tgm2.js} +8 -6
  191. package/dist/{chunk-qf2v384j.js → chunk-et8ybmt2.js} +9 -7
  192. package/dist/{chunk-aqa7w38f.js → chunk-ew9rp41b.js} +5 -5
  193. package/dist/{chunk-1yabrspp.js → chunk-ewx6xfzb.js} +2 -2
  194. package/dist/chunk-eyjtbtt0.js +137 -0
  195. package/dist/{chunk-rmbp2das.js → chunk-f0jd2p9n.js} +20 -18
  196. package/dist/{chunk-vzqrbsd1.js → chunk-f69rgsm2.js} +5 -5
  197. package/dist/{chunk-f3bapa1x.js → chunk-f6rbj3gz.js} +12 -7
  198. package/dist/chunk-fbhyqxdg.js +1182 -0
  199. package/dist/chunk-feyzykye.js +10 -0
  200. package/dist/chunk-ffhejx56.js +107 -0
  201. package/dist/{chunk-vbbf707n.js → chunk-fhx6nt2a.js} +38 -28
  202. package/dist/chunk-fkkysfev.js +158 -0
  203. package/dist/chunk-fn510gqw.js +216 -0
  204. package/dist/chunk-ftsg8bjm.js +117 -0
  205. package/dist/{chunk-t3bf8hcf.js → chunk-fyts9grb.js} +2 -2
  206. package/dist/{chunk-kd97kxjn.js → chunk-fz0ch109.js} +3 -2
  207. package/dist/{chunk-ye18m1zb.js → chunk-g1jarkx9.js} +38 -8
  208. package/dist/chunk-g9f19ttm.js +15 -0
  209. package/dist/chunk-g9qte35t.js +341 -0
  210. package/dist/chunk-gaav53dc.js +105 -0
  211. package/dist/chunk-gfx3cwrk.js +75 -0
  212. package/dist/{chunk-z9tgzh90.js → chunk-gk2d1x2a.js} +44 -33
  213. package/dist/chunk-gkbat1p9.js +121 -0
  214. package/dist/{chunk-5b7119h5.js → chunk-gmnyk2t8.js} +8 -6
  215. package/dist/{chunk-qvd0k5dn.js → chunk-gnmdprq3.js} +184 -345
  216. package/dist/{chunk-bq6x1ehp.js → chunk-gpz0ddyz.js} +8 -8
  217. package/dist/{chunk-684kdqez.js → chunk-gv1csnc3.js} +198 -302
  218. package/dist/{chunk-x51mdzqq.js → chunk-gv37c8ax.js} +3 -3
  219. package/dist/{chunk-t6h4wf3k.js → chunk-gzr2601k.js} +9 -9
  220. package/dist/{chunk-45e9mkyr.js → chunk-h3pda469.js} +37 -82
  221. package/dist/{chunk-qqfa0dqg.js → chunk-h4b85amj.js} +20 -32
  222. package/dist/{chunk-j4c8s7tn.js → chunk-h5zv78zq.js} +9 -6
  223. package/dist/{chunk-2wcbcdky.js → chunk-h7edytkc.js} +5 -5
  224. package/dist/{chunk-402jrnj6.js → chunk-ha0wbzc3.js} +8 -8
  225. package/dist/{chunk-nxsh6de2.js → chunk-hcgkak1j.js} +20 -125
  226. package/dist/{chunk-tjaqa99q.js → chunk-hezj20qy.js} +3 -3
  227. package/dist/{chunk-kyer92r4.js → chunk-hf85ht0m.js} +2 -2
  228. package/dist/{chunk-m17y8b22.js → chunk-ht1nfygk.js} +38 -28
  229. package/dist/chunk-j316jjby.js +108 -0
  230. package/dist/chunk-j3fge71v.js +115 -0
  231. package/dist/{chunk-b51jjfh5.js → chunk-j4x0t6k2.js} +42 -31
  232. package/dist/{chunk-9gbamk79.js → chunk-j5bth84e.js} +5 -1
  233. package/dist/chunk-j783d5af.js +134 -0
  234. package/dist/chunk-j7pbwf9x.js +108 -0
  235. package/dist/{chunk-0cpnzx7t.js → chunk-j8rnrm5n.js} +114 -150
  236. package/dist/{chunk-vratq94g.js → chunk-j9gxwbe3.js} +1 -1
  237. package/dist/{chunk-3r24h7t6.js → chunk-jaaxk89e.js} +1 -1
  238. package/dist/{chunk-f4jcw0ea.js → chunk-jaew3662.js} +18 -14
  239. package/dist/{chunk-qpm1tmzz.js → chunk-jbbj16w2.js} +120 -191
  240. package/dist/chunk-jerew25v.js +148 -0
  241. package/dist/{chunk-v399mzxk.js → chunk-jf0p00fz.js} +2 -2
  242. package/dist/{chunk-91r0z5qq.js → chunk-jfsah2w3.js} +1059 -1756
  243. package/dist/{chunk-av73dywf.js → chunk-jna2tcvj.js} +8 -8
  244. package/dist/{chunk-jy35z4n0.js → chunk-jng0mb4r.js} +8 -8
  245. package/dist/chunk-jrrmwfp4.js +66 -0
  246. package/dist/{chunk-3m7ge6tj.js → chunk-jt6fa514.js} +14 -12
  247. package/dist/chunk-jvkyx1b7.js +911 -0
  248. package/dist/{chunk-41xeh3t9.js → chunk-jy6c07wa.js} +4 -4
  249. package/dist/chunk-k1fvb16y.js +269 -0
  250. package/dist/{chunk-bqfnp99q.js → chunk-k3s4yk22.js} +1 -1
  251. package/dist/{chunk-4ycz58wj.js → chunk-k46gxg21.js} +68 -8
  252. package/dist/chunk-k8wwyz2t.js +110 -0
  253. package/dist/{chunk-68qevppc.js → chunk-ka3fdfyb.js} +78 -71
  254. package/dist/{chunk-vaebptnz.js → chunk-ka4x7mhn.js} +38 -28
  255. package/dist/chunk-kb99zpps.js +216 -0
  256. package/dist/{chunk-1dyeexvn.js → chunk-kd3mmsd2.js} +4 -4
  257. package/dist/{chunk-1xkekb9y.js → chunk-kfd89dsd.js} +5 -3
  258. package/dist/{chunk-ecsw41df.js → chunk-km1wcchx.js} +81 -76
  259. package/dist/{chunk-dh6c8y1j.js → chunk-kmhwx18d.js} +3 -3
  260. package/dist/{chunk-224x480q.js → chunk-kq91dwkq.js} +8 -6
  261. package/dist/chunk-m17m84b7.js +111 -0
  262. package/dist/chunk-m1a0s9fd.js +1070 -0
  263. package/dist/{chunk-jafes477.js → chunk-m2bcpk8j.js} +4 -3
  264. package/dist/{chunk-veb0gkcf.js → chunk-m7jtn7dk.js} +74 -68
  265. package/dist/chunk-mq2mgyt9.js +103 -0
  266. package/dist/chunk-msv3w4qp.js +1811 -0
  267. package/dist/{chunk-ch53fgm5.js → chunk-mxe1f4jg.js} +13 -11
  268. package/dist/{chunk-hzttn8j7.js → chunk-mzwjvfr2.js} +124 -126
  269. package/dist/{chunk-2de1vaxf.js → chunk-n2n0sq7r.js} +67 -77
  270. package/dist/{chunk-me2ef6g4.js → chunk-n8mpqdje.js} +1 -1
  271. package/dist/chunk-n9e984ba.js +132 -0
  272. package/dist/chunk-netzwgv1.js +154 -0
  273. package/dist/{chunk-xszk7n10.js → chunk-nh3cd07f.js} +1 -1
  274. package/dist/chunk-njrz6mbe.js +66 -0
  275. package/dist/{chunk-e1ge9n4d.js → chunk-nv7pfr7k.js} +2 -2
  276. package/dist/{chunk-vygf94dw.js → chunk-nwd8pb55.js} +74 -68
  277. package/dist/{chunk-5hva0tsg.js → chunk-p2yv7m0g.js} +6 -6
  278. package/dist/chunk-p5t2vy90.js +259 -0
  279. package/dist/{chunk-zk2wsm7d.js → chunk-p7vkh4wx.js} +2 -2
  280. package/dist/{chunk-da4ve9t5.js → chunk-p8crqj70.js} +10 -10
  281. package/dist/{chunk-n2874aq5.js → chunk-pcngtzr8.js} +12 -6
  282. package/dist/{chunk-6td4c2eq.js → chunk-pdjem6h1.js} +53 -71
  283. package/dist/{chunk-zpc0kwkb.js → chunk-pmxdzjq0.js} +6 -6
  284. package/dist/{chunk-pa7saazk.js → chunk-pnkcecq2.js} +27 -55
  285. package/dist/{chunk-zsfxha74.js → chunk-pshjyzq4.js} +8 -7
  286. package/dist/chunk-pt1yj9zf.js +107 -0
  287. package/dist/{chunk-n9x557ea.js → chunk-py6b9d5b.js} +2312 -4200
  288. package/dist/chunk-q7n8d91g.js +67 -0
  289. package/dist/{chunk-e5pntxye.js → chunk-q7tpyeb3.js} +6 -4
  290. package/dist/{chunk-7ymfj7m3.js → chunk-q82r31er.js} +1 -1
  291. package/dist/chunk-qajrkk97.js +298 -0
  292. package/dist/chunk-qbrh24cn.js +119 -0
  293. package/dist/chunk-qd9ntz7c.js +230 -0
  294. package/dist/chunk-qfr5tcd5.js +2537 -0
  295. package/dist/chunk-qpzfmkct.js +456 -0
  296. package/dist/{chunk-35y0r56v.js → chunk-qtfc6wdh.js} +1 -4
  297. package/dist/chunk-r032587e.js +83 -0
  298. package/dist/{chunk-rryx19hp.js → chunk-r2k2jy0y.js} +2 -2
  299. package/dist/{chunk-pgnnrm2v.js → chunk-r4dnnggx.js} +21 -17
  300. package/dist/{chunk-k9a8jemz.js → chunk-r5n8fvw0.js} +7 -7
  301. package/dist/{chunk-jt0pha6y.js → chunk-r7kh03er.js} +222 -196
  302. package/dist/{chunk-n0k8xrey.js → chunk-rfs0mfg8.js} +140 -158
  303. package/dist/{chunk-dr4qq42x.js → chunk-rgbbtszq.js} +9 -9
  304. package/dist/{chunk-fdwa7gem.js → chunk-rkak3kjw.js} +7 -7
  305. package/dist/chunk-rp568bfw.js +111 -0
  306. package/dist/chunk-rtv718sv.js +146 -0
  307. package/dist/{chunk-rw466wqn.js → chunk-rvkvehat.js} +5284 -3093
  308. package/dist/chunk-s1baskk7.js +14 -0
  309. package/dist/{chunk-2cgdr2n7.js → chunk-s1eb67v3.js} +74 -68
  310. package/dist/{chunk-1szr63w0.js → chunk-s59kx26r.js} +81 -72
  311. package/dist/chunk-s6yk6m3b.js +109 -0
  312. package/dist/{chunk-80qg1pzv.js → chunk-sca71yv8.js} +11 -9
  313. package/dist/chunk-sfrwm87k.js +151 -0
  314. package/dist/chunk-sgaknx21.js +123 -0
  315. package/dist/{chunk-myzwt5yw.js → chunk-snyaz093.js} +9 -15
  316. package/dist/{chunk-rwexx5ns.js → chunk-sq8wkk3z.js} +1 -3
  317. package/dist/{chunk-faycqscv.js → chunk-sxqj7s2h.js} +2 -2
  318. package/dist/chunk-t2m6cjp1.js +264 -0
  319. package/dist/chunk-t6hmvb6k.js +1021 -0
  320. package/dist/chunk-t72x960a.js +125 -0
  321. package/dist/chunk-t9kashay.js +440 -0
  322. package/dist/chunk-t9wzf009.js +151 -0
  323. package/dist/chunk-ta1dgyj1.js +154 -0
  324. package/dist/{chunk-5deqy8r0.js → chunk-tavxhayf.js} +77 -71
  325. package/dist/{chunk-35b0ek0j.js → chunk-tcdv4gp8.js} +13 -9
  326. package/dist/chunk-td3b74vm.js +362 -0
  327. package/dist/{chunk-mt25echc.js → chunk-tezak8rx.js} +1 -1
  328. package/dist/chunk-tgcw0rzx.js +262 -0
  329. package/dist/{chunk-9rcbyag3.js → chunk-tmdbrszg.js} +2 -2
  330. package/dist/{chunk-jknt3rxg.js → chunk-v17qee2y.js} +7 -9
  331. package/dist/{chunk-frbv3xqa.js → chunk-v1jd31dw.js} +2 -2
  332. package/dist/chunk-var1et7e.js +66 -0
  333. package/dist/{chunk-cettj572.js → chunk-ve9wswz4.js} +7 -131
  334. package/dist/{chunk-hqmz36b3.js → chunk-vf612n57.js} +21 -101
  335. package/dist/chunk-vfhabc5j.js +109 -0
  336. package/dist/{chunk-s7qj2hg5.js → chunk-vgy0w6tt.js} +2 -2
  337. package/dist/chunk-vh02fvz1.js +375 -0
  338. package/dist/{chunk-ctmt7xh1.js → chunk-vm935era.js} +619 -887
  339. package/dist/{chunk-dxc7begm.js → chunk-vtb8z6as.js} +14 -10
  340. package/dist/chunk-w2kf9sxn.js +115 -0
  341. package/dist/chunk-w7trx259.js +132 -0
  342. package/dist/{chunk-8z039kef.js → chunk-w92b262y.js} +53 -54
  343. package/dist/chunk-w9zqjhvm.js +103 -0
  344. package/dist/{chunk-9cc60ae5.js → chunk-wb2fvy1k.js} +74 -68
  345. package/dist/chunk-ws2d81aj.js +123 -0
  346. package/dist/{chunk-5zh1fbrj.js → chunk-wssgdcck.js} +2 -2
  347. package/dist/{chunk-t9z6njcr.js → chunk-wtycm8km.js} +9 -9
  348. package/dist/chunk-wz0d8mna.js +108 -0
  349. package/dist/chunk-x01wtn3p.js +144 -0
  350. package/dist/{chunk-dnyeb288.js → chunk-x2sp7rcv.js} +73 -105
  351. package/dist/{chunk-zrse3zpz.js → chunk-xbprynsc.js} +18 -46
  352. package/dist/{chunk-yxnwsp4f.js → chunk-xext3y2y.js} +8 -6
  353. package/dist/{chunk-fzxg8v1y.js → chunk-xycy3c8q.js} +15 -12
  354. package/dist/{chunk-cpma9zs5.js → chunk-y01ys1vm.js} +20 -71
  355. package/dist/{chunk-d7vv2ydf.js → chunk-y78t50v0.js} +2 -2
  356. package/dist/{chunk-xkr7as9h.js → chunk-y9bgt2k1.js} +13 -9
  357. package/dist/{chunk-s2gm9vfk.js → chunk-ydm0nfsv.js} +5 -5
  358. package/dist/{chunk-gjyc3293.js → chunk-yetebjek.js} +282 -495
  359. package/dist/{chunk-hkn7tzgv.js → chunk-ym5r3jnk.js} +1 -1
  360. package/dist/chunk-ysks0ewj.js +237 -0
  361. package/dist/chunk-yv3evkgg.js +68 -0
  362. package/dist/{chunk-athjeyrt.js → chunk-yw79dz62.js} +4 -4
  363. package/dist/{chunk-s84smrx4.js → chunk-yy59gvs4.js} +151 -189
  364. package/dist/{chunk-12pv5fez.js → chunk-yyax4hdg.js} +10 -8
  365. package/dist/chunk-z0q85m5f.js +108 -0
  366. package/dist/chunk-z1bs6d7k.js +24 -0
  367. package/dist/chunk-z6e5jp2w.js +119 -0
  368. package/dist/{chunk-rjz6btwk.js → chunk-z7ssqvt6.js} +4972 -4638
  369. package/dist/chunk-z95yxwyb.js +61 -0
  370. package/dist/{chunk-0nqrscrr.js → chunk-z9aqj026.js} +5 -5
  371. package/dist/chunk-zc6dxhk9.js +169 -0
  372. package/dist/{chunk-ve60fbtd.js → chunk-ze6zvkg6.js} +2 -2
  373. package/dist/{chunk-t0rgmccj.js → chunk-zejm280k.js} +1 -1
  374. package/dist/{chunk-krstc7m7.js → chunk-zfapazzd.js} +15 -11
  375. package/dist/chunk-zj4fqmnc.js +219 -0
  376. package/dist/chunk-zkrpbswn.js +1608 -0
  377. package/dist/chunk-zktbb38m.js +112 -0
  378. package/dist/{chunk-vjc1svpc.js → chunk-zptcqa7t.js} +82 -75
  379. package/dist/{chunk-gbcqdr0x.js → chunk-zvnsjbt8.js} +1 -1
  380. package/dist/chunk-zwaanw8y.js +110 -0
  381. package/dist/{chunk-g3t0act8.js → chunk-zzm33q8x.js} +1 -1
  382. package/dist/{chunk-s8fzxy94.js → chunk-zzzc1ead.js} +17 -13
  383. package/dist/cli.js +34 -10
  384. package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
  385. package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
  386. package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
  387. package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
  388. package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
  389. package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
  390. package/package.json +8 -5
  391. package/scripts/postinstall.cjs +319 -0
  392. package/dist/chunk-0291smg3.js +0 -42
  393. package/dist/chunk-04g2ty3v.js +0 -104
  394. package/dist/chunk-069x95ne.js +0 -764
  395. package/dist/chunk-06x02eab.js +0 -655
  396. package/dist/chunk-09pjmga5.js +0 -713
  397. package/dist/chunk-0g90je6r.js +0 -145
  398. package/dist/chunk-0rddv9vb.js +0 -328
  399. package/dist/chunk-162w6yv3.js +0 -756
  400. package/dist/chunk-1gjbaa3n.js +0 -128
  401. package/dist/chunk-23wg4mnt.js +0 -404
  402. package/dist/chunk-2gbjtg7c.js +0 -102
  403. package/dist/chunk-2v1q0ezq.js +0 -102
  404. package/dist/chunk-37n7jkxe.js +0 -436
  405. package/dist/chunk-38svjnh4.js +0 -158
  406. package/dist/chunk-3bg1089y.js +0 -616
  407. package/dist/chunk-3d8ck5ne.js +0 -112
  408. package/dist/chunk-3g6rf9sz.js +0 -106
  409. package/dist/chunk-3x3rr2n5.js +0 -57
  410. package/dist/chunk-4f6q3d38.js +0 -117
  411. package/dist/chunk-4h57km3m.js +0 -74
  412. package/dist/chunk-4kyh2618.js +0 -99
  413. package/dist/chunk-4w9vc9vc.js +0 -119
  414. package/dist/chunk-53hqpp5z.js +0 -208
  415. package/dist/chunk-5m2rmc2k.js +0 -128
  416. package/dist/chunk-5wp9pkpt.js +0 -539
  417. package/dist/chunk-5ym9f6w3.js +0 -263
  418. package/dist/chunk-6f938733.js +0 -1027
  419. package/dist/chunk-6nenxecd.js +0 -115
  420. package/dist/chunk-6rja0h86.js +0 -1593
  421. package/dist/chunk-70q6dp4d.js +0 -96
  422. package/dist/chunk-7bn0wzs3.js +0 -1493
  423. package/dist/chunk-7e2e0bfm.js +0 -65
  424. package/dist/chunk-7ywadnax.js +0 -490
  425. package/dist/chunk-7z33j54s.js +0 -142
  426. package/dist/chunk-8yvfkzyh.js +0 -58
  427. package/dist/chunk-9abpx1kv.js +0 -2833
  428. package/dist/chunk-9ks2nswb.js +0 -114
  429. package/dist/chunk-9wrds5tr.js +0 -109
  430. package/dist/chunk-ab2twken.js +0 -102
  431. package/dist/chunk-abncjeag.js +0 -97
  432. package/dist/chunk-am6w4x6y.js +0 -103
  433. package/dist/chunk-b73bd7db.js +0 -496
  434. package/dist/chunk-bc7nvynh.js +0 -195
  435. package/dist/chunk-br17dhef.js +0 -103
  436. package/dist/chunk-c3k0sdey.js +0 -281
  437. package/dist/chunk-c909bmyv.js +0 -103
  438. package/dist/chunk-cftsv9w4.js +0 -129
  439. package/dist/chunk-cj1a7npk.js +0 -99
  440. package/dist/chunk-cyscs4k5.js +0 -1330
  441. package/dist/chunk-czr7y063.js +0 -348
  442. package/dist/chunk-d93sndem.js +0 -372
  443. package/dist/chunk-ddz8xbpd.js +0 -481
  444. package/dist/chunk-dkhqx4hk.js +0 -84
  445. package/dist/chunk-dsrharmv.js +0 -359
  446. package/dist/chunk-eqmy5d05.js +0 -56
  447. package/dist/chunk-f2crxw2c.js +0 -5400
  448. package/dist/chunk-f8zga40p.js +0 -234
  449. package/dist/chunk-fbgm2ym6.js +0 -990
  450. package/dist/chunk-fcbbsswe.js +0 -119
  451. package/dist/chunk-fda654nt.js +0 -6121
  452. package/dist/chunk-ffmv9ezj.js +0 -104
  453. package/dist/chunk-fmjte7md.js +0 -38
  454. package/dist/chunk-fqtwqxxc.js +0 -293
  455. package/dist/chunk-g8k85nkd.js +0 -802
  456. package/dist/chunk-ge4ak7dj.js +0 -127
  457. package/dist/chunk-gpqemecy.js +0 -126
  458. package/dist/chunk-h19p6s3b.js +0 -131
  459. package/dist/chunk-j0sk1rct.js +0 -998
  460. package/dist/chunk-j1wfpa1a.js +0 -70
  461. package/dist/chunk-j829fx31.js +0 -3458
  462. package/dist/chunk-jqctzrvd.js +0 -722
  463. package/dist/chunk-jx817w05.js +0 -11
  464. package/dist/chunk-ka6sab33.js +0 -174
  465. package/dist/chunk-krjsvmwp.js +0 -101
  466. package/dist/chunk-kvpe50pm.js +0 -311
  467. package/dist/chunk-mez504fj.js +0 -113
  468. package/dist/chunk-mj6wbrae.js +0 -105
  469. package/dist/chunk-n0pg2kpe.js +0 -122
  470. package/dist/chunk-n4qtqkp0.js +0 -295
  471. package/dist/chunk-n9meha2m.js +0 -73
  472. package/dist/chunk-ndk7q5n3.js +0 -169
  473. package/dist/chunk-ng6n9t4h.js +0 -56
  474. package/dist/chunk-p3pz13x2.js +0 -1933
  475. package/dist/chunk-p9ez6zgq.js +0 -2656
  476. package/dist/chunk-ph750kx1.js +0 -550
  477. package/dist/chunk-pxb99zqs.js +0 -117
  478. package/dist/chunk-q1yqc5n3.js +0 -100
  479. package/dist/chunk-qtfqk0jr.js +0 -131
  480. package/dist/chunk-qzfmdh1t.js +0 -388
  481. package/dist/chunk-r3cv0j9n.js +0 -456
  482. package/dist/chunk-rx0pbgym.js +0 -97
  483. package/dist/chunk-s624rd5j.js +0 -531
  484. package/dist/chunk-satndwqj.js +0 -285
  485. package/dist/chunk-ssrxnkd1.js +0 -109
  486. package/dist/chunk-t2pgctqx.js +0 -106
  487. package/dist/chunk-t7sgwf31.js +0 -644
  488. package/dist/chunk-tth904tj.js +0 -53
  489. package/dist/chunk-typpbjhy.js +0 -128
  490. package/dist/chunk-vp6nrhdq.js +0 -102
  491. package/dist/chunk-vtjm53nt.js +0 -432
  492. package/dist/chunk-w412n7tq.js +0 -469
  493. package/dist/chunk-w4153rky.js +0 -1885
  494. package/dist/chunk-wdgv15as.js +0 -212
  495. package/dist/chunk-wgn9kydv.js +0 -58
  496. package/dist/chunk-whknbrk0.js +0 -184
  497. package/dist/chunk-x1k8e1xc.js +0 -56
  498. package/dist/chunk-x45xx6sc.js +0 -105
  499. package/dist/chunk-x4xvqbe5.js +0 -1166
  500. package/dist/chunk-x8b7vft8.js +0 -132
  501. package/dist/chunk-xaycc8qe.js +0 -44
  502. package/dist/chunk-xd4785ks.js +0 -73
  503. package/dist/chunk-xjxgmxhq.js +0 -463
  504. package/dist/chunk-xx2x3tz9.js +0 -166
  505. package/dist/chunk-y2j23eem.js +0 -101
  506. package/dist/chunk-y83j09wv.js +0 -123
  507. package/dist/chunk-yh8460pb.js +0 -119
  508. package/dist/chunk-z6nhchdb.js +0 -60
  509. package/dist/chunk-zbt73sj7.js +0 -192
  510. package/dist/chunk-zmwaatmq.js +0 -118
  511. package/dist/chunk-zvdg9tex.js +0 -135
  512. package/dist/chunk-zwa780cx.js +0 -584
  513. package/dist/{chunk-whvdag1y.js → chunk-3bfs3x0h.js} +9 -9
  514. package/dist/{chunk-27xc1csx.js → chunk-dggvswz1.js} +3 -3
@@ -0,0 +1,911 @@
1
+ // @bun
2
+ import {
3
+ StructuredDiff,
4
+ fetchGitDiff,
5
+ fetchGitDiffHunks,
6
+ init_StructuredDiff,
7
+ init_gitDiff,
8
+ init_overlayContext,
9
+ init_useShortcutDisplay,
10
+ init_useTerminalSize,
11
+ useRegisterOverlay,
12
+ useShortcutDisplay
13
+ } from "./chunk-cy6ezb6j.js";
14
+ import"./chunk-zejm280k.js";
15
+ import"./chunk-g1jarkx9.js";
16
+ import"./chunk-yyax4hdg.js";
17
+ import"./chunk-4nspekjp.js";
18
+ import"./chunk-kmhwx18d.js";
19
+ import"./chunk-var1et7e.js";
20
+ import"./chunk-2gzv8nrw.js";
21
+ import"./chunk-ehtwnxpg.js";
22
+ import"./chunk-dmxte86x.js";
23
+ import"./chunk-d6ve5pze.js";
24
+ import"./chunk-bxcfz5gy.js";
25
+ import"./chunk-dekbr08w.js";
26
+ import"./chunk-f6rbj3gz.js";
27
+ import"./chunk-9f14bkn9.js";
28
+ import"./chunk-cgfdkzhb.js";
29
+ import"./chunk-k46gxg21.js";
30
+ import"./chunk-j5bth84e.js";
31
+ import"./chunk-8qhr4n77.js";
32
+ import"./chunk-az5x70pn.js";
33
+ import"./chunk-epyaq1z0.js";
34
+ import {
35
+ init_useKeybinding
36
+ } from "./chunk-0jzdwbdc.js";
37
+ import"./chunk-ps49ymvj.js";
38
+ import"./chunk-p7vkh4wx.js";
39
+ import"./chunk-cmcbatgz.js";
40
+ import"./chunk-agx5w9ce.js";
41
+ import"./chunk-48w0df8a.js";
42
+ import"./chunk-y78t50v0.js";
43
+ import"./chunk-4jm600zv.js";
44
+ import"./chunk-n8mpqdje.js";
45
+ import"./chunk-dqvwn28p.js";
46
+ import"./chunk-esn3tgm2.js";
47
+ import"./chunk-mx28h61f.js";
48
+ import"./chunk-dsbewdgm.js";
49
+ import"./chunk-sxqj7s2h.js";
50
+ import"./chunk-8201tnhf.js";
51
+ import"./chunk-2qwgfjcj.js";
52
+ import"./chunk-chsyvavm.js";
53
+ import"./chunk-w92b262y.js";
54
+ import {
55
+ init_file,
56
+ init_stringUtils,
57
+ plural,
58
+ readFileSafe
59
+ } from "./chunk-c1k9tg7h.js";
60
+ import"./chunk-905d2hee.js";
61
+ import"./chunk-rkak3kjw.js";
62
+ import"./chunk-p2yv7m0g.js";
63
+ import"./chunk-1cwdhk7a.js";
64
+ import"./chunk-j9gxwbe3.js";
65
+ import"./chunk-64c1avct.js";
66
+ import"./chunk-6kpbgc5w.js";
67
+ import"./chunk-8g5pe1gr.js";
68
+ import"./chunk-hezj20qy.js";
69
+ import"./chunk-4cp6193g.js";
70
+ import"./chunk-8g747a8x.js";
71
+ import"./chunk-d7886r6a.js";
72
+ import"./chunk-f5ma3nh5.js";
73
+ import"./chunk-qz2x630m.js";
74
+ import"./chunk-dk8287aa.js";
75
+ import"./chunk-r2k2jy0y.js";
76
+ import"./chunk-3c25bcsw.js";
77
+ import"./chunk-2q39ej51.js";
78
+ import"./chunk-q82r31er.js";
79
+ import"./chunk-p2816w9z.js";
80
+ import"./chunk-v9smspw2.js";
81
+ import"./chunk-v1kzp02e.js";
82
+ import {
83
+ init_format,
84
+ truncateStartToWidth
85
+ } from "./chunk-qpzfmkct.js";
86
+ import"./chunk-crmjpsqe.js";
87
+ import {
88
+ Byline,
89
+ Dialog,
90
+ Divider,
91
+ ThemedBox_default,
92
+ ThemedText,
93
+ init_src,
94
+ useKeybindings,
95
+ useTerminalSize
96
+ } from "./chunk-rvkvehat.js";
97
+ import {
98
+ require_jsx_dev_runtime,
99
+ require_react
100
+ } from "./chunk-g338npwr.js";
101
+ import"./chunk-h0rbjg6x.js";
102
+ import"./chunk-0vkfrmqm.js";
103
+ import"./chunk-0xjaqda8.js";
104
+ import"./chunk-21z7acxh.js";
105
+ import"./chunk-rgbbtszq.js";
106
+ import"./chunk-1thgdca1.js";
107
+ import"./chunk-qnfx3qtx.js";
108
+ import"./chunk-yw79dz62.js";
109
+ import {
110
+ getCwd,
111
+ init_cwd
112
+ } from "./chunk-b81hd3m6.js";
113
+ import"./chunk-61ahbn23.js";
114
+ import"./chunk-8tnsngw2.js";
115
+ import"./chunk-edzkkadh.js";
116
+ import"./chunk-bwg7582d.js";
117
+ import"./chunk-5z28bqne.js";
118
+ import {
119
+ figures_default,
120
+ init_figures
121
+ } from "./chunk-qajrkk97.js";
122
+ import"./chunk-hcgkak1j.js";
123
+ import"./chunk-fbv4apne.js";
124
+ import"./chunk-z6e5jp2w.js";
125
+ import"./chunk-jaaxk89e.js";
126
+ import"./chunk-h4b85amj.js";
127
+ import"./chunk-07069jq1.js";
128
+ import"./chunk-vf612n57.js";
129
+ import"./chunk-d4mdda98.js";
130
+ import"./chunk-7wm5s02e.js";
131
+ import"./chunk-4g3v8y12.js";
132
+ import"./chunk-7739pg2c.js";
133
+ import"./chunk-nh3cd07f.js";
134
+ import"./chunk-8pn8tvgg.js";
135
+ import"./chunk-netzwgv1.js";
136
+ import {
137
+ __esm,
138
+ __toESM
139
+ } from "./chunk-qp2qdcda.js";
140
+
141
+ // src/hooks/useDiffData.ts
142
+ function useDiffData() {
143
+ const [diffResult, setDiffResult] = import_react.useState(null);
144
+ const [hunks, setHunks] = import_react.useState(new Map);
145
+ const [loading, setLoading] = import_react.useState(true);
146
+ import_react.useEffect(() => {
147
+ let cancelled = false;
148
+ async function loadDiffData() {
149
+ try {
150
+ const [statsResult, hunksResult] = await Promise.all([
151
+ fetchGitDiff(),
152
+ fetchGitDiffHunks()
153
+ ]);
154
+ if (!cancelled) {
155
+ setDiffResult(statsResult);
156
+ setHunks(hunksResult);
157
+ setLoading(false);
158
+ }
159
+ } catch (_error) {
160
+ if (!cancelled) {
161
+ setDiffResult(null);
162
+ setHunks(new Map);
163
+ setLoading(false);
164
+ }
165
+ }
166
+ }
167
+ loadDiffData();
168
+ return () => {
169
+ cancelled = true;
170
+ };
171
+ }, []);
172
+ return import_react.useMemo(() => {
173
+ if (!diffResult) {
174
+ return { stats: null, files: [], hunks: new Map, loading };
175
+ }
176
+ const { stats, perFileStats } = diffResult;
177
+ const files = [];
178
+ for (const [path, fileStats] of perFileStats) {
179
+ const fileHunks = hunks.get(path);
180
+ const isUntracked = fileStats.isUntracked ?? false;
181
+ const isLargeFile = !fileStats.isBinary && !isUntracked && !fileHunks;
182
+ const totalLines = fileStats.added + fileStats.removed;
183
+ const isTruncated = !isLargeFile && !fileStats.isBinary && totalLines > MAX_LINES_PER_FILE;
184
+ files.push({
185
+ path,
186
+ linesAdded: fileStats.added,
187
+ linesRemoved: fileStats.removed,
188
+ isBinary: fileStats.isBinary,
189
+ isLargeFile,
190
+ isTruncated,
191
+ isUntracked
192
+ });
193
+ }
194
+ files.sort((a, b) => a.path.localeCompare(b.path));
195
+ return { stats, files, hunks, loading: false };
196
+ }, [diffResult, hunks, loading]);
197
+ }
198
+ var import_react, MAX_LINES_PER_FILE = 400;
199
+ var init_useDiffData = __esm(() => {
200
+ init_gitDiff();
201
+ import_react = __toESM(require_react(), 1);
202
+ });
203
+
204
+ // src/hooks/useTurnDiffs.ts
205
+ function isFileEditResult(result) {
206
+ if (!result || typeof result !== "object")
207
+ return false;
208
+ const r = result;
209
+ const hasFilePath = typeof r.filePath === "string";
210
+ const hasStructuredPatch = Array.isArray(r.structuredPatch) && r.structuredPatch.length > 0;
211
+ const isNewFile = r.type === "create" && typeof r.content === "string";
212
+ return hasFilePath && (hasStructuredPatch || isNewFile);
213
+ }
214
+ function isFileWriteOutput(result) {
215
+ return "type" in result && (result.type === "create" || result.type === "update");
216
+ }
217
+ function countHunkLines(hunks) {
218
+ let added = 0;
219
+ let removed = 0;
220
+ for (const hunk of hunks) {
221
+ for (const line of hunk.lines) {
222
+ if (line.startsWith("+"))
223
+ added++;
224
+ else if (line.startsWith("-"))
225
+ removed++;
226
+ }
227
+ }
228
+ return { added, removed };
229
+ }
230
+ function getUserPromptPreview(message) {
231
+ if (message.type !== "user")
232
+ return "";
233
+ const content = message.message.content;
234
+ const text = typeof content === "string" ? content : "";
235
+ if (text.length <= 30)
236
+ return text;
237
+ return text.slice(0, 29) + "\u2026";
238
+ }
239
+ function computeTurnStats(turn) {
240
+ let totalAdded = 0;
241
+ let totalRemoved = 0;
242
+ for (const file of turn.files.values()) {
243
+ totalAdded += file.linesAdded;
244
+ totalRemoved += file.linesRemoved;
245
+ }
246
+ turn.stats = {
247
+ filesChanged: turn.files.size,
248
+ linesAdded: totalAdded,
249
+ linesRemoved: totalRemoved
250
+ };
251
+ }
252
+ function useTurnDiffs(messages) {
253
+ const cache = import_react2.useRef({
254
+ completedTurns: [],
255
+ currentTurn: null,
256
+ lastProcessedIndex: 0,
257
+ lastTurnIndex: 0
258
+ });
259
+ return import_react2.useMemo(() => {
260
+ const c = cache.current;
261
+ if (messages.length < c.lastProcessedIndex) {
262
+ c.completedTurns = [];
263
+ c.currentTurn = null;
264
+ c.lastProcessedIndex = 0;
265
+ c.lastTurnIndex = 0;
266
+ }
267
+ for (let i = c.lastProcessedIndex;i < messages.length; i++) {
268
+ const message = messages[i];
269
+ if (!message || message.type !== "user")
270
+ continue;
271
+ const isToolResult = message.toolUseResult || Array.isArray(message.message.content) && message.message.content[0]?.type === "tool_result";
272
+ if (!isToolResult && !message.isMeta) {
273
+ if (c.currentTurn && c.currentTurn.files.size > 0) {
274
+ computeTurnStats(c.currentTurn);
275
+ c.completedTurns.push(c.currentTurn);
276
+ }
277
+ c.lastTurnIndex++;
278
+ c.currentTurn = {
279
+ turnIndex: c.lastTurnIndex,
280
+ userPromptPreview: getUserPromptPreview(message),
281
+ timestamp: message.timestamp,
282
+ files: new Map,
283
+ stats: { filesChanged: 0, linesAdded: 0, linesRemoved: 0 }
284
+ };
285
+ } else if (c.currentTurn && message.toolUseResult) {
286
+ const result2 = message.toolUseResult;
287
+ if (isFileEditResult(result2)) {
288
+ const { filePath, structuredPatch } = result2;
289
+ const isNewFile = "type" in result2 && result2.type === "create";
290
+ let fileEntry = c.currentTurn.files.get(filePath);
291
+ if (!fileEntry) {
292
+ fileEntry = {
293
+ filePath,
294
+ hunks: [],
295
+ isNewFile,
296
+ linesAdded: 0,
297
+ linesRemoved: 0
298
+ };
299
+ c.currentTurn.files.set(filePath, fileEntry);
300
+ }
301
+ if (isNewFile && structuredPatch.length === 0 && isFileWriteOutput(result2)) {
302
+ const content = result2.content;
303
+ const lines = content.split(`
304
+ `);
305
+ const syntheticHunk = {
306
+ oldStart: 0,
307
+ oldLines: 0,
308
+ newStart: 1,
309
+ newLines: lines.length,
310
+ lines: lines.map((l) => "+" + l)
311
+ };
312
+ fileEntry.hunks.push(syntheticHunk);
313
+ fileEntry.linesAdded += lines.length;
314
+ } else {
315
+ fileEntry.hunks.push(...structuredPatch);
316
+ const { added, removed } = countHunkLines(structuredPatch);
317
+ fileEntry.linesAdded += added;
318
+ fileEntry.linesRemoved += removed;
319
+ }
320
+ if (isNewFile) {
321
+ fileEntry.isNewFile = true;
322
+ }
323
+ }
324
+ }
325
+ }
326
+ c.lastProcessedIndex = messages.length;
327
+ const result = [...c.completedTurns];
328
+ if (c.currentTurn && c.currentTurn.files.size > 0) {
329
+ computeTurnStats(c.currentTurn);
330
+ result.push(c.currentTurn);
331
+ }
332
+ return result.reverse();
333
+ }, [messages]);
334
+ }
335
+ var import_react2;
336
+ var init_useTurnDiffs = __esm(() => {
337
+ import_react2 = __toESM(require_react(), 1);
338
+ });
339
+
340
+ // src/components/diff/DiffDetailView.tsx
341
+ import { resolve } from "path";
342
+ function DiffDetailView({
343
+ filePath,
344
+ hunks,
345
+ isLargeFile,
346
+ isBinary,
347
+ isTruncated,
348
+ isUntracked
349
+ }) {
350
+ const { columns } = useTerminalSize();
351
+ const { firstLine, fileContent } = import_react3.useMemo(() => {
352
+ if (!filePath) {
353
+ return { firstLine: null, fileContent: undefined };
354
+ }
355
+ const fullPath = resolve(getCwd(), filePath);
356
+ const content = readFileSafe(fullPath);
357
+ return {
358
+ firstLine: content?.split(`
359
+ `)[0] ?? null,
360
+ fileContent: content ?? undefined
361
+ };
362
+ }, [filePath]);
363
+ if (isUntracked) {
364
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
365
+ flexDirection: "column",
366
+ width: "100%",
367
+ children: [
368
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
369
+ children: [
370
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
371
+ bold: true,
372
+ children: filePath
373
+ }, undefined, false, undefined, this),
374
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
375
+ dimColor: true,
376
+ children: " (untracked)"
377
+ }, undefined, false, undefined, this)
378
+ ]
379
+ }, undefined, true, undefined, this),
380
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Divider, {
381
+ padding: 4
382
+ }, undefined, false, undefined, this),
383
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
384
+ flexDirection: "column",
385
+ children: [
386
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
387
+ dimColor: true,
388
+ italic: true,
389
+ children: "New file not yet staged."
390
+ }, undefined, false, undefined, this),
391
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
392
+ dimColor: true,
393
+ italic: true,
394
+ children: [
395
+ "Run `git add ",
396
+ filePath,
397
+ "` to see line counts."
398
+ ]
399
+ }, undefined, true, undefined, this)
400
+ ]
401
+ }, undefined, true, undefined, this)
402
+ ]
403
+ }, undefined, true, undefined, this);
404
+ }
405
+ if (isBinary) {
406
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
407
+ flexDirection: "column",
408
+ width: "100%",
409
+ children: [
410
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
411
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
412
+ bold: true,
413
+ children: filePath
414
+ }, undefined, false, undefined, this)
415
+ }, undefined, false, undefined, this),
416
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Divider, {
417
+ padding: 4
418
+ }, undefined, false, undefined, this),
419
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
420
+ flexDirection: "column",
421
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
422
+ dimColor: true,
423
+ italic: true,
424
+ children: "Binary file - cannot display diff"
425
+ }, undefined, false, undefined, this)
426
+ }, undefined, false, undefined, this)
427
+ ]
428
+ }, undefined, true, undefined, this);
429
+ }
430
+ if (isLargeFile) {
431
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
432
+ flexDirection: "column",
433
+ width: "100%",
434
+ children: [
435
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
436
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
437
+ bold: true,
438
+ children: filePath
439
+ }, undefined, false, undefined, this)
440
+ }, undefined, false, undefined, this),
441
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Divider, {
442
+ padding: 4
443
+ }, undefined, false, undefined, this),
444
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
445
+ flexDirection: "column",
446
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
447
+ dimColor: true,
448
+ italic: true,
449
+ children: "Large file - diff exceeds 1 MB limit"
450
+ }, undefined, false, undefined, this)
451
+ }, undefined, false, undefined, this)
452
+ ]
453
+ }, undefined, true, undefined, this);
454
+ }
455
+ const outerPaddingX = 1;
456
+ const outerBorderWidth = 1;
457
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
458
+ flexDirection: "column",
459
+ width: "100%",
460
+ children: [
461
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
462
+ children: [
463
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
464
+ bold: true,
465
+ children: filePath
466
+ }, undefined, false, undefined, this),
467
+ isTruncated && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
468
+ dimColor: true,
469
+ children: " (truncated)"
470
+ }, undefined, false, undefined, this)
471
+ ]
472
+ }, undefined, true, undefined, this),
473
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Divider, {
474
+ padding: 4
475
+ }, undefined, false, undefined, this),
476
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
477
+ flexDirection: "column",
478
+ children: hunks.length === 0 ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
479
+ dimColor: true,
480
+ children: "No diff content"
481
+ }, undefined, false, undefined, this) : hunks.map((hunk, index) => /* @__PURE__ */ jsx_dev_runtime.jsxDEV(StructuredDiff, {
482
+ patch: hunk,
483
+ filePath,
484
+ firstLine,
485
+ fileContent,
486
+ dim: false,
487
+ width: columns - 2 * outerPaddingX - 2 * outerBorderWidth
488
+ }, index, false, undefined, this))
489
+ }, undefined, false, undefined, this),
490
+ isTruncated && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
491
+ dimColor: true,
492
+ italic: true,
493
+ children: "\u2026 diff truncated (exceeded 400 line limit)"
494
+ }, undefined, false, undefined, this)
495
+ ]
496
+ }, undefined, true, undefined, this);
497
+ }
498
+ var import_react3, jsx_dev_runtime;
499
+ var init_DiffDetailView = __esm(() => {
500
+ init_useTerminalSize();
501
+ init_src();
502
+ init_cwd();
503
+ init_file();
504
+ init_src();
505
+ init_StructuredDiff();
506
+ import_react3 = __toESM(require_react(), 1);
507
+ jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
508
+ });
509
+
510
+ // src/components/diff/DiffFileList.tsx
511
+ function DiffFileList({ files, selectedIndex }) {
512
+ const { columns } = useTerminalSize();
513
+ const { startIndex, endIndex } = import_react4.useMemo(() => {
514
+ if (files.length === 0 || files.length <= MAX_VISIBLE_FILES) {
515
+ return { startIndex: 0, endIndex: files.length };
516
+ }
517
+ let start = Math.max(0, selectedIndex - Math.floor(MAX_VISIBLE_FILES / 2));
518
+ let end = start + MAX_VISIBLE_FILES;
519
+ if (end > files.length) {
520
+ end = files.length;
521
+ start = Math.max(0, end - MAX_VISIBLE_FILES);
522
+ }
523
+ return { startIndex: start, endIndex: end };
524
+ }, [files.length, selectedIndex]);
525
+ if (files.length === 0) {
526
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
527
+ dimColor: true,
528
+ children: "No changed files"
529
+ }, undefined, false, undefined, this);
530
+ }
531
+ const visibleFiles = files.slice(startIndex, endIndex);
532
+ const hasMoreAbove = startIndex > 0;
533
+ const hasMoreBelow = endIndex < files.length;
534
+ const needsPagination = files.length > MAX_VISIBLE_FILES;
535
+ const statsWidth = 16;
536
+ const pointerWidth = 3;
537
+ const maxPathWidth = Math.max(20, columns - statsWidth - pointerWidth - 4);
538
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
539
+ flexDirection: "column",
540
+ children: [
541
+ needsPagination && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
542
+ dimColor: true,
543
+ children: hasMoreAbove ? ` \u2191 ${startIndex} more ${plural(startIndex, "file")}` : " "
544
+ }, undefined, false, undefined, this),
545
+ visibleFiles.map((file, index) => /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(FileItem, {
546
+ file,
547
+ isSelected: startIndex + index === selectedIndex,
548
+ maxPathWidth
549
+ }, file.path, false, undefined, this)),
550
+ needsPagination && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
551
+ dimColor: true,
552
+ children: hasMoreBelow ? ` \u2193 ${files.length - endIndex} more ${plural(files.length - endIndex, "file")}` : " "
553
+ }, undefined, false, undefined, this)
554
+ ]
555
+ }, undefined, true, undefined, this);
556
+ }
557
+ function FileItem({
558
+ file,
559
+ isSelected,
560
+ maxPathWidth
561
+ }) {
562
+ const displayPath = truncateStartToWidth(file.path, maxPathWidth);
563
+ const pointer = isSelected ? figures_default.pointer + " " : " ";
564
+ const line = `${pointer}${displayPath}`;
565
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
566
+ flexDirection: "row",
567
+ children: [
568
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
569
+ bold: isSelected,
570
+ color: isSelected ? "background" : undefined,
571
+ inverse: isSelected,
572
+ children: line
573
+ }, undefined, false, undefined, this),
574
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
575
+ flexGrow: 1
576
+ }, undefined, false, undefined, this),
577
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(FileStats, {
578
+ file,
579
+ isSelected
580
+ }, undefined, false, undefined, this)
581
+ ]
582
+ }, undefined, true, undefined, this);
583
+ }
584
+ function FileStats({
585
+ file,
586
+ isSelected
587
+ }) {
588
+ if (file.isUntracked) {
589
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
590
+ dimColor: !isSelected,
591
+ italic: true,
592
+ children: "untracked"
593
+ }, undefined, false, undefined, this);
594
+ }
595
+ if (file.isBinary) {
596
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
597
+ dimColor: !isSelected,
598
+ italic: true,
599
+ children: "Binary file"
600
+ }, undefined, false, undefined, this);
601
+ }
602
+ if (file.isLargeFile) {
603
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
604
+ dimColor: !isSelected,
605
+ italic: true,
606
+ children: "Large file modified"
607
+ }, undefined, false, undefined, this);
608
+ }
609
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
610
+ children: [
611
+ file.linesAdded > 0 && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
612
+ color: "diffAddedWord",
613
+ bold: isSelected,
614
+ children: [
615
+ "+",
616
+ file.linesAdded
617
+ ]
618
+ }, undefined, true, undefined, this),
619
+ file.linesAdded > 0 && file.linesRemoved > 0 && " ",
620
+ file.linesRemoved > 0 && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
621
+ color: "diffRemovedWord",
622
+ bold: isSelected,
623
+ children: [
624
+ "-",
625
+ file.linesRemoved
626
+ ]
627
+ }, undefined, true, undefined, this),
628
+ file.isTruncated && /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
629
+ dimColor: !isSelected,
630
+ children: " (truncated)"
631
+ }, undefined, false, undefined, this)
632
+ ]
633
+ }, undefined, true, undefined, this);
634
+ }
635
+ var import_react4, jsx_dev_runtime2, MAX_VISIBLE_FILES = 5;
636
+ var init_DiffFileList = __esm(() => {
637
+ init_figures();
638
+ init_useTerminalSize();
639
+ init_src();
640
+ init_format();
641
+ init_stringUtils();
642
+ import_react4 = __toESM(require_react(), 1);
643
+ jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
644
+ });
645
+
646
+ // src/components/diff/DiffDialog.tsx
647
+ function turnDiffToDiffData(turn) {
648
+ const files = Array.from(turn.files.values()).map((f) => ({
649
+ path: f.filePath,
650
+ linesAdded: f.linesAdded,
651
+ linesRemoved: f.linesRemoved,
652
+ isBinary: false,
653
+ isLargeFile: false,
654
+ isTruncated: false,
655
+ isNewFile: f.isNewFile
656
+ })).sort((a, b) => a.path.localeCompare(b.path));
657
+ const hunks = new Map;
658
+ for (const f of turn.files.values()) {
659
+ hunks.set(f.filePath, f.hunks);
660
+ }
661
+ return {
662
+ stats: {
663
+ filesCount: turn.stats.filesChanged,
664
+ linesAdded: turn.stats.linesAdded,
665
+ linesRemoved: turn.stats.linesRemoved
666
+ },
667
+ files,
668
+ hunks,
669
+ loading: false
670
+ };
671
+ }
672
+ function DiffDialog({ messages, onDone }) {
673
+ const gitDiffData = useDiffData();
674
+ const turnDiffs = useTurnDiffs(messages);
675
+ const [viewMode, setViewMode] = import_react5.useState("list");
676
+ const [selectedIndex, setSelectedIndex] = import_react5.useState(0);
677
+ const [sourceIndex, setSourceIndex] = import_react5.useState(0);
678
+ const sources = import_react5.useMemo(() => [
679
+ { type: "current" },
680
+ ...turnDiffs.map((turn) => ({ type: "turn", turn }))
681
+ ], [turnDiffs]);
682
+ const currentSource = sources[sourceIndex];
683
+ const currentTurn = currentSource?.type === "turn" ? currentSource.turn : null;
684
+ const diffData = import_react5.useMemo(() => {
685
+ return currentTurn ? turnDiffToDiffData(currentTurn) : gitDiffData;
686
+ }, [currentTurn, gitDiffData]);
687
+ const selectedFile = diffData.files[selectedIndex];
688
+ const selectedHunks = import_react5.useMemo(() => {
689
+ return selectedFile ? diffData.hunks.get(selectedFile.path) || [] : [];
690
+ }, [selectedFile, diffData.hunks]);
691
+ import_react5.useEffect(() => {
692
+ if (sourceIndex >= sources.length) {
693
+ setSourceIndex(Math.max(0, sources.length - 1));
694
+ }
695
+ }, [sources.length, sourceIndex]);
696
+ const prevSourceIndex = import_react5.useRef(sourceIndex);
697
+ import_react5.useEffect(() => {
698
+ if (prevSourceIndex.current !== sourceIndex) {
699
+ setSelectedIndex(0);
700
+ prevSourceIndex.current = sourceIndex;
701
+ }
702
+ }, [sourceIndex]);
703
+ useRegisterOverlay("diff-dialog");
704
+ useKeybindings({
705
+ "diff:previousSource": () => {
706
+ if (viewMode === "detail") {
707
+ setViewMode("list");
708
+ } else if (viewMode === "list" && sources.length > 1) {
709
+ setSourceIndex((prev) => Math.max(0, prev - 1));
710
+ }
711
+ },
712
+ "diff:nextSource": () => {
713
+ if (viewMode === "list" && sources.length > 1) {
714
+ setSourceIndex((prev) => Math.min(sources.length - 1, prev + 1));
715
+ }
716
+ },
717
+ "diff:back": () => {
718
+ if (viewMode === "detail") {
719
+ setViewMode("list");
720
+ }
721
+ },
722
+ "diff:viewDetails": () => {
723
+ if (viewMode === "list" && selectedFile) {
724
+ setViewMode("detail");
725
+ }
726
+ },
727
+ "diff:previousFile": () => {
728
+ if (viewMode === "list") {
729
+ setSelectedIndex((prev) => Math.max(0, prev - 1));
730
+ }
731
+ },
732
+ "diff:nextFile": () => {
733
+ if (viewMode === "list") {
734
+ setSelectedIndex((prev) => Math.min(diffData.files.length - 1, prev + 1));
735
+ }
736
+ }
737
+ }, { context: "DiffDialog" });
738
+ const subtitle = diffData.stats ? /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
739
+ dimColor: true,
740
+ children: [
741
+ diffData.stats.filesCount,
742
+ " ",
743
+ plural(diffData.stats.filesCount, "file"),
744
+ " ",
745
+ "changed",
746
+ diffData.stats.linesAdded > 0 && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
747
+ color: "diffAddedWord",
748
+ children: [
749
+ " +",
750
+ diffData.stats.linesAdded
751
+ ]
752
+ }, undefined, true, undefined, this),
753
+ diffData.stats.linesRemoved > 0 && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
754
+ color: "diffRemovedWord",
755
+ children: [
756
+ " -",
757
+ diffData.stats.linesRemoved
758
+ ]
759
+ }, undefined, true, undefined, this)
760
+ ]
761
+ }, undefined, true, undefined, this) : null;
762
+ const headerTitle = currentTurn ? `Turn ${currentTurn.turnIndex}` : "Uncommitted changes";
763
+ const headerSubtitle = currentTurn ? currentTurn.userPromptPreview ? `"${currentTurn.userPromptPreview}"` : "" : "(git diff HEAD)";
764
+ const sourceSelector = sources.length > 1 ? /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
765
+ children: [
766
+ sourceIndex > 0 && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
767
+ dimColor: true,
768
+ children: "\u25C0 "
769
+ }, undefined, false, undefined, this),
770
+ sources.map((source, i) => {
771
+ const isSelected = i === sourceIndex;
772
+ const label = source.type === "current" ? "Current" : `T${source.turn.turnIndex}`;
773
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
774
+ dimColor: !isSelected,
775
+ bold: isSelected,
776
+ children: [
777
+ i > 0 ? " \xB7 " : "",
778
+ label
779
+ ]
780
+ }, i, true, undefined, this);
781
+ }),
782
+ sourceIndex < sources.length - 1 && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
783
+ dimColor: true,
784
+ children: " \u25B6"
785
+ }, undefined, false, undefined, this)
786
+ ]
787
+ }, undefined, true, undefined, this) : null;
788
+ const dismissShortcut = useShortcutDisplay("diff:dismiss", "DiffDialog", "esc");
789
+ const emptyMessage = (() => {
790
+ if (diffData.loading) {
791
+ return "Loading diff\u2026";
792
+ }
793
+ if (currentTurn) {
794
+ return "No file changes in this turn";
795
+ }
796
+ if (diffData.stats && diffData.stats.filesCount > 0 && diffData.files.length === 0) {
797
+ return "Too many files to display details";
798
+ }
799
+ return "Working tree is clean";
800
+ })();
801
+ const title = /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
802
+ children: [
803
+ headerTitle,
804
+ headerSubtitle && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
805
+ dimColor: true,
806
+ children: [
807
+ " ",
808
+ headerSubtitle
809
+ ]
810
+ }, undefined, true, undefined, this)
811
+ ]
812
+ }, undefined, true, undefined, this);
813
+ function handleCancel() {
814
+ if (viewMode === "detail") {
815
+ setViewMode("list");
816
+ } else {
817
+ onDone("Diff dialog dismissed", { display: "system" });
818
+ }
819
+ }
820
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Dialog, {
821
+ title,
822
+ onCancel: handleCancel,
823
+ color: "background",
824
+ inputGuide: (exitState) => exitState.pending ? /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
825
+ children: [
826
+ "Press ",
827
+ exitState.keyName,
828
+ " again to exit"
829
+ ]
830
+ }, undefined, true, undefined, this) : viewMode === "list" ? /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Byline, {
831
+ children: [
832
+ sources.length > 1 && /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
833
+ children: "\u2190/\u2192 source"
834
+ }, undefined, false, undefined, this),
835
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
836
+ children: "\u2191/\u2193 select"
837
+ }, undefined, false, undefined, this),
838
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
839
+ children: "Enter view"
840
+ }, undefined, false, undefined, this),
841
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
842
+ children: [
843
+ dismissShortcut,
844
+ " close"
845
+ ]
846
+ }, undefined, true, undefined, this)
847
+ ]
848
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Byline, {
849
+ children: [
850
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
851
+ children: "\u2190 back"
852
+ }, undefined, false, undefined, this),
853
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
854
+ children: [
855
+ dismissShortcut,
856
+ " close"
857
+ ]
858
+ }, undefined, true, undefined, this)
859
+ ]
860
+ }, undefined, true, undefined, this),
861
+ children: [
862
+ sourceSelector,
863
+ subtitle,
864
+ diffData.files.length === 0 ? /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
865
+ marginTop: 1,
866
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
867
+ dimColor: true,
868
+ children: emptyMessage
869
+ }, undefined, false, undefined, this)
870
+ }, undefined, false, undefined, this) : viewMode === "list" ? /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
871
+ flexDirection: "column",
872
+ marginTop: 1,
873
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(DiffFileList, {
874
+ files: diffData.files,
875
+ selectedIndex
876
+ }, undefined, false, undefined, this)
877
+ }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
878
+ flexDirection: "column",
879
+ marginTop: 1,
880
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(DiffDetailView, {
881
+ filePath: selectedFile?.path || "",
882
+ hunks: selectedHunks,
883
+ isLargeFile: selectedFile?.isLargeFile,
884
+ isBinary: selectedFile?.isBinary,
885
+ isTruncated: selectedFile?.isTruncated,
886
+ isUntracked: selectedFile?.isUntracked
887
+ }, undefined, false, undefined, this)
888
+ }, undefined, false, undefined, this)
889
+ ]
890
+ }, undefined, true, undefined, this);
891
+ }
892
+ var import_react5, jsx_dev_runtime3;
893
+ var init_DiffDialog = __esm(() => {
894
+ init_overlayContext();
895
+ init_useDiffData();
896
+ init_useTurnDiffs();
897
+ init_src();
898
+ init_useKeybinding();
899
+ init_useShortcutDisplay();
900
+ init_stringUtils();
901
+ init_src();
902
+ init_DiffDetailView();
903
+ init_DiffFileList();
904
+ import_react5 = __toESM(require_react(), 1);
905
+ jsx_dev_runtime3 = __toESM(require_jsx_dev_runtime(), 1);
906
+ });
907
+ init_DiffDialog();
908
+
909
+ export {
910
+ DiffDialog
911
+ };