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,171 @@
|
|
|
1
|
+
import { t as __exportAll } from "./chunk-DEq-mXcV.js";
|
|
2
|
+
import { C as isCI, _ as getEnvBool, b as getEnvString, i as logger } from "./logger-DLcq4dWf.js";
|
|
3
|
+
import { D as R_ENDPOINT, E as EVENTS_ENDPOINT, N as POSTHOG_KEY, P as VERSION, T as CONSENT_ENDPOINT, r as fetchWithTimeout, t as fetchWithProxy } from "./fetch-4M3YRaqL.js";
|
|
4
|
+
import { c as isLoggedIntoCloud, i as getAuthMethod, o as getUserEmail, s as getUserId } from "./accounts-BgNJDBE6.js";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { PostHog } from "posthog-node";
|
|
7
|
+
//#region src/telemetry.ts
|
|
8
|
+
var telemetry_exports = /* @__PURE__ */ __exportAll({
|
|
9
|
+
Telemetry: () => Telemetry,
|
|
10
|
+
TelemetryEventSchema: () => TelemetryEventSchema,
|
|
11
|
+
default: () => telemetry
|
|
12
|
+
});
|
|
13
|
+
const TelemetryEventSchema = z.object({
|
|
14
|
+
event: z.enum([
|
|
15
|
+
"assertion_used",
|
|
16
|
+
"command_used",
|
|
17
|
+
"eval setup",
|
|
18
|
+
"eval_ran",
|
|
19
|
+
"feature_used",
|
|
20
|
+
"funnel",
|
|
21
|
+
"redteam discover",
|
|
22
|
+
"redteam generate",
|
|
23
|
+
"redteam init",
|
|
24
|
+
"redteam poison",
|
|
25
|
+
"redteam report",
|
|
26
|
+
"redteam run",
|
|
27
|
+
"redteam setup",
|
|
28
|
+
"webui_action",
|
|
29
|
+
"webui_api",
|
|
30
|
+
"webui_page_view"
|
|
31
|
+
]),
|
|
32
|
+
packageVersion: z.string().optional().prefault(VERSION),
|
|
33
|
+
properties: z.record(z.string(), z.union([
|
|
34
|
+
z.string(),
|
|
35
|
+
z.number(),
|
|
36
|
+
z.boolean(),
|
|
37
|
+
z.array(z.string())
|
|
38
|
+
]))
|
|
39
|
+
});
|
|
40
|
+
let posthogClient = null;
|
|
41
|
+
let isShuttingDown = false;
|
|
42
|
+
function getPostHogClient() {
|
|
43
|
+
if (getEnvBool("PROMPTFOO_DISABLE_TELEMETRY") || getEnvBool("IS_TESTING")) return null;
|
|
44
|
+
if (posthogClient === null && "phc_E5n5uHnDo2eREJL1uqX1cIlbkoRby4yFWt3V94HqRRg") try {
|
|
45
|
+
posthogClient = new PostHog(POSTHOG_KEY, {
|
|
46
|
+
host: EVENTS_ENDPOINT,
|
|
47
|
+
fetch: fetchWithProxy,
|
|
48
|
+
flushInterval: 0
|
|
49
|
+
});
|
|
50
|
+
} catch {
|
|
51
|
+
posthogClient = null;
|
|
52
|
+
}
|
|
53
|
+
return posthogClient;
|
|
54
|
+
}
|
|
55
|
+
const TELEMETRY_TIMEOUT_MS = 1e3;
|
|
56
|
+
var Telemetry = class {
|
|
57
|
+
telemetryDisabledRecorded = false;
|
|
58
|
+
id;
|
|
59
|
+
email;
|
|
60
|
+
constructor() {
|
|
61
|
+
this.id = getUserId();
|
|
62
|
+
this.email = getUserEmail();
|
|
63
|
+
this.identify();
|
|
64
|
+
}
|
|
65
|
+
async identify() {
|
|
66
|
+
if (this.disabled || getEnvBool("IS_TESTING")) return;
|
|
67
|
+
const client = getPostHogClient();
|
|
68
|
+
if (client) try {
|
|
69
|
+
client.identify({
|
|
70
|
+
distinctId: this.id,
|
|
71
|
+
properties: {
|
|
72
|
+
email: this.email,
|
|
73
|
+
isLoggedIntoCloud: isLoggedIntoCloud(),
|
|
74
|
+
authMethod: getAuthMethod(),
|
|
75
|
+
isRunningInCi: isCI()
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
client.flush().catch(() => {});
|
|
79
|
+
} catch (error) {
|
|
80
|
+
logger.debug(`PostHog identify error: ${error}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
get disabled() {
|
|
84
|
+
return getEnvBool("PROMPTFOO_DISABLE_TELEMETRY");
|
|
85
|
+
}
|
|
86
|
+
recordTelemetryDisabled() {
|
|
87
|
+
if (!this.telemetryDisabledRecorded) {
|
|
88
|
+
this.sendEvent("feature_used", { feature: "telemetry disabled" });
|
|
89
|
+
this.telemetryDisabledRecorded = true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
record(eventName, properties) {
|
|
93
|
+
if (this.disabled) this.recordTelemetryDisabled();
|
|
94
|
+
else this.sendEvent(eventName, properties);
|
|
95
|
+
}
|
|
96
|
+
sendEvent(eventName, properties) {
|
|
97
|
+
const propertiesWithMetadata = {
|
|
98
|
+
...properties,
|
|
99
|
+
packageVersion: VERSION,
|
|
100
|
+
isRunningInCi: isCI()
|
|
101
|
+
};
|
|
102
|
+
const client = getPostHogClient();
|
|
103
|
+
if (client && !getEnvBool("IS_TESTING")) try {
|
|
104
|
+
client.capture({
|
|
105
|
+
distinctId: this.id,
|
|
106
|
+
event: eventName,
|
|
107
|
+
properties: propertiesWithMetadata
|
|
108
|
+
});
|
|
109
|
+
client.flush().catch(() => {});
|
|
110
|
+
} catch (error) {
|
|
111
|
+
logger.debug(`PostHog capture error: ${error}`);
|
|
112
|
+
}
|
|
113
|
+
fetchWithProxy(R_ENDPOINT, {
|
|
114
|
+
method: "POST",
|
|
115
|
+
headers: { "Content-Type": "application/json" },
|
|
116
|
+
body: JSON.stringify({
|
|
117
|
+
event: eventName,
|
|
118
|
+
environment: getEnvString("NODE_ENV", "development"),
|
|
119
|
+
email: this.email,
|
|
120
|
+
meta: {
|
|
121
|
+
user_id: this.id,
|
|
122
|
+
...propertiesWithMetadata
|
|
123
|
+
}
|
|
124
|
+
})
|
|
125
|
+
}).catch(() => {});
|
|
126
|
+
}
|
|
127
|
+
async shutdown() {
|
|
128
|
+
if (isShuttingDown) return;
|
|
129
|
+
const client = getPostHogClient();
|
|
130
|
+
if (!client) return;
|
|
131
|
+
isShuttingDown = true;
|
|
132
|
+
try {
|
|
133
|
+
await client.shutdown();
|
|
134
|
+
} catch (error) {
|
|
135
|
+
logger.debug(`PostHog shutdown error: ${error}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* This is a separate endpoint to save consent used only for redteam data synthesis for "harmful" plugins.
|
|
140
|
+
*/
|
|
141
|
+
async saveConsent(email, metadata) {
|
|
142
|
+
try {
|
|
143
|
+
const response = await fetchWithTimeout(CONSENT_ENDPOINT, {
|
|
144
|
+
method: "POST",
|
|
145
|
+
headers: { "Content-Type": "application/json" },
|
|
146
|
+
body: JSON.stringify({
|
|
147
|
+
email,
|
|
148
|
+
metadata
|
|
149
|
+
})
|
|
150
|
+
}, TELEMETRY_TIMEOUT_MS);
|
|
151
|
+
if (!response.ok) throw new Error(`Failed to save consent: ${response.statusText}`);
|
|
152
|
+
} catch (err) {
|
|
153
|
+
logger.debug(`Failed to save consent: ${err.message}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
const telemetry = new Telemetry();
|
|
158
|
+
const TELEMETRY_INSTANCE_KEY = Symbol.for("promptfoo.telemetry.instance");
|
|
159
|
+
const SHUTDOWN_HANDLER_KEY = Symbol.for("promptfoo.telemetry.shutdownHandler");
|
|
160
|
+
process[TELEMETRY_INSTANCE_KEY] = telemetry;
|
|
161
|
+
if (!process[SHUTDOWN_HANDLER_KEY]) {
|
|
162
|
+
process[SHUTDOWN_HANDLER_KEY] = true;
|
|
163
|
+
process.once("beforeExit", () => {
|
|
164
|
+
const instance = process[TELEMETRY_INSTANCE_KEY];
|
|
165
|
+
if (instance) instance.shutdown().catch(() => {});
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
//#endregion
|
|
169
|
+
export { telemetry as n, telemetry_exports as r, TelemetryEventSchema as t };
|
|
170
|
+
|
|
171
|
+
//# sourceMappingURL=telemetry-DMb2Mpfm.js.map
|
|
@@ -16,7 +16,7 @@ function ellipsize(str, maxLen) {
|
|
|
16
16
|
function escapeRegExp(str) {
|
|
17
17
|
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
18
18
|
}
|
|
19
|
-
|
|
20
19
|
//#endregion
|
|
21
20
|
export { escapeRegExp as n, ellipsize as t };
|
|
22
|
-
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=text-B_UCRPp2.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
//#region src/util/text.ts
|
|
3
2
|
/**
|
|
4
3
|
* Truncates a string to a maximum length, adding an ellipsis (...) if truncated.
|
|
@@ -17,18 +16,18 @@ function ellipsize(str, maxLen) {
|
|
|
17
16
|
function escapeRegExp(str) {
|
|
18
17
|
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
19
18
|
}
|
|
20
|
-
|
|
21
19
|
//#endregion
|
|
22
|
-
Object.defineProperty(exports,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
Object.defineProperty(exports, "ellipsize", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function() {
|
|
23
|
+
return ellipsize;
|
|
24
|
+
}
|
|
27
25
|
});
|
|
28
|
-
Object.defineProperty(exports,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
Object.defineProperty(exports, "escapeRegExp", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function() {
|
|
29
|
+
return escapeRegExp;
|
|
30
|
+
}
|
|
33
31
|
});
|
|
34
|
-
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=text-CW1cyrwj.cjs.map
|
|
@@ -17,7 +17,7 @@ function ellipsize(str, maxLen) {
|
|
|
17
17
|
function escapeRegExp(str) {
|
|
18
18
|
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
19
19
|
}
|
|
20
|
-
|
|
21
20
|
//#endregion
|
|
22
21
|
export { escapeRegExp as n, ellipsize as t };
|
|
23
|
-
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=text-Db-Wt2u2.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/util/text.ts
|
|
2
|
+
/**
|
|
3
|
+
* Truncates a string to a maximum length, adding an ellipsis (...) if truncated.
|
|
4
|
+
* @param str The string to truncate
|
|
5
|
+
* @param maxLen The maximum length of the resulting string, including the ellipsis
|
|
6
|
+
* @returns The truncated string, with ellipsis if necessary
|
|
7
|
+
*/
|
|
8
|
+
function ellipsize(str, maxLen) {
|
|
9
|
+
if (str.length > maxLen) return str.slice(0, maxLen - 3) + "...";
|
|
10
|
+
return str;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Escapes special regex characters in a string.
|
|
14
|
+
* Use this when building regex patterns from dynamic input to prevent ReDoS attacks.
|
|
15
|
+
*/
|
|
16
|
+
function escapeRegExp(str) {
|
|
17
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { escapeRegExp as n, ellipsize as t };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=text-TIv0QYnd.js.map
|
|
@@ -132,7 +132,7 @@ function normalizeTokenUsage(tokenUsage) {
|
|
|
132
132
|
assertions: tokenUsage?.assertions || createEmptyAssertions()
|
|
133
133
|
};
|
|
134
134
|
}
|
|
135
|
-
|
|
136
135
|
//#endregion
|
|
137
136
|
export { createEmptyTokenUsage as a, createEmptyAssertions as i, accumulateResponseTokenUsage as n, normalizeTokenUsage as o, accumulateTokenUsage as r, accumulateAssertionTokenUsage as t };
|
|
138
|
-
|
|
137
|
+
|
|
138
|
+
//# sourceMappingURL=tokenUsageUtils-BDGe-iyI.js.map
|
|
@@ -133,7 +133,7 @@ function normalizeTokenUsage(tokenUsage) {
|
|
|
133
133
|
assertions: tokenUsage?.assertions || createEmptyAssertions()
|
|
134
134
|
};
|
|
135
135
|
}
|
|
136
|
-
|
|
137
136
|
//#endregion
|
|
138
137
|
export { createEmptyTokenUsage as a, createEmptyAssertions as i, accumulateResponseTokenUsage as n, normalizeTokenUsage as o, accumulateTokenUsage as r, accumulateAssertionTokenUsage as t };
|
|
139
|
-
|
|
138
|
+
|
|
139
|
+
//# sourceMappingURL=tokenUsageUtils-DflFMjS0.js.map
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
//#region src/util/tokenUsageUtils.ts
|
|
2
|
+
/**
|
|
3
|
+
* Helper to create empty completion details
|
|
4
|
+
*/
|
|
5
|
+
function createEmptyCompletionDetails() {
|
|
6
|
+
return {
|
|
7
|
+
reasoning: 0,
|
|
8
|
+
acceptedPrediction: 0,
|
|
9
|
+
rejectedPrediction: 0
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create an empty assertions token usage object.
|
|
14
|
+
*/
|
|
15
|
+
function createEmptyAssertions() {
|
|
16
|
+
return {
|
|
17
|
+
total: 0,
|
|
18
|
+
prompt: 0,
|
|
19
|
+
completion: 0,
|
|
20
|
+
cached: 0,
|
|
21
|
+
numRequests: 0,
|
|
22
|
+
completionDetails: createEmptyCompletionDetails()
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Create an empty token usage object with all fields initialized to zero.
|
|
27
|
+
*/
|
|
28
|
+
function createEmptyTokenUsage() {
|
|
29
|
+
return {
|
|
30
|
+
prompt: 0,
|
|
31
|
+
completion: 0,
|
|
32
|
+
cached: 0,
|
|
33
|
+
total: 0,
|
|
34
|
+
numRequests: 0,
|
|
35
|
+
completionDetails: createEmptyCompletionDetails(),
|
|
36
|
+
assertions: createEmptyAssertions()
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Helper to accumulate numeric values
|
|
41
|
+
*/
|
|
42
|
+
function addNumbers(a, b) {
|
|
43
|
+
return (a ?? 0) + (b ?? 0);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Helper to accumulate completion details
|
|
47
|
+
*/
|
|
48
|
+
function accumulateCompletionDetails(target, update) {
|
|
49
|
+
if (!update) return target;
|
|
50
|
+
return {
|
|
51
|
+
reasoning: addNumbers(target?.reasoning, update.reasoning),
|
|
52
|
+
acceptedPrediction: addNumbers(target?.acceptedPrediction, update.acceptedPrediction),
|
|
53
|
+
rejectedPrediction: addNumbers(target?.rejectedPrediction, update.rejectedPrediction)
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Accumulate token usage into a target object. Mutates {@code target}.
|
|
58
|
+
* @param target Object to update
|
|
59
|
+
* @param update Usage to add
|
|
60
|
+
* @param incrementRequests Whether to increment numRequests when update is provided but doesn't specify numRequests
|
|
61
|
+
*/
|
|
62
|
+
function accumulateTokenUsage(target, update, incrementRequests = false) {
|
|
63
|
+
if (!update) return;
|
|
64
|
+
target.prompt = addNumbers(target.prompt, update.prompt);
|
|
65
|
+
target.completion = addNumbers(target.completion, update.completion);
|
|
66
|
+
target.cached = addNumbers(target.cached, update.cached);
|
|
67
|
+
target.total = addNumbers(target.total, update.total);
|
|
68
|
+
if (update.numRequests !== void 0) target.numRequests = addNumbers(target.numRequests, update.numRequests);
|
|
69
|
+
else if (incrementRequests) target.numRequests = (target.numRequests ?? 0) + 1;
|
|
70
|
+
if (update.completionDetails) target.completionDetails = accumulateCompletionDetails(target.completionDetails, update.completionDetails);
|
|
71
|
+
if (update.assertions) {
|
|
72
|
+
if (!target.assertions) target.assertions = {
|
|
73
|
+
total: 0,
|
|
74
|
+
prompt: 0,
|
|
75
|
+
completion: 0,
|
|
76
|
+
cached: 0,
|
|
77
|
+
numRequests: 0
|
|
78
|
+
};
|
|
79
|
+
target.assertions.total = addNumbers(target.assertions.total, update.assertions.total);
|
|
80
|
+
target.assertions.prompt = addNumbers(target.assertions.prompt, update.assertions.prompt);
|
|
81
|
+
target.assertions.completion = addNumbers(target.assertions.completion, update.assertions.completion);
|
|
82
|
+
target.assertions.cached = addNumbers(target.assertions.cached, update.assertions.cached);
|
|
83
|
+
target.assertions.numRequests = addNumbers(target.assertions.numRequests, update.assertions.numRequests);
|
|
84
|
+
if (update.assertions.completionDetails) target.assertions.completionDetails = accumulateCompletionDetails(target.assertions.completionDetails, update.assertions.completionDetails);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Accumulate token usage specifically for assertions.
|
|
89
|
+
* This function operates directly on an assertions object rather than a full TokenUsage object.
|
|
90
|
+
* @param target Assertions object to update
|
|
91
|
+
* @param update Partial token usage that may contain assertion-related fields
|
|
92
|
+
*/
|
|
93
|
+
function accumulateAssertionTokenUsage(target, update) {
|
|
94
|
+
if (!update) return;
|
|
95
|
+
target.total = addNumbers(target.total, update.total);
|
|
96
|
+
target.prompt = addNumbers(target.prompt, update.prompt);
|
|
97
|
+
target.completion = addNumbers(target.completion, update.completion);
|
|
98
|
+
target.cached = addNumbers(target.cached, update.cached);
|
|
99
|
+
if (update.completionDetails) target.completionDetails = accumulateCompletionDetails(target.completionDetails, update.completionDetails);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Accumulate token usage from a response, handling the common pattern of
|
|
103
|
+
* incrementing numRequests when no token usage is provided.
|
|
104
|
+
* @param target Object to update
|
|
105
|
+
* @param response Response that may contain token usage
|
|
106
|
+
*/
|
|
107
|
+
function accumulateResponseTokenUsage(target, response, options) {
|
|
108
|
+
const countAsRequest = options?.countAsRequest ?? true;
|
|
109
|
+
if (response?.tokenUsage) if (countAsRequest) {
|
|
110
|
+
accumulateTokenUsage(target, response.tokenUsage);
|
|
111
|
+
if (response.tokenUsage.numRequests === void 0) target.numRequests = (target.numRequests ?? 0) + 1;
|
|
112
|
+
} else accumulateTokenUsage(target, {
|
|
113
|
+
...response.tokenUsage,
|
|
114
|
+
numRequests: void 0
|
|
115
|
+
});
|
|
116
|
+
else if (response && countAsRequest) target.numRequests = (target.numRequests ?? 0) + 1;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Normalize token usage from a provider response into a standard TokenUsage object.
|
|
120
|
+
* Provides default values for all fields if not present in the response.
|
|
121
|
+
* @param tokenUsage Token usage from provider response (may be partial or undefined)
|
|
122
|
+
* @returns Fully populated TokenUsage object with defaults
|
|
123
|
+
*/
|
|
124
|
+
function normalizeTokenUsage(tokenUsage) {
|
|
125
|
+
return {
|
|
126
|
+
total: tokenUsage?.total || 0,
|
|
127
|
+
prompt: tokenUsage?.prompt || 0,
|
|
128
|
+
completion: tokenUsage?.completion || 0,
|
|
129
|
+
cached: tokenUsage?.cached || 0,
|
|
130
|
+
numRequests: tokenUsage?.numRequests || 0,
|
|
131
|
+
completionDetails: tokenUsage?.completionDetails || createEmptyCompletionDetails(),
|
|
132
|
+
assertions: tokenUsage?.assertions || createEmptyAssertions()
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
//#endregion
|
|
136
|
+
export { createEmptyTokenUsage as a, createEmptyAssertions as i, accumulateResponseTokenUsage as n, normalizeTokenUsage as o, accumulateTokenUsage as r, accumulateAssertionTokenUsage as t };
|
|
137
|
+
|
|
138
|
+
//# sourceMappingURL=tokenUsageUtils-NYT-WKS6.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
//#region src/util/tokenUsageUtils.ts
|
|
3
2
|
/**
|
|
4
3
|
* Helper to create empty completion details
|
|
@@ -133,42 +132,42 @@ function normalizeTokenUsage(tokenUsage) {
|
|
|
133
132
|
assertions: tokenUsage?.assertions || createEmptyAssertions()
|
|
134
133
|
};
|
|
135
134
|
}
|
|
136
|
-
|
|
137
135
|
//#endregion
|
|
138
|
-
Object.defineProperty(exports,
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
136
|
+
Object.defineProperty(exports, "accumulateAssertionTokenUsage", {
|
|
137
|
+
enumerable: true,
|
|
138
|
+
get: function() {
|
|
139
|
+
return accumulateAssertionTokenUsage;
|
|
140
|
+
}
|
|
143
141
|
});
|
|
144
|
-
Object.defineProperty(exports,
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
142
|
+
Object.defineProperty(exports, "accumulateResponseTokenUsage", {
|
|
143
|
+
enumerable: true,
|
|
144
|
+
get: function() {
|
|
145
|
+
return accumulateResponseTokenUsage;
|
|
146
|
+
}
|
|
149
147
|
});
|
|
150
|
-
Object.defineProperty(exports,
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
148
|
+
Object.defineProperty(exports, "accumulateTokenUsage", {
|
|
149
|
+
enumerable: true,
|
|
150
|
+
get: function() {
|
|
151
|
+
return accumulateTokenUsage;
|
|
152
|
+
}
|
|
155
153
|
});
|
|
156
|
-
Object.defineProperty(exports,
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
154
|
+
Object.defineProperty(exports, "createEmptyAssertions", {
|
|
155
|
+
enumerable: true,
|
|
156
|
+
get: function() {
|
|
157
|
+
return createEmptyAssertions;
|
|
158
|
+
}
|
|
161
159
|
});
|
|
162
|
-
Object.defineProperty(exports,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
160
|
+
Object.defineProperty(exports, "createEmptyTokenUsage", {
|
|
161
|
+
enumerable: true,
|
|
162
|
+
get: function() {
|
|
163
|
+
return createEmptyTokenUsage;
|
|
164
|
+
}
|
|
167
165
|
});
|
|
168
|
-
Object.defineProperty(exports,
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
166
|
+
Object.defineProperty(exports, "normalizeTokenUsage", {
|
|
167
|
+
enumerable: true,
|
|
168
|
+
get: function() {
|
|
169
|
+
return normalizeTokenUsage;
|
|
170
|
+
}
|
|
173
171
|
});
|
|
174
|
-
|
|
172
|
+
|
|
173
|
+
//# sourceMappingURL=tokenUsageUtils-bVa1ga6f.cjs.map
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
const require_logger = require(
|
|
2
|
-
require(
|
|
3
|
-
require(
|
|
4
|
-
require(
|
|
5
|
-
require(
|
|
6
|
-
const require_fetch = require(
|
|
7
|
-
const require_cache = require(
|
|
8
|
-
const require_openai = require(
|
|
9
|
-
const require_util$1 = require(
|
|
1
|
+
const require_logger = require("./logger-Cp1GPUjj.cjs");
|
|
2
|
+
require("./esm-CnNt7sI4.cjs");
|
|
3
|
+
require("./pythonUtils-CTU3Y3lw.cjs");
|
|
4
|
+
require("./types-LJ0r3wbR.cjs");
|
|
5
|
+
require("./util-Yz-1aEhW.cjs");
|
|
6
|
+
const require_fetch = require("./fetch-BxUk8odA.cjs");
|
|
7
|
+
const require_cache = require("./cache-COish3-W.cjs");
|
|
8
|
+
const require_openai = require("./openai-Cuif0GEt.cjs");
|
|
9
|
+
const require_util$1 = require("./util-Db0a0AFH.cjs");
|
|
10
10
|
let fs = require("fs");
|
|
11
11
|
fs = require_logger.__toESM(fs);
|
|
12
12
|
let path = require("path");
|
|
13
13
|
path = require_logger.__toESM(path);
|
|
14
|
-
|
|
15
14
|
//#region src/providers/openai/transcription.ts
|
|
16
15
|
var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends require_openai.OpenAiGenericProvider {
|
|
17
16
|
static OPENAI_TRANSCRIPTION_MODEL_NAMES = require_util$1.OPENAI_TRANSCRIPTION_MODELS.map((model) => model.id);
|
|
18
17
|
config;
|
|
19
18
|
constructor(modelName, options = {}) {
|
|
20
|
-
if (!OpenAiTranscriptionProvider.OPENAI_TRANSCRIPTION_MODEL_NAMES.includes(modelName)) require_logger.
|
|
19
|
+
if (!OpenAiTranscriptionProvider.OPENAI_TRANSCRIPTION_MODEL_NAMES.includes(modelName)) require_logger.logger.debug(`Using unknown transcription model: ${modelName}`);
|
|
21
20
|
super(modelName, options);
|
|
22
21
|
this.config = options.config || {};
|
|
23
22
|
}
|
|
@@ -73,7 +72,7 @@ var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends requ
|
|
|
73
72
|
}, require_fetch.REQUEST_TIMEOUT_MS, "json", context?.bustCache ?? context?.debug));
|
|
74
73
|
if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
|
|
75
74
|
} catch (err) {
|
|
76
|
-
require_logger.
|
|
75
|
+
require_logger.logger.error("API call error", { error: err });
|
|
77
76
|
return { error: `API call error: ${String(err)}` };
|
|
78
77
|
}
|
|
79
78
|
if (data.error) return { error: typeof data.error === "string" ? data.error : JSON.stringify(data.error) };
|
|
@@ -118,12 +117,12 @@ var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends requ
|
|
|
118
117
|
}
|
|
119
118
|
};
|
|
120
119
|
} catch (err) {
|
|
121
|
-
require_logger.
|
|
120
|
+
require_logger.logger.error("Transcription error", { error: err });
|
|
122
121
|
return { error: `Transcription error: ${String(err)}` };
|
|
123
122
|
}
|
|
124
123
|
}
|
|
125
124
|
};
|
|
126
|
-
|
|
127
125
|
//#endregion
|
|
128
126
|
exports.OpenAiTranscriptionProvider = OpenAiTranscriptionProvider;
|
|
129
|
-
|
|
127
|
+
|
|
128
|
+
//# sourceMappingURL=transcription-CL78qbOU.cjs.map
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as logger } from "./logger-DLcq4dWf.js";
|
|
2
|
+
import { p as REQUEST_TIMEOUT_MS } from "./fetch-4M3YRaqL.js";
|
|
3
|
+
import "./esm-CaIwzWR5.js";
|
|
4
|
+
import "./types-CN_TZ2GJ.js";
|
|
5
|
+
import { r as fetchWithCache } from "./cache-D3eqDYGU.js";
|
|
6
|
+
import "./pythonUtils-D6fwaDSg.js";
|
|
7
|
+
import "./util-5cB-L7U3.js";
|
|
8
|
+
import { t as OpenAiGenericProvider } from "./openai-j-sE2O7r.js";
|
|
9
|
+
import { i as OPENAI_TRANSCRIPTION_MODELS } from "./util-6-GqIvzS.js";
|
|
2
10
|
import fs from "fs";
|
|
3
11
|
import path from "path";
|
|
4
|
-
|
|
5
12
|
//#region src/providers/openai/transcription.ts
|
|
6
13
|
var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends OpenAiGenericProvider {
|
|
7
14
|
static OPENAI_TRANSCRIPTION_MODEL_NAMES = OPENAI_TRANSCRIPTION_MODELS.map((model) => model.id);
|
|
8
15
|
config;
|
|
9
16
|
constructor(modelName, options = {}) {
|
|
10
|
-
if (!OpenAiTranscriptionProvider.OPENAI_TRANSCRIPTION_MODEL_NAMES.includes(modelName))
|
|
17
|
+
if (!OpenAiTranscriptionProvider.OPENAI_TRANSCRIPTION_MODEL_NAMES.includes(modelName)) logger.debug(`Using unknown transcription model: ${modelName}`);
|
|
11
18
|
super(modelName, options);
|
|
12
19
|
this.config = options.config || {};
|
|
13
20
|
}
|
|
@@ -63,7 +70,7 @@ var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends Open
|
|
|
63
70
|
}, REQUEST_TIMEOUT_MS, "json", context?.bustCache ?? context?.debug));
|
|
64
71
|
if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
|
|
65
72
|
} catch (err) {
|
|
66
|
-
|
|
73
|
+
logger.error("API call error", { error: err });
|
|
67
74
|
return { error: `API call error: ${String(err)}` };
|
|
68
75
|
}
|
|
69
76
|
if (data.error) return { error: typeof data.error === "string" ? data.error : JSON.stringify(data.error) };
|
|
@@ -108,12 +115,12 @@ var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends Open
|
|
|
108
115
|
}
|
|
109
116
|
};
|
|
110
117
|
} catch (err) {
|
|
111
|
-
|
|
118
|
+
logger.error("Transcription error", { error: err });
|
|
112
119
|
return { error: `Transcription error: ${String(err)}` };
|
|
113
120
|
}
|
|
114
121
|
}
|
|
115
122
|
};
|
|
116
|
-
|
|
117
123
|
//#endregion
|
|
118
124
|
export { OpenAiTranscriptionProvider };
|
|
119
|
-
|
|
125
|
+
|
|
126
|
+
//# sourceMappingURL=transcription-DAtxHhAM.js.map
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import
|
|
3
|
-
import "./
|
|
4
|
-
import "./
|
|
5
|
-
import "./
|
|
6
|
-
import "./
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { i as OPENAI_TRANSCRIPTION_MODELS } from "./util-Cl0zfT3V.js";
|
|
1
|
+
import { i as logger } from "./logger-CT3IKMKA.js";
|
|
2
|
+
import "./esm-Cd1AjG1D.js";
|
|
3
|
+
import "./pythonUtils-D5nxkQ0P.js";
|
|
4
|
+
import "./types-CLKiCBW3.js";
|
|
5
|
+
import "./util-Dlz_Wvgm.js";
|
|
6
|
+
import { p as REQUEST_TIMEOUT_MS } from "./fetch-60Gzydls.js";
|
|
7
|
+
import { r as fetchWithCache } from "./cache-8XhNqPKW.js";
|
|
8
|
+
import { t as OpenAiGenericProvider } from "./openai-DElQ-fPX.js";
|
|
9
|
+
import { i as OPENAI_TRANSCRIPTION_MODELS } from "./util-Betm42rL.js";
|
|
11
10
|
import fs from "fs";
|
|
12
11
|
import path from "path";
|
|
13
|
-
|
|
14
12
|
//#region src/providers/openai/transcription.ts
|
|
15
13
|
var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends OpenAiGenericProvider {
|
|
16
14
|
static OPENAI_TRANSCRIPTION_MODEL_NAMES = OPENAI_TRANSCRIPTION_MODELS.map((model) => model.id);
|
|
17
15
|
config;
|
|
18
16
|
constructor(modelName, options = {}) {
|
|
19
|
-
if (!OpenAiTranscriptionProvider.OPENAI_TRANSCRIPTION_MODEL_NAMES.includes(modelName))
|
|
17
|
+
if (!OpenAiTranscriptionProvider.OPENAI_TRANSCRIPTION_MODEL_NAMES.includes(modelName)) logger.debug(`Using unknown transcription model: ${modelName}`);
|
|
20
18
|
super(modelName, options);
|
|
21
19
|
this.config = options.config || {};
|
|
22
20
|
}
|
|
@@ -72,7 +70,7 @@ var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends Open
|
|
|
72
70
|
}, REQUEST_TIMEOUT_MS, "json", context?.bustCache ?? context?.debug));
|
|
73
71
|
if (status < 200 || status >= 300) return { error: `API error: ${status} ${statusText}\n${typeof data === "string" ? data : JSON.stringify(data)}` };
|
|
74
72
|
} catch (err) {
|
|
75
|
-
|
|
73
|
+
logger.error("API call error", { error: err });
|
|
76
74
|
return { error: `API call error: ${String(err)}` };
|
|
77
75
|
}
|
|
78
76
|
if (data.error) return { error: typeof data.error === "string" ? data.error : JSON.stringify(data.error) };
|
|
@@ -117,12 +115,12 @@ var OpenAiTranscriptionProvider = class OpenAiTranscriptionProvider extends Open
|
|
|
117
115
|
}
|
|
118
116
|
};
|
|
119
117
|
} catch (err) {
|
|
120
|
-
|
|
118
|
+
logger.error("Transcription error", { error: err });
|
|
121
119
|
return { error: `Transcription error: ${String(err)}` };
|
|
122
120
|
}
|
|
123
121
|
}
|
|
124
122
|
};
|
|
125
|
-
|
|
126
123
|
//#endregion
|
|
127
124
|
export { OpenAiTranscriptionProvider };
|
|
128
|
-
|
|
125
|
+
|
|
126
|
+
//# sourceMappingURL=transcription-LNZTNUUL.js.map
|