promptfoo 0.121.7 → 0.121.9

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 (399) hide show
  1. package/dist/src/{accounts-Ca7WIoPY.js → accounts-4Xa5fcHy.js} +17 -18
  2. package/dist/src/{accounts-DanM1wq_.js → accounts-BAajbKSh.js} +17 -18
  3. package/dist/src/{accounts-CjFnOPmb.js → accounts-Bw2qPqE-.js} +18 -19
  4. package/dist/src/{accounts-CmWzeD2d.cjs → accounts-DAcQXPwE.cjs} +20 -21
  5. package/dist/src/{agentic-utils-DvPWSUpb.cjs → agentic-utils-C8eEgGG-.cjs} +3 -3
  6. package/dist/src/{agentic-utils-TxUEMPYS.js → agentic-utils-CP1IXFz3.js} +3 -3
  7. package/dist/src/{agentic-utils-DDEGRV9v.js → agentic-utils-CUwa3AE9.js} +3 -3
  8. package/dist/src/{agentic-utils-CJ0j3fBi.js → agentic-utils-DYr-aM6d.js} +3 -3
  9. package/dist/src/{agents-CBgJvRkB.js → agents-Bb00M6i5.js} +5 -5
  10. package/dist/src/{agents-D-vDNFx4.js → agents-CASf5zRj.js} +5 -5
  11. package/dist/src/{agents-B4sRuXg3.cjs → agents-CD1wH9bm.cjs} +5 -5
  12. package/dist/src/{agents-CYn2n3QP.js → agents-CZOHU7Q8.js} +5 -5
  13. package/dist/src/{agents-LrHuQqr1.js → agents-D539zhHr.js} +5 -5
  14. package/dist/src/{agents-B8q7h_ek.js → agents-DpRJdGBZ.js} +5 -5
  15. package/dist/src/{agents-QGg76OF-.js → agents-gZTW-8nu.js} +5 -5
  16. package/dist/src/{agents-eHZ9nlgA.cjs → agents-hix6c0Sh.cjs} +5 -5
  17. package/dist/src/{aimlapi-eYv3a_DK.js → aimlapi-DRQSL-Z4.js} +7 -7
  18. package/dist/src/{aimlapi-CJEbQ0o6.js → aimlapi-Dc3LW5zI.js} +7 -7
  19. package/dist/src/{aimlapi-D5HXzZ0s.js → aimlapi-KNYnjjU6.js} +7 -7
  20. package/dist/src/{aimlapi-T6HGNxNe.cjs → aimlapi-gnrgd_Ej.cjs} +7 -7
  21. package/dist/src/app/assets/Report-Clw_YCp-.js +1 -0
  22. package/dist/src/app/assets/index-BQHaquKk.css +1 -0
  23. package/dist/src/app/assets/{index-BnT6P6sF.js → index-CW3XcQK7.js} +6 -6
  24. package/dist/src/app/index.html +2 -2
  25. package/dist/src/{audio-FnxbEnSE.cjs → audio-BgFTqfMO.cjs} +5 -5
  26. package/dist/src/{audio-CPMtV1yR.js → audio-Cslbgd4l.js} +5 -5
  27. package/dist/src/{audio-DyiebVB3.js → audio-DOI8kth4.js} +5 -5
  28. package/dist/src/{audio-BqnRvcWG.js → audio-hewMOCUU.js} +5 -5
  29. package/dist/src/{authoritativeMarkupInjection-DyAXAsSr.js → authoritativeMarkupInjection-DgE4u_Rl.js} +8 -8
  30. package/dist/src/{authoritativeMarkupInjection-QEQmFS83.js → authoritativeMarkupInjection-gpm2K-Rp.js} +8 -8
  31. package/dist/src/{authoritativeMarkupInjection-BZIywVjG.js → authoritativeMarkupInjection-nrC4mSPQ.js} +7 -7
  32. package/dist/src/{authoritativeMarkupInjection-F2gBw0lN.cjs → authoritativeMarkupInjection-wG4x0yP2.cjs} +8 -8
  33. package/dist/src/{base-CKLo890h.js → base-0yya4DsM.js} +3 -3
  34. package/dist/src/{base-Co80MMCi.js → base-BARAIJmp.js} +3 -3
  35. package/dist/src/{base-DGJW48uz.cjs → base-BE_pY-r5.cjs} +3 -3
  36. package/dist/src/{base-E9I8zXjz.js → base-CTWzNAH9.js} +3 -3
  37. package/dist/src/{bestOfN-BBsO41z4.js → bestOfN-CV7ZKPw2.js} +8 -8
  38. package/dist/src/{bestOfN-_kTi8Bxe.js → bestOfN-DeucA4QS.js} +9 -9
  39. package/dist/src/{bestOfN-CAwmg5UL.cjs → bestOfN-DxcpVUvj.cjs} +9 -9
  40. package/dist/src/{bestOfN-B3wNzjSB.js → bestOfN-Ilxc2hMv.js} +9 -9
  41. package/dist/src/{blobs-B0977K1O.cjs → blobs-5wbW7TbH.cjs} +3 -3
  42. package/dist/src/{blobs-Dwef1Ao1.js → blobs-BfIMflt0.js} +3 -3
  43. package/dist/src/{blobs-DODuTK-a.js → blobs-CA4gXarv.js} +3 -3
  44. package/dist/src/{blobs-CeFdPn_T.js → blobs-ikh75MtF.js} +3 -3
  45. package/dist/src/{cache-DpPWrkTE.js → cache-BuudGL4I.js} +5 -5
  46. package/dist/src/{cache-DIXbtkNO.js → cache-CT5D7d_A.js} +4 -4
  47. package/dist/src/cache-CrL5EYgi.js +3 -0
  48. package/dist/src/{cache-CPGUA4Yl.cjs → cache-WuIsgzMA.cjs} +4 -4
  49. package/dist/src/{cache-roFAE0cI.js → cache-x9llZxbx.js} +5 -5
  50. package/dist/src/{chat-GmlolEwo.js → chat-B5NqvkS_.js} +3 -3
  51. package/dist/src/{chat-DqUFcWI0.js → chat-B8lsx0A0.js} +11 -11
  52. package/dist/src/{chat-DG1wG4w0.cjs → chat-BBlR1h8c.cjs} +3 -3
  53. package/dist/src/{chat-Dabu84Br.js → chat-CCtIXezK.js} +11 -11
  54. package/dist/src/{chat-TP8Qifkh.js → chat-CZOhFlzV.js} +3 -3
  55. package/dist/src/{chat-CUCorGiL.js → chat-CvQMD-mp.js} +11 -11
  56. package/dist/src/{chat-iwaM5UTQ.js → chat-Dh6mb5OL.js} +3 -3
  57. package/dist/src/{chat-DxTDQ83C.cjs → chat-DkitQHdt.cjs} +11 -11
  58. package/dist/src/{chatkit-fARZwEfV.js → chatkit-55cAEQb2.js} +4 -4
  59. package/dist/src/{chatkit-lb6FK02w.js → chatkit-B-uz3x63.js} +4 -4
  60. package/dist/src/{chatkit-B6DWi70Q.js → chatkit-Dxp6KO70.js} +4 -4
  61. package/dist/src/{chatkit-BYveR48_.cjs → chatkit-jEtokOVZ.cjs} +4 -4
  62. package/dist/src/{claude-agent-sdk-D5Jl0SDh.js → claude-agent-sdk-BVfdeahc.js} +9 -7
  63. package/dist/src/{claude-agent-sdk-DH416NBD.cjs → claude-agent-sdk-C0p-RhcW.cjs} +9 -7
  64. package/dist/src/{claude-agent-sdk-x1XJ1-pU.js → claude-agent-sdk-DB99Npst.js} +9 -7
  65. package/dist/src/{claude-agent-sdk-BQNp_y-F.js → claude-agent-sdk-DHyrhDUu.js} +9 -7
  66. package/dist/src/cloud-BA4aLhk0.js +3 -0
  67. package/dist/src/{cloud-D3DiFqH6.js → cloud-BbAl8dyj.js} +3 -3
  68. package/dist/src/{cloudflare-ai-RFSojyXG.js → cloudflare-ai-ChBxkojW.js} +5 -5
  69. package/dist/src/{cloudflare-ai-r4tbYmWU.js → cloudflare-ai-DDmTDys_.js} +5 -5
  70. package/dist/src/{cloudflare-ai-CEAW-xQa.cjs → cloudflare-ai-DPlNiC6I.cjs} +5 -5
  71. package/dist/src/{cloudflare-ai-B6NVI3ax.js → cloudflare-ai-UsZe6ndv.js} +5 -5
  72. package/dist/src/{cloudflare-gateway-TJMLBj6I.cjs → cloudflare-gateway-7b-lEtrb.cjs} +4 -4
  73. package/dist/src/{cloudflare-gateway-BaZ4insB.js → cloudflare-gateway-Bq5cqiV8.js} +4 -4
  74. package/dist/src/{cloudflare-gateway-CF-Vb-2Z.js → cloudflare-gateway-C0N-5s62.js} +4 -4
  75. package/dist/src/{cloudflare-gateway-BCkLouto.js → cloudflare-gateway-D5fm-QvC.js} +4 -4
  76. package/dist/src/{codex-app-server-DIXZ230V.js → codex-app-server-BG5Aphvl.js} +20 -5
  77. package/dist/src/{codex-app-server-B8KHEiF4.js → codex-app-server-BnPMlcjl.js} +20 -5
  78. package/dist/src/{codex-app-server-Dd22dC_N.js → codex-app-server-D6gbvJFw.js} +20 -5
  79. package/dist/src/{codex-app-server-CnrLBCeA.cjs → codex-app-server-Dl6BLKJn.cjs} +20 -5
  80. package/dist/src/{codex-sdk-B6Wah8Pa.js → codex-sdk-BnRTWAhS.js} +20 -8
  81. package/dist/src/codex-sdk-CChw5CYU.js +3 -0
  82. package/dist/src/{codex-sdk-CFF6gUyi.cjs → codex-sdk-Cy1pEjsQ.cjs} +20 -8
  83. package/dist/src/{codex-sdk-CmQABzV3.js → codex-sdk-D86dT4XV.js} +20 -8
  84. package/dist/src/{codex-sdk-D2d54RL8.js → codex-sdk-mgUqOG2C.js} +20 -8
  85. package/dist/src/{cometapi-CtzNCHKu.js → cometapi-CkOfr271.js} +8 -8
  86. package/dist/src/{cometapi-DHCDlQUI.cjs → cometapi-EB-Is7jj.cjs} +8 -8
  87. package/dist/src/{cometapi-OBILPLlu.js → cometapi-gvPhrXNM.js} +8 -8
  88. package/dist/src/{cometapi-Bu9B8NUY.js → cometapi-sBbQmdfk.js} +8 -8
  89. package/dist/src/{completion-DZNxcyfG.js → completion-BoWiFP-D.js} +7 -7
  90. package/dist/src/{completion-CO2e1_62.js → completion-C99GFqQE.js} +7 -7
  91. package/dist/src/{completion-sNvCLTAP.js → completion-CUtdijfr.js} +7 -7
  92. package/dist/src/{completion-CSYfl2cd.cjs → completion-CkRVjadz.cjs} +7 -7
  93. package/dist/src/{crescendo-QiaSLW0d.js → crescendo-B4EiUJ-M.js} +43 -22
  94. package/dist/src/{crescendo-BXEJK_bi.cjs → crescendo-BAN6NuWV.cjs} +45 -24
  95. package/dist/src/{crescendo-CU_Y2i-m.js → crescendo-CYzxmaSJ.js} +45 -24
  96. package/dist/src/{crescendo-J1Xx4_zb.js → crescendo-CrsXyaL0.js} +45 -24
  97. package/dist/src/{custom-BJfP00Bh.js → custom-C5K9QFs1.js} +13 -13
  98. package/dist/src/{custom-Cqia7M0D.cjs → custom-D1UjT5I5.cjs} +13 -13
  99. package/dist/src/{custom-CZVn-1-r.js → custom-DnMZvgB6.js} +13 -13
  100. package/dist/src/{custom-notggYVl.js → custom-EWterxkb.js} +11 -11
  101. package/dist/src/{docker-DdJQBxK9.js → docker-BFQc9ccU.js} +6 -6
  102. package/dist/src/{docker-D06JUoe2.cjs → docker-BMfsGXyn.cjs} +6 -6
  103. package/dist/src/{docker-4D1eL6Gq.js → docker-ChD4-eri.js} +6 -6
  104. package/dist/src/{docker-BBv1WUDu.js → docker-mZF5j6cW.js} +6 -6
  105. package/dist/src/{embedding-BbrwopfX.cjs → embedding-BMqFDnLI.cjs} +7 -7
  106. package/dist/src/{embedding--UZVe4_7.js → embedding-BQBXSWgy.js} +7 -7
  107. package/dist/src/{embedding-Bi3rxrZF.js → embedding-BwTB3YDt.js} +7 -7
  108. package/dist/src/{embedding-C251p1-8.js → embedding-cd5oPBkX.js} +7 -7
  109. package/dist/src/{esm-B6whoAcf.js → esm-CGER3lko.js} +2 -2
  110. package/dist/src/{esm-Bexx2PFc.js → esm-CYMWMaSj.js} +2 -2
  111. package/dist/src/{esm-BTK1W7lG.js → esm-C_yrt93A.js} +2 -2
  112. package/dist/src/{esm-BIKakvNa.cjs → esm-vv4rR-Dp.cjs} +2 -2
  113. package/dist/src/{eval-0VRANImH.js → eval-DmGWplIN.js} +10 -10
  114. package/dist/src/{eval-DscR5iOM.js → eval-N_VV5NZg.js} +1 -1
  115. package/dist/src/{evalResult-CvtS8h8u.cjs → evalResult-BZld6I3I.cjs} +6 -6
  116. package/dist/src/{evalResult-eUkJv9Ko.js → evalResult-ByGP9zuP.js} +7 -7
  117. package/dist/src/evalResult-CPPINYHK.js +3 -0
  118. package/dist/src/{evalResult-2RRJvFyB.js → evalResult-gEmQRANj.js} +6 -6
  119. package/dist/src/evaluator-B01pCdUY.js +3 -0
  120. package/dist/src/{evaluator-DRoiYB2q.js → evaluator-BpaUYhLY.js} +37 -37
  121. package/dist/src/{evaluatorHelpers-CRqTvSux.cjs → evaluatorHelpers-2gpZ9Q_f.cjs} +10 -10
  122. package/dist/src/{evaluatorHelpers-DuqFFfq7.js → evaluatorHelpers-C8C8WQTv.js} +10 -10
  123. package/dist/src/{evaluatorHelpers-BsYP_muT.js → evaluatorHelpers-DDG44JeI.js} +10 -10
  124. package/dist/src/{extractor-CxRtnaHl.js → extractor-Bjz9sdTQ.js} +6 -6
  125. package/dist/src/{extractor-CIW3iN-b.js → extractor-CtadTcJm.js} +6 -6
  126. package/dist/src/{extractor-BR7XAzAL.js → extractor-DAnauX2V.js} +6 -6
  127. package/dist/src/{extractor-BdxEtt3J.cjs → extractor-nyUwvU2U.cjs} +6 -6
  128. package/dist/src/{fetch-Dw4XZHjj.cjs → fetch-B2HvaVUc.cjs} +14 -12
  129. package/dist/src/{fetch-DXUnXkVU.js → fetch-C59QM4cf.js} +10 -8
  130. package/dist/src/{fetch-BufrQtvR.js → fetch-CBe8pU8Q.js} +10 -8
  131. package/dist/src/{fetch-It34O8Ur.js → fetch-CHJu2KON.js} +9 -7
  132. package/dist/src/fetch-D_XnRfBV.js +3 -0
  133. package/dist/src/{goat-Ckd3q3AY.js → goat-0HwO0EB2.js} +22 -21
  134. package/dist/src/{goat-una6pZGP.cjs → goat-7wQgRcT4.cjs} +22 -21
  135. package/dist/src/{goat-ghadEDdy.js → goat-BNX0lOFx.js} +20 -19
  136. package/dist/src/{goat-Qgurm-NP.js → goat-BOVnOl5S.js} +22 -21
  137. package/dist/src/{graders-BGP99PdK.js → graders-BnO-xoa-.js} +30 -30
  138. package/dist/src/{graders-ClrU2fnd.cjs → graders-CQv1GT5Q.cjs} +29 -29
  139. package/dist/src/graders-D4vc1PFi.js +3 -0
  140. package/dist/src/{graders-BX0f2tvS.js → graders-GNRQ1357.js} +29 -29
  141. package/dist/src/{graders-C0nXU_ZP.js → graders-k8qmhrPu.js} +31 -31
  142. package/dist/src/{hydra-BSNZZm2M.js → hydra-BrgGALmB.js} +38 -20
  143. package/dist/src/{hydra-BxdG4nkg.js → hydra-C38LOovb.js} +36 -18
  144. package/dist/src/{hydra-DE4xWwyc.js → hydra-CXc0p63W.js} +38 -20
  145. package/dist/src/{hydra-DrJttnvw.cjs → hydra-Hdj65j0k.cjs} +38 -20
  146. package/dist/src/{image-B_fPIwdg.js → image-6u3WZ_7H.js} +5 -5
  147. package/dist/src/{image-BN-hjLL9.js → image-B6hCz0z3.js} +5 -5
  148. package/dist/src/{image-BvUAW344.js → image-CgmaPlV_.js} +7 -7
  149. package/dist/src/{image-QzmydkiG.js → image-DXbwwL-r.js} +5 -5
  150. package/dist/src/{image-X0oY4350.cjs → image-Daa_X_YB.cjs} +7 -7
  151. package/dist/src/{image-Cvjwx1uY.js → image-DmC5qwQx.js} +7 -7
  152. package/dist/src/{image-DfVCGPbI.cjs → image-TY6FsHmn.cjs} +5 -5
  153. package/dist/src/{image-B4oBtu6J.js → image-V0-pYiBI.js} +7 -7
  154. package/dist/src/index.cjs +137 -140
  155. package/dist/src/index.d.cts +13 -0
  156. package/dist/src/index.d.ts +13 -0
  157. package/dist/src/index.js +137 -140
  158. package/dist/src/{indirectWebPwn-BJ22AbQa.cjs → indirectWebPwn-04ziKbly.cjs} +5 -5
  159. package/dist/src/{indirectWebPwn-tNx9OZ35.js → indirectWebPwn-1gHqaL91.js} +5 -5
  160. package/dist/src/{indirectWebPwn-DBQhOjoD.js → indirectWebPwn-B0CAtvZJ.js} +6 -6
  161. package/dist/src/{indirectWebPwn-uyWdHx04.js → indirectWebPwn-BXUoJl4I.js} +5 -5
  162. package/dist/src/{indirectWebPwn-02ZIghCS.js → indirectWebPwn-Biy9I52D.js} +6 -6
  163. package/dist/src/{indirectWebPwn-OsXnKejv.js → indirectWebPwn-BoPqjm9W.js} +6 -6
  164. package/dist/src/{indirectWebPwn-CbjUG0rh.js → indirectWebPwn-DRYpRTx6.js} +5 -5
  165. package/dist/src/{indirectWebPwn-CfQJt3gk.cjs → indirectWebPwn-MiCFTfzI.cjs} +6 -6
  166. package/dist/src/{inputVariables-DUGMb9Ka.js → inputVariables-B7cylqzM.js} +2 -2
  167. package/dist/src/{inputVariables-Dq9W-Z3a.cjs → inputVariables-D5K2vTp4.cjs} +2 -2
  168. package/dist/src/{inputVariables-B0qUChbV.js → inputVariables-DpOsOnzU.js} +3 -3
  169. package/dist/src/{inputVariables-DXFdi7AI.js → inputVariables-qJmuSN5i.js} +3 -3
  170. package/dist/src/{interactiveCheck-C4QlIuoR.js → interactiveCheck-BLnDrfjg.js} +2 -2
  171. package/dist/src/{iterative-FTS4Bz67.js → iterative-BDRx_noa.js} +29 -19
  172. package/dist/src/{iterative-CpU6i2As.js → iterative-BZxrxnoh.js} +27 -17
  173. package/dist/src/{iterative-DQBuWM-j.cjs → iterative-KSovqu_j.cjs} +29 -19
  174. package/dist/src/{iterative-DJQEQpG3.js → iterative-vxBU1IPs.js} +29 -19
  175. package/dist/src/{iterativeImage-Doz8mgxF.js → iterativeImage-BZuMd4x3.js} +7 -7
  176. package/dist/src/{iterativeImage-BUABMVOA.js → iterativeImage-DUWLmyVM.js} +6 -6
  177. package/dist/src/{iterativeImage-ByFWkxax.cjs → iterativeImage-DqNKoaIl.cjs} +7 -7
  178. package/dist/src/{iterativeImage-BzUapOUi.js → iterativeImage-DwIp1WGB.js} +7 -7
  179. package/dist/src/{iterativeMeta-CSS8M6Ds.cjs → iterativeMeta-9gsvnsl1.cjs} +39 -19
  180. package/dist/src/{iterativeMeta-B3YiAOc8.js → iterativeMeta-AgI6UEh6.js} +39 -19
  181. package/dist/src/{iterativeMeta-C7APE_P1.js → iterativeMeta-BbcVN5nQ.js} +39 -19
  182. package/dist/src/{iterativeMeta-DgoQ7bLh.js → iterativeMeta-BcF8LsFk.js} +37 -17
  183. package/dist/src/{iterativeTree-B5zxBBSW.js → iterativeTree-5TLHU9Kx.js} +81 -31
  184. package/dist/src/{iterativeTree-CPMF10ve.cjs → iterativeTree-7XyY_zdo.cjs} +81 -31
  185. package/dist/src/{iterativeTree-DvZ7GBwt.js → iterativeTree-CnHx_kPu.js} +81 -31
  186. package/dist/src/{iterativeTree-CNyIk0Yn.js → iterativeTree-D9I3UJ0P.js} +79 -29
  187. package/dist/src/{knowledgeBase-CkMljjdg.js → knowledgeBase-BGbDBwr5.js} +5 -5
  188. package/dist/src/{knowledgeBase-Bi_8sV-H.js → knowledgeBase-BzfBwPyQ.js} +5 -5
  189. package/dist/src/{knowledgeBase-BadkINlJ.js → knowledgeBase-C_MSTwDt.js} +5 -5
  190. package/dist/src/{knowledgeBase-DUh34xba.cjs → knowledgeBase-DSVK_YTi.cjs} +5 -5
  191. package/dist/src/{litellm-BXyn5kZK.js → litellm-CRTmskqC.js} +5 -5
  192. package/dist/src/{litellm-BKBo0jpC.js → litellm-Ch4E-r4b.js} +5 -5
  193. package/dist/src/{litellm-CNcfbCfa.js → litellm-DNnk7802.js} +5 -5
  194. package/dist/src/{litellm-CtAr7bKG.cjs → litellm-jA4_p8mv.cjs} +5 -5
  195. package/dist/src/{logger-KD8JjCRJ.js → logger-BjYLHvGm.js} +56 -25
  196. package/dist/src/{logger-cfNpzI4o.cjs → logger-Cm0Nb8YX.cjs} +34 -3
  197. package/dist/src/{logger-Ct2S6Yx-.js → logger-Cs0I2v_y.js} +34 -3
  198. package/dist/src/{logger-BbY6ypFL.js → logger-h-eiS4iv.js} +34 -3
  199. package/dist/src/{luma-ray-D3FUc2K3.cjs → luma-ray-BCkN79tz.cjs} +5 -5
  200. package/dist/src/{luma-ray-CR5TSpp4.js → luma-ray-BqVizUQY.js} +5 -5
  201. package/dist/src/{luma-ray-BMX1iEB6.js → luma-ray-CD7rd6KW.js} +5 -5
  202. package/dist/src/{luma-ray-OEMmS1RB.js → luma-ray-DLWLjDCa.js} +5 -5
  203. package/dist/src/main.js +143 -146
  204. package/dist/src/{memoryPoisoning-Dp-btinn.cjs → memoryPoisoning-BXDi4XCK.cjs} +8 -8
  205. package/dist/src/{memoryPoisoning-CM83NWYl.js → memoryPoisoning-D-V4yXjj.js} +8 -8
  206. package/dist/src/{memoryPoisoning-D8h9gXJF.js → memoryPoisoning-PrsT7Zh2.js} +8 -8
  207. package/dist/src/{memoryPoisoning-cLuCoTuJ.js → memoryPoisoning-ZUwCLvEn.js} +8 -8
  208. package/dist/src/{messages-DBPir0TQ.cjs → messages-BSFLFXIO.cjs} +8 -8
  209. package/dist/src/{messages-BabO-cX8.js → messages-C5qBfONg.js} +8 -8
  210. package/dist/src/{messages-DGUlSNU7.js → messages-CQoK4jHx.js} +8 -8
  211. package/dist/src/{messages-vsE_-Lv0.js → messages-Dy5vvc3H.js} +8 -8
  212. package/dist/src/{mischievousUser-olGgHIVR.cjs → mischievousUser-B4_YRWqu.cjs} +5 -5
  213. package/dist/src/{mischievousUser-frFYKxu6.js → mischievousUser-BoZy3Fry.js} +5 -5
  214. package/dist/src/{mischievousUser-BUOP9W5r.js → mischievousUser-CjJ9ZEuw.js} +5 -5
  215. package/dist/src/{mischievousUser-0l8GD7Dp.js → mischievousUser-CrMXlOUj.js} +5 -5
  216. package/dist/src/{modelslab-EyDczZ5A.js → modelslab-B72XbAlR.js} +8 -8
  217. package/dist/src/{modelslab-Dzst7VTU.js → modelslab-Bw-46LmW.js} +8 -8
  218. package/dist/src/{modelslab-Cogmu4mG.js → modelslab-CJ0zQdDH.js} +8 -8
  219. package/dist/src/{modelslab-CNV5bMSk.cjs → modelslab-LXFLCD-O.cjs} +8 -8
  220. package/dist/src/{nova-reel-CjJRxI1X.cjs → nova-reel-D0k0-k8Y.cjs} +5 -5
  221. package/dist/src/{nova-reel-C4eUJGse.js → nova-reel-DItvBa6z.js} +5 -5
  222. package/dist/src/{nova-reel-BGPNBOMS.js → nova-reel-DN7gTJzd.js} +5 -5
  223. package/dist/src/{nova-reel-B_5NKFu1.js → nova-reel-DRLvlFOH.js} +5 -5
  224. package/dist/src/{nova-sonic-BNGmgfFz.js → nova-sonic-BeAjEzkG.js} +3 -3
  225. package/dist/src/{nova-sonic-CrV0iaY_.js → nova-sonic-DB7LzcCY.js} +3 -3
  226. package/dist/src/{nova-sonic-DuOG9Aun.cjs → nova-sonic-DfLkPbkF.cjs} +3 -3
  227. package/dist/src/{nova-sonic-ChPlh5na.js → nova-sonic-kzIVxZDb.js} +3 -3
  228. package/dist/src/{openai-BMHD2Huo.js → openai-Bfbg6L4c.js} +2 -2
  229. package/dist/src/{openai-C3uXv8wS.cjs → openai-CCaz18I4.cjs} +2 -2
  230. package/dist/src/{openai-CJrsh9n4.js → openai-CJOpg_dA.js} +2 -2
  231. package/dist/src/{openai-zgwBb4Ff.js → openai-uRacy72N.js} +2 -2
  232. package/dist/src/{openclaw-zIJAsz3P.js → openclaw-2Y9Ukt9Y.js} +9 -9
  233. package/dist/src/{openclaw-CF7fMido.js → openclaw-BdnuiqBG.js} +9 -9
  234. package/dist/src/{openclaw-Dphc01BY.cjs → openclaw-D54hA9Fe.cjs} +9 -9
  235. package/dist/src/{openclaw-BIHlu_36.js → openclaw-DRjsDCSS.js} +9 -9
  236. package/dist/src/{opencode-sdk-B3vlPLsp.js → opencode-sdk-2su-bzyz.js} +38 -9
  237. package/dist/src/{opencode-sdk-DoY6GbWw.cjs → opencode-sdk-BRkqgOOQ.cjs} +38 -9
  238. package/dist/src/{opencode-sdk-D05JSgMQ.js → opencode-sdk-CFY-1bkH.js} +38 -9
  239. package/dist/src/{opencode-sdk-sRKYHGoI.js → opencode-sdk-D-tRQJ9s.js} +38 -9
  240. package/dist/src/{otlpReceiver-B2eaKC8C.js → otlpReceiver-BkB7tsTT.js} +3 -3
  241. package/dist/src/{otlpReceiver--gTpSagc.js → otlpReceiver-BqJYGC-M.js} +4 -4
  242. package/dist/src/{otlpReceiver-BXjcRqAM.js → otlpReceiver-CRwU2egH.js} +4 -4
  243. package/dist/src/{otlpReceiver-CvJdBGSc.cjs → otlpReceiver-DOl5S07u.cjs} +4 -4
  244. package/dist/src/{packageParser--MWTSrPW.js → packageParser-B3bpKHK4.js} +2 -2
  245. package/dist/src/{packageParser-hwwSGnAZ.js → packageParser-CZdMKLBh.js} +2 -2
  246. package/dist/src/{packageParser-CgE-ziRo.js → packageParser-D7YWfcSe.js} +2 -2
  247. package/dist/src/{packageParser-QoCS1FMl.cjs → packageParser-DR054ceU.cjs} +2 -2
  248. package/dist/src/{promptLength-B9nZEfO6.js → promptLength-5B4_P93z.js} +2 -2
  249. package/dist/src/{promptLength-BbBbDHNj.cjs → promptLength-CAcg7BmO.cjs} +2 -2
  250. package/dist/src/{promptLength-4X-Wd8PG.js → promptLength-PkjlYFx0.js} +2 -2
  251. package/dist/src/{promptLength-0qIHyhA5.js → promptLength-ho3wbst6.js} +2 -2
  252. package/dist/src/{promptfoo-BDrfT30-.js → promptfoo-CEsoPlBa.js} +67 -10
  253. package/dist/src/{promptfoo-b-baRMj-.cjs → promptfoo-DAXBmrE6.cjs} +96 -9
  254. package/dist/src/{promptfoo-Cm4hiy1Y.js → promptfoo-DVKqidd8.js} +67 -10
  255. package/dist/src/{promptfoo-Rjp-MeBb.js → promptfoo-wxe28-q9.js} +67 -10
  256. package/dist/src/{providerRegistry-DHcFiVWX.js → providerRegistry-Bf4tRLgu.js} +2 -2
  257. package/dist/src/{providerRegistry-CZO_w7ue.cjs → providerRegistry-DKbi2EbP.cjs} +2 -2
  258. package/dist/src/{providerRegistry-ReCd0sFa.js → providerRegistry-DLeG-xXn.js} +2 -2
  259. package/dist/src/{providerRegistry-1gB5vtzQ.js → providerRegistry-v8Wa3f9z.js} +2 -2
  260. package/dist/src/{providers-B9KzWxAX.js → providers-CYBHjFEg.js} +178 -126
  261. package/dist/src/{providers-BCCz6_IX.js → providers-DDLQc0tl.js} +177 -125
  262. package/dist/src/{providers-BDVVIQM6.cjs → providers-DP1CDgd5.cjs} +176 -124
  263. package/dist/src/{providers-DVYRZP4E.js → providers-DTPwadhk.js} +176 -124
  264. package/dist/src/{providers-BYAn82cf.js → providers-DvBFcsXi.js} +1 -1
  265. package/dist/src/{pythonUtils-Cokhluq3.cjs → pythonUtils-BjuymNdM.cjs} +3 -3
  266. package/dist/src/{pythonUtils-D0BYebvX.js → pythonUtils-C4Wnz6Q7.js} +3 -3
  267. package/dist/src/{pythonUtils-CLCgQ9tt.js → pythonUtils-CBe7VV6f.js} +3 -3
  268. package/dist/src/{pythonUtils-CgYxeSmO.js → pythonUtils-CLAoc6jg.js} +3 -3
  269. package/dist/src/{quiverai-CdTWPe-A.js → quiverai-B6ebiUKf.js} +6 -6
  270. package/dist/src/{quiverai-Cv7rJKDz.js → quiverai-BG7dvOQc.js} +6 -6
  271. package/dist/src/{quiverai-BAp6iTZD.cjs → quiverai-DH6SMaxD.cjs} +6 -6
  272. package/dist/src/{quiverai-BvIhI_0l.js → quiverai-DHNIAUfS.js} +6 -6
  273. package/dist/src/{registry-BUJrgjwv.js → registry-BKlwRYvr.js} +14 -14
  274. package/dist/src/{registry-KCVF1CFC.cjs → registry-CQHRTGYs.cjs} +14 -14
  275. package/dist/src/{registry-Dp5EqoXc.js → registry-Eiv-QeUm.js} +14 -14
  276. package/dist/src/{registry-DXm1t_x0.js → registry-qNoxbVEb.js} +14 -14
  277. package/dist/src/{remoteGeneration-DS9N3pgB.cjs → remoteGeneration-CD3c_rzc.cjs} +6 -6
  278. package/dist/src/{remoteGeneration-DsaSwmG2.js → remoteGeneration-CoxtxLvB.js} +6 -6
  279. package/dist/src/{remoteGeneration-B1_XsKXU.js → remoteGeneration-DW6mPZnO.js} +6 -6
  280. package/dist/src/{remoteGeneration-COpWcmWd.js → remoteGeneration-DvWEm3yi.js} +6 -6
  281. package/dist/src/{render-_6ur1fhE.js → render-BoxrvB84.js} +2 -2
  282. package/dist/src/{render-DFfDeYUK.js → render-CTZQAINJ.js} +2 -2
  283. package/dist/src/{render-BNTrbmBw.cjs → render-DJ4yipCD.cjs} +2 -2
  284. package/dist/src/{render-DznWrxGO.js → render-MiyTvDY4.js} +2 -2
  285. package/dist/src/{render-CSP99NLm.js → render-jE6RKVgk.js} +2 -2
  286. package/dist/src/{responses-1UFFF9N_.cjs → responses-Bs2_3zyr.cjs} +14 -10
  287. package/dist/src/{responses-B3W2JvOQ.js → responses-C0yU3fO6.js} +14 -10
  288. package/dist/src/{responses-URRzV8qE.js → responses-C2vhwf8F.js} +14 -10
  289. package/dist/src/{responses-B6ktc3Ra.js → responses-pvlY3oYx.js} +14 -10
  290. package/dist/src/{rubyUtils-CnlW8AYb.js → rubyUtils-AvgsD_QH.js} +3 -3
  291. package/dist/src/{rubyUtils-CqUWBZAt.cjs → rubyUtils-BEqeZynS.cjs} +3 -3
  292. package/dist/src/{rubyUtils-CXlFM2rR.js → rubyUtils-C-sxXgGT.js} +3 -3
  293. package/dist/src/{rubyUtils-DdGojpfv.js → rubyUtils-DFzPvVD4.js} +3 -3
  294. package/dist/src/rubyUtils-DfYaGbxe.js +3 -0
  295. package/dist/src/{runtimeTransform-DigbjU1r.js → runtimeTransform-BmhEztlx.js} +2 -2
  296. package/dist/src/{runtimeTransform-BJOpL9Yc.js → runtimeTransform-Bw9Tttpp.js} +2 -2
  297. package/dist/src/{runtimeTransform-ON3YYILw.cjs → runtimeTransform-DJEknTZQ.cjs} +2 -2
  298. package/dist/src/{runtimeTransform-Dgh_D7DU.js → runtimeTransform-s14J7yxm.js} +2 -2
  299. package/dist/src/{sagemaker-yr1QKeBs.js → sagemaker-C8NJAT8D.js} +11 -11
  300. package/dist/src/{sagemaker-vhtSV7JI.js → sagemaker-DlajLLgJ.js} +11 -11
  301. package/dist/src/{sagemaker-CujrzP1a.js → sagemaker-PgIzjxMt.js} +11 -11
  302. package/dist/src/{sagemaker-DzffAqo_.cjs → sagemaker-hwPXLGI4.cjs} +11 -11
  303. package/dist/src/{scanner-DS0109SS.js → scanner-B3DPvw5u.js} +6 -6
  304. package/dist/src/server/index.js +145 -148
  305. package/dist/src/{server-DhMHosWj.js → server-4wx571OM.js} +6 -6
  306. package/dist/src/{server-Ddp8GNMp.js → server-8in_Vrrf.js} +6 -6
  307. package/dist/src/server-BHd6SQYX.js +3 -0
  308. package/dist/src/{server-CMJD10J4.js → server-pMTgWs3M.js} +4 -4
  309. package/dist/src/{server-B8rqV126.cjs → server-yHhoBx98.cjs} +4 -4
  310. package/dist/src/{shared-D6IjElRI.js → shared-BF25a7ms.js} +12 -12
  311. package/dist/src/{shared-WkgnDkcg.cjs → shared-DlmtkptR.cjs} +12 -12
  312. package/dist/src/{shared-9WHQ1oNE.js → shared-DsbObxvy.js} +12 -12
  313. package/dist/src/{shared-7pmVZLNO.js → shared-yBQATkD5.js} +13 -13
  314. package/dist/src/{signal-CSurUUyV.js → signal-CRrWj2xI.js} +3 -3
  315. package/dist/src/{simulatedUser-Cu601Dd4.cjs → simulatedUser-9A3YPDh2.cjs} +7 -7
  316. package/dist/src/{simulatedUser-C9aQObBI.js → simulatedUser-CbZZV7UQ.js} +7 -7
  317. package/dist/src/{simulatedUser-U_qAHnuB.js → simulatedUser-DdcsTBuS.js} +7 -7
  318. package/dist/src/{simulatedUser-p3tACcmw.js → simulatedUser-LKk31Iov.js} +7 -7
  319. package/dist/src/{slack-Bapo-7_8.js → slack-CWxUAo6N.js} +2 -2
  320. package/dist/src/{slack-DMC1QVEg.cjs → slack-CtMQnlyy.cjs} +2 -2
  321. package/dist/src/{slack-DTEFhrMn.js → slack-DrcMAkvd.js} +2 -2
  322. package/dist/src/{slack-k-_CP84Q.js → slack-chzmaYU3.js} +2 -2
  323. package/dist/src/{storage-BU4qcnOb.js → storage-B9lg2RCL.js} +6 -6
  324. package/dist/src/{storage-QdU-SmvD.js → storage-BC9TzmHh.js} +5 -5
  325. package/dist/src/{storage-CA-v9V2v.cjs → storage-Cv7QYUPO.cjs} +4 -4
  326. package/dist/src/{storage-CD-GWAdx.js → storage-fbHNSuZ9.js} +4 -4
  327. package/dist/src/{store-B2NDDooM.cjs → store-BKN4VD-m.cjs} +3 -3
  328. package/dist/src/{store-HpopRVzl.js → store-C4eo8Kyv.js} +3 -3
  329. package/dist/src/store-mJpYYA7W.js +3 -0
  330. package/dist/src/{store-DKd5592Q.js → store-u1XNK3e8.js} +3 -3
  331. package/dist/src/{strategies-CiSeroPH.js → strategies-4Nnr_9xt.js} +18 -18
  332. package/dist/src/{strategies-7CS3Alao.cjs → strategies-BD7US9WB.cjs} +18 -18
  333. package/dist/src/{strategies-DRJjGTIY.js → strategies-Ptz_P4P4.js} +20 -20
  334. package/dist/src/{tables-CRSXQ2Ke.js → tables-Bn3_8sxV.js} +2 -2
  335. package/dist/src/{tables-DafUHOeh.js → tables-D_ZGKiGc.js} +3 -3
  336. package/dist/src/{tables-DBIJU0WE.cjs → tables-D_s2HMPP.cjs} +2 -2
  337. package/dist/src/{tables-CxjU7bBd.js → tables-PWOqfbI_.js} +3 -3
  338. package/dist/src/{telemetry-DwX9XUN5.js → telemetry-BTIhfopq.js} +21 -16
  339. package/dist/src/{telemetry-00ezXr_t.js → telemetry-BU80NveV.js} +21 -16
  340. package/dist/src/telemetry-CVHVhMOI.js +3 -0
  341. package/dist/src/{telemetry-DmXYcJNV.js → telemetry-D3yQCekN.js} +21 -16
  342. package/dist/src/{telemetry-CJ7FnCsc.cjs → telemetry-DvzmDrSM.cjs} +21 -16
  343. package/dist/src/{tracingOptions-BnwKCkSB.js → tracingOptions-D2F0D7es.js} +4 -4
  344. package/dist/src/{tracingOptions-Chi74lOD.js → tracingOptions-PLePpCmo.js} +3 -3
  345. package/dist/src/{tracingOptions-ji2OuXbT.js → tracingOptions-WpE9IqC8.js} +4 -4
  346. package/dist/src/{tracingOptions-DrbSFaKy.cjs → tracingOptions-eqmq5sA2.cjs} +4 -4
  347. package/dist/src/{transcription-mzuf18Mq.cjs → transcription-CKLxdMxm.cjs} +7 -7
  348. package/dist/src/{transcription-B8uIgCYX.js → transcription-CmlDorqD.js} +7 -7
  349. package/dist/src/{transcription-CfU5loSq.js → transcription-Cupf4JNw.js} +7 -7
  350. package/dist/src/{transcription-Dkd22_4K.js → transcription-sOgdGxM6.js} +7 -7
  351. package/dist/src/{transform-BnSXWmU_2.cjs → transform-0wnBYYaL2.cjs} +4 -4
  352. package/dist/src/{transform-EtD4jAWi.js → transform-AfC8gqCB.js} +5 -5
  353. package/dist/src/{transform-CGt7Kt3y2.js → transform-BDSnWRNv2.js} +4 -4
  354. package/dist/src/{transform-BnSTnFlp.js → transform-C5pxvKUV.js} +4 -4
  355. package/dist/src/{transform-CrPGTsij.js → transform-C5rpIuDz.js} +4 -4
  356. package/dist/src/{transform-DmvYBRll.js → transform-D7QlmswG.js} +5 -5
  357. package/dist/src/{transform-DhNkAUs8.cjs → transform-DKw2FNwg.cjs} +5 -5
  358. package/dist/src/{transform-BIMynQsA.js → transform-R1PnNdLv.js} +5 -5
  359. package/dist/src/{types-BFevViUY.js → types-C_e_SykX.js} +2 -2
  360. package/dist/src/{types-BJQBBPTP.js → types-uLCKnRiK.js} +2 -2
  361. package/dist/src/{util-CN8om2rz.cjs → util-3BRss2KA.cjs} +7 -7
  362. package/dist/src/{util-efByNxcr.js → util-B2Nt2Oy7.js} +25 -7
  363. package/dist/src/{util-I-Rf-KaD.js → util-BGfk7zh7.js} +8 -8
  364. package/dist/src/{util-5WnCSb0h.js → util-BLSQ_7Ky.js} +25 -7
  365. package/dist/src/{util-IYzs5Y04.cjs → util-BSZPCmvm.cjs} +4 -3
  366. package/dist/src/{util-SPsvFONY.cjs → util-BuYzkbEz.cjs} +7 -7
  367. package/dist/src/{util-LKTmNsMQ.js → util-C6d3eV0A.js} +25 -7
  368. package/dist/src/{util-DURocbYR.js → util-CES4qWd7.js} +8 -8
  369. package/dist/src/{util-Df8YMvS1.js → util-CKZReNsz.js} +8 -8
  370. package/dist/src/{util-BSIuSLVK.cjs → util-Cs372i1_.cjs} +25 -7
  371. package/dist/src/{util-CoQWM76y.js → util-Cw9nJJWm.js} +4 -3
  372. package/dist/src/{util-DNl96nNs.js → util-D1NKMz55.js} +7 -7
  373. package/dist/src/{util-kDURhgJW.js → util-D9grslJP.js} +8 -8
  374. package/dist/src/{util--WMgw7wM.js → util-SNUDkWJ8.js} +4 -3
  375. package/dist/src/{util-Bx677_k2.js → util-vaCPFatZ.js} +7 -7
  376. package/dist/src/{util-DiQ3QvBB.js → util-weQgMdSy.js} +4 -3
  377. package/dist/src/{utils-Ve6kuJsa.cjs → utils-B_HCobst.cjs} +2 -2
  378. package/dist/src/{utils-BGY69tk_.js → utils-C3qMBhJT.js} +2 -2
  379. package/dist/src/{utils-BFOh20Gb.js → utils-Cdx3ZJr7.js} +2 -2
  380. package/dist/src/{utils-B0lzitHZ.js → utils-DMWnIu_V.js} +2 -2
  381. package/dist/src/{version-BK20a4sw.js → version-BGiEZvX0.js} +2 -2
  382. package/dist/src/{version-lpHV_53E.js → version-BNhpIb2U.js} +2 -2
  383. package/dist/src/{version-eRkNuGv8.js → version-CnYqmWbz.js} +2 -2
  384. package/dist/src/{version-BWCSaByA.cjs → version-XjGPawtU.cjs} +2 -2
  385. package/dist/tsconfig.tsbuildinfo +1 -1
  386. package/package.json +17 -17
  387. package/dist/src/app/assets/Report-BNHJKN35.js +0 -1
  388. package/dist/src/app/assets/index-yhM8y1PP.css +0 -1
  389. package/dist/src/cache-Cf7b4pWE.js +0 -3
  390. package/dist/src/cloud-p96PA4MH.js +0 -3
  391. package/dist/src/codex-sdk-BGjVAk23.js +0 -3
  392. package/dist/src/evalResult-DqzsS6_W.js +0 -3
  393. package/dist/src/evaluator-DNdJF1Gv.js +0 -3
  394. package/dist/src/fetch-_YgGd2qv.js +0 -3
  395. package/dist/src/graders-BDT7dif6.js +0 -3
  396. package/dist/src/rubyUtils-BYVlQ94c.js +0 -3
  397. package/dist/src/server-BaLytskk.js +0 -3
  398. package/dist/src/store-IbiRIF3k.js +0 -3
  399. package/dist/src/telemetry-ByPqDcKC.js +0 -3
@@ -1,38 +1,38 @@
1
1
  #!/usr/bin/env node
2
- import { C as getConfigDirectoryPath, D as getEnvInt, E as getEnvFloat, N as state, O as getEnvString, d as isSecretField, f as looksLikeSecret, h as sanitizeUrl, m as sanitizeObject, s as logger, u as REDACTED, x as safeJsonStringify, y as isValidJson } from "./logger-BbY6ypFL.js";
3
- import { C as openaiToolsToBedrock, D as transformTools, E as transformToolChoice, S as openaiToolChoiceToBedrock, T as toTitleCase, _ as REQUEST_TIMEOUT_MS$1, b as isOpenAIToolChoice, f as sleep, g as LONG_RUNNING_MODEL_TIMEOUT_MS, i as fetchWithTimeout, n as fetchWithProxy, v as calculateCost, w as parseChatPrompt, y as isOpenAIToolArray } from "./fetch-DXUnXkVU.js";
2
+ import { C as getConfigDirectoryPath, D as getEnvInt, E as getEnvFloat, N as state, O as getEnvString, d as isSecretField, f as looksLikeSecret, h as sanitizeUrl, m as sanitizeObject, s as logger, u as REDACTED, x as safeJsonStringify, y as isValidJson } from "./logger-h-eiS4iv.js";
3
+ import { C as openaiToolsToBedrock, D as transformTools, E as transformToolChoice, S as openaiToolChoiceToBedrock, T as toTitleCase, _ as calculateCost, b as isOpenAIToolChoice, f as sleep, g as LONG_RUNNING_MODEL_TIMEOUT_MS, i as fetchWithTimeout, n as fetchWithProxy, v as getRequestTimeoutMs, w as parseChatPrompt, y as isOpenAIToolArray } from "./fetch-C59QM4cf.js";
4
4
  import { t as invariant } from "./invariant-B2Rf6avk.js";
5
- import { a as cloudConfig } from "./cloud-D3DiFqH6.js";
6
- import { r as telemetry } from "./telemetry-00ezXr_t.js";
7
- import { p as isApiProvider } from "./types-BFevViUY.js";
5
+ import { a as cloudConfig } from "./cloud-BbAl8dyj.js";
6
+ import { r as telemetry } from "./telemetry-BU80NveV.js";
7
+ import { p as isApiProvider } from "./types-C_e_SykX.js";
8
8
  import { i as isJavascriptFile } from "./fileExtensions-D4GCJ67J.js";
9
- import { n as getWrapperDir, o as safeResolve, r as importModule } from "./esm-Bexx2PFc.js";
9
+ import { n as getWrapperDir, o as safeResolve, r as importModule } from "./esm-CYMWMaSj.js";
10
10
  import { i as withGenAISpan } from "./genaiTracer-BPVvltoW.js";
11
- import { n as renderVarsInObject, o as getNunjucksEngine, t as renderEnvOnlyInObject } from "./render-CSP99NLm.js";
12
- import { t as providerRegistry } from "./providerRegistry-ReCd0sFa.js";
13
- import { a as storeMedia, b as validateLinkedTargetId, c as getCloudDatabaseId, g as isCloudProvider, m as getProviderFromCloud, t as getMediaStorage } from "./storage-BU4qcnOb.js";
11
+ import { n as renderVarsInObject, o as getNunjucksEngine, t as renderEnvOnlyInObject } from "./render-jE6RKVgk.js";
12
+ import { t as providerRegistry } from "./providerRegistry-DLeG-xXn.js";
13
+ import { a as storeMedia, b as validateLinkedTargetId, c as getCloudDatabaseId, g as isCloudProvider, m as getProviderFromCloud, t as getMediaStorage } from "./storage-B9lg2RCL.js";
14
14
  import { n as sha256 } from "./createHash-CgRvs4Fn.js";
15
- import { a as fetchWithCache, c as isCacheEnabled, o as getCache, s as getScopedCacheKey } from "./cache-DpPWrkTE.js";
16
- import { i as validatePythonPath, n as getEnvInt$1, r as runPython, t as getConfiguredPythonPath } from "./pythonUtils-CgYxeSmO.js";
17
- import { A as getResolvedRelativePath, B as parseFileUrl, D as normalizeProviderRef, E as loadProviderConfigsFromFile, F as maybeLoadToolsFromExternalFile, I as parsePathOrGlob, M as maybeLoadFromExternalFile, N as maybeLoadFromExternalFileWithVars, O as readProviderConfigFile, P as maybeLoadResponseFormatFromExternalFile, T as isProviderConfigFileReference, j as maybeLoadConfigFromExternalFile, z as loadFunction } from "./util-DURocbYR.js";
18
- import { i as normalizeFinishReason, n as MCPClient, r as FINISH_REASON_MAP, t as OpenAiChatCompletionProvider } from "./chat-DqUFcWI0.js";
19
- import { C as resolveProjectId, S as loadCredentials, T as toDataUri, _ as GoogleAuthManager, a as calculateGoogleCost, b as getGoogleClient, c as geminiFormatAndSystemInstructions, d as mergeParts, f as normalizeSafetySettings, g as CHAT_MODELS, i as transformMCPToolsToOpenAi, j as TOKEN_REFRESH_BUFFER_MS, l as getCandidate, m as parseConfigSystemInstruction, o as createAuthCacheDiscriminator, p as normalizeTools, r as transformMCPToolsToGoogle, s as formatCandidateContents, u as getGoogleAccessToken, v as determineGoogleVertexMode, y as getGoogleApiKey } from "./transform-EtD4jAWi.js";
20
- import { t as OpenAiGenericProvider } from "./openai-CJrsh9n4.js";
21
- import { a as calculateOpenAICost, c as getTokenUsage$2, o as failApiCall, r as OPENAI_REALTIME_MODELS, s as formatOpenAiError } from "./util-5WnCSb0h.js";
22
- import { t as OpenAiEmbeddingProvider } from "./embedding--UZVe4_7.js";
15
+ import { a as fetchWithCache, c as isCacheEnabled, o as getCache, s as getScopedCacheKey } from "./cache-BuudGL4I.js";
16
+ import { i as validatePythonPath, n as getEnvInt$1, r as runPython, t as getConfiguredPythonPath } from "./pythonUtils-CLAoc6jg.js";
17
+ import { A as getResolvedRelativePath, B as parseFileUrl, D as normalizeProviderRef, E as loadProviderConfigsFromFile, F as maybeLoadToolsFromExternalFile, I as parsePathOrGlob, M as maybeLoadFromExternalFile, N as maybeLoadFromExternalFileWithVars, O as readProviderConfigFile, P as maybeLoadResponseFormatFromExternalFile, T as isProviderConfigFileReference, j as maybeLoadConfigFromExternalFile, z as loadFunction } from "./util-CES4qWd7.js";
18
+ import { i as normalizeFinishReason, n as MCPClient, r as FINISH_REASON_MAP, t as OpenAiChatCompletionProvider } from "./chat-B8lsx0A0.js";
19
+ import { C as resolveProjectId, S as loadCredentials, T as toDataUri, _ as GoogleAuthManager, a as calculateGoogleCost, b as getGoogleClient, c as geminiFormatAndSystemInstructions, d as mergeParts, f as normalizeSafetySettings, g as CHAT_MODELS, i as transformMCPToolsToOpenAi, j as TOKEN_REFRESH_BUFFER_MS, l as getCandidate, m as parseConfigSystemInstruction, o as createAuthCacheDiscriminator, p as normalizeTools, r as transformMCPToolsToGoogle, s as formatCandidateContents, u as getGoogleAccessToken, v as determineGoogleVertexMode, y as getGoogleApiKey } from "./transform-AfC8gqCB.js";
20
+ import { t as OpenAiGenericProvider } from "./openai-CJOpg_dA.js";
21
+ import { a as calculateOpenAICost, c as getTokenUsage$2, o as failApiCall, r as OPENAI_REALTIME_MODELS, s as formatOpenAiError } from "./util-BLSQ_7Ky.js";
22
+ import { t as OpenAiEmbeddingProvider } from "./embedding-BQBXSWgy.js";
23
23
  import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-CDet74yk.js";
24
- import { n as AnthropicGenericProvider, t as AnthropicMessagesProvider } from "./messages-DGUlSNU7.js";
25
- import { a as isClaudeOpus47Model, i as getTokenUsage$3, n as calculateAnthropicCost, o as outputFromMessage, s as parseMessages, t as ANTHROPIC_MODELS } from "./util-CoQWM76y.js";
26
- import { n as ResponsesProcessor, r as FunctionCallbackHandler, t as OpenAiResponsesProvider } from "./responses-B3W2JvOQ.js";
24
+ import { n as AnthropicGenericProvider, t as AnthropicMessagesProvider } from "./messages-CQoK4jHx.js";
25
+ import { a as isClaudeOpus47Model, i as getTokenUsage$3, n as calculateAnthropicCost, o as outputFromMessage, s as parseMessages, t as ANTHROPIC_MODELS } from "./util-Cw9nJJWm.js";
26
+ import { n as ResponsesProcessor, r as FunctionCallbackHandler, t as OpenAiResponsesProvider } from "./responses-C0yU3fO6.js";
27
27
  import { t as ellipsize } from "./text-Db-Wt2u2.js";
28
- import { a as novaParseMessages, i as novaOutputFromMessage, t as AwsBedrockGenericProvider } from "./base-Co80MMCi.js";
29
- import { i as storeBlob } from "./blobs-DODuTK-a.js";
28
+ import { a as novaParseMessages, i as novaOutputFromMessage, t as AwsBedrockGenericProvider } from "./base-BARAIJmp.js";
29
+ import { i as storeBlob } from "./blobs-CA4gXarv.js";
30
30
  import { t as getProcessShim } from "./processShim-BBxt7LKO.js";
31
- import { i as formatOutput, n as buildStructuredImageOutputs, r as callOpenAiImageApi, t as OpenAiImageProvider } from "./image-B4oBtu6J.js";
32
- import { t as OpenAiCompletionProvider } from "./completion-DZNxcyfG.js";
33
- import { r as parsePackageProvider } from "./packageParser--MWTSrPW.js";
34
- import { n as runRuby } from "./rubyUtils-CXlFM2rR.js";
35
- import { t as SimulatedUser } from "./simulatedUser-p3tACcmw.js";
31
+ import { i as formatOutput, n as buildStructuredImageOutputs, r as callOpenAiImageApi, t as OpenAiImageProvider } from "./image-V0-pYiBI.js";
32
+ import { t as OpenAiCompletionProvider } from "./completion-BoWiFP-D.js";
33
+ import { r as parsePackageProvider } from "./packageParser-B3bpKHK4.js";
34
+ import { n as runRuby } from "./rubyUtils-C-sxXgGT.js";
35
+ import { t as SimulatedUser } from "./simulatedUser-LKk31Iov.js";
36
36
  import { z } from "zod";
37
37
  import input from "@inquirer/input";
38
38
  import chalk from "chalk";
@@ -200,7 +200,7 @@ var AI21ChatCompletionProvider = class AI21ChatCompletionProvider {
200
200
  Authorization: `Bearer ${this.getApiKey()}`
201
201
  },
202
202
  body: JSON.stringify(body)
203
- }, REQUEST_TIMEOUT_MS$1));
203
+ }, getRequestTimeoutMs()));
204
204
  } catch (err) {
205
205
  return { error: `API call error: ${String(err)}` };
206
206
  }
@@ -1823,6 +1823,45 @@ Please choose one of the following options:
1823
1823
  };
1824
1824
  //#endregion
1825
1825
  //#region src/providers/azure/assistant.ts
1826
+ const AZURE_ASSISTANT_CACHE_KEY_HMAC_KEY = "promptfoo-azure-assistant-cache-key-v1";
1827
+ function normalizeAzureAssistantCacheValue(value, seen = /* @__PURE__ */ new WeakSet()) {
1828
+ if (Array.isArray(value)) {
1829
+ if (seen.has(value)) return "[Circular]";
1830
+ seen.add(value);
1831
+ const normalized = value.map((item) => normalizeAzureAssistantCacheValue(item, seen));
1832
+ seen.delete(value);
1833
+ return normalized;
1834
+ }
1835
+ if (value && typeof value === "object") {
1836
+ if (seen.has(value)) return "[Circular]";
1837
+ const prototype = Object.getPrototypeOf(value);
1838
+ if (prototype !== Object.prototype && prototype !== null) return value;
1839
+ seen.add(value);
1840
+ const normalized = Object.keys(value).sort().reduce((acc, key) => {
1841
+ acc[key] = normalizeAzureAssistantCacheValue(value[key], seen);
1842
+ return acc;
1843
+ }, {});
1844
+ seen.delete(value);
1845
+ return normalized;
1846
+ }
1847
+ return value;
1848
+ }
1849
+ function hmacAzureAssistantCacheValue(value) {
1850
+ const serialized = safeJsonStringify(normalizeAzureAssistantCacheValue(value));
1851
+ invariant(serialized !== void 0, "Azure Assistant cache key input contains values that cannot be serialized");
1852
+ return createHmac("sha256", AZURE_ASSISTANT_CACHE_KEY_HMAC_KEY).update(serialized).digest("hex");
1853
+ }
1854
+ function getAuthHeadersCacheIdentity(authHeaders) {
1855
+ const entries = Object.entries(authHeaders).sort(([nameA], [nameB]) => nameA.localeCompare(nameB));
1856
+ if (entries.length === 0) return {
1857
+ headerNames: [],
1858
+ namespace: "no-auth"
1859
+ };
1860
+ return {
1861
+ headerNames: entries.map(([name]) => name),
1862
+ namespace: hmacAzureAssistantCacheValue(["auth", entries])
1863
+ };
1864
+ }
1826
1865
  var AzureAssistantProvider = class extends AzureGenericProvider {
1827
1866
  assistantConfig;
1828
1867
  functionCallbackHandler = new FunctionCallbackHandler();
@@ -1837,8 +1876,11 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1837
1876
  if (!apiBaseUrl) throw new Error("Azure API host must be set.");
1838
1877
  if (!this.authHeaders["api-key"] && !this.authHeaders.Authorization) throw new Error("Azure API authentication failed. Set AZURE_API_KEY environment variable or configure apiKey in provider config.\nYou can also use Microsoft Entra ID authentication.");
1839
1878
  const apiVersion = this.assistantConfig.apiVersion || "2024-04-01-preview";
1840
- const cacheKey = `azure_assistant:${this.deploymentName}:${JSON.stringify({
1879
+ const loadedTools = await maybeLoadToolsFromExternalFile(this.assistantConfig.tools, context?.vars);
1880
+ const cacheKey = `azure_assistant:${this.deploymentName}:${hmacAzureAssistantCacheValue({
1881
+ apiBaseUrl,
1841
1882
  apiVersion,
1883
+ auth: getAuthHeadersCacheIdentity(this.authHeaders),
1842
1884
  instructions: this.assistantConfig.instructions,
1843
1885
  max_tokens: this.assistantConfig.max_tokens,
1844
1886
  model: this.assistantConfig.modelName,
@@ -1847,13 +1889,13 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1847
1889
  temperature: this.assistantConfig.temperature,
1848
1890
  tool_choice: this.assistantConfig.tool_choice,
1849
1891
  tool_resources: this.assistantConfig.tool_resources,
1850
- tools: JSON.stringify(await maybeLoadToolsFromExternalFile(this.assistantConfig.tools, context?.vars)),
1892
+ tools: loadedTools,
1851
1893
  top_p: this.assistantConfig.top_p
1852
1894
  })}`;
1853
1895
  if (isCacheEnabled()) try {
1854
1896
  const cachedResult = await (await getCache()).get(cacheKey);
1855
1897
  if (cachedResult) {
1856
- logger.debug(`Cache hit for assistant prompt: ${prompt.substring(0, 50)}...`);
1898
+ logger.debug("Cache hit for assistant prompt", { promptLength: prompt.length });
1857
1899
  return {
1858
1900
  ...cachedResult,
1859
1901
  cached: true
@@ -1868,7 +1910,10 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1868
1910
  headers: await this.getHeaders(),
1869
1911
  body: JSON.stringify({})
1870
1912
  });
1871
- logger.debug(`Created thread ${threadResponse.id} for prompt: ${prompt.substring(0, 30)}...`);
1913
+ logger.debug("Created thread for assistant prompt", {
1914
+ threadId: threadResponse.id,
1915
+ promptLength: prompt.length
1916
+ });
1872
1917
  await this.makeRequest(`${apiBaseUrl}/openai/threads/${threadResponse.id}/messages?api-version=${apiVersion}`, {
1873
1918
  method: "POST",
1874
1919
  headers: await this.getHeaders(),
@@ -1883,7 +1928,6 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1883
1928
  if (this.assistantConfig.tool_resources) runOptions.tool_resources = this.assistantConfig.tool_resources;
1884
1929
  if (this.assistantConfig.tool_choice) runOptions.tool_choice = this.assistantConfig.tool_choice;
1885
1930
  if (this.assistantConfig.tools) {
1886
- const loadedTools = await maybeLoadToolsFromExternalFile(this.assistantConfig.tools, context?.vars);
1887
1931
  if (loadedTools !== void 0) runOptions.tools = loadedTools;
1888
1932
  }
1889
1933
  if (this.assistantConfig.modelName) runOptions.model = this.assistantConfig.modelName;
@@ -1918,7 +1962,7 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1918
1962
  }
1919
1963
  if (isCacheEnabled() && !result.error) try {
1920
1964
  await (await getCache()).set(cacheKey, result);
1921
- logger.debug(`Cached assistant response for prompt: ${prompt.substring(0, 50)}...`);
1965
+ logger.debug("Cached assistant response for prompt", { promptLength: prompt.length });
1922
1966
  } catch (err) {
1923
1967
  logger.warn(`Error caching result: ${err}`);
1924
1968
  }
@@ -1955,7 +1999,7 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1955
1999
  * Helper method to make HTTP requests using fetchWithCache
1956
2000
  */
1957
2001
  async makeRequest(url, options) {
1958
- const timeoutMs = this.assistantConfig.timeoutMs ?? REQUEST_TIMEOUT_MS$1;
2002
+ const timeoutMs = this.assistantConfig.timeoutMs ?? getRequestTimeoutMs();
1959
2003
  const retries = this.assistantConfig.retryOptions?.maxRetries ?? 4;
1960
2004
  const shouldBustCache = url.includes("/runs/") && options.method === "GET" || url.includes("/threads") && options.method === "POST" && !url.includes("/messages") && !url.includes("submit_tool_outputs");
1961
2005
  try {
@@ -2378,7 +2422,7 @@ var AzureChatCompletionProvider = class extends AzureGenericProvider {
2378
2422
  ...this.config.headers
2379
2423
  },
2380
2424
  body: JSON.stringify(body)
2381
- }, REQUEST_TIMEOUT_MS$1, "json", context?.bustCache ?? context?.debug);
2425
+ }, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug);
2382
2426
  cached = isCached;
2383
2427
  latencyMs = fetchLatencyMs;
2384
2428
  if (typeof responseData === "string") try {
@@ -2494,7 +2538,7 @@ var AzureCompletionProvider = class extends AzureGenericProvider {
2494
2538
  ...this.config.headers
2495
2539
  },
2496
2540
  body: JSON.stringify(body)
2497
- }, REQUEST_TIMEOUT_MS$1, "json", context?.bustCache ?? context?.debug));
2541
+ }, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug));
2498
2542
  } catch (err) {
2499
2543
  return { error: `API call error: ${String(err)}` };
2500
2544
  }
@@ -2577,7 +2621,7 @@ var AzureEmbeddingProvider = class extends AzureGenericProvider {
2577
2621
  ...this.config.headers
2578
2622
  },
2579
2623
  body: JSON.stringify(body)
2580
- }, REQUEST_TIMEOUT_MS$1));
2624
+ }, getRequestTimeoutMs()));
2581
2625
  } catch (err) {
2582
2626
  return {
2583
2627
  error: `API call error: ${String(err)}`,
@@ -3063,7 +3107,7 @@ var AzureModerationProvider = class AzureModerationProvider extends AzureGeneric
3063
3107
  ...this.configWithHeaders.passthrough || {}
3064
3108
  };
3065
3109
  const controller = new AbortController();
3066
- const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS$1);
3110
+ const timeoutId = setTimeout(() => controller.abort(), getRequestTimeoutMs());
3067
3111
  const response = await fetchWithProxy(url, {
3068
3112
  method: "POST",
3069
3113
  headers,
@@ -3200,7 +3244,7 @@ var AzureResponsesProvider = class extends AzureGenericProvider {
3200
3244
  }
3201
3245
  const body = await this.getAzureResponsesBody(prompt, context, callApiOptions);
3202
3246
  const isDeepResearchModel = this.deploymentName.includes("deep-research");
3203
- let timeout = REQUEST_TIMEOUT_MS$1;
3247
+ let timeout = getRequestTimeoutMs();
3204
3248
  if (isDeepResearchModel) {
3205
3249
  const evalTimeout = getEnvInt("PROMPTFOO_EVAL_TIMEOUT_MS", 0);
3206
3250
  timeout = evalTimeout > 0 ? evalTimeout : LONG_RUNNING_MODEL_TIMEOUT_MS;
@@ -6222,7 +6266,7 @@ var CohereChatCompletionProvider = class CohereChatCompletionProvider {
6222
6266
  "X-Client-Name": getEnvString("COHERE_CLIENT_NAME") || "promptfoo"
6223
6267
  },
6224
6268
  body: JSON.stringify(body)
6225
- }, REQUEST_TIMEOUT_MS$1));
6269
+ }, getRequestTimeoutMs()));
6226
6270
  if (data.message) return { error: data.message };
6227
6271
  const tokenUsage = {
6228
6272
  cached: cached ? data.token_count?.total_tokens || 0 : 0,
@@ -6284,7 +6328,7 @@ var CohereEmbeddingProvider = class {
6284
6328
  "X-Client-Name": getEnvString("COHERE_CLIENT_NAME") || "promptfoo"
6285
6329
  },
6286
6330
  body: JSON.stringify(body)
6287
- }, REQUEST_TIMEOUT_MS$1));
6331
+ }, getRequestTimeoutMs()));
6288
6332
  } catch (err) {
6289
6333
  logger.error(`API call error: ${err}`);
6290
6334
  throw err;
@@ -8929,6 +8973,10 @@ function omitFalSecretConfigFields(config) {
8929
8973
  const { apiKey, ...rest } = config;
8930
8974
  return rest;
8931
8975
  }
8976
+ function getFalModelInput(config) {
8977
+ const { apiKey, client, ...input } = config;
8978
+ return input;
8979
+ }
8932
8980
  function generateConfigHash$1(config) {
8933
8981
  const sortedConfig = sortObject$1(omitFalSecretConfigFields(config));
8934
8982
  return createHmac("sha256", FAL_CACHE_KEY_HMAC_KEY).update(JSON.stringify(sortedConfig)).digest("hex");
@@ -8945,6 +8993,7 @@ var FalProvider = class {
8945
8993
  modelType;
8946
8994
  apiKey;
8947
8995
  config;
8996
+ clientConfig;
8948
8997
  input;
8949
8998
  fal = null;
8950
8999
  constructor(modelType, modelName, options = {}) {
@@ -8953,9 +9002,10 @@ var FalProvider = class {
8953
9002
  const { config, id, env } = options;
8954
9003
  this.id = id ? () => id : this.id;
8955
9004
  this.config = config ?? {};
8956
- const { apiKey, ...input } = this.config;
9005
+ const { apiKey, client } = this.config;
8957
9006
  this.apiKey = apiKey ?? env?.FAL_KEY ?? getEnvString("FAL_KEY");
8958
- this.input = input;
9007
+ this.clientConfig = client ?? {};
9008
+ this.input = getFalModelInput(this.config);
8959
9009
  }
8960
9010
  id() {
8961
9011
  return `fal:${this.modelType}:${this.modelName}`;
@@ -8977,7 +9027,7 @@ var FalProvider = class {
8977
9027
  const input = {
8978
9028
  prompt,
8979
9029
  ...this.input,
8980
- ...context?.prompt?.config ?? {}
9030
+ ...getFalModelInput(context?.prompt?.config ?? {})
8981
9031
  };
8982
9032
  const cacheEnabled = isCacheEnabled();
8983
9033
  let cacheKey;
@@ -8994,7 +9044,10 @@ var FalProvider = class {
8994
9044
  logger.error(`Error loading @fal-ai/client: ${err}`);
8995
9045
  throw new Error("The @fal-ai/client package is required. Please install it with: npm install @fal-ai/client");
8996
9046
  }
8997
- this.fal.fal.config({ credentials: this.apiKey });
9047
+ this.fal.fal.config({
9048
+ credentials: this.apiKey,
9049
+ ...this.clientConfig
9050
+ });
8998
9051
  if (!response) response = await this.runInference(input);
8999
9052
  if (!cached && cacheEnabled && cache && cacheKey) try {
9000
9053
  await cache.set(cacheKey, JSON.stringify(response));
@@ -9384,7 +9437,7 @@ var GoogleGenericProvider = class {
9384
9437
  * Get the request timeout in milliseconds.
9385
9438
  */
9386
9439
  getTimeout() {
9387
- return this.config.timeoutMs || REQUEST_TIMEOUT_MS$1;
9440
+ return this.config.timeoutMs || getRequestTimeoutMs();
9388
9441
  }
9389
9442
  };
9390
9443
  //#endregion
@@ -9538,7 +9591,7 @@ var AIStudioChatProvider = class extends GoogleGenericProvider {
9538
9591
  headers,
9539
9592
  body: JSON.stringify(body),
9540
9593
  ...authDiscriminator && { _authHash: authDiscriminator }
9541
- }, REQUEST_TIMEOUT_MS$1, "json", shouldBustCache(context)));
9594
+ }, getRequestTimeoutMs(), "json", shouldBustCache(context)));
9542
9595
  } catch (err) {
9543
9596
  return { error: `API call error: ${String(err)}` };
9544
9597
  }
@@ -9620,7 +9673,7 @@ var AIStudioChatProvider = class extends GoogleGenericProvider {
9620
9673
  headers,
9621
9674
  body: JSON.stringify(body),
9622
9675
  ...authDiscriminator && { _authHash: authDiscriminator }
9623
- }, REQUEST_TIMEOUT_MS$1, "json", shouldBustCache(context)));
9676
+ }, getRequestTimeoutMs(), "json", shouldBustCache(context)));
9624
9677
  } catch (err) {
9625
9678
  return { error: `API call error: ${String(err)}` };
9626
9679
  }
@@ -9726,7 +9779,7 @@ var AIStudioEmbeddingProvider = class extends AIStudioChatProvider {
9726
9779
  headers,
9727
9780
  body: JSON.stringify(body),
9728
9781
  ...authDiscriminator && { _authHash: authDiscriminator }
9729
- }, REQUEST_TIMEOUT_MS$1, "json"));
9782
+ }, getRequestTimeoutMs(), "json"));
9730
9783
  } catch (err) {
9731
9784
  logger.error(`Google AI Studio embedding API call error: ${String(err)}`);
9732
9785
  return { error: `API call error: ${String(err)}` };
@@ -9822,7 +9875,7 @@ var GeminiImageProvider = class {
9822
9875
  headers,
9823
9876
  body: JSON.stringify(body),
9824
9877
  ...authDiscriminator && { _authHash: authDiscriminator }
9825
- }, REQUEST_TIMEOUT_MS$1, "json", false);
9878
+ }, getRequestTimeoutMs(), "json", false);
9826
9879
  const latencyMs = Date.now() - startTime;
9827
9880
  return this.processResponse(data, cached, latencyMs);
9828
9881
  } catch (err) {
@@ -9850,7 +9903,7 @@ var GeminiImageProvider = class {
9850
9903
  ...this.config.headers || {}
9851
9904
  },
9852
9905
  data: body,
9853
- timeout: REQUEST_TIMEOUT_MS$1
9906
+ timeout: getRequestTimeoutMs()
9854
9907
  });
9855
9908
  const latencyMs = Date.now() - startTime;
9856
9909
  return this.processResponse(response.data, false, latencyMs);
@@ -10011,7 +10064,7 @@ var GoogleImageProvider = class {
10011
10064
  ...this.config.headers || {}
10012
10065
  },
10013
10066
  data: body,
10014
- timeout: REQUEST_TIMEOUT_MS$1
10067
+ timeout: getRequestTimeoutMs()
10015
10068
  }), "Vertex AI API call");
10016
10069
  const latencyMs = Date.now() - startTime;
10017
10070
  return this.processResponse(response.data, false, latencyMs);
@@ -10048,7 +10101,7 @@ var GoogleImageProvider = class {
10048
10101
  headers,
10049
10102
  body: JSON.stringify(body),
10050
10103
  ...authDiscriminator && { _authHash: authDiscriminator }
10051
- }, REQUEST_TIMEOUT_MS$1, "json"), "Google AI Studio API call");
10104
+ }, getRequestTimeoutMs(), "json"), "Google AI Studio API call");
10052
10105
  return this.processResponse(response.data, response.cached, response.latencyMs);
10053
10106
  } catch (err) {
10054
10107
  return { error: `API call error: ${String(err)}` };
@@ -10740,7 +10793,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
10740
10793
  method: "POST",
10741
10794
  headers: { "Content-Type": "application/json; charset=utf-8" },
10742
10795
  data: body,
10743
- timeout: REQUEST_TIMEOUT_MS$1
10796
+ timeout: getRequestTimeoutMs()
10744
10797
  })).data;
10745
10798
  } catch (err) {
10746
10799
  const error = err;
@@ -10854,7 +10907,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
10854
10907
  method: "POST",
10855
10908
  headers: await this.getAuthHeaders(),
10856
10909
  body: JSON.stringify(body),
10857
- signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS$1)
10910
+ signal: AbortSignal.timeout(getRequestTimeoutMs())
10858
10911
  });
10859
10912
  if (!res.ok) {
10860
10913
  const errorData = await res.json().catch(() => null);
@@ -10870,7 +10923,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
10870
10923
  url,
10871
10924
  method: "POST",
10872
10925
  data: body,
10873
- timeout: REQUEST_TIMEOUT_MS$1
10926
+ timeout: getRequestTimeoutMs()
10874
10927
  })).data;
10875
10928
  }
10876
10929
  } catch (err) {
@@ -11060,7 +11113,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
11060
11113
  method: "POST",
11061
11114
  headers: { "Content-Type": "application/json" },
11062
11115
  data: body,
11063
- timeout: REQUEST_TIMEOUT_MS$1
11116
+ timeout: getRequestTimeoutMs()
11064
11117
  })).data;
11065
11118
  } catch (err) {
11066
11119
  return { error: `API call error: ${JSON.stringify(err)}` };
@@ -11129,7 +11182,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
11129
11182
  method: "POST",
11130
11183
  headers: { "Content-Type": "application/json; charset=utf-8" },
11131
11184
  data: body,
11132
- timeout: REQUEST_TIMEOUT_MS$1
11185
+ timeout: getRequestTimeoutMs()
11133
11186
  })).data;
11134
11187
  logger.debug(`Llama API response: ${JSON.stringify(data)}`);
11135
11188
  } catch (err) {
@@ -13090,7 +13143,7 @@ var HttpProvider = class {
13090
13143
  body: tokenRequestBody.toString()
13091
13144
  };
13092
13145
  if (httpsAgent) fetchOptions.dispatcher = httpsAgent;
13093
- const response = await fetchWithCache(oauthConfig.tokenUrl, fetchOptions, REQUEST_TIMEOUT_MS$1, "text", true, 0);
13146
+ const response = await fetchWithCache(oauthConfig.tokenUrl, fetchOptions, getRequestTimeoutMs(), "text", true, 0);
13094
13147
  if (response.status < 200 || response.status >= 300) throw new Error(`OAuth token request failed with status ${response.status} ${response.statusText}: ${response.data}`);
13095
13148
  const tokenData = JSON.parse(response.data);
13096
13149
  if (!tokenData.access_token) throw new Error("OAuth token response missing access_token");
@@ -13257,7 +13310,7 @@ var HttpProvider = class {
13257
13310
  };
13258
13311
  if (body) fetchOptions.body = body;
13259
13312
  if (httpsAgent) fetchOptions.dispatcher = httpsAgent;
13260
- const response = await fetchWithCache(url, fetchOptions, REQUEST_TIMEOUT_MS$1, "text", true, this.config.maxRetries);
13313
+ const response = await fetchWithCache(url, fetchOptions, getRequestTimeoutMs(), "text", true, this.config.maxRetries);
13261
13314
  if (response.status < 200 || response.status >= 300) throw new Error(`Session endpoint request failed with status ${response.status} ${response.statusText}: ${response.data}`);
13262
13315
  const rawText = response.data;
13263
13316
  let parsedData;
@@ -13450,7 +13503,7 @@ var HttpProvider = class {
13450
13503
  }
13451
13504
  let data, cached = false, status, statusText, responseHeaders, latencyMs;
13452
13505
  try {
13453
- ({data, cached, status, statusText, headers: responseHeaders, latencyMs} = await fetchWithCache(url, fetchOptions, REQUEST_TIMEOUT_MS$1, "text", multipartBody ? true : context?.bustCache ?? context?.debug, this.config.maxRetries));
13506
+ ({data, cached, status, statusText, headers: responseHeaders, latencyMs} = await fetchWithCache(url, fetchOptions, getRequestTimeoutMs(), "text", multipartBody ? true : context?.bustCache ?? context?.debug, this.config.maxRetries));
13454
13507
  } catch (err) {
13455
13508
  throw err;
13456
13509
  }
@@ -13572,7 +13625,7 @@ var HttpProvider = class {
13572
13625
  }
13573
13626
  let data, cached = false, status, statusText, responseHeaders, latencyMs;
13574
13627
  try {
13575
- ({data, cached, status, statusText, headers: responseHeaders, latencyMs} = await fetchWithCache(url, fetchOptions, REQUEST_TIMEOUT_MS$1, "text", context?.bustCache ?? context?.debug, this.config.maxRetries));
13628
+ ({data, cached, status, statusText, headers: responseHeaders, latencyMs} = await fetchWithCache(url, fetchOptions, getRequestTimeoutMs(), "text", context?.bustCache ?? context?.debug, this.config.maxRetries));
13576
13629
  } catch (err) {
13577
13630
  throw err;
13578
13631
  }
@@ -13819,7 +13872,7 @@ var HuggingfaceTextGenerationProvider = class {
13819
13872
  ...this.getApiKey() ? { Authorization: `Bearer ${this.getApiKey()}` } : {}
13820
13873
  },
13821
13874
  body: JSON.stringify(params)
13822
- }, REQUEST_TIMEOUT_MS$1);
13875
+ }, getRequestTimeoutMs());
13823
13876
  logger.debug("Huggingface Inference API response", { data: response.data });
13824
13877
  if (response.data.error) return { error: `API call error: ${response.data.error}` };
13825
13878
  if (!response.data[0] && !response.data.generated_text) return { error: `Malformed response data: ${response.data}` };
@@ -13861,7 +13914,7 @@ var HuggingfaceTextClassificationProvider = class {
13861
13914
  ...this.getApiKey() ? { Authorization: `Bearer ${this.getApiKey()}` } : {}
13862
13915
  },
13863
13916
  body: JSON.stringify(params)
13864
- }, REQUEST_TIMEOUT_MS$1);
13917
+ }, getRequestTimeoutMs());
13865
13918
  if (response.data.error) return { error: `API call error: ${response.data.error}` };
13866
13919
  if (!response.data[0] || !Array.isArray(response.data[0])) return { error: `Malformed response data: ${response.data}` };
13867
13920
  const scores = {};
@@ -13924,7 +13977,7 @@ var HuggingfaceFeatureExtractionProvider = class {
13924
13977
  ...this.getApiKey() ? { Authorization: `Bearer ${this.getApiKey()}` } : {}
13925
13978
  },
13926
13979
  body: JSON.stringify(params)
13927
- }, REQUEST_TIMEOUT_MS$1);
13980
+ }, getRequestTimeoutMs());
13928
13981
  if (typeof response.data === "object" && "error" in response.data) return { error: `API call error: ${response.data.error}` };
13929
13982
  if (!Array.isArray(response.data)) return { error: `Malformed response data: ${response.data}` };
13930
13983
  return { embedding: response.data };
@@ -13974,7 +14027,7 @@ var HuggingfaceSentenceSimilarityProvider = class {
13974
14027
  ...this.getApiKey() ? { Authorization: `Bearer ${this.getApiKey()}` } : {}
13975
14028
  },
13976
14029
  body: JSON.stringify(params)
13977
- }, REQUEST_TIMEOUT_MS$1);
14030
+ }, getRequestTimeoutMs());
13978
14031
  if (typeof response.data === "object" && "error" in response.data) return { error: `API call error: ${response.data.error}` };
13979
14032
  if (!Array.isArray(response.data)) return { error: `Malformed response data: ${response.data}` };
13980
14033
  return { similarity: response.data[0] };
@@ -14016,7 +14069,7 @@ var HuggingfaceTokenExtractionProvider = class {
14016
14069
  ...this.getApiKey() ? { Authorization: `Bearer ${this.getApiKey()}` } : {}
14017
14070
  },
14018
14071
  body: JSON.stringify(params)
14019
- }, REQUEST_TIMEOUT_MS$1);
14072
+ }, getRequestTimeoutMs());
14020
14073
  if (typeof response.data === "object" && "error" in response.data) return { error: `API call error: ${response.data.error}` };
14021
14074
  if (!Array.isArray(response.data)) return { error: `Malformed response data: ${response.data}` };
14022
14075
  const classification = {};
@@ -14095,7 +14148,7 @@ var LlamaProvider = class {
14095
14148
  method: "POST",
14096
14149
  headers: { "Content-Type": "application/json" },
14097
14150
  body: JSON.stringify(body)
14098
- }, REQUEST_TIMEOUT_MS$1));
14151
+ }, getRequestTimeoutMs()));
14099
14152
  } catch (err) {
14100
14153
  return { error: `API call error: ${String(err)}` };
14101
14154
  }
@@ -14266,7 +14319,7 @@ var LocalAiChatProvider = class extends LocalAiGenericProvider {
14266
14319
  method: "POST",
14267
14320
  headers: { "Content-Type": "application/json" },
14268
14321
  body: JSON.stringify(body)
14269
- }, REQUEST_TIMEOUT_MS$1));
14322
+ }, getRequestTimeoutMs()));
14270
14323
  } catch (err) {
14271
14324
  return { error: `API call error: ${String(err)}` };
14272
14325
  }
@@ -14289,7 +14342,7 @@ var LocalAiEmbeddingProvider = class extends LocalAiGenericProvider {
14289
14342
  method: "POST",
14290
14343
  headers: { "Content-Type": "application/json" },
14291
14344
  body: JSON.stringify(body)
14292
- }, REQUEST_TIMEOUT_MS$1));
14345
+ }, getRequestTimeoutMs()));
14293
14346
  } catch (err) {
14294
14347
  return { error: `API call error: ${String(err)}` };
14295
14348
  }
@@ -14315,7 +14368,7 @@ var LocalAiCompletionProvider = class extends LocalAiGenericProvider {
14315
14368
  method: "POST",
14316
14369
  headers: { "Content-Type": "application/json" },
14317
14370
  body: JSON.stringify(body)
14318
- }, REQUEST_TIMEOUT_MS$1));
14371
+ }, getRequestTimeoutMs()));
14319
14372
  } catch (err) {
14320
14373
  return { error: `API call error: ${String(err)}` };
14321
14374
  }
@@ -14809,7 +14862,7 @@ var MistralChatCompletionProvider = class MistralChatCompletionProvider {
14809
14862
  Authorization: `Bearer ${apiKey}`
14810
14863
  },
14811
14864
  body: JSON.stringify(params)
14812
- }, REQUEST_TIMEOUT_MS$1, "json", true);
14865
+ }, getRequestTimeoutMs(), "json", true);
14813
14866
  }));
14814
14867
  } catch (err) {
14815
14868
  return { error: `API call error: ${String(err)}` };
@@ -14924,7 +14977,7 @@ var MistralEmbeddingProvider = class {
14924
14977
  Authorization: `Bearer ${apiKey}`
14925
14978
  },
14926
14979
  body: JSON.stringify(body)
14927
- }, REQUEST_TIMEOUT_MS$1, "json", true);
14980
+ }, getRequestTimeoutMs(), "json", true);
14928
14981
  }));
14929
14982
  } catch (err) {
14930
14983
  logger.error(`API call error: ${err}`);
@@ -15073,7 +15126,7 @@ var NscaleImageProvider = class NscaleImageProvider extends OpenAiImageProvider
15073
15126
  let data, status, statusText;
15074
15127
  let cached = false;
15075
15128
  try {
15076
- ({data, cached, status, statusText} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, REQUEST_TIMEOUT_MS$1));
15129
+ ({data, cached, status, statusText} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, getRequestTimeoutMs()));
15077
15130
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
15078
15131
  } catch (err) {
15079
15132
  logger.error(`API call error: ${String(err)}`);
@@ -15255,7 +15308,7 @@ var OllamaCompletionProvider = class {
15255
15308
  ...getEnvString("OLLAMA_API_KEY") ? { Authorization: `Bearer ${getEnvString("OLLAMA_API_KEY")}` } : {}
15256
15309
  },
15257
15310
  body: JSON.stringify(params)
15258
- }, REQUEST_TIMEOUT_MS$1, "text");
15311
+ }, getRequestTimeoutMs(), "text");
15259
15312
  } catch (err) {
15260
15313
  return { error: `API call error: ${String(err)}. Output:\n${response?.data}` };
15261
15314
  }
@@ -15357,7 +15410,7 @@ var OllamaChatProvider = class {
15357
15410
  ...getEnvString("OLLAMA_API_KEY") ? { Authorization: `Bearer ${getEnvString("OLLAMA_API_KEY")}` } : {}
15358
15411
  },
15359
15412
  body: JSON.stringify(params)
15360
- }, REQUEST_TIMEOUT_MS$1, "text", context?.bustCache ?? context?.debug);
15413
+ }, getRequestTimeoutMs(), "text", context?.bustCache ?? context?.debug);
15361
15414
  } catch (err) {
15362
15415
  return { error: `API call error: ${String(err)}. Output:\n${response?.data}` };
15363
15416
  }
@@ -15425,7 +15478,7 @@ var OllamaEmbeddingProvider = class extends OllamaCompletionProvider {
15425
15478
  ...getEnvString("OLLAMA_API_KEY") ? { Authorization: `Bearer ${getEnvString("OLLAMA_API_KEY")}` } : {}
15426
15479
  },
15427
15480
  body: JSON.stringify(params)
15428
- }, REQUEST_TIMEOUT_MS$1, "json");
15481
+ }, getRequestTimeoutMs(), "json");
15429
15482
  } catch (err) {
15430
15483
  return { error: `API call error: ${String(err)}` };
15431
15484
  }
@@ -15549,7 +15602,7 @@ var OpenAiAssistantProvider = class extends OpenAiGenericProvider {
15549
15602
  organization: this.getOrganization(),
15550
15603
  baseURL: this.getApiUrl(),
15551
15604
  maxRetries: 3,
15552
- timeout: REQUEST_TIMEOUT_MS$1,
15605
+ timeout: getRequestTimeoutMs(),
15553
15606
  defaultHeaders: this.assistantConfig.headers
15554
15607
  });
15555
15608
  const messages = parseChatPrompt(prompt, [{
@@ -15815,7 +15868,7 @@ var OpenAiModerationProvider = class OpenAiModerationProvider extends OpenAiGene
15815
15868
  method: "POST",
15816
15869
  headers,
15817
15870
  body: requestBody
15818
- }, REQUEST_TIMEOUT_MS$1, "json", true, this.config.maxRetries));
15871
+ }, getRequestTimeoutMs(), "json", true, this.config.maxRetries));
15819
15872
  if (status < 200 || status >= 300) return handleApiError$1(`${status} ${statusText}`, typeof data === "string" ? data : JSON.stringify(data));
15820
15873
  logger.debug(`\tOpenAI moderation API response: ${JSON.stringify(data)}`);
15821
15874
  const response = parseOpenAIModerationResponse(data);
@@ -17250,7 +17303,7 @@ var OpenRouterProvider = class extends OpenAiChatCompletionProvider {
17250
17303
  ...config.headers
17251
17304
  },
17252
17305
  body: JSON.stringify(body)
17253
- }, REQUEST_TIMEOUT_MS$1, "json", context?.bustCache ?? context?.debug));
17306
+ }, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug));
17254
17307
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
17255
17308
  } catch (err) {
17256
17309
  logger.error(`API call error: ${String(err)}`);
@@ -17521,7 +17574,7 @@ var PythonWorker = class {
17521
17574
  maxCrashes = 3;
17522
17575
  pendingRequest = null;
17523
17576
  requestTimeout = null;
17524
- constructor(scriptPath, functionName, pythonPath, timeout = REQUEST_TIMEOUT_MS$1, onReady) {
17577
+ constructor(scriptPath, functionName, pythonPath, timeout = getRequestTimeoutMs(), onReady) {
17525
17578
  this.scriptPath = scriptPath;
17526
17579
  this.functionName = functionName;
17527
17580
  this.pythonPath = pythonPath;
@@ -18225,7 +18278,7 @@ var ReplicateProvider = class {
18225
18278
  Prefer: "wait=60"
18226
18279
  },
18227
18280
  body: JSON.stringify(data)
18228
- }, REQUEST_TIMEOUT_MS$1, "json")).data;
18281
+ }, getRequestTimeoutMs(), "json")).data;
18229
18282
  if (response.status === "starting" || response.status === "processing") response = await this.pollForCompletion(response.id);
18230
18283
  if (response.status === "failed") throw new Error(response.error || "Prediction failed");
18231
18284
  response = response.output;
@@ -18271,7 +18324,7 @@ var ReplicateProvider = class {
18271
18324
  const prediction = (await fetchWithCache(`https://api.replicate.com/v1/predictions/${predictionId}`, {
18272
18325
  method: "GET",
18273
18326
  headers: { Authorization: `Bearer ${this.apiKey}` }
18274
- }, REQUEST_TIMEOUT_MS$1, "json", false)).data;
18327
+ }, getRequestTimeoutMs(), "json", false)).data;
18275
18328
  if (prediction.status === "succeeded" || prediction.status === "failed" || prediction.status === "canceled") return prediction;
18276
18329
  await new Promise((resolve) => setTimeout(resolve, pollInterval));
18277
18330
  }
@@ -18363,7 +18416,7 @@ var ReplicateImageProvider = class extends ReplicateProvider {
18363
18416
  Prefer: "wait=60"
18364
18417
  },
18365
18418
  body: JSON.stringify(data)
18366
- }, REQUEST_TIMEOUT_MS$1, "json")).data;
18419
+ }, getRequestTimeoutMs(), "json")).data;
18367
18420
  logger.debug(`Initial prediction status: ${prediction.status}, ID: ${prediction.id}`);
18368
18421
  if (prediction.status === "starting" || prediction.status === "processing") prediction = await this.pollForCompletion(prediction.id);
18369
18422
  logger.debug("Final Replicate prediction status", {
@@ -18811,7 +18864,7 @@ var SnowflakeCortexProvider = class extends OpenAiChatCompletionProvider {
18811
18864
  ...config.headers
18812
18865
  },
18813
18866
  body: JSON.stringify(body)
18814
- }, REQUEST_TIMEOUT_MS$1, "json", context?.bustCache ?? context?.debug));
18867
+ }, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug));
18815
18868
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
18816
18869
  } catch (err) {
18817
18870
  logger.error(`[Snowflake Cortex] API call error: ${String(err)}`);
@@ -19228,7 +19281,6 @@ function createTrueFoundryProvider(providerPath, options = {}) {
19228
19281
  }
19229
19282
  //#endregion
19230
19283
  //#region src/providers/vercel.ts
19231
- const DEFAULT_TIMEOUT_MS = REQUEST_TIMEOUT_MS$1;
19232
19284
  /**
19233
19285
  * Resolves the API key from config, environment variables, or defaults.
19234
19286
  */
@@ -19364,7 +19416,7 @@ var VercelAiProvider = class {
19364
19416
  * Handles streaming API calls using streamText().
19365
19417
  */
19366
19418
  async callApiStreaming(messages) {
19367
- const timeout = this.config.timeout ?? DEFAULT_TIMEOUT_MS;
19419
+ const timeout = this.config.timeout ?? getRequestTimeoutMs();
19368
19420
  const { signal, cleanup } = createTimeoutController(timeout);
19369
19421
  try {
19370
19422
  const gateway = await createGatewayInstance(this.config, this.env);
@@ -19405,7 +19457,7 @@ var VercelAiProvider = class {
19405
19457
  * Handles structured output API calls using generateObject().
19406
19458
  */
19407
19459
  async callApiStructured(messages) {
19408
- const timeout = this.config.timeout ?? DEFAULT_TIMEOUT_MS;
19460
+ const timeout = this.config.timeout ?? getRequestTimeoutMs();
19409
19461
  const { signal, cleanup } = createTimeoutController(timeout);
19410
19462
  try {
19411
19463
  const gateway = await createGatewayInstance(this.config, this.env);
@@ -19481,7 +19533,7 @@ var VercelAiProvider = class {
19481
19533
  * Handles non-streaming API calls using generateText().
19482
19534
  */
19483
19535
  async callApiNonStreaming(messages) {
19484
- const timeout = this.config.timeout ?? DEFAULT_TIMEOUT_MS;
19536
+ const timeout = this.config.timeout ?? getRequestTimeoutMs();
19485
19537
  const { signal, cleanup } = createTimeoutController(timeout);
19486
19538
  try {
19487
19539
  const gateway = await createGatewayInstance(this.config, this.env);
@@ -19559,7 +19611,7 @@ var VercelAiEmbeddingProvider = class {
19559
19611
  }
19560
19612
  }
19561
19613
  }
19562
- const timeout = this.config.timeout ?? DEFAULT_TIMEOUT_MS;
19614
+ const timeout = this.config.timeout ?? getRequestTimeoutMs();
19563
19615
  const { signal, cleanup } = createTimeoutController(timeout);
19564
19616
  try {
19565
19617
  const gateway = await createGatewayInstance(this.config, this.env);
@@ -19650,7 +19702,7 @@ var VoyageEmbeddingProvider = class {
19650
19702
  ...this.config.headers
19651
19703
  },
19652
19704
  body: JSON.stringify(body)
19653
- }, REQUEST_TIMEOUT_MS$1));
19705
+ }, getRequestTimeoutMs()));
19654
19706
  } catch (err) {
19655
19707
  logger.error(`API call error: ${err}`);
19656
19708
  throw err;
@@ -19790,7 +19842,7 @@ function createWatsonXAuthCacheHash(authSelection) {
19790
19842
  }
19791
19843
  async function fetchModelSpecs() {
19792
19844
  try {
19793
- const { data, cached: _cached, latencyMs: _latencyMs } = await fetchWithCache("https://us-south.ml.cloud.ibm.com/ml/v1/foundation_model_specs?version=2023-09-30", { headers: { "Content-Type": "application/json" } }, REQUEST_TIMEOUT_MS$1);
19845
+ const { data, cached: _cached, latencyMs: _latencyMs } = await fetchWithCache("https://us-south.ml.cloud.ibm.com/ml/v1/foundation_model_specs?version=2023-09-30", { headers: { "Content-Type": "application/json" } }, getRequestTimeoutMs());
19794
19846
  return (typeof data === "string" ? JSON.parse(data) : data)?.resources || [];
19795
19847
  } catch (error) {
19796
19848
  logger.error(`Failed to fetch model specs: ${error}`);
@@ -20133,7 +20185,7 @@ var WebhookProvider = class {
20133
20185
  method: "POST",
20134
20186
  headers: { "Content-Type": "application/json" },
20135
20187
  body: JSON.stringify(params)
20136
- }, REQUEST_TIMEOUT_MS$1, "json"));
20188
+ }, getRequestTimeoutMs(), "json"));
20137
20189
  } catch (err) {
20138
20190
  return { error: `Webhook call error: ${String(err)}` };
20139
20191
  }
@@ -20211,7 +20263,7 @@ var WebSocketProvider = class {
20211
20263
  constructor(url, options) {
20212
20264
  this.config = options.config;
20213
20265
  this.url = this.config.url || url;
20214
- this.timeoutMs = this.config.timeoutMs || REQUEST_TIMEOUT_MS$1;
20266
+ this.timeoutMs = this.config.timeoutMs || getRequestTimeoutMs();
20215
20267
  this.transformResponse = createTransformResponse(this.config.transformResponse || this.config.responseParser);
20216
20268
  this.streamResponse = this.config.streamResponse ? createStreamResponse(this.config.streamResponse) : void 0;
20217
20269
  invariant(this.config.messageTemplate, `Expected WebSocket provider ${this.url} to have a config containing {messageTemplate}, but got ${safeJsonStringify(this.config)}`);
@@ -20666,7 +20718,7 @@ var XAIImageProvider = class extends OpenAiImageProvider {
20666
20718
  let cached = false;
20667
20719
  let latencyMs;
20668
20720
  try {
20669
- ({data, cached, status, statusText, latencyMs} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, REQUEST_TIMEOUT_MS$1));
20721
+ ({data, cached, status, statusText, latencyMs} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, getRequestTimeoutMs()));
20670
20722
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
20671
20723
  } catch (err) {
20672
20724
  logger.error(`API call error: ${String(err)}`);
@@ -20839,7 +20891,7 @@ var XAIResponsesProvider = class {
20839
20891
  ...config.headers
20840
20892
  },
20841
20893
  body: JSON.stringify(body)
20842
- }, REQUEST_TIMEOUT_MS$1, "json", context?.bustCache ?? context?.debug, this.config.maxRetries);
20894
+ }, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug, this.config.maxRetries);
20843
20895
  data = response.data;
20844
20896
  cached = response.cached;
20845
20897
  status = response.status;
@@ -21619,7 +21671,7 @@ const providerMap = [
21619
21671
  {
21620
21672
  test: (providerPath) => providerPath.startsWith("opencode:") || providerPath === "opencode",
21621
21673
  create: async (providerPath, providerOptions, context) => {
21622
- const { OpenCodeSDKProvider } = await import("./opencode-sdk-D05JSgMQ.js");
21674
+ const { OpenCodeSDKProvider } = await import("./opencode-sdk-CFY-1bkH.js");
21623
21675
  return new OpenCodeSDKProvider({
21624
21676
  ...providerOptions,
21625
21677
  id: providerPath,
@@ -21631,14 +21683,14 @@ const providerMap = [
21631
21683
  {
21632
21684
  test: (providerPath) => providerPath.startsWith("openclaw:") || providerPath === "openclaw",
21633
21685
  create: async (providerPath, providerOptions, context) => {
21634
- const { createOpenClawProvider } = await import("./openclaw-zIJAsz3P.js");
21686
+ const { createOpenClawProvider } = await import("./openclaw-2Y9Ukt9Y.js");
21635
21687
  return createOpenClawProvider(providerPath, providerOptions, context.env);
21636
21688
  }
21637
21689
  },
21638
21690
  {
21639
21691
  test: (providerPath) => providerPath.startsWith("anthropic:claude-agent-sdk") || providerPath.startsWith("anthropic:claude-code"),
21640
21692
  create: async (_providerPath, providerOptions, _context) => {
21641
- const { ClaudeCodeSDKProvider } = await import("./claude-agent-sdk-x1XJ1-pU.js");
21693
+ const { ClaudeCodeSDKProvider } = await import("./claude-agent-sdk-DB99Npst.js");
21642
21694
  return new ClaudeCodeSDKProvider({ ...providerOptions });
21643
21695
  }
21644
21696
  },
@@ -21694,25 +21746,25 @@ const providerMap = [
21694
21746
  const modelName = splits.slice(2).join(":");
21695
21747
  if (modelType === "converse") return new AwsBedrockConverseProvider(modelName, providerOptions);
21696
21748
  if (modelType === "nova-sonic" || modelType.includes("amazon.nova-sonic")) {
21697
- const { NovaSonicProvider } = await import("./nova-sonic-BNGmgfFz.js");
21749
+ const { NovaSonicProvider } = await import("./nova-sonic-BeAjEzkG.js");
21698
21750
  return new NovaSonicProvider("amazon.nova-sonic-v1:0", providerOptions);
21699
21751
  }
21700
21752
  if (modelType.includes("luma.ray") || modelName.includes("luma.ray")) {
21701
- const { LumaRayVideoProvider } = await import("./luma-ray-OEMmS1RB.js");
21753
+ const { LumaRayVideoProvider } = await import("./luma-ray-DLWLjDCa.js");
21702
21754
  return new LumaRayVideoProvider(modelName.includes("luma.ray") ? modelName : splits.slice(1).join(":") || "luma.ray-v2:0", providerOptions);
21703
21755
  }
21704
21756
  if (modelType.includes("amazon.nova-reel") || modelType === "video" && (modelName.includes("amazon.nova-reel") || modelName === "")) {
21705
- const { NovaReelVideoProvider } = await import("./nova-reel-BGPNBOMS.js");
21757
+ const { NovaReelVideoProvider } = await import("./nova-reel-DN7gTJzd.js");
21706
21758
  return new NovaReelVideoProvider(modelName || "amazon.nova-reel-v1:1", providerOptions);
21707
21759
  }
21708
21760
  if (modelType === "agents") {
21709
- const { AwsBedrockAgentsProvider } = await import("./agents-D-vDNFx4.js");
21761
+ const { AwsBedrockAgentsProvider } = await import("./agents-CASf5zRj.js");
21710
21762
  return new AwsBedrockAgentsProvider(modelName, providerOptions);
21711
21763
  }
21712
21764
  if (modelType === "completion") return new AwsBedrockCompletionProvider(modelName, providerOptions);
21713
21765
  if (modelType === "embeddings" || modelType === "embedding") return new AwsBedrockEmbeddingProvider(modelName, providerOptions);
21714
21766
  if (modelType === "kb" || modelType === "knowledge-base") {
21715
- const { AwsBedrockKnowledgeBaseProvider } = await import("./knowledgeBase-CkMljjdg.js");
21767
+ const { AwsBedrockKnowledgeBaseProvider } = await import("./knowledgeBase-BGbDBwr5.js");
21716
21768
  return new AwsBedrockKnowledgeBaseProvider(modelName, providerOptions);
21717
21769
  }
21718
21770
  return new AwsBedrockCompletionProvider(splits.slice(1).join(":"), providerOptions);
@@ -21722,7 +21774,7 @@ const providerMap = [
21722
21774
  test: (providerPath) => providerPath.startsWith("bedrock-agent:"),
21723
21775
  create: async (providerPath, providerOptions, _context) => {
21724
21776
  const agentId = providerPath.substring(14);
21725
- const { AwsBedrockAgentsProvider } = await import("./agents-D-vDNFx4.js");
21777
+ const { AwsBedrockAgentsProvider } = await import("./agents-CASf5zRj.js");
21726
21778
  return new AwsBedrockAgentsProvider(agentId, providerOptions);
21727
21779
  }
21728
21780
  },
@@ -21732,7 +21784,7 @@ const providerMap = [
21732
21784
  const splits = providerPath.split(":");
21733
21785
  const modelType = splits[1];
21734
21786
  const endpointName = splits.slice(2).join(":");
21735
- const { SageMakerCompletionProvider, SageMakerEmbeddingProvider } = await import("./sagemaker-vhtSV7JI.js");
21787
+ const { SageMakerCompletionProvider, SageMakerEmbeddingProvider } = await import("./sagemaker-DlajLLgJ.js");
21736
21788
  if (modelType === "embedding" || modelType === "embeddings") return new SageMakerEmbeddingProvider(endpointName || modelType, providerOptions);
21737
21789
  if (splits.length === 2) return new SageMakerCompletionProvider(modelType, providerOptions);
21738
21790
  if (endpointName.includes("jumpstart") || modelType === "jumpstart") return new SageMakerCompletionProvider(endpointName, {
@@ -21773,7 +21825,7 @@ const providerMap = [
21773
21825
  {
21774
21826
  test: (providerPath) => providerPath.startsWith("cloudflare-ai:"),
21775
21827
  create: async (providerPath, providerOptions, context) => {
21776
- const { createCloudflareAiProvider } = await import("./cloudflare-ai-RFSojyXG.js");
21828
+ const { createCloudflareAiProvider } = await import("./cloudflare-ai-ChBxkojW.js");
21777
21829
  return createCloudflareAiProvider(providerPath, {
21778
21830
  ...providerOptions,
21779
21831
  env: context.env
@@ -21783,7 +21835,7 @@ const providerMap = [
21783
21835
  {
21784
21836
  test: (providerPath) => providerPath.startsWith("cloudflare-gateway:"),
21785
21837
  create: async (providerPath, providerOptions, context) => {
21786
- const { createCloudflareGatewayProvider } = await import("./cloudflare-gateway-CF-Vb-2Z.js");
21838
+ const { createCloudflareGatewayProvider } = await import("./cloudflare-gateway-C0N-5s62.js");
21787
21839
  return createCloudflareGatewayProvider(providerPath, {
21788
21840
  ...providerOptions,
21789
21841
  env: context.env
@@ -21935,27 +21987,27 @@ const providerMap = [
21935
21987
  create: async (providerPath, providerOptions, context) => {
21936
21988
  const modelType = providerPath.split(":")[1];
21937
21989
  if (modelType === "image") {
21938
- const { createHyperbolicImageProvider } = await import("./image-BN-hjLL9.js");
21990
+ const { createHyperbolicImageProvider } = await import("./image-B6hCz0z3.js");
21939
21991
  return createHyperbolicImageProvider(providerPath, {
21940
21992
  ...providerOptions,
21941
21993
  env: context.env
21942
21994
  });
21943
21995
  }
21944
21996
  if (modelType === "audio") {
21945
- const { createHyperbolicAudioProvider } = await import("./audio-DyiebVB3.js");
21997
+ const { createHyperbolicAudioProvider } = await import("./audio-DOI8kth4.js");
21946
21998
  return createHyperbolicAudioProvider(providerPath, {
21947
21999
  ...providerOptions,
21948
22000
  env: context.env
21949
22001
  });
21950
22002
  }
21951
- const { createHyperbolicProvider } = await import("./chat-iwaM5UTQ.js");
22003
+ const { createHyperbolicProvider } = await import("./chat-Dh6mb5OL.js");
21952
22004
  return createHyperbolicProvider(providerPath, providerOptions);
21953
22005
  }
21954
22006
  },
21955
22007
  {
21956
22008
  test: (providerPath) => providerPath.startsWith("litellm:"),
21957
22009
  create: async (providerPath, providerOptions, context) => {
21958
- const { createLiteLLMProvider } = await import("./litellm-BXyn5kZK.js");
22010
+ const { createLiteLLMProvider } = await import("./litellm-CRTmskqC.js");
21959
22011
  return createLiteLLMProvider(providerPath, {
21960
22012
  config: providerOptions,
21961
22013
  env: context.env
@@ -22012,7 +22064,7 @@ const providerMap = [
22012
22064
  const modelName = splits.slice(2).join(":");
22013
22065
  const configuredModel = getConfiguredOpenAiModel(providerOptions);
22014
22066
  if (modelType === "codex-app-server" || modelType === "codex-desktop") {
22015
- const { OpenAICodexAppServerProvider } = await import("./codex-app-server-Dd22dC_N.js");
22067
+ const { OpenAICodexAppServerProvider } = await import("./codex-app-server-D6gbvJFw.js");
22016
22068
  const codexModel = modelName || configuredModel;
22017
22069
  const codexProviderId = providerOptions.id ?? providerPath;
22018
22070
  return new OpenAICodexAppServerProvider({
@@ -22029,7 +22081,7 @@ const providerMap = [
22029
22081
  });
22030
22082
  }
22031
22083
  if (modelType === "codex-sdk" || modelType === "codex") {
22032
- const { OpenAICodexSDKProvider } = await import("./codex-sdk-BGjVAk23.js");
22084
+ const { OpenAICodexSDKProvider } = await import("./codex-sdk-CChw5CYU.js");
22033
22085
  const codexModel = modelName || configuredModel;
22034
22086
  const codexProviderId = providerOptions.id ?? providerPath;
22035
22087
  return new OpenAICodexSDKProvider({
@@ -22049,7 +22101,7 @@ const providerMap = [
22049
22101
  if (modelType === "realtime") return new OpenAiRealtimeProvider(modelName || configuredModel || "gpt-4o-realtime-preview-2024-12-17", providerOptions);
22050
22102
  if (modelType === "responses") return new OpenAiResponsesProvider(modelName || configuredModel || "gpt-4.1-2025-04-14", providerOptions);
22051
22103
  if (modelType === "transcription") {
22052
- const { OpenAiTranscriptionProvider } = await import("./transcription-CfU5loSq.js");
22104
+ const { OpenAiTranscriptionProvider } = await import("./transcription-Cupf4JNw.js");
22053
22105
  return new OpenAiTranscriptionProvider(modelName || configuredModel || "gpt-4o-transcribe-diarize", providerOptions);
22054
22106
  }
22055
22107
  if (OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelType)) return new OpenAiChatCompletionProvider(modelType, providerOptions);
@@ -22057,11 +22109,11 @@ const providerMap = [
22057
22109
  if (OpenAiRealtimeProvider.OPENAI_REALTIME_MODEL_NAMES.includes(modelType)) return new OpenAiRealtimeProvider(modelType, providerOptions);
22058
22110
  if (OpenAiResponsesProvider.OPENAI_RESPONSES_MODEL_NAMES.includes(modelType)) return new OpenAiResponsesProvider(modelType, providerOptions);
22059
22111
  if (modelType === "agents") {
22060
- const { OpenAiAgentsProvider } = await import("./agents-B8q7h_ek.js");
22112
+ const { OpenAiAgentsProvider } = await import("./agents-DpRJdGBZ.js");
22061
22113
  return new OpenAiAgentsProvider(modelName || "default-agent", providerOptions);
22062
22114
  }
22063
22115
  if (modelType === "chatkit") {
22064
- const { OpenAiChatKitProvider } = await import("./chatkit-B6DWi70Q.js");
22116
+ const { OpenAiChatKitProvider } = await import("./chatkit-Dxp6KO70.js");
22065
22117
  return new OpenAiChatKitProvider(modelName || "", providerOptions);
22066
22118
  }
22067
22119
  if (modelType === "assistant") return new OpenAiAssistantProvider(modelName, providerOptions);
@@ -22104,7 +22156,7 @@ const providerMap = [
22104
22156
  {
22105
22157
  test: (providerPath) => providerPath.startsWith("quiverai:"),
22106
22158
  create: async (providerPath, providerOptions, context) => {
22107
- const { createQuiverAiProvider } = await import("./quiverai-BvIhI_0l.js");
22159
+ const { createQuiverAiProvider } = await import("./quiverai-DHNIAUfS.js");
22108
22160
  return createQuiverAiProvider(providerPath, providerOptions, context.env);
22109
22161
  }
22110
22162
  },
@@ -22122,7 +22174,7 @@ const providerMap = [
22122
22174
  {
22123
22175
  test: (providerPath) => providerPath.startsWith("modelslab:"),
22124
22176
  create: async (providerPath, providerOptions, context) => {
22125
- const { ModelsLabImageProvider } = await import("./modelslab-EyDczZ5A.js");
22177
+ const { ModelsLabImageProvider } = await import("./modelslab-B72XbAlR.js");
22126
22178
  const splits = providerPath.split(":");
22127
22179
  const modelType = splits[1];
22128
22180
  const modelName = splits.slice(2).join(":");
@@ -22166,7 +22218,7 @@ const providerMap = [
22166
22218
  {
22167
22219
  test: (providerPath) => providerPath.startsWith("aimlapi:"),
22168
22220
  create: async (providerPath, providerOptions, context) => {
22169
- const { createAimlApiProvider } = await import("./aimlapi-eYv3a_DK.js");
22221
+ const { createAimlApiProvider } = await import("./aimlapi-DRQSL-Z4.js");
22170
22222
  return createAimlApiProvider(providerPath, {
22171
22223
  ...providerOptions,
22172
22224
  env: context.env
@@ -22176,7 +22228,7 @@ const providerMap = [
22176
22228
  {
22177
22229
  test: (providerPath) => providerPath.startsWith("cometapi:"),
22178
22230
  create: async (providerPath, providerOptions, context) => {
22179
- const { createCometApiProvider } = await import("./cometapi-Bu9B8NUY.js");
22231
+ const { createCometApiProvider } = await import("./cometapi-sBbQmdfk.js");
22180
22232
  return createCometApiProvider(providerPath, {
22181
22233
  ...providerOptions,
22182
22234
  env: context.env
@@ -22186,7 +22238,7 @@ const providerMap = [
22186
22238
  {
22187
22239
  test: (providerPath) => providerPath.startsWith("docker:"),
22188
22240
  create: async (providerPath, providerOptions, context) => {
22189
- const { createDockerProvider } = await import("./docker-DdJQBxK9.js");
22241
+ const { createDockerProvider } = await import("./docker-BFQc9ccU.js");
22190
22242
  return createDockerProvider(providerPath, {
22191
22243
  ...providerOptions,
22192
22244
  env: context.env
@@ -22415,7 +22467,7 @@ Example: transformers:feature-extraction:Xenova/all-MiniLM-L6-v2`);
22415
22467
  test: (providerPath) => providerPath === "slack" || providerPath.startsWith("slack:"),
22416
22468
  create: async (providerPath, providerOptions, _context) => {
22417
22469
  try {
22418
- const { SlackProvider } = await import("./slack-DTEFhrMn.js");
22470
+ const { SlackProvider } = await import("./slack-DrcMAkvd.js");
22419
22471
  if (providerPath === "slack") return new SlackProvider(providerOptions);
22420
22472
  const splits = providerPath.split(":");
22421
22473
  if (splits.length < 2) throw new Error("Invalid Slack provider path. Use slack:<channel_id> or slack:channel:<channel_id>");
@@ -22458,7 +22510,7 @@ function isRedteamProviderPath(providerPath) {
22458
22510
  const providerFamilies = [{
22459
22511
  canHandle: isRedteamProviderPath,
22460
22512
  factories: async () => {
22461
- const { redteamProviderFactories } = await import("./registry-DXm1t_x0.js");
22513
+ const { redteamProviderFactories } = await import("./registry-qNoxbVEb.js");
22462
22514
  return redteamProviderFactories;
22463
22515
  }
22464
22516
  }];
@@ -22731,4 +22783,4 @@ function getProviderIds(providerPaths) {
22731
22783
  //#endregion
22732
22784
  export { DefaultSuggestionsProvider as C, AzureChatCompletionProvider as D, AzureEmbeddingProvider as E, DefaultLlmRubricProvider as S, AzureModerationProvider as T, VertexChatProvider as _, resolveProviderConfigs as a, DefaultGradingJsonProvider as b, OpenAiModerationProvider as c, MCPProvider as d, HttpProvider as f, DefaultGradingProvider as g, DefaultEmbeddingProvider as h, resolveProvider as i, MistralChatCompletionProvider as l, createTransformResponse$1 as m, loadApiProvider as n, getFileHashes as o, createTransformRequest as p, loadApiProviders as r, parseScriptParts as s, getProviderIds as t, MistralEmbeddingProvider as u, GoogleLiveProvider as v, DefaultSynthesizeProvider as w, DefaultGradingProvider$1 as x, AIStudioChatProvider as y };
22733
22785
 
22734
- //# sourceMappingURL=providers-B9KzWxAX.js.map
22786
+ //# sourceMappingURL=providers-CYBHjFEg.js.map