claude-code-best 1.1.0 → 1.2.1

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 (542) hide show
  1. package/README.md +66 -75
  2. package/dist/chunk-03hxwxzh.js +344 -0
  3. package/dist/chunk-07069jq1.js +30 -0
  4. package/dist/{chunk-kq098bkj.js → chunk-08g51x43.js} +254 -320
  5. package/dist/{chunk-7tqhx6dr.js → chunk-093r60b7.js} +109 -213
  6. package/dist/{chunk-ahjgghpe.js → chunk-0aya4737.js} +1 -1
  7. package/dist/{chunk-b4mnbry0.js → chunk-0fsdxz74.js} +4 -4
  8. package/dist/chunk-0jzdwbdc.js +14 -0
  9. package/dist/chunk-0mbxeb5q.js +406 -0
  10. package/dist/chunk-0pryepme.js +66 -0
  11. package/dist/chunk-0qsm7jac.js +169 -0
  12. package/dist/{chunk-1cbn5kxf.js → chunk-0rpb2bdp.js} +3 -2
  13. package/dist/chunk-0se7sxd4.js +38 -0
  14. package/dist/{chunk-3m7ge6tj.js → chunk-0xnepnph.js} +14 -12
  15. package/dist/{chunk-q7tvkc86.js → chunk-0zsam7pn.js} +10 -115
  16. package/dist/{chunk-44fpr6jq.js → chunk-168xb8v1.js} +4 -2
  17. package/dist/{chunk-bj0rvnjw.js → chunk-19h3a9pw.js} +40 -30
  18. package/dist/chunk-19wjkpe7.js +115 -0
  19. package/dist/{chunk-wsqhnjj3.js → chunk-1atfzck5.js} +24 -24
  20. package/dist/{chunk-0e1xsncc.js → chunk-1cwdhk7a.js} +1 -1
  21. package/dist/{chunk-c8jv6rtj.js → chunk-1hq59w8z.js} +78 -69
  22. package/dist/chunk-1qzk963z.js +108 -0
  23. package/dist/{chunk-fk06pejm.js → chunk-1rrmvwjn.js} +9 -9
  24. package/dist/{chunk-d18z9pna.js → chunk-1thgdca1.js} +2 -2
  25. package/dist/chunk-1tjnmcw7.js +68 -0
  26. package/dist/chunk-1xj83yc8.js +219 -0
  27. package/dist/chunk-21j2jfen.js +435 -0
  28. package/dist/{chunk-wc6wwwyb.js → chunk-21z7acxh.js} +3 -3
  29. package/dist/chunk-22gbbc5x.js +313 -0
  30. package/dist/chunk-238g70xa.js +1 -1
  31. package/dist/{chunk-vpb723tx.js → chunk-23ad5t92.js} +5 -5
  32. package/dist/{chunk-vbbf707n.js → chunk-24r3gfks.js} +39 -29
  33. package/dist/chunk-24sahbec.js +71 -0
  34. package/dist/chunk-28az45r7.js +112 -0
  35. package/dist/{chunk-9g827w4j.js → chunk-2q39ej51.js} +6 -6
  36. package/dist/chunk-2qwgfjcj.js +5370 -0
  37. package/dist/{chunk-0cpnzx7t.js → chunk-2rgvd09y.js} +118 -151
  38. package/dist/chunk-2wq8q15s.js +475 -0
  39. package/dist/{chunk-bqq4zamw.js → chunk-2ys5wcxk.js} +3 -3
  40. package/dist/{chunk-t24ytdcw.js → chunk-31nce7eh.js} +12 -10
  41. package/dist/chunk-31q6p2ke.js +123 -0
  42. package/dist/chunk-3394wc12.js +1024 -0
  43. package/dist/{chunk-33khw5gy.js → chunk-365zvqv3.js} +7 -7
  44. package/dist/{chunk-9g2ncq68.js → chunk-36gkb95k.js} +124 -128
  45. package/dist/{chunk-khdjg2v9.js → chunk-37y42ayh.js} +39 -29
  46. package/dist/chunk-3816xd5p.js +195 -0
  47. package/dist/chunk-3a6bynts.js +656 -0
  48. package/dist/{chunk-qvd0k5dn.js → chunk-3avfhw6x.js} +190 -348
  49. package/dist/{chunk-660kcy7p.js → chunk-3b25ycrx.js} +14 -8
  50. package/dist/chunk-3b4xhwhp.js +113 -0
  51. package/dist/chunk-3fjzvf0e.js +128 -0
  52. package/dist/chunk-3fvc0a79.js +67 -0
  53. package/dist/chunk-3g50kcwk.js +513 -0
  54. package/dist/chunk-3jnmy0nd.js +114 -0
  55. package/dist/chunk-3jzsxj3v.js +310 -0
  56. package/dist/{chunk-frbv3xqa.js → chunk-3mpfxbab.js} +2 -2
  57. package/dist/{chunk-aqa7w38f.js → chunk-3v03e2kz.js} +5 -5
  58. package/dist/chunk-3x5hdd5g.js +1030 -0
  59. package/dist/{chunk-mecs0gpc.js → chunk-3xv7rjsy.js} +14 -11
  60. package/dist/{chunk-j3215c49.js → chunk-3ygnhge8.js} +232 -372
  61. package/dist/chunk-42x5tjk2.js +42 -0
  62. package/dist/chunk-430tvx8d.js +110 -0
  63. package/dist/{chunk-dh6c8y1j.js → chunk-43h8sw5x.js} +3 -3
  64. package/dist/chunk-44d150tz.js +1175 -0
  65. package/dist/chunk-45dj834r.js +115 -0
  66. package/dist/{chunk-yhd82045.js → chunk-46fcr28b.js} +30 -9
  67. package/dist/{chunk-wm2f2f1z.js → chunk-474y75ga.js} +2 -2
  68. package/dist/{chunk-6fkwz9yk.js → chunk-478rpnqm.js} +8 -8
  69. package/dist/{chunk-83z0wrnz.js → chunk-47j9e6m2.js} +2 -2
  70. package/dist/chunk-47wqjw88.js +112 -0
  71. package/dist/{chunk-v4t6dyyh.js → chunk-4cp6193g.js} +2 -2
  72. package/dist/chunk-4h102wt5.js +65 -0
  73. package/dist/{chunk-3mgywd32.js → chunk-4hv90qcz.js} +1 -1
  74. package/dist/chunk-4k2270je.js +295 -0
  75. package/dist/{chunk-2wcbcdky.js → chunk-4k842par.js} +5 -5
  76. package/dist/chunk-4nspekjp.js +69 -0
  77. package/dist/chunk-4pjqtps4.js +151 -0
  78. package/dist/chunk-4sehjy27.js +112 -0
  79. package/dist/{chunk-pgnnrm2v.js → chunk-4t86n23n.js} +21 -17
  80. package/dist/{chunk-2de1vaxf.js → chunk-4whfjn78.js} +68 -78
  81. package/dist/{chunk-41mpwc8h.js → chunk-53c9gb9c.js} +19 -15
  82. package/dist/chunk-53kt8caz.js +122 -0
  83. package/dist/chunk-5a6ahhvy.js +594 -0
  84. package/dist/{chunk-12pv5fez.js → chunk-5gbqknz6.js} +10 -8
  85. package/dist/{chunk-hfzj1m07.js → chunk-5kkvfgzs.js} +14 -5
  86. package/dist/{chunk-4ycz58wj.js → chunk-5pxygepg.js} +68 -8
  87. package/dist/{chunk-2w8633e3.js → chunk-5rgbq3kf.js} +61 -100
  88. package/dist/{chunk-ggqx30m9.js → chunk-5z28bqne.js} +23 -311
  89. package/dist/{chunk-7ejt5gqq.js → chunk-5z8w2q5k.js} +65 -48
  90. package/dist/chunk-60k6v40t.js +70 -0
  91. package/dist/{chunk-p7g7pf3f.js → chunk-61ahbn23.js} +8 -6
  92. package/dist/{chunk-rmbp2das.js → chunk-64pp4hsr.js} +21 -19
  93. package/dist/{chunk-0sb5scxx.js → chunk-652wnf1z.js} +5 -5
  94. package/dist/{chunk-q25bjaev.js → chunk-677as3nh.js} +2 -2
  95. package/dist/{chunk-xs0hwvpa.js → chunk-68pfxvxt.js} +14 -9
  96. package/dist/{chunk-epmheefa.js → chunk-69hys77v.js} +8 -8
  97. package/dist/{chunk-427m88ms.js → chunk-6p1cptq5.js} +9 -9
  98. package/dist/{chunk-0nqrscrr.js → chunk-6p3mtny2.js} +5 -5
  99. package/dist/{chunk-v1mgv1et.js → chunk-6p4cyhb3.js} +4 -3
  100. package/dist/{chunk-m17y8b22.js → chunk-6rxz872v.js} +39 -29
  101. package/dist/chunk-6sjxvthw.js +106 -0
  102. package/dist/{chunk-6mz58s8p.js → chunk-6xana182.js} +18 -14
  103. package/dist/{chunk-vaebptnz.js → chunk-6zn3fm1k.js} +39 -29
  104. package/dist/chunk-704jkbsp.js +183 -0
  105. package/dist/chunk-71sf47by.js +154 -0
  106. package/dist/chunk-73a5g713.js +78 -0
  107. package/dist/chunk-78p7h20f.js +259 -0
  108. package/dist/chunk-7a3b1d4s.js +75 -0
  109. package/dist/{chunk-fpf4cgbt.js → chunk-7bfach0x.js} +9 -9
  110. package/dist/{chunk-ckcagq32.js → chunk-7gqf9wej.js} +5 -5
  111. package/dist/{chunk-sa7nc0vv.js → chunk-7y25wk51.js} +1 -1
  112. package/dist/{chunk-vyd8jzde.js → chunk-81v55vtd.js} +96 -85
  113. package/dist/{chunk-dv1wfr85.js → chunk-8225arm6.js} +5 -4
  114. package/dist/chunk-86715d2d.js +186 -0
  115. package/dist/chunk-8ah9easf.js +365 -0
  116. package/dist/{chunk-rwexx5ns.js → chunk-8baq1s87.js} +1 -3
  117. package/dist/chunk-8fy8hx84.js +386 -0
  118. package/dist/{chunk-4pbx3g7s.js → chunk-8g747a8x.js} +1 -1
  119. package/dist/{chunk-xyqr1cww.js → chunk-8me0yq6v.js} +12 -12
  120. package/dist/{chunk-sdj9b9wh.js → chunk-8pn8tvgg.js} +9 -154
  121. package/dist/chunk-8qxyxgkb.js +161 -0
  122. package/dist/{chunk-ecsw41df.js → chunk-8xs4yp9x.js} +85 -77
  123. package/dist/{chunk-24x87knx.js → chunk-9000dg9h.js} +1327 -2882
  124. package/dist/{chunk-bmvb57qb.js → chunk-905d2hee.js} +5 -5
  125. package/dist/chunk-90qsc60s.js +378 -0
  126. package/dist/chunk-92x6xgex.js +265 -0
  127. package/dist/{chunk-jknt3rxg.js → chunk-9ctg4x6c.js} +7 -9
  128. package/dist/chunk-9e4z7dx7.js +389 -0
  129. package/dist/chunk-9hy6ejmp.js +151 -0
  130. package/dist/chunk-9jvggd30.js +173 -0
  131. package/dist/{chunk-z9tgzh90.js → chunk-9m729tsn.js} +46 -35
  132. package/dist/chunk-9r90d3jt.js +121 -0
  133. package/dist/chunk-9rx2m3cb.js +124 -0
  134. package/dist/chunk-9sr2etaw.js +110 -0
  135. package/dist/chunk-9z8hzgve.js +68 -0
  136. package/dist/{chunk-yxnwsp4f.js → chunk-9zy607vw.js} +8 -6
  137. package/dist/chunk-a0bz6g5e.js +63 -0
  138. package/dist/chunk-a136cvvz.js +27 -0
  139. package/dist/{chunk-n5t9m8h9.js → chunk-a1bjde7d.js} +7 -7
  140. package/dist/{chunk-mvss16tj.js → chunk-a2aj2mtb.js} +414 -636
  141. package/dist/{chunk-8hsyagr8.js → chunk-a3sfy6as.js} +1 -1
  142. package/dist/{chunk-8hq5kk3y.js → chunk-a4twdmhf.js} +3 -2
  143. package/dist/chunk-ae76ded0.js +30 -0
  144. package/dist/chunk-aegyxcne.js +111 -0
  145. package/dist/chunk-aj1dcvrh.js +131 -0
  146. package/dist/{chunk-1yabrspp.js → chunk-amxm6996.js} +2 -2
  147. package/dist/{chunk-t6h4wf3k.js → chunk-ar39mr9c.js} +11 -11
  148. package/dist/{chunk-r6b58y3x.js → chunk-ase86y73.js} +1 -3
  149. package/dist/chunk-asfxrz4f.js +94 -0
  150. package/dist/chunk-axj46c2c.js +196 -0
  151. package/dist/{chunk-m5eb5pt2.js → chunk-ayz6f38j.js} +6 -6
  152. package/dist/{chunk-5b7119h5.js → chunk-b00zd850.js} +8 -6
  153. package/dist/chunk-b2abjkf7.js +126 -0
  154. package/dist/{chunk-8bedvdm1.js → chunk-b81hd3m6.js} +1 -1
  155. package/dist/chunk-bcfd2zw7.js +20 -0
  156. package/dist/{chunk-n5516f5q.js → chunk-bd8zk9tn.js} +4 -4
  157. package/dist/chunk-bhdt6k7w.js +15 -0
  158. package/dist/{chunk-jy35mvy3.js → chunk-bmjmrk76.js} +7 -7
  159. package/dist/chunk-bqaqz1j1.js +126 -0
  160. package/dist/chunk-bsbmmfyt.js +17 -0
  161. package/dist/{chunk-snvypj85.js → chunk-bt64sq5y.js} +3 -2
  162. package/dist/{chunk-zq9xa1xe.js → chunk-bwevztsj.js} +109 -141
  163. package/dist/{chunk-vyc0rjyx.js → chunk-bwg7582d.js} +1 -1
  164. package/dist/{chunk-3be7ka25.js → chunk-bxcfz5gy.js} +1 -1
  165. package/dist/chunk-c2mn2fyg.js +1406 -0
  166. package/dist/chunk-c2tw0dep.js +1811 -0
  167. package/dist/{chunk-402jrnj6.js → chunk-c5bngssh.js} +8 -8
  168. package/dist/chunk-c6sjhj89.js +1284 -0
  169. package/dist/chunk-cb2hpe6k.js +443 -0
  170. package/dist/{chunk-91r0z5qq.js → chunk-ccr1s7qs.js} +1152 -1771
  171. package/dist/chunk-cewqh6rb.js +111 -0
  172. package/dist/{chunk-k9a8jemz.js → chunk-cg01f3ez.js} +7 -7
  173. package/dist/{chunk-f64npa3b.js → chunk-chsyvavm.js} +704 -4
  174. package/dist/{chunk-z8nbjar4.js → chunk-cmcbatgz.js} +7 -5
  175. package/dist/chunk-cnsj3vq2.js +35 -0
  176. package/dist/{chunk-rj86xm6z.js → chunk-cpwe0yw7.js} +1 -1
  177. package/dist/chunk-cqjmxeqv.js +269 -0
  178. package/dist/{chunk-qpm1tmzz.js → chunk-crefny3c.js} +125 -193
  179. package/dist/{chunk-ks0m9njy.js → chunk-d2jekryq.js} +8 -8
  180. package/dist/chunk-d4mdda98.js +94 -0
  181. package/dist/{chunk-26wtxbdc.js → chunk-d7886r6a.js} +6928 -6928
  182. package/dist/chunk-dfkgpfaj.js +135 -0
  183. package/dist/{chunk-9mfbqw9k.js → chunk-dm3n2qgd.js} +4 -4
  184. package/dist/chunk-dnj95atq.js +66 -0
  185. package/dist/{chunk-vjc1svpc.js → chunk-dqgzpb0q.js} +87 -77
  186. package/dist/chunk-drenq3c7.js +383 -0
  187. package/dist/chunk-drkm8yx2.js +34 -0
  188. package/dist/{chunk-ra8fbt9p.js → chunk-dvjzq9x9.js} +543 -874
  189. package/dist/{chunk-w7h2yphx.js → chunk-dwekpr47.js} +2 -2
  190. package/dist/{chunk-49k5ktrj.js → chunk-e18dg1md.js} +31 -16
  191. package/dist/chunk-e396ak46.js +111 -0
  192. package/dist/{chunk-r55r29js.js → chunk-e3c32vwa.js} +191 -276
  193. package/dist/chunk-e3m7kqkb.js +1185 -0
  194. package/dist/{chunk-9cc60ae5.js → chunk-ea9m4e0k.js} +79 -70
  195. package/dist/chunk-ecsa9nd5.js +63 -0
  196. package/dist/{chunk-cmdsbsb6.js → chunk-edzkkadh.js} +2 -2
  197. package/dist/chunk-ek1jasqg.js +142 -0
  198. package/dist/chunk-ep0hwv07.js +126 -0
  199. package/dist/{chunk-cs6y2pc9.js → chunk-ergam9ft.js} +5 -5
  200. package/dist/{chunk-ptwn7qw7.js → chunk-f2k8b4nd.js} +38 -10
  201. package/dist/{chunk-h0rbjg6x.js → chunk-f2mhrmww.js} +8 -1
  202. package/dist/{chunk-s84smrx4.js → chunk-f32cksgw.js} +155 -190
  203. package/dist/{chunk-vzqrbsd1.js → chunk-f69rgsm2.js} +5 -5
  204. package/dist/{chunk-f3bapa1x.js → chunk-f6rbj3gz.js} +12 -7
  205. package/dist/chunk-f7n3xete.js +113 -0
  206. package/dist/chunk-fbest4vx.js +109 -0
  207. package/dist/{chunk-v0wa5ref.js → chunk-fdtcb8qr.js} +13 -555
  208. package/dist/chunk-feh2j8m2.js +136 -0
  209. package/dist/chunk-feyzykye.js +10 -0
  210. package/dist/chunk-fkkysfev.js +158 -0
  211. package/dist/chunk-fn510gqw.js +216 -0
  212. package/dist/{chunk-ch53fgm5.js → chunk-ft9qsa01.js} +13 -11
  213. package/dist/chunk-fw0ckaxh.js +109 -0
  214. package/dist/{chunk-kd97kxjn.js → chunk-fz0ch109.js} +3 -2
  215. package/dist/{chunk-ks0dm6t3.js → chunk-fzn524wa.js} +17 -71
  216. package/dist/chunk-g1k68z1b.js +15 -0
  217. package/dist/{chunk-9t1x831d.js → chunk-g5nb4xhz.js} +86 -74
  218. package/dist/chunk-g82mdy27.js +429 -0
  219. package/dist/{chunk-68qevppc.js → chunk-g8sz060e.js} +82 -72
  220. package/dist/chunk-g9f19ttm.js +15 -0
  221. package/dist/{chunk-zz21rvr7.js → chunk-gdqxtdh4.js} +9 -6
  222. package/dist/chunk-get9fk3h.js +74 -0
  223. package/dist/{chunk-4x5ym4h2.js → chunk-gf6qjt7j.js} +130 -16
  224. package/dist/{chunk-bq6x1ehp.js → chunk-gpz0ddyz.js} +8 -8
  225. package/dist/{chunk-mwp7sj0q.js → chunk-gs5eeqmc.js} +110336 -114801
  226. package/dist/{chunk-qqfa0dqg.js → chunk-h4b85amj.js} +20 -32
  227. package/dist/{chunk-j4c8s7tn.js → chunk-h5zv78zq.js} +9 -6
  228. package/dist/{chunk-cgn27dqf.js → chunk-ha5d5zfj.js} +3 -3
  229. package/dist/{chunk-crr52hf4.js → chunk-han7cwc0.js} +14 -12
  230. package/dist/{chunk-dnyeb288.js → chunk-hbv0tk35.js} +74 -106
  231. package/dist/{chunk-nxsh6de2.js → chunk-hcgkak1j.js} +20 -125
  232. package/dist/{chunk-224x480q.js → chunk-hd1p4hrd.js} +8 -6
  233. package/dist/{chunk-tjaqa99q.js → chunk-hezj20qy.js} +3 -3
  234. package/dist/{chunk-z7pr85qw.js → chunk-hfdyez7b.js} +3 -3
  235. package/dist/chunk-hh7hqa2c.js +272 -0
  236. package/dist/chunk-hk4a2sks.js +83 -0
  237. package/dist/{chunk-5zh1fbrj.js → chunk-hq85v2s7.js} +3 -3
  238. package/dist/chunk-hr06142m.js +117 -0
  239. package/dist/chunk-j1b3r6v6.js +66 -0
  240. package/dist/{chunk-v8xem37v.js → chunk-j2fgn3kq.js} +8 -6
  241. package/dist/chunk-j2wgj22c.js +441 -0
  242. package/dist/{chunk-9gbamk79.js → chunk-j5bth84e.js} +5 -1
  243. package/dist/{chunk-vratq94g.js → chunk-j9gxwbe3.js} +1 -1
  244. package/dist/{chunk-cettj572.js → chunk-ja87jt56.js} +7 -131
  245. package/dist/{chunk-3r24h7t6.js → chunk-jaaxk89e.js} +1 -1
  246. package/dist/{chunk-f4jcw0ea.js → chunk-jaew3662.js} +18 -14
  247. package/dist/{chunk-e1ge9n4d.js → chunk-jb2nh0m0.js} +2 -2
  248. package/dist/{chunk-f9b4wb89.js → chunk-jb4fc073.js} +84 -75
  249. package/dist/chunk-jba8f3hz.js +108 -0
  250. package/dist/{chunk-er9vzjac.js → chunk-jbt0jgtc.js} +16 -14
  251. package/dist/{chunk-v399mzxk.js → chunk-jf0p00fz.js} +2 -2
  252. package/dist/{chunk-vygf94dw.js → chunk-jg4ge4de.js} +78 -69
  253. package/dist/chunk-jkvy2cmt.js +346 -0
  254. package/dist/{chunk-80qg1pzv.js → chunk-jmdy5vdy.js} +11 -9
  255. package/dist/{chunk-dqh7e4mt.js → chunk-jn08nxj8.js} +52 -42
  256. package/dist/{chunk-av73dywf.js → chunk-jna2tcvj.js} +8 -8
  257. package/dist/chunk-jwh384j5.js +126 -0
  258. package/dist/chunk-jwx2scxy.js +222 -0
  259. package/dist/{chunk-41xeh3t9.js → chunk-jy6c07wa.js} +4 -4
  260. package/dist/{chunk-ctmt7xh1.js → chunk-jy77nthd.js} +740 -907
  261. package/dist/{chunk-hzttn8j7.js → chunk-jyjpaqbt.js} +139 -135
  262. package/dist/chunk-jztjnw31.js +147 -0
  263. package/dist/chunk-k0jhzcwg.js +2540 -0
  264. package/dist/{chunk-myzwt5yw.js → chunk-k0kwfqr8.js} +9 -15
  265. package/dist/{chunk-bqfnp99q.js → chunk-k3s4yk22.js} +1 -1
  266. package/dist/{chunk-1dyeexvn.js → chunk-kd3mmsd2.js} +4 -4
  267. package/dist/{chunk-x51h62jq.js → chunk-ke78h68m.js} +78 -69
  268. package/dist/{chunk-1xkekb9y.js → chunk-kfd89dsd.js} +5 -3
  269. package/dist/chunk-ksvvwa9w.js +111 -0
  270. package/dist/{chunk-jy35z4n0.js → chunk-m1z5td19.js} +9 -9
  271. package/dist/{chunk-jafes477.js → chunk-m2bcpk8j.js} +4 -3
  272. package/dist/{chunk-n6fbyke9.js → chunk-m2mzpskw.js} +3 -3
  273. package/dist/{chunk-s2dmn3yg.js → chunk-m47q5mxt.js} +5 -5
  274. package/dist/{chunk-s7qj2hg5.js → chunk-m8vyp6rw.js} +2 -2
  275. package/dist/chunk-mm4m13ng.js +881 -0
  276. package/dist/{chunk-ghr4s9g6.js → chunk-mq1qrwhq.js} +79 -70
  277. package/dist/{chunk-45e9mkyr.js → chunk-mqqw60br.js} +43 -83
  278. package/dist/chunk-mtcdknc8.js +2842 -0
  279. package/dist/{chunk-cvge4pvp.js → chunk-mzd6frw6.js} +2 -2
  280. package/dist/{chunk-n2874aq5.js → chunk-n1neft0d.js} +13 -7
  281. package/dist/{chunk-bcrxtdcy.js → chunk-n2mysxn1.js} +40 -30
  282. package/dist/chunk-n4wkxbq0.js +365 -0
  283. package/dist/chunk-n57dw6h9.js +128 -0
  284. package/dist/chunk-n5wf3b82.js +118 -0
  285. package/dist/{chunk-zgrg0wk3.js → chunk-n7ce94nd.js} +27 -67
  286. package/dist/{chunk-me2ef6g4.js → chunk-n8mpqdje.js} +1 -1
  287. package/dist/{chunk-g5sg6y9q.js → chunk-na2e0dfj.js} +82 -72
  288. package/dist/chunk-netzwgv1.js +154 -0
  289. package/dist/{chunk-xszk7n10.js → chunk-nh3cd07f.js} +1 -1
  290. package/dist/{chunk-5tx8dsy0.js → chunk-npjsp3z3.js} +10493 -18453
  291. package/dist/{chunk-5hva0tsg.js → chunk-p2yv7m0g.js} +6 -6
  292. package/dist/chunk-p4rmbc1e.js +409 -0
  293. package/dist/chunk-p7jdncj4.js +122 -0
  294. package/dist/{chunk-zk2wsm7d.js → chunk-p7vkh4wx.js} +2 -2
  295. package/dist/{chunk-da4ve9t5.js → chunk-p8crqj70.js} +10 -10
  296. package/dist/{chunk-hy3g1nv8.js → chunk-prw4xz5q.js} +9 -7
  297. package/dist/{chunk-zsfxha74.js → chunk-pshjyzq4.js} +8 -7
  298. package/dist/{chunk-684kdqez.js → chunk-q08sb44h.js} +203 -304
  299. package/dist/{chunk-n7158r58.js → chunk-q78bgdtk.js} +79 -70
  300. package/dist/{chunk-e5pntxye.js → chunk-q7tpyeb3.js} +6 -4
  301. package/dist/{chunk-7ymfj7m3.js → chunk-q82r31er.js} +1 -1
  302. package/dist/chunk-qajrkk97.js +298 -0
  303. package/dist/chunk-qbrsmra3.js +23 -0
  304. package/dist/chunk-qhfn4vgv.js +66 -0
  305. package/dist/{chunk-d7mx1phm.js → chunk-qndzvkdx.js} +61 -103
  306. package/dist/{chunk-35y0r56v.js → chunk-qtfc6wdh.js} +1 -4
  307. package/dist/{chunk-v9y80148.js → chunk-qwcnwn5t.js} +100 -191
  308. package/dist/chunk-qwehvedn.js +440 -0
  309. package/dist/{chunk-2cgdr2n7.js → chunk-qwk9fq7r.js} +78 -69
  310. package/dist/chunk-qy75c2vm.js +70 -0
  311. package/dist/{chunk-rryx19hp.js → chunk-r2k2jy0y.js} +2 -2
  312. package/dist/chunk-r47p0ff0.js +61 -0
  313. package/dist/{chunk-t3bf8hcf.js → chunk-r5tk54yt.js} +2 -2
  314. package/dist/{chunk-bt9krt49.js → chunk-r8q993g6.js} +38 -32
  315. package/dist/{chunk-veb0gkcf.js → chunk-ra2rykps.js} +78 -69
  316. package/dist/{chunk-gbcqdr0x.js → chunk-rav5xp8h.js} +1 -1
  317. package/dist/chunk-rbe0tcn9.js +120 -0
  318. package/dist/chunk-rd5cfz3k.js +68 -0
  319. package/dist/{chunk-cenpqc2t.js → chunk-rdvaan98.js} +8 -6
  320. package/dist/{chunk-dr4qq42x.js → chunk-rgbbtszq.js} +9 -9
  321. package/dist/chunk-rjsb9s3q.js +206 -0
  322. package/dist/{chunk-fdwa7gem.js → chunk-rkak3kjw.js} +7 -7
  323. package/dist/{chunk-a6s8wnhe.js → chunk-rnam0xc5.js} +4 -4
  324. package/dist/chunk-rqkqbppr.js +112 -0
  325. package/dist/{chunk-ye18m1zb.js → chunk-rqvqqrpg.js} +38 -8
  326. package/dist/{chunk-rw466wqn.js → chunk-rvkvehat.js} +5284 -3093
  327. package/dist/chunk-s1baskk7.js +14 -0
  328. package/dist/{chunk-jt0pha6y.js → chunk-s5gnvx67.js} +227 -198
  329. package/dist/chunk-s7dtt7tw.js +109 -0
  330. package/dist/chunk-s9ftt1fh.js +135 -0
  331. package/dist/chunk-sc6sy490.js +240 -0
  332. package/dist/chunk-sh9er84d.js +1073 -0
  333. package/dist/{chunk-faycqscv.js → chunk-sk9xag9g.js} +2 -2
  334. package/dist/{chunk-zpc0kwkb.js → chunk-t0g8wbcq.js} +7 -7
  335. package/dist/chunk-tbgm1v8n.js +146 -0
  336. package/dist/{chunk-35b0ek0j.js → chunk-tcdv4gp8.js} +13 -9
  337. package/dist/{chunk-mt25echc.js → chunk-tezak8rx.js} +1 -1
  338. package/dist/chunk-thk6yn51.js +154 -0
  339. package/dist/{chunk-s2gm9vfk.js → chunk-tkf24yhv.js} +7 -7
  340. package/dist/{chunk-6td4c2eq.js → chunk-tkrjcekq.js} +54 -72
  341. package/dist/{chunk-9rcbyag3.js → chunk-tmdbrszg.js} +2 -2
  342. package/dist/chunk-tw2g1yhq.js +118 -0
  343. package/dist/chunk-twzjxwhf.js +182 -0
  344. package/dist/{chunk-m94pnhfa.js → chunk-v4e4f711.js} +39 -29
  345. package/dist/{chunk-b51jjfh5.js → chunk-v5k7zmqm.js} +43 -32
  346. package/dist/chunk-var1et7e.js +66 -0
  347. package/dist/chunk-vd11xbz3.js +304 -0
  348. package/dist/{chunk-hqmz36b3.js → chunk-vf612n57.js} +21 -101
  349. package/dist/chunk-vfhqj46w.js +144 -0
  350. package/dist/chunk-vkxx8ymr.js +2377 -0
  351. package/dist/{chunk-n9x557ea.js → chunk-vs094cby.js} +2332 -4220
  352. package/dist/{chunk-dxc7begm.js → chunk-vtb8z6as.js} +14 -10
  353. package/dist/{chunk-x51mdzqq.js → chunk-vzd3cjy9.js} +3 -3
  354. package/dist/chunk-w2es9743.js +439 -0
  355. package/dist/{chunk-8z039kef.js → chunk-w92b262y.js} +53 -54
  356. package/dist/chunk-wa1dpga1.js +236 -0
  357. package/dist/{chunk-qf2v384j.js → chunk-wbmacbfb.js} +9 -7
  358. package/dist/{chunk-ryj80g9p.js → chunk-wbn46nb4.js} +136 -178
  359. package/dist/{chunk-t9z6njcr.js → chunk-wtycm8km.js} +9 -9
  360. package/dist/{chunk-q6rax9kh.js → chunk-wymtgh88.js} +5 -5
  361. package/dist/{chunk-pa7saazk.js → chunk-x0aj8rh8.js} +28 -56
  362. package/dist/{chunk-1szr63w0.js → chunk-x69w7xr7.js} +86 -74
  363. package/dist/{chunk-k5gdea6r.js → chunk-x6qmm22r.js} +84 -75
  364. package/dist/{chunk-zrse3zpz.js → chunk-xbprynsc.js} +18 -46
  365. package/dist/chunk-xc0v11v6.js +914 -0
  366. package/dist/chunk-xed18bb5.js +233 -0
  367. package/dist/{chunk-gjyc3293.js → chunk-xj76qk4z.js} +288 -499
  368. package/dist/chunk-xmd9eezd.js +83 -0
  369. package/dist/chunk-xrzrbw0f.js +142 -0
  370. package/dist/{chunk-fzxg8v1y.js → chunk-xycy3c8q.js} +15 -12
  371. package/dist/chunk-y0m0rd5v.js +140 -0
  372. package/dist/chunk-y2vtmzre.js +137 -0
  373. package/dist/{chunk-vybkxr18.js → chunk-y5z1cjbk.js} +42 -32
  374. package/dist/chunk-y60q54ph.js +111 -0
  375. package/dist/{chunk-d7vv2ydf.js → chunk-y78t50v0.js} +2 -2
  376. package/dist/{chunk-xkr7as9h.js → chunk-y9bgt2k1.js} +13 -9
  377. package/dist/chunk-ycwdzwz5.js +233 -0
  378. package/dist/chunk-yfyc2y1v.js +136 -0
  379. package/dist/chunk-yg6gtf9j.js +152 -0
  380. package/dist/{chunk-kyer92r4.js → chunk-yk8vcecd.js} +33 -5
  381. package/dist/{chunk-hkn7tzgv.js → chunk-ym5r3jnk.js} +1 -1
  382. package/dist/chunk-yr6gqw17.js +132 -0
  383. package/dist/chunk-yw62vhjz.js +445 -0
  384. package/dist/{chunk-athjeyrt.js → chunk-yw79dz62.js} +4 -4
  385. package/dist/{chunk-5mrhhmas.js → chunk-yx64nmbh.js} +8 -5
  386. package/dist/chunk-yy232vtj.js +84 -0
  387. package/dist/chunk-z1bs6d7k.js +24 -0
  388. package/dist/chunk-z4mgvsdj.js +456 -0
  389. package/dist/chunk-z6e5jp2w.js +119 -0
  390. package/dist/{chunk-t7cbhqd2.js → chunk-z6zt2ns7.js} +111 -123
  391. package/dist/chunk-z735r3p2.js +114 -0
  392. package/dist/{chunk-rjz6btwk.js → chunk-z7ssqvt6.js} +4972 -4638
  393. package/dist/{chunk-bpts9jbq.js → chunk-z8nv1ah0.js} +39 -31
  394. package/dist/chunk-z9mbssbe.js +128 -0
  395. package/dist/chunk-zdctabq6.js +264 -0
  396. package/dist/{chunk-ve60fbtd.js → chunk-ze6zvkg6.js} +2 -2
  397. package/dist/{chunk-t0rgmccj.js → chunk-zejm280k.js} +1 -1
  398. package/dist/{chunk-krstc7m7.js → chunk-zfapazzd.js} +15 -11
  399. package/dist/{chunk-2j0j79p0.js → chunk-zg4ae27v.js} +8 -8
  400. package/dist/chunk-zqxe8qnw.js +3590 -0
  401. package/dist/{chunk-q6dpqj3z.js → chunk-zs2ddzfv.js} +10 -7
  402. package/dist/chunk-zy80g72r.js +512 -0
  403. package/dist/{chunk-g3t0act8.js → chunk-zzm33q8x.js} +1 -1
  404. package/dist/{chunk-s8fzxy94.js → chunk-zzzc1ead.js} +17 -13
  405. package/dist/cli.js +63 -11
  406. package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
  407. package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
  408. package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
  409. package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
  410. package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
  411. package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
  412. package/package.json +8 -5
  413. package/scripts/postinstall.cjs +319 -0
  414. package/dist/chunk-0291smg3.js +0 -42
  415. package/dist/chunk-04g2ty3v.js +0 -104
  416. package/dist/chunk-069x95ne.js +0 -764
  417. package/dist/chunk-06x02eab.js +0 -655
  418. package/dist/chunk-09pjmga5.js +0 -713
  419. package/dist/chunk-0g90je6r.js +0 -145
  420. package/dist/chunk-0paqc2yw.js +0 -15
  421. package/dist/chunk-0rddv9vb.js +0 -328
  422. package/dist/chunk-162w6yv3.js +0 -756
  423. package/dist/chunk-1gjbaa3n.js +0 -128
  424. package/dist/chunk-23wg4mnt.js +0 -404
  425. package/dist/chunk-2gbjtg7c.js +0 -102
  426. package/dist/chunk-2v1q0ezq.js +0 -102
  427. package/dist/chunk-37n7jkxe.js +0 -436
  428. package/dist/chunk-38svjnh4.js +0 -158
  429. package/dist/chunk-3bg1089y.js +0 -616
  430. package/dist/chunk-3d8ck5ne.js +0 -112
  431. package/dist/chunk-3g6rf9sz.js +0 -106
  432. package/dist/chunk-3x3rr2n5.js +0 -57
  433. package/dist/chunk-4f6q3d38.js +0 -117
  434. package/dist/chunk-4h57km3m.js +0 -74
  435. package/dist/chunk-4kyh2618.js +0 -99
  436. package/dist/chunk-4w9vc9vc.js +0 -119
  437. package/dist/chunk-53hqpp5z.js +0 -208
  438. package/dist/chunk-5deqy8r0.js +0 -143
  439. package/dist/chunk-5m2rmc2k.js +0 -128
  440. package/dist/chunk-5wp9pkpt.js +0 -539
  441. package/dist/chunk-5ym9f6w3.js +0 -263
  442. package/dist/chunk-6f938733.js +0 -1027
  443. package/dist/chunk-6nenxecd.js +0 -115
  444. package/dist/chunk-6rja0h86.js +0 -1593
  445. package/dist/chunk-70q6dp4d.js +0 -96
  446. package/dist/chunk-7bn0wzs3.js +0 -1493
  447. package/dist/chunk-7e2e0bfm.js +0 -65
  448. package/dist/chunk-7ywadnax.js +0 -490
  449. package/dist/chunk-7z33j54s.js +0 -142
  450. package/dist/chunk-8yvfkzyh.js +0 -58
  451. package/dist/chunk-9abpx1kv.js +0 -2833
  452. package/dist/chunk-9ks2nswb.js +0 -114
  453. package/dist/chunk-9wrds5tr.js +0 -109
  454. package/dist/chunk-ab2twken.js +0 -102
  455. package/dist/chunk-abncjeag.js +0 -97
  456. package/dist/chunk-am6w4x6y.js +0 -103
  457. package/dist/chunk-b1xt9jqg.js +0 -28
  458. package/dist/chunk-b73bd7db.js +0 -496
  459. package/dist/chunk-bc7nvynh.js +0 -195
  460. package/dist/chunk-br17dhef.js +0 -103
  461. package/dist/chunk-c3k0sdey.js +0 -281
  462. package/dist/chunk-c909bmyv.js +0 -103
  463. package/dist/chunk-cftsv9w4.js +0 -129
  464. package/dist/chunk-cj1a7npk.js +0 -99
  465. package/dist/chunk-cpma9zs5.js +0 -335
  466. package/dist/chunk-cyscs4k5.js +0 -1330
  467. package/dist/chunk-czr7y063.js +0 -348
  468. package/dist/chunk-d93sndem.js +0 -372
  469. package/dist/chunk-ddz8xbpd.js +0 -481
  470. package/dist/chunk-dkhqx4hk.js +0 -84
  471. package/dist/chunk-dsrharmv.js +0 -359
  472. package/dist/chunk-eqmy5d05.js +0 -56
  473. package/dist/chunk-f2crxw2c.js +0 -5400
  474. package/dist/chunk-f8zga40p.js +0 -234
  475. package/dist/chunk-fbgm2ym6.js +0 -990
  476. package/dist/chunk-fcbbsswe.js +0 -119
  477. package/dist/chunk-fda654nt.js +0 -6121
  478. package/dist/chunk-ffmv9ezj.js +0 -104
  479. package/dist/chunk-fmjte7md.js +0 -38
  480. package/dist/chunk-fqtwqxxc.js +0 -293
  481. package/dist/chunk-g8k85nkd.js +0 -802
  482. package/dist/chunk-ge4ak7dj.js +0 -127
  483. package/dist/chunk-gpqemecy.js +0 -126
  484. package/dist/chunk-h19p6s3b.js +0 -131
  485. package/dist/chunk-j0sk1rct.js +0 -998
  486. package/dist/chunk-j1wfpa1a.js +0 -70
  487. package/dist/chunk-j829fx31.js +0 -3458
  488. package/dist/chunk-jqctzrvd.js +0 -722
  489. package/dist/chunk-jx817w05.js +0 -11
  490. package/dist/chunk-ka6sab33.js +0 -174
  491. package/dist/chunk-krjsvmwp.js +0 -101
  492. package/dist/chunk-kvpe50pm.js +0 -311
  493. package/dist/chunk-mez504fj.js +0 -113
  494. package/dist/chunk-mj6wbrae.js +0 -105
  495. package/dist/chunk-n0k8xrey.js +0 -319
  496. package/dist/chunk-n0pg2kpe.js +0 -122
  497. package/dist/chunk-n4qtqkp0.js +0 -295
  498. package/dist/chunk-n9meha2m.js +0 -73
  499. package/dist/chunk-ndk7q5n3.js +0 -169
  500. package/dist/chunk-ng6n9t4h.js +0 -56
  501. package/dist/chunk-p3pz13x2.js +0 -1933
  502. package/dist/chunk-p9ez6zgq.js +0 -2656
  503. package/dist/chunk-ph750kx1.js +0 -550
  504. package/dist/chunk-pxb99zqs.js +0 -117
  505. package/dist/chunk-q1yqc5n3.js +0 -100
  506. package/dist/chunk-q5b91nhh.js +0 -40
  507. package/dist/chunk-qtfqk0jr.js +0 -131
  508. package/dist/chunk-qzfmdh1t.js +0 -388
  509. package/dist/chunk-r3cv0j9n.js +0 -456
  510. package/dist/chunk-rx0pbgym.js +0 -97
  511. package/dist/chunk-s624rd5j.js +0 -531
  512. package/dist/chunk-satndwqj.js +0 -285
  513. package/dist/chunk-ssrxnkd1.js +0 -109
  514. package/dist/chunk-t2pgctqx.js +0 -106
  515. package/dist/chunk-t7sgwf31.js +0 -644
  516. package/dist/chunk-tth904tj.js +0 -53
  517. package/dist/chunk-typpbjhy.js +0 -128
  518. package/dist/chunk-vp6nrhdq.js +0 -102
  519. package/dist/chunk-vtjm53nt.js +0 -432
  520. package/dist/chunk-w412n7tq.js +0 -469
  521. package/dist/chunk-w4153rky.js +0 -1885
  522. package/dist/chunk-wdgv15as.js +0 -212
  523. package/dist/chunk-wgn9kydv.js +0 -58
  524. package/dist/chunk-whknbrk0.js +0 -184
  525. package/dist/chunk-x1k8e1xc.js +0 -56
  526. package/dist/chunk-x45xx6sc.js +0 -105
  527. package/dist/chunk-x4xvqbe5.js +0 -1166
  528. package/dist/chunk-x8b7vft8.js +0 -132
  529. package/dist/chunk-xaycc8qe.js +0 -44
  530. package/dist/chunk-xd4785ks.js +0 -73
  531. package/dist/chunk-xjxgmxhq.js +0 -463
  532. package/dist/chunk-xx2x3tz9.js +0 -166
  533. package/dist/chunk-y2j23eem.js +0 -101
  534. package/dist/chunk-y83j09wv.js +0 -123
  535. package/dist/chunk-yh8460pb.js +0 -119
  536. package/dist/chunk-z6nhchdb.js +0 -60
  537. package/dist/chunk-zbt73sj7.js +0 -192
  538. package/dist/chunk-zmwaatmq.js +0 -118
  539. package/dist/chunk-zvdg9tex.js +0 -135
  540. package/dist/chunk-zwa780cx.js +0 -584
  541. package/dist/{chunk-whvdag1y.js → chunk-3bfs3x0h.js} +9 -9
  542. package/dist/{chunk-27xc1csx.js → chunk-dggvswz1.js} +3 -3
@@ -0,0 +1,1406 @@
1
+ // @bun
2
+ import {
3
+ getAutoModeDenials,
4
+ init_autoModeDenials
5
+ } from "./chunk-bcfd2zw7.js";
6
+ import {
7
+ detectUnreachableRules,
8
+ init_shadowedRuleDetection
9
+ } from "./chunk-a3sfy6as.js";
10
+ import {
11
+ init_SearchBox
12
+ } from "./chunk-s1baskk7.js";
13
+ import {
14
+ init_useSearchInput,
15
+ useSearchInput
16
+ } from "./chunk-ja87jt56.js";
17
+ import {
18
+ AddWorkspaceDirectory,
19
+ init_AddWorkspaceDirectory
20
+ } from "./chunk-4k2270je.js";
21
+ import"./chunk-bd8zk9tn.js";
22
+ import"./chunk-4pjqtps4.js";
23
+ import {
24
+ BashTool,
25
+ SandboxManager,
26
+ Select,
27
+ TextInput,
28
+ WebFetchTool,
29
+ applyPermissionUpdate,
30
+ createPermissionRetryMessage,
31
+ deletePermissionRule,
32
+ getAllowRules,
33
+ getAskRules,
34
+ getDenyRules,
35
+ init_AppState,
36
+ init_BashTool,
37
+ init_PermissionUpdate,
38
+ init_TextInput,
39
+ init_WebFetchTool,
40
+ init_messages1 as init_messages,
41
+ init_permissions,
42
+ init_sandbox_adapter,
43
+ init_select,
44
+ init_useTerminalSize,
45
+ permissionRuleSourceDisplayString,
46
+ persistPermissionUpdate,
47
+ useAppState,
48
+ useSetAppState
49
+ } from "./chunk-gs5eeqmc.js";
50
+ import"./chunk-4nspekjp.js";
51
+ import"./chunk-43h8sw5x.js";
52
+ import"./chunk-zejm280k.js";
53
+ import"./chunk-var1et7e.js";
54
+ import"./chunk-ehtwnxpg.js";
55
+ import"./chunk-m2mzpskw.js";
56
+ import"./chunk-365zvqv3.js";
57
+ import"./chunk-rqvqqrpg.js";
58
+ import"./chunk-5gbqknz6.js";
59
+ import"./chunk-2gzv8nrw.js";
60
+ import"./chunk-cgfdkzhb.js";
61
+ import"./chunk-bxcfz5gy.js";
62
+ import"./chunk-jbt0jgtc.js";
63
+ import"./chunk-ha5d5zfj.js";
64
+ import"./chunk-28az45r7.js";
65
+ import"./chunk-bhdt6k7w.js";
66
+ import"./chunk-f6rbj3gz.js";
67
+ import"./chunk-axj46c2c.js";
68
+ import {
69
+ init_useExitOnCtrlCDWithKeybindings,
70
+ useExitOnCtrlCDWithKeybindings
71
+ } from "./chunk-5pxygepg.js";
72
+ import"./chunk-j5bth84e.js";
73
+ import"./chunk-qndzvkdx.js";
74
+ import"./chunk-5kkvfgzs.js";
75
+ import {
76
+ init_useKeybinding
77
+ } from "./chunk-0jzdwbdc.js";
78
+ import"./chunk-ps49ymvj.js";
79
+ import"./chunk-p7vkh4wx.js";
80
+ import"./chunk-cmcbatgz.js";
81
+ import"./chunk-3b25ycrx.js";
82
+ import"./chunk-yx64nmbh.js";
83
+ import"./chunk-cpwe0yw7.js";
84
+ import"./chunk-y78t50v0.js";
85
+ import"./chunk-4jm600zv.js";
86
+ import"./chunk-n8mpqdje.js";
87
+ import"./chunk-31nce7eh.js";
88
+ import"./chunk-rdvaan98.js";
89
+ import"./chunk-mx28h61f.js";
90
+ import"./chunk-f2k8b4nd.js";
91
+ import"./chunk-sk9xag9g.js";
92
+ import"./chunk-0fsdxz74.js";
93
+ import"./chunk-2qwgfjcj.js";
94
+ import"./chunk-chsyvavm.js";
95
+ import"./chunk-w92b262y.js";
96
+ import {
97
+ SOURCES,
98
+ getRelativeSettingsFilePathForSource,
99
+ init_constants,
100
+ init_permissionRuleParser,
101
+ init_settings1 as init_settings,
102
+ init_stringUtils,
103
+ permissionRuleValueFromString,
104
+ permissionRuleValueToString,
105
+ plural
106
+ } from "./chunk-a2aj2mtb.js";
107
+ import"./chunk-905d2hee.js";
108
+ import"./chunk-rkak3kjw.js";
109
+ import"./chunk-p2yv7m0g.js";
110
+ import"./chunk-1cwdhk7a.js";
111
+ import"./chunk-j9gxwbe3.js";
112
+ import"./chunk-64c1avct.js";
113
+ import"./chunk-qbrsmra3.js";
114
+ import"./chunk-hezj20qy.js";
115
+ import"./chunk-8g5pe1gr.js";
116
+ import"./chunk-4cp6193g.js";
117
+ import"./chunk-8g747a8x.js";
118
+ import"./chunk-d7886r6a.js";
119
+ import"./chunk-f5ma3nh5.js";
120
+ import"./chunk-qz2x630m.js";
121
+ import"./chunk-mzd6frw6.js";
122
+ import"./chunk-r2k2jy0y.js";
123
+ import"./chunk-3c25bcsw.js";
124
+ import"./chunk-2q39ej51.js";
125
+ import"./chunk-q82r31er.js";
126
+ import"./chunk-p2816w9z.js";
127
+ import"./chunk-v9smspw2.js";
128
+ import"./chunk-v1kzp02e.js";
129
+ import"./chunk-z4mgvsdj.js";
130
+ import"./chunk-crmjpsqe.js";
131
+ import {
132
+ Dialog,
133
+ Newline,
134
+ Pane,
135
+ SearchBox,
136
+ StatusIcon,
137
+ Tab,
138
+ Tabs,
139
+ ThemedBox_default,
140
+ ThemedText,
141
+ init_source,
142
+ init_src,
143
+ source_default,
144
+ useKeybinding,
145
+ useTabHeaderFocus as useTabHeaderFocus2,
146
+ useTabsWidth,
147
+ useTerminalFocus,
148
+ useTerminalSize,
149
+ use_input_default
150
+ } from "./chunk-rvkvehat.js";
151
+ import {
152
+ require_jsx_dev_runtime,
153
+ require_react
154
+ } from "./chunk-g338npwr.js";
155
+ import"./chunk-f2mhrmww.js";
156
+ import"./chunk-0vkfrmqm.js";
157
+ import"./chunk-0xjaqda8.js";
158
+ import"./chunk-21z7acxh.js";
159
+ import"./chunk-rgbbtszq.js";
160
+ import"./chunk-1thgdca1.js";
161
+ import"./chunk-qnfx3qtx.js";
162
+ import"./chunk-yw79dz62.js";
163
+ import"./chunk-b81hd3m6.js";
164
+ import"./chunk-61ahbn23.js";
165
+ import"./chunk-8tnsngw2.js";
166
+ import"./chunk-edzkkadh.js";
167
+ import"./chunk-bwg7582d.js";
168
+ import"./chunk-5z28bqne.js";
169
+ import {
170
+ figures_default,
171
+ init_figures
172
+ } from "./chunk-qajrkk97.js";
173
+ import {
174
+ init_slowOperations,
175
+ jsonStringify
176
+ } from "./chunk-hcgkak1j.js";
177
+ import"./chunk-fbv4apne.js";
178
+ import"./chunk-z6e5jp2w.js";
179
+ import"./chunk-jaaxk89e.js";
180
+ import {
181
+ getOriginalCwd,
182
+ init_state
183
+ } from "./chunk-h4b85amj.js";
184
+ import"./chunk-07069jq1.js";
185
+ import"./chunk-vf612n57.js";
186
+ import"./chunk-d4mdda98.js";
187
+ import"./chunk-7wm5s02e.js";
188
+ import"./chunk-4g3v8y12.js";
189
+ import"./chunk-7739pg2c.js";
190
+ import"./chunk-nh3cd07f.js";
191
+ import"./chunk-8pn8tvgg.js";
192
+ import"./chunk-netzwgv1.js";
193
+ import {
194
+ __esm,
195
+ __toESM
196
+ } from "./chunk-qp2qdcda.js";
197
+
198
+ // src/components/permissions/rules/PermissionRuleDescription.tsx
199
+ function PermissionRuleDescription({
200
+ ruleValue
201
+ }) {
202
+ switch (ruleValue.toolName) {
203
+ case BashTool.name: {
204
+ if (ruleValue.ruleContent) {
205
+ if (ruleValue.ruleContent.endsWith(":*")) {
206
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
207
+ dimColor: true,
208
+ children: [
209
+ "Any Bash command starting with",
210
+ " ",
211
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
212
+ bold: true,
213
+ children: ruleValue.ruleContent.slice(0, -2)
214
+ }, undefined, false, undefined, this)
215
+ ]
216
+ }, undefined, true, undefined, this);
217
+ } else {
218
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
219
+ dimColor: true,
220
+ children: [
221
+ "The Bash command ",
222
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
223
+ bold: true,
224
+ children: ruleValue.ruleContent
225
+ }, undefined, false, undefined, this)
226
+ ]
227
+ }, undefined, true, undefined, this);
228
+ }
229
+ } else {
230
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
231
+ dimColor: true,
232
+ children: "Any Bash command"
233
+ }, undefined, false, undefined, this);
234
+ }
235
+ }
236
+ default: {
237
+ if (!ruleValue.ruleContent) {
238
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
239
+ dimColor: true,
240
+ children: [
241
+ "Any use of the ",
242
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
243
+ bold: true,
244
+ children: ruleValue.toolName
245
+ }, undefined, false, undefined, this),
246
+ " tool"
247
+ ]
248
+ }, undefined, true, undefined, this);
249
+ } else {
250
+ return null;
251
+ }
252
+ }
253
+ }
254
+ }
255
+ var jsx_dev_runtime;
256
+ var init_PermissionRuleDescription = __esm(() => {
257
+ init_src();
258
+ init_BashTool();
259
+ jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
260
+ });
261
+
262
+ // src/components/permissions/rules/AddPermissionRules.tsx
263
+ function optionForPermissionSaveDestination(saveDestination) {
264
+ switch (saveDestination) {
265
+ case "localSettings":
266
+ return {
267
+ label: "Project settings (local)",
268
+ description: `Saved in ${getRelativeSettingsFilePathForSource("localSettings")}`,
269
+ value: saveDestination
270
+ };
271
+ case "projectSettings":
272
+ return {
273
+ label: "Project settings",
274
+ description: `Checked in at ${getRelativeSettingsFilePathForSource("projectSettings")}`,
275
+ value: saveDestination
276
+ };
277
+ case "userSettings":
278
+ return {
279
+ label: "User settings",
280
+ description: `Saved in at ~/.claude/settings.json`,
281
+ value: saveDestination
282
+ };
283
+ }
284
+ }
285
+ function AddPermissionRules({
286
+ onAddRules,
287
+ onCancel,
288
+ ruleValues,
289
+ ruleBehavior,
290
+ initialContext,
291
+ setToolPermissionContext
292
+ }) {
293
+ const allOptions = SOURCES.map(optionForPermissionSaveDestination);
294
+ const onSelect = import_react.useCallback((selectedValue) => {
295
+ if (selectedValue === "cancel") {
296
+ onCancel();
297
+ return;
298
+ } else if (SOURCES.includes(selectedValue)) {
299
+ const destination = selectedValue;
300
+ const updatedContext = applyPermissionUpdate(initialContext, {
301
+ type: "addRules",
302
+ rules: ruleValues,
303
+ behavior: ruleBehavior,
304
+ destination
305
+ });
306
+ persistPermissionUpdate({
307
+ type: "addRules",
308
+ rules: ruleValues,
309
+ behavior: ruleBehavior,
310
+ destination
311
+ });
312
+ setToolPermissionContext(updatedContext);
313
+ const rules = ruleValues.map((ruleValue) => ({
314
+ ruleValue,
315
+ ruleBehavior,
316
+ source: destination
317
+ }));
318
+ const sandboxAutoAllowEnabled = SandboxManager.isSandboxingEnabled() && SandboxManager.isAutoAllowBashIfSandboxedEnabled();
319
+ const allUnreachable = detectUnreachableRules(updatedContext, {
320
+ sandboxAutoAllowEnabled
321
+ });
322
+ const newUnreachable = allUnreachable.filter((u) => ruleValues.some((rv) => rv.toolName === u.rule.ruleValue.toolName && rv.ruleContent === u.rule.ruleValue.ruleContent));
323
+ onAddRules(rules, newUnreachable.length > 0 ? newUnreachable : undefined);
324
+ }
325
+ }, [
326
+ onAddRules,
327
+ onCancel,
328
+ ruleValues,
329
+ ruleBehavior,
330
+ initialContext,
331
+ setToolPermissionContext
332
+ ]);
333
+ const title = `Add ${ruleBehavior} permission ${plural(ruleValues.length, "rule")}`;
334
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Dialog, {
335
+ title,
336
+ onCancel,
337
+ color: "permission",
338
+ children: [
339
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
340
+ flexDirection: "column",
341
+ paddingX: 2,
342
+ children: ruleValues.map((ruleValue) => /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
343
+ flexDirection: "column",
344
+ children: [
345
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
346
+ bold: true,
347
+ children: permissionRuleValueToString(ruleValue)
348
+ }, undefined, false, undefined, this),
349
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(PermissionRuleDescription, {
350
+ ruleValue
351
+ }, undefined, false, undefined, this)
352
+ ]
353
+ }, permissionRuleValueToString(ruleValue), true, undefined, this))
354
+ }, undefined, false, undefined, this),
355
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
356
+ flexDirection: "column",
357
+ marginY: 1,
358
+ children: [
359
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
360
+ children: ruleValues.length === 1 ? "Where should this rule be saved?" : "Where should these rules be saved?"
361
+ }, undefined, false, undefined, this),
362
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Select, {
363
+ options: allOptions,
364
+ onChange: onSelect
365
+ }, undefined, false, undefined, this)
366
+ ]
367
+ }, undefined, true, undefined, this)
368
+ ]
369
+ }, undefined, true, undefined, this);
370
+ }
371
+ var import_react, jsx_dev_runtime2;
372
+ var init_AddPermissionRules = __esm(() => {
373
+ init_select();
374
+ init_src();
375
+ init_PermissionUpdate();
376
+ init_permissionRuleParser();
377
+ init_shadowedRuleDetection();
378
+ init_sandbox_adapter();
379
+ init_constants();
380
+ init_settings();
381
+ init_stringUtils();
382
+ init_PermissionRuleDescription();
383
+ import_react = __toESM(require_react(), 1);
384
+ jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
385
+ });
386
+
387
+ // src/components/permissions/rules/PermissionRuleInput.tsx
388
+ function PermissionRuleInput({
389
+ onCancel,
390
+ onSubmit,
391
+ ruleBehavior
392
+ }) {
393
+ const [inputValue, setInputValue] = import_react2.useState("");
394
+ const [cursorOffset, setCursorOffset] = import_react2.useState(0);
395
+ const exitState = useExitOnCtrlCDWithKeybindings();
396
+ useKeybinding("confirm:no", onCancel, { context: "Settings" });
397
+ const { columns } = useTerminalSize();
398
+ const textInputColumns = columns - 6;
399
+ const handleSubmit = (value) => {
400
+ const trimmedValue = value.trim();
401
+ if (trimmedValue.length === 0) {
402
+ return;
403
+ }
404
+ const ruleValue = permissionRuleValueFromString(trimmedValue);
405
+ onSubmit(ruleValue, ruleBehavior);
406
+ };
407
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(jsx_dev_runtime3.Fragment, {
408
+ children: [
409
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
410
+ flexDirection: "column",
411
+ gap: 1,
412
+ borderStyle: "round",
413
+ paddingLeft: 1,
414
+ paddingRight: 1,
415
+ borderColor: "permission",
416
+ children: [
417
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
418
+ bold: true,
419
+ color: "permission",
420
+ children: [
421
+ "Add ",
422
+ ruleBehavior,
423
+ " permission rule"
424
+ ]
425
+ }, undefined, true, undefined, this),
426
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
427
+ flexDirection: "column",
428
+ children: [
429
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
430
+ children: [
431
+ "Permission rules are a tool name, optionally followed by a specifier in parentheses.",
432
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Newline, {}, undefined, false, undefined, this),
433
+ "e.g.,",
434
+ " ",
435
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
436
+ bold: true,
437
+ children: permissionRuleValueToString({ toolName: WebFetchTool.name })
438
+ }, undefined, false, undefined, this),
439
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
440
+ bold: false,
441
+ children: " or "
442
+ }, undefined, false, undefined, this),
443
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
444
+ bold: true,
445
+ children: permissionRuleValueToString({
446
+ toolName: BashTool.name,
447
+ ruleContent: "ls:*"
448
+ })
449
+ }, undefined, false, undefined, this)
450
+ ]
451
+ }, undefined, true, undefined, this),
452
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
453
+ borderDimColor: true,
454
+ borderStyle: "round",
455
+ marginY: 1,
456
+ paddingLeft: 1,
457
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(TextInput, {
458
+ showCursor: true,
459
+ value: inputValue,
460
+ onChange: setInputValue,
461
+ onSubmit: handleSubmit,
462
+ placeholder: `Enter permission rule${figures_default.ellipsis}`,
463
+ columns: textInputColumns,
464
+ cursorOffset,
465
+ onChangeCursorOffset: setCursorOffset
466
+ }, undefined, false, undefined, this)
467
+ }, undefined, false, undefined, this)
468
+ ]
469
+ }, undefined, true, undefined, this)
470
+ ]
471
+ }, undefined, true, undefined, this),
472
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
473
+ marginLeft: 3,
474
+ children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
475
+ dimColor: true,
476
+ children: [
477
+ "Press ",
478
+ exitState.keyName,
479
+ " again to exit"
480
+ ]
481
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
482
+ dimColor: true,
483
+ children: "Enter to submit \xB7 Esc to cancel"
484
+ }, undefined, false, undefined, this)
485
+ }, undefined, false, undefined, this)
486
+ ]
487
+ }, undefined, true, undefined, this);
488
+ }
489
+ var import_react2, jsx_dev_runtime3;
490
+ var init_PermissionRuleInput = __esm(() => {
491
+ init_figures();
492
+ init_TextInput();
493
+ init_useExitOnCtrlCDWithKeybindings();
494
+ init_useTerminalSize();
495
+ init_src();
496
+ init_useKeybinding();
497
+ init_BashTool();
498
+ init_WebFetchTool();
499
+ init_permissionRuleParser();
500
+ import_react2 = __toESM(require_react(), 1);
501
+ jsx_dev_runtime3 = __toESM(require_jsx_dev_runtime(), 1);
502
+ });
503
+
504
+ // src/components/permissions/rules/RecentDenialsTab.tsx
505
+ function RecentDenialsTab({
506
+ onHeaderFocusChange,
507
+ onStateChange
508
+ }) {
509
+ const { headerFocused, focusHeader } = useTabHeaderFocus();
510
+ import_react3.useEffect(() => {
511
+ onHeaderFocusChange?.(headerFocused);
512
+ }, [headerFocused, onHeaderFocusChange]);
513
+ const [denials] = import_react3.useState(() => getAutoModeDenials());
514
+ const [approved, setApproved] = import_react3.useState(() => new Set);
515
+ const [retry, setRetry] = import_react3.useState(() => new Set);
516
+ const [focusedIdx, setFocusedIdx] = import_react3.useState(0);
517
+ import_react3.useEffect(() => {
518
+ onStateChange({ approved, retry, denials });
519
+ }, [approved, retry, denials, onStateChange]);
520
+ const handleSelect = import_react3.useCallback((value) => {
521
+ const idx = Number(value);
522
+ setApproved((prev) => {
523
+ const next = new Set(prev);
524
+ if (next.has(idx))
525
+ next.delete(idx);
526
+ else
527
+ next.add(idx);
528
+ return next;
529
+ });
530
+ }, []);
531
+ const handleFocus = import_react3.useCallback((value) => {
532
+ setFocusedIdx(Number(value));
533
+ }, []);
534
+ use_input_default((input, _key) => {
535
+ if (input === "r") {
536
+ setRetry((prev) => {
537
+ const next = new Set(prev);
538
+ if (next.has(focusedIdx))
539
+ next.delete(focusedIdx);
540
+ else
541
+ next.add(focusedIdx);
542
+ return next;
543
+ });
544
+ setApproved((prev) => {
545
+ if (prev.has(focusedIdx))
546
+ return prev;
547
+ const next = new Set(prev);
548
+ next.add(focusedIdx);
549
+ return next;
550
+ });
551
+ }
552
+ }, { isActive: denials.length > 0 });
553
+ if (denials.length === 0) {
554
+ return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
555
+ dimColor: true,
556
+ children: "No recent denials. Commands denied by the auto mode classifier will appear here."
557
+ }, undefined, false, undefined, this);
558
+ }
559
+ const options = denials.map((d, idx) => {
560
+ const isApproved = approved.has(idx);
561
+ const suffix = retry.has(idx) ? " (retry)" : "";
562
+ return {
563
+ label: /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
564
+ children: [
565
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(StatusIcon, {
566
+ status: isApproved ? "success" : "error",
567
+ withSpace: true
568
+ }, undefined, false, undefined, this),
569
+ d.display,
570
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
571
+ dimColor: true,
572
+ children: suffix
573
+ }, undefined, false, undefined, this)
574
+ ]
575
+ }, undefined, true, undefined, this),
576
+ value: String(idx)
577
+ };
578
+ });
579
+ return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
580
+ flexDirection: "column",
581
+ children: [
582
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
583
+ children: "Commands recently denied by the auto mode classifier."
584
+ }, undefined, false, undefined, this),
585
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
586
+ marginTop: 1,
587
+ children: /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Select, {
588
+ options,
589
+ onChange: handleSelect,
590
+ onFocus: handleFocus,
591
+ visibleOptionCount: Math.min(10, options.length),
592
+ isDisabled: headerFocused,
593
+ onUpFromFirstItem: focusHeader
594
+ }, undefined, false, undefined, this)
595
+ }, undefined, false, undefined, this)
596
+ ]
597
+ }, undefined, true, undefined, this);
598
+ }
599
+ var import_react3, jsx_dev_runtime4;
600
+ var init_RecentDenialsTab = __esm(() => {
601
+ init_src();
602
+ init_autoModeDenials();
603
+ init_select();
604
+ init_src();
605
+ import_react3 = __toESM(require_react(), 1);
606
+ jsx_dev_runtime4 = __toESM(require_jsx_dev_runtime(), 1);
607
+ });
608
+
609
+ // src/components/permissions/rules/RemoveWorkspaceDirectory.tsx
610
+ function RemoveWorkspaceDirectory({
611
+ directoryPath,
612
+ onRemove,
613
+ onCancel,
614
+ permissionContext,
615
+ setPermissionContext
616
+ }) {
617
+ const handleRemove = import_react4.useCallback(() => {
618
+ const updatedContext = applyPermissionUpdate(permissionContext, {
619
+ type: "removeDirectories",
620
+ directories: [directoryPath],
621
+ destination: "session"
622
+ });
623
+ setPermissionContext(updatedContext);
624
+ onRemove();
625
+ }, [directoryPath, permissionContext, setPermissionContext, onRemove]);
626
+ const handleSelect = import_react4.useCallback((value) => {
627
+ if (value === "yes") {
628
+ handleRemove();
629
+ } else {
630
+ onCancel();
631
+ }
632
+ }, [handleRemove, onCancel]);
633
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(Dialog, {
634
+ title: "Remove directory from workspace?",
635
+ onCancel,
636
+ color: "error",
637
+ children: [
638
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedBox_default, {
639
+ marginX: 2,
640
+ flexDirection: "column",
641
+ children: /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
642
+ bold: true,
643
+ children: directoryPath
644
+ }, undefined, false, undefined, this)
645
+ }, undefined, false, undefined, this),
646
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
647
+ children: "Claude Code will no longer have access to files in this directory."
648
+ }, undefined, false, undefined, this),
649
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(Select, {
650
+ onChange: handleSelect,
651
+ onCancel,
652
+ options: [
653
+ { label: "Yes", value: "yes" },
654
+ { label: "No", value: "no" }
655
+ ]
656
+ }, undefined, false, undefined, this)
657
+ ]
658
+ }, undefined, true, undefined, this);
659
+ }
660
+ var import_react4, jsx_dev_runtime5;
661
+ var init_RemoveWorkspaceDirectory = __esm(() => {
662
+ init_select();
663
+ init_src();
664
+ init_PermissionUpdate();
665
+ init_src();
666
+ import_react4 = __toESM(require_react(), 1);
667
+ jsx_dev_runtime5 = __toESM(require_jsx_dev_runtime(), 1);
668
+ });
669
+
670
+ // src/components/permissions/rules/WorkspaceTab.tsx
671
+ function WorkspaceTab({
672
+ onExit,
673
+ toolPermissionContext,
674
+ onRequestAddDirectory,
675
+ onRequestRemoveDirectory,
676
+ onHeaderFocusChange
677
+ }) {
678
+ const { headerFocused, focusHeader } = useTabHeaderFocus();
679
+ import_react5.useEffect(() => {
680
+ onHeaderFocusChange?.(headerFocused);
681
+ }, [headerFocused, onHeaderFocusChange]);
682
+ const additionalDirectories = React.useMemo(() => {
683
+ return Array.from(toolPermissionContext.additionalWorkingDirectories.keys()).map((path) => ({
684
+ path,
685
+ isCurrent: false,
686
+ isDeletable: true
687
+ }));
688
+ }, [toolPermissionContext.additionalWorkingDirectories]);
689
+ const handleDirectorySelect = import_react5.useCallback((selectedValue) => {
690
+ if (selectedValue === "add-directory") {
691
+ onRequestAddDirectory();
692
+ return;
693
+ }
694
+ const directory = additionalDirectories.find((d) => d.path === selectedValue);
695
+ if (directory && directory.isDeletable) {
696
+ onRequestRemoveDirectory(directory.path);
697
+ }
698
+ }, [additionalDirectories, onRequestAddDirectory, onRequestRemoveDirectory]);
699
+ const handleCancel = import_react5.useCallback(() => onExit("Workspace dialog dismissed", { display: "system" }), [onExit]);
700
+ const options = React.useMemo(() => {
701
+ const opts = additionalDirectories.map((dir) => ({
702
+ label: dir.path,
703
+ value: dir.path
704
+ }));
705
+ opts.push({
706
+ label: `Add directory${figures_default.ellipsis}`,
707
+ value: "add-directory"
708
+ });
709
+ return opts;
710
+ }, [additionalDirectories]);
711
+ return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
712
+ flexDirection: "column",
713
+ marginBottom: 1,
714
+ children: [
715
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedBox_default, {
716
+ flexDirection: "row",
717
+ marginTop: 1,
718
+ marginLeft: 2,
719
+ gap: 1,
720
+ children: [
721
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
722
+ children: `- ${getOriginalCwd()}`
723
+ }, undefined, false, undefined, this),
724
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(ThemedText, {
725
+ dimColor: true,
726
+ children: "(Original working directory)"
727
+ }, undefined, false, undefined, this)
728
+ ]
729
+ }, undefined, true, undefined, this),
730
+ /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(Select, {
731
+ options,
732
+ onChange: handleDirectorySelect,
733
+ onCancel: handleCancel,
734
+ visibleOptionCount: Math.min(10, options.length),
735
+ onUpFromFirstItem: focusHeader,
736
+ isDisabled: headerFocused
737
+ }, undefined, false, undefined, this)
738
+ ]
739
+ }, undefined, true, undefined, this);
740
+ }
741
+ var React, import_react5, jsx_dev_runtime6;
742
+ var init_WorkspaceTab = __esm(() => {
743
+ init_figures();
744
+ init_state();
745
+ init_select();
746
+ init_src();
747
+ React = __toESM(require_react(), 1);
748
+ import_react5 = __toESM(require_react(), 1);
749
+ jsx_dev_runtime6 = __toESM(require_jsx_dev_runtime(), 1);
750
+ });
751
+
752
+ // src/components/permissions/rules/PermissionRuleList.tsx
753
+ function RuleSourceText({ rule }) {
754
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
755
+ dimColor: true,
756
+ children: `From ${permissionRuleSourceDisplayString(rule.source)}`
757
+ }, undefined, false, undefined, this);
758
+ }
759
+ function getRuleBehaviorLabel(ruleBehavior) {
760
+ switch (ruleBehavior) {
761
+ case "allow":
762
+ return "allowed";
763
+ case "deny":
764
+ return "denied";
765
+ case "ask":
766
+ return "ask";
767
+ }
768
+ }
769
+ function RuleDetails({
770
+ rule,
771
+ onDelete,
772
+ onCancel
773
+ }) {
774
+ const exitState = useExitOnCtrlCDWithKeybindings();
775
+ useKeybinding("confirm:no", onCancel, { context: "Confirmation" });
776
+ const ruleDescription = /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedBox_default, {
777
+ flexDirection: "column",
778
+ marginX: 2,
779
+ children: [
780
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
781
+ bold: true,
782
+ children: permissionRuleValueToString(rule.ruleValue)
783
+ }, undefined, false, undefined, this),
784
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(PermissionRuleDescription, {
785
+ ruleValue: rule.ruleValue
786
+ }, undefined, false, undefined, this),
787
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(RuleSourceText, {
788
+ rule
789
+ }, undefined, false, undefined, this)
790
+ ]
791
+ }, undefined, true, undefined, this);
792
+ const footer = /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedBox_default, {
793
+ marginLeft: 3,
794
+ children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
795
+ dimColor: true,
796
+ children: [
797
+ "Press ",
798
+ exitState.keyName,
799
+ " again to exit"
800
+ ]
801
+ }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
802
+ dimColor: true,
803
+ children: "Esc to cancel"
804
+ }, undefined, false, undefined, this)
805
+ }, undefined, false, undefined, this);
806
+ if (rule.source === "policySettings") {
807
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
808
+ children: [
809
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedBox_default, {
810
+ flexDirection: "column",
811
+ gap: 1,
812
+ borderStyle: "round",
813
+ paddingLeft: 1,
814
+ paddingRight: 1,
815
+ borderColor: "permission",
816
+ children: [
817
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
818
+ bold: true,
819
+ color: "permission",
820
+ children: "Rule details"
821
+ }, undefined, false, undefined, this),
822
+ ruleDescription,
823
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
824
+ italic: true,
825
+ children: [
826
+ "This rule is configured by managed settings and cannot be modified.",
827
+ `
828
+ `,
829
+ "Contact your system administrator for more information."
830
+ ]
831
+ }, undefined, true, undefined, this)
832
+ ]
833
+ }, undefined, true, undefined, this),
834
+ footer
835
+ ]
836
+ }, undefined, true, undefined, this);
837
+ }
838
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
839
+ children: [
840
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedBox_default, {
841
+ flexDirection: "column",
842
+ gap: 1,
843
+ borderStyle: "round",
844
+ paddingLeft: 1,
845
+ paddingRight: 1,
846
+ borderColor: "error",
847
+ children: [
848
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
849
+ bold: true,
850
+ color: "error",
851
+ children: [
852
+ "Delete ",
853
+ getRuleBehaviorLabel(rule.ruleBehavior),
854
+ " tool?"
855
+ ]
856
+ }, undefined, true, undefined, this),
857
+ ruleDescription,
858
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
859
+ children: "Are you sure you want to delete this permission rule?"
860
+ }, undefined, false, undefined, this),
861
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Select, {
862
+ onChange: (_) => _ === "yes" ? onDelete() : onCancel(),
863
+ onCancel,
864
+ options: [
865
+ { label: "Yes", value: "yes" },
866
+ { label: "No", value: "no" }
867
+ ]
868
+ }, undefined, false, undefined, this)
869
+ ]
870
+ }, undefined, true, undefined, this),
871
+ footer
872
+ ]
873
+ }, undefined, true, undefined, this);
874
+ }
875
+ function RulesTabContent(props) {
876
+ const {
877
+ options,
878
+ searchQuery,
879
+ isSearchMode,
880
+ isFocused,
881
+ onSelect,
882
+ onCancel,
883
+ lastFocusedRuleKey,
884
+ cursorOffset,
885
+ onHeaderFocusChange
886
+ } = props;
887
+ const tabWidth = useTabsWidth();
888
+ const { headerFocused, focusHeader, blurHeader } = useTabHeaderFocus2();
889
+ import_react6.useEffect(() => {
890
+ if (isSearchMode && headerFocused)
891
+ blurHeader();
892
+ }, [isSearchMode, headerFocused, blurHeader]);
893
+ import_react6.useEffect(() => {
894
+ onHeaderFocusChange?.(headerFocused);
895
+ }, [headerFocused, onHeaderFocusChange]);
896
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedBox_default, {
897
+ flexDirection: "column",
898
+ children: [
899
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedBox_default, {
900
+ marginBottom: 1,
901
+ flexDirection: "column",
902
+ children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(SearchBox, {
903
+ query: searchQuery,
904
+ isFocused: isSearchMode && !headerFocused,
905
+ isTerminalFocused: isFocused,
906
+ width: tabWidth,
907
+ cursorOffset
908
+ }, undefined, false, undefined, this)
909
+ }, undefined, false, undefined, this),
910
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Select, {
911
+ options,
912
+ onChange: onSelect,
913
+ onCancel,
914
+ visibleOptionCount: Math.min(10, options.length),
915
+ isDisabled: isSearchMode || headerFocused,
916
+ defaultFocusValue: lastFocusedRuleKey,
917
+ onUpFromFirstItem: focusHeader
918
+ }, undefined, false, undefined, this)
919
+ ]
920
+ }, undefined, true, undefined, this);
921
+ }
922
+ function PermissionRulesTab({
923
+ tab,
924
+ getRulesOptions,
925
+ handleToolSelect,
926
+ ...rulesProps
927
+ }) {
928
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedBox_default, {
929
+ flexDirection: "column",
930
+ flexShrink: tab === "allow" ? 0 : undefined,
931
+ children: [
932
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
933
+ children: {
934
+ allow: "Claude Code won't ask before using allowed tools.",
935
+ ask: "Claude Code will always ask for confirmation before using these tools.",
936
+ deny: "Claude Code will always reject requests to use denied tools."
937
+ }[tab]
938
+ }, undefined, false, undefined, this),
939
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(RulesTabContent, {
940
+ options: getRulesOptions(tab, rulesProps.searchQuery).options,
941
+ onSelect: (v) => handleToolSelect(v, tab),
942
+ ...rulesProps
943
+ }, undefined, false, undefined, this)
944
+ ]
945
+ }, undefined, true, undefined, this);
946
+ }
947
+ function PermissionRuleList({
948
+ onExit,
949
+ initialTab,
950
+ onRetryDenials
951
+ }) {
952
+ const hasDenials = getAutoModeDenials().length > 0;
953
+ const defaultTab = initialTab ?? (hasDenials ? "recent" : "allow");
954
+ const [changes, setChanges] = import_react6.useState([]);
955
+ const toolPermissionContext = useAppState((s) => s.toolPermissionContext);
956
+ const setAppState = useSetAppState();
957
+ const isTerminalFocused = useTerminalFocus();
958
+ const denialStateRef = import_react6.useRef({ approved: new Set, retry: new Set, denials: [] });
959
+ const handleDenialStateChange = import_react6.useCallback((s) => {
960
+ denialStateRef.current = s;
961
+ }, []);
962
+ const [selectedRule, setSelectedRule] = import_react6.useState();
963
+ const [lastFocusedRuleKey, setLastFocusedRuleKey] = import_react6.useState();
964
+ const [addingRuleToTab, setAddingRuleToTab] = import_react6.useState(null);
965
+ const [validatedRule, setValidatedRule] = import_react6.useState(null);
966
+ const [isAddingWorkspaceDirectory, setIsAddingWorkspaceDirectory] = import_react6.useState(false);
967
+ const [removingDirectory, setRemovingDirectory] = import_react6.useState(null);
968
+ const [isSearchMode, setIsSearchMode] = import_react6.useState(false);
969
+ const [headerFocused, setHeaderFocused] = import_react6.useState(true);
970
+ const handleHeaderFocusChange = import_react6.useCallback((focused) => {
971
+ setHeaderFocused(focused);
972
+ }, []);
973
+ const allowRulesByKey = import_react6.useMemo(() => {
974
+ const map = new Map;
975
+ getAllowRules(toolPermissionContext).forEach((rule) => {
976
+ map.set(jsonStringify(rule), rule);
977
+ });
978
+ return map;
979
+ }, [toolPermissionContext]);
980
+ const denyRulesByKey = import_react6.useMemo(() => {
981
+ const map = new Map;
982
+ getDenyRules(toolPermissionContext).forEach((rule) => {
983
+ map.set(jsonStringify(rule), rule);
984
+ });
985
+ return map;
986
+ }, [toolPermissionContext]);
987
+ const askRulesByKey = import_react6.useMemo(() => {
988
+ const map = new Map;
989
+ getAskRules(toolPermissionContext).forEach((rule) => {
990
+ map.set(jsonStringify(rule), rule);
991
+ });
992
+ return map;
993
+ }, [toolPermissionContext]);
994
+ const getRulesOptions = import_react6.useCallback((tab, query = "") => {
995
+ const rulesByKey = (() => {
996
+ switch (tab) {
997
+ case "allow":
998
+ return allowRulesByKey;
999
+ case "deny":
1000
+ return denyRulesByKey;
1001
+ case "ask":
1002
+ return askRulesByKey;
1003
+ case "workspace":
1004
+ case "recent":
1005
+ return new Map;
1006
+ }
1007
+ })();
1008
+ const options = [];
1009
+ if (tab !== "workspace" && tab !== "recent" && !query) {
1010
+ options.push({
1011
+ label: `Add a new rule${figures_default.ellipsis}`,
1012
+ value: "add-new-rule"
1013
+ });
1014
+ }
1015
+ const sortedRuleKeys = Array.from(rulesByKey.keys()).sort((a, b) => {
1016
+ const ruleA = rulesByKey.get(a);
1017
+ const ruleB = rulesByKey.get(b);
1018
+ if (ruleA && ruleB) {
1019
+ const ruleAString = permissionRuleValueToString(ruleA.ruleValue).toLowerCase();
1020
+ const ruleBString = permissionRuleValueToString(ruleB.ruleValue).toLowerCase();
1021
+ return ruleAString.localeCompare(ruleBString);
1022
+ }
1023
+ return 0;
1024
+ });
1025
+ const lowerQuery = query.toLowerCase();
1026
+ for (const ruleKey of sortedRuleKeys) {
1027
+ const rule = rulesByKey.get(ruleKey);
1028
+ if (rule) {
1029
+ const ruleString = permissionRuleValueToString(rule.ruleValue);
1030
+ if (query && !ruleString.toLowerCase().includes(lowerQuery)) {
1031
+ continue;
1032
+ }
1033
+ options.push({
1034
+ label: ruleString,
1035
+ value: ruleKey
1036
+ });
1037
+ }
1038
+ }
1039
+ return { options, rulesByKey };
1040
+ }, [allowRulesByKey, denyRulesByKey, askRulesByKey]);
1041
+ const exitState = useExitOnCtrlCDWithKeybindings();
1042
+ const isSearchModeActive = !selectedRule && !addingRuleToTab && !validatedRule && !isAddingWorkspaceDirectory && !removingDirectory;
1043
+ const {
1044
+ query: searchQuery,
1045
+ setQuery: setSearchQuery,
1046
+ cursorOffset: searchCursorOffset
1047
+ } = useSearchInput({
1048
+ isActive: isSearchModeActive && isSearchMode,
1049
+ onExit: () => {
1050
+ setIsSearchMode(false);
1051
+ }
1052
+ });
1053
+ const handleKeyDown = import_react6.useCallback((e) => {
1054
+ if (!isSearchModeActive)
1055
+ return;
1056
+ if (isSearchMode)
1057
+ return;
1058
+ if (e.ctrl || e.meta)
1059
+ return;
1060
+ if (e.key === "/") {
1061
+ e.preventDefault();
1062
+ setIsSearchMode(true);
1063
+ setSearchQuery("");
1064
+ } else if (e.key.length === 1 && e.key !== "j" && e.key !== "k" && e.key !== "m" && e.key !== "i" && e.key !== "r" && e.key !== " ") {
1065
+ e.preventDefault();
1066
+ setIsSearchMode(true);
1067
+ setSearchQuery(e.key);
1068
+ }
1069
+ }, [isSearchModeActive, isSearchMode, setSearchQuery]);
1070
+ const handleToolSelect = import_react6.useCallback((selectedValue, tab) => {
1071
+ const { rulesByKey } = getRulesOptions(tab);
1072
+ if (selectedValue === "add-new-rule") {
1073
+ setAddingRuleToTab(tab);
1074
+ return;
1075
+ } else {
1076
+ setSelectedRule(rulesByKey.get(selectedValue));
1077
+ return;
1078
+ }
1079
+ }, [getRulesOptions]);
1080
+ const handleRuleInputCancel = import_react6.useCallback(() => {
1081
+ setAddingRuleToTab(null);
1082
+ }, []);
1083
+ const handleRuleInputSubmit = import_react6.useCallback((ruleValue, ruleBehavior) => {
1084
+ setValidatedRule({ ruleValue, ruleBehavior });
1085
+ setAddingRuleToTab(null);
1086
+ }, []);
1087
+ const handleAddRulesSuccess = import_react6.useCallback((rules, unreachable) => {
1088
+ setValidatedRule(null);
1089
+ for (const rule of rules) {
1090
+ setChanges((prev) => [
1091
+ ...prev,
1092
+ `Added ${rule.ruleBehavior} rule ${source_default.bold(permissionRuleValueToString(rule.ruleValue))}`
1093
+ ]);
1094
+ }
1095
+ if (unreachable && unreachable.length > 0) {
1096
+ for (const u of unreachable) {
1097
+ const severity = u.shadowType === "deny" ? "blocked" : "shadowed";
1098
+ setChanges((prev) => [
1099
+ ...prev,
1100
+ source_default.yellow(`${figures_default.warning} Warning: ${permissionRuleValueToString(u.rule.ruleValue)} is ${severity}`),
1101
+ source_default.dim(` ${u.reason}`),
1102
+ source_default.dim(` Fix: ${u.fix}`)
1103
+ ]);
1104
+ }
1105
+ }
1106
+ }, []);
1107
+ const handleAddRuleCancel = import_react6.useCallback(() => {
1108
+ setValidatedRule(null);
1109
+ }, []);
1110
+ const handleRequestAddDirectory = import_react6.useCallback(() => setIsAddingWorkspaceDirectory(true), []);
1111
+ const handleRequestRemoveDirectory = import_react6.useCallback((path) => setRemovingDirectory(path), []);
1112
+ const handleRulesCancel = import_react6.useCallback(() => {
1113
+ const s = denialStateRef.current;
1114
+ const denialsFor = (set) => Array.from(set).map((idx) => s.denials[idx]).filter((d) => d !== undefined);
1115
+ const retryDenials = denialsFor(s.retry);
1116
+ if (retryDenials.length > 0) {
1117
+ const commands = retryDenials.map((d) => d.display);
1118
+ onRetryDenials?.(commands);
1119
+ onExit(undefined, {
1120
+ shouldQuery: true,
1121
+ metaMessages: [
1122
+ `Permission granted for: ${commands.join(", ")}. You may now retry ${commands.length === 1 ? "this command" : "these commands"} if you would like.`
1123
+ ]
1124
+ });
1125
+ return;
1126
+ }
1127
+ const approvedDenials = denialsFor(s.approved);
1128
+ if (approvedDenials.length > 0 || changes.length > 0) {
1129
+ const approvedMsg = approvedDenials.length > 0 ? [
1130
+ `Approved ${approvedDenials.map((d) => source_default.bold(d.display)).join(", ")}`
1131
+ ] : [];
1132
+ onExit([...approvedMsg, ...changes].join(`
1133
+ `));
1134
+ } else {
1135
+ onExit("Permissions dialog dismissed", {
1136
+ display: "system"
1137
+ });
1138
+ }
1139
+ }, [changes, onExit, onRetryDenials]);
1140
+ useKeybinding("confirm:no", handleRulesCancel, {
1141
+ context: "Settings",
1142
+ isActive: isSearchModeActive && !isSearchMode
1143
+ });
1144
+ const handleDeleteRule = () => {
1145
+ if (!selectedRule)
1146
+ return;
1147
+ const { options } = getRulesOptions(selectedRule.ruleBehavior);
1148
+ const selectedKey = jsonStringify(selectedRule);
1149
+ const ruleKeys = options.filter((opt) => opt.value !== "add-new-rule").map((opt) => opt.value);
1150
+ const currentIndex = ruleKeys.indexOf(selectedKey);
1151
+ let nextFocusKey;
1152
+ if (currentIndex !== -1) {
1153
+ if (currentIndex < ruleKeys.length - 1) {
1154
+ nextFocusKey = ruleKeys[currentIndex + 1];
1155
+ } else if (currentIndex > 0) {
1156
+ nextFocusKey = ruleKeys[currentIndex - 1];
1157
+ }
1158
+ }
1159
+ setLastFocusedRuleKey(nextFocusKey);
1160
+ deletePermissionRule({
1161
+ rule: selectedRule,
1162
+ initialContext: toolPermissionContext,
1163
+ setToolPermissionContext(toolPermissionContext2) {
1164
+ setAppState((prev) => ({
1165
+ ...prev,
1166
+ toolPermissionContext: toolPermissionContext2
1167
+ }));
1168
+ }
1169
+ });
1170
+ setChanges((prev) => [
1171
+ ...prev,
1172
+ `Deleted ${selectedRule.ruleBehavior} rule ${source_default.bold(permissionRuleValueToString(selectedRule.ruleValue))}`
1173
+ ]);
1174
+ setSelectedRule(undefined);
1175
+ };
1176
+ if (selectedRule) {
1177
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(RuleDetails, {
1178
+ rule: selectedRule,
1179
+ onDelete: handleDeleteRule,
1180
+ onCancel: () => setSelectedRule(undefined)
1181
+ }, undefined, false, undefined, this);
1182
+ }
1183
+ if (addingRuleToTab && addingRuleToTab !== "workspace" && addingRuleToTab !== "recent") {
1184
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(PermissionRuleInput, {
1185
+ onCancel: handleRuleInputCancel,
1186
+ onSubmit: handleRuleInputSubmit,
1187
+ ruleBehavior: addingRuleToTab
1188
+ }, undefined, false, undefined, this);
1189
+ }
1190
+ if (validatedRule) {
1191
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(AddPermissionRules, {
1192
+ onAddRules: handleAddRulesSuccess,
1193
+ onCancel: handleAddRuleCancel,
1194
+ ruleValues: [validatedRule.ruleValue],
1195
+ ruleBehavior: validatedRule.ruleBehavior,
1196
+ initialContext: toolPermissionContext,
1197
+ setToolPermissionContext: (toolPermissionContext2) => {
1198
+ setAppState((prev) => ({
1199
+ ...prev,
1200
+ toolPermissionContext: toolPermissionContext2
1201
+ }));
1202
+ }
1203
+ }, undefined, false, undefined, this);
1204
+ }
1205
+ if (isAddingWorkspaceDirectory) {
1206
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(AddWorkspaceDirectory, {
1207
+ onAddDirectory: (path, remember) => {
1208
+ const destination = remember ? "localSettings" : "session";
1209
+ const permissionUpdate = {
1210
+ type: "addDirectories",
1211
+ directories: [path],
1212
+ destination
1213
+ };
1214
+ const updatedContext = applyPermissionUpdate(toolPermissionContext, permissionUpdate);
1215
+ setAppState((prev) => ({
1216
+ ...prev,
1217
+ toolPermissionContext: updatedContext
1218
+ }));
1219
+ if (remember) {
1220
+ persistPermissionUpdate(permissionUpdate);
1221
+ }
1222
+ setChanges((prev) => [
1223
+ ...prev,
1224
+ `Added directory ${source_default.bold(path)} to workspace${remember ? " and saved to local settings" : " for this session"}`
1225
+ ]);
1226
+ setIsAddingWorkspaceDirectory(false);
1227
+ },
1228
+ onCancel: () => setIsAddingWorkspaceDirectory(false),
1229
+ permissionContext: toolPermissionContext
1230
+ }, undefined, false, undefined, this);
1231
+ }
1232
+ if (removingDirectory) {
1233
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(RemoveWorkspaceDirectory, {
1234
+ directoryPath: removingDirectory,
1235
+ onRemove: () => {
1236
+ setChanges((prev) => [
1237
+ ...prev,
1238
+ `Removed directory ${source_default.bold(removingDirectory)} from workspace`
1239
+ ]);
1240
+ setRemovingDirectory(null);
1241
+ },
1242
+ onCancel: () => setRemovingDirectory(null),
1243
+ permissionContext: toolPermissionContext,
1244
+ setPermissionContext: (toolPermissionContext2) => {
1245
+ setAppState((prev) => ({
1246
+ ...prev,
1247
+ toolPermissionContext: toolPermissionContext2
1248
+ }));
1249
+ }
1250
+ }, undefined, false, undefined, this);
1251
+ }
1252
+ const sharedRulesProps = {
1253
+ searchQuery,
1254
+ isSearchMode,
1255
+ isFocused: isTerminalFocused,
1256
+ onCancel: handleRulesCancel,
1257
+ lastFocusedRuleKey,
1258
+ cursorOffset: searchCursorOffset,
1259
+ getRulesOptions,
1260
+ handleToolSelect,
1261
+ onHeaderFocusChange: handleHeaderFocusChange
1262
+ };
1263
+ const isHidden = !!selectedRule || !!addingRuleToTab || !!validatedRule || isAddingWorkspaceDirectory || !!removingDirectory;
1264
+ return /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedBox_default, {
1265
+ flexDirection: "column",
1266
+ onKeyDown: handleKeyDown,
1267
+ children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Pane, {
1268
+ color: "permission",
1269
+ children: [
1270
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tabs, {
1271
+ title: "Permissions:",
1272
+ color: "permission",
1273
+ defaultTab,
1274
+ hidden: isHidden,
1275
+ initialHeaderFocused: !hasDenials,
1276
+ navFromContent: !isSearchMode,
1277
+ children: [
1278
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
1279
+ id: "recent",
1280
+ title: "Recently denied",
1281
+ children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(RecentDenialsTab, {
1282
+ onHeaderFocusChange: handleHeaderFocusChange,
1283
+ onStateChange: handleDenialStateChange
1284
+ }, undefined, false, undefined, this)
1285
+ }, undefined, false, undefined, this),
1286
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
1287
+ id: "allow",
1288
+ title: "Allow",
1289
+ children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(PermissionRulesTab, {
1290
+ tab: "allow",
1291
+ ...sharedRulesProps
1292
+ }, undefined, false, undefined, this)
1293
+ }, undefined, false, undefined, this),
1294
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
1295
+ id: "ask",
1296
+ title: "Ask",
1297
+ children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(PermissionRulesTab, {
1298
+ tab: "ask",
1299
+ ...sharedRulesProps
1300
+ }, undefined, false, undefined, this)
1301
+ }, undefined, false, undefined, this),
1302
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
1303
+ id: "deny",
1304
+ title: "Deny",
1305
+ children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(PermissionRulesTab, {
1306
+ tab: "deny",
1307
+ ...sharedRulesProps
1308
+ }, undefined, false, undefined, this)
1309
+ }, undefined, false, undefined, this),
1310
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(Tab, {
1311
+ id: "workspace",
1312
+ title: "Workspace",
1313
+ children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedBox_default, {
1314
+ flexDirection: "column",
1315
+ children: [
1316
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
1317
+ children: "Claude Code can read files in the workspace, and make edits when auto-accept edits is on."
1318
+ }, undefined, false, undefined, this),
1319
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(WorkspaceTab, {
1320
+ onExit,
1321
+ toolPermissionContext,
1322
+ onRequestAddDirectory: handleRequestAddDirectory,
1323
+ onRequestRemoveDirectory: handleRequestRemoveDirectory,
1324
+ onHeaderFocusChange: handleHeaderFocusChange
1325
+ }, undefined, false, undefined, this)
1326
+ ]
1327
+ }, undefined, true, undefined, this)
1328
+ }, undefined, false, undefined, this)
1329
+ ]
1330
+ }, undefined, true, undefined, this),
1331
+ /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedBox_default, {
1332
+ marginTop: 1,
1333
+ paddingLeft: 1,
1334
+ children: /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(ThemedText, {
1335
+ dimColor: true,
1336
+ children: exitState.pending ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
1337
+ children: [
1338
+ "Press ",
1339
+ exitState.keyName,
1340
+ " again to exit"
1341
+ ]
1342
+ }, undefined, true, undefined, this) : headerFocused ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
1343
+ children: "\u2190/\u2192 tab switch \xB7 \u2193 return \xB7 Esc cancel"
1344
+ }, undefined, false, undefined, this) : isSearchMode ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
1345
+ children: "Type to filter \xB7 Enter/\u2193 select \xB7 \u2191 tabs \xB7 Esc clear"
1346
+ }, undefined, false, undefined, this) : hasDenials && defaultTab === "recent" ? /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
1347
+ children: "Enter approve \xB7 r retry \xB7 \u2191\u2193 navigate \xB7 \u2190/\u2192 switch \xB7 Esc cancel"
1348
+ }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime7.jsxDEV(jsx_dev_runtime7.Fragment, {
1349
+ children: "\u2191\u2193 navigate \xB7 Enter select \xB7 Type to search \xB7 \u2190/\u2192 switch \xB7 Esc cancel"
1350
+ }, undefined, false, undefined, this)
1351
+ }, undefined, false, undefined, this)
1352
+ }, undefined, false, undefined, this)
1353
+ ]
1354
+ }, undefined, true, undefined, this)
1355
+ }, undefined, false, undefined, this);
1356
+ }
1357
+ var import_react6, jsx_dev_runtime7;
1358
+ var init_PermissionRuleList = __esm(() => {
1359
+ init_source();
1360
+ init_figures();
1361
+ init_AppState();
1362
+ init_PermissionUpdate();
1363
+ init_select();
1364
+ init_useExitOnCtrlCDWithKeybindings();
1365
+ init_useSearchInput();
1366
+ init_src();
1367
+ init_useKeybinding();
1368
+ init_autoModeDenials();
1369
+ init_permissionRuleParser();
1370
+ init_permissions();
1371
+ init_slowOperations();
1372
+ init_src();
1373
+ init_SearchBox();
1374
+ init_AddPermissionRules();
1375
+ init_AddWorkspaceDirectory();
1376
+ init_PermissionRuleDescription();
1377
+ init_PermissionRuleInput();
1378
+ init_RecentDenialsTab();
1379
+ init_RemoveWorkspaceDirectory();
1380
+ init_WorkspaceTab();
1381
+ import_react6 = __toESM(require_react(), 1);
1382
+ jsx_dev_runtime7 = __toESM(require_jsx_dev_runtime(), 1);
1383
+ });
1384
+
1385
+ // src/commands/permissions/permissions.tsx
1386
+ var jsx_dev_runtime8, call = async (onDone, context) => {
1387
+ return /* @__PURE__ */ jsx_dev_runtime8.jsxDEV(PermissionRuleList, {
1388
+ onExit: onDone,
1389
+ onRetryDenials: (commands) => {
1390
+ context.setMessages((prev) => [
1391
+ ...prev,
1392
+ createPermissionRetryMessage(commands)
1393
+ ]);
1394
+ }
1395
+ }, undefined, false, undefined, this);
1396
+ };
1397
+ var init_permissions2 = __esm(() => {
1398
+ init_PermissionRuleList();
1399
+ init_messages();
1400
+ jsx_dev_runtime8 = __toESM(require_jsx_dev_runtime(), 1);
1401
+ });
1402
+ init_permissions2();
1403
+
1404
+ export {
1405
+ call
1406
+ };