claude-code-best 1.0.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/README.md +104 -369
  2. package/dist/{chunk-5wxspfct.js → chunk-01qzvbp3.js} +8 -2
  3. package/dist/chunk-053bj0m0.js +247 -0
  4. package/dist/chunk-05tt9tt1.js +653 -0
  5. package/dist/chunk-06sq1vz3.js +403 -0
  6. package/dist/chunk-07069jq1.js +30 -0
  7. package/dist/chunk-0dac8msw.js +135 -0
  8. package/dist/{chunk-52n4py3b.js → chunk-0ja0y3at.js} +6 -6
  9. package/dist/chunk-0jzdwbdc.js +14 -0
  10. package/dist/chunk-0nrq46nf.js +313 -0
  11. package/dist/chunk-0qz705wz.js +192 -0
  12. package/dist/{chunk-by7ezad6.js → chunk-0rn4v8sg.js} +42 -28
  13. package/dist/{chunk-1cbn5kxf.js → chunk-0rpb2bdp.js} +3 -2
  14. package/dist/{chunk-zz21rvr7.js → chunk-127cmycn.js} +8 -5
  15. package/dist/chunk-12vk6z7z.js +109 -0
  16. package/dist/chunk-15y014gg.js +102 -0
  17. package/dist/{chunk-44fpr6jq.js → chunk-168xb8v1.js} +4 -2
  18. package/dist/{chunk-8fmbf525.js → chunk-16bnxyz0.js} +1 -1
  19. package/dist/{chunk-wsqhnjj3.js → chunk-1atfzck5.js} +24 -24
  20. package/dist/chunk-1cbhkqxg.js +310 -0
  21. package/dist/chunk-1csq8bf1.js +295 -0
  22. package/dist/{chunk-0e1xsncc.js → chunk-1cwdhk7a.js} +1 -1
  23. package/dist/{chunk-36k3f7pn.js → chunk-1ebqpwhn.js} +79 -59
  24. package/dist/{chunk-ap2a2er6.js → chunk-1mh5vt6v.js} +102 -80
  25. package/dist/chunk-1qf125vg.js +123 -0
  26. package/dist/{chunk-fcz5eche.js → chunk-1sp6713v.js} +139 -170
  27. package/dist/{chunk-d18z9pna.js → chunk-1thgdca1.js} +2 -2
  28. package/dist/chunk-1z1gfx2c.js +443 -0
  29. package/dist/{chunk-7z8j9qfn.js → chunk-21z7acxh.js} +3 -3
  30. package/dist/chunk-229pcf6p.js +509 -0
  31. package/dist/chunk-238g70xa.js +1 -1
  32. package/dist/{chunk-vpb723tx.js → chunk-23ad5t92.js} +5 -5
  33. package/dist/chunk-28043j1k.js +68 -0
  34. package/dist/chunk-299r6d9v.js +141 -0
  35. package/dist/{chunk-5r3ak65p.js → chunk-2bw5nqsw.js} +4 -4
  36. package/dist/chunk-2mxstrx5.js +445 -0
  37. package/dist/{chunk-w2z5pqd3.js → chunk-2q39ej51.js} +6 -6
  38. package/dist/chunk-2qwgfjcj.js +5370 -0
  39. package/dist/chunk-2ss23j0q.js +3587 -0
  40. package/dist/{chunk-k9c3888e.js → chunk-2wvxddsg.js} +9 -7
  41. package/dist/chunk-2x2aznpc.js +134 -0
  42. package/dist/{chunk-bqq4zamw.js → chunk-2ys5wcxk.js} +3 -3
  43. package/dist/{chunk-2kbk09sb.js → chunk-3cvcwgsr.js} +79 -59
  44. package/dist/{chunk-rs45skes.js → chunk-3xv7rjsy.js} +15 -11
  45. package/dist/chunk-42x5tjk2.js +42 -0
  46. package/dist/{chunk-n78qmqpq.js → chunk-436r0x2n.js} +8 -8
  47. package/dist/{chunk-k3vpzx3c.js → chunk-44q4jkwa.js} +27 -67
  48. package/dist/{chunk-qnbdekts.js → chunk-44w22kyx.js} +111 -132
  49. package/dist/{chunk-7m2nd8da.js → chunk-46fcr28b.js} +31 -10
  50. package/dist/{chunk-wm2f2f1z.js → chunk-474y75ga.js} +2 -2
  51. package/dist/{chunk-6fkwz9yk.js → chunk-478rpnqm.js} +8 -8
  52. package/dist/chunk-48w0df8a.js +32 -0
  53. package/dist/chunk-4cp6193g.js +9076 -0
  54. package/dist/chunk-4d0de73v.js +436 -0
  55. package/dist/chunk-4eecm90d.js +1030 -0
  56. package/dist/{chunk-jfv3zczw.js → chunk-4f4ccg1h.js} +10 -115
  57. package/dist/chunk-4h102wt5.js +65 -0
  58. package/dist/{chunk-6n2qgm9v.js → chunk-4hv90qcz.js} +1 -1
  59. package/dist/{chunk-4gj6zzg1.js → chunk-4jcqmf9w.js} +43 -29
  60. package/dist/{chunk-067wa5sn.js → chunk-4kk7vxed.js} +8 -6
  61. package/dist/chunk-4nspekjp.js +69 -0
  62. package/dist/chunk-4xmb7bvy.js +125 -0
  63. package/dist/{chunk-nrp9yaq6.js → chunk-4xy0c1dz.js} +16 -12
  64. package/dist/{chunk-77g09znh.js → chunk-53c9gb9c.js} +23 -16
  65. package/dist/{chunk-03nqtgyr.js → chunk-53zsn91p.js} +42 -30
  66. package/dist/{chunk-gkrx7ptx.js → chunk-548g1d6z.js} +113 -114
  67. package/dist/chunk-559yvwh1.js +63 -0
  68. package/dist/chunk-5a6ahhvy.js +594 -0
  69. package/dist/{chunk-h2j4t3fk.js → chunk-5c6man70.js} +9692 -17630
  70. package/dist/chunk-5hb5ev7b.js +74 -0
  71. package/dist/{chunk-hx2tr4ep.js → chunk-5z28bqne.js} +34 -475
  72. package/dist/{chunk-p7g7pf3f.js → chunk-61ahbn23.js} +8 -6
  73. package/dist/chunk-64c1avct.js +13 -0
  74. package/dist/{chunk-0sb5scxx.js → chunk-652wnf1z.js} +5 -5
  75. package/dist/{chunk-1w361mz1.js → chunk-66jkaz3q.js} +109 -213
  76. package/dist/{chunk-q25bjaev.js → chunk-677as3nh.js} +2 -2
  77. package/dist/chunk-68ksfahx.js +386 -0
  78. package/dist/{chunk-xs0hwvpa.js → chunk-68pfxvxt.js} +14 -9
  79. package/dist/{chunk-epmheefa.js → chunk-69hys77v.js} +8 -8
  80. package/dist/{chunk-404wc7d4.js → chunk-6ayqcq3h.js} +126 -119
  81. package/dist/chunk-6kpbgc5w.js +23 -0
  82. package/dist/chunk-6mpsxxsf.js +362 -0
  83. package/dist/chunk-6nze0g86.js +119 -0
  84. package/dist/{chunk-v1mgv1et.js → chunk-6p4cyhb3.js} +4 -3
  85. package/dist/{chunk-w2qfgzzh.js → chunk-6t62dbnb.js} +61 -100
  86. package/dist/chunk-6t87a3q6.js +2842 -0
  87. package/dist/{chunk-q6av622g.js → chunk-6xana182.js} +18 -13
  88. package/dist/{chunk-fpf4cgbt.js → chunk-7bfach0x.js} +9 -9
  89. package/dist/{chunk-g6e1ab2k.js → chunk-7f1ggjr2.js} +81 -61
  90. package/dist/chunk-7fxjmmfw.js +1172 -0
  91. package/dist/{chunk-ckcagq32.js → chunk-7gqf9wej.js} +5 -5
  92. package/dist/chunk-7j3dkjqq.js +38 -0
  93. package/dist/chunk-7ns74x0q.js +475 -0
  94. package/dist/chunk-7qmknpkq.js +272 -0
  95. package/dist/chunk-7rzepn9c.js +83 -0
  96. package/dist/chunk-7tdcwje9.js +68 -0
  97. package/dist/{chunk-201dvaa3.js → chunk-8201tnhf.js} +11 -5
  98. package/dist/{chunk-dv1wfr85.js → chunk-8225arm6.js} +5 -4
  99. package/dist/chunk-822wfv88.js +70 -0
  100. package/dist/chunk-837tm8ht.js +183 -0
  101. package/dist/chunk-8a2ajt5d.js +878 -0
  102. package/dist/{chunk-drv8qvwz.js → chunk-8bymxfn4.js} +43 -29
  103. package/dist/chunk-8cwbzk7h.js +118 -0
  104. package/dist/chunk-8d0ev0m2.js +111 -0
  105. package/dist/chunk-8g5pe1gr.js +37 -0
  106. package/dist/{chunk-g0j0t6qk.js → chunk-8g747a8x.js} +1 -1
  107. package/dist/chunk-8kfwb79z.js +436 -0
  108. package/dist/{chunk-xyqr1cww.js → chunk-8me0yq6v.js} +12 -12
  109. package/dist/{chunk-qdrwxg3e.js → chunk-8n8285ax.js} +91 -71
  110. package/dist/{chunk-sdj9b9wh.js → chunk-8pn8tvgg.js} +9 -154
  111. package/dist/{chunk-ha0xq3e9.js → chunk-8qhr4n77.js} +64 -106
  112. package/dist/{chunk-fpjzr5jj.js → chunk-8s9bbk3r.js} +62 -45
  113. package/dist/{chunk-e3g8q4cn.js → chunk-905d2hee.js} +10 -8
  114. package/dist/{chunk-3psth3ez.js → chunk-91xq5y4a.js} +9 -9
  115. package/dist/{chunk-rq1kckze.js → chunk-93xsyzsp.js} +1 -1
  116. package/dist/chunk-99pmbfqp.js +230 -0
  117. package/dist/chunk-9f14bkn9.js +33068 -0
  118. package/dist/{chunk-ex978bsn.js → chunk-9m78gjpd.js} +1 -1
  119. package/dist/{chunk-hpwa620w.js → chunk-9pm2d2gv.js} +251 -306
  120. package/dist/chunk-a136cvvz.js +27 -0
  121. package/dist/{chunk-n5t9m8h9.js → chunk-a1bjde7d.js} +7 -7
  122. package/dist/chunk-a2evk7n1.js +168 -0
  123. package/dist/{chunk-6heqkcjx.js → chunk-a3k4w4cm.js} +42 -28
  124. package/dist/chunk-a3mcc1sb.js +1403 -0
  125. package/dist/{chunk-8hq5kk3y.js → chunk-a4twdmhf.js} +3 -2
  126. package/dist/chunk-a8eaey19.js +66 -0
  127. package/dist/chunk-abkb5pw6.js +426 -0
  128. package/dist/chunk-ae76ded0.js +30 -0
  129. package/dist/{chunk-2v1br2x0.js → chunk-agx5w9ce.js} +14 -8
  130. package/dist/chunk-ah46h8rp.js +70 -0
  131. package/dist/chunk-aj3azy6z.js +409 -0
  132. package/dist/chunk-an6z4rzv.js +158 -0
  133. package/dist/{chunk-r6b58y3x.js → chunk-ase86y73.js} +1 -3
  134. package/dist/{chunk-e6s36z54.js → chunk-avfjb6pd.js} +17 -557
  135. package/dist/{chunk-1hhdpn3t.js → chunk-az5x70pn.js} +8 -5
  136. package/dist/{chunk-91gk0g2y.js → chunk-b6rg3egp.js} +33 -18
  137. package/dist/chunk-b73r6ngr.js +125 -0
  138. package/dist/{chunk-8bedvdm1.js → chunk-b81hd3m6.js} +1 -1
  139. package/dist/{chunk-ebfsjcvm.js → chunk-b9mhpc0v.js} +3 -3
  140. package/dist/chunk-b9ndqcdv.js +139 -0
  141. package/dist/{chunk-w7wgpqcp.js → chunk-bd8zk9tn.js} +7 -7
  142. package/dist/chunk-bdy6n17s.js +343 -0
  143. package/dist/{chunk-s8y2tfzf.js → chunk-bf1j3azq.js} +156 -119
  144. package/dist/{chunk-j5j6nrfq.js → chunk-bfcet2mw.js} +2 -2
  145. package/dist/{chunk-jy35mvy3.js → chunk-bmjmrk76.js} +7 -7
  146. package/dist/{chunk-ra0r65nx.js → chunk-bsj8e2mb.js} +11 -11
  147. package/dist/{chunk-jce5r25x.js → chunk-bt64sq5y.js} +5 -4
  148. package/dist/{chunk-vyc0rjyx.js → chunk-bwg7582d.js} +1 -1
  149. package/dist/{chunk-3be7ka25.js → chunk-bxcfz5gy.js} +1 -1
  150. package/dist/{chunk-7wm1rjfm.js → chunk-c1k9tg7h.js} +518 -810
  151. package/dist/{chunk-qwvrkydc.js → chunk-c5pxerks.js} +13 -11
  152. package/dist/chunk-c6sjhj89.js +1284 -0
  153. package/dist/{chunk-brcnd1j0.js → chunk-c9q0phsg.js} +9 -6
  154. package/dist/chunk-caj0ab74.js +129 -0
  155. package/dist/chunk-chsyvavm.js +3435 -0
  156. package/dist/chunk-cjpt035a.js +269 -0
  157. package/dist/chunk-cmcbatgz.js +147 -0
  158. package/dist/chunk-cnsj3vq2.js +35 -0
  159. package/dist/chunk-cqjmxeqv.js +269 -0
  160. package/dist/{chunk-cdz5yb0r.js → chunk-crmjpsqe.js} +13 -2
  161. package/dist/{chunk-2mcp388c.js → chunk-cvb1v08x.js} +38 -32
  162. package/dist/{chunk-w0r5627q.js → chunk-cxhvyf7c.js} +234 -363
  163. package/dist/{chunk-s0wvh65m.js → chunk-cxx0e4nv.js} +1343 -2839
  164. package/dist/chunk-cy2hswr1.js +15 -0
  165. package/dist/{chunk-g9q2cznf.js → chunk-cy6ezb6j.js} +125994 -138958
  166. package/dist/{chunk-ks0m9njy.js → chunk-d2jekryq.js} +8 -8
  167. package/dist/chunk-d4mdda98.js +94 -0
  168. package/dist/{chunk-hgtf13es.js → chunk-d6ve5pze.js} +10 -10
  169. package/dist/{chunk-55wgxwa9.js → chunk-d7886r6a.js} +6928 -6935
  170. package/dist/{chunk-4bgz02m1.js → chunk-d83tmb5h.js} +87 -64
  171. package/dist/{chunk-hdwh7ncw.js → chunk-d8meetqc.js} +84 -63
  172. package/dist/{chunk-128nh5j9.js → chunk-d8r0q4ps.js} +547 -866
  173. package/dist/chunk-d95k8xkm.js +84 -0
  174. package/dist/chunk-dd4m7t1v.js +112 -0
  175. package/dist/{chunk-rcdpvnxh.js → chunk-dekbr08w.js} +24 -20
  176. package/dist/{chunk-cvge4pvp.js → chunk-dk8287aa.js} +1 -1
  177. package/dist/chunk-dm3n2qgd.js +24 -0
  178. package/dist/{chunk-b0105v1f.js → chunk-dmxte86x.js} +3 -3
  179. package/dist/{chunk-zkmxtgc3.js → chunk-dqvwn28p.js} +19 -15
  180. package/dist/chunk-drkm8yx2.js +34 -0
  181. package/dist/chunk-dsbewdgm.js +148 -0
  182. package/dist/{chunk-w7h2yphx.js → chunk-dwekpr47.js} +2 -2
  183. package/dist/{chunk-hg776v69.js → chunk-e3299veq.js} +16 -68
  184. package/dist/{chunk-wqpr7002.js → chunk-e5hcyxae.js} +132 -18
  185. package/dist/chunk-e7h0nd5w.js +106 -0
  186. package/dist/{chunk-7qwme3ab.js → chunk-eaemyebz.js} +5 -5
  187. package/dist/{chunk-hjhc4cpt.js → chunk-edzkkadh.js} +2 -2
  188. package/dist/chunk-em99fnet.js +128 -0
  189. package/dist/{chunk-hfzj1m07.js → chunk-epyaq1z0.js} +13 -4
  190. package/dist/{chunk-r8f13sz1.js → chunk-eqmkajs4.js} +102 -195
  191. package/dist/{chunk-gax0fcbx.js → chunk-ergam9ft.js} +5 -5
  192. package/dist/chunk-es2fdse0.js +63 -0
  193. package/dist/{chunk-grdvmq7q.js → chunk-esn3tgm2.js} +8 -6
  194. package/dist/{chunk-ptmcaxqn.js → chunk-et8ybmt2.js} +9 -7
  195. package/dist/chunk-ew9rp41b.js +300 -0
  196. package/dist/{chunk-dvfb4qwt.js → chunk-ewx6xfzb.js} +2 -2
  197. package/dist/chunk-eyjtbtt0.js +137 -0
  198. package/dist/chunk-f0jd2p9n.js +797 -0
  199. package/dist/{chunk-vzqrbsd1.js → chunk-f69rgsm2.js} +5 -5
  200. package/dist/{chunk-45kxdsp8.js → chunk-f6rbj3gz.js} +17 -12
  201. package/dist/chunk-fbhyqxdg.js +1182 -0
  202. package/dist/chunk-feyzykye.js +10 -0
  203. package/dist/chunk-ffhejx56.js +107 -0
  204. package/dist/{chunk-cpe70sxw.js → chunk-fhx6nt2a.js} +42 -28
  205. package/dist/chunk-fkkysfev.js +158 -0
  206. package/dist/chunk-fn510gqw.js +216 -0
  207. package/dist/chunk-ftsg8bjm.js +117 -0
  208. package/dist/{chunk-s39js2d3.js → chunk-fyts9grb.js} +2 -2
  209. package/dist/{chunk-bjqw6798.js → chunk-fz0ch109.js} +6 -5
  210. package/dist/{chunk-q1e6pzwh.js → chunk-g1jarkx9.js} +38 -8
  211. package/dist/chunk-g9f19ttm.js +15 -0
  212. package/dist/chunk-g9qte35t.js +341 -0
  213. package/dist/chunk-gaav53dc.js +105 -0
  214. package/dist/chunk-gfx3cwrk.js +75 -0
  215. package/dist/chunk-gk2d1x2a.js +946 -0
  216. package/dist/chunk-gkbat1p9.js +121 -0
  217. package/dist/{chunk-cg43nnpk.js → chunk-gmnyk2t8.js} +8 -6
  218. package/dist/{chunk-m23b51r2.js → chunk-gnmdprq3.js} +191 -338
  219. package/dist/{chunk-bq6x1ehp.js → chunk-gpz0ddyz.js} +8 -8
  220. package/dist/{chunk-yt6z8030.js → chunk-gv1csnc3.js} +217 -355
  221. package/dist/{chunk-nx6nds18.js → chunk-gv37c8ax.js} +3 -3
  222. package/dist/{chunk-h6c8cms4.js → chunk-gzr2601k.js} +10 -10
  223. package/dist/{chunk-2tkt52mz.js → chunk-h3pda469.js} +37 -82
  224. package/dist/{chunk-qqfa0dqg.js → chunk-h4b85amj.js} +20 -32
  225. package/dist/chunk-h5zv78zq.js +352 -0
  226. package/dist/{chunk-2x3gmbws.js → chunk-h7edytkc.js} +5 -5
  227. package/dist/{chunk-as261f01.js → chunk-ha0wbzc3.js} +13 -11
  228. package/dist/{chunk-nxsh6de2.js → chunk-hcgkak1j.js} +20 -125
  229. package/dist/{chunk-tjaqa99q.js → chunk-hezj20qy.js} +3 -3
  230. package/dist/{chunk-7ahman84.js → chunk-hf85ht0m.js} +2 -2
  231. package/dist/{chunk-w0hx9v3y.js → chunk-ht1nfygk.js} +42 -28
  232. package/dist/chunk-j316jjby.js +108 -0
  233. package/dist/chunk-j3fge71v.js +115 -0
  234. package/dist/{chunk-v4h5psgs.js → chunk-j4x0t6k2.js} +46 -31
  235. package/dist/{chunk-9gbamk79.js → chunk-j5bth84e.js} +5 -1
  236. package/dist/chunk-j783d5af.js +134 -0
  237. package/dist/chunk-j7pbwf9x.js +108 -0
  238. package/dist/{chunk-rf2w4x97.js → chunk-j8rnrm5n.js} +120 -142
  239. package/dist/{chunk-vratq94g.js → chunk-j9gxwbe3.js} +1 -1
  240. package/dist/{chunk-3r24h7t6.js → chunk-jaaxk89e.js} +1 -1
  241. package/dist/{chunk-y47cg3kz.js → chunk-jaew3662.js} +18 -13
  242. package/dist/{chunk-q1txr206.js → chunk-jbbj16w2.js} +128 -185
  243. package/dist/chunk-jerew25v.js +148 -0
  244. package/dist/{chunk-v399mzxk.js → chunk-jf0p00fz.js} +2 -2
  245. package/dist/{chunk-97r68x5g.js → chunk-jfsah2w3.js} +1065 -1762
  246. package/dist/{chunk-av73dywf.js → chunk-jna2tcvj.js} +8 -8
  247. package/dist/{chunk-yym1e1dr.js → chunk-jng0mb4r.js} +10 -10
  248. package/dist/chunk-jrrmwfp4.js +66 -0
  249. package/dist/{chunk-0rc2rn3b.js → chunk-jt6fa514.js} +14 -12
  250. package/dist/chunk-jvkyx1b7.js +911 -0
  251. package/dist/{chunk-41xeh3t9.js → chunk-jy6c07wa.js} +4 -4
  252. package/dist/chunk-k1fvb16y.js +269 -0
  253. package/dist/{chunk-bqfnp99q.js → chunk-k3s4yk22.js} +1 -1
  254. package/dist/{chunk-madfgr3n.js → chunk-k46gxg21.js} +68 -8
  255. package/dist/chunk-k8wwyz2t.js +110 -0
  256. package/dist/{chunk-mnx3wyv4.js → chunk-ka3fdfyb.js} +83 -62
  257. package/dist/{chunk-k5c8ssc6.js → chunk-ka4x7mhn.js} +42 -28
  258. package/dist/chunk-kb99zpps.js +216 -0
  259. package/dist/{chunk-1dyeexvn.js → chunk-kd3mmsd2.js} +4 -4
  260. package/dist/{chunk-1xkekb9y.js → chunk-kfd89dsd.js} +5 -3
  261. package/dist/{chunk-g7fxbqsc.js → chunk-km1wcchx.js} +87 -68
  262. package/dist/{chunk-248szg6m.js → chunk-kmhwx18d.js} +3 -3
  263. package/dist/{chunk-pabnr66n.js → chunk-kq91dwkq.js} +8 -6
  264. package/dist/chunk-m17m84b7.js +111 -0
  265. package/dist/chunk-m1a0s9fd.js +1070 -0
  266. package/dist/{chunk-jafes477.js → chunk-m2bcpk8j.js} +4 -3
  267. package/dist/{chunk-t0brxw87.js → chunk-m7jtn7dk.js} +80 -60
  268. package/dist/chunk-mq2mgyt9.js +103 -0
  269. package/dist/chunk-msv3w4qp.js +1811 -0
  270. package/dist/chunk-mx28h61f.js +1147 -0
  271. package/dist/{chunk-wf7yz2j0.js → chunk-mxe1f4jg.js} +13 -11
  272. package/dist/{chunk-n5crdyay.js → chunk-mzwjvfr2.js} +137 -124
  273. package/dist/{chunk-gf96dtb6.js → chunk-n2n0sq7r.js} +71 -77
  274. package/dist/{chunk-m06q12hg.js → chunk-n8mpqdje.js} +1 -1
  275. package/dist/chunk-n9e984ba.js +132 -0
  276. package/dist/chunk-netzwgv1.js +154 -0
  277. package/dist/{chunk-xszk7n10.js → chunk-nh3cd07f.js} +1 -1
  278. package/dist/chunk-njrz6mbe.js +66 -0
  279. package/dist/{chunk-sb2sew2f.js → chunk-nv7pfr7k.js} +2 -2
  280. package/dist/{chunk-g9xf7jc4.js → chunk-nwd8pb55.js} +85 -65
  281. package/dist/{chunk-5hva0tsg.js → chunk-p2yv7m0g.js} +6 -6
  282. package/dist/chunk-p5t2vy90.js +259 -0
  283. package/dist/{chunk-zk2wsm7d.js → chunk-p7vkh4wx.js} +2 -2
  284. package/dist/{chunk-da4ve9t5.js → chunk-p8crqj70.js} +10 -10
  285. package/dist/{chunk-02y0y853.js → chunk-pcngtzr8.js} +12 -6
  286. package/dist/{chunk-3vpqaqc6.js → chunk-pdjem6h1.js} +53 -71
  287. package/dist/{chunk-7rgwp44r.js → chunk-pmxdzjq0.js} +11 -9
  288. package/dist/{chunk-3s5r02ps.js → chunk-pnkcecq2.js} +31 -57
  289. package/dist/{chunk-zsfxha74.js → chunk-pshjyzq4.js} +8 -7
  290. package/dist/chunk-pt1yj9zf.js +107 -0
  291. package/dist/{chunk-rxwb7b78.js → chunk-py6b9d5b.js} +2331 -4219
  292. package/dist/chunk-q7n8d91g.js +67 -0
  293. package/dist/{chunk-e5pntxye.js → chunk-q7tpyeb3.js} +6 -4
  294. package/dist/{chunk-7ymfj7m3.js → chunk-q82r31er.js} +1 -1
  295. package/dist/chunk-qajrkk97.js +298 -0
  296. package/dist/chunk-qbrh24cn.js +119 -0
  297. package/dist/chunk-qd9ntz7c.js +230 -0
  298. package/dist/chunk-qfr5tcd5.js +2537 -0
  299. package/dist/chunk-qpzfmkct.js +456 -0
  300. package/dist/{chunk-ywxd4qw4.js → chunk-qtfc6wdh.js} +2 -5
  301. package/dist/chunk-r032587e.js +83 -0
  302. package/dist/chunk-r2k2jy0y.js +51 -0
  303. package/dist/{chunk-8mqwac85.js → chunk-r4dnnggx.js} +22 -16
  304. package/dist/{chunk-5wnn3t3a.js → chunk-r5n8fvw0.js} +7 -7
  305. package/dist/{chunk-pxvatg16.js → chunk-r7kh03er.js} +231 -190
  306. package/dist/{chunk-z4wtem3z.js → chunk-rfs0mfg8.js} +147 -151
  307. package/dist/{chunk-hrzerbfw.js → chunk-rgbbtszq.js} +14 -14
  308. package/dist/{chunk-ctw5jwcd.js → chunk-rkak3kjw.js} +10 -10
  309. package/dist/chunk-rp568bfw.js +111 -0
  310. package/dist/chunk-rtv718sv.js +146 -0
  311. package/dist/{chunk-8d5eyjse.js → chunk-rvkvehat.js} +5284 -3093
  312. package/dist/chunk-s1baskk7.js +14 -0
  313. package/dist/{chunk-tse7q7k1.js → chunk-s1eb67v3.js} +79 -59
  314. package/dist/{chunk-7rn4t7tx.js → chunk-s59kx26r.js} +87 -64
  315. package/dist/chunk-s6yk6m3b.js +109 -0
  316. package/dist/{chunk-bsk44136.js → chunk-sca71yv8.js} +11 -9
  317. package/dist/chunk-sfrwm87k.js +151 -0
  318. package/dist/chunk-sgaknx21.js +123 -0
  319. package/dist/{chunk-4y62603j.js → chunk-snyaz093.js} +9 -15
  320. package/dist/{chunk-ytg914ra.js → chunk-sq8wkk3z.js} +1 -3
  321. package/dist/chunk-sxqj7s2h.js +54 -0
  322. package/dist/chunk-t2m6cjp1.js +264 -0
  323. package/dist/chunk-t6hmvb6k.js +1021 -0
  324. package/dist/chunk-t72x960a.js +125 -0
  325. package/dist/chunk-t9kashay.js +440 -0
  326. package/dist/chunk-t9wzf009.js +151 -0
  327. package/dist/chunk-ta1dgyj1.js +154 -0
  328. package/dist/chunk-tavxhayf.js +149 -0
  329. package/dist/{chunk-2tw2ve8h.js → chunk-tcdv4gp8.js} +18 -12
  330. package/dist/chunk-td3b74vm.js +362 -0
  331. package/dist/{chunk-mt25echc.js → chunk-tezak8rx.js} +1 -1
  332. package/dist/chunk-tgcw0rzx.js +262 -0
  333. package/dist/{chunk-9rcbyag3.js → chunk-tmdbrszg.js} +2 -2
  334. package/dist/{chunk-avwewk4v.js → chunk-v17qee2y.js} +12 -8
  335. package/dist/{chunk-njtjmsx7.js → chunk-v1jd31dw.js} +2 -2
  336. package/dist/chunk-var1et7e.js +66 -0
  337. package/dist/{chunk-j5zq8axt.js → chunk-ve9wswz4.js} +7 -131
  338. package/dist/{chunk-hqmz36b3.js → chunk-vf612n57.js} +21 -101
  339. package/dist/chunk-vfhabc5j.js +109 -0
  340. package/dist/{chunk-wszmas1q.js → chunk-vgy0w6tt.js} +2 -2
  341. package/dist/chunk-vh02fvz1.js +375 -0
  342. package/dist/{chunk-jz6sqm8m.js → chunk-vm935era.js} +1083 -881
  343. package/dist/{chunk-e7393td6.js → chunk-vtb8z6as.js} +14 -9
  344. package/dist/chunk-w2kf9sxn.js +115 -0
  345. package/dist/chunk-w7trx259.js +132 -0
  346. package/dist/chunk-w92b262y.js +1072 -0
  347. package/dist/chunk-w9zqjhvm.js +103 -0
  348. package/dist/{chunk-0he1tqj5.js → chunk-wb2fvy1k.js} +81 -61
  349. package/dist/chunk-ws2d81aj.js +123 -0
  350. package/dist/{chunk-k808gmhk.js → chunk-wssgdcck.js} +2 -2
  351. package/dist/{chunk-t9z6njcr.js → chunk-wtycm8km.js} +9 -9
  352. package/dist/chunk-wz0d8mna.js +108 -0
  353. package/dist/chunk-x01wtn3p.js +144 -0
  354. package/dist/{chunk-ze747xz6.js → chunk-x2sp7rcv.js} +73 -105
  355. package/dist/{chunk-7vtykt4v.js → chunk-xbprynsc.js} +18 -46
  356. package/dist/{chunk-p196v9d0.js → chunk-xext3y2y.js} +8 -6
  357. package/dist/{chunk-r66hz8j6.js → chunk-xycy3c8q.js} +15 -12
  358. package/dist/{chunk-npv8q5qr.js → chunk-y01ys1vm.js} +25 -74
  359. package/dist/{chunk-spqaamnc.js → chunk-y78t50v0.js} +2 -2
  360. package/dist/chunk-y9bgt2k1.js +78 -0
  361. package/dist/{chunk-j8rw3m89.js → chunk-ydm0nfsv.js} +6 -6
  362. package/dist/{chunk-3cn070p7.js → chunk-yetebjek.js} +291 -502
  363. package/dist/chunk-ym5r3jnk.js +2007 -0
  364. package/dist/chunk-ysks0ewj.js +237 -0
  365. package/dist/chunk-yv3evkgg.js +68 -0
  366. package/dist/chunk-yw79dz62.js +164 -0
  367. package/dist/{chunk-ea18z8vr.js → chunk-yy59gvs4.js} +159 -183
  368. package/dist/{chunk-def1dc97.js → chunk-yyax4hdg.js} +10 -8
  369. package/dist/chunk-yzx3mhfd.js +110 -0
  370. package/dist/chunk-z0q85m5f.js +108 -0
  371. package/dist/chunk-z1bs6d7k.js +24 -0
  372. package/dist/chunk-z6e5jp2w.js +119 -0
  373. package/dist/chunk-z7ssqvt6.js +6886 -0
  374. package/dist/chunk-z95yxwyb.js +61 -0
  375. package/dist/{chunk-5a3cw988.js → chunk-z9aqj026.js} +5 -5
  376. package/dist/chunk-zc6dxhk9.js +169 -0
  377. package/dist/{chunk-2t3vw4tx.js → chunk-ze6zvkg6.js} +10 -10
  378. package/dist/{chunk-t0rgmccj.js → chunk-zejm280k.js} +1 -1
  379. package/dist/chunk-zfapazzd.js +37 -0
  380. package/dist/chunk-zj4fqmnc.js +219 -0
  381. package/dist/chunk-zkrpbswn.js +1608 -0
  382. package/dist/chunk-zktbb38m.js +112 -0
  383. package/dist/{chunk-2mcrd0rj.js → chunk-zptcqa7t.js} +92 -71
  384. package/dist/{chunk-a3csma98.js → chunk-zvnsjbt8.js} +1 -1
  385. package/dist/chunk-zwaanw8y.js +110 -0
  386. package/dist/{chunk-g3t0act8.js → chunk-zzm33q8x.js} +1 -1
  387. package/dist/{chunk-3gqdqmzb.js → chunk-zzzc1ead.js} +17 -12
  388. package/dist/cli.js +39 -10
  389. package/dist/download-ripgrep.js +24821 -0
  390. package/dist/vendor/audio-capture/arm64-darwin/audio-capture.node +0 -0
  391. package/dist/vendor/audio-capture/arm64-linux/audio-capture.node +0 -0
  392. package/dist/vendor/audio-capture/arm64-win32/audio-capture.node +0 -0
  393. package/dist/vendor/audio-capture/x64-darwin/audio-capture.node +0 -0
  394. package/dist/vendor/audio-capture/x64-linux/audio-capture.node +0 -0
  395. package/dist/vendor/audio-capture/x64-win32/audio-capture.node +0 -0
  396. package/package.json +25 -15
  397. package/scripts/download-ripgrep.ts +335 -0
  398. package/scripts/postinstall.cjs +319 -0
  399. package/dist/chunk-07ysf2mw.js +0 -184
  400. package/dist/chunk-0ewgfms5.js +0 -117
  401. package/dist/chunk-165b9y9k.js +0 -70
  402. package/dist/chunk-17g3drrw.js +0 -121
  403. package/dist/chunk-1jv1ckhg.js +0 -1152
  404. package/dist/chunk-1pxd1xfp.js +0 -103
  405. package/dist/chunk-1tzexy7d.js +0 -258
  406. package/dist/chunk-271zt54b.js +0 -1871
  407. package/dist/chunk-2a27tvzp.js +0 -281
  408. package/dist/chunk-2g1zxpt7.js +0 -2833
  409. package/dist/chunk-2jb48txn.js +0 -98
  410. package/dist/chunk-2kc13eta.js +0 -88
  411. package/dist/chunk-2tme3s1c.js +0 -114
  412. package/dist/chunk-4491abz9.js +0 -99
  413. package/dist/chunk-4dfmgx6h.js +0 -69
  414. package/dist/chunk-4fbyr2hm.js +0 -279
  415. package/dist/chunk-5dsvtbwb.js +0 -87
  416. package/dist/chunk-5t59fqg3.js +0 -127
  417. package/dist/chunk-60nc5bh3.js +0 -1579
  418. package/dist/chunk-6dcq96a3.js +0 -128
  419. package/dist/chunk-6tm5941a.js +0 -152
  420. package/dist/chunk-79zmgkg5.js +0 -750
  421. package/dist/chunk-7d35rxr3.js +0 -69
  422. package/dist/chunk-7enxknwt.js +0 -442
  423. package/dist/chunk-7j0wpf4m.js +0 -89
  424. package/dist/chunk-7q6pjeyp.js +0 -1493
  425. package/dist/chunk-7whgbwhx.js +0 -584
  426. package/dist/chunk-9egdc8n4.js +0 -463
  427. package/dist/chunk-9rr0wepz.js +0 -56
  428. package/dist/chunk-ajp7hmws.js +0 -422
  429. package/dist/chunk-bm1qb16p.js +0 -17
  430. package/dist/chunk-bmvzacx5.js +0 -998
  431. package/dist/chunk-bw093kge.js +0 -129
  432. package/dist/chunk-c4q9x8t2.js +0 -105
  433. package/dist/chunk-c6421kme.js +0 -54
  434. package/dist/chunk-cdajcgne.js +0 -195
  435. package/dist/chunk-ch8avrbh.js +0 -86
  436. package/dist/chunk-chkyv40s.js +0 -2642
  437. package/dist/chunk-d049dd11.js +0 -348
  438. package/dist/chunk-d7tw94h4.js +0 -114
  439. package/dist/chunk-daeav7vb.js +0 -418
  440. package/dist/chunk-dxnv8hfn.js +0 -536
  441. package/dist/chunk-dy3tzxgq.js +0 -91
  442. package/dist/chunk-exy9bnjf.js +0 -212
  443. package/dist/chunk-f1f3dmd5.js +0 -713
  444. package/dist/chunk-f7yg1atj.js +0 -47
  445. package/dist/chunk-fakajzny.js +0 -372
  446. package/dist/chunk-ftrm87vt.js +0 -467
  447. package/dist/chunk-ftsp0cj3.js +0 -105
  448. package/dist/chunk-fv7hhcns.js +0 -345
  449. package/dist/chunk-fvcwxb8x.js +0 -83
  450. package/dist/chunk-g00hs992.js +0 -90
  451. package/dist/chunk-g5fpkpeg.js +0 -520
  452. package/dist/chunk-g9qyg278.js +0 -88
  453. package/dist/chunk-gkjdjqfs.js +0 -112
  454. package/dist/chunk-gqk545se.js +0 -6107
  455. package/dist/chunk-gyj242zr.js +0 -20
  456. package/dist/chunk-gzmjp1eb.js +0 -696
  457. package/dist/chunk-hbh17tng.js +0 -1013
  458. package/dist/chunk-hdfzyzk4.js +0 -85
  459. package/dist/chunk-hdtb5jce.js +0 -101
  460. package/dist/chunk-j99mjxam.js +0 -220
  461. package/dist/chunk-jaqg0k7h.js +0 -271
  462. package/dist/chunk-jdew773m.js +0 -115
  463. package/dist/chunk-jjsx6t78.js +0 -169
  464. package/dist/chunk-jpr8js4w.js +0 -328
  465. package/dist/chunk-jx817w05.js +0 -11
  466. package/dist/chunk-k0g3jve7.js +0 -89
  467. package/dist/chunk-k1g3g183.js +0 -128
  468. package/dist/chunk-k1p54aq6.js +0 -54
  469. package/dist/chunk-kexj9c6y.js +0 -5398
  470. package/dist/chunk-kgg1gq3t.js +0 -113
  471. package/dist/chunk-kwkrek4t.js +0 -95
  472. package/dist/chunk-m4gcjpj3.js +0 -103
  473. package/dist/chunk-m6rk1r6q.js +0 -194
  474. package/dist/chunk-mb2xmb0d.js +0 -53
  475. package/dist/chunk-mv1pbf3a.js +0 -297
  476. package/dist/chunk-my7r0cca.js +0 -469
  477. package/dist/chunk-nprycdaa.js +0 -525
  478. package/dist/chunk-p2pztr2r.js +0 -104
  479. package/dist/chunk-p68nf56z.js +0 -92
  480. package/dist/chunk-p6pc9xrz.js +0 -3443
  481. package/dist/chunk-p7skftb4.js +0 -108
  482. package/dist/chunk-pa2235xc.js +0 -160
  483. package/dist/chunk-pmzbyaat.js +0 -99
  484. package/dist/chunk-pqzk7nbh.js +0 -91
  485. package/dist/chunk-pvvew193.js +0 -802
  486. package/dist/chunk-pvx0x5zm.js +0 -2057
  487. package/dist/chunk-py77warv.js +0 -66
  488. package/dist/chunk-q43gccx5.js +0 -92
  489. package/dist/chunk-rse6x10x.js +0 -89
  490. package/dist/chunk-rxdhy7ve.js +0 -131
  491. package/dist/chunk-scb48p4v.js +0 -496
  492. package/dist/chunk-sjqtqj35.js +0 -28
  493. package/dist/chunk-sq0wf7jj.js +0 -1919
  494. package/dist/chunk-sy1hkkty.js +0 -400
  495. package/dist/chunk-sy9jf9v2.js +0 -109
  496. package/dist/chunk-t2km9bn3.js +0 -87
  497. package/dist/chunk-t4afbt2j.js +0 -88
  498. package/dist/chunk-t4c5qtdc.js +0 -42
  499. package/dist/chunk-t94jxd0x.js +0 -100
  500. package/dist/chunk-tb2g2bba.js +0 -192
  501. package/dist/chunk-tdpvdzbf.js +0 -97
  502. package/dist/chunk-tf4dw2e2.js +0 -142
  503. package/dist/chunk-tp40437d.js +0 -90
  504. package/dist/chunk-vabm7x8v.js +0 -61
  505. package/dist/chunk-veaq13qy.js +0 -490
  506. package/dist/chunk-vmz3wcnv.js +0 -641
  507. package/dist/chunk-vsgv16zj.js +0 -756
  508. package/dist/chunk-vxa0avb0.js +0 -105
  509. package/dist/chunk-x14dq3v1.js +0 -722
  510. package/dist/chunk-x6bg700t.js +0 -88
  511. package/dist/chunk-x8b7vft8.js +0 -132
  512. package/dist/chunk-xmdcxa8r.js +0 -374
  513. package/dist/chunk-y42a2xmv.js +0 -1316
  514. package/dist/chunk-y56ckcf8.js +0 -44
  515. package/dist/chunk-ybgghjqa.js +0 -602
  516. package/dist/chunk-zacq47b2.js +0 -84
  517. package/dist/chunk-zv3hxg5y.js +0 -267
  518. package/dist/chunk-zw2x3xxq.js +0 -96
  519. package/dist/chunk-zyf9epwn.js +0 -642
  520. package/dist/{chunk-whvdag1y.js → chunk-3bfs3x0h.js} +9 -9
  521. package/dist/{chunk-27xc1csx.js → chunk-dggvswz1.js} +3 -3
  522. package/dist/{chunk-0wftg29n.js → chunk-f9nt10jh.js} +3 -3
@@ -0,0 +1,1021 @@
1
+ // @bun
2
+ import {
3
+ init_SSETransport,
4
+ parseSSEFrames
5
+ } from "./chunk-1z1gfx2c.js";
6
+ import {
7
+ createAssistantAPIErrorMessage,
8
+ init_api,
9
+ init_messages1 as init_messages,
10
+ normalizeContentFromAPI,
11
+ normalizeMessagesForAPI,
12
+ toolToAPISchema
13
+ } from "./chunk-cy6ezb6j.js";
14
+ import"./chunk-zejm280k.js";
15
+ import"./chunk-g1jarkx9.js";
16
+ import"./chunk-yyax4hdg.js";
17
+ import"./chunk-4nspekjp.js";
18
+ import"./chunk-kmhwx18d.js";
19
+ import"./chunk-var1et7e.js";
20
+ import"./chunk-2gzv8nrw.js";
21
+ import"./chunk-ehtwnxpg.js";
22
+ import"./chunk-dmxte86x.js";
23
+ import"./chunk-d6ve5pze.js";
24
+ import"./chunk-bxcfz5gy.js";
25
+ import"./chunk-dekbr08w.js";
26
+ import"./chunk-f6rbj3gz.js";
27
+ import"./chunk-9f14bkn9.js";
28
+ import"./chunk-cgfdkzhb.js";
29
+ import"./chunk-k46gxg21.js";
30
+ import"./chunk-j5bth84e.js";
31
+ import"./chunk-8qhr4n77.js";
32
+ import"./chunk-az5x70pn.js";
33
+ import"./chunk-epyaq1z0.js";
34
+ import"./chunk-0jzdwbdc.js";
35
+ import"./chunk-ps49ymvj.js";
36
+ import"./chunk-p7vkh4wx.js";
37
+ import"./chunk-cmcbatgz.js";
38
+ import"./chunk-agx5w9ce.js";
39
+ import"./chunk-48w0df8a.js";
40
+ import"./chunk-y78t50v0.js";
41
+ import"./chunk-4jm600zv.js";
42
+ import"./chunk-n8mpqdje.js";
43
+ import"./chunk-dqvwn28p.js";
44
+ import"./chunk-esn3tgm2.js";
45
+ import"./chunk-mx28h61f.js";
46
+ import"./chunk-dsbewdgm.js";
47
+ import"./chunk-sxqj7s2h.js";
48
+ import"./chunk-8201tnhf.js";
49
+ import"./chunk-2qwgfjcj.js";
50
+ import"./chunk-chsyvavm.js";
51
+ import"./chunk-w92b262y.js";
52
+ import"./chunk-c1k9tg7h.js";
53
+ import {
54
+ init_json,
55
+ safeParseJSON
56
+ } from "./chunk-905d2hee.js";
57
+ import"./chunk-rkak3kjw.js";
58
+ import {
59
+ getProxyFetchOptions,
60
+ init_proxy
61
+ } from "./chunk-p2yv7m0g.js";
62
+ import"./chunk-1cwdhk7a.js";
63
+ import"./chunk-j9gxwbe3.js";
64
+ import"./chunk-64c1avct.js";
65
+ import"./chunk-6kpbgc5w.js";
66
+ import"./chunk-8g5pe1gr.js";
67
+ import"./chunk-hezj20qy.js";
68
+ import"./chunk-4cp6193g.js";
69
+ import"./chunk-8g747a8x.js";
70
+ import"./chunk-d7886r6a.js";
71
+ import"./chunk-f5ma3nh5.js";
72
+ import"./chunk-qz2x630m.js";
73
+ import"./chunk-dk8287aa.js";
74
+ import"./chunk-r2k2jy0y.js";
75
+ import"./chunk-3c25bcsw.js";
76
+ import"./chunk-2q39ej51.js";
77
+ import"./chunk-q82r31er.js";
78
+ import"./chunk-p2816w9z.js";
79
+ import"./chunk-v9smspw2.js";
80
+ import"./chunk-v1kzp02e.js";
81
+ import"./chunk-qpzfmkct.js";
82
+ import"./chunk-crmjpsqe.js";
83
+ import"./chunk-rvkvehat.js";
84
+ import"./chunk-g338npwr.js";
85
+ import"./chunk-h0rbjg6x.js";
86
+ import"./chunk-0vkfrmqm.js";
87
+ import"./chunk-0xjaqda8.js";
88
+ import"./chunk-21z7acxh.js";
89
+ import"./chunk-rgbbtszq.js";
90
+ import"./chunk-1thgdca1.js";
91
+ import"./chunk-qnfx3qtx.js";
92
+ import"./chunk-yw79dz62.js";
93
+ import"./chunk-b81hd3m6.js";
94
+ import"./chunk-61ahbn23.js";
95
+ import"./chunk-8tnsngw2.js";
96
+ import"./chunk-edzkkadh.js";
97
+ import"./chunk-bwg7582d.js";
98
+ import"./chunk-5z28bqne.js";
99
+ import"./chunk-qajrkk97.js";
100
+ import {
101
+ init_debug,
102
+ logForDebugging
103
+ } from "./chunk-hcgkak1j.js";
104
+ import"./chunk-fbv4apne.js";
105
+ import {
106
+ errorMessage,
107
+ init_errors
108
+ } from "./chunk-z6e5jp2w.js";
109
+ import"./chunk-jaaxk89e.js";
110
+ import"./chunk-h4b85amj.js";
111
+ import"./chunk-07069jq1.js";
112
+ import"./chunk-vf612n57.js";
113
+ import"./chunk-d4mdda98.js";
114
+ import"./chunk-7wm5s02e.js";
115
+ import"./chunk-4g3v8y12.js";
116
+ import"./chunk-7739pg2c.js";
117
+ import"./chunk-nh3cd07f.js";
118
+ import"./chunk-8pn8tvgg.js";
119
+ import"./chunk-netzwgv1.js";
120
+ import {
121
+ __esm
122
+ } from "./chunk-qp2qdcda.js";
123
+
124
+ // src/services/api/gemini/client.ts
125
+ function getGeminiBaseUrl() {
126
+ return (process.env.GEMINI_BASE_URL || DEFAULT_GEMINI_BASE_URL).replace(/\/+$/, "");
127
+ }
128
+ function getGeminiModelPath(model) {
129
+ const normalized = model.replace(/^\/+/, "");
130
+ return normalized.startsWith("models/") ? normalized : `models/${normalized}`;
131
+ }
132
+ async function* streamGeminiGenerateContent(params) {
133
+ const fetchImpl = params.fetchOverride ?? fetch;
134
+ const url = `${getGeminiBaseUrl()}/${getGeminiModelPath(params.model)}:streamGenerateContent?alt=sse`;
135
+ const response = await fetchImpl(url, {
136
+ method: "POST",
137
+ headers: {
138
+ "Content-Type": "application/json",
139
+ "x-goog-api-key": process.env.GEMINI_API_KEY || ""
140
+ },
141
+ body: JSON.stringify(params.body),
142
+ signal: params.signal,
143
+ ...getProxyFetchOptions({ forAnthropicAPI: false })
144
+ });
145
+ if (!response.ok) {
146
+ const body = await response.text();
147
+ throw new Error(`Gemini API request failed (${response.status} ${response.statusText}): ${body || "empty response body"}`);
148
+ }
149
+ if (!response.body) {
150
+ throw new Error("Gemini API returned no response body");
151
+ }
152
+ const reader = response.body.getReader();
153
+ const decoder = new TextDecoder;
154
+ let buffer = "";
155
+ try {
156
+ while (true) {
157
+ const { done, value } = await reader.read();
158
+ if (done)
159
+ break;
160
+ buffer += decoder.decode(value, STREAM_DECODE_OPTS);
161
+ const { frames: frames2, remaining } = parseSSEFrames(buffer);
162
+ buffer = remaining;
163
+ for (const frame of frames2) {
164
+ if (!frame.data || frame.data === "[DONE]")
165
+ continue;
166
+ try {
167
+ yield JSON.parse(frame.data);
168
+ } catch (error) {
169
+ throw new Error(`Failed to parse Gemini SSE payload: ${errorMessage(error)}`);
170
+ }
171
+ }
172
+ }
173
+ buffer += decoder.decode();
174
+ const { frames } = parseSSEFrames(buffer);
175
+ for (const frame of frames) {
176
+ if (!frame.data || frame.data === "[DONE]")
177
+ continue;
178
+ try {
179
+ yield JSON.parse(frame.data);
180
+ } catch (error) {
181
+ throw new Error(`Failed to parse trailing Gemini SSE payload: ${errorMessage(error)}`);
182
+ }
183
+ }
184
+ } finally {
185
+ reader.releaseLock();
186
+ }
187
+ }
188
+ var DEFAULT_GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta", STREAM_DECODE_OPTS;
189
+ var init_client = __esm(() => {
190
+ init_SSETransport();
191
+ init_errors();
192
+ init_proxy();
193
+ STREAM_DECODE_OPTS = { stream: true };
194
+ });
195
+
196
+ // src/services/api/gemini/types.ts
197
+ var GEMINI_THOUGHT_SIGNATURE_FIELD = "_geminiThoughtSignature";
198
+ var init_types = () => {};
199
+
200
+ // src/services/api/gemini/convertMessages.ts
201
+ function anthropicMessagesToGemini(messages, systemPrompt) {
202
+ const contents = [];
203
+ const toolNamesById = new Map;
204
+ for (const msg of messages) {
205
+ if (msg.type === "assistant") {
206
+ const content = convertInternalAssistantMessage(msg);
207
+ if (content.parts.length > 0) {
208
+ contents.push(content);
209
+ }
210
+ const assistantContent = msg.message.content;
211
+ if (Array.isArray(assistantContent)) {
212
+ for (const block of assistantContent) {
213
+ if (typeof block !== "string" && block.type === "tool_use") {
214
+ toolNamesById.set(block.id, block.name);
215
+ }
216
+ }
217
+ }
218
+ continue;
219
+ }
220
+ if (msg.type === "user") {
221
+ const content = convertInternalUserMessage(msg, toolNamesById);
222
+ if (content.parts.length > 0) {
223
+ contents.push(content);
224
+ }
225
+ }
226
+ }
227
+ const systemText = systemPromptToText(systemPrompt);
228
+ return {
229
+ contents,
230
+ ...systemText ? {
231
+ systemInstruction: {
232
+ parts: [{ text: systemText }]
233
+ }
234
+ } : {}
235
+ };
236
+ }
237
+ function systemPromptToText(systemPrompt) {
238
+ if (!systemPrompt || systemPrompt.length === 0)
239
+ return "";
240
+ return systemPrompt.filter(Boolean).join(`
241
+
242
+ `);
243
+ }
244
+ function convertInternalUserMessage(msg, toolNamesById) {
245
+ const content = msg.message.content;
246
+ if (typeof content === "string") {
247
+ return {
248
+ role: "user",
249
+ parts: createTextGeminiParts(content)
250
+ };
251
+ }
252
+ if (!Array.isArray(content)) {
253
+ return { role: "user", parts: [] };
254
+ }
255
+ return {
256
+ role: "user",
257
+ parts: content.flatMap((block) => convertUserContentBlockToGeminiParts(block, toolNamesById))
258
+ };
259
+ }
260
+ function convertUserContentBlockToGeminiParts(block, toolNamesById) {
261
+ if (typeof block === "string") {
262
+ return createTextGeminiParts(block);
263
+ }
264
+ if (block.type === "text") {
265
+ return createTextGeminiParts(block.text);
266
+ }
267
+ if (block.type === "tool_result") {
268
+ const toolResult = block;
269
+ return [
270
+ {
271
+ functionResponse: {
272
+ name: toolNamesById.get(toolResult.tool_use_id) ?? toolResult.tool_use_id,
273
+ response: toolResultToResponseObject(toolResult)
274
+ }
275
+ }
276
+ ];
277
+ }
278
+ if (block.type === "image") {
279
+ const source = block.source;
280
+ if (source?.type === "base64" && typeof source.data === "string") {
281
+ const mediaType = source.media_type || "image/png";
282
+ return [
283
+ {
284
+ inlineData: {
285
+ mimeType: mediaType,
286
+ data: source.data
287
+ }
288
+ }
289
+ ];
290
+ }
291
+ if (source?.type === "url" && typeof source.url === "string") {
292
+ return createTextGeminiParts(`[image: ${source.url}]`);
293
+ }
294
+ }
295
+ return [];
296
+ }
297
+ function convertInternalAssistantMessage(msg) {
298
+ const content = msg.message.content;
299
+ if (typeof content === "string") {
300
+ return {
301
+ role: "model",
302
+ parts: createTextGeminiParts(content)
303
+ };
304
+ }
305
+ if (!Array.isArray(content)) {
306
+ return { role: "model", parts: [] };
307
+ }
308
+ const parts = [];
309
+ for (const block of content) {
310
+ if (typeof block === "string") {
311
+ parts.push(...createTextGeminiParts(block));
312
+ continue;
313
+ }
314
+ if (block.type === "text") {
315
+ parts.push(...createTextGeminiParts(block.text, getGeminiThoughtSignature(block)));
316
+ continue;
317
+ }
318
+ if (block.type === "thinking") {
319
+ const thinkingPart = createThinkingGeminiPart(block.thinking, block.signature);
320
+ if (thinkingPart) {
321
+ parts.push(thinkingPart);
322
+ }
323
+ continue;
324
+ }
325
+ if (block.type === "tool_use") {
326
+ const toolUse = block;
327
+ parts.push({
328
+ functionCall: {
329
+ name: toolUse.name,
330
+ args: normalizeToolUseInput(toolUse.input)
331
+ },
332
+ ...getGeminiThoughtSignature(block) && {
333
+ thoughtSignature: getGeminiThoughtSignature(block)
334
+ }
335
+ });
336
+ }
337
+ }
338
+ return { role: "model", parts };
339
+ }
340
+ function createTextGeminiParts(value, thoughtSignature) {
341
+ if (typeof value !== "string" || value.length === 0) {
342
+ return [];
343
+ }
344
+ return [
345
+ {
346
+ text: value,
347
+ ...thoughtSignature && { thoughtSignature }
348
+ }
349
+ ];
350
+ }
351
+ function createThinkingGeminiPart(value, thoughtSignature) {
352
+ if (typeof value !== "string" || value.length === 0) {
353
+ return;
354
+ }
355
+ return {
356
+ text: value,
357
+ thought: true,
358
+ ...thoughtSignature && { thoughtSignature }
359
+ };
360
+ }
361
+ function normalizeToolUseInput(input) {
362
+ if (typeof input === "string") {
363
+ const parsed = safeParseJSON(input);
364
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
365
+ return parsed;
366
+ }
367
+ return parsed === null ? {} : { value: parsed };
368
+ }
369
+ if (input && typeof input === "object" && !Array.isArray(input)) {
370
+ return input;
371
+ }
372
+ return input === undefined ? {} : { value: input };
373
+ }
374
+ function toolResultToResponseObject(block) {
375
+ const result = normalizeToolResultContent(block.content);
376
+ if (result && typeof result === "object" && !Array.isArray(result)) {
377
+ return block.is_error ? { ...result, is_error: true } : result;
378
+ }
379
+ return {
380
+ result,
381
+ ...block.is_error ? { is_error: true } : {}
382
+ };
383
+ }
384
+ function normalizeToolResultContent(content) {
385
+ if (typeof content === "string") {
386
+ const parsed = safeParseJSON(content);
387
+ return parsed ?? content;
388
+ }
389
+ if (Array.isArray(content)) {
390
+ const text = content.map((part) => {
391
+ if (typeof part === "string")
392
+ return part;
393
+ if (part && typeof part === "object" && "text" in part && typeof part.text === "string") {
394
+ return part.text;
395
+ }
396
+ return "";
397
+ }).filter(Boolean).join(`
398
+ `);
399
+ const parsed = safeParseJSON(text);
400
+ return parsed ?? text;
401
+ }
402
+ return content ?? "";
403
+ }
404
+ function getGeminiThoughtSignature(block) {
405
+ const signature = block[GEMINI_THOUGHT_SIGNATURE_FIELD];
406
+ return typeof signature === "string" && signature.length > 0 ? signature : undefined;
407
+ }
408
+ var init_convertMessages = __esm(() => {
409
+ init_json();
410
+ init_types();
411
+ });
412
+
413
+ // src/services/api/gemini/convertTools.ts
414
+ function normalizeGeminiJsonSchemaType(value) {
415
+ if (typeof value === "string") {
416
+ return GEMINI_JSON_SCHEMA_TYPES.has(value) ? value : undefined;
417
+ }
418
+ if (Array.isArray(value)) {
419
+ const normalized = value.filter((item) => typeof item === "string" && GEMINI_JSON_SCHEMA_TYPES.has(item));
420
+ const unique = Array.from(new Set(normalized));
421
+ if (unique.length === 0)
422
+ return;
423
+ return unique.length === 1 ? unique[0] : unique;
424
+ }
425
+ return;
426
+ }
427
+ function inferGeminiJsonSchemaTypeFromValue(value) {
428
+ if (value === null)
429
+ return "null";
430
+ if (Array.isArray(value))
431
+ return "array";
432
+ if (typeof value === "string")
433
+ return "string";
434
+ if (typeof value === "boolean")
435
+ return "boolean";
436
+ if (typeof value === "number") {
437
+ return Number.isInteger(value) ? "integer" : "number";
438
+ }
439
+ if (typeof value === "object")
440
+ return "object";
441
+ return;
442
+ }
443
+ function inferGeminiJsonSchemaTypeFromEnum(values) {
444
+ const inferred = values.map(inferGeminiJsonSchemaTypeFromValue).filter((value) => value !== undefined);
445
+ const unique = Array.from(new Set(inferred));
446
+ if (unique.length === 0)
447
+ return;
448
+ return unique.length === 1 ? unique[0] : unique;
449
+ }
450
+ function addNullToGeminiJsonSchemaType(value) {
451
+ if (value === undefined)
452
+ return ["null"];
453
+ if (Array.isArray(value)) {
454
+ return value.includes("null") ? value : [...value, "null"];
455
+ }
456
+ return value === "null" ? value : [value, "null"];
457
+ }
458
+ function sanitizeGeminiJsonSchemaProperties(value) {
459
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
460
+ return;
461
+ }
462
+ const sanitizedEntries = Object.entries(value).map(([key, schema]) => [key, sanitizeGeminiJsonSchema(schema)]).filter(([, schema]) => Object.keys(schema).length > 0);
463
+ if (sanitizedEntries.length === 0) {
464
+ return;
465
+ }
466
+ return Object.fromEntries(sanitizedEntries);
467
+ }
468
+ function sanitizeGeminiJsonSchemaArray(value) {
469
+ if (!Array.isArray(value))
470
+ return;
471
+ const sanitized = value.map((item) => sanitizeGeminiJsonSchema(item)).filter((item) => Object.keys(item).length > 0);
472
+ return sanitized.length > 0 ? sanitized : undefined;
473
+ }
474
+ function sanitizeGeminiJsonSchema(schema) {
475
+ if (!schema || typeof schema !== "object" || Array.isArray(schema)) {
476
+ return {};
477
+ }
478
+ const source = schema;
479
+ const result = {};
480
+ let type = normalizeGeminiJsonSchemaType(source.type);
481
+ if (source.const !== undefined) {
482
+ result.enum = [source.const];
483
+ type = type ?? inferGeminiJsonSchemaTypeFromValue(source.const);
484
+ } else if (Array.isArray(source.enum) && source.enum.length > 0) {
485
+ result.enum = source.enum;
486
+ type = type ?? inferGeminiJsonSchemaTypeFromEnum(source.enum);
487
+ }
488
+ if (!type) {
489
+ if (source.properties && typeof source.properties === "object") {
490
+ type = "object";
491
+ } else if (source.items !== undefined || source.prefixItems !== undefined) {
492
+ type = "array";
493
+ }
494
+ }
495
+ if (source.nullable === true) {
496
+ type = addNullToGeminiJsonSchemaType(type);
497
+ }
498
+ if (type) {
499
+ result.type = type;
500
+ }
501
+ if (typeof source.title === "string") {
502
+ result.title = source.title;
503
+ }
504
+ if (typeof source.description === "string") {
505
+ result.description = source.description;
506
+ }
507
+ if (typeof source.format === "string") {
508
+ result.format = source.format;
509
+ }
510
+ if (typeof source.pattern === "string") {
511
+ result.pattern = source.pattern;
512
+ }
513
+ if (typeof source.minimum === "number") {
514
+ result.minimum = source.minimum;
515
+ } else if (typeof source.exclusiveMinimum === "number") {
516
+ result.minimum = source.exclusiveMinimum;
517
+ }
518
+ if (typeof source.maximum === "number") {
519
+ result.maximum = source.maximum;
520
+ } else if (typeof source.exclusiveMaximum === "number") {
521
+ result.maximum = source.exclusiveMaximum;
522
+ }
523
+ if (typeof source.minItems === "number") {
524
+ result.minItems = source.minItems;
525
+ }
526
+ if (typeof source.maxItems === "number") {
527
+ result.maxItems = source.maxItems;
528
+ }
529
+ if (typeof source.minLength === "number") {
530
+ result.minLength = source.minLength;
531
+ }
532
+ if (typeof source.maxLength === "number") {
533
+ result.maxLength = source.maxLength;
534
+ }
535
+ if (typeof source.minProperties === "number") {
536
+ result.minProperties = source.minProperties;
537
+ }
538
+ if (typeof source.maxProperties === "number") {
539
+ result.maxProperties = source.maxProperties;
540
+ }
541
+ const properties = sanitizeGeminiJsonSchemaProperties(source.properties);
542
+ if (properties) {
543
+ result.properties = properties;
544
+ result.propertyOrdering = Object.keys(properties);
545
+ }
546
+ if (Array.isArray(source.required)) {
547
+ const required = source.required.filter((item) => typeof item === "string");
548
+ if (required.length > 0) {
549
+ result.required = required;
550
+ }
551
+ }
552
+ if (typeof source.additionalProperties === "boolean") {
553
+ result.additionalProperties = source.additionalProperties;
554
+ } else {
555
+ const additionalProperties = sanitizeGeminiJsonSchema(source.additionalProperties);
556
+ if (Object.keys(additionalProperties).length > 0) {
557
+ result.additionalProperties = additionalProperties;
558
+ }
559
+ }
560
+ const items = sanitizeGeminiJsonSchema(source.items);
561
+ if (Object.keys(items).length > 0) {
562
+ result.items = items;
563
+ }
564
+ const prefixItems = sanitizeGeminiJsonSchemaArray(source.prefixItems);
565
+ if (prefixItems) {
566
+ result.prefixItems = prefixItems;
567
+ }
568
+ const anyOf = sanitizeGeminiJsonSchemaArray(source.anyOf ?? source.oneOf);
569
+ if (anyOf) {
570
+ result.anyOf = anyOf;
571
+ }
572
+ return result;
573
+ }
574
+ function sanitizeGeminiFunctionParameters(schema) {
575
+ const sanitized = sanitizeGeminiJsonSchema(schema);
576
+ if (Object.keys(sanitized).length > 0) {
577
+ return sanitized;
578
+ }
579
+ return {
580
+ type: "object",
581
+ properties: {}
582
+ };
583
+ }
584
+ function anthropicToolsToGemini(tools) {
585
+ const functionDeclarations = tools.filter((tool) => {
586
+ return tool.type === "custom" || !("type" in tool) || tool.type !== "server";
587
+ }).map((tool) => {
588
+ const anyTool = tool;
589
+ const name = anyTool.name || "";
590
+ const description = anyTool.description || "";
591
+ const inputSchema = anyTool.input_schema ?? {
592
+ type: "object",
593
+ properties: {}
594
+ };
595
+ return {
596
+ name,
597
+ description,
598
+ parametersJsonSchema: sanitizeGeminiFunctionParameters(inputSchema)
599
+ };
600
+ });
601
+ return functionDeclarations.length > 0 ? [{ functionDeclarations }] : [];
602
+ }
603
+ function anthropicToolChoiceToGemini(toolChoice) {
604
+ if (!toolChoice || typeof toolChoice !== "object")
605
+ return;
606
+ const tc = toolChoice;
607
+ const type = tc.type;
608
+ switch (type) {
609
+ case "auto":
610
+ return { mode: "AUTO" };
611
+ case "any":
612
+ return { mode: "ANY" };
613
+ case "tool":
614
+ return {
615
+ mode: "ANY",
616
+ allowedFunctionNames: typeof tc.name === "string" ? [tc.name] : undefined
617
+ };
618
+ default:
619
+ return;
620
+ }
621
+ }
622
+ var GEMINI_JSON_SCHEMA_TYPES;
623
+ var init_convertTools = __esm(() => {
624
+ GEMINI_JSON_SCHEMA_TYPES = new Set([
625
+ "string",
626
+ "number",
627
+ "integer",
628
+ "boolean",
629
+ "object",
630
+ "array",
631
+ "null"
632
+ ]);
633
+ });
634
+
635
+ // src/services/api/gemini/modelMapping.ts
636
+ function getModelFamily(model) {
637
+ if (/haiku/i.test(model))
638
+ return "haiku";
639
+ if (/opus/i.test(model))
640
+ return "opus";
641
+ if (/sonnet/i.test(model))
642
+ return "sonnet";
643
+ return null;
644
+ }
645
+ function resolveGeminiModel(anthropicModel) {
646
+ if (process.env.GEMINI_MODEL) {
647
+ return process.env.GEMINI_MODEL;
648
+ }
649
+ const cleanModel = anthropicModel.replace(/\[1m\]$/i, "");
650
+ const family = getModelFamily(cleanModel);
651
+ if (!family) {
652
+ return cleanModel;
653
+ }
654
+ const geminiEnvVar = `GEMINI_DEFAULT_${family.toUpperCase()}_MODEL`;
655
+ const geminiModel = process.env[geminiEnvVar];
656
+ if (geminiModel) {
657
+ return geminiModel;
658
+ }
659
+ const sharedEnvVar = `ANTHROPIC_DEFAULT_${family.toUpperCase()}_MODEL`;
660
+ const resolvedModel = process.env[sharedEnvVar];
661
+ if (resolvedModel) {
662
+ return resolvedModel;
663
+ }
664
+ throw new Error(`Gemini provider requires GEMINI_MODEL or ${geminiEnvVar} (or ${sharedEnvVar} for backward compatibility) to be configured.`);
665
+ }
666
+ var init_modelMapping = () => {};
667
+
668
+ // src/services/api/gemini/streamAdapter.ts
669
+ import { randomUUID } from "crypto";
670
+ async function* adaptGeminiStreamToAnthropic(stream, model) {
671
+ const messageId = `msg_${randomUUID().replace(/-/g, "").slice(0, 24)}`;
672
+ let started = false;
673
+ let stopped = false;
674
+ let nextContentIndex = 0;
675
+ let openTextLikeBlock = null;
676
+ let sawToolUse = false;
677
+ let finishReason;
678
+ let inputTokens = 0;
679
+ let outputTokens = 0;
680
+ for await (const chunk of stream) {
681
+ const usage = chunk.usageMetadata;
682
+ if (usage) {
683
+ inputTokens = usage.promptTokenCount ?? inputTokens;
684
+ outputTokens = (usage.candidatesTokenCount ?? 0) + (usage.thoughtsTokenCount ?? 0);
685
+ }
686
+ if (!started) {
687
+ started = true;
688
+ yield {
689
+ type: "message_start",
690
+ message: {
691
+ id: messageId,
692
+ type: "message",
693
+ role: "assistant",
694
+ content: [],
695
+ model,
696
+ stop_reason: null,
697
+ stop_sequence: null,
698
+ usage: {
699
+ input_tokens: inputTokens,
700
+ output_tokens: 0,
701
+ cache_creation_input_tokens: 0,
702
+ cache_read_input_tokens: 0
703
+ }
704
+ }
705
+ };
706
+ }
707
+ const candidate = chunk.candidates?.[0];
708
+ const parts = candidate?.content?.parts ?? [];
709
+ for (const part of parts) {
710
+ if (part.functionCall) {
711
+ if (openTextLikeBlock) {
712
+ yield {
713
+ type: "content_block_stop",
714
+ index: openTextLikeBlock.index
715
+ };
716
+ openTextLikeBlock = null;
717
+ }
718
+ sawToolUse = true;
719
+ const toolIndex = nextContentIndex++;
720
+ const toolId = `toolu_${randomUUID().replace(/-/g, "").slice(0, 24)}`;
721
+ yield {
722
+ type: "content_block_start",
723
+ index: toolIndex,
724
+ content_block: {
725
+ type: "tool_use",
726
+ id: toolId,
727
+ name: part.functionCall.name || "",
728
+ input: {}
729
+ }
730
+ };
731
+ if (part.thoughtSignature) {
732
+ yield {
733
+ type: "content_block_delta",
734
+ index: toolIndex,
735
+ delta: {
736
+ type: "signature_delta",
737
+ signature: part.thoughtSignature
738
+ }
739
+ };
740
+ }
741
+ if (part.functionCall.args && Object.keys(part.functionCall.args).length > 0) {
742
+ yield {
743
+ type: "content_block_delta",
744
+ index: toolIndex,
745
+ delta: {
746
+ type: "input_json_delta",
747
+ partial_json: JSON.stringify(part.functionCall.args)
748
+ }
749
+ };
750
+ }
751
+ yield {
752
+ type: "content_block_stop",
753
+ index: toolIndex
754
+ };
755
+ continue;
756
+ }
757
+ const textLikeType = getTextLikeBlockType(part);
758
+ if (textLikeType) {
759
+ if (!openTextLikeBlock || openTextLikeBlock.type !== textLikeType) {
760
+ if (openTextLikeBlock) {
761
+ yield {
762
+ type: "content_block_stop",
763
+ index: openTextLikeBlock.index
764
+ };
765
+ }
766
+ openTextLikeBlock = {
767
+ index: nextContentIndex++,
768
+ type: textLikeType
769
+ };
770
+ yield {
771
+ type: "content_block_start",
772
+ index: openTextLikeBlock.index,
773
+ content_block: textLikeType === "thinking" ? {
774
+ type: "thinking",
775
+ thinking: "",
776
+ signature: ""
777
+ } : {
778
+ type: "text",
779
+ text: ""
780
+ }
781
+ };
782
+ }
783
+ if (part.text) {
784
+ yield {
785
+ type: "content_block_delta",
786
+ index: openTextLikeBlock.index,
787
+ delta: textLikeType === "thinking" ? {
788
+ type: "thinking_delta",
789
+ thinking: part.text
790
+ } : {
791
+ type: "text_delta",
792
+ text: part.text
793
+ }
794
+ };
795
+ }
796
+ if (part.thoughtSignature) {
797
+ yield {
798
+ type: "content_block_delta",
799
+ index: openTextLikeBlock.index,
800
+ delta: {
801
+ type: "signature_delta",
802
+ signature: part.thoughtSignature
803
+ }
804
+ };
805
+ }
806
+ continue;
807
+ }
808
+ if (part.thoughtSignature && openTextLikeBlock) {
809
+ yield {
810
+ type: "content_block_delta",
811
+ index: openTextLikeBlock.index,
812
+ delta: {
813
+ type: "signature_delta",
814
+ signature: part.thoughtSignature
815
+ }
816
+ };
817
+ }
818
+ }
819
+ if (candidate?.finishReason) {
820
+ finishReason = candidate.finishReason;
821
+ }
822
+ }
823
+ if (!started) {
824
+ return;
825
+ }
826
+ if (openTextLikeBlock) {
827
+ yield {
828
+ type: "content_block_stop",
829
+ index: openTextLikeBlock.index
830
+ };
831
+ }
832
+ if (!stopped) {
833
+ yield {
834
+ type: "message_delta",
835
+ delta: {
836
+ stop_reason: mapGeminiFinishReason(finishReason, sawToolUse),
837
+ stop_sequence: null
838
+ },
839
+ usage: {
840
+ output_tokens: outputTokens
841
+ }
842
+ };
843
+ yield {
844
+ type: "message_stop"
845
+ };
846
+ stopped = true;
847
+ }
848
+ }
849
+ function getTextLikeBlockType(part) {
850
+ if (typeof part.text !== "string") {
851
+ return null;
852
+ }
853
+ return part.thought ? "thinking" : "text";
854
+ }
855
+ function mapGeminiFinishReason(reason, sawToolUse) {
856
+ switch (reason) {
857
+ case "MAX_TOKENS":
858
+ return "max_tokens";
859
+ case "STOP":
860
+ case "FINISH_REASON_UNSPECIFIED":
861
+ case "SAFETY":
862
+ case "RECITATION":
863
+ case "BLOCKLIST":
864
+ case "PROHIBITED_CONTENT":
865
+ case "SPII":
866
+ case "MALFORMED_FUNCTION_CALL":
867
+ default:
868
+ return sawToolUse ? "tool_use" : "end_turn";
869
+ }
870
+ }
871
+ var init_streamAdapter = () => {};
872
+
873
+ // src/services/api/gemini/index.ts
874
+ import { randomUUID as randomUUID2 } from "crypto";
875
+ async function* queryModelGemini(messages, systemPrompt, tools, signal, options, thinkingConfig) {
876
+ try {
877
+ const geminiModel = resolveGeminiModel(options.model);
878
+ const messagesForAPI = normalizeMessagesForAPI(messages, tools);
879
+ const toolSchemas = await Promise.all(tools.map((tool) => toolToAPISchema(tool, {
880
+ getToolPermissionContext: options.getToolPermissionContext,
881
+ tools,
882
+ agents: options.agents,
883
+ allowedAgentTypes: options.allowedAgentTypes,
884
+ model: options.model
885
+ })));
886
+ const standardTools = toolSchemas.filter((t) => {
887
+ const anyTool = t;
888
+ return anyTool.type !== "advisor_20260301" && anyTool.type !== "computer_20250124";
889
+ });
890
+ const { contents, systemInstruction } = anthropicMessagesToGemini(messagesForAPI, systemPrompt);
891
+ const geminiTools = anthropicToolsToGemini(standardTools);
892
+ const toolChoice = anthropicToolChoiceToGemini(options.toolChoice);
893
+ const stream = streamGeminiGenerateContent({
894
+ model: geminiModel,
895
+ signal,
896
+ fetchOverride: options.fetchOverride,
897
+ body: {
898
+ contents,
899
+ ...systemInstruction && { systemInstruction },
900
+ ...geminiTools.length > 0 && { tools: geminiTools },
901
+ ...toolChoice && {
902
+ toolConfig: {
903
+ functionCallingConfig: toolChoice
904
+ }
905
+ },
906
+ generationConfig: {
907
+ ...options.temperatureOverride !== undefined && {
908
+ temperature: options.temperatureOverride
909
+ },
910
+ ...thinkingConfig.type !== "disabled" && {
911
+ thinkingConfig: {
912
+ includeThoughts: true,
913
+ ...thinkingConfig.type === "enabled" && {
914
+ thinkingBudget: thinkingConfig.budgetTokens
915
+ }
916
+ }
917
+ }
918
+ }
919
+ }
920
+ });
921
+ logForDebugging(`[Gemini] Calling model=${geminiModel}, messages=${contents.length}, tools=${geminiTools.length}`);
922
+ const adaptedStream = adaptGeminiStreamToAnthropic(stream, geminiModel);
923
+ const contentBlocks = {};
924
+ let partialMessage = undefined;
925
+ let ttftMs = 0;
926
+ const start = Date.now();
927
+ for await (const event of adaptedStream) {
928
+ switch (event.type) {
929
+ case "message_start":
930
+ partialMessage = event.message;
931
+ ttftMs = Date.now() - start;
932
+ break;
933
+ case "content_block_start": {
934
+ const idx = event.index;
935
+ const cb = event.content_block;
936
+ if (cb.type === "tool_use") {
937
+ contentBlocks[idx] = { ...cb, input: "" };
938
+ } else if (cb.type === "text") {
939
+ contentBlocks[idx] = { ...cb, text: "" };
940
+ } else if (cb.type === "thinking") {
941
+ contentBlocks[idx] = { ...cb, thinking: "", signature: "" };
942
+ } else {
943
+ contentBlocks[idx] = { ...cb };
944
+ }
945
+ break;
946
+ }
947
+ case "content_block_delta": {
948
+ const idx = event.index;
949
+ const delta = event.delta;
950
+ const block = contentBlocks[idx];
951
+ if (!block)
952
+ break;
953
+ if (delta.type === "text_delta") {
954
+ block.text = (block.text || "") + delta.text;
955
+ } else if (delta.type === "input_json_delta") {
956
+ block.input = (block.input || "") + delta.partial_json;
957
+ } else if (delta.type === "thinking_delta") {
958
+ block.thinking = (block.thinking || "") + delta.thinking;
959
+ } else if (delta.type === "signature_delta") {
960
+ if (block.type === "thinking") {
961
+ block.signature = delta.signature;
962
+ } else {
963
+ block[GEMINI_THOUGHT_SIGNATURE_FIELD] = delta.signature;
964
+ }
965
+ }
966
+ break;
967
+ }
968
+ case "content_block_stop": {
969
+ const idx = event.index;
970
+ const block = contentBlocks[idx];
971
+ if (!block || !partialMessage)
972
+ break;
973
+ const message = {
974
+ message: {
975
+ ...partialMessage,
976
+ content: normalizeContentFromAPI([block], tools, options.agentId)
977
+ },
978
+ requestId: undefined,
979
+ type: "assistant",
980
+ uuid: randomUUID2(),
981
+ timestamp: new Date().toISOString()
982
+ };
983
+ yield message;
984
+ break;
985
+ }
986
+ case "message_delta":
987
+ case "message_stop":
988
+ break;
989
+ }
990
+ yield {
991
+ type: "stream_event",
992
+ event,
993
+ ...event.type === "message_start" ? { ttftMs } : undefined
994
+ };
995
+ }
996
+ } catch (error) {
997
+ const errorMessage2 = error instanceof Error ? error.message : String(error);
998
+ logForDebugging(`[Gemini] Error: ${errorMessage2}`, { level: "error" });
999
+ yield createAssistantAPIErrorMessage({
1000
+ content: `API Error: ${errorMessage2}`,
1001
+ apiError: "api_error",
1002
+ error: error instanceof Error ? error : new Error(String(error))
1003
+ });
1004
+ }
1005
+ }
1006
+ var init_gemini = __esm(() => {
1007
+ init_api();
1008
+ init_debug();
1009
+ init_messages();
1010
+ init_client();
1011
+ init_convertMessages();
1012
+ init_convertTools();
1013
+ init_modelMapping();
1014
+ init_streamAdapter();
1015
+ init_types();
1016
+ });
1017
+ init_gemini();
1018
+
1019
+ export {
1020
+ queryModelGemini
1021
+ };