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,655 @@
1
+ // @bun
2
+ import {
3
+ getCanonicalName,
4
+ init_model,
5
+ init_sequential,
6
+ sequential
7
+ } from "./chunk-3f7rypmf.js";
8
+ import {
9
+ findGitRoot,
10
+ getRemoteUrlForDir,
11
+ gitExe,
12
+ init_git,
13
+ init_gitFilesystem,
14
+ resolveGitDir
15
+ } from "./chunk-hrzerbfw.js";
16
+ import {
17
+ execFileNoThrowWithCwd,
18
+ init_execFileNoThrow
19
+ } from "./chunk-hx2tr4ep.js";
20
+ import {
21
+ init_log,
22
+ logError
23
+ } from "./chunk-p7g7pf3f.js";
24
+ import {
25
+ getCwd,
26
+ init_cwd
27
+ } from "./chunk-8bedvdm1.js";
28
+ import {
29
+ getFsImplementation,
30
+ init_debug,
31
+ init_fsOperations,
32
+ logForDebugging
33
+ } from "./chunk-nxsh6de2.js";
34
+ import {
35
+ getOriginalCwd,
36
+ getSessionId,
37
+ init_state
38
+ } from "./chunk-qqfa0dqg.js";
39
+ import {
40
+ __esm
41
+ } from "./chunk-qp2qdcda.js";
42
+
43
+ // src/utils/generatedFiles.ts
44
+ import { basename, extname, posix, sep } from "path";
45
+ function isGeneratedFile(filePath) {
46
+ const normalizedPath = posix.sep + filePath.split(sep).join(posix.sep).replace(/^\/+/, "");
47
+ const fileName = basename(filePath).toLowerCase();
48
+ const ext = extname(filePath).toLowerCase();
49
+ if (EXCLUDED_FILENAMES.has(fileName)) {
50
+ return true;
51
+ }
52
+ if (EXCLUDED_EXTENSIONS.has(ext)) {
53
+ return true;
54
+ }
55
+ const parts = fileName.split(".");
56
+ if (parts.length > 2) {
57
+ const compoundExt = "." + parts.slice(-2).join(".");
58
+ if (EXCLUDED_EXTENSIONS.has(compoundExt)) {
59
+ return true;
60
+ }
61
+ }
62
+ for (const dir of EXCLUDED_DIRECTORIES) {
63
+ if (normalizedPath.includes(dir)) {
64
+ return true;
65
+ }
66
+ }
67
+ for (const pattern of EXCLUDED_FILENAME_PATTERNS) {
68
+ if (pattern.test(fileName)) {
69
+ return true;
70
+ }
71
+ }
72
+ return false;
73
+ }
74
+ var EXCLUDED_FILENAMES, EXCLUDED_EXTENSIONS, EXCLUDED_DIRECTORIES, EXCLUDED_FILENAME_PATTERNS;
75
+ var init_generatedFiles = __esm(() => {
76
+ EXCLUDED_FILENAMES = new Set([
77
+ "package-lock.json",
78
+ "yarn.lock",
79
+ "pnpm-lock.yaml",
80
+ "bun.lockb",
81
+ "bun.lock",
82
+ "composer.lock",
83
+ "gemfile.lock",
84
+ "cargo.lock",
85
+ "poetry.lock",
86
+ "pipfile.lock",
87
+ "shrinkwrap.json",
88
+ "npm-shrinkwrap.json"
89
+ ]);
90
+ EXCLUDED_EXTENSIONS = new Set([
91
+ ".lock",
92
+ ".min.js",
93
+ ".min.css",
94
+ ".min.html",
95
+ ".bundle.js",
96
+ ".bundle.css",
97
+ ".generated.ts",
98
+ ".generated.js",
99
+ ".d.ts"
100
+ ]);
101
+ EXCLUDED_DIRECTORIES = [
102
+ "/dist/",
103
+ "/build/",
104
+ "/out/",
105
+ "/output/",
106
+ "/node_modules/",
107
+ "/vendor/",
108
+ "/vendored/",
109
+ "/third_party/",
110
+ "/third-party/",
111
+ "/external/",
112
+ "/.next/",
113
+ "/.nuxt/",
114
+ "/.svelte-kit/",
115
+ "/coverage/",
116
+ "/__pycache__/",
117
+ "/.tox/",
118
+ "/venv/",
119
+ "/.venv/",
120
+ "/target/release/",
121
+ "/target/debug/"
122
+ ];
123
+ EXCLUDED_FILENAME_PATTERNS = [
124
+ /^.*\.min\.[a-z]+$/i,
125
+ /^.*-min\.[a-z]+$/i,
126
+ /^.*\.bundle\.[a-z]+$/i,
127
+ /^.*\.generated\.[a-z]+$/i,
128
+ /^.*\.gen\.[a-z]+$/i,
129
+ /^.*\.auto\.[a-z]+$/i,
130
+ /^.*_generated\.[a-z]+$/i,
131
+ /^.*_gen\.[a-z]+$/i,
132
+ /^.*\.pb\.(go|js|ts|py|rb)$/i,
133
+ /^.*_pb2?\.py$/i,
134
+ /^.*\.pb\.h$/i,
135
+ /^.*\.grpc\.[a-z]+$/i,
136
+ /^.*\.swagger\.[a-z]+$/i,
137
+ /^.*\.openapi\.[a-z]+$/i
138
+ ];
139
+ });
140
+
141
+ // src/utils/commitAttribution.ts
142
+ import { createHash, randomUUID } from "crypto";
143
+ import { stat } from "fs/promises";
144
+ import { isAbsolute, join, relative, sep as sep2 } from "path";
145
+ function getAttributionRepoRoot() {
146
+ const cwd = getCwd();
147
+ return findGitRoot(cwd) ?? getOriginalCwd();
148
+ }
149
+ function getRepoClassCached() {
150
+ return repoClassCache;
151
+ }
152
+ function isInternalModelRepoCached() {
153
+ return repoClassCache === "internal";
154
+ }
155
+ function sanitizeSurfaceKey(surfaceKey) {
156
+ const slashIndex = surfaceKey.lastIndexOf("/");
157
+ if (slashIndex === -1) {
158
+ return surfaceKey;
159
+ }
160
+ const surface = surfaceKey.slice(0, slashIndex);
161
+ const model = surfaceKey.slice(slashIndex + 1);
162
+ const sanitizedModel = sanitizeModelName(model);
163
+ return `${surface}/${sanitizedModel}`;
164
+ }
165
+ function sanitizeModelName(shortName) {
166
+ if (shortName.includes("opus-4-6"))
167
+ return "claude-opus-4-6";
168
+ if (shortName.includes("opus-4-5"))
169
+ return "claude-opus-4-5";
170
+ if (shortName.includes("opus-4-1"))
171
+ return "claude-opus-4-1";
172
+ if (shortName.includes("opus-4"))
173
+ return "claude-opus-4";
174
+ if (shortName.includes("sonnet-4-6"))
175
+ return "claude-sonnet-4-6";
176
+ if (shortName.includes("sonnet-4-5"))
177
+ return "claude-sonnet-4-5";
178
+ if (shortName.includes("sonnet-4"))
179
+ return "claude-sonnet-4";
180
+ if (shortName.includes("sonnet-3-7"))
181
+ return "claude-sonnet-3-7";
182
+ if (shortName.includes("haiku-4-5"))
183
+ return "claude-haiku-4-5";
184
+ if (shortName.includes("haiku-3-5"))
185
+ return "claude-haiku-3-5";
186
+ return "claude";
187
+ }
188
+ function getClientSurface() {
189
+ return process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli";
190
+ }
191
+ function buildSurfaceKey(surface, model) {
192
+ return `${surface}/${getCanonicalName(model)}`;
193
+ }
194
+ function computeContentHash(content) {
195
+ return createHash("sha256").update(content).digest("hex");
196
+ }
197
+ function normalizeFilePath(filePath) {
198
+ const fs = getFsImplementation();
199
+ const cwd = getAttributionRepoRoot();
200
+ if (!isAbsolute(filePath)) {
201
+ return filePath;
202
+ }
203
+ let resolvedPath = filePath;
204
+ let resolvedCwd = cwd;
205
+ try {
206
+ resolvedPath = fs.realpathSync(filePath);
207
+ } catch {}
208
+ try {
209
+ resolvedCwd = fs.realpathSync(cwd);
210
+ } catch {}
211
+ if (resolvedPath.startsWith(resolvedCwd + sep2) || resolvedPath === resolvedCwd) {
212
+ return relative(resolvedCwd, resolvedPath).replaceAll(sep2, "/");
213
+ }
214
+ if (filePath.startsWith(cwd + sep2) || filePath === cwd) {
215
+ return relative(cwd, filePath).replaceAll(sep2, "/");
216
+ }
217
+ return filePath;
218
+ }
219
+ function expandFilePath(filePath) {
220
+ if (isAbsolute(filePath)) {
221
+ return filePath;
222
+ }
223
+ return join(getAttributionRepoRoot(), filePath);
224
+ }
225
+ function createEmptyAttributionState() {
226
+ return {
227
+ fileStates: new Map,
228
+ sessionBaselines: new Map,
229
+ surface: getClientSurface(),
230
+ startingHeadSha: null,
231
+ promptCount: 0,
232
+ promptCountAtLastCommit: 0,
233
+ permissionPromptCount: 0,
234
+ permissionPromptCountAtLastCommit: 0,
235
+ escapeCount: 0,
236
+ escapeCountAtLastCommit: 0
237
+ };
238
+ }
239
+ function computeFileModificationState(existingFileStates, filePath, oldContent, newContent, mtime) {
240
+ const normalizedPath = normalizeFilePath(filePath);
241
+ try {
242
+ let claudeContribution;
243
+ if (oldContent === "" || newContent === "") {
244
+ claudeContribution = oldContent === "" ? newContent.length : oldContent.length;
245
+ } else {
246
+ const minLen = Math.min(oldContent.length, newContent.length);
247
+ let prefixEnd = 0;
248
+ while (prefixEnd < minLen && oldContent[prefixEnd] === newContent[prefixEnd]) {
249
+ prefixEnd++;
250
+ }
251
+ let suffixLen = 0;
252
+ while (suffixLen < minLen - prefixEnd && oldContent[oldContent.length - 1 - suffixLen] === newContent[newContent.length - 1 - suffixLen]) {
253
+ suffixLen++;
254
+ }
255
+ const oldChangedLen = oldContent.length - prefixEnd - suffixLen;
256
+ const newChangedLen = newContent.length - prefixEnd - suffixLen;
257
+ claudeContribution = Math.max(oldChangedLen, newChangedLen);
258
+ }
259
+ const existingState = existingFileStates.get(normalizedPath);
260
+ const existingContribution = existingState?.claudeContribution ?? 0;
261
+ return {
262
+ contentHash: computeContentHash(newContent),
263
+ claudeContribution: existingContribution + claudeContribution,
264
+ mtime
265
+ };
266
+ } catch (error) {
267
+ logError(error);
268
+ return null;
269
+ }
270
+ }
271
+ async function getFileMtime(filePath) {
272
+ const normalizedPath = normalizeFilePath(filePath);
273
+ const absPath = expandFilePath(normalizedPath);
274
+ try {
275
+ const stats = await stat(absPath);
276
+ return stats.mtimeMs;
277
+ } catch {
278
+ return Date.now();
279
+ }
280
+ }
281
+ function trackFileModification(state, filePath, oldContent, newContent, _userModified, mtime = Date.now()) {
282
+ const normalizedPath = normalizeFilePath(filePath);
283
+ const newFileState = computeFileModificationState(state.fileStates, filePath, oldContent, newContent, mtime);
284
+ if (!newFileState) {
285
+ return state;
286
+ }
287
+ const newFileStates = new Map(state.fileStates);
288
+ newFileStates.set(normalizedPath, newFileState);
289
+ logForDebugging(`Attribution: Tracked ${newFileState.claudeContribution} chars for ${normalizedPath}`);
290
+ return {
291
+ ...state,
292
+ fileStates: newFileStates
293
+ };
294
+ }
295
+ function trackFileCreation(state, filePath, content, mtime = Date.now()) {
296
+ return trackFileModification(state, filePath, "", content, false, mtime);
297
+ }
298
+ function trackFileDeletion(state, filePath, oldContent) {
299
+ const normalizedPath = normalizeFilePath(filePath);
300
+ const existingState = state.fileStates.get(normalizedPath);
301
+ const existingContribution = existingState?.claudeContribution ?? 0;
302
+ const deletedChars = oldContent.length;
303
+ const newFileState = {
304
+ contentHash: "",
305
+ claudeContribution: existingContribution + deletedChars,
306
+ mtime: Date.now()
307
+ };
308
+ const newFileStates = new Map(state.fileStates);
309
+ newFileStates.set(normalizedPath, newFileState);
310
+ logForDebugging(`Attribution: Tracked deletion of ${normalizedPath} (${deletedChars} chars removed, total contribution: ${newFileState.claudeContribution})`);
311
+ return {
312
+ ...state,
313
+ fileStates: newFileStates
314
+ };
315
+ }
316
+ function trackBulkFileChanges(state, changes) {
317
+ const newFileStates = new Map(state.fileStates);
318
+ for (const change of changes) {
319
+ const mtime = change.mtime ?? Date.now();
320
+ if (change.type === "deleted") {
321
+ const normalizedPath = normalizeFilePath(change.path);
322
+ const existingState = newFileStates.get(normalizedPath);
323
+ const existingContribution = existingState?.claudeContribution ?? 0;
324
+ const deletedChars = change.oldContent.length;
325
+ newFileStates.set(normalizedPath, {
326
+ contentHash: "",
327
+ claudeContribution: existingContribution + deletedChars,
328
+ mtime
329
+ });
330
+ logForDebugging(`Attribution: Tracked deletion of ${normalizedPath} (${deletedChars} chars removed, total contribution: ${existingContribution + deletedChars})`);
331
+ } else {
332
+ const newFileState = computeFileModificationState(newFileStates, change.path, change.oldContent, change.newContent, mtime);
333
+ if (newFileState) {
334
+ const normalizedPath = normalizeFilePath(change.path);
335
+ newFileStates.set(normalizedPath, newFileState);
336
+ logForDebugging(`Attribution: Tracked ${newFileState.claudeContribution} chars for ${normalizedPath}`);
337
+ }
338
+ }
339
+ }
340
+ return {
341
+ ...state,
342
+ fileStates: newFileStates
343
+ };
344
+ }
345
+ async function calculateCommitAttribution(states, stagedFiles) {
346
+ const cwd = getAttributionRepoRoot();
347
+ const sessionId = getSessionId();
348
+ const files = {};
349
+ const excludedGenerated = [];
350
+ const surfaces = new Set;
351
+ const surfaceCounts = {};
352
+ let totalClaudeChars = 0;
353
+ let totalHumanChars = 0;
354
+ const mergedFileStates = new Map;
355
+ const mergedBaselines = new Map;
356
+ for (const state of states) {
357
+ surfaces.add(state.surface);
358
+ const baselines = state.sessionBaselines instanceof Map ? state.sessionBaselines : new Map(Object.entries(state.sessionBaselines ?? {}));
359
+ for (const [path, baseline] of baselines) {
360
+ if (!mergedBaselines.has(path)) {
361
+ mergedBaselines.set(path, baseline);
362
+ }
363
+ }
364
+ const fileStates = state.fileStates instanceof Map ? state.fileStates : new Map(Object.entries(state.fileStates ?? {}));
365
+ for (const [path, fileState] of fileStates) {
366
+ const existing = mergedFileStates.get(path);
367
+ if (existing) {
368
+ mergedFileStates.set(path, {
369
+ ...fileState,
370
+ claudeContribution: existing.claudeContribution + fileState.claudeContribution
371
+ });
372
+ } else {
373
+ mergedFileStates.set(path, fileState);
374
+ }
375
+ }
376
+ }
377
+ const fileResults = await Promise.all(stagedFiles.map(async (file) => {
378
+ if (isGeneratedFile(file)) {
379
+ return { type: "generated", file };
380
+ }
381
+ const absPath = join(cwd, file);
382
+ const fileState = mergedFileStates.get(file);
383
+ const baseline = mergedBaselines.get(file);
384
+ const fileSurface = states[0].surface;
385
+ let claudeChars = 0;
386
+ let humanChars = 0;
387
+ const deleted = await isFileDeleted(file);
388
+ if (deleted) {
389
+ if (fileState) {
390
+ claudeChars = fileState.claudeContribution;
391
+ humanChars = 0;
392
+ } else {
393
+ const diffSize = await getGitDiffSize(file);
394
+ humanChars = diffSize > 0 ? diffSize : 100;
395
+ }
396
+ } else {
397
+ try {
398
+ const stats = await stat(absPath);
399
+ if (fileState) {
400
+ claudeChars = fileState.claudeContribution;
401
+ humanChars = 0;
402
+ } else if (baseline) {
403
+ const diffSize = await getGitDiffSize(file);
404
+ humanChars = diffSize > 0 ? diffSize : stats.size;
405
+ } else {
406
+ humanChars = stats.size;
407
+ }
408
+ } catch {
409
+ return null;
410
+ }
411
+ }
412
+ claudeChars = Math.max(0, claudeChars);
413
+ humanChars = Math.max(0, humanChars);
414
+ const total = claudeChars + humanChars;
415
+ const percent = total > 0 ? Math.round(claudeChars / total * 100) : 0;
416
+ return {
417
+ type: "file",
418
+ file,
419
+ claudeChars,
420
+ humanChars,
421
+ percent,
422
+ surface: fileSurface
423
+ };
424
+ }));
425
+ for (const result of fileResults) {
426
+ if (!result)
427
+ continue;
428
+ if (result.type === "generated") {
429
+ excludedGenerated.push(result.file);
430
+ continue;
431
+ }
432
+ files[result.file] = {
433
+ claudeChars: result.claudeChars,
434
+ humanChars: result.humanChars,
435
+ percent: result.percent,
436
+ surface: result.surface
437
+ };
438
+ totalClaudeChars += result.claudeChars;
439
+ totalHumanChars += result.humanChars;
440
+ surfaceCounts[result.surface] = (surfaceCounts[result.surface] ?? 0) + result.claudeChars;
441
+ }
442
+ const totalChars = totalClaudeChars + totalHumanChars;
443
+ const claudePercent = totalChars > 0 ? Math.round(totalClaudeChars / totalChars * 100) : 0;
444
+ const surfaceBreakdown = {};
445
+ for (const [surface, chars] of Object.entries(surfaceCounts)) {
446
+ const percent = totalChars > 0 ? Math.round(chars / totalChars * 100) : 0;
447
+ surfaceBreakdown[surface] = { claudeChars: chars, percent };
448
+ }
449
+ return {
450
+ version: 1,
451
+ summary: {
452
+ claudePercent,
453
+ claudeChars: totalClaudeChars,
454
+ humanChars: totalHumanChars,
455
+ surfaces: Array.from(surfaces)
456
+ },
457
+ files,
458
+ surfaceBreakdown,
459
+ excludedGenerated,
460
+ sessions: [sessionId]
461
+ };
462
+ }
463
+ async function getGitDiffSize(filePath) {
464
+ const cwd = getAttributionRepoRoot();
465
+ try {
466
+ const result = await execFileNoThrowWithCwd(gitExe(), ["diff", "--cached", "--stat", "--", filePath], { cwd, timeout: 5000 });
467
+ if (result.code !== 0 || !result.stdout) {
468
+ return 0;
469
+ }
470
+ const lines = result.stdout.split(`
471
+ `).filter(Boolean);
472
+ let totalChanges = 0;
473
+ for (const line of lines) {
474
+ if (line.includes("file changed") || line.includes("files changed")) {
475
+ const insertMatch = line.match(/(\d+) insertions?/);
476
+ const deleteMatch = line.match(/(\d+) deletions?/);
477
+ const insertions = insertMatch ? parseInt(insertMatch[1], 10) : 0;
478
+ const deletions = deleteMatch ? parseInt(deleteMatch[1], 10) : 0;
479
+ totalChanges += (insertions + deletions) * 40;
480
+ }
481
+ }
482
+ return totalChanges;
483
+ } catch {
484
+ return 0;
485
+ }
486
+ }
487
+ async function isFileDeleted(filePath) {
488
+ const cwd = getAttributionRepoRoot();
489
+ try {
490
+ const result = await execFileNoThrowWithCwd(gitExe(), ["diff", "--cached", "--name-status", "--", filePath], { cwd, timeout: 5000 });
491
+ if (result.code === 0 && result.stdout) {
492
+ return result.stdout.trim().startsWith("D\t");
493
+ }
494
+ } catch {}
495
+ return false;
496
+ }
497
+ async function getStagedFiles() {
498
+ const cwd = getAttributionRepoRoot();
499
+ try {
500
+ const result = await execFileNoThrowWithCwd(gitExe(), ["diff", "--cached", "--name-only"], { cwd, timeout: 5000 });
501
+ if (result.code === 0 && result.stdout) {
502
+ return result.stdout.split(`
503
+ `).filter(Boolean);
504
+ }
505
+ } catch (error) {
506
+ logError(error);
507
+ }
508
+ return [];
509
+ }
510
+ async function isGitTransientState() {
511
+ const gitDir = await resolveGitDir(getAttributionRepoRoot());
512
+ if (!gitDir)
513
+ return false;
514
+ const indicators = [
515
+ "rebase-merge",
516
+ "rebase-apply",
517
+ "MERGE_HEAD",
518
+ "CHERRY_PICK_HEAD",
519
+ "BISECT_LOG"
520
+ ];
521
+ const results = await Promise.all(indicators.map(async (indicator) => {
522
+ try {
523
+ await stat(join(gitDir, indicator));
524
+ return true;
525
+ } catch {
526
+ return false;
527
+ }
528
+ }));
529
+ return results.some((exists) => exists);
530
+ }
531
+ function stateToSnapshotMessage(state, messageId) {
532
+ const fileStates = {};
533
+ for (const [path, fileState] of state.fileStates) {
534
+ fileStates[path] = fileState;
535
+ }
536
+ return {
537
+ type: "attribution-snapshot",
538
+ messageId,
539
+ surface: state.surface,
540
+ fileStates,
541
+ promptCount: state.promptCount,
542
+ promptCountAtLastCommit: state.promptCountAtLastCommit,
543
+ permissionPromptCount: state.permissionPromptCount,
544
+ permissionPromptCountAtLastCommit: state.permissionPromptCountAtLastCommit,
545
+ escapeCount: state.escapeCount,
546
+ escapeCountAtLastCommit: state.escapeCountAtLastCommit
547
+ };
548
+ }
549
+ function restoreAttributionStateFromSnapshots(snapshots) {
550
+ const state = createEmptyAttributionState();
551
+ const lastSnapshot = snapshots[snapshots.length - 1];
552
+ if (!lastSnapshot) {
553
+ return state;
554
+ }
555
+ state.surface = lastSnapshot.surface;
556
+ for (const [path, fileState] of Object.entries(lastSnapshot.fileStates)) {
557
+ state.fileStates.set(path, fileState);
558
+ }
559
+ state.promptCount = lastSnapshot.promptCount ?? 0;
560
+ state.promptCountAtLastCommit = lastSnapshot.promptCountAtLastCommit ?? 0;
561
+ state.permissionPromptCount = lastSnapshot.permissionPromptCount ?? 0;
562
+ state.permissionPromptCountAtLastCommit = lastSnapshot.permissionPromptCountAtLastCommit ?? 0;
563
+ state.escapeCount = lastSnapshot.escapeCount ?? 0;
564
+ state.escapeCountAtLastCommit = lastSnapshot.escapeCountAtLastCommit ?? 0;
565
+ return state;
566
+ }
567
+ function attributionRestoreStateFromLog(attributionSnapshots, onUpdateState) {
568
+ const state = restoreAttributionStateFromSnapshots(attributionSnapshots);
569
+ onUpdateState(state);
570
+ }
571
+ function incrementPromptCount(attribution, saveSnapshot) {
572
+ const newAttribution = {
573
+ ...attribution,
574
+ promptCount: attribution.promptCount + 1
575
+ };
576
+ const snapshot = stateToSnapshotMessage(newAttribution, randomUUID());
577
+ saveSnapshot(snapshot);
578
+ return newAttribution;
579
+ }
580
+ var INTERNAL_MODEL_REPOS, repoClassCache = null, isInternalModelRepo;
581
+ var init_commitAttribution = __esm(() => {
582
+ init_state();
583
+ init_cwd();
584
+ init_debug();
585
+ init_execFileNoThrow();
586
+ init_fsOperations();
587
+ init_generatedFiles();
588
+ init_gitFilesystem();
589
+ init_git();
590
+ init_log();
591
+ init_model();
592
+ init_sequential();
593
+ INTERNAL_MODEL_REPOS = [
594
+ "github.com:anthropics/claude-cli-internal",
595
+ "github.com/anthropics/claude-cli-internal",
596
+ "github.com:anthropics/anthropic",
597
+ "github.com/anthropics/anthropic",
598
+ "github.com:anthropics/apps",
599
+ "github.com/anthropics/apps",
600
+ "github.com:anthropics/casino",
601
+ "github.com/anthropics/casino",
602
+ "github.com:anthropics/dbt",
603
+ "github.com/anthropics/dbt",
604
+ "github.com:anthropics/dotfiles",
605
+ "github.com/anthropics/dotfiles",
606
+ "github.com:anthropics/terraform-config",
607
+ "github.com/anthropics/terraform-config",
608
+ "github.com:anthropics/hex-export",
609
+ "github.com/anthropics/hex-export",
610
+ "github.com:anthropics/feedback-v2",
611
+ "github.com/anthropics/feedback-v2",
612
+ "github.com:anthropics/labs",
613
+ "github.com/anthropics/labs",
614
+ "github.com:anthropics/argo-rollouts",
615
+ "github.com/anthropics/argo-rollouts",
616
+ "github.com:anthropics/starling-configs",
617
+ "github.com/anthropics/starling-configs",
618
+ "github.com:anthropics/ts-tools",
619
+ "github.com/anthropics/ts-tools",
620
+ "github.com:anthropics/ts-capsules",
621
+ "github.com/anthropics/ts-capsules",
622
+ "github.com:anthropics/feldspar-testing",
623
+ "github.com/anthropics/feldspar-testing",
624
+ "github.com:anthropics/trellis",
625
+ "github.com/anthropics/trellis",
626
+ "github.com:anthropics/claude-for-hiring",
627
+ "github.com/anthropics/claude-for-hiring",
628
+ "github.com:anthropics/forge-web",
629
+ "github.com/anthropics/forge-web",
630
+ "github.com:anthropics/infra-manifests",
631
+ "github.com/anthropics/infra-manifests",
632
+ "github.com:anthropics/mycro_manifests",
633
+ "github.com/anthropics/mycro_manifests",
634
+ "github.com:anthropics/mycro_configs",
635
+ "github.com/anthropics/mycro_configs",
636
+ "github.com:anthropics/mobile-apps",
637
+ "github.com/anthropics/mobile-apps"
638
+ ];
639
+ isInternalModelRepo = sequential(async () => {
640
+ if (repoClassCache !== null) {
641
+ return repoClassCache === "internal";
642
+ }
643
+ const cwd = getAttributionRepoRoot();
644
+ const remoteUrl = await getRemoteUrlForDir(cwd);
645
+ if (!remoteUrl) {
646
+ repoClassCache = "none";
647
+ return false;
648
+ }
649
+ const isInternal = INTERNAL_MODEL_REPOS.some((repo) => remoteUrl.includes(repo));
650
+ repoClassCache = isInternal ? "internal" : "external";
651
+ return isInternal;
652
+ });
653
+ });
654
+
655
+ export { getAttributionRepoRoot, getRepoClassCached, isInternalModelRepoCached, isInternalModelRepo, sanitizeSurfaceKey, sanitizeModelName, getClientSurface, buildSurfaceKey, computeContentHash, normalizeFilePath, expandFilePath, createEmptyAttributionState, getFileMtime, trackFileModification, trackFileCreation, trackFileDeletion, trackBulkFileChanges, calculateCommitAttribution, getGitDiffSize, isFileDeleted, getStagedFiles, isGitTransientState, stateToSnapshotMessage, restoreAttributionStateFromSnapshots, attributionRestoreStateFromLog, incrementPromptCount, init_commitAttribution };
@@ -0,0 +1,17 @@
1
+ // @bun
2
+ // src/cli/exit.ts
3
+ function cliError(msg) {
4
+ if (msg)
5
+ console.error(msg);
6
+ process.exit(1);
7
+ return;
8
+ }
9
+ function cliOk(msg) {
10
+ if (msg)
11
+ process.stdout.write(msg + `
12
+ `);
13
+ process.exit(0);
14
+ return;
15
+ }
16
+
17
+ export { cliError, cliOk };