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,37 +1,37 @@
1
1
  import { t as __exportAll } from "./chunk-DEq-mXcV.js";
2
- import { C as getEnvFloat, T as getEnvString, _ as isValidJson, a as logger, c as REDACTED, f as sanitizeObject, k as state, l as isSecretField, p as sanitizeUrl, u as looksLikeSecret, w as getEnvInt, x as getConfigDirectoryPath, y as safeJsonStringify } from "./logger-Ct2S6Yx-.js";
2
+ import { C as getEnvFloat, T as getEnvString, _ as isValidJson, a as logger, c as REDACTED, f as sanitizeObject, k as state, l as isSecretField, p as sanitizeUrl, u as looksLikeSecret, w as getEnvInt, x as getConfigDirectoryPath, y as safeJsonStringify } from "./logger-Cs0I2v_y.js";
3
3
  import { t as invariant } from "./invariant-Ddh24eXh.js";
4
4
  import { Wt as isApiProvider } from "./types-D6glLbdF.js";
5
- import { C as transformTools, S as transformToolChoice, T as cloudConfig, b as parseChatPrompt, f as LONG_RUNNING_MODEL_TIMEOUT_MS, g as isOpenAIToolChoice, h as isOpenAIToolArray, l as sleep, m as calculateCost, p as REQUEST_TIMEOUT_MS$1, r as fetchWithTimeout, t as fetchWithProxy, v as openaiToolChoiceToBedrock, x as toTitleCase, y as openaiToolsToBedrock } from "./fetch-It34O8Ur.js";
5
+ import { C as transformTools, S as transformToolChoice, T as cloudConfig, b as parseChatPrompt, f as LONG_RUNNING_MODEL_TIMEOUT_MS, g as isOpenAIToolChoice, h as isOpenAIToolArray, l as sleep, m as getRequestTimeoutMs, p as calculateCost, r as fetchWithTimeout, t as fetchWithProxy, v as openaiToolChoiceToBedrock, x as toTitleCase, y as openaiToolsToBedrock } from "./fetch-CHJu2KON.js";
6
6
  import { i as isJavascriptFile } from "./fileExtensions-CXRfY3Ss.js";
7
- import { n as getWrapperDir, o as safeResolve, r as importModule } from "./esm-BTK1W7lG.js";
7
+ import { n as getWrapperDir, o as safeResolve, r as importModule } from "./esm-C_yrt93A.js";
8
8
  import { i as withGenAISpan } from "./genaiTracer-D18lYzhB.js";
9
- import { n as renderVarsInObject, o as getNunjucksEngine, t as renderEnvOnlyInObject } from "./render-DFfDeYUK.js";
10
- import { t as providerRegistry } from "./providerRegistry-DHcFiVWX.js";
11
- import { a as getCloudDatabaseId, d as isCloudProvider, m as validateLinkedTargetId, r as storeMedia, t as getMediaStorage, u as getProviderFromCloud } from "./storage-CD-GWAdx.js";
12
- import { i as validatePythonPath, n as getEnvInt$1, r as runPython, t as getConfiguredPythonPath } from "./pythonUtils-D0BYebvX.js";
13
- import { C as getResolvedRelativePath, D as maybeLoadResponseFormatFromExternalFile, E as maybeLoadFromExternalFileWithVars, M as loadFunction, N as parseFileUrl, O as maybeLoadToolsFromExternalFile, T as maybeLoadFromExternalFile, b as normalizeProviderRef, k as parsePathOrGlob, v as isProviderConfigFileReference, w as maybeLoadConfigFromExternalFile, x as readProviderConfigFile, y as loadProviderConfigsFromFile } from "./util-Bx677_k2.js";
9
+ import { n as renderVarsInObject, o as getNunjucksEngine, t as renderEnvOnlyInObject } from "./render-CTZQAINJ.js";
10
+ import { t as providerRegistry } from "./providerRegistry-Bf4tRLgu.js";
11
+ import { a as getCloudDatabaseId, d as isCloudProvider, m as validateLinkedTargetId, r as storeMedia, t as getMediaStorage, u as getProviderFromCloud } from "./storage-fbHNSuZ9.js";
12
+ import { i as validatePythonPath, n as getEnvInt$1, r as runPython, t as getConfiguredPythonPath } from "./pythonUtils-C4Wnz6Q7.js";
13
+ import { C as getResolvedRelativePath, D as maybeLoadResponseFormatFromExternalFile, E as maybeLoadFromExternalFileWithVars, M as loadFunction, N as parseFileUrl, O as maybeLoadToolsFromExternalFile, T as maybeLoadFromExternalFile, b as normalizeProviderRef, k as parsePathOrGlob, v as isProviderConfigFileReference, w as maybeLoadConfigFromExternalFile, x as readProviderConfigFile, y as loadProviderConfigsFromFile } from "./util-vaCPFatZ.js";
14
14
  import { n as sha256 } from "./createHash-BtbSX3mj.js";
15
- import { a as getScopedCacheKey, i as getCache, o as isCacheEnabled, r as fetchWithCache } from "./cache-DIXbtkNO.js";
16
- import { i as normalizeFinishReason, n as MCPClient, r as FINISH_REASON_MAP, t as OpenAiChatCompletionProvider } from "./chat-Dabu84Br.js";
17
- 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-DmvYBRll.js";
18
- import { t as OpenAiGenericProvider } from "./openai-zgwBb4Ff.js";
19
- import { a as calculateOpenAICost, c as getTokenUsage$2, o as failApiCall, r as OPENAI_REALTIME_MODELS, s as formatOpenAiError } from "./util-LKTmNsMQ.js";
20
- import { t as OpenAiEmbeddingProvider } from "./embedding-Bi3rxrZF.js";
15
+ import { a as getScopedCacheKey, i as getCache, o as isCacheEnabled, r as fetchWithCache } from "./cache-CT5D7d_A.js";
16
+ import { i as normalizeFinishReason, n as MCPClient, r as FINISH_REASON_MAP, t as OpenAiChatCompletionProvider } from "./chat-CCtIXezK.js";
17
+ 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-R1PnNdLv.js";
18
+ import { t as OpenAiGenericProvider } from "./openai-Bfbg6L4c.js";
19
+ import { a as calculateOpenAICost, c as getTokenUsage$2, o as failApiCall, r as OPENAI_REALTIME_MODELS, s as formatOpenAiError } from "./util-B2Nt2Oy7.js";
20
+ import { t as OpenAiEmbeddingProvider } from "./embedding-cd5oPBkX.js";
21
21
  import { a as createEmptyTokenUsage, n as accumulateResponseTokenUsage } from "./tokenUsageUtils-CmnQ0G2m.js";
22
- import { n as AnthropicGenericProvider, t as AnthropicMessagesProvider } from "./messages-vsE_-Lv0.js";
23
- import { a as isClaudeOpus47Model, i as getTokenUsage$3, n as calculateAnthropicCost, o as outputFromMessage, s as parseMessages, t as ANTHROPIC_MODELS } from "./util--WMgw7wM.js";
24
- import { n as ResponsesProcessor, r as FunctionCallbackHandler, t as OpenAiResponsesProvider } from "./responses-URRzV8qE.js";
22
+ import { n as AnthropicGenericProvider, t as AnthropicMessagesProvider } from "./messages-Dy5vvc3H.js";
23
+ import { a as isClaudeOpus47Model, i as getTokenUsage$3, n as calculateAnthropicCost, o as outputFromMessage, s as parseMessages, t as ANTHROPIC_MODELS } from "./util-SNUDkWJ8.js";
24
+ import { n as ResponsesProcessor, r as FunctionCallbackHandler, t as OpenAiResponsesProvider } from "./responses-C2vhwf8F.js";
25
25
  import { t as ellipsize } from "./text-DwYK5EBn.js";
26
- import { t as telemetry } from "./telemetry-DwX9XUN5.js";
27
- import { a as novaParseMessages, i as novaOutputFromMessage, t as AwsBedrockGenericProvider } from "./base-CKLo890h.js";
28
- import { r as storeBlob } from "./blobs-Dwef1Ao1.js";
26
+ import { t as telemetry } from "./telemetry-BTIhfopq.js";
27
+ import { a as novaParseMessages, i as novaOutputFromMessage, t as AwsBedrockGenericProvider } from "./base-0yya4DsM.js";
28
+ import { r as storeBlob } from "./blobs-BfIMflt0.js";
29
29
  import { t as getProcessShim } from "./processShim-BcGzU8fY.js";
30
- import { i as formatOutput, n as buildStructuredImageOutputs, r as callOpenAiImageApi, t as OpenAiImageProvider } from "./image-BvUAW344.js";
31
- import { t as OpenAiCompletionProvider } from "./completion-sNvCLTAP.js";
32
- import { r as parsePackageProvider } from "./packageParser-CgE-ziRo.js";
33
- import { n as runRuby } from "./rubyUtils-CnlW8AYb.js";
34
- import { t as SimulatedUser } from "./simulatedUser-U_qAHnuB.js";
30
+ import { i as formatOutput, n as buildStructuredImageOutputs, r as callOpenAiImageApi, t as OpenAiImageProvider } from "./image-CgmaPlV_.js";
31
+ import { t as OpenAiCompletionProvider } from "./completion-CUtdijfr.js";
32
+ import { r as parsePackageProvider } from "./packageParser-CZdMKLBh.js";
33
+ import { n as runRuby } from "./rubyUtils-AvgsD_QH.js";
34
+ import { t as SimulatedUser } from "./simulatedUser-DdcsTBuS.js";
35
35
  import fs, { promises } from "fs";
36
36
  import path from "path";
37
37
  import yaml from "js-yaml";
@@ -199,7 +199,7 @@ var AI21ChatCompletionProvider = class AI21ChatCompletionProvider {
199
199
  Authorization: `Bearer ${this.getApiKey()}`
200
200
  },
201
201
  body: JSON.stringify(body)
202
- }, REQUEST_TIMEOUT_MS$1));
202
+ }, getRequestTimeoutMs()));
203
203
  } catch (err) {
204
204
  return { error: `API call error: ${String(err)}` };
205
205
  }
@@ -1822,6 +1822,45 @@ Please choose one of the following options:
1822
1822
  };
1823
1823
  //#endregion
1824
1824
  //#region src/providers/azure/assistant.ts
1825
+ const AZURE_ASSISTANT_CACHE_KEY_HMAC_KEY = "promptfoo-azure-assistant-cache-key-v1";
1826
+ function normalizeAzureAssistantCacheValue(value, seen = /* @__PURE__ */ new WeakSet()) {
1827
+ if (Array.isArray(value)) {
1828
+ if (seen.has(value)) return "[Circular]";
1829
+ seen.add(value);
1830
+ const normalized = value.map((item) => normalizeAzureAssistantCacheValue(item, seen));
1831
+ seen.delete(value);
1832
+ return normalized;
1833
+ }
1834
+ if (value && typeof value === "object") {
1835
+ if (seen.has(value)) return "[Circular]";
1836
+ const prototype = Object.getPrototypeOf(value);
1837
+ if (prototype !== Object.prototype && prototype !== null) return value;
1838
+ seen.add(value);
1839
+ const normalized = Object.keys(value).sort().reduce((acc, key) => {
1840
+ acc[key] = normalizeAzureAssistantCacheValue(value[key], seen);
1841
+ return acc;
1842
+ }, {});
1843
+ seen.delete(value);
1844
+ return normalized;
1845
+ }
1846
+ return value;
1847
+ }
1848
+ function hmacAzureAssistantCacheValue(value) {
1849
+ const serialized = safeJsonStringify(normalizeAzureAssistantCacheValue(value));
1850
+ invariant(serialized !== void 0, "Azure Assistant cache key input contains values that cannot be serialized");
1851
+ return createHmac("sha256", AZURE_ASSISTANT_CACHE_KEY_HMAC_KEY).update(serialized).digest("hex");
1852
+ }
1853
+ function getAuthHeadersCacheIdentity(authHeaders) {
1854
+ const entries = Object.entries(authHeaders).sort(([nameA], [nameB]) => nameA.localeCompare(nameB));
1855
+ if (entries.length === 0) return {
1856
+ headerNames: [],
1857
+ namespace: "no-auth"
1858
+ };
1859
+ return {
1860
+ headerNames: entries.map(([name]) => name),
1861
+ namespace: hmacAzureAssistantCacheValue(["auth", entries])
1862
+ };
1863
+ }
1825
1864
  var AzureAssistantProvider = class extends AzureGenericProvider {
1826
1865
  assistantConfig;
1827
1866
  functionCallbackHandler = new FunctionCallbackHandler();
@@ -1836,8 +1875,11 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1836
1875
  if (!apiBaseUrl) throw new Error("Azure API host must be set.");
1837
1876
  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.");
1838
1877
  const apiVersion = this.assistantConfig.apiVersion || "2024-04-01-preview";
1839
- const cacheKey = `azure_assistant:${this.deploymentName}:${JSON.stringify({
1878
+ const loadedTools = await maybeLoadToolsFromExternalFile(this.assistantConfig.tools, context?.vars);
1879
+ const cacheKey = `azure_assistant:${this.deploymentName}:${hmacAzureAssistantCacheValue({
1880
+ apiBaseUrl,
1840
1881
  apiVersion,
1882
+ auth: getAuthHeadersCacheIdentity(this.authHeaders),
1841
1883
  instructions: this.assistantConfig.instructions,
1842
1884
  max_tokens: this.assistantConfig.max_tokens,
1843
1885
  model: this.assistantConfig.modelName,
@@ -1846,13 +1888,13 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1846
1888
  temperature: this.assistantConfig.temperature,
1847
1889
  tool_choice: this.assistantConfig.tool_choice,
1848
1890
  tool_resources: this.assistantConfig.tool_resources,
1849
- tools: JSON.stringify(await maybeLoadToolsFromExternalFile(this.assistantConfig.tools, context?.vars)),
1891
+ tools: loadedTools,
1850
1892
  top_p: this.assistantConfig.top_p
1851
1893
  })}`;
1852
1894
  if (isCacheEnabled()) try {
1853
1895
  const cachedResult = await (await getCache()).get(cacheKey);
1854
1896
  if (cachedResult) {
1855
- logger.debug(`Cache hit for assistant prompt: ${prompt.substring(0, 50)}...`);
1897
+ logger.debug("Cache hit for assistant prompt", { promptLength: prompt.length });
1856
1898
  return {
1857
1899
  ...cachedResult,
1858
1900
  cached: true
@@ -1867,7 +1909,10 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1867
1909
  headers: await this.getHeaders(),
1868
1910
  body: JSON.stringify({})
1869
1911
  });
1870
- logger.debug(`Created thread ${threadResponse.id} for prompt: ${prompt.substring(0, 30)}...`);
1912
+ logger.debug("Created thread for assistant prompt", {
1913
+ threadId: threadResponse.id,
1914
+ promptLength: prompt.length
1915
+ });
1871
1916
  await this.makeRequest(`${apiBaseUrl}/openai/threads/${threadResponse.id}/messages?api-version=${apiVersion}`, {
1872
1917
  method: "POST",
1873
1918
  headers: await this.getHeaders(),
@@ -1882,7 +1927,6 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1882
1927
  if (this.assistantConfig.tool_resources) runOptions.tool_resources = this.assistantConfig.tool_resources;
1883
1928
  if (this.assistantConfig.tool_choice) runOptions.tool_choice = this.assistantConfig.tool_choice;
1884
1929
  if (this.assistantConfig.tools) {
1885
- const loadedTools = await maybeLoadToolsFromExternalFile(this.assistantConfig.tools, context?.vars);
1886
1930
  if (loadedTools !== void 0) runOptions.tools = loadedTools;
1887
1931
  }
1888
1932
  if (this.assistantConfig.modelName) runOptions.model = this.assistantConfig.modelName;
@@ -1917,7 +1961,7 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1917
1961
  }
1918
1962
  if (isCacheEnabled() && !result.error) try {
1919
1963
  await (await getCache()).set(cacheKey, result);
1920
- logger.debug(`Cached assistant response for prompt: ${prompt.substring(0, 50)}...`);
1964
+ logger.debug("Cached assistant response for prompt", { promptLength: prompt.length });
1921
1965
  } catch (err) {
1922
1966
  logger.warn(`Error caching result: ${err}`);
1923
1967
  }
@@ -1954,7 +1998,7 @@ var AzureAssistantProvider = class extends AzureGenericProvider {
1954
1998
  * Helper method to make HTTP requests using fetchWithCache
1955
1999
  */
1956
2000
  async makeRequest(url, options) {
1957
- const timeoutMs = this.assistantConfig.timeoutMs ?? REQUEST_TIMEOUT_MS$1;
2001
+ const timeoutMs = this.assistantConfig.timeoutMs ?? getRequestTimeoutMs();
1958
2002
  const retries = this.assistantConfig.retryOptions?.maxRetries ?? 4;
1959
2003
  const shouldBustCache = url.includes("/runs/") && options.method === "GET" || url.includes("/threads") && options.method === "POST" && !url.includes("/messages") && !url.includes("submit_tool_outputs");
1960
2004
  try {
@@ -2377,7 +2421,7 @@ var AzureChatCompletionProvider = class extends AzureGenericProvider {
2377
2421
  ...this.config.headers
2378
2422
  },
2379
2423
  body: JSON.stringify(body)
2380
- }, REQUEST_TIMEOUT_MS$1, "json", context?.bustCache ?? context?.debug);
2424
+ }, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug);
2381
2425
  cached = isCached;
2382
2426
  latencyMs = fetchLatencyMs;
2383
2427
  if (typeof responseData === "string") try {
@@ -2493,7 +2537,7 @@ var AzureCompletionProvider = class extends AzureGenericProvider {
2493
2537
  ...this.config.headers
2494
2538
  },
2495
2539
  body: JSON.stringify(body)
2496
- }, REQUEST_TIMEOUT_MS$1, "json", context?.bustCache ?? context?.debug));
2540
+ }, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug));
2497
2541
  } catch (err) {
2498
2542
  return { error: `API call error: ${String(err)}` };
2499
2543
  }
@@ -2576,7 +2620,7 @@ var AzureEmbeddingProvider = class extends AzureGenericProvider {
2576
2620
  ...this.config.headers
2577
2621
  },
2578
2622
  body: JSON.stringify(body)
2579
- }, REQUEST_TIMEOUT_MS$1));
2623
+ }, getRequestTimeoutMs()));
2580
2624
  } catch (err) {
2581
2625
  return {
2582
2626
  error: `API call error: ${String(err)}`,
@@ -3062,7 +3106,7 @@ var AzureModerationProvider = class AzureModerationProvider extends AzureGeneric
3062
3106
  ...this.configWithHeaders.passthrough || {}
3063
3107
  };
3064
3108
  const controller = new AbortController();
3065
- const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS$1);
3109
+ const timeoutId = setTimeout(() => controller.abort(), getRequestTimeoutMs());
3066
3110
  const response = await fetchWithProxy(url, {
3067
3111
  method: "POST",
3068
3112
  headers,
@@ -3199,7 +3243,7 @@ var AzureResponsesProvider = class extends AzureGenericProvider {
3199
3243
  }
3200
3244
  const body = await this.getAzureResponsesBody(prompt, context, callApiOptions);
3201
3245
  const isDeepResearchModel = this.deploymentName.includes("deep-research");
3202
- let timeout = REQUEST_TIMEOUT_MS$1;
3246
+ let timeout = getRequestTimeoutMs();
3203
3247
  if (isDeepResearchModel) {
3204
3248
  const evalTimeout = getEnvInt("PROMPTFOO_EVAL_TIMEOUT_MS", 0);
3205
3249
  timeout = evalTimeout > 0 ? evalTimeout : LONG_RUNNING_MODEL_TIMEOUT_MS;
@@ -6221,7 +6265,7 @@ var CohereChatCompletionProvider = class CohereChatCompletionProvider {
6221
6265
  "X-Client-Name": getEnvString("COHERE_CLIENT_NAME") || "promptfoo"
6222
6266
  },
6223
6267
  body: JSON.stringify(body)
6224
- }, REQUEST_TIMEOUT_MS$1));
6268
+ }, getRequestTimeoutMs()));
6225
6269
  if (data.message) return { error: data.message };
6226
6270
  const tokenUsage = {
6227
6271
  cached: cached ? data.token_count?.total_tokens || 0 : 0,
@@ -6283,7 +6327,7 @@ var CohereEmbeddingProvider = class {
6283
6327
  "X-Client-Name": getEnvString("COHERE_CLIENT_NAME") || "promptfoo"
6284
6328
  },
6285
6329
  body: JSON.stringify(body)
6286
- }, REQUEST_TIMEOUT_MS$1));
6330
+ }, getRequestTimeoutMs()));
6287
6331
  } catch (err) {
6288
6332
  logger.error(`API call error: ${err}`);
6289
6333
  throw err;
@@ -8928,6 +8972,10 @@ function omitFalSecretConfigFields(config) {
8928
8972
  const { apiKey, ...rest } = config;
8929
8973
  return rest;
8930
8974
  }
8975
+ function getFalModelInput(config) {
8976
+ const { apiKey, client, ...input } = config;
8977
+ return input;
8978
+ }
8931
8979
  function generateConfigHash$1(config) {
8932
8980
  const sortedConfig = sortObject$1(omitFalSecretConfigFields(config));
8933
8981
  return createHmac("sha256", FAL_CACHE_KEY_HMAC_KEY).update(JSON.stringify(sortedConfig)).digest("hex");
@@ -8944,6 +8992,7 @@ var FalProvider = class {
8944
8992
  modelType;
8945
8993
  apiKey;
8946
8994
  config;
8995
+ clientConfig;
8947
8996
  input;
8948
8997
  fal = null;
8949
8998
  constructor(modelType, modelName, options = {}) {
@@ -8952,9 +9001,10 @@ var FalProvider = class {
8952
9001
  const { config, id, env } = options;
8953
9002
  this.id = id ? () => id : this.id;
8954
9003
  this.config = config ?? {};
8955
- const { apiKey, ...input } = this.config;
9004
+ const { apiKey, client } = this.config;
8956
9005
  this.apiKey = apiKey ?? env?.FAL_KEY ?? getEnvString("FAL_KEY");
8957
- this.input = input;
9006
+ this.clientConfig = client ?? {};
9007
+ this.input = getFalModelInput(this.config);
8958
9008
  }
8959
9009
  id() {
8960
9010
  return `fal:${this.modelType}:${this.modelName}`;
@@ -8976,7 +9026,7 @@ var FalProvider = class {
8976
9026
  const input = {
8977
9027
  prompt,
8978
9028
  ...this.input,
8979
- ...context?.prompt?.config ?? {}
9029
+ ...getFalModelInput(context?.prompt?.config ?? {})
8980
9030
  };
8981
9031
  const cacheEnabled = isCacheEnabled();
8982
9032
  let cacheKey;
@@ -8993,7 +9043,10 @@ var FalProvider = class {
8993
9043
  logger.error(`Error loading @fal-ai/client: ${err}`);
8994
9044
  throw new Error("The @fal-ai/client package is required. Please install it with: npm install @fal-ai/client");
8995
9045
  }
8996
- this.fal.fal.config({ credentials: this.apiKey });
9046
+ this.fal.fal.config({
9047
+ credentials: this.apiKey,
9048
+ ...this.clientConfig
9049
+ });
8997
9050
  if (!response) response = await this.runInference(input);
8998
9051
  if (!cached && cacheEnabled && cache && cacheKey) try {
8999
9052
  await cache.set(cacheKey, JSON.stringify(response));
@@ -9383,7 +9436,7 @@ var GoogleGenericProvider = class {
9383
9436
  * Get the request timeout in milliseconds.
9384
9437
  */
9385
9438
  getTimeout() {
9386
- return this.config.timeoutMs || REQUEST_TIMEOUT_MS$1;
9439
+ return this.config.timeoutMs || getRequestTimeoutMs();
9387
9440
  }
9388
9441
  };
9389
9442
  //#endregion
@@ -9537,7 +9590,7 @@ var AIStudioChatProvider = class extends GoogleGenericProvider {
9537
9590
  headers,
9538
9591
  body: JSON.stringify(body),
9539
9592
  ...authDiscriminator && { _authHash: authDiscriminator }
9540
- }, REQUEST_TIMEOUT_MS$1, "json", shouldBustCache(context)));
9593
+ }, getRequestTimeoutMs(), "json", shouldBustCache(context)));
9541
9594
  } catch (err) {
9542
9595
  return { error: `API call error: ${String(err)}` };
9543
9596
  }
@@ -9619,7 +9672,7 @@ var AIStudioChatProvider = class extends GoogleGenericProvider {
9619
9672
  headers,
9620
9673
  body: JSON.stringify(body),
9621
9674
  ...authDiscriminator && { _authHash: authDiscriminator }
9622
- }, REQUEST_TIMEOUT_MS$1, "json", shouldBustCache(context)));
9675
+ }, getRequestTimeoutMs(), "json", shouldBustCache(context)));
9623
9676
  } catch (err) {
9624
9677
  return { error: `API call error: ${String(err)}` };
9625
9678
  }
@@ -9725,7 +9778,7 @@ var AIStudioEmbeddingProvider = class extends AIStudioChatProvider {
9725
9778
  headers,
9726
9779
  body: JSON.stringify(body),
9727
9780
  ...authDiscriminator && { _authHash: authDiscriminator }
9728
- }, REQUEST_TIMEOUT_MS$1, "json"));
9781
+ }, getRequestTimeoutMs(), "json"));
9729
9782
  } catch (err) {
9730
9783
  logger.error(`Google AI Studio embedding API call error: ${String(err)}`);
9731
9784
  return { error: `API call error: ${String(err)}` };
@@ -9821,7 +9874,7 @@ var GeminiImageProvider = class {
9821
9874
  headers,
9822
9875
  body: JSON.stringify(body),
9823
9876
  ...authDiscriminator && { _authHash: authDiscriminator }
9824
- }, REQUEST_TIMEOUT_MS$1, "json", false);
9877
+ }, getRequestTimeoutMs(), "json", false);
9825
9878
  const latencyMs = Date.now() - startTime;
9826
9879
  return this.processResponse(data, cached, latencyMs);
9827
9880
  } catch (err) {
@@ -9849,7 +9902,7 @@ var GeminiImageProvider = class {
9849
9902
  ...this.config.headers || {}
9850
9903
  },
9851
9904
  data: body,
9852
- timeout: REQUEST_TIMEOUT_MS$1
9905
+ timeout: getRequestTimeoutMs()
9853
9906
  });
9854
9907
  const latencyMs = Date.now() - startTime;
9855
9908
  return this.processResponse(response.data, false, latencyMs);
@@ -10010,7 +10063,7 @@ var GoogleImageProvider = class {
10010
10063
  ...this.config.headers || {}
10011
10064
  },
10012
10065
  data: body,
10013
- timeout: REQUEST_TIMEOUT_MS$1
10066
+ timeout: getRequestTimeoutMs()
10014
10067
  }), "Vertex AI API call");
10015
10068
  const latencyMs = Date.now() - startTime;
10016
10069
  return this.processResponse(response.data, false, latencyMs);
@@ -10047,7 +10100,7 @@ var GoogleImageProvider = class {
10047
10100
  headers,
10048
10101
  body: JSON.stringify(body),
10049
10102
  ...authDiscriminator && { _authHash: authDiscriminator }
10050
- }, REQUEST_TIMEOUT_MS$1, "json"), "Google AI Studio API call");
10103
+ }, getRequestTimeoutMs(), "json"), "Google AI Studio API call");
10051
10104
  return this.processResponse(response.data, response.cached, response.latencyMs);
10052
10105
  } catch (err) {
10053
10106
  return { error: `API call error: ${String(err)}` };
@@ -10739,7 +10792,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
10739
10792
  method: "POST",
10740
10793
  headers: { "Content-Type": "application/json; charset=utf-8" },
10741
10794
  data: body,
10742
- timeout: REQUEST_TIMEOUT_MS$1
10795
+ timeout: getRequestTimeoutMs()
10743
10796
  })).data;
10744
10797
  } catch (err) {
10745
10798
  const error = err;
@@ -10853,7 +10906,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
10853
10906
  method: "POST",
10854
10907
  headers: await this.getAuthHeaders(),
10855
10908
  body: JSON.stringify(body),
10856
- signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS$1)
10909
+ signal: AbortSignal.timeout(getRequestTimeoutMs())
10857
10910
  });
10858
10911
  if (!res.ok) {
10859
10912
  const errorData = await res.json().catch(() => null);
@@ -10869,7 +10922,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
10869
10922
  url,
10870
10923
  method: "POST",
10871
10924
  data: body,
10872
- timeout: REQUEST_TIMEOUT_MS$1
10925
+ timeout: getRequestTimeoutMs()
10873
10926
  })).data;
10874
10927
  }
10875
10928
  } catch (err) {
@@ -11059,7 +11112,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
11059
11112
  method: "POST",
11060
11113
  headers: { "Content-Type": "application/json" },
11061
11114
  data: body,
11062
- timeout: REQUEST_TIMEOUT_MS$1
11115
+ timeout: getRequestTimeoutMs()
11063
11116
  })).data;
11064
11117
  } catch (err) {
11065
11118
  return { error: `API call error: ${JSON.stringify(err)}` };
@@ -11128,7 +11181,7 @@ var VertexChatProvider = class extends GoogleGenericProvider {
11128
11181
  method: "POST",
11129
11182
  headers: { "Content-Type": "application/json; charset=utf-8" },
11130
11183
  data: body,
11131
- timeout: REQUEST_TIMEOUT_MS$1
11184
+ timeout: getRequestTimeoutMs()
11132
11185
  })).data;
11133
11186
  logger.debug(`Llama API response: ${JSON.stringify(data)}`);
11134
11187
  } catch (err) {
@@ -13089,7 +13142,7 @@ var HttpProvider = class {
13089
13142
  body: tokenRequestBody.toString()
13090
13143
  };
13091
13144
  if (httpsAgent) fetchOptions.dispatcher = httpsAgent;
13092
- const response = await fetchWithCache(oauthConfig.tokenUrl, fetchOptions, REQUEST_TIMEOUT_MS$1, "text", true, 0);
13145
+ const response = await fetchWithCache(oauthConfig.tokenUrl, fetchOptions, getRequestTimeoutMs(), "text", true, 0);
13093
13146
  if (response.status < 200 || response.status >= 300) throw new Error(`OAuth token request failed with status ${response.status} ${response.statusText}: ${response.data}`);
13094
13147
  const tokenData = JSON.parse(response.data);
13095
13148
  if (!tokenData.access_token) throw new Error("OAuth token response missing access_token");
@@ -13256,7 +13309,7 @@ var HttpProvider = class {
13256
13309
  };
13257
13310
  if (body) fetchOptions.body = body;
13258
13311
  if (httpsAgent) fetchOptions.dispatcher = httpsAgent;
13259
- const response = await fetchWithCache(url, fetchOptions, REQUEST_TIMEOUT_MS$1, "text", true, this.config.maxRetries);
13312
+ const response = await fetchWithCache(url, fetchOptions, getRequestTimeoutMs(), "text", true, this.config.maxRetries);
13260
13313
  if (response.status < 200 || response.status >= 300) throw new Error(`Session endpoint request failed with status ${response.status} ${response.statusText}: ${response.data}`);
13261
13314
  const rawText = response.data;
13262
13315
  let parsedData;
@@ -13449,7 +13502,7 @@ var HttpProvider = class {
13449
13502
  }
13450
13503
  let data, cached = false, status, statusText, responseHeaders, latencyMs;
13451
13504
  try {
13452
- ({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));
13505
+ ({data, cached, status, statusText, headers: responseHeaders, latencyMs} = await fetchWithCache(url, fetchOptions, getRequestTimeoutMs(), "text", multipartBody ? true : context?.bustCache ?? context?.debug, this.config.maxRetries));
13453
13506
  } catch (err) {
13454
13507
  throw err;
13455
13508
  }
@@ -13571,7 +13624,7 @@ var HttpProvider = class {
13571
13624
  }
13572
13625
  let data, cached = false, status, statusText, responseHeaders, latencyMs;
13573
13626
  try {
13574
- ({data, cached, status, statusText, headers: responseHeaders, latencyMs} = await fetchWithCache(url, fetchOptions, REQUEST_TIMEOUT_MS$1, "text", context?.bustCache ?? context?.debug, this.config.maxRetries));
13627
+ ({data, cached, status, statusText, headers: responseHeaders, latencyMs} = await fetchWithCache(url, fetchOptions, getRequestTimeoutMs(), "text", context?.bustCache ?? context?.debug, this.config.maxRetries));
13575
13628
  } catch (err) {
13576
13629
  throw err;
13577
13630
  }
@@ -13818,7 +13871,7 @@ var HuggingfaceTextGenerationProvider = class {
13818
13871
  ...this.getApiKey() ? { Authorization: `Bearer ${this.getApiKey()}` } : {}
13819
13872
  },
13820
13873
  body: JSON.stringify(params)
13821
- }, REQUEST_TIMEOUT_MS$1);
13874
+ }, getRequestTimeoutMs());
13822
13875
  logger.debug("Huggingface Inference API response", { data: response.data });
13823
13876
  if (response.data.error) return { error: `API call error: ${response.data.error}` };
13824
13877
  if (!response.data[0] && !response.data.generated_text) return { error: `Malformed response data: ${response.data}` };
@@ -13860,7 +13913,7 @@ var HuggingfaceTextClassificationProvider = class {
13860
13913
  ...this.getApiKey() ? { Authorization: `Bearer ${this.getApiKey()}` } : {}
13861
13914
  },
13862
13915
  body: JSON.stringify(params)
13863
- }, REQUEST_TIMEOUT_MS$1);
13916
+ }, getRequestTimeoutMs());
13864
13917
  if (response.data.error) return { error: `API call error: ${response.data.error}` };
13865
13918
  if (!response.data[0] || !Array.isArray(response.data[0])) return { error: `Malformed response data: ${response.data}` };
13866
13919
  const scores = {};
@@ -13923,7 +13976,7 @@ var HuggingfaceFeatureExtractionProvider = class {
13923
13976
  ...this.getApiKey() ? { Authorization: `Bearer ${this.getApiKey()}` } : {}
13924
13977
  },
13925
13978
  body: JSON.stringify(params)
13926
- }, REQUEST_TIMEOUT_MS$1);
13979
+ }, getRequestTimeoutMs());
13927
13980
  if (typeof response.data === "object" && "error" in response.data) return { error: `API call error: ${response.data.error}` };
13928
13981
  if (!Array.isArray(response.data)) return { error: `Malformed response data: ${response.data}` };
13929
13982
  return { embedding: response.data };
@@ -13973,7 +14026,7 @@ var HuggingfaceSentenceSimilarityProvider = class {
13973
14026
  ...this.getApiKey() ? { Authorization: `Bearer ${this.getApiKey()}` } : {}
13974
14027
  },
13975
14028
  body: JSON.stringify(params)
13976
- }, REQUEST_TIMEOUT_MS$1);
14029
+ }, getRequestTimeoutMs());
13977
14030
  if (typeof response.data === "object" && "error" in response.data) return { error: `API call error: ${response.data.error}` };
13978
14031
  if (!Array.isArray(response.data)) return { error: `Malformed response data: ${response.data}` };
13979
14032
  return { similarity: response.data[0] };
@@ -14015,7 +14068,7 @@ var HuggingfaceTokenExtractionProvider = class {
14015
14068
  ...this.getApiKey() ? { Authorization: `Bearer ${this.getApiKey()}` } : {}
14016
14069
  },
14017
14070
  body: JSON.stringify(params)
14018
- }, REQUEST_TIMEOUT_MS$1);
14071
+ }, getRequestTimeoutMs());
14019
14072
  if (typeof response.data === "object" && "error" in response.data) return { error: `API call error: ${response.data.error}` };
14020
14073
  if (!Array.isArray(response.data)) return { error: `Malformed response data: ${response.data}` };
14021
14074
  const classification = {};
@@ -14094,7 +14147,7 @@ var LlamaProvider = class {
14094
14147
  method: "POST",
14095
14148
  headers: { "Content-Type": "application/json" },
14096
14149
  body: JSON.stringify(body)
14097
- }, REQUEST_TIMEOUT_MS$1));
14150
+ }, getRequestTimeoutMs()));
14098
14151
  } catch (err) {
14099
14152
  return { error: `API call error: ${String(err)}` };
14100
14153
  }
@@ -14265,7 +14318,7 @@ var LocalAiChatProvider = class extends LocalAiGenericProvider {
14265
14318
  method: "POST",
14266
14319
  headers: { "Content-Type": "application/json" },
14267
14320
  body: JSON.stringify(body)
14268
- }, REQUEST_TIMEOUT_MS$1));
14321
+ }, getRequestTimeoutMs()));
14269
14322
  } catch (err) {
14270
14323
  return { error: `API call error: ${String(err)}` };
14271
14324
  }
@@ -14288,7 +14341,7 @@ var LocalAiEmbeddingProvider = class extends LocalAiGenericProvider {
14288
14341
  method: "POST",
14289
14342
  headers: { "Content-Type": "application/json" },
14290
14343
  body: JSON.stringify(body)
14291
- }, REQUEST_TIMEOUT_MS$1));
14344
+ }, getRequestTimeoutMs()));
14292
14345
  } catch (err) {
14293
14346
  return { error: `API call error: ${String(err)}` };
14294
14347
  }
@@ -14314,7 +14367,7 @@ var LocalAiCompletionProvider = class extends LocalAiGenericProvider {
14314
14367
  method: "POST",
14315
14368
  headers: { "Content-Type": "application/json" },
14316
14369
  body: JSON.stringify(body)
14317
- }, REQUEST_TIMEOUT_MS$1));
14370
+ }, getRequestTimeoutMs()));
14318
14371
  } catch (err) {
14319
14372
  return { error: `API call error: ${String(err)}` };
14320
14373
  }
@@ -14808,7 +14861,7 @@ var MistralChatCompletionProvider = class MistralChatCompletionProvider {
14808
14861
  Authorization: `Bearer ${apiKey}`
14809
14862
  },
14810
14863
  body: JSON.stringify(params)
14811
- }, REQUEST_TIMEOUT_MS$1, "json", true);
14864
+ }, getRequestTimeoutMs(), "json", true);
14812
14865
  }));
14813
14866
  } catch (err) {
14814
14867
  return { error: `API call error: ${String(err)}` };
@@ -14923,7 +14976,7 @@ var MistralEmbeddingProvider = class {
14923
14976
  Authorization: `Bearer ${apiKey}`
14924
14977
  },
14925
14978
  body: JSON.stringify(body)
14926
- }, REQUEST_TIMEOUT_MS$1, "json", true);
14979
+ }, getRequestTimeoutMs(), "json", true);
14927
14980
  }));
14928
14981
  } catch (err) {
14929
14982
  logger.error(`API call error: ${err}`);
@@ -15072,7 +15125,7 @@ var NscaleImageProvider = class NscaleImageProvider extends OpenAiImageProvider
15072
15125
  let data, status, statusText;
15073
15126
  let cached = false;
15074
15127
  try {
15075
- ({data, cached, status, statusText} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, REQUEST_TIMEOUT_MS$1));
15128
+ ({data, cached, status, statusText} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, getRequestTimeoutMs()));
15076
15129
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
15077
15130
  } catch (err) {
15078
15131
  logger.error(`API call error: ${String(err)}`);
@@ -15254,7 +15307,7 @@ var OllamaCompletionProvider = class {
15254
15307
  ...getEnvString("OLLAMA_API_KEY") ? { Authorization: `Bearer ${getEnvString("OLLAMA_API_KEY")}` } : {}
15255
15308
  },
15256
15309
  body: JSON.stringify(params)
15257
- }, REQUEST_TIMEOUT_MS$1, "text");
15310
+ }, getRequestTimeoutMs(), "text");
15258
15311
  } catch (err) {
15259
15312
  return { error: `API call error: ${String(err)}. Output:\n${response?.data}` };
15260
15313
  }
@@ -15356,7 +15409,7 @@ var OllamaChatProvider = class {
15356
15409
  ...getEnvString("OLLAMA_API_KEY") ? { Authorization: `Bearer ${getEnvString("OLLAMA_API_KEY")}` } : {}
15357
15410
  },
15358
15411
  body: JSON.stringify(params)
15359
- }, REQUEST_TIMEOUT_MS$1, "text", context?.bustCache ?? context?.debug);
15412
+ }, getRequestTimeoutMs(), "text", context?.bustCache ?? context?.debug);
15360
15413
  } catch (err) {
15361
15414
  return { error: `API call error: ${String(err)}. Output:\n${response?.data}` };
15362
15415
  }
@@ -15424,7 +15477,7 @@ var OllamaEmbeddingProvider = class extends OllamaCompletionProvider {
15424
15477
  ...getEnvString("OLLAMA_API_KEY") ? { Authorization: `Bearer ${getEnvString("OLLAMA_API_KEY")}` } : {}
15425
15478
  },
15426
15479
  body: JSON.stringify(params)
15427
- }, REQUEST_TIMEOUT_MS$1, "json");
15480
+ }, getRequestTimeoutMs(), "json");
15428
15481
  } catch (err) {
15429
15482
  return { error: `API call error: ${String(err)}` };
15430
15483
  }
@@ -15548,7 +15601,7 @@ var OpenAiAssistantProvider = class extends OpenAiGenericProvider {
15548
15601
  organization: this.getOrganization(),
15549
15602
  baseURL: this.getApiUrl(),
15550
15603
  maxRetries: 3,
15551
- timeout: REQUEST_TIMEOUT_MS$1,
15604
+ timeout: getRequestTimeoutMs(),
15552
15605
  defaultHeaders: this.assistantConfig.headers
15553
15606
  });
15554
15607
  const messages = parseChatPrompt(prompt, [{
@@ -15814,7 +15867,7 @@ var OpenAiModerationProvider = class OpenAiModerationProvider extends OpenAiGene
15814
15867
  method: "POST",
15815
15868
  headers,
15816
15869
  body: requestBody
15817
- }, REQUEST_TIMEOUT_MS$1, "json", true, this.config.maxRetries));
15870
+ }, getRequestTimeoutMs(), "json", true, this.config.maxRetries));
15818
15871
  if (status < 200 || status >= 300) return handleApiError$1(`${status} ${statusText}`, typeof data === "string" ? data : JSON.stringify(data));
15819
15872
  logger.debug(`\tOpenAI moderation API response: ${JSON.stringify(data)}`);
15820
15873
  const response = parseOpenAIModerationResponse(data);
@@ -17249,7 +17302,7 @@ var OpenRouterProvider = class extends OpenAiChatCompletionProvider {
17249
17302
  ...config.headers
17250
17303
  },
17251
17304
  body: JSON.stringify(body)
17252
- }, REQUEST_TIMEOUT_MS$1, "json", context?.bustCache ?? context?.debug));
17305
+ }, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug));
17253
17306
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
17254
17307
  } catch (err) {
17255
17308
  logger.error(`API call error: ${String(err)}`);
@@ -17520,7 +17573,7 @@ var PythonWorker = class {
17520
17573
  maxCrashes = 3;
17521
17574
  pendingRequest = null;
17522
17575
  requestTimeout = null;
17523
- constructor(scriptPath, functionName, pythonPath, timeout = REQUEST_TIMEOUT_MS$1, onReady) {
17576
+ constructor(scriptPath, functionName, pythonPath, timeout = getRequestTimeoutMs(), onReady) {
17524
17577
  this.scriptPath = scriptPath;
17525
17578
  this.functionName = functionName;
17526
17579
  this.pythonPath = pythonPath;
@@ -18224,7 +18277,7 @@ var ReplicateProvider = class {
18224
18277
  Prefer: "wait=60"
18225
18278
  },
18226
18279
  body: JSON.stringify(data)
18227
- }, REQUEST_TIMEOUT_MS$1, "json")).data;
18280
+ }, getRequestTimeoutMs(), "json")).data;
18228
18281
  if (response.status === "starting" || response.status === "processing") response = await this.pollForCompletion(response.id);
18229
18282
  if (response.status === "failed") throw new Error(response.error || "Prediction failed");
18230
18283
  response = response.output;
@@ -18270,7 +18323,7 @@ var ReplicateProvider = class {
18270
18323
  const prediction = (await fetchWithCache(`https://api.replicate.com/v1/predictions/${predictionId}`, {
18271
18324
  method: "GET",
18272
18325
  headers: { Authorization: `Bearer ${this.apiKey}` }
18273
- }, REQUEST_TIMEOUT_MS$1, "json", false)).data;
18326
+ }, getRequestTimeoutMs(), "json", false)).data;
18274
18327
  if (prediction.status === "succeeded" || prediction.status === "failed" || prediction.status === "canceled") return prediction;
18275
18328
  await new Promise((resolve) => setTimeout(resolve, pollInterval));
18276
18329
  }
@@ -18362,7 +18415,7 @@ var ReplicateImageProvider = class extends ReplicateProvider {
18362
18415
  Prefer: "wait=60"
18363
18416
  },
18364
18417
  body: JSON.stringify(data)
18365
- }, REQUEST_TIMEOUT_MS$1, "json")).data;
18418
+ }, getRequestTimeoutMs(), "json")).data;
18366
18419
  logger.debug(`Initial prediction status: ${prediction.status}, ID: ${prediction.id}`);
18367
18420
  if (prediction.status === "starting" || prediction.status === "processing") prediction = await this.pollForCompletion(prediction.id);
18368
18421
  logger.debug("Final Replicate prediction status", {
@@ -18810,7 +18863,7 @@ var SnowflakeCortexProvider = class extends OpenAiChatCompletionProvider {
18810
18863
  ...config.headers
18811
18864
  },
18812
18865
  body: JSON.stringify(body)
18813
- }, REQUEST_TIMEOUT_MS$1, "json", context?.bustCache ?? context?.debug));
18866
+ }, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug));
18814
18867
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
18815
18868
  } catch (err) {
18816
18869
  logger.error(`[Snowflake Cortex] API call error: ${String(err)}`);
@@ -19227,7 +19280,6 @@ function createTrueFoundryProvider(providerPath, options = {}) {
19227
19280
  }
19228
19281
  //#endregion
19229
19282
  //#region src/providers/vercel.ts
19230
- const DEFAULT_TIMEOUT_MS = REQUEST_TIMEOUT_MS$1;
19231
19283
  /**
19232
19284
  * Resolves the API key from config, environment variables, or defaults.
19233
19285
  */
@@ -19363,7 +19415,7 @@ var VercelAiProvider = class {
19363
19415
  * Handles streaming API calls using streamText().
19364
19416
  */
19365
19417
  async callApiStreaming(messages) {
19366
- const timeout = this.config.timeout ?? DEFAULT_TIMEOUT_MS;
19418
+ const timeout = this.config.timeout ?? getRequestTimeoutMs();
19367
19419
  const { signal, cleanup } = createTimeoutController(timeout);
19368
19420
  try {
19369
19421
  const gateway = await createGatewayInstance(this.config, this.env);
@@ -19404,7 +19456,7 @@ var VercelAiProvider = class {
19404
19456
  * Handles structured output API calls using generateObject().
19405
19457
  */
19406
19458
  async callApiStructured(messages) {
19407
- const timeout = this.config.timeout ?? DEFAULT_TIMEOUT_MS;
19459
+ const timeout = this.config.timeout ?? getRequestTimeoutMs();
19408
19460
  const { signal, cleanup } = createTimeoutController(timeout);
19409
19461
  try {
19410
19462
  const gateway = await createGatewayInstance(this.config, this.env);
@@ -19480,7 +19532,7 @@ var VercelAiProvider = class {
19480
19532
  * Handles non-streaming API calls using generateText().
19481
19533
  */
19482
19534
  async callApiNonStreaming(messages) {
19483
- const timeout = this.config.timeout ?? DEFAULT_TIMEOUT_MS;
19535
+ const timeout = this.config.timeout ?? getRequestTimeoutMs();
19484
19536
  const { signal, cleanup } = createTimeoutController(timeout);
19485
19537
  try {
19486
19538
  const gateway = await createGatewayInstance(this.config, this.env);
@@ -19558,7 +19610,7 @@ var VercelAiEmbeddingProvider = class {
19558
19610
  }
19559
19611
  }
19560
19612
  }
19561
- const timeout = this.config.timeout ?? DEFAULT_TIMEOUT_MS;
19613
+ const timeout = this.config.timeout ?? getRequestTimeoutMs();
19562
19614
  const { signal, cleanup } = createTimeoutController(timeout);
19563
19615
  try {
19564
19616
  const gateway = await createGatewayInstance(this.config, this.env);
@@ -19649,7 +19701,7 @@ var VoyageEmbeddingProvider = class {
19649
19701
  ...this.config.headers
19650
19702
  },
19651
19703
  body: JSON.stringify(body)
19652
- }, REQUEST_TIMEOUT_MS$1));
19704
+ }, getRequestTimeoutMs()));
19653
19705
  } catch (err) {
19654
19706
  logger.error(`API call error: ${err}`);
19655
19707
  throw err;
@@ -19789,7 +19841,7 @@ function createWatsonXAuthCacheHash(authSelection) {
19789
19841
  }
19790
19842
  async function fetchModelSpecs() {
19791
19843
  try {
19792
- 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);
19844
+ 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());
19793
19845
  return (typeof data === "string" ? JSON.parse(data) : data)?.resources || [];
19794
19846
  } catch (error) {
19795
19847
  logger.error(`Failed to fetch model specs: ${error}`);
@@ -20132,7 +20184,7 @@ var WebhookProvider = class {
20132
20184
  method: "POST",
20133
20185
  headers: { "Content-Type": "application/json" },
20134
20186
  body: JSON.stringify(params)
20135
- }, REQUEST_TIMEOUT_MS$1, "json"));
20187
+ }, getRequestTimeoutMs(), "json"));
20136
20188
  } catch (err) {
20137
20189
  return { error: `Webhook call error: ${String(err)}` };
20138
20190
  }
@@ -20210,7 +20262,7 @@ var WebSocketProvider = class {
20210
20262
  constructor(url, options) {
20211
20263
  this.config = options.config;
20212
20264
  this.url = this.config.url || url;
20213
- this.timeoutMs = this.config.timeoutMs || REQUEST_TIMEOUT_MS$1;
20265
+ this.timeoutMs = this.config.timeoutMs || getRequestTimeoutMs();
20214
20266
  this.transformResponse = createTransformResponse(this.config.transformResponse || this.config.responseParser);
20215
20267
  this.streamResponse = this.config.streamResponse ? createStreamResponse(this.config.streamResponse) : void 0;
20216
20268
  invariant(this.config.messageTemplate, `Expected WebSocket provider ${this.url} to have a config containing {messageTemplate}, but got ${safeJsonStringify(this.config)}`);
@@ -20665,7 +20717,7 @@ var XAIImageProvider = class extends OpenAiImageProvider {
20665
20717
  let cached = false;
20666
20718
  let latencyMs;
20667
20719
  try {
20668
- ({data, cached, status, statusText, latencyMs} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, REQUEST_TIMEOUT_MS$1));
20720
+ ({data, cached, status, statusText, latencyMs} = await callOpenAiImageApi(`${this.getApiUrl()}${endpoint}`, body, headers, getRequestTimeoutMs()));
20669
20721
  if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
20670
20722
  } catch (err) {
20671
20723
  logger.error(`API call error: ${String(err)}`);
@@ -20838,7 +20890,7 @@ var XAIResponsesProvider = class {
20838
20890
  ...config.headers
20839
20891
  },
20840
20892
  body: JSON.stringify(body)
20841
- }, REQUEST_TIMEOUT_MS$1, "json", context?.bustCache ?? context?.debug, this.config.maxRetries);
20893
+ }, getRequestTimeoutMs(), "json", context?.bustCache ?? context?.debug, this.config.maxRetries);
20842
20894
  data = response.data;
20843
20895
  cached = response.cached;
20844
20896
  status = response.status;
@@ -21618,7 +21670,7 @@ const providerMap = [
21618
21670
  {
21619
21671
  test: (providerPath) => providerPath.startsWith("opencode:") || providerPath === "opencode",
21620
21672
  create: async (providerPath, providerOptions, context) => {
21621
- const { OpenCodeSDKProvider } = await import("./opencode-sdk-sRKYHGoI.js");
21673
+ const { OpenCodeSDKProvider } = await import("./opencode-sdk-D-tRQJ9s.js");
21622
21674
  return new OpenCodeSDKProvider({
21623
21675
  ...providerOptions,
21624
21676
  id: providerPath,
@@ -21630,14 +21682,14 @@ const providerMap = [
21630
21682
  {
21631
21683
  test: (providerPath) => providerPath.startsWith("openclaw:") || providerPath === "openclaw",
21632
21684
  create: async (providerPath, providerOptions, context) => {
21633
- const { createOpenClawProvider } = await import("./openclaw-CF7fMido.js");
21685
+ const { createOpenClawProvider } = await import("./openclaw-BdnuiqBG.js");
21634
21686
  return createOpenClawProvider(providerPath, providerOptions, context.env);
21635
21687
  }
21636
21688
  },
21637
21689
  {
21638
21690
  test: (providerPath) => providerPath.startsWith("anthropic:claude-agent-sdk") || providerPath.startsWith("anthropic:claude-code"),
21639
21691
  create: async (_providerPath, providerOptions, _context) => {
21640
- const { ClaudeCodeSDKProvider } = await import("./claude-agent-sdk-D5Jl0SDh.js");
21692
+ const { ClaudeCodeSDKProvider } = await import("./claude-agent-sdk-BVfdeahc.js");
21641
21693
  return new ClaudeCodeSDKProvider({ ...providerOptions });
21642
21694
  }
21643
21695
  },
@@ -21693,25 +21745,25 @@ const providerMap = [
21693
21745
  const modelName = splits.slice(2).join(":");
21694
21746
  if (modelType === "converse") return new AwsBedrockConverseProvider(modelName, providerOptions);
21695
21747
  if (modelType === "nova-sonic" || modelType.includes("amazon.nova-sonic")) {
21696
- const { NovaSonicProvider } = await import("./nova-sonic-CrV0iaY_.js");
21748
+ const { NovaSonicProvider } = await import("./nova-sonic-DB7LzcCY.js");
21697
21749
  return new NovaSonicProvider("amazon.nova-sonic-v1:0", providerOptions);
21698
21750
  }
21699
21751
  if (modelType.includes("luma.ray") || modelName.includes("luma.ray")) {
21700
- const { LumaRayVideoProvider } = await import("./luma-ray-CR5TSpp4.js");
21752
+ const { LumaRayVideoProvider } = await import("./luma-ray-BqVizUQY.js");
21701
21753
  return new LumaRayVideoProvider(modelName.includes("luma.ray") ? modelName : splits.slice(1).join(":") || "luma.ray-v2:0", providerOptions);
21702
21754
  }
21703
21755
  if (modelType.includes("amazon.nova-reel") || modelType === "video" && (modelName.includes("amazon.nova-reel") || modelName === "")) {
21704
- const { NovaReelVideoProvider } = await import("./nova-reel-B_5NKFu1.js");
21756
+ const { NovaReelVideoProvider } = await import("./nova-reel-DRLvlFOH.js");
21705
21757
  return new NovaReelVideoProvider(modelName || "amazon.nova-reel-v1:1", providerOptions);
21706
21758
  }
21707
21759
  if (modelType === "agents") {
21708
- const { AwsBedrockAgentsProvider } = await import("./agents-LrHuQqr1.js");
21760
+ const { AwsBedrockAgentsProvider } = await import("./agents-D539zhHr.js");
21709
21761
  return new AwsBedrockAgentsProvider(modelName, providerOptions);
21710
21762
  }
21711
21763
  if (modelType === "completion") return new AwsBedrockCompletionProvider(modelName, providerOptions);
21712
21764
  if (modelType === "embeddings" || modelType === "embedding") return new AwsBedrockEmbeddingProvider(modelName, providerOptions);
21713
21765
  if (modelType === "kb" || modelType === "knowledge-base") {
21714
- const { AwsBedrockKnowledgeBaseProvider } = await import("./knowledgeBase-BadkINlJ.js");
21766
+ const { AwsBedrockKnowledgeBaseProvider } = await import("./knowledgeBase-C_MSTwDt.js");
21715
21767
  return new AwsBedrockKnowledgeBaseProvider(modelName, providerOptions);
21716
21768
  }
21717
21769
  return new AwsBedrockCompletionProvider(splits.slice(1).join(":"), providerOptions);
@@ -21721,7 +21773,7 @@ const providerMap = [
21721
21773
  test: (providerPath) => providerPath.startsWith("bedrock-agent:"),
21722
21774
  create: async (providerPath, providerOptions, _context) => {
21723
21775
  const agentId = providerPath.substring(14);
21724
- const { AwsBedrockAgentsProvider } = await import("./agents-LrHuQqr1.js");
21776
+ const { AwsBedrockAgentsProvider } = await import("./agents-D539zhHr.js");
21725
21777
  return new AwsBedrockAgentsProvider(agentId, providerOptions);
21726
21778
  }
21727
21779
  },
@@ -21731,7 +21783,7 @@ const providerMap = [
21731
21783
  const splits = providerPath.split(":");
21732
21784
  const modelType = splits[1];
21733
21785
  const endpointName = splits.slice(2).join(":");
21734
- const { SageMakerCompletionProvider, SageMakerEmbeddingProvider } = await import("./sagemaker-yr1QKeBs.js");
21786
+ const { SageMakerCompletionProvider, SageMakerEmbeddingProvider } = await import("./sagemaker-C8NJAT8D.js");
21735
21787
  if (modelType === "embedding" || modelType === "embeddings") return new SageMakerEmbeddingProvider(endpointName || modelType, providerOptions);
21736
21788
  if (splits.length === 2) return new SageMakerCompletionProvider(modelType, providerOptions);
21737
21789
  if (endpointName.includes("jumpstart") || modelType === "jumpstart") return new SageMakerCompletionProvider(endpointName, {
@@ -21772,7 +21824,7 @@ const providerMap = [
21772
21824
  {
21773
21825
  test: (providerPath) => providerPath.startsWith("cloudflare-ai:"),
21774
21826
  create: async (providerPath, providerOptions, context) => {
21775
- const { createCloudflareAiProvider } = await import("./cloudflare-ai-B6NVI3ax.js");
21827
+ const { createCloudflareAiProvider } = await import("./cloudflare-ai-UsZe6ndv.js");
21776
21828
  return createCloudflareAiProvider(providerPath, {
21777
21829
  ...providerOptions,
21778
21830
  env: context.env
@@ -21782,7 +21834,7 @@ const providerMap = [
21782
21834
  {
21783
21835
  test: (providerPath) => providerPath.startsWith("cloudflare-gateway:"),
21784
21836
  create: async (providerPath, providerOptions, context) => {
21785
- const { createCloudflareGatewayProvider } = await import("./cloudflare-gateway-BaZ4insB.js");
21837
+ const { createCloudflareGatewayProvider } = await import("./cloudflare-gateway-Bq5cqiV8.js");
21786
21838
  return createCloudflareGatewayProvider(providerPath, {
21787
21839
  ...providerOptions,
21788
21840
  env: context.env
@@ -21934,27 +21986,27 @@ const providerMap = [
21934
21986
  create: async (providerPath, providerOptions, context) => {
21935
21987
  const modelType = providerPath.split(":")[1];
21936
21988
  if (modelType === "image") {
21937
- const { createHyperbolicImageProvider } = await import("./image-B_fPIwdg.js");
21989
+ const { createHyperbolicImageProvider } = await import("./image-6u3WZ_7H.js");
21938
21990
  return createHyperbolicImageProvider(providerPath, {
21939
21991
  ...providerOptions,
21940
21992
  env: context.env
21941
21993
  });
21942
21994
  }
21943
21995
  if (modelType === "audio") {
21944
- const { createHyperbolicAudioProvider } = await import("./audio-BqnRvcWG.js");
21996
+ const { createHyperbolicAudioProvider } = await import("./audio-hewMOCUU.js");
21945
21997
  return createHyperbolicAudioProvider(providerPath, {
21946
21998
  ...providerOptions,
21947
21999
  env: context.env
21948
22000
  });
21949
22001
  }
21950
- const { createHyperbolicProvider } = await import("./chat-GmlolEwo.js");
22002
+ const { createHyperbolicProvider } = await import("./chat-B5NqvkS_.js");
21951
22003
  return createHyperbolicProvider(providerPath, providerOptions);
21952
22004
  }
21953
22005
  },
21954
22006
  {
21955
22007
  test: (providerPath) => providerPath.startsWith("litellm:"),
21956
22008
  create: async (providerPath, providerOptions, context) => {
21957
- const { createLiteLLMProvider } = await import("./litellm-CNcfbCfa.js");
22009
+ const { createLiteLLMProvider } = await import("./litellm-DNnk7802.js");
21958
22010
  return createLiteLLMProvider(providerPath, {
21959
22011
  config: providerOptions,
21960
22012
  env: context.env
@@ -22011,7 +22063,7 @@ const providerMap = [
22011
22063
  const modelName = splits.slice(2).join(":");
22012
22064
  const configuredModel = getConfiguredOpenAiModel(providerOptions);
22013
22065
  if (modelType === "codex-app-server" || modelType === "codex-desktop") {
22014
- const { OpenAICodexAppServerProvider } = await import("./codex-app-server-B8KHEiF4.js");
22066
+ const { OpenAICodexAppServerProvider } = await import("./codex-app-server-BnPMlcjl.js");
22015
22067
  const codexModel = modelName || configuredModel;
22016
22068
  const codexProviderId = providerOptions.id ?? providerPath;
22017
22069
  return new OpenAICodexAppServerProvider({
@@ -22028,7 +22080,7 @@ const providerMap = [
22028
22080
  });
22029
22081
  }
22030
22082
  if (modelType === "codex-sdk" || modelType === "codex") {
22031
- const { OpenAICodexSDKProvider } = await import("./codex-sdk-D2d54RL8.js").then((n) => n.n);
22083
+ const { OpenAICodexSDKProvider } = await import("./codex-sdk-mgUqOG2C.js").then((n) => n.n);
22032
22084
  const codexModel = modelName || configuredModel;
22033
22085
  const codexProviderId = providerOptions.id ?? providerPath;
22034
22086
  return new OpenAICodexSDKProvider({
@@ -22048,7 +22100,7 @@ const providerMap = [
22048
22100
  if (modelType === "realtime") return new OpenAiRealtimeProvider(modelName || configuredModel || "gpt-4o-realtime-preview-2024-12-17", providerOptions);
22049
22101
  if (modelType === "responses") return new OpenAiResponsesProvider(modelName || configuredModel || "gpt-4.1-2025-04-14", providerOptions);
22050
22102
  if (modelType === "transcription") {
22051
- const { OpenAiTranscriptionProvider } = await import("./transcription-B8uIgCYX.js");
22103
+ const { OpenAiTranscriptionProvider } = await import("./transcription-sOgdGxM6.js");
22052
22104
  return new OpenAiTranscriptionProvider(modelName || configuredModel || "gpt-4o-transcribe-diarize", providerOptions);
22053
22105
  }
22054
22106
  if (OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelType)) return new OpenAiChatCompletionProvider(modelType, providerOptions);
@@ -22056,11 +22108,11 @@ const providerMap = [
22056
22108
  if (OpenAiRealtimeProvider.OPENAI_REALTIME_MODEL_NAMES.includes(modelType)) return new OpenAiRealtimeProvider(modelType, providerOptions);
22057
22109
  if (OpenAiResponsesProvider.OPENAI_RESPONSES_MODEL_NAMES.includes(modelType)) return new OpenAiResponsesProvider(modelType, providerOptions);
22058
22110
  if (modelType === "agents") {
22059
- const { OpenAiAgentsProvider } = await import("./agents-CYn2n3QP.js");
22111
+ const { OpenAiAgentsProvider } = await import("./agents-gZTW-8nu.js");
22060
22112
  return new OpenAiAgentsProvider(modelName || "default-agent", providerOptions);
22061
22113
  }
22062
22114
  if (modelType === "chatkit") {
22063
- const { OpenAiChatKitProvider } = await import("./chatkit-fARZwEfV.js");
22115
+ const { OpenAiChatKitProvider } = await import("./chatkit-B-uz3x63.js");
22064
22116
  return new OpenAiChatKitProvider(modelName || "", providerOptions);
22065
22117
  }
22066
22118
  if (modelType === "assistant") return new OpenAiAssistantProvider(modelName, providerOptions);
@@ -22103,7 +22155,7 @@ const providerMap = [
22103
22155
  {
22104
22156
  test: (providerPath) => providerPath.startsWith("quiverai:"),
22105
22157
  create: async (providerPath, providerOptions, context) => {
22106
- const { createQuiverAiProvider } = await import("./quiverai-CdTWPe-A.js");
22158
+ const { createQuiverAiProvider } = await import("./quiverai-B6ebiUKf.js");
22107
22159
  return createQuiverAiProvider(providerPath, providerOptions, context.env);
22108
22160
  }
22109
22161
  },
@@ -22121,7 +22173,7 @@ const providerMap = [
22121
22173
  {
22122
22174
  test: (providerPath) => providerPath.startsWith("modelslab:"),
22123
22175
  create: async (providerPath, providerOptions, context) => {
22124
- const { ModelsLabImageProvider } = await import("./modelslab-Dzst7VTU.js");
22176
+ const { ModelsLabImageProvider } = await import("./modelslab-Bw-46LmW.js");
22125
22177
  const splits = providerPath.split(":");
22126
22178
  const modelType = splits[1];
22127
22179
  const modelName = splits.slice(2).join(":");
@@ -22165,7 +22217,7 @@ const providerMap = [
22165
22217
  {
22166
22218
  test: (providerPath) => providerPath.startsWith("aimlapi:"),
22167
22219
  create: async (providerPath, providerOptions, context) => {
22168
- const { createAimlApiProvider } = await import("./aimlapi-D5HXzZ0s.js");
22220
+ const { createAimlApiProvider } = await import("./aimlapi-KNYnjjU6.js");
22169
22221
  return createAimlApiProvider(providerPath, {
22170
22222
  ...providerOptions,
22171
22223
  env: context.env
@@ -22175,7 +22227,7 @@ const providerMap = [
22175
22227
  {
22176
22228
  test: (providerPath) => providerPath.startsWith("cometapi:"),
22177
22229
  create: async (providerPath, providerOptions, context) => {
22178
- const { createCometApiProvider } = await import("./cometapi-CtzNCHKu.js");
22230
+ const { createCometApiProvider } = await import("./cometapi-CkOfr271.js");
22179
22231
  return createCometApiProvider(providerPath, {
22180
22232
  ...providerOptions,
22181
22233
  env: context.env
@@ -22185,7 +22237,7 @@ const providerMap = [
22185
22237
  {
22186
22238
  test: (providerPath) => providerPath.startsWith("docker:"),
22187
22239
  create: async (providerPath, providerOptions, context) => {
22188
- const { createDockerProvider } = await import("./docker-BBv1WUDu.js");
22240
+ const { createDockerProvider } = await import("./docker-mZF5j6cW.js");
22189
22241
  return createDockerProvider(providerPath, {
22190
22242
  ...providerOptions,
22191
22243
  env: context.env
@@ -22414,7 +22466,7 @@ Example: transformers:feature-extraction:Xenova/all-MiniLM-L6-v2`);
22414
22466
  test: (providerPath) => providerPath === "slack" || providerPath.startsWith("slack:"),
22415
22467
  create: async (providerPath, providerOptions, _context) => {
22416
22468
  try {
22417
- const { SlackProvider } = await import("./slack-k-_CP84Q.js");
22469
+ const { SlackProvider } = await import("./slack-chzmaYU3.js");
22418
22470
  if (providerPath === "slack") return new SlackProvider(providerOptions);
22419
22471
  const splits = providerPath.split(":");
22420
22472
  if (splits.length < 2) throw new Error("Invalid Slack provider path. Use slack:<channel_id> or slack:channel:<channel_id>");
@@ -22457,7 +22509,7 @@ function isRedteamProviderPath(providerPath) {
22457
22509
  const providerFamilies = [{
22458
22510
  canHandle: isRedteamProviderPath,
22459
22511
  factories: async () => {
22460
- const { redteamProviderFactories } = await import("./registry-Dp5EqoXc.js");
22512
+ const { redteamProviderFactories } = await import("./registry-Eiv-QeUm.js");
22461
22513
  return redteamProviderFactories;
22462
22514
  }
22463
22515
  }];
@@ -22737,4 +22789,4 @@ function getProviderIds(providerPaths) {
22737
22789
  //#endregion
22738
22790
  export { AzureModerationProvider as C, DefaultSynthesizeProvider as S, AzureChatCompletionProvider as T, AIStudioChatProvider as _, resolveProvider as a, DefaultLlmRubricProvider as b, parseScriptParts as c, MistralEmbeddingProvider as d, MCPProvider as f, GoogleLiveProvider as g, VertexChatProvider as h, providers_exports as i, OpenAiModerationProvider as l, DefaultGradingProvider as m, loadApiProvider as n, resolveProviderConfigs as o, DefaultEmbeddingProvider as p, loadApiProviders as r, getFileHashes as s, getProviderIds as t, MistralChatCompletionProvider as u, DefaultGradingJsonProvider as v, AzureEmbeddingProvider as w, DefaultSuggestionsProvider as x, DefaultGradingProvider$1 as y };
22739
22791
 
22740
- //# sourceMappingURL=providers-DVYRZP4E.js.map
22792
+ //# sourceMappingURL=providers-DTPwadhk.js.map