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_fetch = require(
|
|
1
|
+
const require_logger = require("./logger-Cp1GPUjj.cjs");
|
|
2
|
+
const require_fetch = require("./fetch-BxUk8odA.cjs");
|
|
3
3
|
let fs = require("fs");
|
|
4
4
|
fs = require_logger.__toESM(fs);
|
|
5
5
|
let path = require("path");
|
|
@@ -8,7 +8,6 @@ let cache_manager = require("cache-manager");
|
|
|
8
8
|
let keyv = require("keyv");
|
|
9
9
|
let keyv_file = require("keyv-file");
|
|
10
10
|
let crypto = require("crypto");
|
|
11
|
-
|
|
12
11
|
//#region src/cacheMigration.ts
|
|
13
12
|
/**
|
|
14
13
|
* Migration sunset date: After this date, skip migration entirely.
|
|
@@ -40,7 +39,7 @@ function getDirSize(dirPath) {
|
|
|
40
39
|
else totalSize += fs.default.statSync(itemPath).size;
|
|
41
40
|
}
|
|
42
41
|
} catch (err) {
|
|
43
|
-
if (err.code !== "ENOENT") require_logger.
|
|
42
|
+
if (err.code !== "ENOENT") require_logger.logger.warn(`[Cache Migration] Error calculating directory size: ${err.message}`);
|
|
44
43
|
}
|
|
45
44
|
return totalSize;
|
|
46
45
|
}
|
|
@@ -55,18 +54,18 @@ function checkDiskSpace(cachePath) {
|
|
|
55
54
|
const stats = fs.default.statfsSync(cachePath);
|
|
56
55
|
const availableBytes = stats.bavail * stats.bsize;
|
|
57
56
|
const requiredBytes = cacheSize * 2 + 10 * 1024 * 1024;
|
|
58
|
-
require_logger.
|
|
57
|
+
require_logger.logger.debug(`[Cache Migration] Disk space check: need ${(requiredBytes / 1024 / 1024).toFixed(2)}MB, have ${(availableBytes / 1024 / 1024).toFixed(2)}MB available`);
|
|
59
58
|
if (availableBytes < requiredBytes) {
|
|
60
|
-
require_logger.
|
|
59
|
+
require_logger.logger.error(`[Cache Migration] Insufficient disk space for migration. Need ${(requiredBytes / 1024 / 1024).toFixed(0)}MB, have ${(availableBytes / 1024 / 1024).toFixed(0)}MB available.`);
|
|
61
60
|
return false;
|
|
62
61
|
}
|
|
63
62
|
return true;
|
|
64
63
|
} else {
|
|
65
|
-
require_logger.
|
|
64
|
+
require_logger.logger.debug("[Cache Migration] Disk space check not available on this platform, proceeding");
|
|
66
65
|
return true;
|
|
67
66
|
}
|
|
68
67
|
} catch (err) {
|
|
69
|
-
require_logger.
|
|
68
|
+
require_logger.logger.warn(`[Cache Migration] Could not check disk space: ${err.message}`);
|
|
70
69
|
return true;
|
|
71
70
|
}
|
|
72
71
|
}
|
|
@@ -92,7 +91,7 @@ function isProcessRunning(pid) {
|
|
|
92
91
|
*/
|
|
93
92
|
function acquireMigrationLock(cachePath, attempt = 1) {
|
|
94
93
|
if (attempt > MAX_LOCK_ATTEMPTS) {
|
|
95
|
-
require_logger.
|
|
94
|
+
require_logger.logger.warn(`[Cache Migration] Failed to acquire lock after ${MAX_LOCK_ATTEMPTS} attempts`);
|
|
96
95
|
return null;
|
|
97
96
|
}
|
|
98
97
|
const lockFile = path.default.join(cachePath, ".migration.lock");
|
|
@@ -101,7 +100,7 @@ function acquireMigrationLock(cachePath, attempt = 1) {
|
|
|
101
100
|
const fd = fs.default.openSync(lockFile, "wx");
|
|
102
101
|
fs.default.writeSync(fd, process.pid.toString());
|
|
103
102
|
fs.default.fsyncSync(fd);
|
|
104
|
-
require_logger.
|
|
103
|
+
require_logger.logger.debug(`[Cache Migration] Lock acquired (PID: ${process.pid})`);
|
|
105
104
|
return fd;
|
|
106
105
|
} catch (err) {
|
|
107
106
|
if (err.code === "EEXIST") {
|
|
@@ -110,20 +109,20 @@ function acquireMigrationLock(cachePath, attempt = 1) {
|
|
|
110
109
|
const pid = parseInt(content, 10);
|
|
111
110
|
if (!isNaN(pid)) {
|
|
112
111
|
if (isProcessRunning(pid)) {
|
|
113
|
-
require_logger.
|
|
112
|
+
require_logger.logger.info(`[Cache Migration] Another migration is in progress (PID: ${pid})`);
|
|
114
113
|
return null;
|
|
115
114
|
}
|
|
116
|
-
require_logger.
|
|
115
|
+
require_logger.logger.warn(`[Cache Migration] Removing stale lock file (PID: ${pid} not found)`);
|
|
117
116
|
try {
|
|
118
117
|
fs.default.unlinkSync(lockFile);
|
|
119
118
|
return acquireMigrationLock(cachePath, attempt + 1);
|
|
120
119
|
} catch (unlinkErr) {
|
|
121
|
-
require_logger.
|
|
120
|
+
require_logger.logger.error(`[Cache Migration] Failed to remove stale lock: ${unlinkErr.message}`);
|
|
122
121
|
return null;
|
|
123
122
|
}
|
|
124
123
|
}
|
|
125
124
|
} catch (readErr) {
|
|
126
|
-
require_logger.
|
|
125
|
+
require_logger.logger.warn(`[Cache Migration] Could not read lock file: ${readErr.message}`);
|
|
127
126
|
}
|
|
128
127
|
return null;
|
|
129
128
|
}
|
|
@@ -139,13 +138,13 @@ function releaseMigrationLock(fd, cachePath) {
|
|
|
139
138
|
try {
|
|
140
139
|
fs.default.closeSync(fd);
|
|
141
140
|
} catch (err) {
|
|
142
|
-
require_logger.
|
|
141
|
+
require_logger.logger.warn(`[Cache Migration] Failed to close lock file: ${err.message}`);
|
|
143
142
|
}
|
|
144
143
|
try {
|
|
145
144
|
fs.default.unlinkSync(lockFile);
|
|
146
|
-
require_logger.
|
|
145
|
+
require_logger.logger.debug("[Cache Migration] Lock released");
|
|
147
146
|
} catch (err) {
|
|
148
|
-
require_logger.
|
|
147
|
+
require_logger.logger.warn(`[Cache Migration] Failed to remove lock file: ${err.message}`);
|
|
149
148
|
}
|
|
150
149
|
}
|
|
151
150
|
/**
|
|
@@ -178,28 +177,28 @@ function readOldCacheEntries(cachePath) {
|
|
|
178
177
|
};
|
|
179
178
|
const entries = /* @__PURE__ */ new Map();
|
|
180
179
|
if (!fs.default.existsSync(cachePath)) {
|
|
181
|
-
require_logger.
|
|
180
|
+
require_logger.logger.info(`[Cache Migration] No old cache directory found at ${cachePath}`);
|
|
182
181
|
return {
|
|
183
182
|
entries,
|
|
184
183
|
stats
|
|
185
184
|
};
|
|
186
185
|
}
|
|
187
186
|
const diskstoreDirs = fs.default.readdirSync(cachePath, { withFileTypes: true }).filter((dirEntry) => dirEntry.isDirectory() && dirEntry.name.startsWith("diskstore-")).map((dirEntry) => dirEntry.name);
|
|
188
|
-
require_logger.
|
|
187
|
+
require_logger.logger.info(`[Cache Migration] Found ${diskstoreDirs.length} diskstore directories`);
|
|
189
188
|
const shouldLogProgress = diskstoreDirs.length > 100;
|
|
190
|
-
if (shouldLogProgress) require_logger.
|
|
189
|
+
if (shouldLogProgress) require_logger.logger.info(`[Cache Migration] Processing large cache, this may take a moment...`);
|
|
191
190
|
const now = Date.now();
|
|
192
191
|
let dirCount = 0;
|
|
193
192
|
for (const dir of diskstoreDirs) {
|
|
194
193
|
const dirPath = path.default.join(cachePath, dir);
|
|
195
194
|
dirCount++;
|
|
196
|
-
if (shouldLogProgress && dirCount % 100 === 0) require_logger.
|
|
195
|
+
if (shouldLogProgress && dirCount % 100 === 0) require_logger.logger.info(`[Cache Migration] Processed ${dirCount}/${diskstoreDirs.length} directories...`);
|
|
197
196
|
try {
|
|
198
197
|
const jsonFiles = fs.default.readdirSync(dirPath).filter((f) => f.endsWith(".json"));
|
|
199
198
|
for (const file of jsonFiles) {
|
|
200
199
|
const filePath = path.default.join(dirPath, file);
|
|
201
200
|
stats.totalFiles++;
|
|
202
|
-
if (stats.totalFiles % 1e3 === 0 && stats.totalFiles > 0) require_logger.
|
|
201
|
+
if (stats.totalFiles % 1e3 === 0 && stats.totalFiles > 0) require_logger.logger.info(`[Cache Migration] Processed ${stats.totalFiles} files...`);
|
|
203
202
|
try {
|
|
204
203
|
const content = fs.default.readFileSync(filePath, "utf-8");
|
|
205
204
|
const oldEntry = JSON.parse(content);
|
|
@@ -250,7 +249,7 @@ function validateCacheFile(cachePath, expectedEntryCount) {
|
|
|
250
249
|
if (!Array.isArray(parsed.cache)) throw new Error("Cache file has invalid structure: missing or invalid \"cache\" array");
|
|
251
250
|
if (typeof parsed.lastExpire !== "number") throw new Error("Cache file has invalid structure: missing or invalid \"lastExpire\" field");
|
|
252
251
|
if (parsed.cache.length !== expectedEntryCount) throw new Error(`Cache file entry count mismatch: expected ${expectedEntryCount}, got ${parsed.cache.length}`);
|
|
253
|
-
require_logger.
|
|
252
|
+
require_logger.logger.debug(`[Cache Migration] Validated cache file: ${cachePath} (${expectedEntryCount} entries)`);
|
|
254
253
|
}
|
|
255
254
|
/**
|
|
256
255
|
* Write entries in keyv-file format using atomic write operation.
|
|
@@ -274,7 +273,7 @@ function writeNewCacheFile(entries, newCachePath) {
|
|
|
274
273
|
}
|
|
275
274
|
fs.default.writeFileSync(tempFile, serialized, "utf-8");
|
|
276
275
|
fs.default.renameSync(tempFile, newCachePath);
|
|
277
|
-
require_logger.
|
|
276
|
+
require_logger.logger.debug(`[Cache Migration] Atomically wrote cache file: ${newCachePath}`);
|
|
278
277
|
validateCacheFile(newCachePath, entries.size);
|
|
279
278
|
} catch (err) {
|
|
280
279
|
try {
|
|
@@ -288,7 +287,7 @@ function writeNewCacheFile(entries, newCachePath) {
|
|
|
288
287
|
*/
|
|
289
288
|
function createBackup(cachePath) {
|
|
290
289
|
const backupPath = `${cachePath}.backup.${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
|
|
291
|
-
require_logger.
|
|
290
|
+
require_logger.logger.info(`[Cache Migration] Creating backup at ${backupPath}`);
|
|
292
291
|
if (fs.default.existsSync(cachePath)) fs.default.cpSync(cachePath, backupPath, { recursive: true });
|
|
293
292
|
return backupPath;
|
|
294
293
|
}
|
|
@@ -316,11 +315,11 @@ function isMigrationComplete(cacheBasePath, newCacheFile) {
|
|
|
316
315
|
if (newCacheFile && fs.default.existsSync(newCacheFile)) return true;
|
|
317
316
|
if (newCacheFile) {
|
|
318
317
|
if (hasOldCacheFormat(cacheBasePath)) {
|
|
319
|
-
require_logger.
|
|
318
|
+
require_logger.logger.warn("[Cache Migration] Marker file exists but migration appears incomplete. Old cache format found but new cache missing. Retrying migration...");
|
|
320
319
|
try {
|
|
321
320
|
fs.default.unlinkSync(markerPath);
|
|
322
321
|
} catch (err) {
|
|
323
|
-
require_logger.
|
|
322
|
+
require_logger.logger.warn(`[Cache Migration] Failed to remove stale marker: ${err.message}`);
|
|
324
323
|
}
|
|
325
324
|
return false;
|
|
326
325
|
}
|
|
@@ -352,7 +351,7 @@ function cleanupOldCache(cachePath) {
|
|
|
352
351
|
throw err;
|
|
353
352
|
}
|
|
354
353
|
const diskstoreDirs = dirEntries.filter((dirEntry) => dirEntry.isDirectory() && dirEntry.name.startsWith("diskstore-")).map((dirEntry) => dirEntry.name);
|
|
355
|
-
require_logger.
|
|
354
|
+
require_logger.logger.info(`[Cache Migration] Cleaning up ${diskstoreDirs.length} old cache directories`);
|
|
356
355
|
for (const dir of diskstoreDirs) {
|
|
357
356
|
const dirPath = path.default.join(cachePath, dir);
|
|
358
357
|
try {
|
|
@@ -361,7 +360,7 @@ function cleanupOldCache(cachePath) {
|
|
|
361
360
|
force: true
|
|
362
361
|
});
|
|
363
362
|
} catch (err) {
|
|
364
|
-
require_logger.
|
|
363
|
+
require_logger.logger.warn(`[Cache Migration] Failed to remove ${dirPath}: ${err.message}`);
|
|
365
364
|
}
|
|
366
365
|
}
|
|
367
366
|
}
|
|
@@ -371,23 +370,23 @@ function cleanupOldCache(cachePath) {
|
|
|
371
370
|
*/
|
|
372
371
|
function cleanupBackup(backupPath, stats) {
|
|
373
372
|
if (stats.successCount === 0 && stats.failureCount === 0) {
|
|
374
|
-
require_logger.
|
|
373
|
+
require_logger.logger.info(`[Cache Migration] No valid entries found (${stats.skippedExpired} expired only). Removing backup to save space.`);
|
|
375
374
|
try {
|
|
376
375
|
fs.default.rmSync(backupPath, {
|
|
377
376
|
recursive: true,
|
|
378
377
|
force: true
|
|
379
378
|
});
|
|
380
|
-
require_logger.
|
|
379
|
+
require_logger.logger.info(`[Cache Migration] Backup removed: ${backupPath}`);
|
|
381
380
|
return true;
|
|
382
381
|
} catch (err) {
|
|
383
|
-
require_logger.
|
|
382
|
+
require_logger.logger.warn(`[Cache Migration] Failed to remove backup ${backupPath}: ${err.message}`);
|
|
384
383
|
return false;
|
|
385
384
|
}
|
|
386
385
|
} else if (stats.failureCount > 0) {
|
|
387
|
-
require_logger.
|
|
386
|
+
require_logger.logger.info(`[Cache Migration] Backup kept at ${backupPath} due to ${stats.failureCount} migration errors. You may want to investigate these failures.`);
|
|
388
387
|
return false;
|
|
389
388
|
} else {
|
|
390
|
-
require_logger.
|
|
389
|
+
require_logger.logger.info(`[Cache Migration] Backup kept at ${backupPath} (migrated ${stats.successCount} valid entries). You can manually delete this backup if you no longer need it.`);
|
|
391
390
|
return false;
|
|
392
391
|
}
|
|
393
392
|
}
|
|
@@ -396,10 +395,10 @@ function cleanupBackup(backupPath, stats) {
|
|
|
396
395
|
* Migrates cache from cache-manager v4 (cache-manager-fs-hash) to v7 (keyv-file)
|
|
397
396
|
*/
|
|
398
397
|
function runMigration(cachePath, newCacheFilePath) {
|
|
399
|
-
require_logger.
|
|
398
|
+
require_logger.logger.info("[Cache Migration] Starting cache migration from v4 to v7");
|
|
400
399
|
const lock = acquireMigrationLock(cachePath);
|
|
401
400
|
if (lock === null) {
|
|
402
|
-
require_logger.
|
|
401
|
+
require_logger.logger.info("[Cache Migration] Another migration is in progress, skipping");
|
|
403
402
|
return {
|
|
404
403
|
success: true,
|
|
405
404
|
stats: {
|
|
@@ -413,7 +412,7 @@ function runMigration(cachePath, newCacheFilePath) {
|
|
|
413
412
|
}
|
|
414
413
|
try {
|
|
415
414
|
if (isMigrationComplete(cachePath, newCacheFilePath)) {
|
|
416
|
-
require_logger.
|
|
415
|
+
require_logger.logger.info("[Cache Migration] Migration already completed, skipping");
|
|
417
416
|
return {
|
|
418
417
|
success: true,
|
|
419
418
|
stats: {
|
|
@@ -426,7 +425,7 @@ function runMigration(cachePath, newCacheFilePath) {
|
|
|
426
425
|
};
|
|
427
426
|
}
|
|
428
427
|
if (!hasOldCacheFormat(cachePath)) {
|
|
429
|
-
require_logger.
|
|
428
|
+
require_logger.logger.info("[Cache Migration] No old cache format detected, skipping migration");
|
|
430
429
|
markMigrationComplete(cachePath, {
|
|
431
430
|
totalFiles: 0,
|
|
432
431
|
successCount: 0,
|
|
@@ -446,7 +445,7 @@ function runMigration(cachePath, newCacheFilePath) {
|
|
|
446
445
|
};
|
|
447
446
|
}
|
|
448
447
|
if (!checkDiskSpace(cachePath)) {
|
|
449
|
-
require_logger.
|
|
448
|
+
require_logger.logger.error("[Cache Migration] Insufficient disk space, aborting migration");
|
|
450
449
|
return {
|
|
451
450
|
success: false,
|
|
452
451
|
stats: {
|
|
@@ -459,30 +458,30 @@ function runMigration(cachePath, newCacheFilePath) {
|
|
|
459
458
|
};
|
|
460
459
|
}
|
|
461
460
|
const backupPath = createBackup(cachePath);
|
|
462
|
-
require_logger.
|
|
461
|
+
require_logger.logger.info("[Cache Migration] Reading old cache entries");
|
|
463
462
|
const { entries, stats } = readOldCacheEntries(cachePath);
|
|
464
|
-
require_logger.
|
|
463
|
+
require_logger.logger.info(`[Cache Migration] Read ${stats.successCount} entries (${stats.failureCount} failures, ${stats.skippedExpired} expired)`);
|
|
465
464
|
if (stats.errors.length > 0) {
|
|
466
|
-
require_logger.
|
|
467
|
-
stats.errors.slice(0, 10).forEach((err) => require_logger.
|
|
468
|
-
if (stats.errors.length > 10) require_logger.
|
|
465
|
+
require_logger.logger.warn(`[Cache Migration] Encountered ${stats.errors.length} errors:`);
|
|
466
|
+
stats.errors.slice(0, 10).forEach((err) => require_logger.logger.warn(` - ${err}`));
|
|
467
|
+
if (stats.errors.length > 10) require_logger.logger.warn(` ... and ${stats.errors.length - 10} more errors`);
|
|
469
468
|
}
|
|
470
469
|
if (entries.size > 0) {
|
|
471
|
-
require_logger.
|
|
470
|
+
require_logger.logger.info(`[Cache Migration] Writing ${entries.size} entries to new cache file: ${newCacheFilePath}`);
|
|
472
471
|
writeNewCacheFile(entries, newCacheFilePath);
|
|
473
|
-
} else require_logger.
|
|
472
|
+
} else require_logger.logger.info("[Cache Migration] No entries to migrate");
|
|
474
473
|
cleanupOldCache(cachePath);
|
|
475
474
|
const backupDeleted = cleanupBackup(backupPath, stats);
|
|
476
475
|
markMigrationComplete(cachePath, stats);
|
|
477
|
-
require_logger.
|
|
476
|
+
require_logger.logger.info("[Cache Migration] Migration completed successfully");
|
|
478
477
|
return {
|
|
479
478
|
success: true,
|
|
480
479
|
stats,
|
|
481
480
|
backupPath: backupDeleted ? void 0 : backupPath
|
|
482
481
|
};
|
|
483
482
|
} catch (err) {
|
|
484
|
-
require_logger.
|
|
485
|
-
require_logger.
|
|
483
|
+
require_logger.logger.error(`[Cache Migration] Migration failed: ${err.message}`);
|
|
484
|
+
require_logger.logger.error(`[Cache Migration] Stack trace: ${err.stack}`);
|
|
486
485
|
return {
|
|
487
486
|
success: false,
|
|
488
487
|
stats: {
|
|
@@ -509,7 +508,6 @@ function shouldRunMigration(cachePath, newCacheFile) {
|
|
|
509
508
|
if (isMigrationComplete(cachePath, newCacheFile)) return false;
|
|
510
509
|
return hasOldCacheFormat(cachePath);
|
|
511
510
|
}
|
|
512
|
-
|
|
513
511
|
//#endregion
|
|
514
512
|
//#region src/util/fetch/errors.ts
|
|
515
513
|
/**
|
|
@@ -542,7 +540,6 @@ function isTransientConnectionError(error) {
|
|
|
542
540
|
if (message.includes("eproto") && (message.includes("wrong version number") || message.includes("self signed") || message.includes("unable to verify") || message.includes("unknown ca") || message.includes("cert"))) return false;
|
|
543
541
|
return message.includes("bad record mac") || message.includes("eproto") || message.includes("econnreset") || message.includes("socket hang up");
|
|
544
542
|
}
|
|
545
|
-
|
|
546
543
|
//#endregion
|
|
547
544
|
//#region src/cache.ts
|
|
548
545
|
var cache_exports = /* @__PURE__ */ require_logger.__exportAll({
|
|
@@ -573,34 +570,34 @@ function getCache() {
|
|
|
573
570
|
if (cacheType === "disk" && enabled) {
|
|
574
571
|
cachePath = require_logger.getEnvString("PROMPTFOO_CACHE_PATH") || path.default.join(require_logger.getConfigDirectoryPath(), "cache");
|
|
575
572
|
if (!fs.default.existsSync(cachePath)) {
|
|
576
|
-
require_logger.
|
|
573
|
+
require_logger.logger.info(`Creating cache folder at ${cachePath}.`);
|
|
577
574
|
fs.default.mkdirSync(cachePath, { recursive: true });
|
|
578
575
|
}
|
|
579
576
|
const newCacheFile = path.default.join(cachePath, "cache.json");
|
|
580
577
|
if (shouldRunMigration(cachePath, newCacheFile)) {
|
|
581
|
-
require_logger.
|
|
578
|
+
require_logger.logger.info("[Cache] Migrating cache from v4 to v7...");
|
|
582
579
|
try {
|
|
583
580
|
const result = runMigration(cachePath, newCacheFile);
|
|
584
581
|
if (result.success) {
|
|
585
|
-
require_logger.
|
|
586
|
-
if (result.backupPath) require_logger.
|
|
582
|
+
require_logger.logger.info(`[Cache] Migration completed: ${result.stats.successCount} entries migrated, ${result.stats.skippedExpired} expired`);
|
|
583
|
+
if (result.backupPath) require_logger.logger.info(`[Cache] Backup kept at: ${result.backupPath}`);
|
|
587
584
|
} else {
|
|
588
|
-
require_logger.
|
|
585
|
+
require_logger.logger.error(`[Cache] Migration failed: ${result.stats.errors.join(", ")}. Falling back to memory cache.`);
|
|
589
586
|
migrationFailed = true;
|
|
590
587
|
}
|
|
591
588
|
} catch (err) {
|
|
592
|
-
require_logger.
|
|
589
|
+
require_logger.logger.error(`[Cache] Migration error: ${err.message}. Falling back to memory cache.`);
|
|
593
590
|
migrationFailed = true;
|
|
594
591
|
}
|
|
595
592
|
}
|
|
596
593
|
if (!migrationFailed) try {
|
|
597
|
-
const keyv = new keyv.Keyv({
|
|
594
|
+
const keyv$1 = new keyv.Keyv({
|
|
598
595
|
store: new keyv_file.KeyvFile({ filename: newCacheFile }),
|
|
599
596
|
ttl: getCacheTtlMs()
|
|
600
597
|
});
|
|
601
|
-
stores.push(keyv);
|
|
598
|
+
stores.push(keyv$1);
|
|
602
599
|
} catch (err) {
|
|
603
|
-
require_logger.
|
|
600
|
+
require_logger.logger.warn(`[Cache] Failed to initialize disk cache: ${err.message}. Using memory cache instead.`);
|
|
604
601
|
}
|
|
605
602
|
}
|
|
606
603
|
cacheInstance = (0, cache_manager.createCache)({
|
|
@@ -626,7 +623,7 @@ async function fetchAndReadBody(url, options, timeout, maxRetries, isIdempotent)
|
|
|
626
623
|
} catch (err) {
|
|
627
624
|
if (isTransientConnectionError(err) && bodyAttempt < maxBodyRetries) {
|
|
628
625
|
const backoffMs = Math.pow(2, bodyAttempt) * 1e3;
|
|
629
|
-
require_logger.
|
|
626
|
+
require_logger.logger.debug("[Cache] Body stream failed with transient error, retrying", {
|
|
630
627
|
attempt: bodyAttempt + 1,
|
|
631
628
|
maxRetries: maxBodyRetries,
|
|
632
629
|
backoffMs,
|
|
@@ -701,16 +698,16 @@ async function fetchWithCache(url, options = {}, timeout = require_fetch.REQUEST
|
|
|
701
698
|
}
|
|
702
699
|
if (!data) return;
|
|
703
700
|
if (format === "json" && parsedData?.error) {
|
|
704
|
-
require_logger.
|
|
701
|
+
require_logger.logger.debug(`Not caching ${url} because it contains an 'error' key: ${parsedData.error}`);
|
|
705
702
|
return data;
|
|
706
703
|
}
|
|
707
|
-
require_logger.
|
|
704
|
+
require_logger.logger.debug(`Storing ${url} response in cache with latencyMs=${fetchLatencyMs}: ${data}`);
|
|
708
705
|
return data;
|
|
709
706
|
} catch (err) {
|
|
710
707
|
throw new Error(`Error parsing response from ${url}: ${err.message}. Received text: ${responseText}`);
|
|
711
708
|
}
|
|
712
709
|
});
|
|
713
|
-
if (cached && cachedResponse) require_logger.
|
|
710
|
+
if (cached && cachedResponse) require_logger.logger.debug(`Returning cached response for ${url}: ${cachedResponse}`);
|
|
714
711
|
const parsedResponse = JSON.parse(cachedResponse ?? errorResponse);
|
|
715
712
|
return {
|
|
716
713
|
cached,
|
|
@@ -721,7 +718,7 @@ async function fetchWithCache(url, options = {}, timeout = require_fetch.REQUEST
|
|
|
721
718
|
latencyMs: parsedResponse.latencyMs,
|
|
722
719
|
deleteFromCache: async () => {
|
|
723
720
|
await cache.del(cacheKey);
|
|
724
|
-
require_logger.
|
|
721
|
+
require_logger.logger.debug(`Evicted from cache: ${cacheKey}`);
|
|
725
722
|
}
|
|
726
723
|
};
|
|
727
724
|
}
|
|
@@ -737,66 +734,66 @@ async function clearCache() {
|
|
|
737
734
|
function isCacheEnabled() {
|
|
738
735
|
return enabled;
|
|
739
736
|
}
|
|
740
|
-
|
|
741
737
|
//#endregion
|
|
742
|
-
Object.defineProperty(exports,
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
738
|
+
Object.defineProperty(exports, "NON_TRANSIENT_HTTP_STATUSES", {
|
|
739
|
+
enumerable: true,
|
|
740
|
+
get: function() {
|
|
741
|
+
return NON_TRANSIENT_HTTP_STATUSES;
|
|
742
|
+
}
|
|
747
743
|
});
|
|
748
|
-
Object.defineProperty(exports,
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
744
|
+
Object.defineProperty(exports, "cache_exports", {
|
|
745
|
+
enumerable: true,
|
|
746
|
+
get: function() {
|
|
747
|
+
return cache_exports;
|
|
748
|
+
}
|
|
753
749
|
});
|
|
754
|
-
Object.defineProperty(exports,
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
750
|
+
Object.defineProperty(exports, "clearCache", {
|
|
751
|
+
enumerable: true,
|
|
752
|
+
get: function() {
|
|
753
|
+
return clearCache;
|
|
754
|
+
}
|
|
759
755
|
});
|
|
760
|
-
Object.defineProperty(exports,
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
756
|
+
Object.defineProperty(exports, "disableCache", {
|
|
757
|
+
enumerable: true,
|
|
758
|
+
get: function() {
|
|
759
|
+
return disableCache;
|
|
760
|
+
}
|
|
765
761
|
});
|
|
766
|
-
Object.defineProperty(exports,
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
762
|
+
Object.defineProperty(exports, "enableCache", {
|
|
763
|
+
enumerable: true,
|
|
764
|
+
get: function() {
|
|
765
|
+
return enableCache;
|
|
766
|
+
}
|
|
771
767
|
});
|
|
772
|
-
Object.defineProperty(exports,
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
768
|
+
Object.defineProperty(exports, "fetchWithCache", {
|
|
769
|
+
enumerable: true,
|
|
770
|
+
get: function() {
|
|
771
|
+
return fetchWithCache;
|
|
772
|
+
}
|
|
777
773
|
});
|
|
778
|
-
Object.defineProperty(exports,
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
774
|
+
Object.defineProperty(exports, "getCache", {
|
|
775
|
+
enumerable: true,
|
|
776
|
+
get: function() {
|
|
777
|
+
return getCache;
|
|
778
|
+
}
|
|
783
779
|
});
|
|
784
|
-
Object.defineProperty(exports,
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
780
|
+
Object.defineProperty(exports, "isCacheEnabled", {
|
|
781
|
+
enumerable: true,
|
|
782
|
+
get: function() {
|
|
783
|
+
return isCacheEnabled;
|
|
784
|
+
}
|
|
789
785
|
});
|
|
790
|
-
Object.defineProperty(exports,
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
786
|
+
Object.defineProperty(exports, "isNonTransientHttpStatus", {
|
|
787
|
+
enumerable: true,
|
|
788
|
+
get: function() {
|
|
789
|
+
return isNonTransientHttpStatus;
|
|
790
|
+
}
|
|
795
791
|
});
|
|
796
|
-
Object.defineProperty(exports,
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
792
|
+
Object.defineProperty(exports, "isTransientConnectionError", {
|
|
793
|
+
enumerable: true,
|
|
794
|
+
get: function() {
|
|
795
|
+
return isTransientConnectionError;
|
|
796
|
+
}
|
|
801
797
|
});
|
|
802
|
-
|
|
798
|
+
|
|
799
|
+
//# sourceMappingURL=cache-COish3-W.cjs.map
|