promptfoo 0.121.5 → 0.121.8
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.
- package/dist/src/{ListApp-BRUsT43Y.js → ListApp-DLmM02JS.js} +1 -1
- package/dist/src/{accounts-BIFntVWB.cjs → accounts-BVz5gHLK.cjs} +16 -10
- package/dist/src/{accounts-bnyHT7Ju.js → accounts-BWjqwsrf.js} +12 -7
- package/dist/src/{accounts-CLJHCDDb.js → accounts-D6IBfEE0.js} +13 -8
- package/dist/src/{accounts-CaLNYnf7.js → accounts-DAv_0iE7.js} +12 -7
- package/dist/src/{agentic-utils-B5krlibj.js → agentic-utils-BJKAkz2e.js} +2 -2
- package/dist/src/{agentic-utils-D2x0wGhB.cjs → agentic-utils-C-A92xhn.cjs} +8 -7
- package/dist/src/{agentic-utils-Ba67xmgs.js → agentic-utils-DmoS_S4B.js} +2 -2
- package/dist/src/{agentic-utils-BclbiXiq.js → agentic-utils-GdToujHu.js} +2 -2
- package/dist/src/{agents-BGqaTDnr.js → agents-2C8NN6I1.js} +20 -9
- package/dist/src/{agents-n6vPqV3i.js → agents-BMAiSR2o.js} +4 -4
- package/dist/src/{agents-BYdMl1UE.js → agents-C-PGaxwj.js} +20 -9
- package/dist/src/{agents-BV9yFpXX.js → agents-C98cz5pl.js} +20 -9
- package/dist/src/{agents-WULPVjbH.cjs → agents-DB8Ub2Ld.cjs} +7 -6
- package/dist/src/{agents-DhxWMCtH.js → agents-Dwshy2H8.js} +4 -4
- package/dist/src/{agents-emVcx3yh.js → agents-mlKjx-cK.js} +2 -2
- package/dist/src/{agents-DiWmQYH9.cjs → agents-n2ej-c4H.cjs} +21 -10
- package/dist/src/{aimlapi-DR4pgeiC.js → aimlapi-Bi-laUlp.js} +6 -6
- package/dist/src/{aimlapi-BzLjZI_m.cjs → aimlapi-D0OFV4Vj.cjs} +7 -7
- package/dist/src/{aimlapi-BxqK9HF_.js → aimlapi-WyUK0wYy.js} +6 -6
- package/dist/src/{aimlapi-uPGp0Zdo.js → aimlapi-v-63ZjEI.js} +6 -6
- package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -1
- package/dist/src/app/assets/Report-sCXUfaWo.js +1 -0
- package/dist/src/app/assets/index-BopgkZEh.js +388 -0
- package/dist/src/app/assets/index-yhM8y1PP.css +1 -0
- package/dist/src/app/assets/{scroll-timeline-D9IT_e8Z.js → scroll-timeline-RpeTwOvs.js} +1 -1
- package/dist/src/app/assets/sync-5gq6fmG4.js +4 -0
- package/dist/src/app/assets/vendor-charts-BL9OMNU7.js +36 -0
- package/dist/src/app/assets/{vendor-markdown-Ch00wnNI.js → vendor-markdown-BYsQqn7Z.js} +10 -10
- package/dist/src/app/assets/{vendor-react-CVvmk1UB.js → vendor-react-CqWgVW6T.js} +2 -2
- package/dist/src/app/assets/{vendor-utils-BnEYbx2Q.js → vendor-utils-BHPO71pu.js} +1 -1
- package/dist/src/app/index.html +6 -6
- package/dist/src/{audio-CScmnmEB.js → audio-DnEIHWZR.js} +3 -3
- package/dist/src/{audio-Da8U9IS5.js → audio-heR0mu0n.js} +3 -3
- package/dist/src/{audio-BvpTOArF.js → audio-wafFO1wn.js} +3 -3
- package/dist/src/{audio-C0vDeS0j.cjs → audio-x44tsxIo.cjs} +4 -4
- package/dist/src/authoritativeMarkupInjection-2G3Be6oL.cjs +74 -0
- package/dist/src/authoritativeMarkupInjection-81PPynHR.js +75 -0
- package/dist/src/authoritativeMarkupInjection-D9O70HPi.js +74 -0
- package/dist/src/authoritativeMarkupInjection-PxSf3Rh8.js +74 -0
- package/dist/src/{base-dYsl2hmL.js → base-0Gzzue9Z.js} +4 -3
- package/dist/src/{base-BOMaNEes.js → base-Bp4c52YZ.js} +4 -3
- package/dist/src/{base-BTux96b1.js → base-BuNn-YBX.js} +4 -3
- package/dist/src/{base-Tw6uhH8K.cjs → base-BzdS8tod.cjs} +5 -4
- package/dist/src/bestOfN-BHiOjeaq.js +136 -0
- package/dist/src/bestOfN-CdkNPPbX.js +136 -0
- package/dist/src/bestOfN-ClUSOhN0.js +137 -0
- package/dist/src/bestOfN-DWwXEg1h.cjs +140 -0
- package/dist/src/{blobs-B95F_7vE.cjs → blobs-B0977K1O.cjs} +7 -6
- package/dist/src/{blobs-D_gg8nbm.js → blobs-CeFdPn_T.js} +2 -2
- package/dist/src/{blobs-DjLby-uP.js → blobs-DODuTK-a.js} +2 -2
- package/dist/src/{blobs-BW4U31ue.js → blobs-Dwef1Ao1.js} +2 -2
- package/dist/src/cache-BKYi3kAA.js +3 -0
- package/dist/src/{cache-BI5BY7ey.js → cache-BR77mdIR.js} +127 -11
- package/dist/src/{cache-Cr-qWIbP.js → cache-CrioYnaa.js} +125 -10
- package/dist/src/{cache-Bzttsk0X.js → cache-DdriHsNX.js} +125 -10
- package/dist/src/{cache-DGg-yTZG.cjs → cache-h5MWOBZI.cjs} +135 -25
- package/dist/src/{chat-Cx_LkwvZ.js → chat-BBEnnpQk.js} +11 -11
- package/dist/src/{chat-DChSH_Es.js → chat-BSos6PvZ.js} +9 -9
- package/dist/src/{chat-aMQZw6R7.js → chat-Bnt7ieO0.js} +4 -4
- package/dist/src/{chat-vYqqv1gP.cjs → chat-DSyYuTYT.cjs} +14 -13
- package/dist/src/{chat-BLOdH60v.js → chat-DTdf-J5Q.js} +11 -11
- package/dist/src/{chat-DH97tVV9.cjs → chat-Dq3DomYU.cjs} +6 -6
- package/dist/src/{chat-DG2LkwLq.js → chat-g5QLeLOo.js} +4 -4
- package/dist/src/{chat-D9nudO9b.js → chat-mTTuUAYb.js} +4 -4
- package/dist/src/{chatkit-B8X34dQc.js → chatkit-B6DWi70Q.js} +3 -3
- package/dist/src/{chatkit-D44VyUyB.cjs → chatkit-BYveR48_.cjs} +6 -5
- package/dist/src/{chatkit-BXu42Qwt.js → chatkit-fARZwEfV.js} +3 -3
- package/dist/src/{chatkit-CbMRoeYw.js → chatkit-lb6FK02w.js} +1 -1
- package/dist/src/{claude-agent-sdk-DYv_AJ8u.js → claude-agent-sdk-BGUac_kS.js} +213 -66
- package/dist/src/{claude-agent-sdk-BjriSVRZ.js → claude-agent-sdk-BP__YGfK.js} +213 -66
- package/dist/src/{claude-agent-sdk-BzNZeZ0N.js → claude-agent-sdk-Ddgx5BIQ.js} +212 -65
- package/dist/src/{claude-agent-sdk-BRq0bbIK.cjs → claude-agent-sdk-n2XcEclh.cjs} +219 -71
- package/dist/src/cloud-DiWbUiVP.js +3 -0
- package/dist/src/{cloud-Da0bofJd.js → cloud-DqF5N1aJ.js} +2 -2
- package/dist/src/{cloudflare-ai-CXC4b1EU.js → cloudflare-ai-BGamMotN.js} +4 -4
- package/dist/src/{cloudflare-ai-DGOwgexC.js → cloudflare-ai-BwW8W-w7.js} +4 -4
- package/dist/src/{cloudflare-ai-DJv5qnyb.cjs → cloudflare-ai-DCRGnsyL.cjs} +6 -6
- package/dist/src/{cloudflare-ai-CyBoIs1Q.js → cloudflare-ai-sD26nP6V.js} +4 -4
- package/dist/src/{cloudflare-gateway-TJkVrZlB.js → cloudflare-gateway-2lnOT4qM.js} +3 -3
- package/dist/src/{cloudflare-gateway-D-dnkzCF.js → cloudflare-gateway-B1-8KNCt.js} +3 -3
- package/dist/src/{cloudflare-gateway-DKVjkDav.cjs → cloudflare-gateway-CCC1DFrC.cjs} +5 -5
- package/dist/src/{cloudflare-gateway-1sAoOyft.js → cloudflare-gateway-DOghiU6r.js} +3 -3
- package/dist/src/{codex-app-server-CCLjqCh9.js → codex-app-server-BWeWamEb.js} +19 -4
- package/dist/src/{codex-app-server-CCe0TiDc.js → codex-app-server-DyQB1P0p.js} +20 -5
- package/dist/src/{codex-app-server-VMRnjZ68.cjs → codex-app-server-R9u_G7W9.cjs} +27 -11
- package/dist/src/{codex-app-server-CPW1LFwh.js → codex-app-server-ZQRJSJjU.js} +20 -5
- package/dist/src/{codex-sdk-Bzb_TqX9.js → codex-sdk-B62H0fe7.js} +16 -5
- package/dist/src/{codex-sdk-Bd8UbO9q.cjs → codex-sdk-BRPUvJG8.cjs} +31 -12
- package/dist/src/{codex-sdk-BgEFQ70r.js → codex-sdk-Dio1zJBS.js} +18 -7
- package/dist/src/codex-sdk-DxukZs_K.js +3 -0
- package/dist/src/{codex-sdk-DfvDTN33.js → codex-sdk-iEmW1eS2.js} +18 -7
- package/dist/src/{cometapi-B5ImDlSm.js → cometapi--hh7dESS.js} +7 -7
- package/dist/src/{cometapi-CC7hWxmX.js → cometapi-C7yWNGqt.js} +7 -7
- package/dist/src/{cometapi-CCbpHkuF.js → cometapi-CSIi16a0.js} +7 -7
- package/dist/src/{cometapi-BgAkuYCw.cjs → cometapi-sZgBZtbU.cjs} +8 -8
- package/dist/src/{completion-DtQ72Bm3.cjs → completion-CWtqdn3z.cjs} +6 -6
- package/dist/src/{completion-Vq_ad618.js → completion-DT8cxo9T.js} +4 -4
- package/dist/src/{completion-2iuYVxwi.js → completion-DUScduXp.js} +5 -5
- package/dist/src/{completion-CrD6MQ93.js → completion-D_2IOAoS.js} +5 -5
- package/dist/src/constants-BjJV0cRr.js +6 -0
- package/dist/src/constants-DH5XYLKZ.js +7 -0
- package/dist/src/constants-DZGEFLsu.js +6 -0
- package/dist/src/constants-a2kYssQk.cjs +11 -0
- package/dist/src/{createHash-4gFQpDDv.js → createHash-BtbSX3mj.js} +1 -1
- package/dist/src/{createHash-Un4Q_huE.js → createHash-CGVzWdjj.js} +1 -1
- package/dist/src/{createHash-VvBIc-AW.cjs → createHash-CSiqnK5P.cjs} +2 -2
- package/dist/src/{createHash-DPpsZgFF.js → createHash-CgRvs4Fn.js} +1 -1
- package/dist/src/crescendo-B41TwUHM.js +722 -0
- package/dist/src/crescendo-Bfic7KC4.js +724 -0
- package/dist/src/crescendo-DXFB7rHP.cjs +725 -0
- package/dist/src/crescendo-DvvYxMLA.js +723 -0
- package/dist/src/custom-BdzuqFTN.js +619 -0
- package/dist/src/custom-Cf5Q6r-P.js +618 -0
- package/dist/src/custom-DLgufezC.js +620 -0
- package/dist/src/custom-LEXHCRe3.cjs +621 -0
- package/dist/src/{docker--3qzPa-6.js → docker-BOSO_6hK.js} +5 -5
- package/dist/src/{docker-D3AY-5F5.cjs → docker-D0h2vFrc.cjs} +6 -6
- package/dist/src/{docker-DCsCDvwM.js → docker-D2TWGyTP.js} +5 -5
- package/dist/src/{docker-Dorv4_Dg.js → docker-Vj_4_cPg.js} +5 -5
- package/dist/src/{embedding-BXhN5lCH.cjs → embedding-BQIApR18.cjs} +6 -6
- package/dist/src/{embedding-ChS1ivFS.js → embedding-CStK0TV6.js} +5 -5
- package/dist/src/{embedding-DNRvZwRN.js → embedding-CU78FMnw.js} +5 -5
- package/dist/src/{embedding-D_bI4NDq.js → embedding-CV8lmCnU.js} +4 -4
- package/dist/src/{errors-DFHe4L-n.js → errors-9PcUL8BC.js} +1 -1
- package/dist/src/{esm-B_rGuPTo.cjs → esm-BIKakvNa.cjs} +8 -7
- package/dist/src/{esm-BRkfNsYs.js → esm-BTK1W7lG.js} +1 -1
- package/dist/src/{esm-BX8fwlAO.js → esm-Bexx2PFc.js} +1 -1
- package/dist/src/{eval-DJ_4A-tr.js → eval-B3BaNBbO.js} +19 -19
- package/dist/src/{eval-BQPLBJbw.js → eval-DfR9885C.js} +1 -1
- package/dist/src/evalResult-BtZSUgQv.js +3 -0
- package/dist/src/{evalResult-D6P5I5il.js → evalResult-CcSqNl_Y.js} +17 -10
- package/dist/src/{evalResult-Cx-8OWkb.cjs → evalResult-DHXs-9TL.cjs} +29 -11
- package/dist/src/{evalResult-pSvGWFMo.js → evalResult-PGqEbasb.js} +18 -11
- package/dist/src/evaluator-B9LGbKI8.js +3 -0
- package/dist/src/{evaluator-D-UIbbYq.js → evaluator-n_dEb00o.js} +258 -132
- package/dist/src/evaluatorHelpers-CrRObe2z.js +510 -0
- package/dist/src/evaluatorHelpers-D06I9WFL.cjs +537 -0
- package/dist/src/evaluatorHelpers-D1_kwvyp.js +511 -0
- package/dist/src/{extractor-DxyiFhPk.js → extractor-BVkZtk4R.js} +5 -5
- package/dist/src/{extractor-BM3jRERL.js → extractor-D3Fv_Tdh.js} +5 -5
- package/dist/src/{extractor-YlZbUMsL.js → extractor-Jp53vs-6.js} +5 -5
- package/dist/src/{extractor-Dxr2J_wK.cjs → extractor-bV_NOoaz.cjs} +6 -6
- package/dist/src/{fetch-Y5qX_kST.js → fetch-BSSAcMxf.js} +90 -26
- package/dist/src/fetch-BodQTrMU.js +3 -0
- package/dist/src/{fetch-NuqXW1Xb.cjs → fetch-Cfm4EuOB.cjs} +115 -32
- package/dist/src/{fetch-B6ch2nU2.js → fetch-Cpf1U1nO.js} +86 -26
- package/dist/src/{fetch-D9xxyC1p.js → fetch-Doks14zQ.js} +90 -26
- package/dist/src/{fileExtensions-D9h-8Wxg.cjs → fileExtensions-BhdwzYaD.cjs} +24 -1
- package/dist/src/{fileExtensions-BGh-W-HT.js → fileExtensions-CXRfY3Ss.js} +12 -2
- package/dist/src/{fileExtensions-DysCsxNG.js → fileExtensions-D4GCJ67J.js} +12 -2
- package/dist/src/{formatDuration-Ch4A7G3o.js → formatDuration-CMVNrYvE.js} +1 -1
- package/dist/src/{genaiTracer-BokHC-MW.cjs → genaiTracer-14nugQQx.cjs} +14 -2
- package/dist/src/{genaiTracer-C3ZPQU60.js → genaiTracer-BPVvltoW.js} +2 -2
- package/dist/src/{genaiTracer-DxODqT9e.js → genaiTracer-D18lYzhB.js} +2 -2
- package/dist/src/{genaiTracer-CFny3gOy.js → genaiTracer-jJKYsnjc.js} +2 -2
- package/dist/src/goat-Ba7Gznzq.js +467 -0
- package/dist/src/goat-CJngS-WU.js +468 -0
- package/dist/src/goat-CwsbfQeu.js +466 -0
- package/dist/src/goat-DOMbozoX.cjs +470 -0
- package/dist/src/graders-B3D7kCcD.js +3 -0
- package/dist/src/{graders-CgPn32yp.js → graders-BQt1BaQe.js} +1019 -86
- package/dist/src/{graders-Bw1wk_21.cjs → graders-CBQ2s6gz.cjs} +1087 -130
- package/dist/src/{graders-CwrbifOo.js → graders-DaRU98zs.js} +1022 -84
- package/dist/src/{graders-BoUqsCEm.js → graders-KXzjnIim.js} +1024 -86
- package/dist/src/hydra-BU6GjYoQ.js +560 -0
- package/dist/src/hydra-BmXHxlyl.js +559 -0
- package/dist/src/hydra-CR0KyYDb.js +561 -0
- package/dist/src/hydra-RO9jBks7.cjs +560 -0
- package/dist/src/{image-BeWaInPF.js → image-BBmZdKO3.js} +3 -3
- package/dist/src/{image-qjO6FWPs.js → image-B_PFG7IG.js} +3 -3
- package/dist/src/image-BtODOZjh.js +442 -0
- package/dist/src/image-CYuNJIqd.js +442 -0
- package/dist/src/{image-D10dNAav.cjs → image-E00WFZkq.cjs} +4 -4
- package/dist/src/image-HK2Cfqb1.cjs +465 -0
- package/dist/src/{image-Dr_3I3nK.js → image-LGj8dTcr.js} +3 -3
- package/dist/src/image-YMKejC0r.js +443 -0
- package/dist/src/index.cjs +711 -339
- package/dist/src/index.d.cts +3159 -1611
- package/dist/src/index.d.ts +3158 -1610
- package/dist/src/index.js +605 -249
- package/dist/src/indirectWebPwn-B80dLlFC.js +260 -0
- package/dist/src/indirectWebPwn-BMTXXznx.js +386 -0
- package/dist/src/indirectWebPwn-BZFPV7Q9.js +385 -0
- package/dist/src/indirectWebPwn-BaEQEOIO.cjs +260 -0
- package/dist/src/indirectWebPwn-BzpyMnFS.js +259 -0
- package/dist/src/indirectWebPwn-CiWB-vVH.js +385 -0
- package/dist/src/indirectWebPwn-D7NA9Nsv.cjs +397 -0
- package/dist/src/indirectWebPwn-o_bEFMjP.js +259 -0
- package/dist/src/inputVariables-B0qUChbV.js +467 -0
- package/dist/src/inputVariables-DUGMb9Ka.js +464 -0
- package/dist/src/inputVariables-DXFdi7AI.js +468 -0
- package/dist/src/inputVariables-Dq9W-Z3a.cjs +475 -0
- package/dist/src/{interactiveCheck-CCICw2cy.js → interactiveCheck-C4QlIuoR.js} +1 -1
- package/dist/src/{invariant-kfQ8Bu82.cjs → invariant-QtnLD03y.cjs} +1 -1
- package/dist/src/iterative-B-l0syBV.js +501 -0
- package/dist/src/iterative-BACUeCCz.cjs +503 -0
- package/dist/src/iterative-CVwoExo8.js +502 -0
- package/dist/src/iterative-QDrGSyss.js +500 -0
- package/dist/src/iterativeImage-BQg2OwA6.js +413 -0
- package/dist/src/iterativeImage-Bwn0fM75.js +413 -0
- package/dist/src/iterativeImage-CcgVyASo.cjs +415 -0
- package/dist/src/iterativeImage-D_UbQXg4.js +414 -0
- package/dist/src/iterativeMeta-CIu-CHRS.js +405 -0
- package/dist/src/iterativeMeta-CN8CNjFA.js +406 -0
- package/dist/src/iterativeMeta-DN6BTjpq.js +404 -0
- package/dist/src/iterativeMeta-DlqY3BsS.cjs +405 -0
- package/dist/src/iterativeTree-CJ8a8G9T.js +820 -0
- package/dist/src/iterativeTree-DcuFXnjL.js +819 -0
- package/dist/src/iterativeTree-FrDDYAN0.js +818 -0
- package/dist/src/iterativeTree-LOgAi0nU.cjs +821 -0
- package/dist/src/{knowledgeBase-C8qOo26M.cjs → knowledgeBase-CdbcGBZF.cjs} +25 -11
- package/dist/src/{knowledgeBase-BBETc5-S.js → knowledgeBase-CjOXp6Lr.js} +23 -9
- package/dist/src/{knowledgeBase-Dr3Kib7F.js → knowledgeBase-DxAq4n4z.js} +24 -10
- package/dist/src/{knowledgeBase-CzAi2rUI.js → knowledgeBase-o_wTLzrt.js} +24 -10
- package/dist/src/{litellm-DRc4qWfc.js → litellm-B2gHwya_.js} +4 -4
- package/dist/src/{litellm-CaUmV7Mk.cjs → litellm-CPpdlO7n.cjs} +5 -5
- package/dist/src/{litellm-BLSiANhk.js → litellm-CYfgxLrM.js} +4 -4
- package/dist/src/{litellm-DQGo_juI.js → litellm-ojWBKU3C.js} +4 -4
- package/dist/src/{logger-COuQb2xB.cjs → logger-cfNpzI4o.cjs} +13 -55
- package/dist/src/{luma-ray-if-Ml4R9.cjs → luma-ray-BCCO9XXG.cjs} +9 -8
- package/dist/src/{luma-ray-B-tNZzqW.js → luma-ray-BPrdihAb.js} +5 -5
- package/dist/src/{luma-ray-CtS3OlGq.js → luma-ray-DP5N79lB.js} +5 -5
- package/dist/src/{luma-ray-PJJgUjOc.js → luma-ray-DTDyoAlM.js} +5 -5
- package/dist/src/main.js +727 -234
- package/dist/src/memoryPoisoning-B6N3us35.cjs +106 -0
- package/dist/src/memoryPoisoning-Bc_BK_k2.js +106 -0
- package/dist/src/memoryPoisoning-D375zwSX.js +107 -0
- package/dist/src/memoryPoisoning-DJA0YjJT.js +106 -0
- package/dist/src/{messages-CewuNcNS.js → messages-Bg29Nbit.js} +17 -9
- package/dist/src/{messages-BnsVHUnm.cjs → messages-BrZEnHsV.cjs} +24 -15
- package/dist/src/{messages-CI69Lasb.js → messages-CBulRaud.js} +18 -10
- package/dist/src/{messages-B9dSjrNf.js → messages-K9A8RxBM.js} +18 -10
- package/dist/src/{meteor-CeGo0Lu2.js → meteor--TZYICTI.js} +1 -1
- package/dist/src/{meteor-BBGcGeCa.cjs → meteor-CR226f7Z.cjs} +2 -2
- package/dist/src/{meteor-Wc_aUVvu.js → meteor-Cl_yd7rJ.js} +1 -1
- package/dist/src/{meteor-BKTM-7KS.js → meteor-Dce-_zGQ.js} +1 -1
- package/dist/src/mischievousUser-BDLwSGN0.js +46 -0
- package/dist/src/mischievousUser-Blx-OtT3.js +47 -0
- package/dist/src/mischievousUser-CHuTTvBg.js +46 -0
- package/dist/src/mischievousUser-CSUrH3fq.cjs +46 -0
- package/dist/src/{modelslab-zpz9JcK0.js → modelslab-BjEk7yCP.js} +6 -6
- package/dist/src/{modelslab-BCLOtfek.js → modelslab-CBCrdIBc.js} +6 -6
- package/dist/src/{modelslab-D73OnKSx.js → modelslab-CrGpXuhv.js} +6 -6
- package/dist/src/{modelslab-BkapYJhh.cjs → modelslab-Cvh0klQx.cjs} +7 -7
- package/dist/src/{nova-reel-B8F_TK5w.js → nova-reel-CUDDZcSA.js} +5 -5
- package/dist/src/{nova-reel-Bx0NFV2f.js → nova-reel-CyDESu5J.js} +5 -5
- package/dist/src/{nova-reel-DkT7tnoB.cjs → nova-reel-DH_Ksu6X.cjs} +9 -8
- package/dist/src/{nova-reel-CNGJTLtG.js → nova-reel-YQAqUYJY.js} +5 -5
- package/dist/src/{nova-sonic-BeTRaFOh.js → nova-sonic-BVFFB7JZ.js} +2 -2
- package/dist/src/{nova-sonic-YT426juD.cjs → nova-sonic-Bg3cxMMu.cjs} +5 -4
- package/dist/src/{nova-sonic-CL7Zqv0G.js → nova-sonic-BhmnRGyh.js} +3 -3
- package/dist/src/{nova-sonic-BaXRN1cr.js → nova-sonic-DxmK95c1.js} +3 -3
- package/dist/src/{openai-Cy1XLs0c.cjs → openai-C3uXv8wS.cjs} +2 -2
- package/dist/src/{openai-BT-JvDse.js → openai-CJrsh9n4.js} +1 -1
- package/dist/src/{openai-D4fxGvRx.js → openai-zgwBb4Ff.js} +1 -1
- package/dist/src/{openclaw-DUBZP3GL.cjs → openclaw-CHQaZi_-.cjs} +17 -15
- package/dist/src/{openclaw-DA8U4DsD.js → openclaw-CWOm2eOr.js} +9 -8
- package/dist/src/{openclaw-DObVgpjC.js → openclaw-Cdk9JKfY.js} +9 -8
- package/dist/src/{openclaw-Bq7RVR3k.js → openclaw-DhF8rUpI.js} +9 -8
- package/dist/src/{opencode-sdk-BB40Wir1.js → opencode-sdk-BRjiPV-g.js} +38 -3
- package/dist/src/{opencode-sdk-CeqiOcOU.cjs → opencode-sdk-CPFMw0ed.cjs} +45 -9
- package/dist/src/{opencode-sdk-BM1UAIv1.js → opencode-sdk-CaSOCsBA.js} +39 -4
- package/dist/src/{opencode-sdk-ChdK7F7z.js → opencode-sdk-CqkyG8De.js} +39 -4
- package/dist/src/{otlpReceiver-UYMQx3sy.js → otlpReceiver--gTpSagc.js} +119 -3
- package/dist/src/{otlpReceiver-C6thJRXi.js → otlpReceiver-B2eaKC8C.js} +118 -2
- package/dist/src/{otlpReceiver-CcdIikOu.js → otlpReceiver-BXjcRqAM.js} +119 -3
- package/dist/src/{otlpReceiver-DNSQj6bf.cjs → otlpReceiver-CvJdBGSc.cjs} +125 -7
- package/dist/src/packageParser--MWTSrPW.js +36 -0
- package/dist/src/packageParser-CgE-ziRo.js +35 -0
- package/dist/src/packageParser-QoCS1FMl.cjs +54 -0
- package/dist/src/packageParser-hwwSGnAZ.js +35 -0
- package/dist/src/processShim-BBxt7LKO.js +95 -0
- package/dist/src/processShim-BcGzU8fY.js +94 -0
- package/dist/src/processShim-C_z3aRvF.js +94 -0
- package/dist/src/processShim-DSY9BV2T.cjs +98 -0
- package/dist/src/promptLength-0qIHyhA5.js +71 -0
- package/dist/src/promptLength-4X-Wd8PG.js +72 -0
- package/dist/src/promptLength-B9nZEfO6.js +71 -0
- package/dist/src/promptLength-BbBbDHNj.cjs +94 -0
- package/dist/src/promptfoo-BU4_0J85.js +238 -0
- package/dist/src/promptfoo-CReYAtfb.js +237 -0
- package/dist/src/promptfoo-ClChwT74.cjs +292 -0
- package/dist/src/promptfoo-CqEpj6Sr.js +237 -0
- package/dist/src/prompts-BYMtqPCw.js +259 -0
- package/dist/src/prompts-C-bqE1Yp.js +260 -0
- package/dist/src/prompts-Cp_Qx5Ml.js +270 -0
- package/dist/src/prompts-DHhQsANy.js +259 -0
- package/dist/src/prompts-D_QpZ2Dm.js +271 -0
- package/dist/src/prompts-hNvWBD3z.cjs +284 -0
- package/dist/src/prompts-huDVH2CI.js +270 -0
- package/dist/src/prompts-p78Hul5i.cjs +289 -0
- package/dist/src/{providerRegistry-BESeALrr.cjs → providerRegistry-CZO_w7ue.cjs} +2 -2
- package/dist/src/{providerRegistry-DoACwqhD.js → providerRegistry-DHcFiVWX.js} +1 -1
- package/dist/src/{providerRegistry-PMsleEzs.js → providerRegistry-ReCd0sFa.js} +1 -1
- package/dist/src/{providers-DT-GtF2t.js → providers-B7TyByfj.js} +789 -11925
- package/dist/src/{providers-CJh7iriU.js → providers-BGc7tDtQ.js} +796 -11872
- package/dist/src/{providers-Ctcc592x.js → providers-CSOp-bCm.js} +1 -1
- package/dist/src/{providers-eDShy16E.cjs → providers-V6RBuieY.cjs} +837 -12138
- package/dist/src/{providers-DRrerKra.js → providers-iH3Sw1yo.js} +851 -11938
- package/dist/src/{pythonUtils-C4tltmIn.js → pythonUtils-CLCgQ9tt.js} +1 -1
- package/dist/src/{pythonUtils-DNqbnRdx.js → pythonUtils-CgYxeSmO.js} +2 -2
- package/dist/src/{pythonUtils-CoLaCwNY.cjs → pythonUtils-Cokhluq3.cjs} +7 -6
- package/dist/src/{pythonUtils-DMO68Jg7.js → pythonUtils-D0BYebvX.js} +2 -2
- package/dist/src/{quiverai-CPKhWgaT.js → quiverai-58BtRRet.js} +3 -3
- package/dist/src/{quiverai-Bk1KrvL6.js → quiverai-C1dYu5MW.js} +3 -3
- package/dist/src/{quiverai-BSS9a7wV.js → quiverai-CNMIpZQg.js} +3 -3
- package/dist/src/{quiverai-Bpx6MZ7T.cjs → quiverai-fmSfU43k.cjs} +4 -4
- package/dist/src/registry-6Jw6ebor.cjs +124 -0
- package/dist/src/registry-BTGk2ZkB.js +124 -0
- package/dist/src/registry-BTNqmP5o.js +125 -0
- package/dist/src/registry-NGnOG2xa.js +124 -0
- package/dist/src/{server-gyd6d4Hc.js → remoteGeneration--D6WjzUm.js} +15 -108
- package/dist/src/{server-BEECpeGG.cjs → remoteGeneration-BpIYlb_O.cjs} +30 -119
- package/dist/src/{server-ByxbqAcQ.js → remoteGeneration-CJC3E0aW.js} +15 -147
- package/dist/src/remoteGeneration-D6UjE2JT.js +218 -0
- package/dist/src/render-BNTrbmBw.cjs +384 -0
- package/dist/src/render-CSP99NLm.js +348 -0
- package/dist/src/render-DFfDeYUK.js +347 -0
- package/dist/src/{render-nj-UaPdn.js → render-DznWrxGO.js} +2 -2
- package/dist/src/render-_6ur1fhE.js +347 -0
- package/dist/src/resourceAttributes-D1jP3kL5.js +17 -0
- package/dist/src/resourceAttributes-DQbBB--2.js +16 -0
- package/dist/src/resourceAttributes-ephgOvdR.cjs +27 -0
- package/dist/src/resourceAttributes-v6-I67fn.js +16 -0
- package/dist/src/{responses-1ztiVYsx.js → responses-5Gf5HNOi.js} +11 -7
- package/dist/src/{responses-BiaBguAu.js → responses-BVi7xIdv.js} +13 -9
- package/dist/src/{responses-CF-ayauu.cjs → responses-CUARGrhY.cjs} +16 -11
- package/dist/src/{responses-B8haB-mD.js → responses-CrmWv6iz.js} +13 -9
- package/dist/src/rolldown-runtime-D_mwlA32.cjs +43 -0
- package/dist/src/rubyUtils-BYVlQ94c.js +3 -0
- package/dist/src/{rubyUtils-CIQFnVz4.js → rubyUtils-CXlFM2rR.js} +2 -2
- package/dist/src/{rubyUtils-BI0p46eZ.js → rubyUtils-CnlW8AYb.js} +2 -2
- package/dist/src/{rubyUtils-DoifqkiA.cjs → rubyUtils-CqUWBZAt.cjs} +16 -26
- package/dist/src/{rubyUtils-DGnoCYL2.js → rubyUtils-DdGojpfv.js} +1 -1
- package/dist/src/runtimeTransform-BJOpL9Yc.js +142 -0
- package/dist/src/runtimeTransform-Dgh_D7DU.js +143 -0
- package/dist/src/runtimeTransform-DigbjU1r.js +142 -0
- package/dist/src/runtimeTransform-ON3YYILw.cjs +147 -0
- package/dist/src/{sagemaker-ljtY12VM.cjs → sagemaker-BeVTKfrv.cjs} +65 -53
- package/dist/src/{sagemaker-BDLeW29y.js → sagemaker-BwbV5U7_.js} +61 -50
- package/dist/src/{sagemaker-C5T60MKf.js → sagemaker-ClAZ6Qwc.js} +61 -50
- package/dist/src/{sagemaker-ClS_NB07.js → sagemaker-DY2qrOpq.js} +61 -50
- package/dist/src/{scanner-nOCWNIXa.js → scanner-BS-iFIp3.js} +6 -6
- package/dist/src/server/index.js +4115 -420
- package/dist/src/server-BHOEL8p8.cjs +126 -0
- package/dist/src/server-CbiJppij.js +107 -0
- package/dist/src/server-D18AAlAc.js +3 -0
- package/dist/src/server-DLYjSFm2.js +182 -0
- package/dist/src/server-JQYD_Nws.js +146 -0
- package/dist/src/{fileExtensions-8CjoL7vB.js → shared-BoG7qLMv.js} +12 -2
- package/dist/src/shared-CRq0gGVf.js +1334 -0
- package/dist/src/shared-CSIGeGLl.js +1334 -0
- package/dist/src/shared-DNvim54U.js +1335 -0
- package/dist/src/shared-aHWko3P1.cjs +1436 -0
- package/dist/src/{signal-DTtUuU3l.js → signal-CSurUUyV.js} +2 -2
- package/dist/src/simulatedUser-C7sOFSF6.js +222 -0
- package/dist/src/simulatedUser-DH_7RzEQ.js +222 -0
- package/dist/src/simulatedUser-lgMMmniD.js +223 -0
- package/dist/src/simulatedUser-mnCUS9Bm.cjs +227 -0
- package/dist/src/{slack-Bamy_7te.js → slack-Bapo-7_8.js} +1 -1
- package/dist/src/{slack-BLlsDpfG.cjs → slack-DMC1QVEg.cjs} +3 -2
- package/dist/src/{slack-BPYLQLgb.js → slack-DTEFhrMn.js} +1 -1
- package/dist/src/{slack-4zZX1OKP.js → slack-k-_CP84Q.js} +1 -1
- package/dist/src/storage-95htjpLs.js +834 -0
- package/dist/src/storage-A4WnAeN3.cjs +911 -0
- package/dist/src/storage-B2Ql_oq4.js +822 -0
- package/dist/src/storage-EKVWZBNY.js +875 -0
- package/dist/src/{store-2K0kDi80.cjs → store-B2NDDooM.cjs} +60 -24
- package/dist/src/{store-CPh25336.js → store-DKd5592Q.js} +50 -19
- package/dist/src/{store-BPkzEyFM.js → store-HpopRVzl.js} +50 -19
- package/dist/src/store-IbiRIF3k.js +3 -0
- package/dist/src/strategies-CBI1brSy.js +2333 -0
- package/dist/src/strategies-CCcnEbFO.cjs +2360 -0
- package/dist/src/strategies-CD1gHeeQ.js +2331 -0
- package/dist/src/{tables-WgdUZ8Ck.js → tables-CRSXQ2Ke.js} +2 -2
- package/dist/src/{tables-BMSOS2Gg.js → tables-CxjU7bBd.js} +2 -2
- package/dist/src/{tables-CXbaZ9y1.cjs → tables-DBIJU0WE.cjs} +6 -5
- package/dist/src/{tables-NlvH23ky.js → tables-DafUHOeh.js} +2 -2
- package/dist/src/telemetry-BUm_krVX.js +3 -0
- package/dist/src/{telemetry--iqaGyaS.js → telemetry-BbpmrenM.js} +4 -4
- package/dist/src/{telemetry-CgdVGV8N.js → telemetry-C4bX-6Sr.js} +4 -4
- package/dist/src/{telemetry-CEQxGnMZ.cjs → telemetry-C_ImlCOk.cjs} +15 -9
- package/dist/src/{telemetry-DWdGHvEf.js → telemetry-DOE567Wj.js} +4 -4
- package/dist/src/{text-DDQP0tuQ.js → text-CZr46tp_.js} +1 -1
- package/dist/src/{text-D4lz-Jg_.js → text-Db-Wt2u2.js} +1 -1
- package/dist/src/{text-NWvfMfkF.js → text-DwYK5EBn.js} +1 -1
- package/dist/src/{text-BiNME7QG.cjs → text-nywWsRBM.cjs} +1 -1
- package/dist/src/{tokenUsageUtils-2wIvAhB3.js → tokenUsageUtils-CDet74yk.js} +1 -1
- package/dist/src/{tokenUsageUtils-4c780gFd.js → tokenUsageUtils-CmnQ0G2m.js} +1 -1
- package/dist/src/{tokenUsageUtils-C9odhsbW.cjs → tokenUsageUtils-_B-P8IAi.cjs} +1 -1
- package/dist/src/toolAttributes-BAjwcBf0.cjs +103 -0
- package/dist/src/toolAttributes-COVgDrBG.js +87 -0
- package/dist/src/toolAttributes-DJ9ZEKXD.js +86 -0
- package/dist/src/tracingOptions-BOP1FsRt.js +220 -0
- package/dist/src/tracingOptions-BvmDa_jH.js +219 -0
- package/dist/src/tracingOptions-DFBoE8O0.cjs +249 -0
- package/dist/src/tracingOptions-xhjOg2b1.js +221 -0
- package/dist/src/{transcription-D7Q0vJsh.js → transcription-BOXDoehT.js} +4 -4
- package/dist/src/{transcription-Bm2emLmJ.js → transcription-CpVdKc4P.js} +5 -5
- package/dist/src/{transcription-CZ4LG5hQ.cjs → transcription-D8kkPXg_.cjs} +9 -8
- package/dist/src/{transcription-84t4ALo2.js → transcription-Z94eV9LR.js} +5 -5
- package/dist/src/transform-BnSTnFlp.js +187 -0
- package/dist/src/transform-BnSXWmU_2.cjs +221 -0
- package/dist/src/{transform-DtooZqYY.js → transform-BufxPIQL.js} +8 -8
- package/dist/src/transform-CGt7Kt3y2.js +186 -0
- package/dist/src/transform-CrPGTsij.js +186 -0
- package/dist/src/{transform-Dg4LcO1Y.cjs → transform-DJkt81VY.cjs} +12 -11
- package/dist/src/{transform-B-b6Cq-q.js → transform-DtTfiGoh.js} +8 -8
- package/dist/src/{transform-_DpNB4qp.js → transform-Wp6s_5QE.js} +8 -8
- package/dist/src/{transformersAvailability-lvCCvuPT.js → transformersAvailability-0ThtPved.js} +1 -1
- package/dist/src/transformersAvailability-BYydDE5U.js +35 -0
- package/dist/src/{transformersAvailability-rJGPccjr.js → transformersAvailability-BvyU9vDD.js} +1 -1
- package/dist/src/{transformersAvailability-B22swDxr.cjs → transformersAvailability-BytPvKUW.cjs} +1 -1
- package/dist/src/{types-BVH9hjgW.js → types-BFevViUY.js} +113 -19
- package/dist/src/{types-BDjGOq4E.js → types-BJQBBPTP.js} +113 -19
- package/dist/src/{types-CgG2rKiW.cjs → types-CxJvaY2S.cjs} +211 -28
- package/dist/src/{types-DNRZVOue.js → types-D6glLbdF.js} +125 -26
- package/dist/src/{util-Dpmm_dAI.cjs → util-BHCAeuXx.cjs} +33 -7
- package/dist/src/{util-DFPeFkiV.js → util-CMrHV35u.js} +28 -8
- package/dist/src/{util-DvpHnLt0.cjs → util-COnzevXE.cjs} +29 -21
- package/dist/src/{util-BlFVL0UF.js → util-CYev3d-r.js} +22 -7
- package/dist/src/util-DGqkTb2-.js +327 -0
- package/dist/src/util-DNtUsus_.cjs +386 -0
- package/dist/src/{util-Dub0f_ej.js → util-DRfqa4xz.js} +17 -10
- package/dist/src/{util-BVXcTwXu.js → util-DTq3jq2z.js} +28 -8
- package/dist/src/{util-C-kmRosx.js → util-DeY58psG.js} +22 -7
- package/dist/src/util-DpV6KT5i.js +327 -0
- package/dist/src/{util-3pBZZb_H.js → util-DwNJzqOV.js} +45 -10
- package/dist/src/util-ETfU_sS9.js +328 -0
- package/dist/src/{util-A5_ZsQUn.cjs → util-NYQvo1C7.cjs} +25 -9
- package/dist/src/{util-DN0-b81k.js → util-X4KQgyVD.js} +28 -8
- package/dist/src/{util-BQOCAHQC.js → util-jZRrXe1P.js} +46 -11
- package/dist/src/{util-B9CNhyac.js → util-o2Qg5rZv.js} +22 -7
- package/dist/src/{utils-BUMN8orw.js → utils-B0lzitHZ.js} +2 -2
- package/dist/src/{utils-kt7lv30R.js → utils-BFOh20Gb.js} +2 -2
- package/dist/src/{utils-o8S5huU2.js → utils-BGY69tk_.js} +2 -2
- package/dist/src/{utils-DkVeShIB.cjs → utils-Ve6kuJsa.cjs} +3 -3
- package/dist/src/{version-CbuBKu2U.js → version-CHR-EFec.js} +2 -2
- package/dist/src/{version-CbpiUINz.js → version-F0YDgb7J.js} +2 -2
- package/dist/src/{version-D9zu9FWB.cjs → version-VzUqOBZk.cjs} +2 -2
- package/dist/src/{version-0frU0UTr.js → version-qVEN5qCm.js} +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +49 -23
- package/dist/src/app/assets/Report-vjzrbgce.js +0 -1
- package/dist/src/app/assets/index-B3NQ8HTd.js +0 -385
- package/dist/src/app/assets/index-Cli2yAXv.css +0 -1
- package/dist/src/app/assets/sync-IjzpWrOE.js +0 -4
- package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +0 -36
- package/dist/src/cache-BRkhlH3k.cjs +0 -3
- package/dist/src/cache-BlC6aeJ0.js +0 -3
- package/dist/src/cloud-CoD5OacT.js +0 -3
- package/dist/src/codex-sdk-1jm_qPHf.js +0 -3
- package/dist/src/codex-sdk-Danroptg.cjs +0 -2
- package/dist/src/evalResult-BBJAHAtw.cjs +0 -2
- package/dist/src/evalResult-BBK58h2B.js +0 -3
- package/dist/src/evalResult-spPqh1G_.js +0 -2
- package/dist/src/evaluator-DgLKaZk8.js +0 -3
- package/dist/src/fetch-8viavNv8.js +0 -3
- package/dist/src/graders-C84JI-m5.js +0 -2
- package/dist/src/graders-CBbd0K0Q.cjs +0 -2
- package/dist/src/graders-CbQqpHSN.js +0 -3
- package/dist/src/graders-DS42d3ZG.js +0 -2
- package/dist/src/image-BmilRNqO.js +0 -258
- package/dist/src/image-CxJoa3aW.cjs +0 -280
- package/dist/src/image-DsGRlkh7.js +0 -257
- package/dist/src/image-a_SGUobh.js +0 -257
- package/dist/src/providers-BuyzKt7C.js +0 -2
- package/dist/src/providers-C7lNVBjX.cjs +0 -3
- package/dist/src/providers-CCE2COJi2.js +0 -2
- package/dist/src/render-7uNJ2V14.js +0 -135
- package/dist/src/render-DlscvAUJ.js +0 -135
- package/dist/src/render-eui5p5mL.js +0 -136
- package/dist/src/render-tG6ir9_g.cjs +0 -165
- package/dist/src/rubyUtils-4hjGxvju.js +0 -3
- package/dist/src/rubyUtils-CO-tuszQ.cjs +0 -2
- package/dist/src/server-ByiF3qlg.js +0 -386
- package/dist/src/server-C0XKRNB_.cjs +0 -2
- package/dist/src/server-C_15p79-.js +0 -3
- package/dist/src/store-2OXm_eBY.js +0 -240
- package/dist/src/store-BELqNwvz.js +0 -3
- package/dist/src/store-uQZ4AjPe.cjs +0 -2
- package/dist/src/telemetry-DjNoC_n3.cjs +0 -2
- package/dist/src/telemetry-ZdPZc0fm.js +0 -3
- package/dist/src/transform-BQt0BeAW.js +0 -3
- package/dist/src/transform-Bq5oqC0s.cjs +0 -2
- package/dist/src/transform-C9izGX54.cjs +0 -228
- package/dist/src/transform-CwbAZ84V.js +0 -216
- package/dist/src/transform-DzCF-wqV.js +0 -213
- package/dist/src/transform-eGiUAv86.js +0 -216
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
const require_rolldown_runtime = require("./rolldown-runtime-D_mwlA32.cjs");
|
|
2
|
+
const require_logger = require("./logger-cfNpzI4o.cjs");
|
|
3
|
+
const require_types = require("./types-CxJvaY2S.cjs");
|
|
4
|
+
const require_fetch = require("./fetch-Cfm4EuOB.cjs");
|
|
5
|
+
const require_version = require("./version-VzUqOBZk.cjs");
|
|
6
|
+
const require_accounts = require("./accounts-BVz5gHLK.cjs");
|
|
7
|
+
const require_remoteGeneration = require("./remoteGeneration-BpIYlb_O.cjs");
|
|
8
|
+
let dedent = require("dedent");
|
|
9
|
+
dedent = require_rolldown_runtime.__toESM(dedent, 1);
|
|
10
|
+
//#region src/redteam/remoteMaterialization.ts
|
|
11
|
+
const REMOTE_MATERIALIZATION_CONTEXT_VAR = "__promptfooRemoteMaterialization";
|
|
12
|
+
function filterMaterializedVarsToInputs(vars, inputs, options) {
|
|
13
|
+
if (!inputs || Object.keys(inputs).length === 0) return vars;
|
|
14
|
+
return Object.fromEntries(Object.entries(vars).filter(([key]) => {
|
|
15
|
+
if (!Object.prototype.hasOwnProperty.call(inputs, key)) return false;
|
|
16
|
+
if (!options?.textOnly) return true;
|
|
17
|
+
return require_types.getInputType(inputs[key]) === "text";
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
function buildRemoteMaterializedInputVariables(response, fallbackVars, inputs) {
|
|
21
|
+
const filteredFallbackVars = filterMaterializedVarsToInputs(fallbackVars, inputs, { textOnly: true });
|
|
22
|
+
const filteredMaterializedVars = filterMaterializedVarsToInputs(response.materializedVars ?? {}, inputs);
|
|
23
|
+
return {
|
|
24
|
+
...response.inputMaterialization ? { metadata: response.inputMaterialization } : {},
|
|
25
|
+
vars: {
|
|
26
|
+
...filteredFallbackVars,
|
|
27
|
+
...filteredMaterializedVars
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function getRemoteMaterializationHost() {
|
|
32
|
+
const remoteUrl = require_remoteGeneration.getRemoteGenerationUrl();
|
|
33
|
+
try {
|
|
34
|
+
return new URL(remoteUrl).origin;
|
|
35
|
+
} catch {
|
|
36
|
+
return remoteUrl;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function buildRemoteMaterializationContextVars(context) {
|
|
40
|
+
return { [REMOTE_MATERIALIZATION_CONTEXT_VAR]: context };
|
|
41
|
+
}
|
|
42
|
+
function getRemoteMaterializationContextFromVars(vars) {
|
|
43
|
+
const raw = vars?.[REMOTE_MATERIALIZATION_CONTEXT_VAR];
|
|
44
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return;
|
|
45
|
+
return raw;
|
|
46
|
+
}
|
|
47
|
+
function requiresRemoteMaterialization(inputs) {
|
|
48
|
+
return Boolean(inputs && Object.keys(inputs).length > 0);
|
|
49
|
+
}
|
|
50
|
+
function getRemoteMaterializationUpgradeError(operation) {
|
|
51
|
+
return `${operation} requires remote multi-input materialization support from a newer Promptfoo server. Current remote endpoint: ${getRemoteMaterializationHost()}. Upgrade the Promptfoo server you are connected to and try again.`;
|
|
52
|
+
}
|
|
53
|
+
function isRemoteMaterializationUpgradeError(error) {
|
|
54
|
+
return error instanceof Error && error.message.includes("requires remote multi-input materialization support from a newer");
|
|
55
|
+
}
|
|
56
|
+
function assertRemoteMaterializationHandled(response, operation) {
|
|
57
|
+
if (response?.materializationHandled === true) return;
|
|
58
|
+
throw new Error(getRemoteMaterializationUpgradeError(operation));
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
61
|
+
//#region src/providers/promptfoo.ts
|
|
62
|
+
/**
|
|
63
|
+
* Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
|
|
64
|
+
* Used by red team plugins to generate test cases for harmful content categories.
|
|
65
|
+
*/
|
|
66
|
+
var PromptfooHarmfulCompletionProvider = class {
|
|
67
|
+
harmCategory;
|
|
68
|
+
n;
|
|
69
|
+
purpose;
|
|
70
|
+
config;
|
|
71
|
+
constructor(options) {
|
|
72
|
+
this.harmCategory = options.harmCategory;
|
|
73
|
+
this.n = options.n;
|
|
74
|
+
this.purpose = options.purpose;
|
|
75
|
+
this.config = options.config;
|
|
76
|
+
}
|
|
77
|
+
id() {
|
|
78
|
+
return `promptfoo:redteam:${this.harmCategory}`;
|
|
79
|
+
}
|
|
80
|
+
toString() {
|
|
81
|
+
return `[Promptfoo Harmful Completion Provider ${this.purpose} - ${this.harmCategory}]`;
|
|
82
|
+
}
|
|
83
|
+
async callApi(_prompt, _context, callApiOptions) {
|
|
84
|
+
if (require_remoteGeneration.neverGenerateRemote()) return { error: dedent.default`
|
|
85
|
+
Remote generation is disabled. Harmful content generation requires Promptfoo's unaligned models.
|
|
86
|
+
|
|
87
|
+
To enable:
|
|
88
|
+
- Remove PROMPTFOO_DISABLE_REMOTE_GENERATION (or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION)
|
|
89
|
+
- Or configure an alternative unaligned model provider
|
|
90
|
+
|
|
91
|
+
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
92
|
+
` };
|
|
93
|
+
const body = {
|
|
94
|
+
email: require_accounts.getUserEmail(),
|
|
95
|
+
harmCategory: this.harmCategory,
|
|
96
|
+
n: this.n,
|
|
97
|
+
purpose: this.purpose,
|
|
98
|
+
version: require_version.VERSION,
|
|
99
|
+
config: this.config
|
|
100
|
+
};
|
|
101
|
+
try {
|
|
102
|
+
require_logger.logger.debug(`[HarmfulCompletionProvider] Calling generate harmful API (${require_remoteGeneration.getRemoteGenerationUrlForUnaligned()}) with body: ${JSON.stringify(body)}`);
|
|
103
|
+
const response = await require_fetch.fetchWithRetries(require_remoteGeneration.getRemoteGenerationUrlForUnaligned(), {
|
|
104
|
+
method: "POST",
|
|
105
|
+
headers: { "Content-Type": "application/json" },
|
|
106
|
+
body: JSON.stringify(body),
|
|
107
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
108
|
+
}, 58e4, 2);
|
|
109
|
+
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
110
|
+
const data = await response.json();
|
|
111
|
+
return { output: (Array.isArray(data.output) ? data.output : [data.output]).filter((item) => typeof item === "string" && item.length > 0) };
|
|
112
|
+
} catch (err) {
|
|
113
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
114
|
+
require_logger.logger.info(`[HarmfulCompletionProvider] ${err}`);
|
|
115
|
+
return { error: `[HarmfulCompletionProvider] ${err}` };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Provider for red team adversarial strategies using Promptfoo's task-specific models.
|
|
121
|
+
* Supports multi-turn attack strategies like crescendo, goat, and iterative attacks.
|
|
122
|
+
*/
|
|
123
|
+
var PromptfooChatCompletionProvider = class {
|
|
124
|
+
options;
|
|
125
|
+
constructor(options) {
|
|
126
|
+
this.options = options;
|
|
127
|
+
}
|
|
128
|
+
id() {
|
|
129
|
+
return this.options.id || "promptfoo:chatcompletion";
|
|
130
|
+
}
|
|
131
|
+
toString() {
|
|
132
|
+
return `[Promptfoo Chat Completion Provider]`;
|
|
133
|
+
}
|
|
134
|
+
async callApi(prompt, context, callApiOptions) {
|
|
135
|
+
if (require_remoteGeneration.neverGenerateRemote()) return { error: dedent.default`
|
|
136
|
+
Remote generation is disabled. This red team strategy requires Promptfoo's task-specific models.
|
|
137
|
+
|
|
138
|
+
To enable:
|
|
139
|
+
- Remove PROMPTFOO_DISABLE_REMOTE_GENERATION (or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION)
|
|
140
|
+
- Or provide OPENAI_API_KEY for local generation (may have lower quality)
|
|
141
|
+
|
|
142
|
+
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
143
|
+
` };
|
|
144
|
+
const materializationContext = getRemoteMaterializationContextFromVars(context?.vars);
|
|
145
|
+
const body = {
|
|
146
|
+
jsonOnly: this.options.jsonOnly,
|
|
147
|
+
preferSmallModel: this.options.preferSmallModel,
|
|
148
|
+
prompt,
|
|
149
|
+
step: context?.prompt.label,
|
|
150
|
+
task: this.options.task,
|
|
151
|
+
email: require_accounts.getUserEmail(),
|
|
152
|
+
...this.options.inputs && { inputs: this.options.inputs },
|
|
153
|
+
...materializationContext ? { materializationContext } : {}
|
|
154
|
+
};
|
|
155
|
+
try {
|
|
156
|
+
const response = await require_fetch.fetchWithRetries(require_remoteGeneration.getRemoteGenerationUrl(), {
|
|
157
|
+
method: "POST",
|
|
158
|
+
headers: { "Content-Type": "application/json" },
|
|
159
|
+
body: JSON.stringify(body),
|
|
160
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
161
|
+
}, require_fetch.REQUEST_TIMEOUT_MS);
|
|
162
|
+
const data = await response.json();
|
|
163
|
+
if (!data.result) {
|
|
164
|
+
require_logger.logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
|
|
165
|
+
return { error: "LLM did not return a result, likely refusal" };
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
inputMaterialization: data.inputMaterialization,
|
|
169
|
+
materializationHandled: data.materializationHandled,
|
|
170
|
+
materializedVars: data.materializedVars,
|
|
171
|
+
output: data.result,
|
|
172
|
+
tokenUsage: data.tokenUsage
|
|
173
|
+
};
|
|
174
|
+
} catch (err) {
|
|
175
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
176
|
+
return { error: `API call error: ${String(err)}` };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
const REDTEAM_SIMULATED_USER_TASK_ID = "mischievous-user-redteam";
|
|
181
|
+
/**
|
|
182
|
+
* Provider for simulating realistic user conversations using Promptfoo's conversation models.
|
|
183
|
+
* Supports both regular simulated users and adversarial red team users.
|
|
184
|
+
*/
|
|
185
|
+
var PromptfooSimulatedUserProvider = class {
|
|
186
|
+
options;
|
|
187
|
+
taskId;
|
|
188
|
+
constructor(options = {}, taskId) {
|
|
189
|
+
this.options = options;
|
|
190
|
+
this.taskId = taskId;
|
|
191
|
+
}
|
|
192
|
+
id() {
|
|
193
|
+
return this.options.id || "promptfoo:agent";
|
|
194
|
+
}
|
|
195
|
+
toString() {
|
|
196
|
+
return "[Promptfoo Agent Provider]";
|
|
197
|
+
}
|
|
198
|
+
async callApi(prompt, _context, callApiOptions) {
|
|
199
|
+
const isRedteamTask = this.taskId === REDTEAM_SIMULATED_USER_TASK_ID;
|
|
200
|
+
if (isRedteamTask ? require_remoteGeneration.neverGenerateRemote() : require_remoteGeneration.neverGenerateRemoteForRegularEvals()) return { error: dedent.default`
|
|
201
|
+
Remote generation is disabled.
|
|
202
|
+
|
|
203
|
+
SimulatedUser requires Promptfoo's conversation simulation models.
|
|
204
|
+
|
|
205
|
+
To enable, remove ${isRedteamTask ? "PROMPTFOO_DISABLE_REMOTE_GENERATION or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION" : "PROMPTFOO_DISABLE_REMOTE_GENERATION"}
|
|
206
|
+
|
|
207
|
+
Learn more: ${isRedteamTask ? "https://www.promptfoo.dev/docs/red-team/configuration#remote-generation" : "https://www.promptfoo.dev/docs/providers/simulated-user#remote-generation"}
|
|
208
|
+
` };
|
|
209
|
+
const messages = JSON.parse(prompt);
|
|
210
|
+
const body = {
|
|
211
|
+
task: this.taskId,
|
|
212
|
+
instructions: this.options.instructions,
|
|
213
|
+
history: messages,
|
|
214
|
+
email: require_accounts.getUserEmail(),
|
|
215
|
+
version: require_version.VERSION
|
|
216
|
+
};
|
|
217
|
+
try {
|
|
218
|
+
const response = await require_fetch.fetchWithRetries(require_remoteGeneration.getRemoteGenerationUrl(), {
|
|
219
|
+
method: "POST",
|
|
220
|
+
headers: { "Content-Type": "application/json" },
|
|
221
|
+
body: JSON.stringify(body),
|
|
222
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
223
|
+
}, require_fetch.REQUEST_TIMEOUT_MS);
|
|
224
|
+
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
225
|
+
const data = await response.json();
|
|
226
|
+
return {
|
|
227
|
+
output: data.result,
|
|
228
|
+
tokenUsage: data.tokenUsage
|
|
229
|
+
};
|
|
230
|
+
} catch (err) {
|
|
231
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
232
|
+
return { error: `API call error: ${String(err)}` };
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
//#endregion
|
|
237
|
+
Object.defineProperty(exports, "PromptfooChatCompletionProvider", {
|
|
238
|
+
enumerable: true,
|
|
239
|
+
get: function() {
|
|
240
|
+
return PromptfooChatCompletionProvider;
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
Object.defineProperty(exports, "PromptfooHarmfulCompletionProvider", {
|
|
244
|
+
enumerable: true,
|
|
245
|
+
get: function() {
|
|
246
|
+
return PromptfooHarmfulCompletionProvider;
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
Object.defineProperty(exports, "PromptfooSimulatedUserProvider", {
|
|
250
|
+
enumerable: true,
|
|
251
|
+
get: function() {
|
|
252
|
+
return PromptfooSimulatedUserProvider;
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
Object.defineProperty(exports, "REDTEAM_SIMULATED_USER_TASK_ID", {
|
|
256
|
+
enumerable: true,
|
|
257
|
+
get: function() {
|
|
258
|
+
return REDTEAM_SIMULATED_USER_TASK_ID;
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
Object.defineProperty(exports, "assertRemoteMaterializationHandled", {
|
|
262
|
+
enumerable: true,
|
|
263
|
+
get: function() {
|
|
264
|
+
return assertRemoteMaterializationHandled;
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
Object.defineProperty(exports, "buildRemoteMaterializationContextVars", {
|
|
268
|
+
enumerable: true,
|
|
269
|
+
get: function() {
|
|
270
|
+
return buildRemoteMaterializationContextVars;
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
Object.defineProperty(exports, "buildRemoteMaterializedInputVariables", {
|
|
274
|
+
enumerable: true,
|
|
275
|
+
get: function() {
|
|
276
|
+
return buildRemoteMaterializedInputVariables;
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
Object.defineProperty(exports, "isRemoteMaterializationUpgradeError", {
|
|
280
|
+
enumerable: true,
|
|
281
|
+
get: function() {
|
|
282
|
+
return isRemoteMaterializationUpgradeError;
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
Object.defineProperty(exports, "requiresRemoteMaterialization", {
|
|
286
|
+
enumerable: true,
|
|
287
|
+
get: function() {
|
|
288
|
+
return requiresRemoteMaterialization;
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
//# sourceMappingURL=promptfoo-ClChwT74.cjs.map
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { a as logger } from "./logger-Ct2S6Yx-.js";
|
|
2
|
+
import { Vt as getInputType } from "./types-D6glLbdF.js";
|
|
3
|
+
import { n as fetchWithRetries, p as REQUEST_TIMEOUT_MS } from "./fetch-Doks14zQ.js";
|
|
4
|
+
import { n as VERSION } from "./version-qVEN5qCm.js";
|
|
5
|
+
import { i as getUserEmail } from "./accounts-DAv_0iE7.js";
|
|
6
|
+
import { c as neverGenerateRemoteForRegularEvals, i as getRemoteGenerationUrlForUnaligned, r as getRemoteGenerationUrl, s as neverGenerateRemote } from "./remoteGeneration-CJC3E0aW.js";
|
|
7
|
+
import dedent from "dedent";
|
|
8
|
+
//#region src/redteam/remoteMaterialization.ts
|
|
9
|
+
const REMOTE_MATERIALIZATION_CONTEXT_VAR = "__promptfooRemoteMaterialization";
|
|
10
|
+
function filterMaterializedVarsToInputs(vars, inputs, options) {
|
|
11
|
+
if (!inputs || Object.keys(inputs).length === 0) return vars;
|
|
12
|
+
return Object.fromEntries(Object.entries(vars).filter(([key]) => {
|
|
13
|
+
if (!Object.prototype.hasOwnProperty.call(inputs, key)) return false;
|
|
14
|
+
if (!options?.textOnly) return true;
|
|
15
|
+
return getInputType(inputs[key]) === "text";
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
function buildRemoteMaterializedInputVariables(response, fallbackVars, inputs) {
|
|
19
|
+
const filteredFallbackVars = filterMaterializedVarsToInputs(fallbackVars, inputs, { textOnly: true });
|
|
20
|
+
const filteredMaterializedVars = filterMaterializedVarsToInputs(response.materializedVars ?? {}, inputs);
|
|
21
|
+
return {
|
|
22
|
+
...response.inputMaterialization ? { metadata: response.inputMaterialization } : {},
|
|
23
|
+
vars: {
|
|
24
|
+
...filteredFallbackVars,
|
|
25
|
+
...filteredMaterializedVars
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function getRemoteMaterializationHost() {
|
|
30
|
+
const remoteUrl = getRemoteGenerationUrl();
|
|
31
|
+
try {
|
|
32
|
+
return new URL(remoteUrl).origin;
|
|
33
|
+
} catch {
|
|
34
|
+
return remoteUrl;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function buildRemoteMaterializationContextVars(context) {
|
|
38
|
+
return { [REMOTE_MATERIALIZATION_CONTEXT_VAR]: context };
|
|
39
|
+
}
|
|
40
|
+
function getRemoteMaterializationContextFromVars(vars) {
|
|
41
|
+
const raw = vars?.[REMOTE_MATERIALIZATION_CONTEXT_VAR];
|
|
42
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return;
|
|
43
|
+
return raw;
|
|
44
|
+
}
|
|
45
|
+
function requiresRemoteMaterialization(inputs) {
|
|
46
|
+
return Boolean(inputs && Object.keys(inputs).length > 0);
|
|
47
|
+
}
|
|
48
|
+
function getRemoteMaterializationUpgradeError(operation) {
|
|
49
|
+
return `${operation} requires remote multi-input materialization support from a newer Promptfoo server. Current remote endpoint: ${getRemoteMaterializationHost()}. Upgrade the Promptfoo server you are connected to and try again.`;
|
|
50
|
+
}
|
|
51
|
+
function isRemoteMaterializationUpgradeError(error) {
|
|
52
|
+
return error instanceof Error && error.message.includes("requires remote multi-input materialization support from a newer");
|
|
53
|
+
}
|
|
54
|
+
function assertRemoteMaterializationHandled(response, operation) {
|
|
55
|
+
if (response?.materializationHandled === true) return;
|
|
56
|
+
throw new Error(getRemoteMaterializationUpgradeError(operation));
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
//#region src/providers/promptfoo.ts
|
|
60
|
+
/**
|
|
61
|
+
* Provider for generating harmful/adversarial content using Promptfoo's unaligned models.
|
|
62
|
+
* Used by red team plugins to generate test cases for harmful content categories.
|
|
63
|
+
*/
|
|
64
|
+
var PromptfooHarmfulCompletionProvider = class {
|
|
65
|
+
harmCategory;
|
|
66
|
+
n;
|
|
67
|
+
purpose;
|
|
68
|
+
config;
|
|
69
|
+
constructor(options) {
|
|
70
|
+
this.harmCategory = options.harmCategory;
|
|
71
|
+
this.n = options.n;
|
|
72
|
+
this.purpose = options.purpose;
|
|
73
|
+
this.config = options.config;
|
|
74
|
+
}
|
|
75
|
+
id() {
|
|
76
|
+
return `promptfoo:redteam:${this.harmCategory}`;
|
|
77
|
+
}
|
|
78
|
+
toString() {
|
|
79
|
+
return `[Promptfoo Harmful Completion Provider ${this.purpose} - ${this.harmCategory}]`;
|
|
80
|
+
}
|
|
81
|
+
async callApi(_prompt, _context, callApiOptions) {
|
|
82
|
+
if (neverGenerateRemote()) return { error: dedent`
|
|
83
|
+
Remote generation is disabled. Harmful content generation requires Promptfoo's unaligned models.
|
|
84
|
+
|
|
85
|
+
To enable:
|
|
86
|
+
- Remove PROMPTFOO_DISABLE_REMOTE_GENERATION (or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION)
|
|
87
|
+
- Or configure an alternative unaligned model provider
|
|
88
|
+
|
|
89
|
+
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
90
|
+
` };
|
|
91
|
+
const body = {
|
|
92
|
+
email: getUserEmail(),
|
|
93
|
+
harmCategory: this.harmCategory,
|
|
94
|
+
n: this.n,
|
|
95
|
+
purpose: this.purpose,
|
|
96
|
+
version: VERSION,
|
|
97
|
+
config: this.config
|
|
98
|
+
};
|
|
99
|
+
try {
|
|
100
|
+
logger.debug(`[HarmfulCompletionProvider] Calling generate harmful API (${getRemoteGenerationUrlForUnaligned()}) with body: ${JSON.stringify(body)}`);
|
|
101
|
+
const response = await fetchWithRetries(getRemoteGenerationUrlForUnaligned(), {
|
|
102
|
+
method: "POST",
|
|
103
|
+
headers: { "Content-Type": "application/json" },
|
|
104
|
+
body: JSON.stringify(body),
|
|
105
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
106
|
+
}, 58e4, 2);
|
|
107
|
+
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
108
|
+
const data = await response.json();
|
|
109
|
+
return { output: (Array.isArray(data.output) ? data.output : [data.output]).filter((item) => typeof item === "string" && item.length > 0) };
|
|
110
|
+
} catch (err) {
|
|
111
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
112
|
+
logger.info(`[HarmfulCompletionProvider] ${err}`);
|
|
113
|
+
return { error: `[HarmfulCompletionProvider] ${err}` };
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Provider for red team adversarial strategies using Promptfoo's task-specific models.
|
|
119
|
+
* Supports multi-turn attack strategies like crescendo, goat, and iterative attacks.
|
|
120
|
+
*/
|
|
121
|
+
var PromptfooChatCompletionProvider = class {
|
|
122
|
+
options;
|
|
123
|
+
constructor(options) {
|
|
124
|
+
this.options = options;
|
|
125
|
+
}
|
|
126
|
+
id() {
|
|
127
|
+
return this.options.id || "promptfoo:chatcompletion";
|
|
128
|
+
}
|
|
129
|
+
toString() {
|
|
130
|
+
return `[Promptfoo Chat Completion Provider]`;
|
|
131
|
+
}
|
|
132
|
+
async callApi(prompt, context, callApiOptions) {
|
|
133
|
+
if (neverGenerateRemote()) return { error: dedent`
|
|
134
|
+
Remote generation is disabled. This red team strategy requires Promptfoo's task-specific models.
|
|
135
|
+
|
|
136
|
+
To enable:
|
|
137
|
+
- Remove PROMPTFOO_DISABLE_REMOTE_GENERATION (or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION)
|
|
138
|
+
- Or provide OPENAI_API_KEY for local generation (may have lower quality)
|
|
139
|
+
|
|
140
|
+
Learn more: https://www.promptfoo.dev/docs/red-team/configuration#remote-generation
|
|
141
|
+
` };
|
|
142
|
+
const materializationContext = getRemoteMaterializationContextFromVars(context?.vars);
|
|
143
|
+
const body = {
|
|
144
|
+
jsonOnly: this.options.jsonOnly,
|
|
145
|
+
preferSmallModel: this.options.preferSmallModel,
|
|
146
|
+
prompt,
|
|
147
|
+
step: context?.prompt.label,
|
|
148
|
+
task: this.options.task,
|
|
149
|
+
email: getUserEmail(),
|
|
150
|
+
...this.options.inputs && { inputs: this.options.inputs },
|
|
151
|
+
...materializationContext ? { materializationContext } : {}
|
|
152
|
+
};
|
|
153
|
+
try {
|
|
154
|
+
const response = await fetchWithRetries(getRemoteGenerationUrl(), {
|
|
155
|
+
method: "POST",
|
|
156
|
+
headers: { "Content-Type": "application/json" },
|
|
157
|
+
body: JSON.stringify(body),
|
|
158
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
159
|
+
}, REQUEST_TIMEOUT_MS);
|
|
160
|
+
const data = await response.json();
|
|
161
|
+
if (!data.result) {
|
|
162
|
+
logger.debug(`Error from promptfoo completion provider. Status: ${response.status} ${response.statusText} ${JSON.stringify(data)} `);
|
|
163
|
+
return { error: "LLM did not return a result, likely refusal" };
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
inputMaterialization: data.inputMaterialization,
|
|
167
|
+
materializationHandled: data.materializationHandled,
|
|
168
|
+
materializedVars: data.materializedVars,
|
|
169
|
+
output: data.result,
|
|
170
|
+
tokenUsage: data.tokenUsage
|
|
171
|
+
};
|
|
172
|
+
} catch (err) {
|
|
173
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
174
|
+
return { error: `API call error: ${String(err)}` };
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
const REDTEAM_SIMULATED_USER_TASK_ID = "mischievous-user-redteam";
|
|
179
|
+
/**
|
|
180
|
+
* Provider for simulating realistic user conversations using Promptfoo's conversation models.
|
|
181
|
+
* Supports both regular simulated users and adversarial red team users.
|
|
182
|
+
*/
|
|
183
|
+
var PromptfooSimulatedUserProvider = class {
|
|
184
|
+
options;
|
|
185
|
+
taskId;
|
|
186
|
+
constructor(options = {}, taskId) {
|
|
187
|
+
this.options = options;
|
|
188
|
+
this.taskId = taskId;
|
|
189
|
+
}
|
|
190
|
+
id() {
|
|
191
|
+
return this.options.id || "promptfoo:agent";
|
|
192
|
+
}
|
|
193
|
+
toString() {
|
|
194
|
+
return "[Promptfoo Agent Provider]";
|
|
195
|
+
}
|
|
196
|
+
async callApi(prompt, _context, callApiOptions) {
|
|
197
|
+
const isRedteamTask = this.taskId === REDTEAM_SIMULATED_USER_TASK_ID;
|
|
198
|
+
if (isRedteamTask ? neverGenerateRemote() : neverGenerateRemoteForRegularEvals()) return { error: dedent`
|
|
199
|
+
Remote generation is disabled.
|
|
200
|
+
|
|
201
|
+
SimulatedUser requires Promptfoo's conversation simulation models.
|
|
202
|
+
|
|
203
|
+
To enable, remove ${isRedteamTask ? "PROMPTFOO_DISABLE_REMOTE_GENERATION or PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION" : "PROMPTFOO_DISABLE_REMOTE_GENERATION"}
|
|
204
|
+
|
|
205
|
+
Learn more: ${isRedteamTask ? "https://www.promptfoo.dev/docs/red-team/configuration#remote-generation" : "https://www.promptfoo.dev/docs/providers/simulated-user#remote-generation"}
|
|
206
|
+
` };
|
|
207
|
+
const messages = JSON.parse(prompt);
|
|
208
|
+
const body = {
|
|
209
|
+
task: this.taskId,
|
|
210
|
+
instructions: this.options.instructions,
|
|
211
|
+
history: messages,
|
|
212
|
+
email: getUserEmail(),
|
|
213
|
+
version: VERSION
|
|
214
|
+
};
|
|
215
|
+
try {
|
|
216
|
+
const response = await fetchWithRetries(getRemoteGenerationUrl(), {
|
|
217
|
+
method: "POST",
|
|
218
|
+
headers: { "Content-Type": "application/json" },
|
|
219
|
+
body: JSON.stringify(body),
|
|
220
|
+
...callApiOptions?.abortSignal && { signal: callApiOptions.abortSignal }
|
|
221
|
+
}, REQUEST_TIMEOUT_MS);
|
|
222
|
+
if (!response.ok) throw new Error(`API call failed with status ${response.status}: ${await response.text()}`);
|
|
223
|
+
const data = await response.json();
|
|
224
|
+
return {
|
|
225
|
+
output: data.result,
|
|
226
|
+
tokenUsage: data.tokenUsage
|
|
227
|
+
};
|
|
228
|
+
} catch (err) {
|
|
229
|
+
if (err instanceof Error && err.name === "AbortError") throw err;
|
|
230
|
+
return { error: `API call error: ${String(err)}` };
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
//#endregion
|
|
235
|
+
export { assertRemoteMaterializationHandled as a, isRemoteMaterializationUpgradeError as c, REDTEAM_SIMULATED_USER_TASK_ID as i, requiresRemoteMaterialization as l, PromptfooHarmfulCompletionProvider as n, buildRemoteMaterializationContextVars as o, PromptfooSimulatedUserProvider as r, buildRemoteMaterializedInputVariables as s, PromptfooChatCompletionProvider as t };
|
|
236
|
+
|
|
237
|
+
//# sourceMappingURL=promptfoo-CqEpj6Sr.js.map
|