promptfoo 0.120.24 → 0.120.26

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 (304) hide show
  1. package/README.md +35 -22
  2. package/dist/src/{ListApp-55OAHww3.js → ListApp-D3DG0F8h.js} +1 -1
  3. package/dist/src/{accounts-BwVGYllP.cjs → accounts-BzEY8H3v.cjs} +5 -5
  4. package/dist/src/{accounts-BOlMHrvn.js → accounts-DHHiXsy6.js} +6 -6
  5. package/dist/src/{accounts-DxR9x_En.js → accounts-R3gfCR_g.js} +5 -5
  6. package/dist/src/{agentic-utils-t9-1raty.js → agentic-utils-D6_gzOUF.js} +3 -3
  7. package/dist/src/{agents-DMpQ860j.cjs → agents-C7BiinFI.cjs} +7 -7
  8. package/dist/src/{agents-9Z7pO8yx.js → agents-Cao4i7AX.js} +8 -8
  9. package/dist/src/{agents-DjExVR3v.js → agents-Cnph5GLD.js} +2 -2
  10. package/dist/src/{agents-CI0Ad69d.cjs → agents-CwM7re15.cjs} +5 -5
  11. package/dist/src/{agents-BwI-Tm5m.js → agents-DETIQHqF.js} +7 -7
  12. package/dist/src/{agents-CRAmwjo-.js → agents-DYIT-hQy.js} +6 -6
  13. package/dist/src/{agents-BbIpDhgp.js → agents-GiUianme.js} +5 -5
  14. package/dist/src/{agents-yL5DzIKY.js → agents-v4cW_ZgC.js} +2 -2
  15. package/dist/src/{aimlapi-xHHqwNg8.js → aimlapi-CMJpKK-B.js} +13 -13
  16. package/dist/src/{aimlapi-BM9P45Bp.js → aimlapi-DMF6v_vb.js} +15 -15
  17. package/dist/src/{aimlapi-DKo7IxJg.cjs → aimlapi-DoGLcQW_.cjs} +14 -14
  18. package/dist/src/{aimlapi-ivzDkqbs.js → aimlapi-DtSf1ykJ.js} +2 -2
  19. package/dist/src/app/assets/index-BOgkICuY.css +1 -0
  20. package/dist/src/app/assets/index-CSgqn_Vd.js +428 -0
  21. package/dist/src/app/assets/{vendor-charts-DnwydkkY.js → vendor-charts-CYyo8R8v.js} +1 -1
  22. package/dist/src/app/assets/{vendor-markdown-DjKAU15k.js → vendor-markdown-DSmzq4Jh.js} +1 -1
  23. package/dist/src/app/assets/vendor-react-AtKqiNEf.js +4 -0
  24. package/dist/src/app/assets/{vendor-syntax-Dc86c4Bu.js → vendor-syntax-D06x6TQF.js} +1 -1
  25. package/dist/src/app/index.html +6 -6
  26. package/dist/src/app/tsconfig.app.tsbuildinfo +1 -1
  27. package/dist/src/{audio-B3QGL6Nl.cjs → audio-BWjyvHn9.cjs} +4 -4
  28. package/dist/src/{audio-C-1oBiVZ.js → audio-BrJBFN2b.js} +4 -4
  29. package/dist/src/{audio-DnfDVjhL.js → audio-DUH4q0Xq.js} +5 -5
  30. package/dist/src/{audio-DQWHfAr8.js → audio-U580w8jM.js} +2 -2
  31. package/dist/src/{base-DHam07ip.js → base-BaXmtXYp.js} +3 -3
  32. package/dist/src/{base-BjsgxJp9.js → base-Dtp8b4_N.js} +3 -3
  33. package/dist/src/{base-Bso8ccGu.cjs → base-f71xxWai.cjs} +3 -3
  34. package/dist/src/{blobs-DOdc-E8L.cjs → blobs-673H0jCl.cjs} +3 -3
  35. package/dist/src/{blobs-Dcm272OH.js → blobs-C9J2mVgo.js} +3 -3
  36. package/dist/src/{blobs-MlVQyoSc.js → blobs-kt8v3UyH.js} +3 -3
  37. package/dist/src/{cache-KNsTJLKP.cjs → cache-7xULbvt3.cjs} +35 -8
  38. package/dist/src/{cache-BMl3AIo5.js → cache-BLLayYEN.js} +24 -9
  39. package/dist/src/{cache-B0ptF7sO.js → cache-BUPcq0Ad.js} +3 -3
  40. package/dist/src/cache-CVfRb-HD.cjs +6 -0
  41. package/dist/src/{cache-DPztwHxt.js → cache-O4EuX2JV.js} +4 -4
  42. package/dist/src/{cache-DHm8Pc8l.js → cache-mIszOnuz.js} +5 -22
  43. package/dist/src/{chat-DOQIJx7O.cjs → chat-C4zqjObh.cjs} +10 -10
  44. package/dist/src/{chat-DDGU7Tik.js → chat-C8Ei4f87.js} +9 -9
  45. package/dist/src/{chat-BnzIuoTQ.js → chat-CgyGj2hC.js} +12 -12
  46. package/dist/src/{chat-BRMJOuCv.js → chat-Cpz3O-Xl.js} +14 -14
  47. package/dist/src/{chat-CVOyOBYk.js → chat-DIywASPG.js} +11 -11
  48. package/dist/src/{chat-CrnXMbvh.cjs → chat-Fl6TZJRS.cjs} +13 -13
  49. package/dist/src/{chat-D8GcWK9l.js → chat-XPN9YHhr.js} +2 -2
  50. package/dist/src/{chatkit-IWIuhxFE.js → chatkit-DEls11hE.js} +4 -4
  51. package/dist/src/{chatkit-DlOZ-eNb.js → chatkit-DIrJX8xk.js} +4 -4
  52. package/dist/src/{chatkit-CcktkleS.js → chatkit-Dpxrq4eD.js} +2 -2
  53. package/dist/src/{chatkit-yeVtURUi.cjs → chatkit-e25Ziu17.cjs} +4 -4
  54. package/dist/src/{claude-agent-sdk-BiMgSH9g.js → claude-agent-sdk-6-xTaLwM.js} +48 -19
  55. package/dist/src/{claude-agent-sdk-Yj9Hq0cH.cjs → claude-agent-sdk-BzxF6NIJ.cjs} +48 -19
  56. package/dist/src/{claude-agent-sdk-rVqlUIJl.js → claude-agent-sdk-CmkTnKGH.js} +49 -20
  57. package/dist/src/{claude-agent-sdk-yid1kGsL.js → claude-agent-sdk-rXCBLK_o.js} +40 -11
  58. package/dist/src/{cloud-ByJVRSQI.js → cloud-BMbRVJFw.js} +3 -3
  59. package/dist/src/cloud-CZ4hytdm.js +5 -0
  60. package/dist/src/{cloudflare-ai-DmJZcvVx.cjs → cloudflare-ai-BAQ0u_dg.cjs} +14 -14
  61. package/dist/src/{cloudflare-ai-CWKYPCCF.js → cloudflare-ai-CUg4BTcj.js} +13 -13
  62. package/dist/src/{cloudflare-ai-goDJ5bwr.js → cloudflare-ai-CobxMTR4.js} +15 -15
  63. package/dist/src/{cloudflare-ai-CdKv38f6.js → cloudflare-ai-Z9X219gp.js} +2 -2
  64. package/dist/src/{cloudflare-gateway-BW8hcdB0.cjs → cloudflare-gateway-C0sgfr_z.cjs} +15 -15
  65. package/dist/src/{cloudflare-gateway-CDCOS1Os.js → cloudflare-gateway-D2_yi-Fh.js} +16 -16
  66. package/dist/src/{cloudflare-gateway-Dz_HCMGY.js → cloudflare-gateway-Djf3F3_H.js} +2 -2
  67. package/dist/src/{cloudflare-gateway-gzmTsXcd.js → cloudflare-gateway-_itGuXry.js} +14 -14
  68. package/dist/src/{codex-sdk-BlvhxMr0.js → codex-sdk-BASDNkIl.js} +90 -34
  69. package/dist/src/{codex-sdk-BC5qbCjh.js → codex-sdk-dSnGdgIp.js} +92 -36
  70. package/dist/src/{codex-sdk-CBpm53B8.js → codex-sdk-ibXwdglL.js} +91 -35
  71. package/dist/src/{codex-sdk-Cf5_CQch.cjs → codex-sdk-wTEpMM_X.cjs} +92 -36
  72. package/dist/src/{cometapi-DoaO5SLq.js → cometapi-B01btbfb.js} +16 -16
  73. package/dist/src/{cometapi-BUKGSUCw.js → cometapi-ChAaRjg5.js} +14 -14
  74. package/dist/src/{cometapi-C6BSw9k3.js → cometapi-DHUAH6nK.js} +2 -2
  75. package/dist/src/{cometapi-B3TzpkNI.cjs → cometapi-JbvOJSCO.cjs} +15 -15
  76. package/dist/src/{completion-BLe7SUA4.js → completion-BBJ6zmG3.js} +6 -6
  77. package/dist/src/{completion-1RAiLcwi.js → completion-D9_MDlnd.js} +6 -6
  78. package/dist/src/{completion-D6BTVt6e.cjs → completion-DDyL3Cb2.cjs} +6 -6
  79. package/dist/src/{docker-CkOzlD1W.js → docker-BuButc4D.js} +15 -15
  80. package/dist/src/{docker-BWsSX8Pn.cjs → docker-Ckw-j7Rr.cjs} +14 -14
  81. package/dist/src/{docker-CMf5SGLq.js → docker-JAAubMw3.js} +13 -13
  82. package/dist/src/{docker-C0AzMsuf.js → docker-vnOg96gi.js} +2 -2
  83. package/dist/src/errors-DnGCbnx8.js +36 -0
  84. package/dist/src/{esm-gWVPXn3r.cjs → esm-BQkx5roy.cjs} +2 -2
  85. package/dist/src/{esm-Lh6czAFT.js → esm-CYhseqj4.js} +2 -2
  86. package/dist/src/{esm-D40XsWlR.js → esm-rDtG_2rg.js} +2 -2
  87. package/dist/src/eval-CKHWqG9f.js +16 -0
  88. package/dist/src/{eval-WaSg64w3.js → eval-CYrbG57o.js} +106 -29
  89. package/dist/src/{evalResult-CGrGU_cG.js → evalResult-6JaUIStC.js} +7 -7
  90. package/dist/src/{evalResult-C_UM63nn.js → evalResult-COsVttMA.js} +7 -7
  91. package/dist/src/evalResult-CxTP-LMm.cjs +11 -0
  92. package/dist/src/evalResult-CzLURDcP.js +13 -0
  93. package/dist/src/{evalResult-BU4huold.cjs → evalResult-DlRfu_Rq.cjs} +7 -7
  94. package/dist/src/evalResult-DyttNQ_G.js +11 -0
  95. package/dist/src/evaluator-0PvfeBYh.js +38 -0
  96. package/dist/src/{evaluator-gmF3Vddp.js → evaluator-3EJCMTs0.js} +75 -49
  97. package/dist/src/{extractor-D-RM2m6A.cjs → extractor-DbhlYEeo.cjs} +23 -6
  98. package/dist/src/{extractor-Da8IxCeS.js → extractor-Hs7la_19.js} +23 -6
  99. package/dist/src/{extractor-BA90EtLq.js → extractor-LSYjrhK0.js} +23 -6
  100. package/dist/src/{fetch-BIfcW-Fd.js → fetch-18MuNu9i.js} +21 -7
  101. package/dist/src/{fetch-CW9GabAi.js → fetch-Bi0o-fdp.js} +2 -2
  102. package/dist/src/fetch-CMptBDVg.cjs +4 -0
  103. package/dist/src/fetch-DAZkv3gV.js +6 -0
  104. package/dist/src/{fetch-Mb7SbeM-.js → fetch-SRsE6Ctl.js} +21 -7
  105. package/dist/src/{fetch-MvWxCS5U.cjs → fetch-ZMn_oemb.cjs} +21 -7
  106. package/dist/src/{fileExtensions-CzcPkiKZ.js → fileExtensions-BpuMmaFL.js} +1 -1
  107. package/dist/src/{formatDuration-CCiZ-wBY.js → formatDuration-Doo0xq-z.js} +1 -1
  108. package/dist/src/{genaiTracer-BQ8AmajD.cjs → genaiTracer-CQlpZkrp.cjs} +2 -2
  109. package/dist/src/{genaiTracer-foKtbVa2.js → genaiTracer-CqNnnXrE.js} +1 -1
  110. package/dist/src/graders-BCytzXrb.js +34 -0
  111. package/dist/src/{graders-CwtelA9k.js → graders-BaMCwIKp.js} +212 -91
  112. package/dist/src/graders-CGZQShfJ.cjs +33 -0
  113. package/dist/src/{graders-2dabIkXs.cjs → graders-DzUUnUjC.cjs} +212 -91
  114. package/dist/src/{graders-BscQ6O1Q.js → graders-QsALpIdy.js} +211 -90
  115. package/dist/src/graders-spkuVC-E.js +36 -0
  116. package/dist/src/{image-Dv0o-Ab7.js → image-BXt_7u0v.js} +4 -4
  117. package/dist/src/{image-B6TV9l0v.js → image-BiEVdpdP.js} +7 -7
  118. package/dist/src/{image-DS9hlgSc.cjs → image-C3BjJUAU.cjs} +7 -7
  119. package/dist/src/{image-_jKUeeh9.js → image-COCWy5dX.js} +2 -2
  120. package/dist/src/{image-DqElR73O.cjs → image-D10zEe1f.cjs} +4 -4
  121. package/dist/src/{image-BVEVjrwl.js → image-DB4sHxdJ.js} +5 -5
  122. package/dist/src/{image-C1i3NoZo.js → image-mhAGP07h.js} +7 -7
  123. package/dist/src/index.cjs +305 -112
  124. package/dist/src/index.d.cts +137 -3
  125. package/dist/src/index.d.ts +137 -3
  126. package/dist/src/index.js +304 -111
  127. package/dist/src/{interactiveCheck-CjK2R4rB.js → interactiveCheck-DU-MAhp5.js} +2 -2
  128. package/dist/src/{knowledgeBase-K5fJN2kC.cjs → knowledgeBase-Bnb00xKs.cjs} +8 -8
  129. package/dist/src/{knowledgeBase-D-xthvn0.js → knowledgeBase-CMvMlLZR.js} +9 -9
  130. package/dist/src/{knowledgeBase-DJZHeJqg.js → knowledgeBase-DotRBzUE.js} +2 -2
  131. package/dist/src/{knowledgeBase-BSs2ldSR.js → knowledgeBase-XJQ0Qyez.js} +8 -8
  132. package/dist/src/{litellm-kPhaZkzz.js → litellm-BECdjOTx.js} +3 -3
  133. package/dist/src/{litellm-uRLukY7s.cjs → litellm-BrnZhMcL.cjs} +15 -15
  134. package/dist/src/{litellm-DH_rVIOd.js → litellm-CHrRmPAe.js} +16 -16
  135. package/dist/src/{litellm-DoXGHlpD.js → litellm-CrLJrPIm.js} +14 -14
  136. package/dist/src/{logger-CMp-NS-e.cjs → logger-BdZ-IqBc.cjs} +5 -2
  137. package/dist/src/{logger-Bzi5o47S.js → logger-BotXmWKW.js} +5 -2
  138. package/dist/src/{logger-q5I8CByj.js → logger-w8Ozp0Td.js} +5 -2
  139. package/dist/src/{luma-ray-B3GiVpuq.js → luma-ray-BOeX-h0M.js} +10 -10
  140. package/dist/src/{luma-ray-CPISsLu-.js → luma-ray-C-w6EsJm.js} +2 -2
  141. package/dist/src/{luma-ray-BrWrKIIB.cjs → luma-ray-C0RkI3lt.cjs} +10 -10
  142. package/dist/src/{luma-ray-gyI_GEy2.js → luma-ray-DgKLS0BF.js} +11 -11
  143. package/dist/src/main.js +3260 -2537
  144. package/dist/src/{messages-CJgEjRQF.js → messages-CDZYGNlS.js} +13 -10
  145. package/dist/src/{messages-BMkwrfmt.js → messages-D61tPFQo.js} +14 -11
  146. package/dist/src/{messages-B5HsO_dM.cjs → messages-DXV3Qh8_.cjs} +14 -11
  147. package/dist/src/{meteor-CBciquOS.js → meteor-Dj8cTkU_.js} +1 -1
  148. package/dist/src/{meteor-0cLf9TIn.js → meteor-P2rUE-Uz.js} +1 -1
  149. package/dist/src/{meteor-BQ6Ws9k2.js → meteor-SLNTgmXm.js} +2 -2
  150. package/dist/src/{meteor-DRuEfzuQ.cjs → meteor-odmwVbyG.cjs} +1 -1
  151. package/dist/src/{nova-reel-B5SOonY2.js → nova-reel-Bk5npr2q.js} +11 -11
  152. package/dist/src/{nova-reel-CT9ZuhJ3.js → nova-reel-C2LFfVTf.js} +2 -2
  153. package/dist/src/{nova-reel-ByTx85ed.cjs → nova-reel-D9FXq3Mt.cjs} +10 -10
  154. package/dist/src/{nova-reel-ChM7WaHR.js → nova-reel-DtCjbD5O.js} +10 -10
  155. package/dist/src/{nova-sonic-D4M3kKYu.js → nova-sonic-BXRfQyF-.js} +8 -8
  156. package/dist/src/{nova-sonic-C-H3eDvL.cjs → nova-sonic-BoRSY_U6.cjs} +7 -7
  157. package/dist/src/{nova-sonic-DgifpOKF.js → nova-sonic-CgaWLDM1.js} +7 -7
  158. package/dist/src/{nova-sonic-BqP59oOu.js → nova-sonic-D_qERM-K.js} +2 -2
  159. package/dist/src/{openai-BjpdxIOG.cjs → openai-Bigwjgo1.cjs} +2 -2
  160. package/dist/src/{openai-Cv9pEKxp.js → openai-CT5fwbve.js} +2 -2
  161. package/dist/src/{openai-CitF-gEN.js → openai-Dz3surb_.js} +2 -2
  162. package/dist/src/openclaw-B6XY2kUf.js +526 -0
  163. package/dist/src/openclaw-CpPrXwf6.js +524 -0
  164. package/dist/src/openclaw-DDSfq5fp.cjs +528 -0
  165. package/dist/src/openclaw-dHLcXUWZ.js +511 -0
  166. package/dist/src/{opencode-sdk-Dakn4QMp.js → opencode-sdk-CImWVqy9.js} +7 -7
  167. package/dist/src/{opencode-sdk-BcLvVMV-.js → opencode-sdk-CuCztr4P.js} +6 -6
  168. package/dist/src/{opencode-sdk-z7KKOCdB.js → opencode-sdk-DhcfRbBH.js} +3 -3
  169. package/dist/src/{opencode-sdk-Cqszt4br.cjs → opencode-sdk-mqF-Oj3f.cjs} +6 -6
  170. package/dist/src/{otlpReceiver-BvmMgacx.cjs → otlpReceiver-B6Xo4KZM.cjs} +6 -6
  171. package/dist/src/{otlpReceiver-DRNetlJH.js → otlpReceiver-BO0rbDzh.js} +6 -6
  172. package/dist/src/{otlpReceiver-Bhj_vnzl.js → otlpReceiver-Dg817agV.js} +6 -6
  173. package/dist/src/{otlpReceiver-Cpnk-Hjf.js → otlpReceiver-DmRb0NBj.js} +2 -2
  174. package/dist/src/{providerRegistry-D32Lt9vp.js → providerRegistry-Xf0qdqGQ.js} +2 -2
  175. package/dist/src/{providerRegistry-HGQd2MF6.cjs → providerRegistry-lc7a7utN.cjs} +2 -2
  176. package/dist/src/{providerRegistry-BdKWcUa8.js → providerRegistry-wCWd7sKQ.js} +2 -2
  177. package/dist/src/providers-BMZZmPBJ.cjs +32 -0
  178. package/dist/src/{providers-BWoVY_Wz.cjs → providers-BNKVY53V.cjs} +294 -782
  179. package/dist/src/{providers-Co_FGgH8.js → providers-BiNq_Iyc.js} +281 -769
  180. package/dist/src/{providers-CUCHJCHD.js → providers-BlEhY5mi.js} +286 -779
  181. package/dist/src/providers-CQQrNaJk.js +32 -0
  182. package/dist/src/providers-Ck8HyrC-.js +34 -0
  183. package/dist/src/{pythonUtils-rOCm9w_5.cjs → pythonUtils-DZ6EbdY4.cjs} +3 -3
  184. package/dist/src/{pythonUtils-B9JA-gsC.js → pythonUtils-r1uBuA0n.js} +3 -3
  185. package/dist/src/{pythonUtils-eNq6Wsfr.js → pythonUtils-vMlk9Qp5.js} +3 -3
  186. package/dist/src/{quiverai-BpWtOEQZ.cjs → quiverai-BNfIwKCO.cjs} +13 -13
  187. package/dist/src/{quiverai-Cj-PUa3p.js → quiverai-BQigKdIH.js} +14 -14
  188. package/dist/src/{quiverai-BN8OVvDE.js → quiverai-Bfy2WnE2.js} +12 -12
  189. package/dist/src/{quiverai-D5MSsd2c.js → quiverai-CedIP0PJ.js} +2 -2
  190. package/dist/src/{render-D2710HbA.js → render-CAZvKKkB.js} +4 -4
  191. package/dist/src/responses-DLLjADw5.js +653 -0
  192. package/dist/src/responses-TsdODUpm.js +654 -0
  193. package/dist/src/responses-zOtKtnY_.cjs +671 -0
  194. package/dist/src/{rubyUtils-Dn6MGcsk.js → rubyUtils-BtjlqyXt.js} +3 -3
  195. package/dist/src/{rubyUtils-LBsk3zIm.js → rubyUtils-Cs35SDYa.js} +3 -3
  196. package/dist/src/rubyUtils-D7--T12C.js +6 -0
  197. package/dist/src/{rubyUtils-rnCVDgH-.cjs → rubyUtils-DCVaJ3mc.cjs} +3 -3
  198. package/dist/src/rubyUtils-DRRiMFV2.js +5 -0
  199. package/dist/src/rubyUtils-vb8OYFC-.cjs +5 -0
  200. package/dist/src/{sagemaker-C8MeZIkH.js → sagemaker-BcgLu0U4.js} +18 -18
  201. package/dist/src/{sagemaker-4ukMNSN0.js → sagemaker-CLdUAv5z.js} +17 -17
  202. package/dist/src/{sagemaker-DyVHy2BW.js → sagemaker-Du4LIR97.js} +2 -2
  203. package/dist/src/{sagemaker-DB3Eojau.cjs → sagemaker-DwNnEVYt.cjs} +17 -17
  204. package/dist/src/{scanner-C28XVEq2.js → scanner-Dyw21Wg_.js} +12 -12
  205. package/dist/src/server/index.js +1818 -605
  206. package/dist/src/server-BUbS0Qfh.js +6 -0
  207. package/dist/src/{server-BF3HkMhe.js → server-CbMTRQkg.js} +8 -6
  208. package/dist/src/{server-CSbLW-UI.cjs → server-CgUQ25qW.cjs} +8 -6
  209. package/dist/src/{server-mycZbUH8.js → server-DWmZLfCy.js} +10 -7
  210. package/dist/src/server-XpGXFHkS.cjs +6 -0
  211. package/dist/src/server-gfOx5Zrk.js +8 -0
  212. package/dist/src/{signal-DM_SPNmi.js → signal-Bl32q42d.js} +3 -3
  213. package/dist/src/{slack-Ed1yyt_j.js → slack-BfdBx2tO.js} +2 -2
  214. package/dist/src/{slack-D1F9Y7CH.cjs → slack-BtMkB6xP.cjs} +2 -2
  215. package/dist/src/{slack-DkAF58Tr.js → slack-DPqj42Ts.js} +2 -2
  216. package/dist/src/{slack-BK312SXM.js → slack-OZYxoVON.js} +2 -2
  217. package/dist/src/{store-CT_e5OZX.js → store-2ocbYY9D.js} +3 -3
  218. package/dist/src/store-5u2yriTV.js +7 -0
  219. package/dist/src/{store-BpumNYCl.cjs → store-BqwfFEyF.cjs} +3 -3
  220. package/dist/src/{store-BFLqwuc_.js → store-D4gdn9ih.js} +3 -3
  221. package/dist/src/store-D_lq_8oQ.js +6 -0
  222. package/dist/src/store-m5KT6Ly7.cjs +6 -0
  223. package/dist/src/{tables-Dansasnu.cjs → tables-B9E1kRp-.cjs} +3 -3
  224. package/dist/src/{tables-BjaApSAB.js → tables-C7TT2XVn.js} +3 -3
  225. package/dist/src/{tables-Dwexr5Z6.js → tables-D-NSwNIb.js} +3 -3
  226. package/dist/src/telemetry-5RHFoCJh.js +6 -0
  227. package/dist/src/{telemetry-MVkZQxt9.js → telemetry-BXyVqyAg.js} +5 -4
  228. package/dist/src/{telemetry-DFDFKdnr.cjs → telemetry-D0_yFdtU.cjs} +5 -4
  229. package/dist/src/{telemetry-Ds5Nn81l.js → telemetry-DZ_7PaVq.js} +5 -4
  230. package/dist/src/telemetry-Do8wMnA-.js +8 -0
  231. package/dist/src/telemetry-LojxPoFq.cjs +6 -0
  232. package/dist/src/{text-PYISqVm1.cjs → text-DF2hMKdg.cjs} +1 -1
  233. package/dist/src/{text-DuYSUYPB.js → text-DgMr_tiM.js} +1 -1
  234. package/dist/src/{text-Dx0GJOCN.js → text-Dm78AVGG.js} +1 -1
  235. package/dist/src/{tokenUsageUtils-BtZd3sP7.cjs → tokenUsageUtils-CXhxVj72.cjs} +9 -4
  236. package/dist/src/{tokenUsageUtils-DoinwgKF.js → tokenUsageUtils-DmZSD2eU.js} +9 -4
  237. package/dist/src/{tokenUsageUtils-cFdLMERB.js → tokenUsageUtils-FZd5O_4A.js} +9 -4
  238. package/dist/src/{transcription-Cp19m_Mt.js → transcription-C-M81iDA.js} +2 -2
  239. package/dist/src/{transcription-CLRpAg07.js → transcription-CYuY5sFO.js} +10 -10
  240. package/dist/src/{transcription-D8ifIKOv.js → transcription-Ch7S-LWw.js} +11 -11
  241. package/dist/src/{transcription-CXXFEVM_.cjs → transcription-FNIz3YOe.cjs} +10 -10
  242. package/dist/src/transform-8eGmaH-7.js +7 -0
  243. package/dist/src/transform-BRVvWaG4.cjs +6 -0
  244. package/dist/src/{transform-Bn-lgBE2.js → transform-CoP2bJ7P.js} +44 -5
  245. package/dist/src/{transform-BFPYuBaW.js → transform-CqTFr7KR.js} +5 -5
  246. package/dist/src/{transform-DvQWeBSR.js → transform-D8dILpfZ.js} +4 -4
  247. package/dist/src/{transform-BUrxadlA.js → transform-DMaxQwDx.js} +44 -5
  248. package/dist/src/transform-GybT0X0u.js +8 -0
  249. package/dist/src/{transform-DshYLyBq.cjs → transform-Kd6u-oNm.cjs} +4 -4
  250. package/dist/src/{transform-Bw1IstDE.cjs → transform-ivxEY4f7.cjs} +55 -4
  251. package/dist/src/{transformersAvailability-BaoWHpu1.cjs → transformersAvailability-Bkep3ka7.cjs} +1 -1
  252. package/dist/src/{transformersAvailability-Dhh45n5P.js → transformersAvailability-DEU2naS1.js} +1 -1
  253. package/dist/src/{transformersAvailability-DtpwoeFC.js → transformersAvailability-DkAWaK5B.js} +1 -1
  254. package/dist/src/{transformersAvailability-O2YaCv9Z.js → transformersAvailability-DwmezkVe.js} +1 -1
  255. package/dist/src/{types-B-XUqfNs.cjs → types-BIfttHrT.cjs} +22 -2
  256. package/dist/src/{types-BsU_PxR3.js → types-DMVjYLpx.js} +16 -2
  257. package/dist/src/{types-CgrxBFgm.js → types-t52w-XsS.js} +19 -3
  258. package/dist/src/{util-M2MoNCUR.js → util-BSh4a_Q8.js} +7 -7
  259. package/dist/src/{util-DTJWKLkl.cjs → util-C08Kns6-.cjs} +18 -4
  260. package/dist/src/{util-DHBpsbZE.js → util-CUEt0Vum.js} +18 -4
  261. package/dist/src/{util-Bnw6EyZN.js → util-Cl0zfT3V.js} +18 -4
  262. package/dist/src/{util-C7A-PlKK.cjs → util-DUYOvxAy.cjs} +6 -6
  263. package/dist/src/{util-WYC3rB_p.js → util-DiCePfDu.js} +6 -6
  264. package/dist/src/{util-CV99ps44.cjs → util-DkFTvieG.cjs} +17 -5
  265. package/dist/src/{util-CfepsNVK.js → util-mJ58qbbw.js} +17 -5
  266. package/dist/src/{util-BZaMVBMq.js → util-vjscpUzy.js} +17 -5
  267. package/dist/src/{utils-BryuD3vq.js → utils-CVzb4YiI.js} +3 -3
  268. package/dist/src/{utils-Dezi3MBH.cjs → utils-DFaZa6Rf.cjs} +3 -3
  269. package/dist/src/{utils-GiyI2K4P.js → utils-JaY9veb5.js} +3 -3
  270. package/dist/tsconfig.tsbuildinfo +1 -1
  271. package/package.json +75 -77
  272. package/dist/src/app/assets/index-07dbAcWK.js +0 -427
  273. package/dist/src/app/assets/index-DnEcCQgk.css +0 -1
  274. package/dist/src/app/assets/vendor-react-DHoaNLma.js +0 -4
  275. package/dist/src/cache-BujOdYlc.cjs +0 -6
  276. package/dist/src/cloud-BHYz0XkH.js +0 -5
  277. package/dist/src/eval-0IFf8hON.js +0 -16
  278. package/dist/src/evalResult-BCCv6FXj.js +0 -13
  279. package/dist/src/evalResult-C8iVgVvr.js +0 -11
  280. package/dist/src/evalResult-CqFeWKYx.cjs +0 -11
  281. package/dist/src/evaluator-DwS5NAEj.js +0 -37
  282. package/dist/src/fetch-BH9KSaUC.cjs +0 -4
  283. package/dist/src/fetch-BL6kqunF.js +0 -6
  284. package/dist/src/graders-BK3LuhJ8.cjs +0 -32
  285. package/dist/src/graders-Bpjtip-E.js +0 -35
  286. package/dist/src/graders-KIf6Uej3.js +0 -33
  287. package/dist/src/providers-41mSodR_.js +0 -31
  288. package/dist/src/providers-CiZCpIxz.cjs +0 -31
  289. package/dist/src/providers-G531909f.js +0 -33
  290. package/dist/src/rubyUtils-BLd6EE1u.cjs +0 -5
  291. package/dist/src/rubyUtils-CVELPvUH.js +0 -6
  292. package/dist/src/rubyUtils-_t9Gmf7U.js +0 -5
  293. package/dist/src/server-Bc4T4XDt.cjs +0 -6
  294. package/dist/src/server-CMyxJ7ct.js +0 -6
  295. package/dist/src/server-D9FuxNYE.js +0 -8
  296. package/dist/src/store-CrMinjmN.cjs +0 -6
  297. package/dist/src/store-EaWZOoxz.js +0 -7
  298. package/dist/src/store-KXWnHB15.js +0 -6
  299. package/dist/src/telemetry-BXD2mCyr.cjs +0 -6
  300. package/dist/src/telemetry-CYiBm56v.js +0 -8
  301. package/dist/src/telemetry-lICYKIMB.js +0 -6
  302. package/dist/src/transform-DZI2t8-9.js +0 -8
  303. package/dist/src/transform-DZUV3qpO.js +0 -7
  304. package/dist/src/transform-XcotjzZX.cjs +0 -6
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-CzcPkiKZ.js";
2
+ import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-BpuMmaFL.js";
3
3
  import { z } from "zod";
4
4
  import dedent from "dedent";
5
5
 
@@ -220,6 +220,7 @@ const FINANCIAL_PLUGINS = [
220
220
  "financial:hallucination",
221
221
  "financial:impartiality",
222
222
  "financial:misconduct",
223
+ "financial:sox-compliance",
223
224
  "financial:sycophancy"
224
225
  ];
225
226
  const PHARMACY_PLUGINS = [
@@ -290,6 +291,7 @@ const ADDITIONAL_PLUGINS = [
290
291
  "imitation",
291
292
  "indirect-prompt-injection",
292
293
  "mcp",
294
+ "model-identification",
293
295
  "medical:anchoring-bias",
294
296
  "medical:hallucination",
295
297
  "medical:incorrect-knowledge",
@@ -305,6 +307,7 @@ const ADDITIONAL_PLUGINS = [
305
307
  "financial:hallucination",
306
308
  "financial:impartiality",
307
309
  "financial:misconduct",
310
+ "financial:sox-compliance",
308
311
  "financial:sycophancy",
309
312
  "ecommerce:compliance-bypass",
310
313
  "ecommerce:order-fraud",
@@ -430,6 +433,7 @@ const REMOTE_ONLY_PLUGIN_IDS = [
430
433
  "hijacking",
431
434
  "indirect-prompt-injection",
432
435
  "mcp",
436
+ "model-identification",
433
437
  "off-topic",
434
438
  "rag-document-exfiltration",
435
439
  "rag-poisoning",
@@ -1467,7 +1471,7 @@ const subCategoryDescriptions = {
1467
1471
  "ecommerce:order-fraud": "Tests for detection of fraudulent order patterns, unauthorized transactions, or payment manipulation attempts",
1468
1472
  "ecommerce:price-manipulation": "Tests for price manipulation through discount abuse, inventory exploits, or unauthorized price modifications",
1469
1473
  intent: "Tests for manipulation of system behavior via specific prompts",
1470
- jailbreak: "Single-shot optimization of safety bypass techniques",
1474
+ jailbreak: "[DEPRECATED] Use jailbreak:meta instead. Single-shot optimization of safety bypass techniques.",
1471
1475
  "jailbreak:composite": "Combines multiple jailbreak techniques for enhanced effectiveness",
1472
1476
  "jailbreak:hydra": "Multi-turn conversational attacks with meta-learning that adapts strategy based on full conversation history",
1473
1477
  "jailbreak:likert": "Uses Likert scale-based prompts to bypass content filters",
@@ -1494,6 +1498,7 @@ const subCategoryDescriptions = {
1494
1498
  "financial:hallucination": "Tests for fabricated market data, non-existent financial instruments, or fictional company information",
1495
1499
  "financial:impartiality": "Tests for unauthorized financial advice or transaction facilitation",
1496
1500
  "financial:misconduct": "Tests for facilitation of financial crimes or market manipulation",
1501
+ "financial:sox-compliance": "Tests for violations of Sarbanes-Oxley requirements including internal controls, financial reporting, and audit integrity",
1497
1502
  "financial:sycophancy": "Tests for agreeing with risky investment strategies or validating get-rich-quick schemes",
1498
1503
  "goal-misalignment": "Tests whether AI systems recognize when optimizing proxy metrics might not align with true goals (Goodhart's Law)",
1499
1504
  "off-topic": "Tests whether AI systems can be manipulated to go off-topic from their intended purpose",
@@ -1528,6 +1533,7 @@ const subCategoryDescriptions = {
1528
1533
  "sql-injection": "Tests for SQL injection vulnerabilities",
1529
1534
  ssrf: "Tests for server-side request forgery vulnerabilities",
1530
1535
  "system-prompt-override": "Tests for system prompt override vulnerabilities",
1536
+ "model-identification": "Tests whether an AI system can be tricked into revealing its underlying model identity",
1531
1537
  "tool-discovery": "Tests for enumeration of available tools and function calls",
1532
1538
  unsafebench: "Tests handling of unsafe image content from the UnsafeBench dataset",
1533
1539
  "unverifiable-claims": "Tests for claims that cannot be verified or fact-checked",
@@ -1612,6 +1618,7 @@ const riskCategorySeverityMap = {
1612
1618
  "financial:hallucination": Severity.Low,
1613
1619
  "financial:impartiality": Severity.Medium,
1614
1620
  "financial:misconduct": Severity.High,
1621
+ "financial:sox-compliance": Severity.High,
1615
1622
  "financial:sycophancy": Severity.Low,
1616
1623
  "goal-misalignment": Severity.Low,
1617
1624
  competitors: Severity.Low,
@@ -1633,6 +1640,7 @@ const riskCategorySeverityMap = {
1633
1640
  "off-topic": Severity.Medium,
1634
1641
  "divergent-repetition": Severity.Medium,
1635
1642
  "excessive-agency": Severity.Medium,
1643
+ "model-identification": Severity.Medium,
1636
1644
  "tool-discovery": Severity.Low,
1637
1645
  foundation: Severity.Medium,
1638
1646
  "guardrails-eval": Severity.Medium,
@@ -1747,6 +1755,7 @@ const riskCategories = {
1747
1755
  "bola",
1748
1756
  "cca",
1749
1757
  "debug-access",
1758
+ "model-identification",
1750
1759
  "hijacking",
1751
1760
  "indirect-prompt-injection",
1752
1761
  "rbac",
@@ -1842,6 +1851,7 @@ const riskCategories = {
1842
1851
  "financial:hallucination",
1843
1852
  "financial:impartiality",
1844
1853
  "financial:misconduct",
1854
+ "financial:sox-compliance",
1845
1855
  "financial:sycophancy",
1846
1856
  "medical:hallucination",
1847
1857
  "medical:anchoring-bias",
@@ -1932,6 +1942,7 @@ const categoryAliases = {
1932
1942
  "financial:hallucination": "FinancialHallucination",
1933
1943
  "financial:impartiality": "FinancialImpartiality",
1934
1944
  "financial:misconduct": "FinancialMisconduct",
1945
+ "financial:sox-compliance": "FinancialSoxCompliance",
1935
1946
  "financial:sycophancy": "FinancialSycophancy",
1936
1947
  "goal-misalignment": "GoalMisalignment",
1937
1948
  "off-topic": "OffTopic",
@@ -1940,6 +1951,7 @@ const categoryAliases = {
1940
1951
  "pharmacy:drug-interaction": "PharmacyDrugInteraction",
1941
1952
  "divergent-repetition": "DivergentRepetition",
1942
1953
  "excessive-agency": "ExcessiveAgency",
1954
+ "model-identification": "ModelIdentification",
1943
1955
  "tool-discovery": "ToolDiscovery",
1944
1956
  foundation: "Foundation",
1945
1957
  "guardrails-eval": "GuardrailsEvaluation",
@@ -2063,6 +2075,7 @@ const pluginDescriptions = {
2063
2075
  default: "Executes comprehensive baseline security testing across multiple risk categories",
2064
2076
  "divergent-repetition": "Tests repetitive patterns that can cause the model to diverge from normal behavior and leak training data",
2065
2077
  "excessive-agency": "Evaluates system boundary enforcement and unauthorized action prevention",
2078
+ "model-identification": "Tests whether an AI system reveals its underlying model identity, version, or creator when probed",
2066
2079
  "tool-discovery": "Tests for enumeration of available tools and function calls",
2067
2080
  ferpa: "Tests for Family Educational Rights and Privacy Act compliance",
2068
2081
  foundation: "Tests a collection of plugins designed to run against foundation models",
@@ -2153,6 +2166,7 @@ const pluginDescriptions = {
2153
2166
  "financial:hallucination": "Tests for fabricated market data, non-existent financial instruments, fictional company financials, or invented market events",
2154
2167
  "financial:impartiality": "Tests for inappropriate provision of financial advice, investment recommendations, broker suggestions, or transaction facilitation without proper authorization or disclaimers",
2155
2168
  "financial:misconduct": "Tests for facilitation of financial crimes including insider trading, market manipulation, front-running, spoofing, bribery, or circumventing financial regulations",
2169
+ "financial:sox-compliance": "Tests for violations of Sarbanes-Oxley requirements including internal controls bypass, financial statement manipulation, CEO/CFO certification fraud, audit obstruction, document retention violations, and whistleblower retaliation",
2156
2170
  "financial:sycophancy": "Tests for agreeing with risky trading strategies, unrealistic return expectations, or get-rich-quick schemes",
2157
2171
  "goal-misalignment": "Tests whether AI systems recognize when optimizing measurable proxy metrics might not align with true underlying objectives (Goodhart's Law: \"When a measure becomes a target, it ceases to be a good measure\")",
2158
2172
  "off-topic": "Tests whether AI systems can be manipulated to go off-topic by performing tasks outside their domain",
@@ -2539,6 +2553,8 @@ const ProviderEnvOverridesSchema = z.object({
2539
2553
  OPENAI_BASE_URL: z.string().optional(),
2540
2554
  OPENAI_ORGANIZATION: z.string().optional(),
2541
2555
  CODEX_API_KEY: z.string().optional(),
2556
+ OPENCLAW_GATEWAY_TOKEN: z.string().optional(),
2557
+ OPENCLAW_GATEWAY_URL: z.string().optional(),
2542
2558
  PALM_API_HOST: z.string().optional(),
2543
2559
  PALM_API_KEY: z.string().optional(),
2544
2560
  PORTKEY_API_KEY: z.string().optional(),
@@ -3418,4 +3434,4 @@ const EvalResultsFilterMode = z.enum([
3418
3434
 
3419
3435
  //#endregion
3420
3436
  export { HARM_PLUGINS as $, DATASET_PLUGINS as A, Severity as B, PolicyObjectSchema as C, ADDITIONAL_STRATEGIES as D, isUuid as E, STRATEGY_COLLECTION_MAPPINGS as F, ALIASED_PLUGIN_MAPPINGS as G, pluginDescriptions as H, getDefaultNFanout as I, BIAS_PLUGINS as J, ADDITIONAL_PLUGINS as K, isCustomStrategy as L, DEFAULT_STRATEGIES as M, MULTI_TURN_STRATEGIES as N, AGENTIC_STRATEGIES as O, STRATEGY_COLLECTIONS as P, FOUNDATION_PLUGINS as Q, isFanoutStrategy as R, PluginConfigSchema as S, isValidReusablePolicyId as T, riskCategorySeverityMap as U, categoryAliases as V, subCategoryDescriptions as W, DEFAULT_PLUGINS as X, DATASET_EXEMPT_PLUGINS as Y, FINANCIAL_PLUGINS as Z, PromptSchema as _, EvaluateOptionsSchema as a, MULTI_INPUT_VAR as at, ConversationMessageSchema as b, TestSuiteConfigSchema as c, PLUGIN_CATEGORIES as ct, isGradingResult as d, REMOTE_ONLY_PLUGIN_IDS as dt, INSURANCE_PLUGINS as et, isResultFailureReason as f, STRATEGY_EXEMPT_PLUGINS as ft, RedteamGenerateOptionsSchema as g, RedteamConfigSchema as h, EvalResultsFilterMode as i, MULTI_INPUT_EXCLUDED_PLUGINS as it, DEFAULT_MULTI_TURN_MAX_TURNS as j, ALL_STRATEGIES as k, TestSuiteSchema as l, REDTEAM_MODEL as lt, isProviderOptions as m, UNALIGNED_PROVIDER_HARM_PLUGINS as mt, BaseAssertionTypesSchema as n, LLAMA_GUARD_REPLICATE_PROVIDER as nt, OutputFileExtension as o, PHARMACY_PLUGINS as ot, isApiProvider as p, TELECOM_PLUGINS as pt, ALL_PLUGINS as q, CommandLineOptionsSchema as r, MEDICAL_PLUGINS as rt, ResultFailureReason as s, PII_PLUGINS as st, AssertionOrSetSchema as t, LLAMA_GUARD_ENABLED_CATEGORIES as tt, UnifiedConfigSchema as u, REDTEAM_PROVIDER_HARM_PLUGINS as ut, ProviderOptionsSchema as v, StrategyConfigSchema as w, PartialGenerationError as x, ProvidersSchema as y, isMultiTurnStrategy as z };
3421
- //# sourceMappingURL=types-CgrxBFgm.js.map
3437
+ //# sourceMappingURL=types-t52w-XsS.js.map
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import { O as cliState_default, b as getEnvBool, o as logger_default } from "./logger-Bzi5o47S.js";
3
- import { O as TERMINAL_MAX_WIDTH, P as VERSION, n as fetchWithProxy } from "./fetch-Mb7SbeM-.js";
2
+ import { O as cliState_default, b as getEnvBool, o as logger_default } from "./logger-BotXmWKW.js";
3
+ import { O as TERMINAL_MAX_WIDTH, P as VERSION, n as fetchWithProxy } from "./fetch-SRsE6Ctl.js";
4
4
  import { t as invariant } from "./invariant-DT20jrBd.js";
5
- import { m as isProviderOptions, o as OutputFileExtension, p as isApiProvider, s as ResultFailureReason } from "./types-CgrxBFgm.js";
6
- import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-CzcPkiKZ.js";
7
- import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-Lh6czAFT.js";
8
- import { r as runPython } from "./pythonUtils-B9JA-gsC.js";
5
+ import { m as isProviderOptions, o as OutputFileExtension, p as isApiProvider, s as ResultFailureReason } from "./types-t52w-XsS.js";
6
+ import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-BpuMmaFL.js";
7
+ import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-CYhseqj4.js";
8
+ import { r as runPython } from "./pythonUtils-r1uBuA0n.js";
9
9
  import dotenv from "dotenv";
10
10
  import * as fs$2 from "fs";
11
11
  import * as path$1 from "path";
@@ -1379,4 +1379,4 @@ function printBorder() {
1379
1379
 
1380
1380
  //#endregion
1381
1381
  export { filterRuntimeVars as A, extractVariablesFromTemplates as C, setupEnv as D, parseFileUrl as E, isAnthropicProvider as F, isGoogleProvider as I, isOpenAiProvider as L, resultIsForTestCase as M, doesProviderRefMatch as N, deduplicateTestCases as O, getProviderDescription as P, isProviderAllowed as R, extractVariablesFromTemplate as S, loadFunction as T, parsePathOrGlob as _, ComparisonEvalNotFoundError as a, renderEnvOnlyInObject as b, mergeComparisonTables as c, getResolvedRelativePath as d, maybeLoadConfigFromExternalFile as f, maybeLoadToolsFromExternalFile as g, maybeLoadResponseFormatFromExternalFile as h, writeOutput as i, getTestCaseDeduplicationKey as j, extractRuntimeVars as k, fetchCsvFromGoogleSheet as l, maybeLoadFromExternalFileWithVars as m, createOutputMetadata as n, evalTableToJson as o, maybeLoadFromExternalFile as p, writeMultipleOutputs as r, generateEvalCsv as s, printBorder as t, getNunjucksEngineForFilePath as u, readFilters as v, getNunjucksEngine as w, renderVarsInObject as x, readOutput as y };
1382
- //# sourceMappingURL=util-M2MoNCUR.js.map
1382
+ //# sourceMappingURL=util-BSh4a_Q8.js.map
@@ -1,6 +1,6 @@
1
- const require_logger = require('./logger-CMp-NS-e.cjs');
2
- const require_util = require('./util-C7A-PlKK.cjs');
3
- const require_fetch = require('./fetch-MvWxCS5U.cjs');
1
+ const require_logger = require('./logger-BdZ-IqBc.cjs');
2
+ const require_util = require('./util-DUYOvxAy.cjs');
3
+ const require_fetch = require('./fetch-ZMn_oemb.cjs');
4
4
  let openai = require("openai");
5
5
  openai = require_logger.__toESM(openai);
6
6
 
@@ -329,6 +329,20 @@ const OPENAI_CHAT_MODELS = [
329
329
  output: 14 / 1e6
330
330
  }
331
331
  })),
332
+ ...["gpt-5.3-codex"].map((model) => ({
333
+ id: model,
334
+ cost: {
335
+ input: 1.75 / 1e6,
336
+ output: 14 / 1e6
337
+ }
338
+ })),
339
+ ...["gpt-5.3-codex-spark"].map((model) => ({
340
+ id: model,
341
+ cost: {
342
+ input: .5 / 1e6,
343
+ output: 4 / 1e6
344
+ }
345
+ })),
332
346
  ...["gpt-audio", "gpt-audio-2025-08-28"].map((model) => ({
333
347
  id: model,
334
348
  cost: {
@@ -609,4 +623,4 @@ Object.defineProperty(exports, 'validateFunctionCall', {
609
623
  return validateFunctionCall;
610
624
  }
611
625
  });
612
- //# sourceMappingURL=util-DTJWKLkl.cjs.map
626
+ //# sourceMappingURL=util-C08Kns6-.cjs.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { g as safeJsonStringify, p as getAjv } from "./logger-Bzi5o47S.js";
3
- import { f as calculateCost } from "./fetch-Mb7SbeM-.js";
4
- import { m as maybeLoadFromExternalFileWithVars } from "./util-M2MoNCUR.js";
2
+ import { g as safeJsonStringify, p as getAjv } from "./logger-BotXmWKW.js";
3
+ import { f as calculateCost } from "./fetch-SRsE6Ctl.js";
4
+ import { m as maybeLoadFromExternalFileWithVars } from "./util-BSh4a_Q8.js";
5
5
  import OpenAI from "openai";
6
6
 
7
7
  //#region src/providers/openai/util.ts
@@ -329,6 +329,20 @@ const OPENAI_CHAT_MODELS = [
329
329
  output: 14 / 1e6
330
330
  }
331
331
  })),
332
+ ...["gpt-5.3-codex"].map((model) => ({
333
+ id: model,
334
+ cost: {
335
+ input: 1.75 / 1e6,
336
+ output: 14 / 1e6
337
+ }
338
+ })),
339
+ ...["gpt-5.3-codex-spark"].map((model) => ({
340
+ id: model,
341
+ cost: {
342
+ input: .5 / 1e6,
343
+ output: 4 / 1e6
344
+ }
345
+ })),
332
346
  ...["gpt-audio", "gpt-audio-2025-08-28"].map((model) => ({
333
347
  id: model,
334
348
  cost: {
@@ -556,4 +570,4 @@ function formatOpenAiError(data) {
556
570
 
557
571
  //#endregion
558
572
  export { calculateOpenAICost as a, getTokenUsage as c, OPENAI_TRANSCRIPTION_MODELS as i, validateFunctionCall as l, OPENAI_COMPLETION_MODELS as n, failApiCall as o, OPENAI_REALTIME_MODELS as r, formatOpenAiError as s, OPENAI_CHAT_MODELS as t };
559
- //# sourceMappingURL=util-DHBpsbZE.js.map
573
+ //# sourceMappingURL=util-CUEt0Vum.js.map
@@ -1,6 +1,6 @@
1
- import { d as getAjv, m as safeJsonStringify } from "./logger-q5I8CByj.js";
2
- import { l as maybeLoadFromExternalFileWithVars } from "./util-WYC3rB_p.js";
3
- import { g as calculateCost } from "./fetch-BIfcW-Fd.js";
1
+ import { d as getAjv, m as safeJsonStringify } from "./logger-w8Ozp0Td.js";
2
+ import { l as maybeLoadFromExternalFileWithVars } from "./util-DiCePfDu.js";
3
+ import { g as calculateCost } from "./fetch-18MuNu9i.js";
4
4
  import OpenAI from "openai";
5
5
 
6
6
  //#region src/providers/openai/util.ts
@@ -328,6 +328,20 @@ const OPENAI_CHAT_MODELS = [
328
328
  output: 14 / 1e6
329
329
  }
330
330
  })),
331
+ ...["gpt-5.3-codex"].map((model) => ({
332
+ id: model,
333
+ cost: {
334
+ input: 1.75 / 1e6,
335
+ output: 14 / 1e6
336
+ }
337
+ })),
338
+ ...["gpt-5.3-codex-spark"].map((model) => ({
339
+ id: model,
340
+ cost: {
341
+ input: .5 / 1e6,
342
+ output: 4 / 1e6
343
+ }
344
+ })),
331
345
  ...["gpt-audio", "gpt-audio-2025-08-28"].map((model) => ({
332
346
  id: model,
333
347
  cost: {
@@ -555,4 +569,4 @@ function formatOpenAiError(data) {
555
569
 
556
570
  //#endregion
557
571
  export { calculateOpenAICost as a, getTokenUsage as c, OPENAI_TRANSCRIPTION_MODELS as i, validateFunctionCall as l, OPENAI_COMPLETION_MODELS as n, failApiCall as o, OPENAI_REALTIME_MODELS as r, formatOpenAiError as s, OPENAI_CHAT_MODELS as t };
558
- //# sourceMappingURL=util-Bnw6EyZN.js.map
572
+ //# sourceMappingURL=util-Cl0zfT3V.js.map
@@ -1,10 +1,10 @@
1
- const require_logger = require('./logger-CMp-NS-e.cjs');
1
+ const require_logger = require('./logger-BdZ-IqBc.cjs');
2
2
  const require_invariant = require('./invariant-CKcJAQ6M.cjs');
3
- const require_esm = require('./esm-gWVPXn3r.cjs');
4
- const require_pythonUtils = require('./pythonUtils-rOCm9w_5.cjs');
3
+ const require_esm = require('./esm-BQkx5roy.cjs');
4
+ const require_pythonUtils = require('./pythonUtils-DZ6EbdY4.cjs');
5
5
  const require_fileExtensions = require('./fileExtensions-DkJYkWUy.cjs');
6
- const require_types = require('./types-B-XUqfNs.cjs');
7
- const require_fetch = require('./fetch-MvWxCS5U.cjs');
6
+ const require_types = require('./types-BIfttHrT.cjs');
7
+ const require_fetch = require('./fetch-ZMn_oemb.cjs');
8
8
  let fs = require("fs");
9
9
  fs = require_logger.__toESM(fs);
10
10
  let path = require("path");
@@ -1458,4 +1458,4 @@ Object.defineProperty(exports, 'writeOutput', {
1458
1458
  return writeOutput;
1459
1459
  }
1460
1460
  });
1461
- //# sourceMappingURL=util-C7A-PlKK.cjs.map
1461
+ //# sourceMappingURL=util-DUYOvxAy.cjs.map
@@ -1,10 +1,10 @@
1
- import { _ as getEnvBool, i as logger_default, w as cliState_default } from "./logger-q5I8CByj.js";
1
+ import { _ as getEnvBool, i as logger_default, w as cliState_default } from "./logger-w8Ozp0Td.js";
2
2
  import { t as invariant } from "./invariant-1pAf2CD1.js";
3
- import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-D40XsWlR.js";
4
- import { r as runPython } from "./pythonUtils-eNq6Wsfr.js";
3
+ import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-rDtG_2rg.js";
4
+ import { r as runPython } from "./pythonUtils-vMlk9Qp5.js";
5
5
  import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-ePDqouxn.js";
6
- import { A as isApiProvider, g as ResultFailureReason, h as OutputFileExtension, j as isProviderOptions } from "./types-BsU_PxR3.js";
7
- import { L as VERSION, M as TERMINAL_MAX_WIDTH, t as fetchWithProxy } from "./fetch-BIfcW-Fd.js";
6
+ import { A as isApiProvider, g as ResultFailureReason, h as OutputFileExtension, j as isProviderOptions } from "./types-DMVjYLpx.js";
7
+ import { L as VERSION, M as TERMINAL_MAX_WIDTH, t as fetchWithProxy } from "./fetch-18MuNu9i.js";
8
8
  import * as fs$1 from "fs";
9
9
  import * as path$1 from "path";
10
10
  import path from "path";
@@ -1253,4 +1253,4 @@ function printBorder() {
1253
1253
 
1254
1254
  //#endregion
1255
1255
  export { isAnthropicProvider as A, deduplicateTestCases as C, resultIsForTestCase as D, getTestCaseDeduplicationKey as E, isOpenAiProvider as M, isProviderAllowed as N, doesProviderRefMatch as O, setupEnv as S, filterRuntimeVars as T, extractVariablesFromTemplate as _, getNunjucksEngineForFilePath as a, loadFunction as b, maybeLoadFromExternalFile as c, maybeLoadToolsFromExternalFile as d, parsePathOrGlob as f, renderVarsInObject as g, renderEnvOnlyInObject as h, fetchCsvFromGoogleSheet as i, isGoogleProvider as j, getProviderDescription as k, maybeLoadFromExternalFileWithVars as l, readOutput as m, writeMultipleOutputs as n, getResolvedRelativePath as o, readFilters as p, writeOutput as r, maybeLoadConfigFromExternalFile as s, printBorder as t, maybeLoadResponseFormatFromExternalFile as u, extractVariablesFromTemplates as v, extractRuntimeVars as w, parseFileUrl as x, getNunjucksEngine as y };
1256
- //# sourceMappingURL=util-WYC3rB_p.js.map
1256
+ //# sourceMappingURL=util-DiCePfDu.js.map
@@ -1,9 +1,16 @@
1
- const require_fetch = require('./fetch-MvWxCS5U.cjs');
2
- const require_transform = require('./transform-Bw1IstDE.cjs');
1
+ const require_fetch = require('./fetch-ZMn_oemb.cjs');
2
+ const require_transform = require('./transform-ivxEY4f7.cjs');
3
3
 
4
4
  //#region src/providers/anthropic/util.ts
5
5
  const ANTHROPIC_MODELS = [
6
- ...["claude-opus-4-6"].map((model) => ({
6
+ ...["claude-sonnet-4-6", "claude-sonnet-4-6-latest"].map((model) => ({
7
+ id: model,
8
+ cost: {
9
+ input: 3 / 1e6,
10
+ output: 15 / 1e6
11
+ }
12
+ })),
13
+ ...["claude-opus-4-6", "claude-opus-4-6-latest"].map((model) => ({
7
14
  id: model,
8
15
  cost: {
9
16
  input: 5 / 1e6,
@@ -204,7 +211,12 @@ function parseMessages(messages) {
204
211
  };
205
212
  }
206
213
  function calculateAnthropicCost(modelName, config, promptTokens, completionTokens) {
207
- if (["claude-sonnet-4-5-20250929"].includes(modelName) && Number.isFinite(promptTokens) && Number.isFinite(completionTokens) && typeof promptTokens !== "undefined" && typeof completionTokens !== "undefined") {
214
+ if ([
215
+ "claude-sonnet-4-5-20250929",
216
+ "claude-sonnet-4-5-latest",
217
+ "claude-sonnet-4-6",
218
+ "claude-sonnet-4-6-latest"
219
+ ].includes(modelName) && Number.isFinite(promptTokens) && Number.isFinite(completionTokens) && typeof promptTokens !== "undefined" && typeof completionTokens !== "undefined") {
208
220
  const inputCost = config.cost ?? (promptTokens > 2e5 ? 6 / 1e6 : 3 / 1e6);
209
221
  const outputCost = config.cost ?? (promptTokens > 2e5 ? 22.5 / 1e6 : 15 / 1e6);
210
222
  return inputCost * promptTokens + outputCost * completionTokens;
@@ -314,4 +326,4 @@ Object.defineProperty(exports, 'processAnthropicTools', {
314
326
  return processAnthropicTools;
315
327
  }
316
328
  });
317
- //# sourceMappingURL=util-CV99ps44.cjs.map
329
+ //# sourceMappingURL=util-DkFTvieG.cjs.map
@@ -1,9 +1,16 @@
1
- import { g as calculateCost } from "./fetch-BIfcW-Fd.js";
2
- import { b as parseDataUrl } from "./transform-BUrxadlA.js";
1
+ import { g as calculateCost } from "./fetch-18MuNu9i.js";
2
+ import { x as parseDataUrl } from "./transform-DMaxQwDx.js";
3
3
 
4
4
  //#region src/providers/anthropic/util.ts
5
5
  const ANTHROPIC_MODELS = [
6
- ...["claude-opus-4-6"].map((model) => ({
6
+ ...["claude-sonnet-4-6", "claude-sonnet-4-6-latest"].map((model) => ({
7
+ id: model,
8
+ cost: {
9
+ input: 3 / 1e6,
10
+ output: 15 / 1e6
11
+ }
12
+ })),
13
+ ...["claude-opus-4-6", "claude-opus-4-6-latest"].map((model) => ({
7
14
  id: model,
8
15
  cost: {
9
16
  input: 5 / 1e6,
@@ -204,7 +211,12 @@ function parseMessages(messages) {
204
211
  };
205
212
  }
206
213
  function calculateAnthropicCost(modelName, config, promptTokens, completionTokens) {
207
- if (["claude-sonnet-4-5-20250929"].includes(modelName) && Number.isFinite(promptTokens) && Number.isFinite(completionTokens) && typeof promptTokens !== "undefined" && typeof completionTokens !== "undefined") {
214
+ if ([
215
+ "claude-sonnet-4-5-20250929",
216
+ "claude-sonnet-4-5-latest",
217
+ "claude-sonnet-4-6",
218
+ "claude-sonnet-4-6-latest"
219
+ ].includes(modelName) && Number.isFinite(promptTokens) && Number.isFinite(completionTokens) && typeof promptTokens !== "undefined" && typeof completionTokens !== "undefined") {
208
220
  const inputCost = config.cost ?? (promptTokens > 2e5 ? 6 / 1e6 : 3 / 1e6);
209
221
  const outputCost = config.cost ?? (promptTokens > 2e5 ? 22.5 / 1e6 : 15 / 1e6);
210
222
  return inputCost * promptTokens + outputCost * completionTokens;
@@ -279,4 +291,4 @@ function transformWebSearchTool(config) {
279
291
 
280
292
  //#endregion
281
293
  export { parseMessages as a, outputFromMessage as i, calculateAnthropicCost as n, processAnthropicTools as o, getTokenUsage as r, ANTHROPIC_MODELS as t };
282
- //# sourceMappingURL=util-CfepsNVK.js.map
294
+ //# sourceMappingURL=util-mJ58qbbw.js.map
@@ -1,10 +1,17 @@
1
1
  #!/usr/bin/env node
2
- import { f as calculateCost } from "./fetch-Mb7SbeM-.js";
3
- import { b as parseDataUrl } from "./transform-Bn-lgBE2.js";
2
+ import { f as calculateCost } from "./fetch-SRsE6Ctl.js";
3
+ import { x as parseDataUrl } from "./transform-CoP2bJ7P.js";
4
4
 
5
5
  //#region src/providers/anthropic/util.ts
6
6
  const ANTHROPIC_MODELS = [
7
- ...["claude-opus-4-6"].map((model) => ({
7
+ ...["claude-sonnet-4-6", "claude-sonnet-4-6-latest"].map((model) => ({
8
+ id: model,
9
+ cost: {
10
+ input: 3 / 1e6,
11
+ output: 15 / 1e6
12
+ }
13
+ })),
14
+ ...["claude-opus-4-6", "claude-opus-4-6-latest"].map((model) => ({
8
15
  id: model,
9
16
  cost: {
10
17
  input: 5 / 1e6,
@@ -205,7 +212,12 @@ function parseMessages(messages) {
205
212
  };
206
213
  }
207
214
  function calculateAnthropicCost(modelName, config, promptTokens, completionTokens) {
208
- if (["claude-sonnet-4-5-20250929"].includes(modelName) && Number.isFinite(promptTokens) && Number.isFinite(completionTokens) && typeof promptTokens !== "undefined" && typeof completionTokens !== "undefined") {
215
+ if ([
216
+ "claude-sonnet-4-5-20250929",
217
+ "claude-sonnet-4-5-latest",
218
+ "claude-sonnet-4-6",
219
+ "claude-sonnet-4-6-latest"
220
+ ].includes(modelName) && Number.isFinite(promptTokens) && Number.isFinite(completionTokens) && typeof promptTokens !== "undefined" && typeof completionTokens !== "undefined") {
209
221
  const inputCost = config.cost ?? (promptTokens > 2e5 ? 6 / 1e6 : 3 / 1e6);
210
222
  const outputCost = config.cost ?? (promptTokens > 2e5 ? 22.5 / 1e6 : 15 / 1e6);
211
223
  return inputCost * promptTokens + outputCost * completionTokens;
@@ -280,4 +292,4 @@ function transformWebSearchTool(config) {
280
292
 
281
293
  //#endregion
282
294
  export { parseMessages as a, outputFromMessage as i, calculateAnthropicCost as n, processAnthropicTools as o, getTokenUsage as r, ANTHROPIC_MODELS as t };
283
- //# sourceMappingURL=util-BZaMVBMq.js.map
295
+ //# sourceMappingURL=util-vjscpUzy.js.map
@@ -1,5 +1,5 @@
1
- import { b as getEnvString } from "./logger-q5I8CByj.js";
2
- import { a as sha256 } from "./extractor-Da8IxCeS.js";
1
+ import { b as getEnvString } from "./logger-w8Ozp0Td.js";
2
+ import { a as sha256 } from "./extractor-Hs7la_19.js";
3
3
 
4
4
  //#region src/prompts/constants.ts
5
5
  const PROMPT_DELIMITER = getEnvString("PROMPTFOO_PROMPT_SEPARATOR") || "---";
@@ -94,4 +94,4 @@ function hashPrompt(prompt) {
94
94
 
95
95
  //#endregion
96
96
  export { PROMPT_DELIMITER as a, generateIdFromPrompt as i, maybeFilePath as n, normalizeInput as r, hashPrompt as t };
97
- //# sourceMappingURL=utils-BryuD3vq.js.map
97
+ //# sourceMappingURL=utils-CVzb4YiI.js.map
@@ -1,5 +1,5 @@
1
- const require_logger = require('./logger-CMp-NS-e.cjs');
2
- const require_extractor = require('./extractor-D-RM2m6A.cjs');
1
+ const require_logger = require('./logger-BdZ-IqBc.cjs');
2
+ const require_extractor = require('./extractor-DbhlYEeo.cjs');
3
3
 
4
4
  //#region src/prompts/constants.ts
5
5
  const PROMPT_DELIMITER = require_logger.getEnvString("PROMPTFOO_PROMPT_SEPARATOR") || "---";
@@ -123,4 +123,4 @@ Object.defineProperty(exports, 'normalizeInput', {
123
123
  return normalizeInput;
124
124
  }
125
125
  });
126
- //# sourceMappingURL=utils-Dezi3MBH.cjs.map
126
+ //# sourceMappingURL=utils-DFaZa6Rf.cjs.map
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { C as getEnvString } from "./logger-Bzi5o47S.js";
3
- import { a as sha256 } from "./extractor-BA90EtLq.js";
2
+ import { C as getEnvString } from "./logger-BotXmWKW.js";
3
+ import { a as sha256 } from "./extractor-LSYjrhK0.js";
4
4
 
5
5
  //#region src/prompts/constants.ts
6
6
  const PROMPT_DELIMITER = getEnvString("PROMPTFOO_PROMPT_SEPARATOR") || "---";
@@ -95,4 +95,4 @@ function hashPrompt(prompt) {
95
95
 
96
96
  //#endregion
97
97
  export { PROMPT_DELIMITER as a, generateIdFromPrompt as i, maybeFilePath as n, normalizeInput as r, hashPrompt as t };
98
- //# sourceMappingURL=utils-GiyI2K4P.js.map
98
+ //# sourceMappingURL=utils-JaY9veb5.js.map