@qitqode/qitqode-android-arm64 0.1.24 → 0.1.25

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 (422) hide show
  1. package/bundle/{chunk-4kse3awh.js → chunk-0304b7xg.js} +1 -1
  2. package/bundle/{chunk-hqg5qbxk.js → chunk-08ba67f4.js} +1 -1
  3. package/bundle/chunk-0eneddjj.js +2 -0
  4. package/bundle/{chunk-6nhje520.js → chunk-0hsb4knd.js} +1 -1
  5. package/bundle/{chunk-bas6x25m.js → chunk-0jaxgrq0.js} +2 -2
  6. package/bundle/chunk-0ke6x10y.js +5 -0
  7. package/bundle/{chunk-hh4c02fh.js → chunk-0rmmg3g4.js} +1 -1
  8. package/bundle/chunk-0vqrakhw.js +3 -0
  9. package/bundle/{chunk-sgtgvzv6.js → chunk-0x7dbj5e.js} +1 -1
  10. package/bundle/{chunk-7yf15a3a.js → chunk-0xmx2zfg.js} +1 -1
  11. package/bundle/chunk-0yb4pxjv.js +2 -0
  12. package/bundle/chunk-129kq1w7.js +2 -0
  13. package/bundle/{chunk-8cr7ks31.js → chunk-14qvaxtp.js} +1 -1
  14. package/bundle/chunk-1a5hq7d5.js +2 -0
  15. package/bundle/{chunk-k16hzy2q.js → chunk-1ce5jpdc.js} +1 -1
  16. package/bundle/{chunk-xv8gnkh5.js → chunk-1e8mja6v.js} +1 -1
  17. package/bundle/{chunk-cy2586rv.js → chunk-1n1dh6zj.js} +1 -1
  18. package/bundle/{chunk-pb7rnkke.js → chunk-1txkz6dt.js} +1 -1
  19. package/bundle/chunk-1w3y1dkk.js +2 -0
  20. package/bundle/{chunk-v7r9np94.js → chunk-23f6rc7a.js} +1 -1
  21. package/bundle/chunk-26qt44f1.js +3 -0
  22. package/bundle/{chunk-6mscvf6y.js → chunk-2armxd20.js} +1 -1
  23. package/bundle/{chunk-21ejqv4v.js → chunk-2je5tp0x.js} +1 -1
  24. package/bundle/{chunk-0rtshz2r.js → chunk-2k2axg73.js} +1 -1
  25. package/bundle/chunk-2pkake0h.js +2 -0
  26. package/bundle/{chunk-7y3y3j51.js → chunk-2rxt1s22.js} +2 -2
  27. package/bundle/{chunk-te1zfpzv.js → chunk-2s28fdbp.js} +1 -1
  28. package/bundle/{chunk-8pe047p0.js → chunk-2sy1wx99.js} +1 -1
  29. package/bundle/{chunk-9easaxy7.js → chunk-2z35ewwc.js} +1 -1
  30. package/bundle/{chunk-zeh481tm.js → chunk-2zj3h3xj.js} +2 -2
  31. package/bundle/chunk-32188rww.js +2 -0
  32. package/bundle/chunk-334tc1rh.js +2 -0
  33. package/bundle/{chunk-tzc4jkzg.js → chunk-3dvyfmgc.js} +1 -1
  34. package/bundle/{chunk-q3x4x2tq.js → chunk-3e8p4a3y.js} +1 -1
  35. package/bundle/{chunk-7mhffm9f.js → chunk-3f054f69.js} +183 -183
  36. package/bundle/chunk-3ff94m8r.js +2 -0
  37. package/bundle/{chunk-7a6p7dfx.js → chunk-3fy57jcy.js} +1 -1
  38. package/bundle/{chunk-ve5gb789.js → chunk-3h08jdq8.js} +2 -2
  39. package/bundle/{chunk-w7p2x973.js → chunk-3j7skhxg.js} +2 -2
  40. package/bundle/{chunk-p4hpr8d7.js → chunk-3jhx8g5d.js} +1 -1
  41. package/bundle/{chunk-jr9xnvjq.js → chunk-3nhth7c2.js} +1 -1
  42. package/bundle/{chunk-8ace31r2.js → chunk-3tnek022.js} +1 -1
  43. package/bundle/{chunk-rvvfs9ps.js → chunk-3xna2rk5.js} +1 -1
  44. package/bundle/{chunk-k9d927xe.js → chunk-42t25nkb.js} +1 -1
  45. package/bundle/chunk-4aqd2bty.js +2 -0
  46. package/bundle/{chunk-am73j1bt.js → chunk-4kb2efq3.js} +1 -1
  47. package/bundle/{chunk-wmw2gne9.js → chunk-4pssh5d3.js} +2 -2
  48. package/bundle/{chunk-pyq01301.js → chunk-4stgw33j.js} +1 -1
  49. package/bundle/{chunk-k9g77a02.js → chunk-4w5t515p.js} +1 -1
  50. package/bundle/chunk-4wa0gf8y.js +28 -0
  51. package/bundle/{chunk-jegn6jc3.js → chunk-4wgb80jm.js} +2 -2
  52. package/bundle/{chunk-jbd9k041.js → chunk-4wyjapes.js} +2 -2
  53. package/bundle/chunk-4xg5ptk9.js +2 -0
  54. package/bundle/{chunk-23geekk5.js → chunk-54pk7nna.js} +1 -1
  55. package/bundle/chunk-58680z2j.js +3 -0
  56. package/bundle/{chunk-ygj1cy0n.js → chunk-5mdsrv0a.js} +1 -1
  57. package/bundle/{chunk-xj73j10a.js → chunk-5mp82az0.js} +1 -1
  58. package/bundle/chunk-5nm36wxa.js +2 -0
  59. package/bundle/{chunk-7tgm8wp5.js → chunk-5zw7knvd.js} +1 -1
  60. package/bundle/{chunk-yz7rqzby.js → chunk-61ks7c71.js} +3 -3
  61. package/bundle/chunk-64jet8nc.js +2 -0
  62. package/bundle/chunk-6584d9m8.js +2 -0
  63. package/bundle/chunk-66hv9bbw.js +2 -0
  64. package/bundle/{chunk-mj24ntn9.js → chunk-692vn48b.js} +1 -1
  65. package/bundle/chunk-6a1g6jzn.js +2 -0
  66. package/bundle/chunk-6be8p915.js +2 -0
  67. package/bundle/{chunk-8651hq0k.js → chunk-6ddp36ar.js} +1 -1
  68. package/bundle/chunk-6f03158n.js +2 -0
  69. package/bundle/{chunk-zavtsfxz.js → chunk-6gbaw2pk.js} +1 -1
  70. package/bundle/{chunk-5h2hcp46.js → chunk-6rrmjrm2.js} +1 -1
  71. package/bundle/{chunk-ps543k72.js → chunk-6s2f5sv4.js} +1 -1
  72. package/bundle/{chunk-9jf67xb0.js → chunk-754varfr.js} +2 -2
  73. package/bundle/{chunk-wa2ce2sg.js → chunk-78h5dd4t.js} +2 -2
  74. package/bundle/{chunk-4d1a547n.js → chunk-7d6jhzng.js} +1 -1
  75. package/bundle/{chunk-kc3hpmr2.js → chunk-7fx6x8x9.js} +2 -2
  76. package/bundle/chunk-7jnjttqx.js +2 -0
  77. package/bundle/{chunk-jz3aav8a.js → chunk-7q5srx7q.js} +2 -2
  78. package/bundle/chunk-7q8pa6s8.js +2 -0
  79. package/bundle/{chunk-vvypb02q.js → chunk-7qvkyjjg.js} +1 -1
  80. package/bundle/{chunk-8r79zf3y.js → chunk-7rjf9b8n.js} +2 -2
  81. package/bundle/{chunk-t488d66k.js → chunk-7v4fzkbb.js} +1 -1
  82. package/bundle/chunk-7w84hfxs.js +3 -0
  83. package/bundle/{chunk-8717htya.js → chunk-7ws3gdjq.js} +1 -1
  84. package/bundle/{chunk-va4davgy.js → chunk-87x607rz.js} +259 -253
  85. package/bundle/{chunk-vftqwdpg.js → chunk-8ahpk8td.js} +1 -1
  86. package/bundle/{chunk-9vcw33dv.js → chunk-8atry88r.js} +1 -1
  87. package/bundle/chunk-8casywce.js +2 -0
  88. package/bundle/{chunk-tsn1jkr7.js → chunk-8cty50g7.js} +1 -1
  89. package/bundle/{chunk-qywwj58s.js → chunk-8gy99gfb.js} +2 -2
  90. package/bundle/chunk-8hxwxt5p.js +2 -0
  91. package/bundle/{chunk-58enbars.js → chunk-8jcx4tep.js} +2 -2
  92. package/bundle/chunk-8y8140dm.js +2 -0
  93. package/bundle/{chunk-frdc3ysq.js → chunk-8za87zkr.js} +1 -1
  94. package/bundle/{chunk-2qcndbxv.js → chunk-99p5m2f1.js} +1 -1
  95. package/bundle/{chunk-y3n31nnx.js → chunk-9dpn4792.js} +2 -2
  96. package/bundle/chunk-9dqcyt6x.js +2 -0
  97. package/bundle/{chunk-7gczzccz.js → chunk-9f6pqped.js} +1 -1
  98. package/bundle/chunk-9he248a8.js +2 -0
  99. package/bundle/{chunk-8h9r6c8g.js → chunk-9jncnqbj.js} +2 -2
  100. package/bundle/{chunk-cvchztkc.js → chunk-9jvnc14g.js} +1 -1
  101. package/bundle/chunk-9qmmse2n.js +2 -0
  102. package/bundle/chunk-9r6bvkp4.js +8 -0
  103. package/bundle/{chunk-dkv2mg97.js → chunk-9va5eh9s.js} +1 -1
  104. package/bundle/{chunk-hg563h5r.js → chunk-9w5rx0fb.js} +2 -2
  105. package/bundle/{chunk-xccs5c50.js → chunk-a27yjp71.js} +1 -1
  106. package/bundle/chunk-aabrsxrq.js +2 -0
  107. package/bundle/{chunk-dkm7x8rj.js → chunk-ag9thqkv.js} +2 -2
  108. package/bundle/chunk-amx3x4kd.js +3 -0
  109. package/bundle/{chunk-ktmazmas.js → chunk-aqm597px.js} +2 -2
  110. package/bundle/chunk-atd0q4v8.js +3 -0
  111. package/bundle/{chunk-ewyk4py6.js → chunk-av290sja.js} +1 -1
  112. package/bundle/chunk-avaba4sr.js +2 -0
  113. package/bundle/{chunk-dgzyn27r.js → chunk-aw0q4y3s.js} +1 -1
  114. package/bundle/{chunk-4k149ews.js → chunk-b2xya6pq.js} +1 -1
  115. package/bundle/{chunk-3tdqsm5c.js → chunk-b50t4jc5.js} +1 -1
  116. package/bundle/chunk-bdy1etja.js +2 -0
  117. package/bundle/{chunk-6szvs3k9.js → chunk-bnc4626b.js} +1 -1
  118. package/bundle/{chunk-fm4xa6yx.js → chunk-bpnpxdyv.js} +2 -2
  119. package/bundle/chunk-bqdvqmjc.js +2 -0
  120. package/bundle/chunk-bqs6a1ts.js +14 -0
  121. package/bundle/{chunk-78bajmqm.js → chunk-bsqcfqya.js} +1 -1
  122. package/bundle/{chunk-ecwz9nhs.js → chunk-c1ypbbka.js} +2 -2
  123. package/bundle/{chunk-1jsywey3.js → chunk-c27rpvdz.js} +1 -1
  124. package/bundle/chunk-cdws8ggq.js +2 -0
  125. package/bundle/{chunk-6j0365q3.js → chunk-cjxp72dv.js} +2 -2
  126. package/bundle/chunk-cqs9a2cs.js +2 -0
  127. package/bundle/{chunk-3wzqs241.js → chunk-crap29f6.js} +1 -1
  128. package/bundle/{chunk-1jh5p5qw.js → chunk-d0m7nbbx.js} +2 -2
  129. package/bundle/chunk-d0rjst58.js +2 -0
  130. package/bundle/{chunk-2eardzxs.js → chunk-d1bsxz2t.js} +1 -1
  131. package/bundle/{chunk-b6m4yyww.js → chunk-d5b0bqbr.js} +1 -1
  132. package/bundle/chunk-d833a2fj.js +2 -0
  133. package/bundle/{chunk-tk3bve0x.js → chunk-dd11kryy.js} +2 -2
  134. package/bundle/chunk-dday4nm2.js +2 -0
  135. package/bundle/{chunk-qw2hgs5b.js → chunk-ddxjc803.js} +2 -2
  136. package/bundle/{chunk-3tkp27x7.js → chunk-dee1a3yk.js} +2 -2
  137. package/bundle/{chunk-q6fbyvpq.js → chunk-dgggvses.js} +1 -1
  138. package/bundle/{chunk-apq38bt4.js → chunk-dk3z4k46.js} +3 -3
  139. package/bundle/{chunk-wf09j72q.js → chunk-e075v4e9.js} +2 -2
  140. package/bundle/{chunk-1xyn0sp2.js → chunk-e1pwnf0b.js} +2 -2
  141. package/bundle/chunk-e2sj30hk.js +2 -0
  142. package/bundle/{chunk-dann9gfq.js → chunk-eaatrmcg.js} +1 -1
  143. package/bundle/{chunk-1y9t7nxn.js → chunk-eg7drzzt.js} +1 -1
  144. package/bundle/chunk-enc0fykg.js +2 -0
  145. package/bundle/chunk-evan93av.js +2 -0
  146. package/bundle/{chunk-9f7y0dj0.js → chunk-evmfntm3.js} +1 -1
  147. package/bundle/{chunk-2gxjjqfx.js → chunk-ey4ktbyb.js} +1 -1
  148. package/bundle/{chunk-sswbfqcq.js → chunk-f55txcsa.js} +1 -1
  149. package/bundle/chunk-f600dzsr.js +2 -0
  150. package/bundle/chunk-f6jzwydk.js +2 -0
  151. package/bundle/{chunk-s9amvacw.js → chunk-f84cd0a1.js} +2 -2
  152. package/bundle/{chunk-6sdh1q7g.js → chunk-fgw420gb.js} +1 -1
  153. package/bundle/chunk-fv67ng8z.js +2 -0
  154. package/bundle/{chunk-x6z2b63w.js → chunk-g3s2z5xa.js} +1 -1
  155. package/bundle/{chunk-9xvctnjr.js → chunk-g4qwkcdv.js} +1 -1
  156. package/bundle/{chunk-3nhqd8wg.js → chunk-g73drh98.js} +3 -3
  157. package/bundle/{chunk-0pvbk8ks.js → chunk-gaen9ya4.js} +2 -2
  158. package/bundle/{chunk-ac202abt.js → chunk-gefh32jb.js} +1 -1
  159. package/bundle/chunk-gevazsx3.js +2 -0
  160. package/bundle/{chunk-n1chdwrs.js → chunk-gfmfrkxc.js} +1 -1
  161. package/bundle/{chunk-sjrmhd3e.js → chunk-ggeena9t.js} +1 -1
  162. package/bundle/chunk-gh18pzkx.js +2 -0
  163. package/bundle/chunk-gnvvgr4y.js +2 -0
  164. package/bundle/{chunk-4q9w2yve.js → chunk-grkkzrg1.js} +2 -2
  165. package/bundle/chunk-gsbjs2ws.js +2 -0
  166. package/bundle/{chunk-gff87y4n.js → chunk-gsz1wqy6.js} +1 -1
  167. package/bundle/{chunk-vf1r5ckp.js → chunk-gvtw9c44.js} +1 -1
  168. package/bundle/chunk-gw0j8hr9.js +3 -0
  169. package/bundle/{chunk-cesrhm09.js → chunk-h19ty95q.js} +1 -1
  170. package/bundle/{chunk-9nx8hm57.js → chunk-h2fh1g8g.js} +1 -1
  171. package/bundle/{chunk-p54bzjtv.js → chunk-h56jxxvj.js} +1 -1
  172. package/bundle/{chunk-jmjg8d8a.js → chunk-hmfefq0d.js} +4 -4
  173. package/bundle/{chunk-gn7xgd4c.js → chunk-hvpe07pt.js} +1 -1
  174. package/bundle/{chunk-gvzfffr4.js → chunk-hwbxehhf.js} +1 -1
  175. package/bundle/{chunk-zp2ffbc2.js → chunk-hznsed5n.js} +2 -2
  176. package/bundle/{chunk-w1atxyz0.js → chunk-j5b5h08g.js} +1 -1
  177. package/bundle/chunk-j7pdz979.js +2 -0
  178. package/bundle/{chunk-02txthqv.js → chunk-j9s62g01.js} +2 -2
  179. package/bundle/chunk-jfe2qbv8.js +2 -0
  180. package/bundle/{chunk-wj6aq50n.js → chunk-jgs6ngte.js} +1 -1
  181. package/bundle/{chunk-ep8zn49w.js → chunk-jhq5bvhs.js} +2 -2
  182. package/bundle/{chunk-2z6fzwyc.js → chunk-jq81hb32.js} +2 -2
  183. package/bundle/{chunk-dcx8hjbs.js → chunk-jqzejny3.js} +1 -1
  184. package/bundle/{chunk-j1veq3zr.js → chunk-jtrcnpm7.js} +2 -2
  185. package/bundle/{chunk-hbnr0j7h.js → chunk-jv98gw88.js} +2 -2
  186. package/bundle/{chunk-e346x00p.js → chunk-jvaffe5d.js} +1 -1
  187. package/bundle/chunk-k6zvb8xm.js +2 -0
  188. package/bundle/{chunk-5y8efy5b.js → chunk-k8bp3jjv.js} +1 -1
  189. package/bundle/{chunk-0ae5q6ck.js → chunk-kb14wxcs.js} +2 -2
  190. package/bundle/chunk-kcht9kvx.js +2 -0
  191. package/bundle/{chunk-edvcz2gd.js → chunk-kdcspxvq.js} +1 -1
  192. package/bundle/{chunk-t6w96xq2.js → chunk-kdct3e8s.js} +1 -1
  193. package/bundle/{chunk-1fnmkm0z.js → chunk-kgsq240v.js} +2 -2
  194. package/bundle/chunk-knvsa1d4.js +2 -0
  195. package/bundle/chunk-kp6d68hd.js +2 -0
  196. package/bundle/{chunk-jpygkh1c.js → chunk-kwm87f18.js} +1 -1
  197. package/bundle/{chunk-1p34bx7c.js → chunk-kyny0t2g.js} +2 -2
  198. package/bundle/{chunk-b8ag61vj.js → chunk-m2ang7yb.js} +1 -1
  199. package/bundle/{chunk-99n6czag.js → chunk-mbh1pdv9.js} +2 -2
  200. package/bundle/{chunk-y1srca0c.js → chunk-mczw8e3s.js} +2 -2
  201. package/bundle/chunk-me78p9x4.js +2 -0
  202. package/bundle/{chunk-g7vkkmsk.js → chunk-meaybtcc.js} +3 -3
  203. package/bundle/{chunk-9rqrm9y8.js → chunk-mkdyknbz.js} +1 -1
  204. package/bundle/{chunk-bf146hz2.js → chunk-mkyrg7gt.js} +2 -2
  205. package/bundle/{chunk-0pbt75ev.js → chunk-mr7agwgn.js} +1 -1
  206. package/bundle/{chunk-0w4v0fbs.js → chunk-msm3r7ny.js} +2 -2
  207. package/bundle/chunk-mv1d7wyt.js +2 -0
  208. package/bundle/{chunk-hh3w51wp.js → chunk-mybpgrjj.js} +2 -2
  209. package/bundle/{chunk-gf4ek7rv.js → chunk-n8dcmjph.js} +1 -1
  210. package/bundle/chunk-n8xmmxh5.js +2 -0
  211. package/bundle/chunk-n90219q9.js +2 -0
  212. package/bundle/chunk-nckg3ydx.js +2 -0
  213. package/bundle/{chunk-a5zjrwqy.js → chunk-nf8gkxbk.js} +2 -2
  214. package/bundle/chunk-nhaenjw3.js +2 -0
  215. package/bundle/chunk-nhtrt5ec.js +2 -0
  216. package/bundle/{chunk-6dxaty1v.js → chunk-nhx2xp2x.js} +1 -1
  217. package/bundle/{chunk-najzfhb2.js → chunk-nmnsf3fc.js} +1 -1
  218. package/bundle/{chunk-84gnbzky.js → chunk-nqefvn28.js} +1 -1
  219. package/bundle/{chunk-v2kyarwz.js → chunk-p409grvp.js} +2 -2
  220. package/bundle/chunk-p72n0tfq.js +2 -0
  221. package/bundle/{chunk-jr8qcf99.js → chunk-p80dc6kt.js} +2 -2
  222. package/bundle/{chunk-2wp1w8cy.js → chunk-p883sz67.js} +1 -1
  223. package/bundle/{chunk-fdezde1z.js → chunk-p8enedkf.js} +1 -1
  224. package/bundle/chunk-pd33qvr0.js +2 -0
  225. package/bundle/{chunk-d56zc21w.js → chunk-pepn5jp4.js} +1 -1
  226. package/bundle/chunk-pf7cj4jd.js +3 -0
  227. package/bundle/{chunk-bd21p9zz.js → chunk-pfn1db1m.js} +2 -2
  228. package/bundle/{chunk-srf73nm4.js → chunk-pk0tytcm.js} +1 -1
  229. package/bundle/chunk-pq3622ae.js +2 -0
  230. package/bundle/{chunk-ebjhggdw.js → chunk-psveqqv2.js} +1 -1
  231. package/bundle/{chunk-wfnk2vsd.js → chunk-pvee151a.js} +1 -1
  232. package/bundle/chunk-qatj4h6b.js +2 -0
  233. package/bundle/{chunk-3vbtra1j.js → chunk-qdnxv55k.js} +1 -1
  234. package/bundle/{chunk-gen6f3dn.js → chunk-qe0sfafy.js} +2 -2
  235. package/bundle/chunk-qfz0a58d.js +2 -0
  236. package/bundle/chunk-qjwfj51e.js +2 -0
  237. package/bundle/chunk-qkg73rs9.js +2 -0
  238. package/bundle/{chunk-5kmfnkzv.js → chunk-qm9ezq93.js} +1 -1
  239. package/bundle/{chunk-5rkmhzq0.js → chunk-qnqqrvvs.js} +2 -2
  240. package/bundle/{chunk-9pe4agdz.js → chunk-qnv2v02g.js} +2 -2
  241. package/bundle/{chunk-7dckfame.js → chunk-qpm5afdz.js} +1 -1
  242. package/bundle/chunk-qvcfst7n.js +11 -0
  243. package/bundle/{chunk-r48g0kaq.js → chunk-rgecc41f.js} +2 -2
  244. package/bundle/chunk-rjcptzem.js +8 -0
  245. package/bundle/{chunk-hh9a709t.js → chunk-rjf21v5c.js} +1 -1
  246. package/bundle/chunk-rmsqb6r4.js +10 -0
  247. package/bundle/{chunk-2mmspnr3.js → chunk-rq4hqwjy.js} +1 -1
  248. package/bundle/chunk-rqrpbcm6.js +2 -0
  249. package/bundle/{chunk-ftk58wxe.js → chunk-rs1mm5ef.js} +1 -1
  250. package/bundle/{chunk-a9y27zd2.js → chunk-rze20q68.js} +1 -1
  251. package/bundle/chunk-s76hdgw6.js +2 -0
  252. package/bundle/chunk-s7vhjg9e.js +2 -0
  253. package/bundle/{chunk-fkvccmgk.js → chunk-se79ke63.js} +2 -2
  254. package/bundle/chunk-sec3a60m.js +2 -0
  255. package/bundle/chunk-sjnt5e6w.js +2 -0
  256. package/bundle/chunk-sntb757q.js +2 -0
  257. package/bundle/chunk-svscftd7.js +2 -0
  258. package/bundle/chunk-sx0cabcs.js +2 -0
  259. package/bundle/{chunk-gn9p1d50.js → chunk-sx5m81em.js} +1 -1
  260. package/bundle/chunk-syhay5ye.js +7 -0
  261. package/bundle/{chunk-9798jffg.js → chunk-t07a5431.js} +1 -1
  262. package/bundle/{chunk-c31k8yh0.js → chunk-t0amhhsk.js} +1 -1
  263. package/bundle/{chunk-pfhp78cr.js → chunk-t2tsyazc.js} +1 -1
  264. package/bundle/{chunk-spm1yy6w.js → chunk-tdmaxc6n.js} +1 -1
  265. package/bundle/{chunk-gc9q0x8z.js → chunk-tf1me2r4.js} +3 -3
  266. package/bundle/{chunk-zfnbk5gy.js → chunk-tfggzzqw.js} +1 -1
  267. package/bundle/chunk-tmdm6vm6.js +2 -0
  268. package/bundle/{chunk-9sy9ws1w.js → chunk-v4xgceeq.js} +1 -1
  269. package/bundle/chunk-v6g0ksks.js +2 -0
  270. package/bundle/chunk-v7ah9gg0.js +3 -0
  271. package/bundle/{chunk-kr0fsqas.js → chunk-vb4e7y4d.js} +1 -1
  272. package/bundle/chunk-vbf73c7z.js +2 -0
  273. package/bundle/chunk-vbf9jpas.js +2 -0
  274. package/bundle/{chunk-r3yqe7x0.js → chunk-veev25yg.js} +1 -1
  275. package/bundle/{chunk-kaeyhw2n.js → chunk-vfj5nwab.js} +2 -2
  276. package/bundle/{chunk-6g3m7yxf.js → chunk-vmgknvxs.js} +2 -2
  277. package/bundle/{chunk-2y8qz8te.js → chunk-vq6bh2z9.js} +1 -1
  278. package/bundle/{chunk-b643cra9.js → chunk-vqq5vmh1.js} +195 -195
  279. package/bundle/chunk-vrcf5q4s.js +2 -0
  280. package/bundle/chunk-vxrsp6n7.js +2 -0
  281. package/bundle/chunk-w8ax3pvh.js +2 -0
  282. package/bundle/chunk-w98r39gd.js +9 -0
  283. package/bundle/{chunk-j1a64ade.js → chunk-wb69d52j.js} +2 -2
  284. package/bundle/{chunk-hg9nk090.js → chunk-wrgg270f.js} +1 -1
  285. package/bundle/{chunk-yzdty5t9.js → chunk-ww8ear80.js} +2 -2
  286. package/bundle/{chunk-ha1w0xzh.js → chunk-x36jhtex.js} +1 -1
  287. package/bundle/{chunk-hjbks7r9.js → chunk-x6b99nt3.js} +1 -1
  288. package/bundle/{chunk-yh174jhg.js → chunk-xdde80rf.js} +2 -2
  289. package/bundle/{chunk-17ggas8k.js → chunk-xjrt0dta.js} +1 -1
  290. package/bundle/chunk-xk2cmh49.js +2 -0
  291. package/bundle/{chunk-f819a7ec.js → chunk-xqa6qkx2.js} +1 -1
  292. package/bundle/{chunk-f3kjp838.js → chunk-xw283h2r.js} +2 -2
  293. package/bundle/{chunk-82gs5cmn.js → chunk-xy4t5qf8.js} +1 -1
  294. package/bundle/{chunk-0w0jfzb4.js → chunk-xyn3xxfs.js} +1 -1
  295. package/bundle/chunk-xzhkfctf.js +2 -0
  296. package/bundle/chunk-y0xt5a6g.js +2 -0
  297. package/bundle/{chunk-hxgb0y1w.js → chunk-ybn8tb09.js} +1 -1
  298. package/bundle/chunk-ydmrvx7q.js +2 -0
  299. package/bundle/{chunk-ns0pswww.js → chunk-ydsen7w0.js} +1 -1
  300. package/bundle/{chunk-hv4nhx6q.js → chunk-yhqk8bzk.js} +2 -2
  301. package/bundle/{chunk-g0v9g37f.js → chunk-ykfq8bem.js} +1 -1
  302. package/bundle/{chunk-r7xp0xcn.js → chunk-ym4ydwrz.js} +2 -2
  303. package/bundle/{chunk-4tn69nqs.js → chunk-yzchwmb4.js} +1 -1
  304. package/bundle/{chunk-1d64dywx.js → chunk-z015twaq.js} +2 -2
  305. package/bundle/chunk-z2rtcgad.js +3 -0
  306. package/bundle/{chunk-ms1fd6h4.js → chunk-z3zx6g09.js} +1 -1
  307. package/bundle/chunk-z9b3t2jm.js +2 -0
  308. package/bundle/{chunk-agdfqncf.js → chunk-zbdbsagd.js} +2 -2
  309. package/bundle/{chunk-evqxvhdb.js → chunk-zh808d4t.js} +1 -1
  310. package/bundle/{chunk-fhng5her.js → chunk-zny2qaqa.js} +2 -2
  311. package/bundle/{chunk-y2jmtfdh.js → chunk-zsnbxsdx.js} +2 -2
  312. package/bundle/{chunk-pv8jcpnf.js → chunk-zss93r48.js} +1 -1
  313. package/bundle/chunk-zzr8smtm.js +2 -0
  314. package/bundle/index.js +16 -16
  315. package/bundle/parser.worker.js +2 -2
  316. package/bundle/worker.js +1 -1
  317. package/package.json +1 -1
  318. package/bundle/chunk-0bvde0cx.js +0 -2
  319. package/bundle/chunk-0kbxnazj.js +0 -2
  320. package/bundle/chunk-0z3z0gk1.js +0 -5
  321. package/bundle/chunk-19z5q33z.js +0 -2
  322. package/bundle/chunk-1a0wnwna.js +0 -2
  323. package/bundle/chunk-1ddm2wxv.js +0 -2
  324. package/bundle/chunk-1fk4vsmc.js +0 -2
  325. package/bundle/chunk-1j2f9nd5.js +0 -2
  326. package/bundle/chunk-27s736an.js +0 -2
  327. package/bundle/chunk-2j17xrzj.js +0 -2
  328. package/bundle/chunk-2zca3nak.js +0 -2
  329. package/bundle/chunk-2zcvcfq4.js +0 -2
  330. package/bundle/chunk-38hwkfj5.js +0 -2
  331. package/bundle/chunk-3afqxvsn.js +0 -2
  332. package/bundle/chunk-3avc1ppg.js +0 -7
  333. package/bundle/chunk-3v4vtah1.js +0 -2
  334. package/bundle/chunk-3ypk0j2f.js +0 -2
  335. package/bundle/chunk-3z1y040p.js +0 -3
  336. package/bundle/chunk-4aykrj51.js +0 -9
  337. package/bundle/chunk-4dtbmqmq.js +0 -2
  338. package/bundle/chunk-4zjb6rps.js +0 -2
  339. package/bundle/chunk-5hkcjgwh.js +0 -2
  340. package/bundle/chunk-5snrz263.js +0 -2
  341. package/bundle/chunk-653c0mxr.js +0 -11
  342. package/bundle/chunk-6av7hrrk.js +0 -7
  343. package/bundle/chunk-6bswn7w5.js +0 -2
  344. package/bundle/chunk-6epghftw.js +0 -2
  345. package/bundle/chunk-6jjhxh8p.js +0 -2
  346. package/bundle/chunk-6ws7xyc5.js +0 -2
  347. package/bundle/chunk-7g28zhar.js +0 -2
  348. package/bundle/chunk-7v02b2ms.js +0 -2
  349. package/bundle/chunk-7vmp2034.js +0 -2
  350. package/bundle/chunk-7wxrypkr.js +0 -2
  351. package/bundle/chunk-8kk9gvdy.js +0 -2
  352. package/bundle/chunk-8ygpp4y3.js +0 -2
  353. package/bundle/chunk-95q60g1p.js +0 -2
  354. package/bundle/chunk-9mjbenja.js +0 -2
  355. package/bundle/chunk-9vn1gy8h.js +0 -2
  356. package/bundle/chunk-ajp3f08k.js +0 -2
  357. package/bundle/chunk-aptkpdkc.js +0 -2
  358. package/bundle/chunk-bky5a42k.js +0 -3
  359. package/bundle/chunk-bry94ar5.js +0 -2
  360. package/bundle/chunk-btzyvqkf.js +0 -2
  361. package/bundle/chunk-c94pjdfh.js +0 -2
  362. package/bundle/chunk-cct9ds5c.js +0 -2
  363. package/bundle/chunk-czn535v0.js +0 -2
  364. package/bundle/chunk-d7wd5hz1.js +0 -2
  365. package/bundle/chunk-d86cmjrp.js +0 -2
  366. package/bundle/chunk-dnq65xvn.js +0 -2
  367. package/bundle/chunk-dpqv8rtn.js +0 -2
  368. package/bundle/chunk-e9mh7s3z.js +0 -2
  369. package/bundle/chunk-ek2y5f6g.js +0 -2
  370. package/bundle/chunk-epdsay73.js +0 -2
  371. package/bundle/chunk-f89gntcy.js +0 -3
  372. package/bundle/chunk-ffnsn7tv.js +0 -2
  373. package/bundle/chunk-fkezc7ew.js +0 -2
  374. package/bundle/chunk-fsxddgj0.js +0 -2
  375. package/bundle/chunk-gbcsfg6v.js +0 -2
  376. package/bundle/chunk-gfmz85hp.js +0 -2
  377. package/bundle/chunk-gk63k4t6.js +0 -2
  378. package/bundle/chunk-j0vf8s12.js +0 -2
  379. package/bundle/chunk-j1bxt69x.js +0 -2
  380. package/bundle/chunk-jcem8s30.js +0 -2
  381. package/bundle/chunk-jjwjb9w0.js +0 -3
  382. package/bundle/chunk-jpham2a3.js +0 -2
  383. package/bundle/chunk-jzkymnr5.js +0 -2
  384. package/bundle/chunk-k0qtwnhb.js +0 -2
  385. package/bundle/chunk-k2rsky7z.js +0 -2
  386. package/bundle/chunk-kcetcysa.js +0 -2
  387. package/bundle/chunk-kjfc5v3s.js +0 -2
  388. package/bundle/chunk-kkvb2c2z.js +0 -8
  389. package/bundle/chunk-km2ayfyf.js +0 -2
  390. package/bundle/chunk-knrh89eb.js +0 -2
  391. package/bundle/chunk-ksqfjawv.js +0 -2
  392. package/bundle/chunk-m8djypsy.js +0 -11
  393. package/bundle/chunk-mjhb1q0n.js +0 -3
  394. package/bundle/chunk-mxcger73.js +0 -2
  395. package/bundle/chunk-nazkrkeb.js +0 -2
  396. package/bundle/chunk-nk01s49e.js +0 -2
  397. package/bundle/chunk-ns8b7rx1.js +0 -2
  398. package/bundle/chunk-ny6vpkx2.js +0 -2
  399. package/bundle/chunk-q0dd3ak6.js +0 -3
  400. package/bundle/chunk-q2s057bm.js +0 -2
  401. package/bundle/chunk-q5cqg2c0.js +0 -28
  402. package/bundle/chunk-qk2wnp2x.js +0 -2
  403. package/bundle/chunk-r012q335.js +0 -3
  404. package/bundle/chunk-rbdjbgkb.js +0 -2
  405. package/bundle/chunk-rxjprhgh.js +0 -2
  406. package/bundle/chunk-s3w9bmze.js +0 -2
  407. package/bundle/chunk-s3zste1a.js +0 -2
  408. package/bundle/chunk-sbt7qmwm.js +0 -3
  409. package/bundle/chunk-sf6h44pb.js +0 -2
  410. package/bundle/chunk-sgvzxs7m.js +0 -2
  411. package/bundle/chunk-sp9bndyh.js +0 -2
  412. package/bundle/chunk-vavrczqm.js +0 -3
  413. package/bundle/chunk-vg4styg5.js +0 -2
  414. package/bundle/chunk-vh09hhcs.js +0 -2
  415. package/bundle/chunk-vhktpm0n.js +0 -2
  416. package/bundle/chunk-vzjcmwry.js +0 -14
  417. package/bundle/chunk-wtp0yvqw.js +0 -2
  418. package/bundle/chunk-xmzs7q66.js +0 -2
  419. package/bundle/chunk-xv80476w.js +0 -2
  420. package/bundle/chunk-yjvr0et1.js +0 -2
  421. package/bundle/chunk-zk8n8hnh.js +0 -3
  422. package/bundle/chunk-zx3kcfkj.js +0 -2
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import"./chunk-hh4c02fh.js";var D=Object.defineProperty,x=(J,Q,W)=>(Q in J)?D(J,Q,{enumerable:!0,configurable:!0,writable:!0,value:W}):J[Q]=W,B=(J,Q,W)=>x(J,typeof Q!=="symbol"?Q+"":Q,W),I="CF_TEMP_TOKEN",L=[{name:"openai",regex:/^https:\/\/api\.openai\.com\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.openai\.com\//,"")},{name:"deepseek",regex:/^https:\/\/api\.deepseek\.com\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.deepseek\.com\//,"")},{name:"anthropic",regex:/^https:\/\/api\.anthropic\.com\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.anthropic\.com\//,""),headerKey:"x-api-key"},{name:"google-ai-studio",regex:/^https:\/\/generativelanguage\.googleapis\.com\//,headerKey:"x-goog-api-key",transformEndpoint:(J)=>J.replace(/^https:\/\/generativelanguage\.googleapis\.com\//,"")},{name:"google-vertex-ai",regex:/aiplatform\.googleapis\.com/,transformEndpoint:(J)=>J.replace(/https:\/\/(.*)[-]?aiplatform\.googleapis\.com\//,"")},{name:"grok",regex:/^https:\/\/api\.x\.ai\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.x\.ai\//,"")},{name:"mistral",regex:/^https:\/\/api\.mistral\.ai\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.mistral\.ai\//,"")},{name:"perplexity-ai",regex:/^https:\/\/api\.perplexity\.ai\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.perplexity\.ai\//,"")},{name:"replicate",regex:/^https:\/\/api\.replicate\.com\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.replicate\.com\//,"")},{name:"groq",regex:/^https:\/\/api\.groq\.com\/openai\/v1\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.groq\.com\/openai\/v1\//,"")},{name:"google-vertex-ai",regex:/^https:\/\/(?:[a-z0-9]+-)*aiplatform\.googleapis\.com\//,transformEndpoint:(J)=>J.replace(/^https:\/\/(?:[a-z0-9]+-)*aiplatform\.googleapis\.com\//,""),headerKey:"authorization"},{name:"azure-openai",regex:/^https:\/\/(?<resource>[^.]+)\.openai\.azure\.com\/openai\/deployments\/(?<deployment>[^/]+)\/(?<rest>.*)$/,transformEndpoint:(J)=>{let Q=J.match(/^https:\/\/(?<resource>[^.]+)\.openai\.azure\.com\/openai\/deployments\/(?<deployment>[^/]+)\/(?<rest>.*)$/);if(!Q||!Q.groups)return J;let{resource:W,deployment:X,rest:Z}=Q.groups;if(!W||!X||!Z)throw Error("Failed to parse Azure OpenAI endpoint URL.");return`${W}/${X}/${Z}`},headerKey:"api-key"},{name:"openrouter",regex:/^https:\/\/openrouter\.ai\/api\//,transformEndpoint:(J)=>J.replace(/^https:\/\/openrouter\.ai\/api\//,"")},{name:"compat",regex:/^https:\/\/gateway\.ai\.cloudflare\.com\/v1\/compat\//,transformEndpoint:(J)=>J.replace(/^https:\/\/gateway\.ai\.cloudflare\.com\/v1\/compat\//,"")}],z=class extends Error{},P=class extends Error{},T=class extends Error{};async function U(J){return await new Response(J).json()}var H=class{constructor(J,Q){B(this,"specificationVersion","v3"),B(this,"defaultObjectGenerationMode","json"),B(this,"supportedUrls",{}),B(this,"models"),B(this,"config"),this.models=J,this.config=Q}get modelId(){if(!this.models[0])throw Error("models cannot be empty array");return this.models[0].modelId}get provider(){if(!this.models[0])throw Error("models cannot be empty array");return this.models[0].provider}async processModelRequest(J,Q){let W=[];for(let S of this.models){if(!S.config||!Object.keys(S.config).includes("fetch"))throw Error(`Sorry, but provider "${S.provider}" is currently not supported, please open a issue in the github repo!`);S.config.fetch=(V,$)=>{throw W.push({modelProvider:S.provider,request:$,url:V}),new z("Stopping provider execution...")};try{await S[Q](J)}catch(V){if(!(V instanceof z))throw V}}let X=await Promise.all(W.map(async(S)=>{let V=null;for(let R of L)if(R.regex.test(S.url))V=R;if(!V)throw Error(`Sorry, but provider "${S.modelProvider}" is currently not supported, please open a issue in the github repo!`);if(!S.request.body)throw Error("Ai Gateway provider received an unexpected empty body");let $=V.headerKey??"authorization";if(("get"in S.request.headers?S.request.headers.get($):S.request.headers[$])?.indexOf(I)!==-1)if("delete"in S.request.headers)S.request.headers.delete($);else delete S.request.headers[$];return{endpoint:V.transformEndpoint(S.url),headers:S.request.headers,provider:V.name,query:await U(S.request.body)}})),Z=N(this.config.options??{}),Y;if("binding"in this.config){let S=X.map((V)=>({...V,headers:{...V.headers??{},...Object.fromEntries(Z.entries())}}));Y=await this.config.binding.run(S,{signal:J.abortSignal})}else Z.set("Content-Type","application/json"),Z.set("cf-aig-authorization",`Bearer ${this.config.apiKey}`),Y=await fetch(`https://gateway.ai.cloudflare.com/v1/${this.config.accountId}/${this.config.gateway}`,{body:JSON.stringify(X),headers:Z,method:"POST",signal:J.abortSignal});if(Y.status===400){let V=await Y.clone().json();if(V.success===!1&&V.error&&V.error.length>0&&V.error[0]?.code===2001)throw new P("This AI gateway does not exist")}else if(Y.status===401){let V=await Y.clone().json();if(V.success===!1&&V.error&&V.error.length>0&&V.error[0]?.code===2009)throw new T("Your AI Gateway has authentication active, but you didn't provide a valid apiKey")}let K=Number.parseInt(Y.headers.get("cf-aig-step")??"0",10);if(!this.models[K])throw Error("Unexpected AI Gateway Error");return this.models[K].config={...this.models[K].config,fetch:(S,V)=>Y},this.models[K][Q](J)}async doStream(J){return this.processModelRequest(J,"doStream")}async doGenerate(J){return this.processModelRequest(J,"doGenerate")}};function f(J){let Q=(X)=>{return new H(Array.isArray(X)?X:[X],J)},W=(X)=>Q(X);return W.chat=Q,W}function N(J){let Q=new Headers;if(J.skipCache===!0)Q.set("cf-skip-cache","true");if(J.cacheTtl)Q.set("cf-cache-ttl",J.cacheTtl.toString());if(J.metadata)Q.set("cf-aig-metadata",JSON.stringify(J.metadata));if(J.cacheKey)Q.set("cf-aig-cache-key",J.cacheKey);if(J.collectLog!==void 0)Q.set("cf-aig-collect-log",J.collectLog===!0?"true":"false");if(J.eventId!==void 0)Q.set("cf-aig-event-id",J.eventId);if(J.requestTimeoutMs!==void 0)Q.set("cf-aig-request-timeout",J.requestTimeoutMs.toString());if(J.retries!==void 0){if(J.retries.maxAttempts!==void 0)Q.set("cf-aig-max-attempts",J.retries.maxAttempts.toString());if(J.retries.retryDelayMs!==void 0)Q.set("cf-aig-retry-delay",J.retries.retryDelayMs.toString());if(J.retries.backoff!==void 0)Q.set("cf-aig-backoff",J.retries.backoff)}return Q}export{N as parseAiGatewayOptions,f as createAiGateway,T as AiGatewayUnauthorizedError,z as AiGatewayInternalFetchError,P as AiGatewayDoesNotExist,H as AiGatewayChatLanguageModel};
2
+ import"./chunk-0rmmg3g4.js";var D=Object.defineProperty,x=(J,Q,W)=>(Q in J)?D(J,Q,{enumerable:!0,configurable:!0,writable:!0,value:W}):J[Q]=W,B=(J,Q,W)=>x(J,typeof Q!=="symbol"?Q+"":Q,W),I="CF_TEMP_TOKEN",L=[{name:"openai",regex:/^https:\/\/api\.openai\.com\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.openai\.com\//,"")},{name:"deepseek",regex:/^https:\/\/api\.deepseek\.com\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.deepseek\.com\//,"")},{name:"anthropic",regex:/^https:\/\/api\.anthropic\.com\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.anthropic\.com\//,""),headerKey:"x-api-key"},{name:"google-ai-studio",regex:/^https:\/\/generativelanguage\.googleapis\.com\//,headerKey:"x-goog-api-key",transformEndpoint:(J)=>J.replace(/^https:\/\/generativelanguage\.googleapis\.com\//,"")},{name:"google-vertex-ai",regex:/aiplatform\.googleapis\.com/,transformEndpoint:(J)=>J.replace(/https:\/\/(.*)[-]?aiplatform\.googleapis\.com\//,"")},{name:"grok",regex:/^https:\/\/api\.x\.ai\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.x\.ai\//,"")},{name:"mistral",regex:/^https:\/\/api\.mistral\.ai\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.mistral\.ai\//,"")},{name:"perplexity-ai",regex:/^https:\/\/api\.perplexity\.ai\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.perplexity\.ai\//,"")},{name:"replicate",regex:/^https:\/\/api\.replicate\.com\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.replicate\.com\//,"")},{name:"groq",regex:/^https:\/\/api\.groq\.com\/openai\/v1\//,transformEndpoint:(J)=>J.replace(/^https:\/\/api\.groq\.com\/openai\/v1\//,"")},{name:"google-vertex-ai",regex:/^https:\/\/(?:[a-z0-9]+-)*aiplatform\.googleapis\.com\//,transformEndpoint:(J)=>J.replace(/^https:\/\/(?:[a-z0-9]+-)*aiplatform\.googleapis\.com\//,""),headerKey:"authorization"},{name:"azure-openai",regex:/^https:\/\/(?<resource>[^.]+)\.openai\.azure\.com\/openai\/deployments\/(?<deployment>[^/]+)\/(?<rest>.*)$/,transformEndpoint:(J)=>{let Q=J.match(/^https:\/\/(?<resource>[^.]+)\.openai\.azure\.com\/openai\/deployments\/(?<deployment>[^/]+)\/(?<rest>.*)$/);if(!Q||!Q.groups)return J;let{resource:W,deployment:X,rest:Z}=Q.groups;if(!W||!X||!Z)throw Error("Failed to parse Azure OpenAI endpoint URL.");return`${W}/${X}/${Z}`},headerKey:"api-key"},{name:"openrouter",regex:/^https:\/\/openrouter\.ai\/api\//,transformEndpoint:(J)=>J.replace(/^https:\/\/openrouter\.ai\/api\//,"")},{name:"compat",regex:/^https:\/\/gateway\.ai\.cloudflare\.com\/v1\/compat\//,transformEndpoint:(J)=>J.replace(/^https:\/\/gateway\.ai\.cloudflare\.com\/v1\/compat\//,"")}],z=class extends Error{},P=class extends Error{},T=class extends Error{};async function U(J){return await new Response(J).json()}var H=class{constructor(J,Q){B(this,"specificationVersion","v3"),B(this,"defaultObjectGenerationMode","json"),B(this,"supportedUrls",{}),B(this,"models"),B(this,"config"),this.models=J,this.config=Q}get modelId(){if(!this.models[0])throw Error("models cannot be empty array");return this.models[0].modelId}get provider(){if(!this.models[0])throw Error("models cannot be empty array");return this.models[0].provider}async processModelRequest(J,Q){let W=[];for(let S of this.models){if(!S.config||!Object.keys(S.config).includes("fetch"))throw Error(`Sorry, but provider "${S.provider}" is currently not supported, please open a issue in the github repo!`);S.config.fetch=(V,$)=>{throw W.push({modelProvider:S.provider,request:$,url:V}),new z("Stopping provider execution...")};try{await S[Q](J)}catch(V){if(!(V instanceof z))throw V}}let X=await Promise.all(W.map(async(S)=>{let V=null;for(let R of L)if(R.regex.test(S.url))V=R;if(!V)throw Error(`Sorry, but provider "${S.modelProvider}" is currently not supported, please open a issue in the github repo!`);if(!S.request.body)throw Error("Ai Gateway provider received an unexpected empty body");let $=V.headerKey??"authorization";if(("get"in S.request.headers?S.request.headers.get($):S.request.headers[$])?.indexOf(I)!==-1)if("delete"in S.request.headers)S.request.headers.delete($);else delete S.request.headers[$];return{endpoint:V.transformEndpoint(S.url),headers:S.request.headers,provider:V.name,query:await U(S.request.body)}})),Z=N(this.config.options??{}),Y;if("binding"in this.config){let S=X.map((V)=>({...V,headers:{...V.headers??{},...Object.fromEntries(Z.entries())}}));Y=await this.config.binding.run(S,{signal:J.abortSignal})}else Z.set("Content-Type","application/json"),Z.set("cf-aig-authorization",`Bearer ${this.config.apiKey}`),Y=await fetch(`https://gateway.ai.cloudflare.com/v1/${this.config.accountId}/${this.config.gateway}`,{body:JSON.stringify(X),headers:Z,method:"POST",signal:J.abortSignal});if(Y.status===400){let V=await Y.clone().json();if(V.success===!1&&V.error&&V.error.length>0&&V.error[0]?.code===2001)throw new P("This AI gateway does not exist")}else if(Y.status===401){let V=await Y.clone().json();if(V.success===!1&&V.error&&V.error.length>0&&V.error[0]?.code===2009)throw new T("Your AI Gateway has authentication active, but you didn't provide a valid apiKey")}let K=Number.parseInt(Y.headers.get("cf-aig-step")??"0",10);if(!this.models[K])throw Error("Unexpected AI Gateway Error");return this.models[K].config={...this.models[K].config,fetch:(S,V)=>Y},this.models[K][Q](J)}async doStream(J){return this.processModelRequest(J,"doStream")}async doGenerate(J){return this.processModelRequest(J,"doGenerate")}};function f(J){let Q=(X)=>{return new H(Array.isArray(X)?X:[X],J)},W=(X)=>Q(X);return W.chat=Q,W}function N(J){let Q=new Headers;if(J.skipCache===!0)Q.set("cf-skip-cache","true");if(J.cacheTtl)Q.set("cf-cache-ttl",J.cacheTtl.toString());if(J.metadata)Q.set("cf-aig-metadata",JSON.stringify(J.metadata));if(J.cacheKey)Q.set("cf-aig-cache-key",J.cacheKey);if(J.collectLog!==void 0)Q.set("cf-aig-collect-log",J.collectLog===!0?"true":"false");if(J.eventId!==void 0)Q.set("cf-aig-event-id",J.eventId);if(J.requestTimeoutMs!==void 0)Q.set("cf-aig-request-timeout",J.requestTimeoutMs.toString());if(J.retries!==void 0){if(J.retries.maxAttempts!==void 0)Q.set("cf-aig-max-attempts",J.retries.maxAttempts.toString());if(J.retries.retryDelayMs!==void 0)Q.set("cf-aig-retry-delay",J.retries.retryDelayMs.toString());if(J.retries.backoff!==void 0)Q.set("cf-aig-backoff",J.retries.backoff)}return Q}export{N as parseAiGatewayOptions,f as createAiGateway,T as AiGatewayUnauthorizedError,z as AiGatewayInternalFetchError,P as AiGatewayDoesNotExist,H as AiGatewayChatLanguageModel};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{AP as d3,CP as P5}from"./chunk-hh4c02fh.js";function R($,X,Y,J,Q){if(J==="m")throw TypeError("Private method is not writable");if(J==="a"&&!Q)throw TypeError("Private accessor was defined without a setter");if(typeof X==="function"?$!==X||!Q:!X.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?Q.call($,Y):Q?Q.value=Y:X.set($,Y),Y}function M($,X,Y,J){if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a getter");if(typeof X==="function"?$!==X||!J:!X.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return Y==="m"?J:Y==="a"?J.call($):J?J.value:X.get($)}var t4=function(){let{crypto:$}=globalThis;if($?.randomUUID)return t4=$.randomUUID.bind($),$.randomUUID();let X=new Uint8Array(1),Y=$?()=>$.getRandomValues(X)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(J)=>(+J^Y()&15>>+J/4).toString(16))};function e$($){return typeof $==="object"&&$!==null&&(("name"in $)&&$.name==="AbortError"||("message"in $)&&String($.message).includes("FetchRequestCanceledException"))}var M8=($)=>{if($ instanceof Error)return $;if(typeof $==="object"&&$!==null){try{if(Object.prototype.toString.call($)==="[object Error]"){let X=Error($.message,$.cause?{cause:$.cause}:{});if($.stack)X.stack=$.stack;if($.cause&&!X.cause)X.cause=$.cause;if($.name)X.name=$.name;return X}}catch{}try{return Error(JSON.stringify($))}catch{}}return Error($)};class f extends Error{}class X$ extends f{constructor($,X,Y,J){super(`${X$.makeMessage($,X,Y)}`);this.status=$,this.headers=J,this.requestID=J?.get("request-id"),this.error=X}static makeMessage($,X,Y){let J=X?.message?typeof X.message==="string"?X.message:JSON.stringify(X.message):X?JSON.stringify(X):Y;if($&&J)return`${$} ${J}`;if($)return`${$} status code (no body)`;if(J)return J;return"(no status code or body)"}static generate($,X,Y,J){if(!$||!J)return new f0({message:Y,cause:M8(X)});let Q=X;if($===400)return new E8($,Q,Y,J);if($===401)return new L8($,Q,Y,J);if($===403)return new Z8($,Q,Y,J);if($===404)return new S8($,Q,Y,J);if($===409)return new A8($,Q,Y,J);if($===422)return new C8($,Q,Y,J);if($===429)return new D8($,Q,Y,J);if($>=500)return new R8($,Q,Y,J);return new X$($,Q,Y,J)}}class q$ extends X${constructor({message:$}={}){super(void 0,void 0,$||"Request was aborted.",void 0)}}class f0 extends X${constructor({message:$,cause:X}){super(void 0,void 0,$||"Connection error.",void 0);if(X)this.cause=X}}class O8 extends f0{constructor({message:$}={}){super({message:$??"Request timed out."})}}class E8 extends X${}class L8 extends X${}class Z8 extends X${}class S8 extends X${}class A8 extends X${}class C8 extends X${}class D8 extends X${}class R8 extends X${}var o5=/^[a-z][a-z0-9+.-]*:/i,E7=($)=>{return o5.test($)},o4=($)=>(o4=Array.isArray,o4($)),e4=o4;function c6($){if(typeof $!=="object")return{};return $??{}}function L7($){if(!$)return!0;for(let X in $)return!1;return!0}function Z7($,X){return Object.prototype.hasOwnProperty.call($,X)}var S7=($,X)=>{if(typeof X!=="number"||!Number.isInteger(X))throw new f(`${$} must be an integer`);if(X<0)throw new f(`${$} must be a positive integer`);return X};var l6=($)=>{try{return JSON.parse($)}catch(X){return}};var A7=($)=>new Promise((X)=>setTimeout(X,$));var w0="0.71.2";var T7=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"};function e5(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var $Y=()=>{let $=e5();if($==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":w0,"X-Stainless-OS":D7(Deno.build.os),"X-Stainless-Arch":C7(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":w0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if($==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":w0,"X-Stainless-OS":D7(globalThis.process.platform??"unknown"),"X-Stainless-Arch":C7(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let X=XY();if(X)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":w0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${X.browser}`,"X-Stainless-Runtime-Version":X.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":w0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function XY(){if(typeof navigator>"u"||!navigator)return null;let $=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:X,pattern:Y}of $){let J=Y.exec(navigator.userAgent);if(J){let Q=J[1]||0,W=J[2]||0,z=J[3]||0;return{browser:X,version:`${Q}.${W}.${z}`}}}return null}var C7=($)=>{if($==="x32")return"x32";if($==="x86_64"||$==="x64")return"x64";if($==="arm")return"arm";if($==="aarch64"||$==="arm64")return"arm64";if($)return`other:${$}`;return"unknown"},D7=($)=>{if($=$.toLowerCase(),$.includes("ios"))return"iOS";if($==="android")return"Android";if($==="darwin")return"MacOS";if($==="win32")return"Windows";if($==="freebsd")return"FreeBSD";if($==="openbsd")return"OpenBSD";if($==="linux")return"Linux";if($)return`Other:${$}`;return"Unknown"},R7,_7=()=>{return R7??(R7=$Y())};function P7(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function $X(...$){let X=globalThis.ReadableStream;if(typeof X>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new X(...$)}function p6($){let X=Symbol.asyncIterator in $?$[Symbol.asyncIterator]():$[Symbol.iterator]();return $X({start(){},async pull(Y){let{done:J,value:Q}=await X.next();if(J)Y.close();else Y.enqueue(Q)},async cancel(){await X.return?.()}})}function T8($){if($[Symbol.asyncIterator])return $;let X=$.getReader();return{async next(){try{let Y=await X.read();if(Y?.done)X.releaseLock();return Y}catch(Y){throw X.releaseLock(),Y}},async return(){let Y=X.cancel();return X.releaseLock(),await Y,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function j7($){if($===null||typeof $!=="object")return;if($[Symbol.asyncIterator]){await $[Symbol.asyncIterator]().return?.();return}let X=$.getReader(),Y=X.cancel();X.releaseLock(),await Y}var k7=({headers:$,body:X})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(X)}};function b7($){let X=0;for(let Q of $)X+=Q.length;let Y=new Uint8Array(X),J=0;for(let Q of $)Y.set(Q,J),J+=Q.length;return Y}var x7;function _8($){let X;return(x7??(X=new globalThis.TextEncoder,x7=X.encode.bind(X)))($)}var f7;function XX($){let X;return(f7??(X=new globalThis.TextDecoder,f7=X.decode.bind(X)))($)}var Z$,S$;class N0{constructor(){Z$.set(this,void 0),S$.set(this,void 0),R(this,Z$,new Uint8Array,"f"),R(this,S$,null,"f")}decode($){if($==null)return[];let X=$ instanceof ArrayBuffer?new Uint8Array($):typeof $==="string"?_8($):$;R(this,Z$,b7([M(this,Z$,"f"),X]),"f");let Y=[],J;while((J=QY(M(this,Z$,"f"),M(this,S$,"f")))!=null){if(J.carriage&&M(this,S$,"f")==null){R(this,S$,J.index,"f");continue}if(M(this,S$,"f")!=null&&(J.index!==M(this,S$,"f")+1||J.carriage)){Y.push(XX(M(this,Z$,"f").subarray(0,M(this,S$,"f")-1))),R(this,Z$,M(this,Z$,"f").subarray(M(this,S$,"f")),"f"),R(this,S$,null,"f");continue}let Q=M(this,S$,"f")!==null?J.preceding-1:J.preceding,W=XX(M(this,Z$,"f").subarray(0,Q));Y.push(W),R(this,Z$,M(this,Z$,"f").subarray(J.index),"f"),R(this,S$,null,"f")}return Y}flush(){if(!M(this,Z$,"f").length)return[];return this.decode(`
2
+ import{fO as d3,hO as P5}from"./chunk-0rmmg3g4.js";function R($,X,Y,J,Q){if(J==="m")throw TypeError("Private method is not writable");if(J==="a"&&!Q)throw TypeError("Private accessor was defined without a setter");if(typeof X==="function"?$!==X||!Q:!X.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?Q.call($,Y):Q?Q.value=Y:X.set($,Y),Y}function M($,X,Y,J){if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a getter");if(typeof X==="function"?$!==X||!J:!X.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return Y==="m"?J:Y==="a"?J.call($):J?J.value:X.get($)}var t4=function(){let{crypto:$}=globalThis;if($?.randomUUID)return t4=$.randomUUID.bind($),$.randomUUID();let X=new Uint8Array(1),Y=$?()=>$.getRandomValues(X)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(J)=>(+J^Y()&15>>+J/4).toString(16))};function e$($){return typeof $==="object"&&$!==null&&(("name"in $)&&$.name==="AbortError"||("message"in $)&&String($.message).includes("FetchRequestCanceledException"))}var M8=($)=>{if($ instanceof Error)return $;if(typeof $==="object"&&$!==null){try{if(Object.prototype.toString.call($)==="[object Error]"){let X=Error($.message,$.cause?{cause:$.cause}:{});if($.stack)X.stack=$.stack;if($.cause&&!X.cause)X.cause=$.cause;if($.name)X.name=$.name;return X}}catch{}try{return Error(JSON.stringify($))}catch{}}return Error($)};class f extends Error{}class X$ extends f{constructor($,X,Y,J){super(`${X$.makeMessage($,X,Y)}`);this.status=$,this.headers=J,this.requestID=J?.get("request-id"),this.error=X}static makeMessage($,X,Y){let J=X?.message?typeof X.message==="string"?X.message:JSON.stringify(X.message):X?JSON.stringify(X):Y;if($&&J)return`${$} ${J}`;if($)return`${$} status code (no body)`;if(J)return J;return"(no status code or body)"}static generate($,X,Y,J){if(!$||!J)return new f0({message:Y,cause:M8(X)});let Q=X;if($===400)return new E8($,Q,Y,J);if($===401)return new L8($,Q,Y,J);if($===403)return new Z8($,Q,Y,J);if($===404)return new S8($,Q,Y,J);if($===409)return new A8($,Q,Y,J);if($===422)return new C8($,Q,Y,J);if($===429)return new D8($,Q,Y,J);if($>=500)return new R8($,Q,Y,J);return new X$($,Q,Y,J)}}class q$ extends X${constructor({message:$}={}){super(void 0,void 0,$||"Request was aborted.",void 0)}}class f0 extends X${constructor({message:$,cause:X}){super(void 0,void 0,$||"Connection error.",void 0);if(X)this.cause=X}}class O8 extends f0{constructor({message:$}={}){super({message:$??"Request timed out."})}}class E8 extends X${}class L8 extends X${}class Z8 extends X${}class S8 extends X${}class A8 extends X${}class C8 extends X${}class D8 extends X${}class R8 extends X${}var o5=/^[a-z][a-z0-9+.-]*:/i,E7=($)=>{return o5.test($)},o4=($)=>(o4=Array.isArray,o4($)),e4=o4;function c6($){if(typeof $!=="object")return{};return $??{}}function L7($){if(!$)return!0;for(let X in $)return!1;return!0}function Z7($,X){return Object.prototype.hasOwnProperty.call($,X)}var S7=($,X)=>{if(typeof X!=="number"||!Number.isInteger(X))throw new f(`${$} must be an integer`);if(X<0)throw new f(`${$} must be a positive integer`);return X};var l6=($)=>{try{return JSON.parse($)}catch(X){return}};var A7=($)=>new Promise((X)=>setTimeout(X,$));var w0="0.71.2";var T7=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"};function e5(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var $Y=()=>{let $=e5();if($==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":w0,"X-Stainless-OS":D7(Deno.build.os),"X-Stainless-Arch":C7(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":w0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if($==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":w0,"X-Stainless-OS":D7(globalThis.process.platform??"unknown"),"X-Stainless-Arch":C7(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let X=XY();if(X)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":w0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${X.browser}`,"X-Stainless-Runtime-Version":X.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":w0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function XY(){if(typeof navigator>"u"||!navigator)return null;let $=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:X,pattern:Y}of $){let J=Y.exec(navigator.userAgent);if(J){let Q=J[1]||0,W=J[2]||0,z=J[3]||0;return{browser:X,version:`${Q}.${W}.${z}`}}}return null}var C7=($)=>{if($==="x32")return"x32";if($==="x86_64"||$==="x64")return"x64";if($==="arm")return"arm";if($==="aarch64"||$==="arm64")return"arm64";if($)return`other:${$}`;return"unknown"},D7=($)=>{if($=$.toLowerCase(),$.includes("ios"))return"iOS";if($==="android")return"Android";if($==="darwin")return"MacOS";if($==="win32")return"Windows";if($==="freebsd")return"FreeBSD";if($==="openbsd")return"OpenBSD";if($==="linux")return"Linux";if($)return`Other:${$}`;return"Unknown"},R7,_7=()=>{return R7??(R7=$Y())};function P7(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function $X(...$){let X=globalThis.ReadableStream;if(typeof X>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new X(...$)}function p6($){let X=Symbol.asyncIterator in $?$[Symbol.asyncIterator]():$[Symbol.iterator]();return $X({start(){},async pull(Y){let{done:J,value:Q}=await X.next();if(J)Y.close();else Y.enqueue(Q)},async cancel(){await X.return?.()}})}function T8($){if($[Symbol.asyncIterator])return $;let X=$.getReader();return{async next(){try{let Y=await X.read();if(Y?.done)X.releaseLock();return Y}catch(Y){throw X.releaseLock(),Y}},async return(){let Y=X.cancel();return X.releaseLock(),await Y,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function j7($){if($===null||typeof $!=="object")return;if($[Symbol.asyncIterator]){await $[Symbol.asyncIterator]().return?.();return}let X=$.getReader(),Y=X.cancel();X.releaseLock(),await Y}var k7=({headers:$,body:X})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(X)}};function b7($){let X=0;for(let Q of $)X+=Q.length;let Y=new Uint8Array(X),J=0;for(let Q of $)Y.set(Q,J),J+=Q.length;return Y}var x7;function _8($){let X;return(x7??(X=new globalThis.TextEncoder,x7=X.encode.bind(X)))($)}var f7;function XX($){let X;return(f7??(X=new globalThis.TextDecoder,f7=X.decode.bind(X)))($)}var Z$,S$;class N0{constructor(){Z$.set(this,void 0),S$.set(this,void 0),R(this,Z$,new Uint8Array,"f"),R(this,S$,null,"f")}decode($){if($==null)return[];let X=$ instanceof ArrayBuffer?new Uint8Array($):typeof $==="string"?_8($):$;R(this,Z$,b7([M(this,Z$,"f"),X]),"f");let Y=[],J;while((J=QY(M(this,Z$,"f"),M(this,S$,"f")))!=null){if(J.carriage&&M(this,S$,"f")==null){R(this,S$,J.index,"f");continue}if(M(this,S$,"f")!=null&&(J.index!==M(this,S$,"f")+1||J.carriage)){Y.push(XX(M(this,Z$,"f").subarray(0,M(this,S$,"f")-1))),R(this,Z$,M(this,Z$,"f").subarray(M(this,S$,"f")),"f"),R(this,S$,null,"f");continue}let Q=M(this,S$,"f")!==null?J.preceding-1:J.preceding,W=XX(M(this,Z$,"f").subarray(0,Q));Y.push(W),R(this,Z$,M(this,Z$,"f").subarray(J.index),"f"),R(this,S$,null,"f")}return Y}flush(){if(!M(this,Z$,"f").length)return[];return this.decode(`
3
3
  `)}}Z$=new WeakMap,S$=new WeakMap;N0.NEWLINE_CHARS=new Set([`
4
4
  `,"\r"]);N0.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function QY($,X){for(let Q=X??0;Q<$.length;Q++){if($[Q]===10)return{preceding:Q,index:Q+1,carriage:!1};if($[Q]===13)return{preceding:Q,index:Q+1,carriage:!0}}return null}function I7($){for(let J=0;J<$.length-1;J++){if($[J]===10&&$[J+1]===10)return J+2;if($[J]===13&&$[J+1]===13)return J+2;if($[J]===13&&$[J+1]===10&&J+3<$.length&&$[J+2]===13&&$[J+3]===10)return J+4}return-1}var n6={off:0,error:200,warn:300,info:400,debug:500},YX=($,X,Y)=>{if(!$)return;if(Z7(n6,$))return $;G$(Y).warn(`${X} was set to ${JSON.stringify($)}, expected one of ${JSON.stringify(Object.keys(n6))}`);return};function P8(){}function i6($,X,Y){if(!X||n6[$]>n6[Y])return P8;else return X[$].bind(X)}var WY={error:P8,warn:P8,info:P8,debug:P8},v7=new WeakMap;function G$($){let X=$.logger,Y=$.logLevel??"off";if(!X)return WY;let J=v7.get(X);if(J&&J[0]===Y)return J[1];let Q={error:i6("error",X,Y),warn:i6("warn",X,Y),info:i6("info",X,Y),debug:i6("debug",X,Y)};return v7.set(X,[Y,Q]),Q}var $0=($)=>{if($.options)$.options={...$.options},delete $.options.headers;if($.headers)$.headers=Object.fromEntries(($.headers instanceof Headers?[...$.headers]:Object.entries($.headers)).map(([X,Y])=>[X,X.toLowerCase()==="x-api-key"||X.toLowerCase()==="authorization"||X.toLowerCase()==="cookie"||X.toLowerCase()==="set-cookie"?"***":Y]));if("retryOfRequestLogID"in $){if($.retryOfRequestLogID)$.retryOf=$.retryOfRequestLogID;delete $.retryOfRequestLogID}return $};var j8;class A${constructor($,X,Y){this.iterator=$,j8.set(this,void 0),this.controller=X,R(this,j8,Y,"f")}static fromSSEResponse($,X,Y){let J=!1,Q=Y?G$(Y):console;async function*W(){if(J)throw new f("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let z=!1;try{for await(let G of zY($,X)){if(G.event==="completion")try{yield JSON.parse(G.data)}catch(V){throw Q.error("Could not parse message into JSON:",G.data),Q.error("From chunk:",G.raw),V}if(G.event==="message_start"||G.event==="message_delta"||G.event==="message_stop"||G.event==="content_block_start"||G.event==="content_block_delta"||G.event==="content_block_stop")try{yield JSON.parse(G.data)}catch(V){throw Q.error("Could not parse message into JSON:",G.data),Q.error("From chunk:",G.raw),V}if(G.event==="ping")continue;if(G.event==="error")throw new X$(void 0,l6(G.data)??G.data,void 0,$.headers)}z=!0}catch(G){if(e$(G))return;throw G}finally{if(!z)X.abort()}}return new A$(W,X,Y)}static fromReadableStream($,X,Y){let J=!1;async function*Q(){let z=new N0,G=T8($);for await(let V of G)for(let H of z.decode(V))yield H;for(let V of z.flush())yield V}async function*W(){if(J)throw new f("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let z=!1;try{for await(let G of Q()){if(z)continue;if(G)yield JSON.parse(G)}z=!0}catch(G){if(e$(G))return;throw G}finally{if(!z)X.abort()}}return new A$(W,X,Y)}[(j8=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let $=[],X=[],Y=this.iterator(),J=(Q)=>{return{next:()=>{if(Q.length===0){let W=Y.next();$.push(W),X.push(W)}return Q.shift()}}};return[new A$(()=>J($),this.controller,M(this,j8,"f")),new A$(()=>J(X),this.controller,M(this,j8,"f"))]}toReadableStream(){let $=this,X;return $X({async start(){X=$[Symbol.asyncIterator]()},async pull(Y){try{let{value:J,done:Q}=await X.next();if(Q)return Y.close();let W=_8(JSON.stringify(J)+`
5
5
  `);Y.enqueue(W)}catch(J){Y.error(J)}},async cancel(){await X.return?.()}})}}async function*zY($,X){if(!$.body){if(X.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new f("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new f("Attempted to iterate over a response with no body")}let Y=new y7,J=new N0,Q=T8($.body);for await(let W of GY(Q))for(let z of J.decode(W)){let G=Y.decode(z);if(G)yield G}for(let W of J.flush()){let z=Y.decode(W);if(z)yield z}}async function*GY($){let X=new Uint8Array;for await(let Y of $){if(Y==null)continue;let J=Y instanceof ArrayBuffer?new Uint8Array(Y):typeof Y==="string"?_8(Y):Y,Q=new Uint8Array(X.length+J.length);Q.set(X),Q.set(J,X.length),X=Q;let W;while((W=I7(X))!==-1)yield X.slice(0,W),X=X.slice(W)}if(X.length>0)yield X}class y7{constructor(){this.event=null,this.data=[],this.chunks=[]}decode($){if($.endsWith("\r"))$=$.substring(0,$.length-1);if(!$){if(!this.event&&!this.data.length)return null;let Q={event:this.event,data:this.data.join(`
@@ -99,4 +99,4 @@ ${Q.content}`:Q.content;continue}if(Q.role==="user"){let W=[];for(let z of Q.con
99
99
  `,wW=600000,d5=class{config;fetchFn;cache=new Map;constructor($){this.config=$,this.fetchFn=$.fetch??fetch}async discover($){let X=this.cache.get($);if(X&&X.expiresAt>Date.now())return X.data;let Y=`${this.config.instanceUrl}/api/graphql`;try{let J=await this.fetchFn(Y,{method:"POST",headers:{...this.config.getHeaders(),"Content-Type":"application/json"},body:JSON.stringify({query:qW,variables:{rootNamespaceId:$}})});if(!J.ok){let H=await J.text();throw new x({message:`Model discovery GraphQL request failed: ${J.status} ${J.statusText} - ${H}`,statusCode:J.status,responseBody:H})}let Q=await J.json();if(Q.errors&&Q.errors.length>0)throw new x({message:`Model discovery GraphQL errors: ${Q.errors.map((H)=>H.message).join(", ")}`});let W=Q.data?.aiChatAvailableModels,z=Q.data?.metadata,G=z?.featureFlags?.find((H)=>H.name==="ai_user_model_switching")?.enabled??!1,V={defaultModel:W?.defaultModel??null,selectableModels:W?.selectableModels??[],pinnedModel:W?.pinnedModel??null,modelSwitchingEnabled:G,instanceVersion:z?.version??null};return this.cache.set($,{data:V,expiresAt:Date.now()+wW}),V}catch(J){if(J instanceof x)throw J;throw new x({message:`Model discovery failed: ${J}`,cause:J})}}async getEffectiveModelRef($,X){let Y=await this.discover($);if(Y.pinnedModel)return Y.pinnedModel.ref;if(X&&Y.modelSwitchingEnabled){if(Y.selectableModels.some((Q)=>Q.ref===X))return X}return Y.defaultModel?.ref??null}invalidateCache(){this.cache.clear()}},NW=600000;function UW(){let $=process.env.XDG_CACHE_HOME||h6.join(c5.homedir(),".cache");return h6.join($,"opencode","gitlab-workflow-model-cache.json")}function FW($,X){let Y=(X||"https://gitlab.com").replace(/\/$/,"");return l5.createHash("sha256").update(`${$}\x00${Y}`).digest("hex").slice(0,12)}var p5=class{filePath;key;constructor($,X){this.filePath=UW(),this.key=FW($,X)}readAll(){try{if(!u$.existsSync(this.filePath))return{};let $=u$.readFileSync(this.filePath,"utf-8");return JSON.parse($)}catch{return{}}}writeAll($){try{let X=h6.dirname(this.filePath);u$.mkdirSync(X,{recursive:!0,mode:448}),u$.writeFileSync(this.filePath,JSON.stringify($,null,2),{mode:384})}catch{}}load(){return this.readAll()[this.key]??null}save($){let X=this.readAll();X[this.key]=$,this.writeAll(X)}isDiscoveryExpired(){let $=this.load();if(!$?.discovery||!$.updatedAt)return!0;return Date.now()-new Date($.updatedAt).getTime()>NW}saveDiscovery($,X){let Y=this.load();this.save({discovery:$,project:X!==void 0?X:Y?.project??null,selectedModelRef:Y?.selectedModelRef??null,selectedModelName:Y?.selectedModelName??null,updatedAt:new Date().toISOString()})}saveSelection($,X){let Y=this.load(),J=X;if(!J&&$&&Y?.discovery){let Q=Y.discovery;J=(Q.pinnedModel?.ref===$?Q.pinnedModel:Q.selectableModels.find((z)=>z.ref===$)??(Q.defaultModel?.ref===$?Q.defaultModel:null))?.name??null}this.save({discovery:Y?.discovery??null,project:Y?.project??null,selectedModelRef:$,selectedModelName:J,updatedAt:new Date().toISOString()})}clear(){let $=this.readAll();if(delete $[this.key],Object.keys($).length===0)try{if(u$.existsSync(this.filePath))u$.unlinkSync(this.filePath)}catch{}else this.writeAll($)}getSelectedModelRef(){return this.load()?.selectedModelRef??null}getSelectedModelName(){return this.load()?.selectedModelName??null}getDiscovery(){return this.load()?.discovery??null}};function B7($){if(!$||typeof $!=="object")return $;let X={};for(let[Y,J]of Object.entries($)){if(Y==="description"||Y==="examples"||Y==="default")continue;if(Y==="properties"&&typeof J==="object"&&J!==null){let Q={};for(let[W,z]of Object.entries(J))if(typeof z==="object"&&z!==null)Q[W]=B7(z);else Q[W]=z;X[Y]=Q}else if(Y==="items"&&typeof J==="object"&&J!==null)X[Y]=B7(J);else X[Y]=J}return X}function MW($){try{return JSON.stringify(B7(JSON.parse($)))}catch{return $}}function OW($){if(!$||typeof $!=="object")return $;let X={type:$.type||"object"};if($.required)X.required=$.required;if($.properties&&typeof $.properties==="object"){let Y={};for(let[J,Q]of Object.entries($.properties))if(typeof Q==="object"&&Q!==null){let W=Q;Y[J]={type:W.type||"string"}}else Y[J]={type:"string"};X.properties=Y}return X}function EW($){try{return JSON.stringify(OW(JSON.parse($)))}catch{return $}}var LW=class ${specificationVersion="v3";modelId;supportedUrls={};config;workflowOptions;tokenClient;projectDetector;modelDiscovery;modelCache;detectedProjectPath=null;sessionWorkflows=new Map;currentWorkflowId=null;currentWorkflowDefinition=null;persistedAgentEmitted=new Map;activeClients=new Set;_selectedModelRef;_selectedModelName;_rootNamespaceId;_discoveryPromise;get selectedModelRef(){return this._selectedModelRef??null}set selectedModelRef(X){this._selectedModelRef=X??void 0,this._selectedModelName=void 0,this.modelCache.saveSelection(X,null)}get selectedModelName(){return this._selectedModelName??null}set selectedModelName(X){this._selectedModelName=X??void 0,this.modelCache.saveSelection(this._selectedModelRef??null,X)}_toolExecutor=null;onUsageUpdate=null;sessionPreapprovedTools=[];sessionID="";set approvalHandler(X){this.workflowOptions.approvalHandler=X??void 0}get approvalHandler(){return this.workflowOptions.approvalHandler??null}onSelectModel=null;set systemPrompt(X){this.workflowOptions.systemPrompt=X??void 0}get systemPrompt(){return this.workflowOptions.systemPrompt??null}get toolExecutor(){return this._toolExecutor}set toolExecutor(X){if(X)try{let{AsyncResource:Y}=N7("async_hooks");this._toolExecutor=Y.bind(X)}catch{this._toolExecutor=X}else this._toolExecutor=null}constructor(X,Y,J={}){this.modelId=X,this.config=Y,this.workflowOptions=J;let Q=J.workingDirectory??process.cwd();this.modelCache=new p5(Q,Y.instanceUrl);let W=this.modelCache.load();if(W?.selectedModelRef)this._selectedModelRef=W.selectedModelRef;if(W?.selectedModelName)this._selectedModelName=W.selectedModelName;this.tokenClient=new HW({instanceUrl:Y.instanceUrl,getHeaders:Y.getHeaders,refreshApiKey:Y.refreshApiKey,fetch:Y.fetch,featureFlags:Y.featureFlags}),this.projectDetector=new u5({instanceUrl:Y.instanceUrl,getHeaders:Y.getHeaders,fetch:Y.fetch}),this.modelDiscovery=new d5({instanceUrl:Y.instanceUrl,getHeaders:Y.getHeaders,fetch:Y.fetch})}get provider(){return this.config.provider}async resolveProjectId(){if(this.workflowOptions.projectId)return this.workflowOptions.projectId;if(this.detectedProjectPath)return this.detectedProjectPath;let X=this.workflowOptions.workingDirectory??process.cwd(),Y=await this.projectDetector.detectProject(X);if(Y)return this.detectedProjectPath=Y.pathWithNamespace,Y.pathWithNamespace;return}async resolveRootNamespaceId(){if(this.workflowOptions.rootNamespaceId)return this.workflowOptions.rootNamespaceId;if(this._rootNamespaceId!==void 0)return this._rootNamespaceId;let X=this.workflowOptions.workingDirectory??process.cwd(),Y=await this.projectDetector.detectProject(X);if(Y?.namespaceId){let J=`gid://gitlab/Group/${Y.namespaceId}`;return this._rootNamespaceId=J,J}return this._rootNamespaceId=null,null}async resolveModelRef(){let X=sQ(this.modelId);if(this.modelId!=="duo-workflow")return X??"default";if(this._selectedModelRef)return this._selectedModelRef;if(!this._discoveryPromise)this._discoveryPromise=this.doResolveModelRef(),this._discoveryPromise.finally(()=>{this._discoveryPromise=void 0});return this._discoveryPromise}async doResolveModelRef(){let X=await this.resolveRootNamespaceId();if(!X)return this._selectedModelRef="default","default";try{let Y=await this.modelDiscovery.discover(X);if(this.modelCache.saveDiscovery(Y),Y.pinnedModel)return this._selectedModelRef=Y.pinnedModel.ref,this._selectedModelName=Y.pinnedModel.name,this.modelCache.saveSelection(Y.pinnedModel.ref,Y.pinnedModel.name),Y.pinnedModel.ref;let J=this.onSelectModel??this.workflowOptions.onSelectModel;if(Y.selectableModels.length>0&&J){let Q=await J(Y.selectableModels);if(Q){let W=Y.selectableModels.find((z)=>z.ref===Q);if(W)return this._selectedModelRef=W.ref,this._selectedModelName=W.name,this.modelCache.saveSelection(W.ref,W.name),W.ref}}if(Y.defaultModel)return this._selectedModelRef=Y.defaultModel.ref,this._selectedModelName=Y.defaultModel.name,this.modelCache.saveSelection(Y.defaultModel.ref,Y.defaultModel.name),Y.defaultModel.ref}catch{let Y=this.modelCache.load();if(Y?.selectedModelRef)return this._selectedModelRef=Y.selectedModelRef,this._selectedModelName=Y.selectedModelName??void 0,Y.selectedModelRef}return this._selectedModelRef="default","default"}async discoverModels(X){let Y=await this.modelDiscovery.discover(X);return this.modelCache.saveDiscovery(Y),Y}getModelCache(){return this.modelCache}stopWorkflow(){for(let X of this.activeClients)if(X.isConnected)X.stop()}resetWorkflow(X){if(X)this.sessionWorkflows.delete(X);else this.sessionWorkflows.clear(),this.currentWorkflowId=null,this.persistedAgentEmitted.clear()}get workflowId(){return this.currentWorkflowId}createUsage(X){return{inputTokens:{total:X?.inputTotal,noCache:X?.inputTotal,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:X?.outputTotal,text:X?.outputTotal,reasoning:void 0}}}createFinishReason(X,Y){return{unified:X,raw:Y}}async doGenerate(X){let{stream:Y}=await this.doStream(X),J=Y.getReader(),Q=[],W=[],z={unified:"other",raw:void 0},G=this.createUsage();try{while(!0){let{done:q,value:w}=await J.read();if(q)break;switch(w.type){case"text-delta":Q.push(w.delta);break;case"tool-call":W.push({type:"tool-call",toolCallId:w.toolCallId,toolName:w.toolName,input:w.input});break;case"finish":if(z=w.finishReason,w.usage)G=w.usage;break;case"error":throw w.error}}}finally{J.releaseLock()}let V=[],H=Q.join("");if(H)V.push({type:"text",text:H});return V.push(...W),{content:V,finishReason:z,usage:G,warnings:[]}}async doStream(X){let Y=this.extractGoalFromPrompt(X.prompt),J=await this.resolveModelRef(),Q=this.extractMcpTools(X),W=[...this.workflowOptions.preapprovedTools??Q.map((a)=>a.name),...this.sessionPreapprovedTools],z=this.buildAdditionalContext(X.prompt),G=this.toolExecutor??null,V=new Set(X.tools?.map((a)=>a.name)??[]),H=X.providerOptions?.gitlab,q=H?.workflowDefinition??this.workflowOptions.workflowDefinition,w=H?.flowConfig??void 0,B=H?.flowConfigSchemaVersion??void 0,U=H?.aiCatalogItemVersionId??void 0;await this.tokenClient.getToken(q??y6,this.workflowOptions.rootNamespaceId);let O=await this.resolveProjectId(),P=w??q??y6,j=this.sessionID,L=this.sessionWorkflows.get(j);if(L&&L.workflowDefinition!==P)this.sessionWorkflows.delete(j),L=void 0;let A=j==="";if(A&&this.currentWorkflowId&&this.currentWorkflowDefinition!==P)this.currentWorkflowId=null,this.currentWorkflowDefinition=null;let E;if(L)E=L.workflowId;else if(A&&this.currentWorkflowId)E=this.currentWorkflowId;else if(E=await this.tokenClient.createWorkflow(Y,{projectId:O,namespaceId:this.workflowOptions.namespaceId,workflowDefinition:q,agentPrivileges:this.workflowOptions.agentPrivileges,aiCatalogItemVersionId:U}),A)this.currentWorkflowId=E,this.currentWorkflowDefinition=P;else this.sessionWorkflows.set(j,{workflowId:E,workflowDefinition:P,agentEmitted:new Map,toolEntries:new Set}),L=this.sessionWorkflows.get(j);let _=new x5;this.activeClients.add(_);let c=0,n={streamClosed:!1,streamedInputChars:0,streamedOutputChars:0,pendingToolCount:0,approvalPending:!1,deferredClose:null,activeTextBlockId:null,agentMessageEmitted:new Map(L?.agentEmitted??this.persistedAgentEmitted),currentAgentMessageId:"",activeClient:_,processedRequestIDs:new Set,emittedToolEntries:new Set(L?.toolEntries),emittedToolKeys:new Set,sessionKey:j};for(let a of X.prompt)if(a.role==="system")n.streamedInputChars+=a.content.length;else if(a.role==="user"){for(let u of a.content)if(u.type==="text")n.streamedInputChars+=u.text.length}let p;return{stream:new ReadableStream({start:async(a)=>{try{await _.connect({instanceUrl:this.config.instanceUrl,modelRef:J,headers:this.config.getHeaders(),projectId:this.workflowOptions.projectId,namespaceId:this.workflowOptions.namespaceId,rootNamespaceId:this.workflowOptions.rootNamespaceId,aiCatalogItemVersionId:U,workflowDefinition:q??this.workflowOptions.workflowDefinition},(s4)=>{this.handleWorkflowEvent(n,s4,a,_,G,()=>`text-${c++}`,V,p,{aiCatalogItemVersionId:U,workflowDefinition:q??this.workflowOptions.workflowDefinition})});let u=q??y6,x$=this.workflowOptions.clientCapabilities??$W,u6=await this.buildWorkflowMetadata(),w2=JSON.stringify(u6),d6=JSON.stringify({workflowID:E,clientVersion:K7,workflowDefinition:u,goal:Y,workflowMetadata:w2,clientCapabilities:x$,preapproved_tools:W}).length+100,r4=this.trimPayload(Q,z,d6),r5=W.filter((s4)=>r4.mcpTools.some((s5)=>s5.name===s4));p={workflowID:E,clientVersion:K7,workflowDefinition:u,goal:Y,workflowMetadata:w2,additional_context:r4.additionalContext,clientCapabilities:x$,mcpTools:r4.mcpTools,preapproved_tools:r5};let M7=w??this.workflowOptions.flowConfig,O7=B??this.workflowOptions.flowConfigSchemaVersion;if(M7)p.flowConfig=M7;if(O7)p.flowConfigSchemaVersion=O7;else if(p.flowConfig)p.flowConfigSchemaVersion="v1";_.sendStartRequest(p),a.enqueue({type:"stream-start",warnings:[]}),a.enqueue({type:"response-metadata",id:E,modelId:J})}catch(u){if(!n.streamClosed)a.enqueue({type:"error",error:u instanceof x?u:new x({message:`Workflow connection failed: ${u}`,cause:u})}),n.streamClosed=!0,a.close()}},cancel:(a)=>{if(_.stop(),_.close(),this.activeClients.delete(_),n.activeClient=null,!n.streamClosed)if(n.sessionKey)this.sessionWorkflows.delete(n.sessionKey);else this.currentWorkflowId=null}}),request:{body:{workflowId:E,modelRef:J,goal:Y}}}}handleWorkflowEvent(X,Y,J,Q,W,z,G,V,H){if(X.streamClosed)return;switch(Y.type){case"checkpoint":{this.processCheckpoint(X,Y.data,J,z);break}case"tool-request":{let{requestID:q,data:w}=Y;if(X.processedRequestIDs.has(q))break;X.processedRequestIDs.add(q),X.emittedToolKeys.add(w.name);let B;try{JSON.parse(w.args),B=w.args}catch{B=w.args||"{}"}if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;J.enqueue({type:"tool-input-start",id:q,toolName:w.name,providerExecuted:!0}),J.enqueue({type:"tool-input-delta",id:q,delta:B}),J.enqueue({type:"tool-input-end",id:q}),J.enqueue({type:"tool-call",toolCallId:q,toolName:w.name,input:B,providerExecuted:!0}),this.executeToolAndRespond(X,Q,J,q,w.name,B,W).catch(()=>{});break}case"builtin-tool-request":{if(X.processedRequestIDs.has(Y.requestID))break;X.processedRequestIDs.add(Y.requestID);let q=WW(Y.toolName,Y.data,G);X.emittedToolKeys.add(q.toolName);let w=JSON.stringify(q.args);if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;J.enqueue({type:"tool-input-start",id:Y.requestID,toolName:q.toolName,providerExecuted:!0}),J.enqueue({type:"tool-input-delta",id:Y.requestID,delta:w}),J.enqueue({type:"tool-input-end",id:Y.requestID}),J.enqueue({type:"tool-call",toolCallId:Y.requestID,toolName:q.toolName,input:w,providerExecuted:!0}),this.executeToolAndRespond(X,Q,J,Y.requestID,q.toolName,w,W).catch(()=>{});break}case"approval-required":{X.approvalPending=!0,this.approveAndResume(X,Y.tools,V,J,W,z,G,H).catch((q)=>{if(X.approvalPending=!1,X.deferredClose){let w=X.deferredClose;X.deferredClose=null,w()}});break}case"completed":{if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;let q=()=>{if(X.streamClosed)return;let w=Math.ceil(X.streamedInputChars/4),B=Math.ceil(X.streamedOutputChars/4);J.enqueue({type:"finish",finishReason:this.createFinishReason("stop","completed"),usage:this.createUsage({inputTotal:w,outputTotal:B})}),X.streamClosed=!0,J.close(),this.cleanupClient(X,!1)};if(X.pendingToolCount>0||X.approvalPending)X.deferredClose=q;else X.deferredClose=null,q();break}case"failed":{if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;J.enqueue({type:"error",error:new x({message:`Workflow failed: ${g6(Y.error.message)}`,cause:Y.error})}),X.streamClosed=!0,J.close(),this.cleanupClient(X,!0);break}case"closed":{if(X.streamClosed)break;if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;let q=()=>{if(X.streamClosed)return;if(Y.code!==1000)J.enqueue({type:"error",error:new x({message:`WebSocket closed unexpectedly: code=${Y.code} reason=${g6(Y.reason)}`,statusCode:Y.code})}),X.streamClosed=!0,J.close(),this.cleanupClient(X,!0);else{let w=Math.ceil(X.streamedInputChars/4),B=Math.ceil(X.streamedOutputChars/4);J.enqueue({type:"finish",finishReason:this.createFinishReason("stop","closed"),usage:this.createUsage({inputTotal:w,outputTotal:B})}),X.streamClosed=!0,J.close(),this.cleanupClient(X,!1)}};if(X.pendingToolCount>0||X.approvalPending)X.deferredClose=q;else X.deferredClose=null,q();break}}}processCheckpoint(X,Y,J,Q){if(!Y.checkpoint){if(Y.content){if(!X.activeTextBlockId)X.activeTextBlockId=Q(),J.enqueue({type:"text-start",id:X.activeTextBlockId});J.enqueue({type:"text-delta",id:X.activeTextBlockId,delta:Y.content}),X.streamedOutputChars+=Y.content.length}return}let W;try{W=JSON.parse(Y.checkpoint)}catch(G){return}let z=W.channel_values?.ui_chat_log;if(!z||!Array.isArray(z)||z.length===0)return;if(Y.status!=="RUNNING"&&Y.status!=="INPUT_REQUIRED"&&Y.status!=="FINISHED"&&Y.status!=="COMPLETED"&&Y.status!=="TOOL_CALL_APPROVAL_REQUIRED")return;for(let G=0;G<z.length;G++){let V=z[G];if(V.message_type==="tool"&&V.tool_info){let P=V.message_id||V.correlation_id||`tool-${G}`;if(X.emittedToolEntries.has(P))continue;let j=V.tool_info.name,L=JSON.stringify(V.tool_info.args??{});if(X.emittedToolKeys.has(j)){X.emittedToolEntries.add(P);let c=this.sessionWorkflows.get(X.sessionKey);if(c)c.toolEntries.add(P);continue}if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;J.enqueue({type:"tool-input-start",id:P,toolName:j,providerExecuted:!0}),J.enqueue({type:"tool-input-delta",id:P,delta:L}),J.enqueue({type:"tool-input-end",id:P}),J.enqueue({type:"tool-call",toolCallId:P,toolName:j,input:L,providerExecuted:!0,dynamic:!0});let A=V.tool_info.tool_response,E=typeof A==="string"?A:A?A.content:V.content||"";J.enqueue({type:"tool-result",toolCallId:P,toolName:j,result:{output:E,title:j,metadata:{}},isError:!1}),X.emittedToolEntries.add(P);let _=this.sessionWorkflows.get(X.sessionKey);if(_)_.toolEntries.add(P);continue}if(V.message_type!=="agent")continue;let H=V.content||"",q=V.message_id||`idx-${G}`,w=X.agentMessageEmitted.get(q)??0;if(H.length<=w)continue;let B=H.slice(w);if(q!==X.currentAgentMessageId&&X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;if(!X.activeTextBlockId)X.activeTextBlockId=Q(),J.enqueue({type:"text-start",id:X.activeTextBlockId});J.enqueue({type:"text-delta",id:X.activeTextBlockId,delta:B}),X.streamedOutputChars+=B.length,X.agentMessageEmitted.set(q,H.length),(this.sessionWorkflows.get(X.sessionKey)?.agentEmitted??this.persistedAgentEmitted).set(q,H.length),X.currentAgentMessageId=q}}async executeToolAndRespond(X,Y,J,Q,W,z,G){X.pendingToolCount++;let V=(H)=>{if(X.streamClosed)return;try{J.enqueue(H)}catch{}};try{if(G){let H=await G(W,z,Q);if(H.error&&/^Unknown tool:/.test(H.error)){let U=zW(W,z);if(U)H=U}Y.sendActionResponse(Q,H.result,H.error),X.streamedInputChars+=z.length,X.streamedOutputChars+=H.result.length;let q=H.result,w=H.title??`${W} result`,B=H.metadata??{output:H.result};if(H.error){let U;if(typeof H.error==="string")U=H.error;else if(H.error&&typeof H.error==="object")U=JSON.stringify(H.error);else U=String(H.error);V({type:"tool-result",toolCallId:Q,toolName:W,result:U,isError:!0})}else V({type:"tool-result",toolCallId:Q,toolName:W,result:{output:q,title:w,metadata:B},isError:!1})}else{let H=`Tool executor not configured for tool: ${W}`;Y.sendActionResponse(Q,"",H),V({type:"tool-result",toolCallId:Q,toolName:W,result:H,isError:!0})}}catch(H){let q=H instanceof Error?H.message:String(H),w=g6(q);Y.sendActionResponse(Q,"",w),V({type:"tool-result",toolCallId:Q,toolName:W,result:w,isError:!0})}finally{if(X.pendingToolCount--,this.onUsageUpdate)try{this.onUsageUpdate({inputTokens:Math.ceil(X.streamedInputChars/4),outputTokens:Math.ceil(X.streamedOutputChars/4)})}catch{}if(X.pendingToolCount<=0&&X.deferredClose){let H=X.deferredClose;X.deferredClose=null,H()}}}cleanupClient(X,Y=!1){if(X.activeClient)X.activeClient.close(),this.activeClients.delete(X.activeClient),X.activeClient=null;if(Y)if(X.sessionKey)this.sessionWorkflows.delete(X.sessionKey);else this.currentWorkflowId=null,this.persistedAgentEmitted.clear()}async approveAndResume(X,Y,J,Q,W,z,G,V){let H=this.workflowOptions.approvalHandler;if(!H||!J){if(X.approvalPending=!1,X.deferredClose){let P=X.deferredClose;X.deferredClose=null,P()}return}let q;try{q=await H(Y)}catch(P){if(X.approvalPending=!1,!X.streamClosed)Q.error(P);return}X.approvalPending=!1,X.deferredClose=null,this.cleanupClient(X,!1);let w=q.approved?{approval:{tool_name:Y[0]?.name,tool_args_json:Y[0]?.args}}:{rejection:{message:q.message??"User rejected"}},B={...J,approval:w,preapproved_tools:q.approved?[...J.preapproved_tools??[],...Y.map((P)=>P.name)]:J.preapproved_tools??[]},U=new x5;this.activeClients.add(U),X.activeClient=U;let O=await this.resolveModelRef();try{await U.connect({instanceUrl:this.config.instanceUrl,modelRef:O,headers:this.config.getHeaders(),projectId:this.workflowOptions.projectId,namespaceId:this.workflowOptions.namespaceId,rootNamespaceId:this.workflowOptions.rootNamespaceId,aiCatalogItemVersionId:V?.aiCatalogItemVersionId,workflowDefinition:V?.workflowDefinition},(P)=>this.handleWorkflowEvent(X,P,Q,U,W,z,G,B,V)),U.sendStartRequest(B)}catch(P){if(this.cleanupClient(X,!0),!X.streamClosed)Q.error(P)}}async buildWorkflowMetadata(){let X={extended_logging:!1,tool_approval_for_session_enabled:!0};try{let Y=this.workflowOptions.workingDirectory??process.cwd(),J=await this.getGitInfo(Y);if(J.url)X.git_url=J.url;if(J.sha)X.git_sha=J.sha;if(J.branch)X.git_branch=J.branch}catch{}return X}async getGitInfo(X){let{execFile:Y}=await import("child_process"),{promisify:J}=await import("util"),Q=J(Y),W={cwd:X,timeout:3000},z=async(q,w)=>{try{let{stdout:B}=await Q(q,w,W);return B.trim()||void 0}catch{return}},[G,V,H]=await Promise.all([z("git",["remote","get-url","origin"]),z("git",["rev-parse","HEAD"]),z("git",["rev-parse","--abbrev-ref","HEAD"])]);return{url:G,sha:V,branch:H}}static SYSTEM_REMINDER_RE=/<system-reminder>([\s\S]*?)<\/system-reminder>/g;extractGoalFromPrompt(X){for(let Y=X.length-1;Y>=0;Y--){let J=X[Y];if(J.role==="user"){let Q=J.content.filter((W)=>W.type==="text").map((W)=>W.text);if(Q.length>0){let W=Q.join(`
100
100
  `);return W.replace($.SYSTEM_REMINDER_RE,"").trim()||W}}}return""}extractMcpTools(X){if(this.workflowOptions.mcpTools&&this.workflowOptions.mcpTools.length>0)return this.workflowOptions.mcpTools;if(!X.tools||X.tools.length===0)return[];return X.tools.filter((Y)=>Y.type==="function").map((Y)=>({name:Y.name,description:Y.description||"",inputSchema:JSON.stringify(Y.inputSchema||{type:"object",properties:{}})}))}static MAX_START_REQUEST_BYTES=4194304;trimPayload(X,Y,J){let Q=$.MAX_START_REQUEST_BYTES-J,W=JSON.stringify(Y);if(JSON.stringify(X).length+W.length<=Q)return{mcpTools:X,additionalContext:Y};let V=X.map((U)=>({name:U.name,description:U.description,inputSchema:MW(U.inputSchema)}));if(JSON.stringify(V).length+W.length<=Q)return{mcpTools:V,additionalContext:Y};let q=V.map((U)=>({name:U.name,description:U.description,inputSchema:EW(U.inputSchema)}));if(JSON.stringify(q).length+W.length<=Q)return{mcpTools:q,additionalContext:Y};let B=[...q];while(B.length>0){if(JSON.stringify(B).length+W.length<=Q)break;B.pop()}return{mcpTools:B,additionalContext:Y}}buildAdditionalContext(X){let Y=[];if(this.workflowOptions.additionalContext)Y.push(...this.workflowOptions.additionalContext);for(let J of X)if(J.role==="system")Y.push({category:"system_prompt",content:J.content,metadata:JSON.stringify({role:"system"})});else if(J.role==="assistant"){let Q=J.content.filter((W)=>W.type==="text").map((W)=>W.text).join(`
101
101
  `);if(Q)Y.push({category:"conversation",content:Q,metadata:JSON.stringify({role:"assistant"})})}else if(J.role==="user"){for(let Q of J.content)if(Q.type==="text"){let z=Q.text.matchAll($.SYSTEM_REMINDER_RE);for(let G of z){let V=G[1].trim();if(V)Y.push({category:"agent_context",content:V,metadata:JSON.stringify({source:"system-reminder"})})}}}return Y}},ZW="1d89f9fdb23ee96d4e603201f6861dab6e143c5c3c00469a018a2d94bdc03d4e",vE="36f2a70cddeb5a0889d4fd8295c241b7e9848e89cf9e599d0eed2d8e5350fbf5",SW="https://gitlab.com",AW=300000,yE=["api"],CW=class{fetch;constructor($=fetch){this.fetch=$}isTokenExpired($){return Date.now()>=$}needsRefresh($){return Date.now()>=$-AW}async refreshIfNeeded($,X){if(!this.needsRefresh($.expiresAt))return $;if(this.isTokenExpired($.expiresAt))throw new x({message:"OAuth token has expired and cannot be used"});return this.exchangeRefreshToken({instanceUrl:$.instanceUrl,refreshToken:$.refreshToken,clientId:X})}async exchangeAuthorizationCode($){let{instanceUrl:X,code:Y,codeVerifier:J,clientId:Q,redirectUri:W}=$,z=await this.exchangeToken({instanceUrl:X,grantType:"authorization_code",code:Y,codeVerifier:J,clientId:Q||this.getClientId(X),redirectUri:W});return this.createTokensFromResponse(z,X)}async exchangeRefreshToken($){let{instanceUrl:X,refreshToken:Y,clientId:J}=$,Q=await this.exchangeToken({instanceUrl:X,grantType:"refresh_token",refreshToken:Y,clientId:J||this.getClientId(X)});return this.createTokensFromResponse(Q,X)}getClientId($){let X=process.env.GITLAB_OAUTH_CLIENT_ID;if(X)return X;if($===SW)return ZW;throw new x({message:`No OAuth client ID configured for instance ${$}. Please provide a clientId parameter or set GITLAB_OAUTH_CLIENT_ID environment variable.`})}async exchangeToken($){let{instanceUrl:X,grantType:Y,code:J,codeVerifier:Q,refreshToken:W,clientId:z,redirectUri:G}=$,V={client_id:z,grant_type:Y};if(Y==="authorization_code"){if(!J||!Q||!G)throw new x({message:"Authorization code, code verifier, and redirect URI are required for authorization_code grant"});V.code=J,V.code_verifier=Q,V.redirect_uri=G}else if(Y==="refresh_token"){if(!W)throw new x({message:"Refresh token is required for refresh_token grant"});V.refresh_token=W}let H=`${X}/oauth/token`;try{let q=await this.fetch(H,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(V).toString()});if(!q.ok){let B=await q.text();throw new x({message:`OAuth token exchange failed: ${q.status} ${q.statusText}`,cause:Error(B)})}return await q.json()}catch(q){if(q instanceof x)throw q;throw new x({message:`Failed to exchange OAuth token: ${q instanceof Error?q.message:String(q)}`,cause:q instanceof Error?q:void 0})}}createTokensFromResponse($,X){let Y=this.createExpiresTimestamp($);return{accessToken:$.access_token,refreshToken:$.refresh_token||"",expiresAt:Y,instanceUrl:X}}createExpiresTimestamp($){let X=$.created_at*1000,Y=$.expires_in*1000;return X+Y}};function n5(){let $=i5.homedir(),X=process.env.XDG_DATA_HOME;if(X)return a4.join(X,"opencode","auth.json");if(process.platform!=="win32")return a4.join($,".local","share","opencode","auth.json");return a4.join($,".opencode","auth.json")}async function DW($){try{let X=n5();if(!q2.existsSync(X))return;let Y=JSON.parse(q2.readFileSync(X,"utf-8"));if(Y.gitlab?.type==="oauth"){let W=Y.gitlab;if(W.enterpriseUrl===$||W.enterpriseUrl===$.replace(/\/$/,""))return W}let J=$.replace(/\/$/,"");return Y[J]||Y[`${J}/`]}catch(X){throw Error(`Failed to load auth.json: ${X instanceof Error?X.message:X}`)}}async function v5($,X,Y){if($.apiKey)return $.apiKey;let J=await DW(X);if(J?.type==="oauth"){let W=new CW;if(W.needsRefresh(J.expires))try{let z=await W.exchangeRefreshToken({instanceUrl:X,refreshToken:J.refresh,clientId:Y}),G=n5(),V=JSON.parse(q2.readFileSync(G,"utf-8"));return V.gitlab={type:"oauth",refresh:z.refreshToken,access:z.accessToken,expires:z.expiresAt,enterpriseUrl:X},q2.writeFileSync(G,JSON.stringify(V,null,2),{mode:384}),z.accessToken}catch(z){let G=z instanceof Error?z.message:String(z),V=process.env[$.environmentVariableName];if(V)return V;throw new x({message:`OAuth token refresh failed and no fallback ${$.environmentVariableName} environment variable is set. Refresh error: ${G}. Re-authenticate with 'opencode auth login gitlab' or set ${$.environmentVariableName}.`})}else return J.access}let Q=process.env[$.environmentVariableName];if(!Q)throw new x({message:`${$.description} API key is missing. Pass it as the 'apiKey' parameter, set the ${$.environmentVariableName} environment variable, or authenticate with 'opencode auth login gitlab'.`});return Q}function RW($,X){let Y=$["User-Agent"];return{...$,"User-Agent":Y?`${Y} ${X}`:X}}function TW($={}){let X=$.instanceUrl??process.env.GITLAB_INSTANCE_URL??"https://gitlab.com",Y=$.name??"gitlab",J,Q,W=async()=>{if(J)return J;if(Q)return Q;return Q=v5({apiKey:$.apiKey,environmentVariableName:"GITLAB_TOKEN",description:"GitLab"},X,$.clientId),J=await Q,Q=void 0,J},z=async()=>{J=void 0,Q=void 0,J=await v5({apiKey:void 0,environmentVariableName:"GITLAB_TOKEN",description:"GitLab"},X,$.clientId)},G=()=>{let B=J||$.apiKey||process.env.GITLAB_TOKEN||"";if(!B)throw new x({message:"GitLab API key is missing. Pass it as the 'apiKey' parameter, set the GITLAB_TOKEN environment variable, or authenticate with 'opencode auth login gitlab'."});return RW({Authorization:`Bearer ${B}`,"Content-Type":"application/json",...$.headers},`ai-sdk-gitlab/${H7}`)};W().catch(()=>{});let V=(B,U)=>{let O=j5(B);if(!O)throw new x({message:`Unknown model ID: ${B}. Model must be registered in MODEL_MAPPINGS.`});if(U?.providerModel){let E=iQ(O.provider);if(!E.includes(U.providerModel))throw new x({message:`Invalid providerModel '${U.providerModel}' for provider '${O.provider}'. Valid models: ${E.join(", ")}`})}let P={DuoAgentPlatformNext:!0,...$.featureFlags,...U?.featureFlags},L={...{"User-Agent":`gitlab-ai-provider/${H7}`},...$.aiGatewayHeaders,...U?.aiGatewayHeaders},A={provider:`${Y}.agentic`,instanceUrl:X,getHeaders:G,refreshApiKey:z,fetch:$.fetch,maxTokens:U?.maxTokens,featureFlags:P,aiGatewayUrl:$.aiGatewayUrl,aiGatewayHeaders:L};if(O.provider==="openai")return new tQ(B,{...A,openaiModel:U?.providerModel??O.model});return new pQ(B,{...A,anthropicModel:U?.providerModel??O.model})},H=(B,U)=>{let O=j5(B);if(!O||O.provider!=="workflow")throw new x({message:`Unknown workflow model ID: ${B}. Use 'duo-workflow' or a 'duo-workflow-*' model ID.`});return new LW(B,{provider:`${Y}.workflow`,instanceUrl:X,getHeaders:G,refreshApiKey:z,fetch:$.fetch,featureFlags:{...$.featureFlags,...U?.featureFlags},aiGatewayUrl:$.aiGatewayUrl},U)},q=(B)=>{if(rQ(B))return H(B);return V(B)},w=Object.assign((B)=>q(B),{specificationVersion:"v3",languageModel:q,chat:q,agenticChat:V,workflowChat:H});return w.embeddingModel=(B)=>{throw new x({message:`GitLab provider does not support text embedding models. Model ID: ${B}`})},w.imageModel=(B)=>{throw new x({message:`GitLab provider does not support image models. Model ID: ${B}`})},w}var gE=TW(),_W="https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/raw/main/ai_gateway/model_selection/models.yml",PW=86400000,q7=200000,w7=64000;function U7(){let $=process.env.XDG_CACHE_HOME||m6.join(a5.homedir(),".cache");return m6.join($,"opencode","gitlab-model-configs.json")}function jW(){try{let $=U7();if(!d$.existsSync($))return null;let X=d$.readFileSync($,"utf-8");return JSON.parse(X)}catch{return null}}function kW($){try{let X=U7(),Y=m6.dirname(X);d$.mkdirSync(Y,{recursive:!0,mode:448});let J={configs:Object.fromEntries($),updatedAt:new Date().toISOString()};d$.writeFileSync(X,JSON.stringify(J,null,2),{mode:384})}catch{}}function y5($){let X=jW();if(!X)return null;let Y=new Date(X.updatedAt).getTime();if(Date.now()-Y>$)return null;return{configs:new Map(Object.entries(X.configs)),writtenAt:Y}}var xW=class{url;ttlMs;fetchFn;memCache=null;memExpiresAt=0;pending=null;constructor($){this.url=$?.url??_W,this.ttlMs=$?.ttlMs??PW,this.fetchFn=$?.fetch??fetch}async getConfigs(){if(this.memCache&&Date.now()<this.memExpiresAt)return this.memCache;let $=y5(this.ttlMs);if($)return this.memCache=$.configs,this.memExpiresAt=$.writtenAt+this.ttlMs,$.configs;if(this.pending)return this.pending;this.pending=this.fetchConfigs();try{return await this.pending}finally{this.pending=null}}async getConfig($){return(await this.getConfigs()).get($)??{context:q7,output:w7}}invalidateCache(){this.memCache=null,this.memExpiresAt=0;try{let $=U7();if(d$.existsSync($))d$.unlinkSync($)}catch{}}async fetchConfigs(){try{let $=await this.fetchFn(this.url);if(!$.ok)throw Error(`HTTP ${$.status}`);let X=await $.text(),Y=fW(X);return this.memCache=Y,this.memExpiresAt=Date.now()+this.ttlMs,kW(Y),Y}catch{return this.memCache??y5(1/0)?.configs??new Map}}};function fW($){let X=new Map,Y=null,J=0,Q=0,W=!1,z=-1;for(let G of $.split(`
102
- `)){let V=G.match(/^\s*gitlab_identifier:\s*"?([^"#\s]+)"?/);if(V){if(Y)X.set(Y,{context:J||q7,output:Q||w7});Y=V[1],J=0,Q=0,W=!1,z=-1}let H=G.match(/^\s*max_context_tokens:\s*([0-9_]+)/);if(H&&Y)J=parseInt(H[1].replace(/_/g,""),10);if(/^\s*params:\s*$/.test(G))W=!0,z=G.match(/^(\s*)/)?.[1].length??0;else if(W&&/^\s*\S+:/.test(G)){if((G.match(/^(\s*)/)?.[1].length??0)<=z)W=!1,z=-1}if(W){let q=G.match(/^\s*max_tokens:\s*([0-9_]+)/);if(q&&Y)Q=parseInt(q[1].replace(/_/g,""),10)}}if(Y)X.set(Y,{context:J||q7,output:Q||w7});return X}var bW=new xW;async function g5($,X){let Y=await bW.getConfigs(),J=new Map;for(let[G,V]of Object.entries(o$))if(V.provider==="workflow"&&G!=="duo-workflow"&&G!=="duo-workflow-default")J.set(V.model,G);let Q=$.pinnedModel?[$.pinnedModel]:[...$.selectableModels??[],...$.defaultModel?[$.defaultModel]:[]],W=new Set,z=[];for(let G of Q){if(!G.ref||W.has(G.ref))continue;W.add(G.ref);let V=J.get(G.ref)??`duo-workflow-${G.ref.replace(/[/_]/g,"-")}`,H=Y.get(G.ref);z.push({id:V,ref:G.ref,name:G.name,context:H?.context??200000,output:H?.output??64000,pinned:!!$.pinnedModel&&$.pinnedModel.ref===G.ref})}return{models:z,project:X}}async function hE($,X){let Y=new p5(X.workingDirectory,$.instanceUrl);if(!Y.isDiscoveryExpired()){let V=Y.load();return g5(V.discovery,V.project)}let J=new u5({instanceUrl:$.instanceUrl,getHeaders:$.getHeaders,fetch:$.fetch}),Q=null;try{Q=await J.detectProject(X.workingDirectory)}catch{return{models:[],project:null}}let W=Q?.namespaceId;if(!W)return{models:[],project:Q};let G=await new d5({instanceUrl:$.instanceUrl,getHeaders:$.getHeaders,fetch:$.fetch}).discover(`gid://gitlab/Group/${W}`);if(Y.saveDiscovery(G,Q),!Y.getSelectedModelRef()){let V=G.pinnedModel??G.defaultModel;if(V)Y.saveSelection(V.ref,V.name)}return g5(G,Q)}export{x as Qh,lQ as Rh,h5 as Sh,pQ as Th,o$ as Uh,j5 as Vh,jE as Wh,iQ as Xh,kE as Yh,xE as Zh,nQ as _h,aQ as $h,rQ as ai,sQ as bi,fE as ci,tQ as di,H7 as ei,oQ as fi,eQ as gi,k5 as hi,y6 as ii,$W as ji,K7 as ki,U8 as li,YW as mi,JW as ni,x5 as oi,HW as pi,BW as qi,u5 as ri,d5 as si,p5 as ti,LW as ui,ZW as vi,vE as wi,SW as xi,AW as yi,yE as zi,CW as Ai,TW as Bi,gE as Ci,xW as Di,fW as Ei,hE as Fi};
102
+ `)){let V=G.match(/^\s*gitlab_identifier:\s*"?([^"#\s]+)"?/);if(V){if(Y)X.set(Y,{context:J||q7,output:Q||w7});Y=V[1],J=0,Q=0,W=!1,z=-1}let H=G.match(/^\s*max_context_tokens:\s*([0-9_]+)/);if(H&&Y)J=parseInt(H[1].replace(/_/g,""),10);if(/^\s*params:\s*$/.test(G))W=!0,z=G.match(/^(\s*)/)?.[1].length??0;else if(W&&/^\s*\S+:/.test(G)){if((G.match(/^(\s*)/)?.[1].length??0)<=z)W=!1,z=-1}if(W){let q=G.match(/^\s*max_tokens:\s*([0-9_]+)/);if(q&&Y)Q=parseInt(q[1].replace(/_/g,""),10)}}if(Y)X.set(Y,{context:J||q7,output:Q||w7});return X}var bW=new xW;async function g5($,X){let Y=await bW.getConfigs(),J=new Map;for(let[G,V]of Object.entries(o$))if(V.provider==="workflow"&&G!=="duo-workflow"&&G!=="duo-workflow-default")J.set(V.model,G);let Q=$.pinnedModel?[$.pinnedModel]:[...$.selectableModels??[],...$.defaultModel?[$.defaultModel]:[]],W=new Set,z=[];for(let G of Q){if(!G.ref||W.has(G.ref))continue;W.add(G.ref);let V=J.get(G.ref)??`duo-workflow-${G.ref.replace(/[/_]/g,"-")}`,H=Y.get(G.ref);z.push({id:V,ref:G.ref,name:G.name,context:H?.context??200000,output:H?.output??64000,pinned:!!$.pinnedModel&&$.pinnedModel.ref===G.ref})}return{models:z,project:X}}async function hE($,X){let Y=new p5(X.workingDirectory,$.instanceUrl);if(!Y.isDiscoveryExpired()){let V=Y.load();return g5(V.discovery,V.project)}let J=new u5({instanceUrl:$.instanceUrl,getHeaders:$.getHeaders,fetch:$.fetch}),Q=null;try{Q=await J.detectProject(X.workingDirectory)}catch{return{models:[],project:null}}let W=Q?.namespaceId;if(!W)return{models:[],project:Q};let G=await new d5({instanceUrl:$.instanceUrl,getHeaders:$.getHeaders,fetch:$.fetch}).discover(`gid://gitlab/Group/${W}`);if(Y.saveDiscovery(G,Q),!Y.getSelectedModelRef()){let V=G.pinnedModel??G.defaultModel;if(V)Y.saveSelection(V.ref,V.name)}return g5(G,Q)}export{x as Sh,lQ as Th,h5 as Uh,pQ as Vh,o$ as Wh,j5 as Xh,jE as Yh,iQ as Zh,kE as _h,xE as $h,nQ as ai,aQ as bi,rQ as ci,sQ as di,fE as ei,tQ as fi,H7 as gi,oQ as hi,eQ as ii,k5 as ji,y6 as ki,$W as li,K7 as mi,U8 as ni,YW as oi,JW as pi,x5 as qi,HW as ri,BW as si,u5 as ti,d5 as ui,p5 as vi,LW as wi,ZW as xi,vE as yi,SW as zi,AW as Ai,yE as Bi,CW as Ci,TW as Di,gE as Ei,xW as Fi,fW as Gi,hE as Hi};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import"./chunk-cqtkxwd8.js";import{gr as H}from"./chunk-srf73nm4.js";import{Pu as Q,tu as gG}from"./chunk-r7xp0xcn.js";import{Dz as mG}from"./chunk-6g3m7yxf.js";import"./chunk-hh4c02fh.js";var{defineProperty:uJ,defineProperties:cJ,getOwnPropertyDescriptors:dJ,getOwnPropertySymbols:VB}=Object,uG=Object.prototype.hasOwnProperty,cG=Object.prototype.propertyIsEnumerable,dG=(B)=>{throw TypeError(B)},GG=(B,G,J)=>(G in B)?uJ(B,G,{enumerable:!0,configurable:!0,writable:!0,value:J}):B[G]=J,W=(B,G)=>{for(var J in G||(G={}))if(uG.call(G,J))GG(B,J,G[J]);if(VB){for(var J of VB(G))if(cG.call(G,J))GG(B,J,G[J])}return B},T=(B,G)=>cJ(B,dJ(G)),LB=(B,G)=>{var J={};for(var N in B)if(uG.call(B,N)&&G.indexOf(N)<0)J[N]=B[N];if(B!=null&&VB){for(var N of VB(B))if(G.indexOf(N)<0&&cG.call(B,N))J[N]=B[N]}return J},pJ=(B,G,J)=>G.has(B)||dG("Cannot "+J),JG=(B,G,J)=>(pJ(B,G,"read from private field"),J?J.call(B):G.get(B)),iJ=(B,G,J)=>G.has(B)?dG("Cannot add the same private member more than once"):G instanceof WeakSet?G.add(B):G.set(B,J),pG="vercel.ai.error",rJ=Symbol.for(pG),NG,QG,I=class B extends(QG=Error,NG=rJ,QG){constructor({name:G,message:J,cause:N}){super(J);this[NG]=!0,this.name=G,this.cause=N}static isInstance(G){return B.hasMarker(G,pG)}static hasMarker(G,J){let N=Symbol.for(J);return G!=null&&typeof G==="object"&&N in G&&typeof G[N]==="boolean"&&G[N]===!0}},iG="AI_APICallError",rG=`vercel.ai.error.${iG}`,sJ=Symbol.for(rG),XG,YG,o=class extends(YG=I,XG=sJ,YG){constructor({message:B,url:G,requestBodyValues:J,statusCode:N,responseHeaders:X,responseBody:Y,cause:Z,isRetryable:$=N!=null&&(N===408||N===409||N===429||N>=500),data:z}){super({name:iG,message:B,cause:Z});this[XG]=!0,this.url=G,this.requestBodyValues=J,this.statusCode=N,this.responseHeaders=X,this.responseBody=Y,this.isRetryable=$,this.data=z}static isInstance(B){return I.hasMarker(B,rG)}},sG="AI_EmptyResponseBodyError",nG=`vercel.ai.error.${sG}`,nJ=Symbol.for(nG),ZG,$G,aJ=class extends($G=I,ZG=nJ,$G){constructor({message:B="Empty response body"}={}){super({name:sG,message:B});this[ZG]=!0}static isInstance(B){return I.hasMarker(B,nG)}};function aG(B){if(B==null)return"unknown error";if(typeof B==="string")return B;if(B instanceof Error)return B.message;return JSON.stringify(B)}var lG="AI_InvalidArgumentError",tG=`vercel.ai.error.${lG}`,lJ=Symbol.for(tG),WG,zG,oG=class extends(zG=I,WG=lJ,zG){constructor({message:B,cause:G,argument:J}){super({name:lG,message:B,cause:G});this[WG]=!0,this.argument=J}static isInstance(B){return I.hasMarker(B,tG)}},eG="AI_InvalidPromptError",BJ=`vercel.ai.error.${eG}`,tJ=Symbol.for(BJ),jG,KG,oJ=class extends(KG=I,jG=tJ,KG){constructor({prompt:B,message:G,cause:J}){super({name:eG,message:`Invalid prompt: ${G}`,cause:J});this[jG]=!0,this.prompt=B}static isInstance(B){return I.hasMarker(B,BJ)}},GJ="AI_InvalidResponseDataError",JJ=`vercel.ai.error.${GJ}`,eJ=Symbol.for(JJ),LG,FG,KB=class extends(FG=I,LG=eJ,FG){constructor({data:B,message:G=`Invalid response data: ${JSON.stringify(B)}.`}){super({name:GJ,message:G});this[LG]=!0,this.data=B}static isInstance(B){return I.hasMarker(B,JJ)}},NJ="AI_JSONParseError",QJ=`vercel.ai.error.${NJ}`,BN=Symbol.for(QJ),qG,wG,bB=class extends(wG=I,qG=BN,wG){constructor({text:B,cause:G}){super({name:NJ,message:`JSON parsing failed: Text: ${B}.
2
+ import"./chunk-cqtkxwd8.js";import{Mp as H}from"./chunk-pk0tytcm.js";import{_s as gG,ut as Q}from"./chunk-ym4ydwrz.js";import{iy as mG}from"./chunk-vmgknvxs.js";import"./chunk-0rmmg3g4.js";var{defineProperty:uJ,defineProperties:cJ,getOwnPropertyDescriptors:dJ,getOwnPropertySymbols:VB}=Object,uG=Object.prototype.hasOwnProperty,cG=Object.prototype.propertyIsEnumerable,dG=(B)=>{throw TypeError(B)},GG=(B,G,J)=>(G in B)?uJ(B,G,{enumerable:!0,configurable:!0,writable:!0,value:J}):B[G]=J,W=(B,G)=>{for(var J in G||(G={}))if(uG.call(G,J))GG(B,J,G[J]);if(VB){for(var J of VB(G))if(cG.call(G,J))GG(B,J,G[J])}return B},T=(B,G)=>cJ(B,dJ(G)),LB=(B,G)=>{var J={};for(var N in B)if(uG.call(B,N)&&G.indexOf(N)<0)J[N]=B[N];if(B!=null&&VB){for(var N of VB(B))if(G.indexOf(N)<0&&cG.call(B,N))J[N]=B[N]}return J},pJ=(B,G,J)=>G.has(B)||dG("Cannot "+J),JG=(B,G,J)=>(pJ(B,G,"read from private field"),J?J.call(B):G.get(B)),iJ=(B,G,J)=>G.has(B)?dG("Cannot add the same private member more than once"):G instanceof WeakSet?G.add(B):G.set(B,J),pG="vercel.ai.error",rJ=Symbol.for(pG),NG,QG,I=class B extends(QG=Error,NG=rJ,QG){constructor({name:G,message:J,cause:N}){super(J);this[NG]=!0,this.name=G,this.cause=N}static isInstance(G){return B.hasMarker(G,pG)}static hasMarker(G,J){let N=Symbol.for(J);return G!=null&&typeof G==="object"&&N in G&&typeof G[N]==="boolean"&&G[N]===!0}},iG="AI_APICallError",rG=`vercel.ai.error.${iG}`,sJ=Symbol.for(rG),XG,YG,o=class extends(YG=I,XG=sJ,YG){constructor({message:B,url:G,requestBodyValues:J,statusCode:N,responseHeaders:X,responseBody:Y,cause:Z,isRetryable:$=N!=null&&(N===408||N===409||N===429||N>=500),data:z}){super({name:iG,message:B,cause:Z});this[XG]=!0,this.url=G,this.requestBodyValues=J,this.statusCode=N,this.responseHeaders=X,this.responseBody=Y,this.isRetryable=$,this.data=z}static isInstance(B){return I.hasMarker(B,rG)}},sG="AI_EmptyResponseBodyError",nG=`vercel.ai.error.${sG}`,nJ=Symbol.for(nG),ZG,$G,aJ=class extends($G=I,ZG=nJ,$G){constructor({message:B="Empty response body"}={}){super({name:sG,message:B});this[ZG]=!0}static isInstance(B){return I.hasMarker(B,nG)}};function aG(B){if(B==null)return"unknown error";if(typeof B==="string")return B;if(B instanceof Error)return B.message;return JSON.stringify(B)}var lG="AI_InvalidArgumentError",tG=`vercel.ai.error.${lG}`,lJ=Symbol.for(tG),WG,zG,oG=class extends(zG=I,WG=lJ,zG){constructor({message:B,cause:G,argument:J}){super({name:lG,message:B,cause:G});this[WG]=!0,this.argument=J}static isInstance(B){return I.hasMarker(B,tG)}},eG="AI_InvalidPromptError",BJ=`vercel.ai.error.${eG}`,tJ=Symbol.for(BJ),jG,KG,oJ=class extends(KG=I,jG=tJ,KG){constructor({prompt:B,message:G,cause:J}){super({name:eG,message:`Invalid prompt: ${G}`,cause:J});this[jG]=!0,this.prompt=B}static isInstance(B){return I.hasMarker(B,BJ)}},GJ="AI_InvalidResponseDataError",JJ=`vercel.ai.error.${GJ}`,eJ=Symbol.for(JJ),LG,FG,KB=class extends(FG=I,LG=eJ,FG){constructor({data:B,message:G=`Invalid response data: ${JSON.stringify(B)}.`}){super({name:GJ,message:G});this[LG]=!0,this.data=B}static isInstance(B){return I.hasMarker(B,JJ)}},NJ="AI_JSONParseError",QJ=`vercel.ai.error.${NJ}`,BN=Symbol.for(QJ),qG,wG,bB=class extends(wG=I,qG=BN,wG){constructor({text:B,cause:G}){super({name:NJ,message:`JSON parsing failed: Text: ${B}.
3
3
  Error message: ${aG(G)}`,cause:G});this[qG]=!0,this.text=B}static isInstance(B){return I.hasMarker(B,QJ)}},XJ="AI_LoadAPIKeyError",YJ=`vercel.ai.error.${XJ}`,GN=Symbol.for(YJ),EG,PG,OB=class extends(PG=I,EG=GN,PG){constructor({message:B}){super({name:XJ,message:B});this[EG]=!0}static isInstance(B){return I.hasMarker(B,YJ)}},ZJ="AI_LoadSettingError",$J=`vercel.ai.error.${ZJ}`,JN=Symbol.for($J),OG,HG,XX=class extends(HG=I,OG=JN,HG){constructor({message:B}){super({name:ZJ,message:B});this[OG]=!0}static isInstance(B){return I.hasMarker(B,$J)}},WJ="AI_NoContentGeneratedError",zJ=`vercel.ai.error.${WJ}`,NN=Symbol.for(zJ),SG,yG,rB=class extends(yG=I,SG=NN,yG){constructor({message:B="No content generated."}={}){super({name:WJ,message:B});this[SG]=!0}static isInstance(B){return I.hasMarker(B,zJ)}},jJ="AI_NoSuchModelError",KJ=`vercel.ai.error.${jJ}`,QN=Symbol.for(KJ),AG,VG,YX=class extends(VG=I,AG=QN,VG){constructor({errorName:B=jJ,modelId:G,modelType:J,message:N=`No such ${J}: ${G}`}){super({name:B,message:N});this[AG]=!0,this.modelId=G,this.modelType=J}static isInstance(B){return I.hasMarker(B,KJ)}},LJ="AI_TooManyEmbeddingValuesForCallError",FJ=`vercel.ai.error.${LJ}`,XN=Symbol.for(FJ),bG,MG,ZX=class extends(MG=I,bG=XN,MG){constructor(B){super({name:LJ,message:`Too many values for a single embedding call. The ${B.provider} model "${B.modelId}" can only embed up to ${B.maxEmbeddingsPerCall} values per call, but ${B.values.length} values were provided.`});this[bG]=!0,this.provider=B.provider,this.modelId=B.modelId,this.maxEmbeddingsPerCall=B.maxEmbeddingsPerCall,this.values=B.values}static isInstance(B){return I.hasMarker(B,FJ)}},qJ="AI_TypeValidationError",wJ=`vercel.ai.error.${qJ}`,YN=Symbol.for(wJ),TG,UG,FB=class B extends(UG=I,TG=YN,UG){constructor({value:G,cause:J}){super({name:qJ,message:`Type validation failed: Value: ${JSON.stringify(G)}.
4
4
  Error message: ${aG(J)}`,cause:J});this[TG]=!0,this.value=G}static isInstance(G){return I.hasMarker(G,wJ)}static wrap({value:G,cause:J}){return B.isInstance(J)&&J.value===G?J:new B({value:G,cause:J})}},EJ="AI_UnsupportedFunctionalityError",PJ=`vercel.ai.error.${EJ}`,ZN=Symbol.for(PJ),xG,kG,BB=class extends(kG=I,xG=ZN,kG){constructor({functionality:B,message:G=`'${B}' functionality not supported.`}){super({name:EJ,message:G});this[xG]=!0,this.functionality=B}static isInstance(B){return I.hasMarker(B,PJ)}},DG=class extends Error{constructor(B,G){super(B),this.name="ParseError",this.type=G.type,this.field=G.field,this.value=G.value,this.line=G.line}};function CB(B){}function $N(B){if(typeof B=="function")throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:G=CB,onError:J=CB,onRetry:N=CB,onComment:X}=B,Y="",Z=!0,$,z="",j="";function E(K){let V=Z?K.replace(/^\xEF\xBB\xBF/,""):K,[F,x]=WN(`${Y}${V}`);for(let C of F)P(C);Y=x,Z=!1}function P(K){if(K===""){L();return}if(K.startsWith(":")){X&&X(K.slice(K.startsWith(": ")?2:1));return}let V=K.indexOf(":");if(V!==-1){let F=K.slice(0,V),x=K[V+1]===" "?2:1,C=K.slice(V+x);q(F,C,K);return}q(K,"",K)}function q(K,V,F){switch(K){case"event":j=V;break;case"data":z=`${z}${V}
5
5
  `;break;case"id":$=V.includes("\x00")?void 0:V;break;case"retry":/^\d+$/.test(V)?N(parseInt(V,10)):J(new DG(`Invalid \`retry\` value: "${V}"`,{type:"invalid-retry",value:V,line:F}));break;default:J(new DG(`Unknown field "${K.length>20?`${K.slice(0,20)}\u2026`:K}"`,{type:"unknown-field",field:K,value:V,line:F}));break}}function L(){z.length>0&&G({id:$,event:j||void 0,data:z.endsWith(`
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import{Kg as a}from"./chunk-8gy99gfb.js";import{$g as t,uh as c}from"./chunk-87x607rz.js";import"./chunk-9w5rx0fb.js";import"./chunk-wb69d52j.js";import"./chunk-pfn1db1m.js";import"./chunk-h56jxxvj.js";import"./chunk-x36jhtex.js";import"./chunk-c1ypbbka.js";import"./chunk-qnqqrvvs.js";import"./chunk-3f054f69.js";import"./chunk-26qt44f1.js";import"./chunk-0ke6x10y.js";import"./chunk-meaybtcc.js";import"./chunk-rmsqb6r4.js";import"./chunk-3j7skhxg.js";import"./chunk-4pssh5d3.js";import"./chunk-9dpn4792.js";import"./chunk-pf7cj4jd.js";import"./chunk-9r6bvkp4.js";import"./chunk-amx3x4kd.js";import"./chunk-b50t4jc5.js";import"./chunk-nf8gkxbk.js";import"./chunk-zny2qaqa.js";import"./chunk-9va5eh9s.js";import"./chunk-mkyrg7gt.js";import"./chunk-7v4fzkbb.js";import"./chunk-cqtkxwd8.js";import"./chunk-pk0tytcm.js";import"./chunk-ww8ear80.js";import"./chunk-kyny0t2g.js";import"./chunk-3e8p4a3y.js";import"./chunk-qpm5afdz.js";import"./chunk-jtrcnpm7.js";import"./chunk-gaen9ya4.js";import"./chunk-dd11kryy.js";import"./chunk-msm3r7ny.js";import"./chunk-e075v4e9.js";import"./chunk-jv98gw88.js";import"./chunk-jhq5bvhs.js";import"./chunk-xw283h2r.js";import"./chunk-8cty50g7.js";import"./chunk-v7ah9gg0.js";import"./chunk-d0m7nbbx.js";import"./chunk-vfj5nwab.js";import{Ys as i}from"./chunk-7w84hfxs.js";import"./chunk-ym4ydwrz.js";import"./chunk-vmgknvxs.js";import"./chunk-p409grvp.js";import"./chunk-ag9thqkv.js";import"./chunk-qnv2v02g.js";import"./chunk-7fx6x8x9.js";import"./chunk-0rmmg3g4.js";var n=i.object({name:a.shape.name,branch:a.shape.branch.unwrap(),directory:a.shape.directory.unwrap()}),d={name:"Worktree",description:"Create a git worktree",async configure(e){let r=await c.runPromise(t.Service.use((o)=>o.makeWorktreeInfo()));return{...e,name:r.name,branch:r.branch,directory:r.directory}},async create(e){let r=n.parse(e);await c.runPromise(t.Service.use((o)=>o.createFromInfo({name:r.name,directory:r.directory,branch:r.branch})))},async remove(e){let r=n.parse(e);await c.runPromise(t.Service.use((o)=>o.remove({directory:r.directory})))},target(e){return{type:"local",directory:n.parse(e).directory}}};export{d as WorktreeAdaptor};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import{$j as f,Hj as s,Mj as e,Nj as j,Oj as v,_j as u}from"./chunk-7mhffm9f.js";import{Dl as D,Hl as b,Il as a,Jl as t,ul as r,vl as C,wl as k,xl as m}from"./chunk-0z3z0gk1.js";import{an as x,bn as q,dn as n,en as o,gn as K,in as c,pn as i}from"./chunk-m8djypsy.js";import{pt as O_,zt as Q_}from"./chunk-zk8n8hnh.js";import{Ot as d,Tt as g}from"./chunk-1jh5p5qw.js";import{AP as S_}from"./chunk-hh4c02fh.js";var l={};S_(l,{run:()=>h_,encodeDir:()=>k_,ClaudeImport:()=>l});import E_ from"path";import W_ from"path";import{access as X_,readFile as Y_}from"fs/promises";var G=n("external_import",{source:q().$type().notNull(),source_key:q().notNull(),session_id:q().$type().notNull(),source_path:q().notNull(),source_mtime:x().notNull(),time_imported:x().notNull(),message_ids:q({mode:"json"}).$type()},(N)=>[o({columns:[N.source,N.source_key]})]);function Z_(){return{scanned:0,imported:0,resynced:0,skipped:0,errors:[]}}async function L_(N){if(!N||!await g.exists(N))return{id:b.global,worktree:N||"/",vcs:null};if(!await a(N))return{id:b.global,worktree:N,vcs:null};return{id:await t(N),worktree:N,vcs:"git"}}function __(N){return N.split(`
2
+ import{$j as u,Ij as s,Nj as e,Oj as j,Pj as v,ak as f}from"./chunk-3f054f69.js";import{El as D,Il as b,Jl as a,Kl as t,vl as r,wl as C,xl as k,yl as m}from"./chunk-0ke6x10y.js";import{Bm as K,Dm as c,Km as i,vm as x,wm as q,ym as n,zm as o}from"./chunk-rmsqb6r4.js";import{Cs as Q_,ss as O_}from"./chunk-v7ah9gg0.js";import{Rs as d,Ws as g}from"./chunk-d0m7nbbx.js";import{fO as S_}from"./chunk-0rmmg3g4.js";var l={};S_(l,{run:()=>h_,encodeDir:()=>k_,ClaudeImport:()=>l});import E_ from"path";import W_ from"path";import{access as X_,readFile as Y_}from"fs/promises";var G=n("external_import",{source:q().$type().notNull(),source_key:q().notNull(),session_id:q().$type().notNull(),source_path:q().notNull(),source_mtime:x().notNull(),time_imported:x().notNull(),message_ids:q({mode:"json"}).$type()},(N)=>[o({columns:[N.source,N.source_key]})]);function Z_(){return{scanned:0,imported:0,resynced:0,skipped:0,errors:[]}}async function L_(N){if(!N||!await g.exists(N))return{id:b.global,worktree:N||"/",vcs:null};if(!await a(N))return{id:b.global,worktree:N,vcs:null};return{id:await t(N),worktree:N,vcs:"git"}}function __(N){return N.split(`
3
3
  `).map((_)=>_.trim()).filter(Boolean).flatMap((_)=>{try{return[JSON.parse(_)]}catch{return[]}})}function N_(N){let _=N.find((H)=>H.trim()&&!H.trim().startsWith("<"));if(!_)return;return _.trim().replace(/\s+/g," ").slice(0,100)}function R_(N,_){return D.use((H)=>H.select().from(G).where(c(K(G.source,N),K(G.source_key,_))).get())}function G_(N,_){if(!_)return{existing:void 0,existingUpdated:void 0};let H=_,O=D.use((Z)=>Z.select({updated:C.time_updated}).from(C).where(K(C.id,H.session_id)).get());if(!O)return D.use((Z)=>Z.delete(G).where(c(K(G.source,N),K(G.source_key,H.source_key))).run()),{existing:void 0,existingUpdated:void 0};return{existing:_,existingUpdated:O.updated}}function J_(N,_,H,O){N.insert(r).values({id:_.id,worktree:_.worktree,vcs:_.vcs,sandboxes:[],time_created:H,time_updated:O}).onConflictDoNothing().run()}function K_(N,_,H){if(_.message_ids?.length)for(let O=0;O<_.message_ids.length;O+=500)N.delete(k).where(i(k.id,_.message_ids.slice(O,O+500))).run();else N.delete(k).where(K(k.session_id,H)).run()}function A_(N,_,H){N.update(C).set({project_id:H.projectId,directory:H.directory,version:H.version,time_updated:Math.max(H.existingUpdated??0,H.timeUpdated)}).where(K(C.id,_)).run()}function $_(N){return async(_)=>F_({...N,force:_?.force})}async function F_(N){let _=Z_();if(!await X_(N.root).then(()=>!0).catch(()=>!1))return _;let H=await d.scan(N.pattern,{cwd:N.root,absolute:!0});for(let O of H){_.scanned++;try{let Z=W_.basename(O,".jsonl"),A=await g.statAsync(O);if(!A){_.skipped++;continue}let F=Math.floor(Number(A.mtimeMs)),Y=R_(N.source,Z);if(Y&&Y.source_mtime===F&&!N.force){_.skipped++;continue}let S=G_(N.source,Y);Y=S.existing;let T=S.existingUpdated,Q=Y?Y.session_id:e.descending(),V=N.parse(await Y_(O,"utf-8"),Q);if(!V||V.messages.length===0){_.skipped++;continue}let E=await L_(V.cwd),U=Date.now(),X=V.messages.map(($)=>$.info.id);if(D.transaction(($)=>{if(J_($,E,V.timeCreated,V.timeUpdated),Y)K_($,Y,Q),A_($,Q,{projectId:E.id,directory:V.cwd,version:V.version,existingUpdated:T,timeUpdated:V.timeUpdated});else $.insert(C).values({id:Q,project_id:E.id,slug:s.create(),directory:V.cwd,title:V.title,version:V.version,time_created:V.timeCreated,time_updated:V.timeUpdated}).run();for(let L of V.messages){let{id:B,sessionID:I,agentID:w,...z}=L.info;$.insert(k).values({id:B,session_id:Q,agent_id:"main",time_created:L.info.time.created,data:z}).onConflictDoUpdate({target:k.id,set:{data:z}}).run();for(let J of L.parts){let{id:y,sessionID:p,messageID:P,...h}=J.part;$.insert(m).values({id:y,message_id:L.info.id,session_id:Q,time_created:J.time,data:h}).onConflictDoUpdate({target:m.id,set:{data:h}}).run()}}$.insert(G).values({source:N.source,source_key:Z,session_id:Q,source_path:O,source_mtime:F,time_imported:U,message_ids:X}).onConflictDoUpdate({target:[G.source,G.source_key],set:{session_id:Q,source_path:O,source_mtime:F,time_imported:U,message_ids:X}}).run()}),Y)_.resynced++;else _.imported++}catch(Z){_.errors.push(`${O}: ${Z}`)}}if(_.imported+_.resynced>0||_.errors.length>0)N.log.info(N.logMessage,{..._,errors:_.errors.length});return _}var B_=Q_.create({service:"claude-import"});function k_(N){return N.replace(/[^a-zA-Z0-9]/g,"-")}function z_(N){if(!N)return{providerID:u.anthropic,modelID:f.make("unknown")};let _=N.indexOf("/");if(_===-1)return{providerID:u.anthropic,modelID:f.make(N)};return{providerID:u.make(N.slice(0,_)),modelID:f.make(N.slice(_+1))}}function H_(N){let _=N??{};return{input:_.input_tokens??0,output:_.output_tokens??0,reasoning:0,cache:{read:_.cache_read_input_tokens??0,write:_.cache_creation_input_tokens??0}}}function C_(N){if(typeof N==="string")return N;if(Array.isArray(N))return N.map((_)=>_&&typeof _==="object"&&("type"in _)&&_.type==="text"?_.text:JSON.stringify(_)).join(`
4
4
  `);return N==null?"":JSON.stringify(N)}function U_(N,_){let H=__(N);if(H.length===0)return;let O,Z,A,F=0,Y,S=[],T=new Map,Q=null,V=null,E=z_(void 0),U=()=>{if(Q)S.push(Q);Q=null};for(let X of H){if(X.type!=="user"&&X.type!=="assistant")continue;let $=X.timestamp?Date.parse(X.timestamp):Date.now();if(!O&&X.cwd)O=X.cwd;if(!Z&&X.version)Z=X.version;if(A===void 0)A=$;F=Math.max(F,$);let L=X.message;if(!L)continue;if(X.type==="user"){let z=L.content,J=typeof z==="string"?[]:Array.isArray(z)?z:[];for(let W of J.filter((R)=>R?.type==="tool_result")){let R=T.get(W.tool_use_id);if(!R)continue;let M=C_(W.content);R.part.state=W.is_error?{status:"error",input:R.part.state.input??{},error:M,time:{start:R.start,end:$}}:{status:"completed",input:R.part.state.input??{},output:M,title:R.part.tool,metadata:{},time:{start:R.start,end:$}}}let y=typeof z==="string"?z.trim()?[z]:[]:J.filter((W)=>W?.type==="text"&&typeof W.text==="string"&&W.text.trim()).map((W)=>W.text),p=J.filter((W)=>W?.type==="image"&&W.source);if(y.length===0&&p.length===0)continue;U();let P=j.ascending(),h=[];for(let W of y)h.push({part:{id:v.ascending(),sessionID:_,messageID:P,type:"text",text:W},time:$});for(let W of p){let R=W.source.media_type??"image/png",M=W.source.type==="base64"?`data:${R};base64,${W.source.data}`:W.source.url??"";if(M)h.push({part:{id:v.ascending(),sessionID:_,messageID:P,type:"file",mime:R,url:M},time:$})}let V_={id:P,sessionID:_,role:"user",agent:"main",time:{created:$},model:{providerID:E.providerID,modelID:E.modelID}};if(S.push({info:V_,parts:h}),V=P,!Y)Y=N_(y);continue}let B=z_(L.model);if(E=B,!V){let z=j.ascending();S.push({info:{id:z,sessionID:_,role:"user",agent:"main",time:{created:$},model:{providerID:B.providerID,modelID:B.modelID}},parts:[]}),V=z}if(!Q||Q.info.role!=="assistant"||Q.info.parentID!==V)U(),Q={info:{id:j.ascending(),sessionID:_,role:"assistant",time:{created:$,completed:$},parentID:V,modelID:B.modelID,providerID:B.providerID,mode:"build",agent:"main",path:{cwd:O??X.cwd??"",root:O??X.cwd??""},cost:0,tokens:H_(L.usage)},parts:[]};let I=Q.info;I.time.completed=$,I.tokens=H_(L.usage);let w=Q.info.id;for(let z of Array.isArray(L.content)?L.content:[])if(z?.type==="thinking"||z?.type==="reasoning")Q.parts.push({part:{id:v.ascending(),sessionID:_,messageID:w,type:"reasoning",text:z.thinking??z.text??"",time:{start:$,end:$}},time:$});else if(z?.type==="text"&&typeof z.text==="string")Q.parts.push({part:{id:v.ascending(),sessionID:_,messageID:w,type:"text",text:z.text},time:$});else if(z?.type==="tool_use"){let J={id:v.ascending(),sessionID:_,messageID:w,type:"tool",callID:z.id,tool:z.name,state:{status:"pending",input:z.input??{},raw:JSON.stringify(z.input??{})}};Q.parts.push({part:J,time:$}),T.set(z.id,{part:J,start:$})}}return U(),{cwd:O??"",version:Z??"claude-code",title:Y??"Claude Code session",timeCreated:A??Date.now(),timeUpdated:F||A||Date.now(),messages:S}}var h_=$_({source:"cc",root:E_.join(O_.Path.home,".claude","projects"),pattern:"*/*.jsonl",log:B_,logMessage:"claude import",parse:U_});
5
- export{G as $f,Z_ as ag,L_ as bg,__ as cg,N_ as dg,R_ as eg,G_ as fg,J_ as gg,K_ as hg,A_ as ig,$_ as jg,k_ as kg,h_ as lg,l as mg};
5
+ export{G as ag,Z_ as bg,L_ as cg,__ as dg,N_ as eg,R_ as fg,G_ as gg,J_ as hg,K_ as ig,A_ as jg,$_ as kg,k_ as lg,h_ as mg,l as ng};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ import"./chunk-0rmmg3g4.js";var F="./tree-sitter-markdown-411r6y9b.wasm";export{F as default};
@@ -1,3 +1,3 @@
1
1
  // @bun
2
2
  var f={"language.en":"English","language.zh":"\u7B80\u4F53\u4E2D\u6587","language.zht":"\u7E41\u9AD4\u4E2D\u6587","language.ko":"\uD55C\uAD6D\uC5B4","language.de":"Deutsch","language.es":"Espa\xF1ol","language.fr":"Fran\xE7ais","language.da":"Dansk","language.ja":"\u65E5\u672C\u8A9E","language.pl":"Polski","language.ru":"\u0420\u0443\u0441\u0441\u043A\u0438\u0439","language.ar":"\u0627\u0644\u0639\u0631\u0628\u064A\u0629","language.no":"Norsk","language.br":"Portugu\xEAs (Brasil)","language.pt":"Portugu\xEAs","language.bs":"Bosanski","language.th":"\u0E44\u0E17\u0E22","language.tr":"T\xFCrk\xE7e","tui.prompt.placeholder.normal":"\u8F93\u5165\u6D88\u606F...(\u8F93\u5165/\u5524\u8D77\u547D\u4EE4)","tui.prompt.placeholder.shell":'\u6267\u884C\u547D\u4EE4\u2026\u2026 "{{example}}"',"tui.prompt.ghost":"{{prediction}} (\u6309 Tab \u91C7\u7EB3)","tui.home.placeholder.example.todo":"\u4FEE\u590D\u4EE3\u7801\u5E93\u4E2D\u7684 TODO","tui.home.placeholder.example.stack":"\u8FD9\u4E2A\u9879\u76EE\u7528\u4E86\u4EC0\u4E48\u6280\u672F\u6808\uFF1F","tui.home.placeholder.example.tests":"\u4FEE\u590D\u5931\u8D25\u7684\u6D4B\u8BD5","tui.home.agreement.prefix":"\u4F7F\u7528 QitQode \u5373\u8868\u793A\u4F60\u540C\u610F\u6211\u4EEC\u7684","tui.home.agreement.terms":"\u670D\u52A1\u534F\u8BAE","tui.home.agreement.separator":"\u548C","tui.home.agreement.privacy":"\u9690\u79C1\u653F\u7B56","tui.home.agreement.suffix":"","tui.prompt.hint.attach_file":"\u6DFB\u52A0\u6587\u4EF6","tui.prompt.hint.subagent":"\u5B50\u667A\u80FD\u4F53","tui.prompt.hint.commands":"\u5524\u8D77\u547D\u4EE4","tui.prompt.hint.switch_mode":"\u5207\u6362\u6A21\u5F0F","tui.prompt.hint.settings":"\u8BBE\u7F6E","tui.tips.label":"\u63D0\u793A","tui.tips.plain_terminal":"\u63A8\u8350\u4F7F\u7528iTerm\u6216vscode\u7EC8\u7AEF","tui.tips.attach_file":"\u8F93\u5165 {highlight}@{/highlight} \u540E\u63A5\u6587\u4EF6\u540D\u4EE5\u6A21\u7CCA\u641C\u7D22\u5E76\u9644\u52A0\u6587\u4EF6","tui.tips.shell_prefix":"\u4EE5 {highlight}!{/highlight} \u5F00\u5934\u53EF\u76F4\u63A5\u8FD0\u884C shell \u547D\u4EE4\uFF08\u4F8B\u5982 {highlight}!ls -la{/highlight}\uFF09","tui.tips.tab_agent":"\u6309 {highlight}Tab{/highlight} \u6216 {highlight}Shift+Tab{/highlight} \u5728 Build / Plan / Compose \u667A\u80FD\u4F53\u4E4B\u95F4\u5207\u6362","tui.tips.theme_mode":"\u8FD0\u884C {highlight}/dark{/highlight} \u5207\u6362\u5230\u6DF1\u8272\u6A21\u5F0F\uFF0C{highlight}/light{/highlight} \u5207\u6362\u5230\u6D45\u8272\u6A21\u5F0F","tui.tips.doc":"\u8FD0\u884C {highlight}/doc{/highlight} \u6253\u5F00\u4F7F\u7528\u6587\u6863","tui.tips.undo":"\u4F7F\u7528 {highlight}/undo{/highlight} \u64A4\u9500\u6700\u540E\u4E00\u6761\u6D88\u606F\u53CA\u5176\u6587\u4EF6\u6539\u52A8","tui.tips.redo":"\u4F7F\u7528 {highlight}/redo{/highlight} \u6062\u590D\u4E4B\u524D\u64A4\u9500\u7684\u6D88\u606F\u548C\u6587\u4EF6\u6539\u52A8","tui.tips.drag_drop":"\u628A\u56FE\u7247\u6216 PDF \u62D6\u5165\u7EC8\u7AEF\u53EF\u4F5C\u4E3A\u4E0A\u4E0B\u6587\u6DFB\u52A0","tui.tips.paste_image":"\u6309 {highlight}Ctrl+V{/highlight} \u628A\u526A\u8D34\u677F\u4E2D\u7684\u56FE\u7247\u7C98\u8D34\u5230\u63D0\u793A\u6846","tui.tips.editor":"\u6309 {highlight}Ctrl+X E{/highlight} \u6216 {highlight}/editor{/highlight} \u5728\u5916\u90E8\u7F16\u8F91\u5668\u4E2D\u7F16\u8F91\u6D88\u606F","tui.tips.init":"\u8FD0\u884C {highlight}/init{/highlight} \u57FA\u4E8E\u4F60\u7684\u4EE3\u7801\u5E93\u81EA\u52A8\u751F\u6210\u9879\u76EE\u89C4\u5219","tui.tips.models":"\u8FD0\u884C {highlight}/models{/highlight} \u6216 {highlight}Ctrl+X M{/highlight} \u5207\u6362\u6A21\u578B","tui.tips.theme":'\u5728\u547D\u4EE4\u9762\u677F\uFF08{highlight}Ctrl+P{/highlight}\uFF09\u4E2D\u641C\u7D22 "lock" \u53EF\u9501\u5B9A\u4E3B\u9898\u6A21\u5F0F\uFF0C\u4F7F\u5176\u4E0D\u968F\u7EC8\u7AEF\u80CC\u666F\u53D8\u5316',"tui.tips.new_session":"\u6309 {highlight}Ctrl+X N{/highlight} \u6216 {highlight}/new{/highlight} \u5F00\u542F\u5168\u65B0\u4F1A\u8BDD","tui.tips.sessions":"\u4F7F\u7528 {highlight}/sessions{/highlight} \u6216 {highlight}Ctrl+X L{/highlight} \u5217\u51FA\u5E76\u7EE7\u7EED\u4E4B\u524D\u7684\u4F1A\u8BDD","tui.tips.compact":"\u8FD0\u884C {highlight}/compact{/highlight} \u5728\u63A5\u8FD1\u4E0A\u4E0B\u6587\u4E0A\u9650\u65F6\u538B\u7F29\u957F\u4F1A\u8BDD","tui.tips.export":"\u6309 {highlight}Ctrl+X X{/highlight} \u6216 {highlight}/export{/highlight} \u628A\u4F1A\u8BDD\u4FDD\u5B58\u4E3A Markdown","tui.tips.copy_last":"\u6309 {highlight}Ctrl+X Y{/highlight} \u628A\u52A9\u624B\u6700\u540E\u4E00\u6761\u6D88\u606F\u590D\u5236\u5230\u526A\u8D34\u677F","tui.tips.command_palette":"\u6309 {highlight}Ctrl+P{/highlight} \u67E5\u770B\u6240\u6709\u53EF\u7528\u52A8\u4F5C\u548C\u547D\u4EE4","tui.tips.leader":"\u524D\u5BFC\u952E\u662F {highlight}Ctrl+X{/highlight}\uFF0C\u642D\u914D\u5176\u4ED6\u952E\u53EF\u5FEB\u901F\u89E6\u53D1\u52A8\u4F5C","tui.tips.f2":"\u6309 {highlight}F2{/highlight} \u5728\u6700\u8FD1\u4F7F\u7528\u7684\u6A21\u578B\u4E4B\u95F4\u5FEB\u901F\u5207\u6362","tui.tips.sidebar":"\u6309 {highlight}Ctrl+X B{/highlight} \u663E\u793A/\u9690\u85CF\u4FA7\u680F","tui.tips.history":"\u7528 {highlight}PageUp{/highlight}/{highlight}PageDown{/highlight} \u6D4F\u89C8\u4F1A\u8BDD\u5386\u53F2","tui.tips.jump_first":"\u6309 {highlight}Ctrl+G{/highlight} \u6216 {highlight}Home{/highlight} \u8DF3\u5230\u4F1A\u8BDD\u5F00\u5934","tui.tips.jump_last":"\u6309 {highlight}Ctrl+Alt+G{/highlight} \u6216 {highlight}End{/highlight} \u8DF3\u5230\u6700\u65B0\u6D88\u606F","tui.tips.newline":"\u6309 {highlight}Shift+Enter{/highlight} \u6216 {highlight}Ctrl+J{/highlight} \u5728\u63D0\u793A\u6846\u6362\u884C","tui.tips.clear_input":"\u8F93\u5165\u65F6\u6309 {highlight}Ctrl+C{/highlight} \u6E05\u7A7A\u8F93\u5165\u6846","tui.tips.escape":"\u6309 {highlight}Escape{/highlight} \u5728\u54CD\u5E94\u4E2D\u9014\u6253\u65AD AI","tui.tips.plan_agent":"\u5207\u6362\u5230 {highlight}Plan{/highlight} \u667A\u80FD\u4F53\u4EE5\u83B7\u53D6\u5EFA\u8BAE\u800C\u4E0D\u5B9E\u9645\u6539\u52A8","tui.tips.subagent":"\u5728\u63D0\u793A\u8BCD\u4E2D\u4F7F\u7528 {highlight}@agent-name{/highlight} \u8C03\u7528\u4E13\u7528\u5B50\u667A\u80FD\u4F53","tui.tips.cycle_sessions":"\u6309 {highlight}Ctrl+X Right/Left{/highlight} \u5728\u7236\u5B50\u4F1A\u8BDD\u4E4B\u95F4\u5207\u6362","tui.tips.config_files":"\u521B\u5EFA {highlight}qitqode.json{/highlight} \u7528\u4E8E\u670D\u52A1\u7AEF\u914D\u7F6E\uFF0C{highlight}tui.json{/highlight} \u7528\u4E8E TUI \u914D\u7F6E","tui.tips.global_config":"\u628A TUI \u914D\u7F6E\u653E\u5728 {highlight}~/.config/qitqode/tui.json{/highlight} \u4F5C\u4E3A\u5168\u5C40\u914D\u7F6E","tui.tips.schema":"\u5728\u914D\u7F6E\u4E2D\u52A0\u5165 {highlight}$schema{/highlight} \u4EE5\u4FBF\u7F16\u8F91\u5668\u81EA\u52A8\u8865\u5168","tui.tips.default_model":"\u5728\u914D\u7F6E\u91CC\u8BBE\u7F6E {highlight}model{/highlight} \u6765\u6307\u5B9A\u9ED8\u8BA4\u6A21\u578B","tui.tips.keybinds":"\u901A\u8FC7 {highlight}tui.json{/highlight} \u7684 {highlight}keybinds{/highlight} \u90E8\u5206\u8986\u76D6\u4EFB\u610F\u6309\u952E","tui.tips.disable_keybind":"\u628A\u4EFB\u610F\u6309\u952E\u8BBE\u4E3A {highlight}none{/highlight} \u5373\u53EF\u5B8C\u5168\u7981\u7528\u5B83","tui.tips.mcp_config":"\u5728 {highlight}mcp{/highlight} \u914D\u7F6E\u9879\u4E2D\u914D\u7F6E\u672C\u5730\u6216\u8FDC\u7A0B MCP \u670D\u52A1\u5668","tui.tips.mcp_oauth":"QitQode \u81EA\u52A8\u5904\u7406\u9700\u8981\u9274\u6743\u7684\u8FDC\u7A0B MCP \u670D\u52A1\u5668\u7684 OAuth","tui.tips.custom_command":"\u5728 {highlight}.qitqode/command/{/highlight} \u6DFB\u52A0 {highlight}.md{/highlight} \u6587\u4EF6\u4EE5\u5B9A\u4E49\u53EF\u590D\u7528\u81EA\u5B9A\u4E49\u63D0\u793A","tui.tips.command_args":"\u5728\u81EA\u5B9A\u4E49\u547D\u4EE4\u4E2D\u4F7F\u7528 {highlight}$ARGUMENTS{/highlight}\u3001{highlight}$1{/highlight}\u3001{highlight}$2{/highlight} \u63A5\u6536\u52A8\u6001\u53C2\u6570","tui.tips.command_backticks":"\u5728\u547D\u4EE4\u4E2D\u4F7F\u7528\u53CD\u5F15\u53F7\u6CE8\u5165 shell \u8F93\u51FA\uFF08\u4F8B\u5982 {highlight}`git status`{/highlight}\uFF09","tui.tips.custom_agent":"\u5728 {highlight}.qitqode/agent/{/highlight} \u6DFB\u52A0 {highlight}.md{/highlight} \u6587\u4EF6\u6765\u521B\u5EFA\u4E13\u7528 AI \u89D2\u8272","tui.tips.agent_perms":"\u4E3A\u6BCF\u4E2A\u667A\u80FD\u4F53\u5355\u72EC\u914D\u7F6E {highlight}edit{/highlight}\u3001{highlight}bash{/highlight}\u3001{highlight}webfetch{/highlight} \u5DE5\u5177\u6743\u9650","tui.tips.bash_allow":'\u4F7F\u7528 {highlight}"git *": "allow"{/highlight} \u8FD9\u7C7B\u6A21\u5F0F\u505A\u7CBE\u7EC6 bash \u6743\u9650',"tui.tips.bash_deny":'\u8BBE\u7F6E {highlight}"rm -rf *": "deny"{/highlight} \u963B\u6B62\u7834\u574F\u6027\u547D\u4EE4',"tui.tips.bash_ask":'\u914D\u7F6E {highlight}"git push": "ask"{/highlight} \u5728\u63A8\u9001\u524D\u8981\u6C42\u786E\u8BA4',"tui.tips.formatter":"QitQode \u81EA\u52A8\u4F7F\u7528 prettier\u3001gofmt\u3001ruff \u7B49\u683C\u5F0F\u5316\u6587\u4EF6","tui.tips.disable_formatter":'\u5728\u914D\u7F6E\u4E2D\u8BBE\u7F6E {highlight}"formatter": false{/highlight} \u5173\u95ED\u6240\u6709\u81EA\u52A8\u683C\u5F0F\u5316',"tui.tips.custom_formatter":"\u5728\u914D\u7F6E\u4E2D\u6309\u6587\u4EF6\u540E\u7F00\u5B9A\u4E49\u81EA\u5B9A\u4E49\u683C\u5F0F\u5316\u547D\u4EE4","tui.tips.lsp":"QitQode \u4F7F\u7528 LSP \u670D\u52A1\u5668\u8FDB\u884C\u667A\u80FD\u4EE3\u7801\u5206\u6790","tui.tips.custom_tool":"\u5728 {highlight}.qitqode/tools/{/highlight} \u521B\u5EFA {highlight}.ts{/highlight} \u6587\u4EF6\u5B9A\u4E49\u65B0\u7684 LLM \u5DE5\u5177","tui.tips.tool_scripts":"\u5DE5\u5177\u5B9A\u4E49\u53EF\u4EE5\u8C03\u7528 Python\u3001Go \u7B49\u811A\u672C","tui.tips.plugins":"\u5728 {highlight}.qitqode/plugin/{/highlight} \u6DFB\u52A0 {highlight}.ts{/highlight} \u6587\u4EF6\u6302\u63A5\u4E8B\u4EF6\u94A9\u5B50","tui.tips.plugin_notify":"\u7528\u63D2\u4EF6\u5728\u4F1A\u8BDD\u5B8C\u6210\u65F6\u53D1\u9001\u7CFB\u7EDF\u901A\u77E5","tui.tips.plugin_protect":"\u5199\u4E00\u4E2A\u63D2\u4EF6\u963B\u6B62 QitQode \u8BFB\u53D6\u654F\u611F\u6587\u4EF6","tui.tips.run":"\u7528 {highlight}qitqode run{/highlight} \u8FDB\u884C\u975E\u4EA4\u4E92\u5F0F\u811A\u672C\u8C03\u7528","tui.tips.continue":"\u7528 {highlight}qitqode --continue{/highlight} \u7EE7\u7EED\u4E0A\u4E00\u4E2A\u4F1A\u8BDD","tui.tips.attach_cli":"\u7528 {highlight}qitqode run -f file.ts{/highlight} \u901A\u8FC7\u547D\u4EE4\u884C\u9644\u52A0\u6587\u4EF6","tui.tips.format_json":"\u7528 {highlight}--format json{/highlight} \u5728\u811A\u672C\u4E2D\u83B7\u5F97\u673A\u5668\u53EF\u8BFB\u8F93\u51FA","tui.tips.auth_list":"\u8FD0\u884C {highlight}qitqode auth status{/highlight} \u67E5\u770B\u5F53\u524D\u767B\u5F55\u72B6\u6001","tui.tips.agent_create":"\u8FD0\u884C {highlight}qitqode agent create{/highlight} \u5F15\u5BFC\u5F0F\u521B\u5EFA\u667A\u80FD\u4F53","tui.tips.theme_system":'\u4F7F\u7528 {highlight}"theme": "system"{/highlight} \u8DDF\u968F\u7EC8\u7AEF\u914D\u8272',"tui.tips.theme_files":"\u5728 {highlight}.qitqode/themes/{/highlight} \u76EE\u5F55\u4E0B\u521B\u5EFA JSON \u4E3B\u9898\u6587\u4EF6","tui.tips.theme_variants":"\u4E3B\u9898\u652F\u6301\u6DF1\u8272/\u6D45\u8272\u53CC\u6A21\u5F0F\u53D8\u4F53","tui.tips.theme_ansi":"\u81EA\u5B9A\u4E49\u4E3B\u9898\u4E2D\u53EF\u5F15\u7528 ANSI 0-255 \u8272\u53F7","tui.tips.env_var":"\u5728\u914D\u7F6E\u4E2D\u7528 {highlight}{env:VAR_NAME}{/highlight} \u8BED\u6CD5\u5F15\u7528\u73AF\u5883\u53D8\u91CF","tui.tips.file_var":"\u7528 {highlight}{file:path}{/highlight} \u5728\u914D\u7F6E\u503C\u4E2D\u5D4C\u5165\u6587\u4EF6\u5185\u5BB9","tui.tips.instructions":"\u5728\u914D\u7F6E\u4E2D\u7528 {highlight}instructions{/highlight} \u52A0\u8F7D\u989D\u5916\u7684\u89C4\u5219\u6587\u4EF6","tui.tips.temperature":"\u628A\u667A\u80FD\u4F53\u7684 {highlight}temperature{/highlight} \u4ECE 0.0\uFF08\u4E13\u6CE8\uFF09\u8C03\u5230 1.0\uFF08\u521B\u9020\uFF09","tui.tips.steps":"\u914D\u7F6E {highlight}steps{/highlight} \u9650\u5236\u6BCF\u6B21\u8BF7\u6C42\u7684\u667A\u80FD\u4F53\u8FED\u4EE3\u6B21\u6570","tui.tips.disable_tool":'\u8BBE\u7F6E {highlight}"tools": {"bash": false}{/highlight} \u7981\u7528\u5177\u4F53\u5DE5\u5177',"tui.tips.disable_mcp_tools":'\u8BBE\u7F6E {highlight}"mcp_*": false{/highlight} \u7981\u7528\u67D0\u4E2A MCP \u670D\u52A1\u5668\u7684\u6240\u6709\u5DE5\u5177',"tui.tips.tool_override":"\u5728\u6BCF\u4E2A\u667A\u80FD\u4F53\u914D\u7F6E\u4E2D\u8986\u76D6\u5168\u5C40\u5DE5\u5177\u8BBE\u7F6E","tui.tips.doom_loop":"\u6743\u9650 {highlight}doom_loop{/highlight} \u9632\u6B62\u5DE5\u5177\u8C03\u7528\u9677\u5165\u6B7B\u5FAA\u73AF","tui.tips.external_dir":"\u6743\u9650 {highlight}external_directory{/highlight} \u4FDD\u62A4\u9879\u76EE\u5916\u90E8\u7684\u6587\u4EF6","tui.tips.debug_config":"\u8FD0\u884C {highlight}qitqode debug config{/highlight} \u6392\u67E5\u914D\u7F6E\u95EE\u9898","tui.tips.print_logs":"\u4F7F\u7528 {highlight}--print-logs{/highlight} \u6807\u5FD7\u5728 stderr \u8F93\u51FA\u8BE6\u7EC6\u65E5\u5FD7","tui.tips.timeline":"\u6309 {highlight}Ctrl+X G{/highlight} \u6216 {highlight}/timeline{/highlight} \u8DF3\u5230\u6307\u5B9A\u6D88\u606F","tui.tips.toggle_code":"\u6309 {highlight}Ctrl+X H{/highlight} \u5207\u6362\u6D88\u606F\u4E2D\u4EE3\u7801\u5757\u7684\u663E\u793A","tui.tips.status":"\u6309 {highlight}Ctrl+X S{/highlight} \u6216 {highlight}/status{/highlight} \u67E5\u770B\u7CFB\u7EDF\u72B6\u6001","tui.tips.scroll_accel":"\u5728 {highlight}tui.json{/highlight} \u4E2D\u5F00\u542F {highlight}scroll_acceleration{/highlight} \u4EAB\u53D7\u5E73\u6ED1\u6EDA\u52A8","tui.tips.agents_md":"\u628A\u9879\u76EE\u91CC\u7684 {highlight}AGENTS.md{/highlight} \u63D0\u4EA4\u5230 Git \u4E0E\u56E2\u961F\u5171\u4EAB","tui.tips.review":"\u7528 {highlight}/review{/highlight} \u5BA1\u9605\u672A\u63D0\u4EA4\u6539\u52A8\u3001\u5206\u652F\u6216 PR","tui.tips.help":"\u8FD0\u884C {highlight}/help{/highlight} \u6216 {highlight}Ctrl+X H{/highlight} \u663E\u793A\u5E2E\u52A9\u5BF9\u8BDD\u6846","tui.tips.rename":"\u7528 {highlight}/rename{/highlight} \u91CD\u547D\u540D\u5F53\u524D\u4F1A\u8BDD","tui.tips.suspend.unix":"\u6309 {highlight}Ctrl+Z{/highlight} \u6302\u8D77\u7EC8\u7AEF\u5E76\u8FD4\u56DE shell","tui.tips.suspend.win":"\u6309 {highlight}Ctrl+Z{/highlight} \u64A4\u9500\u63D0\u793A\u6846\u4E2D\u7684\u8F93\u5165","tui.command.palette.title":"\u547D\u4EE4","tui.command.palette.suggested":"\u63A8\u8350","tui.command.category.session":"\u4F1A\u8BDD","tui.command.category.agent":"\u667A\u80FD\u4F53","tui.command.category.provider":"\u670D\u52A1\u5546","tui.command.category.system":"\u7CFB\u7EDF","tui.command.category.prompt":"\u63D0\u793A\u6846","tui.command.category.internal":"\u5185\u7F6E","tui.command.category.external":"\u7B2C\u4E09\u65B9","tui.slash.init.description":"\u5F15\u5BFC\u5F0F AGENTS.md \u8BBE\u7F6E","tui.slash.review.description":"\u5BA1\u67E5\u53D8\u66F4 [commit|branch|pr]\uFF0C\u9ED8\u8BA4\u672A\u63D0\u4EA4\u7684\u53D8\u66F4","tui.slash.dream.description":"\u4ECE memory \u6587\u4EF6\u4E0E\u539F\u59CB\u8F68\u8FF9\u4E2D\u624B\u52A8\u6574\u5408\u9879\u76EE\u8BB0\u5FC6","tui.slash.distill.description":"\u5728\u6700\u8FD1\u5DE5\u4F5C\u4E2D\u53D1\u73B0\u91CD\u590D\u6D41\u7A0B\uFF0C\u6253\u5305\u4E3A skill\u3001\u5B50\u667A\u80FD\u4F53\u6216\u547D\u4EE4","tui.slash.goal.description":"\u8BBE\u7F6E\u7EC8\u6B62\u6761\u4EF6\u76EE\u6807\uFF1B\u8FD0\u884C\u76F4\u5230\u5224\u5B9A\u8FBE\u6210\u3002\u4F7F\u7528 /goal clear \u4E2D\u6B62","tui.slash.deep-research.description":"\u6DF1\u5EA6\u591A\u6765\u6E90\u3001\u4E8B\u5B9E\u6838\u67E5\u7684\u7814\u7A76\u62A5\u544A\uFF08\u8FD0\u884C deep-research \u5DE5\u4F5C\u6D41\uFF09","tui.command.language.switch.title":"\u5207\u6362\u8BED\u8A00","tui.command.language.switch.description":"\u66F4\u6539\u663E\u793A\u8BED\u8A00","tui.command.language.dialog.title":"\u5207\u6362\u8BED\u8A00","tui.language.auto":"\u81EA\u52A8\uFF08\u8DDF\u968F\u7CFB\u7EDF\uFF09","tui.language.current":"\u5F53\u524D","tui.command.session.list.title":"\u5207\u6362\u4F1A\u8BDD","tui.command.session.new.title":"\u65B0\u5EFA\u4F1A\u8BDD","tui.command.workflow.list.title":"\u5DE5\u4F5C\u6D41","tui.command.model.list.title":"\u5207\u6362\u6A21\u578B","tui.command.model.cycle_recent.title":"\u5FAA\u73AF\u5207\u6362\u6A21\u578B","tui.command.model.cycle_recent_reverse.title":"\u53CD\u5411\u5FAA\u73AF\u5207\u6362\u6A21\u578B","tui.command.model.cycle_favorite.title":"\u5FAA\u73AF\u5207\u6362\u6536\u85CF\u6A21\u578B","tui.command.model.cycle_favorite_reverse.title":"\u53CD\u5411\u5FAA\u73AF\u5207\u6362\u6536\u85CF\u6A21\u578B","tui.command.agent.list.title":"\u5207\u6362\u667A\u80FD\u4F53","tui.command.mcp.list.title":"\u5207\u6362 MCP","tui.command.never_ask.title_on":"\u8DF3\u8FC7\u63D0\u95EE\uFF1A\u5DF2\u5F00\u542F\uFF08\u81EA\u52A8\u51B3\u7B56\uFF0C\u6743\u9650\u8BF7\u6C42\u9664\u5916\uFF09 - \u70B9\u51FB\u5173\u95ED","tui.command.never_ask.title_off":"\u8DF3\u8FC7\u63D0\u95EE\uFF1A\u5DF2\u5173\u95ED - \u70B9\u51FB\u5F00\u542F\uFF08\u81EA\u52A8\u51B3\u7B56\uFF0C\u6743\u9650\u8BF7\u6C42\u9664\u5916\uFF09","tui.command.never_ask.toast_on":"\u5DF2\u5F00\u542F\u8DF3\u8FC7\u63D0\u95EE \u2014 \u6211\u4E0D\u4F1A\u518D\u5411\u4F60\u63D0\u95EE\uFF0C\u4F1A\u81EA\u884C\u9009\u62E9\u6700\u4F73\u9009\u9879\uFF0C\u76F4\u5230\u4F60\u5173\u95ED\uFF08/never-ask\uFF09\u3002\u6743\u9650\u8BF7\u6C42\u4ECD\u9700\u4F60\u786E\u8BA4\u3002","tui.command.never_ask.toast_off":"\u5DF2\u5173\u95ED\u8DF3\u8FC7\u63D0\u95EE \u2014 \u9047\u5230\u51B3\u7B56\u70B9\u6211\u4F1A\u91CD\u65B0\u5411\u4F60\u63D0\u95EE\u3002","tui.command.agent.cycle.title":"\u5FAA\u73AF\u5207\u6362\u667A\u80FD\u4F53","tui.command.variant.cycle.title":"\u5FAA\u73AF\u5207\u6362\u6A21\u578B\u53D8\u4F53","tui.command.variant.list.title":"\u5207\u6362\u6A21\u578B\u53D8\u4F53","tui.command.agent.cycle.reverse.title":"\u53CD\u5411\u5FAA\u73AF\u5207\u6362\u667A\u80FD\u4F53","tui.command.provider.login.title":"\u767B\u5F55","tui.command.provider.logout.title":"\u767B\u51FA","tui.command.console.org.switch.title":"\u5207\u6362\u7EC4\u7EC7","tui.command.qitqode.status.title":"\u67E5\u770B\u72B6\u6001","tui.command.worktree.list.title":"\u5DE5\u4F5C\u6811","tui.command.theme.switch.title":"\u5207\u6362\u4E3B\u9898","tui.command.theme.switch_mode.to_light":"\u5207\u6362\u5230\u6D45\u8272\u6A21\u5F0F","tui.command.theme.switch_mode.to_dark":"\u5207\u6362\u5230\u6DF1\u8272\u6A21\u5F0F","tui.command.theme.mode.unlock":"\u89E3\u9501\u4E3B\u9898\u6A21\u5F0F","tui.command.theme.mode.lock":"\u9501\u5B9A\u4E3B\u9898\u6A21\u5F0F","tui.command.help.show.title":"\u5E2E\u52A9","tui.dialog.help.close_hint":"esc/enter/space","tui.dialog.help.accessibility":"\u65E0\u969C\u788D:\u53EF\u5728\u547D\u4EE4\u5217\u8868\u4E2D\u5207\u6362\u52A8\u753B\u548C\u58F0\u97F3\u3002\u73AF\u5883\u53D8\u91CF:NO_COLOR, QITQODE_TUI_ACCESSIBLE, QITQODE_REDUCE_MOTION, QITQODE_TUI_SOUND\u3002","tui.dialog.help.announcements":"\u64AD\u62A5:\u5728\u65E0\u969C\u788D\u6A21\u5F0F\u4E0B,\u53EF\u901A\u8FC7\u547D\u4EE4\u5217\u8868\u6216 QITQODE_TUI_ANNOUNCEMENTS \u9009\u62E9\u5C4F\u5E55\u9605\u8BFB\u5668\u64AD\u62A5\u7684\u8BE6\u7EC6\u7A0B\u5EA6(\u5B89\u9759\u3001\u6B63\u5E38\u3001\u8BE6\u7EC6)\u3002\u9519\u8BEF\u59CB\u7EC8\u4F1A\u64AD\u62A5\u3002","tui.dialog.help.dialog_keys":"\u5BF9\u8BDD\u6846:\u6240\u6709\u5BF9\u8BDD\u6846\u5747\u53EF\u4EC5\u7528\u952E\u76D8\u64CD\u4F5C \u2014 Esc \u5173\u95ED,Tab \u6216\u65B9\u5411\u952E\u79FB\u52A8\u7126\u70B9,Enter \u6216\u7A7A\u683C\u952E\u6FC0\u6D3B\u5F53\u524D\u63A7\u4EF6\u3002","tui.command.app.announcements.cycle":"\u64AD\u62A5:{{level}}(\u9009\u62E9\u4EE5\u66F4\u6539)","tui.announcements.level.quiet":"\u5B89\u9759","tui.announcements.level.normal":"\u6B63\u5E38","tui.announcements.level.verbose":"\u8BE6\u7EC6","tui.app.terminal_too_small":"\u7EC8\u7AEF\u7A97\u53E3\u8FC7\u5C0F ({{width}}x{{height}}),\u8BF7\u8C03\u6574\u5230\u81F3\u5C11 40x8\u3002","tui.dialog.help.command_list":"\u6309 {{keybind}} \u67E5\u770B\u5F53\u524D\u4E0A\u4E0B\u6587\u4E2D\u6240\u6709\u53EF\u7528\u7684\u64CD\u4F5C\u548C\u547D\u4EE4\u3002","tui.dialog.help.ok":"\u786E\u5B9A","tui.dialog.close_hint":"esc","tui.dialog.document.scroll_hint":"\u2191/\u2193 \u6EDA\u52A8 \xB7 PgUp/PgDn \u7FFB\u9875 \xB7 esc \u5173\u95ED","tui.dialog.ok":"\u786E\u5B9A","tui.dialog.confirm.cancel":"\u53D6\u6D88","tui.dialog.confirm.confirm":"\u786E\u8BA4","tui.dialog.agreement.title":"\u670D\u52A1\u534F\u8BAE\u4E0E\u9690\u79C1\u653F\u7B56","tui.dialog.agreement.message":"\u8BF7\u9605\u8BFB\u5E76\u540C\u610F\u540E\u7EE7\u7EED\u4F7F\u7528\u3002","tui.dialog.agreement.confirm":"\u540C\u610F\u5E76\u7EE7\u7EED","tui.command.docs.terms.title":"\u67E5\u770B\u670D\u52A1\u6761\u6B3E","tui.command.docs.privacy.title":"\u67E5\u770B\u9690\u79C1\u653F\u7B56","tui.command.consent.revoke.title":"\u64A4\u9500\u514D\u8D39\u6A21\u578B\u534F\u8BAE","tui.consent.revoked":"\u5DF2\u64A4\u9500\u514D\u8D39\u6A21\u578B\u534F\u8BAE \u2014 \u4E0B\u6B21\u4F7F\u7528\u65F6\u5C06\u518D\u6B21\u8BF7\u6C42\u540C\u610F","tui.dialog.select.placeholder":"\u641C\u7D22","tui.dialog.select.no_results":"\u672A\u627E\u5230\u7ED3\u679C","tui.dialog.prompt.placeholder":"\u8F93\u5165\u6587\u672C","tui.dialog.prompt.busy":"\u5904\u7406\u4E2D...","tui.dialog.prompt.processing":"\u5904\u7406\u4E2D...","tui.dialog.prompt.submit_key":"enter","tui.dialog.prompt.submit_action":"\u63D0\u4EA4","tui.dialog.export.title":"\u5BFC\u51FA\u9009\u9879","tui.dialog.export.filename":"\u6587\u4EF6\u540D\uFF1A","tui.dialog.export.filename_placeholder":"\u8F93\u5165\u6587\u4EF6\u540D","tui.dialog.export.include_thinking":"\u5305\u542B\u601D\u8003\u8FC7\u7A0B","tui.dialog.export.include_tool_details":"\u5305\u542B\u5DE5\u5177\u8BE6\u60C5","tui.dialog.export.include_assistant_metadata":"\u5305\u542B\u52A9\u624B\u5143\u6570\u636E","tui.dialog.export.open_without_saving":"\u76F4\u63A5\u6253\u5F00\u4E0D\u4FDD\u5B58","tui.dialog.export.hint.toggle_prefix":"\u6309","tui.dialog.export.hint.toggle_action":"\u5207\u6362","tui.dialog.export.hint.confirm_action":"\u786E\u8BA4","tui.dialog.export.hint.options_action":"\u67E5\u770B\u9009\u9879","tui.toast.copied_to_clipboard":"\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F","tui.toast.instructions_loaded":"\u5DF2\u52A0\u8F7D {{files}}","tui.toast.update_available.title":"\u6709\u65B0\u7248\u672C\u53EF\u7528","tui.toast.update_available.confirm":"\u65B0\u7248\u672C v{{version}} \u5DF2\u53D1\u5E03\uFF0C\u662F\u5426\u7ACB\u5373\u66F4\u65B0\uFF1F","tui.toast.update_available.updating":"\u6B63\u5728\u66F4\u65B0\u5230 v{{version}}...","tui.toast.update_available.failed":"\u66F4\u65B0\u5931\u8D25","tui.toast.update_available.success":"\u5DF2\u66F4\u65B0\u5230 QitQode v{{version}}\uFF0C\u8BF7\u91CD\u542F\u5E94\u7528\u3002","tui.toast.updated.title":"\u5DF2\u81EA\u52A8\u66F4\u65B0","tui.toast.updated.message":"\u5DF2\u81EA\u52A8\u5E94\u7528\u8865\u4E01\u66F4\u65B0\uFF1Av{{version}}\u3002\u91CD\u542F\u540E\u751F\u6548\u3002\u53EF\u5728\u914D\u7F6E\u4E2D\u8BBE\u7F6E autoupdate: false \u5173\u95ED\u81EA\u52A8\u66F4\u65B0\u3002","tui.sidebar.instructions":"\u6307\u4EE4\u6587\u4EF6","tui.sidebar.cwd":"\u5DE5\u4F5C\u76EE\u5F55","tui.toast.unknown_error":"\u53D1\u751F\u672A\u77E5\u9519\u8BEF","tui.command.docs.open.title":"\u6253\u5F00\u6587\u6863","tui.command.app.exit.title":"\u9000\u51FA\u5E94\u7528","tui.command.app.debug.title":"\u5207\u6362\u8C03\u8BD5\u9762\u677F","tui.command.app.console.title":"\u5207\u6362\u63A7\u5236\u53F0","tui.command.app.heap_snapshot.title":"\u5BFC\u51FA\u5806\u5FEB\u7167","tui.command.terminal.suspend.title":"\u6302\u8D77\u7EC8\u7AEF","tui.command.terminal.title.disable":"\u7981\u7528\u7EC8\u7AEF\u6807\u9898","tui.command.terminal.title.enable":"\u542F\u7528\u7EC8\u7AEF\u6807\u9898","tui.command.app.toggle.animations.disable":"\u7981\u7528\u52A8\u753B","tui.command.app.toggle.animations.enable":"\u542F\u7528\u52A8\u753B","tui.command.app.toggle.diffwrap.disable":"\u7981\u7528 diff \u81EA\u52A8\u6362\u884C","tui.command.app.toggle.diffwrap.enable":"\u542F\u7528 diff \u81EA\u52A8\u6362\u884C","tui.command.app.toggle.sound.disable":"\u7981\u7528\u58F0\u97F3","tui.command.app.toggle.sound.enable":"\u542F\u7528\u58F0\u97F3","tui.command.logout.toast":"\u5DF2\u767B\u51FA","tui.command.session.share.title":"\u5206\u4EAB\u4F1A\u8BDD","tui.command.session.share.copy_link":"\u590D\u5236\u5206\u4EAB\u94FE\u63A5","tui.command.session.rename.title":"\u91CD\u547D\u540D\u4F1A\u8BDD","tui.command.session.timeline.title":"\u8DF3\u8F6C\u5230\u6D88\u606F","tui.command.session.fork.title":"\u6D3E\u751F\u4F1A\u8BDD","tui.command.session.compact.title":"\u538B\u7F29\u4F1A\u8BDD","tui.command.session.unshare.title":"\u53D6\u6D88\u5206\u4EAB","tui.command.session.undo.title":"\u64A4\u9500\u4E0A\u4E00\u6761\u6D88\u606F","tui.command.session.redo.title":"\u91CD\u505A","tui.command.session.sidebar.show":"\u663E\u793A\u4FA7\u680F","tui.command.session.sidebar.hide":"\u9690\u85CF\u4FA7\u680F","tui.command.session.conceal.disable":"\u5173\u95ED\u4EE3\u7801\u9690\u85CF","tui.command.session.conceal.enable":"\u5F00\u542F\u4EE3\u7801\u9690\u85CF","tui.command.session.timestamps.show":"\u663E\u793A\u65F6\u95F4\u6233","tui.command.session.timestamps.hide":"\u9690\u85CF\u65F6\u95F4\u6233","tui.command.session.thinking.expand":"\u5C55\u5F00\u601D\u8003\u8FC7\u7A0B","tui.command.session.thinking.collapse":"\u6298\u53E0\u601D\u8003\u8FC7\u7A0B","tui.command.session.tool_details.show":"\u663E\u793A\u5DE5\u5177\u8BE6\u60C5","tui.command.session.tool_details.hide":"\u9690\u85CF\u5DE5\u5177\u8BE6\u60C5","tui.command.session.scrollbar.toggle":"\u5207\u6362\u4F1A\u8BDD\u6EDA\u52A8\u6761","tui.command.session.generic_tool_output.show":"\u663E\u793A\u901A\u7528\u5DE5\u5177\u8F93\u51FA","tui.command.session.generic_tool_output.hide":"\u9690\u85CF\u901A\u7528\u5DE5\u5177\u8F93\u51FA","tui.command.session.page_up.title":"\u4E0A\u7FFB\u4E00\u9875","tui.command.session.page_down.title":"\u4E0B\u7FFB\u4E00\u9875","tui.command.session.line_up.title":"\u5411\u4E0A\u4E00\u884C","tui.command.session.line_down.title":"\u5411\u4E0B\u4E00\u884C","tui.command.session.half_page_up.title":"\u5411\u4E0A\u534A\u9875","tui.command.session.half_page_down.title":"\u5411\u4E0B\u534A\u9875","tui.command.session.first.title":"\u7B2C\u4E00\u6761\u6D88\u606F","tui.command.session.last.title":"\u6700\u540E\u4E00\u6761\u6D88\u606F","tui.command.session.last_user.title":"\u8DF3\u5230\u6700\u540E\u4E00\u6761\u7528\u6237\u6D88\u606F","tui.command.session.message_next.title":"\u4E0B\u4E00\u6761\u6D88\u606F","tui.command.session.message_previous.title":"\u4E0A\u4E00\u6761\u6D88\u606F","tui.command.messages.copy.title":"\u590D\u5236\u6700\u540E\u4E00\u6761\u52A9\u624B\u6D88\u606F","tui.command.session.copy.title":"\u590D\u5236\u4F1A\u8BDD\u8BB0\u5F55","tui.command.session.export.title":"\u5BFC\u51FA\u4F1A\u8BDD\u8BB0\u5F55","tui.command.session.child_first.title":"\u8FDB\u5165\u5B50\u4F1A\u8BDD","tui.command.session.parent.title":"\u8FD4\u56DE\u7236\u4F1A\u8BDD","tui.command.session.child_next.title":"\u4E0B\u4E00\u4E2A\u5B50\u4F1A\u8BDD","tui.command.session.child_previous.title":"\u4E0A\u4E00\u4E2A\u5B50\u4F1A\u8BDD","tui.command.prompt.clear.title":"\u6E05\u7A7A\u63D0\u793A\u6846","tui.command.prompt.submit.title":"\u63D0\u4EA4\u63D0\u793A\u8BCD","tui.command.prompt.paste.title":"\u7C98\u8D34","tui.command.session.interrupt.title":"\u4E2D\u65AD\u4F1A\u8BDD","tui.command.prompt.editor.title":"\u6253\u5F00\u7F16\u8F91\u5668","tui.command.prompt.skills.title":"\u6280\u80FD","tui.command.voice.toggle.title":"\u5207\u6362\u8BED\u97F3\u8F93\u5165","tui.command.voice.toggle.title_on":"\u8BED\u97F3\u8F93\u5165\uFF1A\u5DF2\u5F00\u542F \u2014 \u70B9\u51FB\u5173\u95ED","tui.command.voice.toggle.title_off":"\u8BED\u97F3\u8F93\u5165\uFF1A\u5DF2\u5173\u95ED \u2014 \u70B9\u51FB\u5F00\u542F","tui.command.voice.send.title":"\u5207\u6362\u8BED\u97F3\u53D1\u9001\u6307\u4EE4","tui.command.voice.send.title_on":"\u8BED\u97F3\u53D1\u9001\uFF1A\u5DF2\u5F00\u542F \u2014 \u70B9\u51FB\u5173\u95ED","tui.command.voice.send.title_off":"\u8BED\u97F3\u53D1\u9001\uFF1A\u5DF2\u5173\u95ED \u2014 \u70B9\u51FB\u5F00\u542F","tui.voice.enabled":"\u8BED\u97F3\u8F93\u5165\u5DF2\u542F\u7528\uFF08\u4E2D\u6587/\u82F1\u6587\uFF09\u2014 \u70B9\u51FB [Voice] \u5F00\u59CB\u5F55\u97F3","tui.voice.disabled":"\u8BED\u97F3\u8F93\u5165\u5DF2\u5173\u95ED","tui.voice.send.enabled":"\u8BED\u97F3\u53D1\u9001\u5DF2\u542F\u7528 \u2014 \u505C\u987F\u540E\u6E05\u6670\u5FF5\u51FA\u300C\u53D1\u9001\u300D\u5373\u53EF\u63D0\u4EA4","tui.voice.send.disabled":"\u8BED\u97F3\u53D1\u9001\u5DF2\u5173\u95ED","tui.voice.control.enabled":"\u8BED\u97F3\u63A7\u5236\u5DF2\u542F\u7528 \u2014 \u4F7F\u7528\u591A\u6A21\u6001\u6A21\u578B\u667A\u80FD\u7F16\u8F91\uFF08\u8F83\u6162\uFF09","tui.voice.control.disabled":"\u8BED\u97F3\u63A7\u5236\u5DF2\u5173\u95ED \u2014 \u4F7F\u7528\u5FEB\u901F ASR \u8F6C\u5199","tui.command.voice.control.title":"\u5207\u6362\u8BED\u97F3\u63A7\u5236\uFF08\u591A\u6A21\u6001\uFF09","tui.command.voice.control.title_on":"\u8BED\u97F3\u63A7\u5236\uFF1A\u5DF2\u5F00\u542F\uFF08\u591A\u6A21\u6001\uFF09 \u2014 \u70B9\u51FB\u5173\u95ED","tui.command.voice.control.title_off":"\u8BED\u97F3\u63A7\u5236\uFF1A\u5DF2\u5173\u95ED\uFF08\u5FEB\u901F ASR\uFF09 \u2014 \u70B9\u51FB\u5F00\u542F","tui.voice.error.no_auth":"\u8BF7\u5148\u7528 /connect \u8FDE\u63A5 QitQode \u8D26\u53F7\uFF0C\u6216\u914D\u7F6E voice.asr_model \u6307\u5B9A\u5176\u4ED6 provider","tui.voice.error.no_auth_provider":"\u8BED\u97F3 provider\u300C{{provider}}\u300D\u672A\u8BA4\u8BC1\uFF0C\u8BF7\u68C0\u67E5\u5176 apiKey \u914D\u7F6E","tui.voice.error.provider_not_found":"provider\u300C{{provider}}\u300D\u4E0D\u53EF\u7528 \u2014 \u8BF7 /connect \u8FDE\u63A5\uFF0C\u81EA\u5B9A\u4E49\u7AEF\u70B9\u9700\u5728\u914D\u7F6E\u4E2D\u58F0\u660E models","tui.voice.error.no_url":"provider\u300C{{provider}}\u300D\u672A\u914D\u7F6E baseURL\uFF0C\u8BF7\u5728 options.baseURL \u4E2D\u6307\u5B9A","tui.voice.error.no_device":"\u672A\u68C0\u6D4B\u5230\u9EA6\u514B\u98CE/\u97F3\u9891\u8BBE\u5907 \u2014 \u8BF7\u68C0\u67E5\u7CFB\u7EDF\u97F3\u9891\u8BBE\u7F6E","tui.voice.error.recorder_failed":"\u5F55\u97F3\u5931\u8D25","tui.voice.error.no_recorder":"\u672A\u68C0\u6D4B\u5230\u5F55\u97F3\u5DE5\u5177\uFF0C\u8BF7\u5B89\u88C5 sox","tui.voice.error.too_short":"\u5F55\u97F3\u65F6\u95F4\u8FC7\u77ED","tui.voice.error.network":"\u8F6C\u5199\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC","tui.voice.error.empty_send":"\u65E0\u5185\u5BB9\u53EF\u53D1\u9001","tui.voice.error.unknown_agent":"\u672A\u627E\u5230 agent\u300C{{name}}\u300D","tui.command.prompt.stash.title":"\u6682\u5B58\u63D0\u793A\u8BCD","tui.command.prompt.stash.pop.title":"\u5F39\u51FA\u6682\u5B58","tui.command.prompt.stash.list.title":"\u6682\u5B58\u5217\u8868","tui.command.tips.toggle.show":"\u663E\u793A Tips","tui.command.tips.toggle.hide":"\u9690\u85CF Tips","tui.command.plugins.list.title":"\u63D2\u4EF6","tui.command.plugins.install.title":"\u5B89\u88C5\u63D2\u4EF6","tui.dialog.login.title":"QitQode \u767B\u5F55","cli.providers.select":"\u9009\u62E9\u670D\u52A1\u5546","cli.providers.other":"\u5176\u4ED6 Provider","tui.dialog.login.import_claude":"\u4ECE Claude Code \u5BFC\u5165","tui.dialog.login.other":"\u5176\u4ED6\u670D\u52A1\u5546","tui.dialog.login.import_claude.no_key":"\u672A\u627E\u5230 Claude Code API Key","tui.dialog.login.import_claude.read_failed":"\u8BFB\u53D6 ~/.claude/settings.json \u5931\u8D25","tui.dialog.login.import_claude.success":"\u5DF2\u4ECE Claude Code \u5BFC\u5165\u914D\u7F6E","tui.question.plan_enter.question":"\u662F\u5426\u5207\u6362\u5230 plan \u6A21\u5F0F\u8FDB\u884C\u7ED3\u6784\u5316\u89C4\u5212\uFF1F","tui.question.plan_enter.header":"\u8FDB\u5165\u8BA1\u5212","tui.question.plan_enter.option.0.label":"\u662F","tui.question.plan_enter.option.0.description":"\u5207\u6362\u5230 plan \u667A\u80FD\u4F53\u8FDB\u884C\u53EA\u8BFB\u89C4\u5212","tui.question.plan_enter.option.1.label":"\u5426","tui.question.plan_enter.option.1.description":"\u7559\u5728\u5F53\u524D\u6A21\u5F0F","tui.question.plan_exit.question":"{{plan}} \u5904\u7684\u8BA1\u5212\u5DF2\u5B8C\u6210\u3002\u662F\u5426\u5207\u6362\u5230 build \u667A\u80FD\u4F53\u5F00\u59CB\u5B9E\u73B0\uFF1F","tui.question.plan_exit.header":"\u9000\u51FA\u8BA1\u5212","tui.question.plan_exit.option.0.label":"\u662F","tui.question.plan_exit.option.0.description":"\u5207\u6362\u5230 build \u667A\u80FD\u4F53\u5E76\u5F00\u59CB\u5B9E\u73B0\u8BA1\u5212","tui.question.plan_exit.option.1.label":"\u5426","tui.question.plan_exit.option.1.description":"\u7559\u5728 plan \u667A\u80FD\u4F53\u7EE7\u7EED\u5B8C\u5584\u8BA1\u5212","tui.session.badge.auto":"\u81EA\u52A8","trust.title":"\u8BBF\u95EE\u5DE5\u4F5C\u533A\uFF1A","trust.safety_check":"\u5B89\u5168\u786E\u8BA4\uFF1A\u8FD9\u662F\u4F60\u81EA\u5DF1\u521B\u5EFA\u6216\u4FE1\u4EFB\u7684\u9879\u76EE\u5417\uFF1F\uFF08\u5982\u4F60\u81EA\u5DF1\u7684\u4EE3\u7801\u3001\u77E5\u540D\u5F00\u6E90\u9879\u76EE\u6216\u56E2\u961F\u5185\u90E8\u9879\u76EE\uFF09\u3002\u5982\u679C\u4E0D\u662F\uFF0C\u8BF7\u5148\u68C0\u67E5\u6B64\u76EE\u5F55\u4E0B\u7684\u5185\u5BB9\u3002","trust.capabilities":"QitQode \u5C06\u80FD\u591F\u8BFB\u53D6\u3001\u7F16\u8F91\u548C\u6267\u884C\u6B64\u76EE\u5F55\u4E2D\u7684\u6587\u4EF6\u3002","trust.plugin_warn":"\u5982\u679C\u6B64\u76EE\u5F55\u4E2D\u5B58\u5728\u6076\u610F\u63D2\u4EF6\uFF0C\u5B83\u4EEC\u53EF\u4EE5\u6267\u884C\u4EFB\u610F\u4EE3\u7801\u3001\u8BFB\u53D6\u3001\u4FEE\u6539\u6216\u7A83\u53D6\u4F60\u7684\u6587\u4EF6\u3002","trust.option.yes":"\u662F\u7684\uFF0C\u6211\u4FE1\u4EFB\u6B64\u76EE\u5F55","trust.option.no":"\u5426\uFF0C\u9000\u51FA","trust.dangerous.title_home":"\u8B66\u544A\uFF1A\u4F60\u5373\u5C06\u6253\u5F00\u4E3B\u76EE\u5F55\u3002","trust.dangerous.title_root":"\u8B66\u544A\uFF1A\u4F60\u5373\u5C06\u6253\u5F00\u6587\u4EF6\u7CFB\u7EDF\u6839\u76EE\u5F55\u3002","trust.dangerous.body_home":"\u6A21\u578B\u5C06\u80FD\u591F\u8BBF\u95EE\u4F60\u6240\u6709\u7684\u4E2A\u4EBA\u6587\u4EF6 \u2014 SSH \u5BC6\u94A5\u3001\u51ED\u8BC1\u3001\u6D4F\u89C8\u5668\u914D\u7F6E\u7B49\u4E3B\u76EE\u5F55\u4E0B\u7684\u6240\u6709\u5185\u5BB9\u3002","trust.dangerous.body_root":"\u6A21\u578B\u5C06\u80FD\u591F\u8BBF\u95EE\u6574\u4E2A\u6587\u4EF6\u7CFB\u7EDF \u2014 \u7CFB\u7EDF\u6587\u4EF6\u3001\u6240\u6709\u7528\u6237\u6570\u636E\u3001\u51ED\u8BC1\u4EE5\u53CA\u8FD9\u53F0\u673A\u5668\u4E0A\u7684\u4E00\u5207\u3002","trust.dangerous.advice_home":"\u9664\u975E\u6709\u660E\u786E\u7684\u7406\u7531\uFF0C\u5426\u5219\u4E0D\u8981\u4FE1\u4EFB\u4F60\u7684\u6574\u4E2A\u4E3B\u76EE\u5F55\u3002","trust.dangerous.advice_root":"\u9664\u975E\u6709\u660E\u786E\u7684\u7406\u7531\uFF0C\u5426\u5219\u4E0D\u8981\u4FE1\u4EFB\u6587\u4EF6\u7CFB\u7EDF\u6839\u76EE\u5F55\u3002","trust.dangerous.option.yes":"\u6211\u4E86\u89E3\u98CE\u9669\uFF0C\u4EC5\u672C\u6B21\u4FE1\u4EFB","trust.dangerous.option.no":"\u9000\u51FA\uFF08\u63A8\u8350\uFF09"};
3
- export{f as xd};
3
+ export{f as yd};