promptfoo 0.120.26 → 0.121.1
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/drizzle/0023_wooden_mandrill.sql +2 -0
- package/dist/drizzle/meta/0023_snapshot.json +1496 -0
- package/dist/drizzle/meta/_journal.json +7 -0
- package/dist/src/{ListApp-D3DG0F8h.js → ListApp-Du7YVwj5.js} +2 -4
- package/dist/src/accounts-BgNJDBE6.js +206 -0
- package/dist/src/{accounts-BzEY8H3v.cjs → accounts-Bx-x3bmW.cjs} +99 -80
- package/dist/src/{accounts-DHHiXsy6.js → accounts-CMqkzrVf.js} +61 -36
- package/dist/src/{accounts-R3gfCR_g.js → accounts-xrUGFA6n.js} +60 -35
- package/dist/src/{agentic-utils-D6_gzOUF.js → agentic-utils-BKIN5PKu.js} +9 -10
- package/dist/src/{agents-CwM7re15.cjs → agents-B0f4HICh.cjs} +37 -40
- package/dist/src/{agents-Cnph5GLD.js → agents-C-dDThPK.js} +37 -37
- package/dist/src/{agents-C7BiinFI.cjs → agents-CErsqg5U.cjs} +19 -27
- package/dist/src/{agents-v4cW_ZgC.js → agents-CVIn-Utx.js} +19 -22
- package/dist/src/{agents-GiUianme.js → agents-CXknwsFX.js} +37 -40
- package/dist/src/{agents-DETIQHqF.js → agents-DeH4Gu94.js} +21 -28
- package/dist/src/{agents-DYIT-hQy.js → agents-Dy2YpZpa.js} +38 -41
- package/dist/src/{agents-Cao4i7AX.js → agents-aF4-T121.js} +19 -30
- package/dist/src/{aimlapi-DMF6v_vb.js → aimlapi-BAGZDo5G.js} +16 -18
- package/dist/src/{aimlapi-CMJpKK-B.js → aimlapi-BNfTBexL.js} +15 -17
- package/dist/src/{aimlapi-DtSf1ykJ.js → aimlapi-DHRKlBEA.js} +15 -4
- package/dist/src/{aimlapi-DoGLcQW_.cjs → aimlapi-tg0Gkcvr.cjs} +15 -16
- package/dist/src/app/assets/index-BFCZg7hQ.js +439 -0
- package/dist/src/app/assets/index-NCn4eVBv.css +1 -0
- package/dist/src/app/assets/{vendor-charts-CYyo8R8v.js → vendor-charts-CCl15Imd.js} +1 -1
- package/dist/src/app/assets/{vendor-markdown-DSmzq4Jh.js → vendor-markdown-0tekx3KX.js} +1 -1
- package/dist/src/app/index.html +4 -34
- package/dist/src/{audio-DUH4q0Xq.js → audio-BRODU0UK.js} +7 -9
- package/dist/src/{audio-BWjyvHn9.cjs → audio-BWeaWovU.cjs} +6 -7
- package/dist/src/{audio-U580w8jM.js → audio-CHQ4r-RV.js} +6 -5
- package/dist/src/{audio-BrJBFN2b.js → audio-tf_NBjlC.js} +6 -8
- package/dist/src/base-B0tcrnq_.js +193 -0
- package/dist/src/base-B4QJRyFS.js +194 -0
- package/dist/src/base-DBtwl2FR.cjs +222 -0
- package/dist/src/base-fEDN28WM.js +193 -0
- package/dist/src/{blobs-kt8v3UyH.js → blobs-BAU-dXan.js} +9 -12
- package/dist/src/{blobs-C9J2mVgo.js → blobs-Bpg5rH6i.js} +9 -12
- package/dist/src/{blobs-673H0jCl.cjs → blobs-DvS-O6be.cjs} +34 -37
- package/dist/src/blobs-qTYm-1PY.js +236 -0
- package/dist/src/{cache-BLLayYEN.js → cache-8XhNqPKW.js} +64 -67
- package/dist/src/cache-Bbn1Nyrd.cjs +5 -0
- package/dist/src/cache-BwsMSda7.js +6 -0
- package/dist/src/{cache-mIszOnuz.js → cache-CG0SlR1d.js} +64 -66
- package/dist/src/{cache-7xULbvt3.cjs → cache-COish3-W.cjs} +114 -117
- package/dist/src/cache-D3eqDYGU.js +739 -0
- package/dist/src/{chat-Fl6TZJRS.cjs → chat-2K608PeQ.cjs} +20 -21
- package/dist/src/chat-BKm79wib.js +764 -0
- package/dist/src/{chat-XPN9YHhr.js → chat-CM_kyI8B.js} +20 -9
- package/dist/src/{chat-DIywASPG.js → chat-CRWNNq73.js} +49 -49
- package/dist/src/{chat-C8Ei4f87.js → chat-CznLWr_D.js} +49 -49
- package/dist/src/{chat-CgyGj2hC.js → chat-DHMH-N64.js} +20 -22
- package/dist/src/{chat-C4zqjObh.cjs → chat-DaqekjFr.cjs} +69 -69
- package/dist/src/{chat-Cpz3O-Xl.js → chat-DxysjBvt.js} +21 -23
- package/dist/src/{chatkit-Dpxrq4eD.js → chatkit-65VXf5SR.js} +58 -58
- package/dist/src/{chatkit-DIrJX8xk.js → chatkit-Be-Q-a9F.js} +58 -60
- package/dist/src/{chatkit-DEls11hE.js → chatkit-BxFvW8KY.js} +58 -60
- package/dist/src/{chatkit-e25Ziu17.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-6-xTaLwM.js → claude-agent-sdk-BLTu0WBO.js} +45 -31
- package/dist/src/{claude-agent-sdk-BzxF6NIJ.cjs → claude-agent-sdk-CJH22shf.cjs} +44 -29
- package/dist/src/{claude-agent-sdk-CmkTnKGH.js → claude-agent-sdk-D6_k9FKA.js} +45 -33
- package/dist/src/{claude-agent-sdk-rXCBLK_o.js → claude-agent-sdk-Dy5lT-Tx.js} +46 -21
- package/dist/src/{cloud-BMbRVJFw.js → cloud-Bc9526yV.js} +32 -12
- package/dist/src/cloud-DmE0EwsY.js +4 -0
- package/dist/src/{cloudflare-ai-CUg4BTcj.js → cloudflare-ai-C9r2sRhw.js} +16 -18
- package/dist/src/{cloudflare-ai-Z9X219gp.js → cloudflare-ai-CWWJCRim.js} +16 -4
- package/dist/src/{cloudflare-ai-BAQ0u_dg.cjs → cloudflare-ai-ClWSdor4.cjs} +16 -17
- package/dist/src/{cloudflare-ai-CobxMTR4.js → cloudflare-ai-ICsOuD-z.js} +17 -19
- package/dist/src/{cloudflare-gateway-C0sgfr_z.cjs → cloudflare-gateway-C2_-KG5o.cjs} +21 -22
- package/dist/src/{cloudflare-gateway-_itGuXry.js → cloudflare-gateway-D6O7AlYb.js} +23 -23
- package/dist/src/{cloudflare-gateway-D2_yi-Fh.js → cloudflare-gateway-D6xFc5pa.js} +21 -25
- package/dist/src/{cloudflare-gateway-Djf3F3_H.js → cloudflare-gateway-pXGHxJ47.js} +26 -14
- package/dist/src/{codex-sdk-ibXwdglL.js → codex-sdk-C6UMlxwV.js} +49 -32
- package/dist/src/{codex-sdk-BASDNkIl.js → codex-sdk-DUwKWezN.js} +49 -30
- package/dist/src/{codex-sdk-dSnGdgIp.js → codex-sdk-GGAw0qbD.js} +49 -32
- package/dist/src/{codex-sdk-wTEpMM_X.cjs → codex-sdk-fAO0c3yA.cjs} +49 -32
- package/dist/src/{cometapi-B01btbfb.js → cometapi-BasUi7-_.js} +17 -19
- package/dist/src/{cometapi-DHUAH6nK.js → cometapi-Bbjp5V4x.js} +16 -4
- package/dist/src/{cometapi-ChAaRjg5.js → cometapi-DkXrKi5z.js} +21 -24
- package/dist/src/{cometapi-JbvOJSCO.cjs → cometapi-vY6aDZgo.cjs} +21 -22
- package/dist/src/{completion-D9_MDlnd.js → completion-6Mx_iXxK.js} +11 -13
- package/dist/src/{completion-BBJ6zmG3.js → completion-C5rtR_9P.js} +11 -13
- package/dist/src/{completion-DDyL3Cb2.cjs → completion-CDOouNzq.cjs} +21 -23
- package/dist/src/completion-C_P3ypkJ.js +120 -0
- package/dist/src/createHash-CTQmL3G2.js +15 -0
- package/dist/src/createHash-CfZSc0b4.cjs +27 -0
- package/dist/src/createHash-Da8fMwqB.js +16 -0
- package/dist/src/createHash-DmPQkvBh.js +15 -0
- package/dist/src/{docker-JAAubMw3.js → docker-5KcG-_86.js} +18 -20
- package/dist/src/{docker-Ckw-j7Rr.cjs → docker-BwsKwxFs.cjs} +18 -19
- package/dist/src/{docker-vnOg96gi.js → docker-CZnqU1XV.js} +18 -7
- package/dist/src/{docker-BuButc4D.js → docker-DzxyDPIj.js} +19 -21
- package/dist/src/entrypoint.js +2 -3
- package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
- package/dist/src/{esm-CYhseqj4.js → esm-C03C-mv3.js} +17 -20
- package/dist/src/{esm-rDtG_2rg.js → esm-CaIwzWR5.js} +18 -21
- package/dist/src/esm-Cd1AjG1D.js +379 -0
- package/dist/src/{esm-BQkx5roy.cjs → esm-CnNt7sI4.cjs} +47 -49
- package/dist/src/eval-17JizQIv.js +15 -0
- package/dist/src/{eval-CYrbG57o.js → eval-DmFyWU7i.js} +49 -55
- package/dist/src/{evalResult-COsVttMA.js → evalResult-CDQiuUuf.js} +16 -12
- package/dist/src/{evalResult-6JaUIStC.js → evalResult-CTG2AHOS.js} +10 -11
- package/dist/src/evalResult-Cqj8pldJ.js +12 -0
- package/dist/src/{evalResult-DlRfu_Rq.cjs → evalResult-Dap2CekP.cjs} +20 -21
- package/dist/src/evalResult-DvcJAWJU.cjs +10 -0
- package/dist/src/evalResult-Hftn-S_i.js +10 -0
- package/dist/src/evaluator-B2CFNt-P.js +36 -0
- package/dist/src/{evaluator-3EJCMTs0.js → evaluator-DPFRbFIL.js} +210 -232
- package/dist/src/{extractor-LSYjrhK0.js → extractor-CFG6bcWJ.js} +23 -38
- package/dist/src/{extractor-DbhlYEeo.cjs → extractor-DX36oYEv.cjs} +37 -64
- package/dist/src/{extractor-Hs7la_19.js → extractor-M67RUtg6.js} +23 -38
- package/dist/src/extractor-YMU_Gvt8.js +374 -0
- package/dist/src/fetch-4M3YRaqL.js +780 -0
- package/dist/src/{fetch-18MuNu9i.js → fetch-60Gzydls.js} +60 -46
- package/dist/src/{fetch-SRsE6Ctl.js → fetch-BMv0O527.js} +41 -35
- package/dist/src/{fetch-ZMn_oemb.cjs → fetch-BxUk8odA.cjs} +268 -279
- package/dist/src/fetch-KV5kNASw.js +5 -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-Doo0xq-z.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-CQlpZkrp.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
- package/dist/src/graders-Bu0H9nXi.js +32 -0
- package/dist/src/{graders-BaMCwIKp.js → graders-CHO8EPM4.js} +385 -417
- package/dist/src/graders-Cfhkvx-e.js +34 -0
- package/dist/src/{graders-QsALpIdy.js → graders-CpdqD9PI.js} +385 -417
- package/dist/src/graders-DClJVpGP.cjs +32 -0
- package/dist/src/{graders-DzUUnUjC.cjs → graders-DOXycdlG.cjs} +721 -753
- package/dist/src/graders-DcnJsrMO.js +32 -0
- package/dist/src/graders-R9rYUM0d.js +13466 -0
- package/dist/src/{image-BiEVdpdP.js → image-BmEZqVmk.js} +57 -18
- package/dist/src/{image-mhAGP07h.js → image-CBBVXWuT.js} +57 -18
- package/dist/src/{image-D10zEe1f.cjs → image-CDLQOcqT.cjs} +6 -7
- package/dist/src/{image-COCWy5dX.js → image-DJEvKveK.js} +6 -5
- package/dist/src/{image-C3BjJUAU.cjs → image-DTedmQPg.cjs} +77 -32
- package/dist/src/{image-DB4sHxdJ.js → image-gvmivTEe.js} +7 -9
- package/dist/src/image-pAX56tPG.js +257 -0
- package/dist/src/{image-BXt_7u0v.js → image-tL5hIOFh.js} +6 -8
- package/dist/src/index.cjs +696 -693
- package/dist/src/index.d.cts +113 -10
- package/dist/src/index.d.ts +113 -6
- package/dist/src/index.js +657 -658
- package/dist/src/{interactiveCheck-DU-MAhp5.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-DotRBzUE.js → knowledgeBase-CLJybhnF.js} +19 -34
- package/dist/src/{knowledgeBase-XJQ0Qyez.js → knowledgeBase-CoU-UQBg.js} +17 -41
- package/dist/src/{knowledgeBase-CMvMlLZR.js → knowledgeBase-DjWPVqSb.js} +17 -43
- package/dist/src/{knowledgeBase-Bnb00xKs.cjs → knowledgeBase-wkxuRFhA.cjs} +17 -40
- package/dist/src/{litellm-CHrRmPAe.js → litellm-B9Hysuri.js} +16 -18
- package/dist/src/{litellm-CrLJrPIm.js → litellm-CTfa0hqi.js} +15 -17
- package/dist/src/{litellm-BrnZhMcL.cjs → litellm-NYpQ8RQu.cjs} +15 -16
- package/dist/src/{litellm-BECdjOTx.js → litellm-ePxtr9F1.js} +15 -4
- package/dist/src/{logger-w8Ozp0Td.js → logger-CT3IKMKA.js} +24 -41
- package/dist/src/{logger-BdZ-IqBc.cjs → logger-Cp1GPUjj.cjs} +166 -192
- package/dist/src/logger-DLcq4dWf.js +713 -0
- package/dist/src/{logger-BotXmWKW.js → logger-KkObSCzq.js} +27 -43
- package/dist/src/{luma-ray-C0RkI3lt.cjs → luma-ray-B0GGNRc1.cjs} +20 -21
- package/dist/src/{luma-ray-C-w6EsJm.js → luma-ray-BE2mOt6N.js} +20 -13
- package/dist/src/{luma-ray-BOeX-h0M.js → luma-ray-BW9IRGIc.js} +22 -21
- package/dist/src/{luma-ray-DgKLS0BF.js → luma-ray-Cm1KZBhs.js} +20 -23
- package/dist/src/main.js +1985 -2055
- package/dist/src/{messages-DXV3Qh8_.cjs → messages-1JrJs91T.cjs} +35 -34
- package/dist/src/{messages-D61tPFQo.js → messages-1x9atZmP.js} +25 -24
- package/dist/src/{messages-CDZYGNlS.js → messages-BLbWdsyt.js} +25 -24
- package/dist/src/messages-D8EA0oDc.js +240 -0
- package/dist/src/{meteor-P2rUE-Uz.js → meteor-44VjEACX.js} +3 -4
- package/dist/src/{meteor-SLNTgmXm.js → meteor-D-SotUw9.js} +3 -4
- package/dist/src/{meteor-odmwVbyG.cjs → meteor-DLZZ3osF.cjs} +3 -4
- package/dist/src/{meteor-Dj8cTkU_.js → meteor-DUiCJRC-.js} +3 -4
- package/dist/src/modelslab-C1OLRmVX.js +166 -0
- package/dist/src/modelslab-CqXBy3U8.js +168 -0
- package/dist/src/modelslab-DcOSFwKh.cjs +166 -0
- package/dist/src/modelslab-X5-4LroM.js +166 -0
- package/dist/src/{nova-reel-C2LFfVTf.js → nova-reel-BgS1ZWuK.js} +20 -13
- package/dist/src/{nova-reel-DtCjbD5O.js → nova-reel-D2ZkOSyr.js} +22 -21
- package/dist/src/{nova-reel-D9FXq3Mt.cjs → nova-reel-D9xfaMBs.cjs} +20 -21
- package/dist/src/{nova-reel-Bk5npr2q.js → nova-reel-DihqLeol.js} +20 -23
- package/dist/src/{nova-sonic-BoRSY_U6.cjs → nova-sonic-DVu3mMIy.cjs} +30 -31
- package/dist/src/{nova-sonic-D_qERM-K.js → nova-sonic-DezhVUYT.js} +30 -26
- package/dist/src/{nova-sonic-CgaWLDM1.js → nova-sonic-P-CdUMlV.js} +30 -31
- package/dist/src/{nova-sonic-BXRfQyF-.js → nova-sonic-Q3BOJeig.js} +31 -32
- package/dist/src/{openai-Bigwjgo1.cjs → openai-Cuif0GEt.cjs} +8 -9
- package/dist/src/{openai-Dz3surb_.js → openai-DElQ-fPX.js} +3 -4
- package/dist/src/{openai-CT5fwbve.js → openai-DhbB7eWK.js} +3 -4
- package/dist/src/openai-j-sE2O7r.js +44 -0
- package/dist/src/{openclaw-dHLcXUWZ.js → openclaw-BiSZPL7J.js} +20 -14
- package/dist/src/{openclaw-CpPrXwf6.js → openclaw-Bv1DINsX.js} +20 -27
- package/dist/src/{openclaw-B6XY2kUf.js → openclaw-D1D_ej1z.js} +21 -28
- package/dist/src/{openclaw-DDSfq5fp.cjs → openclaw-DAfWQn-o.cjs} +33 -39
- package/dist/src/opencode-sdk-C7m-wRfI.js +560 -0
- package/dist/src/opencode-sdk-CfaLN8PY.cjs +564 -0
- package/dist/src/opencode-sdk-D95s6SnR.js +562 -0
- package/dist/src/opencode-sdk-DxUPkLT7.js +560 -0
- package/dist/src/{otlpReceiver-DmRb0NBj.js → otlpReceiver--AIRW_S4.js} +53 -51
- package/dist/src/{otlpReceiver-Dg817agV.js → otlpReceiver-Bn5wGB1v.js} +53 -55
- package/dist/src/{otlpReceiver-B6Xo4KZM.cjs → otlpReceiver-Diec4cln.cjs} +53 -55
- package/dist/src/{otlpReceiver-BO0rbDzh.js → otlpReceiver-g3ByGaXs.js} +53 -55
- package/dist/src/{providerRegistry-Xf0qdqGQ.js → providerRegistry-B0RUOLI_.js} +7 -8
- package/dist/src/{providerRegistry-wCWd7sKQ.js → providerRegistry-CD8MEar9.js} +7 -8
- package/dist/src/{providerRegistry-lc7a7utN.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
- package/dist/src/providerRegistry-DM8rZYol.js +45 -0
- package/dist/src/providers-B3HvufyI.js +33246 -0
- package/dist/src/{providers-BiNq_Iyc.js → providers-BKRJTjBz.js} +1743 -1795
- package/dist/src/providers-C1rOSHiR.js +32 -0
- package/dist/src/{providers-BlEhY5mi.js → providers-CFLy1_ji.js} +1750 -1802
- package/dist/src/{providers-BNKVY53V.cjs → providers-CFu-TZl-.cjs} +2111 -2163
- package/dist/src/providers-CxmDwEFf.cjs +31 -0
- package/dist/src/providers-Dodakqr0.js +30 -0
- package/dist/src/providers-GIQ2TcsA.js +30 -0
- package/dist/src/{pythonUtils-r1uBuA0n.js → pythonUtils-C3py6GC1.js} +18 -19
- package/dist/src/{pythonUtils-DZ6EbdY4.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
- package/dist/src/{pythonUtils-vMlk9Qp5.js → pythonUtils-D5nxkQ0P.js} +18 -19
- package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
- package/dist/src/quiverai-C2jVwbH1.js +213 -0
- package/dist/src/quiverai-CI6gYJVI.js +213 -0
- package/dist/src/quiverai-CLkWkyZc.cjs +213 -0
- package/dist/src/quiverai-MHSxbmmZ.js +215 -0
- package/dist/src/{render-CAZvKKkB.js → render-Drod8m7K.js} +4 -5
- package/dist/src/{responses-DLLjADw5.js → responses-BKqJmhhc.js} +34 -27
- package/dist/src/{responses-TsdODUpm.js → responses-CGw0DCzh.js} +34 -27
- package/dist/src/responses-jxdehPkC.js +660 -0
- package/dist/src/{responses-zOtKtnY_.cjs → responses-tD4Bd4dc.cjs} +49 -42
- package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
- package/dist/src/{rubyUtils-Cs35SDYa.js → rubyUtils-BUVePouc.js} +27 -20
- package/dist/src/rubyUtils-BcuGX77l.js +222 -0
- package/dist/src/{rubyUtils-BtjlqyXt.js → rubyUtils-Boc4HZzX.js} +18 -19
- package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
- package/dist/src/{rubyUtils-DCVaJ3mc.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
- package/dist/src/{sagemaker-Du4LIR97.js → sagemaker-BK4Zb993.js} +75 -70
- package/dist/src/{sagemaker-CLdUAv5z.js → sagemaker-BfiWTmvn.js} +77 -77
- package/dist/src/{sagemaker-DwNnEVYt.cjs → sagemaker-CcQHM1jV.cjs} +75 -76
- package/dist/src/{sagemaker-BcgLu0U4.js → sagemaker-D2Q1c-sD.js} +75 -79
- package/dist/src/{scanner-Dyw21Wg_.js → scanner-J8CA3LsV.js} +149 -122
- package/dist/src/server/index.js +5620 -67302
- package/dist/src/{server-CgUQ25qW.cjs → server-B0PPuDw-.cjs} +57 -67
- package/dist/src/server-B1vi21hA.js +7 -0
- package/dist/src/{server-CbMTRQkg.js → server-BC7XJFgr.js} +19 -24
- package/dist/src/server-Cm9Kai_h.cjs +5 -0
- package/dist/src/{server-DWmZLfCy.js → server-DbFphssR.js} +26 -29
- package/dist/src/server-OAs3nBRT.js +229 -0
- package/dist/src/{signal-Bl32q42d.js → signal-BOTbd53Z.js} +9 -11
- package/dist/src/{slack-BtMkB6xP.cjs → slack-BmVAVGaK.cjs} +7 -8
- package/dist/src/{slack-OZYxoVON.js → slack-DCUPTzS2.js} +8 -8
- package/dist/src/{slack-DPqj42Ts.js → slack-DOdy_kyv.js} +7 -8
- package/dist/src/{slack-BfdBx2tO.js → slack-DXMKtA-f.js} +7 -9
- package/dist/src/store-BNmZ1KAz.cjs +5 -0
- package/dist/src/{store-BqwfFEyF.cjs → store-BSc-TF2w.cjs} +44 -45
- package/dist/src/store-BltJg2cd.js +6 -0
- package/dist/src/{store-D4gdn9ih.js → store-D1tv90v3.js} +34 -35
- package/dist/src/{store-2ocbYY9D.js → store-DQLEjuEO.js} +40 -36
- package/dist/src/store-Ub2vaGJ1.js +228 -0
- package/dist/src/{tables-D-NSwNIb.js → tables-5EvT_Bwn.js} +23 -23
- package/dist/src/{tables-B9E1kRp-.cjs → tables-C7K-XKWp.cjs} +93 -93
- package/dist/src/{tables-C7TT2XVn.js → tables-D36WTqKX.js} +25 -25
- package/dist/src/tables-xKANLRBD.js +288 -0
- package/dist/src/telemetry-5BCRNBbe.cjs +5 -0
- package/dist/src/{telemetry-DZ_7PaVq.js → telemetry-C15ziL8u.js} +17 -14
- package/dist/src/{telemetry-BXyVqyAg.js → telemetry-C2YDkUQH.js} +11 -13
- package/dist/src/{telemetry-D0_yFdtU.cjs → telemetry-CbrnxHp_.cjs} +21 -24
- package/dist/src/telemetry-D4W5hboe.js +7 -0
- package/dist/src/telemetry-DMb2Mpfm.js +171 -0
- package/dist/src/{text-Dm78AVGG.js → text-B_UCRPp2.js} +2 -2
- package/dist/src/{text-DF2hMKdg.cjs → text-CW1cyrwj.cjs} +12 -13
- package/dist/src/{text-DgMr_tiM.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-FNIz3YOe.cjs → transcription-CL78qbOU.cjs} +14 -15
- package/dist/src/{transcription-C-M81iDA.js → transcription-DAtxHhAM.js} +14 -7
- package/dist/src/{transcription-CYuY5sFO.js → transcription-LNZTNUUL.js} +14 -16
- package/dist/src/{transcription-Ch7S-LWw.js → transcription-QHh3AH6Z.js} +15 -17
- package/dist/src/{transform-CoP2bJ7P.js → transform-Cgi24fJ7.js} +94 -66
- package/dist/src/{transform-Kd6u-oNm.cjs → transform-CzK1Q0zl.cjs} +24 -26
- package/dist/src/{transform-D8dILpfZ.js → transform-DECvGmzp.js} +15 -13
- package/dist/src/{transform-DMaxQwDx.js → transform-DGLazrMm.js} +94 -66
- package/dist/src/transform-DGxXocjk.js +1506 -0
- package/dist/src/{transform-ivxEY4f7.cjs → transform-DOcQeLld.cjs} +234 -206
- package/dist/src/transform-DTGDnAzW.js +6 -0
- package/dist/src/{transform-CqTFr7KR.js → transform-DilY9wbS.js} +10 -12
- package/dist/src/transform-aa6tmVpZ.js +216 -0
- package/dist/src/transform-m3qNw4KP.cjs +5 -0
- package/dist/src/{transformersAvailability-DEU2naS1.js → transformersAvailability-CEVM2GNQ.js} +2 -2
- package/dist/src/{transformersAvailability-Bkep3ka7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
- package/dist/src/{transformersAvailability-DwmezkVe.js → transformersAvailability-D6c6ROpT.js} +2 -2
- package/dist/src/{types-t52w-XsS.js → types-CH3Ge2sE.js} +103 -92
- package/dist/src/{types-DMVjYLpx.js → types-CLKiCBW3.js} +98 -91
- package/dist/src/types-CN_TZ2GJ.js +3260 -0
- package/dist/src/{types-BIfttHrT.cjs → types-LJ0r3wbR.cjs} +573 -566
- package/dist/src/util-5cB-L7U3.js +1430 -0
- package/dist/src/util-6-GqIvzS.js +599 -0
- package/dist/src/{util-vjscpUzy.js → util-B7T3SiBS.js} +5 -6
- package/dist/src/{util-Cl0zfT3V.js → util-Betm42rL.js} +44 -17
- package/dist/src/{util-CUEt0Vum.js → util-C-PPYSMq.js} +44 -17
- package/dist/src/{util-DkFTvieG.cjs → util-CchiqXh_.cjs} +35 -36
- package/dist/src/{util-mJ58qbbw.js → util-DaWTWKBK.js} +5 -6
- package/dist/src/{util-C08Kns6-.cjs → util-Db0a0AFH.cjs} +89 -62
- package/dist/src/{util-DiCePfDu.js → util-Dlz_Wvgm.js} +102 -53
- package/dist/src/{util-BSh4a_Q8.js → util-YT5HPZaS.js} +102 -53
- package/dist/src/{util-DUYOvxAy.cjs → util-Yz-1aEhW.cjs} +274 -219
- package/dist/src/util-ZZH-3QZz.js +293 -0
- package/dist/src/{utils-DFaZa6Rf.cjs → utils-Cz9qXqII.cjs} +32 -35
- package/dist/src/{utils-CVzb4YiI.js → utils-XiOAgly5.js} +4 -7
- package/dist/src/utils-dLokC-eR.js +94 -0
- package/dist/src/{utils-JaY9veb5.js → utils-f2-Moju7.js} +4 -7
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +59 -53
- package/dist/src/app/assets/index-BOgkICuY.css +0 -1
- package/dist/src/app/assets/index-CSgqn_Vd.js +0 -428
- package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
- package/dist/src/base-BaXmtXYp.js +0 -107
- package/dist/src/base-Dtp8b4_N.js +0 -106
- package/dist/src/base-f71xxWai.cjs +0 -111
- package/dist/src/cache-BUPcq0Ad.js +0 -6
- package/dist/src/cache-CVfRb-HD.cjs +0 -6
- package/dist/src/cache-O4EuX2JV.js +0 -8
- package/dist/src/chunk-DHDDz29n.js +0 -22
- package/dist/src/chunk-FhC4c-0y.js +0 -21
- package/dist/src/cloud-CZ4hytdm.js +0 -5
- package/dist/src/eval-CKHWqG9f.js +0 -16
- package/dist/src/evalResult-CxTP-LMm.cjs +0 -11
- package/dist/src/evalResult-CzLURDcP.js +0 -13
- package/dist/src/evalResult-DyttNQ_G.js +0 -11
- package/dist/src/evaluator-0PvfeBYh.js +0 -38
- package/dist/src/fetch-Bi0o-fdp.js +0 -4
- package/dist/src/fetch-CMptBDVg.cjs +0 -4
- package/dist/src/fetch-DAZkv3gV.js +0 -6
- package/dist/src/graders-BCytzXrb.js +0 -34
- package/dist/src/graders-CGZQShfJ.cjs +0 -33
- package/dist/src/graders-spkuVC-E.js +0 -36
- package/dist/src/opencode-sdk-CImWVqy9.js +0 -382
- package/dist/src/opencode-sdk-CuCztr4P.js +0 -380
- package/dist/src/opencode-sdk-DhcfRbBH.js +0 -376
- package/dist/src/opencode-sdk-mqF-Oj3f.cjs +0 -383
- package/dist/src/providers-BMZZmPBJ.cjs +0 -32
- package/dist/src/providers-CQQrNaJk.js +0 -32
- package/dist/src/providers-Ck8HyrC-.js +0 -34
- package/dist/src/quiverai-BNfIwKCO.cjs +0 -54
- package/dist/src/quiverai-BQigKdIH.js +0 -57
- package/dist/src/quiverai-Bfy2WnE2.js +0 -55
- package/dist/src/quiverai-CedIP0PJ.js +0 -43
- package/dist/src/rubyUtils-D7--T12C.js +0 -6
- package/dist/src/rubyUtils-DRRiMFV2.js +0 -5
- package/dist/src/rubyUtils-vb8OYFC-.cjs +0 -5
- package/dist/src/server-BUbS0Qfh.js +0 -6
- package/dist/src/server-XpGXFHkS.cjs +0 -6
- package/dist/src/server-gfOx5Zrk.js +0 -8
- package/dist/src/store-5u2yriTV.js +0 -7
- package/dist/src/store-D_lq_8oQ.js +0 -6
- package/dist/src/store-m5KT6Ly7.cjs +0 -6
- package/dist/src/telemetry-5RHFoCJh.js +0 -6
- package/dist/src/telemetry-Do8wMnA-.js +0 -8
- package/dist/src/telemetry-LojxPoFq.cjs +0 -6
- package/dist/src/transform-8eGmaH-7.js +0 -7
- package/dist/src/transform-BRVvWaG4.cjs +0 -6
- package/dist/src/transform-GybT0X0u.js +0 -8
- package/dist/src/transformersAvailability-DkAWaK5B.js +0 -35
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_logger = require(
|
|
2
|
-
const require_invariant = require(
|
|
1
|
+
const require_logger = require("./logger-Cp1GPUjj.cjs");
|
|
2
|
+
const require_invariant = require("./invariant-kfQ8Bu82.cjs");
|
|
3
3
|
let fs = require("fs");
|
|
4
4
|
fs = require_logger.__toESM(fs);
|
|
5
5
|
let path = require("path");
|
|
@@ -12,7 +12,6 @@ fs_promises = require_logger.__toESM(fs_promises);
|
|
|
12
12
|
let proxy_from_env = require("proxy-from-env");
|
|
13
13
|
let undici = require("undici");
|
|
14
14
|
let zlib = require("zlib");
|
|
15
|
-
|
|
16
15
|
//#region src/providers/constants.ts
|
|
17
16
|
const FILE_METADATA_KEY = "_promptfooFileMetadata";
|
|
18
17
|
/**
|
|
@@ -20,28 +19,21 @@ const FILE_METADATA_KEY = "_promptfooFileMetadata";
|
|
|
20
19
|
* Used to distinguish human ratings from automated assertions.
|
|
21
20
|
*/
|
|
22
21
|
const HUMAN_ASSERTION_TYPE = "human";
|
|
23
|
-
|
|
24
22
|
//#endregion
|
|
25
23
|
//#region src/version.ts
|
|
26
24
|
/**
|
|
27
25
|
* Application version from package.json.
|
|
28
26
|
* Injected at build time, or read from npm environment in development.
|
|
29
27
|
*/
|
|
30
|
-
const VERSION = "0.
|
|
28
|
+
const VERSION = "0.121.1";
|
|
31
29
|
/**
|
|
32
30
|
* PostHog analytics key.
|
|
33
31
|
* Only populated during production builds via PROMPTFOO_POSTHOG_KEY env var.
|
|
34
32
|
* Empty string in development/test.
|
|
35
33
|
*/
|
|
36
34
|
const POSTHOG_KEY = "phc_E5n5uHnDo2eREJL1uqX1cIlbkoRby4yFWt3V94HqRRg";
|
|
37
|
-
|
|
38
|
-
//#endregion
|
|
39
|
-
//#region src/constants.ts
|
|
40
|
-
const DEFAULT_QUERY_LIMIT = 100;
|
|
41
|
-
const DEFAULT_MAX_CONCURRENCY = 4;
|
|
42
|
-
const DEFAULT_API_BASE_URL = "https://api.promptfoo.app";
|
|
43
35
|
function getShareApiBaseUrl() {
|
|
44
|
-
return require_logger.getEnvString("PROMPTFOO_REMOTE_API_BASE_URL") ||
|
|
36
|
+
return require_logger.getEnvString("PROMPTFOO_REMOTE_API_BASE_URL") || "https://api.promptfoo.app";
|
|
45
37
|
}
|
|
46
38
|
function getDefaultShareViewBaseUrl() {
|
|
47
39
|
return require_logger.getEnvString("PROMPTFOO_SHARING_APP_BASE_URL", `https://promptfoo.app`);
|
|
@@ -54,7 +46,6 @@ const CLOUD_PROVIDER_PREFIX = "promptfoo://provider/";
|
|
|
54
46
|
const CONSENT_ENDPOINT = "https://api.promptfoo.dev/consent";
|
|
55
47
|
const EVENTS_ENDPOINT = "https://a.promptfoo.app";
|
|
56
48
|
const R_ENDPOINT = "https://r.promptfoo.app/";
|
|
57
|
-
|
|
58
49
|
//#endregion
|
|
59
50
|
//#region src/providers/shared.ts
|
|
60
51
|
/**
|
|
@@ -293,14 +284,12 @@ function transformTools(tools, format) {
|
|
|
293
284
|
default: return tools;
|
|
294
285
|
}
|
|
295
286
|
}
|
|
296
|
-
|
|
297
287
|
//#endregion
|
|
298
288
|
//#region src/util/time.ts
|
|
299
289
|
function getCurrentTimestamp() {
|
|
300
290
|
return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3);
|
|
301
291
|
}
|
|
302
292
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
303
|
-
|
|
304
293
|
//#endregion
|
|
305
294
|
//#region src/globalConfig/globalConfig.ts
|
|
306
295
|
/**
|
|
@@ -341,11 +330,8 @@ function writeGlobalConfigPartial(partialConfig) {
|
|
|
341
330
|
});
|
|
342
331
|
writeGlobalConfig(updatedConfig);
|
|
343
332
|
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
//#region src/globalConfig/cloud.ts
|
|
347
|
-
const CLOUD_API_HOST = "https://api.promptfoo.app";
|
|
348
|
-
const API_HOST = require_logger.getEnvString("API_HOST", CLOUD_API_HOST);
|
|
333
|
+
const API_HOST = require_logger.getEnvString("API_HOST", "https://api.promptfoo.app");
|
|
334
|
+
const SHARING_CUTOFF_DATE = /* @__PURE__ */ new Date("2026-03-09T00:00:00Z");
|
|
349
335
|
var CloudConfig = class {
|
|
350
336
|
config;
|
|
351
337
|
constructor() {
|
|
@@ -354,6 +340,7 @@ var CloudConfig = class {
|
|
|
354
340
|
appUrl: savedConfig.appUrl || "https://www.promptfoo.app",
|
|
355
341
|
apiHost: savedConfig.apiHost,
|
|
356
342
|
apiKey: savedConfig.apiKey,
|
|
343
|
+
sharing: savedConfig.sharing,
|
|
357
344
|
currentOrganizationId: savedConfig.currentOrganizationId,
|
|
358
345
|
currentTeamId: savedConfig.currentTeamId,
|
|
359
346
|
teams: savedConfig.teams
|
|
@@ -398,8 +385,21 @@ var CloudConfig = class {
|
|
|
398
385
|
getAppUrl() {
|
|
399
386
|
return this.config.appUrl;
|
|
400
387
|
}
|
|
388
|
+
getSharing() {
|
|
389
|
+
return this.config.sharing;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Sets the sharing preference. Note: this value is only updated at authentication time
|
|
393
|
+
* (via `validateAndSetApiToken`) and may become stale if the user's license status
|
|
394
|
+
* changes between re-authentications.
|
|
395
|
+
*/
|
|
396
|
+
setSharing(sharing) {
|
|
397
|
+
this.config.sharing = sharing;
|
|
398
|
+
this.saveConfig();
|
|
399
|
+
}
|
|
401
400
|
delete() {
|
|
402
401
|
writeGlobalConfigPartial({ cloud: {} });
|
|
402
|
+
this.reload();
|
|
403
403
|
}
|
|
404
404
|
saveConfig() {
|
|
405
405
|
writeGlobalConfigPartial({ cloud: this.config });
|
|
@@ -411,6 +411,7 @@ var CloudConfig = class {
|
|
|
411
411
|
appUrl: savedConfig.appUrl || "https://www.promptfoo.app",
|
|
412
412
|
apiHost: savedConfig.apiHost,
|
|
413
413
|
apiKey: savedConfig.apiKey,
|
|
414
|
+
sharing: savedConfig.sharing,
|
|
414
415
|
currentOrganizationId: savedConfig.currentOrganizationId,
|
|
415
416
|
currentTeamId: savedConfig.currentTeamId,
|
|
416
417
|
teams: savedConfig.teams
|
|
@@ -418,27 +419,33 @@ var CloudConfig = class {
|
|
|
418
419
|
}
|
|
419
420
|
async validateAndSetApiToken(token, apiHost) {
|
|
420
421
|
try {
|
|
421
|
-
const { fetchWithProxy } = await Promise.resolve().then(() =>
|
|
422
|
+
const { fetchWithProxy } = await Promise.resolve().then(() => fetch_exports);
|
|
422
423
|
const response = await fetchWithProxy(`${apiHost}/api/v1/users/me`, { headers: { Authorization: `Bearer ${token}` } });
|
|
423
424
|
if (!response.ok) {
|
|
424
425
|
const errorMessage = await response.text();
|
|
425
|
-
require_logger.
|
|
426
|
+
require_logger.logger.error(`[Cloud] Failed to validate API token: ${errorMessage}. HTTP Status: ${response.status} - ${response.statusText}.`);
|
|
426
427
|
throw new Error("Failed to validate API token: " + response.statusText);
|
|
427
428
|
}
|
|
428
|
-
const { user, organization, app } = await response.json();
|
|
429
|
+
const { user, organization, app, hasActiveLicense } = await response.json();
|
|
429
430
|
this.setApiKey(token);
|
|
430
431
|
this.setApiHost(apiHost);
|
|
431
432
|
this.setAppUrl(app.url);
|
|
433
|
+
if (typeof hasActiveLicense === "boolean") {
|
|
434
|
+
const createdAt = user?.createdAt ? new Date(user.createdAt) : null;
|
|
435
|
+
const isGrandfathered = createdAt != null && createdAt < SHARING_CUTOFF_DATE;
|
|
436
|
+
this.setSharing(hasActiveLicense || isGrandfathered);
|
|
437
|
+
}
|
|
432
438
|
return {
|
|
433
439
|
user,
|
|
434
440
|
organization,
|
|
435
|
-
app
|
|
441
|
+
app,
|
|
442
|
+
hasActiveLicense: typeof hasActiveLicense === "boolean" ? hasActiveLicense : false
|
|
436
443
|
};
|
|
437
444
|
} catch (err) {
|
|
438
445
|
const error = err;
|
|
439
446
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
440
|
-
require_logger.
|
|
441
|
-
if (error.cause) require_logger.
|
|
447
|
+
require_logger.logger.error(`[Cloud] Failed to validate API token with host ${apiHost}: ${errorMessage}`);
|
|
448
|
+
if (error.cause) require_logger.logger.error(`Cause: ${error.cause}`);
|
|
442
449
|
throw error;
|
|
443
450
|
}
|
|
444
451
|
}
|
|
@@ -485,7 +492,6 @@ var CloudConfig = class {
|
|
|
485
492
|
}
|
|
486
493
|
};
|
|
487
494
|
const cloudConfig = new CloudConfig();
|
|
488
|
-
|
|
489
495
|
//#endregion
|
|
490
496
|
//#region src/util/fetch/monkeyPatchFetch.ts
|
|
491
497
|
const gzipAsync = (0, util.promisify)(zlib.gzip);
|
|
@@ -512,9 +518,9 @@ async function monkeyPatchFetch(url, options) {
|
|
|
512
518
|
"Content-Encoding": "gzip"
|
|
513
519
|
};
|
|
514
520
|
} catch (e) {
|
|
515
|
-
require_logger.
|
|
521
|
+
require_logger.logger.warn(`Failed to compress request body: ${e}`);
|
|
516
522
|
}
|
|
517
|
-
if (typeof url === "string" && url.startsWith(
|
|
523
|
+
if (typeof url === "string" && url.startsWith("https://api.promptfoo.app") || url instanceof URL && url.host === "https://api.promptfoo.app".replace(/^https?:\/\//, "")) {
|
|
518
524
|
const token = cloudConfig.getApiKey();
|
|
519
525
|
opts.headers = {
|
|
520
526
|
...opts.headers || {},
|
|
@@ -539,17 +545,24 @@ async function monkeyPatchFetch(url, options) {
|
|
|
539
545
|
response: null
|
|
540
546
|
});
|
|
541
547
|
if (isConnectionError(e)) {
|
|
542
|
-
require_logger.
|
|
548
|
+
require_logger.logger.debug(`Connection error, please check your network connectivity to the host: ${url} ${process.env.HTTP_PROXY || process.env.HTTPS_PROXY ? `or Proxy: ${process.env.HTTP_PROXY || process.env.HTTPS_PROXY}` : ""}`);
|
|
543
549
|
throw e;
|
|
544
550
|
}
|
|
545
|
-
require_logger.
|
|
551
|
+
require_logger.logger.debug(`Error in fetch: ${JSON.stringify(e, Object.getOwnPropertyNames(e), 2)} ${e instanceof Error ? e.stack : ""}`);
|
|
546
552
|
}
|
|
547
553
|
throw e;
|
|
548
554
|
}
|
|
549
555
|
}
|
|
550
|
-
|
|
551
556
|
//#endregion
|
|
552
557
|
//#region src/util/fetch/index.ts
|
|
558
|
+
var fetch_exports = /* @__PURE__ */ require_logger.__exportAll({
|
|
559
|
+
fetchWithProxy: () => fetchWithProxy,
|
|
560
|
+
fetchWithRetries: () => fetchWithRetries,
|
|
561
|
+
fetchWithTimeout: () => fetchWithTimeout,
|
|
562
|
+
handleRateLimit: () => handleRateLimit,
|
|
563
|
+
isRateLimited: () => isRateLimited,
|
|
564
|
+
isTransientError: () => isTransientError
|
|
565
|
+
});
|
|
553
566
|
let cachedAgent = null;
|
|
554
567
|
let cachedAgentConcurrency;
|
|
555
568
|
let cachedProxyAgents = /* @__PURE__ */ new Map();
|
|
@@ -565,7 +578,7 @@ function getConnectionPoolSize() {
|
|
|
565
578
|
const parsed = parseInt(envConnections, 10);
|
|
566
579
|
if (!isNaN(parsed)) return parsed;
|
|
567
580
|
}
|
|
568
|
-
return require_logger.
|
|
581
|
+
return require_logger.state.maxConcurrency || 4;
|
|
569
582
|
}
|
|
570
583
|
function getOrCreateAgent(tlsOptions) {
|
|
571
584
|
const concurrency = getConnectionPoolSize();
|
|
@@ -619,7 +632,7 @@ async function fetchWithProxy(url, options = {}, abortSignal) {
|
|
|
619
632
|
if (typeof url === "string") try {
|
|
620
633
|
const parsedUrl = new URL(url);
|
|
621
634
|
if (parsedUrl.username || parsedUrl.password) {
|
|
622
|
-
if (finalOptions.headers && "Authorization" in finalOptions.headers) require_logger.
|
|
635
|
+
if (finalOptions.headers && "Authorization" in finalOptions.headers) require_logger.logger.warn("Both URL credentials and Authorization header present - URL credentials will be ignored");
|
|
623
636
|
else {
|
|
624
637
|
const username = parsedUrl.username || "";
|
|
625
638
|
const password = parsedUrl.password || "";
|
|
@@ -635,20 +648,20 @@ async function fetchWithProxy(url, options = {}, abortSignal) {
|
|
|
635
648
|
finalUrlString = finalUrl.toString();
|
|
636
649
|
}
|
|
637
650
|
} catch (e) {
|
|
638
|
-
require_logger.
|
|
651
|
+
require_logger.logger.debug(`URL parsing failed in fetchWithProxy: ${e}`);
|
|
639
652
|
}
|
|
640
653
|
const tlsOptions = { rejectUnauthorized: !require_logger.getEnvBool("PROMPTFOO_INSECURE_SSL", true) };
|
|
641
654
|
const caCertPath = require_logger.getEnvString("PROMPTFOO_CA_CERT_PATH");
|
|
642
655
|
if (caCertPath) try {
|
|
643
|
-
const resolvedPath = path.default.resolve(require_logger.
|
|
656
|
+
const resolvedPath = path.default.resolve(require_logger.state.basePath || "", caCertPath);
|
|
644
657
|
tlsOptions.ca = await fs_promises.readFile(resolvedPath, "utf8");
|
|
645
|
-
require_logger.
|
|
658
|
+
require_logger.logger.debug(`Using custom CA certificate from ${resolvedPath}`);
|
|
646
659
|
} catch (e) {
|
|
647
|
-
require_logger.
|
|
660
|
+
require_logger.logger.warn(`Failed to read CA certificate from ${caCertPath}: ${e}`);
|
|
648
661
|
}
|
|
649
662
|
const proxyUrl = finalUrlString ? (0, proxy_from_env.getProxyForUrl)(finalUrlString) : "";
|
|
650
663
|
if (!finalOptions.dispatcher) if (proxyUrl) {
|
|
651
|
-
require_logger.
|
|
664
|
+
require_logger.logger.debug(`Using proxy: ${require_logger.sanitizeUrl(proxyUrl)}`);
|
|
652
665
|
finalOptions.dispatcher = getOrCreateProxyAgent(proxyUrl, tlsOptions);
|
|
653
666
|
} else finalOptions.dispatcher = getOrCreateAgent(tlsOptions);
|
|
654
667
|
const maxTransientRetries = options.disableTransientRetries ? 0 : 3;
|
|
@@ -656,7 +669,7 @@ async function fetchWithProxy(url, options = {}, abortSignal) {
|
|
|
656
669
|
const response = await monkeyPatchFetch(finalUrl, finalOptions);
|
|
657
670
|
if (!options.disableTransientRetries && isTransientError(response) && attempt < maxTransientRetries) {
|
|
658
671
|
const backoffMs = Math.pow(2, attempt) * 1e3;
|
|
659
|
-
require_logger.
|
|
672
|
+
require_logger.logger.debug(`Transient error (${response.status} ${response.statusText}), retry ${attempt + 1}/${maxTransientRetries} after ${backoffMs}ms`);
|
|
660
673
|
await sleep(backoffMs);
|
|
661
674
|
continue;
|
|
662
675
|
}
|
|
@@ -706,7 +719,7 @@ async function handleRateLimit(response) {
|
|
|
706
719
|
const now = /* @__PURE__ */ new Date();
|
|
707
720
|
waitTime = Math.max(resetTime.getTime() - now.getTime() + 1e3, 0);
|
|
708
721
|
} else if (retryAfter) waitTime = Number.parseInt(retryAfter) * 1e3;
|
|
709
|
-
require_logger.
|
|
722
|
+
require_logger.logger.debug(`Rate limited, waiting ${waitTime}ms before retry`);
|
|
710
723
|
await sleep(waitTime);
|
|
711
724
|
}
|
|
712
725
|
/**
|
|
@@ -738,7 +751,7 @@ async function fetchWithRetries(url, options = {}, timeout, maxRetries) {
|
|
|
738
751
|
}, timeout);
|
|
739
752
|
if (require_logger.getEnvBool("PROMPTFOO_RETRY_5XX") && response.status >= 500 && response.status < 600) throw new Error(`Internal Server Error: ${response.status} ${response.statusText}`);
|
|
740
753
|
if (response && isRateLimited(response)) {
|
|
741
|
-
require_logger.
|
|
754
|
+
require_logger.logger.debug(`Rate limited on URL ${url}: ${response.status} ${response.statusText}, attempt ${i + 1}/${maxRetries + 1}, waiting before retry...`);
|
|
742
755
|
lastErrorMessage = `Rate limited: ${response.status} ${response.statusText}`;
|
|
743
756
|
await handleRateLimit(response);
|
|
744
757
|
continue;
|
|
@@ -753,247 +766,223 @@ async function fetchWithRetries(url, options = {}, timeout, maxRetries) {
|
|
|
753
766
|
if (typedError.cause) errorMessage += ` (Cause: ${typedError.cause})`;
|
|
754
767
|
if (typedError.code) errorMessage += ` (Code: ${typedError.code})`;
|
|
755
768
|
} else errorMessage = String(error);
|
|
756
|
-
require_logger.
|
|
769
|
+
require_logger.logger.debug(`Request to ${url} failed (attempt #${i + 1}), retrying: ${errorMessage}`);
|
|
757
770
|
if (i < maxRetries) await sleep(Math.pow(2, i) * (backoff + 1e3 * Math.random()));
|
|
758
771
|
lastErrorMessage = errorMessage;
|
|
759
772
|
}
|
|
760
773
|
}
|
|
761
774
|
throw new Error(`Request failed after ${maxRetries} retries: ${lastErrorMessage}`);
|
|
762
775
|
}
|
|
763
|
-
|
|
764
776
|
//#endregion
|
|
765
|
-
Object.defineProperty(exports,
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
});
|
|
771
|
-
Object.defineProperty(exports,
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
});
|
|
777
|
-
Object.defineProperty(exports,
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
});
|
|
783
|
-
Object.defineProperty(exports,
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
});
|
|
789
|
-
Object.defineProperty(exports,
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
});
|
|
795
|
-
Object.defineProperty(exports,
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
});
|
|
801
|
-
Object.defineProperty(exports,
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
});
|
|
807
|
-
Object.defineProperty(exports,
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
});
|
|
813
|
-
Object.defineProperty(exports,
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
});
|
|
819
|
-
Object.defineProperty(exports,
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
});
|
|
825
|
-
Object.defineProperty(exports,
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
});
|
|
831
|
-
Object.defineProperty(exports,
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
});
|
|
837
|
-
Object.defineProperty(exports,
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
});
|
|
843
|
-
Object.defineProperty(exports,
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
});
|
|
849
|
-
Object.defineProperty(exports,
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
});
|
|
855
|
-
Object.defineProperty(exports,
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
});
|
|
861
|
-
Object.defineProperty(exports,
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
});
|
|
867
|
-
Object.defineProperty(exports,
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
});
|
|
873
|
-
Object.defineProperty(exports,
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
});
|
|
879
|
-
Object.defineProperty(exports,
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
});
|
|
885
|
-
Object.defineProperty(exports,
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
});
|
|
891
|
-
Object.defineProperty(exports,
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
});
|
|
897
|
-
Object.defineProperty(exports,
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
});
|
|
903
|
-
Object.defineProperty(exports,
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
});
|
|
909
|
-
Object.defineProperty(exports,
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
});
|
|
915
|
-
Object.defineProperty(exports,
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
});
|
|
921
|
-
Object.defineProperty(exports,
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
});
|
|
927
|
-
Object.defineProperty(exports,
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
});
|
|
933
|
-
Object.defineProperty(exports,
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
});
|
|
939
|
-
Object.defineProperty(exports,
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
});
|
|
945
|
-
Object.defineProperty(exports,
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
});
|
|
951
|
-
Object.defineProperty(exports,
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
});
|
|
957
|
-
Object.defineProperty(exports,
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
});
|
|
963
|
-
Object.defineProperty(exports,
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
});
|
|
969
|
-
Object.defineProperty(exports,
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
});
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
get: function () {
|
|
978
|
-
return transformToolChoice;
|
|
979
|
-
}
|
|
980
|
-
});
|
|
981
|
-
Object.defineProperty(exports, 'transformTools', {
|
|
982
|
-
enumerable: true,
|
|
983
|
-
get: function () {
|
|
984
|
-
return transformTools;
|
|
985
|
-
}
|
|
986
|
-
});
|
|
987
|
-
Object.defineProperty(exports, 'writeGlobalConfig', {
|
|
988
|
-
enumerable: true,
|
|
989
|
-
get: function () {
|
|
990
|
-
return writeGlobalConfig;
|
|
991
|
-
}
|
|
992
|
-
});
|
|
993
|
-
Object.defineProperty(exports, 'writeGlobalConfigPartial', {
|
|
994
|
-
enumerable: true,
|
|
995
|
-
get: function () {
|
|
996
|
-
return writeGlobalConfigPartial;
|
|
997
|
-
}
|
|
998
|
-
});
|
|
999
|
-
//# sourceMappingURL=fetch-ZMn_oemb.cjs.map
|
|
777
|
+
Object.defineProperty(exports, "CLOUD_PROVIDER_PREFIX", {
|
|
778
|
+
enumerable: true,
|
|
779
|
+
get: function() {
|
|
780
|
+
return CLOUD_PROVIDER_PREFIX;
|
|
781
|
+
}
|
|
782
|
+
});
|
|
783
|
+
Object.defineProperty(exports, "CONSENT_ENDPOINT", {
|
|
784
|
+
enumerable: true,
|
|
785
|
+
get: function() {
|
|
786
|
+
return CONSENT_ENDPOINT;
|
|
787
|
+
}
|
|
788
|
+
});
|
|
789
|
+
Object.defineProperty(exports, "CloudConfig", {
|
|
790
|
+
enumerable: true,
|
|
791
|
+
get: function() {
|
|
792
|
+
return CloudConfig;
|
|
793
|
+
}
|
|
794
|
+
});
|
|
795
|
+
Object.defineProperty(exports, "EVENTS_ENDPOINT", {
|
|
796
|
+
enumerable: true,
|
|
797
|
+
get: function() {
|
|
798
|
+
return EVENTS_ENDPOINT;
|
|
799
|
+
}
|
|
800
|
+
});
|
|
801
|
+
Object.defineProperty(exports, "FILE_METADATA_KEY", {
|
|
802
|
+
enumerable: true,
|
|
803
|
+
get: function() {
|
|
804
|
+
return FILE_METADATA_KEY;
|
|
805
|
+
}
|
|
806
|
+
});
|
|
807
|
+
Object.defineProperty(exports, "HUMAN_ASSERTION_TYPE", {
|
|
808
|
+
enumerable: true,
|
|
809
|
+
get: function() {
|
|
810
|
+
return HUMAN_ASSERTION_TYPE;
|
|
811
|
+
}
|
|
812
|
+
});
|
|
813
|
+
Object.defineProperty(exports, "LONG_RUNNING_MODEL_TIMEOUT_MS", {
|
|
814
|
+
enumerable: true,
|
|
815
|
+
get: function() {
|
|
816
|
+
return LONG_RUNNING_MODEL_TIMEOUT_MS;
|
|
817
|
+
}
|
|
818
|
+
});
|
|
819
|
+
Object.defineProperty(exports, "POSTHOG_KEY", {
|
|
820
|
+
enumerable: true,
|
|
821
|
+
get: function() {
|
|
822
|
+
return POSTHOG_KEY;
|
|
823
|
+
}
|
|
824
|
+
});
|
|
825
|
+
Object.defineProperty(exports, "REQUEST_TIMEOUT_MS", {
|
|
826
|
+
enumerable: true,
|
|
827
|
+
get: function() {
|
|
828
|
+
return REQUEST_TIMEOUT_MS;
|
|
829
|
+
}
|
|
830
|
+
});
|
|
831
|
+
Object.defineProperty(exports, "R_ENDPOINT", {
|
|
832
|
+
enumerable: true,
|
|
833
|
+
get: function() {
|
|
834
|
+
return R_ENDPOINT;
|
|
835
|
+
}
|
|
836
|
+
});
|
|
837
|
+
Object.defineProperty(exports, "TERMINAL_MAX_WIDTH", {
|
|
838
|
+
enumerable: true,
|
|
839
|
+
get: function() {
|
|
840
|
+
return TERMINAL_MAX_WIDTH;
|
|
841
|
+
}
|
|
842
|
+
});
|
|
843
|
+
Object.defineProperty(exports, "VERSION", {
|
|
844
|
+
enumerable: true,
|
|
845
|
+
get: function() {
|
|
846
|
+
return VERSION;
|
|
847
|
+
}
|
|
848
|
+
});
|
|
849
|
+
Object.defineProperty(exports, "calculateCost", {
|
|
850
|
+
enumerable: true,
|
|
851
|
+
get: function() {
|
|
852
|
+
return calculateCost;
|
|
853
|
+
}
|
|
854
|
+
});
|
|
855
|
+
Object.defineProperty(exports, "cloudConfig", {
|
|
856
|
+
enumerable: true,
|
|
857
|
+
get: function() {
|
|
858
|
+
return cloudConfig;
|
|
859
|
+
}
|
|
860
|
+
});
|
|
861
|
+
Object.defineProperty(exports, "fetchWithProxy", {
|
|
862
|
+
enumerable: true,
|
|
863
|
+
get: function() {
|
|
864
|
+
return fetchWithProxy;
|
|
865
|
+
}
|
|
866
|
+
});
|
|
867
|
+
Object.defineProperty(exports, "fetchWithRetries", {
|
|
868
|
+
enumerable: true,
|
|
869
|
+
get: function() {
|
|
870
|
+
return fetchWithRetries;
|
|
871
|
+
}
|
|
872
|
+
});
|
|
873
|
+
Object.defineProperty(exports, "fetchWithTimeout", {
|
|
874
|
+
enumerable: true,
|
|
875
|
+
get: function() {
|
|
876
|
+
return fetchWithTimeout;
|
|
877
|
+
}
|
|
878
|
+
});
|
|
879
|
+
Object.defineProperty(exports, "fetch_exports", {
|
|
880
|
+
enumerable: true,
|
|
881
|
+
get: function() {
|
|
882
|
+
return fetch_exports;
|
|
883
|
+
}
|
|
884
|
+
});
|
|
885
|
+
Object.defineProperty(exports, "getCurrentTimestamp", {
|
|
886
|
+
enumerable: true,
|
|
887
|
+
get: function() {
|
|
888
|
+
return getCurrentTimestamp;
|
|
889
|
+
}
|
|
890
|
+
});
|
|
891
|
+
Object.defineProperty(exports, "getDefaultShareViewBaseUrl", {
|
|
892
|
+
enumerable: true,
|
|
893
|
+
get: function() {
|
|
894
|
+
return getDefaultShareViewBaseUrl;
|
|
895
|
+
}
|
|
896
|
+
});
|
|
897
|
+
Object.defineProperty(exports, "getShareApiBaseUrl", {
|
|
898
|
+
enumerable: true,
|
|
899
|
+
get: function() {
|
|
900
|
+
return getShareApiBaseUrl;
|
|
901
|
+
}
|
|
902
|
+
});
|
|
903
|
+
Object.defineProperty(exports, "getShareViewBaseUrl", {
|
|
904
|
+
enumerable: true,
|
|
905
|
+
get: function() {
|
|
906
|
+
return getShareViewBaseUrl;
|
|
907
|
+
}
|
|
908
|
+
});
|
|
909
|
+
Object.defineProperty(exports, "isOpenAIToolArray", {
|
|
910
|
+
enumerable: true,
|
|
911
|
+
get: function() {
|
|
912
|
+
return isOpenAIToolArray;
|
|
913
|
+
}
|
|
914
|
+
});
|
|
915
|
+
Object.defineProperty(exports, "isOpenAIToolChoice", {
|
|
916
|
+
enumerable: true,
|
|
917
|
+
get: function() {
|
|
918
|
+
return isOpenAIToolChoice;
|
|
919
|
+
}
|
|
920
|
+
});
|
|
921
|
+
Object.defineProperty(exports, "isPromptfooSampleTarget", {
|
|
922
|
+
enumerable: true,
|
|
923
|
+
get: function() {
|
|
924
|
+
return isPromptfooSampleTarget;
|
|
925
|
+
}
|
|
926
|
+
});
|
|
927
|
+
Object.defineProperty(exports, "openaiToolChoiceToBedrock", {
|
|
928
|
+
enumerable: true,
|
|
929
|
+
get: function() {
|
|
930
|
+
return openaiToolChoiceToBedrock;
|
|
931
|
+
}
|
|
932
|
+
});
|
|
933
|
+
Object.defineProperty(exports, "openaiToolsToBedrock", {
|
|
934
|
+
enumerable: true,
|
|
935
|
+
get: function() {
|
|
936
|
+
return openaiToolsToBedrock;
|
|
937
|
+
}
|
|
938
|
+
});
|
|
939
|
+
Object.defineProperty(exports, "parseChatPrompt", {
|
|
940
|
+
enumerable: true,
|
|
941
|
+
get: function() {
|
|
942
|
+
return parseChatPrompt;
|
|
943
|
+
}
|
|
944
|
+
});
|
|
945
|
+
Object.defineProperty(exports, "readGlobalConfig", {
|
|
946
|
+
enumerable: true,
|
|
947
|
+
get: function() {
|
|
948
|
+
return readGlobalConfig;
|
|
949
|
+
}
|
|
950
|
+
});
|
|
951
|
+
Object.defineProperty(exports, "sleep", {
|
|
952
|
+
enumerable: true,
|
|
953
|
+
get: function() {
|
|
954
|
+
return sleep;
|
|
955
|
+
}
|
|
956
|
+
});
|
|
957
|
+
Object.defineProperty(exports, "toTitleCase", {
|
|
958
|
+
enumerable: true,
|
|
959
|
+
get: function() {
|
|
960
|
+
return toTitleCase;
|
|
961
|
+
}
|
|
962
|
+
});
|
|
963
|
+
Object.defineProperty(exports, "transformToolChoice", {
|
|
964
|
+
enumerable: true,
|
|
965
|
+
get: function() {
|
|
966
|
+
return transformToolChoice;
|
|
967
|
+
}
|
|
968
|
+
});
|
|
969
|
+
Object.defineProperty(exports, "transformTools", {
|
|
970
|
+
enumerable: true,
|
|
971
|
+
get: function() {
|
|
972
|
+
return transformTools;
|
|
973
|
+
}
|
|
974
|
+
});
|
|
975
|
+
Object.defineProperty(exports, "writeGlobalConfig", {
|
|
976
|
+
enumerable: true,
|
|
977
|
+
get: function() {
|
|
978
|
+
return writeGlobalConfig;
|
|
979
|
+
}
|
|
980
|
+
});
|
|
981
|
+
Object.defineProperty(exports, "writeGlobalConfigPartial", {
|
|
982
|
+
enumerable: true,
|
|
983
|
+
get: function() {
|
|
984
|
+
return writeGlobalConfigPartial;
|
|
985
|
+
}
|
|
986
|
+
});
|
|
987
|
+
|
|
988
|
+
//# sourceMappingURL=fetch-BxUk8odA.cjs.map
|