promptfoo 0.120.27 → 0.121.2
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/README.md +1 -1
- package/dist/src/{ListApp-8WOe2nT6.js → ListApp-Du7YVwj5.js} +2 -4
- package/dist/src/accounts-B0pgC1oV.js +206 -0
- package/dist/src/{accounts-DVINui-2.js → accounts-Bm2D8Db9.js} +39 -34
- package/dist/src/{accounts-CPDRAMND.js → accounts-CiBLOnA7.js} +38 -33
- package/dist/src/{accounts-Fl2J3_Fu.cjs → accounts-gtkH-5KX.cjs} +77 -78
- package/dist/src/{agentic-utils-D922n6mm.js → agentic-utils-DS1g3GLF.js} +9 -10
- package/dist/src/{agents-BcsN_BgB.js → agents-9qiOy0ho.js} +16 -12
- package/dist/src/{agents-BXLmVsxR.js → agents-CBr9A01V.js} +37 -37
- package/dist/src/{agents-pMfppv9Z.js → agents-CmvBq8LV.js} +16 -18
- package/dist/src/{agents-hqgSV-3o.js → agents-D__IdAlg.js} +39 -40
- package/dist/src/{agents-BO2n8Z0d.cjs → agents-DbRtpYxR.cjs} +37 -40
- package/dist/src/{agents-BdUTAwi-.js → agents-DgF2zDag.js} +37 -42
- package/dist/src/{agents-DgJf2-ez.cjs → agents-Di9DKPzn.cjs} +16 -17
- package/dist/src/{agents-DNvSH78i.js → agents-cLXA8a_8.js} +17 -19
- package/dist/src/{aimlapi-DtgPI0nE.js → aimlapi-B4rcnZgv.js} +15 -17
- package/dist/src/{aimlapi-BE_Tg9Fl.cjs → aimlapi-BvlNH0gr.cjs} +15 -16
- package/dist/src/{aimlapi-DOib86oE.js → aimlapi-CnkC2HqE.js} +16 -18
- package/dist/src/{aimlapi-DTPACCB1.js → aimlapi-DHJU_kcV.js} +15 -4
- package/dist/src/app/assets/index-4LKxG2CG.js +439 -0
- package/dist/src/app/assets/{index-NCn4eVBv.css → index-C3zcsZFQ.css} +1 -1
- package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +36 -0
- package/dist/src/app/index.html +3 -3
- package/dist/src/app/tsconfig.app.tsbuildinfo +1 -1
- package/dist/src/{audio-BnRUGAm_.js → audio-Bkv46et0.js} +6 -5
- package/dist/src/{audio-Cwo68yZS.cjs → audio-CGMyULza.cjs} +6 -7
- package/dist/src/{audio-MSRki4JU.js → audio-ClI_AFre.js} +6 -8
- package/dist/src/{audio-BRYU0BFo.js → audio-Dz3z7s3J.js} +7 -9
- package/dist/src/{base-pGVmXNl4.cjs → base-CGrhspbK.cjs} +36 -38
- package/dist/src/{base-h961VXYk.js → base-CpjcHe4e.js} +11 -13
- package/dist/src/base-DLKtKMFh.js +193 -0
- package/dist/src/{base-XB2tDJrB.js → base-Dy1V8--Z.js} +11 -13
- package/dist/src/blobs-BDbfYdrJ.js +236 -0
- package/dist/src/{blobs-CR5C4Ihh.js → blobs-CBO20krR.js} +9 -12
- package/dist/src/{blobs-BM_e6hCa.js → blobs-CMHN0Qcz.js} +9 -12
- package/dist/src/{blobs-B-KQAFhX.cjs → blobs-D23XLin-.cjs} +34 -37
- package/dist/src/{cache-jsiwsAJv.js → cache-BVeDlD87.js} +132 -117
- package/dist/src/{cache-CIpsoBZR.js → cache-C4Nxf52C.js} +132 -118
- package/dist/src/cache-CeUpFm3M.cjs +5 -0
- package/dist/src/{cache-BTVYfbka.cjs → cache-Dh5WtQps.cjs} +182 -168
- package/dist/src/cache-i1P6crbO.js +756 -0
- package/dist/src/cache-n-RCJ-hL.js +6 -0
- package/dist/src/{chat-BcPjZXIp.js → chat-BiKyneZl.js} +45 -46
- package/dist/src/{chat-D31K7C4u.cjs → chat-C1Qst7jL.cjs} +20 -21
- package/dist/src/{chat-B84t99NW.js → chat-C2jrdPMx.js} +20 -9
- package/dist/src/{chat-BE44YOc6.cjs → chat-CgF-J-Jj.cjs} +65 -66
- package/dist/src/{chat-DwWifjxi.js → chat-CzkrVDfz.js} +20 -22
- package/dist/src/chat-DJIw17u0.js +766 -0
- package/dist/src/{chat-CcUCysjU.js → chat-DqxYYtWA.js} +45 -46
- package/dist/src/{chat-DZM2GUHO.js → chat-qmatte1u.js} +21 -23
- package/dist/src/{chatkit-D67HS_0b.js → chatkit-65VXf5SR.js} +58 -58
- package/dist/src/{chatkit-DAB_qfzI.js → chatkit-Be-Q-a9F.js} +58 -60
- package/dist/src/{chatkit-Biqb_wsD.js → chatkit-BxFvW8KY.js} +58 -60
- package/dist/src/{chatkit-PGG4ZYIn.cjs → chatkit-DKyPi1Gs.cjs} +58 -60
- package/dist/src/chunk-DEq-mXcV.js +15 -0
- package/dist/src/chunk-DRamLcfz.js +16 -0
- package/dist/src/{claude-agent-sdk-SVM6AdBu.js → claude-agent-sdk-Apiy0iaz.js} +31 -31
- package/dist/src/{claude-agent-sdk-C-IOTPfo.js → claude-agent-sdk-D2bJee9S.js} +31 -29
- package/dist/src/{claude-agent-sdk-C9SiaQub.cjs → claude-agent-sdk-D9Z5Pr9X.cjs} +31 -28
- package/dist/src/{claude-agent-sdk-CiluSyW1.js → claude-agent-sdk-DfCoW0E6.js} +33 -20
- package/dist/src/cloud-BBh91EUK.js +4 -0
- package/dist/src/{cloud-CZ-q9Ier.js → cloud-C0dlstV_.js} +7 -9
- package/dist/src/{cloudflare-ai-BahKHyhh.js → cloudflare-ai-8TDxHR0x.js} +16 -18
- package/dist/src/{cloudflare-ai-v_qZD6_q.js → cloudflare-ai-BxAGvfju.js} +17 -19
- package/dist/src/{cloudflare-ai-Dfahv5SY.cjs → cloudflare-ai-CknbZ5LJ.cjs} +16 -17
- package/dist/src/{cloudflare-ai-Dxyt50Nl.js → cloudflare-ai-g7PB6VHR.js} +16 -4
- package/dist/src/{cloudflare-gateway-Bi_FpOFy.js → cloudflare-gateway-B9HWA5wf.js} +23 -23
- package/dist/src/{cloudflare-gateway-BPWoZIzJ.cjs → cloudflare-gateway-BSnDmHYo.cjs} +21 -22
- package/dist/src/{cloudflare-gateway-C0guUNwk.js → cloudflare-gateway-CKDb4dJ8.js} +26 -14
- package/dist/src/{cloudflare-gateway-btS7h1OZ.js → cloudflare-gateway-CP9QEWYS.js} +21 -25
- package/dist/src/{codex-sdk-DSxAnbfT.js → codex-sdk-C6UMlxwV.js} +28 -29
- package/dist/src/{codex-sdk-IYVi9fuM.js → codex-sdk-DUwKWezN.js} +28 -27
- package/dist/src/{codex-sdk-DulY0ZRq.js → codex-sdk-GGAw0qbD.js} +28 -29
- package/dist/src/{codex-sdk-DFKMtAyf.cjs → codex-sdk-fAO0c3yA.cjs} +28 -29
- package/dist/src/{cometapi-DzrR3SR_.js → cometapi-BL9yvj_f.js} +16 -4
- package/dist/src/{cometapi-DIO64tf4.cjs → cometapi-C4xSqeID.cjs} +21 -22
- package/dist/src/{cometapi-C9EEpJzT.js → cometapi-CUQq3H_a.js} +21 -24
- package/dist/src/{cometapi-DkNBMk0G.js → cometapi-DFNiKmSz.js} +17 -19
- package/dist/src/{completion-CG29bfKX.js → completion-5MzrpJxT.js} +11 -13
- package/dist/src/{completion-CCRT4kX1.cjs → completion-CM6oK8PS.cjs} +21 -23
- package/dist/src/{completion-Bgf1VJoq.js → completion-DZ083F31.js} +11 -13
- package/dist/src/completion-qRoZAYRB.js +120 -0
- package/dist/src/{createHash-Dw_iLu31.js → createHash-CTQmL3G2.js} +2 -3
- package/dist/src/{createHash-CYQy4YeL.cjs → createHash-CfZSc0b4.cjs} +13 -14
- package/dist/src/{createHash-CJcfskIZ.js → createHash-Da8fMwqB.js} +2 -3
- package/dist/src/createHash-DmPQkvBh.js +15 -0
- package/dist/src/{docker-D-ayp2FW.js → docker-Bb5dcxr8.js} +18 -20
- package/dist/src/{docker-B81N0t4e.js → docker-BvfL2BrW.js} +19 -21
- package/dist/src/{docker-DNcLR4Ig.cjs → docker-DcF2pRrj.cjs} +18 -19
- package/dist/src/{docker-egERKxCF.js → docker-ExVyLp0S.js} +18 -7
- package/dist/src/entrypoint.js +2 -3
- package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
- package/dist/src/{esm-B9dPm_BF.js → esm-C03C-mv3.js} +17 -20
- package/dist/src/{esm-D2pZ87fL.js → esm-CaIwzWR5.js} +18 -21
- package/dist/src/esm-Cd1AjG1D.js +379 -0
- package/dist/src/{esm-Ct-Joyue.cjs → esm-CnNt7sI4.cjs} +47 -49
- package/dist/src/eval-B3r2CVXr.js +15 -0
- package/dist/src/{eval-C-Nr6wX_.js → eval-Dg2nG4v2.js} +47 -54
- package/dist/src/evalResult-5xwYnECe.js +12 -0
- package/dist/src/evalResult-71lY93Kj.cjs +10 -0
- package/dist/src/{evalResult-DXMWJ3sx.js → evalResult-BBRNtX4I.js} +10 -11
- package/dist/src/{evalResult-4BzI2tmj.js → evalResult-BDMqrapS.js} +16 -12
- package/dist/src/evalResult-Dx5P5cIv.js +10 -0
- package/dist/src/{evalResult-CX8wQecI.cjs → evalResult-fuaI8HkH.cjs} +20 -21
- package/dist/src/{evaluator-8aGyV12L.js → evaluator-BhoWwp5b.js} +211 -235
- package/dist/src/evaluator-Jx6bRZV6.js +36 -0
- package/dist/src/{extractor-V5x_m1i0.js → extractor-C0EVHewb.js} +22 -24
- package/dist/src/extractor-D25qpmGX.js +374 -0
- package/dist/src/{extractor-CD5yKL-G.js → extractor-DReVID0K.js} +22 -24
- package/dist/src/{extractor-C031XmTA.cjs → extractor-pYLLi3wS.cjs} +37 -39
- package/dist/src/{fetch-BmbD-v1L.cjs → fetch-BPkYtG8K.cjs} +244 -277
- package/dist/src/fetch-BxNb_Lp3.js +5 -0
- package/dist/src/{fetch-D3OHf-lV.js → fetch-Cwxnd8zz.js} +36 -44
- package/dist/src/{fetch-CXZI9RRr.js → fetch-Dxpd4_sr.js} +23 -35
- package/dist/src/fetch-HaqdX7U1.js +780 -0
- package/dist/src/{fileExtensions-ePDqouxn.js → fileExtensions-DnqA1y9x.js} +2 -2
- package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-Ds-foDzt.js} +2 -2
- package/dist/src/fileExtensions-LcDYkU4v.js +85 -0
- package/dist/src/{fileExtensions-DkJYkWUy.cjs → fileExtensions-bYh77CN8.cjs} +27 -28
- package/dist/src/{formatDuration-CdevI3An.js → formatDuration-DgBVMN65.js} +2 -2
- package/dist/src/{genaiTracer-Ce19n68P.js → genaiTracer-70Z8BIuV.js} +2 -3
- package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-C1rxGO8Q.js} +2 -3
- package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
- package/dist/src/{genaiTracer-Dres3qrN.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
- package/dist/src/{graders--1y2u9HO.js → graders-BTeBGqjJ.js} +349 -397
- package/dist/src/graders-B_pgMLS2.js +34 -0
- package/dist/src/{graders-DTeBrzWp.js → graders-Bj_Odv7c.js} +349 -397
- package/dist/src/graders-DErokPDO.cjs +32 -0
- package/dist/src/graders-DP7KFFo-.js +13466 -0
- package/dist/src/graders-DR_uNe54.js +32 -0
- package/dist/src/{graders-DohM2dir.cjs → graders-DU49_J8Y.cjs} +684 -732
- package/dist/src/graders-w3176Wz-.js +32 -0
- package/dist/src/{image-B0U4Hqll.js → image-B02ogr_b.js} +7 -9
- package/dist/src/{image-DmE-niFE.js → image-B0h9VEMc.js} +6 -5
- package/dist/src/{image-CuKHuccK.cjs → image-BLmROtN3.cjs} +29 -30
- package/dist/src/{image-DNEIf_aI.js → image-Bb4vWQLM.js} +6 -8
- package/dist/src/{image-DpKl2F15.cjs → image-C1madmKh.cjs} +6 -7
- package/dist/src/{image-C3wHC9_h.js → image-CHfWvljl.js} +9 -10
- package/dist/src/{image-O1u4bCFg.js → image-DS-o-0ph.js} +9 -10
- package/dist/src/image-Dpxa1Jt6.js +257 -0
- package/dist/src/index.cjs +615 -695
- package/dist/src/index.d.cts +271 -7
- package/dist/src/index.d.ts +271 -3
- package/dist/src/index.js +580 -664
- package/dist/src/{interactiveCheck-Bxj1Swex.js → interactiveCheck-BgLZUIt3.js} +7 -8
- package/dist/src/{invariant-DT20jrBd.js → invariant-BtWWVVhl.js} +2 -2
- package/dist/src/{invariant-1pAf2CD1.js → invariant-Ddh24eXh.js} +2 -2
- package/dist/src/{invariant-CKcJAQ6M.cjs → invariant-kfQ8Bu82.cjs} +7 -8
- package/dist/src/invariant-vgHWClmd.js +25 -0
- package/dist/src/{knowledgeBase-CEzQobWX.js → knowledgeBase-B3OoKIej.js} +14 -9
- package/dist/src/{knowledgeBase-Be_zyW4L.js → knowledgeBase-CYTLHOt1.js} +16 -16
- package/dist/src/{knowledgeBase-BZ41IFwq.js → knowledgeBase-D33Ty2l6.js} +14 -18
- package/dist/src/{knowledgeBase-D-5BMXlr.cjs → knowledgeBase-DOO_BM9b.cjs} +14 -15
- package/dist/src/{litellm-DnbRJ2if.js → litellm-AaeZcZQF.js} +18 -19
- package/dist/src/{litellm-hUSNM_M2.cjs → litellm-I_hbp_dc.cjs} +17 -17
- package/dist/src/{litellm-CRDqPhNI.js → litellm-NbjknEh6.js} +17 -18
- package/dist/src/{litellm-9vR8zpfU.js → litellm-TrljxD9G.js} +17 -5
- package/dist/src/{logger-CG1uZPbQ.js → logger-CT3IKMKA.js} +10 -29
- package/dist/src/{logger-B7sBeGa0.cjs → logger-Cp1GPUjj.cjs} +152 -180
- package/dist/src/logger-DLcq4dWf.js +713 -0
- package/dist/src/{logger-LSBxlt7a.js → logger-KkObSCzq.js} +13 -31
- package/dist/src/{luma-ray-4blv9iZ2.js → luma-ray-BS2_tY8L.js} +22 -21
- package/dist/src/{luma-ray-drvgdpP9.js → luma-ray-DDsjcgZZ.js} +20 -13
- package/dist/src/{luma-ray-Hm3d6VJE.cjs → luma-ray-Due0n7di.cjs} +20 -21
- package/dist/src/{luma-ray-B2__8lYH.js → luma-ray-f6I2fft-.js} +20 -23
- package/dist/src/main.js +1170 -1321
- package/dist/src/{messages-Uee41Mj5.js → messages-BS17jdMx.js} +22 -24
- package/dist/src/{messages-XhiwCbi4.cjs → messages-Bs1kC7P4.cjs} +32 -34
- package/dist/src/{messages-CGPPidQr.js → messages-D0lx5qK7.js} +22 -24
- package/dist/src/messages-ZJk778GH.js +240 -0
- package/dist/src/{meteor-BYykdXrV.js → meteor-44VjEACX.js} +3 -4
- package/dist/src/{meteor-CsopaHrH.js → meteor-D-SotUw9.js} +3 -4
- package/dist/src/{meteor-e-E-2vVl.cjs → meteor-DLZZ3osF.cjs} +3 -4
- package/dist/src/{meteor-C8lGP6P4.js → meteor-DUiCJRC-.js} +3 -4
- package/dist/src/{modelslab-yKz-ZNB4.js → modelslab-Bmni6skY.js} +17 -10
- package/dist/src/{modelslab-E9gO-bYd.js → modelslab-Bx9IrZfS.js} +18 -20
- package/dist/src/{modelslab-lUVW0cmB.cjs → modelslab-CoUX6Jc_.cjs} +17 -18
- package/dist/src/{modelslab-ClBkr8_9.js → modelslab-DRb74SP4.js} +17 -19
- package/dist/src/{nova-reel-Dk8jNpId.js → nova-reel-BfPq-0Yk.js} +20 -13
- package/dist/src/{nova-reel-D8CuO6QH.cjs → nova-reel-C_QM18Xn.cjs} +20 -21
- package/dist/src/{nova-reel-u2eF2Cxm.js → nova-reel-D_W1tjMH.js} +22 -21
- package/dist/src/{nova-reel-P9bwvtYX.js → nova-reel-bgjxilYW.js} +20 -23
- package/dist/src/{nova-sonic-CK2rAiKi.js → nova-sonic-CFb5GYhg.js} +30 -26
- package/dist/src/{nova-sonic-BaqWlkds.js → nova-sonic-DIGQNR07.js} +30 -31
- package/dist/src/{nova-sonic-yZapPLv7.js → nova-sonic-De1HW5fD.js} +31 -32
- package/dist/src/{nova-sonic-Ds1C-dpm.cjs → nova-sonic-zfcljeRp.cjs} +30 -31
- package/dist/src/{openai-DUFopMrH.cjs → openai-Cuif0GEt.cjs} +8 -9
- package/dist/src/{openai-PblZ3jUE.js → openai-DElQ-fPX.js} +3 -4
- package/dist/src/{openai-CcN1B8Sb.js → openai-DhbB7eWK.js} +3 -4
- package/dist/src/openai-j-sE2O7r.js +44 -0
- package/dist/src/{openclaw-B6qqDr_u.cjs → openclaw-CSugPYAr.cjs} +188 -130
- package/dist/src/{openclaw-A-3_loM7.js → openclaw-DiSz3I5L.js} +180 -109
- package/dist/src/{openclaw-a3lylB-V.js → openclaw-DuvJKEW5.js} +178 -124
- package/dist/src/{openclaw-COn6QzDi.js → openclaw-tiVYRtr-.js} +178 -122
- package/dist/src/opencode-sdk-0j6rTWNb.js +562 -0
- package/dist/src/opencode-sdk-B3CWY9h_.js +560 -0
- package/dist/src/opencode-sdk-BL764Jdi.cjs +564 -0
- package/dist/src/opencode-sdk-C2y6UkP2.js +560 -0
- package/dist/src/{otlpReceiver-oyf5wLGC.js → otlpReceiver-C99PPb48.js} +53 -51
- package/dist/src/{otlpReceiver-lXsYVbpj.cjs → otlpReceiver-CGq6LspY.cjs} +53 -55
- package/dist/src/{otlpReceiver-94URx7UW.js → otlpReceiver-CdNBdbsk.js} +53 -55
- package/dist/src/{otlpReceiver-BmmTiMjA.js → otlpReceiver-D89fR-rC.js} +53 -55
- package/dist/src/{providerRegistry-Cq_JK_CJ.js → providerRegistry-B0RUOLI_.js} +7 -8
- package/dist/src/{providerRegistry-DSSHjMKf.js → providerRegistry-CD8MEar9.js} +7 -8
- package/dist/src/{providerRegistry-CvHEVJad.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
- package/dist/src/providerRegistry-DM8rZYol.js +45 -0
- package/dist/src/providers-B7V0njNs.js +32 -0
- package/dist/src/providers-BEwbhv0X.js +30 -0
- package/dist/src/{providers-Iil64vk9.js → providers-BlqUifFg.js} +1543 -1676
- package/dist/src/providers-CH3C7zf7.js +30 -0
- package/dist/src/{providers-DHbjzW2e.cjs → providers-CgKOSgTR.cjs} +1896 -2029
- package/dist/src/providers-D8lF1sqW.js +33246 -0
- package/dist/src/{providers-BnFpbY_s.js → providers-Dk_6ocUX.js} +1536 -1669
- package/dist/src/providers-zyB6k_38.cjs +31 -0
- package/dist/src/{pythonUtils-CcT5LH1M.js → pythonUtils-C3py6GC1.js} +18 -19
- package/dist/src/{pythonUtils-DBbuI3QJ.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
- package/dist/src/{pythonUtils-hZ8LeQLv.js → pythonUtils-D5nxkQ0P.js} +18 -19
- package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
- package/dist/src/{quiverai-BuI0tE39.js → quiverai-BbOUOn2L.js} +8 -7
- package/dist/src/{quiverai-DCGSZt4U.js → quiverai-CIaELU_m.js} +8 -10
- package/dist/src/{quiverai-DiMVJQDz.cjs → quiverai-PdShCPox.cjs} +8 -9
- package/dist/src/{quiverai-fQNkExW4.js → quiverai-uH-dcTIr.js} +9 -11
- package/dist/src/{render-Dj1smHEb.js → render-Drod8m7K.js} +4 -5
- package/dist/src/responses-CB2jwoAr.js +660 -0
- package/dist/src/{responses-ghR3IOfy.cjs → responses-D8SBTL64.cjs} +39 -42
- package/dist/src/{responses-DOAFFENS.js → responses-DIR9Ud3j.js} +24 -27
- package/dist/src/{responses-CxzoQoBe.js → responses-WNGNYe3K.js} +24 -27
- package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
- package/dist/src/{rubyUtils-CwbGmgYN.js → rubyUtils-BUVePouc.js} +27 -20
- package/dist/src/rubyUtils-BcuGX77l.js +222 -0
- package/dist/src/{rubyUtils-DudlFZed.js → rubyUtils-Boc4HZzX.js} +18 -19
- package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
- package/dist/src/{rubyUtils-C8MhKGHb.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
- package/dist/src/{sagemaker-gmskuyre.js → sagemaker-CNBxx5CJ.js} +75 -70
- package/dist/src/{sagemaker-CcxhlOAR.js → sagemaker-CemTFp2h.js} +75 -79
- package/dist/src/{sagemaker-77zbJ2Q2.cjs → sagemaker-Cl28mZU2.cjs} +75 -76
- package/dist/src/{sagemaker-DuM71dVU.js → sagemaker-YSyBXQQh.js} +77 -77
- package/dist/src/{scanner-DJYiSXQj.js → scanner-BsBlNXNn.js} +100 -121
- package/dist/src/server/index.js +5520 -67427
- package/dist/src/{server-B5v33lvE.cjs → server-C_7Ax-hA.cjs} +57 -67
- package/dist/src/{server-BJ4m4f1D.js → server-CqzrVGpF.js} +26 -29
- package/dist/src/server-CuxBbeSY.js +229 -0
- package/dist/src/server-DA4Cyrrq.js +7 -0
- package/dist/src/server-Dulb-4-K.cjs +5 -0
- package/dist/src/{server-RV_i_YX5.js → server-VWgWb00X.js} +19 -24
- package/dist/src/{signal-BW33JuId.js → signal-4U3mfRvL.js} +9 -11
- package/dist/src/{slack-DEURelTy.cjs → slack-BmVAVGaK.cjs} +7 -8
- package/dist/src/{slack-BQYeW9L3.js → slack-DCUPTzS2.js} +8 -8
- package/dist/src/{slack-BB6yuZzp.js → slack-DOdy_kyv.js} +7 -8
- package/dist/src/{slack-2pRrhhgJ.js → slack-DXMKtA-f.js} +7 -9
- package/dist/src/store-CXGFv4aR.js +228 -0
- package/dist/src/store-CXS-Q_91.js +6 -0
- package/dist/src/{store-D7CgQzAR.cjs → store-DLlFCC4h.cjs} +44 -45
- package/dist/src/{store-DJNsD1iC.js → store-DXilxTl-.js} +40 -36
- package/dist/src/{store-s3SftUwF.js → store-Dim__MDd.js} +34 -35
- package/dist/src/store-eYkaKMwq.cjs +5 -0
- package/dist/src/{tables-DfTsNN7X.js → tables-6YKwjN9-.js} +19 -21
- package/dist/src/tables-DLJPUdUE.js +288 -0
- package/dist/src/{tables-BKTmd6u7.cjs → tables-DPi7wKeM.cjs} +89 -91
- package/dist/src/{tables-DMegD0Xf.js → tables-gftXzE9I.js} +21 -23
- package/dist/src/telemetry-BpMfhthR.cjs +5 -0
- package/dist/src/{telemetry--WAdAfVi.js → telemetry-CMrFgtPB.js} +11 -13
- package/dist/src/telemetry-Cps3mIU-.js +171 -0
- package/dist/src/{telemetry-DQgVBCAb.cjs → telemetry-DaX14Chu.cjs} +21 -24
- package/dist/src/{telemetry-BedSm-bZ.js → telemetry-Dthj_BbD.js} +17 -14
- package/dist/src/telemetry-Dw38hanS.js +7 -0
- package/dist/src/{text-oiSbwSOI.js → text-B_UCRPp2.js} +2 -2
- package/dist/src/{text-oKzCBnK6.cjs → text-CW1cyrwj.cjs} +12 -13
- package/dist/src/{text-B_IrO4GZ.js → text-Db-Wt2u2.js} +2 -2
- package/dist/src/text-TIv0QYnd.js +22 -0
- package/dist/src/{tokenUsageUtils-FZd5O_4A.js → tokenUsageUtils-BDGe-iyI.js} +2 -2
- package/dist/src/{tokenUsageUtils-DmZSD2eU.js → tokenUsageUtils-DflFMjS0.js} +2 -2
- package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
- package/dist/src/{tokenUsageUtils-CXhxVj72.cjs → tokenUsageUtils-bVa1ga6f.cjs} +32 -33
- package/dist/src/{transcription-mYS9vd5v.js → transcription-BNYURcXg.js} +14 -7
- package/dist/src/{transcription-X2-B4vkX.js → transcription-B_OdaHp7.js} +14 -16
- package/dist/src/{transcription-BO1AHegO.cjs → transcription-NLVG9MT1.cjs} +14 -15
- package/dist/src/{transcription-lzBLiTFJ.js → transcription-s6A-bNrZ.js} +15 -17
- package/dist/src/{transform-B1Hi5lWS.cjs → transform-CzK1Q0zl.cjs} +24 -26
- package/dist/src/{transform-DeGlxb0D.js → transform-D5HsjduX.js} +39 -47
- package/dist/src/{transform-CYDILYDe.js → transform-DECvGmzp.js} +15 -13
- package/dist/src/transform-DTGDnAzW.js +6 -0
- package/dist/src/{transform-BEgStbHK.js → transform-DilY9wbS.js} +10 -12
- package/dist/src/{transform-D5PjiWiZ.cjs → transform-DuHvhZpj.cjs} +179 -187
- package/dist/src/transform-aa6tmVpZ.js +216 -0
- package/dist/src/transform-m3qNw4KP.cjs +5 -0
- package/dist/src/transform-uAytVuyX.js +1506 -0
- package/dist/src/{transform-Dfl89yi4.js → transform-vNucnNr0.js} +39 -47
- package/dist/src/{transformersAvailability-SZnTS3pJ.js → transformersAvailability-CEVM2GNQ.js} +2 -2
- package/dist/src/{transformersAvailability-D-glmEy7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
- package/dist/src/{transformersAvailability-CjeFXhuJ.js → transformersAvailability-D6c6ROpT.js} +2 -2
- package/dist/src/{types-DWNf48sT.cjs → types-C_7nyzr1.cjs} +538 -574
- package/dist/src/{types-CXQduE9o.js → types-Cbd8uOMq.js} +68 -100
- package/dist/src/types-CzW2QFyi.js +3288 -0
- package/dist/src/{types-C5hEkb-x.js → types-DmyIJ-sR.js} +63 -99
- package/dist/src/{util-CoQjmE3u.js → util-B3xGByQh.js} +4 -5
- package/dist/src/{util-aLhtl3fe.cjs → util-B9vlHIIh.cjs} +208 -223
- package/dist/src/{util-Du96oyYS.js → util-BHGHw5G1.js} +4 -5
- package/dist/src/{util-DQ984syk.js → util-BRYkYPTd.js} +36 -51
- package/dist/src/{util-D9eLdGfa.js → util-BV4XUC0n.js} +5 -6
- package/dist/src/util-Bv6uGDfH.js +293 -0
- package/dist/src/{util-1wWM599Z.cjs → util-BzMcevZc.cjs} +50 -51
- package/dist/src/{util-_h4pVqrz.js → util-C1CeHl-P.js} +36 -51
- package/dist/src/{util-Bm_-UMD_.js → util-CMy69ZgQ.js} +5 -6
- package/dist/src/{util-CyUdMzV0.cjs → util-DGNOS1db.cjs} +34 -35
- package/dist/src/util-Dnmk2mBQ.js +599 -0
- package/dist/src/util-ZzmqNPlg.js +1426 -0
- package/dist/src/{utils-BjLy-Q72.cjs → utils-Cz9qXqII.cjs} +29 -32
- package/dist/src/{utils-CFMn2yHW.js → utils-XiOAgly5.js} +4 -7
- package/dist/src/utils-dLokC-eR.js +94 -0
- package/dist/src/{utils-DvWMzuMx.js → utils-f2-Moju7.js} +4 -7
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +38 -38
- package/dist/src/app/assets/index-B2D0bCSI.js +0 -439
- package/dist/src/app/assets/vendor-charts-CCl15Imd.js +0 -36
- package/dist/src/cache-ChPcurj7.js +0 -6
- package/dist/src/cache-VVu_W-yg.js +0 -8
- package/dist/src/cache-YLNCFEM2.cjs +0 -6
- package/dist/src/chunk-DHDDz29n.js +0 -22
- package/dist/src/chunk-FhC4c-0y.js +0 -21
- package/dist/src/cloud-BndfXy4H.js +0 -5
- package/dist/src/eval-BhHvMY82.js +0 -17
- package/dist/src/evalResult-Dq2gFNQY.js +0 -12
- package/dist/src/evalResult-nmcP5VKH.cjs +0 -12
- package/dist/src/evalResult-trqZjVYh.js +0 -14
- package/dist/src/evaluator-CnfPstzT.js +0 -39
- package/dist/src/fetch-IDPDue6F.cjs +0 -4
- package/dist/src/fetch-hKJ-It8q.js +0 -6
- package/dist/src/fetch-ouKnrWK-.js +0 -4
- package/dist/src/graders-CQn7WUsd.cjs +0 -34
- package/dist/src/graders-DC6QAbpW.js +0 -35
- package/dist/src/graders-DUWz3Y7j.js +0 -37
- package/dist/src/opencode-sdk-4bL9n-Gk.js +0 -382
- package/dist/src/opencode-sdk-BfC2zWcR.js +0 -376
- package/dist/src/opencode-sdk-DMJyuwMg.js +0 -380
- package/dist/src/opencode-sdk-Da-9adza.cjs +0 -383
- package/dist/src/providers-CsXB2Ix-.js +0 -35
- package/dist/src/providers-DO8ltjLC.js +0 -33
- package/dist/src/providers-Dtq-xnXd.cjs +0 -33
- package/dist/src/rubyUtils-BUbcND2f.js +0 -6
- package/dist/src/rubyUtils-Cr55X_KE.js +0 -5
- package/dist/src/rubyUtils-DlIiqoYo.cjs +0 -5
- package/dist/src/server-C2eQH4Gu.js +0 -6
- package/dist/src/server-CXWycu7H.cjs +0 -6
- package/dist/src/server-Q6OGlxxT.js +0 -8
- package/dist/src/store-B3EDO9Q3.js +0 -7
- package/dist/src/store-Dl9F8aw5.js +0 -6
- package/dist/src/store-SnrGrlt9.cjs +0 -6
- package/dist/src/telemetry-BGhiPZtl.js +0 -8
- package/dist/src/telemetry-CFfiYan6.cjs +0 -6
- package/dist/src/telemetry-DHzEduxX.js +0 -6
- package/dist/src/transform-C1x1ZlMQ.cjs +0 -6
- package/dist/src/transform-DYHjFmQu.js +0 -8
- package/dist/src/transform-rmwJT5JQ.js +0 -7
- package/dist/src/transformersAvailability-eJooj0gX.js +0 -35
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
const require_logger = require(
|
|
2
|
-
const require_fetch = require(
|
|
1
|
+
const require_logger = require("./logger-Cp1GPUjj.cjs");
|
|
2
|
+
const require_fetch = require("./fetch-BPkYtG8K.cjs");
|
|
3
3
|
let chalk = require("chalk");
|
|
4
4
|
chalk = require_logger.__toESM(chalk);
|
|
5
5
|
let zod = require("zod");
|
|
6
6
|
let _inquirer_input = require("@inquirer/input");
|
|
7
7
|
_inquirer_input = require_logger.__toESM(_inquirer_input);
|
|
8
|
-
|
|
9
|
-
//#region src/types/email.ts
|
|
10
|
-
const EMAIL_OK_STATUS = "ok";
|
|
11
8
|
const BAD_EMAIL_RESULT = "bad_email";
|
|
12
9
|
const EmailValidationStatus = {
|
|
13
|
-
OK:
|
|
10
|
+
OK: "ok",
|
|
14
11
|
EXCEEDED_LIMIT: "exceeded_limit",
|
|
15
12
|
SHOW_USAGE_WARNING: "show_usage_warning",
|
|
16
13
|
EMAIL_VERIFICATION_REQUIRED: "email_verification_required",
|
|
@@ -18,9 +15,9 @@ const EmailValidationStatus = {
|
|
|
18
15
|
DISPOSABLE_EMAIL: "disposable_email"
|
|
19
16
|
};
|
|
20
17
|
const NO_EMAIL_STATUS = "no_email";
|
|
21
|
-
|
|
22
18
|
//#endregion
|
|
23
19
|
//#region src/globalConfig/accounts.ts
|
|
20
|
+
const CI_PLACEHOLDER_EMAIL = "ci-placeholder@promptfoo.dev";
|
|
24
21
|
function getUserId() {
|
|
25
22
|
let globalConfig = require_fetch.readGlobalConfig();
|
|
26
23
|
if (!globalConfig?.id) {
|
|
@@ -81,17 +78,23 @@ function getAuthMethod() {
|
|
|
81
78
|
* Used by both CLI and server routes
|
|
82
79
|
*/
|
|
83
80
|
async function checkEmailStatus(options) {
|
|
84
|
-
const { default: telemetry } = await Promise.resolve().then(() => require("./telemetry-
|
|
85
|
-
const
|
|
81
|
+
const { default: telemetry } = await Promise.resolve().then(() => require("./telemetry-BpMfhthR.cjs"));
|
|
82
|
+
const ciMode = require_logger.isCI();
|
|
83
|
+
const userEmail = ciMode ? CI_PLACEHOLDER_EMAIL : getUserEmail();
|
|
86
84
|
if (!userEmail) return {
|
|
87
85
|
status: NO_EMAIL_STATUS,
|
|
88
86
|
hasEmail: false,
|
|
89
87
|
message: "Redteam evals require email verification. Please enter your work email:"
|
|
90
88
|
};
|
|
89
|
+
if (ciMode) return {
|
|
90
|
+
status: EmailValidationStatus.OK,
|
|
91
|
+
hasEmail: true,
|
|
92
|
+
email: userEmail
|
|
93
|
+
};
|
|
91
94
|
try {
|
|
92
95
|
const validateParam = options?.validate ? "&validate=true" : "";
|
|
93
96
|
const timeout = options?.validate ? 3e3 : 500;
|
|
94
|
-
if (options?.validate) require_logger.
|
|
97
|
+
if (options?.validate) require_logger.logger.info(`Checking email...`);
|
|
95
98
|
const data = await (await require_fetch.fetchWithTimeout(`${require_logger.getEnvString("PROMPTFOO_CLOUD_API_URL", "https://api.promptfoo.app")}/api/users/status?email=${encodeURIComponent(userEmail)}${validateParam}`, void 0, timeout)).json();
|
|
96
99
|
if (options?.validate) if (new Set([
|
|
97
100
|
EmailValidationStatus.RISKY_EMAIL,
|
|
@@ -114,7 +117,7 @@ async function checkEmailStatus(options) {
|
|
|
114
117
|
hasEmail: true
|
|
115
118
|
};
|
|
116
119
|
} catch (e) {
|
|
117
|
-
require_logger.
|
|
120
|
+
require_logger.logger.debug(`Failed to check user status: ${e}`);
|
|
118
121
|
return {
|
|
119
122
|
status: EmailValidationStatus.OK,
|
|
120
123
|
message: "Unable to verify email status, but proceeding",
|
|
@@ -124,22 +127,23 @@ async function checkEmailStatus(options) {
|
|
|
124
127
|
}
|
|
125
128
|
}
|
|
126
129
|
async function promptForEmailUnverified() {
|
|
127
|
-
const { default: telemetry } = await Promise.resolve().then(() => require("./telemetry-
|
|
130
|
+
const { default: telemetry } = await Promise.resolve().then(() => require("./telemetry-BpMfhthR.cjs"));
|
|
131
|
+
const ciMode = require_logger.isCI();
|
|
128
132
|
const existingEmail = getUserEmail();
|
|
129
|
-
let email =
|
|
130
|
-
const existingEmailNeedsValidation = !
|
|
131
|
-
const existingEmailValidated =
|
|
133
|
+
let email = ciMode ? CI_PLACEHOLDER_EMAIL : existingEmail;
|
|
134
|
+
const existingEmailNeedsValidation = !ciMode && getUserEmailNeedsValidation();
|
|
135
|
+
const existingEmailValidated = ciMode || getUserEmailValidated();
|
|
132
136
|
let emailNeedsValidation = existingEmailNeedsValidation && !existingEmailValidated;
|
|
133
137
|
if (!email) {
|
|
134
138
|
await telemetry.record("feature_used", { feature: "promptForEmailUnverified" });
|
|
135
139
|
const border = "─".repeat(require_fetch.TERMINAL_MAX_WIDTH);
|
|
136
|
-
require_logger.
|
|
137
|
-
require_logger.
|
|
138
|
-
require_logger.
|
|
139
|
-
require_logger.
|
|
140
|
-
require_logger.
|
|
141
|
-
require_logger.
|
|
142
|
-
require_logger.
|
|
140
|
+
require_logger.logger.info("");
|
|
141
|
+
require_logger.logger.info(chalk.default.cyan(border));
|
|
142
|
+
require_logger.logger.info(chalk.default.cyan.bold(" Email Verification Required"));
|
|
143
|
+
require_logger.logger.info(chalk.default.cyan(border));
|
|
144
|
+
require_logger.logger.info("");
|
|
145
|
+
require_logger.logger.info(" Red team scans require email verification to continue.");
|
|
146
|
+
require_logger.logger.info("");
|
|
143
147
|
const emailSchema = zod.z.email();
|
|
144
148
|
try {
|
|
145
149
|
email = await (0, _inquirer_input.default)({
|
|
@@ -152,7 +156,7 @@ async function promptForEmailUnverified() {
|
|
|
152
156
|
} catch (error) {
|
|
153
157
|
const err = error;
|
|
154
158
|
if (err?.name === "AbortPromptError" || err?.name === "ExitPromptError") process.exit(1);
|
|
155
|
-
require_logger.
|
|
159
|
+
require_logger.logger.error(`failed to prompt for email: ${err}`);
|
|
156
160
|
throw err;
|
|
157
161
|
}
|
|
158
162
|
setUserEmail(email);
|
|
@@ -165,20 +169,21 @@ async function promptForEmailUnverified() {
|
|
|
165
169
|
}
|
|
166
170
|
async function checkEmailStatusAndMaybeExit(options) {
|
|
167
171
|
const result = await checkEmailStatus(options);
|
|
172
|
+
if (require_logger.isCI()) return "ok";
|
|
168
173
|
if (result.status === EmailValidationStatus.RISKY_EMAIL || result.status === EmailValidationStatus.DISPOSABLE_EMAIL) {
|
|
169
|
-
require_logger.
|
|
174
|
+
require_logger.logger.error("Please use a valid work email.");
|
|
170
175
|
setUserEmail("");
|
|
171
176
|
return BAD_EMAIL_RESULT;
|
|
172
177
|
}
|
|
173
178
|
if (result.status === EmailValidationStatus.EXCEEDED_LIMIT) {
|
|
174
|
-
require_logger.
|
|
179
|
+
require_logger.logger.error("You have exceeded the maximum cloud inference limit. Please contact inquiries@promptfoo.dev to upgrade your account.");
|
|
175
180
|
process.exit(1);
|
|
176
181
|
}
|
|
177
182
|
if (result.status === EmailValidationStatus.EMAIL_VERIFICATION_REQUIRED) {
|
|
178
183
|
setUserEmailNeedsValidation(true);
|
|
179
184
|
setUserEmailValidated(false);
|
|
180
185
|
const message = result.message || "Your email address is not verified. Check your inbox for a verification link, then rerun the command.";
|
|
181
|
-
require_logger.
|
|
186
|
+
require_logger.logger.error(message, {
|
|
182
187
|
status: result.status,
|
|
183
188
|
hasEmail: result.hasEmail
|
|
184
189
|
});
|
|
@@ -186,66 +191,60 @@ async function checkEmailStatusAndMaybeExit(options) {
|
|
|
186
191
|
}
|
|
187
192
|
if (result.status === EmailValidationStatus.SHOW_USAGE_WARNING && result.message) {
|
|
188
193
|
const border = "=".repeat(require_fetch.TERMINAL_MAX_WIDTH);
|
|
189
|
-
require_logger.
|
|
190
|
-
require_logger.
|
|
191
|
-
require_logger.
|
|
194
|
+
require_logger.logger.info(chalk.default.yellow(border));
|
|
195
|
+
require_logger.logger.warn(chalk.default.yellow(result.message));
|
|
196
|
+
require_logger.logger.info(chalk.default.yellow(border));
|
|
192
197
|
}
|
|
193
|
-
return
|
|
198
|
+
return "ok";
|
|
194
199
|
}
|
|
195
|
-
|
|
196
200
|
//#endregion
|
|
197
|
-
Object.defineProperty(exports,
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
});
|
|
203
|
-
Object.defineProperty(exports, 'checkEmailStatusAndMaybeExit', {
|
|
204
|
-
enumerable: true,
|
|
205
|
-
get: function () {
|
|
206
|
-
return checkEmailStatusAndMaybeExit;
|
|
207
|
-
}
|
|
201
|
+
Object.defineProperty(exports, "checkEmailStatusAndMaybeExit", {
|
|
202
|
+
enumerable: true,
|
|
203
|
+
get: function() {
|
|
204
|
+
return checkEmailStatusAndMaybeExit;
|
|
205
|
+
}
|
|
208
206
|
});
|
|
209
|
-
Object.defineProperty(exports,
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
207
|
+
Object.defineProperty(exports, "getAuthMethod", {
|
|
208
|
+
enumerable: true,
|
|
209
|
+
get: function() {
|
|
210
|
+
return getAuthMethod;
|
|
211
|
+
}
|
|
214
212
|
});
|
|
215
|
-
Object.defineProperty(exports,
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
213
|
+
Object.defineProperty(exports, "getAuthor", {
|
|
214
|
+
enumerable: true,
|
|
215
|
+
get: function() {
|
|
216
|
+
return getAuthor;
|
|
217
|
+
}
|
|
220
218
|
});
|
|
221
|
-
Object.defineProperty(exports,
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
219
|
+
Object.defineProperty(exports, "getUserEmail", {
|
|
220
|
+
enumerable: true,
|
|
221
|
+
get: function() {
|
|
222
|
+
return getUserEmail;
|
|
223
|
+
}
|
|
226
224
|
});
|
|
227
|
-
Object.defineProperty(exports,
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
225
|
+
Object.defineProperty(exports, "getUserId", {
|
|
226
|
+
enumerable: true,
|
|
227
|
+
get: function() {
|
|
228
|
+
return getUserId;
|
|
229
|
+
}
|
|
232
230
|
});
|
|
233
|
-
Object.defineProperty(exports,
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
231
|
+
Object.defineProperty(exports, "isLoggedIntoCloud", {
|
|
232
|
+
enumerable: true,
|
|
233
|
+
get: function() {
|
|
234
|
+
return isLoggedIntoCloud;
|
|
235
|
+
}
|
|
238
236
|
});
|
|
239
|
-
Object.defineProperty(exports,
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
237
|
+
Object.defineProperty(exports, "promptForEmailUnverified", {
|
|
238
|
+
enumerable: true,
|
|
239
|
+
get: function() {
|
|
240
|
+
return promptForEmailUnverified;
|
|
241
|
+
}
|
|
244
242
|
});
|
|
245
|
-
Object.defineProperty(exports,
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
243
|
+
Object.defineProperty(exports, "setUserEmail", {
|
|
244
|
+
enumerable: true,
|
|
245
|
+
get: function() {
|
|
246
|
+
return setUserEmail;
|
|
247
|
+
}
|
|
250
248
|
});
|
|
251
|
-
|
|
249
|
+
|
|
250
|
+
//# sourceMappingURL=accounts-gtkH-5KX.cjs.map
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { o as
|
|
3
|
-
import { o as getCache, s as isCacheEnabled } from "./cache-
|
|
2
|
+
import { o as logger } from "./logger-KkObSCzq.js";
|
|
3
|
+
import { o as getCache, s as isCacheEnabled } from "./cache-BVeDlD87.js";
|
|
4
4
|
import fs from "fs";
|
|
5
5
|
import path from "path";
|
|
6
6
|
import dedent from "dedent";
|
|
7
7
|
import crypto from "crypto";
|
|
8
|
-
|
|
9
8
|
//#region src/providers/agentic-utils.ts
|
|
10
9
|
/**
|
|
11
10
|
* Shared utilities for agentic providers (Claude Agent SDK, OpenCode SDK, etc.)
|
|
@@ -88,7 +87,7 @@ async function initializeAgenticCache(options, cacheKeyData) {
|
|
|
88
87
|
if (options.workingDir) try {
|
|
89
88
|
workingDirFingerprint = await getWorkingDirFingerprint(options.workingDir);
|
|
90
89
|
} catch (error) {
|
|
91
|
-
|
|
90
|
+
logger.error(dedent`Error getting working directory fingerprint for cache key - ${options.workingDir}: ${String(error)}
|
|
92
91
|
|
|
93
92
|
Caching is disabled.`);
|
|
94
93
|
return {
|
|
@@ -124,14 +123,14 @@ async function getCachedResponse(cacheResult, debugContext) {
|
|
|
124
123
|
try {
|
|
125
124
|
const cachedResponse = await cacheResult.cache.get(cacheResult.cacheKey);
|
|
126
125
|
if (cachedResponse) {
|
|
127
|
-
|
|
126
|
+
logger.debug(`Returning cached response${debugContext ? ` for ${debugContext}` : ""} (cache key: ${cacheResult.cacheKey})`);
|
|
128
127
|
return {
|
|
129
128
|
...JSON.parse(cachedResponse),
|
|
130
129
|
cached: true
|
|
131
130
|
};
|
|
132
131
|
}
|
|
133
132
|
} catch (error) {
|
|
134
|
-
|
|
133
|
+
logger.error(`Error getting cached response: ${String(error)}`);
|
|
135
134
|
}
|
|
136
135
|
}
|
|
137
136
|
/**
|
|
@@ -146,10 +145,10 @@ async function cacheResponse(cacheResult, response, debugContext) {
|
|
|
146
145
|
try {
|
|
147
146
|
await cacheResult.cache.set(cacheResult.cacheKey, JSON.stringify(response));
|
|
148
147
|
} catch (error) {
|
|
149
|
-
|
|
148
|
+
logger.error(`Error caching response${debugContext ? ` for ${debugContext}` : ""}: ${String(error)}`);
|
|
150
149
|
}
|
|
151
150
|
}
|
|
152
|
-
|
|
153
151
|
//#endregion
|
|
154
|
-
export {
|
|
155
|
-
|
|
152
|
+
export { initializeAgenticCache as i, generateCacheKey as n, getCachedResponse as r, cacheResponse as t };
|
|
153
|
+
|
|
154
|
+
//# sourceMappingURL=agentic-utils-DS1g3GLF.js.map
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { i as logger, y as getEnvInt } from "./logger-DLcq4dWf.js";
|
|
2
|
+
import "./fetch-HaqdX7U1.js";
|
|
3
|
+
import "./accounts-B0pgC1oV.js";
|
|
4
|
+
import { a as isCacheEnabled, i as getCache } from "./cache-i1P6crbO.js";
|
|
5
|
+
import { n as telemetry } from "./telemetry-Cps3mIU-.js";
|
|
6
|
+
import { n as createBedrockRequestHandler, r as hasProxyEnv, t as AwsBedrockGenericProvider } from "./base-CpjcHe4e.js";
|
|
3
7
|
//#region src/providers/bedrock/agents.ts
|
|
4
8
|
/**
|
|
5
9
|
* AWS Bedrock Agents provider for invoking deployed AI agents.
|
|
@@ -50,7 +54,7 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
|
|
|
50
54
|
...options.config,
|
|
51
55
|
agentId: options.config?.agentId || agentId
|
|
52
56
|
};
|
|
53
|
-
|
|
57
|
+
telemetry.record("feature_used", {
|
|
54
58
|
feature: "bedrock-agents",
|
|
55
59
|
provider: "bedrock"
|
|
56
60
|
});
|
|
@@ -78,7 +82,7 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
|
|
|
78
82
|
...credentials ? { credentials } : {}
|
|
79
83
|
});
|
|
80
84
|
} catch (err) {
|
|
81
|
-
|
|
85
|
+
logger.error(`Error creating BedrockAgentRuntimeClient: ${err}`);
|
|
82
86
|
throw new Error("The @aws-sdk/client-bedrock-agent-runtime package is required. Please install it: npm install @aws-sdk/client-bedrock-agent-runtime");
|
|
83
87
|
}
|
|
84
88
|
}
|
|
@@ -135,7 +139,7 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
|
|
|
135
139
|
}
|
|
136
140
|
output += decoder.decode();
|
|
137
141
|
} catch (error) {
|
|
138
|
-
|
|
142
|
+
logger.error(`Error processing agent response stream: ${error}`);
|
|
139
143
|
throw error;
|
|
140
144
|
}
|
|
141
145
|
}
|
|
@@ -168,7 +172,7 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
|
|
|
168
172
|
...this.config.actionGroups && { actionGroups: this.config.actionGroups },
|
|
169
173
|
...this.config.inputDataConfig && { inputDataConfig: this.config.inputDataConfig }
|
|
170
174
|
};
|
|
171
|
-
|
|
175
|
+
logger.debug(`Invoking Bedrock agent ${this.config.agentId} with session ${sessionId}`);
|
|
172
176
|
const cache = await getCache();
|
|
173
177
|
const cacheKey = `bedrock-agent:${this.config.agentId}:${JSON.stringify({
|
|
174
178
|
prompt,
|
|
@@ -178,7 +182,7 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
|
|
|
178
182
|
if (isCacheEnabled()) {
|
|
179
183
|
const cached = await cache.get(cacheKey);
|
|
180
184
|
if (cached) {
|
|
181
|
-
|
|
185
|
+
logger.debug("Returning cached Bedrock Agents response");
|
|
182
186
|
try {
|
|
183
187
|
const parsed = JSON.parse(cached);
|
|
184
188
|
if (parsed && typeof parsed === "object") return {
|
|
@@ -186,7 +190,7 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
|
|
|
186
190
|
cached: true
|
|
187
191
|
};
|
|
188
192
|
} catch {
|
|
189
|
-
|
|
193
|
+
logger.warn("Failed to parse cached Bedrock Agents response, ignoring cache");
|
|
190
194
|
}
|
|
191
195
|
}
|
|
192
196
|
}
|
|
@@ -210,11 +214,11 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
|
|
|
210
214
|
if (isCacheEnabled()) try {
|
|
211
215
|
await cache.set(cacheKey, JSON.stringify(result));
|
|
212
216
|
} catch (err) {
|
|
213
|
-
|
|
217
|
+
logger.error(`Failed to cache response: ${err}`);
|
|
214
218
|
}
|
|
215
219
|
return result;
|
|
216
220
|
} catch (error) {
|
|
217
|
-
|
|
221
|
+
logger.error(`Bedrock Agents invocation failed: ${error}`);
|
|
218
222
|
if (error.name === "ResourceNotFoundException") return { error: `Agent or alias not found. Verify agentId: ${this.config.agentId} and agentAliasId: ${this.config.agentAliasId}` };
|
|
219
223
|
else if (error.name === "AccessDeniedException") return { error: "Access denied. Check IAM permissions for bedrock:InvokeAgent" };
|
|
220
224
|
else if (error.name === "ValidationException") return { error: `Invalid configuration: ${error.message}` };
|
|
@@ -223,7 +227,7 @@ var AwsBedrockAgentsProvider = class extends AwsBedrockGenericProvider {
|
|
|
223
227
|
}
|
|
224
228
|
}
|
|
225
229
|
};
|
|
226
|
-
|
|
227
230
|
//#endregion
|
|
228
231
|
export { AwsBedrockAgentsProvider };
|
|
229
|
-
|
|
232
|
+
|
|
233
|
+
//# sourceMappingURL=agents-9qiOy0ho.js.map
|
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as logger, w as state } from "./logger-DLcq4dWf.js";
|
|
2
|
+
import { t as fetchWithProxy } from "./fetch-HaqdX7U1.js";
|
|
3
|
+
import { r as importModule } from "./esm-CaIwzWR5.js";
|
|
4
|
+
import { t as OpenAiGenericProvider } from "./openai-j-sE2O7r.js";
|
|
2
5
|
import path from "path";
|
|
3
6
|
import { BatchTraceProcessor, addTraceProcessor, getOrCreateTrace, run, startTraceExportLoop } from "@openai/agents";
|
|
4
|
-
|
|
5
7
|
//#region src/providers/openai/agents-loader.ts
|
|
6
8
|
/**
|
|
7
9
|
* Load agent definition from file path or return inline definition
|
|
8
10
|
*/
|
|
9
11
|
async function loadAgentDefinition(agentConfig) {
|
|
10
12
|
if (isAgentInstance(agentConfig)) {
|
|
11
|
-
|
|
13
|
+
logger.debug("[AgentsLoader] Using provided Agent instance");
|
|
12
14
|
return agentConfig;
|
|
13
15
|
}
|
|
14
16
|
if (typeof agentConfig === "string" && agentConfig.startsWith("file://")) {
|
|
15
|
-
|
|
17
|
+
logger.debug("[AgentsLoader] Loading agent from file", { path: agentConfig });
|
|
16
18
|
return await loadAgentFromFile(agentConfig);
|
|
17
19
|
}
|
|
18
20
|
if (typeof agentConfig === "object") {
|
|
19
|
-
|
|
21
|
+
logger.debug("[AgentsLoader] Creating agent from inline definition");
|
|
20
22
|
return await createAgentFromDefinition(agentConfig);
|
|
21
23
|
}
|
|
22
|
-
|
|
24
|
+
logger.debug("[AgentsLoader] Invalid agent configuration", {
|
|
23
25
|
type: typeof agentConfig,
|
|
24
26
|
keys: typeof agentConfig === "object" && agentConfig !== null ? Object.keys(agentConfig).slice(0, 5) : void 0
|
|
25
27
|
});
|
|
@@ -30,14 +32,14 @@ async function loadAgentDefinition(agentConfig) {
|
|
|
30
32
|
*/
|
|
31
33
|
async function loadAgentFromFile(filePath) {
|
|
32
34
|
const resolvedPath = resolveFilePath(filePath);
|
|
33
|
-
|
|
35
|
+
logger.debug("[AgentsLoader] Loading agent from resolved path", { path: resolvedPath });
|
|
34
36
|
try {
|
|
35
37
|
const module = await importModule(resolvedPath);
|
|
36
38
|
const agent = module.default || module;
|
|
37
39
|
if (!isAgentInstance(agent)) throw new Error(`File ${resolvedPath} does not export an Agent instance`);
|
|
38
40
|
return agent;
|
|
39
41
|
} catch (error) {
|
|
40
|
-
|
|
42
|
+
logger.error("[AgentsLoader] Failed to load agent from file", {
|
|
41
43
|
path: resolvedPath,
|
|
42
44
|
error
|
|
43
45
|
});
|
|
@@ -60,7 +62,7 @@ async function createAgentFromDefinition(definition) {
|
|
|
60
62
|
handoffs: definition.handoffs
|
|
61
63
|
});
|
|
62
64
|
} catch (error) {
|
|
63
|
-
|
|
65
|
+
logger.error("[AgentsLoader] Failed to create agent from definition", {
|
|
64
66
|
name: definition?.name,
|
|
65
67
|
model: definition?.model,
|
|
66
68
|
toolCount: definition?.tools?.length,
|
|
@@ -82,16 +84,15 @@ function isAgentInstance(value) {
|
|
|
82
84
|
function resolveFilePath(filePath) {
|
|
83
85
|
const cleanPath = filePath.replace(/^file:\/\//, "");
|
|
84
86
|
if (path.isAbsolute(cleanPath)) return cleanPath;
|
|
85
|
-
const basePath =
|
|
87
|
+
const basePath = state.basePath || process.cwd();
|
|
86
88
|
const resolvedPath = path.resolve(basePath, cleanPath);
|
|
87
|
-
|
|
89
|
+
logger.debug("[AgentsLoader] Resolved file path", {
|
|
88
90
|
original: filePath,
|
|
89
91
|
basePath,
|
|
90
92
|
resolved: resolvedPath
|
|
91
93
|
});
|
|
92
94
|
return resolvedPath;
|
|
93
95
|
}
|
|
94
|
-
|
|
95
96
|
//#endregion
|
|
96
97
|
//#region src/providers/openai/agents-tracing.ts
|
|
97
98
|
/**
|
|
@@ -114,14 +115,14 @@ var OTLPTracingExporter = class {
|
|
|
114
115
|
*/
|
|
115
116
|
async export(items, signal) {
|
|
116
117
|
if (items.length === 0) {
|
|
117
|
-
|
|
118
|
+
logger.debug("[AgentsTracing] No items to export");
|
|
118
119
|
return;
|
|
119
120
|
}
|
|
120
|
-
|
|
121
|
+
logger.debug(`[AgentsTracing] Exporting ${items.length} items to OTLP`);
|
|
121
122
|
try {
|
|
122
123
|
const otlpPayload = this.transformToOTLP(items);
|
|
123
124
|
const url = `${this.otlpEndpoint}/v1/traces`;
|
|
124
|
-
|
|
125
|
+
logger.debug("[AgentsTracing] Sending OTLP payload", {
|
|
125
126
|
url,
|
|
126
127
|
spanCount: otlpPayload.resourceSpans[0]?.scopeSpans[0]?.spans?.length || 0
|
|
127
128
|
});
|
|
@@ -131,10 +132,10 @@ var OTLPTracingExporter = class {
|
|
|
131
132
|
body: JSON.stringify(otlpPayload),
|
|
132
133
|
signal
|
|
133
134
|
});
|
|
134
|
-
if (response.ok)
|
|
135
|
-
else
|
|
135
|
+
if (response.ok) logger.debug("[AgentsTracing] Successfully exported traces to OTLP");
|
|
136
|
+
else logger.error(`[AgentsTracing] OTLP export failed: ${response.status} ${response.statusText}`);
|
|
136
137
|
} catch (error) {
|
|
137
|
-
|
|
138
|
+
logger.error("[AgentsTracing] Failed to export traces to OTLP", { error });
|
|
138
139
|
}
|
|
139
140
|
}
|
|
140
141
|
/**
|
|
@@ -248,7 +249,7 @@ var OTLPTracingExporter = class {
|
|
|
248
249
|
else if (cleanHex.length < targetLength) cleanHex = cleanHex.padEnd(targetLength, "0");
|
|
249
250
|
return Buffer.from(cleanHex, "hex").toString("base64");
|
|
250
251
|
} catch (error) {
|
|
251
|
-
|
|
252
|
+
logger.error(`[AgentsTracing] Failed to convert hex to base64: ${hex}`, { error });
|
|
252
253
|
const fallbackLen = kind === "span" ? 16 : 32;
|
|
253
254
|
return Buffer.from(this.generateRandomHex(fallbackLen), "hex").toString("base64");
|
|
254
255
|
}
|
|
@@ -275,7 +276,6 @@ var OTLPTracingExporter = class {
|
|
|
275
276
|
return buffer.toString("hex").substring(0, length);
|
|
276
277
|
}
|
|
277
278
|
};
|
|
278
|
-
|
|
279
279
|
//#endregion
|
|
280
280
|
//#region src/providers/openai/agents.ts
|
|
281
281
|
/**
|
|
@@ -302,7 +302,7 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
|
|
|
302
302
|
* Call the agent with the given prompt
|
|
303
303
|
*/
|
|
304
304
|
async callApi(prompt, context, callApiOptions) {
|
|
305
|
-
|
|
305
|
+
logger.debug("[AgentsProvider] Starting agent call", {
|
|
306
306
|
prompt: prompt.substring(0, 100),
|
|
307
307
|
hasContext: !!context
|
|
308
308
|
});
|
|
@@ -310,13 +310,13 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
|
|
|
310
310
|
if (!this.agent) this.agent = await this.initializeAgent();
|
|
311
311
|
await this.setupTracingIfNeeded(context);
|
|
312
312
|
const result = await this.runAgent(prompt, context, callApiOptions);
|
|
313
|
-
|
|
313
|
+
logger.debug("[AgentsProvider] Agent run completed", {
|
|
314
314
|
outputLength: result.output?.length || 0,
|
|
315
315
|
tokenUsage: result.tokenUsage
|
|
316
316
|
});
|
|
317
317
|
return result;
|
|
318
318
|
} catch (error) {
|
|
319
|
-
|
|
319
|
+
logger.error("[AgentsProvider] Agent call failed", { error });
|
|
320
320
|
throw error;
|
|
321
321
|
}
|
|
322
322
|
}
|
|
@@ -324,14 +324,14 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
|
|
|
324
324
|
* Initialize the agent from configuration
|
|
325
325
|
*/
|
|
326
326
|
async initializeAgent() {
|
|
327
|
-
|
|
327
|
+
logger.debug("[AgentsProvider] Initializing agent");
|
|
328
328
|
if (!this.agentConfig.agent) throw new Error("No agent configuration provided");
|
|
329
329
|
try {
|
|
330
330
|
const agent = await loadAgentDefinition(this.agentConfig.agent);
|
|
331
|
-
|
|
331
|
+
logger.debug("[AgentsProvider] Agent initialized successfully", { name: agent.name });
|
|
332
332
|
return agent;
|
|
333
333
|
} catch (error) {
|
|
334
|
-
|
|
334
|
+
logger.error("[AgentsProvider] Failed to initialize agent", { error });
|
|
335
335
|
throw new Error(`Failed to initialize agent: ${error}`);
|
|
336
336
|
}
|
|
337
337
|
}
|
|
@@ -340,10 +340,10 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
|
|
|
340
340
|
*/
|
|
341
341
|
async setupTracingIfNeeded(context) {
|
|
342
342
|
if (!(this.agentConfig.tracing === true || context?.test?.metadata?.tracingEnabled === true || process.env.PROMPTFOO_TRACING_ENABLED === "true")) {
|
|
343
|
-
|
|
343
|
+
logger.debug("[AgentsProvider] Tracing not enabled");
|
|
344
344
|
return;
|
|
345
345
|
}
|
|
346
|
-
|
|
346
|
+
logger.debug("[AgentsProvider] Setting up tracing");
|
|
347
347
|
try {
|
|
348
348
|
this.tracingExporter = new OTLPTracingExporter({
|
|
349
349
|
otlpEndpoint: this.agentConfig.otlpEndpoint,
|
|
@@ -352,9 +352,9 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
|
|
|
352
352
|
});
|
|
353
353
|
await this.registerTracingExporter(this.tracingExporter);
|
|
354
354
|
startTraceExportLoop();
|
|
355
|
-
|
|
355
|
+
logger.debug("[AgentsProvider] Tracing setup complete");
|
|
356
356
|
} catch (error) {
|
|
357
|
-
|
|
357
|
+
logger.error("[AgentsProvider] Failed to setup tracing", { error });
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
/**
|
|
@@ -367,9 +367,9 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
|
|
|
367
367
|
maxBatchSize: 10,
|
|
368
368
|
scheduleDelay: 1e3
|
|
369
369
|
}));
|
|
370
|
-
|
|
370
|
+
logger.debug("[AgentsProvider] Tracing processor registered");
|
|
371
371
|
} catch (error) {
|
|
372
|
-
|
|
372
|
+
logger.error("[AgentsProvider] Failed to register tracing processor", { error });
|
|
373
373
|
throw error;
|
|
374
374
|
}
|
|
375
375
|
}
|
|
@@ -378,7 +378,7 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
|
|
|
378
378
|
*/
|
|
379
379
|
async runAgent(prompt, context, callApiOptions) {
|
|
380
380
|
try {
|
|
381
|
-
|
|
381
|
+
logger.debug("[AgentsProvider] Running agent", {
|
|
382
382
|
agentName: this.agent?.name,
|
|
383
383
|
maxTurns: this.agentConfig.maxTurns || 10
|
|
384
384
|
});
|
|
@@ -392,7 +392,7 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
|
|
|
392
392
|
const result = await getOrCreateTrace(async () => {
|
|
393
393
|
return await run(this.agent, prompt, runOptions);
|
|
394
394
|
});
|
|
395
|
-
|
|
395
|
+
logger.debug("[AgentsProvider] Agent run result", {
|
|
396
396
|
hasOutput: !!result.finalOutput,
|
|
397
397
|
turns: result.newItems?.length || 0
|
|
398
398
|
});
|
|
@@ -403,7 +403,7 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
|
|
|
403
403
|
cost: this.calculateCost(result)
|
|
404
404
|
};
|
|
405
405
|
} catch (error) {
|
|
406
|
-
|
|
406
|
+
logger.error("[AgentsProvider] Failed to run agent", { error });
|
|
407
407
|
throw error;
|
|
408
408
|
}
|
|
409
409
|
}
|
|
@@ -424,7 +424,7 @@ var OpenAiAgentsProvider = class extends OpenAiGenericProvider {
|
|
|
424
424
|
*/
|
|
425
425
|
calculateCost(_result) {}
|
|
426
426
|
};
|
|
427
|
-
|
|
428
427
|
//#endregion
|
|
429
428
|
export { OpenAiAgentsProvider };
|
|
430
|
-
|
|
429
|
+
|
|
430
|
+
//# sourceMappingURL=agents-CBr9A01V.js.map
|