promptfoo 0.120.26 → 0.121.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/drizzle/0023_wooden_mandrill.sql +2 -0
- package/dist/drizzle/meta/0023_snapshot.json +1496 -0
- package/dist/drizzle/meta/_journal.json +7 -0
- package/dist/src/{ListApp-D3DG0F8h.js → ListApp-Du7YVwj5.js} +2 -4
- package/dist/src/accounts-BgNJDBE6.js +206 -0
- package/dist/src/{accounts-BzEY8H3v.cjs → accounts-Bx-x3bmW.cjs} +99 -80
- package/dist/src/{accounts-DHHiXsy6.js → accounts-CMqkzrVf.js} +61 -36
- package/dist/src/{accounts-R3gfCR_g.js → accounts-xrUGFA6n.js} +60 -35
- package/dist/src/{agentic-utils-D6_gzOUF.js → agentic-utils-BKIN5PKu.js} +9 -10
- package/dist/src/{agents-CwM7re15.cjs → agents-B0f4HICh.cjs} +37 -40
- package/dist/src/{agents-Cnph5GLD.js → agents-C-dDThPK.js} +37 -37
- package/dist/src/{agents-C7BiinFI.cjs → agents-CErsqg5U.cjs} +19 -27
- package/dist/src/{agents-v4cW_ZgC.js → agents-CVIn-Utx.js} +19 -22
- package/dist/src/{agents-GiUianme.js → agents-CXknwsFX.js} +37 -40
- package/dist/src/{agents-DETIQHqF.js → agents-DeH4Gu94.js} +21 -28
- package/dist/src/{agents-DYIT-hQy.js → agents-Dy2YpZpa.js} +38 -41
- package/dist/src/{agents-Cao4i7AX.js → agents-aF4-T121.js} +19 -30
- package/dist/src/{aimlapi-DMF6v_vb.js → aimlapi-BAGZDo5G.js} +16 -18
- package/dist/src/{aimlapi-CMJpKK-B.js → aimlapi-BNfTBexL.js} +15 -17
- package/dist/src/{aimlapi-DtSf1ykJ.js → aimlapi-DHRKlBEA.js} +15 -4
- package/dist/src/{aimlapi-DoGLcQW_.cjs → aimlapi-tg0Gkcvr.cjs} +15 -16
- package/dist/src/app/assets/index-BFCZg7hQ.js +439 -0
- package/dist/src/app/assets/index-NCn4eVBv.css +1 -0
- package/dist/src/app/assets/{vendor-charts-CYyo8R8v.js → vendor-charts-CCl15Imd.js} +1 -1
- package/dist/src/app/assets/{vendor-markdown-DSmzq4Jh.js → vendor-markdown-0tekx3KX.js} +1 -1
- package/dist/src/app/index.html +4 -34
- package/dist/src/{audio-DUH4q0Xq.js → audio-BRODU0UK.js} +7 -9
- package/dist/src/{audio-BWjyvHn9.cjs → audio-BWeaWovU.cjs} +6 -7
- package/dist/src/{audio-U580w8jM.js → audio-CHQ4r-RV.js} +6 -5
- package/dist/src/{audio-BrJBFN2b.js → audio-tf_NBjlC.js} +6 -8
- package/dist/src/base-B0tcrnq_.js +193 -0
- package/dist/src/base-B4QJRyFS.js +194 -0
- package/dist/src/base-DBtwl2FR.cjs +222 -0
- package/dist/src/base-fEDN28WM.js +193 -0
- package/dist/src/{blobs-kt8v3UyH.js → blobs-BAU-dXan.js} +9 -12
- package/dist/src/{blobs-C9J2mVgo.js → blobs-Bpg5rH6i.js} +9 -12
- package/dist/src/{blobs-673H0jCl.cjs → blobs-DvS-O6be.cjs} +34 -37
- package/dist/src/blobs-qTYm-1PY.js +236 -0
- package/dist/src/{cache-BLLayYEN.js → cache-8XhNqPKW.js} +64 -67
- package/dist/src/cache-Bbn1Nyrd.cjs +5 -0
- package/dist/src/cache-BwsMSda7.js +6 -0
- package/dist/src/{cache-mIszOnuz.js → cache-CG0SlR1d.js} +64 -66
- package/dist/src/{cache-7xULbvt3.cjs → cache-COish3-W.cjs} +114 -117
- package/dist/src/cache-D3eqDYGU.js +739 -0
- package/dist/src/{chat-Fl6TZJRS.cjs → chat-2K608PeQ.cjs} +20 -21
- package/dist/src/chat-BKm79wib.js +764 -0
- package/dist/src/{chat-XPN9YHhr.js → chat-CM_kyI8B.js} +20 -9
- package/dist/src/{chat-DIywASPG.js → chat-CRWNNq73.js} +49 -49
- package/dist/src/{chat-C8Ei4f87.js → chat-CznLWr_D.js} +49 -49
- package/dist/src/{chat-CgyGj2hC.js → chat-DHMH-N64.js} +20 -22
- package/dist/src/{chat-C4zqjObh.cjs → chat-DaqekjFr.cjs} +69 -69
- package/dist/src/{chat-Cpz3O-Xl.js → chat-DxysjBvt.js} +21 -23
- package/dist/src/{chatkit-Dpxrq4eD.js → chatkit-65VXf5SR.js} +58 -58
- package/dist/src/{chatkit-DIrJX8xk.js → chatkit-Be-Q-a9F.js} +58 -60
- package/dist/src/{chatkit-DEls11hE.js → chatkit-BxFvW8KY.js} +58 -60
- package/dist/src/{chatkit-e25Ziu17.cjs → chatkit-DKyPi1Gs.cjs} +58 -60
- package/dist/src/chunk-DEq-mXcV.js +15 -0
- package/dist/src/chunk-DRamLcfz.js +16 -0
- package/dist/src/{claude-agent-sdk-6-xTaLwM.js → claude-agent-sdk-BLTu0WBO.js} +45 -31
- package/dist/src/{claude-agent-sdk-BzxF6NIJ.cjs → claude-agent-sdk-CJH22shf.cjs} +44 -29
- package/dist/src/{claude-agent-sdk-CmkTnKGH.js → claude-agent-sdk-D6_k9FKA.js} +45 -33
- package/dist/src/{claude-agent-sdk-rXCBLK_o.js → claude-agent-sdk-Dy5lT-Tx.js} +46 -21
- package/dist/src/{cloud-BMbRVJFw.js → cloud-Bc9526yV.js} +32 -12
- package/dist/src/cloud-DmE0EwsY.js +4 -0
- package/dist/src/{cloudflare-ai-CUg4BTcj.js → cloudflare-ai-C9r2sRhw.js} +16 -18
- package/dist/src/{cloudflare-ai-Z9X219gp.js → cloudflare-ai-CWWJCRim.js} +16 -4
- package/dist/src/{cloudflare-ai-BAQ0u_dg.cjs → cloudflare-ai-ClWSdor4.cjs} +16 -17
- package/dist/src/{cloudflare-ai-CobxMTR4.js → cloudflare-ai-ICsOuD-z.js} +17 -19
- package/dist/src/{cloudflare-gateway-C0sgfr_z.cjs → cloudflare-gateway-C2_-KG5o.cjs} +21 -22
- package/dist/src/{cloudflare-gateway-_itGuXry.js → cloudflare-gateway-D6O7AlYb.js} +23 -23
- package/dist/src/{cloudflare-gateway-D2_yi-Fh.js → cloudflare-gateway-D6xFc5pa.js} +21 -25
- package/dist/src/{cloudflare-gateway-Djf3F3_H.js → cloudflare-gateway-pXGHxJ47.js} +26 -14
- package/dist/src/{codex-sdk-ibXwdglL.js → codex-sdk-C6UMlxwV.js} +49 -32
- package/dist/src/{codex-sdk-BASDNkIl.js → codex-sdk-DUwKWezN.js} +49 -30
- package/dist/src/{codex-sdk-dSnGdgIp.js → codex-sdk-GGAw0qbD.js} +49 -32
- package/dist/src/{codex-sdk-wTEpMM_X.cjs → codex-sdk-fAO0c3yA.cjs} +49 -32
- package/dist/src/{cometapi-B01btbfb.js → cometapi-BasUi7-_.js} +17 -19
- package/dist/src/{cometapi-DHUAH6nK.js → cometapi-Bbjp5V4x.js} +16 -4
- package/dist/src/{cometapi-ChAaRjg5.js → cometapi-DkXrKi5z.js} +21 -24
- package/dist/src/{cometapi-JbvOJSCO.cjs → cometapi-vY6aDZgo.cjs} +21 -22
- package/dist/src/{completion-D9_MDlnd.js → completion-6Mx_iXxK.js} +11 -13
- package/dist/src/{completion-BBJ6zmG3.js → completion-C5rtR_9P.js} +11 -13
- package/dist/src/{completion-DDyL3Cb2.cjs → completion-CDOouNzq.cjs} +21 -23
- package/dist/src/completion-C_P3ypkJ.js +120 -0
- package/dist/src/createHash-CTQmL3G2.js +15 -0
- package/dist/src/createHash-CfZSc0b4.cjs +27 -0
- package/dist/src/createHash-Da8fMwqB.js +16 -0
- package/dist/src/createHash-DmPQkvBh.js +15 -0
- package/dist/src/{docker-JAAubMw3.js → docker-5KcG-_86.js} +18 -20
- package/dist/src/{docker-Ckw-j7Rr.cjs → docker-BwsKwxFs.cjs} +18 -19
- package/dist/src/{docker-vnOg96gi.js → docker-CZnqU1XV.js} +18 -7
- package/dist/src/{docker-BuButc4D.js → docker-DzxyDPIj.js} +19 -21
- package/dist/src/entrypoint.js +2 -3
- package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
- package/dist/src/{esm-CYhseqj4.js → esm-C03C-mv3.js} +17 -20
- package/dist/src/{esm-rDtG_2rg.js → esm-CaIwzWR5.js} +18 -21
- package/dist/src/esm-Cd1AjG1D.js +379 -0
- package/dist/src/{esm-BQkx5roy.cjs → esm-CnNt7sI4.cjs} +47 -49
- package/dist/src/eval-17JizQIv.js +15 -0
- package/dist/src/{eval-CYrbG57o.js → eval-DmFyWU7i.js} +49 -55
- package/dist/src/{evalResult-COsVttMA.js → evalResult-CDQiuUuf.js} +16 -12
- package/dist/src/{evalResult-6JaUIStC.js → evalResult-CTG2AHOS.js} +10 -11
- package/dist/src/evalResult-Cqj8pldJ.js +12 -0
- package/dist/src/{evalResult-DlRfu_Rq.cjs → evalResult-Dap2CekP.cjs} +20 -21
- package/dist/src/evalResult-DvcJAWJU.cjs +10 -0
- package/dist/src/evalResult-Hftn-S_i.js +10 -0
- package/dist/src/evaluator-B2CFNt-P.js +36 -0
- package/dist/src/{evaluator-3EJCMTs0.js → evaluator-DPFRbFIL.js} +210 -232
- package/dist/src/{extractor-LSYjrhK0.js → extractor-CFG6bcWJ.js} +23 -38
- package/dist/src/{extractor-DbhlYEeo.cjs → extractor-DX36oYEv.cjs} +37 -64
- package/dist/src/{extractor-Hs7la_19.js → extractor-M67RUtg6.js} +23 -38
- package/dist/src/extractor-YMU_Gvt8.js +374 -0
- package/dist/src/fetch-4M3YRaqL.js +780 -0
- package/dist/src/{fetch-18MuNu9i.js → fetch-60Gzydls.js} +60 -46
- package/dist/src/{fetch-SRsE6Ctl.js → fetch-BMv0O527.js} +41 -35
- package/dist/src/{fetch-ZMn_oemb.cjs → fetch-BxUk8odA.cjs} +268 -279
- package/dist/src/fetch-KV5kNASw.js +5 -0
- package/dist/src/{fileExtensions-ePDqouxn.js → fileExtensions-DnqA1y9x.js} +2 -2
- package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-Ds-foDzt.js} +2 -2
- package/dist/src/fileExtensions-LcDYkU4v.js +85 -0
- package/dist/src/{fileExtensions-DkJYkWUy.cjs → fileExtensions-bYh77CN8.cjs} +27 -28
- package/dist/src/{formatDuration-Doo0xq-z.js → formatDuration-DgBVMN65.js} +2 -2
- package/dist/src/{genaiTracer-Ce19n68P.js → genaiTracer-70Z8BIuV.js} +2 -3
- package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-C1rxGO8Q.js} +2 -3
- package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
- package/dist/src/{genaiTracer-CQlpZkrp.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
- package/dist/src/graders-Bu0H9nXi.js +32 -0
- package/dist/src/{graders-BaMCwIKp.js → graders-CHO8EPM4.js} +385 -417
- package/dist/src/graders-Cfhkvx-e.js +34 -0
- package/dist/src/{graders-QsALpIdy.js → graders-CpdqD9PI.js} +385 -417
- package/dist/src/graders-DClJVpGP.cjs +32 -0
- package/dist/src/{graders-DzUUnUjC.cjs → graders-DOXycdlG.cjs} +721 -753
- package/dist/src/graders-DcnJsrMO.js +32 -0
- package/dist/src/graders-R9rYUM0d.js +13466 -0
- package/dist/src/{image-BiEVdpdP.js → image-BmEZqVmk.js} +57 -18
- package/dist/src/{image-mhAGP07h.js → image-CBBVXWuT.js} +57 -18
- package/dist/src/{image-D10zEe1f.cjs → image-CDLQOcqT.cjs} +6 -7
- package/dist/src/{image-COCWy5dX.js → image-DJEvKveK.js} +6 -5
- package/dist/src/{image-C3BjJUAU.cjs → image-DTedmQPg.cjs} +77 -32
- package/dist/src/{image-DB4sHxdJ.js → image-gvmivTEe.js} +7 -9
- package/dist/src/image-pAX56tPG.js +257 -0
- package/dist/src/{image-BXt_7u0v.js → image-tL5hIOFh.js} +6 -8
- package/dist/src/index.cjs +696 -693
- package/dist/src/index.d.cts +113 -10
- package/dist/src/index.d.ts +113 -6
- package/dist/src/index.js +657 -658
- package/dist/src/{interactiveCheck-DU-MAhp5.js → interactiveCheck-BgLZUIt3.js} +7 -8
- package/dist/src/{invariant-DT20jrBd.js → invariant-BtWWVVhl.js} +2 -2
- package/dist/src/{invariant-1pAf2CD1.js → invariant-Ddh24eXh.js} +2 -2
- package/dist/src/{invariant-CKcJAQ6M.cjs → invariant-kfQ8Bu82.cjs} +7 -8
- package/dist/src/invariant-vgHWClmd.js +25 -0
- package/dist/src/{knowledgeBase-DotRBzUE.js → knowledgeBase-CLJybhnF.js} +19 -34
- package/dist/src/{knowledgeBase-XJQ0Qyez.js → knowledgeBase-CoU-UQBg.js} +17 -41
- package/dist/src/{knowledgeBase-CMvMlLZR.js → knowledgeBase-DjWPVqSb.js} +17 -43
- package/dist/src/{knowledgeBase-Bnb00xKs.cjs → knowledgeBase-wkxuRFhA.cjs} +17 -40
- package/dist/src/{litellm-CHrRmPAe.js → litellm-B9Hysuri.js} +16 -18
- package/dist/src/{litellm-CrLJrPIm.js → litellm-CTfa0hqi.js} +15 -17
- package/dist/src/{litellm-BrnZhMcL.cjs → litellm-NYpQ8RQu.cjs} +15 -16
- package/dist/src/{litellm-BECdjOTx.js → litellm-ePxtr9F1.js} +15 -4
- package/dist/src/{logger-w8Ozp0Td.js → logger-CT3IKMKA.js} +24 -41
- package/dist/src/{logger-BdZ-IqBc.cjs → logger-Cp1GPUjj.cjs} +166 -192
- package/dist/src/logger-DLcq4dWf.js +713 -0
- package/dist/src/{logger-BotXmWKW.js → logger-KkObSCzq.js} +27 -43
- package/dist/src/{luma-ray-C0RkI3lt.cjs → luma-ray-B0GGNRc1.cjs} +20 -21
- package/dist/src/{luma-ray-C-w6EsJm.js → luma-ray-BE2mOt6N.js} +20 -13
- package/dist/src/{luma-ray-BOeX-h0M.js → luma-ray-BW9IRGIc.js} +22 -21
- package/dist/src/{luma-ray-DgKLS0BF.js → luma-ray-Cm1KZBhs.js} +20 -23
- package/dist/src/main.js +1985 -2055
- package/dist/src/{messages-DXV3Qh8_.cjs → messages-1JrJs91T.cjs} +35 -34
- package/dist/src/{messages-D61tPFQo.js → messages-1x9atZmP.js} +25 -24
- package/dist/src/{messages-CDZYGNlS.js → messages-BLbWdsyt.js} +25 -24
- package/dist/src/messages-D8EA0oDc.js +240 -0
- package/dist/src/{meteor-P2rUE-Uz.js → meteor-44VjEACX.js} +3 -4
- package/dist/src/{meteor-SLNTgmXm.js → meteor-D-SotUw9.js} +3 -4
- package/dist/src/{meteor-odmwVbyG.cjs → meteor-DLZZ3osF.cjs} +3 -4
- package/dist/src/{meteor-Dj8cTkU_.js → meteor-DUiCJRC-.js} +3 -4
- package/dist/src/modelslab-C1OLRmVX.js +166 -0
- package/dist/src/modelslab-CqXBy3U8.js +168 -0
- package/dist/src/modelslab-DcOSFwKh.cjs +166 -0
- package/dist/src/modelslab-X5-4LroM.js +166 -0
- package/dist/src/{nova-reel-C2LFfVTf.js → nova-reel-BgS1ZWuK.js} +20 -13
- package/dist/src/{nova-reel-DtCjbD5O.js → nova-reel-D2ZkOSyr.js} +22 -21
- package/dist/src/{nova-reel-D9FXq3Mt.cjs → nova-reel-D9xfaMBs.cjs} +20 -21
- package/dist/src/{nova-reel-Bk5npr2q.js → nova-reel-DihqLeol.js} +20 -23
- package/dist/src/{nova-sonic-BoRSY_U6.cjs → nova-sonic-DVu3mMIy.cjs} +30 -31
- package/dist/src/{nova-sonic-D_qERM-K.js → nova-sonic-DezhVUYT.js} +30 -26
- package/dist/src/{nova-sonic-CgaWLDM1.js → nova-sonic-P-CdUMlV.js} +30 -31
- package/dist/src/{nova-sonic-BXRfQyF-.js → nova-sonic-Q3BOJeig.js} +31 -32
- package/dist/src/{openai-Bigwjgo1.cjs → openai-Cuif0GEt.cjs} +8 -9
- package/dist/src/{openai-Dz3surb_.js → openai-DElQ-fPX.js} +3 -4
- package/dist/src/{openai-CT5fwbve.js → openai-DhbB7eWK.js} +3 -4
- package/dist/src/openai-j-sE2O7r.js +44 -0
- package/dist/src/{openclaw-dHLcXUWZ.js → openclaw-BiSZPL7J.js} +20 -14
- package/dist/src/{openclaw-CpPrXwf6.js → openclaw-Bv1DINsX.js} +20 -27
- package/dist/src/{openclaw-B6XY2kUf.js → openclaw-D1D_ej1z.js} +21 -28
- package/dist/src/{openclaw-DDSfq5fp.cjs → openclaw-DAfWQn-o.cjs} +33 -39
- package/dist/src/opencode-sdk-C7m-wRfI.js +560 -0
- package/dist/src/opencode-sdk-CfaLN8PY.cjs +564 -0
- package/dist/src/opencode-sdk-D95s6SnR.js +562 -0
- package/dist/src/opencode-sdk-DxUPkLT7.js +560 -0
- package/dist/src/{otlpReceiver-DmRb0NBj.js → otlpReceiver--AIRW_S4.js} +53 -51
- package/dist/src/{otlpReceiver-Dg817agV.js → otlpReceiver-Bn5wGB1v.js} +53 -55
- package/dist/src/{otlpReceiver-B6Xo4KZM.cjs → otlpReceiver-Diec4cln.cjs} +53 -55
- package/dist/src/{otlpReceiver-BO0rbDzh.js → otlpReceiver-g3ByGaXs.js} +53 -55
- package/dist/src/{providerRegistry-Xf0qdqGQ.js → providerRegistry-B0RUOLI_.js} +7 -8
- package/dist/src/{providerRegistry-wCWd7sKQ.js → providerRegistry-CD8MEar9.js} +7 -8
- package/dist/src/{providerRegistry-lc7a7utN.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
- package/dist/src/providerRegistry-DM8rZYol.js +45 -0
- package/dist/src/providers-B3HvufyI.js +33246 -0
- package/dist/src/{providers-BiNq_Iyc.js → providers-BKRJTjBz.js} +1743 -1795
- package/dist/src/providers-C1rOSHiR.js +32 -0
- package/dist/src/{providers-BlEhY5mi.js → providers-CFLy1_ji.js} +1750 -1802
- package/dist/src/{providers-BNKVY53V.cjs → providers-CFu-TZl-.cjs} +2111 -2163
- package/dist/src/providers-CxmDwEFf.cjs +31 -0
- package/dist/src/providers-Dodakqr0.js +30 -0
- package/dist/src/providers-GIQ2TcsA.js +30 -0
- package/dist/src/{pythonUtils-r1uBuA0n.js → pythonUtils-C3py6GC1.js} +18 -19
- package/dist/src/{pythonUtils-DZ6EbdY4.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
- package/dist/src/{pythonUtils-vMlk9Qp5.js → pythonUtils-D5nxkQ0P.js} +18 -19
- package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
- package/dist/src/quiverai-C2jVwbH1.js +213 -0
- package/dist/src/quiverai-CI6gYJVI.js +213 -0
- package/dist/src/quiverai-CLkWkyZc.cjs +213 -0
- package/dist/src/quiverai-MHSxbmmZ.js +215 -0
- package/dist/src/{render-CAZvKKkB.js → render-Drod8m7K.js} +4 -5
- package/dist/src/{responses-DLLjADw5.js → responses-BKqJmhhc.js} +34 -27
- package/dist/src/{responses-TsdODUpm.js → responses-CGw0DCzh.js} +34 -27
- package/dist/src/responses-jxdehPkC.js +660 -0
- package/dist/src/{responses-zOtKtnY_.cjs → responses-tD4Bd4dc.cjs} +49 -42
- package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
- package/dist/src/{rubyUtils-Cs35SDYa.js → rubyUtils-BUVePouc.js} +27 -20
- package/dist/src/rubyUtils-BcuGX77l.js +222 -0
- package/dist/src/{rubyUtils-BtjlqyXt.js → rubyUtils-Boc4HZzX.js} +18 -19
- package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
- package/dist/src/{rubyUtils-DCVaJ3mc.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
- package/dist/src/{sagemaker-Du4LIR97.js → sagemaker-BK4Zb993.js} +75 -70
- package/dist/src/{sagemaker-CLdUAv5z.js → sagemaker-BfiWTmvn.js} +77 -77
- package/dist/src/{sagemaker-DwNnEVYt.cjs → sagemaker-CcQHM1jV.cjs} +75 -76
- package/dist/src/{sagemaker-BcgLu0U4.js → sagemaker-D2Q1c-sD.js} +75 -79
- package/dist/src/{scanner-Dyw21Wg_.js → scanner-J8CA3LsV.js} +149 -122
- package/dist/src/server/index.js +5620 -67302
- package/dist/src/{server-CgUQ25qW.cjs → server-B0PPuDw-.cjs} +57 -67
- package/dist/src/server-B1vi21hA.js +7 -0
- package/dist/src/{server-CbMTRQkg.js → server-BC7XJFgr.js} +19 -24
- package/dist/src/server-Cm9Kai_h.cjs +5 -0
- package/dist/src/{server-DWmZLfCy.js → server-DbFphssR.js} +26 -29
- package/dist/src/server-OAs3nBRT.js +229 -0
- package/dist/src/{signal-Bl32q42d.js → signal-BOTbd53Z.js} +9 -11
- package/dist/src/{slack-BtMkB6xP.cjs → slack-BmVAVGaK.cjs} +7 -8
- package/dist/src/{slack-OZYxoVON.js → slack-DCUPTzS2.js} +8 -8
- package/dist/src/{slack-DPqj42Ts.js → slack-DOdy_kyv.js} +7 -8
- package/dist/src/{slack-BfdBx2tO.js → slack-DXMKtA-f.js} +7 -9
- package/dist/src/store-BNmZ1KAz.cjs +5 -0
- package/dist/src/{store-BqwfFEyF.cjs → store-BSc-TF2w.cjs} +44 -45
- package/dist/src/store-BltJg2cd.js +6 -0
- package/dist/src/{store-D4gdn9ih.js → store-D1tv90v3.js} +34 -35
- package/dist/src/{store-2ocbYY9D.js → store-DQLEjuEO.js} +40 -36
- package/dist/src/store-Ub2vaGJ1.js +228 -0
- package/dist/src/{tables-D-NSwNIb.js → tables-5EvT_Bwn.js} +23 -23
- package/dist/src/{tables-B9E1kRp-.cjs → tables-C7K-XKWp.cjs} +93 -93
- package/dist/src/{tables-C7TT2XVn.js → tables-D36WTqKX.js} +25 -25
- package/dist/src/tables-xKANLRBD.js +288 -0
- package/dist/src/telemetry-5BCRNBbe.cjs +5 -0
- package/dist/src/{telemetry-DZ_7PaVq.js → telemetry-C15ziL8u.js} +17 -14
- package/dist/src/{telemetry-BXyVqyAg.js → telemetry-C2YDkUQH.js} +11 -13
- package/dist/src/{telemetry-D0_yFdtU.cjs → telemetry-CbrnxHp_.cjs} +21 -24
- package/dist/src/telemetry-D4W5hboe.js +7 -0
- package/dist/src/telemetry-DMb2Mpfm.js +171 -0
- package/dist/src/{text-Dm78AVGG.js → text-B_UCRPp2.js} +2 -2
- package/dist/src/{text-DF2hMKdg.cjs → text-CW1cyrwj.cjs} +12 -13
- package/dist/src/{text-DgMr_tiM.js → text-Db-Wt2u2.js} +2 -2
- package/dist/src/text-TIv0QYnd.js +22 -0
- package/dist/src/{tokenUsageUtils-FZd5O_4A.js → tokenUsageUtils-BDGe-iyI.js} +2 -2
- package/dist/src/{tokenUsageUtils-DmZSD2eU.js → tokenUsageUtils-DflFMjS0.js} +2 -2
- package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
- package/dist/src/{tokenUsageUtils-CXhxVj72.cjs → tokenUsageUtils-bVa1ga6f.cjs} +32 -33
- package/dist/src/{transcription-FNIz3YOe.cjs → transcription-CL78qbOU.cjs} +14 -15
- package/dist/src/{transcription-C-M81iDA.js → transcription-DAtxHhAM.js} +14 -7
- package/dist/src/{transcription-CYuY5sFO.js → transcription-LNZTNUUL.js} +14 -16
- package/dist/src/{transcription-Ch7S-LWw.js → transcription-QHh3AH6Z.js} +15 -17
- package/dist/src/{transform-CoP2bJ7P.js → transform-Cgi24fJ7.js} +94 -66
- package/dist/src/{transform-Kd6u-oNm.cjs → transform-CzK1Q0zl.cjs} +24 -26
- package/dist/src/{transform-D8dILpfZ.js → transform-DECvGmzp.js} +15 -13
- package/dist/src/{transform-DMaxQwDx.js → transform-DGLazrMm.js} +94 -66
- package/dist/src/transform-DGxXocjk.js +1506 -0
- package/dist/src/{transform-ivxEY4f7.cjs → transform-DOcQeLld.cjs} +234 -206
- package/dist/src/transform-DTGDnAzW.js +6 -0
- package/dist/src/{transform-CqTFr7KR.js → transform-DilY9wbS.js} +10 -12
- package/dist/src/transform-aa6tmVpZ.js +216 -0
- package/dist/src/transform-m3qNw4KP.cjs +5 -0
- package/dist/src/{transformersAvailability-DEU2naS1.js → transformersAvailability-CEVM2GNQ.js} +2 -2
- package/dist/src/{transformersAvailability-Bkep3ka7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
- package/dist/src/{transformersAvailability-DwmezkVe.js → transformersAvailability-D6c6ROpT.js} +2 -2
- package/dist/src/{types-t52w-XsS.js → types-CH3Ge2sE.js} +103 -92
- package/dist/src/{types-DMVjYLpx.js → types-CLKiCBW3.js} +98 -91
- package/dist/src/types-CN_TZ2GJ.js +3260 -0
- package/dist/src/{types-BIfttHrT.cjs → types-LJ0r3wbR.cjs} +573 -566
- package/dist/src/util-5cB-L7U3.js +1430 -0
- package/dist/src/util-6-GqIvzS.js +599 -0
- package/dist/src/{util-vjscpUzy.js → util-B7T3SiBS.js} +5 -6
- package/dist/src/{util-Cl0zfT3V.js → util-Betm42rL.js} +44 -17
- package/dist/src/{util-CUEt0Vum.js → util-C-PPYSMq.js} +44 -17
- package/dist/src/{util-DkFTvieG.cjs → util-CchiqXh_.cjs} +35 -36
- package/dist/src/{util-mJ58qbbw.js → util-DaWTWKBK.js} +5 -6
- package/dist/src/{util-C08Kns6-.cjs → util-Db0a0AFH.cjs} +89 -62
- package/dist/src/{util-DiCePfDu.js → util-Dlz_Wvgm.js} +102 -53
- package/dist/src/{util-BSh4a_Q8.js → util-YT5HPZaS.js} +102 -53
- package/dist/src/{util-DUYOvxAy.cjs → util-Yz-1aEhW.cjs} +274 -219
- package/dist/src/util-ZZH-3QZz.js +293 -0
- package/dist/src/{utils-DFaZa6Rf.cjs → utils-Cz9qXqII.cjs} +32 -35
- package/dist/src/{utils-CVzb4YiI.js → utils-XiOAgly5.js} +4 -7
- package/dist/src/utils-dLokC-eR.js +94 -0
- package/dist/src/{utils-JaY9veb5.js → utils-f2-Moju7.js} +4 -7
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +59 -53
- package/dist/src/app/assets/index-BOgkICuY.css +0 -1
- package/dist/src/app/assets/index-CSgqn_Vd.js +0 -428
- package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
- package/dist/src/base-BaXmtXYp.js +0 -107
- package/dist/src/base-Dtp8b4_N.js +0 -106
- package/dist/src/base-f71xxWai.cjs +0 -111
- package/dist/src/cache-BUPcq0Ad.js +0 -6
- package/dist/src/cache-CVfRb-HD.cjs +0 -6
- package/dist/src/cache-O4EuX2JV.js +0 -8
- package/dist/src/chunk-DHDDz29n.js +0 -22
- package/dist/src/chunk-FhC4c-0y.js +0 -21
- package/dist/src/cloud-CZ4hytdm.js +0 -5
- package/dist/src/eval-CKHWqG9f.js +0 -16
- package/dist/src/evalResult-CxTP-LMm.cjs +0 -11
- package/dist/src/evalResult-CzLURDcP.js +0 -13
- package/dist/src/evalResult-DyttNQ_G.js +0 -11
- package/dist/src/evaluator-0PvfeBYh.js +0 -38
- package/dist/src/fetch-Bi0o-fdp.js +0 -4
- package/dist/src/fetch-CMptBDVg.cjs +0 -4
- package/dist/src/fetch-DAZkv3gV.js +0 -6
- package/dist/src/graders-BCytzXrb.js +0 -34
- package/dist/src/graders-CGZQShfJ.cjs +0 -33
- package/dist/src/graders-spkuVC-E.js +0 -36
- package/dist/src/opencode-sdk-CImWVqy9.js +0 -382
- package/dist/src/opencode-sdk-CuCztr4P.js +0 -380
- package/dist/src/opencode-sdk-DhcfRbBH.js +0 -376
- package/dist/src/opencode-sdk-mqF-Oj3f.cjs +0 -383
- package/dist/src/providers-BMZZmPBJ.cjs +0 -32
- package/dist/src/providers-CQQrNaJk.js +0 -32
- package/dist/src/providers-Ck8HyrC-.js +0 -34
- package/dist/src/quiverai-BNfIwKCO.cjs +0 -54
- package/dist/src/quiverai-BQigKdIH.js +0 -57
- package/dist/src/quiverai-Bfy2WnE2.js +0 -55
- package/dist/src/quiverai-CedIP0PJ.js +0 -43
- package/dist/src/rubyUtils-D7--T12C.js +0 -6
- package/dist/src/rubyUtils-DRRiMFV2.js +0 -5
- package/dist/src/rubyUtils-vb8OYFC-.cjs +0 -5
- package/dist/src/server-BUbS0Qfh.js +0 -6
- package/dist/src/server-XpGXFHkS.cjs +0 -6
- package/dist/src/server-gfOx5Zrk.js +0 -8
- package/dist/src/store-5u2yriTV.js +0 -7
- package/dist/src/store-D_lq_8oQ.js +0 -6
- package/dist/src/store-m5KT6Ly7.cjs +0 -6
- package/dist/src/telemetry-5RHFoCJh.js +0 -6
- package/dist/src/telemetry-Do8wMnA-.js +0 -8
- package/dist/src/telemetry-LojxPoFq.cjs +0 -6
- package/dist/src/transform-8eGmaH-7.js +0 -7
- package/dist/src/transform-BRVvWaG4.cjs +0 -6
- package/dist/src/transform-GybT0X0u.js +0 -8
- package/dist/src/transformersAvailability-DkAWaK5B.js +0 -35
|
@@ -1,5 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { i as logger } from "./logger-DLcq4dWf.js";
|
|
2
|
+
import "./fetch-4M3YRaqL.js";
|
|
3
|
+
import { t as invariant } from "./invariant-vgHWClmd.js";
|
|
4
|
+
import "./esm-CaIwzWR5.js";
|
|
5
|
+
import "./types-CN_TZ2GJ.js";
|
|
6
|
+
import "./cache-D3eqDYGU.js";
|
|
7
|
+
import "./genaiTracer-70Z8BIuV.js";
|
|
8
|
+
import "./pythonUtils-D6fwaDSg.js";
|
|
9
|
+
import "./util-5cB-L7U3.js";
|
|
10
|
+
import { t as OpenAiChatCompletionProvider } from "./chat-BKm79wib.js";
|
|
11
|
+
import "./transform-DGxXocjk.js";
|
|
12
|
+
import "./openai-j-sE2O7r.js";
|
|
13
|
+
import "./util-6-GqIvzS.js";
|
|
3
14
|
//#region src/providers/hyperbolic/chat.ts
|
|
4
15
|
const HYPERBOLIC_CHAT_MODELS = [
|
|
5
16
|
{
|
|
@@ -188,7 +199,7 @@ function calculateHyperbolicCost(modelName, config, promptTokens, completionToke
|
|
|
188
199
|
const outputCost = config.cost ?? model.cost.output;
|
|
189
200
|
const inputCostTotal = inputCost * promptTokens;
|
|
190
201
|
const outputCostTotal = outputCost * completionTokens;
|
|
191
|
-
|
|
202
|
+
logger.debug(`Hyperbolic cost calculation for ${modelName}: promptTokens=${promptTokens}, completionTokens=${completionTokens}, reasoningTokens=${reasoningTokens || "N/A"}, inputCost=${inputCostTotal}, outputCost=${outputCostTotal}`);
|
|
192
203
|
return inputCostTotal + outputCostTotal;
|
|
193
204
|
}
|
|
194
205
|
var HyperbolicProvider = class extends OpenAiChatCompletionProvider {
|
|
@@ -245,11 +256,11 @@ var HyperbolicProvider = class extends OpenAiChatCompletionProvider {
|
|
|
245
256
|
acceptedPrediction: acceptedPredictions,
|
|
246
257
|
rejectedPrediction: rejectedPredictions
|
|
247
258
|
};
|
|
248
|
-
|
|
259
|
+
logger.debug(`Hyperbolic reasoning token details for ${this.modelName}: reasoning=${reasoningTokens}, accepted=${acceptedPredictions}, rejected=${rejectedPredictions}`);
|
|
249
260
|
}
|
|
250
261
|
}
|
|
251
262
|
} catch (err) {
|
|
252
|
-
|
|
263
|
+
logger.error(`Failed to parse raw response JSON: ${err}`);
|
|
253
264
|
}
|
|
254
265
|
else if (typeof response.raw === "object" && response.raw !== null) {
|
|
255
266
|
const rawData = response.raw;
|
|
@@ -263,7 +274,7 @@ var HyperbolicProvider = class extends OpenAiChatCompletionProvider {
|
|
|
263
274
|
acceptedPrediction: acceptedPredictions,
|
|
264
275
|
rejectedPrediction: rejectedPredictions
|
|
265
276
|
};
|
|
266
|
-
|
|
277
|
+
logger.debug(`Hyperbolic reasoning token details for ${this.modelName}: reasoning=${reasoningTokens}, accepted=${acceptedPredictions}, rejected=${rejectedPredictions}`);
|
|
267
278
|
}
|
|
268
279
|
}
|
|
269
280
|
}
|
|
@@ -272,7 +283,7 @@ var HyperbolicProvider = class extends OpenAiChatCompletionProvider {
|
|
|
272
283
|
response.cost = calculateHyperbolicCost(this.modelName, this.config || {}, response.tokenUsage.prompt, response.tokenUsage.completion, reasoningTokens);
|
|
273
284
|
}
|
|
274
285
|
} catch (err) {
|
|
275
|
-
|
|
286
|
+
logger.error(`Error processing Hyperbolic response: ${err}`);
|
|
276
287
|
}
|
|
277
288
|
return response;
|
|
278
289
|
}
|
|
@@ -282,7 +293,7 @@ function createHyperbolicProvider(providerPath, options = {}) {
|
|
|
282
293
|
invariant(modelName, "Model name is required");
|
|
283
294
|
return new HyperbolicProvider(modelName, options);
|
|
284
295
|
}
|
|
285
|
-
|
|
286
296
|
//#endregion
|
|
287
297
|
export { createHyperbolicProvider };
|
|
288
|
-
|
|
298
|
+
|
|
299
|
+
//# sourceMappingURL=chat-CM_kyI8B.js.map
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { C as getEnvString, O as
|
|
3
|
-
import {
|
|
4
|
-
import { a as fetchWithCache } from "./cache-
|
|
5
|
-
import { i as isJavascriptFile } from "./fileExtensions-
|
|
6
|
-
import { g as maybeLoadToolsFromExternalFile, h as maybeLoadResponseFormatFromExternalFile, m as maybeLoadFromExternalFileWithVars, x as renderVarsInObject } from "./util-
|
|
7
|
-
import { r as importModule } from "./esm-
|
|
8
|
-
import { n as withGenAISpan } from "./genaiTracer-
|
|
9
|
-
import { C as applyQueryParams, D as renderAuthVars, E as getOAuthTokenWithExpiry,
|
|
10
|
-
import { t as OpenAiGenericProvider } from "./openai-
|
|
11
|
-
import { a as calculateOpenAICost, c as getTokenUsage, t as OPENAI_CHAT_MODELS } from "./util-
|
|
2
|
+
import { C as getEnvString, O as state, S as getEnvInt, b as getEnvBool, o as logger, x as getEnvFloat } from "./logger-KkObSCzq.js";
|
|
3
|
+
import { S as transformTools, f as REQUEST_TIMEOUT_MS, x as transformToolChoice, y as parseChatPrompt } from "./fetch-BMv0O527.js";
|
|
4
|
+
import { a as fetchWithCache } from "./cache-CG0SlR1d.js";
|
|
5
|
+
import { i as isJavascriptFile } from "./fileExtensions-Ds-foDzt.js";
|
|
6
|
+
import { g as maybeLoadToolsFromExternalFile, h as maybeLoadResponseFormatFromExternalFile, m as maybeLoadFromExternalFileWithVars, x as renderVarsInObject } from "./util-YT5HPZaS.js";
|
|
7
|
+
import { r as importModule } from "./esm-C03C-mv3.js";
|
|
8
|
+
import { n as withGenAISpan } from "./genaiTracer-C1rxGO8Q.js";
|
|
9
|
+
import { C as applyQueryParams, D as renderAuthVars, E as getOAuthTokenWithExpiry, T as getAuthQueryParams, i as transformMCPToolsToOpenAi, w as getAuthHeaders } from "./transform-Cgi24fJ7.js";
|
|
10
|
+
import { t as OpenAiGenericProvider } from "./openai-DhbB7eWK.js";
|
|
11
|
+
import { a as calculateOpenAICost, c as getTokenUsage, t as OPENAI_CHAT_MODELS } from "./util-C-PPYSMq.js";
|
|
12
12
|
import path from "path";
|
|
13
13
|
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
14
|
-
|
|
15
14
|
//#region src/util/finishReason.ts
|
|
16
15
|
/**
|
|
17
16
|
* Mapping of provider-specific finish/stop reasons to standardized OpenAI-compatible values.
|
|
@@ -80,7 +79,6 @@ function normalizeFinishReason(raw) {
|
|
|
80
79
|
const key = trimmed.toLowerCase();
|
|
81
80
|
return FINISH_REASON_MAP[key] ?? key;
|
|
82
81
|
}
|
|
83
|
-
|
|
84
82
|
//#endregion
|
|
85
83
|
//#region src/providers/mcp/client.ts
|
|
86
84
|
/**
|
|
@@ -129,7 +127,7 @@ var MCPClient = class {
|
|
|
129
127
|
if (!this.config.enabled) return;
|
|
130
128
|
const servers = this.config.servers || (this.config.server ? [this.config.server] : []);
|
|
131
129
|
for (const server of servers) {
|
|
132
|
-
|
|
130
|
+
logger.info(`connecting to server ${server.name || server.url || server.path || "default"}`);
|
|
133
131
|
await this.connectToServer(server);
|
|
134
132
|
}
|
|
135
133
|
}
|
|
@@ -168,7 +166,7 @@ var MCPClient = class {
|
|
|
168
166
|
let authHeaders = {};
|
|
169
167
|
if (renderedServer.auth?.type === "oauth") {
|
|
170
168
|
const oauthAuth = renderedServer.auth;
|
|
171
|
-
|
|
169
|
+
logger.debug("[MCP] Fetching OAuth token");
|
|
172
170
|
const { accessToken, expiresAt } = await getOAuthTokenWithExpiry(oauthAuth, server.url);
|
|
173
171
|
authHeaders = { Authorization: `Bearer ${accessToken}` };
|
|
174
172
|
this.oauthConfigs.set(serverKey, {
|
|
@@ -191,18 +189,18 @@ var MCPClient = class {
|
|
|
191
189
|
const { StreamableHTTPClientTransport } = await import("@modelcontextprotocol/sdk/client/streamableHttp.js");
|
|
192
190
|
transport = new StreamableHTTPClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
|
|
193
191
|
await client.connect(transport, requestOptions);
|
|
194
|
-
|
|
192
|
+
logger.debug("Connected using Streamable HTTP transport");
|
|
195
193
|
} catch (error) {
|
|
196
|
-
|
|
194
|
+
logger.debug(`Failed to connect to MCP server with Streamable HTTP transport ${serverKey}: ${error}`);
|
|
197
195
|
const { SSEClientTransport } = await import("@modelcontextprotocol/sdk/client/sse.js");
|
|
198
196
|
transport = new SSEClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
|
|
199
197
|
await client.connect(transport, requestOptions);
|
|
200
|
-
|
|
198
|
+
logger.debug("Connected using SSE transport");
|
|
201
199
|
}
|
|
202
200
|
} else throw new Error("Either command+args or path or url must be specified for MCP server");
|
|
203
201
|
if (this.config.pingOnConnect) try {
|
|
204
202
|
await client.ping(requestOptions);
|
|
205
|
-
|
|
203
|
+
logger.debug(`MCP server ${serverKey} ping successful`);
|
|
206
204
|
} catch (pingError) {
|
|
207
205
|
const pingErrorMessage = pingError instanceof Error ? pingError.message : String(pingError);
|
|
208
206
|
throw new Error(`MCP server ${serverKey} ping failed: ${pingErrorMessage}`);
|
|
@@ -221,7 +219,7 @@ var MCPClient = class {
|
|
|
221
219
|
if (this.isVerboseEnabled) console.log(`Connected to MCP server ${serverKey} with tools:`, filteredTools.map((tool) => tool.name));
|
|
222
220
|
} catch (error) {
|
|
223
221
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
224
|
-
if (this.isDebugEnabled)
|
|
222
|
+
if (this.isDebugEnabled) logger.error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
|
|
225
223
|
throw new Error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
|
|
226
224
|
}
|
|
227
225
|
}
|
|
@@ -237,23 +235,23 @@ var MCPClient = class {
|
|
|
237
235
|
if (!oauthConfig) return;
|
|
238
236
|
const now = Date.now();
|
|
239
237
|
const expiresAt = this.tokenExpiresAt.get(serverKey);
|
|
240
|
-
if (expiresAt && now +
|
|
241
|
-
|
|
238
|
+
if (expiresAt && now + 6e4 < expiresAt) {
|
|
239
|
+
logger.debug(`[MCP] Token for ${serverKey} still valid, no refresh needed`);
|
|
242
240
|
return;
|
|
243
241
|
}
|
|
244
242
|
const existingRefresh = this.tokenRefreshPromise.get(serverKey);
|
|
245
243
|
if (existingRefresh) {
|
|
246
|
-
|
|
244
|
+
logger.debug(`[MCP] Token refresh already in progress for ${serverKey}, waiting...`);
|
|
247
245
|
try {
|
|
248
246
|
await existingRefresh;
|
|
249
247
|
const newExpiresAt = this.tokenExpiresAt.get(serverKey);
|
|
250
|
-
if (newExpiresAt && Date.now() +
|
|
251
|
-
|
|
248
|
+
if (newExpiresAt && Date.now() + 6e4 < newExpiresAt) return;
|
|
249
|
+
logger.debug(`[MCP] Token expired while waiting for ${serverKey}, refreshing again...`);
|
|
252
250
|
} catch {
|
|
253
|
-
|
|
251
|
+
logger.debug(`[MCP] Previous token refresh failed for ${serverKey}, retrying...`);
|
|
254
252
|
}
|
|
255
253
|
}
|
|
256
|
-
|
|
254
|
+
logger.debug(`[MCP] Proactively refreshing OAuth token for server ${serverKey}`);
|
|
257
255
|
const refreshPromise = this.performTokenRefresh(serverKey, oauthConfig);
|
|
258
256
|
this.tokenRefreshPromise.set(serverKey, refreshPromise);
|
|
259
257
|
try {
|
|
@@ -273,7 +271,7 @@ var MCPClient = class {
|
|
|
273
271
|
this.clients.delete(serverKey);
|
|
274
272
|
this.transports.delete(serverKey);
|
|
275
273
|
await this.connectToServer(oauthConfig.serverConfig);
|
|
276
|
-
|
|
274
|
+
logger.debug(`[MCP] Successfully refreshed OAuth token for server ${serverKey}`);
|
|
277
275
|
}
|
|
278
276
|
async callTool(name, args) {
|
|
279
277
|
const requestOptions = getEffectiveRequestOptions(this.config);
|
|
@@ -301,7 +299,7 @@ var MCPClient = class {
|
|
|
301
299
|
const isAuthError = errorMessage.includes("401") || errorMessage.includes("Unauthorized") || errorMessage.includes("authorization_endpoint") || errorMessage.includes("token");
|
|
302
300
|
const oauthConfig = this.oauthConfigs.get(serverKey);
|
|
303
301
|
if (!retried && isAuthError && oauthConfig) {
|
|
304
|
-
|
|
302
|
+
logger.debug(`[MCP] Auth error for ${serverKey}, attempting reactive token refresh`);
|
|
305
303
|
retried = true;
|
|
306
304
|
try {
|
|
307
305
|
await this.performTokenRefresh(serverKey, oauthConfig);
|
|
@@ -312,10 +310,10 @@ var MCPClient = class {
|
|
|
312
310
|
}
|
|
313
311
|
} catch (refreshError) {
|
|
314
312
|
const refreshErrorMsg = refreshError instanceof Error ? refreshError.message : String(refreshError);
|
|
315
|
-
|
|
313
|
+
logger.error(`[MCP] Token refresh failed for ${serverKey}: ${refreshErrorMsg}`);
|
|
316
314
|
}
|
|
317
315
|
}
|
|
318
|
-
if (this.isDebugEnabled)
|
|
316
|
+
if (this.isDebugEnabled) logger.error(`Error calling tool ${name}: ${errorMessage}`);
|
|
319
317
|
return {
|
|
320
318
|
content: "",
|
|
321
319
|
error: errorMessage
|
|
@@ -330,7 +328,7 @@ var MCPClient = class {
|
|
|
330
328
|
if (transport) await transport.close();
|
|
331
329
|
await client.close();
|
|
332
330
|
} catch (error) {
|
|
333
|
-
if (this.isDebugEnabled)
|
|
331
|
+
if (this.isDebugEnabled) logger.error(`Error during cleanup: ${error instanceof Error ? error.message : String(error)}`);
|
|
334
332
|
}
|
|
335
333
|
this.clients.clear();
|
|
336
334
|
this.transports.clear();
|
|
@@ -340,7 +338,6 @@ var MCPClient = class {
|
|
|
340
338
|
this.tokenRefreshPromise.clear();
|
|
341
339
|
}
|
|
342
340
|
};
|
|
343
|
-
|
|
344
341
|
//#endregion
|
|
345
342
|
//#region src/providers/openai/chat.ts
|
|
346
343
|
var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
@@ -351,7 +348,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
351
348
|
initializationPromise = null;
|
|
352
349
|
loadedFunctionCallbacks = {};
|
|
353
350
|
constructor(modelName, options = {}) {
|
|
354
|
-
if (!OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelName))
|
|
351
|
+
if (!OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelName)) logger.debug(`Using unknown chat model: ${modelName}`);
|
|
355
352
|
super(modelName, options);
|
|
356
353
|
this.config = options.config || {};
|
|
357
354
|
if (this.config.mcp?.enabled) this.initializationPromise = this.initializeMCP();
|
|
@@ -380,8 +377,8 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
380
377
|
if (splits[0] && isJavascriptFile(splits[0])) [filePath, functionName] = splits;
|
|
381
378
|
}
|
|
382
379
|
try {
|
|
383
|
-
const resolvedPath = path.resolve(
|
|
384
|
-
|
|
380
|
+
const resolvedPath = path.resolve(state.basePath || "", filePath);
|
|
381
|
+
logger.debug(`Loading function from ${resolvedPath}${functionName ? `:${functionName}` : ""}`);
|
|
385
382
|
const requiredModule = await importModule(resolvedPath, functionName);
|
|
386
383
|
if (typeof requiredModule === "function") return requiredModule;
|
|
387
384
|
else if (requiredModule && typeof requiredModule === "object" && functionName && functionName in requiredModule) {
|
|
@@ -412,18 +409,18 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
412
409
|
}
|
|
413
410
|
}
|
|
414
411
|
if (!callback) throw new Error(`No callback found for function '${functionName}'`);
|
|
415
|
-
|
|
412
|
+
logger.debug(`Executing function '${functionName}' with args: ${args}`);
|
|
416
413
|
const result = await callback(args);
|
|
417
414
|
if (result === void 0 || result === null) return "";
|
|
418
415
|
else if (typeof result === "object") try {
|
|
419
416
|
return JSON.stringify(result);
|
|
420
417
|
} catch (error) {
|
|
421
|
-
|
|
418
|
+
logger.warn(`Error stringifying result from function '${functionName}': ${error}`);
|
|
422
419
|
return String(result);
|
|
423
420
|
}
|
|
424
421
|
else return String(result);
|
|
425
422
|
} catch (error) {
|
|
426
|
-
|
|
423
|
+
logger.error(`Error executing function '${functionName}': ${error.message || String(error)}`);
|
|
427
424
|
throw error;
|
|
428
425
|
}
|
|
429
426
|
}
|
|
@@ -583,7 +580,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
583
580
|
};
|
|
584
581
|
}
|
|
585
582
|
} catch (err) {
|
|
586
|
-
|
|
583
|
+
logger.error(`API call error: ${String(err)}`);
|
|
587
584
|
await deleteFromCache?.();
|
|
588
585
|
return {
|
|
589
586
|
error: `API call error: ${String(err)}`,
|
|
@@ -639,7 +636,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
639
636
|
if (config.response_format?.type === "json_schema" && typeof output === "string") try {
|
|
640
637
|
output = JSON.parse(output);
|
|
641
638
|
} catch (error) {
|
|
642
|
-
|
|
639
|
+
logger.error(`Failed to parse JSON output: ${error}`);
|
|
643
640
|
}
|
|
644
641
|
if (reasoning && (this.config.showThinking ?? true)) output = `Thinking: ${reasoning}\n\n${output}`;
|
|
645
642
|
const functionCalls = message.function_call ? [message.function_call] : message.tool_calls;
|
|
@@ -676,7 +673,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
676
673
|
hasSuccessfulCallback = true;
|
|
677
674
|
continue;
|
|
678
675
|
} catch (error) {
|
|
679
|
-
|
|
676
|
+
logger.debug(`MCP tool execution failed for ${functionName}: ${error}`);
|
|
680
677
|
results.push(`MCP Tool Error (${functionName}): ${error}`);
|
|
681
678
|
hasSuccessfulCallback = true;
|
|
682
679
|
continue;
|
|
@@ -687,7 +684,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
687
684
|
results.push(functionResult);
|
|
688
685
|
hasSuccessfulCallback = true;
|
|
689
686
|
} catch (error) {
|
|
690
|
-
|
|
687
|
+
logger.debug(`Function callback failed for ${functionName} with error ${error}, falling back to original output`);
|
|
691
688
|
hasSuccessfulCallback = false;
|
|
692
689
|
break;
|
|
693
690
|
}
|
|
@@ -740,11 +737,14 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
740
737
|
...finishReason && { finishReason },
|
|
741
738
|
cost: calculateOpenAICost(this.modelName, config, data.usage?.prompt_tokens, data.usage?.completion_tokens, data.usage?.audio_prompt_tokens, data.usage?.audio_completion_tokens),
|
|
742
739
|
guardrails: { flagged: contentFiltered },
|
|
743
|
-
metadata: {
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
740
|
+
metadata: {
|
|
741
|
+
http: {
|
|
742
|
+
status,
|
|
743
|
+
statusText,
|
|
744
|
+
headers: responseHeaders ?? {}
|
|
745
|
+
},
|
|
746
|
+
...data.choices.length > 1 && { choices: data.choices }
|
|
747
|
+
}
|
|
748
748
|
};
|
|
749
749
|
} catch (err) {
|
|
750
750
|
await deleteFromCache?.();
|
|
@@ -759,7 +759,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
759
759
|
}
|
|
760
760
|
}
|
|
761
761
|
};
|
|
762
|
-
|
|
763
762
|
//#endregion
|
|
764
763
|
export { normalizeFinishReason as i, MCPClient as n, FINISH_REASON_MAP as r, OpenAiChatCompletionProvider as t };
|
|
765
|
-
|
|
764
|
+
|
|
765
|
+
//# sourceMappingURL=chat-CRWNNq73.js.map
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { _ as getEnvBool, b as getEnvString, i as
|
|
2
|
-
import { r as importModule } from "./esm-
|
|
3
|
-
import { i as isJavascriptFile } from "./fileExtensions-
|
|
4
|
-
import { d as maybeLoadToolsFromExternalFile, g as renderVarsInObject, l as maybeLoadFromExternalFileWithVars, u as maybeLoadResponseFormatFromExternalFile } from "./util-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { n as withGenAISpan } from "./genaiTracer-
|
|
8
|
-
import { C as applyQueryParams, D as renderAuthVars, E as getOAuthTokenWithExpiry,
|
|
9
|
-
import { t as OpenAiGenericProvider } from "./openai-
|
|
10
|
-
import { a as calculateOpenAICost, c as getTokenUsage, t as OPENAI_CHAT_MODELS } from "./util-
|
|
1
|
+
import { _ as getEnvBool, b as getEnvString, i as logger, v as getEnvFloat, w as state, y as getEnvInt } from "./logger-CT3IKMKA.js";
|
|
2
|
+
import { r as importModule } from "./esm-Cd1AjG1D.js";
|
|
3
|
+
import { i as isJavascriptFile } from "./fileExtensions-DnqA1y9x.js";
|
|
4
|
+
import { d as maybeLoadToolsFromExternalFile, g as renderVarsInObject, l as maybeLoadFromExternalFileWithVars, u as maybeLoadResponseFormatFromExternalFile } from "./util-Dlz_Wvgm.js";
|
|
5
|
+
import { C as transformTools, S as transformToolChoice, b as parseChatPrompt, p as REQUEST_TIMEOUT_MS } from "./fetch-60Gzydls.js";
|
|
6
|
+
import { r as fetchWithCache } from "./cache-8XhNqPKW.js";
|
|
7
|
+
import { n as withGenAISpan } from "./genaiTracer-D3fD9dNV.js";
|
|
8
|
+
import { C as applyQueryParams, D as renderAuthVars, E as getOAuthTokenWithExpiry, T as getAuthQueryParams, i as transformMCPToolsToOpenAi, w as getAuthHeaders } from "./transform-DGLazrMm.js";
|
|
9
|
+
import { t as OpenAiGenericProvider } from "./openai-DElQ-fPX.js";
|
|
10
|
+
import { a as calculateOpenAICost, c as getTokenUsage, t as OPENAI_CHAT_MODELS } from "./util-Betm42rL.js";
|
|
11
11
|
import path from "path";
|
|
12
12
|
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
13
|
-
|
|
14
13
|
//#region src/util/finishReason.ts
|
|
15
14
|
/**
|
|
16
15
|
* Mapping of provider-specific finish/stop reasons to standardized OpenAI-compatible values.
|
|
@@ -79,7 +78,6 @@ function normalizeFinishReason(raw) {
|
|
|
79
78
|
const key = trimmed.toLowerCase();
|
|
80
79
|
return FINISH_REASON_MAP[key] ?? key;
|
|
81
80
|
}
|
|
82
|
-
|
|
83
81
|
//#endregion
|
|
84
82
|
//#region src/providers/mcp/client.ts
|
|
85
83
|
/**
|
|
@@ -128,7 +126,7 @@ var MCPClient = class {
|
|
|
128
126
|
if (!this.config.enabled) return;
|
|
129
127
|
const servers = this.config.servers || (this.config.server ? [this.config.server] : []);
|
|
130
128
|
for (const server of servers) {
|
|
131
|
-
|
|
129
|
+
logger.info(`connecting to server ${server.name || server.url || server.path || "default"}`);
|
|
132
130
|
await this.connectToServer(server);
|
|
133
131
|
}
|
|
134
132
|
}
|
|
@@ -167,7 +165,7 @@ var MCPClient = class {
|
|
|
167
165
|
let authHeaders = {};
|
|
168
166
|
if (renderedServer.auth?.type === "oauth") {
|
|
169
167
|
const oauthAuth = renderedServer.auth;
|
|
170
|
-
|
|
168
|
+
logger.debug("[MCP] Fetching OAuth token");
|
|
171
169
|
const { accessToken, expiresAt } = await getOAuthTokenWithExpiry(oauthAuth, server.url);
|
|
172
170
|
authHeaders = { Authorization: `Bearer ${accessToken}` };
|
|
173
171
|
this.oauthConfigs.set(serverKey, {
|
|
@@ -190,18 +188,18 @@ var MCPClient = class {
|
|
|
190
188
|
const { StreamableHTTPClientTransport } = await import("@modelcontextprotocol/sdk/client/streamableHttp.js");
|
|
191
189
|
transport = new StreamableHTTPClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
|
|
192
190
|
await client.connect(transport, requestOptions);
|
|
193
|
-
|
|
191
|
+
logger.debug("Connected using Streamable HTTP transport");
|
|
194
192
|
} catch (error) {
|
|
195
|
-
|
|
193
|
+
logger.debug(`Failed to connect to MCP server with Streamable HTTP transport ${serverKey}: ${error}`);
|
|
196
194
|
const { SSEClientTransport } = await import("@modelcontextprotocol/sdk/client/sse.js");
|
|
197
195
|
transport = new SSEClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
|
|
198
196
|
await client.connect(transport, requestOptions);
|
|
199
|
-
|
|
197
|
+
logger.debug("Connected using SSE transport");
|
|
200
198
|
}
|
|
201
199
|
} else throw new Error("Either command+args or path or url must be specified for MCP server");
|
|
202
200
|
if (this.config.pingOnConnect) try {
|
|
203
201
|
await client.ping(requestOptions);
|
|
204
|
-
|
|
202
|
+
logger.debug(`MCP server ${serverKey} ping successful`);
|
|
205
203
|
} catch (pingError) {
|
|
206
204
|
const pingErrorMessage = pingError instanceof Error ? pingError.message : String(pingError);
|
|
207
205
|
throw new Error(`MCP server ${serverKey} ping failed: ${pingErrorMessage}`);
|
|
@@ -220,7 +218,7 @@ var MCPClient = class {
|
|
|
220
218
|
if (this.isVerboseEnabled) console.log(`Connected to MCP server ${serverKey} with tools:`, filteredTools.map((tool) => tool.name));
|
|
221
219
|
} catch (error) {
|
|
222
220
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
223
|
-
if (this.isDebugEnabled)
|
|
221
|
+
if (this.isDebugEnabled) logger.error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
|
|
224
222
|
throw new Error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
|
|
225
223
|
}
|
|
226
224
|
}
|
|
@@ -236,23 +234,23 @@ var MCPClient = class {
|
|
|
236
234
|
if (!oauthConfig) return;
|
|
237
235
|
const now = Date.now();
|
|
238
236
|
const expiresAt = this.tokenExpiresAt.get(serverKey);
|
|
239
|
-
if (expiresAt && now +
|
|
240
|
-
|
|
237
|
+
if (expiresAt && now + 6e4 < expiresAt) {
|
|
238
|
+
logger.debug(`[MCP] Token for ${serverKey} still valid, no refresh needed`);
|
|
241
239
|
return;
|
|
242
240
|
}
|
|
243
241
|
const existingRefresh = this.tokenRefreshPromise.get(serverKey);
|
|
244
242
|
if (existingRefresh) {
|
|
245
|
-
|
|
243
|
+
logger.debug(`[MCP] Token refresh already in progress for ${serverKey}, waiting...`);
|
|
246
244
|
try {
|
|
247
245
|
await existingRefresh;
|
|
248
246
|
const newExpiresAt = this.tokenExpiresAt.get(serverKey);
|
|
249
|
-
if (newExpiresAt && Date.now() +
|
|
250
|
-
|
|
247
|
+
if (newExpiresAt && Date.now() + 6e4 < newExpiresAt) return;
|
|
248
|
+
logger.debug(`[MCP] Token expired while waiting for ${serverKey}, refreshing again...`);
|
|
251
249
|
} catch {
|
|
252
|
-
|
|
250
|
+
logger.debug(`[MCP] Previous token refresh failed for ${serverKey}, retrying...`);
|
|
253
251
|
}
|
|
254
252
|
}
|
|
255
|
-
|
|
253
|
+
logger.debug(`[MCP] Proactively refreshing OAuth token for server ${serverKey}`);
|
|
256
254
|
const refreshPromise = this.performTokenRefresh(serverKey, oauthConfig);
|
|
257
255
|
this.tokenRefreshPromise.set(serverKey, refreshPromise);
|
|
258
256
|
try {
|
|
@@ -272,7 +270,7 @@ var MCPClient = class {
|
|
|
272
270
|
this.clients.delete(serverKey);
|
|
273
271
|
this.transports.delete(serverKey);
|
|
274
272
|
await this.connectToServer(oauthConfig.serverConfig);
|
|
275
|
-
|
|
273
|
+
logger.debug(`[MCP] Successfully refreshed OAuth token for server ${serverKey}`);
|
|
276
274
|
}
|
|
277
275
|
async callTool(name, args) {
|
|
278
276
|
const requestOptions = getEffectiveRequestOptions(this.config);
|
|
@@ -300,7 +298,7 @@ var MCPClient = class {
|
|
|
300
298
|
const isAuthError = errorMessage.includes("401") || errorMessage.includes("Unauthorized") || errorMessage.includes("authorization_endpoint") || errorMessage.includes("token");
|
|
301
299
|
const oauthConfig = this.oauthConfigs.get(serverKey);
|
|
302
300
|
if (!retried && isAuthError && oauthConfig) {
|
|
303
|
-
|
|
301
|
+
logger.debug(`[MCP] Auth error for ${serverKey}, attempting reactive token refresh`);
|
|
304
302
|
retried = true;
|
|
305
303
|
try {
|
|
306
304
|
await this.performTokenRefresh(serverKey, oauthConfig);
|
|
@@ -311,10 +309,10 @@ var MCPClient = class {
|
|
|
311
309
|
}
|
|
312
310
|
} catch (refreshError) {
|
|
313
311
|
const refreshErrorMsg = refreshError instanceof Error ? refreshError.message : String(refreshError);
|
|
314
|
-
|
|
312
|
+
logger.error(`[MCP] Token refresh failed for ${serverKey}: ${refreshErrorMsg}`);
|
|
315
313
|
}
|
|
316
314
|
}
|
|
317
|
-
if (this.isDebugEnabled)
|
|
315
|
+
if (this.isDebugEnabled) logger.error(`Error calling tool ${name}: ${errorMessage}`);
|
|
318
316
|
return {
|
|
319
317
|
content: "",
|
|
320
318
|
error: errorMessage
|
|
@@ -329,7 +327,7 @@ var MCPClient = class {
|
|
|
329
327
|
if (transport) await transport.close();
|
|
330
328
|
await client.close();
|
|
331
329
|
} catch (error) {
|
|
332
|
-
if (this.isDebugEnabled)
|
|
330
|
+
if (this.isDebugEnabled) logger.error(`Error during cleanup: ${error instanceof Error ? error.message : String(error)}`);
|
|
333
331
|
}
|
|
334
332
|
this.clients.clear();
|
|
335
333
|
this.transports.clear();
|
|
@@ -339,7 +337,6 @@ var MCPClient = class {
|
|
|
339
337
|
this.tokenRefreshPromise.clear();
|
|
340
338
|
}
|
|
341
339
|
};
|
|
342
|
-
|
|
343
340
|
//#endregion
|
|
344
341
|
//#region src/providers/openai/chat.ts
|
|
345
342
|
var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends OpenAiGenericProvider {
|
|
@@ -350,7 +347,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
350
347
|
initializationPromise = null;
|
|
351
348
|
loadedFunctionCallbacks = {};
|
|
352
349
|
constructor(modelName, options = {}) {
|
|
353
|
-
if (!OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelName))
|
|
350
|
+
if (!OpenAiChatCompletionProvider.OPENAI_CHAT_MODEL_NAMES.includes(modelName)) logger.debug(`Using unknown chat model: ${modelName}`);
|
|
354
351
|
super(modelName, options);
|
|
355
352
|
this.config = options.config || {};
|
|
356
353
|
if (this.config.mcp?.enabled) this.initializationPromise = this.initializeMCP();
|
|
@@ -379,8 +376,8 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
379
376
|
if (splits[0] && isJavascriptFile(splits[0])) [filePath, functionName] = splits;
|
|
380
377
|
}
|
|
381
378
|
try {
|
|
382
|
-
const resolvedPath = path.resolve(
|
|
383
|
-
|
|
379
|
+
const resolvedPath = path.resolve(state.basePath || "", filePath);
|
|
380
|
+
logger.debug(`Loading function from ${resolvedPath}${functionName ? `:${functionName}` : ""}`);
|
|
384
381
|
const requiredModule = await importModule(resolvedPath, functionName);
|
|
385
382
|
if (typeof requiredModule === "function") return requiredModule;
|
|
386
383
|
else if (requiredModule && typeof requiredModule === "object" && functionName && functionName in requiredModule) {
|
|
@@ -411,18 +408,18 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
411
408
|
}
|
|
412
409
|
}
|
|
413
410
|
if (!callback) throw new Error(`No callback found for function '${functionName}'`);
|
|
414
|
-
|
|
411
|
+
logger.debug(`Executing function '${functionName}' with args: ${args}`);
|
|
415
412
|
const result = await callback(args);
|
|
416
413
|
if (result === void 0 || result === null) return "";
|
|
417
414
|
else if (typeof result === "object") try {
|
|
418
415
|
return JSON.stringify(result);
|
|
419
416
|
} catch (error) {
|
|
420
|
-
|
|
417
|
+
logger.warn(`Error stringifying result from function '${functionName}': ${error}`);
|
|
421
418
|
return String(result);
|
|
422
419
|
}
|
|
423
420
|
else return String(result);
|
|
424
421
|
} catch (error) {
|
|
425
|
-
|
|
422
|
+
logger.error(`Error executing function '${functionName}': ${error.message || String(error)}`);
|
|
426
423
|
throw error;
|
|
427
424
|
}
|
|
428
425
|
}
|
|
@@ -582,7 +579,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
582
579
|
};
|
|
583
580
|
}
|
|
584
581
|
} catch (err) {
|
|
585
|
-
|
|
582
|
+
logger.error(`API call error: ${String(err)}`);
|
|
586
583
|
await deleteFromCache?.();
|
|
587
584
|
return {
|
|
588
585
|
error: `API call error: ${String(err)}`,
|
|
@@ -638,7 +635,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
638
635
|
if (config.response_format?.type === "json_schema" && typeof output === "string") try {
|
|
639
636
|
output = JSON.parse(output);
|
|
640
637
|
} catch (error) {
|
|
641
|
-
|
|
638
|
+
logger.error(`Failed to parse JSON output: ${error}`);
|
|
642
639
|
}
|
|
643
640
|
if (reasoning && (this.config.showThinking ?? true)) output = `Thinking: ${reasoning}\n\n${output}`;
|
|
644
641
|
const functionCalls = message.function_call ? [message.function_call] : message.tool_calls;
|
|
@@ -675,7 +672,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
675
672
|
hasSuccessfulCallback = true;
|
|
676
673
|
continue;
|
|
677
674
|
} catch (error) {
|
|
678
|
-
|
|
675
|
+
logger.debug(`MCP tool execution failed for ${functionName}: ${error}`);
|
|
679
676
|
results.push(`MCP Tool Error (${functionName}): ${error}`);
|
|
680
677
|
hasSuccessfulCallback = true;
|
|
681
678
|
continue;
|
|
@@ -686,7 +683,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
686
683
|
results.push(functionResult);
|
|
687
684
|
hasSuccessfulCallback = true;
|
|
688
685
|
} catch (error) {
|
|
689
|
-
|
|
686
|
+
logger.debug(`Function callback failed for ${functionName} with error ${error}, falling back to original output`);
|
|
690
687
|
hasSuccessfulCallback = false;
|
|
691
688
|
break;
|
|
692
689
|
}
|
|
@@ -739,11 +736,14 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
739
736
|
...finishReason && { finishReason },
|
|
740
737
|
cost: calculateOpenAICost(this.modelName, config, data.usage?.prompt_tokens, data.usage?.completion_tokens, data.usage?.audio_prompt_tokens, data.usage?.audio_completion_tokens),
|
|
741
738
|
guardrails: { flagged: contentFiltered },
|
|
742
|
-
metadata: {
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
739
|
+
metadata: {
|
|
740
|
+
http: {
|
|
741
|
+
status,
|
|
742
|
+
statusText,
|
|
743
|
+
headers: responseHeaders ?? {}
|
|
744
|
+
},
|
|
745
|
+
...data.choices.length > 1 && { choices: data.choices }
|
|
746
|
+
}
|
|
747
747
|
};
|
|
748
748
|
} catch (err) {
|
|
749
749
|
await deleteFromCache?.();
|
|
@@ -758,7 +758,7 @@ var OpenAiChatCompletionProvider = class OpenAiChatCompletionProvider extends Op
|
|
|
758
758
|
}
|
|
759
759
|
}
|
|
760
760
|
};
|
|
761
|
-
|
|
762
761
|
//#endregion
|
|
763
762
|
export { normalizeFinishReason as i, MCPClient as n, FINISH_REASON_MAP as r, OpenAiChatCompletionProvider as t };
|
|
764
|
-
|
|
763
|
+
|
|
764
|
+
//# sourceMappingURL=chat-CznLWr_D.js.map
|