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,10 +1,9 @@
|
|
|
1
|
-
import { b as getEnvString, d as getAjv, i as
|
|
2
|
-
import { c as maybeLoadFromExternalFile, g as renderVarsInObject, y as getNunjucksEngine } from "./util-
|
|
3
|
-
import {
|
|
1
|
+
import { b as getEnvString, d as getAjv, i as logger } from "./logger-CT3IKMKA.js";
|
|
2
|
+
import { c as maybeLoadFromExternalFile, g as renderVarsInObject, y as getNunjucksEngine } from "./util-Dlz_Wvgm.js";
|
|
3
|
+
import { b as parseChatPrompt, m as calculateCost, t as fetchWithProxy } from "./fetch-60Gzydls.js";
|
|
4
4
|
import Clone from "rfdc";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import crypto from "crypto";
|
|
7
|
-
|
|
8
7
|
//#region src/util/oauth.ts
|
|
9
8
|
/**
|
|
10
9
|
* Buffer time before token expiry to trigger proactive refresh (60 seconds)
|
|
@@ -19,7 +18,7 @@ const TOKEN_REFRESH_BUFFER_MS = 6e4;
|
|
|
19
18
|
*/
|
|
20
19
|
async function fetchOAuthToken(config) {
|
|
21
20
|
const now = Date.now();
|
|
22
|
-
|
|
21
|
+
logger.debug("[OAuth] Fetching new token");
|
|
23
22
|
const tokenRequestBody = new URLSearchParams();
|
|
24
23
|
tokenRequestBody.append("grant_type", config.grantType);
|
|
25
24
|
if (config.clientId) tokenRequestBody.append("client_id", config.clientId);
|
|
@@ -41,13 +40,12 @@ async function fetchOAuthToken(config) {
|
|
|
41
40
|
const tokenData = await response.json();
|
|
42
41
|
if (!tokenData.access_token) throw new Error("OAuth token response missing access_token");
|
|
43
42
|
const expiresAt = now + (tokenData.expires_in || 3600) * 1e3;
|
|
44
|
-
|
|
43
|
+
logger.debug("[OAuth] Successfully fetched token");
|
|
45
44
|
return {
|
|
46
45
|
accessToken: tokenData.access_token,
|
|
47
46
|
expiresAt
|
|
48
47
|
};
|
|
49
48
|
}
|
|
50
|
-
|
|
51
49
|
//#endregion
|
|
52
50
|
//#region src/providers/mcp/util.ts
|
|
53
51
|
/**
|
|
@@ -78,7 +76,7 @@ const tokenEndpointCache = /* @__PURE__ */ new Map();
|
|
|
78
76
|
async function discoverTokenEndpoint(serverUrl) {
|
|
79
77
|
const cached = tokenEndpointCache.get(serverUrl);
|
|
80
78
|
if (cached) {
|
|
81
|
-
|
|
79
|
+
logger.debug(`[MCP Auth] Using cached token endpoint for ${serverUrl}`);
|
|
82
80
|
return cached;
|
|
83
81
|
}
|
|
84
82
|
const url = new URL(serverUrl);
|
|
@@ -90,21 +88,21 @@ async function discoverTokenEndpoint(serverUrl) {
|
|
|
90
88
|
}
|
|
91
89
|
discoveryUrls.push(`${baseUrl}/.well-known/oauth-authorization-server`);
|
|
92
90
|
for (const discoveryUrl of discoveryUrls) try {
|
|
93
|
-
|
|
91
|
+
logger.debug(`[MCP Auth] Trying OAuth discovery at ${discoveryUrl}`);
|
|
94
92
|
const response = await fetchWithProxy(discoveryUrl);
|
|
95
93
|
if (!response.ok) {
|
|
96
|
-
|
|
94
|
+
logger.debug(`[MCP Auth] Discovery failed at ${discoveryUrl}: ${response.status}`);
|
|
97
95
|
continue;
|
|
98
96
|
}
|
|
99
97
|
const metadata = await response.json();
|
|
100
98
|
if (metadata.token_endpoint) {
|
|
101
|
-
|
|
99
|
+
logger.debug(`[MCP Auth] Discovered token endpoint: ${metadata.token_endpoint}`);
|
|
102
100
|
tokenEndpointCache.set(serverUrl, metadata.token_endpoint);
|
|
103
101
|
return metadata.token_endpoint;
|
|
104
102
|
}
|
|
105
|
-
|
|
103
|
+
logger.debug(`[MCP Auth] No token_endpoint in metadata from ${discoveryUrl}`);
|
|
106
104
|
} catch (error) {
|
|
107
|
-
|
|
105
|
+
logger.debug(`[MCP Auth] Error fetching ${discoveryUrl}: ${error}`);
|
|
108
106
|
}
|
|
109
107
|
throw new Error(`Failed to discover OAuth token endpoint for ${serverUrl}. Please configure tokenUrl explicitly in the auth config.`);
|
|
110
108
|
}
|
|
@@ -121,8 +119,8 @@ async function getOAuthTokenWithExpiry(auth, serverUrl) {
|
|
|
121
119
|
}
|
|
122
120
|
const cacheKey = getOAuthCacheKey(auth);
|
|
123
121
|
const cached = oauthTokenCache.get(cacheKey);
|
|
124
|
-
if (cached && Date.now() +
|
|
125
|
-
|
|
122
|
+
if (cached && Date.now() + 6e4 < cached.expiresAt) {
|
|
123
|
+
logger.debug("[MCP Auth] Using cached OAuth token");
|
|
126
124
|
return {
|
|
127
125
|
accessToken: cached.accessToken,
|
|
128
126
|
expiresAt: cached.expiresAt
|
|
@@ -141,7 +139,7 @@ async function getOAuthTokenWithExpiry(auth, serverUrl) {
|
|
|
141
139
|
accessToken: result.accessToken,
|
|
142
140
|
expiresAt: result.expiresAt
|
|
143
141
|
});
|
|
144
|
-
|
|
142
|
+
logger.debug("[MCP Auth] Cached OAuth token");
|
|
145
143
|
return result;
|
|
146
144
|
}
|
|
147
145
|
/**
|
|
@@ -173,7 +171,7 @@ function getAuthHeaders(server, oauthToken) {
|
|
|
173
171
|
}
|
|
174
172
|
case "oauth":
|
|
175
173
|
if (oauthToken) return { Authorization: `Bearer ${oauthToken}` };
|
|
176
|
-
|
|
174
|
+
logger.warn("[MCP Auth] OAuth auth configured but no token provided");
|
|
177
175
|
return {};
|
|
178
176
|
default: return {};
|
|
179
177
|
}
|
|
@@ -205,7 +203,6 @@ function applyQueryParams(url, params) {
|
|
|
205
203
|
function requiresAsyncAuth(server) {
|
|
206
204
|
return server.auth?.type === "oauth";
|
|
207
205
|
}
|
|
208
|
-
|
|
209
206
|
//#endregion
|
|
210
207
|
//#region src/util/dataUrl.ts
|
|
211
208
|
/**
|
|
@@ -281,7 +278,6 @@ function extractBase64FromDataUrl(value) {
|
|
|
281
278
|
function toDataUri(mimeType, base64Data) {
|
|
282
279
|
return `data:${mimeType};base64,${base64Data}`;
|
|
283
280
|
}
|
|
284
|
-
|
|
285
281
|
//#endregion
|
|
286
282
|
//#region src/providers/google/auth.ts
|
|
287
283
|
/**
|
|
@@ -306,6 +302,8 @@ function toDataUri(mimeType, base64Data) {
|
|
|
306
302
|
* - Conflict detection and warnings
|
|
307
303
|
*/
|
|
308
304
|
var GoogleAuthManager = class {
|
|
305
|
+
static cachedHasDefaultCredentials;
|
|
306
|
+
static pendingHasDefaultCredentials;
|
|
309
307
|
/**
|
|
310
308
|
* Get API key with proper priority order.
|
|
311
309
|
*
|
|
@@ -329,7 +327,7 @@ var GoogleAuthManager = class {
|
|
|
329
327
|
if (isVertexMode) {
|
|
330
328
|
const vertexKey = env?.VERTEX_API_KEY || getEnvString("VERTEX_API_KEY");
|
|
331
329
|
if (vertexKey) {
|
|
332
|
-
|
|
330
|
+
logger.warn("[Google] VERTEX_API_KEY is not a standard SDK env var. Use GOOGLE_API_KEY instead.");
|
|
333
331
|
return {
|
|
334
332
|
apiKey: vertexKey,
|
|
335
333
|
source: "VERTEX_API_KEY"
|
|
@@ -339,20 +337,20 @@ var GoogleAuthManager = class {
|
|
|
339
337
|
const googleKey = env?.GOOGLE_API_KEY || getEnvString("GOOGLE_API_KEY");
|
|
340
338
|
const geminiKey = env?.GEMINI_API_KEY || getEnvString("GEMINI_API_KEY");
|
|
341
339
|
const palmKey = isVertexMode ? void 0 : env?.PALM_API_KEY || getEnvString("PALM_API_KEY");
|
|
342
|
-
if (googleKey && geminiKey)
|
|
340
|
+
if (googleKey && geminiKey) logger.debug("[Google] Both GOOGLE_API_KEY and GEMINI_API_KEY are set. Using GOOGLE_API_KEY.");
|
|
343
341
|
if (googleKey) return {
|
|
344
342
|
apiKey: googleKey,
|
|
345
343
|
source: "GOOGLE_API_KEY"
|
|
346
344
|
};
|
|
347
345
|
if (geminiKey) {
|
|
348
|
-
|
|
346
|
+
logger.debug("[Google] GEMINI_API_KEY is not a standard SDK env var. Consider using GOOGLE_API_KEY.");
|
|
349
347
|
return {
|
|
350
348
|
apiKey: geminiKey,
|
|
351
349
|
source: "GEMINI_API_KEY"
|
|
352
350
|
};
|
|
353
351
|
}
|
|
354
352
|
if (palmKey) {
|
|
355
|
-
|
|
353
|
+
logger.warn("[Google] PALM_API_KEY is deprecated. Use GOOGLE_API_KEY instead.");
|
|
356
354
|
return {
|
|
357
355
|
apiKey: palmKey,
|
|
358
356
|
source: "PALM_API_KEY"
|
|
@@ -378,13 +376,13 @@ var GoogleAuthManager = class {
|
|
|
378
376
|
if ((projectId || region) && apiKey) {
|
|
379
377
|
const message = "[Google] Project/location and API key are mutually exclusive in the client initializer. Use either apiKey for express mode OR projectId/region for OAuth mode, not both.";
|
|
380
378
|
if (isStrict) throw new Error(message);
|
|
381
|
-
else
|
|
379
|
+
else logger.warn(message);
|
|
382
380
|
}
|
|
383
|
-
if (useVertexEnv && vertexai === false)
|
|
384
|
-
if (cloudProject && projectId && cloudProject !== projectId)
|
|
385
|
-
if (apiKey && credentials)
|
|
381
|
+
if (useVertexEnv && vertexai === false) logger.warn("[Google] GOOGLE_GENAI_USE_VERTEXAI is set but vertexai: false was specified in config. Config takes precedence.");
|
|
382
|
+
if (cloudProject && projectId && cloudProject !== projectId) logger.warn("[Google] Both GOOGLE_CLOUD_PROJECT and config.projectId are set with different values. Using config.projectId.");
|
|
383
|
+
if (apiKey && credentials) logger.debug("[Google] Both apiKey and credentials are set. Using API key (express mode). Set expressMode: false to use OAuth/ADC instead.");
|
|
386
384
|
if (vertexai && !apiKey && !projectId && !cloudProject && !credentials) {
|
|
387
|
-
if (!Boolean(env?.GOOGLE_APPLICATION_CREDENTIALS || process.env.GOOGLE_APPLICATION_CREDENTIALS))
|
|
385
|
+
if (!Boolean(env?.GOOGLE_APPLICATION_CREDENTIALS || process.env.GOOGLE_APPLICATION_CREDENTIALS)) logger.debug("[Google] Vertex AI mode enabled but no projectId, credentials, or ADC detected. Authentication may fail.");
|
|
388
386
|
}
|
|
389
387
|
}
|
|
390
388
|
/**
|
|
@@ -404,14 +402,14 @@ var GoogleAuthManager = class {
|
|
|
404
402
|
if (config.vertexai !== void 0) return config.vertexai;
|
|
405
403
|
const useVertexEnv = getEnvString("GOOGLE_GENAI_USE_VERTEXAI");
|
|
406
404
|
if (useVertexEnv === "true" || useVertexEnv === "1") {
|
|
407
|
-
|
|
405
|
+
logger.debug("[Google] Vertex AI mode enabled via GOOGLE_GENAI_USE_VERTEXAI");
|
|
408
406
|
return true;
|
|
409
407
|
}
|
|
410
408
|
if (useVertexEnv === "false" || useVertexEnv === "0") return false;
|
|
411
409
|
const hasProjectId = Boolean(config.projectId || env?.VERTEX_PROJECT_ID || getEnvString("VERTEX_PROJECT_ID") || env?.GOOGLE_PROJECT_ID || getEnvString("GOOGLE_PROJECT_ID") || getEnvString("GOOGLE_CLOUD_PROJECT"));
|
|
412
410
|
const hasCredentials = Boolean(config.credentials);
|
|
413
411
|
if (hasProjectId || hasCredentials) {
|
|
414
|
-
|
|
412
|
+
logger.debug("[Google] Auto-detected Vertex AI mode from projectId/credentials. Set vertexai: true/false explicitly to suppress this message.");
|
|
415
413
|
return true;
|
|
416
414
|
}
|
|
417
415
|
return false;
|
|
@@ -477,7 +475,7 @@ var GoogleAuthManager = class {
|
|
|
477
475
|
client = await auth.fromJSON(parsedCredentials);
|
|
478
476
|
} catch (error) {
|
|
479
477
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
480
|
-
|
|
478
|
+
logger.error(`[Google] Could not load credentials: ${errorMsg}`);
|
|
481
479
|
throw new Error(`[Google] Could not load credentials: ${errorMsg}`);
|
|
482
480
|
}
|
|
483
481
|
} else client = await auth.getClient();
|
|
@@ -516,8 +514,8 @@ var GoogleAuthManager = class {
|
|
|
516
514
|
const vertexProjectId = env?.VERTEX_PROJECT_ID || getEnvString("VERTEX_PROJECT_ID");
|
|
517
515
|
const googleProjectId = env?.GOOGLE_PROJECT_ID || getEnvString("GOOGLE_PROJECT_ID");
|
|
518
516
|
const cloudProject = getEnvString("GOOGLE_CLOUD_PROJECT");
|
|
519
|
-
if (vertexProjectId && !config.projectId)
|
|
520
|
-
if (googleProjectId && !config.projectId && !vertexProjectId)
|
|
517
|
+
if (vertexProjectId && !config.projectId) logger.debug("[Google] VERTEX_PROJECT_ID is not a standard SDK env var. Consider using GOOGLE_CLOUD_PROJECT.");
|
|
518
|
+
if (googleProjectId && !config.projectId && !vertexProjectId) logger.debug("[Google] GOOGLE_PROJECT_ID is not a standard SDK env var. Consider using GOOGLE_CLOUD_PROJECT.");
|
|
521
519
|
return config.projectId || vertexProjectId || googleProjectId || cloudProject || authProjectId || "";
|
|
522
520
|
}
|
|
523
521
|
/**
|
|
@@ -537,7 +535,7 @@ var GoogleAuthManager = class {
|
|
|
537
535
|
static resolveRegion(config, env, hasApiKey) {
|
|
538
536
|
const vertexRegion = env?.VERTEX_REGION || getEnvString("VERTEX_REGION");
|
|
539
537
|
const cloudLocation = getEnvString("GOOGLE_CLOUD_LOCATION");
|
|
540
|
-
if (vertexRegion && !config.region)
|
|
538
|
+
if (vertexRegion && !config.region) logger.debug("[Google] VERTEX_REGION is not a standard SDK env var. Consider using GOOGLE_CLOUD_LOCATION.");
|
|
541
539
|
const configuredRegion = config.region || vertexRegion || cloudLocation;
|
|
542
540
|
if (configuredRegion) return configuredRegion;
|
|
543
541
|
if (hasApiKey === false) return "global";
|
|
@@ -549,25 +547,39 @@ var GoogleAuthManager = class {
|
|
|
549
547
|
* @returns True if ADC is available
|
|
550
548
|
*/
|
|
551
549
|
static async hasDefaultCredentials() {
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
550
|
+
if (this.cachedHasDefaultCredentials !== void 0) return this.cachedHasDefaultCredentials;
|
|
551
|
+
if (!this.pendingHasDefaultCredentials) {
|
|
552
|
+
const probe = (async () => {
|
|
553
|
+
try {
|
|
554
|
+
await this.getOAuthClient();
|
|
555
|
+
return true;
|
|
556
|
+
} catch {
|
|
557
|
+
return false;
|
|
558
|
+
}
|
|
559
|
+
})();
|
|
560
|
+
this.pendingHasDefaultCredentials = probe;
|
|
561
|
+
probe.then((result) => {
|
|
562
|
+
if (this.pendingHasDefaultCredentials === probe) this.cachedHasDefaultCredentials = result;
|
|
563
|
+
return result;
|
|
564
|
+
}).finally(() => {
|
|
565
|
+
if (this.pendingHasDefaultCredentials === probe) this.pendingHasDefaultCredentials = void 0;
|
|
566
|
+
});
|
|
557
567
|
}
|
|
568
|
+
return this.pendingHasDefaultCredentials;
|
|
558
569
|
}
|
|
559
570
|
/**
|
|
560
|
-
* Clear
|
|
561
|
-
* @deprecated No longer uses instance-level caching; Google's auth library handles token caching internally.
|
|
571
|
+
* Clear internal auth detection caches (useful for testing).
|
|
562
572
|
*/
|
|
563
|
-
static clearCache() {
|
|
573
|
+
static clearCache() {
|
|
574
|
+
this.cachedHasDefaultCredentials = void 0;
|
|
575
|
+
this.pendingHasDefaultCredentials = void 0;
|
|
576
|
+
}
|
|
564
577
|
};
|
|
565
578
|
const loadCredentials = GoogleAuthManager.loadCredentials.bind(GoogleAuthManager);
|
|
566
579
|
const getGoogleClient = GoogleAuthManager.getOAuthClient.bind(GoogleAuthManager);
|
|
567
580
|
const resolveProjectId = GoogleAuthManager.resolveProjectId.bind(GoogleAuthManager);
|
|
568
581
|
const hasGoogleDefaultCredentials = GoogleAuthManager.hasDefaultCredentials.bind(GoogleAuthManager);
|
|
569
|
-
|
|
570
|
-
|
|
582
|
+
GoogleAuthManager.clearCache.bind(GoogleAuthManager);
|
|
571
583
|
//#endregion
|
|
572
584
|
//#region src/providers/google/shared.ts
|
|
573
585
|
/**
|
|
@@ -647,7 +659,8 @@ const GOOGLE_MODELS = [
|
|
|
647
659
|
...[
|
|
648
660
|
"gemini-2.5-flash",
|
|
649
661
|
"gemini-2.5-flash-preview-04-17",
|
|
650
|
-
"gemini-2.5-flash-preview-05-20"
|
|
662
|
+
"gemini-2.5-flash-preview-05-20",
|
|
663
|
+
"gemini-2.5-flash-preview-09-2025"
|
|
651
664
|
].map((id) => ({
|
|
652
665
|
id,
|
|
653
666
|
cost: {
|
|
@@ -662,13 +675,6 @@ const GOOGLE_MODELS = [
|
|
|
662
675
|
output: .4 / 1e6
|
|
663
676
|
}
|
|
664
677
|
})),
|
|
665
|
-
{
|
|
666
|
-
id: "gemini-2.5-flash-preview-09-2025",
|
|
667
|
-
cost: {
|
|
668
|
-
input: .3 / 1e6,
|
|
669
|
-
output: 2.5 / 1e6
|
|
670
|
-
}
|
|
671
|
-
},
|
|
672
678
|
...[
|
|
673
679
|
"gemini-2.0-flash",
|
|
674
680
|
"gemini-2.0-flash-001",
|
|
@@ -678,6 +684,10 @@ const GOOGLE_MODELS = [
|
|
|
678
684
|
cost: {
|
|
679
685
|
input: .1 / 1e6,
|
|
680
686
|
output: .4 / 1e6
|
|
687
|
+
},
|
|
688
|
+
vertexCost: {
|
|
689
|
+
input: .15 / 1e6,
|
|
690
|
+
output: .6 / 1e6
|
|
681
691
|
}
|
|
682
692
|
})),
|
|
683
693
|
...[
|
|
@@ -816,6 +826,20 @@ const GOOGLE_MODELS = [
|
|
|
816
826
|
output: 1.5 / 1e6
|
|
817
827
|
}
|
|
818
828
|
},
|
|
829
|
+
{
|
|
830
|
+
id: "gemini-robotics-er-1.5-preview",
|
|
831
|
+
cost: {
|
|
832
|
+
input: .3 / 1e6,
|
|
833
|
+
output: 2.5 / 1e6
|
|
834
|
+
}
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
id: "gemini-embedding-001",
|
|
838
|
+
cost: {
|
|
839
|
+
input: .15 / 1e6,
|
|
840
|
+
output: 0
|
|
841
|
+
}
|
|
842
|
+
},
|
|
819
843
|
{ id: "aqa" },
|
|
820
844
|
{ id: "chat-bison" },
|
|
821
845
|
{ id: "chat-bison-32k" },
|
|
@@ -841,7 +865,6 @@ const GOOGLE_MODELS = [
|
|
|
841
865
|
* Used for model validation in ai.studio.ts.
|
|
842
866
|
*/
|
|
843
867
|
const CHAT_MODELS = GOOGLE_MODELS.map((m) => m.id);
|
|
844
|
-
|
|
845
868
|
//#endregion
|
|
846
869
|
//#region src/providers/google/types.ts
|
|
847
870
|
const VALID_SCHEMA_TYPES = [
|
|
@@ -853,7 +876,6 @@ const VALID_SCHEMA_TYPES = [
|
|
|
853
876
|
"ARRAY",
|
|
854
877
|
"OBJECT"
|
|
855
878
|
];
|
|
856
|
-
|
|
857
879
|
//#endregion
|
|
858
880
|
//#region src/providers/google/util.ts
|
|
859
881
|
/**
|
|
@@ -868,25 +890,32 @@ function normalizeSafetySettings(safetySettings) {
|
|
|
868
890
|
}));
|
|
869
891
|
}
|
|
870
892
|
/**
|
|
871
|
-
* Calculates the cost for a Google
|
|
893
|
+
* Calculates the cost for a Google API call.
|
|
872
894
|
*
|
|
873
895
|
* Handles tiered pricing for models where cost varies by prompt size.
|
|
874
896
|
* For example, Gemini Pro models have higher rates for prompts >200k tokens.
|
|
897
|
+
* Some models (e.g. Gemini 2.0 Flash) have different pricing on Vertex AI.
|
|
875
898
|
*
|
|
876
899
|
* @param modelName - The name of the model used
|
|
877
900
|
* @param config - Provider configuration (may contain custom cost override)
|
|
878
901
|
* @param promptTokens - Number of tokens in the prompt
|
|
879
902
|
* @param completionTokens - Number of tokens in the completion
|
|
903
|
+
* @param isVertexMode - Whether the call was made via Vertex AI (uses Vertex pricing when available)
|
|
880
904
|
* @returns The calculated cost in dollars, or undefined if it cannot be calculated
|
|
881
905
|
*/
|
|
882
|
-
function calculateGoogleCost(modelName, config, promptTokens, completionTokens) {
|
|
906
|
+
function calculateGoogleCost(modelName, config, promptTokens, completionTokens, isVertexMode) {
|
|
907
|
+
const model = GOOGLE_MODELS.find((m) => m.id === modelName);
|
|
883
908
|
if (promptTokens != null && completionTokens != null) {
|
|
884
|
-
const model = GOOGLE_MODELS.find((m) => m.id === modelName);
|
|
885
909
|
if (model?.tieredCost && promptTokens > model.tieredCost.threshold) {
|
|
886
910
|
const inputCost = config.cost ?? model.tieredCost.above.input;
|
|
887
911
|
const outputCost = config.cost ?? model.tieredCost.above.output;
|
|
888
912
|
return inputCost * promptTokens + outputCost * completionTokens;
|
|
889
913
|
}
|
|
914
|
+
if (isVertexMode && model?.vertexCost) {
|
|
915
|
+
const inputCost = config.cost ?? model.vertexCost.input;
|
|
916
|
+
const outputCost = config.cost ?? model.vertexCost.output;
|
|
917
|
+
return inputCost * promptTokens + outputCost * completionTokens;
|
|
918
|
+
}
|
|
890
919
|
}
|
|
891
920
|
return calculateCost(modelName, config, promptTokens, completionTokens, GOOGLE_MODELS);
|
|
892
921
|
}
|
|
@@ -968,7 +997,7 @@ function maybeCoerceToGeminiFormat(contents, options) {
|
|
|
968
997
|
coercedContents = [contents];
|
|
969
998
|
coerced = true;
|
|
970
999
|
} else {
|
|
971
|
-
|
|
1000
|
+
logger.warn(`Unknown format for Gemini: ${JSON.stringify(contents)}`);
|
|
972
1001
|
return {
|
|
973
1002
|
contents: Array.isArray(contents) ? contents : [],
|
|
974
1003
|
coerced: false,
|
|
@@ -1026,7 +1055,7 @@ async function getGoogleAccessToken(credentials) {
|
|
|
1026
1055
|
else client = await cachedGenerativeLanguageAuth.getClient();
|
|
1027
1056
|
return (await client.getAccessToken()).token || void 0;
|
|
1028
1057
|
} catch (error) {
|
|
1029
|
-
|
|
1058
|
+
logger.debug("[GoogleAuth] Could not get access token", { error: error instanceof Error ? error.message : String(error) });
|
|
1030
1059
|
return;
|
|
1031
1060
|
}
|
|
1032
1061
|
}
|
|
@@ -1046,7 +1075,7 @@ function getCandidate(data) {
|
|
|
1046
1075
|
errorDetails += `\n\nGot response: ${JSON.stringify(data)}`;
|
|
1047
1076
|
throw new Error(errorDetails);
|
|
1048
1077
|
}
|
|
1049
|
-
if (data.candidates.length > 1)
|
|
1078
|
+
if (data.candidates.length > 1) logger.debug(`Expected one candidate in AI Studio API response, but got ${data.candidates.length}: ${JSON.stringify(data)}`);
|
|
1050
1079
|
return data.candidates[0];
|
|
1051
1080
|
}
|
|
1052
1081
|
function formatCandidateContents(candidate) {
|
|
@@ -1108,7 +1137,7 @@ function loadFile(config_var, context_vars) {
|
|
|
1108
1137
|
const parsedContents = JSON.parse(fileContents);
|
|
1109
1138
|
return Array.isArray(parsedContents) ? normalizeTools(parsedContents) : parsedContents;
|
|
1110
1139
|
} catch (err) {
|
|
1111
|
-
|
|
1140
|
+
logger.debug(`ERROR: failed to convert file contents to JSON:\n${JSON.stringify(err)}`);
|
|
1112
1141
|
return fileContents;
|
|
1113
1142
|
}
|
|
1114
1143
|
if (Array.isArray(fileContents)) return normalizeTools(fileContents);
|
|
@@ -1140,7 +1169,7 @@ function getMimeTypeFromBase64(base64DataOrUrl) {
|
|
|
1140
1169
|
function processImagesInContents(contents, contextVars) {
|
|
1141
1170
|
if (!contextVars) return contents;
|
|
1142
1171
|
if (!Array.isArray(contents)) {
|
|
1143
|
-
|
|
1172
|
+
logger.warn("[Google] contents is not an array in processImagesInContents", {
|
|
1144
1173
|
contentsType: typeof contents,
|
|
1145
1174
|
contentsValue: contents
|
|
1146
1175
|
});
|
|
@@ -1217,7 +1246,7 @@ function geminiFormatAndSystemInstructions(prompt, contextVars, configSystemInst
|
|
|
1217
1246
|
}]);
|
|
1218
1247
|
const { contents: updatedContents, coerced, systemInstruction: parsedSystemInstruction } = maybeCoerceToGeminiFormat(contents, options);
|
|
1219
1248
|
if (coerced) {
|
|
1220
|
-
|
|
1249
|
+
logger.debug(`Coerced JSON prompt to Gemini format: ${JSON.stringify(contents)}`);
|
|
1221
1250
|
contents = updatedContents;
|
|
1222
1251
|
}
|
|
1223
1252
|
let systemInstruction = parsedSystemInstruction;
|
|
@@ -1372,7 +1401,6 @@ function createAuthCacheDiscriminator(headers) {
|
|
|
1372
1401
|
if (authValues.length === 0) return "";
|
|
1373
1402
|
return crypto.createHash("sha256").update(authValues.join("|")).digest("hex").substring(0, 16);
|
|
1374
1403
|
}
|
|
1375
|
-
|
|
1376
1404
|
//#endregion
|
|
1377
1405
|
//#region src/providers/mcp/transform.ts
|
|
1378
1406
|
function transformMCPToolsToOpenAi(tools) {
|
|
@@ -1472,7 +1500,7 @@ async function transformMCPServerConfigToClaudeCode(config) {
|
|
|
1472
1500
|
else throw new Error("MCP configuration cannot be converted to Claude Agent SDK MCP server config");
|
|
1473
1501
|
return [key, out];
|
|
1474
1502
|
}
|
|
1475
|
-
|
|
1476
1503
|
//#endregion
|
|
1477
1504
|
export { applyQueryParams as C, renderAuthVars as D, getOAuthTokenWithExpiry as E, TOKEN_REFRESH_BUFFER_MS as O, toDataUri as S, getAuthQueryParams as T, getGoogleClient as _, calculateGoogleCost as a, resolveProjectId as b, geminiFormatAndSystemInstructions as c, mergeParts as d, normalizeSafetySettings as f, GoogleAuthManager as g, CHAT_MODELS as h, transformMCPToolsToOpenAi as i, getCandidate as l, validateFunctionCall as m, transformMCPToolsToAnthropic as n, createAuthCacheDiscriminator as o, normalizeTools as p, transformMCPToolsToGoogle as r, formatCandidateContents as s, transformMCPConfigToClaudeCode as t, getGoogleAccessToken as u, hasGoogleDefaultCredentials as v, getAuthHeaders as w, parseDataUrl as x, loadCredentials as y };
|
|
1478
|
-
|
|
1505
|
+
|
|
1506
|
+
//# sourceMappingURL=transform-DGLazrMm.js.map
|