promptfoo 0.121.2 → 0.121.3

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 (315) hide show
  1. package/README.md +2 -0
  2. package/dist/src/{accounts-CiBLOnA7.js → accounts-B2XmGjty.js} +5 -5
  3. package/dist/src/{accounts-gtkH-5KX.cjs → accounts-BPyfpSeU.cjs} +5 -5
  4. package/dist/src/{accounts-Bm2D8Db9.js → accounts-CFLK3mnD.js} +6 -6
  5. package/dist/src/{accounts-B0pgC1oV.js → accounts-Xatc0RYb.js} +5 -5
  6. package/dist/src/{agentic-utils-DS1g3GLF.js → agentic-utils-36epdqwB.js} +3 -3
  7. package/dist/src/{cometapi-CUQq3H_a.js → agentic-utils-D8yXo5Lm.js} +4 -61
  8. package/dist/src/{cometapi-C4xSqeID.cjs → agentic-utils-DAVsChuB.cjs} +24 -62
  9. package/dist/src/agentic-utils-DIYAAYE7.js +153 -0
  10. package/dist/src/{agents-CBr9A01V.js → agents-BBVJCIYr.js} +226 -13
  11. package/dist/src/{agents-Di9DKPzn.cjs → agents-BBWxKSM0.cjs} +7 -7
  12. package/dist/src/{agents-DgF2zDag.js → agents-Bqgfdokm.js} +228 -13
  13. package/dist/src/{agents-DbRtpYxR.cjs → agents-CAYbM7qD.cjs} +226 -13
  14. package/dist/src/{agents-9qiOy0ho.js → agents-CLQ-P15P.js} +7 -7
  15. package/dist/src/{agents-cLXA8a_8.js → agents-CgBniSlI.js} +8 -8
  16. package/dist/src/{agents-D__IdAlg.js → agents-DSSTV4bv.js} +226 -15
  17. package/dist/src/{agents-CmvBq8LV.js → agents-wg3ohknq.js} +7 -7
  18. package/dist/src/{aimlapi-BvlNH0gr.cjs → aimlapi-Bv8Fmc-b.cjs} +14 -14
  19. package/dist/src/{aimlapi-DHJU_kcV.js → aimlapi-BwGC1TtS.js} +13 -13
  20. package/dist/src/{aimlapi-CnkC2HqE.js → aimlapi-DaC3qZ-o.js} +14 -14
  21. package/dist/src/{aimlapi-B4rcnZgv.js → aimlapi-MgSLdvy7.js} +13 -13
  22. package/dist/src/app/assets/index-B6l9CVVb.js +439 -0
  23. package/dist/src/app/assets/index-DyZ0Ep37.css +1 -0
  24. package/dist/src/app/assets/sync-CStkzc6u.js +4 -0
  25. package/dist/src/app/assets/vendor-markdown-Bz7N-ca6.js +29 -0
  26. package/dist/src/app/index.html +3 -3
  27. package/dist/src/{audio-Bkv46et0.js → audio-Bn44pQxv.js} +4 -4
  28. package/dist/src/{audio-ClI_AFre.js → audio-DDA5WHdx.js} +4 -4
  29. package/dist/src/{audio-CGMyULza.cjs → audio-DVFjQ67_.cjs} +4 -4
  30. package/dist/src/{audio-Dz3z7s3J.js → audio-DjU9GswO.js} +5 -5
  31. package/dist/src/{base-CGrhspbK.cjs → base-BboXIF_0.cjs} +3 -3
  32. package/dist/src/{base-Dy1V8--Z.js → base-CKjwebIH.js} +3 -3
  33. package/dist/src/{base-DLKtKMFh.js → base-CqzQ4K8j.js} +3 -3
  34. package/dist/src/{base-CpjcHe4e.js → base-Cz2ZC_iA.js} +3 -3
  35. package/dist/src/{blobs-CMHN0Qcz.js → blobs-B1JriOyi.js} +3 -3
  36. package/dist/src/{blobs-BDbfYdrJ.js → blobs-BUWmKWzo.js} +3 -3
  37. package/dist/src/{blobs-D23XLin-.cjs → blobs-C6j0bvFz.cjs} +3 -3
  38. package/dist/src/{blobs-CBO20krR.js → blobs-DXTl6J3H.js} +3 -3
  39. package/dist/src/{cache-Dh5WtQps.cjs → cache-C5yFZ4gC.cjs} +3 -3
  40. package/dist/src/{cache-C4Nxf52C.js → cache-CaT5tPgo.js} +3 -3
  41. package/dist/src/cache-CyCanoMu.js +6 -0
  42. package/dist/src/{cache-BVeDlD87.js → cache-DSqR6ezl.js} +3 -3
  43. package/dist/src/cache-Df_QFDNu.cjs +5 -0
  44. package/dist/src/{cache-i1P6crbO.js → cache-HP0NP4k3.js} +3 -3
  45. package/dist/src/{chat-CzkrVDfz.js → chat-B-52XYI1.js} +12 -12
  46. package/dist/src/{chat-DJIw17u0.js → chat-B0iaWhoh.js} +14 -14
  47. package/dist/src/{chat-qmatte1u.js → chat-BE0qTA8e.js} +13 -13
  48. package/dist/src/{chat-BiKyneZl.js → chat-BEwdgGEg.js} +14 -14
  49. package/dist/src/{chat-C1Qst7jL.cjs → chat-BtIKkLKx.cjs} +13 -13
  50. package/dist/src/{chat-CgF-J-Jj.cjs → chat-CM8qWR3_.cjs} +15 -15
  51. package/dist/src/{chat-C2jrdPMx.js → chat-DK1U-eZ-.js} +12 -12
  52. package/dist/src/{chat-DqxYYtWA.js → chat-pxmiVpWe.js} +14 -14
  53. package/dist/src/{chatkit-65VXf5SR.js → chatkit-BYGQlHlV.js} +4 -4
  54. package/dist/src/{chatkit-DKyPi1Gs.cjs → chatkit-Cx174XI3.cjs} +4 -4
  55. package/dist/src/{chatkit-BxFvW8KY.js → chatkit-_8eJqKcD.js} +4 -4
  56. package/dist/src/{chatkit-Be-Q-a9F.js → chatkit-a2D6mY6s.js} +4 -4
  57. package/dist/src/{claude-agent-sdk-D9Z5Pr9X.cjs → claude-agent-sdk-8ddRp1L2.cjs} +35 -17
  58. package/dist/src/{claude-agent-sdk-DfCoW0E6.js → claude-agent-sdk-Bq5EArsX.js} +33 -15
  59. package/dist/src/{claude-agent-sdk-Apiy0iaz.js → claude-agent-sdk-CMjh4LFH.js} +33 -15
  60. package/dist/src/{claude-agent-sdk-D2bJee9S.js → claude-agent-sdk-HgbFioFw.js} +33 -15
  61. package/dist/src/cloud-DE3t1-ZI.js +4 -0
  62. package/dist/src/{cloud-C0dlstV_.js → cloud-z8KZpUoa.js} +3 -3
  63. package/dist/src/{cloudflare-ai-g7PB6VHR.js → cloudflare-ai-BGyXlpXJ.js} +13 -13
  64. package/dist/src/{cloudflare-ai-8TDxHR0x.js → cloudflare-ai-Bbp26N0L.js} +13 -13
  65. package/dist/src/{cloudflare-ai-CknbZ5LJ.cjs → cloudflare-ai-C62x6MQG.cjs} +14 -14
  66. package/dist/src/{cloudflare-ai-BxAGvfju.js → cloudflare-ai-DdKP9TKT.js} +14 -14
  67. package/dist/src/{cloudflare-gateway-CP9QEWYS.js → cloudflare-gateway-BwAaUgeW.js} +14 -14
  68. package/dist/src/{cloudflare-gateway-B9HWA5wf.js → cloudflare-gateway-D-e9i1Sn.js} +15 -15
  69. package/dist/src/{cloudflare-gateway-CKDb4dJ8.js → cloudflare-gateway-DXhtXDRb.js} +15 -163
  70. package/dist/src/{cloudflare-gateway-BSnDmHYo.cjs → cloudflare-gateway-Dx36ftqF.cjs} +15 -15
  71. package/dist/src/{codex-sdk-DUwKWezN.js → codex-sdk-BQEw16R_.js} +180 -11
  72. package/dist/src/{codex-sdk-C6UMlxwV.js → codex-sdk-C_07GuVS.js} +180 -11
  73. package/dist/src/{codex-sdk-GGAw0qbD.js → codex-sdk-DE5G18dx.js} +180 -11
  74. package/dist/src/{codex-sdk-fAO0c3yA.cjs → codex-sdk-ZLKfDjqP.cjs} +181 -12
  75. package/dist/src/cometapi-BDyV-NNm.js +62 -0
  76. package/dist/src/cometapi-C3hOlM7-.cjs +62 -0
  77. package/dist/src/{cometapi-BL9yvj_f.js → cometapi-hhL4TAh3.js} +14 -14
  78. package/dist/src/{cometapi-DFNiKmSz.js → cometapi-sp7sJpBD.js} +15 -15
  79. package/dist/src/{completion-5MzrpJxT.js → completion-BCimtq-h.js} +6 -6
  80. package/dist/src/{completion-qRoZAYRB.js → completion-DCjv7RZ3.js} +6 -6
  81. package/dist/src/{completion-CM6oK8PS.cjs → completion-DlXUhj5c.cjs} +6 -6
  82. package/dist/src/{completion-DZ083F31.js → completion-DoYy49ti.js} +6 -6
  83. package/dist/src/{createHash-CfZSc0b4.cjs → createHash-BYwImsYv.cjs} +2 -2
  84. package/dist/src/{docker-DcF2pRrj.cjs → docker-Cqj2-QVi.cjs} +14 -14
  85. package/dist/src/{docker-Bb5dcxr8.js → docker-CxCkwMzc.js} +13 -13
  86. package/dist/src/{docker-BvfL2BrW.js → docker-DpguQj-w.js} +14 -14
  87. package/dist/src/{docker-ExVyLp0S.js → docker-FeBni2dw.js} +13 -13
  88. package/dist/src/{esm-C03C-mv3.js → esm-7UIl0pPM.js} +2 -2
  89. package/dist/src/{esm-Cd1AjG1D.js → esm-CKWP3u_P.js} +3 -3
  90. package/dist/src/{esm-CnNt7sI4.cjs → esm-CipptfDu.cjs} +2 -2
  91. package/dist/src/{esm-CaIwzWR5.js → esm-SUNIX1x3.js} +3 -3
  92. package/dist/src/eval-7aEqoMs3.js +15 -0
  93. package/dist/src/{eval-Dg2nG4v2.js → eval-BTqTn7lb.js} +10 -10
  94. package/dist/src/{evalResult-BDMqrapS.js → evalResult-BkIhRdTe.js} +7 -7
  95. package/dist/src/evalResult-CYNHkk5A.js +12 -0
  96. package/dist/src/evalResult-CuvJeNiM.js +10 -0
  97. package/dist/src/{evalResult-BBRNtX4I.js → evalResult-DUDShQrm.js} +7 -7
  98. package/dist/src/{evalResult-fuaI8HkH.cjs → evalResult-DpARzUCb.cjs} +7 -7
  99. package/dist/src/evalResult-tGdilrWt.cjs +10 -0
  100. package/dist/src/evaluator-BBUqRhz1.js +36 -0
  101. package/dist/src/{evaluator-BhoWwp5b.js → evaluator-BcvOGaam.js} +823 -73
  102. package/dist/src/{extractor-D25qpmGX.js → extractor-C8XwivI9.js} +6 -6
  103. package/dist/src/{extractor-DReVID0K.js → extractor-CAZ2G3Kh.js} +6 -6
  104. package/dist/src/{extractor-pYLLi3wS.cjs → extractor-DG3sSfXE.cjs} +6 -6
  105. package/dist/src/{extractor-C0EVHewb.js → extractor-D_wd8jxt.js} +6 -6
  106. package/dist/src/{fetch-HaqdX7U1.js → fetch-BiYv2BZc.js} +3 -3
  107. package/dist/src/{fetch-BPkYtG8K.cjs → fetch-BnR9wSnm.cjs} +3 -3
  108. package/dist/src/{fetch-Cwxnd8zz.js → fetch-CVAtKnI3.js} +3 -3
  109. package/dist/src/{fetch-Dxpd4_sr.js → fetch-DoVRJZhJ.js} +4 -4
  110. package/dist/src/fetch-UWU706qb.js +5 -0
  111. package/dist/src/{genaiTracer-DN4dQywX.cjs → genaiTracer-BfxrvSUb.cjs} +2 -2
  112. package/dist/src/{graders-DU49_J8Y.cjs → graders-BElhu9ZY.cjs} +126 -55
  113. package/dist/src/{graders-DP7KFFo-.js → graders-BXAJ0sbS.js} +120 -55
  114. package/dist/src/graders-BxfEguVY.js +32 -0
  115. package/dist/src/graders-CzVMbEnv.js +34 -0
  116. package/dist/src/{graders-BTeBGqjJ.js → graders-DG7mhg-b.js} +120 -55
  117. package/dist/src/graders-DjCXfj0l.cjs +32 -0
  118. package/dist/src/{graders-Bj_Odv7c.js → graders-RjHF8VfG.js} +120 -55
  119. package/dist/src/graders-kHzIWOKu.js +32 -0
  120. package/dist/src/{image-BLmROtN3.cjs → image--F58eEIn.cjs} +6 -6
  121. package/dist/src/{image-B0h9VEMc.js → image-6WQXK8m8.js} +4 -4
  122. package/dist/src/{image-Dpxa1Jt6.js → image-B8b6f36E.js} +6 -6
  123. package/dist/src/{image-CHfWvljl.js → image-CoxZp9PZ.js} +6 -6
  124. package/dist/src/{image-B02ogr_b.js → image-DO0RYnjH.js} +5 -5
  125. package/dist/src/{image-DS-o-0ph.js → image-PoF6DN3x.js} +6 -6
  126. package/dist/src/{image-C1madmKh.cjs → image-fza3zuKs.cjs} +4 -4
  127. package/dist/src/{image-Bb4vWQLM.js → image-xNbw5ph2.js} +4 -4
  128. package/dist/src/index.cjs +853 -104
  129. package/dist/src/index.d.cts +573 -60
  130. package/dist/src/index.d.ts +573 -60
  131. package/dist/src/index.js +850 -102
  132. package/dist/src/{interactiveCheck-BgLZUIt3.js → interactiveCheck-BnMYOjMu.js} +2 -2
  133. package/dist/src/{knowledgeBase-B3OoKIej.js → knowledgeBase-Bi7CmDbx.js} +7 -7
  134. package/dist/src/{knowledgeBase-CYTLHOt1.js → knowledgeBase-Ce3ofVan.js} +8 -8
  135. package/dist/src/{knowledgeBase-D33Ty2l6.js → knowledgeBase-DFRXPZl_.js} +7 -7
  136. package/dist/src/{knowledgeBase-DOO_BM9b.cjs → knowledgeBase-DqrLX8fy.cjs} +7 -7
  137. package/dist/src/{litellm-AaeZcZQF.js → litellm-Bo2gQXpo.js} +14 -14
  138. package/dist/src/{litellm-NbjknEh6.js → litellm-CKiAxnoM.js} +13 -13
  139. package/dist/src/{litellm-I_hbp_dc.cjs → litellm-CnHI69aj.cjs} +14 -14
  140. package/dist/src/{litellm-TrljxD9G.js → litellm-Tc294Jhj.js} +13 -13
  141. package/dist/src/{logger-KkObSCzq.js → logger-BcJBzSSA.js} +10 -14
  142. package/dist/src/{logger-DLcq4dWf.js → logger-BnkjG2jt.js} +10 -14
  143. package/dist/src/{logger-Cp1GPUjj.cjs → logger-D5iKBpu_.cjs} +27 -13
  144. package/dist/src/{logger-CT3IKMKA.js → logger-DO8_zM18.js} +10 -14
  145. package/dist/src/{luma-ray-BS2_tY8L.js → luma-ray-0ehMPt5N.js} +10 -10
  146. package/dist/src/{luma-ray-DDsjcgZZ.js → luma-ray-C9q8rdQe.js} +9 -9
  147. package/dist/src/{luma-ray-f6I2fft-.js → luma-ray-DP0QA9qn.js} +9 -9
  148. package/dist/src/{luma-ray-Due0n7di.cjs → luma-ray-m9Ku2meV.cjs} +9 -9
  149. package/dist/src/main.js +69 -71
  150. package/dist/src/{messages-D0lx5qK7.js → messages-DJNo37Ko.js} +14 -9
  151. package/dist/src/{messages-BS17jdMx.js → messages-Dy9QecMs.js} +14 -9
  152. package/dist/src/{messages-Bs1kC7P4.cjs → messages-HJsyEh4o.cjs} +15 -10
  153. package/dist/src/{messages-ZJk778GH.js → messages-biC_ex-p.js} +14 -9
  154. package/dist/src/{modelslab-DRb74SP4.js → modelslab-B5J-ZM5c.js} +9 -9
  155. package/dist/src/{modelslab-Bx9IrZfS.js → modelslab-BI458moT.js} +10 -10
  156. package/dist/src/{modelslab-Bmni6skY.js → modelslab-BTOT8FUO.js} +9 -9
  157. package/dist/src/{modelslab-CoUX6Jc_.cjs → modelslab-IQbNg-r7.cjs} +9 -9
  158. package/dist/src/{nova-reel-bgjxilYW.js → nova-reel-BZ9y-Y5s.js} +9 -9
  159. package/dist/src/{nova-reel-C_QM18Xn.cjs → nova-reel-CE5etkv9.cjs} +9 -9
  160. package/dist/src/{nova-reel-D_W1tjMH.js → nova-reel-DEeQlnOJ.js} +10 -10
  161. package/dist/src/{nova-reel-BfPq-0Yk.js → nova-reel-Xw1SXLpg.js} +9 -9
  162. package/dist/src/{nova-sonic-De1HW5fD.js → nova-sonic-DWswpN1E.js} +7 -7
  163. package/dist/src/{nova-sonic-CFb5GYhg.js → nova-sonic-DXTLpi-r.js} +6 -6
  164. package/dist/src/{nova-sonic-zfcljeRp.cjs → nova-sonic-N0yCm0vb.cjs} +6 -6
  165. package/dist/src/{nova-sonic-DIGQNR07.js → nova-sonic-Ogqf-csn.js} +6 -6
  166. package/dist/src/{openai-DhbB7eWK.js → openai-BMcwgD5C.js} +2 -2
  167. package/dist/src/{openai-j-sE2O7r.js → openai-BcB5KlTk.js} +2 -2
  168. package/dist/src/{openai-Cuif0GEt.cjs → openai-CoxGAQwn.cjs} +2 -2
  169. package/dist/src/{openai-DElQ-fPX.js → openai-D6wITiVn.js} +2 -2
  170. package/dist/src/{openclaw-tiVYRtr-.js → openclaw-0Sv7AK3O.js} +13 -13
  171. package/dist/src/{openclaw-CSugPYAr.cjs → openclaw-CXxbKgDH.cjs} +14 -14
  172. package/dist/src/{openclaw-DuvJKEW5.js → openclaw-D1FSCps-.js} +13 -13
  173. package/dist/src/{openclaw-DiSz3I5L.js → openclaw-D2ENvu7a.js} +14 -14
  174. package/dist/src/{opencode-sdk-0j6rTWNb.js → opencode-sdk-C71Z0ehR.js} +13 -13
  175. package/dist/src/{opencode-sdk-B3CWY9h_.js → opencode-sdk-CHCs7dEb.js} +12 -12
  176. package/dist/src/{opencode-sdk-C2y6UkP2.js → opencode-sdk-DDxj4QqH.js} +12 -12
  177. package/dist/src/{opencode-sdk-BL764Jdi.cjs → opencode-sdk-WWJhnbKr.cjs} +16 -16
  178. package/dist/src/{otlpReceiver-C99PPb48.js → otlpReceiver-C9KlUtxh.js} +6 -6
  179. package/dist/src/{otlpReceiver-CdNBdbsk.js → otlpReceiver-CZL48YfC.js} +6 -6
  180. package/dist/src/{otlpReceiver-D89fR-rC.js → otlpReceiver-CavGAA6k.js} +6 -6
  181. package/dist/src/{otlpReceiver-CGq6LspY.cjs → otlpReceiver-DHKqJlsz.cjs} +6 -6
  182. package/dist/src/{providerRegistry-B0RUOLI_.js → providerRegistry-B9lh-_tx.js} +2 -2
  183. package/dist/src/{providerRegistry-Civky8Ar.cjs → providerRegistry-BTDgfV5h.cjs} +2 -2
  184. package/dist/src/{providerRegistry-CD8MEar9.js → providerRegistry-BkzVH5Ba.js} +2 -2
  185. package/dist/src/{providerRegistry-DM8rZYol.js → providerRegistry-CUWki5mQ.js} +2 -2
  186. package/dist/src/providers-BSLEaIQG.js +32 -0
  187. package/dist/src/{providers-CgKOSgTR.cjs → providers-CScd1wN6.cjs} +733 -464
  188. package/dist/src/{providers-BlqUifFg.js → providers-Ch6Mr0gn.js} +795 -526
  189. package/dist/src/{providers-Dk_6ocUX.js → providers-Cn73d5sr.js} +795 -526
  190. package/dist/src/providers-D-FnDg8k.cjs +31 -0
  191. package/dist/src/providers-DEYiFVAo.js +30 -0
  192. package/dist/src/{providers-D8lF1sqW.js → providers-DvddrgxL.js} +795 -526
  193. package/dist/src/providers-sS2WI8YD.js +30 -0
  194. package/dist/src/{pythonUtils-D6fwaDSg.js → pythonUtils-Bzwbgpbg.js} +3 -3
  195. package/dist/src/{pythonUtils-D5nxkQ0P.js → pythonUtils-Cpo0Ez1p.js} +3 -3
  196. package/dist/src/{pythonUtils-CTU3Y3lw.cjs → pythonUtils-dAVigVK-.cjs} +3 -3
  197. package/dist/src/{pythonUtils-C3py6GC1.js → pythonUtils-wIqk7zAf.js} +3 -3
  198. package/dist/src/{quiverai-CIaELU_m.js → quiverai-BeofbLVc.js} +4 -4
  199. package/dist/src/{quiverai-uH-dcTIr.js → quiverai-CCQn73lq.js} +5 -5
  200. package/dist/src/{quiverai-PdShCPox.cjs → quiverai-CcUhPIBg.cjs} +4 -4
  201. package/dist/src/{quiverai-BbOUOn2L.js → quiverai-DVSEqJiq.js} +4 -4
  202. package/dist/src/{render-Drod8m7K.js → render-BHl6QVq9.js} +3 -3
  203. package/dist/src/{responses-WNGNYe3K.js → responses-BKP_WYis.js} +14 -10
  204. package/dist/src/{responses-DIR9Ud3j.js → responses-CQb1Tj69.js} +14 -10
  205. package/dist/src/{responses-CB2jwoAr.js → responses-CgNyTPsY.js} +14 -10
  206. package/dist/src/{responses-D8SBTL64.cjs → responses-mo0KQDbu.cjs} +14 -10
  207. package/dist/src/rubyUtils-B1HXG4ej.cjs +4 -0
  208. package/dist/src/{rubyUtils-DhCAlxZr.cjs → rubyUtils-CGeUtCfW.cjs} +3 -3
  209. package/dist/src/{rubyUtils-Boc4HZzX.js → rubyUtils-CiVfln3g.js} +3 -3
  210. package/dist/src/{rubyUtils-BcuGX77l.js → rubyUtils-DECSbsfY.js} +3 -3
  211. package/dist/src/{rubyUtils-BUVePouc.js → rubyUtils-PgU-gHmx.js} +3 -3
  212. package/dist/src/rubyUtils-Rt6pKA96.js +5 -0
  213. package/dist/src/{sagemaker-CNBxx5CJ.js → sagemaker-CVv8W7so.js} +17 -17
  214. package/dist/src/{sagemaker-CemTFp2h.js → sagemaker-CqeASYE5.js} +17 -17
  215. package/dist/src/{sagemaker-YSyBXQQh.js → sagemaker-MUbD5V3v.js} +18 -18
  216. package/dist/src/{sagemaker-Cl28mZU2.cjs → sagemaker-jiw1wQa-.cjs} +17 -17
  217. package/dist/src/{scanner-BsBlNXNn.js → scanner-DVDeUz1r.js} +10 -10
  218. package/dist/src/server/index.js +854 -106
  219. package/dist/src/server-B0Xh1Gx-.js +7 -0
  220. package/dist/src/{server-C_7Ax-hA.cjs → server-BtoCXeXI.cjs} +4 -4
  221. package/dist/src/{server-VWgWb00X.js → server-CP9qKM40.js} +4 -4
  222. package/dist/src/{server-CuxBbeSY.js → server-Cns05F1j.js} +5 -5
  223. package/dist/src/server-DJTKu9IR.cjs +5 -0
  224. package/dist/src/{server-CqzrVGpF.js → server-DZ9MtCn0.js} +6 -6
  225. package/dist/src/{signal-4U3mfRvL.js → signal-C3ZTsUgi.js} +3 -3
  226. package/dist/src/{slack-DOdy_kyv.js → slack-2sdpGzbt.js} +2 -2
  227. package/dist/src/{slack-BmVAVGaK.cjs → slack-94iG3T0s.cjs} +2 -2
  228. package/dist/src/{slack-DCUPTzS2.js → slack-BR0HtO3K.js} +2 -2
  229. package/dist/src/{slack-DXMKtA-f.js → slack-DCEV-vWP.js} +2 -2
  230. package/dist/src/store-C5u6MgC8.js +6 -0
  231. package/dist/src/{store-DLlFCC4h.cjs → store-CLyU7AtI.cjs} +17 -5
  232. package/dist/src/store-CNHk-De4.cjs +5 -0
  233. package/dist/src/{store-DXilxTl-.js → store-Cj258DgL.js} +17 -5
  234. package/dist/src/{store-Dim__MDd.js → store-P8OKm19S.js} +17 -5
  235. package/dist/src/{store-CXGFv4aR.js → store-VB0GP46K.js} +17 -5
  236. package/dist/src/{tables-DLJPUdUE.js → tables-BEIFz2tM.js} +3 -3
  237. package/dist/src/{tables-DPi7wKeM.cjs → tables-BdZQEpRz.cjs} +3 -3
  238. package/dist/src/{tables-gftXzE9I.js → tables-DmzvLbeZ.js} +3 -3
  239. package/dist/src/{tables-6YKwjN9-.js → tables-kC7R5kiK.js} +3 -3
  240. package/dist/src/{telemetry-CMrFgtPB.js → telemetry-BnH5VJAU.js} +4 -4
  241. package/dist/src/{telemetry-Dthj_BbD.js → telemetry-BugWqKiu.js} +4 -4
  242. package/dist/src/{telemetry-Cps3mIU-.js → telemetry-DPXLd7UE.js} +4 -4
  243. package/dist/src/telemetry-Yig0Tino.js +7 -0
  244. package/dist/src/telemetry-p8Pwqm1i.cjs +5 -0
  245. package/dist/src/{telemetry-DaX14Chu.cjs → telemetry-re627Lre.cjs} +4 -4
  246. package/dist/src/{transcription-NLVG9MT1.cjs → transcription-BvtsrzRG.cjs} +13 -13
  247. package/dist/src/{transcription-BNYURcXg.js → transcription-CaMivnjG.js} +13 -13
  248. package/dist/src/{transcription-s6A-bNrZ.js → transcription-DOMMTu01.js} +14 -14
  249. package/dist/src/{transcription-B_OdaHp7.js → transcription-Hb3VnC4M.js} +13 -13
  250. package/dist/src/{transform-DuHvhZpj.cjs → transform-0BwoBsvO.cjs} +19 -5
  251. package/dist/src/{transform-uAytVuyX.js → transform-B2-jIv68.js} +8 -6
  252. package/dist/src/{transform-DECvGmzp.js → transform-BqPkNPYm.js} +4 -4
  253. package/dist/src/{transform-aa6tmVpZ.js → transform-BzK09Q_9.js} +4 -4
  254. package/dist/src/transform-ChNIpHz7.js +6 -0
  255. package/dist/src/{transform-D5HsjduX.js → transform-DrleutM3.js} +8 -6
  256. package/dist/src/{transform-vNucnNr0.js → transform-DyDAwEpE.js} +8 -6
  257. package/dist/src/transform-PtQ6rAE3.cjs +5 -0
  258. package/dist/src/{transform-CzK1Q0zl.cjs → transform-ZrG2dvlo.cjs} +4 -4
  259. package/dist/src/{transform-DilY9wbS.js → transform-ljLYHEPh.js} +4 -4
  260. package/dist/src/{transformersAvailability-CEVM2GNQ.js → transformersAvailability-BGkzavwb.js} +1 -1
  261. package/dist/src/{transformersAvailability-CwayUSlh.cjs → transformersAvailability-DKoRtQLy.cjs} +1 -1
  262. package/dist/src/{types-Cbd8uOMq.js → types-CIhFeUC4.js} +7 -1
  263. package/dist/src/{types-CzW2QFyi.js → types-Cd3ygw8W.js} +7 -1
  264. package/dist/src/{types-C_7nyzr1.cjs → types-D8cGDZbL.cjs} +8 -2
  265. package/dist/src/{types-DmyIJ-sR.js → types-q8GXGF65.js} +7 -1
  266. package/dist/src/{util-DGNOS1db.cjs → util--9u9UVCt.cjs} +3 -3
  267. package/dist/src/{util-ZzmqNPlg.js → util-BLvy9qfE.js} +7 -7
  268. package/dist/src/{util-C1CeHl-P.js → util-Bm3E9jpK.js} +7 -7
  269. package/dist/src/{util-BV4XUC0n.js → util-BtoGs5Cb.js} +18 -4
  270. package/dist/src/{util-BzMcevZc.cjs → util-CFj4YKIn.cjs} +18 -4
  271. package/dist/src/{util-BRYkYPTd.js → util-CMMkIxfU.js} +7 -7
  272. package/dist/src/{util-Dnmk2mBQ.js → util-CgDCK4KI.js} +18 -4
  273. package/dist/src/{util-B9vlHIIh.cjs → util-CuLo2pMR.cjs} +7 -7
  274. package/dist/src/{util-CMy69ZgQ.js → util-DM2rTn_6.js} +18 -4
  275. package/dist/src/{util-B3xGByQh.js → util-DMFeUvLz.js} +3 -3
  276. package/dist/src/{util-BHGHw5G1.js → util-DbVG-yZU.js} +3 -3
  277. package/dist/src/{util-Bv6uGDfH.js → util-vNmDL5DT.js} +3 -3
  278. package/dist/src/{utils-XiOAgly5.js → utils-CFxO9KGo.js} +2 -2
  279. package/dist/src/{utils-f2-Moju7.js → utils-DEuL4VNB.js} +2 -2
  280. package/dist/src/{utils-Cz9qXqII.cjs → utils-DKw8mrgr.cjs} +3 -3
  281. package/dist/src/{utils-dLokC-eR.js → utils-DOjD4dTC.js} +2 -2
  282. package/dist/tsconfig.tsbuildinfo +1 -1
  283. package/package.json +32 -32
  284. package/dist/src/app/assets/index-4LKxG2CG.js +0 -439
  285. package/dist/src/app/assets/index-C3zcsZFQ.css +0 -1
  286. package/dist/src/app/assets/sync-9qqYcY-B.js +0 -4
  287. package/dist/src/app/assets/vendor-markdown-0tekx3KX.js +0 -29
  288. package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
  289. package/dist/src/cache-CeUpFm3M.cjs +0 -5
  290. package/dist/src/cache-n-RCJ-hL.js +0 -6
  291. package/dist/src/cloud-BBh91EUK.js +0 -4
  292. package/dist/src/eval-B3r2CVXr.js +0 -15
  293. package/dist/src/evalResult-5xwYnECe.js +0 -12
  294. package/dist/src/evalResult-71lY93Kj.cjs +0 -10
  295. package/dist/src/evalResult-Dx5P5cIv.js +0 -10
  296. package/dist/src/evaluator-Jx6bRZV6.js +0 -36
  297. package/dist/src/fetch-BxNb_Lp3.js +0 -5
  298. package/dist/src/graders-B_pgMLS2.js +0 -34
  299. package/dist/src/graders-DErokPDO.cjs +0 -32
  300. package/dist/src/graders-DR_uNe54.js +0 -32
  301. package/dist/src/graders-w3176Wz-.js +0 -32
  302. package/dist/src/providers-B7V0njNs.js +0 -32
  303. package/dist/src/providers-BEwbhv0X.js +0 -30
  304. package/dist/src/providers-CH3C7zf7.js +0 -30
  305. package/dist/src/providers-zyB6k_38.cjs +0 -31
  306. package/dist/src/rubyUtils-BUHu6PhO.js +0 -5
  307. package/dist/src/rubyUtils-CP42kMvq.cjs +0 -4
  308. package/dist/src/server-DA4Cyrrq.js +0 -7
  309. package/dist/src/server-Dulb-4-K.cjs +0 -5
  310. package/dist/src/store-CXS-Q_91.js +0 -6
  311. package/dist/src/store-eYkaKMwq.cjs +0 -5
  312. package/dist/src/telemetry-BpMfhthR.cjs +0 -5
  313. package/dist/src/telemetry-Dw38hanS.js +0 -7
  314. package/dist/src/transform-DTGDnAzW.js +0 -6
  315. package/dist/src/transform-m3qNw4KP.cjs +0 -5
@@ -1,7 +1,7 @@
1
- import { _ as getEnvBool, i as logger } from "./logger-DLcq4dWf.js";
2
- import { o as cloudConfig } from "./fetch-HaqdX7U1.js";
3
- import { c as isLoggedIntoCloud } from "./accounts-B0pgC1oV.js";
4
- import { i as storeBlob, r as recordBlobReference } from "./blobs-BDbfYdrJ.js";
1
+ import { a as logger, b as getEnvBool } from "./logger-BnkjG2jt.js";
2
+ import { o as cloudConfig } from "./fetch-BiYv2BZc.js";
3
+ import { c as isLoggedIntoCloud } from "./accounts-Xatc0RYb.js";
4
+ import { i as storeBlob, r as recordBlobReference } from "./blobs-BUWmKWzo.js";
5
5
  //#region src/blobs/remoteUpload.ts
6
6
  function buildRemoteUrl() {
7
7
  const baseUrl = cloudConfig.getApiHost();
@@ -25,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
25
25
  const apiKey = cloudConfig.getApiKey();
26
26
  if (!url || !apiKey) return null;
27
27
  try {
28
- const { fetchWithProxy } = await import("./fetch-HaqdX7U1.js").then((n) => n.i);
28
+ const { fetchWithProxy } = await import("./fetch-BiYv2BZc.js").then((n) => n.i);
29
29
  const response = await fetchWithProxy(url, {
30
30
  method: "POST",
31
31
  headers: {
@@ -371,4 +371,4 @@ async function recordExistingBlobReferences(value, context, location) {
371
371
  //#endregion
372
372
  export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
373
373
 
374
- //# sourceMappingURL=extractor-D25qpmGX.js.map
374
+ //# sourceMappingURL=extractor-C8XwivI9.js.map
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { b as getEnvBool, o as logger } from "./logger-KkObSCzq.js";
3
- import { c as isLoggedIntoCloud } from "./accounts-Bm2D8Db9.js";
4
- import { a as cloudConfig } from "./cloud-C0dlstV_.js";
5
- import { i as storeBlob, r as recordBlobReference } from "./blobs-CMHN0Qcz.js";
2
+ import { C as getEnvBool, s as logger } from "./logger-BcJBzSSA.js";
3
+ import { c as isLoggedIntoCloud } from "./accounts-CFLK3mnD.js";
4
+ import { a as cloudConfig } from "./cloud-z8KZpUoa.js";
5
+ import { i as storeBlob, r as recordBlobReference } from "./blobs-B1JriOyi.js";
6
6
  //#region src/blobs/remoteUpload.ts
7
7
  function buildRemoteUrl() {
8
8
  const baseUrl = cloudConfig.getApiHost();
@@ -26,7 +26,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
26
26
  const apiKey = cloudConfig.getApiKey();
27
27
  if (!url || !apiKey) return null;
28
28
  try {
29
- const { fetchWithProxy } = await import("./fetch-BxNb_Lp3.js");
29
+ const { fetchWithProxy } = await import("./fetch-UWU706qb.js");
30
30
  const response = await fetchWithProxy(url, {
31
31
  method: "POST",
32
32
  headers: {
@@ -372,4 +372,4 @@ async function recordExistingBlobReferences(value, context, location) {
372
372
  //#endregion
373
373
  export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
374
374
 
375
- //# sourceMappingURL=extractor-DReVID0K.js.map
375
+ //# sourceMappingURL=extractor-CAZ2G3Kh.js.map
@@ -1,7 +1,7 @@
1
- const require_logger = require("./logger-Cp1GPUjj.cjs");
2
- const require_fetch = require("./fetch-BPkYtG8K.cjs");
3
- const require_accounts = require("./accounts-gtkH-5KX.cjs");
4
- const require_blobs = require("./blobs-D23XLin-.cjs");
1
+ const require_logger = require("./logger-D5iKBpu_.cjs");
2
+ const require_fetch = require("./fetch-BnR9wSnm.cjs");
3
+ const require_accounts = require("./accounts-BPyfpSeU.cjs");
4
+ const require_blobs = require("./blobs-C6j0bvFz.cjs");
5
5
  //#region src/blobs/remoteUpload.ts
6
6
  function buildRemoteUrl() {
7
7
  const baseUrl = require_fetch.cloudConfig.getApiHost();
@@ -25,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
25
25
  const apiKey = require_fetch.cloudConfig.getApiKey();
26
26
  if (!url || !apiKey) return null;
27
27
  try {
28
- const { fetchWithProxy } = await Promise.resolve().then(() => require("./fetch-BPkYtG8K.cjs")).then((n) => n.fetch_exports);
28
+ const { fetchWithProxy } = await Promise.resolve().then(() => require("./fetch-BnR9wSnm.cjs")).then((n) => n.fetch_exports);
29
29
  const response = await fetchWithProxy(url, {
30
30
  method: "POST",
31
31
  headers: {
@@ -388,4 +388,4 @@ Object.defineProperty(exports, "shouldAttemptRemoteBlobUpload", {
388
388
  }
389
389
  });
390
390
 
391
- //# sourceMappingURL=extractor-pYLLi3wS.cjs.map
391
+ //# sourceMappingURL=extractor-DG3sSfXE.cjs.map
@@ -1,7 +1,7 @@
1
- import { _ as getEnvBool, i as logger } from "./logger-CT3IKMKA.js";
2
- import { o as cloudConfig } from "./fetch-Cwxnd8zz.js";
3
- import { o as isLoggedIntoCloud } from "./accounts-CiBLOnA7.js";
4
- import { n as recordBlobReference, r as storeBlob } from "./blobs-CBO20krR.js";
1
+ import { a as logger, b as getEnvBool } from "./logger-DO8_zM18.js";
2
+ import { o as cloudConfig } from "./fetch-CVAtKnI3.js";
3
+ import { o as isLoggedIntoCloud } from "./accounts-B2XmGjty.js";
4
+ import { n as recordBlobReference, r as storeBlob } from "./blobs-DXTl6J3H.js";
5
5
  //#region src/blobs/remoteUpload.ts
6
6
  function buildRemoteUrl() {
7
7
  const baseUrl = cloudConfig.getApiHost();
@@ -25,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
25
25
  const apiKey = cloudConfig.getApiKey();
26
26
  if (!url || !apiKey) return null;
27
27
  try {
28
- const { fetchWithProxy } = await import("./fetch-Cwxnd8zz.js").then((n) => n.i);
28
+ const { fetchWithProxy } = await import("./fetch-CVAtKnI3.js").then((n) => n.i);
29
29
  const response = await fetchWithProxy(url, {
30
30
  method: "POST",
31
31
  headers: {
@@ -371,4 +371,4 @@ async function recordExistingBlobReferences(value, context, location) {
371
371
  //#endregion
372
372
  export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
373
373
 
374
- //# sourceMappingURL=extractor-C0EVHewb.js.map
374
+ //# sourceMappingURL=extractor-D_wd8jxt.js.map
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./chunk-DEq-mXcV.js";
2
- import { _ as getEnvBool, b as getEnvString, c as sanitizeUrl, g as getConfigDirectoryPath, i as logger, r as logRequestResponse, w as state, y as getEnvInt } from "./logger-DLcq4dWf.js";
2
+ import { C as getEnvString, D as state, S as getEnvInt, a as logger, b as getEnvBool, d as sanitizeUrl, i as logRequestResponse, y as getConfigDirectoryPath } from "./logger-BnkjG2jt.js";
3
3
  import { t as invariant } from "./invariant-vgHWClmd.js";
4
4
  import * as fs$1 from "fs";
5
5
  import * as path$1 from "path";
@@ -23,7 +23,7 @@ const HUMAN_ASSERTION_TYPE = "human";
23
23
  * Application version from package.json.
24
24
  * Injected at build time, or read from npm environment in development.
25
25
  */
26
- const VERSION = "0.121.2";
26
+ const VERSION = "0.121.3";
27
27
  /**
28
28
  * PostHog analytics key.
29
29
  * Only populated during production builds via PROMPTFOO_POSTHOG_KEY env var.
@@ -777,4 +777,4 @@ async function fetchWithRetries(url, options = {}, timeout, maxRetries) {
777
777
  //#endregion
778
778
  export { getDefaultShareViewBaseUrl as A, transformTools as C, R_ENDPOINT as D, EVENTS_ENDPOINT as E, FILE_METADATA_KEY as F, HUMAN_ASSERTION_TYPE as I, getShareViewBaseUrl as M, POSTHOG_KEY as N, TERMINAL_MAX_WIDTH as O, VERSION as P, transformToolChoice as S, CONSENT_ENDPOINT as T, isPromptfooSampleTarget as _, CloudConfig as a, parseChatPrompt as b, writeGlobalConfig as c, sleep as d, LONG_RUNNING_MODEL_TIMEOUT_MS as f, isOpenAIToolChoice as g, isOpenAIToolArray as h, fetch_exports as i, getShareApiBaseUrl as j, getDefaultPort as k, writeGlobalConfigPartial as l, calculateCost as m, fetchWithRetries as n, cloudConfig as o, REQUEST_TIMEOUT_MS as p, fetchWithTimeout as r, readGlobalConfig as s, fetchWithProxy as t, getCurrentTimestamp as u, openaiToolChoiceToBedrock as v, CLOUD_PROVIDER_PREFIX as w, toTitleCase as x, openaiToolsToBedrock as y };
779
779
 
780
- //# sourceMappingURL=fetch-HaqdX7U1.js.map
780
+ //# sourceMappingURL=fetch-BiYv2BZc.js.map
@@ -1,4 +1,4 @@
1
- const require_logger = require("./logger-Cp1GPUjj.cjs");
1
+ const require_logger = require("./logger-D5iKBpu_.cjs");
2
2
  const require_invariant = require("./invariant-kfQ8Bu82.cjs");
3
3
  let fs = require("fs");
4
4
  fs = require_logger.__toESM(fs);
@@ -25,7 +25,7 @@ const HUMAN_ASSERTION_TYPE = "human";
25
25
  * Application version from package.json.
26
26
  * Injected at build time, or read from npm environment in development.
27
27
  */
28
- const VERSION = "0.121.2";
28
+ const VERSION = "0.121.3";
29
29
  /**
30
30
  * PostHog analytics key.
31
31
  * Only populated during production builds via PROMPTFOO_POSTHOG_KEY env var.
@@ -985,4 +985,4 @@ Object.defineProperty(exports, "writeGlobalConfigPartial", {
985
985
  }
986
986
  });
987
987
 
988
- //# sourceMappingURL=fetch-BPkYtG8K.cjs.map
988
+ //# sourceMappingURL=fetch-BnR9wSnm.cjs.map
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./chunk-DEq-mXcV.js";
2
- import { _ as getEnvBool, b as getEnvString, c as sanitizeUrl, g as getConfigDirectoryPath, i as logger, r as logRequestResponse, w as state, y as getEnvInt } from "./logger-CT3IKMKA.js";
2
+ import { C as getEnvString, D as state, S as getEnvInt, a as logger, b as getEnvBool, d as sanitizeUrl, i as logRequestResponse, y as getConfigDirectoryPath } from "./logger-DO8_zM18.js";
3
3
  import { t as invariant } from "./invariant-Ddh24eXh.js";
4
4
  import * as fs$1 from "fs";
5
5
  import * as path$1 from "path";
@@ -23,7 +23,7 @@ const HUMAN_ASSERTION_TYPE = "human";
23
23
  * Application version from package.json.
24
24
  * Injected at build time, or read from npm environment in development.
25
25
  */
26
- const VERSION = "0.121.2";
26
+ const VERSION = "0.121.3";
27
27
  /**
28
28
  * PostHog analytics key.
29
29
  * Only populated during production builds via PROMPTFOO_POSTHOG_KEY env var.
@@ -774,4 +774,4 @@ async function fetchWithRetries(url, options = {}, timeout, maxRetries) {
774
774
  //#endregion
775
775
  export { getShareApiBaseUrl as A, transformTools as C, R_ENDPOINT as D, EVENTS_ENDPOINT as E, HUMAN_ASSERTION_TYPE as F, POSTHOG_KEY as M, VERSION as N, TERMINAL_MAX_WIDTH as O, FILE_METADATA_KEY as P, transformToolChoice as S, CONSENT_ENDPOINT as T, isPromptfooSampleTarget as _, CloudConfig as a, parseChatPrompt as b, writeGlobalConfig as c, sleep as d, LONG_RUNNING_MODEL_TIMEOUT_MS as f, isOpenAIToolChoice as g, isOpenAIToolArray as h, fetch_exports as i, getShareViewBaseUrl as j, getDefaultShareViewBaseUrl as k, writeGlobalConfigPartial as l, calculateCost as m, fetchWithRetries as n, cloudConfig as o, REQUEST_TIMEOUT_MS as p, fetchWithTimeout as r, readGlobalConfig as s, fetchWithProxy as t, getCurrentTimestamp as u, openaiToolChoiceToBedrock as v, CLOUD_PROVIDER_PREFIX as w, toTitleCase as x, openaiToolsToBedrock as y };
776
776
 
777
- //# sourceMappingURL=fetch-Cwxnd8zz.js.map
777
+ //# sourceMappingURL=fetch-CVAtKnI3.js.map
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { C as getEnvString, O as state, S as getEnvInt, a as logRequestResponse, b as getEnvBool, o as logger, u as sanitizeUrl } from "./logger-KkObSCzq.js";
2
+ import { C as getEnvBool, E as getEnvString, T as getEnvInt, j as state, o as logRequestResponse, p as sanitizeUrl, s as logger } from "./logger-BcJBzSSA.js";
3
3
  import { t as invariant } from "./invariant-BtWWVVhl.js";
4
- import { a as cloudConfig } from "./cloud-C0dlstV_.js";
4
+ import { a as cloudConfig } from "./cloud-z8KZpUoa.js";
5
5
  import { Agent, ProxyAgent } from "undici";
6
6
  import path from "path";
7
7
  import yaml from "js-yaml";
@@ -22,7 +22,7 @@ const HUMAN_ASSERTION_TYPE = "human";
22
22
  * Application version from package.json.
23
23
  * Injected at build time, or read from npm environment in development.
24
24
  */
25
- const VERSION = "0.121.2";
25
+ const VERSION = "0.121.3";
26
26
  /**
27
27
  * PostHog analytics key.
28
28
  * Only populated during production builds via PROMPTFOO_POSTHOG_KEY env var.
@@ -595,4 +595,4 @@ async function fetchWithRetries(url, options = {}, timeout, maxRetries) {
595
595
  //#endregion
596
596
  export { getShareApiBaseUrl as A, CLOUD_PROVIDER_PREFIX as C, TERMINAL_MAX_WIDTH as D, R_ENDPOINT as E, HUMAN_ASSERTION_TYPE as F, POSTHOG_KEY as M, VERSION as N, getDefaultPort as O, FILE_METADATA_KEY as P, transformTools as S, EVENTS_ENDPOINT as T, openaiToolChoiceToBedrock as _, handleRateLimit as a, toTitleCase as b, getCurrentTimestamp as c, LONG_RUNNING_MODEL_TIMEOUT_MS as d, REQUEST_TIMEOUT_MS as f, isPromptfooSampleTarget as g, isOpenAIToolChoice as h, fetchWithTimeout as i, getShareViewBaseUrl as j, getDefaultShareViewBaseUrl as k, sleep as l, isOpenAIToolArray as m, fetchWithProxy as n, isRateLimited as o, calculateCost as p, fetchWithRetries as r, isTransientError as s, clearAgentCache as t, sleepWithAbort as u, openaiToolsToBedrock as v, CONSENT_ENDPOINT as w, transformToolChoice as x, parseChatPrompt as y };
597
597
 
598
- //# sourceMappingURL=fetch-Dxpd4_sr.js.map
598
+ //# sourceMappingURL=fetch-DoVRJZhJ.js.map
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import "./logger-BcJBzSSA.js";
3
+ import { n as fetchWithProxy } from "./fetch-DoVRJZhJ.js";
4
+ import "./cloud-z8KZpUoa.js";
5
+ export { fetchWithProxy };
@@ -1,4 +1,4 @@
1
- require("./logger-Cp1GPUjj.cjs");
1
+ require("./logger-D5iKBpu_.cjs");
2
2
  let _opentelemetry_api = require("@opentelemetry/api");
3
3
  //#region src/tracing/genaiTracer.ts
4
4
  const TRACER_NAME = "promptfoo.providers";
@@ -265,4 +265,4 @@ Object.defineProperty(exports, "withGenAISpan", {
265
265
  }
266
266
  });
267
267
 
268
- //# sourceMappingURL=genaiTracer-DN4dQywX.cjs.map
268
+ //# sourceMappingURL=genaiTracer-BfxrvSUb.cjs.map
@@ -1,24 +1,24 @@
1
- const require_logger = require("./logger-Cp1GPUjj.cjs");
1
+ const require_logger = require("./logger-D5iKBpu_.cjs");
2
2
  const require_invariant = require("./invariant-kfQ8Bu82.cjs");
3
- const require_esm = require("./esm-CnNt7sI4.cjs");
4
- const require_pythonUtils = require("./pythonUtils-CTU3Y3lw.cjs");
3
+ const require_esm = require("./esm-CipptfDu.cjs");
4
+ const require_pythonUtils = require("./pythonUtils-dAVigVK-.cjs");
5
5
  const require_fileExtensions = require("./fileExtensions-bYh77CN8.cjs");
6
- const require_transform = require("./transform-CzK1Q0zl.cjs");
7
- const require_types = require("./types-C_7nyzr1.cjs");
8
- const require_util = require("./util-B9vlHIIh.cjs");
9
- const require_fetch = require("./fetch-BPkYtG8K.cjs");
10
- const require_cache = require("./cache-Dh5WtQps.cjs");
11
- const require_providers = require("./providers-CgKOSgTR.cjs");
12
- const require_utils = require("./utils-Cz9qXqII.cjs");
13
- const require_createHash = require("./createHash-CfZSc0b4.cjs");
14
- const require_chat = require("./chat-CgF-J-Jj.cjs");
6
+ const require_transform = require("./transform-ZrG2dvlo.cjs");
7
+ const require_types = require("./types-D8cGDZbL.cjs");
8
+ const require_util = require("./util-CuLo2pMR.cjs");
9
+ const require_fetch = require("./fetch-BnR9wSnm.cjs");
10
+ const require_cache = require("./cache-C5yFZ4gC.cjs");
11
+ const require_providers = require("./providers-CScd1wN6.cjs");
12
+ const require_utils = require("./utils-DKw8mrgr.cjs");
13
+ const require_createHash = require("./createHash-BYwImsYv.cjs");
14
+ const require_chat = require("./chat-CM8qWR3_.cjs");
15
15
  const require_tokenUsageUtils = require("./tokenUsageUtils-bVa1ga6f.cjs");
16
- const require_transform$1 = require("./transform-DuHvhZpj.cjs");
17
- const require_messages = require("./messages-Bs1kC7P4.cjs");
18
- const require_responses = require("./responses-D8SBTL64.cjs");
19
- const require_completion = require("./completion-CM6oK8PS.cjs");
20
- const require_accounts = require("./accounts-gtkH-5KX.cjs");
21
- const require_server = require("./server-C_7Ax-hA.cjs");
16
+ const require_transform$1 = require("./transform-0BwoBsvO.cjs");
17
+ const require_messages = require("./messages-HJsyEh4o.cjs");
18
+ const require_responses = require("./responses-mo0KQDbu.cjs");
19
+ const require_completion = require("./completion-DlXUhj5c.cjs");
20
+ const require_accounts = require("./accounts-BPyfpSeU.cjs");
21
+ const require_server = require("./server-BtoCXeXI.cjs");
22
22
  let fs = require("fs");
23
23
  fs = require_logger.__toESM(fs);
24
24
  let path = require("path");
@@ -317,6 +317,37 @@ const DEFAULT_WEB_SEARCH_PROMPT = JSON.stringify([{
317
317
  role: "user",
318
318
  content: "<Output>\n{{ output }}\n</Output>\n<Rubric>\n{{ rubric }}\n</Rubric>"
319
319
  }]);
320
+ const TRAJECTORY_GOAL_SUCCESS_PROMPT = JSON.stringify([{
321
+ role: "system",
322
+ content: dedent.default`You are grading whether an AI agent successfully completed a goal based on its final output and a summarized execution trajectory. You respond with a JSON object with this structure: {reason: string, pass: boolean, score: number}
323
+
324
+ Judge end-to-end success, not stylistic perfection.
325
+ Use the trajectory as evidence for what the agent actually did.
326
+ Give partial credit when the agent made progress but did not fully achieve the goal.
327
+
328
+ Examples:
329
+
330
+ <Goal>Find the order status and tell the user whether it has shipped</Goal>
331
+ <Trajectory>{"stepCount":2,"steps":[{"index":1,"type":"tool","name":"search_orders"},{"index":2,"type":"message","name":"agent response"}]}</Trajectory>
332
+ <Output>Your order shipped yesterday and should arrive on Tuesday.</Output>
333
+ {"reason":"The agent used the order lookup tool and gave the user the shipping status, so the goal was achieved.","pass":true,"score":1.0}
334
+
335
+ <Goal>Find the order status and tell the user whether it has shipped</Goal>
336
+ <Trajectory>{"stepCount":1,"steps":[{"index":1,"type":"message","name":"agent response"}]}</Trajectory>
337
+ <Output>I cannot check your order right now.</Output>
338
+ {"reason":"The agent did not show evidence of checking the order and did not provide the requested status.","pass":false,"score":0.0}`
339
+ }, {
340
+ role: "user",
341
+ content: dedent.default`<Goal>
342
+ {{ goal }}
343
+ </Goal>
344
+ <Trajectory>
345
+ {{ trajectory }}
346
+ </Trajectory>
347
+ <Output>
348
+ {{ output }}
349
+ </Output>`
350
+ }]);
320
351
  //#endregion
321
352
  //#region src/prompts/processors/csv.ts
322
353
  /**
@@ -1524,45 +1555,31 @@ async function renderLlmRubricPrompt(rubricPrompt, context) {
1524
1555
  } catch {}
1525
1556
  return nunjucks.renderString(rubricPrompt, processedContext);
1526
1557
  }
1527
- async function matchesLlmRubric(rubric, llmOutput, grading, vars, assertion, options, providerCallContext) {
1528
- if (!grading) throw new Error("Cannot grade output without grading config. Specify --grader option or grading config.");
1529
- if (!grading.rubricPrompt && !require_logger.state.config?.redteam?.provider && require_logger.state.config?.redteam && require_server.shouldGenerateRemote()) return {
1530
- ...await doRemoteGrading({
1531
- task: "llm-rubric",
1532
- rubric,
1533
- output: llmOutput,
1534
- vars: vars || {}
1535
- }),
1536
- assertion
1537
- };
1538
- const prompt = await renderLlmRubricPrompt(await loadRubricPrompt(grading?.rubricPrompt, DEFAULT_GRADING_PROMPT), {
1539
- output: tryParse(llmOutput),
1540
- rubric,
1541
- ...vars || {}
1542
- });
1543
- const defaultProviders = await getDefaultProviders();
1544
- const defaultProvider = defaultProviders.llmRubricProvider || defaultProviders.gradingJsonProvider;
1545
- const resp = await callProviderWithContext(await getAndCheckProvider("text", grading.provider, defaultProvider, "llm-rubric check"), prompt, "llm-rubric", {
1546
- output: tryParse(llmOutput),
1547
- rubric,
1548
- ...vars || {}
1549
- }, providerCallContext);
1550
- if (resp.error || !resp.output) {
1551
- if (options?.throwOnError) throw new LlmRubricProviderError(resp.error || "No output");
1552
- return fail(resp.error || "No output", resp.tokenUsage);
1553
- }
1558
+ function parseJsonGradingResponse(label, resp) {
1554
1559
  let jsonObjects = [];
1555
1560
  if (typeof resp.output === "string") try {
1556
1561
  jsonObjects = require_logger.extractJsonObjects(resp.output);
1557
- if (jsonObjects.length === 0) return fail("Could not extract JSON from llm-rubric response", resp.tokenUsage);
1562
+ if (jsonObjects.length === 0) return { failure: fail(`Could not extract JSON from ${label} response`, resp.tokenUsage) };
1558
1563
  } catch (err) {
1559
- return fail(`llm-rubric produced malformed response: ${err}\n\n${resp.output}`, resp.tokenUsage);
1564
+ return { failure: fail(`${label} produced malformed response: ${err}\n\n${resp.output}`, resp.tokenUsage) };
1560
1565
  }
1561
1566
  else if (typeof resp.output === "object") jsonObjects = [resp.output];
1562
- else return fail(`llm-rubric produced malformed response - output must be string or object. Output: ${JSON.stringify(resp.output)}`, resp.tokenUsage);
1563
- if (!Array.isArray(jsonObjects) || jsonObjects.length === 0) return fail(`llm-rubric produced malformed response - We were not able to parse the response as JSON. Output: ${JSON.stringify(resp.output)}`, resp.tokenUsage);
1567
+ else return { failure: fail(`${label} produced malformed response - output must be string or object. Output: ${JSON.stringify(resp.output)}`, resp.tokenUsage) };
1564
1568
  const parsed = jsonObjects[0];
1565
- if (typeof parsed !== "object" || parsed === null || parsed === void 0) return fail(`llm-rubric produced malformed response. We were not able to parse the response as JSON. Output: ${JSON.stringify(resp.output)}`, resp.tokenUsage);
1569
+ if (typeof parsed !== "object" || parsed === null || parsed === void 0) return { failure: fail(`${label} produced malformed response. We were not able to parse the response as JSON. Output: ${JSON.stringify(resp.output)}`, resp.tokenUsage) };
1570
+ return { parsed };
1571
+ }
1572
+ async function runJsonGradingPrompt({ assertion, checkName, defaultPrompt, grading, label, providerCallContext, throwOnError, vars }) {
1573
+ const prompt = await renderLlmRubricPrompt(await loadRubricPrompt(grading.rubricPrompt, defaultPrompt), vars);
1574
+ const defaultProviders = await getDefaultProviders();
1575
+ const defaultProvider = defaultProviders.llmRubricProvider || defaultProviders.gradingJsonProvider;
1576
+ const resp = await callProviderWithContext(await getAndCheckProvider("text", grading.provider, defaultProvider, checkName), prompt, label, vars, providerCallContext);
1577
+ if (resp.error || !resp.output) {
1578
+ if (throwOnError) throw new Error(resp.error || "No output");
1579
+ return fail(resp.error || "No output", resp.tokenUsage);
1580
+ }
1581
+ const { parsed, failure } = parseJsonGradingResponse(label, resp);
1582
+ if (!parsed) return failure;
1566
1583
  let pass = parsed.pass ?? true;
1567
1584
  if (typeof pass !== "boolean") pass = /^(true|yes|pass|y)$/i.test(String(pass));
1568
1585
  let score = parsed.score;
@@ -1590,6 +1607,54 @@ async function matchesLlmRubric(rubric, llmOutput, grading, vars, assertion, opt
1590
1607
  metadata: { renderedGradingPrompt: prompt }
1591
1608
  };
1592
1609
  }
1610
+ async function matchesLlmRubric(rubric, llmOutput, grading, vars, assertion, options, providerCallContext) {
1611
+ if (!grading) throw new Error("Cannot grade output without grading config. Specify --grader option or grading config.");
1612
+ if (!grading.rubricPrompt && !require_logger.state.config?.redteam?.provider && require_logger.state.config?.redteam && require_server.shouldGenerateRemote()) return {
1613
+ ...await doRemoteGrading({
1614
+ task: "llm-rubric",
1615
+ rubric,
1616
+ output: llmOutput,
1617
+ vars: vars || {}
1618
+ }),
1619
+ assertion
1620
+ };
1621
+ try {
1622
+ return await runJsonGradingPrompt({
1623
+ assertion,
1624
+ checkName: "llm-rubric check",
1625
+ defaultPrompt: DEFAULT_GRADING_PROMPT,
1626
+ grading,
1627
+ label: "llm-rubric",
1628
+ providerCallContext,
1629
+ throwOnError: options?.throwOnError,
1630
+ vars: {
1631
+ output: tryParse(llmOutput),
1632
+ rubric,
1633
+ ...vars || {}
1634
+ }
1635
+ });
1636
+ } catch (error) {
1637
+ if (options?.throwOnError) throw new LlmRubricProviderError(error.message || "No output");
1638
+ throw error;
1639
+ }
1640
+ }
1641
+ async function matchesTrajectoryGoalSuccess(goal, trajectory, llmOutput, grading, vars, assertion, providerCallContext) {
1642
+ if (!grading) throw new Error("Cannot grade output without grading config. Specify --grader option or grading config.");
1643
+ return runJsonGradingPrompt({
1644
+ assertion,
1645
+ checkName: "trajectory:goal-success check",
1646
+ defaultPrompt: TRAJECTORY_GOAL_SUCCESS_PROMPT,
1647
+ grading,
1648
+ label: "trajectory:goal-success",
1649
+ providerCallContext,
1650
+ vars: {
1651
+ ...vars || {},
1652
+ goal,
1653
+ output: tryParse(llmOutput),
1654
+ trajectory
1655
+ }
1656
+ });
1657
+ }
1593
1658
  async function matchesPiScore(renderedValue, llmInput, llmOutput, assertion) {
1594
1659
  return {
1595
1660
  ...await doRemoteScoringWithPi({
@@ -2097,7 +2162,7 @@ async function selectMaxScore(outputs, resultsWithGradingResults, assertion) {
2097
2162
  let totalWeight = 0;
2098
2163
  relevantResults.forEach((componentResult) => {
2099
2164
  const assertionType = componentResult.assertion?.type || "unknown";
2100
- const weight = options.weights[assertionType] !== void 0 ? options.weights[assertionType] : 1;
2165
+ const weight = options.weights[assertionType] === void 0 ? 1 : options.weights[assertionType];
2101
2166
  const score = componentResult.score || 0;
2102
2167
  totalWeightedScore += score * weight;
2103
2168
  totalWeight += weight;
@@ -2347,9 +2412,9 @@ async function fetchHuggingFaceDataset(datasetPath, limit) {
2347
2412
  while (true) {
2348
2413
  const requestParams = new URLSearchParams(queryParams);
2349
2414
  requestParams.set("offset", offset.toString());
2350
- const remainingUserLimit = userLimit !== void 0 ? Math.max(userLimit - offset, 0) : void 0;
2351
- const remainingDatasetRows = totalRows !== void 0 ? Math.max(totalRows - offset, 0) : void 0;
2352
- const requestedLength = remainingUserLimit !== void 0 ? Math.min(pageSize, remainingUserLimit) : remainingDatasetRows !== void 0 ? Math.min(pageSize, remainingDatasetRows) : pageSize;
2415
+ const remainingUserLimit = userLimit === void 0 ? void 0 : Math.max(userLimit - offset, 0);
2416
+ const remainingDatasetRows = totalRows === void 0 ? void 0 : Math.max(totalRows - offset, 0);
2417
+ const requestedLength = remainingUserLimit === void 0 ? remainingDatasetRows === void 0 ? pageSize : Math.min(pageSize, remainingDatasetRows) : Math.min(pageSize, remainingUserLimit);
2353
2418
  if (requestedLength <= 0) {
2354
2419
  require_logger.logger.debug(`[HF Dataset] No remaining rows to fetch for ${owner}/${repo} (offset ${offset})`);
2355
2420
  break;
@@ -13821,6 +13886,12 @@ Object.defineProperty(exports, "matchesSimilarity", {
13821
13886
  return matchesSimilarity;
13822
13887
  }
13823
13888
  });
13889
+ Object.defineProperty(exports, "matchesTrajectoryGoalSuccess", {
13890
+ enumerable: true,
13891
+ get: function() {
13892
+ return matchesTrajectoryGoalSuccess;
13893
+ }
13894
+ });
13824
13895
  Object.defineProperty(exports, "processFileReference", {
13825
13896
  enumerable: true,
13826
13897
  get: function() {
@@ -13870,4 +13941,4 @@ Object.defineProperty(exports, "selectMaxScore", {
13870
13941
  }
13871
13942
  });
13872
13943
 
13873
- //# sourceMappingURL=graders-DU49_J8Y.cjs.map
13944
+ //# sourceMappingURL=graders-BElhu9ZY.cjs.map