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,1175 @@
1
+ // @bun
2
+ import {
3
+ Select,
4
+ getAllHooks,
5
+ getHookDisplayText,
6
+ getTools,
7
+ hookSourceDescriptionDisplayString,
8
+ hookSourceHeaderDisplayString,
9
+ hookSourceInlineDisplayString,
10
+ init_AppState,
11
+ init_hooksSettings,
12
+ init_select,
13
+ init_tools1 as init_tools,
14
+ init_useSettingsChange,
15
+ sortMatchersByPriority,
16
+ useAppState,
17
+ useAppStateStore,
18
+ useSettingsChange
19
+ } from "./chunk-gs5eeqmc.js";
20
+ import"./chunk-4nspekjp.js";
21
+ import"./chunk-43h8sw5x.js";
22
+ import"./chunk-zejm280k.js";
23
+ import"./chunk-var1et7e.js";
24
+ import"./chunk-ehtwnxpg.js";
25
+ import"./chunk-m2mzpskw.js";
26
+ import"./chunk-365zvqv3.js";
27
+ import"./chunk-rqvqqrpg.js";
28
+ import"./chunk-5gbqknz6.js";
29
+ import"./chunk-2gzv8nrw.js";
30
+ import"./chunk-cgfdkzhb.js";
31
+ import"./chunk-bxcfz5gy.js";
32
+ import"./chunk-jbt0jgtc.js";
33
+ import"./chunk-ha5d5zfj.js";
34
+ import"./chunk-28az45r7.js";
35
+ import"./chunk-bhdt6k7w.js";
36
+ import"./chunk-f6rbj3gz.js";
37
+ import"./chunk-axj46c2c.js";
38
+ import"./chunk-5pxygepg.js";
39
+ import"./chunk-j5bth84e.js";
40
+ import"./chunk-qndzvkdx.js";
41
+ import"./chunk-5kkvfgzs.js";
42
+ import {
43
+ init_useKeybinding
44
+ } from "./chunk-0jzdwbdc.js";
45
+ import"./chunk-ps49ymvj.js";
46
+ import"./chunk-p7vkh4wx.js";
47
+ import"./chunk-cmcbatgz.js";
48
+ import"./chunk-3b25ycrx.js";
49
+ import"./chunk-yx64nmbh.js";
50
+ import"./chunk-cpwe0yw7.js";
51
+ import"./chunk-y78t50v0.js";
52
+ import"./chunk-4jm600zv.js";
53
+ import"./chunk-n8mpqdje.js";
54
+ import"./chunk-31nce7eh.js";
55
+ import"./chunk-rdvaan98.js";
56
+ import"./chunk-mx28h61f.js";
57
+ import"./chunk-f2k8b4nd.js";
58
+ import"./chunk-sk9xag9g.js";
59
+ import"./chunk-0fsdxz74.js";
60
+ import"./chunk-2qwgfjcj.js";
61
+ import"./chunk-chsyvavm.js";
62
+ import"./chunk-w92b262y.js";
63
+ import {
64
+ getSettingsForSource,
65
+ getSettings_DEPRECATED,
66
+ init_settings1 as init_settings,
67
+ init_stringUtils,
68
+ plural
69
+ } from "./chunk-a2aj2mtb.js";
70
+ import"./chunk-905d2hee.js";
71
+ import"./chunk-rkak3kjw.js";
72
+ import"./chunk-p2yv7m0g.js";
73
+ import"./chunk-1cwdhk7a.js";
74
+ import"./chunk-j9gxwbe3.js";
75
+ import"./chunk-64c1avct.js";
76
+ import"./chunk-qbrsmra3.js";
77
+ import"./chunk-hezj20qy.js";
78
+ import"./chunk-8g5pe1gr.js";
79
+ import"./chunk-4cp6193g.js";
80
+ import"./chunk-8g747a8x.js";
81
+ import"./chunk-d7886r6a.js";
82
+ import"./chunk-f5ma3nh5.js";
83
+ import"./chunk-qz2x630m.js";
84
+ import"./chunk-mzd6frw6.js";
85
+ import"./chunk-r2k2jy0y.js";
86
+ import"./chunk-3c25bcsw.js";
87
+ import"./chunk-2q39ej51.js";
88
+ import"./chunk-q82r31er.js";
89
+ import"./chunk-p2816w9z.js";
90
+ import"./chunk-v9smspw2.js";
91
+ import"./chunk-v1kzp02e.js";
92
+ import"./chunk-z4mgvsdj.js";
93
+ import"./chunk-crmjpsqe.js";
94
+ import {
95
+ Dialog,
96
+ Link,
97
+ ThemedBox_default,
98
+ ThemedText,
99
+ init_src,
100
+ useKeybinding
101
+ } from "./chunk-rvkvehat.js";
102
+ import {
103
+ require_jsx_dev_runtime,
104
+ require_react
105
+ } from "./chunk-g338npwr.js";
106
+ import {
107
+ init_analytics,
108
+ logEvent
109
+ } from "./chunk-f2mhrmww.js";
110
+ import"./chunk-0vkfrmqm.js";
111
+ import"./chunk-0xjaqda8.js";
112
+ import"./chunk-21z7acxh.js";
113
+ import"./chunk-rgbbtszq.js";
114
+ import"./chunk-1thgdca1.js";
115
+ import"./chunk-qnfx3qtx.js";
116
+ import"./chunk-yw79dz62.js";
117
+ import"./chunk-b81hd3m6.js";
118
+ import"./chunk-61ahbn23.js";
119
+ import"./chunk-8tnsngw2.js";
120
+ import"./chunk-edzkkadh.js";
121
+ import"./chunk-bwg7582d.js";
122
+ import"./chunk-5z28bqne.js";
123
+ import {
124
+ figures_default,
125
+ init_figures
126
+ } from "./chunk-qajrkk97.js";
127
+ import"./chunk-hcgkak1j.js";
128
+ import"./chunk-fbv4apne.js";
129
+ import"./chunk-z6e5jp2w.js";
130
+ import"./chunk-jaaxk89e.js";
131
+ import {
132
+ getRegisteredHooks,
133
+ init_state
134
+ } from "./chunk-h4b85amj.js";
135
+ import"./chunk-07069jq1.js";
136
+ import {
137
+ init_memoize,
138
+ memoize_default
139
+ } from "./chunk-vf612n57.js";
140
+ import"./chunk-d4mdda98.js";
141
+ import"./chunk-7wm5s02e.js";
142
+ import"./chunk-4g3v8y12.js";
143
+ import"./chunk-7739pg2c.js";
144
+ import"./chunk-nh3cd07f.js";
145
+ import"./chunk-8pn8tvgg.js";
146
+ import"./chunk-netzwgv1.js";
147
+ import {
148
+ __esm,
149
+ __toESM
150
+ } from "./chunk-qp2qdcda.js";
151
+
152
+ // src/utils/hooks/hooksConfigManager.ts
153
+ function groupHooksByEventAndMatcher(appState, toolNames) {
154
+ const grouped = {
155
+ PreToolUse: {},
156
+ PostToolUse: {},
157
+ PostToolUseFailure: {},
158
+ PermissionDenied: {},
159
+ Notification: {},
160
+ UserPromptSubmit: {},
161
+ SessionStart: {},
162
+ SessionEnd: {},
163
+ Stop: {},
164
+ StopFailure: {},
165
+ SubagentStart: {},
166
+ SubagentStop: {},
167
+ PreCompact: {},
168
+ PostCompact: {},
169
+ PermissionRequest: {},
170
+ Setup: {},
171
+ TeammateIdle: {},
172
+ TaskCreated: {},
173
+ TaskCompleted: {},
174
+ Elicitation: {},
175
+ ElicitationResult: {},
176
+ ConfigChange: {},
177
+ WorktreeCreate: {},
178
+ WorktreeRemove: {},
179
+ InstructionsLoaded: {},
180
+ CwdChanged: {},
181
+ FileChanged: {}
182
+ };
183
+ const metadata = getHookEventMetadata(toolNames);
184
+ getAllHooks(appState).forEach((hook) => {
185
+ const eventGroup = grouped[hook.event];
186
+ if (eventGroup) {
187
+ const matcherKey = metadata[hook.event].matcherMetadata !== undefined ? hook.matcher || "" : "";
188
+ if (!eventGroup[matcherKey]) {
189
+ eventGroup[matcherKey] = [];
190
+ }
191
+ eventGroup[matcherKey].push(hook);
192
+ }
193
+ });
194
+ const registeredHooks = getRegisteredHooks();
195
+ if (registeredHooks) {
196
+ for (const [event, matchers] of Object.entries(registeredHooks)) {
197
+ const hookEvent = event;
198
+ const eventGroup = grouped[hookEvent];
199
+ if (!eventGroup)
200
+ continue;
201
+ for (const matcher of matchers) {
202
+ const matcherKey = matcher.matcher || "";
203
+ if ("pluginRoot" in matcher) {
204
+ eventGroup[matcherKey] ??= [];
205
+ for (const hook of matcher.hooks) {
206
+ eventGroup[matcherKey].push({
207
+ event: hookEvent,
208
+ config: hook,
209
+ matcher: matcher.matcher,
210
+ source: "pluginHook",
211
+ pluginName: matcher.pluginId
212
+ });
213
+ }
214
+ } else if (process.env.USER_TYPE === "ant") {
215
+ eventGroup[matcherKey] ??= [];
216
+ for (const _hook of matcher.hooks) {
217
+ eventGroup[matcherKey].push({
218
+ event: hookEvent,
219
+ config: {
220
+ type: "command",
221
+ command: "[ANT-ONLY] Built-in Hook"
222
+ },
223
+ matcher: matcher.matcher,
224
+ source: "builtinHook"
225
+ });
226
+ }
227
+ }
228
+ }
229
+ }
230
+ }
231
+ return grouped;
232
+ }
233
+ function getSortedMatchersForEvent(hooksByEventAndMatcher, event) {
234
+ const matchers = Object.keys(hooksByEventAndMatcher[event] || {});
235
+ return sortMatchersByPriority(matchers, hooksByEventAndMatcher, event);
236
+ }
237
+ function getHooksForMatcher(hooksByEventAndMatcher, event, matcher) {
238
+ const matcherKey = matcher ?? "";
239
+ return hooksByEventAndMatcher[event]?.[matcherKey] ?? [];
240
+ }
241
+ function getMatcherMetadata(event, toolNames) {
242
+ return getHookEventMetadata(toolNames)[event].matcherMetadata;
243
+ }
244
+ var getHookEventMetadata;
245
+ var init_hooksConfigManager = __esm(() => {
246
+ init_memoize();
247
+ init_state();
248
+ init_hooksSettings();
249
+ getHookEventMetadata = memoize_default(function(toolNames) {
250
+ return {
251
+ PreToolUse: {
252
+ summary: "Before tool execution",
253
+ description: `Input to command is JSON of tool call arguments.
254
+ Exit code 0 - stdout/stderr not shown
255
+ Exit code 2 - show stderr to model and block tool call
256
+ Other exit codes - show stderr to user only but continue with tool call`,
257
+ matcherMetadata: {
258
+ fieldToMatch: "tool_name",
259
+ values: toolNames
260
+ }
261
+ },
262
+ PostToolUse: {
263
+ summary: "After tool execution",
264
+ description: `Input to command is JSON with fields "inputs" (tool call arguments) and "response" (tool call response).
265
+ Exit code 0 - stdout shown in transcript mode (ctrl+o)
266
+ Exit code 2 - show stderr to model immediately
267
+ Other exit codes - show stderr to user only`,
268
+ matcherMetadata: {
269
+ fieldToMatch: "tool_name",
270
+ values: toolNames
271
+ }
272
+ },
273
+ PostToolUseFailure: {
274
+ summary: "After tool execution fails",
275
+ description: `Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.
276
+ Exit code 0 - stdout shown in transcript mode (ctrl+o)
277
+ Exit code 2 - show stderr to model immediately
278
+ Other exit codes - show stderr to user only`,
279
+ matcherMetadata: {
280
+ fieldToMatch: "tool_name",
281
+ values: toolNames
282
+ }
283
+ },
284
+ PermissionDenied: {
285
+ summary: "After auto mode classifier denies a tool call",
286
+ description: `Input to command is JSON with tool_name, tool_input, tool_use_id, and reason.
287
+ Return {"hookSpecificOutput":{"hookEventName":"PermissionDenied","retry":true}} to tell the model it may retry.
288
+ Exit code 0 - stdout shown in transcript mode (ctrl+o)
289
+ Other exit codes - show stderr to user only`,
290
+ matcherMetadata: {
291
+ fieldToMatch: "tool_name",
292
+ values: toolNames
293
+ }
294
+ },
295
+ Notification: {
296
+ summary: "When notifications are sent",
297
+ description: `Input to command is JSON with notification message and type.
298
+ Exit code 0 - stdout/stderr not shown
299
+ Other exit codes - show stderr to user only`,
300
+ matcherMetadata: {
301
+ fieldToMatch: "notification_type",
302
+ values: [
303
+ "permission_prompt",
304
+ "idle_prompt",
305
+ "auth_success",
306
+ "elicitation_dialog",
307
+ "elicitation_complete",
308
+ "elicitation_response"
309
+ ]
310
+ }
311
+ },
312
+ UserPromptSubmit: {
313
+ summary: "When the user submits a prompt",
314
+ description: `Input to command is JSON with original user prompt text.
315
+ Exit code 0 - stdout shown to Claude
316
+ Exit code 2 - block processing, erase original prompt, and show stderr to user only
317
+ Other exit codes - show stderr to user only`
318
+ },
319
+ SessionStart: {
320
+ summary: "When a new session is started",
321
+ description: `Input to command is JSON with session start source.
322
+ Exit code 0 - stdout shown to Claude
323
+ Blocking errors are ignored
324
+ Other exit codes - show stderr to user only`,
325
+ matcherMetadata: {
326
+ fieldToMatch: "source",
327
+ values: ["startup", "resume", "clear", "compact"]
328
+ }
329
+ },
330
+ Stop: {
331
+ summary: "Right before Claude concludes its response",
332
+ description: `Exit code 0 - stdout/stderr not shown
333
+ Exit code 2 - show stderr to model and continue conversation
334
+ Other exit codes - show stderr to user only`
335
+ },
336
+ StopFailure: {
337
+ summary: "When the turn ends due to an API error",
338
+ description: "Fires instead of Stop when an API error (rate limit, auth failure, etc.) ended the turn. Fire-and-forget \u2014 hook output and exit codes are ignored.",
339
+ matcherMetadata: {
340
+ fieldToMatch: "error",
341
+ values: [
342
+ "rate_limit",
343
+ "authentication_failed",
344
+ "billing_error",
345
+ "invalid_request",
346
+ "server_error",
347
+ "max_output_tokens",
348
+ "unknown"
349
+ ]
350
+ }
351
+ },
352
+ SubagentStart: {
353
+ summary: "When a subagent (Agent tool call) is started",
354
+ description: `Input to command is JSON with agent_id and agent_type.
355
+ Exit code 0 - stdout shown to subagent
356
+ Blocking errors are ignored
357
+ Other exit codes - show stderr to user only`,
358
+ matcherMetadata: {
359
+ fieldToMatch: "agent_type",
360
+ values: []
361
+ }
362
+ },
363
+ SubagentStop: {
364
+ summary: "Right before a subagent (Agent tool call) concludes its response",
365
+ description: `Input to command is JSON with agent_id, agent_type, and agent_transcript_path.
366
+ Exit code 0 - stdout/stderr not shown
367
+ Exit code 2 - show stderr to subagent and continue having it run
368
+ Other exit codes - show stderr to user only`,
369
+ matcherMetadata: {
370
+ fieldToMatch: "agent_type",
371
+ values: []
372
+ }
373
+ },
374
+ PreCompact: {
375
+ summary: "Before conversation compaction",
376
+ description: `Input to command is JSON with compaction details.
377
+ Exit code 0 - stdout appended as custom compact instructions
378
+ Exit code 2 - block compaction
379
+ Other exit codes - show stderr to user only but continue with compaction`,
380
+ matcherMetadata: {
381
+ fieldToMatch: "trigger",
382
+ values: ["manual", "auto"]
383
+ }
384
+ },
385
+ PostCompact: {
386
+ summary: "After conversation compaction",
387
+ description: `Input to command is JSON with compaction details and the summary.
388
+ Exit code 0 - stdout shown to user
389
+ Other exit codes - show stderr to user only`,
390
+ matcherMetadata: {
391
+ fieldToMatch: "trigger",
392
+ values: ["manual", "auto"]
393
+ }
394
+ },
395
+ SessionEnd: {
396
+ summary: "When a session is ending",
397
+ description: `Input to command is JSON with session end reason.
398
+ Exit code 0 - command completes successfully
399
+ Other exit codes - show stderr to user only`,
400
+ matcherMetadata: {
401
+ fieldToMatch: "reason",
402
+ values: ["clear", "logout", "prompt_input_exit", "other"]
403
+ }
404
+ },
405
+ PermissionRequest: {
406
+ summary: "When a permission dialog is displayed",
407
+ description: `Input to command is JSON with tool_name, tool_input, and tool_use_id.
408
+ Output JSON with hookSpecificOutput containing decision to allow or deny.
409
+ Exit code 0 - use hook decision if provided
410
+ Other exit codes - show stderr to user only`,
411
+ matcherMetadata: {
412
+ fieldToMatch: "tool_name",
413
+ values: toolNames
414
+ }
415
+ },
416
+ Setup: {
417
+ summary: "Repo setup hooks for init and maintenance",
418
+ description: `Input to command is JSON with trigger (init or maintenance).
419
+ Exit code 0 - stdout shown to Claude
420
+ Blocking errors are ignored
421
+ Other exit codes - show stderr to user only`,
422
+ matcherMetadata: {
423
+ fieldToMatch: "trigger",
424
+ values: ["init", "maintenance"]
425
+ }
426
+ },
427
+ TeammateIdle: {
428
+ summary: "When a teammate is about to go idle",
429
+ description: `Input to command is JSON with teammate_name and team_name.
430
+ Exit code 0 - stdout/stderr not shown
431
+ Exit code 2 - show stderr to teammate and prevent idle (teammate continues working)
432
+ Other exit codes - show stderr to user only`
433
+ },
434
+ TaskCreated: {
435
+ summary: "When a task is being created",
436
+ description: `Input to command is JSON with task_id, task_subject, task_description, teammate_name, and team_name.
437
+ Exit code 0 - stdout/stderr not shown
438
+ Exit code 2 - show stderr to model and prevent task creation
439
+ Other exit codes - show stderr to user only`
440
+ },
441
+ TaskCompleted: {
442
+ summary: "When a task is being marked as completed",
443
+ description: `Input to command is JSON with task_id, task_subject, task_description, teammate_name, and team_name.
444
+ Exit code 0 - stdout/stderr not shown
445
+ Exit code 2 - show stderr to model and prevent task completion
446
+ Other exit codes - show stderr to user only`
447
+ },
448
+ Elicitation: {
449
+ summary: "When an MCP server requests user input (elicitation)",
450
+ description: `Input to command is JSON with mcp_server_name, message, and requested_schema.
451
+ Output JSON with hookSpecificOutput containing action (accept/decline/cancel) and optional content.
452
+ Exit code 0 - use hook response if provided
453
+ Exit code 2 - deny the elicitation
454
+ Other exit codes - show stderr to user only`,
455
+ matcherMetadata: {
456
+ fieldToMatch: "mcp_server_name",
457
+ values: []
458
+ }
459
+ },
460
+ ElicitationResult: {
461
+ summary: "After a user responds to an MCP elicitation",
462
+ description: `Input to command is JSON with mcp_server_name, action, content, mode, and elicitation_id.
463
+ Output JSON with hookSpecificOutput containing optional action and content to override the response.
464
+ Exit code 0 - use hook response if provided
465
+ Exit code 2 - block the response (action becomes decline)
466
+ Other exit codes - show stderr to user only`,
467
+ matcherMetadata: {
468
+ fieldToMatch: "mcp_server_name",
469
+ values: []
470
+ }
471
+ },
472
+ ConfigChange: {
473
+ summary: "When configuration files change during a session",
474
+ description: `Input to command is JSON with source (user_settings, project_settings, local_settings, policy_settings, skills) and file_path.
475
+ Exit code 0 - allow the change
476
+ Exit code 2 - block the change from being applied to the session
477
+ Other exit codes - show stderr to user only`,
478
+ matcherMetadata: {
479
+ fieldToMatch: "source",
480
+ values: [
481
+ "user_settings",
482
+ "project_settings",
483
+ "local_settings",
484
+ "policy_settings",
485
+ "skills"
486
+ ]
487
+ }
488
+ },
489
+ InstructionsLoaded: {
490
+ summary: "When an instruction file (CLAUDE.md or rule) is loaded",
491
+ description: `Input to command is JSON with file_path, memory_type (User, Project, Local, Managed), load_reason (session_start, nested_traversal, path_glob_match, include, compact), globs (optional \u2014 the paths: frontmatter patterns that matched), trigger_file_path (optional \u2014 the file Claude touched that caused the load), and parent_file_path (optional \u2014 the file that @-included this one).
492
+ Exit code 0 - command completes successfully
493
+ Other exit codes - show stderr to user only
494
+ This hook is observability-only and does not support blocking.`,
495
+ matcherMetadata: {
496
+ fieldToMatch: "load_reason",
497
+ values: [
498
+ "session_start",
499
+ "nested_traversal",
500
+ "path_glob_match",
501
+ "include",
502
+ "compact"
503
+ ]
504
+ }
505
+ },
506
+ WorktreeCreate: {
507
+ summary: "Create an isolated worktree for VCS-agnostic isolation",
508
+ description: `Input to command is JSON with name (suggested worktree slug).
509
+ Stdout should contain the absolute path to the created worktree directory.
510
+ Exit code 0 - worktree created successfully
511
+ Other exit codes - worktree creation failed`
512
+ },
513
+ WorktreeRemove: {
514
+ summary: "Remove a previously created worktree",
515
+ description: `Input to command is JSON with worktree_path (absolute path to worktree).
516
+ Exit code 0 - worktree removed successfully
517
+ Other exit codes - show stderr to user only`
518
+ },
519
+ CwdChanged: {
520
+ summary: "After the working directory changes",
521
+ description: `Input to command is JSON with old_cwd and new_cwd.
522
+ CLAUDE_ENV_FILE is set \u2014 write bash exports there to apply env to subsequent BashTool commands.
523
+ Hook output can include hookSpecificOutput.watchPaths (array of absolute paths) to register with the FileChanged watcher.
524
+ Exit code 0 - command completes successfully
525
+ Other exit codes - show stderr to user only`
526
+ },
527
+ FileChanged: {
528
+ summary: "When a watched file changes",
529
+ description: `Input to command is JSON with file_path and event (change, add, unlink).
530
+ CLAUDE_ENV_FILE is set \u2014 write bash exports there to apply env to subsequent BashTool commands.
531
+ The matcher field specifies filenames to watch in the current directory (e.g. ".envrc|.env").
532
+ Hook output can include hookSpecificOutput.watchPaths (array of absolute paths) to dynamically update the watch list.
533
+ Exit code 0 - command completes successfully
534
+ Other exit codes - show stderr to user only`
535
+ }
536
+ };
537
+ }, (toolNames) => toolNames.slice().sort().join(","));
538
+ });
539
+
540
+ // src/components/hooks/SelectEventMode.tsx
541
+ function SelectEventMode({
542
+ hookEventMetadata,
543
+ hooksByEvent,
544
+ totalHooksCount,
545
+ restrictedByPolicy,
546
+ onSelectEvent,
547
+ onCancel
548
+ }) {
549
+ const subtitle = `${totalHooksCount} ${plural(totalHooksCount, "hook")} configured`;
550
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Dialog, {
551
+ title: "Hooks",
552
+ subtitle,
553
+ onCancel,
554
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
555
+ flexDirection: "column",
556
+ gap: 1,
557
+ children: [
558
+ restrictedByPolicy && /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
559
+ flexDirection: "column",
560
+ children: [
561
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
562
+ color: "suggestion",
563
+ children: [
564
+ figures_default.info,
565
+ " Hooks Restricted by Policy"
566
+ ]
567
+ }, undefined, true, undefined, this),
568
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
569
+ dimColor: true,
570
+ children: "Only hooks from managed settings can run. User-defined hooks from ~/.claude/settings.json, .claude/settings.json, and .claude/settings.local.json are blocked."
571
+ }, undefined, false, undefined, this)
572
+ ]
573
+ }, undefined, true, undefined, this),
574
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
575
+ flexDirection: "column",
576
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
577
+ dimColor: true,
578
+ children: [
579
+ figures_default.info,
580
+ " This menu is read-only. To add or modify hooks, edit settings.json directly or ask Claude.",
581
+ " ",
582
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Link, {
583
+ url: "https://code.claude.com/docs/en/hooks",
584
+ children: "Learn more"
585
+ }, undefined, false, undefined, this)
586
+ ]
587
+ }, undefined, true, undefined, this)
588
+ }, undefined, false, undefined, this),
589
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
590
+ flexDirection: "column",
591
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Select, {
592
+ onChange: (value) => {
593
+ onSelectEvent(value);
594
+ },
595
+ onCancel,
596
+ options: Object.entries(hookEventMetadata).map(([name, metadata]) => {
597
+ const count = hooksByEvent[name] || 0;
598
+ return {
599
+ label: count > 0 ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
600
+ children: [
601
+ name,
602
+ " ",
603
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
604
+ color: "suggestion",
605
+ children: [
606
+ "(",
607
+ count,
608
+ ")"
609
+ ]
610
+ }, undefined, true, undefined, this)
611
+ ]
612
+ }, undefined, true, undefined, this) : name,
613
+ value: name,
614
+ description: metadata.summary
615
+ };
616
+ })
617
+ }, undefined, false, undefined, this)
618
+ }, undefined, false, undefined, this)
619
+ ]
620
+ }, undefined, true, undefined, this)
621
+ }, undefined, false, undefined, this);
622
+ }
623
+ var jsx_dev_runtime;
624
+ var init_SelectEventMode = __esm(() => {
625
+ init_figures();
626
+ init_src();
627
+ init_stringUtils();
628
+ init_select();
629
+ init_src();
630
+ jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
631
+ });
632
+
633
+ // src/components/hooks/SelectHookMode.tsx
634
+ function SelectHookMode({
635
+ selectedEvent,
636
+ selectedMatcher,
637
+ hooksForSelectedMatcher,
638
+ hookEventMetadata,
639
+ onSelect,
640
+ onCancel
641
+ }) {
642
+ const title = hookEventMetadata.matcherMetadata !== undefined ? `${selectedEvent} - Matcher: ${selectedMatcher || "(all)"}` : selectedEvent;
643
+ if (hooksForSelectedMatcher.length === 0) {
644
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Dialog, {
645
+ title,
646
+ subtitle: hookEventMetadata.description,
647
+ onCancel,
648
+ inputGuide: () => /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
649
+ children: "Esc to go back"
650
+ }, undefined, false, undefined, this),
651
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
652
+ flexDirection: "column",
653
+ gap: 1,
654
+ children: [
655
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
656
+ dimColor: true,
657
+ children: "No hooks configured for this event."
658
+ }, undefined, false, undefined, this),
659
+ /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedText, {
660
+ dimColor: true,
661
+ children: "To add hooks, edit settings.json directly or ask Claude."
662
+ }, undefined, false, undefined, this)
663
+ ]
664
+ }, undefined, true, undefined, this)
665
+ }, undefined, false, undefined, this);
666
+ }
667
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Dialog, {
668
+ title,
669
+ subtitle: hookEventMetadata.description,
670
+ onCancel,
671
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(ThemedBox_default, {
672
+ flexDirection: "column",
673
+ children: /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(Select, {
674
+ options: hooksForSelectedMatcher.map((hook, index) => ({
675
+ label: `[${hook.config.type}] ${getHookDisplayText(hook.config)}`,
676
+ value: index.toString(),
677
+ description: hook.source === "pluginHook" && hook.pluginName ? `${hookSourceHeaderDisplayString(hook.source)} (${hook.pluginName})` : hookSourceHeaderDisplayString(hook.source)
678
+ })),
679
+ onChange: (value) => {
680
+ const index = parseInt(value, 10);
681
+ const hook = hooksForSelectedMatcher[index];
682
+ if (hook) {
683
+ onSelect(hook);
684
+ }
685
+ },
686
+ onCancel
687
+ }, undefined, false, undefined, this)
688
+ }, undefined, false, undefined, this)
689
+ }, undefined, false, undefined, this);
690
+ }
691
+ var jsx_dev_runtime2;
692
+ var init_SelectHookMode = __esm(() => {
693
+ init_src();
694
+ init_hooksSettings();
695
+ init_select();
696
+ init_src();
697
+ jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
698
+ });
699
+
700
+ // src/components/hooks/SelectMatcherMode.tsx
701
+ function SelectMatcherMode({
702
+ selectedEvent,
703
+ matchersForSelectedEvent,
704
+ hooksByEventAndMatcher,
705
+ eventDescription,
706
+ onSelect,
707
+ onCancel
708
+ }) {
709
+ const matchersWithSources = React.useMemo(() => {
710
+ return matchersForSelectedEvent.map((matcher) => {
711
+ const hooks = hooksByEventAndMatcher[selectedEvent]?.[matcher] || [];
712
+ const sources = Array.from(new Set(hooks.map((h) => h.source)));
713
+ return {
714
+ matcher,
715
+ sources,
716
+ hookCount: hooks.length
717
+ };
718
+ });
719
+ }, [matchersForSelectedEvent, hooksByEventAndMatcher, selectedEvent]);
720
+ if (matchersForSelectedEvent.length === 0) {
721
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Dialog, {
722
+ title: `${selectedEvent} - Matchers`,
723
+ subtitle: eventDescription,
724
+ onCancel,
725
+ inputGuide: () => /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
726
+ children: "Esc to go back"
727
+ }, undefined, false, undefined, this),
728
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
729
+ flexDirection: "column",
730
+ gap: 1,
731
+ children: [
732
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
733
+ dimColor: true,
734
+ children: "No hooks configured for this event."
735
+ }, undefined, false, undefined, this),
736
+ /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedText, {
737
+ dimColor: true,
738
+ children: "To add hooks, edit settings.json directly or ask Claude."
739
+ }, undefined, false, undefined, this)
740
+ ]
741
+ }, undefined, true, undefined, this)
742
+ }, undefined, false, undefined, this);
743
+ }
744
+ return /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Dialog, {
745
+ title: `${selectedEvent} - Matchers`,
746
+ subtitle: eventDescription,
747
+ onCancel,
748
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(ThemedBox_default, {
749
+ flexDirection: "column",
750
+ children: /* @__PURE__ */ jsx_dev_runtime3.jsxDEV(Select, {
751
+ options: matchersWithSources.map((item) => {
752
+ const sourceText = item.sources.map(hookSourceInlineDisplayString).join(", ");
753
+ const matcherLabel = item.matcher || "(all)";
754
+ return {
755
+ label: `[${sourceText}] ${matcherLabel}`,
756
+ value: item.matcher,
757
+ description: `${item.hookCount} ${plural(item.hookCount, "hook")}`
758
+ };
759
+ }),
760
+ onChange: (value) => {
761
+ onSelect(value);
762
+ },
763
+ onCancel
764
+ }, undefined, false, undefined, this)
765
+ }, undefined, false, undefined, this)
766
+ }, undefined, false, undefined, this);
767
+ }
768
+ var React, jsx_dev_runtime3;
769
+ var init_SelectMatcherMode = __esm(() => {
770
+ init_src();
771
+ init_hooksSettings();
772
+ init_stringUtils();
773
+ init_select();
774
+ init_src();
775
+ React = __toESM(require_react(), 1);
776
+ jsx_dev_runtime3 = __toESM(require_jsx_dev_runtime(), 1);
777
+ });
778
+
779
+ // src/components/hooks/ViewHookMode.tsx
780
+ function ViewHookMode({
781
+ selectedHook,
782
+ eventSupportsMatcher,
783
+ onCancel
784
+ }) {
785
+ return /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(Dialog, {
786
+ title: "Hook details",
787
+ onCancel,
788
+ inputGuide: () => /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
789
+ children: "Esc to go back"
790
+ }, undefined, false, undefined, this),
791
+ children: /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
792
+ flexDirection: "column",
793
+ gap: 1,
794
+ children: [
795
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
796
+ flexDirection: "column",
797
+ children: [
798
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
799
+ children: [
800
+ "Event: ",
801
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
802
+ bold: true,
803
+ children: selectedHook.event
804
+ }, undefined, false, undefined, this)
805
+ ]
806
+ }, undefined, true, undefined, this),
807
+ eventSupportsMatcher && /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
808
+ children: [
809
+ "Matcher: ",
810
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
811
+ bold: true,
812
+ children: selectedHook.matcher || "(all)"
813
+ }, undefined, false, undefined, this)
814
+ ]
815
+ }, undefined, true, undefined, this),
816
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
817
+ children: [
818
+ "Type: ",
819
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
820
+ bold: true,
821
+ children: selectedHook.config.type
822
+ }, undefined, false, undefined, this)
823
+ ]
824
+ }, undefined, true, undefined, this),
825
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
826
+ children: [
827
+ "Source:",
828
+ " ",
829
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
830
+ dimColor: true,
831
+ children: hookSourceDescriptionDisplayString(selectedHook.source)
832
+ }, undefined, false, undefined, this)
833
+ ]
834
+ }, undefined, true, undefined, this),
835
+ selectedHook.pluginName && /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
836
+ children: [
837
+ "Plugin: ",
838
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
839
+ dimColor: true,
840
+ children: selectedHook.pluginName
841
+ }, undefined, false, undefined, this)
842
+ ]
843
+ }, undefined, true, undefined, this)
844
+ ]
845
+ }, undefined, true, undefined, this),
846
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
847
+ flexDirection: "column",
848
+ children: [
849
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
850
+ dimColor: true,
851
+ children: [
852
+ getContentFieldLabel(selectedHook.config),
853
+ ":"
854
+ ]
855
+ }, undefined, true, undefined, this),
856
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedBox_default, {
857
+ borderStyle: "round",
858
+ borderDimColor: true,
859
+ paddingLeft: 1,
860
+ paddingRight: 1,
861
+ children: /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
862
+ children: getContentFieldValue(selectedHook.config)
863
+ }, undefined, false, undefined, this)
864
+ }, undefined, false, undefined, this)
865
+ ]
866
+ }, undefined, true, undefined, this),
867
+ "statusMessage" in selectedHook.config && selectedHook.config.statusMessage && /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
868
+ children: [
869
+ "Status message:",
870
+ " ",
871
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
872
+ dimColor: true,
873
+ children: selectedHook.config.statusMessage
874
+ }, undefined, false, undefined, this)
875
+ ]
876
+ }, undefined, true, undefined, this),
877
+ /* @__PURE__ */ jsx_dev_runtime4.jsxDEV(ThemedText, {
878
+ dimColor: true,
879
+ children: "To modify or remove this hook, edit settings.json directly or ask Claude to help."
880
+ }, undefined, false, undefined, this)
881
+ ]
882
+ }, undefined, true, undefined, this)
883
+ }, undefined, false, undefined, this);
884
+ }
885
+ function getContentFieldLabel(config) {
886
+ switch (config.type) {
887
+ case "command":
888
+ return "Command";
889
+ case "prompt":
890
+ return "Prompt";
891
+ case "agent":
892
+ return "Prompt";
893
+ case "http":
894
+ return "URL";
895
+ }
896
+ }
897
+ function getContentFieldValue(config) {
898
+ switch (config.type) {
899
+ case "command":
900
+ return config.command;
901
+ case "prompt":
902
+ return config.prompt;
903
+ case "agent":
904
+ return config.prompt;
905
+ case "http":
906
+ return config.url;
907
+ }
908
+ }
909
+ var jsx_dev_runtime4;
910
+ var init_ViewHookMode = __esm(() => {
911
+ init_src();
912
+ init_hooksSettings();
913
+ init_src();
914
+ jsx_dev_runtime4 = __toESM(require_jsx_dev_runtime(), 1);
915
+ });
916
+
917
+ // src/components/hooks/HooksConfigMenu.tsx
918
+ function HooksConfigMenu({ toolNames, onExit }) {
919
+ const [modeState, setModeState] = import_react.useState({
920
+ mode: "select-event"
921
+ });
922
+ const [disabledByPolicy, setDisabledByPolicy] = import_react.useState(() => {
923
+ const settings2 = getSettings_DEPRECATED();
924
+ const hooksDisabled2 = settings2?.disableAllHooks === true;
925
+ return hooksDisabled2 && getSettingsForSource("policySettings")?.disableAllHooks === true;
926
+ });
927
+ const [restrictedByPolicy, setRestrictedByPolicy] = import_react.useState(() => {
928
+ return getSettingsForSource("policySettings")?.allowManagedHooksOnly === true;
929
+ });
930
+ useSettingsChange((source) => {
931
+ if (source === "policySettings") {
932
+ const settings2 = getSettings_DEPRECATED();
933
+ const hooksDisabled2 = settings2?.disableAllHooks === true;
934
+ setDisabledByPolicy(hooksDisabled2 && getSettingsForSource("policySettings")?.disableAllHooks === true);
935
+ setRestrictedByPolicy(getSettingsForSource("policySettings")?.allowManagedHooksOnly === true);
936
+ }
937
+ });
938
+ const mode = modeState.mode;
939
+ const selectedEvent = "event" in modeState ? modeState.event : "PreToolUse";
940
+ const selectedMatcher = "matcher" in modeState ? modeState.matcher : null;
941
+ const mcp = useAppState((s) => s.mcp);
942
+ const appStateStore = useAppStateStore();
943
+ const combinedToolNames = import_react.useMemo(() => [...toolNames, ...mcp.tools.map((tool) => tool.name)], [toolNames, mcp.tools]);
944
+ const hooksByEventAndMatcher = import_react.useMemo(() => groupHooksByEventAndMatcher(appStateStore.getState(), combinedToolNames), [combinedToolNames, appStateStore]);
945
+ const sortedMatchersForSelectedEvent = import_react.useMemo(() => getSortedMatchersForEvent(hooksByEventAndMatcher, selectedEvent), [hooksByEventAndMatcher, selectedEvent]);
946
+ const hooksForSelectedMatcher = import_react.useMemo(() => getHooksForMatcher(hooksByEventAndMatcher, selectedEvent, selectedMatcher), [hooksByEventAndMatcher, selectedEvent, selectedMatcher]);
947
+ const handleExit = import_react.useCallback(() => {
948
+ onExit("Hooks dialog dismissed", { display: "system" });
949
+ }, [onExit]);
950
+ useKeybinding("confirm:no", handleExit, {
951
+ context: "Confirmation",
952
+ isActive: mode === "select-event"
953
+ });
954
+ useKeybinding("confirm:no", () => {
955
+ setModeState({ mode: "select-event" });
956
+ }, {
957
+ context: "Confirmation",
958
+ isActive: mode === "select-matcher"
959
+ });
960
+ useKeybinding("confirm:no", () => {
961
+ if ("event" in modeState) {
962
+ if (getMatcherMetadata(modeState.event, combinedToolNames) !== undefined) {
963
+ setModeState({ mode: "select-matcher", event: modeState.event });
964
+ } else {
965
+ setModeState({ mode: "select-event" });
966
+ }
967
+ }
968
+ }, {
969
+ context: "Confirmation",
970
+ isActive: mode === "select-hook"
971
+ });
972
+ useKeybinding("confirm:no", () => {
973
+ if (modeState.mode === "view-hook") {
974
+ const { event, hook } = modeState;
975
+ setModeState({
976
+ mode: "select-hook",
977
+ event,
978
+ matcher: hook.matcher || ""
979
+ });
980
+ }
981
+ }, {
982
+ context: "Confirmation",
983
+ isActive: mode === "view-hook"
984
+ });
985
+ const hookEventMetadata = getHookEventMetadata(combinedToolNames);
986
+ const settings = getSettings_DEPRECATED();
987
+ const hooksDisabled = settings?.disableAllHooks === true;
988
+ const { hooksByEvent, totalHooksCount } = import_react.useMemo(() => {
989
+ const byEvent = {};
990
+ let total = 0;
991
+ for (const [event, matchers] of Object.entries(hooksByEventAndMatcher)) {
992
+ const eventCount = Object.values(matchers).reduce((sum, hooks) => sum + hooks.length, 0);
993
+ byEvent[event] = eventCount;
994
+ total += eventCount;
995
+ }
996
+ return { hooksByEvent: byEvent, totalHooksCount: total };
997
+ }, [hooksByEventAndMatcher]);
998
+ if (hooksDisabled) {
999
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(Dialog, {
1000
+ title: "Hook Configuration - Disabled",
1001
+ onCancel: handleExit,
1002
+ inputGuide: () => /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1003
+ children: "Esc to close"
1004
+ }, undefined, false, undefined, this),
1005
+ children: /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedBox_default, {
1006
+ flexDirection: "column",
1007
+ gap: 1,
1008
+ children: [
1009
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedBox_default, {
1010
+ flexDirection: "column",
1011
+ children: [
1012
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1013
+ children: [
1014
+ "All hooks are currently ",
1015
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1016
+ bold: true,
1017
+ children: "disabled"
1018
+ }, undefined, false, undefined, this),
1019
+ disabledByPolicy && " by a managed settings file",
1020
+ ". You have",
1021
+ " ",
1022
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1023
+ bold: true,
1024
+ children: totalHooksCount
1025
+ }, undefined, false, undefined, this),
1026
+ " configured",
1027
+ " ",
1028
+ plural(totalHooksCount, "hook"),
1029
+ " that",
1030
+ " ",
1031
+ plural(totalHooksCount, "is", "are"),
1032
+ " not running."
1033
+ ]
1034
+ }, undefined, true, undefined, this),
1035
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedBox_default, {
1036
+ marginTop: 1,
1037
+ children: /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1038
+ dimColor: true,
1039
+ children: "When hooks are disabled:"
1040
+ }, undefined, false, undefined, this)
1041
+ }, undefined, false, undefined, this),
1042
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1043
+ dimColor: true,
1044
+ children: "\xB7 No hook commands will execute"
1045
+ }, undefined, false, undefined, this),
1046
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1047
+ dimColor: true,
1048
+ children: "\xB7 StatusLine will not be displayed"
1049
+ }, undefined, false, undefined, this),
1050
+ /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1051
+ dimColor: true,
1052
+ children: "\xB7 Tool operations will proceed without hook validation"
1053
+ }, undefined, false, undefined, this)
1054
+ ]
1055
+ }, undefined, true, undefined, this),
1056
+ !disabledByPolicy && /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ThemedText, {
1057
+ dimColor: true,
1058
+ children: 'To re-enable hooks, remove "disableAllHooks" from settings.json or ask Claude.'
1059
+ }, undefined, false, undefined, this)
1060
+ ]
1061
+ }, undefined, true, undefined, this)
1062
+ }, undefined, false, undefined, this);
1063
+ }
1064
+ switch (modeState.mode) {
1065
+ case "select-event":
1066
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(SelectEventMode, {
1067
+ hookEventMetadata,
1068
+ hooksByEvent,
1069
+ totalHooksCount,
1070
+ restrictedByPolicy,
1071
+ onSelectEvent: (event) => {
1072
+ if (getMatcherMetadata(event, combinedToolNames) !== undefined) {
1073
+ setModeState({ mode: "select-matcher", event });
1074
+ } else {
1075
+ setModeState({ mode: "select-hook", event, matcher: "" });
1076
+ }
1077
+ },
1078
+ onCancel: handleExit
1079
+ }, undefined, false, undefined, this);
1080
+ case "select-matcher":
1081
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(SelectMatcherMode, {
1082
+ selectedEvent: modeState.event,
1083
+ matchersForSelectedEvent: sortedMatchersForSelectedEvent,
1084
+ hooksByEventAndMatcher,
1085
+ eventDescription: hookEventMetadata[modeState.event].description,
1086
+ onSelect: (matcher) => {
1087
+ setModeState({
1088
+ mode: "select-hook",
1089
+ event: modeState.event,
1090
+ matcher
1091
+ });
1092
+ },
1093
+ onCancel: () => {
1094
+ setModeState({ mode: "select-event" });
1095
+ }
1096
+ }, undefined, false, undefined, this);
1097
+ case "select-hook":
1098
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(SelectHookMode, {
1099
+ selectedEvent: modeState.event,
1100
+ selectedMatcher: modeState.matcher,
1101
+ hooksForSelectedMatcher,
1102
+ hookEventMetadata: hookEventMetadata[modeState.event],
1103
+ onSelect: (hook) => {
1104
+ setModeState({
1105
+ mode: "view-hook",
1106
+ event: modeState.event,
1107
+ hook
1108
+ });
1109
+ },
1110
+ onCancel: () => {
1111
+ if (getMatcherMetadata(modeState.event, combinedToolNames) !== undefined) {
1112
+ setModeState({
1113
+ mode: "select-matcher",
1114
+ event: modeState.event
1115
+ });
1116
+ } else {
1117
+ setModeState({ mode: "select-event" });
1118
+ }
1119
+ }
1120
+ }, undefined, false, undefined, this);
1121
+ case "view-hook":
1122
+ return /* @__PURE__ */ jsx_dev_runtime5.jsxDEV(ViewHookMode, {
1123
+ selectedHook: modeState.hook,
1124
+ eventSupportsMatcher: getMatcherMetadata(modeState.event, combinedToolNames) !== undefined,
1125
+ onCancel: () => {
1126
+ const { event, hook } = modeState;
1127
+ setModeState({
1128
+ mode: "select-hook",
1129
+ event,
1130
+ matcher: hook.matcher || ""
1131
+ });
1132
+ }
1133
+ }, undefined, false, undefined, this);
1134
+ }
1135
+ }
1136
+ var import_react, jsx_dev_runtime5;
1137
+ var init_HooksConfigMenu = __esm(() => {
1138
+ init_AppState();
1139
+ init_useSettingsChange();
1140
+ init_src();
1141
+ init_useKeybinding();
1142
+ init_hooksConfigManager();
1143
+ init_settings();
1144
+ init_stringUtils();
1145
+ init_src();
1146
+ init_SelectEventMode();
1147
+ init_SelectHookMode();
1148
+ init_SelectMatcherMode();
1149
+ init_ViewHookMode();
1150
+ import_react = __toESM(require_react(), 1);
1151
+ jsx_dev_runtime5 = __toESM(require_jsx_dev_runtime(), 1);
1152
+ });
1153
+
1154
+ // src/commands/hooks/hooks.tsx
1155
+ var jsx_dev_runtime6, call = async (onDone, context) => {
1156
+ logEvent("tengu_hooks_command", {});
1157
+ const appState = context.getAppState();
1158
+ const permissionContext = appState.toolPermissionContext;
1159
+ const toolNames = getTools(permissionContext).map((tool) => tool.name);
1160
+ return /* @__PURE__ */ jsx_dev_runtime6.jsxDEV(HooksConfigMenu, {
1161
+ toolNames,
1162
+ onExit: onDone
1163
+ }, undefined, false, undefined, this);
1164
+ };
1165
+ var init_hooks = __esm(() => {
1166
+ init_HooksConfigMenu();
1167
+ init_analytics();
1168
+ init_tools();
1169
+ jsx_dev_runtime6 = __toESM(require_jsx_dev_runtime(), 1);
1170
+ });
1171
+ init_hooks();
1172
+
1173
+ export {
1174
+ call
1175
+ };