@zyycn/claudex 1.0.3-fork.3767904

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 (441) hide show
  1. package/LICENSE.md +5 -0
  2. package/README.md +468 -0
  3. package/bin/claudex.js +40 -0
  4. package/dist/chunk-028383m5.js +654 -0
  5. package/dist/chunk-03metnxx.js +83 -0
  6. package/dist/chunk-06saje2v.js +39 -0
  7. package/dist/chunk-0731m51q.js +8 -0
  8. package/dist/chunk-0b8kwsg7.js +1322 -0
  9. package/dist/chunk-0ef5aqfn.js +266 -0
  10. package/dist/chunk-0paqc2yw.js +15 -0
  11. package/dist/chunk-0q2xkmse.js +58 -0
  12. package/dist/chunk-0vkfrmqm.js +690 -0
  13. package/dist/chunk-0xjaqda8.js +1124 -0
  14. package/dist/chunk-0xkvxzm1.js +788 -0
  15. package/dist/chunk-1141xmr4.js +8 -0
  16. package/dist/chunk-16egjxjg.js +606 -0
  17. package/dist/chunk-197ypc6t.js +281 -0
  18. package/dist/chunk-1bznajh9.js +87 -0
  19. package/dist/chunk-1c04yf47.js +98 -0
  20. package/dist/chunk-1cbn5kxf.js +7 -0
  21. package/dist/chunk-1ed0q5rg.js +825 -0
  22. package/dist/chunk-1h2famwb.js +49 -0
  23. package/dist/chunk-1pq0cspt.js +5393 -0
  24. package/dist/chunk-1vsjpj70.js +584 -0
  25. package/dist/chunk-1xkekb9y.js +19 -0
  26. package/dist/chunk-1zmd9pc1.js +98 -0
  27. package/dist/chunk-21tvhhzh.js +470 -0
  28. package/dist/chunk-238g70xa.js +36 -0
  29. package/dist/chunk-27xc1csx.js +104 -0
  30. package/dist/chunk-28eznw6x.js +266 -0
  31. package/dist/chunk-29pq2e6e.js +162 -0
  32. package/dist/chunk-2a42s11t.js +412 -0
  33. package/dist/chunk-2degyn49.js +696 -0
  34. package/dist/chunk-2eykm0j0.js +20 -0
  35. package/dist/chunk-2gzv8nrw.js +205 -0
  36. package/dist/chunk-2k995y2x.js +880 -0
  37. package/dist/chunk-2nayx6q1.js +63 -0
  38. package/dist/chunk-2nhwtayn.js +285 -0
  39. package/dist/chunk-2pfz17d6.js +89 -0
  40. package/dist/chunk-2q98zgr7.js +120 -0
  41. package/dist/chunk-2r6p51j7.js +40 -0
  42. package/dist/chunk-2t3vw4tx.js +22820 -0
  43. package/dist/chunk-30rst83v.js +168 -0
  44. package/dist/chunk-34c7ey17.js +155 -0
  45. package/dist/chunk-34sv2j2s.js +690 -0
  46. package/dist/chunk-37jrk2jd.js +117 -0
  47. package/dist/chunk-38700exh.js +42 -0
  48. package/dist/chunk-38qkmq6a.js +274 -0
  49. package/dist/chunk-3b00105q.js +17 -0
  50. package/dist/chunk-3b6pmmxx.js +195 -0
  51. package/dist/chunk-3bbk64vc.js +8966 -0
  52. package/dist/chunk-3c25bcsw.js +17 -0
  53. package/dist/chunk-3cdajpj8.js +90 -0
  54. package/dist/chunk-3cr1nha2.js +198 -0
  55. package/dist/chunk-3d9rvrf3.js +103 -0
  56. package/dist/chunk-3dzknnm6.js +38 -0
  57. package/dist/chunk-3es29zn5.js +105 -0
  58. package/dist/chunk-3h8a89gy.js +46 -0
  59. package/dist/chunk-3pfbtkm1.js +105 -0
  60. package/dist/chunk-3pka9vsd.js +129 -0
  61. package/dist/chunk-3raf9w1p.js +115 -0
  62. package/dist/chunk-3vs3nm7w.js +31 -0
  63. package/dist/chunk-3w31rhxj.js +98 -0
  64. package/dist/chunk-3w6s9m5w.js +16 -0
  65. package/dist/chunk-3ze6jmfd.js +74 -0
  66. package/dist/chunk-40er4qb4.js +202 -0
  67. package/dist/chunk-40nmwkst.js +2838 -0
  68. package/dist/chunk-42ytstxy.js +109 -0
  69. package/dist/chunk-44fpr6jq.js +434 -0
  70. package/dist/chunk-495d85x1.js +8066 -0
  71. package/dist/chunk-49eehs1a.js +165 -0
  72. package/dist/chunk-4bfhat6k.js +89 -0
  73. package/dist/chunk-4cfef3e8.js +602 -0
  74. package/dist/chunk-4g3v8y12.js +23 -0
  75. package/dist/chunk-4jm600zv.js +13 -0
  76. package/dist/chunk-4n6x67m0.js +88 -0
  77. package/dist/chunk-4qz9vbs1.js +349 -0
  78. package/dist/chunk-4r4hb7td.js +564 -0
  79. package/dist/chunk-4tabtkpc.js +496 -0
  80. package/dist/chunk-4yd15ach.js +84 -0
  81. package/dist/chunk-4zfkzkt6.js +37 -0
  82. package/dist/chunk-50kxdgx6.js +255 -0
  83. package/dist/chunk-55wgxwa9.js +13877 -0
  84. package/dist/chunk-56jgazae.js +28 -0
  85. package/dist/chunk-56xwtm1c.js +229 -0
  86. package/dist/chunk-5nvye4tw.js +69 -0
  87. package/dist/chunk-5qe9gb40.js +99 -0
  88. package/dist/chunk-5vx14htd.js +87 -0
  89. package/dist/chunk-5y1tah98.js +756 -0
  90. package/dist/chunk-64wxa5zw.js +810 -0
  91. package/dist/chunk-65s8h28p.js +123 -0
  92. package/dist/chunk-6bd8brc4.js +48 -0
  93. package/dist/chunk-6dec7yq0.js +79 -0
  94. package/dist/chunk-6dj5t602.js +341 -0
  95. package/dist/chunk-6ghjp8m8.js +87 -0
  96. package/dist/chunk-6gr3c3w9.js +378 -0
  97. package/dist/chunk-6n2qgm9v.js +8 -0
  98. package/dist/chunk-6tq2v3rk.js +186 -0
  99. package/dist/chunk-6v4a0yqc.js +299 -0
  100. package/dist/chunk-73rpbt04.js +1947 -0
  101. package/dist/chunk-760252na.js +101 -0
  102. package/dist/chunk-7739pg2c.js +4261 -0
  103. package/dist/chunk-7956bsy7.js +85 -0
  104. package/dist/chunk-7aw745vx.js +40175 -0
  105. package/dist/chunk-7e6ahfxz.js +61 -0
  106. package/dist/chunk-7en5fc51.js +263 -0
  107. package/dist/chunk-7gf30dzb.js +184 -0
  108. package/dist/chunk-7kpp8d5g.js +644 -0
  109. package/dist/chunk-7m2nd8da.js +110 -0
  110. package/dist/chunk-7wb627p2.js +418 -0
  111. package/dist/chunk-7wm5s02e.js +216 -0
  112. package/dist/chunk-7x9kyp5a.js +780 -0
  113. package/dist/chunk-7zaxrfnt.js +42 -0
  114. package/dist/chunk-808756xy.js +348 -0
  115. package/dist/chunk-819jqhcr.js +192 -0
  116. package/dist/chunk-83hfzbx3.js +10 -0
  117. package/dist/chunk-83myqqga.js +642 -0
  118. package/dist/chunk-84xggq3w.js +713 -0
  119. package/dist/chunk-85n4mydq.js +100 -0
  120. package/dist/chunk-86czeeyf.js +38 -0
  121. package/dist/chunk-8aww16wk.js +26840 -0
  122. package/dist/chunk-8bedvdm1.js +32 -0
  123. package/dist/chunk-8hq5kk3y.js +44 -0
  124. package/dist/chunk-8jmc7234.js +3198 -0
  125. package/dist/chunk-8jq1r68j.js +5946 -0
  126. package/dist/chunk-8mtb0zzs.js +40 -0
  127. package/dist/chunk-8qm7hxn7.js +27 -0
  128. package/dist/chunk-8tnsngw2.js +31 -0
  129. package/dist/chunk-8y0qvap3.js +333 -0
  130. package/dist/chunk-8y12jxg8.js +10 -0
  131. package/dist/chunk-8ymf4e6z.js +48 -0
  132. package/dist/chunk-90c8d4yc.js +1549 -0
  133. package/dist/chunk-90wp6wez.js +10510 -0
  134. package/dist/chunk-97q4f0d5.js +160 -0
  135. package/dist/chunk-9gbamk79.js +93 -0
  136. package/dist/chunk-9k2drwej.js +106 -0
  137. package/dist/chunk-9nta4x35.js +726 -0
  138. package/dist/chunk-9v90tzwk.js +175 -0
  139. package/dist/chunk-a8ejc632.js +3094 -0
  140. package/dist/chunk-a8fvd2bk.js +224 -0
  141. package/dist/chunk-a8pyxxmz.js +374 -0
  142. package/dist/chunk-a9vdeb6y.js +258 -0
  143. package/dist/chunk-a9zh40sj.js +48 -0
  144. package/dist/chunk-abmaztjr.js +157 -0
  145. package/dist/chunk-actwcnvp.js +69 -0
  146. package/dist/chunk-acy41n63.js +339 -0
  147. package/dist/chunk-ah8ppcb2.js +176 -0
  148. package/dist/chunk-aj276jn4.js +95 -0
  149. package/dist/chunk-ajs4f0bc.js +4521 -0
  150. package/dist/chunk-as7vh4kb.js +140 -0
  151. package/dist/chunk-atjpyqps.js +250 -0
  152. package/dist/chunk-azzv8k3w.js +724 -0
  153. package/dist/chunk-b2k6rctr.js +225 -0
  154. package/dist/chunk-b3e5kx55.js +602 -0
  155. package/dist/chunk-b4wg70y1.js +54 -0
  156. package/dist/chunk-b5x836wt.js +114 -0
  157. package/dist/chunk-b75fzr8e.js +969 -0
  158. package/dist/chunk-b8m6vy4x.js +86 -0
  159. package/dist/chunk-b8x1gk3y.js +1299 -0
  160. package/dist/chunk-bjqw6798.js +328 -0
  161. package/dist/chunk-bm1qb16p.js +17 -0
  162. package/dist/chunk-bpkdecb4.js +267 -0
  163. package/dist/chunk-bqfnp99q.js +477 -0
  164. package/dist/chunk-bvp4dgm4.js +182 -0
  165. package/dist/chunk-bwwtzjsw.js +28 -0
  166. package/dist/chunk-by7f0myv.js +91 -0
  167. package/dist/chunk-by9nr4w6.js +442 -0
  168. package/dist/chunk-c2nsc73g.js +1579 -0
  169. package/dist/chunk-c5dc5tw8.js +275 -0
  170. package/dist/chunk-cdz5yb0r.js +57 -0
  171. package/dist/chunk-cfv996bs.js +22 -0
  172. package/dist/chunk-cgfdkzhb.js +12 -0
  173. package/dist/chunk-cjxa22k7.js +438 -0
  174. package/dist/chunk-crkef7n3.js +10476 -0
  175. package/dist/chunk-cssdmv6r.js +127 -0
  176. package/dist/chunk-d69y9a95.js +1316 -0
  177. package/dist/chunk-d6qpsqd1.js +91 -0
  178. package/dist/chunk-d6rxfmhy.js +4389 -0
  179. package/dist/chunk-d88jf4t3.js +525 -0
  180. package/dist/chunk-d8ksq0y0.js +26 -0
  181. package/dist/chunk-d9kz373t.js +122 -0
  182. package/dist/chunk-ddk0ak7r.js +63 -0
  183. package/dist/chunk-ddqs9xnj.js +173 -0
  184. package/dist/chunk-detc4mva.js +99 -0
  185. package/dist/chunk-dfg36kvt.js +691 -0
  186. package/dist/chunk-dgqrcy74.js +48 -0
  187. package/dist/chunk-dhd6zm3z.js +1095 -0
  188. package/dist/chunk-dnh7jtpb.js +37 -0
  189. package/dist/chunk-dq9afpqh.js +432 -0
  190. package/dist/chunk-dqqfd54g.js +672 -0
  191. package/dist/chunk-dstxhxsx.js +121 -0
  192. package/dist/chunk-dv1wfr85.js +6373 -0
  193. package/dist/chunk-dw5yr66c.js +109 -0
  194. package/dist/chunk-dx6pnab5.js +56 -0
  195. package/dist/chunk-dz5j8gp2.js +66 -0
  196. package/dist/chunk-e5pntxye.js +37 -0
  197. package/dist/chunk-ec2tspnc.js +253 -0
  198. package/dist/chunk-eebcvtbb.js +1646 -0
  199. package/dist/chunk-egentr97.js +328 -0
  200. package/dist/chunk-ehtwnxpg.js +1591 -0
  201. package/dist/chunk-en4dwrtx.js +674 -0
  202. package/dist/chunk-enjbm16s.js +212 -0
  203. package/dist/chunk-epf7hfx9.js +130 -0
  204. package/dist/chunk-eqp1rfft.js +17 -0
  205. package/dist/chunk-er596fa7.js +246 -0
  206. package/dist/chunk-ewadzrm8.js +103 -0
  207. package/dist/chunk-ey1kf1m1.js +96 -0
  208. package/dist/chunk-f2xj33w0.js +59 -0
  209. package/dist/chunk-f5ma3nh5.js +3436 -0
  210. package/dist/chunk-f8vjkfqy.js +169 -0
  211. package/dist/chunk-fbpftpf0.js +69 -0
  212. package/dist/chunk-fbv4apne.js +51 -0
  213. package/dist/chunk-fka484jr.js +142 -0
  214. package/dist/chunk-fmkhaba7.js +1585 -0
  215. package/dist/chunk-fny8kwbq.js +88 -0
  216. package/dist/chunk-fvjqz54k.js +297 -0
  217. package/dist/chunk-fxdk70se.js +457 -0
  218. package/dist/chunk-fyc5fepv.js +10 -0
  219. package/dist/chunk-fytfjpnf.js +400 -0
  220. package/dist/chunk-fz99t69n.js +152 -0
  221. package/dist/chunk-g0j0t6qk.js +26 -0
  222. package/dist/chunk-g338npwr.js +1061 -0
  223. package/dist/chunk-g3t0act8.js +8 -0
  224. package/dist/chunk-g5xn13xx.js +143 -0
  225. package/dist/chunk-gc1s3jhh.js +40767 -0
  226. package/dist/chunk-gd397pcz.js +54 -0
  227. package/dist/chunk-gee88a3c.js +2642 -0
  228. package/dist/chunk-gmwkf29y.js +372 -0
  229. package/dist/chunk-gsxnne70.js +6106 -0
  230. package/dist/chunk-gv0tqhg0.js +118 -0
  231. package/dist/chunk-gx25wmv5.js +71 -0
  232. package/dist/chunk-gyj242zr.js +20 -0
  233. package/dist/chunk-gzzfhtdv.js +7189 -0
  234. package/dist/chunk-h0qngp9w.js +157 -0
  235. package/dist/chunk-h0rbjg6x.js +55 -0
  236. package/dist/chunk-h0xeqdrp.js +258 -0
  237. package/dist/chunk-h5f90qy3.js +220 -0
  238. package/dist/chunk-hakdhagh.js +16606 -0
  239. package/dist/chunk-hamj71dy.js +40 -0
  240. package/dist/chunk-hbrqcjwt.js +2334 -0
  241. package/dist/chunk-heg1nmw6.js +16 -0
  242. package/dist/chunk-hh7cmy4k.js +20 -0
  243. package/dist/chunk-hhxj3n5k.js +153 -0
  244. package/dist/chunk-hk9xz7gk.js +118 -0
  245. package/dist/chunk-hmxkx429.js +108 -0
  246. package/dist/chunk-hq6y1jbc.js +89 -0
  247. package/dist/chunk-hqmz36b3.js +552 -0
  248. package/dist/chunk-hrqdc2z6.js +208 -0
  249. package/dist/chunk-hzhe8ygc.js +547 -0
  250. package/dist/chunk-j0xd989k.js +655 -0
  251. package/dist/chunk-j2k4p94p.js +55 -0
  252. package/dist/chunk-j3a4p81y.js +184 -0
  253. package/dist/chunk-j5hc27hv.js +444 -0
  254. package/dist/chunk-j64ga6ta.js +8035 -0
  255. package/dist/chunk-janw82mh.js +1864 -0
  256. package/dist/chunk-jce5r25x.js +18 -0
  257. package/dist/chunk-jd32zbps.js +15 -0
  258. package/dist/chunk-jdgeec04.js +4249 -0
  259. package/dist/chunk-jgpqexxb.js +83 -0
  260. package/dist/chunk-jja22ke5.js +81 -0
  261. package/dist/chunk-jm91zc2r.js +102 -0
  262. package/dist/chunk-jnhkref0.js +30 -0
  263. package/dist/chunk-jrhwm6kh.js +1556 -0
  264. package/dist/chunk-jttemgp6.js +532 -0
  265. package/dist/chunk-jtx453jx.js +281 -0
  266. package/dist/chunk-jwft70vy.js +476 -0
  267. package/dist/chunk-jx817w05.js +11 -0
  268. package/dist/chunk-jzmz18nn.js +65 -0
  269. package/dist/chunk-k0p9w03v.js +4957 -0
  270. package/dist/chunk-k0ymf9zj.js +113 -0
  271. package/dist/chunk-k1tve81h.js +345 -0
  272. package/dist/chunk-k2bkmhp4.js +385 -0
  273. package/dist/chunk-k2qkkhf9.js +463 -0
  274. package/dist/chunk-k542zrk6.js +88 -0
  275. package/dist/chunk-kez03ppq.js +490 -0
  276. package/dist/chunk-kgmzdyrz.js +242 -0
  277. package/dist/chunk-khs0jvy0.js +216 -0
  278. package/dist/chunk-kr244txf.js +306 -0
  279. package/dist/chunk-ksawj46w.js +536 -0
  280. package/dist/chunk-kwekc97v.js +18 -0
  281. package/dist/chunk-kz6f106c.js +6956 -0
  282. package/dist/chunk-kzmfv2aw.js +745 -0
  283. package/dist/chunk-m26pp852.js +87 -0
  284. package/dist/chunk-m4pma84k.js +2057 -0
  285. package/dist/chunk-mfp30vsr.js +458 -0
  286. package/dist/chunk-mjn6p2km.js +92 -0
  287. package/dist/chunk-mk6tjz0j.js +469 -0
  288. package/dist/chunk-mqcwefg3.js +105 -0
  289. package/dist/chunk-mqm3kg01.js +61 -0
  290. package/dist/chunk-mt25echc.js +6157 -0
  291. package/dist/chunk-mw9ve19d.js +277 -0
  292. package/dist/chunk-mxt2wn9a.js +131 -0
  293. package/dist/chunk-n0qaeaa5.js +256 -0
  294. package/dist/chunk-n154ybpk.js +1919 -0
  295. package/dist/chunk-n2ktrmm8.js +62 -0
  296. package/dist/chunk-n59gj2nk.js +438 -0
  297. package/dist/chunk-n7ttdtk0.js +641 -0
  298. package/dist/chunk-nb9z2xs5.js +128 -0
  299. package/dist/chunk-nh8ssb02.js +88 -0
  300. package/dist/chunk-nj17bhkh.js +125 -0
  301. package/dist/chunk-njmw3yt4.js +173564 -0
  302. package/dist/chunk-njwzgb7j.js +61 -0
  303. package/dist/chunk-nka1g8f4.js +773 -0
  304. package/dist/chunk-nq0fxyxh.js +752 -0
  305. package/dist/chunk-nt837qt9.js +21 -0
  306. package/dist/chunk-nwsmn6zm.js +15 -0
  307. package/dist/chunk-nx4e896a.js +208 -0
  308. package/dist/chunk-p2816w9z.js +1486 -0
  309. package/dist/chunk-p2d5nh3g.js +342 -0
  310. package/dist/chunk-p331ghzg.js +391 -0
  311. package/dist/chunk-p4qrpz5a.js +99 -0
  312. package/dist/chunk-p8syd69s.js +47 -0
  313. package/dist/chunk-pdyq9kvn.js +83 -0
  314. package/dist/chunk-pkb4qnmq.js +1391 -0
  315. package/dist/chunk-pkcx8qa3.js +154 -0
  316. package/dist/chunk-pmsp9ed2.js +34 -0
  317. package/dist/chunk-pnmh6v4t.js +373 -0
  318. package/dist/chunk-ps49ymvj.js +43 -0
  319. package/dist/chunk-pwwa7s62.js +11 -0
  320. package/dist/chunk-pxy618ae.js +714 -0
  321. package/dist/chunk-py5y9jh1.js +38 -0
  322. package/dist/chunk-pzz93fck.js +173 -0
  323. package/dist/chunk-q25bjaev.js +15 -0
  324. package/dist/chunk-q756tpn6.js +765 -0
  325. package/dist/chunk-qbt1tq74.js +145 -0
  326. package/dist/chunk-qkkj0em0.js +104 -0
  327. package/dist/chunk-qnfx3qtx.js +617 -0
  328. package/dist/chunk-qp2qdcda.js +100 -0
  329. package/dist/chunk-qpkxg63w.js +160 -0
  330. package/dist/chunk-qqfa0dqg.js +2343 -0
  331. package/dist/chunk-qsd1r4pm.js +9300 -0
  332. package/dist/chunk-qseetcxd.js +908 -0
  333. package/dist/chunk-qvt2hjv0.js +849 -0
  334. package/dist/chunk-qxdv72g8.js +93 -0
  335. package/dist/chunk-qy0vwqgp.js +194 -0
  336. package/dist/chunk-qz2x630m.js +49145 -0
  337. package/dist/chunk-qzqagb7y.js +87 -0
  338. package/dist/chunk-r14xvkat.js +641 -0
  339. package/dist/chunk-r6b58y3x.js +17 -0
  340. package/dist/chunk-r6z6t5wr.js +97 -0
  341. package/dist/chunk-r855fz3z.js +41 -0
  342. package/dist/chunk-raqgs410.js +116 -0
  343. package/dist/chunk-rd5rdsdz.js +95 -0
  344. package/dist/chunk-renve22b.js +524 -0
  345. package/dist/chunk-res7qrc9.js +820 -0
  346. package/dist/chunk-rk7ns7gp.js +220 -0
  347. package/dist/chunk-rm0q8bwx.js +271 -0
  348. package/dist/chunk-rm56f6q8.js +41 -0
  349. package/dist/chunk-rn0v1hk8.js +34 -0
  350. package/dist/chunk-rrxeqt07.js +73 -0
  351. package/dist/chunk-rvgeep5b.js +117 -0
  352. package/dist/chunk-rx4c84ah.js +86 -0
  353. package/dist/chunk-s3pzvdss.js +50 -0
  354. package/dist/chunk-s5vqcxp0.js +54 -0
  355. package/dist/chunk-s88vzmek.js +542 -0
  356. package/dist/chunk-sazb7y67.js +279 -0
  357. package/dist/chunk-sbbj6ta3.js +1711 -0
  358. package/dist/chunk-sd36yzx8.js +954 -0
  359. package/dist/chunk-sdj9b9wh.js +782 -0
  360. package/dist/chunk-shb6nvk6.js +27 -0
  361. package/dist/chunk-szj5wvdy.js +28 -0
  362. package/dist/chunk-t0rgmccj.js +39 -0
  363. package/dist/chunk-t1jh3jk8.js +3036 -0
  364. package/dist/chunk-t3360k46.js +75 -0
  365. package/dist/chunk-t3h6pwp3.js +112 -0
  366. package/dist/chunk-t5ymtx9c.js +1493 -0
  367. package/dist/chunk-t6p76a55.js +120 -0
  368. package/dist/chunk-t7fdh24y.js +648 -0
  369. package/dist/chunk-texzbcna.js +716 -0
  370. package/dist/chunk-tjw7n4me.js +21933 -0
  371. package/dist/chunk-tjyhp966.js +24 -0
  372. package/dist/chunk-tnd5xbeh.js +802 -0
  373. package/dist/chunk-trfa7dbr.js +998 -0
  374. package/dist/chunk-ts2p6bv1.js +224 -0
  375. package/dist/chunk-tssr3fyd.js +287 -0
  376. package/dist/chunk-ttk5dzz8.js +25 -0
  377. package/dist/chunk-tvhjre1h.js +316 -0
  378. package/dist/chunk-txndc2j2.js +70 -0
  379. package/dist/chunk-v1kzp02e.js +785 -0
  380. package/dist/chunk-v2pc6h28.js +32 -0
  381. package/dist/chunk-v78fj8by.js +145 -0
  382. package/dist/chunk-v90xv5n9.js +157 -0
  383. package/dist/chunk-v9smspw2.js +4301 -0
  384. package/dist/chunk-vest0y6x.js +3830 -0
  385. package/dist/chunk-vf5sd1nq.js +12 -0
  386. package/dist/chunk-vhjx5fag.js +56 -0
  387. package/dist/chunk-vjtbtamj.js +165 -0
  388. package/dist/chunk-vkkay00s.js +229 -0
  389. package/dist/chunk-vqc05a0b.js +121 -0
  390. package/dist/chunk-vqk1n5qr.js +63 -0
  391. package/dist/chunk-vqvd3qz0.js +151 -0
  392. package/dist/chunk-vtp96y1a.js +90 -0
  393. package/dist/chunk-vyjeh50y.js +2149 -0
  394. package/dist/chunk-vz6s9tzt.js +43 -0
  395. package/dist/chunk-w3agqtpz.js +42 -0
  396. package/dist/chunk-w3dz905t.js +22 -0
  397. package/dist/chunk-w8yw30sd.js +15 -0
  398. package/dist/chunk-wa6b7bv9.js +467 -0
  399. package/dist/chunk-wb36q47x.js +128 -0
  400. package/dist/chunk-wbnv75aa.js +114 -0
  401. package/dist/chunk-wcepsp07.js +1013 -0
  402. package/dist/chunk-wecrhvf7.js +247 -0
  403. package/dist/chunk-wfz0qffj.js +3939 -0
  404. package/dist/chunk-wgcssf6v.js +722 -0
  405. package/dist/chunk-wn2268qd.js +335 -0
  406. package/dist/chunk-wtr5hjf7.js +3443 -0
  407. package/dist/chunk-wzpdet3m.js +843 -0
  408. package/dist/chunk-x0328bb5.js +305 -0
  409. package/dist/chunk-x5psxyg8.js +20 -0
  410. package/dist/chunk-x8b7vft8.js +132 -0
  411. package/dist/chunk-x8n22y7f.js +5017 -0
  412. package/dist/chunk-xq4cfvpn.js +213 -0
  413. package/dist/chunk-xqdvndvx.js +3394 -0
  414. package/dist/chunk-xrv9qadt.js +44 -0
  415. package/dist/chunk-xsq9ae7x.js +90 -0
  416. package/dist/chunk-xszk7n10.js +14358 -0
  417. package/dist/chunk-xx6h50zt.js +338 -0
  418. package/dist/chunk-y1784krc.js +19 -0
  419. package/dist/chunk-yfcsc3s4.js +153 -0
  420. package/dist/chunk-yngvgvqm.js +103 -0
  421. package/dist/chunk-yntm0ebf.js +500 -0
  422. package/dist/chunk-yw9xqzna.js +71 -0
  423. package/dist/chunk-ywxd4qw4.js +22 -0
  424. package/dist/chunk-yysj6sxt.js +336 -0
  425. package/dist/chunk-yzhxz894.js +32 -0
  426. package/dist/chunk-yztq1rhb.js +60 -0
  427. package/dist/chunk-z06751ss.js +16386 -0
  428. package/dist/chunk-z2dp53wn.js +17 -0
  429. package/dist/chunk-z5cvbngc.js +520 -0
  430. package/dist/chunk-z6vf0bdm.js +101 -0
  431. package/dist/chunk-zbqfbyfb.js +247 -0
  432. package/dist/chunk-zc6g0qqe.js +29 -0
  433. package/dist/chunk-zj863fgn.js +92 -0
  434. package/dist/chunk-zjd1m23p.js +1152 -0
  435. package/dist/chunk-zk2wsm7d.js +15 -0
  436. package/dist/chunk-zmwhk0zy.js +750 -0
  437. package/dist/chunk-zpywc76a.js +862 -0
  438. package/dist/chunk-zqm995gk.js +71 -0
  439. package/dist/chunk-zsfxha74.js +17655 -0
  440. package/dist/cli.js +89 -0
  441. package/package.json +36 -0
@@ -0,0 +1,339 @@
1
+ // @bun
2
+ import {
3
+ Select,
4
+ Spinner,
5
+ cleanupWorktree,
6
+ exports_sessionStorage,
7
+ getCurrentWorktreeSession,
8
+ getPlansDirectory,
9
+ gracefulShutdown,
10
+ init_Shell,
11
+ init_Spinner,
12
+ init_gracefulShutdown,
13
+ init_plans,
14
+ init_sample,
15
+ init_select,
16
+ init_sessionStorage,
17
+ init_worktree,
18
+ keepWorktree,
19
+ killTmuxSession,
20
+ sample_default,
21
+ setCwd
22
+ } from "./chunk-njmw3yt4.js";
23
+ import {
24
+ Dialog,
25
+ init_Dialog
26
+ } from "./chunk-k2qkkhf9.js";
27
+ import {
28
+ ThemedBox_default,
29
+ ThemedText,
30
+ init_ink,
31
+ require_compiler_runtime
32
+ } from "./chunk-8aww16wk.js";
33
+ import {
34
+ require_jsx_dev_runtime,
35
+ require_react
36
+ } from "./chunk-g338npwr.js";
37
+ import {
38
+ init_analytics,
39
+ logEvent
40
+ } from "./chunk-h0rbjg6x.js";
41
+ import {
42
+ execFileNoThrow,
43
+ init_execFileNoThrow
44
+ } from "./chunk-gzzfhtdv.js";
45
+ import {
46
+ init_debug,
47
+ logForDebugging
48
+ } from "./chunk-sbbj6ta3.js";
49
+ import {
50
+ __esm,
51
+ __toCommonJS,
52
+ __toESM
53
+ } from "./chunk-qp2qdcda.js";
54
+
55
+ // src/components/WorktreeExitDialog.tsx
56
+ function recordWorktreeExit() {
57
+ (init_sessionStorage(), __toCommonJS(exports_sessionStorage)).saveWorktreeState(null);
58
+ }
59
+ function WorktreeExitDialog({
60
+ onDone,
61
+ onCancel
62
+ }) {
63
+ const [status, setStatus] = import_react.useState("loading");
64
+ const [changes, setChanges] = import_react.useState([]);
65
+ const [commitCount, setCommitCount] = import_react.useState(0);
66
+ const [resultMessage, setResultMessage] = import_react.useState();
67
+ const worktreeSession = getCurrentWorktreeSession();
68
+ import_react.useEffect(() => {
69
+ async function loadChanges() {
70
+ let changeLines = [];
71
+ const gitStatus = await execFileNoThrow("git", ["status", "--porcelain"]);
72
+ if (gitStatus.stdout) {
73
+ changeLines = gitStatus.stdout.split(`
74
+ `).filter((_) => _.trim() !== "");
75
+ setChanges(changeLines);
76
+ }
77
+ if (worktreeSession) {
78
+ const {
79
+ stdout: commitsStr
80
+ } = await execFileNoThrow("git", ["rev-list", "--count", `${worktreeSession.originalHeadCommit}..HEAD`]);
81
+ const count = parseInt(commitsStr.trim()) || 0;
82
+ setCommitCount(count);
83
+ if (changeLines.length === 0 && count === 0) {
84
+ setStatus("removing");
85
+ cleanupWorktree().then(() => {
86
+ process.chdir(worktreeSession.originalCwd);
87
+ setCwd(worktreeSession.originalCwd);
88
+ recordWorktreeExit();
89
+ getPlansDirectory.cache.clear?.();
90
+ setResultMessage("Worktree removed (no changes)");
91
+ }).catch((error) => {
92
+ logForDebugging(`Failed to clean up worktree: ${error}`, {
93
+ level: "error"
94
+ });
95
+ setResultMessage("Worktree cleanup failed, exiting anyway");
96
+ }).then(() => {
97
+ setStatus("done");
98
+ });
99
+ return;
100
+ } else {
101
+ setStatus("asking");
102
+ }
103
+ }
104
+ }
105
+ loadChanges();
106
+ }, [worktreeSession]);
107
+ import_react.useEffect(() => {
108
+ if (status === "done") {
109
+ onDone(resultMessage);
110
+ }
111
+ }, [status, onDone, resultMessage]);
112
+ if (!worktreeSession) {
113
+ onDone("No active worktree session found", {
114
+ display: "system"
115
+ });
116
+ return null;
117
+ }
118
+ if (status === "loading" || status === "done") {
119
+ return null;
120
+ }
121
+ async function handleSelect(value) {
122
+ if (!worktreeSession)
123
+ return;
124
+ const hasTmux = Boolean(worktreeSession.tmuxSessionName);
125
+ if (value === "keep" || value === "keep-with-tmux") {
126
+ setStatus("keeping");
127
+ logEvent("tengu_worktree_kept", {
128
+ commits: commitCount,
129
+ changed_files: changes.length
130
+ });
131
+ await keepWorktree();
132
+ process.chdir(worktreeSession.originalCwd);
133
+ setCwd(worktreeSession.originalCwd);
134
+ recordWorktreeExit();
135
+ getPlansDirectory.cache.clear?.();
136
+ if (hasTmux) {
137
+ setResultMessage(`Worktree kept. Your work is saved at ${worktreeSession.worktreePath} on branch ${worktreeSession.worktreeBranch}. Reattach to tmux session with: tmux attach -t ${worktreeSession.tmuxSessionName}`);
138
+ } else {
139
+ setResultMessage(`Worktree kept. Your work is saved at ${worktreeSession.worktreePath} on branch ${worktreeSession.worktreeBranch}`);
140
+ }
141
+ setStatus("done");
142
+ } else if (value === "keep-kill-tmux") {
143
+ setStatus("keeping");
144
+ logEvent("tengu_worktree_kept", {
145
+ commits: commitCount,
146
+ changed_files: changes.length
147
+ });
148
+ if (worktreeSession.tmuxSessionName) {
149
+ await killTmuxSession(worktreeSession.tmuxSessionName);
150
+ }
151
+ await keepWorktree();
152
+ process.chdir(worktreeSession.originalCwd);
153
+ setCwd(worktreeSession.originalCwd);
154
+ recordWorktreeExit();
155
+ getPlansDirectory.cache.clear?.();
156
+ setResultMessage(`Worktree kept at ${worktreeSession.worktreePath} on branch ${worktreeSession.worktreeBranch}. Tmux session terminated.`);
157
+ setStatus("done");
158
+ } else if (value === "remove" || value === "remove-with-tmux") {
159
+ setStatus("removing");
160
+ logEvent("tengu_worktree_removed", {
161
+ commits: commitCount,
162
+ changed_files: changes.length
163
+ });
164
+ if (worktreeSession.tmuxSessionName) {
165
+ await killTmuxSession(worktreeSession.tmuxSessionName);
166
+ }
167
+ try {
168
+ await cleanupWorktree();
169
+ process.chdir(worktreeSession.originalCwd);
170
+ setCwd(worktreeSession.originalCwd);
171
+ recordWorktreeExit();
172
+ getPlansDirectory.cache.clear?.();
173
+ } catch (error) {
174
+ logForDebugging(`Failed to clean up worktree: ${error}`, {
175
+ level: "error"
176
+ });
177
+ setResultMessage("Worktree cleanup failed, exiting anyway");
178
+ setStatus("done");
179
+ return;
180
+ }
181
+ const tmuxNote = hasTmux ? " Tmux session terminated." : "";
182
+ if (commitCount > 0 && changes.length > 0) {
183
+ setResultMessage(`Worktree removed. ${commitCount} ${commitCount === 1 ? "commit" : "commits"} and uncommitted changes were discarded.${tmuxNote}`);
184
+ } else if (commitCount > 0) {
185
+ setResultMessage(`Worktree removed. ${commitCount} ${commitCount === 1 ? "commit" : "commits"} on ${worktreeSession.worktreeBranch} ${commitCount === 1 ? "was" : "were"} discarded.${tmuxNote}`);
186
+ } else if (changes.length > 0) {
187
+ setResultMessage(`Worktree removed. Uncommitted changes were discarded.${tmuxNote}`);
188
+ } else {
189
+ setResultMessage(`Worktree removed.${tmuxNote}`);
190
+ }
191
+ setStatus("done");
192
+ }
193
+ }
194
+ if (status === "keeping") {
195
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
196
+ flexDirection: "row",
197
+ marginY: 1,
198
+ children: [
199
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Spinner, {}, undefined, false, undefined, this),
200
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
201
+ children: "Keeping worktree\u2026"
202
+ }, undefined, false, undefined, this)
203
+ ]
204
+ }, undefined, true, undefined, this);
205
+ }
206
+ if (status === "removing") {
207
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
208
+ flexDirection: "row",
209
+ marginY: 1,
210
+ children: [
211
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Spinner, {}, undefined, false, undefined, this),
212
+ /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
213
+ children: "Removing worktree\u2026"
214
+ }, undefined, false, undefined, this)
215
+ ]
216
+ }, undefined, true, undefined, this);
217
+ }
218
+ const branchName = worktreeSession.worktreeBranch;
219
+ const hasUncommitted = changes.length > 0;
220
+ const hasCommits = commitCount > 0;
221
+ let subtitle = "";
222
+ if (hasUncommitted && hasCommits) {
223
+ subtitle = `You have ${changes.length} uncommitted ${changes.length === 1 ? "file" : "files"} and ${commitCount} ${commitCount === 1 ? "commit" : "commits"} on ${branchName}. All will be lost if you remove.`;
224
+ } else if (hasUncommitted) {
225
+ subtitle = `You have ${changes.length} uncommitted ${changes.length === 1 ? "file" : "files"}. These will be lost if you remove the worktree.`;
226
+ } else if (hasCommits) {
227
+ subtitle = `You have ${commitCount} ${commitCount === 1 ? "commit" : "commits"} on ${branchName}. The branch will be deleted if you remove the worktree.`;
228
+ } else {
229
+ subtitle = "You are working in a worktree. Keep it to continue working there, or remove it to clean up.";
230
+ }
231
+ function handleCancel() {
232
+ if (onCancel) {
233
+ onCancel();
234
+ return;
235
+ }
236
+ handleSelect("keep");
237
+ }
238
+ const removeDescription = hasUncommitted || hasCommits ? "All changes and commits will be lost." : "Clean up the worktree directory.";
239
+ const hasTmuxSession = Boolean(worktreeSession.tmuxSessionName);
240
+ const options = hasTmuxSession ? [{
241
+ label: "Keep worktree and tmux session",
242
+ value: "keep-with-tmux",
243
+ description: `Stays at ${worktreeSession.worktreePath}. Reattach with: tmux attach -t ${worktreeSession.tmuxSessionName}`
244
+ }, {
245
+ label: "Keep worktree, kill tmux session",
246
+ value: "keep-kill-tmux",
247
+ description: `Keeps worktree at ${worktreeSession.worktreePath}, terminates tmux session.`
248
+ }, {
249
+ label: "Remove worktree and tmux session",
250
+ value: "remove-with-tmux",
251
+ description: removeDescription
252
+ }] : [{
253
+ label: "Keep worktree",
254
+ value: "keep",
255
+ description: `Stays at ${worktreeSession.worktreePath}`
256
+ }, {
257
+ label: "Remove worktree",
258
+ value: "remove",
259
+ description: removeDescription
260
+ }];
261
+ const defaultValue = hasTmuxSession ? "keep-with-tmux" : "keep";
262
+ return /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Dialog, {
263
+ title: "Exiting worktree session",
264
+ subtitle,
265
+ onCancel: handleCancel,
266
+ children: /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Select, {
267
+ defaultFocusValue: defaultValue,
268
+ options,
269
+ onChange: handleSelect
270
+ }, undefined, false, undefined, this)
271
+ }, undefined, false, undefined, this);
272
+ }
273
+ var import_react, jsx_dev_runtime;
274
+ var init_WorktreeExitDialog = __esm(() => {
275
+ init_analytics();
276
+ init_debug();
277
+ init_ink();
278
+ init_execFileNoThrow();
279
+ init_plans();
280
+ init_Shell();
281
+ init_worktree();
282
+ init_select();
283
+ init_Dialog();
284
+ init_Spinner();
285
+ import_react = __toESM(require_react(), 1);
286
+ jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
287
+ });
288
+
289
+ // src/components/ExitFlow.tsx
290
+ function getRandomGoodbyeMessage() {
291
+ return sample_default(GOODBYE_MESSAGES) ?? "Goodbye!";
292
+ }
293
+ function ExitFlow(t0) {
294
+ const $ = import_compiler_runtime.c(5);
295
+ const {
296
+ showWorktree,
297
+ onDone,
298
+ onCancel
299
+ } = t0;
300
+ let t1;
301
+ if ($[0] !== onDone) {
302
+ t1 = async function onExit2(resultMessage) {
303
+ onDone(resultMessage ?? getRandomGoodbyeMessage());
304
+ await gracefulShutdown(0, "prompt_input_exit");
305
+ };
306
+ $[0] = onDone;
307
+ $[1] = t1;
308
+ } else {
309
+ t1 = $[1];
310
+ }
311
+ const onExit = t1;
312
+ if (showWorktree) {
313
+ let t2;
314
+ if ($[2] !== onCancel || $[3] !== onExit) {
315
+ t2 = /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(WorktreeExitDialog, {
316
+ onDone: onExit,
317
+ onCancel
318
+ }, undefined, false, undefined, this);
319
+ $[2] = onCancel;
320
+ $[3] = onExit;
321
+ $[4] = t2;
322
+ } else {
323
+ t2 = $[4];
324
+ }
325
+ return t2;
326
+ }
327
+ return null;
328
+ }
329
+ var import_compiler_runtime, jsx_dev_runtime2, GOODBYE_MESSAGES;
330
+ var init_ExitFlow = __esm(() => {
331
+ init_sample();
332
+ init_gracefulShutdown();
333
+ init_WorktreeExitDialog();
334
+ import_compiler_runtime = __toESM(require_compiler_runtime(), 1);
335
+ jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
336
+ GOODBYE_MESSAGES = ["Goodbye!", "See ya!", "Bye!", "Catch you later!"];
337
+ });
338
+
339
+ export { ExitFlow, init_ExitFlow };
@@ -0,0 +1,176 @@
1
+ // @bun
2
+ import {
3
+ init_sink,
4
+ initializeAnalyticsSink
5
+ } from "./chunk-gx25wmv5.js";
6
+ import {
7
+ CACHE_PATHS,
8
+ attachErrorLogSink,
9
+ dateToFilename,
10
+ init_cachePaths,
11
+ init_log
12
+ } from "./chunk-yysj6sxt.js";
13
+ import {
14
+ createBufferedWriter,
15
+ getFsImplementation,
16
+ init_bufferedWriter,
17
+ init_cleanupRegistry,
18
+ init_debug,
19
+ init_fsOperations,
20
+ init_slowOperations,
21
+ jsonStringify,
22
+ logForDebugging,
23
+ registerCleanup
24
+ } from "./chunk-sbbj6ta3.js";
25
+ import {
26
+ getSessionId,
27
+ init_state
28
+ } from "./chunk-qqfa0dqg.js";
29
+ import {
30
+ axios_default,
31
+ init_axios
32
+ } from "./chunk-xszk7n10.js";
33
+
34
+ // src/utils/sinks.ts
35
+ init_sink();
36
+
37
+ // src/utils/errorLogSink.ts
38
+ init_axios();
39
+ init_state();
40
+ init_bufferedWriter();
41
+ init_cachePaths();
42
+ init_cleanupRegistry();
43
+ init_debug();
44
+ init_fsOperations();
45
+ init_log();
46
+ init_slowOperations();
47
+ import { dirname, join } from "path";
48
+ var DATE = dateToFilename(new Date);
49
+ function getErrorsPath() {
50
+ return join(CACHE_PATHS.errors(), DATE + ".jsonl");
51
+ }
52
+ function getMCPLogsPath(serverName) {
53
+ return join(CACHE_PATHS.mcpLogs(serverName), DATE + ".jsonl");
54
+ }
55
+ function createJsonlWriter(options) {
56
+ const writer = createBufferedWriter(options);
57
+ return {
58
+ write(obj) {
59
+ writer.write(jsonStringify(obj) + `
60
+ `);
61
+ },
62
+ flush: writer.flush,
63
+ dispose: writer.dispose
64
+ };
65
+ }
66
+ var logWriters = new Map;
67
+ function getLogWriter(path) {
68
+ let writer = logWriters.get(path);
69
+ if (!writer) {
70
+ const dir = dirname(path);
71
+ writer = createJsonlWriter({
72
+ writeFn: (content) => {
73
+ try {
74
+ getFsImplementation().appendFileSync(path, content);
75
+ } catch {
76
+ getFsImplementation().mkdirSync(dir);
77
+ getFsImplementation().appendFileSync(path, content);
78
+ }
79
+ },
80
+ flushIntervalMs: 1000,
81
+ maxBufferSize: 50
82
+ });
83
+ logWriters.set(path, writer);
84
+ registerCleanup(async () => writer?.dispose());
85
+ }
86
+ return writer;
87
+ }
88
+ function appendToLog(path, message) {
89
+ if (process.env.USER_TYPE !== "ant") {
90
+ return;
91
+ }
92
+ const messageWithTimestamp = {
93
+ timestamp: new Date().toISOString(),
94
+ ...message,
95
+ cwd: getFsImplementation().cwd(),
96
+ userType: process.env.USER_TYPE,
97
+ sessionId: getSessionId(),
98
+ version: "1.0.3-fork.3767904"
99
+ };
100
+ getLogWriter(path).write(messageWithTimestamp);
101
+ }
102
+ function extractServerMessage(data) {
103
+ if (typeof data === "string") {
104
+ return data;
105
+ }
106
+ if (data && typeof data === "object") {
107
+ const obj = data;
108
+ if (typeof obj.message === "string") {
109
+ return obj.message;
110
+ }
111
+ if (typeof obj.error === "object" && obj.error && "message" in obj.error && typeof obj.error.message === "string") {
112
+ return obj.error.message;
113
+ }
114
+ }
115
+ return;
116
+ }
117
+ function logErrorImpl(error) {
118
+ const errorStr = error.stack || error.message;
119
+ let context = "";
120
+ if (axios_default.isAxiosError(error) && error.config?.url) {
121
+ const parts = [`url=${error.config.url}`];
122
+ if (error.response?.status !== undefined) {
123
+ parts.push(`status=${error.response.status}`);
124
+ }
125
+ const serverMessage = extractServerMessage(error.response?.data);
126
+ if (serverMessage) {
127
+ parts.push(`body=${serverMessage}`);
128
+ }
129
+ context = `[${parts.join(",")}] `;
130
+ }
131
+ logForDebugging(`${error.name}: ${context}${errorStr}`, { level: "error" });
132
+ appendToLog(getErrorsPath(), {
133
+ error: `${context}${errorStr}`
134
+ });
135
+ }
136
+ function logMCPErrorImpl(serverName, error) {
137
+ logForDebugging(`MCP server "${serverName}" ${error}`, { level: "error" });
138
+ const logFile = getMCPLogsPath(serverName);
139
+ const errorStr = error instanceof Error ? error.stack || error.message : String(error);
140
+ const errorInfo = {
141
+ error: errorStr,
142
+ timestamp: new Date().toISOString(),
143
+ sessionId: getSessionId(),
144
+ cwd: getFsImplementation().cwd()
145
+ };
146
+ getLogWriter(logFile).write(errorInfo);
147
+ }
148
+ function logMCPDebugImpl(serverName, message) {
149
+ logForDebugging(`MCP server "${serverName}": ${message}`);
150
+ const logFile = getMCPLogsPath(serverName);
151
+ const debugInfo = {
152
+ debug: message,
153
+ timestamp: new Date().toISOString(),
154
+ sessionId: getSessionId(),
155
+ cwd: getFsImplementation().cwd()
156
+ };
157
+ getLogWriter(logFile).write(debugInfo);
158
+ }
159
+ function initializeErrorLogSink() {
160
+ attachErrorLogSink({
161
+ logError: logErrorImpl,
162
+ logMCPError: logMCPErrorImpl,
163
+ logMCPDebug: logMCPDebugImpl,
164
+ getErrorsPath,
165
+ getMCPLogsPath
166
+ });
167
+ logForDebugging("Error log sink initialized");
168
+ }
169
+
170
+ // src/utils/sinks.ts
171
+ function initSinks() {
172
+ initializeErrorLogSink();
173
+ initializeAnalyticsSink();
174
+ }
175
+
176
+ export { initSinks };
@@ -0,0 +1,95 @@
1
+ // @bun
2
+ import {
3
+ BASH_TOOL_NAME,
4
+ getAllowRules,
5
+ getAskRules,
6
+ getDenyRules,
7
+ init_permissions,
8
+ init_toolName,
9
+ permissionRuleSourceDisplayString
10
+ } from "./chunk-njmw3yt4.js";
11
+ import {
12
+ __esm
13
+ } from "./chunk-qp2qdcda.js";
14
+
15
+ // src/utils/permissions/shadowedRuleDetection.ts
16
+ function isSharedSettingSource(source) {
17
+ return source === "projectSettings" || source === "policySettings" || source === "command";
18
+ }
19
+ function formatSource(source) {
20
+ return permissionRuleSourceDisplayString(source);
21
+ }
22
+ function generateFixSuggestion(shadowType, shadowingRule, shadowedRule) {
23
+ const shadowingSource = formatSource(shadowingRule.source);
24
+ const shadowedSource = formatSource(shadowedRule.source);
25
+ const toolName = shadowingRule.ruleValue.toolName;
26
+ if (shadowType === "deny") {
27
+ return `Remove the "${toolName}" deny rule from ${shadowingSource}, or remove the specific allow rule from ${shadowedSource}`;
28
+ }
29
+ return `Remove the "${toolName}" ask rule from ${shadowingSource}, or remove the specific allow rule from ${shadowedSource}`;
30
+ }
31
+ function isAllowRuleShadowedByAskRule(allowRule, askRules, options) {
32
+ const { toolName, ruleContent } = allowRule.ruleValue;
33
+ if (ruleContent === undefined) {
34
+ return { shadowed: false };
35
+ }
36
+ const shadowingAskRule = askRules.find((askRule) => askRule.ruleValue.toolName === toolName && askRule.ruleValue.ruleContent === undefined);
37
+ if (!shadowingAskRule) {
38
+ return { shadowed: false };
39
+ }
40
+ if (toolName === BASH_TOOL_NAME && options.sandboxAutoAllowEnabled) {
41
+ if (!isSharedSettingSource(shadowingAskRule.source)) {
42
+ return { shadowed: false };
43
+ }
44
+ }
45
+ return { shadowed: true, shadowedBy: shadowingAskRule, shadowType: "ask" };
46
+ }
47
+ function isAllowRuleShadowedByDenyRule(allowRule, denyRules) {
48
+ const { toolName, ruleContent } = allowRule.ruleValue;
49
+ if (ruleContent === undefined) {
50
+ return { shadowed: false };
51
+ }
52
+ const shadowingDenyRule = denyRules.find((denyRule) => denyRule.ruleValue.toolName === toolName && denyRule.ruleValue.ruleContent === undefined);
53
+ if (!shadowingDenyRule) {
54
+ return { shadowed: false };
55
+ }
56
+ return { shadowed: true, shadowedBy: shadowingDenyRule, shadowType: "deny" };
57
+ }
58
+ function detectUnreachableRules(context, options) {
59
+ const unreachable = [];
60
+ const allowRules = getAllowRules(context);
61
+ const askRules = getAskRules(context);
62
+ const denyRules = getDenyRules(context);
63
+ for (const allowRule of allowRules) {
64
+ const denyResult = isAllowRuleShadowedByDenyRule(allowRule, denyRules);
65
+ if (denyResult.shadowed) {
66
+ const shadowSource = formatSource(denyResult.shadowedBy.source);
67
+ unreachable.push({
68
+ rule: allowRule,
69
+ reason: `Blocked by "${denyResult.shadowedBy.ruleValue.toolName}" deny rule (from ${shadowSource})`,
70
+ shadowedBy: denyResult.shadowedBy,
71
+ shadowType: "deny",
72
+ fix: generateFixSuggestion("deny", denyResult.shadowedBy, allowRule)
73
+ });
74
+ continue;
75
+ }
76
+ const askResult = isAllowRuleShadowedByAskRule(allowRule, askRules, options);
77
+ if (askResult.shadowed) {
78
+ const shadowSource = formatSource(askResult.shadowedBy.source);
79
+ unreachable.push({
80
+ rule: allowRule,
81
+ reason: `Shadowed by "${askResult.shadowedBy.ruleValue.toolName}" ask rule (from ${shadowSource})`,
82
+ shadowedBy: askResult.shadowedBy,
83
+ shadowType: "ask",
84
+ fix: generateFixSuggestion("ask", askResult.shadowedBy, allowRule)
85
+ });
86
+ }
87
+ }
88
+ return unreachable;
89
+ }
90
+ var init_shadowedRuleDetection = __esm(() => {
91
+ init_toolName();
92
+ init_permissions();
93
+ });
94
+
95
+ export { detectUnreachableRules, init_shadowedRuleDetection };