@zyycn/claudex 1.0.3-fork.1453470

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 (454) hide show
  1. package/LICENSE.md +5 -0
  2. package/README.md +490 -0
  3. package/bin/claudex.js +40 -0
  4. package/dist/chunk-00xcm9ma.js +21933 -0
  5. package/dist/chunk-06saje2v.js +39 -0
  6. package/dist/chunk-0731m51q.js +8 -0
  7. package/dist/chunk-07q1ebdc.js +1581 -0
  8. package/dist/chunk-0cm1btdy.js +258 -0
  9. package/dist/chunk-0m99m848.js +674 -0
  10. package/dist/chunk-0paqc2yw.js +15 -0
  11. package/dist/chunk-0q2xkmse.js +58 -0
  12. package/dist/chunk-0vkfrmqm.js +690 -0
  13. package/dist/chunk-0xjaqda8.js +1124 -0
  14. package/dist/chunk-104enera.js +2838 -0
  15. package/dist/chunk-1141xmr4.js +8 -0
  16. package/dist/chunk-14as9yqj.js +287 -0
  17. package/dist/chunk-14jv3jm7.js +17 -0
  18. package/dist/chunk-1601tsaf.js +6109 -0
  19. package/dist/chunk-197dj5s7.js +275 -0
  20. package/dist/chunk-1ax9sgfe.js +107 -0
  21. package/dist/chunk-1cbn5kxf.js +7 -0
  22. package/dist/chunk-1dagmjxx.js +496 -0
  23. package/dist/chunk-1e0rncz4.js +440 -0
  24. package/dist/chunk-1h2famwb.js +49 -0
  25. package/dist/chunk-1hr1qamm.js +347 -0
  26. package/dist/chunk-1q1et22j.js +164 -0
  27. package/dist/chunk-1vh98qr0.js +4521 -0
  28. package/dist/chunk-1xkekb9y.js +19 -0
  29. package/dist/chunk-218tsjb7.js +2644 -0
  30. package/dist/chunk-238g70xa.js +36 -0
  31. package/dist/chunk-27xc1csx.js +104 -0
  32. package/dist/chunk-29pk8qx4.js +2336 -0
  33. package/dist/chunk-2a42s11t.js +412 -0
  34. package/dist/chunk-2eykm0j0.js +20 -0
  35. package/dist/chunk-2fwze72g.js +24 -0
  36. package/dist/chunk-2gzv8nrw.js +205 -0
  37. package/dist/chunk-2k995y2x.js +880 -0
  38. package/dist/chunk-2nayx6q1.js +63 -0
  39. package/dist/chunk-2t1frg13.js +716 -0
  40. package/dist/chunk-2t3vw4tx.js +22820 -0
  41. package/dist/chunk-2tvta4r1.js +276 -0
  42. package/dist/chunk-30rst83v.js +168 -0
  43. package/dist/chunk-357zqad6.js +85 -0
  44. package/dist/chunk-36nhmzjx.js +71 -0
  45. package/dist/chunk-3803xm8e.js +10476 -0
  46. package/dist/chunk-38700exh.js +42 -0
  47. package/dist/chunk-3c25bcsw.js +17 -0
  48. package/dist/chunk-3h8a89gy.js +46 -0
  49. package/dist/chunk-3jdqfdj5.js +93 -0
  50. package/dist/chunk-3jmv6cad.js +91 -0
  51. package/dist/chunk-3kgnmgyg.js +173 -0
  52. package/dist/chunk-3nk79af8.js +8 -0
  53. package/dist/chunk-3peatsdv.js +41 -0
  54. package/dist/chunk-3tqnjgfx.js +16415 -0
  55. package/dist/chunk-3vs3nm7w.js +31 -0
  56. package/dist/chunk-3w6s9m5w.js +16 -0
  57. package/dist/chunk-3z6xe0z5.js +159 -0
  58. package/dist/chunk-41rz4mzb.js +277 -0
  59. package/dist/chunk-41z3jj0a.js +56 -0
  60. package/dist/chunk-44fpr6jq.js +434 -0
  61. package/dist/chunk-4955sd1a.js +94 -0
  62. package/dist/chunk-495d85x1.js +8066 -0
  63. package/dist/chunk-4av3760g.js +128 -0
  64. package/dist/chunk-4b16ycde.js +268 -0
  65. package/dist/chunk-4bjnawcq.js +301 -0
  66. package/dist/chunk-4g3v8y12.js +23 -0
  67. package/dist/chunk-4jm600zv.js +13 -0
  68. package/dist/chunk-4kheks3z.js +513 -0
  69. package/dist/chunk-4m4hyh1h.js +162 -0
  70. package/dist/chunk-4qz9vbs1.js +349 -0
  71. package/dist/chunk-4rs8bmvr.js +196 -0
  72. package/dist/chunk-4tskdppn.js +281 -0
  73. package/dist/chunk-4vp8gkjg.js +400 -0
  74. package/dist/chunk-4zfkzkt6.js +37 -0
  75. package/dist/chunk-526cgeb7.js +61 -0
  76. package/dist/chunk-55wgxwa9.js +13877 -0
  77. package/dist/chunk-56jgazae.js +28 -0
  78. package/dist/chunk-58ehr4xs.js +459 -0
  79. package/dist/chunk-5h0tb1wb.js +91 -0
  80. package/dist/chunk-5r0rd14p.js +522 -0
  81. package/dist/chunk-5t7kf175.js +40 -0
  82. package/dist/chunk-61awbwy1.js +648 -0
  83. package/dist/chunk-65s8h28p.js +123 -0
  84. package/dist/chunk-68zrgehv.js +120 -0
  85. package/dist/chunk-6b1fr6n7.js +117 -0
  86. package/dist/chunk-6bd8brc4.js +48 -0
  87. package/dist/chunk-6dj5t602.js +341 -0
  88. package/dist/chunk-6gr3c3w9.js +378 -0
  89. package/dist/chunk-6gz76344.js +1493 -0
  90. package/dist/chunk-6jcffd48.js +643 -0
  91. package/dist/chunk-6mjm0xrg.js +253 -0
  92. package/dist/chunk-6mtvk568.js +89 -0
  93. package/dist/chunk-6n2qgm9v.js +8 -0
  94. package/dist/chunk-6n3ckbjv.js +348 -0
  95. package/dist/chunk-6nwxg1wn.js +40 -0
  96. package/dist/chunk-6p1yy212.js +779 -0
  97. package/dist/chunk-6r1adgey.js +109 -0
  98. package/dist/chunk-6s43cqmc.js +420 -0
  99. package/dist/chunk-6tq2v3rk.js +186 -0
  100. package/dist/chunk-730qrdey.js +173526 -0
  101. package/dist/chunk-73rpbt04.js +1947 -0
  102. package/dist/chunk-75pprgct.js +165 -0
  103. package/dist/chunk-760252na.js +101 -0
  104. package/dist/chunk-7739pg2c.js +4261 -0
  105. package/dist/chunk-77b9hpzq.js +373 -0
  106. package/dist/chunk-7aw745vx.js +40175 -0
  107. package/dist/chunk-7cgwfdew.js +225 -0
  108. package/dist/chunk-7e0f3syh.js +458 -0
  109. package/dist/chunk-7e6ahfxz.js +61 -0
  110. package/dist/chunk-7jakcwb2.js +3445 -0
  111. package/dist/chunk-7kky1hfh.js +92 -0
  112. package/dist/chunk-7m2nd8da.js +110 -0
  113. package/dist/chunk-7q237ftq.js +1585 -0
  114. package/dist/chunk-7tkfa40b.js +790 -0
  115. package/dist/chunk-7v6gz550.js +849 -0
  116. package/dist/chunk-7wm5s02e.js +216 -0
  117. package/dist/chunk-7x11xrtw.js +38 -0
  118. package/dist/chunk-7xyswgjh.js +8 -0
  119. package/dist/chunk-7zaxrfnt.js +42 -0
  120. package/dist/chunk-7zbnzxqn.js +116 -0
  121. package/dist/chunk-7zd6zng2.js +107 -0
  122. package/dist/chunk-83hfzbx3.js +10 -0
  123. package/dist/chunk-87ffvh11.js +105 -0
  124. package/dist/chunk-899qbava.js +107 -0
  125. package/dist/chunk-8bedvdm1.js +32 -0
  126. package/dist/chunk-8c94hy8y.js +123 -0
  127. package/dist/chunk-8ew3mqvp.js +153 -0
  128. package/dist/chunk-8hq5kk3y.js +44 -0
  129. package/dist/chunk-8jq0b9dd.js +2057 -0
  130. package/dist/chunk-8tnsngw2.js +31 -0
  131. package/dist/chunk-8x3n4n3s.js +1551 -0
  132. package/dist/chunk-8y12jxg8.js +10 -0
  133. package/dist/chunk-8ymf4e6z.js +48 -0
  134. package/dist/chunk-90wp6wez.js +10510 -0
  135. package/dist/chunk-926wns55.js +127 -0
  136. package/dist/chunk-9aqjhv75.js +604 -0
  137. package/dist/chunk-9btg8g3w.js +111 -0
  138. package/dist/chunk-9dk9pm7z.js +87 -0
  139. package/dist/chunk-9gbamk79.js +93 -0
  140. package/dist/chunk-9k27xdmg.js +542 -0
  141. package/dist/chunk-9k2drwej.js +106 -0
  142. package/dist/chunk-9x5zgy22.js +12 -0
  143. package/dist/chunk-9zg3gwdm.js +41634 -0
  144. package/dist/chunk-a064vv85.js +674 -0
  145. package/dist/chunk-a1gt3qge.js +328 -0
  146. package/dist/chunk-a8ejc632.js +3094 -0
  147. package/dist/chunk-a9vdeb6y.js +258 -0
  148. package/dist/chunk-a9zh40sj.js +48 -0
  149. package/dist/chunk-adhxmj22.js +86 -0
  150. package/dist/chunk-af8a6k9v.js +195 -0
  151. package/dist/chunk-ahcsxfaq.js +812 -0
  152. package/dist/chunk-ar1vk71q.js +220 -0
  153. package/dist/chunk-atz9g9e3.js +160 -0
  154. package/dist/chunk-b0b9ky2w.js +87 -0
  155. package/dist/chunk-b4wg70y1.js +54 -0
  156. package/dist/chunk-b75fzr8e.js +969 -0
  157. package/dist/chunk-b7ab6apt.js +98 -0
  158. package/dist/chunk-b7cywkg9.js +908 -0
  159. package/dist/chunk-b89h5a6c.js +269 -0
  160. package/dist/chunk-b8x1gk3y.js +1299 -0
  161. package/dist/chunk-b9kme9pv.js +38 -0
  162. package/dist/chunk-bfw2dvsc.js +654 -0
  163. package/dist/chunk-bha97m81.js +267 -0
  164. package/dist/chunk-bjqw6798.js +328 -0
  165. package/dist/chunk-bm1qb16p.js +17 -0
  166. package/dist/chunk-bq49tmzw.js +642 -0
  167. package/dist/chunk-bqfnp99q.js +477 -0
  168. package/dist/chunk-bsst5zkx.js +534 -0
  169. package/dist/chunk-bvp4dgm4.js +182 -0
  170. package/dist/chunk-bxxg6sdr.js +176 -0
  171. package/dist/chunk-bzdmqgbz.js +106 -0
  172. package/dist/chunk-c0383q54.js +1873 -0
  173. package/dist/chunk-c6pqnmxz.js +92 -0
  174. package/dist/chunk-c84cgat5.js +692 -0
  175. package/dist/chunk-c88ad6hr.js +54 -0
  176. package/dist/chunk-cb9fgtbm.js +726 -0
  177. package/dist/chunk-cdz5yb0r.js +57 -0
  178. package/dist/chunk-cfkzkjn9.js +745 -0
  179. package/dist/chunk-cfmxfyg6.js +224 -0
  180. package/dist/chunk-cfv996bs.js +22 -0
  181. package/dist/chunk-cgfdkzhb.js +12 -0
  182. package/dist/chunk-cheg55f3.js +605 -0
  183. package/dist/chunk-cq8s6gda.js +54 -0
  184. package/dist/chunk-cr3259a6.js +756 -0
  185. package/dist/chunk-cvkdw06a.js +752 -0
  186. package/dist/chunk-cx75kdrc.js +47 -0
  187. package/dist/chunk-czensfac.js +476 -0
  188. package/dist/chunk-d3js9jm5.js +281 -0
  189. package/dist/chunk-d9kz373t.js +122 -0
  190. package/dist/chunk-db4echta.js +98 -0
  191. package/dist/chunk-dbew99r4.js +318 -0
  192. package/dist/chunk-dbzgpyb7.js +3418 -0
  193. package/dist/chunk-dbzm0jxw.js +66 -0
  194. package/dist/chunk-dgqrcy74.js +48 -0
  195. package/dist/chunk-dnh7jtpb.js +37 -0
  196. package/dist/chunk-ds5nkfg0.js +1095 -0
  197. package/dist/chunk-dstxhxsx.js +121 -0
  198. package/dist/chunk-dv1wfr85.js +6373 -0
  199. package/dist/chunk-e5pntxye.js +37 -0
  200. package/dist/chunk-eebcvtbb.js +1646 -0
  201. package/dist/chunk-ehtwnxpg.js +1591 -0
  202. package/dist/chunk-enpkjp09.js +202 -0
  203. package/dist/chunk-enqchn86.js +229 -0
  204. package/dist/chunk-eqp1rfft.js +17 -0
  205. package/dist/chunk-etamtd56.js +167 -0
  206. package/dist/chunk-evb24rwp.js +469 -0
  207. package/dist/chunk-evgp57w2.js +69 -0
  208. package/dist/chunk-ewadzrm8.js +103 -0
  209. package/dist/chunk-ezf1ppbj.js +208 -0
  210. package/dist/chunk-f5ma3nh5.js +3436 -0
  211. package/dist/chunk-f6tfp1jv.js +115 -0
  212. package/dist/chunk-fbpftpf0.js +69 -0
  213. package/dist/chunk-fbv4apne.js +51 -0
  214. package/dist/chunk-fgebe8s1.js +119 -0
  215. package/dist/chunk-fh2tsdgg.js +83 -0
  216. package/dist/chunk-fyc5fepv.js +10 -0
  217. package/dist/chunk-fz0qs5hv.js +196 -0
  218. package/dist/chunk-g0j0t6qk.js +26 -0
  219. package/dist/chunk-g10m43cg.js +713 -0
  220. package/dist/chunk-g338npwr.js +1061 -0
  221. package/dist/chunk-g3jde8ef.js +99 -0
  222. package/dist/chunk-g3t0act8.js +8 -0
  223. package/dist/chunk-g4he0n52.js +527 -0
  224. package/dist/chunk-g5az2c6a.js +155 -0
  225. package/dist/chunk-g97qe5j6.js +90 -0
  226. package/dist/chunk-gdr19kp1.js +802 -0
  227. package/dist/chunk-gmaybtrd.js +726 -0
  228. package/dist/chunk-gqp7j1pk.js +283 -0
  229. package/dist/chunk-gshz06b1.js +5398 -0
  230. package/dist/chunk-gv0tqhg0.js +118 -0
  231. package/dist/chunk-gvhssfc5.js +155 -0
  232. package/dist/chunk-gy0rcgj2.js +9194 -0
  233. package/dist/chunk-gyj242zr.js +20 -0
  234. package/dist/chunk-gzzfhtdv.js +7189 -0
  235. package/dist/chunk-h0qngp9w.js +157 -0
  236. package/dist/chunk-h0rbjg6x.js +55 -0
  237. package/dist/chunk-hakdhagh.js +16606 -0
  238. package/dist/chunk-hh7cmy4k.js +20 -0
  239. package/dist/chunk-hjakzpqc.js +70 -0
  240. package/dist/chunk-hk9xz7gk.js +118 -0
  241. package/dist/chunk-hqmz36b3.js +552 -0
  242. package/dist/chunk-hzhe8ygc.js +547 -0
  243. package/dist/chunk-j2k4p94p.js +55 -0
  244. package/dist/chunk-j3a4p81y.js +184 -0
  245. package/dist/chunk-j4fb0y95.js +247 -0
  246. package/dist/chunk-j5hc27hv.js +444 -0
  247. package/dist/chunk-j64ga6ta.js +8035 -0
  248. package/dist/chunk-j8xzqet7.js +116 -0
  249. package/dist/chunk-jc8jhcwz.js +198 -0
  250. package/dist/chunk-jce5r25x.js +18 -0
  251. package/dist/chunk-jcnp9j3v.js +1154 -0
  252. package/dist/chunk-jd32zbps.js +15 -0
  253. package/dist/chunk-jdgeec04.js +4249 -0
  254. package/dist/chunk-jhbnb87k.js +26 -0
  255. package/dist/chunk-jhyqz4ns.js +1556 -0
  256. package/dist/chunk-jnhkref0.js +30 -0
  257. package/dist/chunk-jpp9dqv4.js +6956 -0
  258. package/dist/chunk-jw9hq3rg.js +702 -0
  259. package/dist/chunk-jx817w05.js +11 -0
  260. package/dist/chunk-jzhcme7n.js +1318 -0
  261. package/dist/chunk-jzmz18nn.js +65 -0
  262. package/dist/chunk-k0p9w03v.js +4957 -0
  263. package/dist/chunk-k2aj61ee.js +27 -0
  264. package/dist/chunk-k4sev2n6.js +28 -0
  265. package/dist/chunk-k7k2y0qv.js +469 -0
  266. package/dist/chunk-kgf50mqk.js +60 -0
  267. package/dist/chunk-kjcfwnj1.js +247 -0
  268. package/dist/chunk-kjtm8wb0.js +95 -0
  269. package/dist/chunk-knzevfpr.js +229 -0
  270. package/dist/chunk-krw2vdg2.js +44 -0
  271. package/dist/chunk-kwekc97v.js +18 -0
  272. package/dist/chunk-kz5tvd47.js +212 -0
  273. package/dist/chunk-m67n5wzy.js +61 -0
  274. package/dist/chunk-m94gp2rw.js +5019 -0
  275. package/dist/chunk-mdz0t7r4.js +89 -0
  276. package/dist/chunk-mmmjegxm.js +184 -0
  277. package/dist/chunk-mncjx567.js +53 -0
  278. package/dist/chunk-mt25echc.js +6157 -0
  279. package/dist/chunk-mtcm9j6q.js +644 -0
  280. package/dist/chunk-myh82e4t.js +244 -0
  281. package/dist/chunk-n0qaeaa5.js +256 -0
  282. package/dist/chunk-n18624dq.js +131 -0
  283. package/dist/chunk-n1gcz9xn.js +103 -0
  284. package/dist/chunk-n1h5c74g.js +307 -0
  285. package/dist/chunk-n1pva86g.js +133 -0
  286. package/dist/chunk-n60m0dep.js +584 -0
  287. package/dist/chunk-n6gk18y0.js +250 -0
  288. package/dist/chunk-n7ttdtk0.js +641 -0
  289. package/dist/chunk-n8326eqb.js +655 -0
  290. package/dist/chunk-ndmk8yet.js +222 -0
  291. package/dist/chunk-nh4bndav.js +74 -0
  292. package/dist/chunk-nj0xc01y.js +90 -0
  293. package/dist/chunk-nj17bhkh.js +125 -0
  294. package/dist/chunk-nka1g8f4.js +773 -0
  295. package/dist/chunk-nm970nr7.js +145 -0
  296. package/dist/chunk-nmw6qveb.js +101 -0
  297. package/dist/chunk-nq0fxyxh.js +752 -0
  298. package/dist/chunk-nsw7n8c5.js +246 -0
  299. package/dist/chunk-nt837qt9.js +21 -0
  300. package/dist/chunk-nw5xe0mg.js +130 -0
  301. package/dist/chunk-nwsmn6zm.js +15 -0
  302. package/dist/chunk-nyefvg0p.js +105 -0
  303. package/dist/chunk-p2816w9z.js +1486 -0
  304. package/dist/chunk-p2d5nh3g.js +342 -0
  305. package/dist/chunk-p331ghzg.js +391 -0
  306. package/dist/chunk-p5x1s3vx.js +93 -0
  307. package/dist/chunk-p81favnw.js +62 -0
  308. package/dist/chunk-pe2yzwmw.js +102 -0
  309. package/dist/chunk-pe6w0anj.js +780 -0
  310. package/dist/chunk-pgjc4ya7.js +177 -0
  311. package/dist/chunk-pmsp9ed2.js +34 -0
  312. package/dist/chunk-ppwjyveh.js +8 -0
  313. package/dist/chunk-ps49ymvj.js +43 -0
  314. package/dist/chunk-ps540063.js +826 -0
  315. package/dist/chunk-ptvb90nk.js +90 -0
  316. package/dist/chunk-pwwa7s62.js +11 -0
  317. package/dist/chunk-pxdkbxs2.js +97 -0
  318. package/dist/chunk-py5y9jh1.js +38 -0
  319. package/dist/chunk-pym4ctcb.js +376 -0
  320. package/dist/chunk-pza5nphx.js +698 -0
  321. package/dist/chunk-q0sq5qtt.js +606 -0
  322. package/dist/chunk-q25bjaev.js +15 -0
  323. package/dist/chunk-q2rb0hsc.js +192 -0
  324. package/dist/chunk-q7bxdsfd.js +22 -0
  325. package/dist/chunk-qbt1tq74.js +145 -0
  326. package/dist/chunk-qhqhf88n.js +130 -0
  327. package/dist/chunk-qnfx3qtx.js +617 -0
  328. package/dist/chunk-qp2qdcda.js +100 -0
  329. package/dist/chunk-qp869k8g.js +69 -0
  330. package/dist/chunk-qpkz2rcx.js +83 -0
  331. package/dist/chunk-qqfa0dqg.js +2343 -0
  332. package/dist/chunk-qw8vnxtf.js +169 -0
  333. package/dist/chunk-qx65dt48.js +299 -0
  334. package/dist/chunk-qz2x630m.js +49145 -0
  335. package/dist/chunk-r12gdn3d.js +99 -0
  336. package/dist/chunk-r4dttv31.js +71 -0
  337. package/dist/chunk-r6b58y3x.js +17 -0
  338. package/dist/chunk-r9me94js.js +84 -0
  339. package/dist/chunk-r9r8nt97.js +765 -0
  340. package/dist/chunk-raqgs410.js +116 -0
  341. package/dist/chunk-re8evv5h.js +216 -0
  342. package/dist/chunk-res15ktd.js +18 -0
  343. package/dist/chunk-rhxgs39k.js +208 -0
  344. package/dist/chunk-rn0v1hk8.js +34 -0
  345. package/dist/chunk-rtgznsee.js +43 -0
  346. package/dist/chunk-rv01ch9w.js +117 -0
  347. package/dist/chunk-rwbhn5vg.js +120 -0
  348. package/dist/chunk-rysbfwvp.js +849 -0
  349. package/dist/chunk-s3pzvdss.js +50 -0
  350. package/dist/chunk-s66y2n3j.js +94 -0
  351. package/dist/chunk-samn3teq.js +998 -0
  352. package/dist/chunk-sbbj6ta3.js +1711 -0
  353. package/dist/chunk-sd36yzx8.js +954 -0
  354. package/dist/chunk-sd92cfq6.js +71 -0
  355. package/dist/chunk-sdj9b9wh.js +782 -0
  356. package/dist/chunk-shb6nvk6.js +27 -0
  357. package/dist/chunk-skbaxc8w.js +266 -0
  358. package/dist/chunk-sm5gbd0n.js +93 -0
  359. package/dist/chunk-sm7pm2be.js +114 -0
  360. package/dist/chunk-sp1beegb.js +24 -0
  361. package/dist/chunk-sw7ramwg.js +333 -0
  362. package/dist/chunk-swg7z17h.js +40 -0
  363. package/dist/chunk-szj5wvdy.js +28 -0
  364. package/dist/chunk-t0rgmccj.js +39 -0
  365. package/dist/chunk-t3360k46.js +75 -0
  366. package/dist/chunk-te2byqrn.js +265 -0
  367. package/dist/chunk-tggpkxkz.js +463 -0
  368. package/dist/chunk-tj6kpqkn.js +338 -0
  369. package/dist/chunk-tjk56vh8.js +81 -0
  370. package/dist/chunk-tn9vdsk8.js +42 -0
  371. package/dist/chunk-tnkpg5zy.js +96 -0
  372. package/dist/chunk-tp1jevns.js +88 -0
  373. package/dist/chunk-ts2p6bv1.js +224 -0
  374. package/dist/chunk-ttk5dzz8.js +25 -0
  375. package/dist/chunk-tw1qdn17.js +273 -0
  376. package/dist/chunk-v0kjwb0t.js +432 -0
  377. package/dist/chunk-v0zymd55.js +97 -0
  378. package/dist/chunk-v19nxarv.js +145 -0
  379. package/dist/chunk-v1kzp02e.js +785 -0
  380. package/dist/chunk-v2ezs6e1.js +102 -0
  381. package/dist/chunk-v3m9g5sk.js +5954 -0
  382. package/dist/chunk-v78fj8by.js +145 -0
  383. package/dist/chunk-v7n7nnwc.js +63 -0
  384. package/dist/chunk-v90xv5n9.js +157 -0
  385. package/dist/chunk-v9g1vkw6.js +490 -0
  386. package/dist/chunk-v9smspw2.js +4301 -0
  387. package/dist/chunk-vaangq3b.js +91 -0
  388. package/dist/chunk-vav0bknn.js +3205 -0
  389. package/dist/chunk-vd3bb2zh.js +173 -0
  390. package/dist/chunk-vest0y6x.js +3830 -0
  391. package/dist/chunk-vf5sd1nq.js +12 -0
  392. package/dist/chunk-vfkbphk7.js +110 -0
  393. package/dist/chunk-vfz0cnrr.js +538 -0
  394. package/dist/chunk-vhjx5fag.js +56 -0
  395. package/dist/chunk-vm90ex8p.js +87 -0
  396. package/dist/chunk-vn4hnzzj.js +1391 -0
  397. package/dist/chunk-vnhf95xv.js +1921 -0
  398. package/dist/chunk-vqk1n5qr.js +63 -0
  399. package/dist/chunk-vqv555ym.js +154 -0
  400. package/dist/chunk-vqvd3qz0.js +151 -0
  401. package/dist/chunk-vry2drqk.js +3059 -0
  402. package/dist/chunk-vwtd8nde.js +154 -0
  403. package/dist/chunk-vx361530.js +1015 -0
  404. package/dist/chunk-vyjeh50y.js +2149 -0
  405. package/dist/chunk-w100pzs6.js +41 -0
  406. package/dist/chunk-wfz0qffj.js +3939 -0
  407. package/dist/chunk-wg4dbja0.js +472 -0
  408. package/dist/chunk-wgcssf6v.js +722 -0
  409. package/dist/chunk-wgx66wsj.js +79 -0
  410. package/dist/chunk-wn0553ta.js +566 -0
  411. package/dist/chunk-wn2268qd.js +335 -0
  412. package/dist/chunk-wnd5166q.js +32 -0
  413. package/dist/chunk-wrhhmkf7.js +16 -0
  414. package/dist/chunk-wsswrgqp.js +339 -0
  415. package/dist/chunk-wx6ww2hs.js +89 -0
  416. package/dist/chunk-wzpdet3m.js +843 -0
  417. package/dist/chunk-x6r4v44b.js +8 -0
  418. package/dist/chunk-x8b7vft8.js +132 -0
  419. package/dist/chunk-xbtacp2f.js +4389 -0
  420. package/dist/chunk-xfxyj6qk.js +79 -0
  421. package/dist/chunk-xq4cfvpn.js +213 -0
  422. package/dist/chunk-xsq9ae7x.js +90 -0
  423. package/dist/chunk-xszk7n10.js +14358 -0
  424. package/dist/chunk-xv3era3s.js +8 -0
  425. package/dist/chunk-y1784krc.js +19 -0
  426. package/dist/chunk-y2ymcvfg.js +287 -0
  427. package/dist/chunk-y3kmy2bv.js +306 -0
  428. package/dist/chunk-y43rmrar.js +438 -0
  429. package/dist/chunk-ya2a18ws.js +59 -0
  430. package/dist/chunk-ybcvr9fg.js +73 -0
  431. package/dist/chunk-ybe68nyc.js +387 -0
  432. package/dist/chunk-yqddvpyv.js +100 -0
  433. package/dist/chunk-yr403t45.js +140 -0
  434. package/dist/chunk-ys4nx5va.js +90 -0
  435. package/dist/chunk-ysvwcdav.js +9300 -0
  436. package/dist/chunk-ytvzxnx2.js +862 -0
  437. package/dist/chunk-ywxd4qw4.js +22 -0
  438. package/dist/chunk-yysj6sxt.js +336 -0
  439. package/dist/chunk-z21fwesz.js +32 -0
  440. package/dist/chunk-z2dp53wn.js +17 -0
  441. package/dist/chunk-z84vgtw3.js +87 -0
  442. package/dist/chunk-z8fszc51.js +1322 -0
  443. package/dist/chunk-z97w0agx.js +444 -0
  444. package/dist/chunk-z9pphyhq.js +500 -0
  445. package/dist/chunk-zc6g0qqe.js +29 -0
  446. package/dist/chunk-zk2wsm7d.js +15 -0
  447. package/dist/chunk-zngsje4b.js +257 -0
  448. package/dist/chunk-zp37prdd.js +26840 -0
  449. package/dist/chunk-zsfxha74.js +17655 -0
  450. package/dist/chunk-ztmjzgq7.js +524 -0
  451. package/dist/chunk-zx7pgp71.js +20 -0
  452. package/dist/chunk-zy31eks8.js +372 -0
  453. package/dist/cli.js +92 -0
  454. package/package.json +36 -0
@@ -0,0 +1,534 @@
1
+ // @bun
2
+ import {
3
+ fetchUtilization,
4
+ init_usage
5
+ } from "./chunk-kgf50mqk.js";
6
+ import {
7
+ Select,
8
+ checkRemoteAgentEligibility,
9
+ formatPreconditionError,
10
+ getRemoteTaskSessionUrl,
11
+ init_RemoteAgentTask,
12
+ init_select,
13
+ init_teleport,
14
+ registerRemoteAgentTask,
15
+ teleportToRemote
16
+ } from "./chunk-730qrdey.js";
17
+ import"./chunk-cfmxfyg6.js";
18
+ import"./chunk-vwtd8nde.js";
19
+ import"./chunk-nsw7n8c5.js";
20
+ import"./chunk-v7n7nnwc.js";
21
+ import"./chunk-t0rgmccj.js";
22
+ import {
23
+ Dialog,
24
+ init_Dialog
25
+ } from "./chunk-tggpkxkz.js";
26
+ import"./chunk-2gzv8nrw.js";
27
+ import"./chunk-ehtwnxpg.js";
28
+ import"./chunk-xfxyj6qk.js";
29
+ import"./chunk-n8326eqb.js";
30
+ import"./chunk-vhjx5fag.js";
31
+ import"./chunk-ps540063.js";
32
+ import"./chunk-fz0qs5hv.js";
33
+ import"./chunk-j5hc27hv.js";
34
+ import"./chunk-cgfdkzhb.js";
35
+ import"./chunk-re8evv5h.js";
36
+ import"./chunk-g3jde8ef.js";
37
+ import"./chunk-9gbamk79.js";
38
+ import"./chunk-6p1yy212.js";
39
+ import"./chunk-gv0tqhg0.js";
40
+ import"./chunk-gdr19kp1.js";
41
+ import {
42
+ ThemedBox_default,
43
+ ThemedText,
44
+ init_ink,
45
+ require_compiler_runtime
46
+ } from "./chunk-zp37prdd.js";
47
+ import"./chunk-7m2nd8da.js";
48
+ import"./chunk-ps49ymvj.js";
49
+ import {
50
+ require_jsx_dev_runtime,
51
+ require_react
52
+ } from "./chunk-g338npwr.js";
53
+ import"./chunk-ya2a18ws.js";
54
+ import"./chunk-zk2wsm7d.js";
55
+ import {
56
+ getOAuthHeaders,
57
+ init_api,
58
+ prepareApiRequest
59
+ } from "./chunk-14as9yqj.js";
60
+ import"./chunk-7e6ahfxz.js";
61
+ import"./chunk-vn4hnzzj.js";
62
+ import {
63
+ getFeatureValue_CACHED_MAY_BE_STALE,
64
+ init_auth,
65
+ init_growthbook,
66
+ isClaudeAISubscriber,
67
+ isEnterpriseSubscriber,
68
+ isTeamSubscriber
69
+ } from "./chunk-3tqnjgfx.js";
70
+ import"./chunk-eebcvtbb.js";
71
+ import"./chunk-xq4cfvpn.js";
72
+ import"./chunk-4qz9vbs1.js";
73
+ import"./chunk-gmaybtrd.js";
74
+ import"./chunk-b75fzr8e.js";
75
+ import"./chunk-g0j0t6qk.js";
76
+ import"./chunk-3c25bcsw.js";
77
+ import"./chunk-nj17bhkh.js";
78
+ import"./chunk-55wgxwa9.js";
79
+ import"./chunk-vqk1n5qr.js";
80
+ import"./chunk-4jm600zv.js";
81
+ import"./chunk-wn2268qd.js";
82
+ import {
83
+ getOauthConfig,
84
+ init_oauth
85
+ } from "./chunk-vqvd3qz0.js";
86
+ import"./chunk-f5ma3nh5.js";
87
+ import"./chunk-qz2x630m.js";
88
+ import"./chunk-d9kz373t.js";
89
+ import"./chunk-p2816w9z.js";
90
+ import"./chunk-v9smspw2.js";
91
+ import"./chunk-v1kzp02e.js";
92
+ import"./chunk-0vkfrmqm.js";
93
+ import"./chunk-0xjaqda8.js";
94
+ import"./chunk-res15ktd.js";
95
+ import"./chunk-wgcssf6v.js";
96
+ import"./chunk-cdz5yb0r.js";
97
+ import {
98
+ init_analytics,
99
+ logEvent
100
+ } from "./chunk-h0rbjg6x.js";
101
+ import {
102
+ detectCurrentRepositoryWithHost,
103
+ init_detectRepository
104
+ } from "./chunk-dstxhxsx.js";
105
+ import {
106
+ getDefaultBranch,
107
+ gitExe,
108
+ init_git
109
+ } from "./chunk-b8x1gk3y.js";
110
+ import"./chunk-9k2drwej.js";
111
+ import"./chunk-qnfx3qtx.js";
112
+ import"./chunk-fbpftpf0.js";
113
+ import"./chunk-3vs3nm7w.js";
114
+ import {
115
+ execFileNoThrow,
116
+ init_execFileNoThrow
117
+ } from "./chunk-gzzfhtdv.js";
118
+ import"./chunk-yysj6sxt.js";
119
+ import"./chunk-8tnsngw2.js";
120
+ import"./chunk-8bedvdm1.js";
121
+ import"./chunk-7wm5s02e.js";
122
+ import {
123
+ init_debug,
124
+ logForDebugging
125
+ } from "./chunk-sbbj6ta3.js";
126
+ import"./chunk-fbv4apne.js";
127
+ import"./chunk-raqgs410.js";
128
+ import"./chunk-qqfa0dqg.js";
129
+ import"./chunk-hqmz36b3.js";
130
+ import"./chunk-4g3v8y12.js";
131
+ import"./chunk-7739pg2c.js";
132
+ import {
133
+ axios_default,
134
+ init_axios
135
+ } from "./chunk-xszk7n10.js";
136
+ import"./chunk-sdj9b9wh.js";
137
+ import {
138
+ __esm,
139
+ __toESM
140
+ } from "./chunk-qp2qdcda.js";
141
+
142
+ // src/services/api/ultrareviewQuota.ts
143
+ async function fetchUltrareviewQuota() {
144
+ if (!isClaudeAISubscriber())
145
+ return null;
146
+ try {
147
+ const { accessToken, orgUUID } = await prepareApiRequest();
148
+ const response = await axios_default.get(`${getOauthConfig().BASE_API_URL}/v1/ultrareview/quota`, {
149
+ headers: {
150
+ ...getOAuthHeaders(accessToken),
151
+ "x-organization-uuid": orgUUID
152
+ },
153
+ timeout: 5000
154
+ });
155
+ return response.data;
156
+ } catch (error) {
157
+ logForDebugging(`fetchUltrareviewQuota failed: ${error}`);
158
+ return null;
159
+ }
160
+ }
161
+ var init_ultrareviewQuota = __esm(() => {
162
+ init_axios();
163
+ init_oauth();
164
+ init_auth();
165
+ init_debug();
166
+ init_api();
167
+ });
168
+
169
+ // src/commands/review/reviewRemote.ts
170
+ function confirmOverage() {
171
+ sessionOverageConfirmed = true;
172
+ }
173
+ async function checkOverageGate() {
174
+ if (isTeamSubscriber() || isEnterpriseSubscriber()) {
175
+ return { kind: "proceed", billingNote: "" };
176
+ }
177
+ const [quota, utilization] = await Promise.all([
178
+ fetchUltrareviewQuota(),
179
+ fetchUtilization().catch(() => null)
180
+ ]);
181
+ if (!quota) {
182
+ return { kind: "proceed", billingNote: "" };
183
+ }
184
+ if (quota.reviews_remaining > 0) {
185
+ return {
186
+ kind: "proceed",
187
+ billingNote: ` This is free ultrareview ${quota.reviews_used + 1} of ${quota.reviews_limit}.`
188
+ };
189
+ }
190
+ if (!utilization) {
191
+ return { kind: "proceed", billingNote: "" };
192
+ }
193
+ const extraUsage = utilization.extra_usage;
194
+ if (!extraUsage?.is_enabled) {
195
+ logEvent("tengu_review_overage_not_enabled", {});
196
+ return { kind: "not-enabled" };
197
+ }
198
+ const monthlyLimit = extraUsage.monthly_limit;
199
+ const usedCredits = extraUsage.used_credits ?? 0;
200
+ const available = monthlyLimit === null || monthlyLimit === undefined ? Infinity : monthlyLimit - usedCredits;
201
+ if (available < 10) {
202
+ logEvent("tengu_review_overage_low_balance", { available });
203
+ return { kind: "low-balance", available };
204
+ }
205
+ if (!sessionOverageConfirmed) {
206
+ logEvent("tengu_review_overage_dialog_shown", {});
207
+ return { kind: "needs-confirm" };
208
+ }
209
+ return {
210
+ kind: "proceed",
211
+ billingNote: " This review bills as Extra Usage."
212
+ };
213
+ }
214
+ async function launchRemoteReview(args, context, billingNote) {
215
+ const eligibility = await checkRemoteAgentEligibility();
216
+ if (!eligibility.eligible) {
217
+ const blockers = eligibility.errors.filter((e) => e.type !== "no_remote_environment");
218
+ if (blockers.length > 0) {
219
+ logEvent("tengu_review_remote_precondition_failed", {
220
+ precondition_errors: blockers.map((e) => e.type).join(",")
221
+ });
222
+ const reasons = blockers.map(formatPreconditionError).join(`
223
+ `);
224
+ return [
225
+ {
226
+ type: "text",
227
+ text: `Ultrareview cannot launch:
228
+ ${reasons}`
229
+ }
230
+ ];
231
+ }
232
+ }
233
+ const resolvedBillingNote = billingNote ?? "";
234
+ const prNumber = args.trim();
235
+ const isPrNumber = /^\d+$/.test(prNumber);
236
+ const CODE_REVIEW_ENV_ID = "env_011111111111111111111113";
237
+ const raw = getFeatureValue_CACHED_MAY_BE_STALE("tengu_review_bughunter_config", null);
238
+ const posInt = (v, fallback, max) => {
239
+ if (typeof v !== "number" || !Number.isFinite(v))
240
+ return fallback;
241
+ const n = Math.floor(v);
242
+ if (n <= 0)
243
+ return fallback;
244
+ return max !== undefined && n > max ? fallback : n;
245
+ };
246
+ const commonEnvVars = {
247
+ BUGHUNTER_DRY_RUN: "1",
248
+ BUGHUNTER_FLEET_SIZE: String(posInt(raw?.fleet_size, 5, 20)),
249
+ BUGHUNTER_MAX_DURATION: String(posInt(raw?.max_duration_minutes, 10, 25)),
250
+ BUGHUNTER_AGENT_TIMEOUT: String(posInt(raw?.agent_timeout_seconds, 600, 1800)),
251
+ BUGHUNTER_TOTAL_WALLCLOCK: String(posInt(raw?.total_wallclock_minutes, 22, 27)),
252
+ ...process.env.BUGHUNTER_DEV_BUNDLE_B64 && {
253
+ BUGHUNTER_DEV_BUNDLE_B64: process.env.BUGHUNTER_DEV_BUNDLE_B64
254
+ }
255
+ };
256
+ let session;
257
+ let command;
258
+ let target;
259
+ if (isPrNumber) {
260
+ const repo = await detectCurrentRepositoryWithHost();
261
+ if (!repo || repo.host !== "github.com") {
262
+ logEvent("tengu_review_remote_precondition_failed", {});
263
+ return null;
264
+ }
265
+ session = await teleportToRemote({
266
+ initialMessage: null,
267
+ description: `ultrareview: ${repo.owner}/${repo.name}#${prNumber}`,
268
+ signal: context.abortController.signal,
269
+ branchName: `refs/pull/${prNumber}/head`,
270
+ environmentId: CODE_REVIEW_ENV_ID,
271
+ environmentVariables: {
272
+ BUGHUNTER_PR_NUMBER: prNumber,
273
+ BUGHUNTER_REPOSITORY: `${repo.owner}/${repo.name}`,
274
+ ...commonEnvVars
275
+ }
276
+ });
277
+ command = `/ultrareview ${prNumber}`;
278
+ target = `${repo.owner}/${repo.name}#${prNumber}`;
279
+ } else {
280
+ const baseBranch = await getDefaultBranch() || "main";
281
+ const { stdout: mbOut, code: mbCode } = await execFileNoThrow(gitExe(), ["merge-base", baseBranch, "HEAD"], { preserveOutputOnError: false });
282
+ const mergeBaseSha = mbOut.trim();
283
+ if (mbCode !== 0 || !mergeBaseSha) {
284
+ logEvent("tengu_review_remote_precondition_failed", {});
285
+ return [
286
+ {
287
+ type: "text",
288
+ text: `Could not find merge-base with ${baseBranch}. Make sure you're in a git repo with a ${baseBranch} branch.`
289
+ }
290
+ ];
291
+ }
292
+ const { stdout: diffStat, code: diffCode } = await execFileNoThrow(gitExe(), ["diff", "--shortstat", mergeBaseSha], { preserveOutputOnError: false });
293
+ if (diffCode === 0 && !diffStat.trim()) {
294
+ logEvent("tengu_review_remote_precondition_failed", {});
295
+ return [
296
+ {
297
+ type: "text",
298
+ text: `No changes against the ${baseBranch} fork point. Make some commits or stage files first.`
299
+ }
300
+ ];
301
+ }
302
+ session = await teleportToRemote({
303
+ initialMessage: null,
304
+ description: `ultrareview: ${baseBranch}`,
305
+ signal: context.abortController.signal,
306
+ useBundle: true,
307
+ environmentId: CODE_REVIEW_ENV_ID,
308
+ environmentVariables: {
309
+ BUGHUNTER_BASE_BRANCH: mergeBaseSha,
310
+ ...commonEnvVars
311
+ }
312
+ });
313
+ if (!session) {
314
+ logEvent("tengu_review_remote_teleport_failed", {});
315
+ return [
316
+ {
317
+ type: "text",
318
+ text: "Repo is too large. Push a PR and use `/ultrareview <PR#>` instead."
319
+ }
320
+ ];
321
+ }
322
+ command = "/ultrareview";
323
+ target = baseBranch;
324
+ }
325
+ if (!session) {
326
+ logEvent("tengu_review_remote_teleport_failed", {});
327
+ return null;
328
+ }
329
+ registerRemoteAgentTask({
330
+ remoteTaskType: "ultrareview",
331
+ session,
332
+ command,
333
+ context,
334
+ isRemoteReview: true
335
+ });
336
+ logEvent("tengu_review_remote_launched", {});
337
+ const sessionUrl = getRemoteTaskSessionUrl(session.id);
338
+ return [
339
+ {
340
+ type: "text",
341
+ text: `Ultrareview launched for ${target} (~10\u201320 min, runs in the cloud). Track: ${sessionUrl}${resolvedBillingNote} Findings arrive via task-notification. Briefly acknowledge the launch to the user without repeating the target or URL \u2014 both are already visible in the tool output above.`
342
+ }
343
+ ];
344
+ }
345
+ var sessionOverageConfirmed = false;
346
+ var init_reviewRemote = __esm(() => {
347
+ init_growthbook();
348
+ init_analytics();
349
+ init_ultrareviewQuota();
350
+ init_usage();
351
+ init_RemoteAgentTask();
352
+ init_auth();
353
+ init_detectRepository();
354
+ init_execFileNoThrow();
355
+ init_git();
356
+ init_teleport();
357
+ });
358
+
359
+ // src/commands/review/UltrareviewOverageDialog.tsx
360
+ function UltrareviewOverageDialog(t0) {
361
+ const $ = import_compiler_runtime.c(15);
362
+ const {
363
+ onProceed,
364
+ onCancel
365
+ } = t0;
366
+ const [isLaunching, setIsLaunching] = import_react.useState(false);
367
+ let t1;
368
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
369
+ t1 = new AbortController;
370
+ $[0] = t1;
371
+ } else {
372
+ t1 = $[0];
373
+ }
374
+ const abortControllerRef = import_react.useRef(t1);
375
+ let t2;
376
+ if ($[1] !== onCancel || $[2] !== onProceed) {
377
+ t2 = (value) => {
378
+ if (value === "proceed") {
379
+ setIsLaunching(true);
380
+ onProceed(abortControllerRef.current.signal).catch(() => setIsLaunching(false));
381
+ } else {
382
+ onCancel();
383
+ }
384
+ };
385
+ $[1] = onCancel;
386
+ $[2] = onProceed;
387
+ $[3] = t2;
388
+ } else {
389
+ t2 = $[3];
390
+ }
391
+ const handleSelect = t2;
392
+ let t3;
393
+ if ($[4] !== onCancel) {
394
+ t3 = () => {
395
+ abortControllerRef.current.abort();
396
+ onCancel();
397
+ };
398
+ $[4] = onCancel;
399
+ $[5] = t3;
400
+ } else {
401
+ t3 = $[5];
402
+ }
403
+ const handleCancel = t3;
404
+ let t4;
405
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
406
+ t4 = [{
407
+ label: "Proceed with Extra Usage billing",
408
+ value: "proceed"
409
+ }, {
410
+ label: "Cancel",
411
+ value: "cancel"
412
+ }];
413
+ $[6] = t4;
414
+ } else {
415
+ t4 = $[6];
416
+ }
417
+ const options = t4;
418
+ let t5;
419
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
420
+ t5 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
421
+ children: "Your free ultrareviews for this organization are used. Further reviews bill as Extra Usage (pay-per-use)."
422
+ }, undefined, false, undefined, this);
423
+ $[7] = t5;
424
+ } else {
425
+ t5 = $[7];
426
+ }
427
+ let t6;
428
+ if ($[8] !== handleCancel || $[9] !== handleSelect || $[10] !== isLaunching) {
429
+ t6 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedBox_default, {
430
+ flexDirection: "column",
431
+ gap: 1,
432
+ children: [
433
+ t5,
434
+ isLaunching ? /* @__PURE__ */ jsx_dev_runtime.jsxDEV(ThemedText, {
435
+ color: "background",
436
+ children: "Launching\u2026"
437
+ }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Select, {
438
+ options,
439
+ onChange: handleSelect,
440
+ onCancel: handleCancel
441
+ }, undefined, false, undefined, this)
442
+ ]
443
+ }, undefined, true, undefined, this);
444
+ $[8] = handleCancel;
445
+ $[9] = handleSelect;
446
+ $[10] = isLaunching;
447
+ $[11] = t6;
448
+ } else {
449
+ t6 = $[11];
450
+ }
451
+ let t7;
452
+ if ($[12] !== handleCancel || $[13] !== t6) {
453
+ t7 = /* @__PURE__ */ jsx_dev_runtime.jsxDEV(Dialog, {
454
+ title: "Ultrareview billing",
455
+ onCancel: handleCancel,
456
+ color: "background",
457
+ children: t6
458
+ }, undefined, false, undefined, this);
459
+ $[12] = handleCancel;
460
+ $[13] = t6;
461
+ $[14] = t7;
462
+ } else {
463
+ t7 = $[14];
464
+ }
465
+ return t7;
466
+ }
467
+ var import_compiler_runtime, import_react, jsx_dev_runtime;
468
+ var init_UltrareviewOverageDialog = __esm(() => {
469
+ init_select();
470
+ init_Dialog();
471
+ init_ink();
472
+ import_compiler_runtime = __toESM(require_compiler_runtime(), 1);
473
+ import_react = __toESM(require_react(), 1);
474
+ jsx_dev_runtime = __toESM(require_jsx_dev_runtime(), 1);
475
+ });
476
+
477
+ // src/commands/review/ultrareviewCommand.tsx
478
+ function contentBlocksToString(blocks) {
479
+ return blocks.map((b) => b.type === "text" ? b.text : "").filter(Boolean).join(`
480
+ `);
481
+ }
482
+ async function launchAndDone(args, context, onDone, billingNote, signal) {
483
+ const result = await launchRemoteReview(args, context, billingNote);
484
+ if (signal?.aborted)
485
+ return;
486
+ if (result) {
487
+ onDone(contentBlocksToString(result), {
488
+ shouldQuery: true
489
+ });
490
+ } else {
491
+ onDone("Ultrareview failed to launch the remote session. Check that this is a GitHub repo and try again.", {
492
+ display: "system"
493
+ });
494
+ }
495
+ }
496
+ var jsx_dev_runtime2, call = async (onDone, context, args) => {
497
+ const gate = await checkOverageGate();
498
+ if (gate.kind === "not-enabled") {
499
+ onDone("Free ultrareviews used. Enable Extra Usage at https://claude.ai/settings/billing to continue.", {
500
+ display: "system"
501
+ });
502
+ return null;
503
+ }
504
+ if (gate.kind === "low-balance") {
505
+ onDone(`Balance too low to launch ultrareview ($${gate.available.toFixed(2)} available, $10 minimum). Top up at https://claude.ai/settings/billing`, {
506
+ display: "system"
507
+ });
508
+ return null;
509
+ }
510
+ if (gate.kind === "needs-confirm") {
511
+ return /* @__PURE__ */ jsx_dev_runtime2.jsxDEV(UltrareviewOverageDialog, {
512
+ onProceed: async (signal) => {
513
+ await launchAndDone(args, context, onDone, " This review bills as Extra Usage.", signal);
514
+ if (!signal.aborted)
515
+ confirmOverage();
516
+ },
517
+ onCancel: () => onDone("Ultrareview cancelled.", {
518
+ display: "system"
519
+ })
520
+ }, undefined, false, undefined, this);
521
+ }
522
+ await launchAndDone(args, context, onDone, gate.billingNote);
523
+ return null;
524
+ };
525
+ var init_ultrareviewCommand = __esm(() => {
526
+ init_reviewRemote();
527
+ init_UltrareviewOverageDialog();
528
+ jsx_dev_runtime2 = __toESM(require_jsx_dev_runtime(), 1);
529
+ });
530
+ init_ultrareviewCommand();
531
+
532
+ export {
533
+ call
534
+ };
@@ -0,0 +1,182 @@
1
+ // @bun
2
+ import {
3
+ init_path
4
+ } from "./chunk-xq4cfvpn.js";
5
+ import {
6
+ sanitizePath
7
+ } from "./chunk-4qz9vbs1.js";
8
+ import {
9
+ createBufferedWriter,
10
+ getFsImplementation,
11
+ init_bufferedWriter,
12
+ init_cleanupRegistry,
13
+ init_debug,
14
+ init_fsOperations,
15
+ init_slowOperations,
16
+ jsonStringify,
17
+ logForDebugging,
18
+ registerCleanup
19
+ } from "./chunk-sbbj6ta3.js";
20
+ import {
21
+ getClaudeConfigHomeDir,
22
+ init_envUtils,
23
+ isEnvTruthy
24
+ } from "./chunk-raqgs410.js";
25
+ import {
26
+ getOriginalCwd,
27
+ getSessionId,
28
+ init_state
29
+ } from "./chunk-qqfa0dqg.js";
30
+
31
+ // src/utils/asciicast.ts
32
+ init_state();
33
+ init_bufferedWriter();
34
+ init_cleanupRegistry();
35
+ init_debug();
36
+ init_envUtils();
37
+ init_fsOperations();
38
+ init_path();
39
+ init_slowOperations();
40
+ import { appendFile, rename } from "fs/promises";
41
+ import { basename, dirname, join } from "path";
42
+ var recordingState = {
43
+ filePath: null,
44
+ timestamp: 0
45
+ };
46
+ function getRecordFilePath() {
47
+ if (recordingState.filePath !== null) {
48
+ return recordingState.filePath;
49
+ }
50
+ if (process.env.USER_TYPE !== "ant") {
51
+ return null;
52
+ }
53
+ if (!isEnvTruthy(process.env.CLAUDE_CODE_TERMINAL_RECORDING)) {
54
+ return null;
55
+ }
56
+ const projectsDir = join(getClaudeConfigHomeDir(), "projects");
57
+ const projectDir = join(projectsDir, sanitizePath(getOriginalCwd()));
58
+ recordingState.timestamp = Date.now();
59
+ recordingState.filePath = join(projectDir, `${getSessionId()}-${recordingState.timestamp}.cast`);
60
+ return recordingState.filePath;
61
+ }
62
+ function _resetRecordingStateForTesting() {
63
+ recordingState.filePath = null;
64
+ recordingState.timestamp = 0;
65
+ }
66
+ function getSessionRecordingPaths() {
67
+ const sessionId = getSessionId();
68
+ const projectsDir = join(getClaudeConfigHomeDir(), "projects");
69
+ const projectDir = join(projectsDir, sanitizePath(getOriginalCwd()));
70
+ try {
71
+ const entries = getFsImplementation().readdirSync(projectDir);
72
+ const names = typeof entries[0] === "string" ? entries : entries.map((e) => e.name);
73
+ const files = names.filter((f) => f.startsWith(sessionId) && f.endsWith(".cast")).sort();
74
+ return files.map((f) => join(projectDir, f));
75
+ } catch {
76
+ return [];
77
+ }
78
+ }
79
+ async function renameRecordingForSession() {
80
+ const oldPath = recordingState.filePath;
81
+ if (!oldPath || recordingState.timestamp === 0) {
82
+ return;
83
+ }
84
+ const projectsDir = join(getClaudeConfigHomeDir(), "projects");
85
+ const projectDir = join(projectsDir, sanitizePath(getOriginalCwd()));
86
+ const newPath = join(projectDir, `${getSessionId()}-${recordingState.timestamp}.cast`);
87
+ if (oldPath === newPath) {
88
+ return;
89
+ }
90
+ await recorder?.flush();
91
+ const oldName = basename(oldPath);
92
+ const newName = basename(newPath);
93
+ try {
94
+ await rename(oldPath, newPath);
95
+ recordingState.filePath = newPath;
96
+ logForDebugging(`[asciicast] Renamed recording: ${oldName} \u2192 ${newName}`);
97
+ } catch {
98
+ logForDebugging(`[asciicast] Failed to rename recording from ${oldName} to ${newName}`);
99
+ }
100
+ }
101
+ var recorder = null;
102
+ function getTerminalSize() {
103
+ const cols = process.stdout.columns || 80;
104
+ const rows = process.stdout.rows || 24;
105
+ return { cols, rows };
106
+ }
107
+ async function flushAsciicastRecorder() {
108
+ await recorder?.flush();
109
+ }
110
+ function installAsciicastRecorder() {
111
+ const filePath = getRecordFilePath();
112
+ if (!filePath) {
113
+ return;
114
+ }
115
+ const { cols, rows } = getTerminalSize();
116
+ const startTime = performance.now();
117
+ const header = jsonStringify({
118
+ version: 2,
119
+ width: cols,
120
+ height: rows,
121
+ timestamp: Math.floor(Date.now() / 1000),
122
+ env: {
123
+ SHELL: process.env.SHELL || "",
124
+ TERM: process.env.TERM || ""
125
+ }
126
+ });
127
+ try {
128
+ getFsImplementation().mkdirSync(dirname(filePath));
129
+ } catch {}
130
+ getFsImplementation().appendFileSync(filePath, header + `
131
+ `, { mode: 384 });
132
+ let pendingWrite = Promise.resolve();
133
+ const writer = createBufferedWriter({
134
+ writeFn(content) {
135
+ const currentPath = recordingState.filePath;
136
+ if (!currentPath) {
137
+ return;
138
+ }
139
+ pendingWrite = pendingWrite.then(() => appendFile(currentPath, content)).catch(() => {});
140
+ },
141
+ flushIntervalMs: 500,
142
+ maxBufferSize: 50,
143
+ maxBufferBytes: 10 * 1024 * 1024
144
+ });
145
+ const originalWrite = process.stdout.write.bind(process.stdout);
146
+ process.stdout.write = function(chunk, encodingOrCb, cb) {
147
+ const elapsed = (performance.now() - startTime) / 1000;
148
+ const text = typeof chunk === "string" ? chunk : Buffer.from(chunk).toString("utf-8");
149
+ writer.write(jsonStringify([elapsed, "o", text]) + `
150
+ `);
151
+ if (typeof encodingOrCb === "function") {
152
+ return originalWrite(chunk, encodingOrCb);
153
+ }
154
+ return originalWrite(chunk, encodingOrCb, cb);
155
+ };
156
+ function onResize() {
157
+ const elapsed = (performance.now() - startTime) / 1000;
158
+ const { cols: newCols, rows: newRows } = getTerminalSize();
159
+ writer.write(jsonStringify([elapsed, "r", `${newCols}x${newRows}`]) + `
160
+ `);
161
+ }
162
+ process.stdout.on("resize", onResize);
163
+ recorder = {
164
+ async flush() {
165
+ writer.flush();
166
+ await pendingWrite;
167
+ },
168
+ async dispose() {
169
+ writer.dispose();
170
+ await pendingWrite;
171
+ process.stdout.removeListener("resize", onResize);
172
+ process.stdout.write = originalWrite;
173
+ }
174
+ };
175
+ registerCleanup(async () => {
176
+ await recorder?.dispose();
177
+ recorder = null;
178
+ });
179
+ logForDebugging(`[asciicast] Recording to ${filePath}`);
180
+ }
181
+
182
+ export { getRecordFilePath, _resetRecordingStateForTesting, getSessionRecordingPaths, renameRecordingForSession, flushAsciicastRecorder, installAsciicastRecorder };