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
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { b as getEnvString, i as logger, y as getEnvInt } from "./logger-DLcq4dWf.js";
|
|
2
|
+
import { n as telemetry } from "./telemetry-DMb2Mpfm.js";
|
|
3
|
+
//#region src/providers/bedrock/util.ts
|
|
4
|
+
const REQUEST_TIMEOUT_MS = 3e5;
|
|
5
|
+
function hasProxyEnv() {
|
|
6
|
+
return Boolean(getEnvString("HTTP_PROXY") || getEnvString("HTTPS_PROXY"));
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Creates a NodeHttpHandler (HTTP/1.1) for Bedrock SDK clients.
|
|
10
|
+
*
|
|
11
|
+
* The @aws-sdk/client-bedrock-runtime package defaults to HTTP/2, which causes
|
|
12
|
+
* "http2 request did not get a response" errors in many environments (see #7756).
|
|
13
|
+
* This function forces HTTP/1.1 via NodeHttpHandler.
|
|
14
|
+
*
|
|
15
|
+
* For @aws-sdk/client-bedrock-agent-runtime (which already defaults to HTTP/1.1),
|
|
16
|
+
* this is only needed when proxy or API key authentication is required.
|
|
17
|
+
*/
|
|
18
|
+
async function createBedrockRequestHandler(options) {
|
|
19
|
+
const hasProxy = hasProxyEnv();
|
|
20
|
+
try {
|
|
21
|
+
const { NodeHttpHandler } = await import("@smithy/node-http-handler");
|
|
22
|
+
let proxyAgent;
|
|
23
|
+
if (hasProxy) {
|
|
24
|
+
const { ProxyAgent } = await import("proxy-agent");
|
|
25
|
+
proxyAgent = new ProxyAgent();
|
|
26
|
+
}
|
|
27
|
+
const handler = new NodeHttpHandler({
|
|
28
|
+
...proxyAgent ? { httpsAgent: proxyAgent } : {},
|
|
29
|
+
requestTimeout: REQUEST_TIMEOUT_MS
|
|
30
|
+
});
|
|
31
|
+
if (options?.apiKey) {
|
|
32
|
+
const originalHandle = handler.handle.bind(handler);
|
|
33
|
+
handler.handle = async (request, handlerOptions) => {
|
|
34
|
+
request.headers = {
|
|
35
|
+
...request.headers,
|
|
36
|
+
Authorization: `Bearer ${options.apiKey}`
|
|
37
|
+
};
|
|
38
|
+
return originalHandle(request, handlerOptions);
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return handler;
|
|
42
|
+
} catch {
|
|
43
|
+
const reason = options?.apiKey ? "API key authentication requires the @smithy/node-http-handler package" : hasProxy ? "Proxy configuration requires the @smithy/node-http-handler package" : "Bedrock provider requires the @smithy/node-http-handler package";
|
|
44
|
+
throw new Error(`${reason}. Please install it in your project or globally.`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function novaOutputFromMessage(response) {
|
|
48
|
+
if (response.output?.message?.content.some((block) => block.toolUse?.toolUseId)) return response.output?.message?.content.map((block) => {
|
|
49
|
+
if (block.text) return null;
|
|
50
|
+
return JSON.stringify(block.toolUse);
|
|
51
|
+
}).filter((block) => block).join("\n\n");
|
|
52
|
+
return response.output?.message?.content.map((block) => {
|
|
53
|
+
return block.text;
|
|
54
|
+
}).join("\n\n");
|
|
55
|
+
}
|
|
56
|
+
function novaParseMessages(messages) {
|
|
57
|
+
try {
|
|
58
|
+
const parsed = JSON.parse(messages);
|
|
59
|
+
if (Array.isArray(parsed)) {
|
|
60
|
+
const systemMessage = parsed.find((msg) => msg.role === "system");
|
|
61
|
+
return {
|
|
62
|
+
extractedMessages: parsed.filter((msg) => msg.role !== "system").map((msg) => ({
|
|
63
|
+
role: msg.role,
|
|
64
|
+
content: Array.isArray(msg.content) ? msg.content : [{ text: msg.content }]
|
|
65
|
+
})),
|
|
66
|
+
system: systemMessage ? Array.isArray(systemMessage.content) ? systemMessage.content : [{ text: systemMessage.content }] : void 0
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
} catch {}
|
|
70
|
+
const lines = messages.split("\n").map((line) => line.trim()).filter((line) => line);
|
|
71
|
+
let system;
|
|
72
|
+
const extractedMessages = [];
|
|
73
|
+
let currentRole = null;
|
|
74
|
+
let currentContent = [];
|
|
75
|
+
const pushMessage = () => {
|
|
76
|
+
if (currentRole && currentContent.length > 0) {
|
|
77
|
+
extractedMessages.push({
|
|
78
|
+
role: currentRole,
|
|
79
|
+
content: [{ text: currentContent.join("\n") }]
|
|
80
|
+
});
|
|
81
|
+
currentContent = [];
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
for (const line of lines) if (line.startsWith("system:")) system = [{ text: line.slice(7).trim() }];
|
|
85
|
+
else if (line.startsWith("user:") || line.startsWith("assistant:")) {
|
|
86
|
+
pushMessage();
|
|
87
|
+
currentRole = line.startsWith("user:") ? "user" : "assistant";
|
|
88
|
+
currentContent.push(line.slice(line.indexOf(":") + 1).trim());
|
|
89
|
+
} else if (currentRole) currentContent.push(line);
|
|
90
|
+
else {
|
|
91
|
+
currentRole = "user";
|
|
92
|
+
currentContent.push(line);
|
|
93
|
+
}
|
|
94
|
+
pushMessage();
|
|
95
|
+
if (extractedMessages.length === 0 && !system) extractedMessages.push({
|
|
96
|
+
role: "user",
|
|
97
|
+
content: [{ text: messages.trim() }]
|
|
98
|
+
});
|
|
99
|
+
return {
|
|
100
|
+
system,
|
|
101
|
+
extractedMessages
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
//#region src/providers/bedrock/base.ts
|
|
106
|
+
/**
|
|
107
|
+
* AWS Bedrock Base Provider
|
|
108
|
+
*
|
|
109
|
+
* Contains the abstract base class for all Bedrock providers.
|
|
110
|
+
* This is extracted to avoid circular dependency issues.
|
|
111
|
+
*/
|
|
112
|
+
var AwsBedrockGenericProvider = class {
|
|
113
|
+
modelName;
|
|
114
|
+
env;
|
|
115
|
+
bedrock;
|
|
116
|
+
config;
|
|
117
|
+
constructor(modelName, options = {}) {
|
|
118
|
+
const { config, id, env } = options;
|
|
119
|
+
this.env = env;
|
|
120
|
+
this.modelName = modelName;
|
|
121
|
+
this.config = config || {};
|
|
122
|
+
this.id = id ? () => id : this.id;
|
|
123
|
+
if (this.config.guardrailIdentifier) telemetry.record("feature_used", {
|
|
124
|
+
feature: "guardrail",
|
|
125
|
+
provider: "bedrock"
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
id() {
|
|
129
|
+
return `bedrock:${this.modelName}`;
|
|
130
|
+
}
|
|
131
|
+
toString() {
|
|
132
|
+
return `[Amazon Bedrock Provider ${this.modelName}]`;
|
|
133
|
+
}
|
|
134
|
+
requiresApiKey() {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
getApiKey() {
|
|
138
|
+
return this.config.apiKey || getEnvString("AWS_BEARER_TOKEN_BEDROCK");
|
|
139
|
+
}
|
|
140
|
+
async getCredentials() {
|
|
141
|
+
if (this.config.accessKeyId && this.config.secretAccessKey) {
|
|
142
|
+
logger.debug(`Using credentials from config file`);
|
|
143
|
+
return {
|
|
144
|
+
accessKeyId: this.config.accessKeyId,
|
|
145
|
+
secretAccessKey: this.config.secretAccessKey,
|
|
146
|
+
sessionToken: this.config.sessionToken
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
if (this.getApiKey()) {
|
|
150
|
+
logger.debug(`Using Bedrock API key authentication`);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (this.config.profile) {
|
|
154
|
+
logger.debug(`Using SSO profile: ${this.config.profile}`);
|
|
155
|
+
try {
|
|
156
|
+
const { fromSSO } = await import("@aws-sdk/credential-provider-sso");
|
|
157
|
+
return fromSSO({ profile: this.config.profile });
|
|
158
|
+
} catch (err) {
|
|
159
|
+
logger.error(`Error loading @aws-sdk/credential-provider-sso: ${err}`);
|
|
160
|
+
throw new Error("The @aws-sdk/credential-provider-sso package is required for SSO profiles. Please install it: npm install @aws-sdk/credential-provider-sso");
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
logger.debug(`No explicit credentials in config, falling back to AWS default chain`);
|
|
164
|
+
}
|
|
165
|
+
async getBedrockInstance() {
|
|
166
|
+
if (!this.bedrock) {
|
|
167
|
+
const handler = await createBedrockRequestHandler({ apiKey: this.getApiKey() });
|
|
168
|
+
try {
|
|
169
|
+
const { BedrockRuntime } = await import("@aws-sdk/client-bedrock-runtime");
|
|
170
|
+
const credentials = await this.getCredentials();
|
|
171
|
+
this.bedrock = new BedrockRuntime({
|
|
172
|
+
region: this.getRegion(),
|
|
173
|
+
maxAttempts: getEnvInt("AWS_BEDROCK_MAX_RETRIES", 10),
|
|
174
|
+
retryMode: "adaptive",
|
|
175
|
+
requestHandler: handler,
|
|
176
|
+
...credentials ? { credentials } : {},
|
|
177
|
+
...this.config.endpoint ? { endpoint: this.config.endpoint } : {}
|
|
178
|
+
});
|
|
179
|
+
} catch (err) {
|
|
180
|
+
logger.error(`Error creating BedrockRuntime: ${err}`);
|
|
181
|
+
throw new Error("The @aws-sdk/client-bedrock-runtime package is required as a peer dependency. Please install it in your project or globally.");
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return this.bedrock;
|
|
185
|
+
}
|
|
186
|
+
getRegion() {
|
|
187
|
+
return this.config?.region || this.env?.AWS_BEDROCK_REGION || getEnvString("AWS_BEDROCK_REGION") || "us-east-1";
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
//#endregion
|
|
191
|
+
export { novaParseMessages as a, novaOutputFromMessage as i, createBedrockRequestHandler as n, hasProxyEnv as r, AwsBedrockGenericProvider as t };
|
|
192
|
+
|
|
193
|
+
//# sourceMappingURL=base-fEDN28WM.js.map
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { o as
|
|
3
|
-
import { g as getDb, n as blobReferencesTable, t as blobAssetsTable } from "./tables-
|
|
2
|
+
import { o as logger, v as getConfigDirectoryPath } from "./logger-KkObSCzq.js";
|
|
3
|
+
import { g as getDb, n as blobReferencesTable, t as blobAssetsTable } from "./tables-D36WTqKX.js";
|
|
4
4
|
import * as fs$1 from "node:fs";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
6
6
|
import * as fsPromises$1 from "node:fs/promises";
|
|
7
7
|
import { createHash, randomUUID } from "node:crypto";
|
|
8
8
|
import { and, eq } from "drizzle-orm";
|
|
9
|
-
|
|
10
9
|
//#region src/blobs/constants.ts
|
|
11
10
|
const BLOB_MIN_SIZE = 1024;
|
|
12
11
|
const BLOB_MAX_SIZE = 52428800;
|
|
13
12
|
const BLOB_SCHEME = "promptfoo://blob/";
|
|
14
13
|
const DEFAULT_FILESYSTEM_SUBDIR = "blobs";
|
|
15
|
-
|
|
16
14
|
//#endregion
|
|
17
15
|
//#region src/blobs/filesystemProvider.ts
|
|
18
16
|
const BLOB_HASH_REGEX = /^[a-f0-9]{64}$/i;
|
|
@@ -33,7 +31,7 @@ var FilesystemBlobStorageProvider = class {
|
|
|
33
31
|
ensureDirectory() {
|
|
34
32
|
if (!fs$1.existsSync(this.basePath)) {
|
|
35
33
|
fs$1.mkdirSync(this.basePath, { recursive: true });
|
|
36
|
-
|
|
34
|
+
logger.debug("[BlobFS] Created blob directory", { basePath: this.basePath });
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
37
|
assertValidHash(hash) {
|
|
@@ -152,12 +150,11 @@ var FilesystemBlobStorageProvider = class {
|
|
|
152
150
|
return JSON.parse(raw);
|
|
153
151
|
} catch (error) {
|
|
154
152
|
if (error.code === "ENOENT") return null;
|
|
155
|
-
|
|
153
|
+
logger.warn("[BlobFS] Failed to read metadata", { error });
|
|
156
154
|
return null;
|
|
157
155
|
}
|
|
158
156
|
}
|
|
159
157
|
};
|
|
160
|
-
|
|
161
158
|
//#endregion
|
|
162
159
|
//#region src/blobs/index.ts
|
|
163
160
|
let defaultProvider = null;
|
|
@@ -167,7 +164,7 @@ function createDefaultProvider() {
|
|
|
167
164
|
function getBlobStorageProvider() {
|
|
168
165
|
if (!defaultProvider) {
|
|
169
166
|
defaultProvider = createDefaultProvider();
|
|
170
|
-
|
|
167
|
+
logger.debug("[BlobStorage] Initialized provider", { provider: defaultProvider.providerId });
|
|
171
168
|
}
|
|
172
169
|
return defaultProvider;
|
|
173
170
|
}
|
|
@@ -197,7 +194,7 @@ async function storeBlob(data, mimeType, refContext) {
|
|
|
197
194
|
try {
|
|
198
195
|
await provider.deleteByHash(result.ref.hash);
|
|
199
196
|
} catch (cleanupError) {
|
|
200
|
-
|
|
197
|
+
logger.warn("[BlobStorage] Failed to rollback blob after DB error", {
|
|
201
198
|
error: cleanupError,
|
|
202
199
|
hash: result.ref.hash
|
|
203
200
|
});
|
|
@@ -215,7 +212,7 @@ async function getBlobUrl(hash, expiresInSeconds) {
|
|
|
215
212
|
async function recordBlobReference(hash, refContext) {
|
|
216
213
|
if (!refContext.evalId) return;
|
|
217
214
|
if (!await getBlobStorageProvider().exists(hash).catch(() => false)) {
|
|
218
|
-
|
|
215
|
+
logger.debug("[BlobStorage] Attempted to record reference for missing blob", {
|
|
219
216
|
hash,
|
|
220
217
|
evalId: refContext.evalId,
|
|
221
218
|
location: refContext.location
|
|
@@ -234,7 +231,7 @@ async function recordBlobReference(hash, refContext) {
|
|
|
234
231
|
kind: refContext.kind
|
|
235
232
|
}).run();
|
|
236
233
|
}
|
|
237
|
-
|
|
238
234
|
//#endregion
|
|
239
235
|
export { BLOB_MAX_SIZE as a, storeBlob as i, getBlobUrl as n, BLOB_MIN_SIZE as o, recordBlobReference as r, getBlobByHash as t };
|
|
240
|
-
|
|
236
|
+
|
|
237
|
+
//# sourceMappingURL=blobs-BAU-dXan.js.map
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { g as getConfigDirectoryPath, i as
|
|
2
|
-
import { n as blobReferencesTable, p as getDb, t as blobAssetsTable } from "./tables-
|
|
1
|
+
import { g as getConfigDirectoryPath, i as logger } from "./logger-CT3IKMKA.js";
|
|
2
|
+
import { n as blobReferencesTable, p as getDb, t as blobAssetsTable } from "./tables-5EvT_Bwn.js";
|
|
3
3
|
import * as path$1 from "node:path";
|
|
4
4
|
import * as fs$1 from "node:fs";
|
|
5
5
|
import * as fsPromises$1 from "node:fs/promises";
|
|
6
6
|
import { createHash, randomUUID } from "node:crypto";
|
|
7
7
|
import { and, eq } from "drizzle-orm";
|
|
8
|
-
|
|
9
8
|
//#region src/blobs/constants.ts
|
|
10
9
|
const BLOB_MIN_SIZE = 1024;
|
|
11
10
|
const BLOB_MAX_SIZE = 52428800;
|
|
12
11
|
const BLOB_SCHEME = "promptfoo://blob/";
|
|
13
12
|
const DEFAULT_FILESYSTEM_SUBDIR = "blobs";
|
|
14
|
-
|
|
15
13
|
//#endregion
|
|
16
14
|
//#region src/blobs/filesystemProvider.ts
|
|
17
15
|
const BLOB_HASH_REGEX = /^[a-f0-9]{64}$/i;
|
|
@@ -32,7 +30,7 @@ var FilesystemBlobStorageProvider = class {
|
|
|
32
30
|
ensureDirectory() {
|
|
33
31
|
if (!fs$1.existsSync(this.basePath)) {
|
|
34
32
|
fs$1.mkdirSync(this.basePath, { recursive: true });
|
|
35
|
-
|
|
33
|
+
logger.debug("[BlobFS] Created blob directory", { basePath: this.basePath });
|
|
36
34
|
}
|
|
37
35
|
}
|
|
38
36
|
assertValidHash(hash) {
|
|
@@ -151,12 +149,11 @@ var FilesystemBlobStorageProvider = class {
|
|
|
151
149
|
return JSON.parse(raw);
|
|
152
150
|
} catch (error) {
|
|
153
151
|
if (error.code === "ENOENT") return null;
|
|
154
|
-
|
|
152
|
+
logger.warn("[BlobFS] Failed to read metadata", { error });
|
|
155
153
|
return null;
|
|
156
154
|
}
|
|
157
155
|
}
|
|
158
156
|
};
|
|
159
|
-
|
|
160
157
|
//#endregion
|
|
161
158
|
//#region src/blobs/index.ts
|
|
162
159
|
let defaultProvider = null;
|
|
@@ -166,7 +163,7 @@ function createDefaultProvider() {
|
|
|
166
163
|
function getBlobStorageProvider() {
|
|
167
164
|
if (!defaultProvider) {
|
|
168
165
|
defaultProvider = createDefaultProvider();
|
|
169
|
-
|
|
166
|
+
logger.debug("[BlobStorage] Initialized provider", { provider: defaultProvider.providerId });
|
|
170
167
|
}
|
|
171
168
|
return defaultProvider;
|
|
172
169
|
}
|
|
@@ -196,7 +193,7 @@ async function storeBlob(data, mimeType, refContext) {
|
|
|
196
193
|
try {
|
|
197
194
|
await provider.deleteByHash(result.ref.hash);
|
|
198
195
|
} catch (cleanupError) {
|
|
199
|
-
|
|
196
|
+
logger.warn("[BlobStorage] Failed to rollback blob after DB error", {
|
|
200
197
|
error: cleanupError,
|
|
201
198
|
hash: result.ref.hash
|
|
202
199
|
});
|
|
@@ -211,7 +208,7 @@ async function getBlobByHash(hash) {
|
|
|
211
208
|
async function recordBlobReference(hash, refContext) {
|
|
212
209
|
if (!refContext.evalId) return;
|
|
213
210
|
if (!await getBlobStorageProvider().exists(hash).catch(() => false)) {
|
|
214
|
-
|
|
211
|
+
logger.debug("[BlobStorage] Attempted to record reference for missing blob", {
|
|
215
212
|
hash,
|
|
216
213
|
evalId: refContext.evalId,
|
|
217
214
|
location: refContext.location
|
|
@@ -230,7 +227,7 @@ async function recordBlobReference(hash, refContext) {
|
|
|
230
227
|
kind: refContext.kind
|
|
231
228
|
}).run();
|
|
232
229
|
}
|
|
233
|
-
|
|
234
230
|
//#endregion
|
|
235
231
|
export { BLOB_MIN_SIZE as a, BLOB_MAX_SIZE as i, recordBlobReference as n, storeBlob as r, getBlobByHash as t };
|
|
236
|
-
|
|
232
|
+
|
|
233
|
+
//# sourceMappingURL=blobs-Bpg5rH6i.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_logger = require(
|
|
2
|
-
const require_tables = require(
|
|
1
|
+
const require_logger = require("./logger-Cp1GPUjj.cjs");
|
|
2
|
+
const require_tables = require("./tables-C7K-XKWp.cjs");
|
|
3
3
|
let node_fs = require("node:fs");
|
|
4
4
|
node_fs = require_logger.__toESM(node_fs);
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -8,13 +8,11 @@ let node_path = require("node:path");
|
|
|
8
8
|
node_path = require_logger.__toESM(node_path);
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
10
10
|
let drizzle_orm = require("drizzle-orm");
|
|
11
|
-
|
|
12
11
|
//#region src/blobs/constants.ts
|
|
13
12
|
const BLOB_MIN_SIZE = 1024;
|
|
14
13
|
const BLOB_MAX_SIZE = 52428800;
|
|
15
14
|
const BLOB_SCHEME = "promptfoo://blob/";
|
|
16
15
|
const DEFAULT_FILESYSTEM_SUBDIR = "blobs";
|
|
17
|
-
|
|
18
16
|
//#endregion
|
|
19
17
|
//#region src/blobs/filesystemProvider.ts
|
|
20
18
|
const BLOB_HASH_REGEX = /^[a-f0-9]{64}$/i;
|
|
@@ -35,7 +33,7 @@ var FilesystemBlobStorageProvider = class {
|
|
|
35
33
|
ensureDirectory() {
|
|
36
34
|
if (!node_fs.existsSync(this.basePath)) {
|
|
37
35
|
node_fs.mkdirSync(this.basePath, { recursive: true });
|
|
38
|
-
require_logger.
|
|
36
|
+
require_logger.logger.debug("[BlobFS] Created blob directory", { basePath: this.basePath });
|
|
39
37
|
}
|
|
40
38
|
}
|
|
41
39
|
assertValidHash(hash) {
|
|
@@ -154,12 +152,11 @@ var FilesystemBlobStorageProvider = class {
|
|
|
154
152
|
return JSON.parse(raw);
|
|
155
153
|
} catch (error) {
|
|
156
154
|
if (error.code === "ENOENT") return null;
|
|
157
|
-
require_logger.
|
|
155
|
+
require_logger.logger.warn("[BlobFS] Failed to read metadata", { error });
|
|
158
156
|
return null;
|
|
159
157
|
}
|
|
160
158
|
}
|
|
161
159
|
};
|
|
162
|
-
|
|
163
160
|
//#endregion
|
|
164
161
|
//#region src/blobs/index.ts
|
|
165
162
|
let defaultProvider = null;
|
|
@@ -169,7 +166,7 @@ function createDefaultProvider() {
|
|
|
169
166
|
function getBlobStorageProvider() {
|
|
170
167
|
if (!defaultProvider) {
|
|
171
168
|
defaultProvider = createDefaultProvider();
|
|
172
|
-
require_logger.
|
|
169
|
+
require_logger.logger.debug("[BlobStorage] Initialized provider", { provider: defaultProvider.providerId });
|
|
173
170
|
}
|
|
174
171
|
return defaultProvider;
|
|
175
172
|
}
|
|
@@ -199,7 +196,7 @@ async function storeBlob(data, mimeType, refContext) {
|
|
|
199
196
|
try {
|
|
200
197
|
await provider.deleteByHash(result.ref.hash);
|
|
201
198
|
} catch (cleanupError) {
|
|
202
|
-
require_logger.
|
|
199
|
+
require_logger.logger.warn("[BlobStorage] Failed to rollback blob after DB error", {
|
|
203
200
|
error: cleanupError,
|
|
204
201
|
hash: result.ref.hash
|
|
205
202
|
});
|
|
@@ -214,7 +211,7 @@ async function getBlobByHash(hash) {
|
|
|
214
211
|
async function recordBlobReference(hash, refContext) {
|
|
215
212
|
if (!refContext.evalId) return;
|
|
216
213
|
if (!await getBlobStorageProvider().exists(hash).catch(() => false)) {
|
|
217
|
-
require_logger.
|
|
214
|
+
require_logger.logger.debug("[BlobStorage] Attempted to record reference for missing blob", {
|
|
218
215
|
hash,
|
|
219
216
|
evalId: refContext.evalId,
|
|
220
217
|
location: refContext.location
|
|
@@ -233,36 +230,36 @@ async function recordBlobReference(hash, refContext) {
|
|
|
233
230
|
kind: refContext.kind
|
|
234
231
|
}).run();
|
|
235
232
|
}
|
|
236
|
-
|
|
237
233
|
//#endregion
|
|
238
|
-
Object.defineProperty(exports,
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
234
|
+
Object.defineProperty(exports, "BLOB_MAX_SIZE", {
|
|
235
|
+
enumerable: true,
|
|
236
|
+
get: function() {
|
|
237
|
+
return BLOB_MAX_SIZE;
|
|
238
|
+
}
|
|
243
239
|
});
|
|
244
|
-
Object.defineProperty(exports,
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
240
|
+
Object.defineProperty(exports, "BLOB_MIN_SIZE", {
|
|
241
|
+
enumerable: true,
|
|
242
|
+
get: function() {
|
|
243
|
+
return BLOB_MIN_SIZE;
|
|
244
|
+
}
|
|
249
245
|
});
|
|
250
|
-
Object.defineProperty(exports,
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
246
|
+
Object.defineProperty(exports, "getBlobByHash", {
|
|
247
|
+
enumerable: true,
|
|
248
|
+
get: function() {
|
|
249
|
+
return getBlobByHash;
|
|
250
|
+
}
|
|
255
251
|
});
|
|
256
|
-
Object.defineProperty(exports,
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
252
|
+
Object.defineProperty(exports, "recordBlobReference", {
|
|
253
|
+
enumerable: true,
|
|
254
|
+
get: function() {
|
|
255
|
+
return recordBlobReference;
|
|
256
|
+
}
|
|
261
257
|
});
|
|
262
|
-
Object.defineProperty(exports,
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
258
|
+
Object.defineProperty(exports, "storeBlob", {
|
|
259
|
+
enumerable: true,
|
|
260
|
+
get: function() {
|
|
261
|
+
return storeBlob;
|
|
262
|
+
}
|
|
267
263
|
});
|
|
268
|
-
|
|
264
|
+
|
|
265
|
+
//# sourceMappingURL=blobs-DvS-O6be.cjs.map
|