promptfoo 0.121.4 → 0.121.5

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 (346) hide show
  1. package/dist/src/{ListApp-DQkFNqE9.js → ListApp-BRUsT43Y.js} +1 -1
  2. package/dist/src/{accounts-Dy17bs4D.cjs → accounts-BIFntVWB.cjs} +4 -4
  3. package/dist/src/{accounts-F9d_5sMC.js → accounts-CLJHCDDb.js} +6 -6
  4. package/dist/src/{accounts-DhMYUUbu.js → accounts-CaLNYnf7.js} +4 -4
  5. package/dist/src/{accounts-DdJ2pHMI.js → accounts-bnyHT7Ju.js} +5 -5
  6. package/dist/src/{agentic-utils-w68v6_Dz.js → agentic-utils-B5krlibj.js} +3 -3
  7. package/dist/src/{agentic-utils-P172hM8B.js → agentic-utils-Ba67xmgs.js} +2 -2
  8. package/dist/src/{agentic-utils-qFlm6zes.js → agentic-utils-BclbiXiq.js} +3 -3
  9. package/dist/src/{agentic-utils-BpX5b23w.cjs → agentic-utils-D2x0wGhB.cjs} +2 -2
  10. package/dist/src/{agents-CgaMXvLM.js → agents-BGqaTDnr.js} +5 -5
  11. package/dist/src/{agents-8FDnTriG.js → agents-BV9yFpXX.js} +5 -5
  12. package/dist/src/{agents-aYPQLf8W.js → agents-BYdMl1UE.js} +4 -4
  13. package/dist/src/{agents-pQeBEXMm.js → agents-DhxWMCtH.js} +5 -5
  14. package/dist/src/{agents-D7-HGxUj.cjs → agents-DiWmQYH9.cjs} +4 -4
  15. package/dist/src/{agents-BahDpe5G.cjs → agents-WULPVjbH.cjs} +4 -4
  16. package/dist/src/{agents-DJ35I3Nt.js → agents-emVcx3yh.js} +5 -5
  17. package/dist/src/{agents-C-R_jfzI.js → agents-n6vPqV3i.js} +4 -4
  18. package/dist/src/{aimlapi-BCq3MHeL.js → aimlapi-BxqK9HF_.js} +7 -7
  19. package/dist/src/{aimlapi-qcK4OT55.cjs → aimlapi-BzLjZI_m.cjs} +6 -6
  20. package/dist/src/{aimlapi-BD6J9oKt.js → aimlapi-DR4pgeiC.js} +6 -6
  21. package/dist/src/{aimlapi-sgYnkE54.js → aimlapi-uPGp0Zdo.js} +7 -7
  22. package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -1
  23. package/dist/src/app/assets/Report-vjzrbgce.js +1 -0
  24. package/dist/src/app/assets/index-B3NQ8HTd.js +385 -0
  25. package/dist/src/app/assets/{index-BXGkeMwh.css → index-Cli2yAXv.css} +1 -1
  26. package/dist/src/app/index.html +27 -2
  27. package/dist/src/{audio-DcVKoInv.js → audio-BvpTOArF.js} +4 -4
  28. package/dist/src/{audio-BQtNuYBj.cjs → audio-C0vDeS0j.cjs} +3 -3
  29. package/dist/src/{audio-B7izf48x.js → audio-CScmnmEB.js} +4 -4
  30. package/dist/src/{audio-COrn8rM6.js → audio-Da8U9IS5.js} +3 -3
  31. package/dist/src/{base-fZ9wgg50.js → base-BOMaNEes.js} +3 -3
  32. package/dist/src/{base-PYJvBE1i.js → base-BTux96b1.js} +2 -2
  33. package/dist/src/{base-D-670DX8.cjs → base-Tw6uhH8K.cjs} +2 -2
  34. package/dist/src/{base-yrI1Yal4.js → base-dYsl2hmL.js} +3 -3
  35. package/dist/src/{blobs-D2FAd1Q5.cjs → blobs-B95F_7vE.cjs} +2 -2
  36. package/dist/src/{blobs-C-F78Kfn.js → blobs-BW4U31ue.js} +2 -2
  37. package/dist/src/{blobs-BCZavS8s.js → blobs-D_gg8nbm.js} +3 -3
  38. package/dist/src/{blobs-BQWqnnvL.js → blobs-DjLby-uP.js} +3 -3
  39. package/dist/src/{cache-mb7c8hbp.js → cache-BI5BY7ey.js} +4 -4
  40. package/dist/src/{cache-DbLsVWB2.cjs → cache-BRkhlH3k.cjs} +1 -1
  41. package/dist/src/cache-BlC6aeJ0.js +3 -0
  42. package/dist/src/{cache-D5NZmMiT.js → cache-Bzttsk0X.js} +2 -2
  43. package/dist/src/{cache-C4Xb-hNb.js → cache-Cr-qWIbP.js} +3 -3
  44. package/dist/src/{cache-BIyPcp5v.cjs → cache-DGg-yTZG.cjs} +2 -2
  45. package/dist/src/{chat-Dr3DUQ0D.js → chat-BLOdH60v.js} +12 -12
  46. package/dist/src/{chat-BfPaS15_.js → chat-Cx_LkwvZ.js} +12 -12
  47. package/dist/src/{chat-mW0ORo8G.js → chat-D9nudO9b.js} +4 -4
  48. package/dist/src/{chat-I9izLm49.js → chat-DChSH_Es.js} +12 -12
  49. package/dist/src/{chat-MKxMnZJZ.js → chat-DG2LkwLq.js} +2 -2
  50. package/dist/src/{chat-BPXSW8Bv.cjs → chat-DH97tVV9.cjs} +2 -2
  51. package/dist/src/{chat-0bwXjVP0.js → chat-aMQZw6R7.js} +4 -4
  52. package/dist/src/{chat-CclRbxGf.cjs → chat-vYqqv1gP.cjs} +11 -11
  53. package/dist/src/{chatkit-zUIVoDos.js → chatkit-B8X34dQc.js} +4 -4
  54. package/dist/src/{chatkit-Cv6AhukM.js → chatkit-BXu42Qwt.js} +3 -3
  55. package/dist/src/{chatkit-CJnHRRMM.js → chatkit-CbMRoeYw.js} +4 -4
  56. package/dist/src/{chatkit-BoWoSgXl.cjs → chatkit-D44VyUyB.cjs} +3 -3
  57. package/dist/src/{claude-agent-sdk-CPJo3dBQ.cjs → claude-agent-sdk-BRq0bbIK.cjs} +8 -8
  58. package/dist/src/{claude-agent-sdk-BQNuLaAK.js → claude-agent-sdk-BjriSVRZ.js} +7 -7
  59. package/dist/src/{claude-agent-sdk-Dtq_L-Sc.js → claude-agent-sdk-BzNZeZ0N.js} +7 -7
  60. package/dist/src/{claude-agent-sdk-nfAIcxNf.js → claude-agent-sdk-DYv_AJ8u.js} +7 -7
  61. package/dist/src/cloud-CoD5OacT.js +3 -0
  62. package/dist/src/{cloud-DQZ5sVjW.js → cloud-Da0bofJd.js} +3 -3
  63. package/dist/src/{cloudflare-ai-BIB567w6.js → cloudflare-ai-CXC4b1EU.js} +4 -4
  64. package/dist/src/{cloudflare-ai-DlKr0rY7.js → cloudflare-ai-CyBoIs1Q.js} +6 -6
  65. package/dist/src/{cloudflare-ai-DGLte7Py.js → cloudflare-ai-DGOwgexC.js} +6 -6
  66. package/dist/src/{cloudflare-ai-Dl3N9OVD.cjs → cloudflare-ai-DJv5qnyb.cjs} +4 -4
  67. package/dist/src/{cloudflare-gateway-BDZrYydE.js → cloudflare-gateway-1sAoOyft.js} +5 -5
  68. package/dist/src/{cloudflare-gateway-CiIZHU0Q.js → cloudflare-gateway-D-dnkzCF.js} +5 -5
  69. package/dist/src/{cloudflare-gateway-BYDp495F.cjs → cloudflare-gateway-DKVjkDav.cjs} +3 -3
  70. package/dist/src/{cloudflare-gateway-DI1HNP5F.js → cloudflare-gateway-TJkVrZlB.js} +3 -3
  71. package/dist/src/codex-app-server-CCLjqCh9.js +1915 -0
  72. package/dist/src/codex-app-server-CCe0TiDc.js +1915 -0
  73. package/dist/src/codex-app-server-CPW1LFwh.js +1916 -0
  74. package/dist/src/codex-app-server-VMRnjZ68.cjs +1920 -0
  75. package/dist/src/codex-sdk-1jm_qPHf.js +3 -0
  76. package/dist/src/{codex-sdk-C2_M2pl_.cjs → codex-sdk-Bd8UbO9q.cjs} +5 -5
  77. package/dist/src/{codex-sdk-CpqiOqDO.js → codex-sdk-BgEFQ70r.js} +6 -6
  78. package/dist/src/{codex-sdk-Rtky3M4I.js → codex-sdk-Bzb_TqX9.js} +6 -6
  79. package/dist/src/{codex-sdk-CWEnH70W.cjs → codex-sdk-Danroptg.cjs} +1 -1
  80. package/dist/src/{codex-sdk-CErXn7qh.js → codex-sdk-DfvDTN33.js} +5 -5
  81. package/dist/src/{cometapi-CtJ-mS8R.js → cometapi-B5ImDlSm.js} +8 -8
  82. package/dist/src/{cometapi-UVOryo4W.cjs → cometapi-BgAkuYCw.cjs} +7 -7
  83. package/dist/src/{cometapi-BUlt_ELa.js → cometapi-CC7hWxmX.js} +8 -8
  84. package/dist/src/{cometapi-DT-jlVCB.js → cometapi-CCbpHkuF.js} +7 -7
  85. package/dist/src/{completion-x0a_c2y1.js → completion-2iuYVxwi.js} +6 -6
  86. package/dist/src/{completion-Dnxn7E-j.js → completion-CrD6MQ93.js} +5 -5
  87. package/dist/src/{completion-BozdoXba.cjs → completion-DtQ72Bm3.cjs} +5 -5
  88. package/dist/src/{completion-HUe8wDhZ.js → completion-Vq_ad618.js} +6 -6
  89. package/dist/src/{createHash-ChI45QR1.js → createHash-DPpsZgFF.js} +1 -1
  90. package/dist/src/{createHash-CwDVU5xr.js → createHash-Un4Q_huE.js} +1 -1
  91. package/dist/src/{createHash-B7KvgoOD.cjs → createHash-VvBIc-AW.cjs} +1 -1
  92. package/dist/src/{docker-DCgsveLD.js → docker--3qzPa-6.js} +6 -6
  93. package/dist/src/{docker-DS4_Osau.cjs → docker-D3AY-5F5.cjs} +5 -5
  94. package/dist/src/{docker-CQmlA2NU.js → docker-DCsCDvwM.js} +6 -6
  95. package/dist/src/{docker-ClnmCf1Z.js → docker-Dorv4_Dg.js} +5 -5
  96. package/dist/src/{embedding-I45KG3o7.cjs → embedding-BXhN5lCH.cjs} +5 -5
  97. package/dist/src/{embedding-nFbumxcv.js → embedding-ChS1ivFS.js} +5 -5
  98. package/dist/src/{embedding-D3xTseo7.js → embedding-DNRvZwRN.js} +6 -6
  99. package/dist/src/{embedding-DD9wa3ae.js → embedding-D_bI4NDq.js} +6 -6
  100. package/dist/src/{errors-Cw810C93.js → errors-DFHe4L-n.js} +1 -1
  101. package/dist/src/{esm-Dh4dOLlt.js → esm-B6whoAcf.js} +2 -2
  102. package/dist/src/{esm-C7PnfdF8.js → esm-BRkfNsYs.js} +1 -1
  103. package/dist/src/{esm-tVgYPY-f.js → esm-BX8fwlAO.js} +2 -2
  104. package/dist/src/{esm-CtEPLdAj.cjs → esm-B_rGuPTo.cjs} +1 -1
  105. package/dist/src/{eval-CzJFfFO9.js → eval-BQPLBJbw.js} +1 -1
  106. package/dist/src/{eval-u4UVafl6.js → eval-DJ_4A-tr.js} +14 -14
  107. package/dist/src/evalResult-BBJAHAtw.cjs +2 -0
  108. package/dist/src/evalResult-BBK58h2B.js +3 -0
  109. package/dist/src/{evalResult-KZqXl4XP.cjs → evalResult-Cx-8OWkb.cjs} +28 -10
  110. package/dist/src/{evalResult-D3hVYFis.js → evalResult-D6P5I5il.js} +29 -11
  111. package/dist/src/{evalResult-Bgm9ZH31.js → evalResult-pSvGWFMo.js} +29 -11
  112. package/dist/src/{evaluator-IvuDYSvQ.js → evaluator-D-UIbbYq.js} +845 -98
  113. package/dist/src/evaluator-DgLKaZk8.js +3 -0
  114. package/dist/src/{extractor-Dk6bRWkv.js → extractor-BM3jRERL.js} +5 -5
  115. package/dist/src/{extractor-WVPOrH43.cjs → extractor-Dxr2J_wK.cjs} +5 -5
  116. package/dist/src/{extractor-DNSeBVOJ.js → extractor-DxyiFhPk.js} +6 -6
  117. package/dist/src/{extractor-CAfTSraf.js → extractor-YlZbUMsL.js} +6 -6
  118. package/dist/src/fetch-8viavNv8.js +3 -0
  119. package/dist/src/{fetch-BEWnXrrG.js → fetch-B6ch2nU2.js} +9 -20
  120. package/dist/src/{fetch-Di00EQrc.js → fetch-D9xxyC1p.js} +221 -232
  121. package/dist/src/{fetch-CJU5ELPa.cjs → fetch-NuqXW1Xb.cjs} +221 -244
  122. package/dist/src/{fetch-B0Z3Oe4k.js → fetch-Y5qX_kST.js} +8 -19
  123. package/dist/src/{fileExtensions-BArZuxsI.js → fileExtensions-8CjoL7vB.js} +1 -1
  124. package/dist/src/{fileExtensions-DnqA1y9x.js → fileExtensions-BGh-W-HT.js} +1 -1
  125. package/dist/src/{fileExtensions-bYh77CN8.cjs → fileExtensions-D9h-8Wxg.cjs} +1 -1
  126. package/dist/src/{fileExtensions-AWa2ZML4.js → fileExtensions-DysCsxNG.js} +1 -1
  127. package/dist/src/{formatDuration-DZzPsexs.js → formatDuration-Ch4A7G3o.js} +1 -1
  128. package/dist/src/{genaiTracer-yRuxj9-L.cjs → genaiTracer-BokHC-MW.cjs} +1 -1
  129. package/dist/src/{genaiTracer-DWdZ28hY.js → genaiTracer-C3ZPQU60.js} +1 -1
  130. package/dist/src/{genaiTracer-XnrcgDCe.js → genaiTracer-CFny3gOy.js} +1 -1
  131. package/dist/src/{genaiTracer-COYDi-tC.js → genaiTracer-DxODqT9e.js} +1 -1
  132. package/dist/src/{graders-Zy3x0zqX.js → graders-BoUqsCEm.js} +1303 -2044
  133. package/dist/src/{graders--zknU_uk.cjs → graders-Bw1wk_21.cjs} +1553 -2240
  134. package/dist/src/graders-C84JI-m5.js +2 -0
  135. package/dist/src/graders-CBbd0K0Q.cjs +2 -0
  136. package/dist/src/graders-CbQqpHSN.js +3 -0
  137. package/dist/src/{graders-eIHhRqoC.js → graders-CgPn32yp.js} +1300 -2041
  138. package/dist/src/{graders-pvbReLLn.js → graders-CwrbifOo.js} +747 -1488
  139. package/dist/src/graders-DS42d3ZG.js +2 -0
  140. package/dist/src/{image-9302QVqR.js → image-BeWaInPF.js} +3 -3
  141. package/dist/src/{image-DVz2RiMF.js → image-BmilRNqO.js} +7 -7
  142. package/dist/src/{image-x6KqLQl4.cjs → image-CxJoa3aW.cjs} +6 -6
  143. package/dist/src/{image-De2FBmYV.cjs → image-D10dNAav.cjs} +3 -3
  144. package/dist/src/{image-dnoUgPrC.js → image-Dr_3I3nK.js} +4 -4
  145. package/dist/src/{image-B5Mv-Z3h.js → image-DsGRlkh7.js} +7 -7
  146. package/dist/src/{image-qUpPvmNZ.js → image-a_SGUobh.js} +6 -6
  147. package/dist/src/{image-u7-rKnYU.js → image-qjO6FWPs.js} +4 -4
  148. package/dist/src/index.cjs +1052 -296
  149. package/dist/src/index.d.cts +124 -13
  150. package/dist/src/index.d.ts +125 -14
  151. package/dist/src/index.js +1018 -262
  152. package/dist/src/{interactiveCheck-CLERUB0c.js → interactiveCheck-CCICw2cy.js} +2 -2
  153. package/dist/src/{invariant-BtWWVVhl.js → invariant-B2Rf6avk.js} +1 -1
  154. package/dist/src/{invariant-vgHWClmd.js → invariant-DIYf9sP1.js} +1 -1
  155. package/dist/src/{knowledgeBase-RhFPGWDc.js → knowledgeBase-BBETc5-S.js} +6 -6
  156. package/dist/src/{knowledgeBase-Bpoe_nLu.cjs → knowledgeBase-C8qOo26M.cjs} +5 -5
  157. package/dist/src/{knowledgeBase-lm9RXSAm.js → knowledgeBase-CzAi2rUI.js} +6 -6
  158. package/dist/src/{knowledgeBase-Dgc7CBWF.js → knowledgeBase-Dr3Kib7F.js} +5 -5
  159. package/dist/src/{litellm-C2kqjxqp.js → litellm-BLSiANhk.js} +5 -5
  160. package/dist/src/{litellm-CoyI4IAl.cjs → litellm-CaUmV7Mk.cjs} +4 -4
  161. package/dist/src/{litellm-p37R1dzQ.js → litellm-DQGo_juI.js} +4 -4
  162. package/dist/src/{litellm-DRjpcSa7.js → litellm-DRc4qWfc.js} +5 -5
  163. package/dist/src/{logger-DksKw1Qc.js → logger-BbY6ypFL.js} +2 -2
  164. package/dist/src/{logger-B88EkIn6.js → logger-KD8JjCRJ.js} +2 -2
  165. package/dist/src/{luma-ray-KgTCXrZC.js → luma-ray-B-tNZzqW.js} +6 -6
  166. package/dist/src/{luma-ray-B863CmuZ.js → luma-ray-CtS3OlGq.js} +5 -5
  167. package/dist/src/{luma-ray-BTTLtqQ8.js → luma-ray-PJJgUjOc.js} +6 -6
  168. package/dist/src/{luma-ray-BxVKaW2a.cjs → luma-ray-if-Ml4R9.cjs} +5 -5
  169. package/dist/src/main.js +242 -198
  170. package/dist/src/{messages-zWbkLLHz.js → messages-B9dSjrNf.js} +264 -16
  171. package/dist/src/{messages-811uVVW5.cjs → messages-BnsVHUnm.cjs} +266 -15
  172. package/dist/src/{messages-MYTQ2TWp.js → messages-CI69Lasb.js} +264 -16
  173. package/dist/src/{messages-BTQz42fn.js → messages-CewuNcNS.js} +264 -16
  174. package/dist/src/{meteor-Co1VQ1u5.cjs → meteor-BBGcGeCa.cjs} +1 -1
  175. package/dist/src/{meteor-DuAFv6gF.js → meteor-BKTM-7KS.js} +1 -1
  176. package/dist/src/{meteor-DHdzY1Ss.js → meteor-CeGo0Lu2.js} +2 -2
  177. package/dist/src/{meteor-CU5UAE-H.js → meteor-Wc_aUVvu.js} +2 -2
  178. package/dist/src/{modelslab-wu9yi5GE.js → modelslab-BCLOtfek.js} +7 -7
  179. package/dist/src/{modelslab-Dk1JAtVo.cjs → modelslab-BkapYJhh.cjs} +6 -6
  180. package/dist/src/{modelslab-DIq-6y7x.js → modelslab-D73OnKSx.js} +6 -6
  181. package/dist/src/{modelslab-D0erNWKe.js → modelslab-zpz9JcK0.js} +7 -7
  182. package/dist/src/{nova-reel-CCFRfeRb.js → nova-reel-B8F_TK5w.js} +6 -6
  183. package/dist/src/{nova-reel-DQrm74ng.js → nova-reel-Bx0NFV2f.js} +5 -5
  184. package/dist/src/{nova-reel-gr11WG7f.js → nova-reel-CNGJTLtG.js} +6 -6
  185. package/dist/src/{nova-reel-CrLXVKQf.cjs → nova-reel-DkT7tnoB.cjs} +5 -5
  186. package/dist/src/{nova-sonic-BYdp-QLs.js → nova-sonic-BaXRN1cr.js} +4 -4
  187. package/dist/src/{nova-sonic-TDgrlTk7.js → nova-sonic-BeTRaFOh.js} +4 -4
  188. package/dist/src/{nova-sonic-B_ZXcUJB.js → nova-sonic-CL7Zqv0G.js} +3 -3
  189. package/dist/src/{nova-sonic-i5tUvXKn.cjs → nova-sonic-YT426juD.cjs} +3 -3
  190. package/dist/src/{openai-DhVEmgeZ.js → openai-BMHD2Huo.js} +2 -2
  191. package/dist/src/{openai-Qsvz25mV.js → openai-BT-JvDse.js} +2 -2
  192. package/dist/src/{openai-URNyItar.cjs → openai-Cy1XLs0c.cjs} +1 -1
  193. package/dist/src/{openai-iYtrXzOX.js → openai-D4fxGvRx.js} +1 -1
  194. package/dist/src/{openclaw-CwzlQSQX.js → openclaw-Bq7RVR3k.js} +7 -6
  195. package/dist/src/{openclaw-CLWrW03k.js → openclaw-DA8U4DsD.js} +8 -7
  196. package/dist/src/{openclaw-CnQ363Wi.js → openclaw-DObVgpjC.js} +8 -7
  197. package/dist/src/{openclaw-wX9rtfke.cjs → openclaw-DUBZP3GL.cjs} +8 -7
  198. package/dist/src/{opencode-sdk-BUu5Nevv.js → opencode-sdk-BB40Wir1.js} +4 -4
  199. package/dist/src/{opencode-sdk-GI2KaAXq.js → opencode-sdk-BM1UAIv1.js} +3 -3
  200. package/dist/src/{opencode-sdk-BZ2idgYA.cjs → opencode-sdk-CeqiOcOU.cjs} +4 -4
  201. package/dist/src/{opencode-sdk-BxD8vXp_.js → opencode-sdk-ChdK7F7z.js} +4 -4
  202. package/dist/src/{otlpReceiver-DmVulbhC.js → otlpReceiver-C6thJRXi.js} +4 -4
  203. package/dist/src/{otlpReceiver-B2z58l4e.js → otlpReceiver-CcdIikOu.js} +3 -3
  204. package/dist/src/{otlpReceiver-BfcVq2Nq.cjs → otlpReceiver-DNSQj6bf.cjs} +3 -3
  205. package/dist/src/{otlpReceiver-BntK801g.js → otlpReceiver-UYMQx3sy.js} +4 -4
  206. package/dist/src/{providerRegistry-CPQ_CmVO.js → providerRegistry-1gB5vtzQ.js} +2 -2
  207. package/dist/src/{providerRegistry-CQMdTmHP.cjs → providerRegistry-BESeALrr.cjs} +1 -1
  208. package/dist/src/{providerRegistry-Bvh8mv85.js → providerRegistry-DoACwqhD.js} +1 -1
  209. package/dist/src/{providerRegistry-CWoPjKFZ.js → providerRegistry-PMsleEzs.js} +2 -2
  210. package/dist/src/{providers-Bp4S-FvO.js → providers-BuyzKt7C.js} +1 -1
  211. package/dist/src/{providers-DV3ax9e_.cjs → providers-C7lNVBjX.cjs} +1 -1
  212. package/dist/src/{providers-u9Enmfok.js → providers-CCE2COJi2.js} +1 -1
  213. package/dist/src/{providers-DruaQfwu.js → providers-CJh7iriU.js} +18103 -17952
  214. package/dist/src/{providers-iUt5fbAN.js → providers-Ctcc592x.js} +1 -1
  215. package/dist/src/{providers-Domz_llv.js → providers-DRrerKra.js} +432 -281
  216. package/dist/src/{providers-BV_KMZje.js → providers-DT-GtF2t.js} +19094 -18943
  217. package/dist/src/{providers-1eKkXBKp.cjs → providers-eDShy16E.cjs} +17946 -17795
  218. package/dist/src/{pythonUtils-Cldx7huE.js → pythonUtils-C4tltmIn.js} +3 -3
  219. package/dist/src/{pythonUtils-tAJvvpS-.cjs → pythonUtils-CoLaCwNY.cjs} +3 -3
  220. package/dist/src/{pythonUtils-C2UQ30Rz.js → pythonUtils-DMO68Jg7.js} +3 -3
  221. package/dist/src/{pythonUtils-CnndUbW-.js → pythonUtils-DNqbnRdx.js} +3 -3
  222. package/dist/src/{quiverai-DR0SnIQV.js → quiverai-BSS9a7wV.js} +3 -3
  223. package/dist/src/{quiverai-CtWi6x_g.js → quiverai-Bk1KrvL6.js} +4 -4
  224. package/dist/src/{quiverai-DFotyafY.cjs → quiverai-Bpx6MZ7T.cjs} +3 -3
  225. package/dist/src/{quiverai-aPPvXOgn.js → quiverai-CPKhWgaT.js} +4 -4
  226. package/dist/src/{render-DHIZ6_k8.js → render-7uNJ2V14.js} +2 -2
  227. package/dist/src/{render-CH-62LbA.js → render-DlscvAUJ.js} +1 -1
  228. package/dist/src/{render-CMEpfLaO.js → render-eui5p5mL.js} +2 -2
  229. package/dist/src/{render-CgVDrJmM.js → render-nj-UaPdn.js} +2 -2
  230. package/dist/src/{render-DfQSFxGE.cjs → render-tG6ir9_g.cjs} +1 -1
  231. package/dist/src/{responses--OsX2aYW.js → responses-1ztiVYsx.js} +49 -15
  232. package/dist/src/{responses-DL9m8CyY.js → responses-B8haB-mD.js} +49 -15
  233. package/dist/src/{responses-C-flexAY.js → responses-BiaBguAu.js} +49 -15
  234. package/dist/src/{responses-Bi9vBuW_.cjs → responses-CF-ayauu.cjs} +48 -14
  235. package/dist/src/rubyUtils-4hjGxvju.js +3 -0
  236. package/dist/src/{rubyUtils-DVLeA2jg.js → rubyUtils-BI0p46eZ.js} +3 -3
  237. package/dist/src/{rubyUtils-DsGrTx8R.js → rubyUtils-CIQFnVz4.js} +3 -3
  238. package/dist/src/rubyUtils-CO-tuszQ.cjs +2 -0
  239. package/dist/src/{rubyUtils-CYSQEG4a.js → rubyUtils-DGnoCYL2.js} +3 -3
  240. package/dist/src/{rubyUtils-B6eljPuh.cjs → rubyUtils-DoifqkiA.cjs} +4 -3
  241. package/dist/src/{sagemaker-BveBvuxm.js → sagemaker-BDLeW29y.js} +12 -12
  242. package/dist/src/{sagemaker-D67yzMzs.js → sagemaker-C5T60MKf.js} +13 -13
  243. package/dist/src/{sagemaker-BVkaG2-l.js → sagemaker-ClS_NB07.js} +13 -13
  244. package/dist/src/{sagemaker-XnfhheQv.cjs → sagemaker-ljtY12VM.cjs} +12 -12
  245. package/dist/src/{scanner-1DqWi1Ej.js → scanner-nOCWNIXa.js} +7 -7
  246. package/dist/src/server/index.js +1067 -265
  247. package/dist/src/{server-Dx2TyCH2.cjs → server-BEECpeGG.cjs} +5 -5
  248. package/dist/src/{server-BNYztJkh.js → server-ByiF3qlg.js} +9 -8
  249. package/dist/src/{server-BSB45Nt9.js → server-ByxbqAcQ.js} +8 -7
  250. package/dist/src/{server-DaA2eR26.cjs → server-C0XKRNB_.cjs} +1 -1
  251. package/dist/src/server-C_15p79-.js +3 -0
  252. package/dist/src/{server-D6Il2Sob.js → server-gyd6d4Hc.js} +5 -5
  253. package/dist/src/{signal-CE5G3a7x.js → signal-DTtUuU3l.js} +3 -3
  254. package/dist/src/{slack-acRb0IqQ.js → slack-4zZX1OKP.js} +1 -1
  255. package/dist/src/{slack-1Rhq0EoV.cjs → slack-BLlsDpfG.cjs} +1 -1
  256. package/dist/src/{slack-D5Wpy8LM.js → slack-BPYLQLgb.js} +2 -2
  257. package/dist/src/{slack-DDUe-5MC.js → slack-Bamy_7te.js} +2 -2
  258. package/dist/src/{store-DAAyxcy6.cjs → store-2K0kDi80.cjs} +2 -2
  259. package/dist/src/{store-Dn9HUkdW.js → store-2OXm_eBY.js} +3 -3
  260. package/dist/src/store-BELqNwvz.js +3 -0
  261. package/dist/src/{store-M0b1WfYb.js → store-BPkzEyFM.js} +2 -2
  262. package/dist/src/{store-CYEy5J2D.js → store-CPh25336.js} +3 -3
  263. package/dist/src/store-uQZ4AjPe.cjs +2 -0
  264. package/dist/src/{tables-CsWou1Bx.js → tables-BMSOS2Gg.js} +3 -3
  265. package/dist/src/{tables-DUfh1F7Z.cjs → tables-CXbaZ9y1.cjs} +2 -2
  266. package/dist/src/{tables-C4CH3zRr.js → tables-NlvH23ky.js} +3 -3
  267. package/dist/src/{tables-DQ4WU5tX.js → tables-WgdUZ8Ck.js} +2 -2
  268. package/dist/src/{telemetry-dbaJ0E98.js → telemetry--iqaGyaS.js} +5 -4
  269. package/dist/src/{telemetry-Dsw_faFj.cjs → telemetry-CEQxGnMZ.cjs} +7 -6
  270. package/dist/src/{telemetry-Dvqxv3YC.js → telemetry-CgdVGV8N.js} +4 -3
  271. package/dist/src/{telemetry-CQPez_Jp.js → telemetry-DWdGHvEf.js} +5 -4
  272. package/dist/src/telemetry-DjNoC_n3.cjs +2 -0
  273. package/dist/src/telemetry-ZdPZc0fm.js +3 -0
  274. package/dist/src/{text-BVi-cLPJ.cjs → text-BiNME7QG.cjs} +1 -1
  275. package/dist/src/{text-KvuD2Iko.js → text-D4lz-Jg_.js} +1 -1
  276. package/dist/src/{text-DHxdyQqT.js → text-DDQP0tuQ.js} +1 -1
  277. package/dist/src/{text-CZr46tp_.js → text-NWvfMfkF.js} +1 -1
  278. package/dist/src/{tokenUsageUtils-CXrvO-wA.js → tokenUsageUtils-2wIvAhB3.js} +1 -1
  279. package/dist/src/{tokenUsageUtils-C-bmyHoE.js → tokenUsageUtils-4c780gFd.js} +1 -1
  280. package/dist/src/tokenUsageUtils-BjVkdk18.js +142 -0
  281. package/dist/src/{tokenUsageUtils-Bb7DkZPz.cjs → tokenUsageUtils-C9odhsbW.cjs} +1 -1
  282. package/dist/src/{transcription-DuWDupG7.js → transcription-84t4ALo2.js} +5 -5
  283. package/dist/src/{transcription-CJspiD2c.js → transcription-Bm2emLmJ.js} +6 -6
  284. package/dist/src/{transcription-BvjmiYB1.cjs → transcription-CZ4LG5hQ.cjs} +5 -5
  285. package/dist/src/{transcription-V2HaAmy2.js → transcription-D7Q0vJsh.js} +6 -6
  286. package/dist/src/{transform-zDhMmzwX.js → transform-B-b6Cq-q.js} +5 -5
  287. package/dist/src/transform-BQt0BeAW.js +3 -0
  288. package/dist/src/{transform-DgKlRr73.cjs → transform-Bq5oqC0s.cjs} +1 -1
  289. package/dist/src/{transform-CUnzlsbn.cjs → transform-C9izGX54.cjs} +4 -4
  290. package/dist/src/{transform-DYX1_Xnh.js → transform-CwbAZ84V.js} +5 -5
  291. package/dist/src/{transform-CTeuTR3S.cjs → transform-Dg4LcO1Y.cjs} +6 -6
  292. package/dist/src/{transform-CG0ehZNG.js → transform-DtooZqYY.js} +6 -6
  293. package/dist/src/{transform-UN5UGu8U.js → transform-DzCF-wqV.js} +5 -5
  294. package/dist/src/{transform-lQrDE1BQ.js → transform-_DpNB4qp.js} +5 -5
  295. package/dist/src/{transform-Bbg6A8Jk.js → transform-eGiUAv86.js} +4 -4
  296. package/dist/src/{transformersAvailability-Cju9mHgR.cjs → transformersAvailability-B22swDxr.cjs} +1 -1
  297. package/dist/src/{transformersAvailability-CcHusyhw.js → transformersAvailability-lvCCvuPT.js} +1 -1
  298. package/dist/src/{transformersAvailability-DLlROWhg.js → transformersAvailability-rJGPccjr.js} +1 -1
  299. package/dist/src/{types-Bgh5SOn6.js → types-BDjGOq4E.js} +4 -2
  300. package/dist/src/{types-Dm9JM6Vb.js → types-BVH9hjgW.js} +4 -2
  301. package/dist/src/{types-CeaeaZdP.cjs → types-CgG2rKiW.cjs} +151 -149
  302. package/dist/src/{types-BGQDAP8i.js → types-DNRZVOue.js} +152 -150
  303. package/dist/src/{util-C8e5uydV.js → util-3pBZZb_H.js} +142 -17
  304. package/dist/src/{util-CN3SrLT4.cjs → util-A5_ZsQUn.cjs} +65 -43
  305. package/dist/src/{util-D3q0WQ-0.js → util-B9CNhyac.js} +66 -44
  306. package/dist/src/{util-DxWpWjhc.js → util-BQOCAHQC.js} +700 -575
  307. package/dist/src/{util-BYvQUPp7.js → util-BVXcTwXu.js} +3 -3
  308. package/dist/src/{util-D9TisOyk.js → util-BlFVL0UF.js} +65 -43
  309. package/dist/src/{util-C9J8ahRn.js → util-C-kmRosx.js} +66 -44
  310. package/dist/src/{util-DvU2Pw8c.js → util-DFPeFkiV.js} +3 -3
  311. package/dist/src/{util-DDs-7g6-.js → util-DN0-b81k.js} +3 -3
  312. package/dist/src/{util-olYL5C6N.cjs → util-Dpmm_dAI.cjs} +3 -3
  313. package/dist/src/{util-oGMLA7vc.js → util-Dub0f_ej.js} +700 -575
  314. package/dist/src/{util-Bxn8emtE.cjs → util-DvpHnLt0.cjs} +718 -570
  315. package/dist/src/{utils-DJfvjyMj.js → utils-BUMN8orw.js} +3 -3
  316. package/dist/src/{utils-B05gLxER.cjs → utils-DkVeShIB.cjs} +2 -2
  317. package/dist/src/{utils-BLJKfv0y.js → utils-kt7lv30R.js} +3 -3
  318. package/dist/src/{utils-hXtCYanr.js → utils-o8S5huU2.js} +2 -2
  319. package/dist/src/version-0frU0UTr.js +16 -0
  320. package/dist/src/version-CbpiUINz.js +17 -0
  321. package/dist/src/version-CbuBKu2U.js +16 -0
  322. package/dist/src/version-D9zu9FWB.cjs +27 -0
  323. package/dist/tsconfig.tsbuildinfo +1 -1
  324. package/package.json +22 -20
  325. package/dist/src/app/assets/Report-CQYFezYu.js +0 -1
  326. package/dist/src/app/assets/index-BzJt18Jz.js +0 -385
  327. package/dist/src/cache-Cr9oLMUa.js +0 -3
  328. package/dist/src/cloud-Hphvo8kr.js +0 -3
  329. package/dist/src/codex-sdk-BAmYE7qy.js +0 -3
  330. package/dist/src/evalResult-D8MT9p0s.js +0 -3
  331. package/dist/src/evalResult-Dvc-iucu.cjs +0 -2
  332. package/dist/src/evaluator-CVessDWe.js +0 -3
  333. package/dist/src/fetch-C7bGKDlQ.js +0 -3
  334. package/dist/src/graders-BOAzQEUe.cjs +0 -2
  335. package/dist/src/graders-D4BTsZdG2.js +0 -3
  336. package/dist/src/graders-DOJK1XpV.js +0 -2
  337. package/dist/src/graders-NAv9LcBn.js +0 -2
  338. package/dist/src/rubyUtils-D1L2d3jb.js +0 -3
  339. package/dist/src/rubyUtils-DUbq4tff.cjs +0 -2
  340. package/dist/src/server-DCtHUqlp.js +0 -3
  341. package/dist/src/store-CWOSz6D_.cjs +0 -2
  342. package/dist/src/store-DCDBhv7B.js +0 -3
  343. package/dist/src/telemetry-C1IqxcdW.js +0 -3
  344. package/dist/src/telemetry-C4ZEa_es.cjs +0 -2
  345. package/dist/src/transform-M6ITAESf.js +0 -3
  346. /package/dist/src/{evalResult-DElBuddX.js → evalResult-spPqh1G_.js} +0 -0
@@ -1,133 +1,6 @@
1
- import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-DnqA1y9x.js";
1
+ import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-8CjoL7vB.js";
2
2
  import dedent from "dedent";
3
3
  import { z } from "zod";
4
- //#region src/types/env.ts
5
- const ProviderEnvOverridesSchema = z.object({
6
- AI21_API_BASE_URL: z.string().optional(),
7
- AI21_API_KEY: z.string().optional(),
8
- AIML_API_KEY: z.string().optional(),
9
- ANTHROPIC_API_KEY: z.string().optional(),
10
- ANTHROPIC_BASE_URL: z.string().optional(),
11
- AWS_BEDROCK_REGION: z.string().optional(),
12
- AZURE_API_BASE_URL: z.string().optional(),
13
- AZURE_API_HOST: z.string().optional(),
14
- AZURE_API_KEY: z.string().optional(),
15
- AZURE_AUTHORITY_HOST: z.string().optional(),
16
- AZURE_CLIENT_ID: z.string().optional(),
17
- AZURE_CLIENT_SECRET: z.string().optional(),
18
- AZURE_DEPLOYMENT_NAME: z.string().optional(),
19
- AZURE_EMBEDDING_DEPLOYMENT_NAME: z.string().optional(),
20
- AZURE_OPENAI_API_BASE_URL: z.string().optional(),
21
- AZURE_OPENAI_API_HOST: z.string().optional(),
22
- AZURE_OPENAI_API_KEY: z.string().optional(),
23
- AZURE_OPENAI_BASE_URL: z.string().optional(),
24
- AZURE_OPENAI_DEPLOYMENT_NAME: z.string().optional(),
25
- AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME: z.string().optional(),
26
- AZURE_TENANT_ID: z.string().optional(),
27
- AZURE_TOKEN_SCOPE: z.string().optional(),
28
- CLAUDE_CODE_USE_BEDROCK: z.string().optional(),
29
- CLAUDE_CODE_USE_VERTEX: z.string().optional(),
30
- CLOUDFLARE_ACCOUNT_ID: z.string().optional(),
31
- CLOUDFLARE_API_KEY: z.string().optional(),
32
- CLOUDFLARE_GATEWAY_ID: z.string().optional(),
33
- CF_AIG_TOKEN: z.string().optional(),
34
- COMETAPI_KEY: z.string().optional(),
35
- COHERE_API_KEY: z.string().optional(),
36
- COHERE_CLIENT_NAME: z.string().optional(),
37
- DATABRICKS_TOKEN: z.string().optional(),
38
- DATABRICKS_WORKSPACE_URL: z.string().optional(),
39
- DOCKER_MODEL_RUNNER_BASE_URL: z.string().optional(),
40
- DOCKER_MODEL_RUNNER_API_KEY: z.string().optional(),
41
- ELEVENLABS_API_KEY: z.string().optional(),
42
- FAL_KEY: z.string().optional(),
43
- GITHUB_TOKEN: z.string().optional(),
44
- GOOGLE_API_HOST: z.string().optional(),
45
- GOOGLE_API_BASE_URL: z.string().optional(),
46
- GOOGLE_API_KEY: z.string().optional(),
47
- GOOGLE_PROJECT_ID: z.string().optional(),
48
- GOOGLE_LOCATION: z.string().optional(),
49
- GOOGLE_GENERATIVE_AI_API_KEY: z.string().optional(),
50
- GEMINI_API_KEY: z.string().optional(),
51
- GROQ_API_KEY: z.string().optional(),
52
- HELICONE_API_KEY: z.string().optional(),
53
- HF_API_TOKEN: z.string().optional(),
54
- HF_TOKEN: z.string().optional(),
55
- HYPERBOLIC_API_KEY: z.string().optional(),
56
- HUGGING_FACE_HUB_TOKEN: z.string().optional(),
57
- JFROG_API_KEY: z.string().optional(),
58
- LANGFUSE_HOST: z.string().optional(),
59
- LANGFUSE_PUBLIC_KEY: z.string().optional(),
60
- LANGFUSE_SECRET_KEY: z.string().optional(),
61
- LITELLM_API_BASE: z.string().optional(),
62
- LLAMA_BASE_URL: z.string().optional(),
63
- LOCALAI_BASE_URL: z.string().optional(),
64
- MISTRAL_API_BASE_URL: z.string().optional(),
65
- MISTRAL_API_HOST: z.string().optional(),
66
- MISTRAL_API_KEY: z.string().optional(),
67
- MODELSLAB_API_KEY: z.string().optional(),
68
- NSCALE_SERVICE_TOKEN: z.string().optional(),
69
- NSCALE_API_KEY: z.string().optional(),
70
- OLLAMA_API_KEY: z.string().optional(),
71
- OLLAMA_BASE_URL: z.string().optional(),
72
- OPENAI_API_BASE_URL: z.string().optional(),
73
- OPENAI_API_HOST: z.string().optional(),
74
- OPENAI_API_KEY: z.string().optional(),
75
- OPENAI_BASE_URL: z.string().optional(),
76
- OPENAI_ORGANIZATION: z.string().optional(),
77
- CLAWDBOT_GATEWAY_PASSWORD: z.string().optional(),
78
- CLAWDBOT_GATEWAY_TOKEN: z.string().optional(),
79
- CLAWDBOT_GATEWAY_URL: z.string().optional(),
80
- CODEX_API_KEY: z.string().optional(),
81
- OPENCLAW_CONFIG_PATH: z.string().optional(),
82
- OPENCLAW_GATEWAY_PASSWORD: z.string().optional(),
83
- OPENCLAW_GATEWAY_PORT: z.string().optional(),
84
- OPENCLAW_GATEWAY_TOKEN: z.string().optional(),
85
- OPENCLAW_GATEWAY_URL: z.string().optional(),
86
- PALM_API_HOST: z.string().optional(),
87
- PALM_API_KEY: z.string().optional(),
88
- PORTKEY_API_KEY: z.string().optional(),
89
- PROMPTFOO_CA_CERT_PATH: z.string().optional(),
90
- PROMPTFOO_PFX_CERT_PATH: z.string().optional(),
91
- PROMPTFOO_PFX_PASSWORD: z.string().optional(),
92
- PROMPTFOO_JKS_CERT_PATH: z.string().optional(),
93
- PROMPTFOO_JKS_PASSWORD: z.string().optional(),
94
- PROMPTFOO_JKS_ALIAS: z.string().optional(),
95
- PROMPTFOO_INSECURE_SSL: z.string().optional(),
96
- QUIVERAI_API_KEY: z.string().optional(),
97
- REPLICATE_API_KEY: z.string().optional(),
98
- REPLICATE_API_TOKEN: z.string().optional(),
99
- SHAREPOINT_BASE_URL: z.string().optional(),
100
- SHAREPOINT_CERT_PATH: z.string().optional(),
101
- SHAREPOINT_CLIENT_ID: z.string().optional(),
102
- SHAREPOINT_TENANT_ID: z.string().optional(),
103
- VERCEL_AI_GATEWAY_API_KEY: z.string().optional(),
104
- VERCEL_AI_GATEWAY_BASE_URL: z.string().optional(),
105
- VERTEX_API_HOST: z.string().optional(),
106
- VERTEX_API_KEY: z.string().optional(),
107
- VERTEX_API_VERSION: z.string().optional(),
108
- VERTEX_PROJECT_ID: z.string().optional(),
109
- VERTEX_PUBLISHER: z.string().optional(),
110
- VERTEX_REGION: z.string().optional(),
111
- VOYAGE_API_BASE_URL: z.string().optional(),
112
- VOYAGE_API_KEY: z.string().optional(),
113
- WATSONX_AI_APIKEY: z.string().optional(),
114
- WATSONX_AI_AUTH_TYPE: z.string().optional(),
115
- WATSONX_AI_BEARER_TOKEN: z.string().optional(),
116
- WATSONX_AI_PROJECT_ID: z.string().optional(),
117
- XAI_API_BASE_URL: z.string().optional(),
118
- XAI_API_KEY: z.string().optional(),
119
- AZURE_CONTENT_SAFETY_ENDPOINT: z.string().optional(),
120
- AZURE_CONTENT_SAFETY_API_KEY: z.string().optional(),
121
- AZURE_CONTENT_SAFETY_API_VERSION: z.string().optional(),
122
- AWS_REGION: z.string().optional(),
123
- AWS_DEFAULT_REGION: z.string().optional(),
124
- AWS_SAGEMAKER_MAX_TOKENS: z.string().optional(),
125
- AWS_SAGEMAKER_TEMPERATURE: z.string().optional(),
126
- AWS_SAGEMAKER_TOP_P: z.string().optional(),
127
- AWS_SAGEMAKER_MAX_RETRIES: z.string().optional(),
128
- PROMPTFOO_EVAL_TIMEOUT_MS: z.string().optional()
129
- });
130
- //#endregion
131
4
  //#region src/types/shared.ts
132
5
  const CompletionTokenDetailsSchema = z.object({
133
6
  reasoning: z.number().optional(),
@@ -157,26 +30,6 @@ const BaseTokenUsageSchema = z.object({
157
30
  });
158
31
  const InputsSchema = z.record(z.string().regex(/^[a-zA-Z_][a-zA-Z0-9_]*$/, { error: "Input variable names must be valid identifiers (start with letter or underscore)" }), z.string().min(1, { error: "Input descriptions must be non-empty strings" }));
159
32
  //#endregion
160
- //#region src/validators/prompts.ts
161
- const PromptConfigSchema = z.object({
162
- prefix: z.string().optional(),
163
- suffix: z.string().optional()
164
- });
165
- const PromptFunctionSchema = z.custom((v) => typeof v === "function");
166
- const PromptSchema = z.object({
167
- id: z.string().optional(),
168
- raw: z.string(),
169
- template: z.string().optional(),
170
- display: z.string().optional(),
171
- label: z.string(),
172
- function: PromptFunctionSchema.optional(),
173
- config: z.any().optional()
174
- });
175
- function assert$1() {}
176
- assert$1();
177
- assert$1();
178
- assert$1();
179
- //#endregion
180
33
  //#region src/redteam/constants/codingAgents.ts
181
34
  const CODING_AGENT_CORE_PLUGINS = [
182
35
  "coding-agent:repo-prompt-injection",
@@ -2797,6 +2650,135 @@ var PartialGenerationError = class extends Error {
2797
2650
  }
2798
2651
  };
2799
2652
  //#endregion
2653
+ //#region src/types/env.ts
2654
+ const ProviderEnvOverridesSchema = z.object({
2655
+ ABLIT_API_BASE_URL: z.string().optional(),
2656
+ ABLIT_KEY: z.string().optional(),
2657
+ AI21_API_BASE_URL: z.string().optional(),
2658
+ AI21_API_KEY: z.string().optional(),
2659
+ AIML_API_KEY: z.string().optional(),
2660
+ ANTHROPIC_API_KEY: z.string().optional(),
2661
+ ANTHROPIC_BASE_URL: z.string().optional(),
2662
+ AWS_BEDROCK_REGION: z.string().optional(),
2663
+ AZURE_API_BASE_URL: z.string().optional(),
2664
+ AZURE_API_HOST: z.string().optional(),
2665
+ AZURE_API_KEY: z.string().optional(),
2666
+ AZURE_AUTHORITY_HOST: z.string().optional(),
2667
+ AZURE_CLIENT_ID: z.string().optional(),
2668
+ AZURE_CLIENT_SECRET: z.string().optional(),
2669
+ AZURE_DEPLOYMENT_NAME: z.string().optional(),
2670
+ AZURE_EMBEDDING_DEPLOYMENT_NAME: z.string().optional(),
2671
+ AZURE_OPENAI_API_BASE_URL: z.string().optional(),
2672
+ AZURE_OPENAI_API_HOST: z.string().optional(),
2673
+ AZURE_OPENAI_API_KEY: z.string().optional(),
2674
+ AZURE_OPENAI_BASE_URL: z.string().optional(),
2675
+ AZURE_OPENAI_DEPLOYMENT_NAME: z.string().optional(),
2676
+ AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME: z.string().optional(),
2677
+ AZURE_TENANT_ID: z.string().optional(),
2678
+ AZURE_TOKEN_SCOPE: z.string().optional(),
2679
+ CLAUDE_CODE_USE_BEDROCK: z.string().optional(),
2680
+ CLAUDE_CODE_USE_VERTEX: z.string().optional(),
2681
+ CLOUDFLARE_ACCOUNT_ID: z.string().optional(),
2682
+ CLOUDFLARE_API_KEY: z.string().optional(),
2683
+ CLOUDFLARE_GATEWAY_ID: z.string().optional(),
2684
+ CF_AIG_TOKEN: z.string().optional(),
2685
+ COMETAPI_KEY: z.string().optional(),
2686
+ COHERE_API_KEY: z.string().optional(),
2687
+ COHERE_CLIENT_NAME: z.string().optional(),
2688
+ DATABRICKS_TOKEN: z.string().optional(),
2689
+ DATABRICKS_WORKSPACE_URL: z.string().optional(),
2690
+ DOCKER_MODEL_RUNNER_BASE_URL: z.string().optional(),
2691
+ DOCKER_MODEL_RUNNER_API_KEY: z.string().optional(),
2692
+ ELEVENLABS_API_KEY: z.string().optional(),
2693
+ FAL_KEY: z.string().optional(),
2694
+ GITHUB_TOKEN: z.string().optional(),
2695
+ GOOGLE_API_HOST: z.string().optional(),
2696
+ GOOGLE_API_BASE_URL: z.string().optional(),
2697
+ GOOGLE_API_KEY: z.string().optional(),
2698
+ GOOGLE_PROJECT_ID: z.string().optional(),
2699
+ GOOGLE_LOCATION: z.string().optional(),
2700
+ GOOGLE_GENERATIVE_AI_API_KEY: z.string().optional(),
2701
+ GEMINI_API_KEY: z.string().optional(),
2702
+ GROQ_API_KEY: z.string().optional(),
2703
+ HELICONE_API_KEY: z.string().optional(),
2704
+ HF_API_TOKEN: z.string().optional(),
2705
+ HF_TOKEN: z.string().optional(),
2706
+ HYPERBOLIC_API_KEY: z.string().optional(),
2707
+ HUGGING_FACE_HUB_TOKEN: z.string().optional(),
2708
+ JFROG_API_KEY: z.string().optional(),
2709
+ LANGFUSE_HOST: z.string().optional(),
2710
+ LANGFUSE_PUBLIC_KEY: z.string().optional(),
2711
+ LANGFUSE_SECRET_KEY: z.string().optional(),
2712
+ LITELLM_API_BASE: z.string().optional(),
2713
+ LLAMA_BASE_URL: z.string().optional(),
2714
+ LOCALAI_BASE_URL: z.string().optional(),
2715
+ MISTRAL_API_BASE_URL: z.string().optional(),
2716
+ MISTRAL_API_HOST: z.string().optional(),
2717
+ MISTRAL_API_KEY: z.string().optional(),
2718
+ MODELSLAB_API_KEY: z.string().optional(),
2719
+ NSCALE_SERVICE_TOKEN: z.string().optional(),
2720
+ NSCALE_API_KEY: z.string().optional(),
2721
+ OLLAMA_API_KEY: z.string().optional(),
2722
+ OLLAMA_BASE_URL: z.string().optional(),
2723
+ OPENAI_API_BASE_URL: z.string().optional(),
2724
+ OPENAI_API_HOST: z.string().optional(),
2725
+ OPENAI_API_KEY: z.string().optional(),
2726
+ OPENAI_BASE_URL: z.string().optional(),
2727
+ OPENAI_ORGANIZATION: z.string().optional(),
2728
+ CLAWDBOT_GATEWAY_PASSWORD: z.string().optional(),
2729
+ CLAWDBOT_GATEWAY_TOKEN: z.string().optional(),
2730
+ CLAWDBOT_GATEWAY_URL: z.string().optional(),
2731
+ CODEX_API_KEY: z.string().optional(),
2732
+ OPENCLAW_CONFIG_PATH: z.string().optional(),
2733
+ OPENCLAW_GATEWAY_PASSWORD: z.string().optional(),
2734
+ OPENCLAW_GATEWAY_PORT: z.string().optional(),
2735
+ OPENCLAW_GATEWAY_TOKEN: z.string().optional(),
2736
+ OPENCLAW_GATEWAY_URL: z.string().optional(),
2737
+ PALM_API_HOST: z.string().optional(),
2738
+ PALM_API_KEY: z.string().optional(),
2739
+ PORTKEY_API_KEY: z.string().optional(),
2740
+ PROMPTFOO_CA_CERT_PATH: z.string().optional(),
2741
+ PROMPTFOO_PFX_CERT_PATH: z.string().optional(),
2742
+ PROMPTFOO_PFX_PASSWORD: z.string().optional(),
2743
+ PROMPTFOO_JKS_CERT_PATH: z.string().optional(),
2744
+ PROMPTFOO_JKS_PASSWORD: z.string().optional(),
2745
+ PROMPTFOO_JKS_ALIAS: z.string().optional(),
2746
+ PROMPTFOO_INSECURE_SSL: z.string().optional(),
2747
+ QUIVERAI_API_KEY: z.string().optional(),
2748
+ REPLICATE_API_KEY: z.string().optional(),
2749
+ REPLICATE_API_TOKEN: z.string().optional(),
2750
+ SHAREPOINT_BASE_URL: z.string().optional(),
2751
+ SHAREPOINT_CERT_PATH: z.string().optional(),
2752
+ SHAREPOINT_CLIENT_ID: z.string().optional(),
2753
+ SHAREPOINT_TENANT_ID: z.string().optional(),
2754
+ VERCEL_AI_GATEWAY_API_KEY: z.string().optional(),
2755
+ VERCEL_AI_GATEWAY_BASE_URL: z.string().optional(),
2756
+ VERTEX_API_HOST: z.string().optional(),
2757
+ VERTEX_API_KEY: z.string().optional(),
2758
+ VERTEX_API_VERSION: z.string().optional(),
2759
+ VERTEX_PROJECT_ID: z.string().optional(),
2760
+ VERTEX_PUBLISHER: z.string().optional(),
2761
+ VERTEX_REGION: z.string().optional(),
2762
+ VOYAGE_API_BASE_URL: z.string().optional(),
2763
+ VOYAGE_API_KEY: z.string().optional(),
2764
+ WATSONX_AI_APIKEY: z.string().optional(),
2765
+ WATSONX_AI_AUTH_TYPE: z.string().optional(),
2766
+ WATSONX_AI_BEARER_TOKEN: z.string().optional(),
2767
+ WATSONX_AI_PROJECT_ID: z.string().optional(),
2768
+ XAI_API_BASE_URL: z.string().optional(),
2769
+ XAI_API_KEY: z.string().optional(),
2770
+ AZURE_CONTENT_SAFETY_ENDPOINT: z.string().optional(),
2771
+ AZURE_CONTENT_SAFETY_API_KEY: z.string().optional(),
2772
+ AZURE_CONTENT_SAFETY_API_VERSION: z.string().optional(),
2773
+ AWS_REGION: z.string().optional(),
2774
+ AWS_DEFAULT_REGION: z.string().optional(),
2775
+ AWS_SAGEMAKER_MAX_TOKENS: z.string().optional(),
2776
+ AWS_SAGEMAKER_TEMPERATURE: z.string().optional(),
2777
+ AWS_SAGEMAKER_TOP_P: z.string().optional(),
2778
+ AWS_SAGEMAKER_MAX_RETRIES: z.string().optional(),
2779
+ PROMPTFOO_EVAL_TIMEOUT_MS: z.string().optional()
2780
+ });
2781
+ //#endregion
2800
2782
  //#region src/validators/providers.ts
2801
2783
  const ProviderOptionsSchema = z.object({
2802
2784
  id: z.custom().optional(),
@@ -2859,6 +2841,26 @@ const ProviderSchema = z.union([
2859
2841
  ProviderOptionsSchema
2860
2842
  ]);
2861
2843
  //#endregion
2844
+ //#region src/validators/prompts.ts
2845
+ const PromptConfigSchema = z.object({
2846
+ prefix: z.string().optional(),
2847
+ suffix: z.string().optional()
2848
+ });
2849
+ const PromptFunctionSchema = z.custom((v) => typeof v === "function");
2850
+ const PromptSchema = z.object({
2851
+ id: z.string().optional(),
2852
+ raw: z.string(),
2853
+ template: z.string().optional(),
2854
+ display: z.string().optional(),
2855
+ label: z.string(),
2856
+ function: PromptFunctionSchema.optional(),
2857
+ config: z.any().optional()
2858
+ });
2859
+ function assert$1() {}
2860
+ assert$1();
2861
+ assert$1();
2862
+ assert$1();
2863
+ //#endregion
2862
2864
  //#region src/validators/redteam.ts
2863
2865
  const TracingConfigSchema = z.lazy(() => z.object({
2864
2866
  enabled: z.boolean().optional(),
@@ -3613,6 +3615,6 @@ const EvalResultsFilterMode = z.enum([
3613
3615
  "user-rated"
3614
3616
  ]);
3615
3617
  //#endregion
3616
- export { pluginDescriptions as $, isApiProvider as A, CompletionTokenDetailsSchema as At, isValidReusablePolicyId as B, TestGeneratorConfigSchema as C, UNALIGNED_PROVIDER_HARM_PLUGINS as Ct, VarsSchema as D, CODING_AGENT_PLUGIN_DISPLAY_NAMES as Dt, UnifiedConfigSchema as E, CODING_AGENT_PLUGIN_DESCRIPTIONS as Et, ConversationMessageSchema as F, MULTI_TURN_STRATEGIES as G, AGENTIC_STRATEGIES as H, PartialGenerationError as I, getDefaultNFanout as J, STRATEGY_COLLECTIONS as K, PluginConfigSchema as L, RedteamConfigSchema as M, ProviderOptionsSchema as N, isGradingResult as O, PromptSchema as Ot, ProvidersSchema as P, categoryAliases as Q, PolicyObjectSchema as R, TestCasesWithMetadataSchema as S, TELECOM_PLUGINS as St, TestSuiteSchema as T, CODING_AGENT_PLUGINS as Tt, DATASET_PLUGINS as U, isUuid as V, DEFAULT_STRATEGIES as W, isFanoutStrategy as X, isCustomStrategy as Y, Severity as Z, ScenarioSchema as _, PLUGIN_CATEGORIES as _t, AtomicTestCaseSchema as a, DEFAULT_PLUGINS as at, TestCaseWithVarsFileSchema as b, STRATEGY_EXEMPT_PLUGINS as bt, CompletedPromptSchema as c, HARM_PLUGINS as ct, EvaluateOptionsSchema as d, LLAMA_GUARD_REPLICATE_PROVIDER as dt, riskCategorySeverityMap as et, GradingConfigSchema as f, MEDICAL_PLUGINS as ft, ResultFailureReason as g, PII_PLUGINS as gt, OutputFileExtension as h, PHARMACY_PLUGINS as ht, AssertionTypeSchema as i, DATASET_EXEMPT_PLUGINS as it, isProviderOptions as j, InputsSchema as jt, isResultFailureReason as k, BaseTokenUsageSchema as kt, DerivedMetricSchema as l, INSURANCE_PLUGINS as lt, OutputConfigSchema as m, MULTI_INPUT_VAR as mt, AssertionSchema as n, BIAS_PLUGINS as nt, BaseAssertionTypesSchema as o, FINANCIAL_PLUGINS as ot, NotPrefixedAssertionTypesSchema as p, MULTI_INPUT_EXCLUDED_PLUGINS as pt, STRATEGY_COLLECTION_MAPPINGS as q, AssertionSetSchema as r, CANARY_BREAKING_STRATEGY_IDS as rt, CommandLineOptionsSchema as s, FOUNDATION_PLUGINS as st, AssertionOrSetSchema as t, ALIASED_PLUGIN_MAPPINGS as tt, EvalResultsFilterMode as u, LLAMA_GUARD_ENABLED_CATEGORIES as ut, SpecialAssertionTypesSchema as v, REDTEAM_PROVIDER_HARM_PLUGINS as vt, TestSuiteConfigSchema as w, CODING_AGENT_CORE_PLUGINS as wt, TestCasesWithMetadataPromptSchema as x, TEEN_SAFETY_PLUGINS as xt, TestCaseSchema as y, REMOTE_ONLY_PLUGIN_IDS as yt, StrategyConfigSchema as z };
3618
+ export { categoryAliases as $, isApiProvider as A, CompletionTokenDetailsSchema as At, StrategyConfigSchema as B, TestGeneratorConfigSchema as C, TELECOM_PLUGINS as Ct, VarsSchema as D, CODING_AGENT_PLUGIN_DESCRIPTIONS as Dt, UnifiedConfigSchema as E, CODING_AGENT_PLUGINS as Et, ProvidersSchema as F, DEFAULT_STRATEGIES as G, isUuid as H, ConversationMessageSchema as I, STRATEGY_COLLECTION_MAPPINGS as J, MULTI_TURN_STRATEGIES as K, PartialGenerationError as L, RedteamConfigSchema as M, PromptSchema as N, isGradingResult as O, CODING_AGENT_PLUGIN_DISPLAY_NAMES as Ot, ProviderOptionsSchema as P, Severity as Q, PluginConfigSchema as R, TestCasesWithMetadataSchema as S, TEEN_SAFETY_PLUGINS as St, TestSuiteSchema as T, CODING_AGENT_CORE_PLUGINS as Tt, AGENTIC_STRATEGIES as U, isValidReusablePolicyId as V, DATASET_PLUGINS as W, isCustomStrategy as X, getDefaultNFanout as Y, isFanoutStrategy as Z, ScenarioSchema as _, PII_PLUGINS as _t, AtomicTestCaseSchema as a, DATASET_EXEMPT_PLUGINS as at, TestCaseWithVarsFileSchema as b, REMOTE_ONLY_PLUGIN_IDS as bt, CompletedPromptSchema as c, FOUNDATION_PLUGINS as ct, EvaluateOptionsSchema as d, LLAMA_GUARD_ENABLED_CATEGORIES as dt, pluginDescriptions as et, GradingConfigSchema as f, LLAMA_GUARD_REPLICATE_PROVIDER as ft, ResultFailureReason as g, PHARMACY_PLUGINS as gt, OutputFileExtension as h, MULTI_INPUT_VAR as ht, AssertionTypeSchema as i, CANARY_BREAKING_STRATEGY_IDS as it, isProviderOptions as j, InputsSchema as jt, isResultFailureReason as k, BaseTokenUsageSchema as kt, DerivedMetricSchema as l, HARM_PLUGINS as lt, OutputConfigSchema as m, MULTI_INPUT_EXCLUDED_PLUGINS as mt, AssertionSchema as n, ALIASED_PLUGIN_MAPPINGS as nt, BaseAssertionTypesSchema as o, DEFAULT_PLUGINS as ot, NotPrefixedAssertionTypesSchema as p, MEDICAL_PLUGINS as pt, STRATEGY_COLLECTIONS as q, AssertionSetSchema as r, BIAS_PLUGINS as rt, CommandLineOptionsSchema as s, FINANCIAL_PLUGINS as st, AssertionOrSetSchema as t, riskCategorySeverityMap as tt, EvalResultsFilterMode as u, INSURANCE_PLUGINS as ut, SpecialAssertionTypesSchema as v, PLUGIN_CATEGORIES as vt, TestSuiteConfigSchema as w, UNALIGNED_PROVIDER_HARM_PLUGINS as wt, TestCasesWithMetadataPromptSchema as x, STRATEGY_EXEMPT_PLUGINS as xt, TestCaseSchema as y, REDTEAM_PROVIDER_HARM_PLUGINS as yt, PolicyObjectSchema as z };
3617
3619
 
3618
- //# sourceMappingURL=types-BGQDAP8i.js.map
3620
+ //# sourceMappingURL=types-DNRZVOue.js.map
@@ -1,13 +1,15 @@
1
- import { S as getEnvBool, a as logger, f as sanitizeObject, k as state } from "./logger-B88EkIn6.js";
2
- import { A as TERMINAL_MAX_WIDTH, I as VERSION, t as fetchWithProxy } from "./fetch-B0Z3Oe4k.js";
3
- import { t as invariant } from "./invariant-vgHWClmd.js";
4
- import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-Dh4dOLlt.js";
5
- import { a as getNunjucksEngine, n as renderVarsInObject } from "./render-DHIZ6_k8.js";
6
- import { m as isProviderOptions, o as OutputFileExtension, p as isApiProvider, s as ResultFailureReason } from "./types-Bgh5SOn6.js";
7
- import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-BArZuxsI.js";
8
- import { r as runPython } from "./pythonUtils-Cldx7huE.js";
1
+ import { S as getEnvBool, a as logger, f as sanitizeObject, k as state } from "./logger-KD8JjCRJ.js";
2
+ import { A as TERMINAL_MAX_WIDTH, t as fetchWithProxy } from "./fetch-Y5qX_kST.js";
3
+ import { n as VERSION } from "./version-0frU0UTr.js";
4
+ import { t as invariant } from "./invariant-DIYf9sP1.js";
5
+ import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-B6whoAcf.js";
6
+ import { a as getNunjucksEngine, n as renderVarsInObject } from "./render-7uNJ2V14.js";
7
+ import { m as isProviderOptions, o as OutputFileExtension, p as isApiProvider, s as ResultFailureReason } from "./types-BDjGOq4E.js";
8
+ import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-BGh-W-HT.js";
9
+ import { r as runPython } from "./pythonUtils-C4tltmIn.js";
9
10
  import dotenv from "dotenv";
10
11
  import * as fs$2 from "fs";
12
+ import fs from "fs";
11
13
  import * as path$1 from "path";
12
14
  import path from "path";
13
15
  import * as os$1 from "os";
@@ -383,11 +385,32 @@ async function maybeLoadToolsFromExternalFile(tools, vars) {
383
385
  return loaded;
384
386
  }
385
387
  //#endregion
386
- //#region src/util/provider.ts
388
+ //#region src/util/providerRef.ts
389
+ const PROVIDER_OPTION_KEYS = new Set([
390
+ "id",
391
+ "label",
392
+ "config",
393
+ "prompts",
394
+ "transform",
395
+ "delay",
396
+ "env",
397
+ "inputs"
398
+ ]);
399
+ /** Returns true if the value is a non-empty string suitable as a provider identifier. */
400
+ function isValidProviderId(id) {
401
+ return typeof id === "string" && id !== "";
402
+ }
403
+ function getProviderLabel(provider) {
404
+ if ((typeof provider === "object" || typeof provider === "function") && provider !== null && "label" in provider && typeof provider.label === "string") return provider.label;
405
+ }
406
+ /**
407
+ * Resolves relative file paths in provider IDs to absolute paths for consistent matching.
408
+ * Handles file://, exec:, python:, golang: prefixes and bare .js/.ts/.mjs paths.
409
+ */
387
410
  function canonicalizeProviderId(id) {
388
411
  if (id.startsWith("file://")) {
389
412
  const filePath = id.slice(7);
390
- return path$1.isAbsolute(filePath) ? id : `file://${path$1.resolve(filePath)}`;
413
+ return path.isAbsolute(filePath) ? id : `file://${path.resolve(filePath)}`;
391
414
  }
392
415
  for (const prefix of [
393
416
  "exec:",
@@ -395,19 +418,121 @@ function canonicalizeProviderId(id) {
395
418
  "golang:"
396
419
  ]) if (id.startsWith(prefix)) {
397
420
  const filePath = id.slice(prefix.length);
398
- if (filePath.includes("/") || filePath.includes("\\")) return `${prefix}${path$1.resolve(filePath)}`;
421
+ if (filePath.includes("/") || filePath.includes("\\")) return `${prefix}${path.resolve(filePath)}`;
399
422
  return id;
400
423
  }
401
- if ((id.endsWith(".js") || id.endsWith(".ts") || id.endsWith(".mjs")) && (id.includes("/") || id.includes("\\"))) return `file://${path$1.resolve(id)}`;
424
+ if ((id.endsWith(".js") || id.endsWith(".ts") || id.endsWith(".mjs")) && (id.includes("/") || id.includes("\\"))) return `file://${path.resolve(id)}`;
402
425
  return id;
403
426
  }
404
- function getProviderLabel(provider) {
405
- return provider?.label && typeof provider.label === "string" ? provider.label : void 0;
427
+ /**
428
+ * Returns true for provider refs that should be expanded from YAML/JSON config files.
429
+ */
430
+ function isProviderConfigFileReference(providerPath) {
431
+ return providerPath.startsWith("file://") && (providerPath.endsWith(".yaml") || providerPath.endsWith(".yml") || providerPath.endsWith(".json"));
432
+ }
433
+ /**
434
+ * Reads a provider config file and normalizes single-provider and multi-provider files.
435
+ * Returns a `wasArray` flag so callers can detect multi-provider files that require
436
+ * `loadApiProviders` instead of `loadApiProvider`.
437
+ */
438
+ function readProviderConfigFile(providerPath, basePath) {
439
+ const relativePath = providerPath.slice(7);
440
+ const resolvedPath = path.isAbsolute(relativePath) ? relativePath : path.join(basePath || process.cwd(), relativePath);
441
+ let rawContent;
442
+ try {
443
+ rawContent = yaml.load(fs.readFileSync(resolvedPath, "utf8"));
444
+ } catch (err) {
445
+ throw new Error(`Failed to load provider config ${relativePath}: ${err instanceof Error ? err.message : err}`);
446
+ }
447
+ const fileContent = maybeLoadConfigFromExternalFile(rawContent);
448
+ invariant(fileContent, `Provider config ${relativePath} is undefined`);
449
+ return {
450
+ configs: [fileContent].flat(),
451
+ relativePath,
452
+ wasArray: Array.isArray(fileContent)
453
+ };
454
+ }
455
+ /**
456
+ * Loads provider config objects from a file-backed provider reference.
457
+ */
458
+ function loadProviderConfigsFromFile(providerPath, basePath) {
459
+ return readProviderConfigFile(providerPath, basePath).configs;
406
460
  }
461
+ /**
462
+ * Pure, synchronous classifier that converts every supported provider reference shape
463
+ * into a discriminated descriptor. Does not read files or instantiate providers.
464
+ */
465
+ function normalizeProviderRef(provider, options = {}) {
466
+ const { index } = options;
467
+ if (typeof provider === "string") {
468
+ if (!isValidProviderId(provider)) return {
469
+ kind: "unknown",
470
+ id: index === void 0 ? "unknown" : `unknown-${index}`
471
+ };
472
+ if (isProviderConfigFileReference(provider)) return {
473
+ kind: "file",
474
+ id: provider,
475
+ loadProviderPath: provider
476
+ };
477
+ return {
478
+ kind: "named",
479
+ id: provider,
480
+ loadProviderPath: provider
481
+ };
482
+ }
483
+ if (typeof provider === "function") {
484
+ const label = getProviderLabel(provider);
485
+ return {
486
+ kind: "function",
487
+ id: label ?? (index === void 0 ? "custom-function" : `custom-function-${index}`),
488
+ label
489
+ };
490
+ }
491
+ if (typeof provider === "object" && provider !== null && !Array.isArray(provider)) {
492
+ const providerId = provider.id;
493
+ const label = getProviderLabel(provider);
494
+ if (isValidProviderId(providerId)) return {
495
+ kind: "options",
496
+ id: providerId,
497
+ label,
498
+ loadOptions: provider,
499
+ loadProviderPath: providerId
500
+ };
501
+ const keys = Object.keys(provider);
502
+ if (keys.length === 1 && !PROVIDER_OPTION_KEYS.has(keys[0])) {
503
+ const originalId = keys[0];
504
+ const providerObject = provider[originalId];
505
+ if (typeof providerObject === "object" && providerObject !== null && !Array.isArray(providerObject) && isValidProviderId(originalId)) {
506
+ const id = isValidProviderId(providerObject.id) ? providerObject.id : originalId;
507
+ return {
508
+ kind: "map",
509
+ id,
510
+ label: getProviderLabel(providerObject),
511
+ loadOptions: {
512
+ ...providerObject,
513
+ id
514
+ },
515
+ loadProviderPath: originalId
516
+ };
517
+ }
518
+ }
519
+ if (isValidProviderId(label)) return {
520
+ kind: "unknown",
521
+ id: label,
522
+ label
523
+ };
524
+ }
525
+ return {
526
+ kind: "unknown",
527
+ id: index === void 0 ? "unknown" : `unknown-${index}`
528
+ };
529
+ }
530
+ //#endregion
531
+ //#region src/util/provider.ts
407
532
  function providerToIdentifier(provider) {
408
533
  if (!provider) return;
409
534
  if (typeof provider === "string") return canonicalizeProviderId(provider);
410
- const label = getProviderLabel(provider);
535
+ const { label } = normalizeProviderRef(provider);
411
536
  if (label) return label;
412
537
  if (isApiProvider(provider)) return canonicalizeProviderId(provider.id());
413
538
  if (isProviderOptions(provider)) {
@@ -1298,6 +1423,6 @@ function printBorder() {
1298
1423
  logger.info(border);
1299
1424
  }
1300
1425
  //#endregion
1301
- export { readFilters as A, getResolvedRelativePath as C, maybeLoadResponseFormatFromExternalFile as D, maybeLoadFromExternalFileWithVars as E, loadFunction as M, parseFileUrl as N, maybeLoadToolsFromExternalFile as O, getNunjucksEngineForFilePath as S, maybeLoadFromExternalFile as T, getProviderDescription as _, evalTableToJson as a, isOpenAiProvider as b, fetchCsvFromGoogleSheet as c, extractRuntimeVars as d, filterRuntimeVars as f, doesProviderRefMatch as g, checkProviderApiKeys as h, ComparisonEvalNotFoundError as i, readOutput as j, parsePathOrGlob as k, setupEnv as l, resultIsForTestCase as m, writeMultipleOutputs as n, generateEvalCsv as o, getTestCaseDeduplicationKey as p, writeOutput as r, mergeComparisonTables as s, printBorder as t, deduplicateTestCases as u, isAnthropicProvider as v, maybeLoadConfigFromExternalFile as w, isProviderAllowed as x, isGoogleProvider as y };
1426
+ export { maybeLoadFromExternalFileWithVars as A, loadProviderConfigsFromFile as C, getResolvedRelativePath as D, getNunjucksEngineForFilePath as E, readOutput as F, loadFunction as I, parseFileUrl as L, maybeLoadToolsFromExternalFile as M, parsePathOrGlob as N, maybeLoadConfigFromExternalFile as O, readFilters as P, isProviderConfigFileReference as S, readProviderConfigFile as T, getProviderDescription as _, evalTableToJson as a, isOpenAiProvider as b, fetchCsvFromGoogleSheet as c, extractRuntimeVars as d, filterRuntimeVars as f, doesProviderRefMatch as g, checkProviderApiKeys as h, ComparisonEvalNotFoundError as i, maybeLoadResponseFormatFromExternalFile as j, maybeLoadFromExternalFile as k, setupEnv as l, resultIsForTestCase as m, writeMultipleOutputs as n, generateEvalCsv as o, getTestCaseDeduplicationKey as p, writeOutput as r, mergeComparisonTables as s, printBorder as t, deduplicateTestCases as u, isAnthropicProvider as v, normalizeProviderRef as w, isProviderAllowed as x, isGoogleProvider as y };
1302
1427
 
1303
- //# sourceMappingURL=util-C8e5uydV.js.map
1428
+ //# sourceMappingURL=util-3pBZZb_H.js.map