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,12 +1,11 @@
|
|
|
1
|
-
const require_logger = require(
|
|
2
|
-
const require_fetch = require(
|
|
3
|
-
const require_accounts = require(
|
|
1
|
+
const require_logger = require("./logger-Cp1GPUjj.cjs");
|
|
2
|
+
const require_fetch = require("./fetch-BxUk8odA.cjs");
|
|
3
|
+
const require_accounts = require("./accounts-Bx-x3bmW.cjs");
|
|
4
4
|
let chalk = require("chalk");
|
|
5
5
|
chalk = require_logger.__toESM(chalk);
|
|
6
6
|
require("opener");
|
|
7
7
|
let readline = require("readline");
|
|
8
8
|
readline = require_logger.__toESM(readline);
|
|
9
|
-
|
|
10
9
|
//#region src/redteam/remoteGeneration.ts
|
|
11
10
|
/**
|
|
12
11
|
* Gets the remote generation API endpoint URL.
|
|
@@ -76,7 +75,7 @@ function getRemoteVersionUrl() {
|
|
|
76
75
|
function shouldGenerateRemote() {
|
|
77
76
|
if (neverGenerateRemote()) return false;
|
|
78
77
|
if (require_accounts.isLoggedIntoCloud()) return true;
|
|
79
|
-
return !require_logger.getEnvString("OPENAI_API_KEY") || (require_logger.
|
|
78
|
+
return !require_logger.getEnvString("OPENAI_API_KEY") || (require_logger.state.remote ?? false);
|
|
80
79
|
}
|
|
81
80
|
/**
|
|
82
81
|
* Gets the URL for unaligned model inference (harmful content generation).
|
|
@@ -90,7 +89,6 @@ function getRemoteGenerationUrlForUnaligned() {
|
|
|
90
89
|
if (cloudConfig.isEnabled()) return cloudConfig.getApiHost() + "/api/v1/task/harmful";
|
|
91
90
|
return "https://api.promptfoo.app/api/v1/task/harmful";
|
|
92
91
|
}
|
|
93
|
-
|
|
94
92
|
//#endregion
|
|
95
93
|
//#region src/util/readline.ts
|
|
96
94
|
/**
|
|
@@ -136,7 +134,6 @@ async function promptYesNo(question, defaultYes = false) {
|
|
|
136
134
|
if (defaultYes) return !answer.trim().toLowerCase().startsWith("n");
|
|
137
135
|
return answer.trim().toLowerCase().startsWith("y");
|
|
138
136
|
}
|
|
139
|
-
|
|
140
137
|
//#endregion
|
|
141
138
|
//#region src/util/server.ts
|
|
142
139
|
const BrowserBehavior = {
|
|
@@ -147,14 +144,7 @@ const BrowserBehavior = {
|
|
|
147
144
|
OPEN_TO_REDTEAM_CREATE: 4,
|
|
148
145
|
OPEN_TO_EVAL_SETUP: 5
|
|
149
146
|
};
|
|
150
|
-
|
|
151
|
-
[BrowserBehavior.ASK]: "ASK",
|
|
152
|
-
[BrowserBehavior.OPEN]: "OPEN",
|
|
153
|
-
[BrowserBehavior.SKIP]: "SKIP",
|
|
154
|
-
[BrowserBehavior.OPEN_TO_REPORT]: "OPEN_TO_REPORT",
|
|
155
|
-
[BrowserBehavior.OPEN_TO_REDTEAM_CREATE]: "OPEN_TO_REDTEAM_CREATE",
|
|
156
|
-
[BrowserBehavior.OPEN_TO_EVAL_SETUP]: "OPEN_TO_EVAL_SETUP"
|
|
157
|
-
};
|
|
147
|
+
BrowserBehavior.ASK, BrowserBehavior.OPEN, BrowserBehavior.SKIP, BrowserBehavior.OPEN_TO_REPORT, BrowserBehavior.OPEN_TO_REDTEAM_CREATE, BrowserBehavior.OPEN_TO_EVAL_SETUP;
|
|
158
148
|
const featureCache = /* @__PURE__ */ new Map();
|
|
159
149
|
/**
|
|
160
150
|
* Checks if a server supports a specific feature based on build date
|
|
@@ -167,7 +157,7 @@ async function checkServerFeatureSupport(featureName, requiredBuildDate) {
|
|
|
167
157
|
if (featureCache.has(cacheKey)) return featureCache.get(cacheKey);
|
|
168
158
|
let supported = false;
|
|
169
159
|
try {
|
|
170
|
-
require_logger.
|
|
160
|
+
require_logger.logger.debug(`[Feature Detection] Checking server support for feature: ${featureName}`);
|
|
171
161
|
const versionUrl = getRemoteVersionUrl();
|
|
172
162
|
if (versionUrl) {
|
|
173
163
|
const data = await (await require_fetch.fetchWithProxy(versionUrl, {
|
|
@@ -176,76 +166,76 @@ async function checkServerFeatureSupport(featureName, requiredBuildDate) {
|
|
|
176
166
|
})).json();
|
|
177
167
|
if (data.buildDate) {
|
|
178
168
|
supported = new Date(data.buildDate) >= new Date(requiredBuildDate);
|
|
179
|
-
require_logger.
|
|
169
|
+
require_logger.logger.debug(`[Feature Detection] ${featureName}: buildDate=${data.buildDate}, required=${requiredBuildDate}, supported=${supported}`);
|
|
180
170
|
} else {
|
|
181
|
-
require_logger.
|
|
171
|
+
require_logger.logger.debug(`[Feature Detection] ${featureName}: no version info, assuming not supported`);
|
|
182
172
|
supported = false;
|
|
183
173
|
}
|
|
184
174
|
} else {
|
|
185
|
-
require_logger.
|
|
175
|
+
require_logger.logger.debug(`[Feature Detection] No remote URL available for ${featureName}, assuming local server supports it`);
|
|
186
176
|
supported = true;
|
|
187
177
|
}
|
|
188
178
|
} catch (error) {
|
|
189
|
-
require_logger.
|
|
179
|
+
require_logger.logger.debug(`[Feature Detection] Version check failed for ${featureName}, assuming not supported: ${error}`);
|
|
190
180
|
supported = false;
|
|
191
181
|
}
|
|
192
182
|
featureCache.set(cacheKey, supported);
|
|
193
183
|
return supported;
|
|
194
184
|
}
|
|
195
|
-
|
|
196
185
|
//#endregion
|
|
197
|
-
Object.defineProperty(exports,
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
186
|
+
Object.defineProperty(exports, "BrowserBehavior", {
|
|
187
|
+
enumerable: true,
|
|
188
|
+
get: function() {
|
|
189
|
+
return BrowserBehavior;
|
|
190
|
+
}
|
|
202
191
|
});
|
|
203
|
-
Object.defineProperty(exports,
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
192
|
+
Object.defineProperty(exports, "checkServerFeatureSupport", {
|
|
193
|
+
enumerable: true,
|
|
194
|
+
get: function() {
|
|
195
|
+
return checkServerFeatureSupport;
|
|
196
|
+
}
|
|
208
197
|
});
|
|
209
|
-
Object.defineProperty(exports,
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
198
|
+
Object.defineProperty(exports, "getRemoteGenerationUrl", {
|
|
199
|
+
enumerable: true,
|
|
200
|
+
get: function() {
|
|
201
|
+
return getRemoteGenerationUrl;
|
|
202
|
+
}
|
|
214
203
|
});
|
|
215
|
-
Object.defineProperty(exports,
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
204
|
+
Object.defineProperty(exports, "getRemoteGenerationUrlForUnaligned", {
|
|
205
|
+
enumerable: true,
|
|
206
|
+
get: function() {
|
|
207
|
+
return getRemoteGenerationUrlForUnaligned;
|
|
208
|
+
}
|
|
220
209
|
});
|
|
221
|
-
Object.defineProperty(exports,
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
210
|
+
Object.defineProperty(exports, "getRemoteHealthUrl", {
|
|
211
|
+
enumerable: true,
|
|
212
|
+
get: function() {
|
|
213
|
+
return getRemoteHealthUrl;
|
|
214
|
+
}
|
|
226
215
|
});
|
|
227
|
-
Object.defineProperty(exports,
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
216
|
+
Object.defineProperty(exports, "neverGenerateRemote", {
|
|
217
|
+
enumerable: true,
|
|
218
|
+
get: function() {
|
|
219
|
+
return neverGenerateRemote;
|
|
220
|
+
}
|
|
232
221
|
});
|
|
233
|
-
Object.defineProperty(exports,
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
222
|
+
Object.defineProperty(exports, "neverGenerateRemoteForRegularEvals", {
|
|
223
|
+
enumerable: true,
|
|
224
|
+
get: function() {
|
|
225
|
+
return neverGenerateRemoteForRegularEvals;
|
|
226
|
+
}
|
|
238
227
|
});
|
|
239
|
-
Object.defineProperty(exports,
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
228
|
+
Object.defineProperty(exports, "promptYesNo", {
|
|
229
|
+
enumerable: true,
|
|
230
|
+
get: function() {
|
|
231
|
+
return promptYesNo;
|
|
232
|
+
}
|
|
244
233
|
});
|
|
245
|
-
Object.defineProperty(exports,
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
234
|
+
Object.defineProperty(exports, "shouldGenerateRemote", {
|
|
235
|
+
enumerable: true,
|
|
236
|
+
get: function() {
|
|
237
|
+
return shouldGenerateRemote;
|
|
238
|
+
}
|
|
250
239
|
});
|
|
251
|
-
|
|
240
|
+
|
|
241
|
+
//# sourceMappingURL=server-B0PPuDw-.cjs.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
1
|
+
import { t as __exportAll } from "./chunk-DEq-mXcV.js";
|
|
2
|
+
import { _ as getEnvBool, b as getEnvString, i as logger, w as state } from "./logger-CT3IKMKA.js";
|
|
3
|
+
import { a as CloudConfig, t as fetchWithProxy } from "./fetch-60Gzydls.js";
|
|
4
|
+
import { o as isLoggedIntoCloud } from "./accounts-xrUGFA6n.js";
|
|
5
|
+
import "chalk";
|
|
5
6
|
import "opener";
|
|
6
7
|
import readline from "readline";
|
|
7
|
-
|
|
8
8
|
//#region src/redteam/remoteGeneration.ts
|
|
9
9
|
/**
|
|
10
10
|
* Gets the remote generation API endpoint URL.
|
|
@@ -74,7 +74,7 @@ function getRemoteVersionUrl() {
|
|
|
74
74
|
function shouldGenerateRemote() {
|
|
75
75
|
if (neverGenerateRemote()) return false;
|
|
76
76
|
if (isLoggedIntoCloud()) return true;
|
|
77
|
-
return !getEnvString("OPENAI_API_KEY") || (
|
|
77
|
+
return !getEnvString("OPENAI_API_KEY") || (state.remote ?? false);
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* Gets the URL for unaligned model inference (harmful content generation).
|
|
@@ -88,7 +88,6 @@ function getRemoteGenerationUrlForUnaligned() {
|
|
|
88
88
|
if (cloudConfig.isEnabled()) return cloudConfig.getApiHost() + "/api/v1/task/harmful";
|
|
89
89
|
return "https://api.promptfoo.app/api/v1/task/harmful";
|
|
90
90
|
}
|
|
91
|
-
|
|
92
91
|
//#endregion
|
|
93
92
|
//#region src/util/readline.ts
|
|
94
93
|
/**
|
|
@@ -134,9 +133,12 @@ async function promptYesNo(question, defaultYes = false) {
|
|
|
134
133
|
if (defaultYes) return !answer.trim().toLowerCase().startsWith("n");
|
|
135
134
|
return answer.trim().toLowerCase().startsWith("y");
|
|
136
135
|
}
|
|
137
|
-
|
|
138
136
|
//#endregion
|
|
139
137
|
//#region src/util/server.ts
|
|
138
|
+
var server_exports = /* @__PURE__ */ __exportAll({
|
|
139
|
+
BrowserBehavior: () => BrowserBehavior,
|
|
140
|
+
checkServerFeatureSupport: () => checkServerFeatureSupport
|
|
141
|
+
});
|
|
140
142
|
const BrowserBehavior = {
|
|
141
143
|
ASK: 0,
|
|
142
144
|
OPEN: 1,
|
|
@@ -145,14 +147,7 @@ const BrowserBehavior = {
|
|
|
145
147
|
OPEN_TO_REDTEAM_CREATE: 4,
|
|
146
148
|
OPEN_TO_EVAL_SETUP: 5
|
|
147
149
|
};
|
|
148
|
-
|
|
149
|
-
[BrowserBehavior.ASK]: "ASK",
|
|
150
|
-
[BrowserBehavior.OPEN]: "OPEN",
|
|
151
|
-
[BrowserBehavior.SKIP]: "SKIP",
|
|
152
|
-
[BrowserBehavior.OPEN_TO_REPORT]: "OPEN_TO_REPORT",
|
|
153
|
-
[BrowserBehavior.OPEN_TO_REDTEAM_CREATE]: "OPEN_TO_REDTEAM_CREATE",
|
|
154
|
-
[BrowserBehavior.OPEN_TO_EVAL_SETUP]: "OPEN_TO_EVAL_SETUP"
|
|
155
|
-
};
|
|
150
|
+
BrowserBehavior.ASK, BrowserBehavior.OPEN, BrowserBehavior.SKIP, BrowserBehavior.OPEN_TO_REPORT, BrowserBehavior.OPEN_TO_REDTEAM_CREATE, BrowserBehavior.OPEN_TO_EVAL_SETUP;
|
|
156
151
|
const featureCache = /* @__PURE__ */ new Map();
|
|
157
152
|
/**
|
|
158
153
|
* Checks if a server supports a specific feature based on build date
|
|
@@ -165,7 +160,7 @@ async function checkServerFeatureSupport(featureName, requiredBuildDate) {
|
|
|
165
160
|
if (featureCache.has(cacheKey)) return featureCache.get(cacheKey);
|
|
166
161
|
let supported = false;
|
|
167
162
|
try {
|
|
168
|
-
|
|
163
|
+
logger.debug(`[Feature Detection] Checking server support for feature: ${featureName}`);
|
|
169
164
|
const versionUrl = getRemoteVersionUrl();
|
|
170
165
|
if (versionUrl) {
|
|
171
166
|
const data = await (await fetchWithProxy(versionUrl, {
|
|
@@ -174,23 +169,23 @@ async function checkServerFeatureSupport(featureName, requiredBuildDate) {
|
|
|
174
169
|
})).json();
|
|
175
170
|
if (data.buildDate) {
|
|
176
171
|
supported = new Date(data.buildDate) >= new Date(requiredBuildDate);
|
|
177
|
-
|
|
172
|
+
logger.debug(`[Feature Detection] ${featureName}: buildDate=${data.buildDate}, required=${requiredBuildDate}, supported=${supported}`);
|
|
178
173
|
} else {
|
|
179
|
-
|
|
174
|
+
logger.debug(`[Feature Detection] ${featureName}: no version info, assuming not supported`);
|
|
180
175
|
supported = false;
|
|
181
176
|
}
|
|
182
177
|
} else {
|
|
183
|
-
|
|
178
|
+
logger.debug(`[Feature Detection] No remote URL available for ${featureName}, assuming local server supports it`);
|
|
184
179
|
supported = true;
|
|
185
180
|
}
|
|
186
181
|
} catch (error) {
|
|
187
|
-
|
|
182
|
+
logger.debug(`[Feature Detection] Version check failed for ${featureName}, assuming not supported: ${error}`);
|
|
188
183
|
supported = false;
|
|
189
184
|
}
|
|
190
185
|
featureCache.set(cacheKey, supported);
|
|
191
186
|
return supported;
|
|
192
187
|
}
|
|
193
|
-
|
|
194
188
|
//#endregion
|
|
195
|
-
export { getRemoteGenerationUrlForUnaligned as a, neverGenerateRemoteForRegularEvals as c, getRemoteGenerationUrl as i, shouldGenerateRemote as l,
|
|
196
|
-
|
|
189
|
+
export { getRemoteGenerationUrlForUnaligned as a, neverGenerateRemoteForRegularEvals as c, getRemoteGenerationUrl as i, shouldGenerateRemote as l, server_exports as n, getRemoteHealthUrl as o, promptYesNo as r, neverGenerateRemote as s, checkServerFeatureSupport as t };
|
|
190
|
+
|
|
191
|
+
//# sourceMappingURL=server-BC7XJFgr.js.map
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { C as getEnvString, O as
|
|
3
|
-
import {
|
|
4
|
-
import { c as isLoggedIntoCloud } from "./accounts-
|
|
5
|
-
import { r as CloudConfig } from "./cloud-
|
|
2
|
+
import { C as getEnvString, O as state, b as getEnvBool, o as logger } from "./logger-KkObSCzq.js";
|
|
3
|
+
import { O as getDefaultPort, n as fetchWithProxy } from "./fetch-BMv0O527.js";
|
|
4
|
+
import { c as isLoggedIntoCloud } from "./accounts-CMqkzrVf.js";
|
|
5
|
+
import { r as CloudConfig } from "./cloud-Bc9526yV.js";
|
|
6
6
|
import chalk from "chalk";
|
|
7
7
|
import opener from "opener";
|
|
8
8
|
import readline from "readline";
|
|
9
|
-
|
|
10
9
|
//#region src/redteam/remoteGeneration.ts
|
|
11
10
|
/**
|
|
12
11
|
* Gets the remote generation API endpoint URL.
|
|
@@ -76,7 +75,7 @@ function getRemoteVersionUrl() {
|
|
|
76
75
|
function shouldGenerateRemote() {
|
|
77
76
|
if (neverGenerateRemote()) return false;
|
|
78
77
|
if (isLoggedIntoCloud()) return true;
|
|
79
|
-
return !getEnvString("OPENAI_API_KEY") || (
|
|
78
|
+
return !getEnvString("OPENAI_API_KEY") || (state.remote ?? false);
|
|
80
79
|
}
|
|
81
80
|
/**
|
|
82
81
|
* Gets the URL for unaligned model inference (harmful content generation).
|
|
@@ -90,7 +89,6 @@ function getRemoteGenerationUrlForUnaligned() {
|
|
|
90
89
|
if (cloudConfig.isEnabled()) return cloudConfig.getApiHost() + "/api/v1/task/harmful";
|
|
91
90
|
return "https://api.promptfoo.app/api/v1/task/harmful";
|
|
92
91
|
}
|
|
93
|
-
|
|
94
92
|
//#endregion
|
|
95
93
|
//#region src/util/readline.ts
|
|
96
94
|
/**
|
|
@@ -136,7 +134,6 @@ async function promptYesNo(question, defaultYes = false) {
|
|
|
136
134
|
if (defaultYes) return !answer.trim().toLowerCase().startsWith("n");
|
|
137
135
|
return answer.trim().toLowerCase().startsWith("y");
|
|
138
136
|
}
|
|
139
|
-
|
|
140
137
|
//#endregion
|
|
141
138
|
//#region src/util/server.ts
|
|
142
139
|
const BrowserBehavior = {
|
|
@@ -167,7 +164,7 @@ async function checkServerFeatureSupport(featureName, requiredBuildDate) {
|
|
|
167
164
|
if (featureCache.has(cacheKey)) return featureCache.get(cacheKey);
|
|
168
165
|
let supported = false;
|
|
169
166
|
try {
|
|
170
|
-
|
|
167
|
+
logger.debug(`[Feature Detection] Checking server support for feature: ${featureName}`);
|
|
171
168
|
const versionUrl = getRemoteVersionUrl();
|
|
172
169
|
if (versionUrl) {
|
|
173
170
|
const data = await (await fetchWithProxy(versionUrl, {
|
|
@@ -176,29 +173,29 @@ async function checkServerFeatureSupport(featureName, requiredBuildDate) {
|
|
|
176
173
|
})).json();
|
|
177
174
|
if (data.buildDate) {
|
|
178
175
|
supported = new Date(data.buildDate) >= new Date(requiredBuildDate);
|
|
179
|
-
|
|
176
|
+
logger.debug(`[Feature Detection] ${featureName}: buildDate=${data.buildDate}, required=${requiredBuildDate}, supported=${supported}`);
|
|
180
177
|
} else {
|
|
181
|
-
|
|
178
|
+
logger.debug(`[Feature Detection] ${featureName}: no version info, assuming not supported`);
|
|
182
179
|
supported = false;
|
|
183
180
|
}
|
|
184
181
|
} else {
|
|
185
|
-
|
|
182
|
+
logger.debug(`[Feature Detection] No remote URL available for ${featureName}, assuming local server supports it`);
|
|
186
183
|
supported = true;
|
|
187
184
|
}
|
|
188
185
|
} catch (error) {
|
|
189
|
-
|
|
186
|
+
logger.debug(`[Feature Detection] Version check failed for ${featureName}, assuming not supported: ${error}`);
|
|
190
187
|
supported = false;
|
|
191
188
|
}
|
|
192
189
|
featureCache.set(cacheKey, supported);
|
|
193
190
|
return supported;
|
|
194
191
|
}
|
|
195
192
|
async function checkServerRunning(port = getDefaultPort()) {
|
|
196
|
-
|
|
193
|
+
logger.debug(`Checking for existing server on port ${port}...`);
|
|
197
194
|
try {
|
|
198
195
|
const data = await (await fetchWithProxy(`http://localhost:${port}/health`, { headers: { "x-promptfoo-silent": "true" } })).json();
|
|
199
|
-
return data.status === "OK" && data.version ===
|
|
196
|
+
return data.status === "OK" && data.version === "0.121.1";
|
|
200
197
|
} catch (err) {
|
|
201
|
-
|
|
198
|
+
logger.debug(`No existing server found - this is expected on first startup. ${String(err)}`);
|
|
202
199
|
return false;
|
|
203
200
|
}
|
|
204
201
|
}
|
|
@@ -210,10 +207,10 @@ async function openBrowser(browserBehavior, port = getDefaultPort()) {
|
|
|
210
207
|
else if (browserBehavior === BrowserBehavior.OPEN_TO_EVAL_SETUP) url = `${baseUrl}/setup`;
|
|
211
208
|
const doOpen = async () => {
|
|
212
209
|
try {
|
|
213
|
-
|
|
210
|
+
logger.info("Press Ctrl+C to stop the server");
|
|
214
211
|
await opener(url);
|
|
215
212
|
} catch (err) {
|
|
216
|
-
|
|
213
|
+
logger.error(`Failed to open browser: ${String(err)}`);
|
|
217
214
|
}
|
|
218
215
|
};
|
|
219
216
|
if (browserBehavior === BrowserBehavior.ASK) {
|
|
@@ -244,26 +241,26 @@ async function openBrowser(browserBehavior, port = getDefaultPort()) {
|
|
|
244
241
|
async function openAuthBrowser(authUrl, welcomeUrl, browserBehavior) {
|
|
245
242
|
const doOpen = async () => {
|
|
246
243
|
try {
|
|
247
|
-
|
|
244
|
+
logger.info(`Opening ${authUrl} in your browser...`);
|
|
248
245
|
await opener(authUrl);
|
|
249
|
-
|
|
246
|
+
logger.info(`After logging in, get your API token at ${chalk.green(welcomeUrl)}`);
|
|
250
247
|
} catch (err) {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
248
|
+
logger.error(`Failed to open browser: ${String(err)}`);
|
|
249
|
+
logger.info(`Please visit: ${chalk.green(authUrl)}`);
|
|
250
|
+
logger.info(`After logging in, get your API token at ${chalk.green(welcomeUrl)}`);
|
|
254
251
|
}
|
|
255
252
|
};
|
|
256
253
|
if (browserBehavior === BrowserBehavior.ASK) if (await promptYesNo("Open login page in browser?", true)) await doOpen();
|
|
257
254
|
else {
|
|
258
|
-
|
|
259
|
-
|
|
255
|
+
logger.info(`Please visit: ${chalk.green(authUrl)}`);
|
|
256
|
+
logger.info(`After logging in, get your API token at ${chalk.green(welcomeUrl)}`);
|
|
260
257
|
}
|
|
261
258
|
else if (browserBehavior === BrowserBehavior.SKIP) {
|
|
262
|
-
|
|
263
|
-
|
|
259
|
+
logger.info(`Please visit: ${chalk.green(authUrl)}`);
|
|
260
|
+
logger.info(`After logging in, get your API token at ${chalk.green(welcomeUrl)}`);
|
|
264
261
|
} else await doOpen();
|
|
265
262
|
}
|
|
266
|
-
|
|
267
263
|
//#endregion
|
|
268
264
|
export { openAuthBrowser as a, promptYesNo as c, getRemoteHealthUrl as d, neverGenerateRemote as f, checkServerRunning as i, getRemoteGenerationUrl as l, shouldGenerateRemote as m, BrowserBehaviorNames as n, openBrowser as o, neverGenerateRemoteForRegularEvals as p, checkServerFeatureSupport as r, promptUser as s, BrowserBehavior as t, getRemoteGenerationUrlForUnaligned as u };
|
|
269
|
-
|
|
265
|
+
|
|
266
|
+
//# sourceMappingURL=server-DbFphssR.js.map
|