@qitqode/qitqode-android-arm64 0.1.36 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) hide show
  1. package/bundle/{chunk-cx7p4ezk.js → chunk-03mbn7nj.js} +2 -2
  2. package/bundle/{chunk-1yv5h8k4.js → chunk-073ydjmk.js} +1 -1
  3. package/bundle/{chunk-rrd0jf5m.js → chunk-07s30fpb.js} +1 -1
  4. package/bundle/{chunk-yacccwf6.js → chunk-087tnr8a.js} +1 -1
  5. package/bundle/{chunk-kx2dp8ch.js → chunk-0f3ft9dh.js} +1 -1
  6. package/bundle/{chunk-rgxy4ngt.js → chunk-0gab4v98.js} +1 -1
  7. package/bundle/chunk-0xrr0k94.js +2 -0
  8. package/bundle/chunk-0yagj4ss.js +2 -0
  9. package/bundle/chunk-0ych0f5w.js +2 -0
  10. package/bundle/{chunk-xyjehgzm.js → chunk-0z1cxvk1.js} +2 -2
  11. package/bundle/{chunk-rph9zj24.js → chunk-0zxwjsvz.js} +1 -1
  12. package/bundle/{chunk-pqnbdygz.js → chunk-1p6jjrea.js} +2 -2
  13. package/bundle/{chunk-9cw4cnz0.js → chunk-1q1cddy4.js} +1 -1
  14. package/bundle/{chunk-w9pdvcf9.js → chunk-1sfcxdbw.js} +2 -2
  15. package/bundle/chunk-22hr3ndh.js +2 -0
  16. package/bundle/chunk-23tyxyyj.js +2 -0
  17. package/bundle/chunk-28g1ndpx.js +2 -0
  18. package/bundle/chunk-29v1v357.js +2 -0
  19. package/bundle/{chunk-txqc7543.js → chunk-29zm623f.js} +2 -2
  20. package/bundle/{chunk-wm77svwm.js → chunk-2a9rzgk6.js} +1 -1
  21. package/bundle/chunk-2avxtbv3.js +2 -0
  22. package/bundle/{chunk-eaqfnwdj.js → chunk-2bgqy6z7.js} +1 -1
  23. package/bundle/{chunk-9zre5e54.js → chunk-2hv2c8d5.js} +1 -1
  24. package/bundle/{chunk-swcgsrbj.js → chunk-2jpmxt4v.js} +1 -1
  25. package/bundle/chunk-2qk0k2eb.js +2 -0
  26. package/bundle/{chunk-nsjp44fp.js → chunk-2qwmrp16.js} +1 -1
  27. package/bundle/{chunk-dykqn0nj.js → chunk-2xqqkf86.js} +2 -2
  28. package/bundle/{chunk-mvsrzvc4.js → chunk-3aq70t26.js} +1 -1
  29. package/bundle/{chunk-zfcfyagt.js → chunk-3h49k2ck.js} +1 -1
  30. package/bundle/chunk-3kn57y8d.js +619 -0
  31. package/bundle/chunk-3ktj87g4.js +2 -0
  32. package/bundle/{chunk-52b1v7mn.js → chunk-3qfpw8f6.js} +1 -1
  33. package/bundle/{chunk-v3x5nrc4.js → chunk-3tmq81kq.js} +2 -2
  34. package/bundle/chunk-3wxvpvg4.js +3 -0
  35. package/bundle/{chunk-neqy8j4n.js → chunk-42r7z6sq.js} +1 -1
  36. package/bundle/chunk-42wdfks8.js +2 -0
  37. package/bundle/chunk-4f19vqxf.js +2 -0
  38. package/bundle/{chunk-d93z6hrn.js → chunk-4fk46ngj.js} +1 -1
  39. package/bundle/{chunk-njkserae.js → chunk-4hd3v58j.js} +1 -1
  40. package/bundle/chunk-4jq25vbc.js +2 -0
  41. package/bundle/chunk-4m3k1atq.js +2 -0
  42. package/bundle/{chunk-1wpjmwnh.js → chunk-4mvg7jt1.js} +1 -1
  43. package/bundle/chunk-4n2ytddp.js +2 -0
  44. package/bundle/{chunk-zesbm9k1.js → chunk-4sxg9cgr.js} +1 -1
  45. package/bundle/{chunk-8fgamz4y.js → chunk-4v61ysex.js} +1 -1
  46. package/bundle/chunk-4yg42p6y.js +2 -0
  47. package/bundle/chunk-4zx3ze68.js +2 -0
  48. package/bundle/chunk-57xbwzdn.js +3 -0
  49. package/bundle/{chunk-rexdr63q.js → chunk-5az84brc.js} +2 -2
  50. package/bundle/{chunk-y0ydzdfc.js → chunk-5t0w9ecw.js} +1 -1
  51. package/bundle/{chunk-nq495be3.js → chunk-5wwd40t3.js} +1 -1
  52. package/bundle/chunk-637sjdzq.js +2 -0
  53. package/bundle/{chunk-snt1kefv.js → chunk-64c8q9zg.js} +3 -3
  54. package/bundle/{chunk-g794ey6w.js → chunk-6avjq7my.js} +1 -1
  55. package/bundle/chunk-6bghztra.js +2 -0
  56. package/bundle/{chunk-n0trgp1c.js → chunk-6dfjtzqb.js} +2 -2
  57. package/bundle/chunk-6h8f89tt.js +2 -0
  58. package/bundle/{chunk-b0jh0rby.js → chunk-6j339s7a.js} +2 -2
  59. package/bundle/{chunk-8q6z6emx.js → chunk-6kf4vw2g.js} +1 -1
  60. package/bundle/{chunk-hgsykghj.js → chunk-6pcmv8vs.js} +2 -2
  61. package/bundle/chunk-6sjj203r.js +2 -0
  62. package/bundle/{chunk-pmv8yr8c.js → chunk-6y4mwmn4.js} +1 -1
  63. package/bundle/{chunk-kt0ej3nq.js → chunk-6ypafpg8.js} +1 -1
  64. package/bundle/{chunk-p8kpqyxb.js → chunk-732yr6qq.js} +2 -2
  65. package/bundle/{chunk-3sz6gw10.js → chunk-73fz0cf4.js} +2 -2
  66. package/bundle/chunk-79aka9xe.js +2 -0
  67. package/bundle/{chunk-8tp4whyw.js → chunk-7my2231h.js} +1 -1
  68. package/bundle/{chunk-e03tgfpb.js → chunk-7myg8076.js} +6 -6
  69. package/bundle/{chunk-hbh2034m.js → chunk-7njz51r4.js} +1 -1
  70. package/bundle/chunk-7nqdhe7x.js +2 -0
  71. package/bundle/{chunk-zaan8jk6.js → chunk-7ntw4rrn.js} +1 -1
  72. package/bundle/chunk-7rhry8nv.js +2 -0
  73. package/bundle/chunk-7x88b2n2.js +2 -0
  74. package/bundle/{chunk-983rqajz.js → chunk-7zvawpe1.js} +2 -2
  75. package/bundle/{chunk-jgz1a29w.js → chunk-86jsqc7d.js} +3 -3
  76. package/bundle/{chunk-zbqzm65q.js → chunk-86yk21g4.js} +1 -1
  77. package/bundle/{chunk-w3bmf3zz.js → chunk-8e6gx3gg.js} +1 -1
  78. package/bundle/chunk-8mthftwc.js +2 -0
  79. package/bundle/{chunk-73ckx171.js → chunk-8q5ns61h.js} +1 -1
  80. package/bundle/{chunk-549ptbaj.js → chunk-8rh0femq.js} +1 -1
  81. package/bundle/chunk-8wdara3b.js +2 -0
  82. package/bundle/chunk-8xhzpnph.js +2 -0
  83. package/bundle/{chunk-kqhh2pm9.js → chunk-94qhpkfx.js} +1 -1
  84. package/bundle/{chunk-gxmxx8jb.js → chunk-99148b1k.js} +1 -1
  85. package/bundle/chunk-9akz8w0d.js +2 -0
  86. package/bundle/{chunk-7gbytqkn.js → chunk-9b4aqcde.js} +2 -2
  87. package/bundle/{chunk-tdmn21z0.js → chunk-9ea1n338.js} +2 -2
  88. package/bundle/chunk-9eg2ytjd.js +17 -0
  89. package/bundle/chunk-9etpppyv.js +3 -0
  90. package/bundle/{chunk-vgaxv70x.js → chunk-9jrxrjzt.js} +2 -2
  91. package/bundle/{chunk-3bkdbqjj.js → chunk-9jsgs71h.js} +1 -1
  92. package/bundle/{chunk-xqwvx3qq.js → chunk-9nn4jpb7.js} +1 -1
  93. package/bundle/{chunk-pxx2hz0g.js → chunk-9rxyq6f9.js} +2 -2
  94. package/bundle/chunk-9tk4wsn4.js +2 -0
  95. package/bundle/{chunk-9fkmhmh6.js → chunk-9y15zjxa.js} +1 -1
  96. package/bundle/chunk-a0rjp24v.js +2 -0
  97. package/bundle/{chunk-mdzzcrf9.js → chunk-a2dz9nqh.js} +2 -2
  98. package/bundle/chunk-a7p0x4sw.js +2 -0
  99. package/bundle/{chunk-ev3a2sxv.js → chunk-a92hh67a.js} +2 -2
  100. package/bundle/chunk-ae0a496j.js +2 -0
  101. package/bundle/{chunk-3bnqw3xp.js → chunk-ahyqfbmq.js} +2 -2
  102. package/bundle/chunk-aq1j9y18.js +2 -0
  103. package/bundle/chunk-aq8nz9hp.js +2 -0
  104. package/bundle/{chunk-zxddasg8.js → chunk-as845ya4.js} +1 -1
  105. package/bundle/chunk-b4zy78be.js +2 -0
  106. package/bundle/{chunk-45mjcxqk.js → chunk-b50t4jc5.js} +1 -1
  107. package/bundle/chunk-basjzwqp.js +2 -0
  108. package/bundle/{chunk-d1rn44wz.js → chunk-bbbh69ys.js} +1 -1
  109. package/bundle/{chunk-mw2hr4pd.js → chunk-bcx2vkv4.js} +1 -1
  110. package/bundle/{chunk-72zxassf.js → chunk-bggybm9k.js} +1 -1
  111. package/bundle/{chunk-4gs87ghj.js → chunk-bgng3rdj.js} +2 -2
  112. package/bundle/chunk-bhetpmgq.js +3 -0
  113. package/bundle/{chunk-bnz0mxak.js → chunk-bk3z400e.js} +1 -1
  114. package/bundle/chunk-bm7xpjh6.js +2 -0
  115. package/bundle/{chunk-jw16f6t0.js → chunk-bzs2ep7s.js} +1 -1
  116. package/bundle/{chunk-7fawtcnn.js → chunk-c1g8n10t.js} +1 -1
  117. package/bundle/chunk-c2k556rk.js +2 -0
  118. package/bundle/{chunk-w03fdrxe.js → chunk-cbf1y12x.js} +1 -1
  119. package/bundle/{chunk-vc4e6xc4.js → chunk-cbmwhvxw.js} +2 -2
  120. package/bundle/{chunk-5bate758.js → chunk-cp39f96a.js} +1 -1
  121. package/bundle/{chunk-9nk0ts0s.js → chunk-d307vb2d.js} +1 -1
  122. package/bundle/chunk-d41mg7at.js +2 -0
  123. package/bundle/chunk-d50kpss6.js +2 -0
  124. package/bundle/chunk-day0rb5p.js +2 -0
  125. package/bundle/{chunk-3gw6r3hf.js → chunk-dj3525nn.js} +215 -215
  126. package/bundle/{chunk-b4ysd5b4.js → chunk-dknemkw2.js} +2 -2
  127. package/bundle/chunk-dp7cww4v.js +2 -0
  128. package/bundle/{chunk-yeq7b87a.js → chunk-drwqag0f.js} +1 -1
  129. package/bundle/{chunk-qdcf1ay5.js → chunk-e586sjb0.js} +2 -2
  130. package/bundle/{chunk-qs4wef8c.js → chunk-e6wp96vm.js} +1 -1
  131. package/bundle/{chunk-d0xs3j5h.js → chunk-e89zjjmj.js} +1 -1
  132. package/bundle/chunk-egae7vvg.js +2 -0
  133. package/bundle/chunk-erdjd9w3.js +2 -0
  134. package/bundle/chunk-ex93y6dw.js +2 -0
  135. package/bundle/chunk-eyr0vf92.js +2 -0
  136. package/bundle/{chunk-02xcb52z.js → chunk-ezfzb8qc.js} +2 -2
  137. package/bundle/{chunk-qpd0gab8.js → chunk-f1bcz9yz.js} +1 -1
  138. package/bundle/chunk-f4zfk5ye.js +2 -0
  139. package/bundle/{chunk-rd4x4tsv.js → chunk-f7rj6fck.js} +1 -1
  140. package/bundle/{chunk-4sazy0nq.js → chunk-f83wv08n.js} +1 -1
  141. package/bundle/{chunk-n7xgfm5x.js → chunk-faa0zxey.js} +2 -2
  142. package/bundle/{chunk-3dr4469n.js → chunk-fbm6qczy.js} +1 -1
  143. package/bundle/{chunk-0g25z230.js → chunk-fd7fmvyw.js} +1 -1
  144. package/bundle/chunk-fghqr4x8.js +8 -0
  145. package/bundle/{chunk-bjcb9kt0.js → chunk-fgn83bs7.js} +1 -1
  146. package/bundle/{chunk-dshnn54c.js → chunk-fpm2vgz6.js} +1 -1
  147. package/bundle/chunk-fvkwcx35.js +2 -0
  148. package/bundle/{chunk-w5940jxm.js → chunk-fvy24yhq.js} +1 -1
  149. package/bundle/{chunk-fjm9kstr.js → chunk-fymt1rym.js} +1 -1
  150. package/bundle/{chunk-dt899wbf.js → chunk-g3kd4957.js} +2 -2
  151. package/bundle/{chunk-f36ctnbp.js → chunk-g5cgpvef.js} +2 -2
  152. package/bundle/{chunk-fmxm4kaj.js → chunk-g9end129.js} +1 -1
  153. package/bundle/chunk-gbmmbhy4.js +2 -0
  154. package/bundle/chunk-gp877cq5.js +2 -0
  155. package/bundle/{chunk-tgd5ctnt.js → chunk-gr4bctqj.js} +2 -2
  156. package/bundle/{chunk-dvxk6mr6.js → chunk-grw4gg9j.js} +2 -2
  157. package/bundle/{chunk-mvnxwwe7.js → chunk-gtjn3yc4.js} +2 -2
  158. package/bundle/chunk-hk8vvc10.js +2 -0
  159. package/bundle/{chunk-7dep7g7c.js → chunk-hmznf0ax.js} +1 -1
  160. package/bundle/{chunk-yjp0btmq.js → chunk-hpa7e9va.js} +3 -3
  161. package/bundle/{chunk-hcy77w6t.js → chunk-hq9bgnqb.js} +1 -1
  162. package/bundle/{chunk-gkj4a27z.js → chunk-hrw5rmj1.js} +1 -1
  163. package/bundle/{chunk-n2ygpy76.js → chunk-hs3vfhar.js} +1 -1
  164. package/bundle/chunk-hwavzxdm.js +2 -0
  165. package/bundle/chunk-hwnc2sa5.js +2 -0
  166. package/bundle/chunk-j2gvpa15.js +2 -0
  167. package/bundle/{chunk-te5tfq79.js → chunk-j3jqk62r.js} +1 -1
  168. package/bundle/{chunk-jqn27885.js → chunk-j5ymkhry.js} +1 -1
  169. package/bundle/chunk-j7n8khk7.js +2 -0
  170. package/bundle/{chunk-mqtqcc10.js → chunk-jgtcfw96.js} +2 -2
  171. package/bundle/{chunk-364ccew0.js → chunk-jjjs8p0t.js} +2 -2
  172. package/bundle/chunk-jkh98wby.js +2 -0
  173. package/bundle/{chunk-h7w35n7w.js → chunk-jv4th87b.js} +1 -1
  174. package/bundle/{chunk-j63fkt6n.js → chunk-jvjq554f.js} +1 -1
  175. package/bundle/{chunk-00sr2gwz.js → chunk-jw114bbt.js} +2 -2
  176. package/bundle/{chunk-ax1y4699.js → chunk-jwph7tpc.js} +1 -1
  177. package/bundle/{chunk-xdacgfba.js → chunk-k1gddnkm.js} +1 -1
  178. package/bundle/chunk-k5a652s4.js +2 -0
  179. package/bundle/{chunk-1mcsf4yb.js → chunk-k6cbfrzc.js} +2 -2
  180. package/bundle/chunk-k6w32q2p.js +2 -0
  181. package/bundle/{chunk-sy3n0qhc.js → chunk-kc1xmcc9.js} +141 -135
  182. package/bundle/{chunk-5kmfnkzv.js → chunk-kdcnder5.js} +1 -1
  183. package/bundle/chunk-ke5rqv5b.js +2 -0
  184. package/bundle/chunk-kghwk0yh.js +2 -0
  185. package/bundle/{chunk-r6ndvzd0.js → chunk-km1n4ttr.js} +1 -1
  186. package/bundle/{chunk-htkwc2se.js → chunk-knh01n2r.js} +2 -2
  187. package/bundle/{chunk-ydc6ypjt.js → chunk-ks1cs80p.js} +2 -2
  188. package/bundle/{chunk-08q55ya0.js → chunk-kxjrrdj0.js} +1 -1
  189. package/bundle/{chunk-jts0dma5.js → chunk-kzvvvj79.js} +2 -2
  190. package/bundle/chunk-mgadsp7r.js +2 -0
  191. package/bundle/chunk-mk2s9py8.js +2 -0
  192. package/bundle/{chunk-hb9mc5f9.js → chunk-mpe8zxc0.js} +1 -1
  193. package/bundle/{chunk-yykjvt7f.js → chunk-mswx4k75.js} +2 -2
  194. package/bundle/{chunk-rqmvj7f4.js → chunk-mx3jd1p9.js} +1 -1
  195. package/bundle/{chunk-v8dd6tyn.js → chunk-mxf9p0p9.js} +1 -1
  196. package/bundle/{chunk-std2bgv7.js → chunk-mxhb5adq.js} +2 -2
  197. package/bundle/{chunk-gwfx7tx7.js → chunk-my3cswnp.js} +2 -2
  198. package/bundle/chunk-n0k0pp4k.js +2 -0
  199. package/bundle/chunk-n393nnh5.js +2 -0
  200. package/bundle/chunk-n5vyed7w.js +2 -0
  201. package/bundle/{chunk-jf6ry79j.js → chunk-n7kqdqkh.js} +4 -4
  202. package/bundle/{chunk-tdxbm1nd.js → chunk-n90eh3e7.js} +1 -1
  203. package/bundle/{chunk-ebkztnpf.js → chunk-nb86kh94.js} +217 -217
  204. package/bundle/{chunk-s8mghr5a.js → chunk-ngvp6zc2.js} +2 -2
  205. package/bundle/{chunk-e07dbha4.js → chunk-nh044sjn.js} +1 -1
  206. package/bundle/{chunk-a42q5mx4.js → chunk-nm6wnne9.js} +1 -1
  207. package/bundle/{chunk-mcc5ynma.js → chunk-p4ewy9xh.js} +3 -3
  208. package/bundle/{chunk-cx0j6mpq.js → chunk-p5mes2sh.js} +1 -1
  209. package/bundle/{chunk-vgnddhdj.js → chunk-p635phfw.js} +1 -1
  210. package/bundle/{chunk-dgx4rq86.js → chunk-p887g1xj.js} +1 -1
  211. package/bundle/{chunk-7jhrxzjx.js → chunk-p9mj4zyk.js} +2 -2
  212. package/bundle/chunk-pasm65wq.js +2 -0
  213. package/bundle/chunk-pfh34atn.js +2 -0
  214. package/bundle/{chunk-xdjwapwy.js → chunk-pfkm3j8g.js} +2 -2
  215. package/bundle/chunk-phpmxjf8.js +2 -0
  216. package/bundle/{chunk-9dh9bc9d.js → chunk-pp9neaaz.js} +1 -1
  217. package/bundle/{chunk-c72jajx9.js → chunk-pzefsndd.js} +1 -1
  218. package/bundle/{chunk-dh1h513y.js → chunk-q128vfc6.js} +1 -1
  219. package/bundle/{chunk-5pkg052s.js → chunk-q148vndn.js} +2 -2
  220. package/bundle/{chunk-4fa390yr.js → chunk-q4fn41ex.js} +2 -2
  221. package/bundle/{chunk-zrmx397j.js → chunk-q5abwn50.js} +1 -1
  222. package/bundle/{chunk-cjxcnhmq.js → chunk-q9ft590w.js} +2 -2
  223. package/bundle/{chunk-7vftsy04.js → chunk-qaz100ht.js} +1 -1
  224. package/bundle/{chunk-g5prcvq2.js → chunk-qeg0jnxq.js} +2 -2
  225. package/bundle/{chunk-tabcpx7t.js → chunk-qf1dqzra.js} +2 -2
  226. package/bundle/{chunk-vcrakhgy.js → chunk-qg9bt0kx.js} +2 -2
  227. package/bundle/{chunk-pnq1h5az.js → chunk-qhnpq5gb.js} +2 -2
  228. package/bundle/{chunk-brh35yt5.js → chunk-qkh8697x.js} +2 -2
  229. package/bundle/chunk-qvzvxsjw.js +2 -0
  230. package/bundle/chunk-qzszrd0s.js +2 -0
  231. package/bundle/{chunk-yzwgvjzd.js → chunk-r0s28gnb.js} +1 -1
  232. package/bundle/chunk-r2qns6yc.js +3 -0
  233. package/bundle/{chunk-yj6rbe9p.js → chunk-rcyzqa3g.js} +2 -2
  234. package/bundle/{chunk-70pb4kcm.js → chunk-rdwma0de.js} +2 -2
  235. package/bundle/{chunk-25bp7pcm.js → chunk-rk2bk4s7.js} +2 -2
  236. package/bundle/{chunk-x6rr6ss1.js → chunk-rm5ntsvn.js} +1 -1
  237. package/bundle/chunk-rnq5ezrt.js +2 -0
  238. package/bundle/{chunk-xhbb8b5g.js → chunk-rp8asmq7.js} +1 -1
  239. package/bundle/{chunk-z1rshv6g.js → chunk-rpfhgncs.js} +1 -1
  240. package/bundle/{chunk-cagk1sjd.js → chunk-s0ptrw0z.js} +1 -1
  241. package/bundle/{chunk-yw9pfqxt.js → chunk-s0ty36qg.js} +1 -1
  242. package/bundle/{chunk-5yfzzmv0.js → chunk-s7yza695.js} +1 -1
  243. package/bundle/chunk-s99cvvc9.js +2 -0
  244. package/bundle/chunk-sh76e256.js +3 -0
  245. package/bundle/chunk-skpkjnyy.js +2 -0
  246. package/bundle/{chunk-8r3410c2.js → chunk-skv9ww0s.js} +1 -1
  247. package/bundle/chunk-snt4kwab.js +2 -0
  248. package/bundle/chunk-sq47t8f1.js +2 -0
  249. package/bundle/chunk-sqhgnvvs.js +2 -0
  250. package/bundle/chunk-t114r59h.js +2 -0
  251. package/bundle/chunk-t1f56k0j.js +2 -0
  252. package/bundle/{chunk-9s4whpg1.js → chunk-t1jgx17a.js} +2 -2
  253. package/bundle/chunk-t69jx6fz.js +2 -0
  254. package/bundle/{chunk-srxx88nb.js → chunk-t9zbp2qw.js} +1 -1
  255. package/bundle/{chunk-jcjaw7tk.js → chunk-ta7mfkms.js} +2 -2
  256. package/bundle/{chunk-w1ypf53m.js → chunk-tce12v85.js} +1 -1
  257. package/bundle/{chunk-6sfhbckv.js → chunk-tczbhj0e.js} +2 -2
  258. package/bundle/{chunk-h1kg35mn.js → chunk-tge53d52.js} +1 -1
  259. package/bundle/chunk-tq1dqhes.js +2 -0
  260. package/bundle/chunk-tsb3jsx4.js +2 -0
  261. package/bundle/chunk-ttpbpzbh.js +2 -0
  262. package/bundle/{chunk-2dkrfc1s.js → chunk-v5z6sx6j.js} +1 -1
  263. package/bundle/chunk-v667egp5.js +2 -0
  264. package/bundle/{chunk-37dvnent.js → chunk-v7mg632n.js} +2 -2
  265. package/bundle/{chunk-60qyqqxx.js → chunk-v9rg0a8g.js} +1 -1
  266. package/bundle/{chunk-jngchw38.js → chunk-ve3np791.js} +1 -1
  267. package/bundle/{chunk-wev34grp.js → chunk-vhe92p7a.js} +2 -2
  268. package/bundle/{chunk-132tcp2j.js → chunk-vjx0064q.js} +2 -2
  269. package/bundle/{chunk-atpzz901.js → chunk-vm1ek7yf.js} +1 -1
  270. package/bundle/{chunk-3mepk08v.js → chunk-vqpfpmha.js} +2 -2
  271. package/bundle/{chunk-cdh26622.js → chunk-vqss3e48.js} +2 -2
  272. package/bundle/{chunk-ewpzqnj4.js → chunk-w79jzf8w.js} +1 -1
  273. package/bundle/{chunk-yha554nm.js → chunk-w7em72p8.js} +2 -2
  274. package/bundle/chunk-wcqfr8vr.js +3 -0
  275. package/bundle/{chunk-r58gzg6m.js → chunk-wdaf713t.js} +1 -1
  276. package/bundle/{chunk-ymtcm4xd.js → chunk-wf4x5cjc.js} +1 -1
  277. package/bundle/{chunk-vsys768k.js → chunk-wfggztm4.js} +1 -1
  278. package/bundle/{chunk-p8k48st6.js → chunk-wp3dpt6d.js} +2 -2
  279. package/bundle/{chunk-acyj91wq.js → chunk-x2cavpa9.js} +1 -1
  280. package/bundle/chunk-x3afqfww.js +4 -0
  281. package/bundle/{chunk-qb35hqm4.js → chunk-x4pdpka8.js} +1 -1
  282. package/bundle/{chunk-vm58fkrv.js → chunk-xd3xc1vv.js} +1 -1
  283. package/bundle/{chunk-f77nxt23.js → chunk-xjpvv3vp.js} +2 -2
  284. package/bundle/chunk-xnhvt98g.js +5 -0
  285. package/bundle/{chunk-64s7vfj7.js → chunk-xny5ecn0.js} +2 -2
  286. package/bundle/chunk-xwgc2pw7.js +28 -0
  287. package/bundle/chunk-xxrtr6sd.js +2 -0
  288. package/bundle/chunk-y287zwkr.js +10 -0
  289. package/bundle/{chunk-ezrskm25.js → chunk-y3dfk6n5.js} +1 -1
  290. package/bundle/{chunk-t01bhw5h.js → chunk-y4e7e42x.js} +3 -3
  291. package/bundle/chunk-y8eggnrr.js +2 -0
  292. package/bundle/{chunk-9xvctnjr.js → chunk-yajd975f.js} +1 -1
  293. package/bundle/chunk-yck5h49c.js +2 -0
  294. package/bundle/{chunk-8yr682pv.js → chunk-yd2emszh.js} +2 -2
  295. package/bundle/{chunk-p9zrk16q.js → chunk-yd8bzhv6.js} +1 -1
  296. package/bundle/{chunk-24rw1br0.js → chunk-yerfyz4w.js} +1 -1
  297. package/bundle/{chunk-jxg15t11.js → chunk-yg0pfngv.js} +1 -1
  298. package/bundle/{chunk-y1b2h15z.js → chunk-ypcc3cnb.js} +1 -1
  299. package/bundle/{chunk-w24660y4.js → chunk-yqb6cfed.js} +2 -2
  300. package/bundle/{chunk-shwjjrj8.js → chunk-yr35q7q1.js} +1 -1
  301. package/bundle/{chunk-rcyhqkv5.js → chunk-yrfq22a5.js} +1 -1
  302. package/bundle/{chunk-gg7bg3ek.js → chunk-yvjke593.js} +1 -1
  303. package/bundle/{chunk-zfnbk5gy.js → chunk-ywkvq7zb.js} +1 -1
  304. package/bundle/{chunk-p3rp99na.js → chunk-yx1h0b5v.js} +1 -1
  305. package/bundle/chunk-yxeja9kg.js +2 -0
  306. package/bundle/{chunk-mzbr0m2v.js → chunk-yz0pwv2m.js} +1 -1
  307. package/bundle/{chunk-q81m4m9z.js → chunk-z2h1gxyx.js} +1 -1
  308. package/bundle/{chunk-qqne79vp.js → chunk-zdzxsyxs.js} +2 -2
  309. package/bundle/{chunk-yzh4rmrt.js → chunk-zek5c15t.js} +1 -1
  310. package/bundle/{chunk-8dxdeksr.js → chunk-zfd70p01.js} +1 -1
  311. package/bundle/{chunk-41x11r2s.js → chunk-zqkv8796.js} +1 -1
  312. package/bundle/chunk-ztn2jv26.js +11 -0
  313. package/bundle/index.js +3 -3
  314. package/bundle/parser.worker.js +2 -2
  315. package/bundle/worker.js +1 -1
  316. package/package.json +1 -1
  317. package/bundle/chunk-092bx2yw.js +0 -2
  318. package/bundle/chunk-0j6dhrew.js +0 -2
  319. package/bundle/chunk-0jrgk6vk.js +0 -2
  320. package/bundle/chunk-0qn52zsd.js +0 -2
  321. package/bundle/chunk-10accb7b.js +0 -2
  322. package/bundle/chunk-13kpdfr7.js +0 -2
  323. package/bundle/chunk-15s8zwgf.js +0 -2
  324. package/bundle/chunk-1bx2sjn6.js +0 -11
  325. package/bundle/chunk-1kgyfja6.js +0 -2
  326. package/bundle/chunk-4kqdzdv5.js +0 -3
  327. package/bundle/chunk-4tbqsrsn.js +0 -2
  328. package/bundle/chunk-53kns5wy.js +0 -2
  329. package/bundle/chunk-559ek1ym.js +0 -2
  330. package/bundle/chunk-7cbj28fp.js +0 -2
  331. package/bundle/chunk-8yn64y27.js +0 -2
  332. package/bundle/chunk-8ywa7az5.js +0 -2
  333. package/bundle/chunk-8ywdddts.js +0 -2
  334. package/bundle/chunk-8zmreqxx.js +0 -2
  335. package/bundle/chunk-92zjark4.js +0 -2
  336. package/bundle/chunk-9yakc5yv.js +0 -28
  337. package/bundle/chunk-aq28ejhv.js +0 -2
  338. package/bundle/chunk-b0x888w9.js +0 -2
  339. package/bundle/chunk-b10px5g4.js +0 -2
  340. package/bundle/chunk-b1qhpxee.js +0 -2
  341. package/bundle/chunk-bcs2gvmp.js +0 -2
  342. package/bundle/chunk-bs020a3x.js +0 -2
  343. package/bundle/chunk-d72rty3t.js +0 -2
  344. package/bundle/chunk-dj951pms.js +0 -2
  345. package/bundle/chunk-dp6zktka.js +0 -2
  346. package/bundle/chunk-dvqdtdza.js +0 -2
  347. package/bundle/chunk-dx7h5r8j.js +0 -2
  348. package/bundle/chunk-e88wd9ex.js +0 -2
  349. package/bundle/chunk-ebabnv33.js +0 -3
  350. package/bundle/chunk-ebdpg3cn.js +0 -2
  351. package/bundle/chunk-ec7pznsp.js +0 -2
  352. package/bundle/chunk-et7kz7kx.js +0 -2
  353. package/bundle/chunk-eyc6tb5h.js +0 -2
  354. package/bundle/chunk-eywryd3k.js +0 -2
  355. package/bundle/chunk-eze57bty.js +0 -2
  356. package/bundle/chunk-fa47vzfc.js +0 -2
  357. package/bundle/chunk-fe397ph0.js +0 -2
  358. package/bundle/chunk-fr75ytdr.js +0 -2
  359. package/bundle/chunk-fw2tnbt6.js +0 -2
  360. package/bundle/chunk-fwr2qgqb.js +0 -2
  361. package/bundle/chunk-g204pt98.js +0 -2
  362. package/bundle/chunk-gcgmwqhh.js +0 -2
  363. package/bundle/chunk-gvtjxg0d.js +0 -2
  364. package/bundle/chunk-gw36mrg4.js +0 -2
  365. package/bundle/chunk-h36qec67.js +0 -2
  366. package/bundle/chunk-h9gtymfm.js +0 -2
  367. package/bundle/chunk-h9qn35pn.js +0 -2
  368. package/bundle/chunk-hhjkezfz.js +0 -2
  369. package/bundle/chunk-hnz570f9.js +0 -3
  370. package/bundle/chunk-j21dnncc.js +0 -4
  371. package/bundle/chunk-ja18tvc7.js +0 -2
  372. package/bundle/chunk-jr2q5295.js +0 -3
  373. package/bundle/chunk-kwzawx7r.js +0 -2
  374. package/bundle/chunk-m0mek3es.js +0 -2
  375. package/bundle/chunk-m31d2n6h.js +0 -2
  376. package/bundle/chunk-n14qktbg.js +0 -2
  377. package/bundle/chunk-nr4q9fv7.js +0 -2
  378. package/bundle/chunk-nzzsj54n.js +0 -2
  379. package/bundle/chunk-p19qfw59.js +0 -2
  380. package/bundle/chunk-p2yxj9s4.js +0 -2
  381. package/bundle/chunk-p8czsxp0.js +0 -3
  382. package/bundle/chunk-pq3qwxa8.js +0 -2
  383. package/bundle/chunk-ps9p14y6.js +0 -2
  384. package/bundle/chunk-q7rt76qw.js +0 -10
  385. package/bundle/chunk-qagc6v17.js +0 -2
  386. package/bundle/chunk-qc0zhbhm.js +0 -2
  387. package/bundle/chunk-qp9y0g73.js +0 -3
  388. package/bundle/chunk-r0ewmh6f.js +0 -2
  389. package/bundle/chunk-r3df289z.js +0 -2
  390. package/bundle/chunk-r78kfhvz.js +0 -2
  391. package/bundle/chunk-rebsz3bj.js +0 -2
  392. package/bundle/chunk-rph5xswc.js +0 -2
  393. package/bundle/chunk-schtpyjs.js +0 -2
  394. package/bundle/chunk-t0jjes17.js +0 -2
  395. package/bundle/chunk-t5tfppwv.js +0 -17
  396. package/bundle/chunk-t8rke5fr.js +0 -8
  397. package/bundle/chunk-tf4xwqz7.js +0 -2
  398. package/bundle/chunk-tqazneg6.js +0 -2
  399. package/bundle/chunk-tzg4z74d.js +0 -2
  400. package/bundle/chunk-v8ksjgc3.js +0 -2
  401. package/bundle/chunk-v8vcwx23.js +0 -2
  402. package/bundle/chunk-vdpd4akk.js +0 -5
  403. package/bundle/chunk-vftqwdpg.js +0 -3
  404. package/bundle/chunk-vg41rtdy.js +0 -2
  405. package/bundle/chunk-w57j3pgz.js +0 -616
  406. package/bundle/chunk-w6rf2knb.js +0 -2
  407. package/bundle/chunk-wh7r96t3.js +0 -2
  408. package/bundle/chunk-wnjqaxze.js +0 -2
  409. package/bundle/chunk-xfz698bh.js +0 -2
  410. package/bundle/chunk-xxj3sgd5.js +0 -2
  411. package/bundle/chunk-yfp9y71y.js +0 -2
  412. package/bundle/chunk-yg9c1v8v.js +0 -2
  413. package/bundle/chunk-yjjh339w.js +0 -2
  414. package/bundle/chunk-yt6vd7a5.js +0 -2
  415. package/bundle/chunk-yzq3c3dq.js +0 -2
  416. package/bundle/chunk-z1j25911.js +0 -2
  417. package/bundle/chunk-z29ahthm.js +0 -2
  418. package/bundle/chunk-zgre4gc2.js +0 -2
  419. package/bundle/chunk-zthkjx33.js +0 -2
@@ -0,0 +1,5 @@
1
+ // @bun
2
+ import{im as an,jm as _i,km as bn,lm as Ni,nm as Yr,om as zr}from"./chunk-hpa7e9va.js";import{$m as Ir,Am as _r,Bm as Nr,Cm as pr,Dm as Ar,Em as V,Fm as Tr,Gm as Or,Hm as $r,Im as Dr,Jm as vr,Km as Br,Lm as j,Mm as v,Nm as yn,Om as un,Pm as Xo,Qm as Qr,Rm as Z,Sm as go,Tm as Kn,Um as lo,Vm as so,Wm as _o,Xm as No,Ym as po,Zm as Ao,_m as To,an as Oo,bn as $o,cn as Do,dn as Lr,en as vo,fn as dr,gn as Bo,hn as Gr,in as Jr,jn as Mr,kn as Sr,ln as Cr,mn as Hr,nn as Qo,on as Io,pm as uo,pn as Fo,qm as yo,sm as er,tm as mr,um as ur,un as ui,vm as yr,wm as fr,xm as gr,ym as lr,zm as sr}from"./chunk-y287zwkr.js";import{$n as Fn,do as jn}from"./chunk-e586sjb0.js";import{eo as gi}from"./chunk-b50t4jc5.js";import{fo as Mo}from"./chunk-zdzxsyxs.js";import{Mq as Wn,Nq as hn,Oq as Nn,Pq as hr,Qq as ti,Sq as ni}from"./chunk-qkh8697x.js";import{Tq as ri}from"./chunk-qg9bt0kx.js";import{Ur as gn}from"./chunk-hmznf0ax.js";import{rs as ro}from"./chunk-73fz0cf4.js";import{vs as Ro}from"./chunk-sh76e256.js";import{et as nn,nt as c}from"./chunk-x3afqfww.js";import{Dt as $n,qt as Xr,tt as qo,ut as k,yt as mo}from"./chunk-cbmwhvxw.js";import{Et as a}from"./chunk-9etpppyv.js";import{Bz as Jn,Pz as Cn,tz as pn}from"./chunk-1p6jjrea.js";import{AK as Zr,BJ as Uo,EB as cn,FI as Ln,GE as Ur,SB as vn,WE as h,cE as Ko,jE as Xn,kO as N,qE as ln,xH as r}from"./chunk-ks1cs80p.js";import{NO as On}from"./chunk-f83wv08n.js";var Vo={};On(Vo,{run:()=>$i});var mn={time_created:j().notNull().$default(()=>Date.now()),time_updated:j().notNull().$onUpdate(()=>Date.now())};var J=un("project",{id:v().$type().primaryKey(),worktree:v().notNull(),vcs:v(),name:v(),icon_url:v(),icon_color:v(),...mn,time_initialized:j(),sandboxes:v({mode:"json"}).notNull().$type(),commands:v({mode:"json"}).$type()});var fn=un("session",{id:v().$type().primaryKey(),project_id:v().$type().notNull().references(()=>J.id,{onDelete:"cascade"}),workspace_id:v().$type(),parent_id:v().$type(),context_from:v().$type(),context_watermark:v().$type(),slug:v().notNull(),directory:v().notNull(),title:v().notNull(),version:v().notNull(),share_url:v(),summary_additions:j(),summary_deletions:j(),summary_files:j(),summary_diffs:v({mode:"json"}).$type(),revert:v({mode:"json"}).$type(),permission:v({mode:"json"}).$type(),...mn,time_compacting:j(),time_archived:j(),last_checkpoint_message_id:v().$type()},(n)=>[yn("session_project_idx").on(n.project_id),yn("session_workspace_idx").on(n.workspace_id),yn("session_parent_idx").on(n.parent_id),yn("session_context_from_idx").on(n.context_from)]),eo=un("message",{id:v().$type().primaryKey(),session_id:v().$type().notNull().references(()=>fn.id,{onDelete:"cascade"}),agent_id:v().notNull().default("main"),...mn,data:v({mode:"json"}).notNull().$type()},(n)=>[yn("message_session_time_created_id_idx").on(n.session_id,n.time_created,n.id),yn("message_session_agent_idx").on(n.session_id,n.agent_id,n.id)]),Yo=un("part",{id:v().$type().primaryKey(),message_id:v().$type().notNull().references(()=>eo.id,{onDelete:"cascade"}),session_id:v().$type().notNull(),...mn,data:v({mode:"json"}).notNull().$type()},(n)=>[yn("part_message_id_id_idx").on(n.message_id,n.id),yn("part_session_idx").on(n.session_id)]),zo=un("todo",{session_id:v().$type().notNull().references(()=>fn.id,{onDelete:"cascade"}),content:v().notNull(),status:v().notNull(),position:j().notNull(),...mn},(n)=>[Xo({columns:[n.session_id,n.position]}),yn("todo_session_idx").on(n.session_id)]),co=un("permission",{project_id:v().primaryKey().references(()=>J.id,{onDelete:"cascade"}),...mn,data:v({mode:"json"}).notNull().$type()});var ko=un("session_share",{session_id:v().primaryKey().references(()=>fn.id,{onDelete:"cascade"}),id:v().notNull(),secret:v().notNull(),url:v().notNull(),...mn});import z from"path";var U=c.create({service:"json-migration"});async function $i(n,o){let i=z.join($n.Path.data,"storage");if(!await mo.exists(i))return U.info("storage directory does not exist, skipping migration"),{projects:0,sessions:0,messages:0,parts:0,todos:0,permissions:0,shares:0,errors:[]};U.info("starting json to sqlite migration",{storageDir:i});let l=performance.now();n.run("PRAGMA journal_mode = WAL"),n.run("PRAGMA synchronous = OFF"),n.run("PRAGMA cache_size = 10000"),n.run("PRAGMA temp_store = MEMORY");let e={projects:0,sessions:0,messages:0,parts:0,todos:0,permissions:0,shares:0,errors:[]},A={sessions:0,todos:0,permissions:0,shares:0},_=e.errors,T=1000,M=Date.now();async function x(f){return qo.scan(f,{cwd:i,absolute:!0})}async function C(f,d,S){let B=S-d,p=Array(B);for(let E=0;E<B;E++)p[E]=mo.readJson(f[d+E]);let G=await Promise.allSettled(p),W=Array(B);for(let E=0;E<G.length;E++){let q=G[E];if(q.status==="fulfilled"){W[E]=q.value;continue}_.push(`failed to read ${f[d+E]}: ${q.reason}`)}return W}function H(f,d,S){if(f.length===0)return 0;try{return n.insert(d).values(f).onConflictDoNothing().run(),f.length}catch(B){return _.push(`failed to migrate ${S} batch: ${B}`),0}}U.info("scanning files...");let[K,$,Q,L,g,s,m]=await Promise.all([x("project/*.json"),x("session/*/*.json"),x("message/*/*.json"),x("part/*/*.json"),x("todo/*.json"),x("permission/*.json"),x("session_share/*.json")]);U.info("file scan complete",{projects:K.length,sessions:$.length,messages:Q.length,parts:L.length,todos:g.length,permissions:s.length,shares:m.length});let y=Math.max(1,K.length+$.length+Q.length+L.length+g.length+s.length+m.length),t=o?.progress,u=0,D=(f,d)=>{u=Math.min(y,u+d),t?.({current:u,total:y,label:f})};t?.({current:u,total:y,label:"starting"}),n.run("BEGIN TRANSACTION");let I=new Set,O=[];for(let f=0;f<K.length;f+=T){let d=Math.min(f+T,K.length),S=await C(K,f,d);O.length=0;for(let B=0;B<S.length;B++){let p=S[B];if(!p)continue;let G=z.basename(K[f+B],".json");I.add(G),O.push({id:G,worktree:p.worktree??"/",vcs:p.vcs,name:p.name??void 0,icon_url:p.icon?.url,icon_color:p.icon?.color,time_created:p.time?.created??M,time_updated:p.time?.updated??M,time_initialized:p.time?.initialized,sandboxes:p.sandboxes??[],commands:p.commands})}e.projects+=H(O,J,"project"),D("projects",d-f)}U.info("migrated projects",{count:e.projects,duration:Math.round(performance.now()-l)});let P=$.map((f)=>z.basename(z.dirname(f))),Y=new Set,en=[];for(let f=0;f<$.length;f+=T){let d=Math.min(f+T,$.length),S=await C($,f,d);en.length=0;for(let B=0;B<S.length;B++){let p=S[B];if(!p)continue;let G=z.basename($[f+B],".json"),W=P[f+B];if(!I.has(W)){A.sessions++;continue}Y.add(G),en.push({id:G,project_id:W,parent_id:p.parentID??null,slug:p.slug??"",directory:p.directory??"",title:p.title??"",version:p.version??"",share_url:p.share?.url??null,summary_additions:p.summary?.additions??null,summary_deletions:p.summary?.deletions??null,summary_files:p.summary?.files??null,summary_diffs:p.summary?.diffs??null,revert:p.revert??null,permission:p.permission??null,time_created:p.time?.created??M,time_updated:p.time?.updated??M,time_compacting:p.time?.compacting??null,time_archived:p.time?.archived??null})}e.sessions+=H(en,fn,"session"),D("sessions",d-f)}if(U.info("migrated sessions",{count:e.sessions}),A.sessions>0)U.warn("skipped orphaned sessions",{count:A.sessions});let sn=[],R=[],kn=new Map;for(let f of Q){let d=z.basename(z.dirname(f));if(!Y.has(d))continue;sn.push(f),R.push(d)}for(let f=0;f<sn.length;f+=T){let d=Math.min(f+T,sn.length),S=await C(sn,f,d),B=Array(S.length),p=0;for(let G=0;G<S.length;G++){let W=S[G];if(!W)continue;let E=sn[f+G],q=z.basename(E,".json"),xn=R[f+G];kn.set(q,xn);let Bn=W;delete Bn.id,delete Bn.sessionID,B[p++]={id:q,session_id:xn,time_created:W.time?.created??M,time_updated:W.time?.updated??M,data:Bn}}B.length=p,e.messages+=H(B,eo,"message"),D("messages",d-f)}U.info("migrated messages",{count:e.messages});for(let f=0;f<L.length;f+=T){let d=Math.min(f+T,L.length),S=await C(L,f,d),B=Array(S.length),p=0;for(let G=0;G<S.length;G++){let W=S[G];if(!W)continue;let E=L[f+G],q=z.basename(E,".json"),xn=z.basename(z.dirname(E)),Bn=kn.get(xn);if(!Bn){_.push(`part missing message session: ${E}`);continue}if(!Y.has(Bn))continue;let wn=W;delete wn.id,delete wn.messageID,delete wn.sessionID,B[p++]={id:q,message_id:xn,session_id:Bn,time_created:W.time?.created??M,time_updated:W.time?.updated??M,data:wn}}B.length=p,e.parts+=H(B,Yo,"part"),D("parts",d-f)}U.info("migrated parts",{count:e.parts});let Tn=g.map((f)=>z.basename(f,".json"));for(let f=0;f<g.length;f+=T){let d=Math.min(f+T,g.length),S=await C(g,f,d),B=[];for(let p=0;p<S.length;p++){let G=S[p];if(!G)continue;let W=Tn[f+p];if(!Y.has(W)){A.todos++;continue}if(!Array.isArray(G)){_.push(`todo not an array: ${g[f+p]}`);continue}for(let E=0;E<G.length;E++){let q=G[E];if(!q?.content||!q?.status)continue;B.push({session_id:W,content:q.content,status:q.status,position:E,time_created:M,time_updated:M})}}e.todos+=H(B,zo,"todo"),D("todos",d-f)}if(U.info("migrated todos",{count:e.todos}),A.todos>0)U.warn("skipped orphaned todos",{count:A.todos});let qn=s.map((f)=>z.basename(f,".json")),Hn=[];for(let f=0;f<s.length;f+=T){let d=Math.min(f+T,s.length),S=await C(s,f,d);Hn.length=0;for(let B=0;B<S.length;B++){let p=S[B];if(!p)continue;let G=qn[f+B];if(!I.has(G)){A.permissions++;continue}Hn.push({project_id:G,data:p})}e.permissions+=H(Hn,co,"permission"),D("permissions",d-f)}if(U.info("migrated permissions",{count:e.permissions}),A.permissions>0)U.warn("skipped orphaned permissions",{count:A.permissions});let Vn=m.map((f)=>z.basename(f,".json")),dn=[];for(let f=0;f<m.length;f+=T){let d=Math.min(f+T,m.length),S=await C(m,f,d);dn.length=0;for(let B=0;B<S.length;B++){let p=S[B];if(!p)continue;let G=Vn[f+B];if(!Y.has(G)){A.shares++;continue}if(!p?.id||!p?.secret||!p?.url){_.push(`session_share missing id/secret/url: ${m[f+B]}`);continue}dn.push({session_id:G,id:p.id,secret:p.secret,url:p.url})}e.shares+=H(dn,ko,"session_share"),D("shares",d-f)}if(U.info("migrated session shares",{count:e.shares}),A.shares>0)U.warn("skipped orphaned session shares",{count:A.shares});if(n.run("COMMIT"),U.info("json migration complete",{projects:e.projects,sessions:e.sessions,messages:e.messages,parts:e.parts,todos:e.todos,permissions:e.permissions,shares:e.shares,errorCount:e.errors.length,duration:Math.round(performance.now()-l)}),e.errors.length>0)U.warn("migration errors",{errors:e.errors.slice(0,20)});return t?.({current:y,total:y,label:"complete"}),e}var In={};On(In,{use:()=>Ce,transaction:()=>xe,textDecoder:()=>re,sumDistinct:()=>rr,sum:()=>or,sql:()=>V,relationsOrderToSQL:()=>Rt,relationsFilterToSQL:()=>Kt,relationToSQL:()=>xt,relationExtrasToSQL:()=>Ht,processRelations:()=>Ct,placeholder:()=>Or,param:()=>Ar,orderSelectedFields:()=>oe,orderByOperators:()=>St,or:()=>lo,operators:()=>Mt,notLike:()=>Gr,notInArray:()=>Ir,notIlike:()=>Mr,notExists:()=>Lr,notBetween:()=>dr,not:()=>so,noopMapper:()=>Nr,noopEncoder:()=>_r,noopDecoder:()=>sr,ne:()=>go,name:()=>gr,min:()=>tr,max:()=>ir,mapUpdateSet:()=>ne,mapResultRow:()=>ht,mapRelationalRow:()=>Jt,mapColumnsInSQLToAlias:()=>it,mapColumnsInAliasedSQLToAlias:()=>rt,lte:()=>Ao,lt:()=>po,like:()=>Bo,l2Distance:()=>Xt,l1Distance:()=>Zt,jaccardDistance:()=>Ut,isWithEnum:()=>bt,isView:()=>vr,isTable:()=>Yi,isSQLWrapper:()=>mr,isNull:()=>Oo,isNotNull:()=>$o,isDriverValueEncoder:()=>lr,isConfig:()=>at,is:()=>Mi,innerProduct:()=>Wt,inArray:()=>To,ilike:()=>Jr,haveSameKeys:()=>jt,hasOwnEntityKind:()=>Ji,hammingDistance:()=>Pt,gte:()=>No,gt:()=>_o,getViewSelectedFields:()=>Ft,getViewName:()=>Br,getTableUniqueName:()=>Xi,getTableName:()=>Zi,getTableLikeName:()=>wt,getTableColumns:()=>Vt,getTableAsAliasSQL:()=>Gt,getOriginalColumnFromAlias:()=>ot,getOrderByOperators:()=>dt,getColumns:()=>qt,getColumnTable:()=>Ci,getColumnNameAndConfig:()=>kt,getChannelPath:()=>li,fillPlaceholders:()=>$r,fieldSelectionToSQL:()=>Lt,extractTablesFromSchema:()=>It,extractExtendedColumnType:()=>mt,exists:()=>Do,eq:()=>Z,entityKind:()=>Gi,effect:()=>He,desc:()=>Io,defineRelationsPart:()=>Qt,defineRelations:()=>Bt,createRelationsHelper:()=>vt,countDistinct:()=>bo,count:()=>fo,cosineDistance:()=>Et,close:()=>Se,buildRelationsParts:()=>Dt,buildRelations:()=>$t,bindIfParam:()=>Qr,between:()=>vo,avgDistinct:()=>nr,avg:()=>ho,assertUnreachable:()=>ct,asc:()=>Qo,arrayOverlaps:()=>Hr,arrayContains:()=>Sr,arrayContained:()=>Cr,applyMixins:()=>zt,and:()=>Kn,aliasedTableColumn:()=>nt,aliasedTable:()=>hi,aliasedRelation:()=>bi,aliasedColumn:()=>ai,WithSubquery:()=>ci,ViewSelectionAliasProxyHandler:()=>ji,ViewBaseConfig:()=>ki,View:()=>Dr,TransactionRollbackError:()=>ft,TableSchema:()=>Ui,TableColumns:()=>Wi,TableAliasProxyHandler:()=>Fi,Table:()=>Pi,Subquery:()=>zi,StringChunk:()=>ur,SQL:()=>yr,RelationsHelperStatic:()=>Ot,RelationsBuilderTable:()=>Tt,RelationsBuilderJunctionColumn:()=>At,RelationsBuilderColumn:()=>pt,RelationTableAliasProxyHandler:()=>wi,Relation:()=>Nt,QueryPromise:()=>tt,Placeholder:()=>Tr,Path:()=>Eo,Param:()=>pr,OriginalName:()=>Ei,One:()=>_t,NotFoundError:()=>Me,NoopLogger:()=>di,Name:()=>fr,Many:()=>st,IsAlias:()=>Ri,FakePrimitiveParam:()=>er,ExtraConfigColumns:()=>Ki,ExtraConfigBuilder:()=>xi,DrizzleQueryError:()=>yt,DrizzleError:()=>ut,DefaultLogger:()=>Li,Count:()=>lt,ConsoleLogWriter:()=>Ii,ColumnTableAliasProxyHandler:()=>Vi,ColumnBuilder:()=>et,ColumnAliasProxyHandler:()=>qi,Column:()=>Si,Client:()=>Mn,CONSTANTS:()=>Yt,BaseName:()=>Hi,AggregatedField:()=>gt});import Di from"crypto";import wo,{existsSync as vi,readdirSync as Bi}from"fs";import{join as Qi}from"path";function jo(n){if(wo.existsSync(`${n.migrationsFolder}/meta/_journal.json`))throw Error('We detected that you have old drizzle-kit migration folders. You must upgrade drizzle-kit and run "drizzle-kit up"');let o=n.migrationsFolder,i=[],l=Bi(o).map((e)=>({path:Qi(o,e,"migration.sql"),name:e})).filter((e)=>vi(e.path));l.sort((e,A)=>e.name.localeCompare(A.name));for(let e of l){let A=e.path,_=e.name.slice(0,14),T=wo.readFileSync(A).toString(),M=T.split("--> statement-breakpoint").map((C)=>{return C}),x=Fo(_);i.push({sql:M,bps:!0,folderMillis:x,hash:Di.createHash("sha256").update(T).digest("hex"),name:e.name})}return i}function ao(n,o){if(Array.isArray(o)||"migrationsJournal"in o){let l=Array.isArray(o)?o:o.migrationsJournal,e=Array.isArray(o)?void 0:o.migrationsTable,A=l.map((_)=>({sql:_.sql.split("--> statement-breakpoint"),folderMillis:_.timestamp,hash:"",bps:!0,name:_.name}));return n.dialect.migrate(A,n.session,{migrationsTable:e})}let i=jo(o);return n.dialect.migrate(i,n.session,o)}function fo(n){return V`count(${n||V.raw("*")})`.mapWith(Number)}function bo(n){return V`count(distinct ${n})`.mapWith(Number)}function ho(n){return V`avg(${n})`.mapWith(String)}function nr(n){return V`avg(distinct ${n})`.mapWith(String)}function or(n){return V`sum(${n})`.mapWith(String)}function rr(n){return V`sum(distinct ${n})`.mapWith(String)}function ir(n){return V`max(${n})`.mapWith(uo(n,yo)?n:String)}function tr(n){return V`min(${n})`.mapWith(uo(n,yo)?n:String)}import oo from"path";var Un={};On(Un,{workspaceID:()=>De,useEffect:()=>Qe,use:()=>Be,make:()=>ve,invalidate:()=>Le,has:()=>Ie,get:()=>xo,directory:()=>no,context:()=>Ho,bind:()=>$e});import{EventEmitter as ie}from"events";var Rn=new ie;var Lo=new Set;function xr(n){return Lo.add(n),()=>{Lo.delete(n)}}async function Go(n){await Promise.allSettled([...Lo].map((o)=>o(n)))}function En(n){return n()}var jr={};On(jr,{setInitialized:()=>se,list:()=>ge,layer:()=>Fr,get:()=>le,fromRow:()=>_n,defaultLayer:()=>Co,UpdateInput:()=>fe,Service:()=>Gn,Info:()=>Vr,Event:()=>wr});import*as F from"fs/promises";import*as cr from"os";import*as Dn from"path";var te=N.String.pipe(N.brand("ProjectID")),w=te.pipe(Fn((n)=>({global:n.make("global"),zod:a.string().pipe(a.custom())})));import*as Qn from"fs/promises";import*as b from"path";import*as Er from"crypto";async function Jo(n){let o=b.resolve(n);while(!0){let i=b.join(o,".git"),l=await Qn.stat(i).catch(()=>null);if(l){if(l.isDirectory())return i;let _=(await Qn.readFile(i,"utf-8")).trim().match(/^gitdir:\s*(.+)$/);if(!_)return null;let T=b.isAbsolute(_[1])?_[1]:b.resolve(o,_[1]);return b.resolve(T,"../..")}let e=b.dirname(o);if(e===o)return null;o=e}}async function Kr(n){let o=await Qn.readFile(n,"utf-8").catch(()=>null);if(o===null)return null;return o.trim()||null}async function Rr(n){let o=await Kr(n);if(o)return o;let i=Er.randomUUID();try{return await Qn.writeFile(n,i,{flag:"wx"}),i}catch(l){if(l.code!=="EEXIST")throw l;let e=await Kr(n);if(e)return e;throw Error(`Project ID file was concurrently created but is empty: ${n}`)}}async function Pr(n){let o=await Jo(n);if(o){let l=b.join(o,"qitqode-project-id");return w.make(await Rr(l))}let i=b.join(n,".qitqode-project-id");return w.make(await Rr(i))}async function me(n){let o=await Jo(n);if(!o)return;let i=Dn.join(n,".qitqode-project-id"),l=Dn.join(o,"qitqode-project-id"),e=(T)=>F.access(T).then(()=>!0).catch(()=>!1);if(await e(i)){if(!await e(l)){let T=await F.readFile(i,"utf-8");await F.writeFile(l,T)}await F.unlink(i).catch(()=>{})}let A=Dn.join(o,"info","exclude");if(await F.mkdir(Dn.dirname(A),{recursive:!0}),!(await F.readFile(A,"utf-8").catch(()=>"")).includes(".qitqode-project-id"))await F.appendFile(A,`
3
+ .qitqode-project-id
4
+ `)}var Wr=c.create({service:"project"}),ue=262144,So=N.Literal("git"),kr=N.Struct({url:N.optional(N.String),override:N.optional(N.String),color:N.optional(N.String)}),qr=N.Struct({start:N.optional(N.String.annotate({description:"Startup script to run when creating a new workspace (worktree)"}))}),ye=N.Struct({created:N.Number,updated:N.Number,initialized:N.optional(N.Number)}),Vr=N.Struct({id:w,worktree:N.String,vcs:N.optional(So),name:N.optional(N.String),icon:N.optional(kr),commands:N.optional(qr),time:ye,sandboxes:N.Array(N.String)}).annotate({identifier:"Project"}).pipe(Fn((n)=>({zod:jn(n)}))),wr={Updated:zr.define("project.updated",Vr.zod)};function _n(n){let o=n.icon_url||n.icon_color?{url:n.icon_url??void 0,color:n.icon_color??void 0}:void 0;return{id:n.id,worktree:n.worktree,vcs:n.vcs?N.decodeUnknownSync(So)(n.vcs):void 0,name:n.name??void 0,icon:o,time:{created:n.time_created,updated:n.time_updated,initialized:n.time_initialized??void 0},sandboxes:n.sandboxes,commands:n.commands??void 0}}var fe=a.object({projectID:w.zod,name:a.string().optional(),icon:jn(kr).optional(),commands:jn(qr).optional()});class Gn extends vn.Service()("@qitqode/Project"){}var Fr=h.effect(Gn,r.gen(function*(){let n=yield*k.Service,o=yield*Zr.Path,i=yield*an.ChildProcessSpawner,l=r.fnUntraced(function*(t,u){return yield*Yr(i,t,u)},r.catch(()=>r.succeed({code:1,text:"",stderr:""}))),e=(t)=>r.sync(()=>In.use(t)),A=(t)=>r.sync(()=>Rn.emit("event",{directory:"global",project:t.id,payload:{type:wr.Updated.type,properties:t}})),_=N.decodeUnknownSync(N.optional(So))(nn.QITQODE_FAKE_VCS),T=(t,u)=>{if(!u)return t;if(u=u.replace(/[\r\n]+$/,""),!u)return t;if(u=k.windowsPath(u),o.isAbsolute(u))return o.normalize(u);return o.resolve(t,u)},M=yield*Ur.Scope,x=r.fn("Project.fromDirectory")(function*(t){Wr.info("fromDirectory",{directory:t});let u=yield*r.gen(function*(){if(nn.QITQODE_DISABLE_GIT)return{id:w.global,worktree:t,sandbox:t,vcs:_};let Y=(yield*n.up({targets:[".git"],start:t}).pipe(r.orDie))[0];if(!Y)return{id:w.global,worktree:"/",sandbox:"/",vcs:_};let en=o.dirname(Y),sn=process.env.HOME??process.env.USERPROFILE??cr.homedir();if(en===sn||Dn.parse(en).root===en)return Wr.warn("ignoring .git at home or filesystem root, snapshots disabled",{dotgit:Y}),{id:w.global,worktree:t,sandbox:t,vcs:_};let R=en,kn=yield*r.sync(()=>Mo("git")),Tn;if(!kn)return{id:Tn??w.global,worktree:R,sandbox:R,vcs:_};let qn=yield*l(["rev-parse","--git-common-dir"],{cwd:R});if(qn.code!==0)return{id:Tn??w.global,worktree:R,sandbox:R,vcs:_};let Hn=(()=>{let dn=T(R,qn.text.trim());return dn===R?R:o.dirname(dn)})();if(Tn==null)yield*r.promise(()=>me(R)),Tn=yield*r.promise(()=>Pr(R));let Vn=yield*l(["rev-parse","--show-toplevel"],{cwd:R});if(Vn.code!==0)return{id:Tn,worktree:R,sandbox:R,vcs:_};return R=T(R,Vn.text.trim()),{id:Tn,sandbox:R,worktree:Hn,vcs:"git"}}),D=yield*e((P)=>P.select().from(J).where(Z(J.id,u.id)).get()),I=D?_n(D):{id:u.id,worktree:u.worktree,vcs:u.vcs,sandboxes:[],time:{created:Date.now(),updated:Date.now()}};if(nn.QITQODE_EXPERIMENTAL_ICON_DISCOVERY)yield*C(I).pipe(r.ignore,r.forkIn(M));let O={...I,worktree:u.worktree,vcs:u.vcs,time:{...I.time,updated:Date.now()}};if(u.sandbox!==O.worktree&&!O.sandboxes.includes(u.sandbox))O.sandboxes.push(u.sandbox);if(O.sandboxes=yield*r.forEach(O.sandboxes,(P)=>n.exists(P).pipe(r.orDie,r.map((Y)=>Y?P:void 0)),{concurrency:16}).pipe(r.map((P)=>P.filter((Y)=>Y!==void 0))),yield*e((P)=>P.insert(J).values({id:O.id,worktree:O.worktree,vcs:O.vcs??null,name:O.name,icon_url:O.icon?.url,icon_color:O.icon?.color,time_created:O.time.created,time_updated:O.time.updated,time_initialized:O.time.initialized,sandboxes:O.sandboxes,commands:O.commands}).onConflictDoUpdate({target:J.id,set:{worktree:O.worktree,vcs:O.vcs??null,name:O.name,icon_url:O.icon?.url,icon_color:O.icon?.color,time_updated:O.time.updated,time_initialized:O.time.initialized,sandboxes:O.sandboxes,commands:O.commands}}).run()),u.id!==w.global)yield*e((P)=>P.update(fn).set({project_id:u.id}).where(Kn(Z(fn.project_id,w.global),Z(fn.directory,u.worktree))).run());return yield*A(O),{project:O,sandbox:u.sandbox}}),C=r.fn("Project.discover")(function*(t){if(t.vcs!=="git")return;if(t.icon?.override)return;if(t.icon?.url)return;let D=(yield*n.glob("**/favicon.{ico,png,svg,jpg,jpeg,webp}",{cwd:t.worktree,absolute:!0,include:"file"}).pipe(r.orDie)).sort((sn,R)=>sn.length-R.length)[0];if(!D)return;let I=yield*n.stat(D).pipe(r.orDie);if(Number(I.size)>ue)return;let O=yield*n.readFile(D).pipe(r.orDie),P=Buffer.from(O).toString("base64"),en=`data:${k.mimeType(D)};base64,${P}`;yield*$({projectID:t.id,icon:{url:en}})}),H=r.fn("Project.list")(function*(){return yield*e((t)=>t.select().from(J).all().map(_n))}),K=r.fn("Project.get")(function*(t){let u=yield*e((D)=>D.select().from(J).where(Z(J.id,t)).get());return u?_n(u):void 0}),$=r.fn("Project.update")(function*(t){let u=yield*e((I)=>I.update(J).set({name:t.name,icon_url:t.icon?.url,icon_color:t.icon?.color,commands:t.commands,time_updated:Date.now()}).where(Z(J.id,t.projectID)).returning().get());if(!u)throw Error(`Project not found: ${t.projectID}`);let D=_n(u);return yield*A(D),D}),Q=r.fn("Project.initGit")(function*(t){if(t.project.vcs==="git")return t.project;if(!(yield*r.sync(()=>Mo("git"))))throw Error("Git is not installed");let u=yield*l(["init","--quiet"],{cwd:t.directory});if(u.code!==0)throw Error(u.stderr.trim()||u.text.trim()||"Failed to initialize git repository");let{project:D}=yield*x(t.directory);return D}),L=r.fn("Project.setInitialized")(function*(t){yield*e((u)=>u.update(J).set({time_initialized:Date.now()}).where(Z(J.id,t)).run())}),g=r.fn("Project.sandboxes")(function*(t){let u=yield*e((I)=>I.select().from(J).where(Z(J.id,t)).get());if(!u)return[];let D=_n(u);return yield*r.forEach(D.sandboxes,(I)=>n.isDir(I).pipe(r.orDie,r.map((O)=>O?I:void 0)),{concurrency:16}).pipe(r.map((I)=>I.filter((O)=>O!==void 0)))}),s=r.fnUntraced(function*(t,u){let D=yield*e((I)=>I.update(J).set({sandboxes:u,time_updated:Date.now()}).where(Z(J.id,t)).returning().get());if(!D)throw Error(`Project not found: ${t}`);yield*A(_n(D))}),m=r.fn("Project.addSandbox")(function*(t,u){let D=yield*e((O)=>O.select().from(J).where(Z(J.id,t)).get());if(!D)throw Error(`Project not found: ${t}`);let I=[...D.sandboxes];if(!I.includes(u))I.push(u);yield*s(t,I)}),y=r.fn("Project.removeSandbox")(function*(t,u){let D=yield*e((O)=>O.select().from(J).where(Z(J.id,t)).get());if(!D)throw Error(`Project not found: ${t}`);let I=D.sandboxes.filter((O)=>O!==u);yield*s(t,I)});return Gn.of({fromDirectory:x,discover:C,list:H,get:K,update:$,initGit:Q,setInitialized:L,sandboxes:g,addSandbox:m,removeSandbox:y})})),Co=Fr.pipe(h.provide(bn),h.provide(k.defaultLayer),h.provide(Xr.layer));function ge(){return In.use((n)=>n.select().from(J).all().map((o)=>_n(o)))}function le(n){let o=In.use((i)=>i.select().from(J).where(Z(J.id,n)).get());if(!o)return;return _n(o)}function se(n){In.use((o)=>o.update(J).set({time_initialized:Date.now()}).where(Z(J.id,n)).run())}import{parse as _e}from"path";var rn=gn.create("instance");hr(()=>rn.use());var tn=new Map,Ne=ni(Gn,Co),pe=new Set(["/etc","/proc","/sys","/dev","/boot","/root","/var","/private/etc","/private/var"]);function Ae(n){if(n===_e(n).root)return"filesystem root is not a valid project directory";for(let o of pe)if(n===o||k.contains(o,n))return"target is a protected system directory";return null}function Te(n){let o=Ae(n);if(o)throw Error("Access denied: "+o)}var Pn={all:void 0};function ar(n){return En(async()=>{let o=n.project&&n.worktree?{directory:n.directory,worktree:n.worktree,project:n.project}:await Ne.runPromise((i)=>i.fromDirectory(n.directory)).then(({project:i,sandbox:l})=>({directory:n.directory,worktree:l,project:i}));return await rn.provide(o,async()=>{await n.init?.()}),o})}function br(n,o){let i=o.catch((l)=>{if(tn.get(n)===i)tn.delete(n);throw l});return tn.set(n,i),i}var on={async provide(n){let o=k.resolve(n.directory);Te(o);let i=tn.get(o);if(!i)c.Default.info("creating instance",{directory:o}),i=br(o,ar({directory:o,init:n.init}));let l=await i;return rn.provide(l,async()=>{return n.fn()})},get current(){return rn.use()},get directory(){return rn.use().directory},get worktree(){return rn.use().worktree},get project(){return rn.use().project},containsPath(n,o){let i=o??on;if(k.contains(i.directory,n))return!0;if(i.worktree==="/")return!1;return k.contains(i.worktree,n)},bind(n){let o=rn.use();return(...i)=>rn.provide(o,()=>n(...i))},restore(n,o){return rn.provide(n,o)},async reload(n){let o=k.resolve(n.directory);c.Default.info("reloading instance",{directory:o}),await Go(o),tn.delete(o);let i=br(o,ar({...n,directory:o}));return Rn.emit("event",{directory:o,project:n.project?.id,workspace:Nn.workspaceID,payload:{type:"server.instance.disposed",properties:{directory:o}}}),await i},async dispose(){let{directory:n,project:o}=on;c.Default.info("disposing instance",{directory:n}),await Go(n),tn.delete(n),Rn.emit("event",{directory:n,project:o.id,workspace:Nn.workspaceID,payload:{type:"server.instance.disposed",properties:{directory:n}}})},async disposeAll(){if(Pn.all)return Pn.all;return Pn.all=En(async()=>{c.Default.info("disposing all instances");let n=[...tn.entries()];for(let[o,i]of n){if(tn.get(o)!==i)continue;let l=await i.catch((e)=>{c.Default.warn("instance dispose failed",{key:o,error:e});return});if(!l){if(tn.get(o)===i)tn.delete(o);continue}if(tn.get(o)!==i)continue;await rn.provide(l,async()=>{await on.dispose()})}}).finally(()=>{Pn.all=void 0}),Pn.all}};var oi="~qitqode/InstanceState",$e=(n)=>{try{return on.bind(n)}catch(l){if(!(l instanceof gn.NotFound))throw l}let o=Ln.getCurrent(),i=o?vn.getReferenceUnsafe(o.context,Wn):void 0;if(!i)return n;return(...l)=>on.restore(i,()=>n(...l))},Ho=r.gen(function*(){return(yield*Wn)??on.current}),De=r.gen(function*(){return(yield*hn)??Nn.workspaceID}),no=r.map(Ho,(n)=>n.directory),ve=(n)=>r.gen(function*(){let o=yield*Jn.make({capacity:Number.POSITIVE_INFINITY,lookup:()=>r.gen(function*(){return yield*n(yield*Ho)})}),i=xr((l)=>r.runPromise(Jn.invalidate(o,l).pipe(r.provide(ri))));return yield*r.addFinalizer(()=>r.sync(i)),{[oi]:oi,cache:o}}),xo=(n)=>r.gen(function*(){return yield*Jn.get(n.cache,yield*no)}),Be=(n,o)=>r.map(xo(n),o),Qe=(n,o)=>r.flatMap(xo(n),o),Ie=(n)=>r.gen(function*(){return yield*Jn.has(n.cache,yield*no)}),Le=(n)=>r.gen(function*(){return yield*Jn.invalidate(n.cache,yield*no)});var ei={};On(ei,{make:()=>de});function ii(n,o,i){if(n&&o!==void 0)return Nn.restore(o,()=>on.restore(n,i));if(n)return on.restore(n,i);if(o!==void 0)return Nn.restore(o,i);return i()}function de(){return r.gen(function*(){let n=yield*r.context(),i=(yield*Wn)??(()=>{try{return on.current}catch(_){if(!(_ instanceof gn.NotFound))throw _}})(),l=(yield*hn)??Nn.workspaceID,e=(_)=>ti(_,{instance:i,workspace:l}),A=(_)=>e(_).pipe(r.provide(n));return{promise:(_)=>ii(i,l,()=>r.runPromise(A(_))),fork:(_)=>ii(i,l,()=>r.runFork(A(_)))}})}var mi={};On(mi,{make:()=>Ge,Cancelled:()=>Zn});class Zn extends N.TaggedErrorClass()("RunnerCancelled",{}){}var Ge=(n,o)=>{let i=pn.makeUnsafe({_tag:"Idle"}),l=o?.onIdle??r.void,e=o?.onBusy??r.void,A=o?.onInterrupt,_=0,T=()=>pn.getUnsafe(i),M=()=>{return _+=1,_},x=(m,y)=>Xn.isFailure(y)&&Ko.hasInterruptsOnly(y.cause)?ln.fail(m,new Zn).pipe(r.asVoid):ln.done(m,y).pipe(r.asVoid),C=()=>pn.modify(i,(m)=>[m._tag==="Idle"?l:r.void,m]).pipe(r.flatten),H=(m,y,t)=>pn.modify(i,(u)=>[r.gen(function*(){if(u._tag==="Running"&&u.run.id===m)yield*l;yield*x(y,t)}),u._tag==="Running"&&u.run.id===m?{_tag:"Idle"}:u]).pipe(r.flatten),K=(m,y)=>r.gen(function*(){let t=M(),u=yield*m.pipe(r.onExit((D)=>H(t,y,D)),r.forkIn(n));return{id:t,done:y,fiber:u}}),$=(m)=>pn.modifyEffect(i,r.fnUntraced(function*(y){if(y._tag==="Shell"&&y.shell.id===m)return[l,{_tag:"Idle"}];if(y._tag==="ShellThenRun"&&y.shell.id===m){let t=yield*K(y.run.work,y.run.done);return[r.void,{_tag:"Running",run:t}]}return[r.void,y]})).pipe(r.flatten),Q=(m)=>Ln.interrupt(m.fiber),L=(m)=>pn.modifyEffect(i,r.fnUntraced(function*(y){switch(y._tag){case"Running":case"ShellThenRun":if(o?.onReentryWarn)yield*o.onReentryWarn({label:o.label??"(unlabeled)",existingRunId:y.run.id});return[ln.await(y.run.done),y];case"Shell":{let t={id:M(),done:yield*ln.make(),work:m};return[ln.await(t.done),{_tag:"ShellThenRun",shell:y.shell,run:t}]}case"Idle":{let t=yield*ln.make(),u=yield*K(m,t);return[ln.await(t),{_tag:"Running",run:u}]}}})).pipe(r.flatten,r.catch((y)=>y instanceof Zn?A??r.die(y):r.fail(y))),g=(m)=>pn.modifyEffect(i,r.fnUntraced(function*(y){if(y._tag!=="Idle")return[r.sync(()=>{if(o?.busy)o.busy();throw Error("Runner is busy")}),y];yield*e;let t=M(),u=yield*m.pipe(r.ensuring($(t)),r.forkChild),D={id:t,fiber:u};return[r.gen(function*(){let I=yield*Ln.await(u);if(Xn.isSuccess(I))return I.value;if(Ko.hasInterruptsOnly(I.cause)&&A)return yield*A;return yield*r.failCause(I.cause)}),{_tag:"Shell",shell:D}]})).pipe(r.flatten),s=pn.modify(i,(m)=>{switch(m._tag){case"Idle":return[r.void,m];case"Running":return[r.gen(function*(){yield*Ln.interrupt(m.run.fiber);let y=yield*Ln.await(m.run.fiber);yield*x(m.run.done,y),yield*ln.await(m.run.done).pipe(r.exit,r.asVoid),yield*C()}),{_tag:"Idle"}];case"Shell":return[r.gen(function*(){yield*Q(m.shell),yield*C()}),{_tag:"Idle"}];case"ShellThenRun":return[r.gen(function*(){yield*ln.fail(m.run.done,new Zn).pipe(r.asVoid),yield*Q(m.shell),yield*C()}),{_tag:"Idle"}]}}).pipe(r.flatten);return{get state(){return T()},get busy(){return T()._tag!=="Idle"},ensureRunning:L,startShell:g,cancel:s}};import{Database as Je}from"bun:sqlite";function yi(n){let o=new Je(n,{create:!0});return ui({client:o})}var Me=ro.create("NotFoundError",a.object({message:a.string()})),fi=c.create({service:"db"});function li(){if(["latest","beta","prod"].includes(Ro)||nn.QITQODE_DISABLE_CHANNEL_DB)return oo.join($n.Path.data,"qitqode.db");let n=Ro.replace(/[^a-zA-Z0-9._-]/g,"-");return oo.join($n.Path.data,`qitqode-${n}.db`)}var Eo=En(()=>{if(nn.QITQODE_DB){if(nn.QITQODE_DB===":memory:"||oo.isAbsolute(nn.QITQODE_DB))return nn.QITQODE_DB;return oo.join($n.Path.data,nn.QITQODE_DB)}return li()}),Mn=gi(()=>{fi.info("opening database",{path:Eo});let n=yi(Eo);n.run("PRAGMA journal_mode = WAL"),n.run("PRAGMA synchronous = NORMAL"),n.run("PRAGMA busy_timeout = 5000"),n.run("PRAGMA cache_size = -64000"),n.run("PRAGMA foreign_keys = ON"),n.run("PRAGMA wal_checkpoint(PASSIVE)");let o=[{sql:"CREATE TABLE `project` (\n\t`id` text PRIMARY KEY,\n\t`worktree` text NOT NULL,\n\t`vcs` text,\n\t`name` text,\n\t`icon_url` text,\n\t`icon_color` text,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`time_initialized` integer,\n\t`sandboxes` text NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `message` (\n\t`id` text PRIMARY KEY,\n\t`session_id` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_message_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `part` (\n\t`id` text PRIMARY KEY,\n\t`message_id` text NOT NULL,\n\t`session_id` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_part_message_id_message_id_fk` FOREIGN KEY (`message_id`) REFERENCES `message`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `permission` (\n\t`project_id` text PRIMARY KEY,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_permission_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `session` (\n\t`id` text PRIMARY KEY,\n\t`project_id` text NOT NULL,\n\t`parent_id` text,\n\t`slug` text NOT NULL,\n\t`directory` text NOT NULL,\n\t`title` text NOT NULL,\n\t`version` text NOT NULL,\n\t`share_url` text,\n\t`summary_additions` integer,\n\t`summary_deletions` integer,\n\t`summary_files` integer,\n\t`summary_diffs` text,\n\t`revert` text,\n\t`permission` text,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`time_compacting` integer,\n\t`time_archived` integer,\n\tCONSTRAINT `fk_session_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `todo` (\n\t`session_id` text NOT NULL,\n\t`content` text NOT NULL,\n\t`status` text NOT NULL,\n\t`priority` text NOT NULL,\n\t`position` integer NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\tCONSTRAINT `todo_pk` PRIMARY KEY(`session_id`, `position`),\n\tCONSTRAINT `fk_todo_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE TABLE `session_share` (\n\t`session_id` text PRIMARY KEY,\n\t`id` text NOT NULL,\n\t`secret` text NOT NULL,\n\t`url` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\tCONSTRAINT `fk_session_share_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE INDEX `message_session_idx` ON `message` (`session_id`);--> statement-breakpoint\nCREATE INDEX `part_message_idx` ON `part` (`message_id`);--> statement-breakpoint\nCREATE INDEX `part_session_idx` ON `part` (`session_id`);--> statement-breakpoint\nCREATE INDEX `session_project_idx` ON `session` (`project_id`);--> statement-breakpoint\nCREATE INDEX `session_parent_idx` ON `session` (`parent_id`);--> statement-breakpoint\nCREATE INDEX `todo_session_idx` ON `todo` (`session_id`);",timestamp:1769552633000,name:"20260127222353_familiar_lady_ursula"},{sql:"ALTER TABLE `project` ADD `commands` text;",timestamp:1770830228000,name:"20260211171708_add_project_commands"},{sql:"CREATE TABLE `control_account` (\n\t`email` text NOT NULL,\n\t`url` text NOT NULL,\n\t`access_token` text NOT NULL,\n\t`refresh_token` text NOT NULL,\n\t`token_expiry` integer,\n\t`active` integer NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\tCONSTRAINT `control_account_pk` PRIMARY KEY(`email`, `url`)\n);\n",timestamp:1770993676000,name:"20260213144116_wakeful_the_professor"},{sql:"CREATE TABLE `workspace` (\n\t`id` text PRIMARY KEY,\n\t`branch` text,\n\t`project_id` text NOT NULL,\n\t`config` text NOT NULL,\n\tCONSTRAINT `fk_workspace_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n",timestamp:1772056728000,name:"20260225215848_workspace"},{sql:"ALTER TABLE `session` ADD `workspace_id` text;--> statement-breakpoint\nCREATE INDEX `session_workspace_idx` ON `session` (`workspace_id`);",timestamp:1772228279000,name:"20260227213759_add_session_workspace_id"},{sql:"CREATE TABLE `account` (\n\t`id` text PRIMARY KEY,\n\t`email` text NOT NULL,\n\t`url` text NOT NULL,\n\t`access_token` text NOT NULL,\n\t`refresh_token` text NOT NULL,\n\t`token_expiry` integer,\n\t`selected_org_id` text,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `account_state` (\n\t`id` integer PRIMARY KEY NOT NULL,\n\t`active_account_id` text,\n\tFOREIGN KEY (`active_account_id`) REFERENCES `account`(`id`) ON UPDATE no action ON DELETE set null\n);\n",timestamp:1772310750000,name:"20260228203230_blue_harpoon"},{sql:"ALTER TABLE `workspace` ADD `type` text NOT NULL;--> statement-breakpoint\nALTER TABLE `workspace` ADD `name` text;--> statement-breakpoint\nALTER TABLE `workspace` ADD `directory` text;--> statement-breakpoint\nALTER TABLE `workspace` ADD `extra` text;--> statement-breakpoint\nALTER TABLE `workspace` DROP COLUMN `config`;",timestamp:1772579546000,name:"20260303231226_add_workspace_fields"},{sql:"ALTER TABLE `account_state` ADD `active_org_id` text;--> statement-breakpoint\nUPDATE `account_state` SET `active_org_id` = (SELECT `selected_org_id` FROM `account` WHERE `account`.`id` = `account_state`.`active_account_id`);--> statement-breakpoint\nALTER TABLE `account` DROP COLUMN `selected_org_id`;\n",timestamp:1773097200000,name:"20260309230000_move_org_to_state"},{sql:"DROP INDEX IF EXISTS `message_session_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `part_message_idx`;--> statement-breakpoint\nCREATE INDEX `message_session_time_created_id_idx` ON `message` (`session_id`,`time_created`,`id`);--> statement-breakpoint\nCREATE INDEX `part_message_id_id_idx` ON `part` (`message_id`,`id`);",timestamp:1773290071000,name:"20260312043431_session_message_cursor"},{sql:"CREATE TABLE `event_sequence` (\n\t`aggregate_id` text PRIMARY KEY,\n\t`seq` integer NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `event` (\n\t`id` text PRIMARY KEY,\n\t`aggregate_id` text NOT NULL,\n\t`seq` integer NOT NULL,\n\t`type` text NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_event_aggregate_id_event_sequence_aggregate_id_fk` FOREIGN KEY (`aggregate_id`) REFERENCES `event_sequence`(`aggregate_id`) ON DELETE CASCADE\n);\n",timestamp:1774309702000,name:"20260323234822_events"},{sql:"PRAGMA foreign_keys=OFF;--> statement-breakpoint\nCREATE TABLE `__new_workspace` (\n\t`id` text PRIMARY KEY,\n\t`type` text NOT NULL,\n\t`name` text DEFAULT '' NOT NULL,\n\t`branch` text,\n\t`directory` text,\n\t`extra` text,\n\t`project_id` text NOT NULL,\n\tCONSTRAINT `fk_workspace_project_id_project_id_fk` FOREIGN KEY (`project_id`) REFERENCES `project`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nINSERT INTO `__new_workspace`(`id`, `type`, `branch`, `name`, `directory`, `extra`, `project_id`) SELECT `id`, `type`, `branch`, `name`, `directory`, `extra`, `project_id` FROM `workspace`;--> statement-breakpoint\nDROP TABLE `workspace`;--> statement-breakpoint\nALTER TABLE `__new_workspace` RENAME TO `workspace`;--> statement-breakpoint\nPRAGMA foreign_keys=ON;",timestamp:1775843113000,name:"20260410174513_workspace-name"},{sql:"CREATE TABLE `session_entry` (\n\t`id` text PRIMARY KEY,\n\t`session_id` text NOT NULL,\n\t`type` text NOT NULL,\n\t`time_created` integer NOT NULL,\n\t`time_updated` integer NOT NULL,\n\t`data` text NOT NULL,\n\tCONSTRAINT `fk_session_entry_session_id_session_id_fk` FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON DELETE CASCADE\n);\n--> statement-breakpoint\nCREATE INDEX `session_entry_session_idx` ON `session_entry` (`session_id`);--> statement-breakpoint\nCREATE INDEX `session_entry_session_type_idx` ON `session_entry` (`session_id`,`type`);--> statement-breakpoint\nCREATE INDEX `session_entry_time_created_idx` ON `session_entry` (`time_created`);",timestamp:1776103196000,name:"20260413175956_chief_energizer"},{sql:"ALTER TABLE `session` ADD `context_from` text;--> statement-breakpoint\nALTER TABLE `session` ADD `context_watermark` text;--> statement-breakpoint\nCREATE INDEX `session_context_from_idx` ON `session` (`context_from`);\n",timestamp:1776873600000,name:"20260422160000_context_inheritance"},{sql:"CREATE TABLE `task_registry` (\n `id` text PRIMARY KEY,\n `parent_session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `status` text NOT NULL,\n `agent` text NOT NULL,\n `description` text NOT NULL,\n `context_mode` text NOT NULL,\n `background` integer NOT NULL,\n `last_turn_time` integer NOT NULL,\n `turn_count` integer NOT NULL DEFAULT 0,\n `error` text,\n `time_completed` integer,\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `task_registry_parent_idx` ON `task_registry` (`parent_session_id`);--> statement-breakpoint\nCREATE INDEX `task_registry_status_idx` ON `task_registry` (`status`);--> statement-breakpoint\nCREATE INDEX `task_registry_status_last_turn_idx` ON `task_registry` (`status`, `last_turn_time`);\n",timestamp:1776877200000,name:"20260422170000_task_registry"},{sql:"DROP INDEX IF EXISTS `session_entry_session_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `session_entry_session_type_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `session_entry_time_created_idx`;--> statement-breakpoint\nDROP TABLE IF EXISTS `session_entry`;\n",timestamp:1776956061000,name:"20260423145421_remove_session_entry"},{sql:"DROP INDEX IF EXISTS `task_registry_parent_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `task_registry_status_idx`;--> statement-breakpoint\nDROP INDEX IF EXISTS `task_registry_status_last_turn_idx`;--> statement-breakpoint\nALTER TABLE `task_registry` RENAME TO `actor_registry`;--> statement-breakpoint\nCREATE INDEX `actor_registry_parent_idx` ON `actor_registry` (`parent_session_id`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_idx` ON `actor_registry` (`status`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_last_turn_idx` ON `actor_registry` (`status`, `last_turn_time`);\n",timestamp:1778803200000,name:"20260515000000_actor_rename"},{sql:"CREATE TABLE `memory_fts` (\n `path` text PRIMARY KEY NOT NULL,\n `scope` text NOT NULL,\n `scope_id` text DEFAULT '' NOT NULL,\n `type` text NOT NULL,\n `body` text NOT NULL,\n `fingerprint` text NOT NULL,\n `last_indexed_at` integer NOT NULL\n);\n--> statement-breakpoint\nCREATE INDEX `memory_fts_scope_idx` ON `memory_fts` (`scope`, `scope_id`);\n--> statement-breakpoint\nCREATE INDEX `memory_fts_type_idx` ON `memory_fts` (`type`);\n--> statement-breakpoint\nCREATE VIRTUAL TABLE `memory_fts_idx` USING fts5(\n body,\n content='memory_fts',\n content_rowid='rowid',\n tokenize='unicode61 remove_diacritics 1'\n);\n--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ai` AFTER INSERT ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;\n--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ad` AFTER DELETE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.rowid;\nEND;\n--> statement-breakpoint\nCREATE TRIGGER `memory_fts_au` AFTER UPDATE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.rowid;\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;\n",timestamp:1778806800000,name:"20260515010000_memory_fts"},{sql:"CREATE TABLE `task` (\n `id` text NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `parent_task_id` text,\n `kind` text NOT NULL DEFAULT 'user',\n `status` text NOT NULL,\n `focus` integer NOT NULL DEFAULT 0,\n `summary` text NOT NULL,\n `created_at` integer NOT NULL,\n `last_event_at` integer NOT NULL,\n `ended_at` integer,\n `cleanup_after` integer,\n PRIMARY KEY (`session_id`, `id`)\n);--> statement-breakpoint\nCREATE INDEX `task_session_idx` ON `task` (`session_id`);--> statement-breakpoint\nCREATE INDEX `task_parent_idx` ON `task` (`session_id`, `parent_task_id`);--> statement-breakpoint\nCREATE INDEX `task_status_idx` ON `task` (`status`);--> statement-breakpoint\nCREATE INDEX `task_kind_idx` ON `task` (`kind`);--> statement-breakpoint\nCREATE UNIQUE INDEX `task_focus_per_session_idx` ON `task` (`session_id`) WHERE focus = 1;--> statement-breakpoint\nCREATE TABLE `task_event` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `task_id` text NOT NULL,\n `at` integer NOT NULL,\n `kind` text NOT NULL,\n `summary` text,\n FOREIGN KEY (`session_id`, `task_id`) REFERENCES `task`(`session_id`, `id`) ON DELETE CASCADE\n);--> statement-breakpoint\nCREATE INDEX `task_event_task_idx` ON `task_event` (`session_id`, `task_id`, `at`);\n",timestamp:1778810400000,name:"20260515020000_user_task"},{sql:"ALTER TABLE `session` ADD `last_checkpoint_message_id` text;\n",timestamp:1779148800000,name:"20260519000000_last_checkpoint_message_id"},{sql:"ALTER TABLE `message` ADD `agent_id` text;--> statement-breakpoint\nCREATE INDEX `message_session_agent_idx` ON `message` (`session_id`,`agent_id`,`id`);\n",timestamp:1779321600000,name:"20260521000000_message_agent_id"},{sql:"DROP TABLE `actor_registry`;--> statement-breakpoint\nCREATE TABLE `actor_registry` (\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `actor_id` text NOT NULL,\n `mode` text NOT NULL,\n `parent_actor_id` text,\n `status` text NOT NULL,\n `agent` text NOT NULL,\n `description` text NOT NULL,\n `context_mode` text NOT NULL,\n `context_watermark` text,\n `background` integer NOT NULL,\n `tools` text,\n `last_turn_time` integer NOT NULL,\n `turn_count` integer NOT NULL DEFAULT 0,\n `error` text,\n `time_completed` integer,\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL,\n PRIMARY KEY (`session_id`, `actor_id`)\n);--> statement-breakpoint\nCREATE INDEX `actor_registry_session_agent_idx` ON `actor_registry` (`session_id`, `agent`);--> statement-breakpoint\nCREATE INDEX `actor_registry_session_parent_idx` ON `actor_registry` (`session_id`, `parent_actor_id`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_idx` ON `actor_registry` (`status`);--> statement-breakpoint\nCREATE INDEX `actor_registry_status_last_turn_idx` ON `actor_registry` (`status`, `last_turn_time`);\n",timestamp:1779321660000,name:"20260521000100_actor_registry_v6"},{sql:"DROP TRIGGER IF EXISTS `memory_fts_ai`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_ad`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_au`;--> statement-breakpoint\nDROP TABLE IF EXISTS `memory_fts_idx`;--> statement-breakpoint\nDROP TABLE IF EXISTS `memory_fts`;--> statement-breakpoint\nCREATE TABLE `memory_fts` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `path` text NOT NULL UNIQUE,\n `scope` text NOT NULL,\n `scope_id` text DEFAULT '' NOT NULL,\n `type` text NOT NULL,\n `body` text NOT NULL,\n `fingerprint` text NOT NULL,\n `last_indexed_at` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `memory_fts_scope_idx` ON `memory_fts` (`scope`, `scope_id`);--> statement-breakpoint\nCREATE INDEX `memory_fts_type_idx` ON `memory_fts` (`type`);--> statement-breakpoint\nCREATE VIRTUAL TABLE `memory_fts_idx` USING fts5(\n body,\n content='memory_fts',\n content_rowid='id',\n tokenize='unicode61 remove_diacritics 1'\n);--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ai` AFTER INSERT ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ad` AFTER DELETE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.id;\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_au` AFTER UPDATE ON `memory_fts` BEGIN\n DELETE FROM `memory_fts_idx` WHERE rowid = OLD.id;\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;\n",timestamp:1779325200000,name:"20260521010000_memory_fts_v6"},{sql:"-- Fix v6.1 trigger pattern: external content FTS5 vtab requires the 'delete'\n-- magic command to remove OLD body's tokens, NOT a plain DELETE FROM the vtab.\n-- The previous DELETE FROM pattern was contentless-mode syntax misapplied to\n-- external-content mode, leaving stale tokens accumulating until vtab corrupts.\nDROP TRIGGER IF EXISTS `memory_fts_ai`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_ad`;--> statement-breakpoint\nDROP TRIGGER IF EXISTS `memory_fts_au`;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ai` AFTER INSERT ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_ad` AFTER DELETE ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(`memory_fts_idx`, rowid, body) VALUES('delete', OLD.id, OLD.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `memory_fts_au` AFTER UPDATE ON `memory_fts` BEGIN\n INSERT INTO `memory_fts_idx`(`memory_fts_idx`, rowid, body) VALUES('delete', OLD.id, OLD.body);\n INSERT INTO `memory_fts_idx`(rowid, body) VALUES (NEW.id, NEW.body);\nEND;\n",timestamp:1779328800000,name:"20260521020000_memory_fts_triggers"},{sql:"UPDATE `message` SET `agent_id` = 'main' WHERE `agent_id` IS NULL;--> statement-breakpoint\nCREATE TABLE `message_new` (\n `id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `agent_id` text NOT NULL DEFAULT 'main',\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL,\n `data` text NOT NULL\n);--> statement-breakpoint\nINSERT INTO `message_new` SELECT `id`, `session_id`, COALESCE(`agent_id`, 'main'), `time_created`, `time_updated`, `data` FROM `message`;--> statement-breakpoint\nDROP TABLE `message`;--> statement-breakpoint\nALTER TABLE `message_new` RENAME TO `message`;--> statement-breakpoint\nCREATE INDEX `message_session_time_created_id_idx` ON `message` (`session_id`,`time_created`,`id`);--> statement-breakpoint\nCREATE INDEX `message_session_agent_idx` ON `message` (`session_id`,`agent_id`,`id`);\n",timestamp:1779753600000,name:"20260526000000_agent_id_main"},{sql:"ALTER TABLE `actor_registry` ADD COLUMN `last_outcome` text;--> statement-breakpoint\nALTER TABLE `actor_registry` ADD COLUMN `lifecycle` text NOT NULL DEFAULT 'ephemeral';--> statement-breakpoint\nALTER TABLE `actor_registry` RENAME COLUMN `error` TO `last_error`;--> statement-breakpoint\nUPDATE `actor_registry` SET `last_outcome` = 'success' WHERE `status` = 'completed';--> statement-breakpoint\nUPDATE `actor_registry` SET `last_outcome` = 'failure' WHERE `status` = 'failed';--> statement-breakpoint\nUPDATE `actor_registry` SET `last_outcome` = 'cancelled' WHERE `status` = 'cancelled';--> statement-breakpoint\nUPDATE `actor_registry` SET `status` = 'idle' WHERE `status` IN ('completed','failed','cancelled');--> statement-breakpoint\nUPDATE `actor_registry` SET `lifecycle` = CASE `mode` WHEN 'peer' THEN 'persistent' WHEN 'main' THEN 'persistent' ELSE 'ephemeral' END;\n",timestamp:1779840000000,name:"20260527000000_actor_lifecycle"},{sql:"CREATE TABLE `inbox` (\n `id` text PRIMARY KEY NOT NULL,\n `receiver_session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `receiver_actor_id` text NOT NULL,\n `sender_session_id` text,\n `sender_actor_id` text,\n `type` text NOT NULL DEFAULT 'text',\n `content` text NOT NULL,\n `created_at` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `inbox_receiver_idx` ON `inbox` (`receiver_session_id`,`receiver_actor_id`,`id`);--> statement-breakpoint\nCREATE INDEX `inbox_created_idx` ON `inbox` (`created_at`);\n",timestamp:1779840060000,name:"20260527000100_inbox"},{sql:"-- todo: drop priority column\nALTER TABLE `todo` DROP COLUMN `priority`;\n--> statement-breakpoint\n\n-- task: drop focus-dependent index before dropping its column\nDROP INDEX `task_focus_per_session_idx`;\n--> statement-breakpoint\nDROP INDEX `task_kind_idx`;\n--> statement-breakpoint\nALTER TABLE `task` DROP COLUMN `focus`;\n--> statement-breakpoint\nALTER TABLE `task` DROP COLUMN `kind`;\n--> statement-breakpoint\n\n-- migrate status values: proposed/active -> open\nUPDATE `task` SET `status` = 'open' WHERE `status` IN ('proposed', 'active');\n",timestamp:1780012800000,name:"20260529000000_task_todo_redesign"},{sql:"ALTER TABLE `task` ADD COLUMN `owner` text;\n",timestamp:1780444800000,name:"20260603000000_task_in_progress_owner"},{sql:"CREATE TABLE `workflow_run` (\n `id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL REFERENCES `session`(`id`) ON DELETE CASCADE,\n `name` text NOT NULL,\n `status` text NOT NULL,\n `running` integer NOT NULL DEFAULT 0,\n `succeeded` integer NOT NULL DEFAULT 0,\n `failed` integer NOT NULL DEFAULT 0,\n `current_phase` text,\n `parent_actor_id` text,\n `args` text,\n `error` text,\n `time_created` integer NOT NULL,\n `time_updated` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `workflow_run_session_idx` ON `workflow_run` (`session_id`);--> statement-breakpoint\nCREATE INDEX `workflow_run_status_idx` ON `workflow_run` (`status`);\n",timestamp:1780444800000,name:"20260603000000_workflow_run"},{sql:"ALTER TABLE `workflow_run` ADD COLUMN `script_sha` text;\n",timestamp:1780531200000,name:"20260604000000_workflow_script_sha"},{sql:"CREATE TABLE `claude_import` (\n `source_uuid` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL,\n `source_path` text NOT NULL,\n `source_mtime` integer NOT NULL,\n `time_imported` integer NOT NULL\n);\n",timestamp:1780876800000,name:"20260608000000_claude_import"},{sql:"ALTER TABLE `claude_import` ADD `message_ids` text;\n",timestamp:1780880400000,name:"20260608010000_claude_import_message_ids"},{sql:"CREATE TABLE `history_fts` (\n `part_id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL,\n `message_id` text NOT NULL,\n `project_id` text NOT NULL,\n `kind` text NOT NULL,\n `tool_name` text,\n `body` text NOT NULL,\n `time_created` integer NOT NULL\n);--> statement-breakpoint\nCREATE INDEX `history_fts_session_idx` ON `history_fts` (`session_id`, `time_created`);--> statement-breakpoint\nCREATE INDEX `history_fts_project_idx` ON `history_fts` (`project_id`, `time_created`);--> statement-breakpoint\nCREATE INDEX `history_fts_message_idx` ON `history_fts` (`message_id`);--> statement-breakpoint\nCREATE VIRTUAL TABLE `history_fts_idx` USING fts5(\n body,\n content='history_fts',\n content_rowid='rowid',\n tokenize='unicode61 remove_diacritics 1'\n);--> statement-breakpoint\nCREATE TRIGGER `history_fts_ai` AFTER INSERT ON `history_fts` BEGIN\n INSERT INTO `history_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `history_fts_ad` AFTER DELETE ON `history_fts` BEGIN\n INSERT INTO `history_fts_idx`(`history_fts_idx`, rowid, body) VALUES('delete', OLD.rowid, OLD.body);\nEND;--> statement-breakpoint\nCREATE TRIGGER `history_fts_au` AFTER UPDATE ON `history_fts` BEGIN\n INSERT INTO `history_fts_idx`(`history_fts_idx`, rowid, body) VALUES('delete', OLD.rowid, OLD.body);\n INSERT INTO `history_fts_idx`(rowid, body) VALUES (NEW.rowid, NEW.body);\nEND;\n",timestamp:1780963200000,name:"20260609000000_history_fts"},{sql:"ALTER TABLE `workflow_run` ADD COLUMN `agent_timeout_ms` integer;\n",timestamp:1781046000000,name:"20260609230000_workflow_agent_timeout"},{sql:"CREATE TABLE `external_import` (\n `source` text NOT NULL,\n `source_key` text NOT NULL,\n `session_id` text NOT NULL,\n `source_path` text NOT NULL,\n `source_mtime` integer NOT NULL,\n `time_imported` integer NOT NULL,\n `message_ids` text,\n PRIMARY KEY (`source`, `source_key`)\n);\n\nINSERT INTO `external_import` (`source`, `source_key`, `session_id`, `source_path`, `source_mtime`, `time_imported`, `message_ids`)\nSELECT 'cc', `source_uuid`, `session_id`, `source_path`, `source_mtime`, `time_imported`, `message_ids`\nFROM `claude_import`;\n\nDROP TABLE `claude_import`;\n",timestamp:1781222400000,name:"20260612000000_external_import"}];if(o.length>0){if(fi.info("applying migrations",{count:o.length,mode:"bundled"}),nn.QITQODE_SKIP_MIGRATIONS)for(let i of o)i.sql="select 1;";ao(n,o)}return n});function Se(){Mn().$client.close(),Mn.reset()}var Yn=gn.create("database");function Ce(n){try{return n(Yn.use().tx)}catch(o){if(o instanceof gn.NotFound){let i=[],l=Yn.provide({effects:i,tx:Mn()},()=>n(Mn()));for(let e of i)e();return l}throw o}}function He(n){let o=Un.bind(n);try{Yn.use().effects.push(o)}catch{o()}}function xe(n,o){try{return n(Yn.use().tx)}catch(i){if(i instanceof gn.NotFound){let l=[],e=Un.bind((_)=>Yn.provide({tx:_,effects:l},()=>n(_))),A=Mn().transaction(e,{behavior:o?.behavior});for(let _ of l)_();return A}throw i}}var Oi={};On(Oi,{layer:()=>Ti,defaultLayer:()=>we,Service:()=>to,NotFoundError:()=>Zo});import X from"path";var Sn={};On(Sn,{layer:()=>pi,defaultLayer:()=>Ee,Service:()=>io,Git:()=>Sn});var Ke=["--no-optional-locks","-c","core.autocrlf=false","-c","core.fsmonitor=false","-c","core.longpaths=true","-c","core.symlinks=true","-c","core.quotepath=false"],zn=(n)=>n.text().trim(),Po=(n)=>n.split("\x00").filter(Boolean),Re=(n)=>({exitCode:1,text:()=>"",stdout:Buffer.alloc(0),stderr:Buffer.from(n instanceof Error?n.message:String(n))}),si=(n)=>{if(n==="??")return"added";if(n.includes("U"))return"modified";if(n.includes("A")&&!n.includes("D"))return"added";if(n.includes("D")&&!n.includes("A"))return"deleted";return"modified"};class io extends vn.Service()("@qitqode/Git"){}var pi=h.effect(io,r.gen(function*(){let n=yield*an.ChildProcessSpawner,o=r.fn("Git.run")(function*(g,s){let m=_i.make("git",[...Ke,...g],{cwd:s.cwd,env:s.env,extendEnv:!0,stdin:"ignore",stdout:"pipe",stderr:"pipe"}),y=yield*Ni(n,m);return{exitCode:y.code,text:()=>y.text,stdout:Buffer.from(y.text),stderr:Buffer.from(y.stderr)}},r.scoped,r.catch((g)=>r.succeed(Re(g)))),i=r.fn("Git.text")(function*(g,s){return(yield*o(g,s)).text()}),l=r.fn("Git.lines")(function*(g,s){return(yield*i(g,s)).split(/\r?\n/).map((m)=>m.trim()).filter(Boolean)}),e=r.fnUntraced(function*(g){return yield*l(["for-each-ref","--format=%(refname:short)","refs/heads"],{cwd:g})}),A=r.fnUntraced(function*(g,s){let m=yield*o(["config","init.defaultBranch"],{cwd:g}),y=zn(m);if(!y||!s.includes(y))return;return{name:y,ref:y}}),_=r.fnUntraced(function*(g){let s=yield*l(["remote"],{cwd:g});if(s.includes("origin"))return"origin";if(s.length===1)return s[0];if(s.includes("upstream"))return"upstream";return s[0]}),T=r.fn("Git.branch")(function*(g){let s=yield*o(["symbolic-ref","--quiet","--short","HEAD"],{cwd:g});if(s.exitCode!==0)return;return zn(s)||void 0}),M=r.fn("Git.prefix")(function*(g){let s=yield*o(["rev-parse","--show-prefix"],{cwd:g});if(s.exitCode!==0)return"";return zn(s)}),x=r.fn("Git.defaultBranch")(function*(g){let s=yield*_(g);if(s){let t=yield*o(["symbolic-ref",`refs/remotes/${s}/HEAD`],{cwd:g});if(t.exitCode===0){let u=zn(t).replace(/^refs\/remotes\//,""),D=u.startsWith(`${s}/`)?u.slice(`${s}/`.length):"";if(D)return{name:D,ref:u}}}let m=yield*e(g),y=yield*A(g,m);if(y)return y;if(m.includes("main"))return{name:"main",ref:"main"};if(m.includes("master"))return{name:"master",ref:"master"}}),C=r.fn("Git.hasHead")(function*(g){return(yield*o(["rev-parse","--verify","HEAD"],{cwd:g})).exitCode===0}),H=r.fn("Git.mergeBase")(function*(g,s,m="HEAD"){let y=yield*o(["merge-base",s,m],{cwd:g});if(y.exitCode!==0)return;return zn(y)||void 0}),K=r.fn("Git.show")(function*(g,s,m,y=""){let t=y?`${y}${m}`:m,u=yield*o(["show",`${s}:${t}`],{cwd:g});if(u.exitCode!==0)return"";if(u.stdout.includes(0))return"";return u.text()}),$=r.fn("Git.status")(function*(g){return Po(yield*i(["status","--porcelain=v1","--untracked-files=all","--no-renames","-z","--","."],{cwd:g})).flatMap((s)=>{let m=s.slice(3);if(!m)return[];let y=s.slice(0,2);return[{file:m,code:y,status:si(y)}]})}),Q=r.fn("Git.diff")(function*(g,s){let m=Po(yield*i(["diff","--no-ext-diff","--no-renames","--name-status","-z",s,"--","."],{cwd:g}));return m.flatMap((y,t)=>{if(t%2!==0)return[];let u=m[t+1];if(!y||!u)return[];return[{file:u,code:y,status:si(y)}]})}),L=r.fn("Git.stats")(function*(g,s){return Po(yield*i(["diff","--no-ext-diff","--no-renames","--numstat","-z",s,"--","."],{cwd:g})).flatMap((m)=>{let y=m.indexOf("\t"),t=m.indexOf("\t",y+1);if(y===-1||t===-1)return[];let u=m.slice(t+1);if(!u)return[];let D=m.slice(0,y),I=m.slice(y+1,t),O=D==="-"?0:Number.parseInt(D||"0",10),P=I==="-"?0:Number.parseInt(I||"0",10);return[{file:u,additions:Number.isFinite(O)?O:0,deletions:Number.isFinite(P)?P:0}]})});return io.of({run:o,branch:T,prefix:M,defaultBranch:x,hasHead:C,mergeBase:H,show:K,status:$,diff:Q,stats:L})})),Ee=pi.pipe(h.provide(bn));var An=c.create({service:"storage"}),Zo=ro.create("NotFoundError",a.object({message:a.string()})),Pe=N.Struct({path:N.optional(N.Struct({root:N.optional(N.String)}))}),We=N.Struct({id:N.String}),Ue=N.Struct({id:N.String}),Ze=N.Struct({additions:N.Number,deletions:N.Number}),Xe=N.Struct({id:N.String,projectID:N.String,summary:N.Struct({diffs:N.Array(Ze)})}),Ye=N.decodeUnknownOption(Pe),ze=N.decodeUnknownOption(We),ce=N.decodeUnknownOption(Ue),ke=N.decodeUnknownOption(Xe);class to extends vn.Service()("@qitqode/Storage"){}function qe(n,o){return X.join(n,...o)+".json"}function Wo(n){if(!n||typeof n!=="object")return!1;if("code"in n&&n.code==="ENOENT")return!0;if("reason"in n&&n.reason&&typeof n.reason==="object"&&"_tag"in n.reason)return n.reason._tag==="NotFound";return!1}function Ve(n){let o=Number.parseInt(n,10);return Number.isNaN(o)?0:o}var Ai=[r.fn("Storage.migration.1")(function*(n,o,i){let l=X.resolve(n,"../project");if(!(yield*o.isDir(l)))return;let e=yield*o.glob("*",{cwd:l,include:"all"});for(let A of e){let _=X.join(l,A);if(!(yield*o.isDir(_)))continue;An.info(`migrating project ${A}`);let T=A,M="/";if(T!=="global"){for(let H of yield*o.glob("storage/session/message/*/*.json",{cwd:_,absolute:!0})){let K=Ye(yield*o.readJson(H),{onExcessProperty:"preserve"}),$=cn.isSome(K)?K.value.path?.root:void 0;if(!$)continue;M=$;break}if(!M)continue;if(!(yield*o.isDir(M)))continue;let x=yield*i.run(["rev-list","--max-parents=0","--all"],{cwd:M}),[C]=x.text().split(`
5
+ `).filter(Boolean).map((H)=>H.trim()).toSorted();if(!C)continue;T=C,yield*o.writeWithDirs(X.join(n,"project",T+".json"),JSON.stringify({id:C,vcs:"git",worktree:M,time:{created:Date.now(),initialized:Date.now()}},null,2)),An.info(`migrating sessions for project ${T}`);for(let H of yield*o.glob("storage/session/info/*.json",{cwd:_,absolute:!0})){let K=X.join(n,"session",T,X.basename(H));An.info("copying",{sessionFile:H,dest:K});let $=yield*o.readJson(H),Q=ze($,{onExcessProperty:"preserve"});if(yield*o.writeWithDirs(K,JSON.stringify($,null,2)),cn.isNone(Q))continue;An.info(`migrating messages for session ${Q.value.id}`);for(let L of yield*o.glob(`storage/session/message/${Q.value.id}/*.json`,{cwd:_,absolute:!0})){let g=X.join(n,"message",Q.value.id,X.basename(L));An.info("copying",{msgFile:L,dest:g});let s=yield*o.readJson(L),m=ce(s,{onExcessProperty:"preserve"});if(yield*o.writeWithDirs(g,JSON.stringify(s,null,2)),cn.isNone(m))continue;An.info(`migrating parts for message ${m.value.id}`);for(let y of yield*o.glob(`storage/session/part/${Q.value.id}/${m.value.id}/*.json`,{cwd:_,absolute:!0})){let t=X.join(n,"part",m.value.id,X.basename(y)),u=yield*o.readJson(y);An.info("copying",{partFile:y,dest:t}),yield*o.writeWithDirs(t,JSON.stringify(u,null,2))}}}}}}),r.fn("Storage.migration.2")(function*(n,o){for(let i of yield*o.glob("session/*/*.json",{cwd:n,absolute:!0})){let l=yield*o.readJson(i),e=ke(l,{onExcessProperty:"preserve"});if(cn.isNone(e))continue;let A=e.value.summary.diffs;yield*o.writeWithDirs(X.join(n,"session_diff",e.value.id+".json"),JSON.stringify(A,null,2)),yield*o.writeWithDirs(X.join(n,"session",e.value.projectID,e.value.id+".json"),JSON.stringify({...l,summary:{additions:A.reduce((_,T)=>_+T.additions,0),deletions:A.reduce((_,T)=>_+T.deletions,0)}},null,2))}})],Ti=h.effect(to,r.gen(function*(){let n=yield*k.Service,o=yield*Sn.Service,i=yield*Uo.make({lookup:()=>Cn.make(),idleTimeToLive:0}),l=yield*r.cached(r.gen(function*(){let $=X.join($n.Path.data,"storage"),Q=X.join($,"migration"),L=yield*n.readFileString(Q).pipe(r.map(Ve),r.catchIf(Wo,()=>r.succeed(0)),r.orElseSucceed(()=>0));for(let g=L;g<Ai.length;g++){An.info("running migration",{index:g});let s=Ai[g],m=yield*r.exit(s($,n,o));if(Xn.isFailure(m)){An.error("failed to run migration",{index:g,cause:m.cause});break}yield*n.writeWithDirs(Q,String(g+1))}return{dir:$}})),e=($)=>r.fail(new Zo({message:`Resource not found: ${$}`})),A=($,Q)=>Q.pipe(r.catchIf(Wo,()=>e($))),_=r.fnUntraced(function*($,Q){yield*n.writeWithDirs($,JSON.stringify(Q,null,2))}),T=($,Q)=>r.scoped(r.gen(function*(){let L=qe((yield*l).dir,$);return yield*Q(L,yield*Uo.get(i,L))})),M=r.fn("Storage.remove")(function*($){yield*T($,(Q,L)=>Cn.withWriteLock(L,n.remove(Q).pipe(r.catchIf(Wo,()=>r.void))))}),x=($)=>r.gen(function*(){return yield*T($,(L,g)=>Cn.withReadLock(g,A(L,n.readJson(L))))}),C=($,Q)=>r.gen(function*(){return yield*T($,(g,s)=>Cn.withWriteLock(s,r.gen(function*(){let m=yield*A(g,n.readJson(g));return Q(m),yield*_(g,m),m})))}),H=($,Q)=>r.gen(function*(){yield*T($,(L,g)=>Cn.withWriteLock(g,_(L,Q)))}),K=r.fn("Storage.list")(function*($){let Q=(yield*l).dir,L=X.join(Q,...$);return(yield*n.glob("**/*",{cwd:L,include:"file"}).pipe(r.catch(()=>r.succeed([])))).map((s)=>[...$,...s.slice(0,-5).split(X.sep)]).toSorted((s,m)=>s.join("/").localeCompare(m.join("/")))});return to.of({remove:M,read:x,update:C,write:H,list:K})})),we=Ti.pipe(h.provide(k.defaultLayer),h.provide(Sn.defaultLayer));export{Rn as Hl,xr as Il,En as Jl,mn as Kl,J as Ll,fn as Ml,eo as Nl,Yo as Ol,zo as Pl,co as Ql,ko as Rl,Vo as Sl,fo as Tl,In as Ul,Sn as Vl,Zo as Wl,Oi as Xl,w as Yl,Jo as Zl,Pr as _l,se as $l,jr as am,Ae as bm,on as cm,Un as dm,de as em,ei as fm,mi as gm};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{$q as f,Oq as yZ,Pq as y,Tq as h,Wq as L,Zq as V,dr as hZ,fr as R,kr as l,lr as U,mr as B,nr as fZ,or as x,sr as gZ,tq as O,zq as u}from"./chunk-gwfx7tx7.js";import{vr as v}from"./chunk-1wpjmwnh.js";import{Nr as Q0,Or as U0,Pr as L0}from"./chunk-yykjvt7f.js";import{xv as Z}from"./chunk-tdmn21z0.js";import{gQ as g,hQ as c,kQ as r}from"./chunk-4sazy0nq.js";var m=c((E$,o)=>{var{defineProperty:_,getOwnPropertyDescriptor:aZ,getOwnPropertyNames:oZ}=Object,rZ=Object.prototype.hasOwnProperty,eZ=($,W)=>{for(var Q in W)_($,Q,{get:W[Q],enumerable:!0})},Z0=($,W,Q,X)=>{if(W&&typeof W==="object"||typeof W==="function"){for(let Y of oZ(W))if(!rZ.call($,Y)&&Y!==Q)_($,Y,{get:()=>W[Y],enumerable:!(X=aZ(W,Y))||X.enumerable})}return $},$0=($)=>Z0(_({},"__esModule",{value:!0}),$),t={};eZ(t,{SYMBOL_FOR_REQ_CONTEXT:()=>a,getContext:()=>W0});o.exports=$0(t);var a=Symbol.for("@vercel/request-context");function W0(){return globalThis[a]?.get?.()??{}}});var $Z=c((H$,ZZ)=>{var{defineProperty:i,getOwnPropertyDescriptor:X0,getOwnPropertyNames:Y0}=Object,j0=Object.prototype.hasOwnProperty,D0=($,W)=>{for(var Q in W)i($,Q,{get:W[Q],enumerable:!0})},K0=($,W,Q,X)=>{if(W&&typeof W==="object"||typeof W==="function"){for(let Y of Y0(W))if(!j0.call($,Y)&&Y!==Q)i($,Y,{get:()=>W[Y],enumerable:!(X=X0(W,Y))||X.enumerable})}return $},J0=($)=>K0(i({},"__esModule",{value:!0}),$),e={};D0(e,{getVercelOidcToken:()=>N0,getVercelOidcTokenSync:()=>p});ZZ.exports=J0(e);var A0=m(),F0=Q0();async function N0($){let W="",Q;try{W=p()}catch(X){Q=X}try{let[{getTokenPayload:X,isExpired:Y},{refreshToken:D}]=await Promise.all([await import("./chunk-z29ahthm.js").then((m)=>g(m.default)),await import("./chunk-d1rn44wz.js").then((m)=>g(m.default))]);if(!W||Y(X(W),$?.expirationBufferMs))await D($),W=p()}catch(X){let Y=Q instanceof Error?Q.message:"";if(X instanceof Error)Y=`${Y}
2
+ import{Cp as V,Ep as f,Ip as hZ,Kp as R,Pp as l,Qp as U,Rp as B,Sp as fZ,Tp as x,Xp as gZ,Yo as O,cp as u,rp as yZ,sp as y,wp as h,zp as L}from"./chunk-my3cswnp.js";import{_p as v}from"./chunk-4mvg7jt1.js";import{qq as Q0,rq as U0,sq as L0}from"./chunk-mswx4k75.js";import{au as Z}from"./chunk-9ea1n338.js";import{LO as g,MO as c,PO as r}from"./chunk-f83wv08n.js";var m=c((E$,o)=>{var{defineProperty:_,getOwnPropertyDescriptor:aZ,getOwnPropertyNames:oZ}=Object,rZ=Object.prototype.hasOwnProperty,eZ=($,W)=>{for(var Q in W)_($,Q,{get:W[Q],enumerable:!0})},Z0=($,W,Q,X)=>{if(W&&typeof W==="object"||typeof W==="function"){for(let Y of oZ(W))if(!rZ.call($,Y)&&Y!==Q)_($,Y,{get:()=>W[Y],enumerable:!(X=aZ(W,Y))||X.enumerable})}return $},$0=($)=>Z0(_({},"__esModule",{value:!0}),$),t={};eZ(t,{SYMBOL_FOR_REQ_CONTEXT:()=>a,getContext:()=>W0});o.exports=$0(t);var a=Symbol.for("@vercel/request-context");function W0(){return globalThis[a]?.get?.()??{}}});var $Z=c((H$,ZZ)=>{var{defineProperty:i,getOwnPropertyDescriptor:X0,getOwnPropertyNames:Y0}=Object,j0=Object.prototype.hasOwnProperty,D0=($,W)=>{for(var Q in W)i($,Q,{get:W[Q],enumerable:!0})},K0=($,W,Q,X)=>{if(W&&typeof W==="object"||typeof W==="function"){for(let Y of Y0(W))if(!j0.call($,Y)&&Y!==Q)i($,Y,{get:()=>W[Y],enumerable:!(X=X0(W,Y))||X.enumerable})}return $},J0=($)=>K0(i({},"__esModule",{value:!0}),$),e={};D0(e,{getVercelOidcToken:()=>N0,getVercelOidcTokenSync:()=>p});ZZ.exports=J0(e);var A0=m(),F0=Q0();async function N0($){let W="",Q;try{W=p()}catch(X){Q=X}try{let[{getTokenPayload:X,isExpired:Y},{refreshToken:D}]=await Promise.all([await import("./chunk-basjzwqp.js").then((m)=>g(m.default)),await import("./chunk-bbbh69ys.js").then((m)=>g(m.default))]);if(!W||Y(X(W),$?.expirationBufferMs))await D($),W=p()}catch(X){let Y=Q instanceof Error?Q.message:"";if(X instanceof Error)Y=`${Y}
3
3
  ${X.message}`;if(Y)throw new F0.VercelOidcTokenError(Y);throw X}return W}function p(){let $=(0,A0.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!$)throw Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return $}});var n=c((M$,YZ)=>{var{defineProperty:d,getOwnPropertyDescriptor:V0,getOwnPropertyNames:q0}=Object,T0=Object.prototype.hasOwnProperty,B0=($,W)=>{for(var Q in W)d($,Q,{get:W[Q],enumerable:!0})},G0=($,W,Q,X)=>{if(W&&typeof W==="object"||typeof W==="function"){for(let Y of q0(W))if(!T0.call($,Y)&&Y!==Q)d($,Y,{get:()=>W[Y],enumerable:!(X=V0(W,Y))||X.enumerable})}return $},x0=($)=>G0(d({},"__esModule",{value:!0}),$),XZ={};B0(XZ,{AccessTokenMissingError:()=>QZ.AccessTokenMissingError,RefreshAccessTokenFailedError:()=>QZ.RefreshAccessTokenFailedError,getContext:()=>z0.getContext,getVercelOidcToken:()=>WZ.getVercelOidcToken,getVercelOidcTokenSync:()=>WZ.getVercelOidcTokenSync,getVercelToken:()=>E0.getVercelToken});YZ.exports=x0(XZ);var WZ=$Z(),z0=m(),QZ=U0(),E0=L0()});var sZ=g(n(),1),tZ=g(n(),1);var H0="vercel.ai.gateway.error",s=Symbol.for(H0),jZ,DZ,z=class $ extends(DZ=Error,jZ=s,DZ){constructor({message:W,statusCode:Q=500,cause:X,generationId:Y}){super(Y?`${W} [${Y}]`:W);this[jZ]=!0,this.statusCode=Q,this.cause=X,this.generationId=Y}static isInstance(W){return $.hasMarker(W)}static hasMarker(W){return typeof W==="object"&&W!==null&&s in W&&W[s]===!0}},uZ="GatewayAuthenticationError",M0=`vercel.ai.gateway.error.${uZ}`,KZ=Symbol.for(M0),JZ,AZ,lZ=class $ extends(AZ=z,JZ=KZ,AZ){constructor({message:W="Authentication failed",statusCode:Q=401,cause:X,generationId:Y}={}){super({message:W,statusCode:Q,cause:X,generationId:Y});this[JZ]=!0,this.name=uZ,this.type="authentication_error"}static isInstance(W){return z.hasMarker(W)&&KZ in W}static createContextualError({apiKeyProvided:W,oidcTokenProvided:Q,message:X="Authentication failed",statusCode:Y=401,cause:D,generationId:N}){let j;if(W)j=`AI Gateway authentication failed: Invalid API key.
4
4
 
5
5
  Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
@@ -17,4 +17,4 @@ Provide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.
17
17
  Option 2 - OIDC token:
18
18
  Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`;return new $({message:j,statusCode:Y,cause:D,generationId:N})}},cZ="GatewayInvalidRequestError",O0=`vercel.ai.gateway.error.${cZ}`,FZ=Symbol.for(O0),NZ,UZ,R0=class extends(UZ=z,NZ=FZ,UZ){constructor({message:$="Invalid request",statusCode:W=400,cause:Q,generationId:X}={}){super({message:$,statusCode:W,cause:Q,generationId:X});this[NZ]=!0,this.name=cZ,this.type="invalid_request_error"}static isInstance($){return z.hasMarker($)&&FZ in $}},_Z="GatewayRateLimitError",C0=`vercel.ai.gateway.error.${_Z}`,LZ=Symbol.for(C0),VZ,qZ,S0=class extends(qZ=z,VZ=LZ,qZ){constructor({message:$="Rate limit exceeded",statusCode:W=429,cause:Q,generationId:X}={}){super({message:$,statusCode:W,cause:Q,generationId:X});this[VZ]=!0,this.name=_Z,this.type="rate_limit_exceeded"}static isInstance($){return z.hasMarker($)&&LZ in $}},mZ="GatewayModelNotFoundError",w0=`vercel.ai.gateway.error.${mZ}`,TZ=Symbol.for(w0),P0=L(()=>V(Z.object({modelId:Z.string()}))),BZ,GZ,b0=class extends(GZ=z,BZ=TZ,GZ){constructor({message:$="Model not found",statusCode:W=404,modelId:Q,cause:X,generationId:Y}={}){super({message:$,statusCode:W,cause:X,generationId:Y});this[BZ]=!0,this.name=mZ,this.type="model_not_found",this.modelId=Q}static isInstance($){return z.hasMarker($)&&TZ in $}},pZ="GatewayInternalServerError",I0=`vercel.ai.gateway.error.${pZ}`,xZ=Symbol.for(I0),zZ,EZ,HZ=class extends(EZ=z,zZ=xZ,EZ){constructor({message:$="Internal server error",statusCode:W=500,cause:Q,generationId:X}={}){super({message:$,statusCode:W,cause:Q,generationId:X});this[zZ]=!0,this.name=pZ,this.type="internal_server_error"}static isInstance($){return z.hasMarker($)&&xZ in $}},iZ="GatewayResponseError",k0=`vercel.ai.gateway.error.${iZ}`,MZ=Symbol.for(k0),OZ,RZ,v0=class extends(RZ=z,OZ=MZ,RZ){constructor({message:$="Invalid response from Gateway",statusCode:W=502,response:Q,validationError:X,cause:Y,generationId:D}={}){super({message:$,statusCode:W,cause:Y,generationId:D});this[OZ]=!0,this.name=iZ,this.type="response_error",this.response=Q,this.validationError=X}static isInstance($){return z.hasMarker($)&&MZ in $}};async function CZ({response:$,statusCode:W,defaultMessage:Q="Gateway request failed",cause:X,authMethod:Y}){var D;let N=await f({value:$,schema:y0});if(!N.success){let E=typeof $==="object"&&$!==null&&"generationId"in $?$.generationId:void 0;return new v0({message:`Invalid error response format: ${Q}`,statusCode:W,response:$,validationError:N.error,cause:X,generationId:E})}let j=N.value,K=j.error.type,F=j.error.message,q=(D=j.generationId)!=null?D:void 0;switch(K){case"authentication_error":return lZ.createContextualError({apiKeyProvided:Y==="api-key",oidcTokenProvided:Y==="oidc",statusCode:W,cause:X,generationId:q});case"invalid_request_error":return new R0({message:F,statusCode:W,cause:X,generationId:q});case"rate_limit_exceeded":return new S0({message:F,statusCode:W,cause:X,generationId:q});case"model_not_found":{let E=await f({value:j.error.param,schema:P0});return new b0({message:F,statusCode:W,modelId:E.success?E.value.modelId:void 0,cause:X,generationId:q})}case"internal_server_error":return new HZ({message:F,statusCode:W,cause:X,generationId:q});default:return new HZ({message:F,statusCode:W,cause:X,generationId:q})}}var y0=L(()=>V(Z.object({error:Z.object({message:Z.string(),type:Z.string().nullish(),param:Z.unknown().nullish(),code:Z.union([Z.string(),Z.number()]).nullish()}),generationId:Z.string().nullish()}))),dZ="GatewayTimeoutError",h0=`vercel.ai.gateway.error.${dZ}`,SZ=Symbol.for(h0),wZ,PZ,bZ=class $ extends(PZ=z,wZ=SZ,PZ){constructor({message:W="Request timed out",statusCode:Q=408,cause:X,generationId:Y}={}){super({message:W,statusCode:Q,cause:X,generationId:Y});this[wZ]=!0,this.name=dZ,this.type="timeout_error"}static isInstance(W){return z.hasMarker(W)&&SZ in W}static createTimeoutError({originalMessage:W,statusCode:Q=408,cause:X,generationId:Y}){let D=`Gateway request timed out: ${W}
19
19
 
20
- This is a client-side timeout. To resolve this, increase your timeout configuration: https://vercel.com/docs/ai-gateway/capabilities/video-generation#extending-timeouts-for-node.js`;return new $({message:D,statusCode:Q,cause:X,generationId:Y})}};function IZ($){if(!($ instanceof Error))return!1;let W=$.code;if(typeof W==="string")return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(W);return!1}async function H($,W){var Q;if(z.isInstance($))return $;if(IZ($))return bZ.createTimeoutError({originalMessage:$ instanceof Error?$.message:"Unknown error",cause:$});if(v.isInstance($)){if($.cause&&IZ($.cause))return bZ.createTimeoutError({originalMessage:$.message,cause:$});return await CZ({response:f0($),statusCode:(Q=$.statusCode)!=null?Q:500,defaultMessage:"Gateway request failed",cause:$,authMethod:W})}return await CZ({response:{},statusCode:500,defaultMessage:$ instanceof Error?`Gateway request failed: ${$.message}`:"Unknown Gateway error",cause:$,authMethod:W})}function f0($){if($.data!==void 0)return $.data;if($.responseBody!=null)try{return JSON.parse($.responseBody)}catch(W){return $.responseBody}return{}}var nZ="ai-gateway-auth-method";async function w($){let W=await f({value:$[nZ],schema:g0});return W.success?W.value:void 0}var g0=L(()=>V(Z.union([Z.literal("api-key"),Z.literal("oidc")]))),u0=["embedding","image","language","reranking","video"],kZ=class{constructor($){this.config=$}async getAvailableModels(){try{let{value:$}=await y({url:`${this.config.baseURL}/config`,headers:await U(this.config.headers()),successfulResponseHandler:x(l0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(W)=>W}),fetch:this.config.fetch});return $}catch($){throw await H($)}}async getCredits(){try{let $=new URL(this.config.baseURL),{value:W}=await y({url:`${$.origin}/v1/credits`,headers:await U(this.config.headers()),successfulResponseHandler:x(c0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(Q)=>Q}),fetch:this.config.fetch});return W}catch($){throw await H($)}}},l0=L(()=>V(Z.object({models:Z.array(Z.object({id:Z.string(),name:Z.string(),description:Z.string().nullish(),pricing:Z.object({input:Z.string(),output:Z.string(),input_cache_read:Z.string().nullish(),input_cache_write:Z.string().nullish()}).transform(({input:$,output:W,input_cache_read:Q,input_cache_write:X})=>({input:$,output:W,...Q?{cachedInputTokens:Q}:{},...X?{cacheCreationInputTokens:X}:{}})).nullish(),specification:Z.object({specificationVersion:Z.literal("v3"),provider:Z.string(),modelId:Z.string()}),modelType:Z.string().nullish()})).transform(($)=>$.filter((W)=>W.modelType==null||u0.includes(W.modelType)))}))),c0=L(()=>V(Z.object({balance:Z.string(),total_used:Z.string()}).transform(({balance:$,total_used:W})=>({balance:$,totalUsed:W})))),_0=class{constructor($){this.config=$}async getSpendReport($){try{let W=new URL(this.config.baseURL),Q=new URLSearchParams;if(Q.set("start_date",$.startDate),Q.set("end_date",$.endDate),$.groupBy)Q.set("group_by",$.groupBy);if($.datePart)Q.set("date_part",$.datePart);if($.userId)Q.set("user_id",$.userId);if($.model)Q.set("model",$.model);if($.provider)Q.set("provider",$.provider);if($.credentialType)Q.set("credential_type",$.credentialType);if($.tags&&$.tags.length>0)Q.set("tags",$.tags.join(","));let{value:X}=await y({url:`${W.origin}/v1/report?${Q.toString()}`,headers:await U(this.config.headers()),successfulResponseHandler:x(m0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(Y)=>Y}),fetch:this.config.fetch});return X}catch(W){throw await H(W)}}},m0=L(()=>V(Z.object({results:Z.array(Z.object({day:Z.string().optional(),hour:Z.string().optional(),user:Z.string().optional(),model:Z.string().optional(),tag:Z.string().optional(),provider:Z.string().optional(),credential_type:Z.enum(["byok","system"]).optional(),total_cost:Z.number(),market_cost:Z.number().optional(),input_tokens:Z.number().optional(),output_tokens:Z.number().optional(),cached_input_tokens:Z.number().optional(),cache_creation_input_tokens:Z.number().optional(),reasoning_tokens:Z.number().optional(),request_count:Z.number().optional()}).transform(({credential_type:$,total_cost:W,market_cost:Q,input_tokens:X,output_tokens:Y,cached_input_tokens:D,cache_creation_input_tokens:N,reasoning_tokens:j,request_count:K,...F})=>({...F,...$!==void 0?{credentialType:$}:{},totalCost:W,...Q!==void 0?{marketCost:Q}:{},...X!==void 0?{inputTokens:X}:{},...Y!==void 0?{outputTokens:Y}:{},...D!==void 0?{cachedInputTokens:D}:{},...N!==void 0?{cacheCreationInputTokens:N}:{},...j!==void 0?{reasoningTokens:j}:{},...K!==void 0?{requestCount:K}:{}})))}))),p0=class{constructor($){this.config=$}async getGenerationInfo($){try{let W=new URL(this.config.baseURL),{value:Q}=await y({url:`${W.origin}/v1/generation?id=${encodeURIComponent($.id)}`,headers:await U(this.config.headers()),successfulResponseHandler:x(i0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return Q}catch(W){throw await H(W)}}},i0=L(()=>V(Z.object({data:Z.object({id:Z.string(),total_cost:Z.number(),upstream_inference_cost:Z.number(),usage:Z.number(),created_at:Z.string(),model:Z.string(),is_byok:Z.boolean(),provider_name:Z.string(),streamed:Z.boolean(),finish_reason:Z.string(),latency:Z.number(),generation_time:Z.number(),native_tokens_prompt:Z.number(),native_tokens_completion:Z.number(),native_tokens_reasoning:Z.number(),native_tokens_cached:Z.number(),native_tokens_cache_creation:Z.number(),billable_web_search_calls:Z.number()}).transform(({total_cost:$,upstream_inference_cost:W,created_at:Q,is_byok:X,provider_name:Y,finish_reason:D,generation_time:N,native_tokens_prompt:j,native_tokens_completion:K,native_tokens_reasoning:F,native_tokens_cached:q,native_tokens_cache_creation:E,billable_web_search_calls:P,...C})=>({...C,totalCost:$,upstreamInferenceCost:W,createdAt:Q,isByok:X,providerName:Y,finishReason:D,generationTime:N,promptTokens:j,completionTokens:K,reasoningTokens:F,cachedTokens:q,cacheCreationTokens:E,billableWebSearchCalls:P}))}).transform(({data:$})=>$))),d0=class{constructor($,W){this.modelId=$,this.config=W,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs($){let{abortSignal:W,...Q}=$;return{args:this.maybeEncodeFileParts(Q),warnings:[]}}async doGenerate($){let{args:W,warnings:Q}=await this.getArgs($),{abortSignal:X}=$,Y=await U(this.config.headers());try{let{responseHeaders:D,value:N,rawValue:j}=await R({url:this.getUrl(),headers:O(Y,$.headers,this.getModelConfigHeaders(this.modelId,!1),await U(this.config.o11yHeaders)),body:W,successfulResponseHandler:x(Z.any()),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(K)=>K}),...X&&{abortSignal:X},fetch:this.config.fetch});return{...N,request:{body:W},response:{headers:D,body:j},warnings:Q}}catch(D){throw await H(D,await w(Y))}}async doStream($){let{args:W,warnings:Q}=await this.getArgs($),{abortSignal:X}=$,Y=await U(this.config.headers());try{let{value:D,responseHeaders:N}=await R({url:this.getUrl(),headers:O(Y,$.headers,this.getModelConfigHeaders(this.modelId,!0),await U(this.config.o11yHeaders)),body:W,successfulResponseHandler:fZ(Z.any()),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(j)=>j}),...X&&{abortSignal:X},fetch:this.config.fetch});return{stream:D.pipeThrough(new TransformStream({start(j){if(Q.length>0)j.enqueue({type:"stream-start",warnings:Q})},transform(j,K){if(j.success){let F=j.value;if(F.type==="raw"&&!$.includeRawChunks)return;if(F.type==="response-metadata"&&F.timestamp&&typeof F.timestamp==="string")F.timestamp=new Date(F.timestamp);K.enqueue(F)}else K.error(j.error)}})),request:{body:W},response:{headers:N}}}catch(D){throw await H(D,await w(Y))}}isFilePart($){return $&&typeof $==="object"&&"type"in $&&$.type==="file"}maybeEncodeFileParts($){for(let W of $.prompt)for(let Q of W.content)if(this.isFilePart(Q)){let X=Q;if(X.data instanceof Uint8Array){let Y=Uint8Array.from(X.data),D=Buffer.from(Y).toString("base64");X.data=new URL(`data:${X.mediaType||"application/octet-stream"};base64,${D}`)}}return $}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders($,W){return{"ai-language-model-specification-version":"3","ai-language-model-id":$,"ai-language-model-streaming":String(W)}}},n0=class{constructor($,W){this.modelId=$,this.config=W,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:$,headers:W,abortSignal:Q,providerOptions:X}){var Y;let D=await U(this.config.headers());try{let{responseHeaders:N,value:j,rawValue:K}=await R({url:this.getUrl(),headers:O(D,W!=null?W:{},this.getModelConfigHeaders(),await U(this.config.o11yHeaders)),body:{values:$,...X?{providerOptions:X}:{}},successfulResponseHandler:x(s0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(F)=>F}),...Q&&{abortSignal:Q},fetch:this.config.fetch});return{embeddings:j.embeddings,usage:(Y=j.usage)!=null?Y:void 0,providerMetadata:j.providerMetadata,response:{headers:N,body:K},warnings:[]}}catch(N){throw await H(N,await w(D))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},s0=L(()=>V(Z.object({embeddings:Z.array(Z.array(Z.number())),usage:Z.object({tokens:Z.number()}).nullish(),providerMetadata:Z.record(Z.string(),Z.record(Z.string(),Z.unknown())).optional()}))),t0=class{constructor($,W){this.modelId=$,this.config=W,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:$,n:W,size:Q,aspectRatio:X,seed:Y,files:D,mask:N,providerOptions:j,headers:K,abortSignal:F}){var q,E,P,C;let b=await U(this.config.headers());try{let{responseHeaders:J,value:G,rawValue:I}=await R({url:this.getUrl(),headers:O(b,K!=null?K:{},this.getModelConfigHeaders(),await U(this.config.o11yHeaders)),body:{prompt:$,n:W,...Q&&{size:Q},...X&&{aspectRatio:X},...Y&&{seed:Y},...j&&{providerOptions:j},...D&&{files:D.map((A)=>vZ(A))},...N&&{mask:vZ(N)}},successfulResponseHandler:x(e0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(A)=>A}),...F&&{abortSignal:F},fetch:this.config.fetch});return{images:G.images,warnings:(q=G.warnings)!=null?q:[],providerMetadata:G.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:J},...G.usage!=null&&{usage:{inputTokens:(E=G.usage.inputTokens)!=null?E:void 0,outputTokens:(P=G.usage.outputTokens)!=null?P:void 0,totalTokens:(C=G.usage.totalTokens)!=null?C:void 0}}}}catch(J){throw await H(J,await w(b))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}};function vZ($){if($.type==="file"&&$.data instanceof Uint8Array)return{...$,data:u($.data)};return $}var a0=Z.object({images:Z.array(Z.unknown()).optional()}).catchall(Z.unknown()),o0=Z.discriminatedUnion("type",[Z.object({type:Z.literal("unsupported"),feature:Z.string(),details:Z.string().optional()}),Z.object({type:Z.literal("compatibility"),feature:Z.string(),details:Z.string().optional()}),Z.object({type:Z.literal("other"),message:Z.string()})]),r0=Z.object({inputTokens:Z.number().nullish(),outputTokens:Z.number().nullish(),totalTokens:Z.number().nullish()}),e0=Z.object({images:Z.array(Z.string()),warnings:Z.array(o0).optional(),providerMetadata:Z.record(Z.string(),a0).optional(),usage:r0.optional()}),Z$=class{constructor($,W){this.modelId=$,this.config=W,this.specificationVersion="v3",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:$,n:W,aspectRatio:Q,resolution:X,duration:Y,fps:D,seed:N,image:j,providerOptions:K,headers:F,abortSignal:q}){var E;let P=await U(this.config.headers());try{let{responseHeaders:C,value:b}=await R({url:this.getUrl(),headers:O(P,F!=null?F:{},this.getModelConfigHeaders(),await U(this.config.o11yHeaders),{accept:"text/event-stream"}),body:{prompt:$,n:W,...Q&&{aspectRatio:Q},...X&&{resolution:X},...Y&&{duration:Y},...D&&{fps:D},...N&&{seed:N},...K&&{providerOptions:K},...j&&{image:$$(j)}},successfulResponseHandler:async({response:J,url:G,requestBodyValues:I})=>{if(J.body==null)throw new v({message:"SSE response body is empty",url:G,requestBodyValues:I,statusCode:J.status});let M=hZ({stream:J.body,schema:Y$}).getReader(),{done:k,value:S}=await M.read();if(M.releaseLock(),k||!S)throw new v({message:"SSE stream ended without a data event",url:G,requestBodyValues:I,statusCode:J.status});if(!S.success)throw new v({message:"Failed to parse video SSE event",cause:S.error,url:G,requestBodyValues:I,statusCode:J.status});let T=S.value;if(T.type==="error")throw new v({message:T.message,statusCode:T.statusCode,url:G,requestBodyValues:I,responseHeaders:Object.fromEntries([...J.headers]),responseBody:JSON.stringify(T),data:{error:{message:T.message,type:T.errorType,param:T.param}}});return{value:{videos:T.videos,warnings:T.warnings,providerMetadata:T.providerMetadata},responseHeaders:Object.fromEntries([...J.headers])}},failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(J)=>J}),...q&&{abortSignal:q},fetch:this.config.fetch});return{videos:b.videos,warnings:(E=b.warnings)!=null?E:[],providerMetadata:b.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:C}}}catch(C){throw await H(C,await w(P))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"3","ai-model-id":this.modelId}}};function $$($){if($.type==="file"&&$.data instanceof Uint8Array)return{...$,data:u($.data)};return $}var W$=Z.object({videos:Z.array(Z.unknown()).optional()}).catchall(Z.unknown()),Q$=Z.union([Z.object({type:Z.literal("url"),url:Z.string(),mediaType:Z.string()}),Z.object({type:Z.literal("base64"),data:Z.string(),mediaType:Z.string()})]),X$=Z.discriminatedUnion("type",[Z.object({type:Z.literal("unsupported"),feature:Z.string(),details:Z.string().optional()}),Z.object({type:Z.literal("compatibility"),feature:Z.string(),details:Z.string().optional()}),Z.object({type:Z.literal("other"),message:Z.string()})]),Y$=Z.discriminatedUnion("type",[Z.object({type:Z.literal("result"),videos:Z.array(Q$),warnings:Z.array(X$).optional(),providerMetadata:Z.record(Z.string(),W$).optional()}),Z.object({type:Z.literal("error"),message:Z.string(),errorType:Z.string(),statusCode:Z.number(),param:Z.unknown().nullable()})]),j$=class{constructor($,W){this.modelId=$,this.config=W,this.specificationVersion="v3"}get provider(){return this.config.provider}async doRerank({documents:$,query:W,topN:Q,headers:X,abortSignal:Y,providerOptions:D}){let N=await U(this.config.headers());try{let{responseHeaders:j,value:K,rawValue:F}=await R({url:this.getUrl(),headers:O(N,X!=null?X:{},this.getModelConfigHeaders(),await U(this.config.o11yHeaders)),body:{documents:$,query:W,...Q!=null?{topN:Q}:{},...D?{providerOptions:D}:{}},successfulResponseHandler:x(D$),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(q)=>q}),...Y&&{abortSignal:Y},fetch:this.config.fetch});return{ranking:K.ranking,providerMetadata:K.providerMetadata,response:{headers:j,body:F},warnings:[]}}catch(j){throw await H(j,await w(N))}}getUrl(){return`${this.config.baseURL}/reranking-model`}getModelConfigHeaders(){return{"ai-reranking-model-specification-version":"3","ai-model-id":this.modelId}}},D$=L(()=>V(Z.object({ranking:Z.array(Z.object({index:Z.number(),relevanceScore:Z.number()})),providerMetadata:Z.record(Z.string(),Z.record(Z.string(),Z.unknown())).optional()}))),K$=L(()=>V(Z.object({objective:Z.string().describe("Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."),search_queries:Z.array(Z.string()).optional().describe("Optional search queries to supplement the objective. Maximum 200 characters per query."),mode:Z.enum(["one-shot","agentic"]).optional().describe('Mode preset: "one-shot" for comprehensive results with longer excerpts (default), "agentic" for concise, token-efficient results for multi-step workflows.'),max_results:Z.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:Z.object({include_domains:Z.array(Z.string()).optional().describe("List of domains to include in search results."),exclude_domains:Z.array(Z.string()).optional().describe("List of domains to exclude from search results."),after_date:Z.string().optional().describe("Only include results published after this date (ISO 8601 format).")}).optional().describe("Source policy for controlling which domains to include/exclude and freshness."),excerpts:Z.object({max_chars_per_result:Z.number().optional().describe("Maximum characters per result."),max_chars_total:Z.number().optional().describe("Maximum total characters across all results.")}).optional().describe("Excerpt configuration for controlling result length."),fetch_policy:Z.object({max_age_seconds:Z.number().optional().describe("Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.")}).optional().describe("Fetch policy for controlling content freshness.")}))),J$=L(()=>V(Z.union([Z.object({searchId:Z.string(),results:Z.array(Z.object({url:Z.string(),title:Z.string(),excerpt:Z.string(),publishDate:Z.string().nullable().optional(),relevanceScore:Z.number().optional()}))}),Z.object({error:Z.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","unknown"]),statusCode:Z.number().optional(),message:Z.string()})]))),A$=l({id:"gateway.parallel_search",inputSchema:K$,outputSchema:J$}),F$=($={})=>A$($),N$=L(()=>V(Z.object({query:Z.union([Z.string(),Z.array(Z.string())]).describe("Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."),max_results:Z.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:Z.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:Z.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:Z.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:Z.array(Z.string()).optional().describe("List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']"),search_language_filter:Z.array(Z.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:Z.string().optional().describe("Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),search_before_date:Z.string().optional().describe("Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),last_updated_after_filter:Z.string().optional().describe("Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),last_updated_before_filter:Z.string().optional().describe("Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),search_recency_filter:Z.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")}))),U$=L(()=>V(Z.union([Z.object({results:Z.array(Z.object({title:Z.string(),url:Z.string(),snippet:Z.string(),date:Z.string().optional(),lastUpdated:Z.string().optional()})),id:Z.string()}),Z.object({error:Z.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:Z.number().optional(),message:Z.string()})]))),L$=l({id:"gateway.perplexity_search",inputSchema:N$,outputSchema:U$}),V$=($={})=>L$($),q$={parallelSearch:F$,perplexitySearch:V$};async function T$(){var $;return($=sZ.getContext().headers)==null?void 0:$["x-vercel-id"]}var B$="3.0.104",G$="0.0.1";function x$($={}){var W,Q;let X=null,Y=null,D=(W=$.metadataCacheRefreshMillis)!=null?W:300000,N=0,j=(Q=gZ($.baseURL))!=null?Q:"https://ai-gateway.vercel.sh/v3/ai",K=async()=>{try{let A=await z$($);return yZ({Authorization:`Bearer ${A.token}`,"ai-gateway-protocol-version":G$,[nZ]:A.authMethod,...$.headers},`ai-sdk/gateway/${B$}`)}catch(A){throw lZ.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:A})}},F=()=>{let A=h({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),M=h({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),k=h({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),S=h({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{let T=await T$();return{...A&&{"ai-o11y-deployment-id":A},...M&&{"ai-o11y-environment":M},...k&&{"ai-o11y-region":k},...T&&{"ai-o11y-request-id":T},...S&&{"ai-o11y-project-id":S}}}},q=(A)=>{return new d0(A,{provider:"gateway",baseURL:j,headers:K,fetch:$.fetch,o11yHeaders:F()})},E=async()=>{var A,M,k;let S=(k=(M=(A=$._internal)==null?void 0:A.currentDate)==null?void 0:M.call(A).getTime())!=null?k:Date.now();if(!X||S-N>D)N=S,X=new kZ({baseURL:j,headers:K,fetch:$.fetch}).getAvailableModels().then((T)=>{return Y=T,T}).catch(async(T)=>{throw await H(T,await w(await K()))});return Y?Promise.resolve(Y):X},P=async()=>{return new kZ({baseURL:j,headers:K,fetch:$.fetch}).getCredits().catch(async(A)=>{throw await H(A,await w(await K()))})},C=async(A)=>{return new _0({baseURL:j,headers:K,fetch:$.fetch}).getSpendReport(A).catch(async(M)=>{throw await H(M,await w(await K()))})},b=async(A)=>{return new p0({baseURL:j,headers:K,fetch:$.fetch}).getGenerationInfo(A).catch(async(M)=>{throw await H(M,await w(await K()))})},J=function(A){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return q(A)};J.specificationVersion="v3",J.getAvailableModels=E,J.getCredits=P,J.getSpendReport=C,J.getGenerationInfo=b,J.imageModel=(A)=>{return new t0(A,{provider:"gateway",baseURL:j,headers:K,fetch:$.fetch,o11yHeaders:F()})},J.languageModel=q;let G=(A)=>{return new n0(A,{provider:"gateway",baseURL:j,headers:K,fetch:$.fetch,o11yHeaders:F()})};J.embeddingModel=G,J.textEmbeddingModel=G,J.videoModel=(A)=>{return new Z$(A,{provider:"gateway",baseURL:j,headers:K,fetch:$.fetch,o11yHeaders:F()})};let I=(A)=>{return new j$(A,{provider:"gateway",baseURL:j,headers:K,fetch:$.fetch,o11yHeaders:F()})};return J.rerankingModel=I,J.reranking=I,J.chat=J.languageModel,J.embedding=J.embeddingModel,J.image=J.imageModel,J.video=J.videoModel,J.tools=q$,J}var $W=x$();async function z$($){let W=h({settingValue:$.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(W)return{token:W,authMethod:"api-key"};return{token:await tZ.getVercelOidcToken(),authMethod:"oidc"}}export{z as Dp,lZ as Ep,R0 as Fp,S0 as Gp,b0 as Hp,HZ as Ip,v0 as Jp,x$ as Kp,$W as Lp};
20
+ This is a client-side timeout. To resolve this, increase your timeout configuration: https://vercel.com/docs/ai-gateway/capabilities/video-generation#extending-timeouts-for-node.js`;return new $({message:D,statusCode:Q,cause:X,generationId:Y})}};function IZ($){if(!($ instanceof Error))return!1;let W=$.code;if(typeof W==="string")return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(W);return!1}async function H($,W){var Q;if(z.isInstance($))return $;if(IZ($))return bZ.createTimeoutError({originalMessage:$ instanceof Error?$.message:"Unknown error",cause:$});if(v.isInstance($)){if($.cause&&IZ($.cause))return bZ.createTimeoutError({originalMessage:$.message,cause:$});return await CZ({response:f0($),statusCode:(Q=$.statusCode)!=null?Q:500,defaultMessage:"Gateway request failed",cause:$,authMethod:W})}return await CZ({response:{},statusCode:500,defaultMessage:$ instanceof Error?`Gateway request failed: ${$.message}`:"Unknown Gateway error",cause:$,authMethod:W})}function f0($){if($.data!==void 0)return $.data;if($.responseBody!=null)try{return JSON.parse($.responseBody)}catch(W){return $.responseBody}return{}}var nZ="ai-gateway-auth-method";async function w($){let W=await f({value:$[nZ],schema:g0});return W.success?W.value:void 0}var g0=L(()=>V(Z.union([Z.literal("api-key"),Z.literal("oidc")]))),u0=["embedding","image","language","reranking","video"],kZ=class{constructor($){this.config=$}async getAvailableModels(){try{let{value:$}=await y({url:`${this.config.baseURL}/config`,headers:await U(this.config.headers()),successfulResponseHandler:x(l0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(W)=>W}),fetch:this.config.fetch});return $}catch($){throw await H($)}}async getCredits(){try{let $=new URL(this.config.baseURL),{value:W}=await y({url:`${$.origin}/v1/credits`,headers:await U(this.config.headers()),successfulResponseHandler:x(c0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(Q)=>Q}),fetch:this.config.fetch});return W}catch($){throw await H($)}}},l0=L(()=>V(Z.object({models:Z.array(Z.object({id:Z.string(),name:Z.string(),description:Z.string().nullish(),pricing:Z.object({input:Z.string(),output:Z.string(),input_cache_read:Z.string().nullish(),input_cache_write:Z.string().nullish()}).transform(({input:$,output:W,input_cache_read:Q,input_cache_write:X})=>({input:$,output:W,...Q?{cachedInputTokens:Q}:{},...X?{cacheCreationInputTokens:X}:{}})).nullish(),specification:Z.object({specificationVersion:Z.literal("v3"),provider:Z.string(),modelId:Z.string()}),modelType:Z.string().nullish()})).transform(($)=>$.filter((W)=>W.modelType==null||u0.includes(W.modelType)))}))),c0=L(()=>V(Z.object({balance:Z.string(),total_used:Z.string()}).transform(({balance:$,total_used:W})=>({balance:$,totalUsed:W})))),_0=class{constructor($){this.config=$}async getSpendReport($){try{let W=new URL(this.config.baseURL),Q=new URLSearchParams;if(Q.set("start_date",$.startDate),Q.set("end_date",$.endDate),$.groupBy)Q.set("group_by",$.groupBy);if($.datePart)Q.set("date_part",$.datePart);if($.userId)Q.set("user_id",$.userId);if($.model)Q.set("model",$.model);if($.provider)Q.set("provider",$.provider);if($.credentialType)Q.set("credential_type",$.credentialType);if($.tags&&$.tags.length>0)Q.set("tags",$.tags.join(","));let{value:X}=await y({url:`${W.origin}/v1/report?${Q.toString()}`,headers:await U(this.config.headers()),successfulResponseHandler:x(m0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(Y)=>Y}),fetch:this.config.fetch});return X}catch(W){throw await H(W)}}},m0=L(()=>V(Z.object({results:Z.array(Z.object({day:Z.string().optional(),hour:Z.string().optional(),user:Z.string().optional(),model:Z.string().optional(),tag:Z.string().optional(),provider:Z.string().optional(),credential_type:Z.enum(["byok","system"]).optional(),total_cost:Z.number(),market_cost:Z.number().optional(),input_tokens:Z.number().optional(),output_tokens:Z.number().optional(),cached_input_tokens:Z.number().optional(),cache_creation_input_tokens:Z.number().optional(),reasoning_tokens:Z.number().optional(),request_count:Z.number().optional()}).transform(({credential_type:$,total_cost:W,market_cost:Q,input_tokens:X,output_tokens:Y,cached_input_tokens:D,cache_creation_input_tokens:N,reasoning_tokens:j,request_count:K,...F})=>({...F,...$!==void 0?{credentialType:$}:{},totalCost:W,...Q!==void 0?{marketCost:Q}:{},...X!==void 0?{inputTokens:X}:{},...Y!==void 0?{outputTokens:Y}:{},...D!==void 0?{cachedInputTokens:D}:{},...N!==void 0?{cacheCreationInputTokens:N}:{},...j!==void 0?{reasoningTokens:j}:{},...K!==void 0?{requestCount:K}:{}})))}))),p0=class{constructor($){this.config=$}async getGenerationInfo($){try{let W=new URL(this.config.baseURL),{value:Q}=await y({url:`${W.origin}/v1/generation?id=${encodeURIComponent($.id)}`,headers:await U(this.config.headers()),successfulResponseHandler:x(i0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(X)=>X}),fetch:this.config.fetch});return Q}catch(W){throw await H(W)}}},i0=L(()=>V(Z.object({data:Z.object({id:Z.string(),total_cost:Z.number(),upstream_inference_cost:Z.number(),usage:Z.number(),created_at:Z.string(),model:Z.string(),is_byok:Z.boolean(),provider_name:Z.string(),streamed:Z.boolean(),finish_reason:Z.string(),latency:Z.number(),generation_time:Z.number(),native_tokens_prompt:Z.number(),native_tokens_completion:Z.number(),native_tokens_reasoning:Z.number(),native_tokens_cached:Z.number(),native_tokens_cache_creation:Z.number(),billable_web_search_calls:Z.number()}).transform(({total_cost:$,upstream_inference_cost:W,created_at:Q,is_byok:X,provider_name:Y,finish_reason:D,generation_time:N,native_tokens_prompt:j,native_tokens_completion:K,native_tokens_reasoning:F,native_tokens_cached:q,native_tokens_cache_creation:E,billable_web_search_calls:P,...C})=>({...C,totalCost:$,upstreamInferenceCost:W,createdAt:Q,isByok:X,providerName:Y,finishReason:D,generationTime:N,promptTokens:j,completionTokens:K,reasoningTokens:F,cachedTokens:q,cacheCreationTokens:E,billableWebSearchCalls:P}))}).transform(({data:$})=>$))),d0=class{constructor($,W){this.modelId=$,this.config=W,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs($){let{abortSignal:W,...Q}=$;return{args:this.maybeEncodeFileParts(Q),warnings:[]}}async doGenerate($){let{args:W,warnings:Q}=await this.getArgs($),{abortSignal:X}=$,Y=await U(this.config.headers());try{let{responseHeaders:D,value:N,rawValue:j}=await R({url:this.getUrl(),headers:O(Y,$.headers,this.getModelConfigHeaders(this.modelId,!1),await U(this.config.o11yHeaders)),body:W,successfulResponseHandler:x(Z.any()),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(K)=>K}),...X&&{abortSignal:X},fetch:this.config.fetch});return{...N,request:{body:W},response:{headers:D,body:j},warnings:Q}}catch(D){throw await H(D,await w(Y))}}async doStream($){let{args:W,warnings:Q}=await this.getArgs($),{abortSignal:X}=$,Y=await U(this.config.headers());try{let{value:D,responseHeaders:N}=await R({url:this.getUrl(),headers:O(Y,$.headers,this.getModelConfigHeaders(this.modelId,!0),await U(this.config.o11yHeaders)),body:W,successfulResponseHandler:fZ(Z.any()),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(j)=>j}),...X&&{abortSignal:X},fetch:this.config.fetch});return{stream:D.pipeThrough(new TransformStream({start(j){if(Q.length>0)j.enqueue({type:"stream-start",warnings:Q})},transform(j,K){if(j.success){let F=j.value;if(F.type==="raw"&&!$.includeRawChunks)return;if(F.type==="response-metadata"&&F.timestamp&&typeof F.timestamp==="string")F.timestamp=new Date(F.timestamp);K.enqueue(F)}else K.error(j.error)}})),request:{body:W},response:{headers:N}}}catch(D){throw await H(D,await w(Y))}}isFilePart($){return $&&typeof $==="object"&&"type"in $&&$.type==="file"}maybeEncodeFileParts($){for(let W of $.prompt)for(let Q of W.content)if(this.isFilePart(Q)){let X=Q;if(X.data instanceof Uint8Array){let Y=Uint8Array.from(X.data),D=Buffer.from(Y).toString("base64");X.data=new URL(`data:${X.mediaType||"application/octet-stream"};base64,${D}`)}}return $}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders($,W){return{"ai-language-model-specification-version":"3","ai-language-model-id":$,"ai-language-model-streaming":String(W)}}},n0=class{constructor($,W){this.modelId=$,this.config=W,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:$,headers:W,abortSignal:Q,providerOptions:X}){var Y;let D=await U(this.config.headers());try{let{responseHeaders:N,value:j,rawValue:K}=await R({url:this.getUrl(),headers:O(D,W!=null?W:{},this.getModelConfigHeaders(),await U(this.config.o11yHeaders)),body:{values:$,...X?{providerOptions:X}:{}},successfulResponseHandler:x(s0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(F)=>F}),...Q&&{abortSignal:Q},fetch:this.config.fetch});return{embeddings:j.embeddings,usage:(Y=j.usage)!=null?Y:void 0,providerMetadata:j.providerMetadata,response:{headers:N,body:K},warnings:[]}}catch(N){throw await H(N,await w(D))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},s0=L(()=>V(Z.object({embeddings:Z.array(Z.array(Z.number())),usage:Z.object({tokens:Z.number()}).nullish(),providerMetadata:Z.record(Z.string(),Z.record(Z.string(),Z.unknown())).optional()}))),t0=class{constructor($,W){this.modelId=$,this.config=W,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:$,n:W,size:Q,aspectRatio:X,seed:Y,files:D,mask:N,providerOptions:j,headers:K,abortSignal:F}){var q,E,P,C;let b=await U(this.config.headers());try{let{responseHeaders:J,value:G,rawValue:I}=await R({url:this.getUrl(),headers:O(b,K!=null?K:{},this.getModelConfigHeaders(),await U(this.config.o11yHeaders)),body:{prompt:$,n:W,...Q&&{size:Q},...X&&{aspectRatio:X},...Y&&{seed:Y},...j&&{providerOptions:j},...D&&{files:D.map((A)=>vZ(A))},...N&&{mask:vZ(N)}},successfulResponseHandler:x(e0),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(A)=>A}),...F&&{abortSignal:F},fetch:this.config.fetch});return{images:G.images,warnings:(q=G.warnings)!=null?q:[],providerMetadata:G.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:J},...G.usage!=null&&{usage:{inputTokens:(E=G.usage.inputTokens)!=null?E:void 0,outputTokens:(P=G.usage.outputTokens)!=null?P:void 0,totalTokens:(C=G.usage.totalTokens)!=null?C:void 0}}}}catch(J){throw await H(J,await w(b))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}};function vZ($){if($.type==="file"&&$.data instanceof Uint8Array)return{...$,data:u($.data)};return $}var a0=Z.object({images:Z.array(Z.unknown()).optional()}).catchall(Z.unknown()),o0=Z.discriminatedUnion("type",[Z.object({type:Z.literal("unsupported"),feature:Z.string(),details:Z.string().optional()}),Z.object({type:Z.literal("compatibility"),feature:Z.string(),details:Z.string().optional()}),Z.object({type:Z.literal("other"),message:Z.string()})]),r0=Z.object({inputTokens:Z.number().nullish(),outputTokens:Z.number().nullish(),totalTokens:Z.number().nullish()}),e0=Z.object({images:Z.array(Z.string()),warnings:Z.array(o0).optional(),providerMetadata:Z.record(Z.string(),a0).optional(),usage:r0.optional()}),Z$=class{constructor($,W){this.modelId=$,this.config=W,this.specificationVersion="v3",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:$,n:W,aspectRatio:Q,resolution:X,duration:Y,fps:D,seed:N,image:j,providerOptions:K,headers:F,abortSignal:q}){var E;let P=await U(this.config.headers());try{let{responseHeaders:C,value:b}=await R({url:this.getUrl(),headers:O(P,F!=null?F:{},this.getModelConfigHeaders(),await U(this.config.o11yHeaders),{accept:"text/event-stream"}),body:{prompt:$,n:W,...Q&&{aspectRatio:Q},...X&&{resolution:X},...Y&&{duration:Y},...D&&{fps:D},...N&&{seed:N},...K&&{providerOptions:K},...j&&{image:$$(j)}},successfulResponseHandler:async({response:J,url:G,requestBodyValues:I})=>{if(J.body==null)throw new v({message:"SSE response body is empty",url:G,requestBodyValues:I,statusCode:J.status});let M=hZ({stream:J.body,schema:Y$}).getReader(),{done:k,value:S}=await M.read();if(M.releaseLock(),k||!S)throw new v({message:"SSE stream ended without a data event",url:G,requestBodyValues:I,statusCode:J.status});if(!S.success)throw new v({message:"Failed to parse video SSE event",cause:S.error,url:G,requestBodyValues:I,statusCode:J.status});let T=S.value;if(T.type==="error")throw new v({message:T.message,statusCode:T.statusCode,url:G,requestBodyValues:I,responseHeaders:Object.fromEntries([...J.headers]),responseBody:JSON.stringify(T),data:{error:{message:T.message,type:T.errorType,param:T.param}}});return{value:{videos:T.videos,warnings:T.warnings,providerMetadata:T.providerMetadata},responseHeaders:Object.fromEntries([...J.headers])}},failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(J)=>J}),...q&&{abortSignal:q},fetch:this.config.fetch});return{videos:b.videos,warnings:(E=b.warnings)!=null?E:[],providerMetadata:b.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:C}}}catch(C){throw await H(C,await w(P))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"3","ai-model-id":this.modelId}}};function $$($){if($.type==="file"&&$.data instanceof Uint8Array)return{...$,data:u($.data)};return $}var W$=Z.object({videos:Z.array(Z.unknown()).optional()}).catchall(Z.unknown()),Q$=Z.union([Z.object({type:Z.literal("url"),url:Z.string(),mediaType:Z.string()}),Z.object({type:Z.literal("base64"),data:Z.string(),mediaType:Z.string()})]),X$=Z.discriminatedUnion("type",[Z.object({type:Z.literal("unsupported"),feature:Z.string(),details:Z.string().optional()}),Z.object({type:Z.literal("compatibility"),feature:Z.string(),details:Z.string().optional()}),Z.object({type:Z.literal("other"),message:Z.string()})]),Y$=Z.discriminatedUnion("type",[Z.object({type:Z.literal("result"),videos:Z.array(Q$),warnings:Z.array(X$).optional(),providerMetadata:Z.record(Z.string(),W$).optional()}),Z.object({type:Z.literal("error"),message:Z.string(),errorType:Z.string(),statusCode:Z.number(),param:Z.unknown().nullable()})]),j$=class{constructor($,W){this.modelId=$,this.config=W,this.specificationVersion="v3"}get provider(){return this.config.provider}async doRerank({documents:$,query:W,topN:Q,headers:X,abortSignal:Y,providerOptions:D}){let N=await U(this.config.headers());try{let{responseHeaders:j,value:K,rawValue:F}=await R({url:this.getUrl(),headers:O(N,X!=null?X:{},this.getModelConfigHeaders(),await U(this.config.o11yHeaders)),body:{documents:$,query:W,...Q!=null?{topN:Q}:{},...D?{providerOptions:D}:{}},successfulResponseHandler:x(D$),failedResponseHandler:B({errorSchema:Z.any(),errorToMessage:(q)=>q}),...Y&&{abortSignal:Y},fetch:this.config.fetch});return{ranking:K.ranking,providerMetadata:K.providerMetadata,response:{headers:j,body:F},warnings:[]}}catch(j){throw await H(j,await w(N))}}getUrl(){return`${this.config.baseURL}/reranking-model`}getModelConfigHeaders(){return{"ai-reranking-model-specification-version":"3","ai-model-id":this.modelId}}},D$=L(()=>V(Z.object({ranking:Z.array(Z.object({index:Z.number(),relevanceScore:Z.number()})),providerMetadata:Z.record(Z.string(),Z.record(Z.string(),Z.unknown())).optional()}))),K$=L(()=>V(Z.object({objective:Z.string().describe("Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."),search_queries:Z.array(Z.string()).optional().describe("Optional search queries to supplement the objective. Maximum 200 characters per query."),mode:Z.enum(["one-shot","agentic"]).optional().describe('Mode preset: "one-shot" for comprehensive results with longer excerpts (default), "agentic" for concise, token-efficient results for multi-step workflows.'),max_results:Z.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:Z.object({include_domains:Z.array(Z.string()).optional().describe("List of domains to include in search results."),exclude_domains:Z.array(Z.string()).optional().describe("List of domains to exclude from search results."),after_date:Z.string().optional().describe("Only include results published after this date (ISO 8601 format).")}).optional().describe("Source policy for controlling which domains to include/exclude and freshness."),excerpts:Z.object({max_chars_per_result:Z.number().optional().describe("Maximum characters per result."),max_chars_total:Z.number().optional().describe("Maximum total characters across all results.")}).optional().describe("Excerpt configuration for controlling result length."),fetch_policy:Z.object({max_age_seconds:Z.number().optional().describe("Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.")}).optional().describe("Fetch policy for controlling content freshness.")}))),J$=L(()=>V(Z.union([Z.object({searchId:Z.string(),results:Z.array(Z.object({url:Z.string(),title:Z.string(),excerpt:Z.string(),publishDate:Z.string().nullable().optional(),relevanceScore:Z.number().optional()}))}),Z.object({error:Z.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","unknown"]),statusCode:Z.number().optional(),message:Z.string()})]))),A$=l({id:"gateway.parallel_search",inputSchema:K$,outputSchema:J$}),F$=($={})=>A$($),N$=L(()=>V(Z.object({query:Z.union([Z.string(),Z.array(Z.string())]).describe("Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."),max_results:Z.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:Z.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:Z.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:Z.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:Z.array(Z.string()).optional().describe("List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']"),search_language_filter:Z.array(Z.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:Z.string().optional().describe("Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),search_before_date:Z.string().optional().describe("Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),last_updated_after_filter:Z.string().optional().describe("Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter."),last_updated_before_filter:Z.string().optional().describe("Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter."),search_recency_filter:Z.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")}))),U$=L(()=>V(Z.union([Z.object({results:Z.array(Z.object({title:Z.string(),url:Z.string(),snippet:Z.string(),date:Z.string().optional(),lastUpdated:Z.string().optional()})),id:Z.string()}),Z.object({error:Z.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:Z.number().optional(),message:Z.string()})]))),L$=l({id:"gateway.perplexity_search",inputSchema:N$,outputSchema:U$}),V$=($={})=>L$($),q$={parallelSearch:F$,perplexitySearch:V$};async function T$(){var $;return($=sZ.getContext().headers)==null?void 0:$["x-vercel-id"]}var B$="3.0.104",G$="0.0.1";function x$($={}){var W,Q;let X=null,Y=null,D=(W=$.metadataCacheRefreshMillis)!=null?W:300000,N=0,j=(Q=gZ($.baseURL))!=null?Q:"https://ai-gateway.vercel.sh/v3/ai",K=async()=>{try{let A=await z$($);return yZ({Authorization:`Bearer ${A.token}`,"ai-gateway-protocol-version":G$,[nZ]:A.authMethod,...$.headers},`ai-sdk/gateway/${B$}`)}catch(A){throw lZ.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:A})}},F=()=>{let A=h({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),M=h({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),k=h({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),S=h({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{let T=await T$();return{...A&&{"ai-o11y-deployment-id":A},...M&&{"ai-o11y-environment":M},...k&&{"ai-o11y-region":k},...T&&{"ai-o11y-request-id":T},...S&&{"ai-o11y-project-id":S}}}},q=(A)=>{return new d0(A,{provider:"gateway",baseURL:j,headers:K,fetch:$.fetch,o11yHeaders:F()})},E=async()=>{var A,M,k;let S=(k=(M=(A=$._internal)==null?void 0:A.currentDate)==null?void 0:M.call(A).getTime())!=null?k:Date.now();if(!X||S-N>D)N=S,X=new kZ({baseURL:j,headers:K,fetch:$.fetch}).getAvailableModels().then((T)=>{return Y=T,T}).catch(async(T)=>{throw await H(T,await w(await K()))});return Y?Promise.resolve(Y):X},P=async()=>{return new kZ({baseURL:j,headers:K,fetch:$.fetch}).getCredits().catch(async(A)=>{throw await H(A,await w(await K()))})},C=async(A)=>{return new _0({baseURL:j,headers:K,fetch:$.fetch}).getSpendReport(A).catch(async(M)=>{throw await H(M,await w(await K()))})},b=async(A)=>{return new p0({baseURL:j,headers:K,fetch:$.fetch}).getGenerationInfo(A).catch(async(M)=>{throw await H(M,await w(await K()))})},J=function(A){if(new.target)throw Error("The Gateway Provider model function cannot be called with the new keyword.");return q(A)};J.specificationVersion="v3",J.getAvailableModels=E,J.getCredits=P,J.getSpendReport=C,J.getGenerationInfo=b,J.imageModel=(A)=>{return new t0(A,{provider:"gateway",baseURL:j,headers:K,fetch:$.fetch,o11yHeaders:F()})},J.languageModel=q;let G=(A)=>{return new n0(A,{provider:"gateway",baseURL:j,headers:K,fetch:$.fetch,o11yHeaders:F()})};J.embeddingModel=G,J.textEmbeddingModel=G,J.videoModel=(A)=>{return new Z$(A,{provider:"gateway",baseURL:j,headers:K,fetch:$.fetch,o11yHeaders:F()})};let I=(A)=>{return new j$(A,{provider:"gateway",baseURL:j,headers:K,fetch:$.fetch,o11yHeaders:F()})};return J.rerankingModel=I,J.reranking=I,J.chat=J.languageModel,J.embedding=J.embeddingModel,J.image=J.imageModel,J.video=J.videoModel,J.tools=q$,J}var $W=x$();async function z$($){let W=h({settingValue:$.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(W)return{token:W,authMethod:"api-key"};return{token:await tZ.getVercelOidcToken(),authMethod:"oidc"}}export{z as go,lZ as ho,R0 as io,S0 as jo,b0 as ko,HZ as lo,v0 as mo,x$ as no,$W as oo};
@@ -0,0 +1,28 @@
1
+ // @bun
2
+ import{of as UH}from"./chunk-mxhb5adq.js";import{Oo as jH,so as GH,wo as e}from"./chunk-7myg8076.js";import"./chunk-my3cswnp.js";import"./chunk-4mvg7jt1.js";import"./chunk-cqtkxwd8.js";import"./chunk-wf4x5cjc.js";import"./chunk-hmznf0ax.js";import"./chunk-qf1dqzra.js";import"./chunk-03mbn7nj.js";import{ts as P}from"./chunk-9nn4jpb7.js";import"./chunk-sh76e256.js";import{Xs as NH}from"./chunk-0z1cxvk1.js";import{et as o,mt as DH}from"./chunk-x3afqfww.js";import"./chunk-cbmwhvxw.js";import"./chunk-9etpppyv.js";import"./chunk-9ea1n338.js";import"./chunk-ngvp6zc2.js";import"./chunk-1p6jjrea.js";import"./chunk-ks1cs80p.js";import"./chunk-f83wv08n.js";var EH=0.9,RH=256,$H="[Earlier tool result removed to fit the request size limit]",u;function v(H){return Buffer.byteLength(JSON.stringify(H),"utf8")}function XH(){return o.QITQODE_QLEX_MAX_REQUEST_BYTES??u}function a(H){let Z=o.QITQODE_QLEX_MAX_REQUEST_BYTES;if(Z!==void 0)return Z;let $=Math.max(1,Math.min(Math.floor(H*EH),Math.floor(H)-1));return u=u===void 0?$:Math.min(u,$),u}function c(H,Z){return!!H&&typeof H==="object"&&H.role===Z}function JH(H){let Z=[],$=0;while($<H.length){let J=$,K=H[$];if($++,c(K,"assistant")&&Array.isArray(K?.tool_calls)&&K.tool_calls.length>0)while($<H.length&&c(H[$],"tool"))$++;Z.push({start:J,end:$})}return Z}function KH(H,Z){if(Z.length===0)return[];let $=-1;for(let J=Z.length-1;J>=0;J--){let K=Z[J],z=!1;for(let X=K.start;X<K.end;X++)if(c(H[X],"user"))z=!0;if(z){$=J;break}}return Z.filter((J,K)=>{if(K===Z.length-1)return!1;if(K===$)return!1;if(J.start===0&&c(H[0],"system"))return!1;return!0})}function s(H,Z){let $=v(H),J={toolResultsElided:0,unitsDropped:0},K=()=>({body:H,bytes:$,originalBytes:$,reduced:!1,actions:J});if(!H||typeof H!=="object")return K();let z=H.messages;if(!Array.isArray(z))return K();let X=z.map((U)=>U&&typeof U==="object"?{...U}:U),Y=()=>({...H,messages:X}),D=()=>v(Y())<=Z;{let U=X;for(let _ of KH(U,JH(U))){let q=!1;for(let k=_.start;k<_.end;k++){let w=U[k];if(!c(w,"tool"))continue;let R=w?.content;if(typeof R!=="string"||R.length<RH)continue;if(R===$H)continue;U[k]={...w,content:$H},J.toolResultsElided++,q=!0}if(q&&D())break}}if(!D())for(;;){let U=X,q=KH(U,JH(U))[0];if(!q)break;if(X=[...U.slice(0,q.start),...U.slice(q.end)],J.unitsDropped++,D())break}let N=Y(),W=v(N);return{body:N,bytes:W,originalBytes:$,reduced:W<$&&W<=Z,actions:J}}var M=DH({service:"provider.qlex"}),CH=P.streamUrl(),IH=P.omniqueryBaseUrl()+"/runOrchestrated";function b(H,Z){let $=H;if(Z.status!==void 0)$.status=Z.status;if(Z.upstreamCode!==void 0)$.upstreamCode=Z.upstreamCode;if(Z.requestId!==void 0)$.requestId=Z.requestId;if($.category=Z.category,$.retryable=Z.retryable,Z.outputBudgetRecoveryAvailable!==void 0)$.outputBudgetRecoveryAvailable=Z.outputBudgetRecoveryAvailable;if(Z.outputBudgetRecoveryTokens!==void 0)$.outputBudgetRecoveryTokens=Z.outputBudgetRecoveryTokens}function x(H,Z){return{...H,...Z}}class _H extends Error{name="QlexNotLoggedInError";constructor(H){super(P.copy().notLoggedIn);b(this,x({category:"invalid_credentials",retryable:!1},H))}}class FH extends Error{name="QlexInsufficientBalanceError";constructor(H,Z){super(P.copy().insufficientBalance(H));b(this,x({status:402,category:"billing",retryable:!1},Z))}}class OH extends Error{name="QlexRateLimitError";constructor(H){super(P.copy().rateLimit);b(this,x({status:429,category:"rate_limited",retryable:!0},H))}}class LH extends Error{name="QlexInvalidCredentialsError";constructor(H,Z){super(P.copy().invalidCredentials(H));b(this,x({status:401,category:"invalid_credentials",retryable:!1},Z))}}class qH extends Error{name="QlexRequestRejectedError";constructor(H,Z,$){super(P.copy().requestRejected(H,Z));b(this,x({status:400,category:"request_rejected",retryable:!1},$))}}class n extends Error{name="QlexRequestTooLargeError";stage;constructor(H="irreducible",Z,$){super(H==="after-reduction"?P.copy().requestTooLargeAfterReduction(Z):P.copy().requestTooLargeIrreducible(Z));this.stage=H,b(this,x({status:413,category:"request_too_large",retryable:!1},$))}}class QH extends Error{name="QlexRequestNotSentError";constructor(H,Z){super(P.copy().requestNotSent(H));b(this,x({category:"request_rejected",retryable:!1},Z))}}class g extends Error{name="QlexGatewayError";constructor(H,Z){super(P.copy().gatewayUnavailable(H));b(this,x({category:"gateway_routing",retryable:!1},Z))}}var TH=60000,BH=180000;function QZ(H){return P.sanitizeUpstreamError(H)}class y extends Error{name="QlexStreamError";constructor(H,Z){let $=x({category:"unknown",retryable:!1},Z);super($.category==="output_budget_exhausted"?P.copy().outputBudgetExhausted():$.category==="empty_output"?P.copy().emptyOutput():$.category==="stream_truncated"?P.copy().streamCutOff():$.category==="stream_failed"?P.copy().streamFailedAfterRetries():P.copy().streamFailed(H));b(this,$),NH(this)}}var bH=[{match:/\b(unauthori[sz]ed|forbidden|invalid[ _-]?(api[ _-]?key|token|credential)|expired[ _-]?token|authentication[ _-]?(failed|error)|401|403)\b/i,category:"invalid_credentials",retryable:!1},{match:/(output (?:token )?budget|maximum output tokens|max_tokens|finish[_ -]?reason.{0,20}(length|budget)|reasoning.{0,20}(budget|tokens))/i,category:"output_budget_exhausted",retryable:!1},{match:/\b(no visible output|empty output|produced no (?:visible )?(?:text|output)|nothing to display)\b/i,category:"empty_output",retryable:!1},{match:/\b(insufficient[ _-]?(credits?|qredits?|balance|funds)|payment[ _-]?required|quota[ _-]?exceeded|out[ _-]?of[ _-]?(credits?|qredits?)|402)\b/i,category:"billing",retryable:!1},{match:/\b(rate[ _-]?limit(ed|s)?|too[ _-]?many[ _-]?requests|429)\b/i,category:"rate_limited",retryable:!0},{match:/(unexpected end of (json|input|stream|data)|premature (close|end)|socket hang ?up|incomplete (response|output|json|message)|truncated|stream (ended|closed|terminated) (early|unexpectedly|prematurely)|\bECONNRESET\b|\bEPIPE\b)/i,category:"stream_truncated",retryable:!0},{match:/\b(overloaded|at capacity|service[ _-]?unavailable|temporarily[ _-]?unavailable|bad[ _-]?gateway|gateway[ _-]?time(d[ _-]?out|out)|timed[ _-]?out|502|503|504)\b/i,category:"transient",retryable:!0}],xH={ERR_EMPTY_RESULT:{category:"empty_output",retryable:!1},ERR_TRUNCATED_OUTPUT:{category:"stream_truncated",retryable:!0},ERR_STREAM:{category:"stream_failed",retryable:!0}},hH=/^\s*(ERR_[A-Z0-9_]+)\b(?:\s*(?:[\u2014\u2013:-]\s*)?)?/i,vH=/\b(req_[A-Za-z0-9][A-Za-z0-9_-]*)\b/;function fH(H){let Z=H??"",$=hH.exec(Z),J=$?.[1]?.toUpperCase(),K=vH.exec(Z)?.[1],z=$?Z.slice($[0].length):Z;if(J!==void 0){let X=xH[J];if(X!==void 0)return{...X,upstreamCode:J,...K?{requestId:K}:{}}}for(let X of bH)if(X.match.test(z))return{category:X.category,retryable:X.retryable,...J?{upstreamCode:J}:{},...K?{requestId:K}:{}};return{category:"unknown",retryable:!1,...J?{upstreamCode:J}:{},...K?{requestId:K}:{}}}function yH(H){return GH(H)}function PH(H,Z){let $,J,K,z=!1;try{let N=JSON.parse(Z);if(N&&typeof N==="object"){let W=N.error&&typeof N.error==="object"?N.error:void 0;if(typeof W?.code==="string")$=W.code;else if(typeof N.code==="string")$=N.code;if(typeof W?.message==="string")J=W.message;else if(typeof N.message==="string")J=N.message;if(typeof N.details?.field==="string")K=N.details.field}}catch(N){z=/^\s*[\[{]/.test(Z)&&(gH(Z)||/unexpected end|end of json|unterminated string/i.test(String(N)))}let X=$?.toUpperCase()??"",Y=(()=>{if(z)return"stream_truncated";if(H===402)return"billing";if(H===413)return"request_too_large";if(H===429)return"rate_limited";if(H===401||H===403)return X==="ERR_GATEWAY_REQUIRED"||yH(Z)?"gateway_routing":"invalid_credentials";if(X.includes("CONFIG"))return"configuration";if(H>=500)return"transient";if(H>=400)return"request_rejected";return"unknown"})(),D={status:H,category:Y,retryable:Y==="transient"||Y==="rate_limited"||Y==="stream_truncated"};if($!==void 0)D.upstreamCode=$;if(J!==void 0)D.upstreamMessage=J;if(K!==void 0)D.field=K;return D}function gH(H){let Z=0,$=!1,J=!1;for(let K of H){if($){if(J)J=!1;else if(K==="\\")J=!0;else if(K==='"')$=!1;continue}if(K==='"')$=!0;else if(K==="{"||K==="[")Z++;else if(K==="}"||K==="]")Z--;if(Z<0)return!1}return $||Z>0}var pH=new Set(["coding","agent","research","review","chat"]);function uH(H){if(H===void 0)return;if(typeof H==="string"&&pH.has(H))return H;throw Error(`invalid Qortex posture: ${String(H)}`)}function cH(H){if(H===void 0)return;let Z=Array.isArray(H)?H:[H];if(Z.every(($)=>typeof $==="string"&&/^[^/\s]+\/[^/\s]+$/.test($)))return Array.isArray(H)?Z:H;throw Error(`invalid Qortex directive registry key: ${String(H)}`)}function l(H){if(typeof H==="string")return H;if(Array.isArray(H))return H.map((Z)=>{if(typeof Z==="string")return Z;if(Z&&typeof Z==="object"){let $=Z;if(typeof $.text==="string")return $.text;if(typeof $.content==="string")return $.content}return""}).join("");if(H===void 0||H===null)return"";return String(H)}var mH="[Tool call]",iH="[Tool returned no output]";function kH(H){if(!Array.isArray(H))return{messages:H,dropped:[]};let Z=[];return{messages:H.flatMap((J,K)=>{if(!J||typeof J!=="object")return Z.push({index:K,role:typeof J,reason:"not-an-object"}),[];let z=J,X=l(z.content);if(X.trim().length>0)return[{...z,content:X}];if(z.role==="assistant"&&Array.isArray(z.tool_calls)&&z.tool_calls.length>0)return[{...z,content:mH}];if(z.role==="tool"&&typeof z.tool_call_id==="string"&&z.tool_call_id.trim().length>0)return[{...z,content:iH}];return Z.push({index:K,role:typeof z.role==="string"?z.role:"unknown",reason:"empty-content"}),[]}),dropped:Z}}function dH(H){return kH(H).messages}function lH(H){if(!Array.isArray(H))return!1;return H.some((Z)=>!!Z&&typeof Z==="object"&&Z.role==="user")}function nH(H){if(!Array.isArray(H))return!1;return H.some((Z)=>{if(!Z||typeof Z!=="object")return!1;let $=Z;if($.role!=="user")return!1;return l($.content).trim().length>0})}function rH(H){if(!Array.isArray(H))return H;let Z=(z)=>!!z&&typeof z==="object"&&z.role==="system",$=0;while($<H.length&&Z(H[$]))$++;if($<=1)return H;let J=H.slice(0,$),K=J.map((z)=>typeof z.content==="string"?z.content:String(z.content??"")).filter((z)=>z.length>0).join(`
3
+
4
+ `);return[{...J[0],role:"system",content:K},...H.slice($)]}var m="<tool_call>",i="</tool_call>";function oH(H){if(!Array.isArray(H)||H.length===0)return;let Z=H.map(($)=>{try{return JSON.stringify($)}catch{return}}).filter(($)=>$!==void 0);if(Z.length===0)return;return["# Tools","","You may call one or more functions to assist with the user query.","","You are provided with function signatures within <tools></tools> XML tags:","<tools>",...Z,"</tools>","","For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:","<tool_call>",'{"name": <function-name>, "arguments": <args-json-object>}',"</tool_call>","","Function results will be provided within <tool_response></tool_response> XML tags. Do not write <tool_response> blocks yourself.","Only use the functions declared above. Never invent function names, and never write out a function-call-like block in any other format."].join(`
5
+ `)}var aH=3;function HH(H){let Z=H;for(let $=0;$<aH;$++){if(Z!==null&&typeof Z==="object")return Z;if(typeof Z!=="string")return;try{Z=JSON.parse(Z)}catch{return}}return}function sH(H){let Z=H?.tool_calls;if(!Array.isArray(Z))return;for(let $ of Z){let J=$?.function;if(!J)continue;M.debug("tool call ingress",{tool:typeof J.name==="string"?J.name:"?",source:"native",args:ZH(J.arguments)})}}function ZH(H,Z=300){let $;try{$=typeof H==="string"?H:JSON.stringify(H)??String(H)}catch{$="<unrenderable>"}return $.length<=Z?$:`${$.slice(0,Z)}\u2026 (${$.length} chars total)`}function tH(H){let Z=H.function??{},$=typeof Z.name==="string"?Z.name:"",J=Z.arguments===void 0?{}:HH(Z.arguments);if(J===void 0)M.warn("dropping unrecoverable tool-call arguments while re-encoding history",{tool:$,raw:ZH(Z.arguments)});return`${m}
6
+ ${JSON.stringify({name:$,arguments:J??{}})}
7
+ ${i}`}function SH(H,Z){if(!Array.isArray(H))return H;let $=H.map((K)=>{if(!K||typeof K!=="object")return K;let z=K;if(z.role==="assistant"&&Array.isArray(z.tool_calls)){let X=z.tool_calls.map(tH).join(`
8
+ `),Y=l(z.content),{tool_calls:D,...N}=z;return{...N,content:Y.length>0?`${Y}
9
+ ${X}`:X}}if(z.role==="tool"){let{tool_call_id:X,name:Y,...D}=z;return{...D,role:"user",content:`<tool_response>
10
+ ${l(z.content)}
11
+ </tool_response>`}}return K}),J=oH(Z);if(J){let K=0;while(K<$.length&&!!$[K]&&typeof $[K]==="object"&&$[K].role==="system")K++;$.splice(K,0,{role:"system",content:J})}return $}function eH(){return process.env.QITQODE_TOOL_PROTOCOL==="text"?"text":"native"}function HZ(H){if(Array.isArray(H.tools)&&H.tools.length>0)return!0;let Z=H.messages;if(!Array.isArray(Z))return!1;return Z.some(($)=>{if(!$||typeof $!=="object")return!1;let J=$;return J.role==="tool"||J.role==="assistant"&&Array.isArray(J.tool_calls)})}function zH(H,Z){let $=Z?.toolMode??"native",J=H.model??"default",K={stream:H.stream??!0};if(H.temperature!==void 0)K.temperature=H.temperature;if(H.max_tokens!==void 0)K.max_tokens=H.max_tokens;let z=Z?.outputAdvisory;if(z){let W=z.tierOutputLimit;if(K.max_tokens!==void 0){if(W!==void 0&&K.max_tokens>W)K.max_tokens=W}else{let U=z.recommendedTotalTokens??z.tierRecommendedStepTokens??W,_=U===void 0?void 0:W===void 0?U:Math.min(U,W);if(_!==void 0)K.max_tokens=_}if(Z?.outputBudgetRecoveryTokens!==void 0){let U=typeof K.max_tokens==="number"?K.max_tokens:0,_=z.tierOutputLimit??Z.outputBudgetRecoveryTokens;if(Z.outputBudgetRecoveryTokens>U)K.max_tokens=Math.min(Z.outputBudgetRecoveryTokens,_)}}if(H.tools!==void 0)K.tools=H.tools;if(H.tool_choice!==void 0)K.tool_choice=H.tool_choice;if(H.stream_options!==void 0)K.stream_options=H.stream_options;let X=$==="text"?SH(H.messages,H.tools):H.messages,Y={},D=uH(H.posture);if(D!==void 0)Y.posture=D;let N=cH(H.directive);if(N!==void 0)Y.directive=N;if(H.modelPersona!==void 0)Y.modelPersona=H.modelPersona;return{tier:J,messages:rH(dH(X)),opts:K,...Y}}var r=new Map;function f(H){return typeof H==="number"&&Number.isFinite(H)&&H>0?H:void 0}function ZZ(H,Z){let $={},J=f(Z.tierOutputLimit),K=f(Z.tierRecommendedStepTokens),z=f(Z.reasoningReserveTokens),X=f(Z.visibleOutputFloorTokens),Y=f(Z.recommendedTotalTokens),D=f(Z.viableTotalFloorTokens),N=f(Z.budgetPolicyVersion);if(J!==void 0)$.tierOutputLimit=J;if(K!==void 0)$.tierRecommendedStepTokens=K;if(z!==void 0)$.reasoningReserveTokens=z;if(X!==void 0)$.visibleOutputFloorTokens=X;if(Y!==void 0)$.recommendedTotalTokens=Y;if(D!==void 0)$.viableTotalFloorTokens=D;if(typeof Z.reasoningReported==="boolean")$.reasoningReported=Z.reasoningReported;if(N!==void 0)$.budgetPolicyVersion=N;if(Object.keys($).length===0)return;r.set(H,$)}function $Z(H){return r.get(H)}function PZ(){r.clear()}function JZ(H){let Z=($)=>typeof $==="string"&&($.startsWith("qlex")||$.startsWith("qortex"));return Z(H.id)||Z(H.object)}function KZ(H){let Z=[],$=H.indexOf(`
12
+ `)===-1?[H]:H.split(`
13
+ `);for(let X of $){let Y=X.endsWith("\r")?X.slice(0,-1):X;if(!Y.startsWith("data:"))continue;let D=Y.slice(5);if(D.startsWith(" "))D=D.slice(1);Z.push(D)}if(Z.length===0)return{kind:"skip"};let J=Z.length===1?Z[0]:Z.join(`
14
+ `);if(J==="")return{kind:"skip"};if(J==="[DONE]")return{kind:"done"};if(J.startsWith("[ERROR]"))return{kind:"error",message:J.slice(7).trim()||"qlex stream error"};let K=J.charCodeAt(0),z=K===123||K===91||K===32||K===9||K===10||K===13;try{if(!z)return{kind:"token",content:J};let X=JSON.parse(J);if(X&&typeof X==="object"){let Y=X.id;if(Y==="qlex-cost"||Y==="qortex-cost")return{kind:"cost",cost:X};if(Y==="qlex-stream"&&X.usage&&typeof X.usage==="object"){let W=X.choices,U;if(Array.isArray(W)&&W[0]&&typeof W[0]==="object"){let _=W[0].finish_reason;if(typeof _==="string")U=_}return{kind:"usage",usage:X.usage,finishReason:U}}if(Array.isArray(X.choices))return{kind:"passthrough",chunk:X};let D=X,N=typeof D.content==="string"?D.content:typeof D.text==="string"?D.text:typeof D.delta==="string"?D.delta:void 0;if(N!==void 0)return{kind:"token",content:N};if(JZ(X)){let W=X.object;return{kind:"control",control:typeof W==="string"&&W.endsWith(".tier.outputLimits")?"tier-output-limits":"unknown",chunk:X}}}}catch{}return{kind:"token",content:J}}function XZ(H,Z){let $=Math.min(H.length,Z.length-1);for(let J=$;J>=1;J--)if(Z.startsWith(H.slice(H.length-J)))return J;return 0}function zZ(H){if(typeof H==="string"){try{let $=JSON.parse(H);if($!==null&&typeof $==="object")return H}catch{}let Z=HH(H);return JSON.stringify(Z??H)}return JSON.stringify(H??{})}class MH{onText;onToolCall;pending="";inBlock=!1;constructor(H,Z){this.onText=H;this.onToolCall=Z}feed(H){this.pending+=H,this.drain(!1)}flush(){if(this.drain(!0),this.inBlock)this.emitBlock(this.pending,!0),this.inBlock=!1;else if(this.pending.length>0)this.onText(this.pending);this.pending=""}drain(H){while(!0)if(!this.inBlock){let Z=this.pending.indexOf(m);if(Z===-1){let $=H?0:XZ(this.pending,m),J=this.pending.length-$;if(J>0)this.onText(this.pending.slice(0,J)),this.pending=$>0?this.pending.slice(J):"";return}if(Z>0)this.onText(this.pending.slice(0,Z));this.pending=this.pending.slice(Z+m.length),this.inBlock=!0}else{let Z=this.pending.indexOf(i);if(Z===-1)return;if(this.emitBlock(this.pending.slice(0,Z),!1),this.pending=this.pending.slice(Z+i.length),this.pending.startsWith(`\r
15
+ `))this.pending=this.pending.slice(2);else if(this.pending.startsWith(`
16
+ `))this.pending=this.pending.slice(1);this.inBlock=!1}}emitBlock(H,Z){try{let $=JSON.parse(H.trim());if($&&typeof $==="object"&&typeof $.name==="string"){this.onToolCall({name:$.name,arguments:zZ($.arguments)});return}}catch{}this.onText(`${m}${H}${Z?"":i}`)}}function t(H,Z,$){let J={id:"qlex-stream",object:"chat.completion.chunk",created:Math.floor(Date.now()/1000),model:"qlex",choices:[{index:0,delta:H,finish_reason:Z}]};if($)J.usage=$;return`data: ${JSON.stringify(J)}
17
+
18
+ `}function YZ(H,Z){let $=Z?.toolProtocolEnabled===!0,J=Z?.tier,K=Z?.requestedOutputBudget,z=Z?.idleTimeoutMs??BH,X=H.getReader(),Y=new TextDecoder,D=new TextEncoder,N="",W=!1,U=!1,_,q,k,w,R=!1,A=!1,h=0,C=0;return new ReadableStream({async start(F){let T=(V)=>{if(V.length>0)R=!0;C+=V.length;let G=W?{content:V}:{role:"assistant",content:V};W=!0,F.enqueue(D.encode(t(G,null)))},p=0,O=$?new MH(T,(V)=>{M.debug("tool call ingress",{tool:V.name,source:"text-shim",args:ZH(V.arguments),objectShaped:HH(V.arguments)!==void 0});let G={...W?{}:{role:"assistant"},tool_calls:[{index:p,id:`qlexcall_${Date.now().toString(36)}_${p}`,type:"function",function:{name:V.name,arguments:V.arguments}}]};W=!0,A=!0,p++,F.enqueue(D.encode(t(G,null)))}):void 0,Q=(V)=>O?O.feed(V):T(V),E=()=>{O?.flush();let G=_||q!==void 0||k!==void 0?{prompt_tokens:_?.tokens.prompt??k?.prompt??0,completion_tokens:_?.tokens.completion??k?.completion??0,total_tokens:_?.tokens.total??(_?.tokens.prompt??k?.prompt??0)+(_?.tokens.completion??k?.completion??0),cost_usd:_?.cost_usd,cost_credits:_?.cost_credits??_?.cost_qredits,context_window:q}:void 0;if(G&&(G.cost_usd??0)>0&&G.prompt_tokens===0)M.warn("qlex billed turn reported zero prompt tokens",{tier:J,completionTokens:G.completion_tokens,costUsd:G.cost_usd,source:_?"cost.summary":"usage frame"});let j=p>0?"tool_calls":w??"stop";if(j==="length"||j==="max_tokens"){let L=d(J??"default",K),I=L!==void 0;M.debug("qlex output budget exhausted",{tier:J,contentStreamed:R,outputBudgetRecoveryAvailable:I}),F.error(new y("output budget exhausted",{category:"output_budget_exhausted",retryable:!1,outputBudgetRecoveryAvailable:I,outputBudgetRecoveryTokens:L})),U=!0;return}if(!R&&!A&&w!=="tool_calls"){let L=d(J??"default",K),I=L!==void 0;M.debug("qlex completed without visible output",{tier:J,outputBudgetRecoveryAvailable:I}),F.error(new y("empty output",{category:"empty_output",retryable:!1,outputBudgetRecoveryAvailable:I,outputBudgetRecoveryTokens:L})),U=!0;return}if(F.enqueue(D.encode(t({},j,G))),F.enqueue(D.encode(`data: [DONE]
19
+
20
+ `)),!_&&J!==void 0)M.info("qlex cost frame absent on stream finish",{tier:J});F.close(),U=!0},S=(V)=>{let G=KZ(V);switch(h++,G.kind){case"skip":return!1;case"token":return Q(G.content),!1;case"passthrough":{let j=G.chunk.choices;if(Array.isArray(j)&&j[0]&&typeof j[0]==="object"){let L=j[0].finish_reason;if(typeof L==="string")w=L;let I=j[0].delta;if(typeof I?.content==="string"&&I.content.length>0)R=!0;if(Array.isArray(I?.tool_calls))A=!0;sH(j[0].delta)}W=!0;{let L=G.chunk.choices?.[0]?.delta?.content;if(typeof L==="string")C+=L.length}return F.enqueue(D.encode(`data: ${JSON.stringify(G.chunk)}
21
+
22
+ `)),!1}case"cost":if(G.cost.final)_=G.cost;return!1;case"usage":if(G.usage.context_window!==void 0)q=G.usage.context_window;if(G.usage.prompt_tokens!==void 0&&G.usage.completion_tokens!==void 0)k={prompt:G.usage.prompt_tokens,completion:G.usage.completion_tokens};if(G.finishReason!==void 0)w=G.finishReason;return!1;case"control":{if(G.control==="tier-output-limits"){let j=G.chunk;if(J!==void 0)ZZ(J,j);M.debug("qlex tier output limits",{tierOutputLimit:j.tierOutputLimit,tierRecommendedStepTokens:j.tierRecommendedStepTokens,tierStepGuidance:j.tierStepGuidance,reasoningReserveTokens:j.reasoningReserveTokens,visibleOutputFloorTokens:j.visibleOutputFloorTokens,recommendedTotalTokens:j.recommendedTotalTokens,viableTotalFloorTokens:j.viableTotalFloorTokens,reasoningReported:j.reasoningReported,budgetPolicyVersion:j.budgetPolicyVersion})}else M.debug("qlex control frame dropped",{id:G.chunk.id,object:G.chunk.object});return!1}case"done":return E(),!0;case"error":{let j=fH(G.message);M.warn("qlex stream error frame",{tier:J,raw:G.message,frameIndex:h,streamedContentChars:C,contentStreamed:W,upstreamCode:j.upstreamCode,requestId:j.requestId,category:j.category,retryable:j.retryable});let L=j.category==="output_budget_exhausted"||j.category==="empty_output"?d(J??"default",K):void 0;if(j.retryable===!1&&L!==void 0)j.outputBudgetRecoveryAvailable=!0,j.outputBudgetRecoveryTokens=L;return F.error(new y(G.message,j)),U=!0,!0}}},B=async()=>{if(!(z>0))return X.read();let V;try{return await Promise.race([X.read(),new Promise((G,j)=>{V=setTimeout(()=>{let L=Math.round(z/1000);M.warn("qlex stream idle timeout",{tier:J,idleTimeoutMs:z,frameIndex:h,streamedContentChars:C,contentStreamed:W}),j(new y(`the gateway sent nothing for ${L}s`,{category:"transient",retryable:!0})),X.cancel(Error(`qlex stream idle for ${L}s`)).catch(()=>{})},z)})])}finally{if(V!==void 0)clearTimeout(V)}};try{while(!0){let{done:G,value:j}=await B();if(G)break;N+=Y.decode(j,{stream:!0});let L;while((L=N.indexOf(`
23
+
24
+ `))!==-1){let I=N.slice(0,L);if(N=N.slice(L+2),S(I))return}}N+=Y.decode();let V=N.replace(/\r?\n$/,"");if(V.length>0&&S(V))return;if(!U)E()}catch(V){if(!U)F.error(V instanceof y?V:new y(V instanceof Error?V.message:String(V)))}finally{X.releaseLock()}},cancel(F){X.cancel(F).catch(()=>{})}})}function wH(H){return{content:typeof H.content==="string"?H.content:H.choices?.[0]?.message?.content??"",finishReason:H.choices?.[0]?.finish_reason??"stop"}}function WZ(H){let Z=H??{},{content:$,finishReason:J}=wH(Z),K=Z.usage??{},z=K.prompt_tokens??0,X=K.completion_tokens??0,Y="orch-"+Date.now().toString(36),D=Math.floor(Date.now()/1000),N=(k,w,R)=>{let A={id:Y,object:"chat.completion.chunk",created:D,model:"orchestrated",choices:[{index:0,delta:k,finish_reason:w}]};if(R)A.usage=R;return`data: ${JSON.stringify(A)}
25
+
26
+ `},W={prompt_tokens:z,completion_tokens:X,total_tokens:K.total_tokens??z+X};if(typeof K.cost_usd==="number")W.cost_usd=K.cost_usd;if(typeof K.cost_credits==="number")W.cost_credits=K.cost_credits;if(typeof K.context_window==="number")W.context_window=K.context_window;let U=[N({role:"assistant",content:""},null),N({content:$},null),N({},J,W),`data: [DONE]
27
+
28
+ `],_=new TextEncoder,q=new ReadableStream({start(k){for(let w of U)k.enqueue(_.encode(w));k.close()}});return new Response(q,{status:200,headers:{"content-type":"text/event-stream"}})}function kZ(H){let Z=H??{},{content:$,finishReason:J}=wH(Z),K=Z.usage??{},z=K.prompt_tokens??0,X=K.completion_tokens??0,Y={id:"orch-"+Date.now(),object:"chat.completion",created:Math.floor(Date.now()/1000),model:"orchestrated",choices:[{index:0,message:{role:"assistant",content:$},finish_reason:J}],usage:{prompt_tokens:z,completion_tokens:X,total_tokens:K.total_tokens??z+X,...typeof K.cost_usd==="number"?{cost_usd:K.cost_usd}:{},...typeof K.context_window==="number"?{context_window:K.context_window}:{}}};return new Response(JSON.stringify(Y),{status:200,headers:{"content-type":"application/json"}})}async function VZ(H,Z,$){let J=PH(H,Z),K=Z?`HTTP ${H}: ${Z}`:`HTTP ${H}`;switch(M.error("gateway rejected request",{tier:$.tier,status:H,category:J.category,upstreamCode:J.upstreamCode,field:J.field,retryable:J.retryable}),J.category){case"billing":return new FH(Z||void 0,J);case"rate_limited":return new OH(J);case"gateway_routing":return new g(`HTTP ${H}`,J);case"invalid_credentials":return await $.onInvalidCredentials?.().catch(()=>{}),new LH(K,J);case"request_too_large":return new n("irreducible",J.upstreamMessage??Z??void 0,J);case"request_rejected":case"tool_protocol":return new qH(J.upstreamMessage??Z??void 0,J.field,J);case"configuration":case"transient":case"unknown":default:return new g(K,J)}}function YH(H){let Z=XH();if(Z===void 0)return H;let $=v(H);if($<=Z)return H;let J=s(H,Z);return M.warn("request over known size ceiling, reducing before send",{tier:H.tier,bytes:$,ceiling:Z,reducedBytes:J.bytes,fits:J.reduced,...J.actions}),J.bytes<$?J.body:H}function WH(H){let Z=v(H),$=a(Z),J=s(H,$);if(!J.reduced)throw M.error("request too large and cannot be reduced further",{tier:H.tier,rejectedBytes:Z,ceiling:$,reducedBytes:J.bytes,...J.actions}),new n("irreducible");return M.warn("request too large, retrying once with reduced history",{tier:H.tier,rejectedBytes:Z,ceiling:$,reducedBytes:J.bytes,...J.actions,notice:P.copy().requestTooLargeRecovering()}),J.body}function VH(H){let Z=v(H);throw a(Z),M.error("reduced request still too large",{tier:H.tier,rejectedBytes:Z}),new n("after-reduction")}function DZ(H,Z=globalThis.fetch,$,J){let K=J?.responseTimeoutMs??TH;return async(z,X)=>{if(X?.method==="POST"&&typeof X?.body==="string"){let Y;try{Y=JSON.parse(X.body)}catch{return Z(z,X)}let D=eH(),N=$Z(Y.model??"default"),W=zH(Y,{toolMode:D,outputAdvisory:N});if(lH(Y.messages)&&!nH(W.messages)){let{dropped:O}=kH(D==="text"?SH(Y.messages,Y.tools):Y.messages);throw M.error("refusing to send: user message lost in normalization",{tier:W.tier,toolMode:D,inputRoles:Array.isArray(Y.messages)?Y.messages.map((Q)=>Q&&typeof Q==="object"?String(Q.role):"?"):"not-an-array",droppedCount:O.length,dropped:O}),new QH("your message could not be turned into sendable content")}let U=await H(),_=typeof U==="string"?{key:U,method:"sso"}:U;if(!_?.key)throw new _H;let q=new Headers(X.headers),k=()=>{if(_.method==="api-key")q.delete("Authorization"),q.set("x-api-key",_.key);else q.delete("x-api-key"),q.set("Authorization",`Bearer ${_.key}`)};k(),q.set("Content-Type","application/json");let w=!1,R=async(O,Q)=>{let E=PH(O,Q),S=async()=>({retry:!1,error:await VZ(O,Q,{onInvalidCredentials:$,tier:W.tier})});if(E.category!=="invalid_credentials"||w)return S();w=!0;let B=e(_),V=await jH(_);if(V.kind==="recovered"&&e(V.credential)!==B)return _=V.credential,k(),{retry:!0};if(V.kind==="inconclusive")return{retry:!1,error:new g(`HTTP ${O}: ${V.reason}`,E)};return S()};if(W.tier==="orchestrated"){let O=X.signal,Q=async(B)=>{let V=new AbortController,G=()=>V.abort(O?.reason);if(O)if(O.aborted)V.abort(O.reason);else O.addEventListener("abort",G,{once:!0});let j=!1,L=setTimeout(()=>{j=!0,V.abort()},K);try{return await Z(IH,{method:"POST",headers:q,body:JSON.stringify(B),signal:V.signal})}catch(I){if(j)throw new g(`no response within ${Math.round(K/1000)}s`);throw I}finally{clearTimeout(L),O?.removeEventListener("abort",G)}},E=YH(W),S=await Q(E);if(S.status===413){if(await S.body?.cancel().catch(()=>{}),E=WH(E),S=await Q(E),S.status===413)await S.body?.cancel().catch(()=>{}),VH(E)}while(!S.ok){let B=await S.text().catch(()=>""),V=await R(S.status,B);if(!V.retry)throw V.error;S=await Q(E)}return WZ(await S.json())}let A=X.signal,h=async(O)=>{let Q=new AbortController,E=()=>Q.abort(A?.reason);if(A)if(A.aborted)Q.abort(A.reason);else A.addEventListener("abort",E,{once:!0});let S=()=>A?.removeEventListener("abort",E),B=!1,V=setTimeout(()=>{B=!0,Q.abort()},K);try{return{res:await Z(CH,{method:"POST",headers:q,body:JSON.stringify(O),signal:Q.signal}),detach:S}}catch(G){if(S(),B)throw new g(`no response within ${Math.round(K/1000)}s`);throw G}finally{clearTimeout(V)}},C=YH(W),{res:F,detach:T}=await h(C);if(F.status===400&&D==="native"&&HZ(Y))T(),await F.body?.cancel().catch(()=>{}),C=zH(Y,{toolMode:"text",outputAdvisory:N}),{res:F,detach:T}=await h(C);if(F.status===413){if(T(),await F.body?.cancel().catch(()=>{}),C=WH(C),{res:F,detach:T}=await h(C),F.status===413)T(),await F.body?.cancel().catch(()=>{}),VH(C)}try{while(!F.ok){let O=await F.text().catch(()=>""),Q=await R(F.status,O);if(T(),!Q.retry)throw Q.error;({res:F,detach:T}=await h(C))}}catch(O){throw T(),O}if(Y.stream!==!1&&F.body){let O=Array.isArray(Y.tools)&&Y.tools.length>0;return new Response(YZ(F.body,{toolProtocolEnabled:O,tier:W.tier,requestedOutputBudget:W.opts.max_tokens}),{status:F.status,statusText:F.statusText,headers:{"content-type":"text/event-stream"}})}return F}return Z(z,X)}}function SZ(H){let Z=H.getToken??(async()=>H.bearerToken),$=DZ(Z,globalThis.fetch,H.onInvalidCredentials);return UH({name:H.name??"qlex",baseURL:P.streamBaseUrl(),fetch:$})}function MZ(H,Z){return d(H,Z)!==void 0}var NZ=2;function d(H,Z){let $=r.get(H),J=$?.tierOutputLimit;if(!$||!J)return;let K=Z??$.recommendedTotalTokens??$.tierRecommendedStepTokens;if(!K||K>=J)return;let z=$.recommendedTotalTokens??$.tierRecommendedStepTokens??K,X=Math.min(J,Math.max(K+1,K*NZ,z));return X>K?X:void 0}export{YZ as transformQlexStream,WZ as toOrchestratedSSEStream,kZ as toOpenAICompletion,QZ as sanitizeUpstreamProviderError,eH as resolveToolMode,oH as renderToolProtocolPrompt,ZZ as recordTierOutputAdvisory,XZ as partialTagSuffixLength,KZ as parseQlexFrame,PH as parseQlexError,kH as normalizeQlexMessagesWithReport,dH as normalizeQlexMessages,rH as mergeLeadingSystemMessages,yH as isGatewayRequiredError,lH as hasUserRoleMessage,nH as hasUsableUserMessage,HZ as hasToolContext,d as getTierOutputBudgetRecovery,$Z as getTierOutputAdvisory,l as flattenMessageContent,SH as encodeToolProtocolMessages,zZ as encodeExtractedArguments,HH as decodeToolArgumentsToObject,SZ as createQlexProvider,DZ as createCustomFetch,PZ as clearTierOutputAdvisories,fH as classifyQlexStreamError,MZ as canIncreaseTierOutputBudget,zH as buildQlexBody,MH as ToolCallExtractor,m as TOOL_CALL_OPEN,i as TOOL_CALL_CLOSE,y as QlexStreamError,n as QlexRequestTooLargeError,qH as QlexRequestRejectedError,QH as QlexRequestNotSentError,OH as QlexRateLimitError,_H as QlexNotLoggedInError,LH as QlexInvalidCredentialsError,FH as QlexInsufficientBalanceError,g as QlexGatewayError,CH as QLEX_STREAM_URL,BH as QLEX_STREAM_IDLE_TIMEOUT_MS,TH as QLEX_RESPONSE_TIMEOUT_MS,IH as QLEX_ORCHESTRATED_URL};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{Df as k}from"./chunk-ywkvq7zb.js";import{Ag as f}from"./chunk-rcyzqa3g.js";function z(){return async(l,b)=>k(await f(l,b.options),b)}export{z as Cf};