jialing-code 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/README.md +97 -0
  2. package/dist/chunk-065m026w.js +97 -0
  3. package/dist/chunk-06saje2v.js +39 -0
  4. package/dist/chunk-0731m51q.js +8 -0
  5. package/dist/chunk-0975ccyw.js +265 -0
  6. package/dist/chunk-09n3fjx5.js +67 -0
  7. package/dist/chunk-0bdjdzew.js +41 -0
  8. package/dist/chunk-0ce6kd7y.js +212 -0
  9. package/dist/chunk-0e1xsncc.js +969 -0
  10. package/dist/chunk-0m2861gw.js +154 -0
  11. package/dist/chunk-0paqc2yw.js +15 -0
  12. package/dist/chunk-0rg6yrhy.js +99 -0
  13. package/dist/chunk-0sakxrcf.js +643 -0
  14. package/dist/chunk-0v9hwxvz.js +105 -0
  15. package/dist/chunk-0vkfrmqm.js +690 -0
  16. package/dist/chunk-0vvfnhhv.js +248 -0
  17. package/dist/chunk-0w4rsycj.js +145 -0
  18. package/dist/chunk-0x9b2nmd.js +63 -0
  19. package/dist/chunk-0xjaqda8.js +1124 -0
  20. package/dist/chunk-1141xmr4.js +8 -0
  21. package/dist/chunk-13d1842d.js +154 -0
  22. package/dist/chunk-1921a6yb.js +32 -0
  23. package/dist/chunk-1ad8mk9g.js +527 -0
  24. package/dist/chunk-1ax41pws.js +28 -0
  25. package/dist/chunk-1c8z1b5v.js +16 -0
  26. package/dist/chunk-1cbn5kxf.js +7 -0
  27. package/dist/chunk-1eapde8a.js +726 -0
  28. package/dist/chunk-1h2famwb.js +49 -0
  29. package/dist/chunk-1jggnf7z.js +85 -0
  30. package/dist/chunk-1k92pn9c.js +32 -0
  31. package/dist/chunk-1qakq4sn.js +802 -0
  32. package/dist/chunk-1rvz0433.js +722 -0
  33. package/dist/chunk-1xkekb9y.js +19 -0
  34. package/dist/chunk-238g70xa.js +36 -0
  35. package/dist/chunk-24ge0eqa.js +106 -0
  36. package/dist/chunk-278vghwm.js +5395 -0
  37. package/dist/chunk-27xc1csx.js +104 -0
  38. package/dist/chunk-2a42s11t.js +412 -0
  39. package/dist/chunk-2aa02aw6.js +438 -0
  40. package/dist/chunk-2eykm0j0.js +20 -0
  41. package/dist/chunk-2gzv8nrw.js +205 -0
  42. package/dist/chunk-2k995y2x.js +880 -0
  43. package/dist/chunk-2nayx6q1.js +63 -0
  44. package/dist/chunk-2sd2w2h4.js +44 -0
  45. package/dist/chunk-2tw2ve8h.js +145 -0
  46. package/dist/chunk-30rst83v.js +168 -0
  47. package/dist/chunk-3aavh06g.js +1581 -0
  48. package/dist/chunk-3b0yvt2h.js +469 -0
  49. package/dist/chunk-3be7ka25.js +56 -0
  50. package/dist/chunk-3c25bcsw.js +17 -0
  51. package/dist/chunk-3dyxka97.js +584 -0
  52. package/dist/chunk-3f7rypmf.js +16544 -0
  53. package/dist/chunk-3fsd7f51.js +93 -0
  54. package/dist/chunk-3gqdqmzb.js +75 -0
  55. package/dist/chunk-3h8a89gy.js +46 -0
  56. package/dist/chunk-3m84sret.js +71 -0
  57. package/dist/chunk-3nb7j3js.js +96 -0
  58. package/dist/chunk-3p08nvn2.js +98 -0
  59. package/dist/chunk-3r09htpc.js +318 -0
  60. package/dist/chunk-3r24h7t6.js +113 -0
  61. package/dist/chunk-3rkfxjtq.js +80 -0
  62. package/dist/chunk-3tmk7dc2.js +604 -0
  63. package/dist/chunk-3w6s9m5w.js +16 -0
  64. package/dist/chunk-43qjymy5.js +92 -0
  65. package/dist/chunk-44fpr6jq.js +434 -0
  66. package/dist/chunk-45kxdsp8.js +444 -0
  67. package/dist/chunk-495d85x1.js +8066 -0
  68. package/dist/chunk-4ba796se.js +1095 -0
  69. package/dist/chunk-4g3v8y12.js +23 -0
  70. package/dist/chunk-4h53xj8n.js +3445 -0
  71. package/dist/chunk-4jm600zv.js +13 -0
  72. package/dist/chunk-4jy9dtwk.js +116 -0
  73. package/dist/chunk-4p60dd45.js +55 -0
  74. package/dist/chunk-4z0jsrqg.js +81 -0
  75. package/dist/chunk-4zfkzkt6.js +37 -0
  76. package/dist/chunk-55wgxwa9.js +13877 -0
  77. package/dist/chunk-5dbk24zg.js +890 -0
  78. package/dist/chunk-5hzvp4va.js +115 -0
  79. package/dist/chunk-5kbt1mbt.js +500 -0
  80. package/dist/chunk-5pen7vr8.js +176 -0
  81. package/dist/chunk-5r280eng.js +198 -0
  82. package/dist/chunk-5srym52s.js +88 -0
  83. package/dist/chunk-600kg7k6.js +41 -0
  84. package/dist/chunk-616w0qj3.js +160 -0
  85. package/dist/chunk-62jw1t8c.js +94 -0
  86. package/dist/chunk-62xmt9mk.js +372 -0
  87. package/dist/chunk-64bvg7c3.js +229 -0
  88. package/dist/chunk-65yhe4s0.js +281 -0
  89. package/dist/chunk-6aewh27m.js +102 -0
  90. package/dist/chunk-6bd8brc4.js +48 -0
  91. package/dist/chunk-6dj5t602.js +341 -0
  92. package/dist/chunk-6exxdk1p.js +6956 -0
  93. package/dist/chunk-6f5j8fs0.js +752 -0
  94. package/dist/chunk-6g62sjpf.js +328 -0
  95. package/dist/chunk-6gecq2ta.js +1493 -0
  96. package/dist/chunk-6gr3c3w9.js +378 -0
  97. package/dist/chunk-6kpbgc5w.js +23 -0
  98. package/dist/chunk-6kseqw79.js +154 -0
  99. package/dist/chunk-6mxm1qd0.js +40764 -0
  100. package/dist/chunk-6n2qgm9v.js +8 -0
  101. package/dist/chunk-6tq2v3rk.js +186 -0
  102. package/dist/chunk-6wsdhj3v.js +93 -0
  103. package/dist/chunk-6zw9fhgb.js +4389 -0
  104. package/dist/chunk-71grc1mw.js +111 -0
  105. package/dist/chunk-73rpbt04.js +1947 -0
  106. package/dist/chunk-748feghg.js +604 -0
  107. package/dist/chunk-75e8gtg9.js +84 -0
  108. package/dist/chunk-75th4717.js +780 -0
  109. package/dist/chunk-760252na.js +101 -0
  110. package/dist/chunk-7739pg2c.js +4261 -0
  111. package/dist/chunk-778fnx46.js +472 -0
  112. package/dist/chunk-77g09znh.js +391 -0
  113. package/dist/chunk-7aw745vx.js +40175 -0
  114. package/dist/chunk-7m2nd8da.js +110 -0
  115. package/dist/chunk-7n35vjtw.js +444 -0
  116. package/dist/chunk-7n5ss4sh.js +144 -0
  117. package/dist/chunk-7rjnxcfe.js +107 -0
  118. package/dist/chunk-7sb5axvf.js +122 -0
  119. package/dist/chunk-7wm5s02e.js +216 -0
  120. package/dist/chunk-7ymfj7m3.js +151 -0
  121. package/dist/chunk-7z8j9qfn.js +121 -0
  122. package/dist/chunk-7zsapntc.js +216 -0
  123. package/dist/chunk-805fhkfh.js +908 -0
  124. package/dist/chunk-80k1nj24.js +253 -0
  125. package/dist/chunk-83hfzbx3.js +10 -0
  126. package/dist/chunk-85cypsdd.js +92 -0
  127. package/dist/chunk-8760caxf.js +2644 -0
  128. package/dist/chunk-88f6egg6.js +387 -0
  129. package/dist/chunk-88r7kwgj.js +22 -0
  130. package/dist/chunk-89e1v45e.js +463 -0
  131. package/dist/chunk-8bedvdm1.js +32 -0
  132. package/dist/chunk-8c4x4vdz.js +177 -0
  133. package/dist/chunk-8hq5kk3y.js +44 -0
  134. package/dist/chunk-8ngxagxq.js +18 -0
  135. package/dist/chunk-8tnsngw2.js +31 -0
  136. package/dist/chunk-8wjnca8h.js +307 -0
  137. package/dist/chunk-8y12jxg8.js +10 -0
  138. package/dist/chunk-8ymf4e6z.js +48 -0
  139. package/dist/chunk-90wp6wez.js +10510 -0
  140. package/dist/chunk-92bp5bnf.js +650 -0
  141. package/dist/chunk-92q8sx5z.js +90 -0
  142. package/dist/chunk-958rtmtx.js +10476 -0
  143. package/dist/chunk-9e2kqv5g.js +125 -0
  144. package/dist/chunk-9f4f1hy5.js +281 -0
  145. package/dist/chunk-9gbamk79.js +93 -0
  146. package/dist/chunk-9k5s3ryh.js +167 -0
  147. package/dist/chunk-9xzfqm15.js +97 -0
  148. package/dist/chunk-9zgdvbm6.js +110 -0
  149. package/dist/chunk-a0p3q8jw.js +24 -0
  150. package/dist/chunk-a22sayzp.js +220 -0
  151. package/dist/chunk-a8ejc632.js +3094 -0
  152. package/dist/chunk-a8gj9d9z.js +120 -0
  153. package/dist/chunk-a9vdeb6y.js +258 -0
  154. package/dist/chunk-a9yev47v.js +674 -0
  155. package/dist/chunk-a9zh40sj.js +48 -0
  156. package/dist/chunk-ack5mfba.js +105 -0
  157. package/dist/chunk-ae76ded0.js +30 -0
  158. package/dist/chunk-akjw4dh6.js +538 -0
  159. package/dist/chunk-asc6wz4q.js +1188 -0
  160. package/dist/chunk-atqejh3p.js +273 -0
  161. package/dist/chunk-atv2e6b7.js +61 -0
  162. package/dist/chunk-axvvkwz8.js +1551 -0
  163. package/dist/chunk-azgz7kj9.js +38 -0
  164. package/dist/chunk-b3zave8q.js +275 -0
  165. package/dist/chunk-b4wg70y1.js +54 -0
  166. package/dist/chunk-b8b13qn2.js +100 -0
  167. package/dist/chunk-bg3mt9bm.js +28 -0
  168. package/dist/chunk-bh4jvcjn.js +91 -0
  169. package/dist/chunk-bhdt6k7w.js +15 -0
  170. package/dist/chunk-bm1qb16p.js +17 -0
  171. package/dist/chunk-bpvsd1j1.js +266 -0
  172. package/dist/chunk-bqfnp99q.js +477 -0
  173. package/dist/chunk-bsbmmfyt.js +17 -0
  174. package/dist/chunk-bsbt34jm.js +42 -0
  175. package/dist/chunk-c78akdhr.js +458 -0
  176. package/dist/chunk-cdz5yb0r.js +57 -0
  177. package/dist/chunk-cfv996bs.js +22 -0
  178. package/dist/chunk-cgfdkzhb.js +12 -0
  179. package/dist/chunk-ckh4r5er.js +257 -0
  180. package/dist/chunk-cmgjnvn9.js +89 -0
  181. package/dist/chunk-cpjgvay8.js +687 -0
  182. package/dist/chunk-crfryjx9.js +276 -0
  183. package/dist/chunk-ctw5jwcd.js +213 -0
  184. package/dist/chunk-cvy3vntc.js +65 -0
  185. package/dist/chunk-cwbzz504.js +94 -0
  186. package/dist/chunk-cy2hswr1.js +15 -0
  187. package/dist/chunk-cyejkay3.js +222 -0
  188. package/dist/chunk-d18z9pna.js +106 -0
  189. package/dist/chunk-d5cq0n0v.js +162 -0
  190. package/dist/chunk-db45aryp.js +50 -0
  191. package/dist/chunk-de8nqh0z.js +790 -0
  192. package/dist/chunk-dfw6h350.js +2336 -0
  193. package/dist/chunk-dgqrcy74.js +48 -0
  194. package/dist/chunk-dn75ptgd.js +184 -0
  195. package/dist/chunk-dnh7jtpb.js +37 -0
  196. package/dist/chunk-dpshyv9m.js +90 -0
  197. package/dist/chunk-dt8cdvnm.js +642 -0
  198. package/dist/chunk-dtxby6fr.js +306 -0
  199. package/dist/chunk-dv1wfr85.js +6373 -0
  200. package/dist/chunk-dw363edx.js +1154 -0
  201. package/dist/chunk-dwrdacck.js +62 -0
  202. package/dist/chunk-dxnnv5e3.js +276 -0
  203. package/dist/chunk-e3g8q4cn.js +1646 -0
  204. package/dist/chunk-e3m9k9s2.js +542 -0
  205. package/dist/chunk-e4q49asn.js +155 -0
  206. package/dist/chunk-e5pntxye.js +37 -0
  207. package/dist/chunk-e7393td6.js +42 -0
  208. package/dist/chunk-ead42yrh.js +87 -0
  209. package/dist/chunk-eb90vwvr.js +152 -0
  210. package/dist/chunk-ecvwk9hg.js +250 -0
  211. package/dist/chunk-edjd6aay.js +173 -0
  212. package/dist/chunk-eg0h8mtm.js +130 -0
  213. package/dist/chunk-ehtwnxpg.js +1591 -0
  214. package/dist/chunk-ek686gx1.js +94 -0
  215. package/dist/chunk-eqp1rfft.js +17 -0
  216. package/dist/chunk-evhwt0ar.js +1015 -0
  217. package/dist/chunk-ewadzrm8.js +103 -0
  218. package/dist/chunk-ewsgsw9h.js +172291 -0
  219. package/dist/chunk-f0pa0r7e.js +3198 -0
  220. package/dist/chunk-f2mhrmww.js +62 -0
  221. package/dist/chunk-f39zxvwn.js +401 -0
  222. package/dist/chunk-f46z54tq.js +374 -0
  223. package/dist/chunk-f5ma3nh5.js +3436 -0
  224. package/dist/chunk-f60q23az.js +3038 -0
  225. package/dist/chunk-f6v2nz57.js +107 -0
  226. package/dist/chunk-f6yjan38.js +38 -0
  227. package/dist/chunk-fbv4apne.js +51 -0
  228. package/dist/chunk-fem4s778.js +70 -0
  229. package/dist/chunk-fezm1kn8.js +376 -0
  230. package/dist/chunk-fm1n3ysp.js +6108 -0
  231. package/dist/chunk-frg83bfw.js +225 -0
  232. package/dist/chunk-fscm8db0.js +692 -0
  233. package/dist/chunk-fyc5fepv.js +10 -0
  234. package/dist/chunk-g0j0t6qk.js +26 -0
  235. package/dist/chunk-g0nc1ftf.js +849 -0
  236. package/dist/chunk-g338npwr.js +1061 -0
  237. package/dist/chunk-g3t0act8.js +8 -0
  238. package/dist/chunk-g75w4hw3.js +26 -0
  239. package/dist/chunk-g8vp82en.js +1866 -0
  240. package/dist/chunk-gax0fcbx.js +182 -0
  241. package/dist/chunk-gsz4dh3y.js +606 -0
  242. package/dist/chunk-gtfffm7h.js +440 -0
  243. package/dist/chunk-gver9zb9.js +420 -0
  244. package/dist/chunk-gyj242zr.js +20 -0
  245. package/dist/chunk-h0qngp9w.js +157 -0
  246. package/dist/chunk-h14kemnk.js +123 -0
  247. package/dist/chunk-h8wj1a74.js +8960 -0
  248. package/dist/chunk-h9mcb2eg.js +87 -0
  249. package/dist/chunk-h9nh2980.js +91 -0
  250. package/dist/chunk-hakdhagh.js +16606 -0
  251. package/dist/chunk-hbc6ymdv.js +55 -0
  252. package/dist/chunk-hh7cmy4k.js +20 -0
  253. package/dist/chunk-hjhc4cpt.js +69 -0
  254. package/dist/chunk-hjwez8qc.js +5018 -0
  255. package/dist/chunk-hk9xz7gk.js +118 -0
  256. package/dist/chunk-hqmz36b3.js +552 -0
  257. package/dist/chunk-hrzerbfw.js +1299 -0
  258. package/dist/chunk-hs8ph4p8.js +8 -0
  259. package/dist/chunk-ht1xwrnd.js +716 -0
  260. package/dist/chunk-hvmfg2dc.js +338 -0
  261. package/dist/chunk-hx2tr4ep.js +7189 -0
  262. package/dist/chunk-hzhe8ygc.js +547 -0
  263. package/dist/chunk-j2k4p94p.js +55 -0
  264. package/dist/chunk-j3a4p81y.js +184 -0
  265. package/dist/chunk-j49g6g3s.js +57 -0
  266. package/dist/chunk-j5d5hp9h.js +71 -0
  267. package/dist/chunk-j64ga6ta.js +8035 -0
  268. package/dist/chunk-j7tyxan1.js +116 -0
  269. package/dist/chunk-j8v4774z.js +424 -0
  270. package/dist/chunk-jafes477.js +29 -0
  271. package/dist/chunk-jd32zbps.js +15 -0
  272. package/dist/chunk-jdgeec04.js +4249 -0
  273. package/dist/chunk-jftd4jq5.js +4521 -0
  274. package/dist/chunk-jkxqhv6y.js +812 -0
  275. package/dist/chunk-jmfr6h0n.js +120 -0
  276. package/dist/chunk-jn4aabmx.js +40 -0
  277. package/dist/chunk-jnhkref0.js +30 -0
  278. package/dist/chunk-jsbpm1gz.js +27 -0
  279. package/dist/chunk-jtcyjc3k.js +5802 -0
  280. package/dist/chunk-jx817w05.js +11 -0
  281. package/dist/chunk-jzmz18nn.js +65 -0
  282. package/dist/chunk-k0p9w03v.js +4957 -0
  283. package/dist/chunk-k3dcdnck.js +89 -0
  284. package/dist/chunk-k3wadzcd.js +88 -0
  285. package/dist/chunk-kaeshsk1.js +713 -0
  286. package/dist/chunk-kbkey9ed.js +522 -0
  287. package/dist/chunk-kcwfhqbb.js +196 -0
  288. package/dist/chunk-key6jr7p.js +224 -0
  289. package/dist/chunk-knay8cy9.js +173 -0
  290. package/dist/chunk-kr3rg2y1.js +95 -0
  291. package/dist/chunk-kwekc97v.js +18 -0
  292. package/dist/chunk-m06q12hg.js +61 -0
  293. package/dist/chunk-m2mcpbhk.js +43 -0
  294. package/dist/chunk-m8v220gz.js +71 -0
  295. package/dist/chunk-mgpqy78h.js +208 -0
  296. package/dist/chunk-mkejwh4t.js +16 -0
  297. package/dist/chunk-mptyw5n1.js +107 -0
  298. package/dist/chunk-mqajm0dp.js +66 -0
  299. package/dist/chunk-mrksbgxj.js +490 -0
  300. package/dist/chunk-msjfc5ba.js +246 -0
  301. package/dist/chunk-mt25echc.js +6157 -0
  302. package/dist/chunk-mt3jfnr8.js +277 -0
  303. package/dist/chunk-mtn242d4.js +9300 -0
  304. package/dist/chunk-mzfkvave.js +169 -0
  305. package/dist/chunk-n0qaeaa5.js +256 -0
  306. package/dist/chunk-n1erf6kh.js +22820 -0
  307. package/dist/chunk-n2avk1r2.js +61 -0
  308. package/dist/chunk-n6atnpcq.js +765 -0
  309. package/dist/chunk-n7ttdtk0.js +641 -0
  310. package/dist/chunk-ncnfzby5.js +822 -0
  311. package/dist/chunk-ncnr1jtf.js +2058 -0
  312. package/dist/chunk-nerv0jvx.js +74 -0
  313. package/dist/chunk-ngd2abep.js +90 -0
  314. package/dist/chunk-nka1g8f4.js +773 -0
  315. package/dist/chunk-nnaxkc2z.js +128 -0
  316. package/dist/chunk-npyrtj8j.js +691 -0
  317. package/dist/chunk-nq0fxyxh.js +752 -0
  318. package/dist/chunk-nrmffak7.js +114 -0
  319. package/dist/chunk-nsz546wq.js +1170 -0
  320. package/dist/chunk-nt837qt9.js +21 -0
  321. package/dist/chunk-nv64x1z5.js +86 -0
  322. package/dist/chunk-nxsh6de2.js +1711 -0
  323. package/dist/chunk-nz4getcr.js +40 -0
  324. package/dist/chunk-p1f607pa.js +83 -0
  325. package/dist/chunk-p2816w9z.js +1486 -0
  326. package/dist/chunk-p2d5nh3g.js +342 -0
  327. package/dist/chunk-p4r5y02t.js +90 -0
  328. package/dist/chunk-p7g7pf3f.js +336 -0
  329. package/dist/chunk-pb4ad8r2.js +110 -0
  330. package/dist/chunk-pbrhz0zr.js +716 -0
  331. package/dist/chunk-ps49ymvj.js +43 -0
  332. package/dist/chunk-pwnt3veb.js +103 -0
  333. package/dist/chunk-pwwa7s62.js +11 -0
  334. package/dist/chunk-px3w0kde.js +299 -0
  335. package/dist/chunk-pzn777jb.js +756 -0
  336. package/dist/chunk-q25bjaev.js +15 -0
  337. package/dist/chunk-q5by3da6.js +8 -0
  338. package/dist/chunk-q6av622g.js +38 -0
  339. package/dist/chunk-q6xkvtf2.js +1318 -0
  340. package/dist/chunk-q81jx1tq.js +476 -0
  341. package/dist/chunk-qehb6fk5.js +339 -0
  342. package/dist/chunk-qj1avx1q.js +87 -0
  343. package/dist/chunk-qn2dxr66.js +105 -0
  344. package/dist/chunk-qnfx3qtx.js +617 -0
  345. package/dist/chunk-qp18kd4h.js +48 -0
  346. package/dist/chunk-qp2qdcda.js +100 -0
  347. package/dist/chunk-qpjy9tcf.js +133 -0
  348. package/dist/chunk-qqfa0dqg.js +2343 -0
  349. package/dist/chunk-qwh3htcz.js +202 -0
  350. package/dist/chunk-qz2x630m.js +49145 -0
  351. package/dist/chunk-r3vakcs1.js +496 -0
  352. package/dist/chunk-r66hz8j6.js +34 -0
  353. package/dist/chunk-r6b58y3x.js +17 -0
  354. package/dist/chunk-rekp48rk.js +62 -0
  355. package/dist/chunk-rn0v1hk8.js +34 -0
  356. package/dist/chunk-rs1xrs6m.js +534 -0
  357. package/dist/chunk-rs45skes.js +123 -0
  358. package/dist/chunk-rzszqp82.js +524 -0
  359. package/dist/chunk-s274nv8k.js +8 -0
  360. package/dist/chunk-s3pzvdss.js +50 -0
  361. package/dist/chunk-s9mesaw0.js +26840 -0
  362. package/dist/chunk-sd36yzx8.js +954 -0
  363. package/dist/chunk-sdj9b9wh.js +782 -0
  364. package/dist/chunk-sdw2q69p.js +227 -0
  365. package/dist/chunk-sfgp9cc0.js +130 -0
  366. package/dist/chunk-spqaamnc.js +63 -0
  367. package/dist/chunk-spzrs4df.js +73 -0
  368. package/dist/chunk-sxkr7k43.js +55 -0
  369. package/dist/chunk-szj5wvdy.js +28 -0
  370. package/dist/chunk-t0rgmccj.js +39 -0
  371. package/dist/chunk-t1nnzjgg.js +17 -0
  372. package/dist/chunk-t94fcnt8.js +566 -0
  373. package/dist/chunk-tjaqa99q.js +125 -0
  374. package/dist/chunk-tjq2evtw.js +328 -0
  375. package/dist/chunk-ts2p6bv1.js +224 -0
  376. package/dist/chunk-ttk5dzz8.js +25 -0
  377. package/dist/chunk-tw0q7ynt.js +59 -0
  378. package/dist/chunk-v02jkvgy.js +131 -0
  379. package/dist/chunk-v084bqt3.js +1529 -0
  380. package/dist/chunk-v0amythm.js +164 -0
  381. package/dist/chunk-v1kzp02e.js +785 -0
  382. package/dist/chunk-v1mgv1et.js +15 -0
  383. package/dist/chunk-v399mzxk.js +58 -0
  384. package/dist/chunk-v3gm2day.js +8 -0
  385. package/dist/chunk-v43hrrxp.js +71 -0
  386. package/dist/chunk-v6aqb2aj.js +102 -0
  387. package/dist/chunk-v78fj8by.js +145 -0
  388. package/dist/chunk-v7qmhjdn.js +1921 -0
  389. package/dist/chunk-v9smspw2.js +4301 -0
  390. package/dist/chunk-vdw93s4h.js +2431 -0
  391. package/dist/chunk-vest0y6x.js +3830 -0
  392. package/dist/chunk-vf5sd1nq.js +12 -0
  393. package/dist/chunk-vratq94g.js +349 -0
  394. package/dist/chunk-vrz7t3m3.js +20 -0
  395. package/dist/chunk-vtb185z9.js +70 -0
  396. package/dist/chunk-vx01rvg8.js +654 -0
  397. package/dist/chunk-vyc0rjyx.js +31 -0
  398. package/dist/chunk-vyjeh50y.js +2149 -0
  399. package/dist/chunk-vzpffsza.js +269 -0
  400. package/dist/chunk-w2ef3kxk.js +3353 -0
  401. package/dist/chunk-w2z5pqd3.js +336 -0
  402. package/dist/chunk-w3whm4mn.js +432 -0
  403. package/dist/chunk-w7wgpqcp.js +157 -0
  404. package/dist/chunk-waa00cvb.js +301 -0
  405. package/dist/chunk-wb0qm4es.js +155 -0
  406. package/dist/chunk-wbkahkdc.js +27 -0
  407. package/dist/chunk-wfz0qffj.js +3939 -0
  408. package/dist/chunk-wn0cx0pt.js +283 -0
  409. package/dist/chunk-wv6gzt9c.js +726 -0
  410. package/dist/chunk-wx42ycm4.js +998 -0
  411. package/dist/chunk-wxkpgy05.js +268 -0
  412. package/dist/chunk-wzpdet3m.js +843 -0
  413. package/dist/chunk-x0mwzt38.js +714 -0
  414. package/dist/chunk-x592wbfh.js +244 -0
  415. package/dist/chunk-x5pqsp9r.js +100 -0
  416. package/dist/chunk-x679thag.js +825 -0
  417. package/dist/chunk-x8b7vft8.js +132 -0
  418. package/dist/chunk-x8cftch7.js +119 -0
  419. package/dist/chunk-x9q7r885.js +348 -0
  420. package/dist/chunk-xawkt0vb.js +1585 -0
  421. package/dist/chunk-xdw5dv00.js +8 -0
  422. package/dist/chunk-xe9cc860.js +287 -0
  423. package/dist/chunk-xjr9c3vt.js +101 -0
  424. package/dist/chunk-xk7zaqta.js +21933 -0
  425. package/dist/chunk-xktbmawc.js +678 -0
  426. package/dist/chunk-xn6yw46v.js +140 -0
  427. package/dist/chunk-xsq9ae7x.js +90 -0
  428. package/dist/chunk-xszk7n10.js +14358 -0
  429. package/dist/chunk-xt8a5r1t.js +84 -0
  430. package/dist/chunk-xydyndkv.js +195 -0
  431. package/dist/chunk-xzt10yc5.js +60 -0
  432. package/dist/chunk-y04y95dr.js +91 -0
  433. package/dist/chunk-y1784krc.js +19 -0
  434. package/dist/chunk-y1x32h3x.js +128 -0
  435. package/dist/chunk-y3s7aww5.js +99 -0
  436. package/dist/chunk-y47cg3kz.js +42 -0
  437. package/dist/chunk-y7kzvepn.js +469 -0
  438. package/dist/chunk-y89kbsyc.js +287 -0
  439. package/dist/chunk-yd87p1c3.js +159 -0
  440. package/dist/chunk-yf3yw8fw.js +105 -0
  441. package/dist/chunk-ygbf0ezx.js +1391 -0
  442. package/dist/chunk-yjbxnshv.js +208 -0
  443. package/dist/chunk-ynednmqd.js +192 -0
  444. package/dist/chunk-yvhez44y.js +259 -0
  445. package/dist/chunk-ywxd4qw4.js +22 -0
  446. package/dist/chunk-yzrmgpy4.js +117 -0
  447. package/dist/chunk-z0b2vb24.js +862 -0
  448. package/dist/chunk-z1zj044v.js +655 -0
  449. package/dist/chunk-z2dp53wn.js +17 -0
  450. package/dist/chunk-z3w0xasa.js +165 -0
  451. package/dist/chunk-z7ycmrb3.js +644 -0
  452. package/dist/chunk-zh11tdkb.js +347 -0
  453. package/dist/chunk-zk2wsm7d.js +15 -0
  454. package/dist/chunk-zqfqcf22.js +229 -0
  455. package/dist/chunk-zqk2j8px.js +699 -0
  456. package/dist/chunk-zqvsc10j.js +2833 -0
  457. package/dist/chunk-zsfxha74.js +17655 -0
  458. package/dist/chunk-zvc4snyb.js +117 -0
  459. package/dist/cli.js +194 -0
  460. package/package.json +173 -0
@@ -0,0 +1,765 @@
1
+ // @bun
2
+ import {
3
+ CLAUDE_CONFIG_DIRECTORIES,
4
+ createBaseHookInput,
5
+ executeFileSuggestionCommand,
6
+ init_hooks1 as init_hooks,
7
+ init_markdownConfigLoader,
8
+ init_ripgrep,
9
+ loadMarkdownFilesForSubdir,
10
+ ripGrep
11
+ } from "./chunk-ewsgsw9h.js";
12
+ import {
13
+ require_ignore
14
+ } from "./chunk-v9smspw2.js";
15
+ import {
16
+ getGlobalConfig,
17
+ getInitialSettings,
18
+ init_config1 as init_config,
19
+ init_settings1 as init_settings
20
+ } from "./chunk-3f7rypmf.js";
21
+ import {
22
+ expandPath,
23
+ init_path
24
+ } from "./chunk-ctw5jwcd.js";
25
+ import {
26
+ init_analytics,
27
+ logEvent
28
+ } from "./chunk-f2mhrmww.js";
29
+ import {
30
+ findGitRoot,
31
+ gitExe,
32
+ init_git
33
+ } from "./chunk-hrzerbfw.js";
34
+ import {
35
+ execFileNoThrowWithCwd,
36
+ init_execFileNoThrow
37
+ } from "./chunk-hx2tr4ep.js";
38
+ import {
39
+ init_log,
40
+ logError
41
+ } from "./chunk-p7g7pf3f.js";
42
+ import {
43
+ getCwd,
44
+ init_cwd
45
+ } from "./chunk-8bedvdm1.js";
46
+ import {
47
+ errorMessage,
48
+ getFsImplementation,
49
+ init_debug,
50
+ init_errors,
51
+ init_fsOperations,
52
+ logForDebugging
53
+ } from "./chunk-nxsh6de2.js";
54
+ import {
55
+ createSignal,
56
+ init_signal
57
+ } from "./chunk-qqfa0dqg.js";
58
+ import {
59
+ __esm,
60
+ __toESM
61
+ } from "./chunk-qp2qdcda.js";
62
+
63
+ // src/native-ts/file-index/index.ts
64
+ class FileIndex {
65
+ paths = [];
66
+ lowerPaths = [];
67
+ charBits = new Int32Array(0);
68
+ pathLens = new Uint16Array(0);
69
+ topLevelCache = null;
70
+ readyCount = 0;
71
+ loadFromFileList(fileList) {
72
+ const seen = new Set;
73
+ const paths = [];
74
+ for (const line of fileList) {
75
+ if (line.length > 0 && !seen.has(line)) {
76
+ seen.add(line);
77
+ paths.push(line);
78
+ }
79
+ }
80
+ this.buildIndex(paths);
81
+ }
82
+ loadFromFileListAsync(fileList) {
83
+ let markQueryable = () => {};
84
+ const queryable = new Promise((resolve) => {
85
+ markQueryable = resolve;
86
+ });
87
+ const done = this.buildAsync(fileList, markQueryable);
88
+ return { queryable, done };
89
+ }
90
+ async buildAsync(fileList, markQueryable) {
91
+ const seen = new Set;
92
+ const paths = [];
93
+ let chunkStart = performance.now();
94
+ for (let i = 0;i < fileList.length; i++) {
95
+ const line = fileList[i];
96
+ if (line.length > 0 && !seen.has(line)) {
97
+ seen.add(line);
98
+ paths.push(line);
99
+ }
100
+ if ((i & 255) === 255 && performance.now() - chunkStart > CHUNK_MS) {
101
+ await yieldToEventLoop();
102
+ chunkStart = performance.now();
103
+ }
104
+ }
105
+ this.resetArrays(paths);
106
+ chunkStart = performance.now();
107
+ let firstChunk = true;
108
+ for (let i = 0;i < paths.length; i++) {
109
+ this.indexPath(i);
110
+ if ((i & 255) === 255 && performance.now() - chunkStart > CHUNK_MS) {
111
+ this.readyCount = i + 1;
112
+ if (firstChunk) {
113
+ markQueryable();
114
+ firstChunk = false;
115
+ }
116
+ await yieldToEventLoop();
117
+ chunkStart = performance.now();
118
+ }
119
+ }
120
+ this.readyCount = paths.length;
121
+ markQueryable();
122
+ }
123
+ buildIndex(paths) {
124
+ this.resetArrays(paths);
125
+ for (let i = 0;i < paths.length; i++) {
126
+ this.indexPath(i);
127
+ }
128
+ this.readyCount = paths.length;
129
+ }
130
+ resetArrays(paths) {
131
+ const n = paths.length;
132
+ this.paths = paths;
133
+ this.lowerPaths = new Array(n);
134
+ this.charBits = new Int32Array(n);
135
+ this.pathLens = new Uint16Array(n);
136
+ this.readyCount = 0;
137
+ this.topLevelCache = computeTopLevelEntries(paths, TOP_LEVEL_CACHE_LIMIT);
138
+ }
139
+ indexPath(i) {
140
+ const lp = this.paths[i].toLowerCase();
141
+ this.lowerPaths[i] = lp;
142
+ const len = lp.length;
143
+ this.pathLens[i] = len;
144
+ let bits = 0;
145
+ for (let j = 0;j < len; j++) {
146
+ const c = lp.charCodeAt(j);
147
+ if (c >= 97 && c <= 122)
148
+ bits |= 1 << c - 97;
149
+ }
150
+ this.charBits[i] = bits;
151
+ }
152
+ search(query, limit) {
153
+ if (limit <= 0)
154
+ return [];
155
+ if (query.length === 0) {
156
+ if (this.topLevelCache) {
157
+ return this.topLevelCache.slice(0, limit);
158
+ }
159
+ return [];
160
+ }
161
+ const caseSensitive = query !== query.toLowerCase();
162
+ const needle = caseSensitive ? query : query.toLowerCase();
163
+ const nLen = Math.min(needle.length, MAX_QUERY_LEN);
164
+ const needleChars = new Array(nLen);
165
+ let needleBitmap = 0;
166
+ for (let j = 0;j < nLen; j++) {
167
+ const ch = needle.charAt(j);
168
+ needleChars[j] = ch;
169
+ const cc = ch.charCodeAt(0);
170
+ if (cc >= 97 && cc <= 122)
171
+ needleBitmap |= 1 << cc - 97;
172
+ }
173
+ const scoreCeiling = nLen * (SCORE_MATCH + BONUS_BOUNDARY) + BONUS_FIRST_CHAR + 32;
174
+ const topK = [];
175
+ let threshold = -Infinity;
176
+ const { paths, lowerPaths, charBits, pathLens, readyCount } = this;
177
+ outer:
178
+ for (let i = 0;i < readyCount; i++) {
179
+ if ((charBits[i] & needleBitmap) !== needleBitmap)
180
+ continue;
181
+ const haystack = caseSensitive ? paths[i] : lowerPaths[i];
182
+ const firstChar = needleChars[0];
183
+ let startCount = 0;
184
+ const startPositions = [];
185
+ const firstPos = haystack.indexOf(firstChar);
186
+ if (firstPos === -1)
187
+ continue;
188
+ startPositions[startCount++] = firstPos;
189
+ for (let bp = firstPos + 1;bp < haystack.length; bp++) {
190
+ if (haystack.charCodeAt(bp) !== firstChar.charCodeAt(0))
191
+ continue;
192
+ const prevCode = haystack.charCodeAt(bp - 1);
193
+ if (prevCode === 47 || prevCode === 92 || prevCode === 45 || prevCode === 95 || prevCode === 46 || prevCode === 32) {
194
+ startPositions[startCount++] = bp;
195
+ }
196
+ }
197
+ const originalPath = paths[i];
198
+ const hLen = pathLens[i];
199
+ const lengthBonus = Math.max(0, 32 - (hLen >> 2));
200
+ let bestScore = -Infinity;
201
+ for (let si = 0;si < startCount; si++) {
202
+ posBuf[0] = startPositions[si];
203
+ let gapPenalty = 0;
204
+ let consecBonus = 0;
205
+ let prev = posBuf[0];
206
+ let matched = true;
207
+ for (let j = 1;j < nLen; j++) {
208
+ const pos = haystack.indexOf(needleChars[j], prev + 1);
209
+ if (pos === -1) {
210
+ matched = false;
211
+ break;
212
+ }
213
+ posBuf[j] = pos;
214
+ const gap = pos - prev - 1;
215
+ if (gap === 0)
216
+ consecBonus += BONUS_CONSECUTIVE;
217
+ else
218
+ gapPenalty += PENALTY_GAP_START + gap * PENALTY_GAP_EXTENSION;
219
+ prev = pos;
220
+ }
221
+ if (!matched)
222
+ continue;
223
+ if (topK.length === limit && scoreCeiling + consecBonus - gapPenalty + lengthBonus <= threshold) {
224
+ continue;
225
+ }
226
+ let score2 = nLen * SCORE_MATCH + consecBonus - gapPenalty;
227
+ score2 += scoreBonusAt(originalPath, posBuf[0], true);
228
+ for (let j = 1;j < nLen; j++) {
229
+ score2 += scoreBonusAt(originalPath, posBuf[j], false);
230
+ }
231
+ score2 += lengthBonus;
232
+ if (score2 > bestScore)
233
+ bestScore = score2;
234
+ }
235
+ if (bestScore === -Infinity)
236
+ continue;
237
+ const score = bestScore;
238
+ if (topK.length < limit) {
239
+ topK.push({ path: originalPath, fuzzScore: score });
240
+ if (topK.length === limit) {
241
+ topK.sort((a, b) => a.fuzzScore - b.fuzzScore);
242
+ threshold = topK[0].fuzzScore;
243
+ }
244
+ } else if (score > threshold) {
245
+ let lo = 0;
246
+ let hi = topK.length;
247
+ while (lo < hi) {
248
+ const mid = lo + hi >> 1;
249
+ if (topK[mid].fuzzScore < score)
250
+ lo = mid + 1;
251
+ else
252
+ hi = mid;
253
+ }
254
+ topK.splice(lo, 0, { path: originalPath, fuzzScore: score });
255
+ topK.shift();
256
+ threshold = topK[0].fuzzScore;
257
+ }
258
+ }
259
+ topK.sort((a, b) => b.fuzzScore - a.fuzzScore);
260
+ const matchCount = topK.length;
261
+ const denom = Math.max(matchCount, 1);
262
+ const results = new Array(matchCount);
263
+ for (let i = 0;i < matchCount; i++) {
264
+ const path = topK[i].path;
265
+ const positionScore = i / denom;
266
+ const finalScore = path.includes("test") ? Math.min(positionScore * 1.05, 1) : positionScore;
267
+ results[i] = { path, score: finalScore };
268
+ }
269
+ return results;
270
+ }
271
+ }
272
+ function scoreBonusAt(path, pos, first) {
273
+ if (pos === 0)
274
+ return first ? BONUS_FIRST_CHAR : 0;
275
+ const prevCh = path.charCodeAt(pos - 1);
276
+ if (isBoundary(prevCh))
277
+ return BONUS_BOUNDARY;
278
+ if (isLower(prevCh) && isUpper(path.charCodeAt(pos)))
279
+ return BONUS_CAMEL;
280
+ return 0;
281
+ }
282
+ function isBoundary(code) {
283
+ return code === 47 || code === 92 || code === 45 || code === 95 || code === 46 || code === 32;
284
+ }
285
+ function isLower(code) {
286
+ return code >= 97 && code <= 122;
287
+ }
288
+ function isUpper(code) {
289
+ return code >= 65 && code <= 90;
290
+ }
291
+ function yieldToEventLoop() {
292
+ return new Promise((resolve) => setImmediate(resolve));
293
+ }
294
+ function computeTopLevelEntries(paths, limit) {
295
+ const topLevel = new Set;
296
+ for (const p of paths) {
297
+ let end = p.length;
298
+ for (let i = 0;i < p.length; i++) {
299
+ const c = p.charCodeAt(i);
300
+ if (c === 47 || c === 92) {
301
+ end = i;
302
+ break;
303
+ }
304
+ }
305
+ const segment = p.slice(0, end);
306
+ if (segment.length > 0) {
307
+ topLevel.add(segment);
308
+ if (topLevel.size >= limit)
309
+ break;
310
+ }
311
+ }
312
+ const sorted = Array.from(topLevel);
313
+ sorted.sort((a, b) => {
314
+ const lenDiff = a.length - b.length;
315
+ if (lenDiff !== 0)
316
+ return lenDiff;
317
+ return a < b ? -1 : a > b ? 1 : 0;
318
+ });
319
+ return sorted.slice(0, limit).map((path) => ({ path, score: 0 }));
320
+ }
321
+ var SCORE_MATCH = 16, BONUS_BOUNDARY = 8, BONUS_CAMEL = 6, BONUS_CONSECUTIVE = 4, BONUS_FIRST_CHAR = 8, PENALTY_GAP_START = 3, PENALTY_GAP_EXTENSION = 1, TOP_LEVEL_CACHE_LIMIT = 100, MAX_QUERY_LEN = 64, CHUNK_MS = 4, posBuf;
322
+ var init_file_index = __esm(() => {
323
+ posBuf = new Int32Array(MAX_QUERY_LEN);
324
+ });
325
+
326
+ // src/hooks/fileSuggestions.ts
327
+ import { statSync } from "fs";
328
+ import * as path from "path";
329
+ function getFileIndex() {
330
+ if (!fileIndex) {
331
+ fileIndex = new FileIndex;
332
+ }
333
+ return fileIndex;
334
+ }
335
+ function clearFileSuggestionCaches() {
336
+ fileIndex = null;
337
+ fileListRefreshPromise = null;
338
+ cacheGeneration++;
339
+ untrackedFetchPromise = null;
340
+ cachedTrackedFiles = [];
341
+ cachedConfigFiles = [];
342
+ cachedTrackedDirs = [];
343
+ indexBuildComplete.clear();
344
+ ignorePatternsCache = null;
345
+ ignorePatternsCacheKey = null;
346
+ lastRefreshMs = 0;
347
+ lastGitIndexMtime = null;
348
+ loadedTrackedSignature = null;
349
+ loadedMergedSignature = null;
350
+ }
351
+ function pathListSignature(paths) {
352
+ const n = paths.length;
353
+ const stride = Math.max(1, Math.floor(n / 500));
354
+ let h = 2166136261 | 0;
355
+ for (let i = 0;i < n; i += stride) {
356
+ const p = paths[i];
357
+ for (let j = 0;j < p.length; j++) {
358
+ h = (h ^ p.charCodeAt(j)) * 16777619 | 0;
359
+ }
360
+ h = h * 16777619 | 0;
361
+ }
362
+ if (n > 0) {
363
+ const last = paths[n - 1];
364
+ for (let j = 0;j < last.length; j++) {
365
+ h = (h ^ last.charCodeAt(j)) * 16777619 | 0;
366
+ }
367
+ }
368
+ return `${n}:${(h >>> 0).toString(16)}`;
369
+ }
370
+ function getGitIndexMtime() {
371
+ const repoRoot = findGitRoot(getCwd());
372
+ if (!repoRoot)
373
+ return null;
374
+ try {
375
+ return statSync(path.join(repoRoot, ".git", "index")).mtimeMs;
376
+ } catch {
377
+ return null;
378
+ }
379
+ }
380
+ function normalizeGitPaths(files, repoRoot, originalCwd) {
381
+ if (originalCwd === repoRoot) {
382
+ return files;
383
+ }
384
+ return files.map((f) => {
385
+ const absolutePath = path.join(repoRoot, f);
386
+ return path.relative(originalCwd, absolutePath);
387
+ });
388
+ }
389
+ async function mergeUntrackedIntoNormalizedCache(normalizedUntracked) {
390
+ if (normalizedUntracked.length === 0)
391
+ return;
392
+ if (!fileIndex || cachedTrackedFiles.length === 0)
393
+ return;
394
+ const untrackedDirs = await getDirectoryNamesAsync(normalizedUntracked);
395
+ const allPaths = [
396
+ ...cachedTrackedFiles,
397
+ ...cachedConfigFiles,
398
+ ...cachedTrackedDirs,
399
+ ...normalizedUntracked,
400
+ ...untrackedDirs
401
+ ];
402
+ const sig = pathListSignature(allPaths);
403
+ if (sig === loadedMergedSignature) {
404
+ logForDebugging(`[FileIndex] skipped index rebuild \u2014 merged paths unchanged`);
405
+ return;
406
+ }
407
+ await fileIndex.loadFromFileListAsync(allPaths).done;
408
+ loadedMergedSignature = sig;
409
+ logForDebugging(`[FileIndex] rebuilt index with ${cachedTrackedFiles.length} tracked + ${normalizedUntracked.length} untracked files`);
410
+ }
411
+ async function loadRipgrepIgnorePatterns(repoRoot, cwd) {
412
+ const cacheKey = `${repoRoot}:${cwd}`;
413
+ if (ignorePatternsCacheKey === cacheKey) {
414
+ return ignorePatternsCache;
415
+ }
416
+ const fs = getFsImplementation();
417
+ const ignoreFiles = [".ignore", ".rgignore"];
418
+ const directories = [...new Set([repoRoot, cwd])];
419
+ const ig = import_ignore.default();
420
+ let hasPatterns = false;
421
+ const paths = directories.flatMap((dir) => ignoreFiles.map((f) => path.join(dir, f)));
422
+ const contents = await Promise.all(paths.map((p) => fs.readFile(p, { encoding: "utf8" }).catch(() => null)));
423
+ for (const [i, content] of contents.entries()) {
424
+ if (content === null)
425
+ continue;
426
+ ig.add(content);
427
+ hasPatterns = true;
428
+ logForDebugging(`[FileIndex] loaded ignore patterns from ${paths[i]}`);
429
+ }
430
+ const result = hasPatterns ? ig : null;
431
+ ignorePatternsCache = result;
432
+ ignorePatternsCacheKey = cacheKey;
433
+ return result;
434
+ }
435
+ async function getFilesUsingGit(abortSignal, respectGitignore) {
436
+ const startTime = Date.now();
437
+ logForDebugging(`[FileIndex] getFilesUsingGit called`);
438
+ const cwd = getCwd();
439
+ const repoRoot = findGitRoot(cwd);
440
+ if (!repoRoot) {
441
+ logForDebugging(`[FileIndex] not a git repo, returning null`);
442
+ return null;
443
+ }
444
+ try {
445
+ const lsFilesStart = Date.now();
446
+ const trackedResult = await execFileNoThrowWithCwd(gitExe(), ["-c", "core.quotepath=false", "ls-files", "--recurse-submodules"], { timeout: 5000, abortSignal, cwd: repoRoot });
447
+ logForDebugging(`[FileIndex] git ls-files (tracked) took ${Date.now() - lsFilesStart}ms`);
448
+ if (trackedResult.code !== 0) {
449
+ logForDebugging(`[FileIndex] git ls-files failed (code=${trackedResult.code}, stderr=${trackedResult.stderr}), falling back to ripgrep`);
450
+ return null;
451
+ }
452
+ const trackedFiles = trackedResult.stdout.trim().split(`
453
+ `).filter(Boolean);
454
+ let normalizedTracked = normalizeGitPaths(trackedFiles, repoRoot, cwd);
455
+ const ignorePatterns = await loadRipgrepIgnorePatterns(repoRoot, cwd);
456
+ if (ignorePatterns) {
457
+ const beforeCount = normalizedTracked.length;
458
+ normalizedTracked = ignorePatterns.filter(normalizedTracked);
459
+ logForDebugging(`[FileIndex] applied ignore patterns: ${beforeCount} -> ${normalizedTracked.length} files`);
460
+ }
461
+ cachedTrackedFiles = normalizedTracked;
462
+ const duration = Date.now() - startTime;
463
+ logForDebugging(`[FileIndex] git ls-files: ${normalizedTracked.length} tracked files in ${duration}ms`);
464
+ logEvent("tengu_file_suggestions_git_ls_files", {
465
+ file_count: normalizedTracked.length,
466
+ tracked_count: normalizedTracked.length,
467
+ untracked_count: 0,
468
+ duration_ms: duration
469
+ });
470
+ if (!untrackedFetchPromise) {
471
+ const untrackedArgs = respectGitignore ? [
472
+ "-c",
473
+ "core.quotepath=false",
474
+ "ls-files",
475
+ "--others",
476
+ "--exclude-standard"
477
+ ] : ["-c", "core.quotepath=false", "ls-files", "--others"];
478
+ const generation = cacheGeneration;
479
+ untrackedFetchPromise = execFileNoThrowWithCwd(gitExe(), untrackedArgs, {
480
+ timeout: 1e4,
481
+ cwd: repoRoot
482
+ }).then(async (untrackedResult) => {
483
+ if (generation !== cacheGeneration) {
484
+ return;
485
+ }
486
+ if (untrackedResult.code === 0) {
487
+ const rawUntrackedFiles = untrackedResult.stdout.trim().split(`
488
+ `).filter(Boolean);
489
+ let normalizedUntracked = normalizeGitPaths(rawUntrackedFiles, repoRoot, cwd);
490
+ const ignorePatterns2 = await loadRipgrepIgnorePatterns(repoRoot, cwd);
491
+ if (ignorePatterns2 && normalizedUntracked.length > 0) {
492
+ const beforeCount = normalizedUntracked.length;
493
+ normalizedUntracked = ignorePatterns2.filter(normalizedUntracked);
494
+ logForDebugging(`[FileIndex] applied ignore patterns to untracked: ${beforeCount} -> ${normalizedUntracked.length} files`);
495
+ }
496
+ logForDebugging(`[FileIndex] background untracked fetch: ${normalizedUntracked.length} files`);
497
+ mergeUntrackedIntoNormalizedCache(normalizedUntracked);
498
+ }
499
+ }).catch((error) => {
500
+ logForDebugging(`[FileIndex] background untracked fetch failed: ${error}`);
501
+ }).finally(() => {
502
+ untrackedFetchPromise = null;
503
+ });
504
+ }
505
+ return normalizedTracked;
506
+ } catch (error) {
507
+ logForDebugging(`[FileIndex] git ls-files error: ${errorMessage(error)}`);
508
+ return null;
509
+ }
510
+ }
511
+ async function getDirectoryNamesAsync(files) {
512
+ const directoryNames = new Set;
513
+ let chunkStart = performance.now();
514
+ for (let i = 0;i < files.length; i++) {
515
+ collectDirectoryNames(files, i, i + 1, directoryNames);
516
+ if ((i & 255) === 255 && performance.now() - chunkStart > CHUNK_MS) {
517
+ await yieldToEventLoop();
518
+ chunkStart = performance.now();
519
+ }
520
+ }
521
+ return [...directoryNames].map((d) => d + path.sep);
522
+ }
523
+ function collectDirectoryNames(files, start, end, out) {
524
+ for (let i = start;i < end; i++) {
525
+ let currentDir = path.dirname(files[i]);
526
+ while (currentDir !== "." && !out.has(currentDir)) {
527
+ const parent = path.dirname(currentDir);
528
+ if (parent === currentDir)
529
+ break;
530
+ out.add(currentDir);
531
+ currentDir = parent;
532
+ }
533
+ }
534
+ }
535
+ async function getClaudeConfigFiles(cwd) {
536
+ const markdownFileArrays = await Promise.all(CLAUDE_CONFIG_DIRECTORIES.map((subdir) => loadMarkdownFilesForSubdir(subdir, cwd)));
537
+ return markdownFileArrays.flatMap((markdownFiles) => markdownFiles.map((f) => f.filePath));
538
+ }
539
+ async function getProjectFiles(abortSignal, respectGitignore) {
540
+ logForDebugging(`[FileIndex] getProjectFiles called, respectGitignore=${respectGitignore}`);
541
+ const gitFiles = await getFilesUsingGit(abortSignal, respectGitignore);
542
+ if (gitFiles !== null) {
543
+ logForDebugging(`[FileIndex] using git ls-files result (${gitFiles.length} files)`);
544
+ return gitFiles;
545
+ }
546
+ logForDebugging(`[FileIndex] git ls-files returned null, falling back to ripgrep`);
547
+ const startTime = Date.now();
548
+ const rgArgs = [
549
+ "--files",
550
+ "--follow",
551
+ "--hidden",
552
+ "--glob",
553
+ "!.git/",
554
+ "--glob",
555
+ "!.svn/",
556
+ "--glob",
557
+ "!.hg/",
558
+ "--glob",
559
+ "!.bzr/",
560
+ "--glob",
561
+ "!.jj/",
562
+ "--glob",
563
+ "!.sl/"
564
+ ];
565
+ if (!respectGitignore) {
566
+ rgArgs.push("--no-ignore-vcs");
567
+ }
568
+ const files = await ripGrep(rgArgs, ".", abortSignal);
569
+ const relativePaths = files.map((f) => path.relative(getCwd(), f));
570
+ const duration = Date.now() - startTime;
571
+ logForDebugging(`[FileIndex] ripgrep: ${relativePaths.length} files in ${duration}ms`);
572
+ logEvent("tengu_file_suggestions_ripgrep", {
573
+ file_count: relativePaths.length,
574
+ duration_ms: duration
575
+ });
576
+ return relativePaths;
577
+ }
578
+ async function getPathsForSuggestions() {
579
+ const signal = AbortSignal.timeout(1e4);
580
+ const index = getFileIndex();
581
+ try {
582
+ const projectSettings = getInitialSettings();
583
+ const globalConfig = getGlobalConfig();
584
+ const respectGitignore = projectSettings.respectGitignore ?? globalConfig.respectGitignore ?? true;
585
+ const cwd = getCwd();
586
+ const [projectFiles, configFiles] = await Promise.all([
587
+ getProjectFiles(signal, respectGitignore),
588
+ getClaudeConfigFiles(cwd)
589
+ ]);
590
+ cachedConfigFiles = configFiles;
591
+ const allFiles = [...projectFiles, ...configFiles];
592
+ const directories = await getDirectoryNamesAsync(allFiles);
593
+ cachedTrackedDirs = directories;
594
+ const allPathsList = [...directories, ...allFiles];
595
+ const sig = pathListSignature(allPathsList);
596
+ if (sig !== loadedTrackedSignature) {
597
+ await index.loadFromFileListAsync(allPathsList).done;
598
+ loadedTrackedSignature = sig;
599
+ loadedMergedSignature = null;
600
+ } else {
601
+ logForDebugging(`[FileIndex] skipped index rebuild \u2014 tracked paths unchanged`);
602
+ }
603
+ } catch (error) {
604
+ logError(error);
605
+ }
606
+ return index;
607
+ }
608
+ function findCommonPrefix(a, b) {
609
+ const minLength = Math.min(a.length, b.length);
610
+ let i = 0;
611
+ while (i < minLength && a[i] === b[i]) {
612
+ i++;
613
+ }
614
+ return a.substring(0, i);
615
+ }
616
+ function findLongestCommonPrefix(suggestions) {
617
+ if (suggestions.length === 0)
618
+ return "";
619
+ const strings = suggestions.map((item) => item.displayText);
620
+ let prefix = strings[0];
621
+ for (let i = 1;i < strings.length; i++) {
622
+ const currentString = strings[i];
623
+ prefix = findCommonPrefix(prefix, currentString);
624
+ if (prefix === "")
625
+ return "";
626
+ }
627
+ return prefix;
628
+ }
629
+ function createFileSuggestionItem(filePath, score) {
630
+ return {
631
+ id: `file-${filePath}`,
632
+ displayText: filePath,
633
+ metadata: score !== undefined ? { score } : undefined
634
+ };
635
+ }
636
+ function findMatchingFiles(fileIndex2, partialPath) {
637
+ const results = fileIndex2.search(partialPath, MAX_SUGGESTIONS);
638
+ return results.map((result) => createFileSuggestionItem(result.path, result.score));
639
+ }
640
+ function startBackgroundCacheRefresh() {
641
+ if (fileListRefreshPromise) {
642
+ return;
643
+ }
644
+ const indexMtime = getGitIndexMtime();
645
+ if (fileIndex) {
646
+ const gitStateChanged = indexMtime !== null && indexMtime !== lastGitIndexMtime;
647
+ if (!gitStateChanged && Date.now() - lastRefreshMs < REFRESH_THROTTLE_MS) {
648
+ return;
649
+ }
650
+ }
651
+ const generation = cacheGeneration;
652
+ const refreshStart = Date.now();
653
+ getFileIndex();
654
+ fileListRefreshPromise = getPathsForSuggestions().then((result) => {
655
+ if (generation !== cacheGeneration) {
656
+ return result;
657
+ }
658
+ fileListRefreshPromise = null;
659
+ indexBuildComplete.emit();
660
+ lastGitIndexMtime = indexMtime;
661
+ lastRefreshMs = Date.now();
662
+ logForDebugging(`[FileIndex] cache refresh completed in ${Date.now() - refreshStart}ms`);
663
+ return result;
664
+ }).catch((error) => {
665
+ logForDebugging(`[FileIndex] Cache refresh failed: ${errorMessage(error)}`);
666
+ logError(error);
667
+ if (generation === cacheGeneration) {
668
+ fileListRefreshPromise = null;
669
+ }
670
+ return getFileIndex();
671
+ });
672
+ }
673
+ async function getTopLevelPaths() {
674
+ const fs = getFsImplementation();
675
+ const cwd = getCwd();
676
+ try {
677
+ const entries = await fs.readdir(cwd);
678
+ return entries.map((entry) => {
679
+ const fullPath = path.join(cwd, entry.name);
680
+ const relativePath = path.relative(cwd, fullPath);
681
+ return entry.isDirectory() ? relativePath + path.sep : relativePath;
682
+ });
683
+ } catch (error) {
684
+ logError(error);
685
+ return [];
686
+ }
687
+ }
688
+ async function generateFileSuggestions(partialPath, showOnEmpty = false) {
689
+ if (!partialPath && !showOnEmpty) {
690
+ return [];
691
+ }
692
+ if (getInitialSettings().fileSuggestion?.type === "command") {
693
+ const input = {
694
+ ...createBaseHookInput(),
695
+ query: partialPath
696
+ };
697
+ const results = await executeFileSuggestionCommand(input);
698
+ return results.slice(0, MAX_SUGGESTIONS).map(createFileSuggestionItem);
699
+ }
700
+ if (partialPath === "" || partialPath === "." || partialPath === "./") {
701
+ const topLevelPaths = await getTopLevelPaths();
702
+ startBackgroundCacheRefresh();
703
+ return topLevelPaths.slice(0, MAX_SUGGESTIONS).map(createFileSuggestionItem);
704
+ }
705
+ const startTime = Date.now();
706
+ try {
707
+ const wasBuilding = fileListRefreshPromise !== null;
708
+ startBackgroundCacheRefresh();
709
+ let normalizedPath = partialPath;
710
+ const currentDirPrefix = "." + path.sep;
711
+ if (partialPath.startsWith(currentDirPrefix)) {
712
+ normalizedPath = partialPath.substring(2);
713
+ }
714
+ if (normalizedPath.startsWith("~")) {
715
+ normalizedPath = expandPath(normalizedPath);
716
+ }
717
+ const matches = fileIndex ? findMatchingFiles(fileIndex, normalizedPath) : [];
718
+ const duration = Date.now() - startTime;
719
+ logForDebugging(`[FileIndex] generateFileSuggestions: ${matches.length} results in ${duration}ms (${wasBuilding ? "partial" : "full"} index)`);
720
+ logEvent("tengu_file_suggestions_query", {
721
+ duration_ms: duration,
722
+ cache_hit: !wasBuilding,
723
+ result_count: matches.length,
724
+ query_length: partialPath.length
725
+ });
726
+ return matches;
727
+ } catch (error) {
728
+ logError(error);
729
+ return [];
730
+ }
731
+ }
732
+ function applyFileSuggestion(suggestion, input, partialPath, startPos, onInputChange, setCursorOffset) {
733
+ const suggestionText = typeof suggestion === "string" ? suggestion : suggestion.displayText;
734
+ const newInput = input.substring(0, startPos) + suggestionText + input.substring(startPos + partialPath.length);
735
+ onInputChange(newInput);
736
+ const newCursorPos = startPos + suggestionText.length;
737
+ setCursorOffset(newCursorPos);
738
+ }
739
+ var import_ignore, fileIndex = null, fileListRefreshPromise = null, indexBuildComplete, onIndexBuildComplete, cacheGeneration = 0, untrackedFetchPromise = null, cachedTrackedFiles, cachedConfigFiles, cachedTrackedDirs, ignorePatternsCache = null, ignorePatternsCacheKey = null, lastRefreshMs = 0, lastGitIndexMtime = null, loadedTrackedSignature = null, loadedMergedSignature = null, MAX_SUGGESTIONS = 15, REFRESH_THROTTLE_MS = 5000;
740
+ var init_fileSuggestions = __esm(() => {
741
+ init_markdownConfigLoader();
742
+ init_file_index();
743
+ init_analytics();
744
+ init_config();
745
+ init_cwd();
746
+ init_debug();
747
+ init_errors();
748
+ init_execFileNoThrow();
749
+ init_fsOperations();
750
+ init_git();
751
+ init_hooks();
752
+ init_log();
753
+ init_path();
754
+ init_ripgrep();
755
+ init_settings();
756
+ init_signal();
757
+ import_ignore = __toESM(require_ignore(), 1);
758
+ indexBuildComplete = createSignal();
759
+ onIndexBuildComplete = indexBuildComplete.subscribe;
760
+ cachedTrackedFiles = [];
761
+ cachedConfigFiles = [];
762
+ cachedTrackedDirs = [];
763
+ });
764
+
765
+ export { onIndexBuildComplete, clearFileSuggestionCaches, findLongestCommonPrefix, startBackgroundCacheRefresh, generateFileSuggestions, applyFileSuggestion, init_fileSuggestions };