promptfoo 0.120.21 → 0.120.23

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 (247) hide show
  1. package/dist/src/{ListApp-ChupNNB3.js → ListApp-55OAHww3.js} +1 -1
  2. package/dist/src/{accounts-CjU7QSnv.js → accounts-BMHY0nF5.js} +5 -5
  3. package/dist/src/{accounts-DYMHC4iY.js → accounts-CYqHD7X1.js} +4 -4
  4. package/dist/src/{accounts-uWRxEv-D.cjs → accounts-TGrHBZU9.cjs} +4 -4
  5. package/dist/src/{agentic-utils-BMbQVVd4.js → agentic-utils-BcSgvBPs.js} +2 -2
  6. package/dist/src/{agents-BJxm0Kcs.cjs → agents-BW4zv9Ig.cjs} +3 -3
  7. package/dist/src/{agents-DABC7ROH.js → agents-BbG-lpzK.js} +6 -6
  8. package/dist/src/{agents-DGQULdoA.js → agents-CUB87CA8.js} +5 -5
  9. package/dist/src/{agents-CJ4BY_QU.js → agents-ClpNGuau.js} +7 -7
  10. package/dist/src/{agents-CzCD5974.cjs → agents-d76o9WLl.cjs} +6 -6
  11. package/dist/src/{agents-BNSS1kSZ.js → agents-v7_Jh18K.js} +3 -3
  12. package/dist/src/{aimlapi-CnBWjM7x.js → aimlapi-BBN3jHiV.js} +11 -11
  13. package/dist/src/{aimlapi-ABHUqmBg.cjs → aimlapi-DWjl0adX.cjs} +11 -11
  14. package/dist/src/{aimlapi-B2qJXUsC.js → aimlapi-E-FZoqH0.js} +14 -14
  15. package/dist/src/app/assets/index-CbpQqvt4.css +1 -0
  16. package/dist/src/app/assets/{index-BVE859O5.js → index-DoWPf01I.js} +71 -71
  17. package/dist/src/app/index.html +2 -2
  18. package/dist/src/app/tsconfig.app.tsbuildinfo +1 -1
  19. package/dist/src/{audio-BT9aSeWg.js → audio-B0lJd7ce.js} +4 -4
  20. package/dist/src/{audio-CSrI_LFf.js → audio-CwbC4E6I.js} +3 -3
  21. package/dist/src/{audio-DSV364HB.cjs → audio-TfpCt0uC.cjs} +3 -3
  22. package/dist/src/{base-NFXflrMy.js → base-BHLggB84.js} +2 -2
  23. package/dist/src/{base-CRrQ15eu.cjs → base-B_pJcCDc.cjs} +2 -2
  24. package/dist/src/{base-d8hHSpEx.js → base-DRgXuujd.js} +2 -2
  25. package/dist/src/{blobs-Dznj-8xW.js → blobs-BHstP0Ep.js} +2 -2
  26. package/dist/src/{blobs-D-Neij7m.cjs → blobs-BPAqMoU_.cjs} +2 -2
  27. package/dist/src/{blobs-DC2sBLv8.js → blobs-Bey6TGVi.js} +2 -2
  28. package/dist/src/{cache-xb4oZe27.js → cache-BTdTl56j.js} +2 -2
  29. package/dist/src/{cache-DYJRe0Jt.cjs → cache-BnrNlhzE.cjs} +2 -2
  30. package/dist/src/{cache-aKR8pp5y.js → cache-C5LeIjZl.js} +2 -2
  31. package/dist/src/{cache-CMvgAnSi.js → cache-CsW_9RgN.js} +2 -2
  32. package/dist/src/cache-Da_mTEGH.cjs +6 -0
  33. package/dist/src/{cache-scuP1IRq.js → cache-DfI0xG_n.js} +3 -3
  34. package/dist/src/{chat-BbgGuvwu.js → chat-BIj6_WPH.js} +10 -10
  35. package/dist/src/{chat-CfJU9hHo.cjs → chat-B_-w6xgb.cjs} +10 -10
  36. package/dist/src/{chat-Du_GyqZe.js → chat-BktepvuQ.js} +13 -13
  37. package/dist/src/{chat-DyjTngG2.js → chat-CiakYWhZ.js} +10 -10
  38. package/dist/src/{chat-BH8Fxyap.js → chat-D5l2blZK.js} +8 -8
  39. package/dist/src/{chat-Biz16BQv.cjs → chat-QHQ-K-Fi.cjs} +8 -8
  40. package/dist/src/{chatkit-BpumZ2Dz.js → chatkit-DlOZ-eNb.js} +3 -3
  41. package/dist/src/{chatkit-D9AWcI4P.js → chatkit-IWIuhxFE.js} +3 -3
  42. package/dist/src/{chatkit-Wzo9zOq7.cjs → chatkit-yeVtURUi.cjs} +3 -3
  43. package/dist/src/{claude-agent-sdk-CL5NzJEu.js → claude-agent-sdk-BZ0GjlPY.js} +11 -11
  44. package/dist/src/{claude-agent-sdk-BW-YEYQi.cjs → claude-agent-sdk-D3AZJyZ7.cjs} +8 -8
  45. package/dist/src/{claude-agent-sdk-CdRG6b7t.js → claude-agent-sdk-wvsRgO29.js} +8 -8
  46. package/dist/src/{cloud-UwfmA0Ne.js → cloud-BKfo1A2t.js} +2 -2
  47. package/dist/src/{cloud-1cbcFXE9.js → cloud-DPowlnHl.js} +1 -1
  48. package/dist/src/{cloudflare-ai-D2Wlbus6.cjs → cloudflare-ai-CzAtX1Wg.cjs} +11 -11
  49. package/dist/src/{cloudflare-ai-BB77BUMD.js → cloudflare-ai-D-IEjw5k.js} +11 -11
  50. package/dist/src/{cloudflare-ai-DXTxK3ou.js → cloudflare-ai-DxHmIJbZ.js} +14 -14
  51. package/dist/src/{cloudflare-gateway-D5IjGRjZ.cjs → cloudflare-gateway-CIfquW2o.cjs} +12 -12
  52. package/dist/src/{cloudflare-gateway-Tn2OEgYQ.js → cloudflare-gateway-DkjC8LZF.js} +12 -12
  53. package/dist/src/{cloudflare-gateway-DeZRwitI.js → cloudflare-gateway-DwJVgNWf.js} +15 -15
  54. package/dist/src/{codex-sdk-CKEQpQax.js → codex-sdk-BC5qbCjh.js} +3 -3
  55. package/dist/src/{codex-sdk-CDN8f3P9.js → codex-sdk-CBpm53B8.js} +2 -2
  56. package/dist/src/{codex-sdk-0QyM_fUf.cjs → codex-sdk-Cf5_CQch.cjs} +2 -2
  57. package/dist/src/{cometapi-CUq-lrPh.js → cometapi-6jLBOp4e.js} +15 -15
  58. package/dist/src/{cometapi-Bu_LOIac.js → cometapi-8HSWR5q_.js} +12 -12
  59. package/dist/src/{cometapi-RP8h5O2f.cjs → cometapi-iJEkEgpT.cjs} +12 -12
  60. package/dist/src/{completion-Dw-9jqz1.cjs → completion-C03fIkcR.cjs} +5 -5
  61. package/dist/src/{completion-H4ncr2bK.js → completion-CrKHW9hy.js} +5 -5
  62. package/dist/src/{completion-BTZ42lqL.js → completion-LTi0SiAy.js} +5 -5
  63. package/dist/src/{docker-kvFgJqkg.js → docker-Bf2VQOX5.js} +14 -14
  64. package/dist/src/{docker-NrVUpeWw.cjs → docker-BxmP6sGO.cjs} +11 -11
  65. package/dist/src/{docker-B8zxQ12-.js → docker-DHazKolQ.js} +11 -11
  66. package/dist/src/{esm-Bwuh5HXW.js → esm-Lh6czAFT.js} +1 -1
  67. package/dist/src/{eval-TAOD_pvN.js → eval-4sIXLVZZ.js} +31 -19
  68. package/dist/src/eval-s_E4q6a8.js +16 -0
  69. package/dist/src/{evalResult-DnYa1RLp.js → evalResult-CRyeHpst.js} +6 -6
  70. package/dist/src/{evalResult-CFSvp3Zh.cjs → evalResult-CSucevrC.cjs} +7 -7
  71. package/dist/src/evalResult-DBhbtqZn.js +11 -0
  72. package/dist/src/evalResult-DKn_nY-a.js +13 -0
  73. package/dist/src/{evalResult-CnAP64o9.js → evalResult-DNXvhaKp.js} +6 -6
  74. package/dist/src/evalResult-DrPpo-zg.cjs +11 -0
  75. package/dist/src/{evaluator-q2_--POi.js → evaluator-BDY-i4ky.js} +29 -30
  76. package/dist/src/evaluator-CiDt-6H3.js +37 -0
  77. package/dist/src/{extractor-D_1s-Thr.js → extractor-HnP0pHfO.js} +81 -4
  78. package/dist/src/{extractor-B9uQA-6-.js → extractor-WvMabjRY.js} +81 -4
  79. package/dist/src/{extractor-DjxI7POm.cjs → extractor-wSeR47-c.cjs} +86 -3
  80. package/dist/src/{fetch-Cb-qQ7Hm.js → fetch-8fmzVUH3.js} +2 -2
  81. package/dist/src/{fetch-BIPrzD39.js → fetch-BMKSarK_.js} +11 -5
  82. package/dist/src/{fetch-MdGxb6Bv.cjs → fetch-BgYKpAJ7.cjs} +25 -7
  83. package/dist/src/{fetch-Cbz8ESXD.js → fetch-CE0K47nJ.js} +1 -1
  84. package/dist/src/{fetch-TcCC0nEJ.js → fetch-DKQm7iwv.js} +11 -5
  85. package/dist/src/fetch-GeRV0LDI.cjs +4 -0
  86. package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-CzcPkiKZ.js} +1 -1
  87. package/dist/src/{formatDuration-CGa0ZDQ8.js → formatDuration-CCiZ-wBY.js} +1 -1
  88. package/dist/src/{genaiTracer-zK0Mtd_D.cjs → genaiTracer-BQ8AmajD.cjs} +1 -1
  89. package/dist/src/{genaiTracer-CNawybn-.js → genaiTracer-Ce19n68P.js} +1 -1
  90. package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-foKtbVa2.js} +1 -1
  91. package/dist/src/{graders-DycNkUZ_.js → graders-CEF_ce6x.js} +32 -26
  92. package/dist/src/graders-CzoftmVg.js +35 -0
  93. package/dist/src/{graders-C9Ni3pNQ.cjs → graders-DOFEkq6l.cjs} +34 -28
  94. package/dist/src/graders-DuTWgLQF.cjs +32 -0
  95. package/dist/src/graders-ZhEpUtuK.js +33 -0
  96. package/dist/src/{graders-CG50NgEB.js → graders-jFPLMexK.js} +36 -30
  97. package/dist/src/{image-CxD58J63.js → image-0RV3qqTK.js} +6 -6
  98. package/dist/src/{image-CHGpqpC6.js → image-9Thqn5aj.js} +3 -3
  99. package/dist/src/{image-BmMQZgoF.js → image-BJJW-zOa.js} +4 -4
  100. package/dist/src/{image-CPL1masV.cjs → image-BVyYHTQG.cjs} +3 -3
  101. package/dist/src/{image-Dg-oq_2F.js → image-Dd0EQRYU.js} +6 -6
  102. package/dist/src/{image-CpQ-fJt3.cjs → image-VWd0wZmz.cjs} +6 -6
  103. package/dist/src/index.cjs +177 -105
  104. package/dist/src/index.js +173 -101
  105. package/dist/src/{interactiveCheck-BZbMvE6i.js → interactiveCheck-CjK2R4rB.js} +1 -1
  106. package/dist/src/{knowledgeBase-Dy1Ln178.cjs → knowledgeBase-BKA28wUv.cjs} +7 -7
  107. package/dist/src/{knowledgeBase-BXvPbeXF.js → knowledgeBase-D0nOGqRF.js} +7 -7
  108. package/dist/src/{knowledgeBase-Csr92Wc4.js → knowledgeBase-aBIYgE4B.js} +8 -8
  109. package/dist/src/{litellm-Dcc3mt1B.js → litellm-BiXCNyII.js} +11 -11
  110. package/dist/src/{litellm-CR8i8YRn.js → litellm-QSopB7EE.js} +14 -14
  111. package/dist/src/{litellm-QthJT0fA.cjs → litellm-vZYPcEUQ.cjs} +11 -11
  112. package/dist/src/{luma-ray-DpAL4igs.cjs → luma-ray-CRKJx6ue.cjs} +10 -11
  113. package/dist/src/{luma-ray-vv5ggMvl.js → luma-ray-DmnPkNon.js} +10 -11
  114. package/dist/src/{luma-ray-DbAhu9zC.js → luma-ray-Dvnqlb9n.js} +9 -10
  115. package/dist/src/main.js +166 -106
  116. package/dist/src/{messages-DkV1dizA.js → messages-BaxI3gI5.js} +10 -10
  117. package/dist/src/{messages-D4Cu-Nxe.cjs → messages-CvFzyCty.cjs} +10 -10
  118. package/dist/src/{messages-9ik4NuJ_.js → messages-DT1yyWfS.js} +10 -10
  119. package/dist/src/{meteor-DLCdreag.js → meteor-0cLf9TIn.js} +1 -1
  120. package/dist/src/{meteor-Dj8cTkU_.js → meteor-CBciquOS.js} +1 -1
  121. package/dist/src/{meteor-odmwVbyG.cjs → meteor-DRuEfzuQ.cjs} +1 -1
  122. package/dist/src/{nova-reel-B1c4YdE8.js → nova-reel-CnN4D-bY.js} +10 -11
  123. package/dist/src/{nova-reel-Bs903nib.cjs → nova-reel-XAkfcmhf.cjs} +10 -11
  124. package/dist/src/{nova-reel-mMroVw7W.js → nova-reel-YEEqZu4z.js} +9 -10
  125. package/dist/src/{nova-sonic-BLgglDkA.js → nova-sonic-Ci-VR-K3.js} +6 -6
  126. package/dist/src/{nova-sonic-rZe65fKE.js → nova-sonic-Cjfvm57T.js} +7 -7
  127. package/dist/src/{nova-sonic-BylXGNj-.cjs → nova-sonic-brE_2yrZ.cjs} +6 -6
  128. package/dist/src/{openai-eZz8QsxY.cjs → openai-BjpdxIOG.cjs} +1 -1
  129. package/dist/src/{openai-CQozD_Ef.js → openai-CitF-gEN.js} +1 -1
  130. package/dist/src/{openai-D_5h8sBa.js → openai-Cv9pEKxp.js} +1 -1
  131. package/dist/src/{opencode-sdk-G-dBq9xe.js → opencode-sdk-BkXJb52a.js} +4 -4
  132. package/dist/src/{opencode-sdk-B3o0jNxx.cjs → opencode-sdk-CrlvqSy2.cjs} +4 -4
  133. package/dist/src/{opencode-sdk-lf_9VEhj.js → opencode-sdk-DRMuqbLx.js} +6 -6
  134. package/dist/src/{otlpReceiver-CBZNmyZi.js → otlpReceiver-BCKiiwct.js} +5 -5
  135. package/dist/src/{otlpReceiver-CO1TzzW1.js → otlpReceiver-BTVVyjnA.js} +4 -4
  136. package/dist/src/{otlpReceiver-COmdVimi.cjs → otlpReceiver-DXqKPf2U.cjs} +4 -4
  137. package/dist/src/{providerRegistry-5UB8YVkk.js → providerRegistry-BdKWcUa8.js} +1 -1
  138. package/dist/src/{providerRegistry-gU7gOAJI.js → providerRegistry-D32Lt9vp.js} +1 -1
  139. package/dist/src/{providerRegistry-DFXamjVO.cjs → providerRegistry-HGQd2MF6.cjs} +1 -1
  140. package/dist/src/{providers-Bz0U4NGd.cjs → providers-BF4aullZ.cjs} +114 -132
  141. package/dist/src/providers-BmFckJq8.cjs +31 -0
  142. package/dist/src/{providers-CHciOV4f.js → providers-BtbT8bDb.js} +77 -95
  143. package/dist/src/{providers-D8qKkVu_.js → providers-CYssBaa_.js} +82 -100
  144. package/dist/src/providers-DaDZ1iQw.js +31 -0
  145. package/dist/src/providers-Ds-h-S1b.js +33 -0
  146. package/dist/src/{pythonUtils-mprm8p4h.js → pythonUtils-B9JA-gsC.js} +2 -2
  147. package/dist/src/{quiverai-DnlaJG8H.js → quiverai-BiDa0kiF.js} +10 -10
  148. package/dist/src/{quiverai-3rtm1glP.js → quiverai-DTtLknat.js} +13 -13
  149. package/dist/src/{quiverai-BIveJ-Ql.cjs → quiverai-z8oPMSUZ.cjs} +10 -10
  150. package/dist/src/{render-D5t2ogwP.js → render-D2710HbA.js} +2 -2
  151. package/dist/src/rubyUtils-BLd6EE1u.cjs +5 -0
  152. package/dist/src/{rubyUtils-D1DBBgSr.js → rubyUtils-CVELPvUH.js} +2 -2
  153. package/dist/src/{rubyUtils-Cus5EGPX.js → rubyUtils-Dn6MGcsk.js} +2 -2
  154. package/dist/src/{rubyUtils-CI4Y5f08.js → rubyUtils-LBsk3zIm.js} +1 -1
  155. package/dist/src/{rubyUtils-CWkecmDB.js → rubyUtils-_t9Gmf7U.js} +1 -1
  156. package/dist/src/{rubyUtils-DCci_Y0f.cjs → rubyUtils-rnCVDgH-.cjs} +1 -1
  157. package/dist/src/{sagemaker-BvwRP8TL.js → sagemaker-D5f6K309.js} +11 -11
  158. package/dist/src/{sagemaker-BsttQmAf.cjs → sagemaker-DwJOnUlQ.cjs} +11 -11
  159. package/dist/src/{sagemaker-B4hvJgkV.js → sagemaker-dygdRScC.js} +17 -17
  160. package/dist/src/{scanner-CPosIITM.js → scanner-D__U7qyj.js} +9 -9
  161. package/dist/src/server/index.js +265 -129
  162. package/dist/src/server-B0dYFkhY.cjs +6 -0
  163. package/dist/src/{server-ByLwfSDf.cjs → server-BRPZ0ZqY.cjs} +3 -3
  164. package/dist/src/{server-Bb83s34G.js → server-BZJ_IEiK.js} +4 -4
  165. package/dist/src/{server-BKdsd70B.js → server-Bo3rtriL.js} +3 -3
  166. package/dist/src/server-DZYvmL1z.js +6 -0
  167. package/dist/src/server-DlTe_Yz5.js +8 -0
  168. package/dist/src/{signal-B8hvvb8w.js → signal-C9qT0qiq.js} +2 -2
  169. package/dist/src/{slack-BblBpsIz.cjs → slack-D1F9Y7CH.cjs} +1 -1
  170. package/dist/src/{slack-D-bNCtTa.js → slack-DkAF58Tr.js} +1 -1
  171. package/dist/src/{slack-Ba3gil_6.js → slack-Ed1yyt_j.js} +1 -1
  172. package/dist/src/{store-W4yZqv_e.js → store-BpNCvdGu.js} +2 -2
  173. package/dist/src/store-BvASVHpa.cjs +6 -0
  174. package/dist/src/{store-l9-mIRC-.cjs → store-BwsF10Db.cjs} +2 -2
  175. package/dist/src/store-CDxVyNyD.js +6 -0
  176. package/dist/src/store-CXxKOQ8V.js +7 -0
  177. package/dist/src/{store-CaNRmI5T.js → store-Dm8qSYzq.js} +2 -2
  178. package/dist/src/{tables-DZWWveaJ.js → tables-B0wvxP8N.js} +2 -2
  179. package/dist/src/{tables-BCcp2r48.js → tables-CMOPSC5_.js} +2 -2
  180. package/dist/src/{tables-D_VmN-ui.cjs → tables-D_nKFrHt.cjs} +2 -2
  181. package/dist/src/{telemetry-DrSTNTH-.cjs → telemetry-B9G9VzVT.cjs} +3 -3
  182. package/dist/src/telemetry-CGO4vCCz.js +8 -0
  183. package/dist/src/telemetry-CXarb10F.cjs +6 -0
  184. package/dist/src/telemetry-DKtQFHz8.js +6 -0
  185. package/dist/src/{telemetry-CmGyDaxF.js → telemetry-DMGVtU7z.js} +3 -3
  186. package/dist/src/{telemetry-CB8ltkOD.js → telemetry-oV0dEJ2S.js} +3 -3
  187. package/dist/src/{text-C1cXk9ij.js → text-DuYSUYPB.js} +1 -1
  188. package/dist/src/{text-Dm78AVGG.js → text-Dx0GJOCN.js} +1 -1
  189. package/dist/src/{text-DF2hMKdg.cjs → text-PYISqVm1.cjs} +1 -1
  190. package/dist/src/{tokenUsageUtils-DFp2VFtG.cjs → tokenUsageUtils-BtZd3sP7.cjs} +1 -1
  191. package/dist/src/{tokenUsageUtils-C9fIWtvn.js → tokenUsageUtils-DoinwgKF.js} +1 -1
  192. package/dist/src/{tokenUsageUtils-BQVp2uKF.js → tokenUsageUtils-cFdLMERB.js} +1 -1
  193. package/dist/src/{transcription-BExRps8_.js → transcription-C5sJed5S.js} +7 -7
  194. package/dist/src/{transcription-B4GbFkhb.cjs → transcription-DEiYnjqG.cjs} +7 -7
  195. package/dist/src/{transcription-CpuRKcIu.js → transcription-Dcv2GYgI.js} +10 -10
  196. package/dist/src/{transform-BzepVlkX.js → transform-BFPYuBaW.js} +4 -4
  197. package/dist/src/{transform-BwedQA8W.js → transform-Cpk3BVib.js} +3 -3
  198. package/dist/src/{transform-B-AYIQmM.js → transform-DWBbTh_M.js} +3 -3
  199. package/dist/src/{transform-1g7fEAge.js → transform-DZI2t8-9.js} +3 -3
  200. package/dist/src/{transform-B5HUD86U.cjs → transform-DeVdMzaA.cjs} +3 -3
  201. package/dist/src/{transformersAvailability-B5gZ2aG-.cjs → transformersAvailability-BaoWHpu1.cjs} +1 -1
  202. package/dist/src/{transformersAvailability-BHP0aLcv.js → transformersAvailability-DtpwoeFC.js} +1 -1
  203. package/dist/src/{transformersAvailability-CA173HU7.js → transformersAvailability-O2YaCv9Z.js} +1 -1
  204. package/dist/src/{types-n3ttAnOa.js → types-BZz0C6rq.js} +3 -18
  205. package/dist/src/{types-DAmPdu4_.cjs → types-Cixl-wRO.cjs} +1 -22
  206. package/dist/src/{types-BlspLqbN.js → types-l7snZgzv.js} +2 -17
  207. package/dist/src/{util-Cd2vI7ii.js → util-BR59kcWy.js} +3 -3
  208. package/dist/src/{util-BnF-xRPi.js → util-BjTDLTac.js} +3 -3
  209. package/dist/src/{util-CwsTKPXi.js → util-CSvDts2m.js} +3 -3
  210. package/dist/src/{util-KE6uFWHG.cjs → util-CfLcBZEA.cjs} +3 -3
  211. package/dist/src/{util-BXjq8vOq.js → util-Czrn_1en.js} +3 -3
  212. package/dist/src/{util-BT0p5c9X.cjs → util-Dxwavk84.cjs} +3 -3
  213. package/dist/src/{util-DX58t30T.js → util-GpiGNWSj.js} +17 -5
  214. package/dist/src/{util-B-Yo0qzc.cjs → util-RfCZM4TD.cjs} +22 -4
  215. package/dist/src/{util-CyzW5ayt.js → util-UxC1pDDt.js} +20 -8
  216. package/dist/src/{utils-HdRSruG0.js → utils-2CdNTp-a.js} +2 -2
  217. package/dist/src/{utils-BSpcJB4B.cjs → utils-6lWwNARy.cjs} +2 -2
  218. package/dist/src/{utils-BWOFfOel.js → utils-BMIgqY6C.js} +2 -2
  219. package/dist/tsconfig.tsbuildinfo +1 -1
  220. package/package.json +31 -29
  221. package/dist/src/app/assets/index-CFq6nz43.css +0 -1
  222. package/dist/src/cache-BZYapLG-.cjs +0 -6
  223. package/dist/src/eval-g5SH3NBa.js +0 -16
  224. package/dist/src/evalResult-Bt2fmj0V.js +0 -9
  225. package/dist/src/evalResult-DRNH7Jui.js +0 -10
  226. package/dist/src/evalResult-DqLWyktN.cjs +0 -9
  227. package/dist/src/evaluator-DIenqH86.js +0 -37
  228. package/dist/src/fetch-gmneHrJc.cjs +0 -4
  229. package/dist/src/graders-BHcgLz2P.js +0 -35
  230. package/dist/src/graders-BjBhwJOb.cjs +0 -32
  231. package/dist/src/graders-DEjGX1uY.js +0 -33
  232. package/dist/src/providers-BBGwMMzj.js +0 -33
  233. package/dist/src/providers-BR5P_qep.cjs +0 -31
  234. package/dist/src/providers-CDib9hVp.js +0 -31
  235. package/dist/src/rubyUtils-DZo4ik6p.cjs +0 -5
  236. package/dist/src/server-B5aIhzYk.cjs +0 -6
  237. package/dist/src/server-DJCw85s0.js +0 -8
  238. package/dist/src/server-DKj0QIm9.js +0 -6
  239. package/dist/src/store-Bo9FEBPO.js +0 -7
  240. package/dist/src/store-CqHttBql.js +0 -6
  241. package/dist/src/store-fsxOJl5O.cjs +0 -6
  242. package/dist/src/telemetry-B2uJOvMA.js +0 -8
  243. package/dist/src/telemetry-TZ0v6oGo.cjs +0 -6
  244. package/dist/src/telemetry-rP_n_bnZ.js +0 -6
  245. package/dist/src/time-CRRzn6vA.js +0 -9
  246. package/dist/src/time-CbtsO5_a.cjs +0 -21
  247. package/dist/src/time-CoOwN3kQ.js +0 -10
@@ -2216,21 +2216,6 @@ const CONFIGURABLE_STRATEGIES = [
2216
2216
  ];
2217
2217
  const CONFIGURABLE_STRATEGIES_SET = new Set(CONFIGURABLE_STRATEGIES);
2218
2218
  /**
2219
- * Strategies that should not have language configuration applied to them.
2220
- */
2221
- const LANGUAGE_DISALLOWED_STRATEGIES = new Set([
2222
- "audio",
2223
- "video",
2224
- "image",
2225
- "math-prompt"
2226
- ]);
2227
- /**
2228
- * Determines if a strategy should not use language configuration
2229
- */
2230
- function isLanguageDisallowedStrategy(strategyId) {
2231
- return strategyId ? LANGUAGE_DISALLOWED_STRATEGIES.has(strategyId) : false;
2232
- }
2233
- /**
2234
2219
  * Default 'n' fan out for strategies that can add additional test cases during generation
2235
2220
  */
2236
2221
  const DEFAULT_N_FAN_OUT_BY_STRATEGY = {
@@ -3181,5 +3166,5 @@ const EvalResultsFilterMode = z.enum([
3181
3166
  ]);
3182
3167
 
3183
3168
  //#endregion
3184
- export { pluginDescriptions as $, isApiProvider as A, isValidReusablePolicyId as B, TestGeneratorConfigSchema as C, BaseTokenUsageSchema as Ct, VarsSchema as D, UnifiedConfigSchema as E, ConversationMessageSchema as F, STRATEGY_COLLECTIONS as G, DATASET_PLUGINS as H, PartialGenerationError as I, isCustomStrategy as J, STRATEGY_COLLECTION_MAPPINGS as K, PluginConfigSchema as L, RedteamConfigSchema as M, ProviderOptionsSchema as N, isGradingResult as O, ProvidersSchema as P, categoryAliases as Q, PolicyObjectSchema as R, TestCasesWithMetadataSchema as S, PromptSchema as St, TestSuiteSchema as T, InputsSchema as Tt, DEFAULT_STRATEGIES as U, AGENTIC_STRATEGIES as V, MULTI_TURN_STRATEGIES as W, isLanguageDisallowedStrategy as X, isFanoutStrategy as Y, Severity as Z, ScenarioSchema as _, REDTEAM_PROVIDER_HARM_PLUGINS as _t, AtomicTestCaseSchema as a, FINANCIAL_PLUGINS as at, TestCaseWithVarsFileSchema as b, TELECOM_PLUGINS as bt, CompletedPromptSchema as c, INSURANCE_PLUGINS as ct, EvaluateOptionsSchema as d, MEDICAL_PLUGINS as dt, riskCategorySeverityMap as et, GradingConfigSchema as f, MULTI_INPUT_EXCLUDED_PLUGINS as ft, ResultFailureReason as g, PLUGIN_CATEGORIES as gt, OutputFileExtension as h, PII_PLUGINS as ht, AssertionTypeSchema as i, DEFAULT_PLUGINS as it, isProviderOptions as j, isResultFailureReason as k, DerivedMetricSchema as l, LLAMA_GUARD_ENABLED_CATEGORIES as lt, OutputConfigSchema as m, PHARMACY_PLUGINS as mt, AssertionSchema as n, BIAS_PLUGINS as nt, BaseAssertionTypesSchema as o, FOUNDATION_PLUGINS as ot, NotPrefixedAssertionTypesSchema as p, MULTI_INPUT_VAR as pt, getDefaultNFanout as q, AssertionSetSchema as r, DATASET_EXEMPT_PLUGINS as rt, CommandLineOptionsSchema as s, HARM_PLUGINS as st, AssertionOrSetSchema as t, ALIASED_PLUGIN_MAPPINGS as tt, EvalResultsFilterMode as u, LLAMA_GUARD_REPLICATE_PROVIDER as ut, SpecialAssertionTypesSchema as v, REMOTE_ONLY_PLUGIN_IDS as vt, TestSuiteConfigSchema as w, CompletionTokenDetailsSchema as wt, TestCasesWithMetadataPromptSchema as x, UNALIGNED_PROVIDER_HARM_PLUGINS as xt, TestCaseSchema as y, STRATEGY_EXEMPT_PLUGINS as yt, StrategyConfigSchema as z };
3185
- //# sourceMappingURL=types-BlspLqbN.js.map
3169
+ export { riskCategorySeverityMap as $, isApiProvider as A, isValidReusablePolicyId as B, TestGeneratorConfigSchema as C, CompletionTokenDetailsSchema as Ct, VarsSchema as D, UnifiedConfigSchema as E, ConversationMessageSchema as F, STRATEGY_COLLECTIONS as G, DATASET_PLUGINS as H, PartialGenerationError as I, isCustomStrategy as J, STRATEGY_COLLECTION_MAPPINGS as K, PluginConfigSchema as L, RedteamConfigSchema as M, ProviderOptionsSchema as N, isGradingResult as O, ProvidersSchema as P, pluginDescriptions as Q, PolicyObjectSchema as R, TestCasesWithMetadataSchema as S, BaseTokenUsageSchema as St, TestSuiteSchema as T, DEFAULT_STRATEGIES as U, AGENTIC_STRATEGIES as V, MULTI_TURN_STRATEGIES as W, Severity as X, isFanoutStrategy as Y, categoryAliases as Z, ScenarioSchema as _, REMOTE_ONLY_PLUGIN_IDS as _t, AtomicTestCaseSchema as a, FOUNDATION_PLUGINS as at, TestCaseWithVarsFileSchema as b, UNALIGNED_PROVIDER_HARM_PLUGINS as bt, CompletedPromptSchema as c, LLAMA_GUARD_ENABLED_CATEGORIES as ct, EvaluateOptionsSchema as d, MULTI_INPUT_EXCLUDED_PLUGINS as dt, ALIASED_PLUGIN_MAPPINGS as et, GradingConfigSchema as f, MULTI_INPUT_VAR as ft, ResultFailureReason as g, REDTEAM_PROVIDER_HARM_PLUGINS as gt, OutputFileExtension as h, PLUGIN_CATEGORIES as ht, AssertionTypeSchema as i, FINANCIAL_PLUGINS as it, isProviderOptions as j, isResultFailureReason as k, DerivedMetricSchema as l, LLAMA_GUARD_REPLICATE_PROVIDER as lt, OutputConfigSchema as m, PII_PLUGINS as mt, AssertionSchema as n, DATASET_EXEMPT_PLUGINS as nt, BaseAssertionTypesSchema as o, HARM_PLUGINS as ot, NotPrefixedAssertionTypesSchema as p, PHARMACY_PLUGINS as pt, getDefaultNFanout as q, AssertionSetSchema as r, DEFAULT_PLUGINS as rt, CommandLineOptionsSchema as s, INSURANCE_PLUGINS as st, AssertionOrSetSchema as t, BIAS_PLUGINS as tt, EvalResultsFilterMode as u, MEDICAL_PLUGINS as ut, SpecialAssertionTypesSchema as v, STRATEGY_EXEMPT_PLUGINS as vt, TestSuiteConfigSchema as w, InputsSchema as wt, TestCasesWithMetadataPromptSchema as x, PromptSchema as xt, TestCaseSchema as y, TELECOM_PLUGINS as yt, StrategyConfigSchema as z };
3170
+ //# sourceMappingURL=types-l7snZgzv.js.map
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { l as calculateCost } from "./fetch-TcCC0nEJ.js";
3
- import { v as parseDataUrl } from "./transform-B-AYIQmM.js";
2
+ import { d as calculateCost } from "./fetch-DKQm7iwv.js";
3
+ import { v as parseDataUrl } from "./transform-DWBbTh_M.js";
4
4
 
5
5
  //#region src/providers/anthropic/util.ts
6
6
  const ANTHROPIC_MODELS = [
@@ -273,4 +273,4 @@ function transformWebSearchTool(config) {
273
273
 
274
274
  //#endregion
275
275
  export { parseMessages as a, outputFromMessage as i, calculateAnthropicCost as n, processAnthropicTools as o, getTokenUsage as r, ANTHROPIC_MODELS as t };
276
- //# sourceMappingURL=util-Cd2vI7ii.js.map
276
+ //# sourceMappingURL=util-BR59kcWy.js.map
@@ -1,5 +1,5 @@
1
- import { m as calculateCost } from "./fetch-BIPrzD39.js";
2
- import { v as parseDataUrl } from "./transform-BwedQA8W.js";
1
+ import { g as calculateCost } from "./fetch-BMKSarK_.js";
2
+ import { v as parseDataUrl } from "./transform-Cpk3BVib.js";
3
3
 
4
4
  //#region src/providers/anthropic/util.ts
5
5
  const ANTHROPIC_MODELS = [
@@ -272,4 +272,4 @@ function transformWebSearchTool(config) {
272
272
 
273
273
  //#endregion
274
274
  export { parseMessages as a, outputFromMessage as i, calculateAnthropicCost as n, processAnthropicTools as o, getTokenUsage as r, ANTHROPIC_MODELS as t };
275
- //# sourceMappingURL=util-BnF-xRPi.js.map
275
+ //# sourceMappingURL=util-BjTDLTac.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { g as safeJsonStringify, p as getAjv } from "./logger-Bzi5o47S.js";
3
- import { l as calculateCost } from "./fetch-TcCC0nEJ.js";
4
- import { m as maybeLoadFromExternalFileWithVars } from "./util-CyzW5ayt.js";
3
+ import { d as calculateCost } from "./fetch-DKQm7iwv.js";
4
+ import { m as maybeLoadFromExternalFileWithVars } from "./util-UxC1pDDt.js";
5
5
  import OpenAI from "openai";
6
6
 
7
7
  //#region src/providers/openai/util.ts
@@ -556,4 +556,4 @@ function formatOpenAiError(data) {
556
556
 
557
557
  //#endregion
558
558
  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-CwsTKPXi.js.map
559
+ //# sourceMappingURL=util-CSvDts2m.js.map
@@ -1,5 +1,5 @@
1
- const require_fetch = require('./fetch-MdGxb6Bv.cjs');
2
- const require_transform = require('./transform-B5HUD86U.cjs');
1
+ const require_fetch = require('./fetch-BgYKpAJ7.cjs');
2
+ const require_transform = require('./transform-DeVdMzaA.cjs');
3
3
 
4
4
  //#region src/providers/anthropic/util.ts
5
5
  const ANTHROPIC_MODELS = [
@@ -307,4 +307,4 @@ Object.defineProperty(exports, 'processAnthropicTools', {
307
307
  return processAnthropicTools;
308
308
  }
309
309
  });
310
- //# sourceMappingURL=util-KE6uFWHG.cjs.map
310
+ //# sourceMappingURL=util-CfLcBZEA.cjs.map
@@ -1,6 +1,6 @@
1
1
  import { d as getAjv, m as safeJsonStringify } from "./logger-q5I8CByj.js";
2
- import { l as maybeLoadFromExternalFileWithVars } from "./util-DX58t30T.js";
3
- import { m as calculateCost } from "./fetch-BIPrzD39.js";
2
+ import { l as maybeLoadFromExternalFileWithVars } from "./util-GpiGNWSj.js";
3
+ import { g as calculateCost } from "./fetch-BMKSarK_.js";
4
4
  import OpenAI from "openai";
5
5
 
6
6
  //#region src/providers/openai/util.ts
@@ -555,4 +555,4 @@ function formatOpenAiError(data) {
555
555
 
556
556
  //#endregion
557
557
  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-BXjq8vOq.js.map
558
+ //# sourceMappingURL=util-Czrn_1en.js.map
@@ -1,6 +1,6 @@
1
1
  const require_logger = require('./logger-CMp-NS-e.cjs');
2
- const require_util = require('./util-B-Yo0qzc.cjs');
3
- const require_fetch = require('./fetch-MdGxb6Bv.cjs');
2
+ const require_util = require('./util-RfCZM4TD.cjs');
3
+ const require_fetch = require('./fetch-BgYKpAJ7.cjs');
4
4
  let openai = require("openai");
5
5
  openai = require_logger.__toESM(openai);
6
6
 
@@ -609,4 +609,4 @@ Object.defineProperty(exports, 'validateFunctionCall', {
609
609
  return validateFunctionCall;
610
610
  }
611
611
  });
612
- //# sourceMappingURL=util-BT0p5c9X.cjs.map
612
+ //# sourceMappingURL=util-Dxwavk84.cjs.map
@@ -3,8 +3,8 @@ import { t as invariant } from "./invariant-1pAf2CD1.js";
3
3
  import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-D40XsWlR.js";
4
4
  import { r as runPython } from "./pythonUtils-eNq6Wsfr.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-BlspLqbN.js";
7
- import { A as TERMINAL_MAX_WIDTH, F as VERSION, t as fetchWithProxy } from "./fetch-BIPrzD39.js";
6
+ import { A as isApiProvider, g as ResultFailureReason, h as OutputFileExtension, j as isProviderOptions } from "./types-l7snZgzv.js";
7
+ import { L as VERSION, M as TERMINAL_MAX_WIDTH, t as fetchWithProxy } from "./fetch-BMKSarK_.js";
8
8
  import * as fs$1 from "fs";
9
9
  import * as path$1 from "path";
10
10
  import path from "path";
@@ -177,11 +177,23 @@ function isRuntimeVar(key) {
177
177
  * - Being in the explicit list (e.g., sessionId for backward compatibility)
178
178
  */
179
179
  function filterRuntimeVars(vars) {
180
- if (!vars) return vars;
180
+ if (!vars || typeof vars !== "object" || Array.isArray(vars)) return vars;
181
181
  const filtered = {};
182
182
  for (const [key, value] of Object.entries(vars)) if (!isRuntimeVar(key)) filtered[key] = value;
183
183
  return filtered;
184
184
  }
185
+ /**
186
+ * Extracts only runtime variables from a vars object.
187
+ * This is the inverse of filterRuntimeVars.
188
+ *
189
+ * Used to restore runtime state when re-running filtered tests.
190
+ */
191
+ function extractRuntimeVars(vars) {
192
+ if (!vars || typeof vars !== "object" || Array.isArray(vars)) return;
193
+ const extracted = {};
194
+ for (const [key, value] of Object.entries(vars)) if (isRuntimeVar(key)) extracted[key] = value;
195
+ return Object.keys(extracted).length > 0 ? extracted : void 0;
196
+ }
185
197
  function varsMatch(vars1, vars2) {
186
198
  return deepEqual(vars1, vars2);
187
199
  }
@@ -1240,5 +1252,5 @@ function printBorder() {
1240
1252
  }
1241
1253
 
1242
1254
  //#endregion
1243
- export { isGoogleProvider as A, deduplicateTestCases as C, doesProviderRefMatch as D, resultIsForTestCase as E, isProviderAllowed as M, getProviderDescription as O, setupEnv as S, getTestCaseDeduplicationKey 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, isOpenAiProvider as j, isAnthropicProvider 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, filterRuntimeVars as w, parseFileUrl as x, getNunjucksEngine as y };
1244
- //# sourceMappingURL=util-DX58t30T.js.map
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-GpiGNWSj.js.map
@@ -3,8 +3,8 @@ const require_invariant = require('./invariant-CKcJAQ6M.cjs');
3
3
  const require_esm = require('./esm-gWVPXn3r.cjs');
4
4
  const require_pythonUtils = require('./pythonUtils-rOCm9w_5.cjs');
5
5
  const require_fileExtensions = require('./fileExtensions-DkJYkWUy.cjs');
6
- const require_types = require('./types-DAmPdu4_.cjs');
7
- const require_fetch = require('./fetch-MdGxb6Bv.cjs');
6
+ const require_types = require('./types-Cixl-wRO.cjs');
7
+ const require_fetch = require('./fetch-BgYKpAJ7.cjs');
8
8
  let fs = require("fs");
9
9
  fs = require_logger.__toESM(fs);
10
10
  let path = require("path");
@@ -185,11 +185,23 @@ function isRuntimeVar(key) {
185
185
  * - Being in the explicit list (e.g., sessionId for backward compatibility)
186
186
  */
187
187
  function filterRuntimeVars(vars) {
188
- if (!vars) return vars;
188
+ if (!vars || typeof vars !== "object" || Array.isArray(vars)) return vars;
189
189
  const filtered = {};
190
190
  for (const [key, value] of Object.entries(vars)) if (!isRuntimeVar(key)) filtered[key] = value;
191
191
  return filtered;
192
192
  }
193
+ /**
194
+ * Extracts only runtime variables from a vars object.
195
+ * This is the inverse of filterRuntimeVars.
196
+ *
197
+ * Used to restore runtime state when re-running filtered tests.
198
+ */
199
+ function extractRuntimeVars(vars) {
200
+ if (!vars || typeof vars !== "object" || Array.isArray(vars)) return;
201
+ const extracted = {};
202
+ for (const [key, value] of Object.entries(vars)) if (isRuntimeVar(key)) extracted[key] = value;
203
+ return Object.keys(extracted).length > 0 ? extracted : void 0;
204
+ }
193
205
  function varsMatch(vars1, vars2) {
194
206
  return (0, fast_deep_equal.default)(vars1, vars2);
195
207
  }
@@ -1260,6 +1272,12 @@ Object.defineProperty(exports, 'doesProviderRefMatch', {
1260
1272
  return doesProviderRefMatch;
1261
1273
  }
1262
1274
  });
1275
+ Object.defineProperty(exports, 'extractRuntimeVars', {
1276
+ enumerable: true,
1277
+ get: function () {
1278
+ return extractRuntimeVars;
1279
+ }
1280
+ });
1263
1281
  Object.defineProperty(exports, 'extractVariablesFromTemplate', {
1264
1282
  enumerable: true,
1265
1283
  get: function () {
@@ -1440,4 +1458,4 @@ Object.defineProperty(exports, 'writeOutput', {
1440
1458
  return writeOutput;
1441
1459
  }
1442
1460
  });
1443
- //# sourceMappingURL=util-B-Yo0qzc.cjs.map
1461
+ //# sourceMappingURL=util-RfCZM4TD.cjs.map
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { O as cliState_default, b as getEnvBool, o as logger_default } from "./logger-Bzi5o47S.js";
3
- import { T as TERMINAL_MAX_WIDTH, j as VERSION, t as fetchWithProxy } from "./fetch-TcCC0nEJ.js";
3
+ import { D as TERMINAL_MAX_WIDTH, N as VERSION, t as fetchWithProxy } from "./fetch-DKQm7iwv.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-n3ttAnOa.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-Bwuh5HXW.js";
8
- import { r as runPython } from "./pythonUtils-mprm8p4h.js";
5
+ import { m as isProviderOptions, o as OutputFileExtension, p as isApiProvider, s as ResultFailureReason } from "./types-BZz0C6rq.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";
9
9
  import dotenv from "dotenv";
10
10
  import * as fs$2 from "fs";
11
11
  import * as path$1 from "path";
@@ -178,11 +178,23 @@ function isRuntimeVar(key) {
178
178
  * - Being in the explicit list (e.g., sessionId for backward compatibility)
179
179
  */
180
180
  function filterRuntimeVars(vars) {
181
- if (!vars) return vars;
181
+ if (!vars || typeof vars !== "object" || Array.isArray(vars)) return vars;
182
182
  const filtered = {};
183
183
  for (const [key, value] of Object.entries(vars)) if (!isRuntimeVar(key)) filtered[key] = value;
184
184
  return filtered;
185
185
  }
186
+ /**
187
+ * Extracts only runtime variables from a vars object.
188
+ * This is the inverse of filterRuntimeVars.
189
+ *
190
+ * Used to restore runtime state when re-running filtered tests.
191
+ */
192
+ function extractRuntimeVars(vars) {
193
+ if (!vars || typeof vars !== "object" || Array.isArray(vars)) return;
194
+ const extracted = {};
195
+ for (const [key, value] of Object.entries(vars)) if (isRuntimeVar(key)) extracted[key] = value;
196
+ return Object.keys(extracted).length > 0 ? extracted : void 0;
197
+ }
186
198
  function varsMatch(vars1, vars2) {
187
199
  return deepEqual(vars1, vars2);
188
200
  }
@@ -1366,5 +1378,5 @@ function printBorder() {
1366
1378
  }
1367
1379
 
1368
1380
  //#endregion
1369
- export { getTestCaseDeduplicationKey as A, extractVariablesFromTemplates as C, setupEnv as D, parseFileUrl as E, isGoogleProvider as F, isOpenAiProvider as I, isProviderAllowed as L, doesProviderRefMatch as M, getProviderDescription as N, deduplicateTestCases as O, isAnthropicProvider as P, 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, resultIsForTestCase as j, filterRuntimeVars 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 };
1370
- //# sourceMappingURL=util-CyzW5ayt.js.map
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-UxC1pDDt.js.map
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { C as getEnvString } from "./logger-Bzi5o47S.js";
3
- import { i as sha256 } from "./extractor-D_1s-Thr.js";
3
+ import { a as sha256 } from "./extractor-HnP0pHfO.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-HdRSruG0.js.map
98
+ //# sourceMappingURL=utils-2CdNTp-a.js.map
@@ -1,5 +1,5 @@
1
1
  const require_logger = require('./logger-CMp-NS-e.cjs');
2
- const require_extractor = require('./extractor-DjxI7POm.cjs');
2
+ const require_extractor = require('./extractor-wSeR47-c.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-BSpcJB4B.cjs.map
126
+ //# sourceMappingURL=utils-6lWwNARy.cjs.map
@@ -1,5 +1,5 @@
1
1
  import { b as getEnvString } from "./logger-q5I8CByj.js";
2
- import { i as sha256 } from "./extractor-B9uQA-6-.js";
2
+ import { a as sha256 } from "./extractor-WvMabjRY.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-BWOFfOel.js.map
97
+ //# sourceMappingURL=utils-BMIgqY6C.js.map