promptfoo 0.125.0 → 0.125.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 +3 -3
- package/dist/src/accounts-BOxNYxVN.js +229 -0
- package/dist/src/accounts-BezXLdAW.cjs +276 -0
- package/dist/src/accounts-CPISMNlh.js +227 -0
- package/dist/src/accounts-vJBPs89d.js +222 -0
- package/dist/src/agentWorkspace-Bom7SpF2.js +592 -0
- package/dist/src/agentWorkspace-CEomAcws.cjs +619 -0
- package/dist/src/agentWorkspace-DPtMLrlI.js +593 -0
- package/dist/src/agentWorkspace-DkAeEYLz.js +592 -0
- package/dist/src/agentic-utils-121v7mJo.js +197 -0
- package/dist/src/agentic-utils-CBWD_rcd.cjs +237 -0
- package/dist/src/agentic-utils-D8wyQwPG.js +198 -0
- package/dist/src/agentic-utils-EP1QkQCs.js +197 -0
- package/dist/src/agents-Br3ah8iA.js +778 -0
- package/dist/src/agents-C5wj_UTv.js +777 -0
- package/dist/src/agents-C9Efp4mC.js +266 -0
- package/dist/src/agents-CQYwaVCO.js +267 -0
- package/dist/src/agents-CjCd4Vo8.js +777 -0
- package/dist/src/agents-DRWiCHYz.js +266 -0
- package/dist/src/agents-F2rhx0iL.cjs +266 -0
- package/dist/src/agents-RTYyy69h.cjs +777 -0
- package/dist/src/agents-api-CY72O86e.js +711 -0
- package/dist/src/agents-api-CsSsC21b.js +710 -0
- package/dist/src/agents-api-DN-ibDc8.js +710 -0
- package/dist/src/agents-api-cNDsCCv1.cjs +710 -0
- package/dist/src/ai.studio-Bj6Dyi6o.js +2 -0
- package/dist/src/ai.studio-C-e0LzyW.js +369 -0
- package/dist/src/ai.studio-CR8M6Aqf.cjs +391 -0
- package/dist/src/ai.studio-YKk7F0tv.js +374 -0
- package/dist/src/aimlapi-BGunsuTu.js +30 -0
- package/dist/src/aimlapi-BkzcfBsL.js +29 -0
- package/dist/src/aimlapi-DXFcEdP8.js +28 -0
- package/dist/src/aimlapi-r-8iCcAw.cjs +29 -0
- package/dist/src/anthropicMessages-7-YNRgQR.js +114 -0
- package/dist/src/anthropicMessages-C8m9Whrd.cjs +114 -0
- package/dist/src/anthropicMessages-DS1vXD0f.js +115 -0
- package/dist/src/anthropicMessages-DmvGkz-0.js +114 -0
- package/dist/src/app/assets/index-CrdXWTXm.js +392 -0
- package/dist/src/app/browser-inventory.json +4 -4
- package/dist/src/app/index.html +1 -1
- package/dist/src/audio-BLgFgyw-.cjs +104 -0
- package/dist/src/audio-C2sibT7Q.js +104 -0
- package/dist/src/audio-DXEXb03H.js +104 -0
- package/dist/src/audio-TkvojpwO.js +105 -0
- package/dist/src/authoritativeMarkupInjection-BAT9B-Wj.js +79 -0
- package/dist/src/authoritativeMarkupInjection-B_yHETKT.js +78 -0
- package/dist/src/authoritativeMarkupInjection-BfjecQ3Q.cjs +78 -0
- package/dist/src/authoritativeMarkupInjection-D-hDKrhD.js +78 -0
- package/dist/src/aws-B_9unI_-.js +1149 -0
- package/dist/src/aws-D0FY3qkc.js +2433 -0
- package/dist/src/aws-Dh1-a90n.js +2433 -0
- package/dist/src/aws-qskKGczY.cjs +2454 -0
- package/dist/src/base-CaWlBkVz.js +462 -0
- package/dist/src/base-CcViNwVs.js +255 -0
- package/dist/src/base-CsVbPJkU.cjs +467 -0
- package/dist/src/base-DNK9py25.js +255 -0
- package/dist/src/base-DlH5tjEZ.js +463 -0
- package/dist/src/base-DyLOZ_iX.js +256 -0
- package/dist/src/base-RRYXfG7l.cjs +305 -0
- package/dist/src/base-oXVgvtVn.js +462 -0
- package/dist/src/bedrock-BP17ZXbR.cjs +2 -0
- package/dist/src/bedrock-CsjM1dOt.js +1300 -0
- package/dist/src/bedrock-CzPwj8GO.js +1 -0
- package/dist/src/bedrock-eGXZw8oh.js +1 -0
- package/dist/src/bedrock-tSWjmXdj.js +2 -0
- package/dist/src/bestOfN-BQ93nUKV.js +160 -0
- package/dist/src/bestOfN-ByGGwlcb.cjs +161 -0
- package/dist/src/bestOfN-CbP7csHr.js +159 -0
- package/dist/src/bestOfN-xn6i2Xs2.js +159 -0
- package/dist/src/cache-CHq9hPz9.js +2 -0
- package/dist/src/cache-D-9eZN3I.js +754 -0
- package/dist/src/cache-DSm6t1MZ.js +741 -0
- package/dist/src/cache-DeF5zIEN.js +782 -0
- package/dist/src/cache-iG87oYan.cjs +856 -0
- package/dist/src/cerebras-CTtM4yMH.js +98 -0
- package/dist/src/cerebras-CogcJ3ce.cjs +97 -0
- package/dist/src/cerebras-DmkRypTh.js +97 -0
- package/dist/src/cerebras-GUp0B8JY.js +97 -0
- package/dist/src/chat-B4ihd3fw.js +226 -0
- package/dist/src/chat-B9cAQ_rS.js +227 -0
- package/dist/src/chat-BU7EB4R-.cjs +76 -0
- package/dist/src/chat-C8yxJ2-s.cjs +226 -0
- package/dist/src/chat-ClTFM3qq.js +934 -0
- package/dist/src/chat-Cnq0Is68.js +123 -0
- package/dist/src/chat-CwrurR57.cjs +987 -0
- package/dist/src/chat-D0lsojPv.js +124 -0
- package/dist/src/chat-D7_8yFIx.js +76 -0
- package/dist/src/chat-DCoETlLG.js +226 -0
- package/dist/src/chat-DHE7xaTR.js +76 -0
- package/dist/src/chat-DmhT6rz2.cjs +123 -0
- package/dist/src/chat-DvfMe8KI.js +123 -0
- package/dist/src/chat-DwP5kVnl.js +935 -0
- package/dist/src/chat-MB7U-QE2.js +77 -0
- package/dist/src/chat-zCWuBKAj.js +934 -0
- package/dist/src/claude-agent-sdk-23bIVI75.js +999 -0
- package/dist/src/claude-agent-sdk-BACpnIJi.cjs +1005 -0
- package/dist/src/claude-agent-sdk-BlYlmcEr.js +999 -0
- package/dist/src/claude-agent-sdk-Cr-jqJZl.js +1000 -0
- package/dist/src/client-BktbiPx9.cjs +357 -0
- package/dist/src/client-CjztEBmW.js +351 -0
- package/dist/src/client-mRs2UvH9.js +351 -0
- package/dist/src/client-uCz0ydjC.js +352 -0
- package/dist/src/cloud-BtYF555L.js +2 -0
- package/dist/src/cloud-CVSUEmAy.js +287 -0
- package/dist/src/cloud-D7Ifb-Fl.js +599 -0
- package/dist/src/cloud-DB5oK5NX.cjs +666 -0
- package/dist/src/cloud-ecu989Em.js +657 -0
- package/dist/src/cloud-ramjGURF.js +599 -0
- package/dist/src/cloudflare-ai-BfDkIjO8.js +133 -0
- package/dist/src/cloudflare-ai-D9HaXz1M.js +134 -0
- package/dist/src/cloudflare-ai-HrD5WUK8.js +132 -0
- package/dist/src/cloudflare-ai-Qdj8aKP2.cjs +133 -0
- package/dist/src/cloudflare-gateway-C81uKETQ.js +276 -0
- package/dist/src/cloudflare-gateway-CX5Z9X0k.js +276 -0
- package/dist/src/cloudflare-gateway-DW-og8gb.js +277 -0
- package/dist/src/cloudflare-gateway-iRyXo9n2.cjs +276 -0
- package/dist/src/codex-app-server-BFIrSgdy.js +2155 -0
- package/dist/src/codex-app-server-By1eDVD4.js +2 -0
- package/dist/src/codex-app-server-DKsF4qmY.js +2156 -0
- package/dist/src/codex-app-server-n7n4uZzC.cjs +2162 -0
- package/dist/src/codex-app-server-xAoELVxu.js +2155 -0
- package/dist/src/codex-sdk-C2ZLxa6r.js +1552 -0
- package/dist/src/codex-sdk-CzG02tQt.cjs +1588 -0
- package/dist/src/codex-sdk-DNxAOhiV.js +2 -0
- package/dist/src/codex-sdk-DT3aQezK.js +1557 -0
- package/dist/src/codex-sdk-pw9DpcJP.js +1557 -0
- package/dist/src/codex-security-B0bLmXJF.js +406 -0
- package/dist/src/codex-security-BhYs-3iY.js +406 -0
- package/dist/src/codex-security-DQcOfxYW.js +407 -0
- package/dist/src/codex-security-DsCWr6GZ.cjs +411 -0
- package/dist/src/cometapi-B16asPLX.cjs +55 -0
- package/dist/src/cometapi-MgTbZA_H.js +53 -0
- package/dist/src/cometapi-i33vKzPV.js +55 -0
- package/dist/src/cometapi-wK2UWK0X.js +56 -0
- package/dist/src/compatible-COj8ZCy9.js +24 -0
- package/dist/src/compatible-CRSsIUGb.cjs +24 -0
- package/dist/src/compatible-Dy1vCcNF.js +25 -0
- package/dist/src/compatible-aUItQrpk.js +24 -0
- package/dist/src/completion-Bn7COFMk.js +119 -0
- package/dist/src/completion-Bub2N48b.js +118 -0
- package/dist/src/completion-Cf2G9OlM.cjs +123 -0
- package/dist/src/conversationScoring-BiTYJ9MD.js +374 -0
- package/dist/src/conversationScoring-CKL47uIu.js +373 -0
- package/dist/src/conversationScoring-DCvQKp6k.cjs +398 -0
- package/dist/src/conversationScoring-DLNJtDZI.js +373 -0
- package/dist/src/crescendo-5iLk9WiJ.cjs +734 -0
- package/dist/src/crescendo-B5ylG7kW.js +733 -0
- package/dist/src/crescendo-BD7k6TIx.js +730 -0
- package/dist/src/crescendo-DqO2Ch0P.js +732 -0
- package/dist/src/custom-8rv_aG2K.js +617 -0
- package/dist/src/custom-BOtrIHFN.js +619 -0
- package/dist/src/custom-BvN8seCs.cjs +620 -0
- package/dist/src/custom-Cld9v_Y4.js +618 -0
- package/dist/src/dataUrl-BdHUey2l.cjs +3187 -0
- package/dist/src/dataUrl-DBMifX6C.js +3133 -0
- package/dist/src/dataUrl-DUSr-ZvI.js +2868 -0
- package/dist/src/decisions-CLazADTw.js +516 -0
- package/dist/src/decisions-D5X93awq.js +515 -0
- package/dist/src/decisions-DmaeArEn.js +515 -0
- package/dist/src/decisions-DyQJyHJz.cjs +514 -0
- package/dist/src/docker-C9NYQFeu.js +94 -0
- package/dist/src/docker-CGq3mMol.cjs +94 -0
- package/dist/src/docker-DOm7nmpl.js +95 -0
- package/dist/src/docker-skFN-Kfo.js +93 -0
- package/dist/src/embedding-0UbzkTk9.js +82 -0
- package/dist/src/embedding-DTrSDt7k.cjs +86 -0
- package/dist/src/embedding-j2ORNl5H.js +81 -0
- package/dist/src/envoy-BvS8XTQO.js +60 -0
- package/dist/src/envoy-Cn6Hzw0e.js +60 -0
- package/dist/src/envoy-DC3KWcUY.cjs +60 -0
- package/dist/src/envoy-DetHjo5B.js +61 -0
- package/dist/src/eval-Cer9dPe9.js +1920 -0
- package/dist/src/eval-CytYmI2Z.js +2 -0
- package/dist/src/evalResult-DzOq5wt9.js +1300 -0
- package/dist/src/evaluator-BxCmvGtv.js +10578 -0
- package/dist/src/evaluator-Ct7YDELm.js +2 -0
- package/dist/src/evaluatorHelpers-B_AwIrsl.js +600 -0
- package/dist/src/evaluatorHelpers-D1Tpc7gd.js +601 -0
- package/dist/src/evaluatorHelpers-DRR3rLq0.cjs +622 -0
- package/dist/src/fetch-B5KxZuKu.js +1559 -0
- package/dist/src/fetch-BG_Jl7ty.js +1556 -0
- package/dist/src/fetch-BKlgUg08.cjs +1853 -0
- package/dist/src/fetch-C9Fsja0R.js +2 -0
- package/dist/src/fetch-CM7P8KWA.cjs +14 -0
- package/dist/src/fetch-D0FkIB3G.js +9 -0
- package/dist/src/fetch-RXHsZF-J.js +1280 -0
- package/dist/src/fetch-rSECy8jR.js +10 -0
- package/dist/src/functionCallbackUtils-BB9tmf6a.cjs +262 -0
- package/dist/src/functionCallbackUtils-BXk2iY01.js +246 -0
- package/dist/src/functionCallbackUtils-B_cYp7P5.js +245 -0
- package/dist/src/functionCallbackUtils-BfXnPo0o.js +245 -0
- package/dist/src/gemini-image-BXLMADDz.js +471 -0
- package/dist/src/gemini-image-BYUZyEUx.js +472 -0
- package/dist/src/gemini-image-DSt1QubZ.cjs +471 -0
- package/dist/src/gemini-image-DdNDMiZ_.js +471 -0
- package/dist/src/goat-9b-uU_k6.js +514 -0
- package/dist/src/goat-BCJuiDd0.js +515 -0
- package/dist/src/goat-CmAHbemm.js +512 -0
- package/dist/src/goat-DdOTdyoS.cjs +515 -0
- package/dist/src/goblin-Bp5C5lyb.js +22 -0
- package/dist/src/goblin-Dmr7GItI.js +23 -0
- package/dist/src/goblin-DpM8wxlf.cjs +22 -0
- package/dist/src/goblin-cJyH6Pq-.js +22 -0
- package/dist/src/google-B6eaPAbE.js +142 -0
- package/dist/src/google-D-FStdN6.cjs +142 -0
- package/dist/src/google-DAC7BsCW.js +142 -0
- package/dist/src/google-Id18H0Va.js +143 -0
- package/dist/src/graders-BjNQWkaB.js +2 -0
- package/dist/src/graders-CqdIp_vl.js +15470 -0
- package/dist/src/hydra-6Ouh74DE.js +610 -0
- package/dist/src/hydra-BHjhZnLB.cjs +612 -0
- package/dist/src/hydra-BL6k2REV.js +2 -0
- package/dist/src/hydra-BWUc0o67.js +613 -0
- package/dist/src/hydra-CUkEOLKw.js +612 -0
- package/dist/src/image-B6hG_xhb.js +481 -0
- package/dist/src/image-BFaq7Krd.cjs +209 -0
- package/dist/src/image-Bql5C0N9.cjs +504 -0
- package/dist/src/image-BtZfI2pT.js +163 -0
- package/dist/src/image-CIM4oN7Z.cjs +163 -0
- package/dist/src/image-CbAl7Jpu.js +209 -0
- package/dist/src/image-CiYm_yFw.js +209 -0
- package/dist/src/image-DCMNvBiV.js +163 -0
- package/dist/src/image-DL7pIuUZ.js +210 -0
- package/dist/src/image-ey0kxF8o.js +164 -0
- package/dist/src/image-smgIk3rE.js +482 -0
- package/dist/src/index.cjs +27 -27
- package/dist/src/index.d.cts +8 -8
- package/dist/src/index.js +27 -27
- package/dist/src/indirectWebPwn-B_-UpWY5.js +285 -0
- package/dist/src/indirectWebPwn-Cz3SLiEq.js +434 -0
- package/dist/src/indirectWebPwn-D2s8zGiM.cjs +463 -0
- package/dist/src/indirectWebPwn-DXbj2wGu.cjs +285 -0
- package/dist/src/indirectWebPwn-D_4H44E6.js +285 -0
- package/dist/src/indirectWebPwn-L044SrpV.js +434 -0
- package/dist/src/indirectWebPwn-cnmvdavH.js +435 -0
- package/dist/src/indirectWebPwn-zUBzsqTt.js +286 -0
- package/dist/src/interactions-Bu3oVQ-j.js +850 -0
- package/dist/src/interactions-CND010Lh.cjs +850 -0
- package/dist/src/interactions-DAx7tqUz.js +851 -0
- package/dist/src/interactions-DPkIumeh.js +850 -0
- package/dist/src/iterative-BO4JRnpG.js +545 -0
- package/dist/src/iterative-CAK-k9rz.js +548 -0
- package/dist/src/iterative-CDgHc0xO.cjs +549 -0
- package/dist/src/iterative-CXJlHLl9.js +547 -0
- package/dist/src/iterativeImage-BEdGKSmh.cjs +419 -0
- package/dist/src/iterativeImage-BfL0QZw5.js +417 -0
- package/dist/src/iterativeImage-C9KhnibC.js +417 -0
- package/dist/src/iterativeImage-btjkOfWG.js +418 -0
- package/dist/src/iterativeMeta-B5Bdw6QA.js +437 -0
- package/dist/src/iterativeMeta-C3mI4gpT.js +440 -0
- package/dist/src/iterativeMeta-Co2BKyqS.cjs +439 -0
- package/dist/src/iterativeMeta-DD8ihRWD.js +439 -0
- package/dist/src/iterativeTree-AMi4GV2O.js +878 -0
- package/dist/src/iterativeTree-C8FJOEje.cjs +879 -0
- package/dist/src/iterativeTree-CvrY1f2Z.js +877 -0
- package/dist/src/iterativeTree-bPtESmaD.js +876 -0
- package/dist/src/knowledgeBase-Cf5871e3.js +163 -0
- package/dist/src/knowledgeBase-D2PQhqLH.js +164 -0
- package/dist/src/knowledgeBase-DpoMw1IH.cjs +163 -0
- package/dist/src/knowledgeBase-npGFl763.js +163 -0
- package/dist/src/litellm-BBB5DQdt.cjs +146 -0
- package/dist/src/litellm-Bo43ow7r.js +145 -0
- package/dist/src/litellm-CaU8CMLS.js +146 -0
- package/dist/src/litellm-wY7Unh8o.js +147 -0
- package/dist/src/live-5g2w-M-E.js +891 -0
- package/dist/src/live-BfaXsDyD.cjs +891 -0
- package/dist/src/live-C1xewnGD.js +2 -0
- package/dist/src/live-DaF7nYy5.js +892 -0
- package/dist/src/live-lp3urLUw.js +891 -0
- package/dist/src/luma-ray-B7zvKGVG.js +309 -0
- package/dist/src/luma-ray-DCf5fnrz.cjs +309 -0
- package/dist/src/luma-ray-DepBcn6z.js +309 -0
- package/dist/src/luma-ray-XQC4M1pt.js +310 -0
- package/dist/src/main.js +26 -26
- package/dist/src/mantleChat-7xm95vSV.js +154 -0
- package/dist/src/mantleChat-CXhAs5RD.js +155 -0
- package/dist/src/mantleChat-CcE-zjfj.cjs +154 -0
- package/dist/src/mantleChat-Cpefl7Zm.js +154 -0
- package/dist/src/mcp-B0V0ikdM.js +84 -0
- package/dist/src/mcp-CV2k2gwj.js +85 -0
- package/dist/src/memoryPoisoning-BC5FQQWZ.js +111 -0
- package/dist/src/memoryPoisoning-BDwrtZKX.js +111 -0
- package/dist/src/memoryPoisoning-BFemS_FF.js +112 -0
- package/dist/src/memoryPoisoning-DRs2rbVV.cjs +111 -0
- package/dist/src/messages-Bc5oZoAJ.js +1128 -0
- package/dist/src/messages-BkaH8fRW.js +1127 -0
- package/dist/src/messages-CoHlziS5.js +1127 -0
- package/dist/src/messages-Cv_m6kYs.cjs +1161 -0
- package/dist/src/mischievousUser-BcyFxrqJ.js +51 -0
- package/dist/src/mischievousUser-BlhOQSd2.js +52 -0
- package/dist/src/mischievousUser-BuQiKE8D.js +51 -0
- package/dist/src/mischievousUser-ChIOk6cT.cjs +51 -0
- package/dist/src/modelslab-BXIWBTgX.js +171 -0
- package/dist/src/modelslab-ChVsUiaJ.js +170 -0
- package/dist/src/modelslab-DZ6BFlDv.js +170 -0
- package/dist/src/modelslab-DhRr-vyo.cjs +170 -0
- package/dist/src/nova-reel-BL8DrN4_.js +272 -0
- package/dist/src/nova-reel-BiOMUm5q.cjs +272 -0
- package/dist/src/nova-reel-CTsya1hV.js +273 -0
- package/dist/src/nova-reel-kgBY4Svd.js +272 -0
- package/dist/src/nova-sonic-CaSSA3Jq.cjs +374 -0
- package/dist/src/nova-sonic-DLpmoGsR.js +375 -0
- package/dist/src/nova-sonic-DwWc4SoN.js +374 -0
- package/dist/src/nova-sonic-qnReTaXm.js +374 -0
- package/dist/src/novita-B5mAt3Ui.js +114 -0
- package/dist/src/novita-D57vCjDD.js +116 -0
- package/dist/src/novita-ITRtG8IJ.js +115 -0
- package/dist/src/novita-Rh3T13YO.cjs +115 -0
- package/dist/src/nscale-8V7iZ_pI.js +210 -0
- package/dist/src/nscale-BQnMv4pH.cjs +209 -0
- package/dist/src/nscale-BWZXHZVF.js +209 -0
- package/dist/src/nscale-BqrHiUqU.js +207 -0
- package/dist/src/openaiResponses-BMtGTu8R.js +317 -0
- package/dist/src/openaiResponses-CvcI_viE.js +318 -0
- package/dist/src/openaiResponses-DYPZEMX1.cjs +318 -0
- package/dist/src/openaiResponses-DZTg1-kb.js +319 -0
- package/dist/src/openclaw-BeKuig4g.js +1338 -0
- package/dist/src/openclaw-COkdQ83y.js +1337 -0
- package/dist/src/openclaw-CSoX_HQ5.cjs +1344 -0
- package/dist/src/openclaw-DJlhPGCb.js +1336 -0
- package/dist/src/opencode-sdk-BEJftEs6.cjs +1018 -0
- package/dist/src/opencode-sdk-DMvBB3V7.js +1013 -0
- package/dist/src/opencode-sdk-Df7hMjLO.js +1012 -0
- package/dist/src/opencode-sdk-bQp5Xf3W.js +1012 -0
- package/dist/src/openinterpreter-B3GgVZjK.js +431 -0
- package/dist/src/openinterpreter-BiGcU-HN.cjs +435 -0
- package/dist/src/openinterpreter-Buj2l3Eh.js +432 -0
- package/dist/src/openinterpreter-C3_Cg5b_.js +431 -0
- package/dist/src/pricing-0Pampf0q.cjs +999 -0
- package/dist/src/pricing-B8VdhEhY.js +976 -0
- package/dist/src/pricing-CtLA-rKA.js +976 -0
- package/dist/src/promptfoo-4OkHtH9P.cjs +341 -0
- package/dist/src/promptfoo-Bhpm7sH6.js +286 -0
- package/dist/src/promptfoo-BqV8ogVA.js +285 -0
- package/dist/src/promptfoo-S1Q9OHk_.js +286 -0
- package/dist/src/providers-B5zs1ZRv.js +24437 -0
- package/dist/src/providers-Cd6CJh6m.js +2 -0
- package/dist/src/providers-CpJlgHET.js +24039 -0
- package/dist/src/providers-CzvLvK6G.cjs +24180 -0
- package/dist/src/quiverai-1E_IvLHn.js +325 -0
- package/dist/src/quiverai-BXH004Vv.js +325 -0
- package/dist/src/quiverai-Ccya2z8Y.cjs +325 -0
- package/dist/src/quiverai-Cez57oe-.js +326 -0
- package/dist/src/registry-3zX_M9Ik.js +131 -0
- package/dist/src/registry-AuCrKTvS.js +132 -0
- package/dist/src/registry-CxXWKtQG.js +131 -0
- package/dist/src/registry-DG3o66JQ.cjs +131 -0
- package/dist/src/remoteGeneration-CAtvamG6.js +370 -0
- package/dist/src/remoteGeneration-CF225pDl.cjs +482 -0
- package/dist/src/remoteGeneration-DtnqocnL.js +370 -0
- package/dist/src/remoteGeneration-g3KvW-sP.js +371 -0
- package/dist/src/responses-BMbaUXQI.js +1098 -0
- package/dist/src/responses-B_TOSof-.js +1099 -0
- package/dist/src/responses-v-yANwTA.cjs +1109 -0
- package/dist/src/runtimeTransform-BBZv-oUZ.js +156 -0
- package/dist/src/runtimeTransform-DT2v5ovW.js +156 -0
- package/dist/src/runtimeTransform-GXXEIXdS.cjs +161 -0
- package/dist/src/runtimeTransform-JTwBQc-P.js +157 -0
- package/dist/src/sagemaker-B8D0L4rj.cjs +716 -0
- package/dist/src/sagemaker-CR2_AGdB.js +713 -0
- package/dist/src/sagemaker-Cd9qSQUV.js +714 -0
- package/dist/src/sagemaker-mKlltN4p.js +713 -0
- package/dist/src/scanner-PG_8lh8r.js +1971 -0
- package/dist/src/server/index.js +55 -55
- package/dist/src/server-Bmh7sd9F.js +155 -0
- package/dist/src/server-C7b8z6aC.js +63 -0
- package/dist/src/server-CAcovgtL.js +2 -0
- package/dist/src/server-CuuMfKlh.cjs +74 -0
- package/dist/src/server-DMPCj9jy.js +189 -0
- package/dist/src/session-BksXvRH_.cjs +69 -0
- package/dist/src/session-DOxUjqGQ.js +63 -0
- package/dist/src/session-Dujsc-b9.js +62 -0
- package/dist/src/session-VjtIxREd.js +62 -0
- package/dist/src/shared-Bkyz_7e5.cjs +2185 -0
- package/dist/src/shared-DDJg8ycC.js +1929 -0
- package/dist/src/shared-Dh3yfRBd.js +1927 -0
- package/dist/src/shared-tfPT8Tna.js +1928 -0
- package/dist/src/simulatedUser-6JdkyL3k.cjs +252 -0
- package/dist/src/simulatedUser-CFr2mr3M.js +248 -0
- package/dist/src/simulatedUser-DjwwUqx-.js +247 -0
- package/dist/src/slack-C_gIYiUs.js +144 -0
- package/dist/src/slack-DhNbz9CM.cjs +144 -0
- package/dist/src/slack-Dm2iI1zu.js +145 -0
- package/dist/src/strategies-BIY-bNul.js +2248 -0
- package/dist/src/strategies-C1KQQj9G.cjs +2420 -0
- package/dist/src/strategies-DM_3mReG.js +2385 -0
- package/dist/src/telemetry-BhMTibZO.js +2 -0
- package/dist/src/telemetry-C04d25BM.cjs +216 -0
- package/dist/src/telemetry-CIqy4fSC.js +201 -0
- package/dist/src/telemetry-CXozp_6C.js +205 -0
- package/dist/src/telemetry-g7PkBxmY.js +205 -0
- package/dist/src/togetherai-BvCim68-.js +50 -0
- package/dist/src/togetherai-CWyDCA9m.cjs +49 -0
- package/dist/src/togetherai-CeSE31vK.js +49 -0
- package/dist/src/togetherai-_2W0URf8.js +48 -0
- package/dist/src/traceContext-Brw3Oe41.js +1016 -0
- package/dist/src/traceContext-DpAYv27G.js +1015 -0
- package/dist/src/traceContext-KSqhzZI2.cjs +1032 -0
- package/dist/src/transcription-BySopazW.js +175 -0
- package/dist/src/transcription-DO4UPkRI.cjs +178 -0
- package/dist/src/transcription-RJGBa-pC.js +176 -0
- package/dist/src/transcription-fZenF3G5.js +175 -0
- package/dist/src/transform-BzhRc5z2.js +125 -0
- package/dist/src/transform-CPQu05u6.cjs +154 -0
- package/dist/src/transform-DAED8imp.js +126 -0
- package/dist/src/transform-DIOIQDmM.js +125 -0
- package/dist/src/typesafe-ByE0Kxfg.js +253 -0
- package/dist/src/typesafe-CFqGFY34.js +253 -0
- package/dist/src/typesafe-DCWIw-CP.cjs +253 -0
- package/dist/src/typesafe-DyHFV5Qk.js +254 -0
- package/dist/src/util-BHkj9joz.js +2049 -0
- package/dist/src/util-CICwIpmu.cjs +934 -0
- package/dist/src/util-CePiY2xZ.js +286 -0
- package/dist/src/util-CgT3uf4p.js +743 -0
- package/dist/src/util-Cj9drvOY.js +1770 -0
- package/dist/src/util-ClJRjlQA.cjs +357 -0
- package/dist/src/util-Cxf8VF2M.js +395 -0
- package/dist/src/util-D7RdV7rS.js +395 -0
- package/dist/src/util-DMNFhk47.js +351 -0
- package/dist/src/util-DNzh3M0z.js +396 -0
- package/dist/src/util-Df7rfMGb.cjs +2305 -0
- package/dist/src/util-Kf0KnG_6.js +2051 -0
- package/dist/src/util-LEbeiYw_.js +743 -0
- package/dist/src/util-WH8CgVs4.js +352 -0
- package/dist/src/util-cx6Xw8Lw.cjs +478 -0
- package/dist/src/util-qzBqirBH.js +2050 -0
- package/dist/src/vertex-CBAMfRz3.js +854 -0
- package/dist/src/vertex-CMP2IpN9.js +2 -0
- package/dist/src/vertex-CZ5YOotT.js +848 -0
- package/dist/src/vertex-DNsh1F1M.cjs +871 -0
- package/dist/src/vertexLive-BTXYj3-F.js +55 -0
- package/dist/src/vertexLive-Ba_LAqEF.cjs +55 -0
- package/dist/src/vertexLive-DM4sFaaj.js +56 -0
- package/dist/src/vertexLive-JqZOw7HC.js +55 -0
- package/dist/src/video-BY7Q2Gii.cjs +706 -0
- package/dist/src/video-CYElP-CK.js +703 -0
- package/dist/src/video-C_AdEDH0.js +702 -0
- package/dist/src/video-DGvjQ_4j.js +702 -0
- package/package.json +1 -1
- package/dist/src/accounts-Dpb43yde.cjs +0 -276
- package/dist/src/accounts-GKrO1olH.js +0 -229
- package/dist/src/accounts-e4FGOsji.js +0 -227
- package/dist/src/accounts-sUiEJfkB.js +0 -222
- package/dist/src/agentWorkspace-B8A_wuMR.cjs +0 -619
- package/dist/src/agentWorkspace-DSPIscXR.js +0 -593
- package/dist/src/agentWorkspace-DxUqd-XK.js +0 -592
- package/dist/src/agentWorkspace-n0uOJXhD.js +0 -592
- package/dist/src/agentic-utils-9bCj4twQ.js +0 -197
- package/dist/src/agentic-utils-CyCLuLoj.js +0 -197
- package/dist/src/agentic-utils-D23qtOlx.cjs +0 -237
- package/dist/src/agentic-utils-DuBMMNCw.js +0 -198
- package/dist/src/agents-6hDRNoYD.js +0 -777
- package/dist/src/agents-B8w2o7Sc.cjs +0 -777
- package/dist/src/agents-Ck0NXl7v.js +0 -777
- package/dist/src/agents-CwT3B1qB.js +0 -778
- package/dist/src/agents-DOLjfOEq.js +0 -266
- package/dist/src/agents-OcF9hq--.js +0 -267
- package/dist/src/agents-api-CnZZt8bn.cjs +0 -710
- package/dist/src/agents-api-D04u3bmL.js +0 -711
- package/dist/src/agents-api-DWw0_Vio.js +0 -710
- package/dist/src/agents-api-IWHEwp8i.js +0 -710
- package/dist/src/agents-mHt2Mh9O.cjs +0 -266
- package/dist/src/agents-sICccZCA.js +0 -266
- package/dist/src/ai.studio-Ci4rypDT.js +0 -2
- package/dist/src/ai.studio-KkQ6KaHa.js +0 -369
- package/dist/src/ai.studio-gSXK2cGI.js +0 -374
- package/dist/src/ai.studio-nQF_B4DH.cjs +0 -391
- package/dist/src/aimlapi-BeSk5BDV.js +0 -30
- package/dist/src/aimlapi-CzNUhdKu.cjs +0 -29
- package/dist/src/aimlapi-DCkazDPI.js +0 -29
- package/dist/src/aimlapi-WeH5B6K1.js +0 -28
- package/dist/src/anthropicMessages-AcNWTpYO.js +0 -115
- package/dist/src/anthropicMessages-BUtvzbpL.js +0 -114
- package/dist/src/anthropicMessages-DTWhZDCd.js +0 -114
- package/dist/src/anthropicMessages-lGVnSgyx.cjs +0 -114
- package/dist/src/app/assets/index-CyEI5aDN.js +0 -392
- package/dist/src/audio-BE_Duiu1.js +0 -104
- package/dist/src/audio-CiUd00k2.cjs +0 -104
- package/dist/src/audio-Dop6omna.js +0 -105
- package/dist/src/audio-EZNTInr_.js +0 -104
- package/dist/src/authoritativeMarkupInjection-BUqH6hNk.js +0 -78
- package/dist/src/authoritativeMarkupInjection-BmbJdJO0.cjs +0 -78
- package/dist/src/authoritativeMarkupInjection-Cpz12Y3w.js +0 -78
- package/dist/src/authoritativeMarkupInjection-W4XfcH91.js +0 -79
- package/dist/src/aws-B2Jqbnet.js +0 -2433
- package/dist/src/aws-DHtuUIzQ.js +0 -1149
- package/dist/src/aws-DLqXP6wY.js +0 -2433
- package/dist/src/aws-DfduhmwL.cjs +0 -2454
- package/dist/src/base-B9L2Xvpc.js +0 -255
- package/dist/src/base-BTZnIsuH.cjs +0 -305
- package/dist/src/base-BhaWNQPJ.js +0 -462
- package/dist/src/base-Br-G_Xou.js +0 -256
- package/dist/src/base-Bzo8hiUS.cjs +0 -467
- package/dist/src/base-C82fd2jq.js +0 -463
- package/dist/src/base-CRdQwC1W.js +0 -462
- package/dist/src/base-CjGwZNOQ.js +0 -255
- package/dist/src/bedrock-BdMru_ro.js +0 -1300
- package/dist/src/bedrock-CBUmfLX1.cjs +0 -2
- package/dist/src/bedrock-DBDxBaF9.js +0 -2
- package/dist/src/bedrock-DDrECM21.js +0 -1
- package/dist/src/bedrock-DVwkgvRS.js +0 -1
- package/dist/src/bestOfN-AKF5beq4.js +0 -159
- package/dist/src/bestOfN-C1UIVGJV.js +0 -160
- package/dist/src/bestOfN-DlkETbXy.cjs +0 -161
- package/dist/src/bestOfN-XIfEgU-g.js +0 -159
- package/dist/src/cache-BZaVoKaA.js +0 -2
- package/dist/src/cache-CEYhFUsH.js +0 -741
- package/dist/src/cache-Cbw1zH6q.js +0 -782
- package/dist/src/cache-CdaZNb75.js +0 -754
- package/dist/src/cache-DpuIzPxh.cjs +0 -856
- package/dist/src/cerebras-Bpn6FPkJ.js +0 -97
- package/dist/src/cerebras-CqJ0BRCJ.cjs +0 -97
- package/dist/src/cerebras-D4ILa_TY.js +0 -97
- package/dist/src/cerebras-DR8uc7ee.js +0 -98
- package/dist/src/chat-B7PZfaYp.cjs +0 -987
- package/dist/src/chat-BVuSjdEb.js +0 -227
- package/dist/src/chat-BsaZRjXN.js +0 -76
- package/dist/src/chat-C5liqe3Y.js +0 -226
- package/dist/src/chat-C9hyHf5B.js +0 -124
- package/dist/src/chat-CFLalAck.js +0 -226
- package/dist/src/chat-CN8JGrHu.js +0 -76
- package/dist/src/chat-CaHBBpCb.js +0 -123
- package/dist/src/chat-CcbLSghx.js +0 -123
- package/dist/src/chat-CoSN6sr2.js +0 -934
- package/dist/src/chat-CsJRFX8a.cjs +0 -226
- package/dist/src/chat-DFoZLvO_.js +0 -934
- package/dist/src/chat-DiLQvL7r.js +0 -77
- package/dist/src/chat-F6qVSDk3.cjs +0 -123
- package/dist/src/chat-Oq4FaJgI.cjs +0 -76
- package/dist/src/chat-knMfQUKz.js +0 -935
- package/dist/src/claude-agent-sdk-CJkOLpnI.js +0 -999
- package/dist/src/claude-agent-sdk-Ckn76PRD.js +0 -999
- package/dist/src/claude-agent-sdk-DX0gTr11.cjs +0 -1005
- package/dist/src/claude-agent-sdk-LMeikxoR.js +0 -1000
- package/dist/src/client-BFf1r6Z8.js +0 -352
- package/dist/src/client-CdXyDdDi.js +0 -351
- package/dist/src/client-DV8XMu7i.js +0 -351
- package/dist/src/client-iEXtOBKW.cjs +0 -357
- package/dist/src/cloud-B02qcpjf.js +0 -2
- package/dist/src/cloud-BlHP-g1v.cjs +0 -666
- package/dist/src/cloud-C9BI4isF.js +0 -287
- package/dist/src/cloud-CTTLNdvj.js +0 -657
- package/dist/src/cloud-D5X5yQ_d.js +0 -599
- package/dist/src/cloud-QxPkpsHA.js +0 -599
- package/dist/src/cloudflare-ai-DRTRT1fc.js +0 -132
- package/dist/src/cloudflare-ai-DgaXapAV.cjs +0 -133
- package/dist/src/cloudflare-ai-DkuJXijS.js +0 -134
- package/dist/src/cloudflare-ai-wy9QCHku.js +0 -133
- package/dist/src/cloudflare-gateway-9cAN8g29.cjs +0 -276
- package/dist/src/cloudflare-gateway-BVFMD292.js +0 -277
- package/dist/src/cloudflare-gateway-BuUI4p6I.js +0 -276
- package/dist/src/cloudflare-gateway-TlYHizbW.js +0 -276
- package/dist/src/codex-app-server-BPz_feug.cjs +0 -2162
- package/dist/src/codex-app-server-C9noXM9C.js +0 -2155
- package/dist/src/codex-app-server-CEmD-Y5U.js +0 -2
- package/dist/src/codex-app-server-DZolc18r.js +0 -2156
- package/dist/src/codex-app-server-Dd0A37nO.js +0 -2155
- package/dist/src/codex-sdk-BbxjBvBk.cjs +0 -1588
- package/dist/src/codex-sdk-BpXeIs-_.js +0 -1557
- package/dist/src/codex-sdk-BtQp5X0f.js +0 -1552
- package/dist/src/codex-sdk-CH0v9Bk1.js +0 -2
- package/dist/src/codex-sdk-CgrN7JB8.js +0 -1557
- package/dist/src/codex-security-B5fENNUr.js +0 -406
- package/dist/src/codex-security-C6uuJx-y.cjs +0 -411
- package/dist/src/codex-security-CifWtZR_.js +0 -407
- package/dist/src/codex-security-Kg2bOEKy.js +0 -406
- package/dist/src/cometapi-BFpIDLIx.js +0 -55
- package/dist/src/cometapi-C6O2PIrN.js +0 -56
- package/dist/src/cometapi-D5Yupc6F.js +0 -53
- package/dist/src/cometapi-DzgIwJzJ.cjs +0 -55
- package/dist/src/compatible-0jhmVfOp.js +0 -25
- package/dist/src/compatible-DdtwWdJi.cjs +0 -24
- package/dist/src/compatible-Di4nR3sU.js +0 -24
- package/dist/src/compatible-iJKLWdnf.js +0 -24
- package/dist/src/completion-B0_hVUDG.js +0 -119
- package/dist/src/completion-BdI6v0-Q.cjs +0 -123
- package/dist/src/completion-CWcJscwv.js +0 -118
- package/dist/src/conversationScoring-99EOPJRa.js +0 -373
- package/dist/src/conversationScoring-BIq4J0Cq.js +0 -374
- package/dist/src/conversationScoring-DARyeATr.cjs +0 -398
- package/dist/src/conversationScoring-DS48t4Hb.js +0 -373
- package/dist/src/crescendo-CebvXIu4.js +0 -730
- package/dist/src/crescendo-CxrLS0oo.js +0 -732
- package/dist/src/crescendo-DZQXBSkj.js +0 -733
- package/dist/src/crescendo-wjEx68uD.cjs +0 -734
- package/dist/src/custom-BiQ-aUNw.cjs +0 -620
- package/dist/src/custom-ByyB5Z93.js +0 -619
- package/dist/src/custom-C5jOevNb.js +0 -617
- package/dist/src/custom-CCrsCz8o.js +0 -618
- package/dist/src/dataUrl-C9J7wz9H.js +0 -3133
- package/dist/src/dataUrl-CGsBT7UZ.cjs +0 -3187
- package/dist/src/dataUrl-CzKvvWNO.js +0 -2868
- package/dist/src/decisions-BTusXCUx.cjs +0 -514
- package/dist/src/decisions-BYtL9edD.js +0 -515
- package/dist/src/decisions-jYix_gCF.js +0 -515
- package/dist/src/decisions-nxxfHRAN.js +0 -516
- package/dist/src/docker-DDIv4zkg.js +0 -93
- package/dist/src/docker-DVLp_5OG.js +0 -94
- package/dist/src/docker-INm9w0SY.cjs +0 -94
- package/dist/src/docker-sGuoCul_.js +0 -95
- package/dist/src/embedding-CAhqLLrR.js +0 -82
- package/dist/src/embedding-D94GAsti.cjs +0 -86
- package/dist/src/embedding-zb4MAzQy.js +0 -81
- package/dist/src/envoy-BMPszwEa.cjs +0 -60
- package/dist/src/envoy-Bp-s39_8.js +0 -60
- package/dist/src/envoy-BswDt-Ou.js +0 -61
- package/dist/src/envoy-rVbYcV80.js +0 -60
- package/dist/src/eval-B1-XfrC7.js +0 -2
- package/dist/src/eval-pC4qCvLw.js +0 -1920
- package/dist/src/evalResult-CzjCb5bd.js +0 -1300
- package/dist/src/evaluator-CNq2K7J_.js +0 -10578
- package/dist/src/evaluator-LtfxdxEu.js +0 -2
- package/dist/src/evaluatorHelpers-C5J0NYpQ.js +0 -601
- package/dist/src/evaluatorHelpers-DcdCglCs.cjs +0 -622
- package/dist/src/evaluatorHelpers-Rvb88W6B.js +0 -600
- package/dist/src/fetch-5HtnNhHg.js +0 -1556
- package/dist/src/fetch-BCwjoIFd.js +0 -1559
- package/dist/src/fetch-BhfUnKen.js +0 -1280
- package/dist/src/fetch-C08w4vVl.js +0 -9
- package/dist/src/fetch-DBxy8Tlb.cjs +0 -14
- package/dist/src/fetch-DYte6oQX.cjs +0 -1853
- package/dist/src/fetch-ElpfcAVG.js +0 -10
- package/dist/src/fetch-lM1OIaSt.js +0 -2
- package/dist/src/functionCallbackUtils-BCAdWfHO.js +0 -246
- package/dist/src/functionCallbackUtils-BYq9qOhG.js +0 -245
- package/dist/src/functionCallbackUtils-ByWkmVud.cjs +0 -262
- package/dist/src/functionCallbackUtils-D_C_JaFd.js +0 -245
- package/dist/src/gemini-image-CAlwaJhZ.js +0 -471
- package/dist/src/gemini-image-DJoVoOnZ.cjs +0 -471
- package/dist/src/gemini-image-Waio-9Xx.js +0 -472
- package/dist/src/gemini-image-vbY6Ftbf.js +0 -471
- package/dist/src/goat-BWbtyY9c.js +0 -512
- package/dist/src/goat-CXzzeCOQ.cjs +0 -515
- package/dist/src/goat-CfgvzSgZ.js +0 -514
- package/dist/src/goat-DLeoIHBp.js +0 -515
- package/dist/src/goblin-CmfCfwqk.cjs +0 -22
- package/dist/src/goblin-CtcaORRH.js +0 -22
- package/dist/src/goblin-DF6DDhM-.js +0 -22
- package/dist/src/goblin-Nai0xxBV.js +0 -23
- package/dist/src/google-ClpkLtKL.cjs +0 -142
- package/dist/src/google-CrFgKu9k.js +0 -143
- package/dist/src/google-Dj_EIBqS.js +0 -142
- package/dist/src/google-e4-vARv6.js +0 -142
- package/dist/src/graders-BN1IIa71.js +0 -15470
- package/dist/src/graders-C5sCfSP5.js +0 -2
- package/dist/src/hydra-B7RfXVBK.js +0 -2
- package/dist/src/hydra-C1cFN-Jg.js +0 -613
- package/dist/src/hydra-CK6Uc1ia.js +0 -612
- package/dist/src/hydra-Dg65rAP_.js +0 -610
- package/dist/src/hydra-Fqx8l_Xu.cjs +0 -612
- package/dist/src/image-BdlUDAtp.js +0 -163
- package/dist/src/image-C-KwEhwt.cjs +0 -163
- package/dist/src/image-C76fp6NK.cjs +0 -209
- package/dist/src/image-D75ehv3D.js +0 -482
- package/dist/src/image-DKtc5v5W.js +0 -209
- package/dist/src/image-DT_xOkJY.js +0 -163
- package/dist/src/image-DVpdllEE.js +0 -209
- package/dist/src/image-DXZ8AzMf.js +0 -481
- package/dist/src/image-DZl_1mvy.js +0 -164
- package/dist/src/image-DcTD7Ak0.cjs +0 -504
- package/dist/src/image-ndxEvBKB.js +0 -210
- package/dist/src/indirectWebPwn-70WA5x_q.js +0 -435
- package/dist/src/indirectWebPwn-BRVyd3qV.cjs +0 -463
- package/dist/src/indirectWebPwn-BsJVsu0q.js +0 -285
- package/dist/src/indirectWebPwn-Cw6yJu0i.js +0 -285
- package/dist/src/indirectWebPwn-D-PhJzo4.js +0 -286
- package/dist/src/indirectWebPwn-DRPHt2I8.js +0 -434
- package/dist/src/indirectWebPwn-DXtfFhd9.cjs +0 -285
- package/dist/src/indirectWebPwn-DvpNouzc.js +0 -434
- package/dist/src/interactions-5ixfW7Cl.js +0 -850
- package/dist/src/interactions-BOUzfmg1.cjs +0 -850
- package/dist/src/interactions-CSSXcGNc.js +0 -851
- package/dist/src/interactions-WB_sgkN0.js +0 -850
- package/dist/src/iterative-BShRNqjC.cjs +0 -549
- package/dist/src/iterative-BcW_ELtB.js +0 -548
- package/dist/src/iterative-BpHbHz8B.js +0 -547
- package/dist/src/iterative-YcchP12d.js +0 -545
- package/dist/src/iterativeImage-BMFE5Hl7.cjs +0 -419
- package/dist/src/iterativeImage-CkSaYLMY.js +0 -417
- package/dist/src/iterativeImage-DAEUlQX_.js +0 -418
- package/dist/src/iterativeImage-DeUSkEnj.js +0 -417
- package/dist/src/iterativeMeta-DbdaKdEO.cjs +0 -439
- package/dist/src/iterativeMeta-DcF9JWEK.js +0 -437
- package/dist/src/iterativeMeta-DkfPqWIC.js +0 -439
- package/dist/src/iterativeMeta-DkrpnVSs.js +0 -440
- package/dist/src/iterativeTree-CEMY1FhE.cjs +0 -879
- package/dist/src/iterativeTree-Cv5W4tX9.js +0 -877
- package/dist/src/iterativeTree-DGvomd3M.js +0 -876
- package/dist/src/iterativeTree-KbtC2Mkz.js +0 -878
- package/dist/src/knowledgeBase-AYRXn4wO.js +0 -163
- package/dist/src/knowledgeBase-BNqQfx01.js +0 -163
- package/dist/src/knowledgeBase-C0IaCCVs.js +0 -164
- package/dist/src/knowledgeBase-C2uj6wK4.cjs +0 -163
- package/dist/src/litellm-CN1ScAwZ.js +0 -147
- package/dist/src/litellm-CTjwiKSa.js +0 -146
- package/dist/src/litellm-Cd4Nj5ue.js +0 -145
- package/dist/src/litellm-DMqLpEBg.cjs +0 -146
- package/dist/src/live-Bt50-InO.cjs +0 -891
- package/dist/src/live-Bu2ujadG.js +0 -2
- package/dist/src/live-C3M52i3p.js +0 -891
- package/dist/src/live-CRfHMO3B.js +0 -892
- package/dist/src/live-iCIpO14m.js +0 -891
- package/dist/src/luma-ray-B8eHC4c8.cjs +0 -309
- package/dist/src/luma-ray-BIvkPw0s.js +0 -309
- package/dist/src/luma-ray-ChsiBxMA.js +0 -309
- package/dist/src/luma-ray-DAvKrInz.js +0 -310
- package/dist/src/mantleChat-5YeEXAZI.js +0 -154
- package/dist/src/mantleChat-D--mW3hl.js +0 -154
- package/dist/src/mantleChat-DHP3siNg.cjs +0 -154
- package/dist/src/mantleChat-wBfAX46o.js +0 -155
- package/dist/src/mcp-49jlEcTQ.js +0 -85
- package/dist/src/mcp-__PIz81I.js +0 -84
- package/dist/src/memoryPoisoning-Chxge74M.js +0 -111
- package/dist/src/memoryPoisoning-QH6NCUVE.js +0 -112
- package/dist/src/memoryPoisoning-tCxZt8Nz.js +0 -111
- package/dist/src/memoryPoisoning-ymrRItRR.cjs +0 -111
- package/dist/src/messages-BE_eZ7NA.js +0 -1127
- package/dist/src/messages-Bo638ShI.js +0 -1127
- package/dist/src/messages-BzR0-NQ1.js +0 -1128
- package/dist/src/messages-Cbg5Pfd0.cjs +0 -1161
- package/dist/src/mischievousUser-BtED2Z5Z.cjs +0 -51
- package/dist/src/mischievousUser-KqSOjrDJ.js +0 -51
- package/dist/src/mischievousUser-YMD41YNZ.js +0 -51
- package/dist/src/mischievousUser-zBxlNdCu.js +0 -52
- package/dist/src/modelslab-B8gZxtfE.js +0 -171
- package/dist/src/modelslab-C7bmVpTB.js +0 -170
- package/dist/src/modelslab-CCeQCTZg.js +0 -170
- package/dist/src/modelslab-CvBJGv7y.cjs +0 -170
- package/dist/src/nova-reel-BOEWsEKA.cjs +0 -272
- package/dist/src/nova-reel-BtyBXq5M.js +0 -273
- package/dist/src/nova-reel-C1eF3-EE.js +0 -272
- package/dist/src/nova-reel-YhgrxEKT.js +0 -272
- package/dist/src/nova-sonic-BaERP20w.js +0 -374
- package/dist/src/nova-sonic-CxgM3O-P.cjs +0 -374
- package/dist/src/nova-sonic-DJS22fC3.js +0 -375
- package/dist/src/nova-sonic-DwvwHyRX.js +0 -374
- package/dist/src/novita-D1l2tG0O.js +0 -116
- package/dist/src/novita-D84VM3v0.cjs +0 -115
- package/dist/src/novita-DGInvwfR.js +0 -115
- package/dist/src/novita-vXHkXhTg.js +0 -114
- package/dist/src/nscale-CU0Ldr00.js +0 -209
- package/dist/src/nscale-ClfKlQeM.cjs +0 -209
- package/dist/src/nscale-DxaVnF0x.js +0 -210
- package/dist/src/nscale-_poVxIrO.js +0 -207
- package/dist/src/openaiResponses-CJGsneNj.js +0 -317
- package/dist/src/openaiResponses-CKSl5Sdg.js +0 -319
- package/dist/src/openaiResponses-DC8rzFUc.js +0 -318
- package/dist/src/openaiResponses-rMHIA3dV.cjs +0 -318
- package/dist/src/openclaw-CCbvsNFW.cjs +0 -1344
- package/dist/src/openclaw-CZw1lCDZ.js +0 -1336
- package/dist/src/openclaw-ChFLgC-a.js +0 -1338
- package/dist/src/openclaw-DrPMoRrH.js +0 -1337
- package/dist/src/opencode-sdk-2EfIDhFp.cjs +0 -1018
- package/dist/src/opencode-sdk-CHw3F845.js +0 -1013
- package/dist/src/opencode-sdk-D0EGGxvy.js +0 -1012
- package/dist/src/opencode-sdk-jSS7NI2Q.js +0 -1012
- package/dist/src/openinterpreter-CY622xHC.js +0 -431
- package/dist/src/openinterpreter-DATyhuhP.js +0 -432
- package/dist/src/openinterpreter-DDUMyIf1.js +0 -431
- package/dist/src/openinterpreter-s5Tz6Lid.cjs +0 -435
- package/dist/src/pricing-C498twd2.js +0 -976
- package/dist/src/pricing-DBd_bMIh.cjs +0 -999
- package/dist/src/pricing-ISrMCskv.js +0 -976
- package/dist/src/promptfoo-6p0WG2ih.js +0 -286
- package/dist/src/promptfoo-BQRfgNs_.js +0 -285
- package/dist/src/promptfoo-Bqo88z20.cjs +0 -341
- package/dist/src/promptfoo-Cq5AVI3I.js +0 -286
- package/dist/src/providers-ATbeMX5E.cjs +0 -24180
- package/dist/src/providers-B7F1FiNI.js +0 -2
- package/dist/src/providers-DazIw8mI.js +0 -24039
- package/dist/src/providers-QvGlNAD0.js +0 -24437
- package/dist/src/quiverai-BPlNcLkV.cjs +0 -325
- package/dist/src/quiverai-By99-YmJ.js +0 -325
- package/dist/src/quiverai-CmmByDqo.js +0 -325
- package/dist/src/quiverai-HZkoJJqw.js +0 -326
- package/dist/src/registry-BLTnTfjT.cjs +0 -131
- package/dist/src/registry-BMC-COHT.js +0 -132
- package/dist/src/registry-C8UZtmBp.js +0 -131
- package/dist/src/registry-CfwEUYXG.js +0 -131
- package/dist/src/remoteGeneration-Bgg6kC5V.js +0 -370
- package/dist/src/remoteGeneration-CKJFE960.cjs +0 -482
- package/dist/src/remoteGeneration-DaxwJDKv.js +0 -370
- package/dist/src/remoteGeneration-vHMGVKr1.js +0 -371
- package/dist/src/responses-BvnyIHrq.js +0 -1099
- package/dist/src/responses-CERAgvf-.js +0 -1098
- package/dist/src/responses-CwgjeuOg.cjs +0 -1109
- package/dist/src/runtimeTransform-3RF9Avyg.cjs +0 -161
- package/dist/src/runtimeTransform-C51Z5j4H.js +0 -156
- package/dist/src/runtimeTransform-CKE_Iyv8.js +0 -157
- package/dist/src/runtimeTransform-Cs11xJpj.js +0 -156
- package/dist/src/sagemaker-BJ4dOCxE.js +0 -713
- package/dist/src/sagemaker-Bt3JUAWq.js +0 -714
- package/dist/src/sagemaker-QVKyLgLF.cjs +0 -716
- package/dist/src/sagemaker-l3IB8iTs.js +0 -713
- package/dist/src/scanner-DGjIiTZ1.js +0 -1971
- package/dist/src/server-BNaLZH6u.js +0 -63
- package/dist/src/server-CBMuQul3.js +0 -189
- package/dist/src/server-CMKKIzKv.cjs +0 -74
- package/dist/src/server-CN2IS9Cs.js +0 -155
- package/dist/src/server-ua4cqbjC.js +0 -2
- package/dist/src/session-CQIjq_HZ.cjs +0 -69
- package/dist/src/session-FTlg8sEu.js +0 -62
- package/dist/src/session-GBQXtPWp.js +0 -63
- package/dist/src/session-_0-rTdwY.js +0 -62
- package/dist/src/shared-BtuO-OAM.js +0 -1927
- package/dist/src/shared-Ci78wTZX.js +0 -1928
- package/dist/src/shared-Dd3rimdM.js +0 -1929
- package/dist/src/shared-KAjFxRre.cjs +0 -2185
- package/dist/src/simulatedUser--OjW6xCx.js +0 -247
- package/dist/src/simulatedUser-D0-slRye.cjs +0 -252
- package/dist/src/simulatedUser-D1Kh_cwA.js +0 -248
- package/dist/src/slack-BX0FUevO.js +0 -144
- package/dist/src/slack-CcwXFiJE.cjs +0 -144
- package/dist/src/slack-CnfqKfXp.js +0 -145
- package/dist/src/strategies-2ntcK4tN.js +0 -2248
- package/dist/src/strategies-DZIW7Zcs.js +0 -2385
- package/dist/src/strategies-YRDF2j-N.cjs +0 -2420
- package/dist/src/telemetry-CL8CVA4p.js +0 -205
- package/dist/src/telemetry-Cix90qqz.js +0 -201
- package/dist/src/telemetry-CkmlqTjV.js +0 -205
- package/dist/src/telemetry-DQH7l5bb.js +0 -2
- package/dist/src/telemetry-DUCXc1-r.cjs +0 -216
- package/dist/src/togetherai-3yUt5Ck7.js +0 -49
- package/dist/src/togetherai-BJUByLwt.cjs +0 -49
- package/dist/src/togetherai-Bh6KZkmd.js +0 -50
- package/dist/src/togetherai-DDl9yk3b.js +0 -48
- package/dist/src/traceContext-BiJVppjT.cjs +0 -1032
- package/dist/src/traceContext-CKKluULP.js +0 -1016
- package/dist/src/traceContext-D3Sk8fO-.js +0 -1015
- package/dist/src/transcription-BoVQKIVz.js +0 -175
- package/dist/src/transcription-Bs5u8780.js +0 -175
- package/dist/src/transcription-Dl654d1p.cjs +0 -178
- package/dist/src/transcription-VEvhM1Fu.js +0 -176
- package/dist/src/transform-BAbkGpvl.js +0 -125
- package/dist/src/transform-C_j4hUH8.js +0 -126
- package/dist/src/transform-Da86hs4M.cjs +0 -154
- package/dist/src/transform-_i1raQNo.js +0 -125
- package/dist/src/typesafe-CKXBeh82.cjs +0 -253
- package/dist/src/typesafe-D3VaGeNm.js +0 -253
- package/dist/src/typesafe-DYM-SFNH.js +0 -253
- package/dist/src/typesafe-LXmSbw8F.js +0 -254
- package/dist/src/util-41rb0XHX.js +0 -743
- package/dist/src/util-B0WlHYFM.js +0 -2049
- package/dist/src/util-BD1R_PsR.js +0 -1770
- package/dist/src/util-BLbM_ItC.js +0 -395
- package/dist/src/util-C72P0iIa.js +0 -352
- package/dist/src/util-C7MpGlJ6.cjs +0 -2305
- package/dist/src/util-CCtqagKc.js +0 -286
- package/dist/src/util-CM2Ec_uY.js +0 -2051
- package/dist/src/util-CSSAWO8v.js +0 -351
- package/dist/src/util-CkQc-fx3.cjs +0 -934
- package/dist/src/util-DcOlFTFa.cjs +0 -478
- package/dist/src/util-DluGTGVB.js +0 -395
- package/dist/src/util-PfQ60chz.js +0 -743
- package/dist/src/util-f14-CPij.js +0 -396
- package/dist/src/util-l9pXX3Eu.cjs +0 -357
- package/dist/src/util-o_BnlYqS.js +0 -2050
- package/dist/src/vertex-B_-gQgzc.js +0 -2
- package/dist/src/vertex-CU4gqoYa.js +0 -854
- package/dist/src/vertex-DZ42UHb3.js +0 -848
- package/dist/src/vertex-DsYQJA0T.cjs +0 -871
- package/dist/src/vertexLive-BvIaHKGB.js +0 -55
- package/dist/src/vertexLive-CTULqNx7.js +0 -56
- package/dist/src/vertexLive-DjJ_YQBe.cjs +0 -55
- package/dist/src/vertexLive-STUGcteB.js +0 -55
- package/dist/src/video-CAQGmtEV.js +0 -703
- package/dist/src/video-_FSTWlwX.js +0 -702
- package/dist/src/video-aBPJPWdt.js +0 -702
- package/dist/src/video-gDjkWv5m.cjs +0 -706
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { J as getEnvBool, X as getEnvInt, c as logger, lt as state, tt as getProcessEnv } from "./logger-pCNnmVuz.js";
|
|
3
|
-
import { S as isCallerAbortError, y as waitForPromiseWithAbort } from "./shared-DS_sDrmK.js";
|
|
4
|
-
import { g as withGenAIToolSpan } from "./genaiTracer-j8OXa5Va.js";
|
|
5
|
-
import "./tracing-Eev_7A4e.js";
|
|
6
|
-
import { t as isMissingPackageImportError } from "./packageImportErrors-B9NSwzz-.js";
|
|
7
|
-
import { a as getOAuthTokenWithExpiry, l as renderAuthVars, n as getAuthHeaders, r as getAuthQueryParams, t as applyQueryParams, u as sanitizeMcpToolData } from "./util-C72P0iIa.js";
|
|
8
|
-
import { t as McpConfigSchema } from "./mcp-49jlEcTQ.js";
|
|
9
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
10
|
-
import path from "path";
|
|
11
|
-
//#region src/providers/mcp/client.ts
|
|
12
|
-
const oauthRequestSignal = new AsyncLocalStorage();
|
|
13
|
-
/**
|
|
14
|
-
* Refresh tokens per request without reconnecting and aborting other tool calls.
|
|
15
|
-
* Retry a rejected token once on HTTP 401; return other failures without a retry.
|
|
16
|
-
*/
|
|
17
|
-
function createOAuthFetch(auth, serverUrl) {
|
|
18
|
-
return async (url, init) => {
|
|
19
|
-
let requestSignal;
|
|
20
|
-
if (typeof init?.body === "string") try {
|
|
21
|
-
if (JSON.parse(init.body).method === "tools/call") requestSignal = oauthRequestSignal.getStore();
|
|
22
|
-
} catch {}
|
|
23
|
-
const signal = requestSignal && init?.signal ? AbortSignal.any([requestSignal, init.signal]) : requestSignal ?? init?.signal;
|
|
24
|
-
const send = async (rejectedToken) => {
|
|
25
|
-
signal?.throwIfAborted();
|
|
26
|
-
const { accessToken } = await getOAuthTokenWithExpiry(auth, serverUrl, rejectedToken, signal ?? void 0);
|
|
27
|
-
signal?.throwIfAborted();
|
|
28
|
-
const headers = new Headers(init?.headers);
|
|
29
|
-
headers.set("Authorization", `Bearer ${accessToken}`);
|
|
30
|
-
return {
|
|
31
|
-
accessToken,
|
|
32
|
-
response: await fetch(url, {
|
|
33
|
-
...init,
|
|
34
|
-
headers,
|
|
35
|
-
signal
|
|
36
|
-
})
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
const first = await send();
|
|
40
|
-
if (first.response.status !== 401) return first.response;
|
|
41
|
-
logger.debug("[MCP] Server rejected the OAuth token; retrying with a new token");
|
|
42
|
-
await first.response.body?.cancel();
|
|
43
|
-
return (await send(first.accessToken)).response;
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Environment for a spawned stdio MCP server: the promptfoo process environment with
|
|
48
|
-
* the server's own `env` map layered on top. Per-server values win so a config can
|
|
49
|
-
* override an inherited variable (e.g. a scoped token) without unsetting the rest.
|
|
50
|
-
*/
|
|
51
|
-
function getStdioEnv(server) {
|
|
52
|
-
const parentEnv = getProcessEnv();
|
|
53
|
-
return server.env ? {
|
|
54
|
-
...parentEnv,
|
|
55
|
-
...server.env
|
|
56
|
-
} : parentEnv;
|
|
57
|
-
}
|
|
58
|
-
async function loadMcpClientSdk() {
|
|
59
|
-
try {
|
|
60
|
-
return await import("@modelcontextprotocol/sdk/client/index.js");
|
|
61
|
-
} catch (error) {
|
|
62
|
-
if (isMissingPackageImportError(error, "@modelcontextprotocol/sdk")) throw new Error("The @modelcontextprotocol/sdk package is required for MCP provider support. Install it with: npm install @modelcontextprotocol/sdk");
|
|
63
|
-
throw error;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Get the effective request options for MCP requests.
|
|
68
|
-
* Priority: config values > MCP_REQUEST_TIMEOUT_MS env var > undefined (SDK default of 60s)
|
|
69
|
-
*/
|
|
70
|
-
function getEffectiveRequestOptions(config) {
|
|
71
|
-
const timeout = config.timeout ?? getEnvInt("MCP_REQUEST_TIMEOUT_MS");
|
|
72
|
-
if (!timeout && !config.resetTimeoutOnProgress && !config.maxTotalTimeout) return;
|
|
73
|
-
const options = {};
|
|
74
|
-
if (timeout) options.timeout = timeout;
|
|
75
|
-
if (config.resetTimeoutOnProgress) options.resetTimeoutOnProgress = config.resetTimeoutOnProgress;
|
|
76
|
-
if (config.maxTotalTimeout) options.maxTotalTimeout = config.maxTotalTimeout;
|
|
77
|
-
return options;
|
|
78
|
-
}
|
|
79
|
-
var MCPClient = class {
|
|
80
|
-
clients = /* @__PURE__ */ new Map();
|
|
81
|
-
tools = /* @__PURE__ */ new Map();
|
|
82
|
-
config;
|
|
83
|
-
transports = /* @__PURE__ */ new Map();
|
|
84
|
-
cleanupPromise = null;
|
|
85
|
-
startupController = new AbortController();
|
|
86
|
-
pendingConnections = /* @__PURE__ */ new Set();
|
|
87
|
-
get hasInitialized() {
|
|
88
|
-
return this.clients.size > 0;
|
|
89
|
-
}
|
|
90
|
-
get connectedServers() {
|
|
91
|
-
return Array.from(this.clients.keys());
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Check if debug mode is enabled (config takes priority over env var)
|
|
95
|
-
*/
|
|
96
|
-
get isDebugEnabled() {
|
|
97
|
-
return this.config.debug ?? getEnvBool("MCP_DEBUG") ?? false;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Check if verbose mode is enabled (config takes priority over env var)
|
|
101
|
-
*/
|
|
102
|
-
get isVerboseEnabled() {
|
|
103
|
-
return this.config.verbose ?? getEnvBool("MCP_VERBOSE") ?? false;
|
|
104
|
-
}
|
|
105
|
-
constructor(config) {
|
|
106
|
-
this.config = McpConfigSchema.parse(config);
|
|
107
|
-
}
|
|
108
|
-
async initialize() {
|
|
109
|
-
if (this.cleanupPromise) await this.cleanupPromise;
|
|
110
|
-
if (!this.config.enabled) return;
|
|
111
|
-
if (this.startupController.signal.aborted) this.startupController = new AbortController();
|
|
112
|
-
const signal = this.startupController.signal;
|
|
113
|
-
const servers = this.config.servers || (this.config.server ? [this.config.server] : []);
|
|
114
|
-
const usedKeys = new Set(this.clients.keys());
|
|
115
|
-
for (const server of servers) {
|
|
116
|
-
const baseKey = server.name || server.url || server.path || server.command || "default";
|
|
117
|
-
let serverKey = baseKey;
|
|
118
|
-
for (let suffix = 1; usedKeys.has(serverKey); suffix++) serverKey = `${baseKey}:${suffix}`;
|
|
119
|
-
usedKeys.add(serverKey);
|
|
120
|
-
logger.info(`connecting to server ${serverKey}`);
|
|
121
|
-
await this.connectToServer(server, serverKey, signal);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
async connectToServer(server, serverKey, signal) {
|
|
125
|
-
signal.throwIfAborted();
|
|
126
|
-
const { Client } = await loadMcpClientSdk();
|
|
127
|
-
signal.throwIfAborted();
|
|
128
|
-
const client = new Client({
|
|
129
|
-
name: "promptfoo-MCP",
|
|
130
|
-
version: "1.0.0",
|
|
131
|
-
description: "Promptfoo MCP client for connecting to MCP servers during LLM evaluations"
|
|
132
|
-
});
|
|
133
|
-
let transport;
|
|
134
|
-
let closingTransport;
|
|
135
|
-
let closePromise;
|
|
136
|
-
const close = () => {
|
|
137
|
-
if (!closePromise || closingTransport !== transport) {
|
|
138
|
-
closingTransport = transport;
|
|
139
|
-
closePromise = this.closeConnection(client, transport);
|
|
140
|
-
}
|
|
141
|
-
return closePromise;
|
|
142
|
-
};
|
|
143
|
-
this.pendingConnections.add(close);
|
|
144
|
-
try {
|
|
145
|
-
const requestOptions = {
|
|
146
|
-
...getEffectiveRequestOptions(this.config),
|
|
147
|
-
signal
|
|
148
|
-
};
|
|
149
|
-
if (server.command) {
|
|
150
|
-
const { StdioClientTransport } = await import("@modelcontextprotocol/sdk/client/stdio.js");
|
|
151
|
-
signal.throwIfAborted();
|
|
152
|
-
transport = new StdioClientTransport({
|
|
153
|
-
command: server.command,
|
|
154
|
-
args: server.args ?? [],
|
|
155
|
-
env: getStdioEnv(server)
|
|
156
|
-
});
|
|
157
|
-
await client.connect(transport, requestOptions);
|
|
158
|
-
} else if (server.path) {
|
|
159
|
-
const isJs = server.path.endsWith(".js");
|
|
160
|
-
const isPy = server.path.endsWith(".py");
|
|
161
|
-
if (!isJs && !isPy) throw new Error("Local server must be a .js or .py file");
|
|
162
|
-
const command = isPy ? process.platform === "win32" ? "python" : "python3" : process.execPath;
|
|
163
|
-
const serverPath = state.basePath ? path.resolve(state.basePath, server.path) : server.path;
|
|
164
|
-
const { StdioClientTransport } = await import("@modelcontextprotocol/sdk/client/stdio.js");
|
|
165
|
-
signal.throwIfAborted();
|
|
166
|
-
transport = new StdioClientTransport({
|
|
167
|
-
command,
|
|
168
|
-
args: [serverPath],
|
|
169
|
-
env: getStdioEnv(server)
|
|
170
|
-
});
|
|
171
|
-
await client.connect(transport, requestOptions);
|
|
172
|
-
} else if (server.url) {
|
|
173
|
-
const renderedServer = renderAuthVars(server);
|
|
174
|
-
let oauthFetch;
|
|
175
|
-
let authHeaders = {};
|
|
176
|
-
if (renderedServer.auth?.type === "oauth") {
|
|
177
|
-
const oauthAuth = renderedServer.auth;
|
|
178
|
-
logger.debug("[MCP] Fetching OAuth token");
|
|
179
|
-
await getOAuthTokenWithExpiry(oauthAuth, server.url, void 0, signal);
|
|
180
|
-
signal.throwIfAborted();
|
|
181
|
-
oauthFetch = createOAuthFetch(oauthAuth, server.url);
|
|
182
|
-
} else authHeaders = getAuthHeaders(renderedServer);
|
|
183
|
-
const headers = {
|
|
184
|
-
...server.headers,
|
|
185
|
-
...authHeaders
|
|
186
|
-
};
|
|
187
|
-
const queryParams = getAuthQueryParams(renderedServer);
|
|
188
|
-
const serverUrl = applyQueryParams(server.url, queryParams);
|
|
189
|
-
const transportOptions = {
|
|
190
|
-
...Object.keys(headers).length > 0 && { requestInit: { headers } },
|
|
191
|
-
...oauthFetch && { fetch: oauthFetch }
|
|
192
|
-
};
|
|
193
|
-
const hasOptions = Object.keys(transportOptions).length > 0;
|
|
194
|
-
try {
|
|
195
|
-
const { StreamableHTTPClientTransport } = await import("@modelcontextprotocol/sdk/client/streamableHttp.js");
|
|
196
|
-
signal.throwIfAborted();
|
|
197
|
-
transport = new StreamableHTTPClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
|
|
198
|
-
await client.connect(transport, requestOptions);
|
|
199
|
-
logger.debug("Connected using Streamable HTTP transport");
|
|
200
|
-
} catch (error) {
|
|
201
|
-
logger.debug(`Failed to connect to MCP server with Streamable HTTP transport ${serverKey}: ${error}`);
|
|
202
|
-
if (transport) {
|
|
203
|
-
await transport.close().catch(() => void 0);
|
|
204
|
-
transport = void 0;
|
|
205
|
-
}
|
|
206
|
-
signal.throwIfAborted();
|
|
207
|
-
const { SSEClientTransport } = await import("@modelcontextprotocol/sdk/client/sse.js");
|
|
208
|
-
signal.throwIfAborted();
|
|
209
|
-
transport = new SSEClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
|
|
210
|
-
await client.connect(transport, requestOptions);
|
|
211
|
-
logger.debug("Connected using SSE transport");
|
|
212
|
-
}
|
|
213
|
-
} else throw new Error("Either command or path or url must be specified for MCP server");
|
|
214
|
-
signal.throwIfAborted();
|
|
215
|
-
if (this.config.pingOnConnect) try {
|
|
216
|
-
await client.ping(requestOptions);
|
|
217
|
-
logger.debug(`MCP server ${serverKey} ping successful`);
|
|
218
|
-
} catch (pingError) {
|
|
219
|
-
const pingErrorMessage = pingError instanceof Error ? pingError.message : String(pingError);
|
|
220
|
-
throw new Error(`MCP server ${serverKey} ping failed: ${pingErrorMessage}`);
|
|
221
|
-
}
|
|
222
|
-
const serverTools = (await client.listTools(void 0, requestOptions))?.tools?.map((tool) => ({
|
|
223
|
-
name: tool.name,
|
|
224
|
-
description: tool.description || "",
|
|
225
|
-
inputSchema: tool.inputSchema
|
|
226
|
-
})) || [];
|
|
227
|
-
let filteredTools = serverTools;
|
|
228
|
-
if (this.config.tools) filteredTools = serverTools.filter((tool) => this.config.tools?.includes(tool.name));
|
|
229
|
-
if (this.config.exclude_tools) filteredTools = filteredTools.filter((tool) => !this.config.exclude_tools?.includes(tool.name));
|
|
230
|
-
signal.throwIfAborted();
|
|
231
|
-
this.transports.set(serverKey, transport);
|
|
232
|
-
this.clients.set(serverKey, client);
|
|
233
|
-
this.tools.set(serverKey, filteredTools);
|
|
234
|
-
if (this.isVerboseEnabled) console.log(`Connected to MCP server ${serverKey} with tools:`, filteredTools.map((tool) => tool.name));
|
|
235
|
-
} catch (error) {
|
|
236
|
-
if (this.clients.get(serverKey) === client) {
|
|
237
|
-
this.clients.delete(serverKey);
|
|
238
|
-
this.transports.delete(serverKey);
|
|
239
|
-
this.tools.delete(serverKey);
|
|
240
|
-
}
|
|
241
|
-
await close();
|
|
242
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
243
|
-
if (this.isDebugEnabled) logger.error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
|
|
244
|
-
throw new Error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
|
|
245
|
-
} finally {
|
|
246
|
-
this.pendingConnections.delete(close);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
async closeConnection(client, transport) {
|
|
250
|
-
for (const resource of [transport, client]) try {
|
|
251
|
-
await resource?.close();
|
|
252
|
-
} catch (error) {
|
|
253
|
-
if (this.isDebugEnabled) logger.error(`Error during cleanup: ${error instanceof Error ? error.message : String(error)}`);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
getAllTools() {
|
|
257
|
-
return Array.from(this.tools.values()).flat();
|
|
258
|
-
}
|
|
259
|
-
async callTool(name, args, signal) {
|
|
260
|
-
signal?.throwIfAborted();
|
|
261
|
-
return await withGenAIToolSpan({
|
|
262
|
-
name,
|
|
263
|
-
arguments: sanitizeMcpToolData(args),
|
|
264
|
-
resultFormat: "mcp"
|
|
265
|
-
}, () => this.callToolInternal(name, args, signal));
|
|
266
|
-
}
|
|
267
|
-
async callToolInternal(name, args, signal) {
|
|
268
|
-
const timeoutOptions = getEffectiveRequestOptions(this.config);
|
|
269
|
-
const requestOptions = signal ? {
|
|
270
|
-
...timeoutOptions,
|
|
271
|
-
signal
|
|
272
|
-
} : timeoutOptions;
|
|
273
|
-
const disconnectedServers = [];
|
|
274
|
-
for (const [serverKey, serverTools] of this.tools.entries()) {
|
|
275
|
-
signal?.throwIfAborted();
|
|
276
|
-
if (!serverTools.some((tool) => tool.name === name)) continue;
|
|
277
|
-
const client = this.clients.get(serverKey);
|
|
278
|
-
if (!client) {
|
|
279
|
-
disconnectedServers.push(serverKey);
|
|
280
|
-
continue;
|
|
281
|
-
}
|
|
282
|
-
try {
|
|
283
|
-
const finished = new AbortController();
|
|
284
|
-
const requestSignal = signal ? AbortSignal.any([signal, finished.signal]) : finished.signal;
|
|
285
|
-
let result;
|
|
286
|
-
try {
|
|
287
|
-
result = await waitForPromiseWithAbort(oauthRequestSignal.run(requestSignal, () => client.callTool({
|
|
288
|
-
name,
|
|
289
|
-
arguments: args
|
|
290
|
-
}, void 0, requestOptions)), signal);
|
|
291
|
-
} finally {
|
|
292
|
-
finished.abort();
|
|
293
|
-
}
|
|
294
|
-
if (!result.isError) signal?.throwIfAborted();
|
|
295
|
-
let content = "";
|
|
296
|
-
if (result?.content) {
|
|
297
|
-
if (typeof result.content === "string") try {
|
|
298
|
-
const parsed = JSON.parse(result.content);
|
|
299
|
-
content = typeof parsed === "string" ? parsed : JSON.stringify(parsed);
|
|
300
|
-
} catch {
|
|
301
|
-
content = result.content;
|
|
302
|
-
}
|
|
303
|
-
else if (Buffer.isBuffer(result.content)) content = result.content.toString();
|
|
304
|
-
else content = JSON.stringify(result.content);
|
|
305
|
-
}
|
|
306
|
-
return {
|
|
307
|
-
content,
|
|
308
|
-
...result.isError ? { isError: true } : {},
|
|
309
|
-
raw: result
|
|
310
|
-
};
|
|
311
|
-
} catch (error) {
|
|
312
|
-
if (isCallerAbortError(error, signal, { requireReasonMatch: true })) throw signal.reason;
|
|
313
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
314
|
-
if (this.isDebugEnabled) logger.error(`Error calling tool ${name}: ${errorMessage}`);
|
|
315
|
-
return {
|
|
316
|
-
content: "",
|
|
317
|
-
error: errorMessage
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
if (disconnectedServers.length > 0) {
|
|
322
|
-
const plural = disconnectedServers.length > 1 ? "s are" : " is";
|
|
323
|
-
throw new Error(`Tool ${name} is known but MCP server${plural} disconnected: ${disconnectedServers.join(", ")}`);
|
|
324
|
-
}
|
|
325
|
-
throw new Error(`Tool ${name} not found in any connected MCP server`);
|
|
326
|
-
}
|
|
327
|
-
async cleanup() {
|
|
328
|
-
this.cleanupPromise ??= this.cleanupInternal();
|
|
329
|
-
const cleanup = this.cleanupPromise;
|
|
330
|
-
try {
|
|
331
|
-
await cleanup;
|
|
332
|
-
} finally {
|
|
333
|
-
if (this.cleanupPromise === cleanup) this.cleanupPromise = null;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
async cleanupInternal() {
|
|
337
|
-
this.startupController.abort();
|
|
338
|
-
await Promise.all([...this.pendingConnections].map((close) => close()));
|
|
339
|
-
const connections = [...this.clients].map(([serverKey, client]) => ({
|
|
340
|
-
client,
|
|
341
|
-
transport: this.transports.get(serverKey)
|
|
342
|
-
}));
|
|
343
|
-
this.clients.clear();
|
|
344
|
-
this.transports.clear();
|
|
345
|
-
this.tools.clear();
|
|
346
|
-
for (const { client, transport } of connections) await this.closeConnection(client, transport);
|
|
347
|
-
}
|
|
348
|
-
};
|
|
349
|
-
//#endregion
|
|
350
|
-
export { MCPClient as t };
|
|
351
|
-
|
|
352
|
-
//# sourceMappingURL=client-BFf1r6Z8.js.map
|
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
import { f as McpConfigSchema } from "./shared-DS0YmCOx.js";
|
|
2
|
-
import { G as getEnvInt, U as getEnvBool, X as getProcessEnv, o as logger, rt as state } from "./logger-CNHLbG5Y.js";
|
|
3
|
-
import { S as isCallerAbortError, y as waitForPromiseWithAbort } from "./shared-BnN4RWgk.js";
|
|
4
|
-
import { g as withGenAIToolSpan } from "./genaiTracer-QTyx3Q-T.js";
|
|
5
|
-
import "./tracing-B8p6SMbW.js";
|
|
6
|
-
import { a as getOAuthTokenWithExpiry, l as renderAuthVars, n as getAuthHeaders, r as getAuthQueryParams, t as applyQueryParams, u as sanitizeMcpToolData } from "./util-CCtqagKc.js";
|
|
7
|
-
import { t as isMissingPackageImportError } from "./packageImportErrors-rgCkzu81.js";
|
|
8
|
-
import path from "path";
|
|
9
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
10
|
-
//#region src/providers/mcp/client.ts
|
|
11
|
-
const oauthRequestSignal = new AsyncLocalStorage();
|
|
12
|
-
/**
|
|
13
|
-
* Refresh tokens per request without reconnecting and aborting other tool calls.
|
|
14
|
-
* Retry a rejected token once on HTTP 401; return other failures without a retry.
|
|
15
|
-
*/
|
|
16
|
-
function createOAuthFetch(auth, serverUrl) {
|
|
17
|
-
return async (url, init) => {
|
|
18
|
-
let requestSignal;
|
|
19
|
-
if (typeof init?.body === "string") try {
|
|
20
|
-
if (JSON.parse(init.body).method === "tools/call") requestSignal = oauthRequestSignal.getStore();
|
|
21
|
-
} catch {}
|
|
22
|
-
const signal = requestSignal && init?.signal ? AbortSignal.any([requestSignal, init.signal]) : requestSignal ?? init?.signal;
|
|
23
|
-
const send = async (rejectedToken) => {
|
|
24
|
-
signal?.throwIfAborted();
|
|
25
|
-
const { accessToken } = await getOAuthTokenWithExpiry(auth, serverUrl, rejectedToken, signal ?? void 0);
|
|
26
|
-
signal?.throwIfAborted();
|
|
27
|
-
const headers = new Headers(init?.headers);
|
|
28
|
-
headers.set("Authorization", `Bearer ${accessToken}`);
|
|
29
|
-
return {
|
|
30
|
-
accessToken,
|
|
31
|
-
response: await fetch(url, {
|
|
32
|
-
...init,
|
|
33
|
-
headers,
|
|
34
|
-
signal
|
|
35
|
-
})
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
const first = await send();
|
|
39
|
-
if (first.response.status !== 401) return first.response;
|
|
40
|
-
logger.debug("[MCP] Server rejected the OAuth token; retrying with a new token");
|
|
41
|
-
await first.response.body?.cancel();
|
|
42
|
-
return (await send(first.accessToken)).response;
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Environment for a spawned stdio MCP server: the promptfoo process environment with
|
|
47
|
-
* the server's own `env` map layered on top. Per-server values win so a config can
|
|
48
|
-
* override an inherited variable (e.g. a scoped token) without unsetting the rest.
|
|
49
|
-
*/
|
|
50
|
-
function getStdioEnv(server) {
|
|
51
|
-
const parentEnv = getProcessEnv();
|
|
52
|
-
return server.env ? {
|
|
53
|
-
...parentEnv,
|
|
54
|
-
...server.env
|
|
55
|
-
} : parentEnv;
|
|
56
|
-
}
|
|
57
|
-
async function loadMcpClientSdk() {
|
|
58
|
-
try {
|
|
59
|
-
return await import("@modelcontextprotocol/sdk/client/index.js");
|
|
60
|
-
} catch (error) {
|
|
61
|
-
if (isMissingPackageImportError(error, "@modelcontextprotocol/sdk")) throw new Error("The @modelcontextprotocol/sdk package is required for MCP provider support. Install it with: npm install @modelcontextprotocol/sdk");
|
|
62
|
-
throw error;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Get the effective request options for MCP requests.
|
|
67
|
-
* Priority: config values > MCP_REQUEST_TIMEOUT_MS env var > undefined (SDK default of 60s)
|
|
68
|
-
*/
|
|
69
|
-
function getEffectiveRequestOptions(config) {
|
|
70
|
-
const timeout = config.timeout ?? getEnvInt("MCP_REQUEST_TIMEOUT_MS");
|
|
71
|
-
if (!timeout && !config.resetTimeoutOnProgress && !config.maxTotalTimeout) return;
|
|
72
|
-
const options = {};
|
|
73
|
-
if (timeout) options.timeout = timeout;
|
|
74
|
-
if (config.resetTimeoutOnProgress) options.resetTimeoutOnProgress = config.resetTimeoutOnProgress;
|
|
75
|
-
if (config.maxTotalTimeout) options.maxTotalTimeout = config.maxTotalTimeout;
|
|
76
|
-
return options;
|
|
77
|
-
}
|
|
78
|
-
var MCPClient = class {
|
|
79
|
-
clients = /* @__PURE__ */ new Map();
|
|
80
|
-
tools = /* @__PURE__ */ new Map();
|
|
81
|
-
config;
|
|
82
|
-
transports = /* @__PURE__ */ new Map();
|
|
83
|
-
cleanupPromise = null;
|
|
84
|
-
startupController = new AbortController();
|
|
85
|
-
pendingConnections = /* @__PURE__ */ new Set();
|
|
86
|
-
get hasInitialized() {
|
|
87
|
-
return this.clients.size > 0;
|
|
88
|
-
}
|
|
89
|
-
get connectedServers() {
|
|
90
|
-
return Array.from(this.clients.keys());
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Check if debug mode is enabled (config takes priority over env var)
|
|
94
|
-
*/
|
|
95
|
-
get isDebugEnabled() {
|
|
96
|
-
return this.config.debug ?? getEnvBool("MCP_DEBUG") ?? false;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Check if verbose mode is enabled (config takes priority over env var)
|
|
100
|
-
*/
|
|
101
|
-
get isVerboseEnabled() {
|
|
102
|
-
return this.config.verbose ?? getEnvBool("MCP_VERBOSE") ?? false;
|
|
103
|
-
}
|
|
104
|
-
constructor(config) {
|
|
105
|
-
this.config = McpConfigSchema.parse(config);
|
|
106
|
-
}
|
|
107
|
-
async initialize() {
|
|
108
|
-
if (this.cleanupPromise) await this.cleanupPromise;
|
|
109
|
-
if (!this.config.enabled) return;
|
|
110
|
-
if (this.startupController.signal.aborted) this.startupController = new AbortController();
|
|
111
|
-
const signal = this.startupController.signal;
|
|
112
|
-
const servers = this.config.servers || (this.config.server ? [this.config.server] : []);
|
|
113
|
-
const usedKeys = new Set(this.clients.keys());
|
|
114
|
-
for (const server of servers) {
|
|
115
|
-
const baseKey = server.name || server.url || server.path || server.command || "default";
|
|
116
|
-
let serverKey = baseKey;
|
|
117
|
-
for (let suffix = 1; usedKeys.has(serverKey); suffix++) serverKey = `${baseKey}:${suffix}`;
|
|
118
|
-
usedKeys.add(serverKey);
|
|
119
|
-
logger.info(`connecting to server ${serverKey}`);
|
|
120
|
-
await this.connectToServer(server, serverKey, signal);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
async connectToServer(server, serverKey, signal) {
|
|
124
|
-
signal.throwIfAborted();
|
|
125
|
-
const { Client } = await loadMcpClientSdk();
|
|
126
|
-
signal.throwIfAborted();
|
|
127
|
-
const client = new Client({
|
|
128
|
-
name: "promptfoo-MCP",
|
|
129
|
-
version: "1.0.0",
|
|
130
|
-
description: "Promptfoo MCP client for connecting to MCP servers during LLM evaluations"
|
|
131
|
-
});
|
|
132
|
-
let transport;
|
|
133
|
-
let closingTransport;
|
|
134
|
-
let closePromise;
|
|
135
|
-
const close = () => {
|
|
136
|
-
if (!closePromise || closingTransport !== transport) {
|
|
137
|
-
closingTransport = transport;
|
|
138
|
-
closePromise = this.closeConnection(client, transport);
|
|
139
|
-
}
|
|
140
|
-
return closePromise;
|
|
141
|
-
};
|
|
142
|
-
this.pendingConnections.add(close);
|
|
143
|
-
try {
|
|
144
|
-
const requestOptions = {
|
|
145
|
-
...getEffectiveRequestOptions(this.config),
|
|
146
|
-
signal
|
|
147
|
-
};
|
|
148
|
-
if (server.command) {
|
|
149
|
-
const { StdioClientTransport } = await import("@modelcontextprotocol/sdk/client/stdio.js");
|
|
150
|
-
signal.throwIfAborted();
|
|
151
|
-
transport = new StdioClientTransport({
|
|
152
|
-
command: server.command,
|
|
153
|
-
args: server.args ?? [],
|
|
154
|
-
env: getStdioEnv(server)
|
|
155
|
-
});
|
|
156
|
-
await client.connect(transport, requestOptions);
|
|
157
|
-
} else if (server.path) {
|
|
158
|
-
const isJs = server.path.endsWith(".js");
|
|
159
|
-
const isPy = server.path.endsWith(".py");
|
|
160
|
-
if (!isJs && !isPy) throw new Error("Local server must be a .js or .py file");
|
|
161
|
-
const command = isPy ? process.platform === "win32" ? "python" : "python3" : process.execPath;
|
|
162
|
-
const serverPath = state.basePath ? path.resolve(state.basePath, server.path) : server.path;
|
|
163
|
-
const { StdioClientTransport } = await import("@modelcontextprotocol/sdk/client/stdio.js");
|
|
164
|
-
signal.throwIfAborted();
|
|
165
|
-
transport = new StdioClientTransport({
|
|
166
|
-
command,
|
|
167
|
-
args: [serverPath],
|
|
168
|
-
env: getStdioEnv(server)
|
|
169
|
-
});
|
|
170
|
-
await client.connect(transport, requestOptions);
|
|
171
|
-
} else if (server.url) {
|
|
172
|
-
const renderedServer = renderAuthVars(server);
|
|
173
|
-
let oauthFetch;
|
|
174
|
-
let authHeaders = {};
|
|
175
|
-
if (renderedServer.auth?.type === "oauth") {
|
|
176
|
-
const oauthAuth = renderedServer.auth;
|
|
177
|
-
logger.debug("[MCP] Fetching OAuth token");
|
|
178
|
-
await getOAuthTokenWithExpiry(oauthAuth, server.url, void 0, signal);
|
|
179
|
-
signal.throwIfAborted();
|
|
180
|
-
oauthFetch = createOAuthFetch(oauthAuth, server.url);
|
|
181
|
-
} else authHeaders = getAuthHeaders(renderedServer);
|
|
182
|
-
const headers = {
|
|
183
|
-
...server.headers,
|
|
184
|
-
...authHeaders
|
|
185
|
-
};
|
|
186
|
-
const queryParams = getAuthQueryParams(renderedServer);
|
|
187
|
-
const serverUrl = applyQueryParams(server.url, queryParams);
|
|
188
|
-
const transportOptions = {
|
|
189
|
-
...Object.keys(headers).length > 0 && { requestInit: { headers } },
|
|
190
|
-
...oauthFetch && { fetch: oauthFetch }
|
|
191
|
-
};
|
|
192
|
-
const hasOptions = Object.keys(transportOptions).length > 0;
|
|
193
|
-
try {
|
|
194
|
-
const { StreamableHTTPClientTransport } = await import("@modelcontextprotocol/sdk/client/streamableHttp.js");
|
|
195
|
-
signal.throwIfAborted();
|
|
196
|
-
transport = new StreamableHTTPClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
|
|
197
|
-
await client.connect(transport, requestOptions);
|
|
198
|
-
logger.debug("Connected using Streamable HTTP transport");
|
|
199
|
-
} catch (error) {
|
|
200
|
-
logger.debug(`Failed to connect to MCP server with Streamable HTTP transport ${serverKey}: ${error}`);
|
|
201
|
-
if (transport) {
|
|
202
|
-
await transport.close().catch(() => void 0);
|
|
203
|
-
transport = void 0;
|
|
204
|
-
}
|
|
205
|
-
signal.throwIfAborted();
|
|
206
|
-
const { SSEClientTransport } = await import("@modelcontextprotocol/sdk/client/sse.js");
|
|
207
|
-
signal.throwIfAborted();
|
|
208
|
-
transport = new SSEClientTransport(new URL(serverUrl), hasOptions ? transportOptions : void 0);
|
|
209
|
-
await client.connect(transport, requestOptions);
|
|
210
|
-
logger.debug("Connected using SSE transport");
|
|
211
|
-
}
|
|
212
|
-
} else throw new Error("Either command or path or url must be specified for MCP server");
|
|
213
|
-
signal.throwIfAborted();
|
|
214
|
-
if (this.config.pingOnConnect) try {
|
|
215
|
-
await client.ping(requestOptions);
|
|
216
|
-
logger.debug(`MCP server ${serverKey} ping successful`);
|
|
217
|
-
} catch (pingError) {
|
|
218
|
-
const pingErrorMessage = pingError instanceof Error ? pingError.message : String(pingError);
|
|
219
|
-
throw new Error(`MCP server ${serverKey} ping failed: ${pingErrorMessage}`);
|
|
220
|
-
}
|
|
221
|
-
const serverTools = (await client.listTools(void 0, requestOptions))?.tools?.map((tool) => ({
|
|
222
|
-
name: tool.name,
|
|
223
|
-
description: tool.description || "",
|
|
224
|
-
inputSchema: tool.inputSchema
|
|
225
|
-
})) || [];
|
|
226
|
-
let filteredTools = serverTools;
|
|
227
|
-
if (this.config.tools) filteredTools = serverTools.filter((tool) => this.config.tools?.includes(tool.name));
|
|
228
|
-
if (this.config.exclude_tools) filteredTools = filteredTools.filter((tool) => !this.config.exclude_tools?.includes(tool.name));
|
|
229
|
-
signal.throwIfAborted();
|
|
230
|
-
this.transports.set(serverKey, transport);
|
|
231
|
-
this.clients.set(serverKey, client);
|
|
232
|
-
this.tools.set(serverKey, filteredTools);
|
|
233
|
-
if (this.isVerboseEnabled) console.log(`Connected to MCP server ${serverKey} with tools:`, filteredTools.map((tool) => tool.name));
|
|
234
|
-
} catch (error) {
|
|
235
|
-
if (this.clients.get(serverKey) === client) {
|
|
236
|
-
this.clients.delete(serverKey);
|
|
237
|
-
this.transports.delete(serverKey);
|
|
238
|
-
this.tools.delete(serverKey);
|
|
239
|
-
}
|
|
240
|
-
await close();
|
|
241
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
242
|
-
if (this.isDebugEnabled) logger.error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
|
|
243
|
-
throw new Error(`Failed to connect to MCP server ${serverKey}: ${errorMessage}`);
|
|
244
|
-
} finally {
|
|
245
|
-
this.pendingConnections.delete(close);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
async closeConnection(client, transport) {
|
|
249
|
-
for (const resource of [transport, client]) try {
|
|
250
|
-
await resource?.close();
|
|
251
|
-
} catch (error) {
|
|
252
|
-
if (this.isDebugEnabled) logger.error(`Error during cleanup: ${error instanceof Error ? error.message : String(error)}`);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
getAllTools() {
|
|
256
|
-
return Array.from(this.tools.values()).flat();
|
|
257
|
-
}
|
|
258
|
-
async callTool(name, args, signal) {
|
|
259
|
-
signal?.throwIfAborted();
|
|
260
|
-
return await withGenAIToolSpan({
|
|
261
|
-
name,
|
|
262
|
-
arguments: sanitizeMcpToolData(args),
|
|
263
|
-
resultFormat: "mcp"
|
|
264
|
-
}, () => this.callToolInternal(name, args, signal));
|
|
265
|
-
}
|
|
266
|
-
async callToolInternal(name, args, signal) {
|
|
267
|
-
const timeoutOptions = getEffectiveRequestOptions(this.config);
|
|
268
|
-
const requestOptions = signal ? {
|
|
269
|
-
...timeoutOptions,
|
|
270
|
-
signal
|
|
271
|
-
} : timeoutOptions;
|
|
272
|
-
const disconnectedServers = [];
|
|
273
|
-
for (const [serverKey, serverTools] of this.tools.entries()) {
|
|
274
|
-
signal?.throwIfAborted();
|
|
275
|
-
if (!serverTools.some((tool) => tool.name === name)) continue;
|
|
276
|
-
const client = this.clients.get(serverKey);
|
|
277
|
-
if (!client) {
|
|
278
|
-
disconnectedServers.push(serverKey);
|
|
279
|
-
continue;
|
|
280
|
-
}
|
|
281
|
-
try {
|
|
282
|
-
const finished = new AbortController();
|
|
283
|
-
const requestSignal = signal ? AbortSignal.any([signal, finished.signal]) : finished.signal;
|
|
284
|
-
let result;
|
|
285
|
-
try {
|
|
286
|
-
result = await waitForPromiseWithAbort(oauthRequestSignal.run(requestSignal, () => client.callTool({
|
|
287
|
-
name,
|
|
288
|
-
arguments: args
|
|
289
|
-
}, void 0, requestOptions)), signal);
|
|
290
|
-
} finally {
|
|
291
|
-
finished.abort();
|
|
292
|
-
}
|
|
293
|
-
if (!result.isError) signal?.throwIfAborted();
|
|
294
|
-
let content = "";
|
|
295
|
-
if (result?.content) {
|
|
296
|
-
if (typeof result.content === "string") try {
|
|
297
|
-
const parsed = JSON.parse(result.content);
|
|
298
|
-
content = typeof parsed === "string" ? parsed : JSON.stringify(parsed);
|
|
299
|
-
} catch {
|
|
300
|
-
content = result.content;
|
|
301
|
-
}
|
|
302
|
-
else if (Buffer.isBuffer(result.content)) content = result.content.toString();
|
|
303
|
-
else content = JSON.stringify(result.content);
|
|
304
|
-
}
|
|
305
|
-
return {
|
|
306
|
-
content,
|
|
307
|
-
...result.isError ? { isError: true } : {},
|
|
308
|
-
raw: result
|
|
309
|
-
};
|
|
310
|
-
} catch (error) {
|
|
311
|
-
if (isCallerAbortError(error, signal, { requireReasonMatch: true })) throw signal.reason;
|
|
312
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
313
|
-
if (this.isDebugEnabled) logger.error(`Error calling tool ${name}: ${errorMessage}`);
|
|
314
|
-
return {
|
|
315
|
-
content: "",
|
|
316
|
-
error: errorMessage
|
|
317
|
-
};
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
if (disconnectedServers.length > 0) {
|
|
321
|
-
const plural = disconnectedServers.length > 1 ? "s are" : " is";
|
|
322
|
-
throw new Error(`Tool ${name} is known but MCP server${plural} disconnected: ${disconnectedServers.join(", ")}`);
|
|
323
|
-
}
|
|
324
|
-
throw new Error(`Tool ${name} not found in any connected MCP server`);
|
|
325
|
-
}
|
|
326
|
-
async cleanup() {
|
|
327
|
-
this.cleanupPromise ??= this.cleanupInternal();
|
|
328
|
-
const cleanup = this.cleanupPromise;
|
|
329
|
-
try {
|
|
330
|
-
await cleanup;
|
|
331
|
-
} finally {
|
|
332
|
-
if (this.cleanupPromise === cleanup) this.cleanupPromise = null;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
async cleanupInternal() {
|
|
336
|
-
this.startupController.abort();
|
|
337
|
-
await Promise.all([...this.pendingConnections].map((close) => close()));
|
|
338
|
-
const connections = [...this.clients].map(([serverKey, client]) => ({
|
|
339
|
-
client,
|
|
340
|
-
transport: this.transports.get(serverKey)
|
|
341
|
-
}));
|
|
342
|
-
this.clients.clear();
|
|
343
|
-
this.transports.clear();
|
|
344
|
-
this.tools.clear();
|
|
345
|
-
for (const { client, transport } of connections) await this.closeConnection(client, transport);
|
|
346
|
-
}
|
|
347
|
-
};
|
|
348
|
-
//#endregion
|
|
349
|
-
export { MCPClient as t };
|
|
350
|
-
|
|
351
|
-
//# sourceMappingURL=client-CdXyDdDi.js.map
|