promptfoo 0.120.26 → 0.121.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/README.md +1 -1
  2. package/dist/drizzle/0023_wooden_mandrill.sql +2 -0
  3. package/dist/drizzle/meta/0023_snapshot.json +1496 -0
  4. package/dist/drizzle/meta/_journal.json +7 -0
  5. package/dist/src/{ListApp-D3DG0F8h.js → ListApp-Du7YVwj5.js} +2 -4
  6. package/dist/src/accounts-BgNJDBE6.js +206 -0
  7. package/dist/src/{accounts-BzEY8H3v.cjs → accounts-Bx-x3bmW.cjs} +99 -80
  8. package/dist/src/{accounts-DHHiXsy6.js → accounts-CMqkzrVf.js} +61 -36
  9. package/dist/src/{accounts-R3gfCR_g.js → accounts-xrUGFA6n.js} +60 -35
  10. package/dist/src/{agentic-utils-D6_gzOUF.js → agentic-utils-BKIN5PKu.js} +9 -10
  11. package/dist/src/{agents-CwM7re15.cjs → agents-B0f4HICh.cjs} +37 -40
  12. package/dist/src/{agents-Cnph5GLD.js → agents-C-dDThPK.js} +37 -37
  13. package/dist/src/{agents-C7BiinFI.cjs → agents-CErsqg5U.cjs} +19 -27
  14. package/dist/src/{agents-v4cW_ZgC.js → agents-CVIn-Utx.js} +19 -22
  15. package/dist/src/{agents-GiUianme.js → agents-CXknwsFX.js} +37 -40
  16. package/dist/src/{agents-DETIQHqF.js → agents-DeH4Gu94.js} +21 -28
  17. package/dist/src/{agents-DYIT-hQy.js → agents-Dy2YpZpa.js} +38 -41
  18. package/dist/src/{agents-Cao4i7AX.js → agents-aF4-T121.js} +19 -30
  19. package/dist/src/{aimlapi-DMF6v_vb.js → aimlapi-BAGZDo5G.js} +16 -18
  20. package/dist/src/{aimlapi-CMJpKK-B.js → aimlapi-BNfTBexL.js} +15 -17
  21. package/dist/src/{aimlapi-DtSf1ykJ.js → aimlapi-DHRKlBEA.js} +15 -4
  22. package/dist/src/{aimlapi-DoGLcQW_.cjs → aimlapi-tg0Gkcvr.cjs} +15 -16
  23. package/dist/src/app/assets/index-BFCZg7hQ.js +439 -0
  24. package/dist/src/app/assets/index-NCn4eVBv.css +1 -0
  25. package/dist/src/app/assets/{vendor-charts-CYyo8R8v.js → vendor-charts-CCl15Imd.js} +1 -1
  26. package/dist/src/app/assets/{vendor-markdown-DSmzq4Jh.js → vendor-markdown-0tekx3KX.js} +1 -1
  27. package/dist/src/app/index.html +4 -34
  28. package/dist/src/{audio-DUH4q0Xq.js → audio-BRODU0UK.js} +7 -9
  29. package/dist/src/{audio-BWjyvHn9.cjs → audio-BWeaWovU.cjs} +6 -7
  30. package/dist/src/{audio-U580w8jM.js → audio-CHQ4r-RV.js} +6 -5
  31. package/dist/src/{audio-BrJBFN2b.js → audio-tf_NBjlC.js} +6 -8
  32. package/dist/src/base-B0tcrnq_.js +193 -0
  33. package/dist/src/base-B4QJRyFS.js +194 -0
  34. package/dist/src/base-DBtwl2FR.cjs +222 -0
  35. package/dist/src/base-fEDN28WM.js +193 -0
  36. package/dist/src/{blobs-kt8v3UyH.js → blobs-BAU-dXan.js} +9 -12
  37. package/dist/src/{blobs-C9J2mVgo.js → blobs-Bpg5rH6i.js} +9 -12
  38. package/dist/src/{blobs-673H0jCl.cjs → blobs-DvS-O6be.cjs} +34 -37
  39. package/dist/src/blobs-qTYm-1PY.js +236 -0
  40. package/dist/src/{cache-BLLayYEN.js → cache-8XhNqPKW.js} +64 -67
  41. package/dist/src/cache-Bbn1Nyrd.cjs +5 -0
  42. package/dist/src/cache-BwsMSda7.js +6 -0
  43. package/dist/src/{cache-mIszOnuz.js → cache-CG0SlR1d.js} +64 -66
  44. package/dist/src/{cache-7xULbvt3.cjs → cache-COish3-W.cjs} +114 -117
  45. package/dist/src/cache-D3eqDYGU.js +739 -0
  46. package/dist/src/{chat-Fl6TZJRS.cjs → chat-2K608PeQ.cjs} +20 -21
  47. package/dist/src/chat-BKm79wib.js +764 -0
  48. package/dist/src/{chat-XPN9YHhr.js → chat-CM_kyI8B.js} +20 -9
  49. package/dist/src/{chat-DIywASPG.js → chat-CRWNNq73.js} +49 -49
  50. package/dist/src/{chat-C8Ei4f87.js → chat-CznLWr_D.js} +49 -49
  51. package/dist/src/{chat-CgyGj2hC.js → chat-DHMH-N64.js} +20 -22
  52. package/dist/src/{chat-C4zqjObh.cjs → chat-DaqekjFr.cjs} +69 -69
  53. package/dist/src/{chat-Cpz3O-Xl.js → chat-DxysjBvt.js} +21 -23
  54. package/dist/src/{chatkit-Dpxrq4eD.js → chatkit-65VXf5SR.js} +58 -58
  55. package/dist/src/{chatkit-DIrJX8xk.js → chatkit-Be-Q-a9F.js} +58 -60
  56. package/dist/src/{chatkit-DEls11hE.js → chatkit-BxFvW8KY.js} +58 -60
  57. package/dist/src/{chatkit-e25Ziu17.cjs → chatkit-DKyPi1Gs.cjs} +58 -60
  58. package/dist/src/chunk-DEq-mXcV.js +15 -0
  59. package/dist/src/chunk-DRamLcfz.js +16 -0
  60. package/dist/src/{claude-agent-sdk-6-xTaLwM.js → claude-agent-sdk-BLTu0WBO.js} +45 -31
  61. package/dist/src/{claude-agent-sdk-BzxF6NIJ.cjs → claude-agent-sdk-CJH22shf.cjs} +44 -29
  62. package/dist/src/{claude-agent-sdk-CmkTnKGH.js → claude-agent-sdk-D6_k9FKA.js} +45 -33
  63. package/dist/src/{claude-agent-sdk-rXCBLK_o.js → claude-agent-sdk-Dy5lT-Tx.js} +46 -21
  64. package/dist/src/{cloud-BMbRVJFw.js → cloud-Bc9526yV.js} +32 -12
  65. package/dist/src/cloud-DmE0EwsY.js +4 -0
  66. package/dist/src/{cloudflare-ai-CUg4BTcj.js → cloudflare-ai-C9r2sRhw.js} +16 -18
  67. package/dist/src/{cloudflare-ai-Z9X219gp.js → cloudflare-ai-CWWJCRim.js} +16 -4
  68. package/dist/src/{cloudflare-ai-BAQ0u_dg.cjs → cloudflare-ai-ClWSdor4.cjs} +16 -17
  69. package/dist/src/{cloudflare-ai-CobxMTR4.js → cloudflare-ai-ICsOuD-z.js} +17 -19
  70. package/dist/src/{cloudflare-gateway-C0sgfr_z.cjs → cloudflare-gateway-C2_-KG5o.cjs} +21 -22
  71. package/dist/src/{cloudflare-gateway-_itGuXry.js → cloudflare-gateway-D6O7AlYb.js} +23 -23
  72. package/dist/src/{cloudflare-gateway-D2_yi-Fh.js → cloudflare-gateway-D6xFc5pa.js} +21 -25
  73. package/dist/src/{cloudflare-gateway-Djf3F3_H.js → cloudflare-gateway-pXGHxJ47.js} +26 -14
  74. package/dist/src/{codex-sdk-ibXwdglL.js → codex-sdk-C6UMlxwV.js} +49 -32
  75. package/dist/src/{codex-sdk-BASDNkIl.js → codex-sdk-DUwKWezN.js} +49 -30
  76. package/dist/src/{codex-sdk-dSnGdgIp.js → codex-sdk-GGAw0qbD.js} +49 -32
  77. package/dist/src/{codex-sdk-wTEpMM_X.cjs → codex-sdk-fAO0c3yA.cjs} +49 -32
  78. package/dist/src/{cometapi-B01btbfb.js → cometapi-BasUi7-_.js} +17 -19
  79. package/dist/src/{cometapi-DHUAH6nK.js → cometapi-Bbjp5V4x.js} +16 -4
  80. package/dist/src/{cometapi-ChAaRjg5.js → cometapi-DkXrKi5z.js} +21 -24
  81. package/dist/src/{cometapi-JbvOJSCO.cjs → cometapi-vY6aDZgo.cjs} +21 -22
  82. package/dist/src/{completion-D9_MDlnd.js → completion-6Mx_iXxK.js} +11 -13
  83. package/dist/src/{completion-BBJ6zmG3.js → completion-C5rtR_9P.js} +11 -13
  84. package/dist/src/{completion-DDyL3Cb2.cjs → completion-CDOouNzq.cjs} +21 -23
  85. package/dist/src/completion-C_P3ypkJ.js +120 -0
  86. package/dist/src/createHash-CTQmL3G2.js +15 -0
  87. package/dist/src/createHash-CfZSc0b4.cjs +27 -0
  88. package/dist/src/createHash-Da8fMwqB.js +16 -0
  89. package/dist/src/createHash-DmPQkvBh.js +15 -0
  90. package/dist/src/{docker-JAAubMw3.js → docker-5KcG-_86.js} +18 -20
  91. package/dist/src/{docker-Ckw-j7Rr.cjs → docker-BwsKwxFs.cjs} +18 -19
  92. package/dist/src/{docker-vnOg96gi.js → docker-CZnqU1XV.js} +18 -7
  93. package/dist/src/{docker-BuButc4D.js → docker-DzxyDPIj.js} +19 -21
  94. package/dist/src/entrypoint.js +2 -3
  95. package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
  96. package/dist/src/{esm-CYhseqj4.js → esm-C03C-mv3.js} +17 -20
  97. package/dist/src/{esm-rDtG_2rg.js → esm-CaIwzWR5.js} +18 -21
  98. package/dist/src/esm-Cd1AjG1D.js +379 -0
  99. package/dist/src/{esm-BQkx5roy.cjs → esm-CnNt7sI4.cjs} +47 -49
  100. package/dist/src/eval-17JizQIv.js +15 -0
  101. package/dist/src/{eval-CYrbG57o.js → eval-DmFyWU7i.js} +49 -55
  102. package/dist/src/{evalResult-COsVttMA.js → evalResult-CDQiuUuf.js} +16 -12
  103. package/dist/src/{evalResult-6JaUIStC.js → evalResult-CTG2AHOS.js} +10 -11
  104. package/dist/src/evalResult-Cqj8pldJ.js +12 -0
  105. package/dist/src/{evalResult-DlRfu_Rq.cjs → evalResult-Dap2CekP.cjs} +20 -21
  106. package/dist/src/evalResult-DvcJAWJU.cjs +10 -0
  107. package/dist/src/evalResult-Hftn-S_i.js +10 -0
  108. package/dist/src/evaluator-B2CFNt-P.js +36 -0
  109. package/dist/src/{evaluator-3EJCMTs0.js → evaluator-DPFRbFIL.js} +210 -232
  110. package/dist/src/{extractor-LSYjrhK0.js → extractor-CFG6bcWJ.js} +23 -38
  111. package/dist/src/{extractor-DbhlYEeo.cjs → extractor-DX36oYEv.cjs} +37 -64
  112. package/dist/src/{extractor-Hs7la_19.js → extractor-M67RUtg6.js} +23 -38
  113. package/dist/src/extractor-YMU_Gvt8.js +374 -0
  114. package/dist/src/fetch-4M3YRaqL.js +780 -0
  115. package/dist/src/{fetch-18MuNu9i.js → fetch-60Gzydls.js} +60 -46
  116. package/dist/src/{fetch-SRsE6Ctl.js → fetch-BMv0O527.js} +41 -35
  117. package/dist/src/{fetch-ZMn_oemb.cjs → fetch-BxUk8odA.cjs} +268 -279
  118. package/dist/src/fetch-KV5kNASw.js +5 -0
  119. package/dist/src/{fileExtensions-ePDqouxn.js → fileExtensions-DnqA1y9x.js} +2 -2
  120. package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-Ds-foDzt.js} +2 -2
  121. package/dist/src/fileExtensions-LcDYkU4v.js +85 -0
  122. package/dist/src/{fileExtensions-DkJYkWUy.cjs → fileExtensions-bYh77CN8.cjs} +27 -28
  123. package/dist/src/{formatDuration-Doo0xq-z.js → formatDuration-DgBVMN65.js} +2 -2
  124. package/dist/src/{genaiTracer-Ce19n68P.js → genaiTracer-70Z8BIuV.js} +2 -3
  125. package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-C1rxGO8Q.js} +2 -3
  126. package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
  127. package/dist/src/{genaiTracer-CQlpZkrp.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
  128. package/dist/src/graders-Bu0H9nXi.js +32 -0
  129. package/dist/src/{graders-BaMCwIKp.js → graders-CHO8EPM4.js} +385 -417
  130. package/dist/src/graders-Cfhkvx-e.js +34 -0
  131. package/dist/src/{graders-QsALpIdy.js → graders-CpdqD9PI.js} +385 -417
  132. package/dist/src/graders-DClJVpGP.cjs +32 -0
  133. package/dist/src/{graders-DzUUnUjC.cjs → graders-DOXycdlG.cjs} +721 -753
  134. package/dist/src/graders-DcnJsrMO.js +32 -0
  135. package/dist/src/graders-R9rYUM0d.js +13466 -0
  136. package/dist/src/{image-BiEVdpdP.js → image-BmEZqVmk.js} +57 -18
  137. package/dist/src/{image-mhAGP07h.js → image-CBBVXWuT.js} +57 -18
  138. package/dist/src/{image-D10zEe1f.cjs → image-CDLQOcqT.cjs} +6 -7
  139. package/dist/src/{image-COCWy5dX.js → image-DJEvKveK.js} +6 -5
  140. package/dist/src/{image-C3BjJUAU.cjs → image-DTedmQPg.cjs} +77 -32
  141. package/dist/src/{image-DB4sHxdJ.js → image-gvmivTEe.js} +7 -9
  142. package/dist/src/image-pAX56tPG.js +257 -0
  143. package/dist/src/{image-BXt_7u0v.js → image-tL5hIOFh.js} +6 -8
  144. package/dist/src/index.cjs +696 -693
  145. package/dist/src/index.d.cts +113 -10
  146. package/dist/src/index.d.ts +113 -6
  147. package/dist/src/index.js +657 -658
  148. package/dist/src/{interactiveCheck-DU-MAhp5.js → interactiveCheck-BgLZUIt3.js} +7 -8
  149. package/dist/src/{invariant-DT20jrBd.js → invariant-BtWWVVhl.js} +2 -2
  150. package/dist/src/{invariant-1pAf2CD1.js → invariant-Ddh24eXh.js} +2 -2
  151. package/dist/src/{invariant-CKcJAQ6M.cjs → invariant-kfQ8Bu82.cjs} +7 -8
  152. package/dist/src/invariant-vgHWClmd.js +25 -0
  153. package/dist/src/{knowledgeBase-DotRBzUE.js → knowledgeBase-CLJybhnF.js} +19 -34
  154. package/dist/src/{knowledgeBase-XJQ0Qyez.js → knowledgeBase-CoU-UQBg.js} +17 -41
  155. package/dist/src/{knowledgeBase-CMvMlLZR.js → knowledgeBase-DjWPVqSb.js} +17 -43
  156. package/dist/src/{knowledgeBase-Bnb00xKs.cjs → knowledgeBase-wkxuRFhA.cjs} +17 -40
  157. package/dist/src/{litellm-CHrRmPAe.js → litellm-B9Hysuri.js} +16 -18
  158. package/dist/src/{litellm-CrLJrPIm.js → litellm-CTfa0hqi.js} +15 -17
  159. package/dist/src/{litellm-BrnZhMcL.cjs → litellm-NYpQ8RQu.cjs} +15 -16
  160. package/dist/src/{litellm-BECdjOTx.js → litellm-ePxtr9F1.js} +15 -4
  161. package/dist/src/{logger-w8Ozp0Td.js → logger-CT3IKMKA.js} +24 -41
  162. package/dist/src/{logger-BdZ-IqBc.cjs → logger-Cp1GPUjj.cjs} +166 -192
  163. package/dist/src/logger-DLcq4dWf.js +713 -0
  164. package/dist/src/{logger-BotXmWKW.js → logger-KkObSCzq.js} +27 -43
  165. package/dist/src/{luma-ray-C0RkI3lt.cjs → luma-ray-B0GGNRc1.cjs} +20 -21
  166. package/dist/src/{luma-ray-C-w6EsJm.js → luma-ray-BE2mOt6N.js} +20 -13
  167. package/dist/src/{luma-ray-BOeX-h0M.js → luma-ray-BW9IRGIc.js} +22 -21
  168. package/dist/src/{luma-ray-DgKLS0BF.js → luma-ray-Cm1KZBhs.js} +20 -23
  169. package/dist/src/main.js +1985 -2055
  170. package/dist/src/{messages-DXV3Qh8_.cjs → messages-1JrJs91T.cjs} +35 -34
  171. package/dist/src/{messages-D61tPFQo.js → messages-1x9atZmP.js} +25 -24
  172. package/dist/src/{messages-CDZYGNlS.js → messages-BLbWdsyt.js} +25 -24
  173. package/dist/src/messages-D8EA0oDc.js +240 -0
  174. package/dist/src/{meteor-P2rUE-Uz.js → meteor-44VjEACX.js} +3 -4
  175. package/dist/src/{meteor-SLNTgmXm.js → meteor-D-SotUw9.js} +3 -4
  176. package/dist/src/{meteor-odmwVbyG.cjs → meteor-DLZZ3osF.cjs} +3 -4
  177. package/dist/src/{meteor-Dj8cTkU_.js → meteor-DUiCJRC-.js} +3 -4
  178. package/dist/src/modelslab-C1OLRmVX.js +166 -0
  179. package/dist/src/modelslab-CqXBy3U8.js +168 -0
  180. package/dist/src/modelslab-DcOSFwKh.cjs +166 -0
  181. package/dist/src/modelslab-X5-4LroM.js +166 -0
  182. package/dist/src/{nova-reel-C2LFfVTf.js → nova-reel-BgS1ZWuK.js} +20 -13
  183. package/dist/src/{nova-reel-DtCjbD5O.js → nova-reel-D2ZkOSyr.js} +22 -21
  184. package/dist/src/{nova-reel-D9FXq3Mt.cjs → nova-reel-D9xfaMBs.cjs} +20 -21
  185. package/dist/src/{nova-reel-Bk5npr2q.js → nova-reel-DihqLeol.js} +20 -23
  186. package/dist/src/{nova-sonic-BoRSY_U6.cjs → nova-sonic-DVu3mMIy.cjs} +30 -31
  187. package/dist/src/{nova-sonic-D_qERM-K.js → nova-sonic-DezhVUYT.js} +30 -26
  188. package/dist/src/{nova-sonic-CgaWLDM1.js → nova-sonic-P-CdUMlV.js} +30 -31
  189. package/dist/src/{nova-sonic-BXRfQyF-.js → nova-sonic-Q3BOJeig.js} +31 -32
  190. package/dist/src/{openai-Bigwjgo1.cjs → openai-Cuif0GEt.cjs} +8 -9
  191. package/dist/src/{openai-Dz3surb_.js → openai-DElQ-fPX.js} +3 -4
  192. package/dist/src/{openai-CT5fwbve.js → openai-DhbB7eWK.js} +3 -4
  193. package/dist/src/openai-j-sE2O7r.js +44 -0
  194. package/dist/src/{openclaw-dHLcXUWZ.js → openclaw-BiSZPL7J.js} +20 -14
  195. package/dist/src/{openclaw-CpPrXwf6.js → openclaw-Bv1DINsX.js} +20 -27
  196. package/dist/src/{openclaw-B6XY2kUf.js → openclaw-D1D_ej1z.js} +21 -28
  197. package/dist/src/{openclaw-DDSfq5fp.cjs → openclaw-DAfWQn-o.cjs} +33 -39
  198. package/dist/src/opencode-sdk-C7m-wRfI.js +560 -0
  199. package/dist/src/opencode-sdk-CfaLN8PY.cjs +564 -0
  200. package/dist/src/opencode-sdk-D95s6SnR.js +562 -0
  201. package/dist/src/opencode-sdk-DxUPkLT7.js +560 -0
  202. package/dist/src/{otlpReceiver-DmRb0NBj.js → otlpReceiver--AIRW_S4.js} +53 -51
  203. package/dist/src/{otlpReceiver-Dg817agV.js → otlpReceiver-Bn5wGB1v.js} +53 -55
  204. package/dist/src/{otlpReceiver-B6Xo4KZM.cjs → otlpReceiver-Diec4cln.cjs} +53 -55
  205. package/dist/src/{otlpReceiver-BO0rbDzh.js → otlpReceiver-g3ByGaXs.js} +53 -55
  206. package/dist/src/{providerRegistry-Xf0qdqGQ.js → providerRegistry-B0RUOLI_.js} +7 -8
  207. package/dist/src/{providerRegistry-wCWd7sKQ.js → providerRegistry-CD8MEar9.js} +7 -8
  208. package/dist/src/{providerRegistry-lc7a7utN.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
  209. package/dist/src/providerRegistry-DM8rZYol.js +45 -0
  210. package/dist/src/providers-B3HvufyI.js +33246 -0
  211. package/dist/src/{providers-BiNq_Iyc.js → providers-BKRJTjBz.js} +1743 -1795
  212. package/dist/src/providers-C1rOSHiR.js +32 -0
  213. package/dist/src/{providers-BlEhY5mi.js → providers-CFLy1_ji.js} +1750 -1802
  214. package/dist/src/{providers-BNKVY53V.cjs → providers-CFu-TZl-.cjs} +2111 -2163
  215. package/dist/src/providers-CxmDwEFf.cjs +31 -0
  216. package/dist/src/providers-Dodakqr0.js +30 -0
  217. package/dist/src/providers-GIQ2TcsA.js +30 -0
  218. package/dist/src/{pythonUtils-r1uBuA0n.js → pythonUtils-C3py6GC1.js} +18 -19
  219. package/dist/src/{pythonUtils-DZ6EbdY4.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
  220. package/dist/src/{pythonUtils-vMlk9Qp5.js → pythonUtils-D5nxkQ0P.js} +18 -19
  221. package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
  222. package/dist/src/quiverai-C2jVwbH1.js +213 -0
  223. package/dist/src/quiverai-CI6gYJVI.js +213 -0
  224. package/dist/src/quiverai-CLkWkyZc.cjs +213 -0
  225. package/dist/src/quiverai-MHSxbmmZ.js +215 -0
  226. package/dist/src/{render-CAZvKKkB.js → render-Drod8m7K.js} +4 -5
  227. package/dist/src/{responses-DLLjADw5.js → responses-BKqJmhhc.js} +34 -27
  228. package/dist/src/{responses-TsdODUpm.js → responses-CGw0DCzh.js} +34 -27
  229. package/dist/src/responses-jxdehPkC.js +660 -0
  230. package/dist/src/{responses-zOtKtnY_.cjs → responses-tD4Bd4dc.cjs} +49 -42
  231. package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
  232. package/dist/src/{rubyUtils-Cs35SDYa.js → rubyUtils-BUVePouc.js} +27 -20
  233. package/dist/src/rubyUtils-BcuGX77l.js +222 -0
  234. package/dist/src/{rubyUtils-BtjlqyXt.js → rubyUtils-Boc4HZzX.js} +18 -19
  235. package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
  236. package/dist/src/{rubyUtils-DCVaJ3mc.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
  237. package/dist/src/{sagemaker-Du4LIR97.js → sagemaker-BK4Zb993.js} +75 -70
  238. package/dist/src/{sagemaker-CLdUAv5z.js → sagemaker-BfiWTmvn.js} +77 -77
  239. package/dist/src/{sagemaker-DwNnEVYt.cjs → sagemaker-CcQHM1jV.cjs} +75 -76
  240. package/dist/src/{sagemaker-BcgLu0U4.js → sagemaker-D2Q1c-sD.js} +75 -79
  241. package/dist/src/{scanner-Dyw21Wg_.js → scanner-J8CA3LsV.js} +149 -122
  242. package/dist/src/server/index.js +5620 -67302
  243. package/dist/src/{server-CgUQ25qW.cjs → server-B0PPuDw-.cjs} +57 -67
  244. package/dist/src/server-B1vi21hA.js +7 -0
  245. package/dist/src/{server-CbMTRQkg.js → server-BC7XJFgr.js} +19 -24
  246. package/dist/src/server-Cm9Kai_h.cjs +5 -0
  247. package/dist/src/{server-DWmZLfCy.js → server-DbFphssR.js} +26 -29
  248. package/dist/src/server-OAs3nBRT.js +229 -0
  249. package/dist/src/{signal-Bl32q42d.js → signal-BOTbd53Z.js} +9 -11
  250. package/dist/src/{slack-BtMkB6xP.cjs → slack-BmVAVGaK.cjs} +7 -8
  251. package/dist/src/{slack-OZYxoVON.js → slack-DCUPTzS2.js} +8 -8
  252. package/dist/src/{slack-DPqj42Ts.js → slack-DOdy_kyv.js} +7 -8
  253. package/dist/src/{slack-BfdBx2tO.js → slack-DXMKtA-f.js} +7 -9
  254. package/dist/src/store-BNmZ1KAz.cjs +5 -0
  255. package/dist/src/{store-BqwfFEyF.cjs → store-BSc-TF2w.cjs} +44 -45
  256. package/dist/src/store-BltJg2cd.js +6 -0
  257. package/dist/src/{store-D4gdn9ih.js → store-D1tv90v3.js} +34 -35
  258. package/dist/src/{store-2ocbYY9D.js → store-DQLEjuEO.js} +40 -36
  259. package/dist/src/store-Ub2vaGJ1.js +228 -0
  260. package/dist/src/{tables-D-NSwNIb.js → tables-5EvT_Bwn.js} +23 -23
  261. package/dist/src/{tables-B9E1kRp-.cjs → tables-C7K-XKWp.cjs} +93 -93
  262. package/dist/src/{tables-C7TT2XVn.js → tables-D36WTqKX.js} +25 -25
  263. package/dist/src/tables-xKANLRBD.js +288 -0
  264. package/dist/src/telemetry-5BCRNBbe.cjs +5 -0
  265. package/dist/src/{telemetry-DZ_7PaVq.js → telemetry-C15ziL8u.js} +17 -14
  266. package/dist/src/{telemetry-BXyVqyAg.js → telemetry-C2YDkUQH.js} +11 -13
  267. package/dist/src/{telemetry-D0_yFdtU.cjs → telemetry-CbrnxHp_.cjs} +21 -24
  268. package/dist/src/telemetry-D4W5hboe.js +7 -0
  269. package/dist/src/telemetry-DMb2Mpfm.js +171 -0
  270. package/dist/src/{text-Dm78AVGG.js → text-B_UCRPp2.js} +2 -2
  271. package/dist/src/{text-DF2hMKdg.cjs → text-CW1cyrwj.cjs} +12 -13
  272. package/dist/src/{text-DgMr_tiM.js → text-Db-Wt2u2.js} +2 -2
  273. package/dist/src/text-TIv0QYnd.js +22 -0
  274. package/dist/src/{tokenUsageUtils-FZd5O_4A.js → tokenUsageUtils-BDGe-iyI.js} +2 -2
  275. package/dist/src/{tokenUsageUtils-DmZSD2eU.js → tokenUsageUtils-DflFMjS0.js} +2 -2
  276. package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
  277. package/dist/src/{tokenUsageUtils-CXhxVj72.cjs → tokenUsageUtils-bVa1ga6f.cjs} +32 -33
  278. package/dist/src/{transcription-FNIz3YOe.cjs → transcription-CL78qbOU.cjs} +14 -15
  279. package/dist/src/{transcription-C-M81iDA.js → transcription-DAtxHhAM.js} +14 -7
  280. package/dist/src/{transcription-CYuY5sFO.js → transcription-LNZTNUUL.js} +14 -16
  281. package/dist/src/{transcription-Ch7S-LWw.js → transcription-QHh3AH6Z.js} +15 -17
  282. package/dist/src/{transform-CoP2bJ7P.js → transform-Cgi24fJ7.js} +94 -66
  283. package/dist/src/{transform-Kd6u-oNm.cjs → transform-CzK1Q0zl.cjs} +24 -26
  284. package/dist/src/{transform-D8dILpfZ.js → transform-DECvGmzp.js} +15 -13
  285. package/dist/src/{transform-DMaxQwDx.js → transform-DGLazrMm.js} +94 -66
  286. package/dist/src/transform-DGxXocjk.js +1506 -0
  287. package/dist/src/{transform-ivxEY4f7.cjs → transform-DOcQeLld.cjs} +234 -206
  288. package/dist/src/transform-DTGDnAzW.js +6 -0
  289. package/dist/src/{transform-CqTFr7KR.js → transform-DilY9wbS.js} +10 -12
  290. package/dist/src/transform-aa6tmVpZ.js +216 -0
  291. package/dist/src/transform-m3qNw4KP.cjs +5 -0
  292. package/dist/src/{transformersAvailability-DEU2naS1.js → transformersAvailability-CEVM2GNQ.js} +2 -2
  293. package/dist/src/{transformersAvailability-Bkep3ka7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
  294. package/dist/src/{transformersAvailability-DwmezkVe.js → transformersAvailability-D6c6ROpT.js} +2 -2
  295. package/dist/src/{types-t52w-XsS.js → types-CH3Ge2sE.js} +103 -92
  296. package/dist/src/{types-DMVjYLpx.js → types-CLKiCBW3.js} +98 -91
  297. package/dist/src/types-CN_TZ2GJ.js +3260 -0
  298. package/dist/src/{types-BIfttHrT.cjs → types-LJ0r3wbR.cjs} +573 -566
  299. package/dist/src/util-5cB-L7U3.js +1430 -0
  300. package/dist/src/util-6-GqIvzS.js +599 -0
  301. package/dist/src/{util-vjscpUzy.js → util-B7T3SiBS.js} +5 -6
  302. package/dist/src/{util-Cl0zfT3V.js → util-Betm42rL.js} +44 -17
  303. package/dist/src/{util-CUEt0Vum.js → util-C-PPYSMq.js} +44 -17
  304. package/dist/src/{util-DkFTvieG.cjs → util-CchiqXh_.cjs} +35 -36
  305. package/dist/src/{util-mJ58qbbw.js → util-DaWTWKBK.js} +5 -6
  306. package/dist/src/{util-C08Kns6-.cjs → util-Db0a0AFH.cjs} +89 -62
  307. package/dist/src/{util-DiCePfDu.js → util-Dlz_Wvgm.js} +102 -53
  308. package/dist/src/{util-BSh4a_Q8.js → util-YT5HPZaS.js} +102 -53
  309. package/dist/src/{util-DUYOvxAy.cjs → util-Yz-1aEhW.cjs} +274 -219
  310. package/dist/src/util-ZZH-3QZz.js +293 -0
  311. package/dist/src/{utils-DFaZa6Rf.cjs → utils-Cz9qXqII.cjs} +32 -35
  312. package/dist/src/{utils-CVzb4YiI.js → utils-XiOAgly5.js} +4 -7
  313. package/dist/src/utils-dLokC-eR.js +94 -0
  314. package/dist/src/{utils-JaY9veb5.js → utils-f2-Moju7.js} +4 -7
  315. package/dist/tsconfig.tsbuildinfo +1 -1
  316. package/package.json +59 -53
  317. package/dist/src/app/assets/index-BOgkICuY.css +0 -1
  318. package/dist/src/app/assets/index-CSgqn_Vd.js +0 -428
  319. package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
  320. package/dist/src/base-BaXmtXYp.js +0 -107
  321. package/dist/src/base-Dtp8b4_N.js +0 -106
  322. package/dist/src/base-f71xxWai.cjs +0 -111
  323. package/dist/src/cache-BUPcq0Ad.js +0 -6
  324. package/dist/src/cache-CVfRb-HD.cjs +0 -6
  325. package/dist/src/cache-O4EuX2JV.js +0 -8
  326. package/dist/src/chunk-DHDDz29n.js +0 -22
  327. package/dist/src/chunk-FhC4c-0y.js +0 -21
  328. package/dist/src/cloud-CZ4hytdm.js +0 -5
  329. package/dist/src/eval-CKHWqG9f.js +0 -16
  330. package/dist/src/evalResult-CxTP-LMm.cjs +0 -11
  331. package/dist/src/evalResult-CzLURDcP.js +0 -13
  332. package/dist/src/evalResult-DyttNQ_G.js +0 -11
  333. package/dist/src/evaluator-0PvfeBYh.js +0 -38
  334. package/dist/src/fetch-Bi0o-fdp.js +0 -4
  335. package/dist/src/fetch-CMptBDVg.cjs +0 -4
  336. package/dist/src/fetch-DAZkv3gV.js +0 -6
  337. package/dist/src/graders-BCytzXrb.js +0 -34
  338. package/dist/src/graders-CGZQShfJ.cjs +0 -33
  339. package/dist/src/graders-spkuVC-E.js +0 -36
  340. package/dist/src/opencode-sdk-CImWVqy9.js +0 -382
  341. package/dist/src/opencode-sdk-CuCztr4P.js +0 -380
  342. package/dist/src/opencode-sdk-DhcfRbBH.js +0 -376
  343. package/dist/src/opencode-sdk-mqF-Oj3f.cjs +0 -383
  344. package/dist/src/providers-BMZZmPBJ.cjs +0 -32
  345. package/dist/src/providers-CQQrNaJk.js +0 -32
  346. package/dist/src/providers-Ck8HyrC-.js +0 -34
  347. package/dist/src/quiverai-BNfIwKCO.cjs +0 -54
  348. package/dist/src/quiverai-BQigKdIH.js +0 -57
  349. package/dist/src/quiverai-Bfy2WnE2.js +0 -55
  350. package/dist/src/quiverai-CedIP0PJ.js +0 -43
  351. package/dist/src/rubyUtils-D7--T12C.js +0 -6
  352. package/dist/src/rubyUtils-DRRiMFV2.js +0 -5
  353. package/dist/src/rubyUtils-vb8OYFC-.cjs +0 -5
  354. package/dist/src/server-BUbS0Qfh.js +0 -6
  355. package/dist/src/server-XpGXFHkS.cjs +0 -6
  356. package/dist/src/server-gfOx5Zrk.js +0 -8
  357. package/dist/src/store-5u2yriTV.js +0 -7
  358. package/dist/src/store-D_lq_8oQ.js +0 -6
  359. package/dist/src/store-m5KT6Ly7.cjs +0 -6
  360. package/dist/src/telemetry-5RHFoCJh.js +0 -6
  361. package/dist/src/telemetry-Do8wMnA-.js +0 -8
  362. package/dist/src/telemetry-LojxPoFq.cjs +0 -6
  363. package/dist/src/transform-8eGmaH-7.js +0 -7
  364. package/dist/src/transform-BRVvWaG4.cjs +0 -6
  365. package/dist/src/transform-GybT0X0u.js +0 -8
  366. package/dist/src/transformersAvailability-DkAWaK5B.js +0 -35
@@ -1,5 +1,16 @@
1
- import { M as invariant, j as logger_default, l as OpenAiChatCompletionProvider } from "./server/index.js";
2
-
1
+ import { i as logger } from "./logger-DLcq4dWf.js";
2
+ import "./fetch-4M3YRaqL.js";
3
+ import { t as invariant } from "./invariant-vgHWClmd.js";
4
+ import "./esm-CaIwzWR5.js";
5
+ import "./types-CN_TZ2GJ.js";
6
+ import "./cache-D3eqDYGU.js";
7
+ import "./genaiTracer-70Z8BIuV.js";
8
+ import "./pythonUtils-D6fwaDSg.js";
9
+ import "./util-5cB-L7U3.js";
10
+ import { t as OpenAiChatCompletionProvider } from "./chat-BKm79wib.js";
11
+ import "./transform-DGxXocjk.js";
12
+ import "./openai-j-sE2O7r.js";
13
+ import "./util-6-GqIvzS.js";
3
14
  //#region src/providers/hyperbolic/chat.ts
4
15
  const HYPERBOLIC_CHAT_MODELS = [
5
16
  {
@@ -188,7 +199,7 @@ function calculateHyperbolicCost(modelName, config, promptTokens, completionToke
188
199
  const outputCost = config.cost ?? model.cost.output;
189
200
  const inputCostTotal = inputCost * promptTokens;
190
201
  const outputCostTotal = outputCost * completionTokens;
191
- logger_default.debug(`Hyperbolic cost calculation for ${modelName}: promptTokens=${promptTokens}, completionTokens=${completionTokens}, reasoningTokens=${reasoningTokens || "N/A"}, inputCost=${inputCostTotal}, outputCost=${outputCostTotal}`);
202
+ logger.debug(`Hyperbolic cost calculation for ${modelName}: promptTokens=${promptTokens}, completionTokens=${completionTokens}, reasoningTokens=${reasoningTokens || "N/A"}, inputCost=${inputCostTotal}, outputCost=${outputCostTotal}`);
192
203
  return inputCostTotal + outputCostTotal;
193
204
  }
194
205
  var HyperbolicProvider = class extends OpenAiChatCompletionProvider {
@@ -245,11 +256,11 @@ var HyperbolicProvider = class extends OpenAiChatCompletionProvider {
245
256
  acceptedPrediction: acceptedPredictions,
246
257
  rejectedPrediction: rejectedPredictions
247
258
  };
248
- logger_default.debug(`Hyperbolic reasoning token details for ${this.modelName}: reasoning=${reasoningTokens}, accepted=${acceptedPredictions}, rejected=${rejectedPredictions}`);
259
+ logger.debug(`Hyperbolic reasoning token details for ${this.modelName}: reasoning=${reasoningTokens}, accepted=${acceptedPredictions}, rejected=${rejectedPredictions}`);
249
260
  }
250
261
  }
251
262
  } catch (err) {
252
- logger_default.error(`Failed to parse raw response JSON: ${err}`);
263
+ logger.error(`Failed to parse raw response JSON: ${err}`);
253
264
  }
254
265
  else if (typeof response.raw === "object" && response.raw !== null) {
255
266
  const rawData = response.raw;
@@ -263,7 +274,7 @@ var HyperbolicProvider = class extends OpenAiChatCompletionProvider {
263
274
  acceptedPrediction: acceptedPredictions,
264
275
  rejectedPrediction: rejectedPredictions
265
276
  };
266
- logger_default.debug(`Hyperbolic reasoning token details for ${this.modelName}: reasoning=${reasoningTokens}, accepted=${acceptedPredictions}, rejected=${rejectedPredictions}`);
277
+ logger.debug(`Hyperbolic reasoning token details for ${this.modelName}: reasoning=${reasoningTokens}, accepted=${acceptedPredictions}, rejected=${rejectedPredictions}`);
267
278
  }
268
279
  }
269
280
  }
@@ -272,7 +283,7 @@ var HyperbolicProvider = class extends OpenAiChatCompletionProvider {
272
283
  response.cost = calculateHyperbolicCost(this.modelName, this.config || {}, response.tokenUsage.prompt, response.tokenUsage.completion, reasoningTokens);
273
284
  }
274
285
  } catch (err) {
275
- logger_default.error(`Error processing Hyperbolic response: ${err}`);
286
+ logger.error(`Error processing Hyperbolic response: ${err}`);
276
287
  }
277
288
  return response;
278
289
  }
@@ -282,7 +293,7 @@ function createHyperbolicProvider(providerPath, options = {}) {
282
293
  invariant(modelName, "Model name is required");
283
294
  return new HyperbolicProvider(modelName, options);
284
295
  }
285
-
286
296
  //#endregion
287
297
  export { createHyperbolicProvider };
288
- //# sourceMappingURL=chat-XPN9YHhr.js.map
298
+
299
+ //# sourceMappingURL=chat-CM_kyI8B.js.map
@@ -1,17 +1,16 @@
1
1
  #!/usr/bin/env node
2
- import { C as getEnvString, O as cliState_default, S as getEnvInt, b as getEnvBool, o as logger_default, x as getEnvFloat } from "./logger-BotXmWKW.js";
3
- import { b as transformToolChoice, d as REQUEST_TIMEOUT_MS, v as parseChatPrompt, x as transformTools } from "./fetch-SRsE6Ctl.js";
4
- import { a as fetchWithCache } from "./cache-mIszOnuz.js";
5
- import { i as isJavascriptFile } from "./fileExtensions-BpuMmaFL.js";
6
- import { g as maybeLoadToolsFromExternalFile, h as maybeLoadResponseFormatFromExternalFile, m as maybeLoadFromExternalFileWithVars, x as renderVarsInObject } from "./util-BSh4a_Q8.js";
7
- import { r as importModule } from "./esm-CYhseqj4.js";
8
- import { n as withGenAISpan } from "./genaiTracer-CqNnnXrE.js";
9
- import { C as applyQueryParams, D as renderAuthVars, E as getOAuthTokenWithExpiry, O as TOKEN_REFRESH_BUFFER_MS, T as getAuthQueryParams, i as transformMCPToolsToOpenAi, w as getAuthHeaders } from "./transform-CoP2bJ7P.js";
10
- import { t as OpenAiGenericProvider } from "./openai-CT5fwbve.js";
11
- import { a as calculateOpenAICost, c as getTokenUsage, t as OPENAI_CHAT_MODELS } from "./util-CUEt0Vum.js";
2
+ import { C as getEnvString, O as state, S as getEnvInt, b as getEnvBool, o as logger, x as getEnvFloat } from "./logger-KkObSCzq.js";
3
+ import { S as transformTools, f as REQUEST_TIMEOUT_MS, x as transformToolChoice, y as parseChatPrompt } from "./fetch-BMv0O527.js";
4
+ import { a as fetchWithCache } from "./cache-CG0SlR1d.js";
5
+ import { i as isJavascriptFile } from "./fileExtensions-Ds-foDzt.js";
6
+ import { g as maybeLoadToolsFromExternalFile, h as maybeLoadResponseFormatFromExternalFile, m as maybeLoadFromExternalFileWithVars, x as renderVarsInObject } from "./util-YT5HPZaS.js";
7
+ import { r as importModule } from "./esm-C03C-mv3.js";
8
+ import { n as withGenAISpan } from "./genaiTracer-C1rxGO8Q.js";
9
+ import { C as applyQueryParams, D as renderAuthVars, E as getOAuthTokenWithExpiry, T as getAuthQueryParams, i as transformMCPToolsToOpenAi, w as getAuthHeaders } from "./transform-Cgi24fJ7.js";
10
+ import { t as OpenAiGenericProvider } from "./openai-DhbB7eWK.js";
11
+ import { a as calculateOpenAICost, c as getTokenUsage, t as OPENAI_CHAT_MODELS } from "./util-C-PPYSMq.js";
12
12
  import path from "path";
13
13
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
14
-
15
14
  //#region src/util/finishReason.ts
16
15
  /**
17
16
  * Mapping of provider-specific finish/stop reasons to standardized OpenAI-compatible values.
@@ -80,7 +79,6 @@ function normalizeFinishReason(raw) {
80
79
  const key = trimmed.toLowerCase();
81
80
  return FINISH_REASON_MAP[key] ?? key;
82
81
  }
83
-
84
82
  //#endregion
85
83
  //#region src/providers/mcp/client.ts
86
84
  /**
@@ -129,7 +127,7 @@ var MCPClient = class {
129
127
  if (!this.config.enabled) return;
130
128
  const servers = this.config.servers || (this.config.server ? [this.config.server] : []);
131
129
  for (const server of servers) {
132
- logger_default.info(`connecting to server ${server.name || server.url || server.path || "default"}`);
130
+ logger.info(`connecting to server ${server.name || server.url || server.path || "default"}`);
133
131
  await this.connectToServer(server);
134
132
  }
135
133
  }
@@ -168,7 +166,7 @@ var MCPClient = class {
168
166
  let authHeaders = {};
169
167
  if (renderedServer.auth?.type === "oauth") {
170
168
  const oauthAuth = renderedServer.auth;
171
- logger_default.debug("[MCP] Fetching OAuth token");
169
+ logger.debug("[MCP] Fetching OAuth token");
172
170
  const { accessToken, expiresAt } = await getOAuthTokenWithExpiry(oauthAuth, server.url);
173
171
  authHeaders = { Authorization: `Bearer ${accessToken}` };
174
172
  this.oauthConfigs.set(serverKey, {
@@ -191,18 +189,18 @@ var MCPClient = class {
191
189
  const { StreamableHTTPClientTransport } = await import("@modelcontextprotocol/sdk/client/streamableHttp.js");
192
190
  transport = new StreamableHTTPClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
193
191
  await client.connect(transport, requestOptions);
194
- logger_default.debug("Connected using Streamable HTTP transport");
192
+ logger.debug("Connected using Streamable HTTP transport");
195
193
  } catch (error) {
196
- logger_default.debug(`Failed to connect to MCP server with Streamable HTTP transport ${serverKey}: ${error}`);
194
+ logger.debug(`Failed to connect to MCP server with Streamable HTTP transport ${serverKey}: ${error}`);
197
195
  const { SSEClientTransport } = await import("@modelcontextprotocol/sdk/client/sse.js");
198
196
  transport = new SSEClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
199
197
  await client.connect(transport, requestOptions);
200
- logger_default.debug("Connected using SSE transport");
198
+ logger.debug("Connected using SSE transport");
201
199
  }
202
200
  } else throw new Error("Either command+args or path or url must be specified for MCP server");
203
201
  if (this.config.pingOnConnect) try {
204
202
  await client.ping(requestOptions);
205
- logger_default.debug(`MCP server ${serverKey} ping successful`);
203
+ logger.debug(`MCP server ${serverKey} ping successful`);
206
204
  } catch (pingError) {
207
205
  const pingErrorMessage = pingError instanceof Error ? pingError.message : String(pingError);
208
206
  throw new Error(`MCP server ${serverKey} ping failed: ${pingErrorMessage}`);
@@ -221,7 +219,7 @@ var MCPClient = class {
221
219
  if (this.isVerboseEnabled) console.log(`Connected to MCP server ${serverKey} with tools:`, filteredTools.map((tool) => tool.name));
222
220
  } catch (error) {
223
221
  const errorMessage = error instanceof Error ? error.message : String(error);
224
- if (this.isDebugEnabled) logger_default.error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
222
+ if (this.isDebugEnabled) logger.error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
225
223
  throw new Error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
226
224
  }
227
225
  }
@@ -237,23 +235,23 @@ var MCPClient = class {
237
235
  if (!oauthConfig) return;
238
236
  const now = Date.now();
239
237
  const expiresAt = this.tokenExpiresAt.get(serverKey);
240
- if (expiresAt && now + TOKEN_REFRESH_BUFFER_MS < expiresAt) {
241
- logger_default.debug(`[MCP] Token for ${serverKey} still valid, no refresh needed`);
238
+ if (expiresAt && now + 6e4 < expiresAt) {
239
+ logger.debug(`[MCP] Token for ${serverKey} still valid, no refresh needed`);
242
240
  return;
243
241
  }
244
242
  const existingRefresh = this.tokenRefreshPromise.get(serverKey);
245
243
  if (existingRefresh) {
246
- logger_default.debug(`[MCP] Token refresh already in progress for ${serverKey}, waiting...`);
244
+ logger.debug(`[MCP] Token refresh already in progress for ${serverKey}, waiting...`);
247
245
  try {
248
246
  await existingRefresh;
249
247
  const newExpiresAt = this.tokenExpiresAt.get(serverKey);
250
- if (newExpiresAt && Date.now() + TOKEN_REFRESH_BUFFER_MS < newExpiresAt) return;
251
- logger_default.debug(`[MCP] Token expired while waiting for ${serverKey}, refreshing again...`);
248
+ if (newExpiresAt && Date.now() + 6e4 < newExpiresAt) return;
249
+ logger.debug(`[MCP] Token expired while waiting for ${serverKey}, refreshing again...`);
252
250
  } catch {
253
- logger_default.debug(`[MCP] Previous token refresh failed for ${serverKey}, retrying...`);
251
+ logger.debug(`[MCP] Previous token refresh failed for ${serverKey}, retrying...`);
254
252
  }
255
253
  }
256
- logger_default.debug(`[MCP] Proactively refreshing OAuth token for server ${serverKey}`);
254
+ logger.debug(`[MCP] Proactively refreshing OAuth token for server ${serverKey}`);
257
255
  const refreshPromise = this.performTokenRefresh(serverKey, oauthConfig);
258
256
  this.tokenRefreshPromise.set(serverKey, refreshPromise);
259
257
  try {
@@ -273,7 +271,7 @@ var MCPClient = class {
273
271
  this.clients.delete(serverKey);
274
272
  this.transports.delete(serverKey);
275
273
  await this.connectToServer(oauthConfig.serverConfig);
276
- logger_default.debug(`[MCP] Successfully refreshed OAuth token for server ${serverKey}`);
274
+ logger.debug(`[MCP] Successfully refreshed OAuth token for server ${serverKey}`);
277
275
  }
278
276
  async callTool(name, args) {
279
277
  const requestOptions = getEffectiveRequestOptions(this.config);
@@ -301,7 +299,7 @@ var MCPClient = class {
301
299
  const isAuthError = errorMessage.includes("401") || errorMessage.includes("Unauthorized") || errorMessage.includes("authorization_endpoint") || errorMessage.includes("token");
302
300
  const oauthConfig = this.oauthConfigs.get(serverKey);
303
301
  if (!retried && isAuthError && oauthConfig) {
304
- logger_default.debug(`[MCP] Auth error for ${serverKey}, attempting reactive token refresh`);
302
+ logger.debug(`[MCP] Auth error for ${serverKey}, attempting reactive token refresh`);
305
303
  retried = true;
306
304
  try {
307
305
  await this.performTokenRefresh(serverKey, oauthConfig);
@@ -312,10 +310,10 @@ var MCPClient = class {
312
310
  }
313
311
  } catch (refreshError) {
314
312
  const refreshErrorMsg = refreshError instanceof Error ? refreshError.message : String(refreshError);
315
- logger_default.error(`[MCP] Token refresh failed for ${serverKey}: ${refreshErrorMsg}`);
313
+ logger.error(`[MCP] Token refresh failed for ${serverKey}: ${refreshErrorMsg}`);
316
314
  }
317
315
  }
318
- if (this.isDebugEnabled) logger_default.error(`Error calling tool ${name}: ${errorMessage}`);
316
+ if (this.isDebugEnabled) logger.error(`Error calling tool ${name}: ${errorMessage}`);
319
317
  return {
320
318
  content: "",
321
319
  error: errorMessage
@@ -330,7 +328,7 @@ var MCPClient = class {
330
328
  if (transport) await transport.close();
331
329
  await client.close();
332
330
  } catch (error) {
333
- if (this.isDebugEnabled) logger_default.error(`Error during cleanup: ${error instanceof Error ? error.message : String(error)}`);
331
+ if (this.isDebugEnabled) logger.error(`Error during cleanup: ${error instanceof Error ? error.message : String(error)}`);
334
332
  }
335
333
  this.clients.clear();
336
334
  this.transports.clear();
@@ -340,7 +338,6 @@ var MCPClient = class {
340
338
  this.tokenRefreshPromise.clear();
341
339
  }
342
340
  };
343
-
344
341
  //#endregion
345
342
  //#region src/providers/openai/chat.ts
346
343
  var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
@@ -351,7 +348,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
351
348
  initializationPromise = null;
352
349
  loadedFunctionCallbacks = {};
353
350
  constructor(modelName, options = {}) {
354
- if (!OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelName)) logger_default.debug(`Using unknown chat model: ${modelName}`);
351
+ if (!OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelName)) logger.debug(`Using unknown chat model: ${modelName}`);
355
352
  super(modelName, options);
356
353
  this.config = options.config || {};
357
354
  if (this.config.mcp?.enabled) this.initializationPromise = this.initializeMCP();
@@ -380,8 +377,8 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
380
377
  if (splits[0] && isJavascriptFile(splits[0])) [filePath, functionName] = splits;
381
378
  }
382
379
  try {
383
- const resolvedPath = path.resolve(cliState_default.basePath || "", filePath);
384
- logger_default.debug(`Loading function from ${resolvedPath}${functionName ? `:${functionName}` : ""}`);
380
+ const resolvedPath = path.resolve(state.basePath || "", filePath);
381
+ logger.debug(`Loading function from ${resolvedPath}${functionName ? `:${functionName}` : ""}`);
385
382
  const requiredModule = await importModule(resolvedPath, functionName);
386
383
  if (typeof requiredModule === "function") return requiredModule;
387
384
  else if (requiredModule && typeof requiredModule === "object" && functionName && functionName in requiredModule) {
@@ -412,18 +409,18 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
412
409
  }
413
410
  }
414
411
  if (!callback) throw new Error(`No callback found for function '${functionName}'`);
415
- logger_default.debug(`Executing function '${functionName}' with args: ${args}`);
412
+ logger.debug(`Executing function '${functionName}' with args: ${args}`);
416
413
  const result = await callback(args);
417
414
  if (result === void 0 || result === null) return "";
418
415
  else if (typeof result === "object") try {
419
416
  return JSON.stringify(result);
420
417
  } catch (error) {
421
- logger_default.warn(`Error stringifying result from function '${functionName}': ${error}`);
418
+ logger.warn(`Error stringifying result from function '${functionName}': ${error}`);
422
419
  return String(result);
423
420
  }
424
421
  else return String(result);
425
422
  } catch (error) {
426
- logger_default.error(`Error executing function '${functionName}': ${error.message || String(error)}`);
423
+ logger.error(`Error executing function '${functionName}': ${error.message || String(error)}`);
427
424
  throw error;
428
425
  }
429
426
  }
@@ -583,7 +580,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
583
580
  };
584
581
  }
585
582
  } catch (err) {
586
- logger_default.error(`API call error: ${String(err)}`);
583
+ logger.error(`API call error: ${String(err)}`);
587
584
  await deleteFromCache?.();
588
585
  return {
589
586
  error: `API call error: ${String(err)}`,
@@ -639,7 +636,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
639
636
  if (config.response_format?.type === "json_schema" && typeof output === "string") try {
640
637
  output = JSON.parse(output);
641
638
  } catch (error) {
642
- logger_default.error(`Failed to parse JSON output: ${error}`);
639
+ logger.error(`Failed to parse JSON output: ${error}`);
643
640
  }
644
641
  if (reasoning && (this.config.showThinking ?? true)) output = `Thinking: ${reasoning}\n\n${output}`;
645
642
  const functionCalls = message.function_call ? [message.function_call] : message.tool_calls;
@@ -676,7 +673,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
676
673
  hasSuccessfulCallback = true;
677
674
  continue;
678
675
  } catch (error) {
679
- logger_default.debug(`MCP tool execution failed for ${functionName}: ${error}`);
676
+ logger.debug(`MCP tool execution failed for ${functionName}: ${error}`);
680
677
  results.push(`MCP Tool Error (${functionName}): ${error}`);
681
678
  hasSuccessfulCallback = true;
682
679
  continue;
@@ -687,7 +684,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
687
684
  results.push(functionResult);
688
685
  hasSuccessfulCallback = true;
689
686
  } catch (error) {
690
- logger_default.debug(`Function callback failed for ${functionName} with error ${error}, falling back to original output`);
687
+ logger.debug(`Function callback failed for ${functionName} with error ${error}, falling back to original output`);
691
688
  hasSuccessfulCallback = false;
692
689
  break;
693
690
  }
@@ -740,11 +737,14 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
740
737
  ...finishReason && { finishReason },
741
738
  cost: calculateOpenAICost(this.modelName, config, data.usage?.prompt_tokens, data.usage?.completion_tokens, data.usage?.audio_prompt_tokens, data.usage?.audio_completion_tokens),
742
739
  guardrails: { flagged: contentFiltered },
743
- metadata: { http: {
744
- status,
745
- statusText,
746
- headers: responseHeaders ?? {}
747
- } }
740
+ metadata: {
741
+ http: {
742
+ status,
743
+ statusText,
744
+ headers: responseHeaders ?? {}
745
+ },
746
+ ...data.choices.length > 1 && { choices: data.choices }
747
+ }
748
748
  };
749
749
  } catch (err) {
750
750
  await deleteFromCache?.();
@@ -759,7 +759,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
759
759
  }
760
760
  }
761
761
  };
762
-
763
762
  //#endregion
764
763
  export { normalizeFinishReason as i, MCPClient as n, FINISH_REASON_MAP as r, OpenAiChatCompletionProvider as t };
765
- //# sourceMappingURL=chat-DIywASPG.js.map
764
+
765
+ //# sourceMappingURL=chat-CRWNNq73.js.map
@@ -1,16 +1,15 @@
1
- import { _ as getEnvBool, b as getEnvString, i as logger_default, v as getEnvFloat, w as cliState_default, y as getEnvInt } from "./logger-w8Ozp0Td.js";
2
- import { r as importModule } from "./esm-rDtG_2rg.js";
3
- import { i as isJavascriptFile } from "./fileExtensions-ePDqouxn.js";
4
- import { d as maybeLoadToolsFromExternalFile, g as renderVarsInObject, l as maybeLoadFromExternalFileWithVars, u as maybeLoadResponseFormatFromExternalFile } from "./util-DiCePfDu.js";
5
- import { S as parseChatPrompt, T as transformTools, h as REQUEST_TIMEOUT_MS, w as transformToolChoice } from "./fetch-18MuNu9i.js";
6
- import { a as fetchWithCache } from "./cache-BLLayYEN.js";
7
- import { n as withGenAISpan } from "./genaiTracer-Ce19n68P.js";
8
- import { C as applyQueryParams, D as renderAuthVars, E as getOAuthTokenWithExpiry, O as TOKEN_REFRESH_BUFFER_MS, T as getAuthQueryParams, i as transformMCPToolsToOpenAi, w as getAuthHeaders } from "./transform-DMaxQwDx.js";
9
- import { t as OpenAiGenericProvider } from "./openai-Dz3surb_.js";
10
- import { a as calculateOpenAICost, c as getTokenUsage, t as OPENAI_CHAT_MODELS } from "./util-Cl0zfT3V.js";
1
+ import { _ as getEnvBool, b as getEnvString, i as logger, v as getEnvFloat, w as state, y as getEnvInt } from "./logger-CT3IKMKA.js";
2
+ import { r as importModule } from "./esm-Cd1AjG1D.js";
3
+ import { i as isJavascriptFile } from "./fileExtensions-DnqA1y9x.js";
4
+ import { d as maybeLoadToolsFromExternalFile, g as renderVarsInObject, l as maybeLoadFromExternalFileWithVars, u as maybeLoadResponseFormatFromExternalFile } from "./util-Dlz_Wvgm.js";
5
+ import { C as transformTools, S as transformToolChoice, b as parseChatPrompt, p as REQUEST_TIMEOUT_MS } from "./fetch-60Gzydls.js";
6
+ import { r as fetchWithCache } from "./cache-8XhNqPKW.js";
7
+ import { n as withGenAISpan } from "./genaiTracer-D3fD9dNV.js";
8
+ import { C as applyQueryParams, D as renderAuthVars, E as getOAuthTokenWithExpiry, T as getAuthQueryParams, i as transformMCPToolsToOpenAi, w as getAuthHeaders } from "./transform-DGLazrMm.js";
9
+ import { t as OpenAiGenericProvider } from "./openai-DElQ-fPX.js";
10
+ import { a as calculateOpenAICost, c as getTokenUsage, t as OPENAI_CHAT_MODELS } from "./util-Betm42rL.js";
11
11
  import path from "path";
12
12
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
13
-
14
13
  //#region src/util/finishReason.ts
15
14
  /**
16
15
  * Mapping of provider-specific finish/stop reasons to standardized OpenAI-compatible values.
@@ -79,7 +78,6 @@ function normalizeFinishReason(raw) {
79
78
  const key = trimmed.toLowerCase();
80
79
  return FINISH_REASON_MAP[key] ?? key;
81
80
  }
82
-
83
81
  //#endregion
84
82
  //#region src/providers/mcp/client.ts
85
83
  /**
@@ -128,7 +126,7 @@ var MCPClient = class {
128
126
  if (!this.config.enabled) return;
129
127
  const servers = this.config.servers || (this.config.server ? [this.config.server] : []);
130
128
  for (const server of servers) {
131
- logger_default.info(`connecting to server ${server.name || server.url || server.path || "default"}`);
129
+ logger.info(`connecting to server ${server.name || server.url || server.path || "default"}`);
132
130
  await this.connectToServer(server);
133
131
  }
134
132
  }
@@ -167,7 +165,7 @@ var MCPClient = class {
167
165
  let authHeaders = {};
168
166
  if (renderedServer.auth?.type === "oauth") {
169
167
  const oauthAuth = renderedServer.auth;
170
- logger_default.debug("[MCP] Fetching OAuth token");
168
+ logger.debug("[MCP] Fetching OAuth token");
171
169
  const { accessToken, expiresAt } = await getOAuthTokenWithExpiry(oauthAuth, server.url);
172
170
  authHeaders = { Authorization: `Bearer ${accessToken}` };
173
171
  this.oauthConfigs.set(serverKey, {
@@ -190,18 +188,18 @@ var MCPClient = class {
190
188
  const { StreamableHTTPClientTransport } = await import("@modelcontextprotocol/sdk/client/streamableHttp.js");
191
189
  transport = new StreamableHTTPClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
192
190
  await client.connect(transport, requestOptions);
193
- logger_default.debug("Connected using Streamable HTTP transport");
191
+ logger.debug("Connected using Streamable HTTP transport");
194
192
  } catch (error) {
195
- logger_default.debug(`Failed to connect to MCP server with Streamable HTTP transport ${serverKey}: ${error}`);
193
+ logger.debug(`Failed to connect to MCP server with Streamable HTTP transport ${serverKey}: ${error}`);
196
194
  const { SSEClientTransport } = await import("@modelcontextprotocol/sdk/client/sse.js");
197
195
  transport = new SSEClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
198
196
  await client.connect(transport, requestOptions);
199
- logger_default.debug("Connected using SSE transport");
197
+ logger.debug("Connected using SSE transport");
200
198
  }
201
199
  } else throw new Error("Either command+args or path or url must be specified for MCP server");
202
200
  if (this.config.pingOnConnect) try {
203
201
  await client.ping(requestOptions);
204
- logger_default.debug(`MCP server ${serverKey} ping successful`);
202
+ logger.debug(`MCP server ${serverKey} ping successful`);
205
203
  } catch (pingError) {
206
204
  const pingErrorMessage = pingError instanceof Error ? pingError.message : String(pingError);
207
205
  throw new Error(`MCP server ${serverKey} ping failed: ${pingErrorMessage}`);
@@ -220,7 +218,7 @@ var MCPClient = class {
220
218
  if (this.isVerboseEnabled) console.log(`Connected to MCP server ${serverKey} with tools:`, filteredTools.map((tool) => tool.name));
221
219
  } catch (error) {
222
220
  const errorMessage = error instanceof Error ? error.message : String(error);
223
- if (this.isDebugEnabled) logger_default.error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
221
+ if (this.isDebugEnabled) logger.error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
224
222
  throw new Error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
225
223
  }
226
224
  }
@@ -236,23 +234,23 @@ var MCPClient = class {
236
234
  if (!oauthConfig) return;
237
235
  const now = Date.now();
238
236
  const expiresAt = this.tokenExpiresAt.get(serverKey);
239
- if (expiresAt && now + TOKEN_REFRESH_BUFFER_MS < expiresAt) {
240
- logger_default.debug(`[MCP] Token for ${serverKey} still valid, no refresh needed`);
237
+ if (expiresAt && now + 6e4 < expiresAt) {
238
+ logger.debug(`[MCP] Token for ${serverKey} still valid, no refresh needed`);
241
239
  return;
242
240
  }
243
241
  const existingRefresh = this.tokenRefreshPromise.get(serverKey);
244
242
  if (existingRefresh) {
245
- logger_default.debug(`[MCP] Token refresh already in progress for ${serverKey}, waiting...`);
243
+ logger.debug(`[MCP] Token refresh already in progress for ${serverKey}, waiting...`);
246
244
  try {
247
245
  await existingRefresh;
248
246
  const newExpiresAt = this.tokenExpiresAt.get(serverKey);
249
- if (newExpiresAt && Date.now() + TOKEN_REFRESH_BUFFER_MS < newExpiresAt) return;
250
- logger_default.debug(`[MCP] Token expired while waiting for ${serverKey}, refreshing again...`);
247
+ if (newExpiresAt && Date.now() + 6e4 < newExpiresAt) return;
248
+ logger.debug(`[MCP] Token expired while waiting for ${serverKey}, refreshing again...`);
251
249
  } catch {
252
- logger_default.debug(`[MCP] Previous token refresh failed for ${serverKey}, retrying...`);
250
+ logger.debug(`[MCP] Previous token refresh failed for ${serverKey}, retrying...`);
253
251
  }
254
252
  }
255
- logger_default.debug(`[MCP] Proactively refreshing OAuth token for server ${serverKey}`);
253
+ logger.debug(`[MCP] Proactively refreshing OAuth token for server ${serverKey}`);
256
254
  const refreshPromise = this.performTokenRefresh(serverKey, oauthConfig);
257
255
  this.tokenRefreshPromise.set(serverKey, refreshPromise);
258
256
  try {
@@ -272,7 +270,7 @@ var MCPClient = class {
272
270
  this.clients.delete(serverKey);
273
271
  this.transports.delete(serverKey);
274
272
  await this.connectToServer(oauthConfig.serverConfig);
275
- logger_default.debug(`[MCP] Successfully refreshed OAuth token for server ${serverKey}`);
273
+ logger.debug(`[MCP] Successfully refreshed OAuth token for server ${serverKey}`);
276
274
  }
277
275
  async callTool(name, args) {
278
276
  const requestOptions = getEffectiveRequestOptions(this.config);
@@ -300,7 +298,7 @@ var MCPClient = class {
300
298
  const isAuthError = errorMessage.includes("401") || errorMessage.includes("Unauthorized") || errorMessage.includes("authorization_endpoint") || errorMessage.includes("token");
301
299
  const oauthConfig = this.oauthConfigs.get(serverKey);
302
300
  if (!retried && isAuthError && oauthConfig) {
303
- logger_default.debug(`[MCP] Auth error for ${serverKey}, attempting reactive token refresh`);
301
+ logger.debug(`[MCP] Auth error for ${serverKey}, attempting reactive token refresh`);
304
302
  retried = true;
305
303
  try {
306
304
  await this.performTokenRefresh(serverKey, oauthConfig);
@@ -311,10 +309,10 @@ var MCPClient = class {
311
309
  }
312
310
  } catch (refreshError) {
313
311
  const refreshErrorMsg = refreshError instanceof Error ? refreshError.message : String(refreshError);
314
- logger_default.error(`[MCP] Token refresh failed for ${serverKey}: ${refreshErrorMsg}`);
312
+ logger.error(`[MCP] Token refresh failed for ${serverKey}: ${refreshErrorMsg}`);
315
313
  }
316
314
  }
317
- if (this.isDebugEnabled) logger_default.error(`Error calling tool ${name}: ${errorMessage}`);
315
+ if (this.isDebugEnabled) logger.error(`Error calling tool ${name}: ${errorMessage}`);
318
316
  return {
319
317
  content: "",
320
318
  error: errorMessage
@@ -329,7 +327,7 @@ var MCPClient = class {
329
327
  if (transport) await transport.close();
330
328
  await client.close();
331
329
  } catch (error) {
332
- if (this.isDebugEnabled) logger_default.error(`Error during cleanup: ${error instanceof Error ? error.message : String(error)}`);
330
+ if (this.isDebugEnabled) logger.error(`Error during cleanup: ${error instanceof Error ? error.message : String(error)}`);
333
331
  }
334
332
  this.clients.clear();
335
333
  this.transports.clear();
@@ -339,7 +337,6 @@ var MCPClient = class {
339
337
  this.tokenRefreshPromise.clear();
340
338
  }
341
339
  };
342
-
343
340
  //#endregion
344
341
  //#region src/providers/openai/chat.ts
345
342
  var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
@@ -350,7 +347,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
350
347
  initializationPromise = null;
351
348
  loadedFunctionCallbacks = {};
352
349
  constructor(modelName, options = {}) {
353
- if (!OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelName)) logger_default.debug(`Using unknown chat model: ${modelName}`);
350
+ if (!OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelName)) logger.debug(`Using unknown chat model: ${modelName}`);
354
351
  super(modelName, options);
355
352
  this.config = options.config || {};
356
353
  if (this.config.mcp?.enabled) this.initializationPromise = this.initializeMCP();
@@ -379,8 +376,8 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
379
376
  if (splits[0] && isJavascriptFile(splits[0])) [filePath, functionName] = splits;
380
377
  }
381
378
  try {
382
- const resolvedPath = path.resolve(cliState_default.basePath || "", filePath);
383
- logger_default.debug(`Loading function from ${resolvedPath}${functionName ? `:${functionName}` : ""}`);
379
+ const resolvedPath = path.resolve(state.basePath || "", filePath);
380
+ logger.debug(`Loading function from ${resolvedPath}${functionName ? `:${functionName}` : ""}`);
384
381
  const requiredModule = await importModule(resolvedPath, functionName);
385
382
  if (typeof requiredModule === "function") return requiredModule;
386
383
  else if (requiredModule && typeof requiredModule === "object" && functionName && functionName in requiredModule) {
@@ -411,18 +408,18 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
411
408
  }
412
409
  }
413
410
  if (!callback) throw new Error(`No callback found for function '${functionName}'`);
414
- logger_default.debug(`Executing function '${functionName}' with args: ${args}`);
411
+ logger.debug(`Executing function '${functionName}' with args: ${args}`);
415
412
  const result = await callback(args);
416
413
  if (result === void 0 || result === null) return "";
417
414
  else if (typeof result === "object") try {
418
415
  return JSON.stringify(result);
419
416
  } catch (error) {
420
- logger_default.warn(`Error stringifying result from function '${functionName}': ${error}`);
417
+ logger.warn(`Error stringifying result from function '${functionName}': ${error}`);
421
418
  return String(result);
422
419
  }
423
420
  else return String(result);
424
421
  } catch (error) {
425
- logger_default.error(`Error executing function '${functionName}': ${error.message || String(error)}`);
422
+ logger.error(`Error executing function '${functionName}': ${error.message || String(error)}`);
426
423
  throw error;
427
424
  }
428
425
  }
@@ -582,7 +579,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
582
579
  };
583
580
  }
584
581
  } catch (err) {
585
- logger_default.error(`API call error: ${String(err)}`);
582
+ logger.error(`API call error: ${String(err)}`);
586
583
  await deleteFromCache?.();
587
584
  return {
588
585
  error: `API call error: ${String(err)}`,
@@ -638,7 +635,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
638
635
  if (config.response_format?.type === "json_schema" && typeof output === "string") try {
639
636
  output = JSON.parse(output);
640
637
  } catch (error) {
641
- logger_default.error(`Failed to parse JSON output: ${error}`);
638
+ logger.error(`Failed to parse JSON output: ${error}`);
642
639
  }
643
640
  if (reasoning && (this.config.showThinking ?? true)) output = `Thinking: ${reasoning}\n\n${output}`;
644
641
  const functionCalls = message.function_call ? [message.function_call] : message.tool_calls;
@@ -675,7 +672,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
675
672
  hasSuccessfulCallback = true;
676
673
  continue;
677
674
  } catch (error) {
678
- logger_default.debug(`MCP tool execution failed for ${functionName}: ${error}`);
675
+ logger.debug(`MCP tool execution failed for ${functionName}: ${error}`);
679
676
  results.push(`MCP Tool Error (${functionName}): ${error}`);
680
677
  hasSuccessfulCallback = true;
681
678
  continue;
@@ -686,7 +683,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
686
683
  results.push(functionResult);
687
684
  hasSuccessfulCallback = true;
688
685
  } catch (error) {
689
- logger_default.debug(`Function callback failed for ${functionName} with error ${error}, falling back to original output`);
686
+ logger.debug(`Function callback failed for ${functionName} with error ${error}, falling back to original output`);
690
687
  hasSuccessfulCallback = false;
691
688
  break;
692
689
  }
@@ -739,11 +736,14 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
739
736
  ...finishReason && { finishReason },
740
737
  cost: calculateOpenAICost(this.modelName, config, data.usage?.prompt_tokens, data.usage?.completion_tokens, data.usage?.audio_prompt_tokens, data.usage?.audio_completion_tokens),
741
738
  guardrails: { flagged: contentFiltered },
742
- metadata: { http: {
743
- status,
744
- statusText,
745
- headers: responseHeaders ?? {}
746
- } }
739
+ metadata: {
740
+ http: {
741
+ status,
742
+ statusText,
743
+ headers: responseHeaders ?? {}
744
+ },
745
+ ...data.choices.length > 1 && { choices: data.choices }
746
+ }
747
747
  };
748
748
  } catch (err) {
749
749
  await deleteFromCache?.();
@@ -758,7 +758,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
758
758
  }
759
759
  }
760
760
  };
761
-
762
761
  //#endregion
763
762
  export { normalizeFinishReason as i, MCPClient as n, FINISH_REASON_MAP as r, OpenAiChatCompletionProvider as t };
764
- //# sourceMappingURL=chat-C8Ei4f87.js.map
763
+
764
+ //# sourceMappingURL=chat-CznLWr_D.js.map