@mastra/core 1.0.0-beta.1 → 1.0.0-beta.3
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/CHANGELOG.md +171 -0
- package/dist/agent/agent-legacy.d.ts +2 -2
- package/dist/agent/agent-legacy.d.ts.map +1 -1
- package/dist/agent/agent.d.ts +1 -1
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.types.d.ts +3 -2
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +9 -9
- package/dist/agent/index.js +2 -2
- package/dist/agent/message-list/index.cjs +3 -3
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/index.js +1 -1
- package/dist/agent/message-list/prompt/convert-file.d.ts +1 -1
- package/dist/agent/message-list/prompt/convert-file.d.ts.map +1 -1
- package/dist/agent/message-list/prompt/download-assets.d.ts.map +1 -1
- package/dist/agent/types.d.ts +1 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/utils.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/index.d.ts +2 -1
- package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +3 -1
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +2 -1
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +2 -1
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -1
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
- package/dist/chunk-3PSWNGBF.js +3 -0
- package/dist/{chunk-ZV5CC35D.js.map → chunk-3PSWNGBF.js.map} +1 -1
- package/dist/{chunk-IQO7ANVS.cjs → chunk-3VOUB4ZU.cjs} +10 -9
- package/dist/chunk-3VOUB4ZU.cjs.map +1 -0
- package/dist/{chunk-H6CZGPZD.js → chunk-4DWZ4Z6H.js} +157 -24
- package/dist/chunk-4DWZ4Z6H.js.map +1 -0
- package/dist/{chunk-ET6UOTTU.cjs → chunk-4IKJAKCD.cjs} +40 -4
- package/dist/chunk-4IKJAKCD.cjs.map +1 -0
- package/dist/{chunk-MA7TEM62.cjs → chunk-4RSHBKDJ.cjs} +244 -4
- package/dist/chunk-4RSHBKDJ.cjs.map +1 -0
- package/dist/{chunk-MV7KHWUT.js → chunk-5CWWU22H.js} +25 -4
- package/dist/chunk-5CWWU22H.js.map +1 -0
- package/dist/{chunk-JV2KH24V.js → chunk-BAMR7HKO.js} +18 -13
- package/dist/chunk-BAMR7HKO.js.map +1 -0
- package/dist/{chunk-JUBFO5J3.js → chunk-CKGIPST2.js} +829 -92
- package/dist/chunk-CKGIPST2.js.map +1 -0
- package/dist/{chunk-4CDL2QJT.js → chunk-D6EDHNGV.js} +53 -16
- package/dist/chunk-D6EDHNGV.js.map +1 -0
- package/dist/{chunk-CD56CXVE.cjs → chunk-EZVRSZMK.cjs} +13 -12
- package/dist/chunk-EZVRSZMK.cjs.map +1 -0
- package/dist/{chunk-ECFXGXWO.cjs → chunk-G36A2JRR.cjs} +18 -13
- package/dist/chunk-G36A2JRR.cjs.map +1 -0
- package/dist/{chunk-VOQ3ULMT.js → chunk-G3OOCXAI.js} +243 -3
- package/dist/chunk-G3OOCXAI.js.map +1 -0
- package/dist/{chunk-I4CXL4SR.js → chunk-GRGPQ32U.js} +5 -4
- package/dist/chunk-GRGPQ32U.js.map +1 -0
- package/dist/{chunk-WM6CK2F3.cjs → chunk-HBJPYQRN.cjs} +57 -19
- package/dist/chunk-HBJPYQRN.cjs.map +1 -0
- package/dist/{chunk-GGYKYORQ.cjs → chunk-JTXVR2RA.cjs} +27 -6
- package/dist/chunk-JTXVR2RA.cjs.map +1 -0
- package/dist/{chunk-XEVG546F.js → chunk-JXESKY4A.js} +3 -3
- package/dist/{chunk-XEVG546F.js.map → chunk-JXESKY4A.js.map} +1 -1
- package/dist/{chunk-7AHYOMHJ.js → chunk-KEURQGCQ.js} +40 -5
- package/dist/chunk-KEURQGCQ.js.map +1 -0
- package/dist/{chunk-JPGVRWWL.js → chunk-KOSW5PP5.js} +8 -2
- package/dist/chunk-KOSW5PP5.js.map +1 -0
- package/dist/chunk-MCUX2D5Q.js +420 -0
- package/dist/chunk-MCUX2D5Q.js.map +1 -0
- package/dist/chunk-N4SJ4YX7.cjs +424 -0
- package/dist/chunk-N4SJ4YX7.cjs.map +1 -0
- package/dist/{chunk-VOY2RXOC.cjs → chunk-O6NA3Z43.cjs} +6 -6
- package/dist/{chunk-VOY2RXOC.cjs.map → chunk-O6NA3Z43.cjs.map} +1 -1
- package/dist/{chunk-CINNK34N.js → chunk-OQF4H5Y2.js} +6 -5
- package/dist/chunk-OQF4H5Y2.js.map +1 -0
- package/dist/{chunk-MSWTA73A.cjs → chunk-OWX2PUFH.cjs} +866 -126
- package/dist/chunk-OWX2PUFH.cjs.map +1 -0
- package/dist/chunk-PE3V7GUL.cjs +4 -0
- package/dist/{chunk-LJFJTTZQ.cjs.map → chunk-PE3V7GUL.cjs.map} +1 -1
- package/dist/{chunk-HDJFSJCK.js → chunk-T3WZCEC4.js} +4 -3
- package/dist/chunk-T3WZCEC4.js.map +1 -0
- package/dist/{chunk-W7UH2PWL.js → chunk-VU6DVS7J.js} +179 -282
- package/dist/chunk-VU6DVS7J.js.map +1 -0
- package/dist/{chunk-DNEURYF3.cjs → chunk-VZGBVYXA.cjs} +175 -42
- package/dist/chunk-VZGBVYXA.cjs.map +1 -0
- package/dist/{chunk-2ZVKF4HP.cjs → chunk-XRIVPHXV.cjs} +184 -285
- package/dist/chunk-XRIVPHXV.cjs.map +1 -0
- package/dist/{chunk-LWBQ4P4N.cjs → chunk-YQ7NLZZ3.cjs} +54 -53
- package/dist/chunk-YQ7NLZZ3.cjs.map +1 -0
- package/dist/{chunk-CB575O6L.cjs → chunk-ZPMFINU2.cjs} +8 -2
- package/dist/chunk-ZPMFINU2.cjs.map +1 -0
- package/dist/evals/base.d.ts.map +1 -1
- package/dist/evals/index.cjs +4 -4
- package/dist/evals/index.js +1 -1
- package/dist/evals/scoreTraces/index.cjs +5 -4
- package/dist/evals/scoreTraces/index.cjs.map +1 -1
- package/dist/evals/scoreTraces/index.js +3 -2
- package/dist/evals/scoreTraces/index.js.map +1 -1
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/integration/index.cjs +2 -2
- package/dist/integration/index.js +1 -1
- package/dist/llm/index.cjs +26 -10
- package/dist/llm/index.d.ts +1 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +5 -1
- package/dist/llm/model/aisdk/v5/model.d.ts +47 -0
- package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -0
- package/dist/llm/model/gateways/base.d.ts +8 -0
- package/dist/llm/model/gateways/base.d.ts.map +1 -1
- package/dist/llm/model/gateways/models-dev.d.ts +1 -0
- package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
- package/dist/llm/model/gateways/netlify.d.ts +2 -1
- package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
- package/dist/llm/model/is-v2-model.d.ts +3 -0
- package/dist/llm/model/is-v2-model.d.ts.map +1 -0
- package/dist/llm/model/model-method-from-agent.d.ts +4 -0
- package/dist/llm/model/model-method-from-agent.d.ts.map +1 -0
- package/dist/llm/model/model.loop.d.ts +2 -2
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/llm/model/model.loop.types.d.ts +2 -0
- package/dist/llm/model/model.loop.types.d.ts.map +1 -1
- package/dist/llm/model/provider-registry.d.ts +11 -1
- package/dist/llm/model/provider-registry.d.ts.map +1 -1
- package/dist/llm/model/provider-types.generated.d.ts +56 -7
- package/dist/llm/model/registry-generator.d.ts.map +1 -1
- package/dist/llm/model/resolve-model.d.ts +1 -1
- package/dist/llm/model/resolve-model.d.ts.map +1 -1
- package/dist/llm/model/router.d.ts +12 -5
- package/dist/llm/model/router.d.ts.map +1 -1
- package/dist/llm/model/shared.types.d.ts +10 -4
- package/dist/llm/model/shared.types.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/network/index.d.ts.map +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +37 -0
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -0
- package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
- package/dist/loop/test-utils/generateText.d.ts.map +1 -1
- package/dist/loop/test-utils/options.d.ts.map +1 -1
- package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
- package/dist/loop/test-utils/textStream.d.ts.map +1 -1
- package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -1
- package/dist/loop/test-utils/tools.d.ts.map +1 -1
- package/dist/loop/test-utils/utils.d.ts +1 -1
- package/dist/loop/test-utils/utils.d.ts.map +1 -1
- package/dist/loop/types.d.ts +8 -3
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/index.d.ts +12 -12
- package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +9 -9
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +4 -4
- package/dist/loop/workflows/agentic-loop/index.d.ts +13 -12
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/loop/workflows/run-state.d.ts +2 -2
- package/dist/loop/workflows/run-state.d.ts.map +1 -1
- package/dist/loop/workflows/schema.d.ts +4 -4
- package/dist/loop/workflows/stream.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +127 -3
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +8 -8
- package/dist/memory/index.js +4 -4
- package/dist/models-dev-GCVENVWA.js +3 -0
- package/dist/{models-dev-DNBKXHT4.js.map → models-dev-GCVENVWA.js.map} +1 -1
- package/dist/models-dev-TIBJR6IG.cjs +12 -0
- package/dist/{models-dev-YBEEQIX6.cjs.map → models-dev-TIBJR6IG.cjs.map} +1 -1
- package/dist/netlify-NTSNNT6F.cjs +12 -0
- package/dist/{netlify-GWNGSIRZ.cjs.map → netlify-NTSNNT6F.cjs.map} +1 -1
- package/dist/netlify-O5NJW7CF.js +3 -0
- package/dist/{netlify-7G2L5VSH.js.map → netlify-O5NJW7CF.js.map} +1 -1
- package/dist/processors/index.cjs +11 -11
- package/dist/processors/index.js +1 -1
- package/dist/provider-registry-74GMFZKT.js +3 -0
- package/dist/provider-registry-74GMFZKT.js.map +1 -0
- package/dist/provider-registry-BZP3DIIV.cjs +40 -0
- package/dist/provider-registry-BZP3DIIV.cjs.map +1 -0
- package/dist/provider-registry.json +140 -18
- package/dist/{registry-generator-MK63POJO.cjs → registry-generator-JPCV47SC.cjs} +6 -4
- package/dist/registry-generator-JPCV47SC.cjs.map +1 -0
- package/dist/{registry-generator-H4YNODDH.js → registry-generator-XD4FPZTU.js} +6 -4
- package/dist/registry-generator-XD4FPZTU.js.map +1 -0
- package/dist/relevance/index.cjs +2 -2
- package/dist/relevance/index.js +1 -1
- package/dist/server/index.cjs +2 -1
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -1
- package/dist/server/index.js.map +1 -1
- package/dist/storage/domains/workflows/inmemory.d.ts +1 -1
- package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +29 -29
- package/dist/storage/index.js +1 -1
- package/dist/storage/types.d.ts +2 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/RunOutput.d.ts +1 -1
- package/dist/stream/RunOutput.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/execute.d.ts +6 -3
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
- package/dist/stream/base/input.d.ts +1 -1
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +11 -11
- package/dist/stream/index.js +2 -2
- package/dist/stream/types.d.ts +4 -3
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +2 -2
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/tools/index.cjs +4 -4
- package/dist/tools/index.js +1 -1
- package/dist/tools/is-vercel-tool.cjs +2 -2
- package/dist/tools/is-vercel-tool.js +1 -1
- package/dist/tools/tool-builder/builder.d.ts.map +1 -1
- package/dist/tools/tool.d.ts.map +1 -1
- package/dist/tools/types.d.ts +1 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/validation.d.ts +12 -0
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/utils.cjs +25 -21
- package/dist/utils.d.ts +4 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/workflows/default.d.ts +24 -8
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/execution-engine.d.ts +3 -1
- package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/evented/step-executor.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -4
- package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts +1 -1
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/parallel.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts.map +1 -1
- package/dist/workflows/evented/workflow.d.ts +2 -1
- package/dist/workflows/evented/workflow.d.ts.map +1 -1
- package/dist/workflows/execution-engine.d.ts +4 -2
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/index.cjs +28 -16
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/step.d.ts +2 -1
- package/dist/workflows/step.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +64 -7
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/utils.d.ts +20 -0
- package/dist/workflows/utils.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +109 -40
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +12 -20
- package/src/llm/model/provider-types.generated.d.ts +56 -7
- package/dist/chunk-2ZVKF4HP.cjs.map +0 -1
- package/dist/chunk-4CDL2QJT.js.map +0 -1
- package/dist/chunk-7AHYOMHJ.js.map +0 -1
- package/dist/chunk-CB575O6L.cjs.map +0 -1
- package/dist/chunk-CD56CXVE.cjs.map +0 -1
- package/dist/chunk-CINNK34N.js.map +0 -1
- package/dist/chunk-DNEURYF3.cjs.map +0 -1
- package/dist/chunk-ECFXGXWO.cjs.map +0 -1
- package/dist/chunk-ET6UOTTU.cjs.map +0 -1
- package/dist/chunk-GGYKYORQ.cjs.map +0 -1
- package/dist/chunk-H6CZGPZD.js.map +0 -1
- package/dist/chunk-HDJFSJCK.js.map +0 -1
- package/dist/chunk-I4CXL4SR.js.map +0 -1
- package/dist/chunk-IQO7ANVS.cjs.map +0 -1
- package/dist/chunk-JPGVRWWL.js.map +0 -1
- package/dist/chunk-JUBFO5J3.js.map +0 -1
- package/dist/chunk-JV2KH24V.js.map +0 -1
- package/dist/chunk-LJFJTTZQ.cjs +0 -4
- package/dist/chunk-LWBQ4P4N.cjs.map +0 -1
- package/dist/chunk-MA7TEM62.cjs.map +0 -1
- package/dist/chunk-MSWTA73A.cjs.map +0 -1
- package/dist/chunk-MV7KHWUT.js.map +0 -1
- package/dist/chunk-VOQ3ULMT.js.map +0 -1
- package/dist/chunk-W7UH2PWL.js.map +0 -1
- package/dist/chunk-WM6CK2F3.cjs.map +0 -1
- package/dist/chunk-ZV5CC35D.js +0 -3
- package/dist/models-dev-DNBKXHT4.js +0 -3
- package/dist/models-dev-YBEEQIX6.cjs +0 -12
- package/dist/netlify-7G2L5VSH.js +0 -3
- package/dist/netlify-GWNGSIRZ.cjs +0 -12
- package/dist/registry-generator-H4YNODDH.js.map +0 -1
- package/dist/registry-generator-MK63POJO.cjs.map +0 -1
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { ModelsDevGateway, parseModelRouterId } from './chunk-HDJFSJCK.js';
|
|
2
|
-
import { NetlifyGateway } from './chunk-I4CXL4SR.js';
|
|
3
|
-
import { createOpenAICompatible, createOpenAI, createGoogleGenerativeAI } from './chunk-JPGVRWWL.js';
|
|
4
|
-
import { MastraError } from './chunk-JJ5O45LH.js';
|
|
5
|
-
import { RequestContext } from './chunk-GRBGQ2GE.js';
|
|
6
1
|
import fs from 'fs';
|
|
7
2
|
import { createRequire } from 'module';
|
|
8
3
|
import os from 'os';
|
|
9
4
|
import path from 'path';
|
|
10
|
-
|
|
5
|
+
|
|
6
|
+
// src/llm/model/provider-registry.ts
|
|
11
7
|
|
|
12
8
|
// src/llm/model/provider-registry.json
|
|
13
9
|
var provider_registry_default = {
|
|
@@ -639,7 +635,12 @@ var provider_registry_default = {
|
|
|
639
635
|
apiKeyEnvVar: "BASETEN_API_KEY",
|
|
640
636
|
apiKeyHeader: "Authorization",
|
|
641
637
|
name: "Baseten",
|
|
642
|
-
models: [
|
|
638
|
+
models: [
|
|
639
|
+
"Qwen/Qwen3-Coder-480B-A35B-Instruct",
|
|
640
|
+
"moonshotai/Kimi-K2-Instruct-0905",
|
|
641
|
+
"moonshotai/Kimi-K2-Thinking",
|
|
642
|
+
"zai-org/GLM-4.6"
|
|
643
|
+
],
|
|
643
644
|
docUrl: "https://docs.baseten.co/development/model-apis/overview",
|
|
644
645
|
gateway: "models.dev"
|
|
645
646
|
},
|
|
@@ -673,7 +674,10 @@ var provider_registry_default = {
|
|
|
673
674
|
apiKeyHeader: "Authorization",
|
|
674
675
|
name: "OpenCode Zen",
|
|
675
676
|
models: [
|
|
676
|
-
"
|
|
677
|
+
"alpha-doubao-seed-code",
|
|
678
|
+
"alpha-gd4",
|
|
679
|
+
"alpha-kimi-k2-thinking",
|
|
680
|
+
"alpha-minimax-m2",
|
|
677
681
|
"big-pickle",
|
|
678
682
|
"claude-3-5-haiku",
|
|
679
683
|
"claude-haiku-4-5",
|
|
@@ -683,9 +687,11 @@ var provider_registry_default = {
|
|
|
683
687
|
"glm-4.6",
|
|
684
688
|
"gpt-5",
|
|
685
689
|
"gpt-5-codex",
|
|
690
|
+
"gpt-5-nano",
|
|
691
|
+
"gpt-5.1",
|
|
692
|
+
"gpt-5.1-codex",
|
|
686
693
|
"grok-code",
|
|
687
694
|
"kimi-k2",
|
|
688
|
-
"minimax-m2",
|
|
689
695
|
"qwen3-coder"
|
|
690
696
|
],
|
|
691
697
|
docUrl: "https://opencode.ai/docs/zen",
|
|
@@ -715,6 +721,15 @@ var provider_registry_default = {
|
|
|
715
721
|
docUrl: "https://fastrouter.ai/models",
|
|
716
722
|
gateway: "models.dev"
|
|
717
723
|
},
|
|
724
|
+
minimax: {
|
|
725
|
+
url: "https://api.minimax.io/anthropic/v1",
|
|
726
|
+
apiKeyEnvVar: "MINIMAX_API_KEY",
|
|
727
|
+
apiKeyHeader: "Authorization",
|
|
728
|
+
name: "Minimax",
|
|
729
|
+
models: ["MiniMax-M2"],
|
|
730
|
+
docUrl: "https://platform.minimax.io/docs/guides/quickstart",
|
|
731
|
+
gateway: "models.dev"
|
|
732
|
+
},
|
|
718
733
|
google: {
|
|
719
734
|
apiKeyEnvVar: "GOOGLE_GENERATIVE_AI_API_KEY",
|
|
720
735
|
name: "Google",
|
|
@@ -738,6 +753,7 @@ var provider_registry_default = {
|
|
|
738
753
|
"gemini-2.5-pro-preview-05-06",
|
|
739
754
|
"gemini-2.5-pro-preview-06-05",
|
|
740
755
|
"gemini-2.5-pro-preview-tts",
|
|
756
|
+
"gemini-3-pro-preview",
|
|
741
757
|
"gemini-embedding-001",
|
|
742
758
|
"gemini-flash-latest",
|
|
743
759
|
"gemini-flash-lite-latest",
|
|
@@ -798,6 +814,10 @@ var provider_registry_default = {
|
|
|
798
814
|
"gpt-5-mini",
|
|
799
815
|
"gpt-5-nano",
|
|
800
816
|
"gpt-5-pro",
|
|
817
|
+
"gpt-5.1",
|
|
818
|
+
"gpt-5.1-chat-latest",
|
|
819
|
+
"gpt-5.1-codex",
|
|
820
|
+
"gpt-5.1-codex-mini",
|
|
801
821
|
"o1",
|
|
802
822
|
"o1-mini",
|
|
803
823
|
"o1-preview",
|
|
@@ -872,13 +892,14 @@ var provider_registry_default = {
|
|
|
872
892
|
"google/gemma-3-27b-it",
|
|
873
893
|
"google/gemma-3n-e4b-it",
|
|
874
894
|
"google/gemma-3n-e4b-it:free",
|
|
895
|
+
"kwaipilot/kat-coder-pro:free",
|
|
875
896
|
"meta-llama/llama-3.2-11b-vision-instruct",
|
|
876
897
|
"meta-llama/llama-3.3-70b-instruct:free",
|
|
877
898
|
"meta-llama/llama-4-scout:free",
|
|
878
899
|
"microsoft/mai-ds-r1:free",
|
|
879
900
|
"minimax/minimax-01",
|
|
880
901
|
"minimax/minimax-m1",
|
|
881
|
-
"minimax/minimax-m2
|
|
902
|
+
"minimax/minimax-m2",
|
|
882
903
|
"mistralai/codestral-2508",
|
|
883
904
|
"mistralai/devstral-medium-2507",
|
|
884
905
|
"mistralai/devstral-small-2505",
|
|
@@ -911,6 +932,10 @@ var provider_registry_default = {
|
|
|
911
932
|
"openai/gpt-5-mini",
|
|
912
933
|
"openai/gpt-5-nano",
|
|
913
934
|
"openai/gpt-5-pro",
|
|
935
|
+
"openai/gpt-5.1",
|
|
936
|
+
"openai/gpt-5.1-chat",
|
|
937
|
+
"openai/gpt-5.1-codex",
|
|
938
|
+
"openai/gpt-5.1-codex-mini",
|
|
914
939
|
"openai/gpt-oss-120b",
|
|
915
940
|
"openai/gpt-oss-120b:exacto",
|
|
916
941
|
"openai/gpt-oss-20b",
|
|
@@ -919,6 +944,8 @@ var provider_registry_default = {
|
|
|
919
944
|
"openrouter/horizon-alpha",
|
|
920
945
|
"openrouter/horizon-beta",
|
|
921
946
|
"openrouter/polaris-alpha",
|
|
947
|
+
"openrouter/sherlock-dash-alpha",
|
|
948
|
+
"openrouter/sherlock-think-alpha",
|
|
922
949
|
"openrouter/sonoma-dusk-alpha",
|
|
923
950
|
"openrouter/sonoma-sky-alpha",
|
|
924
951
|
"qwen/qwen-2.5-coder-32b-instruct",
|
|
@@ -977,7 +1004,10 @@ var provider_registry_default = {
|
|
|
977
1004
|
"inclusionai/lint-1t",
|
|
978
1005
|
"inclusionai/ring-1t",
|
|
979
1006
|
"kuaishou/kat-coder-pro-v1",
|
|
1007
|
+
"minimax/minimax-m2",
|
|
980
1008
|
"moonshotai/kimi-k2-0905",
|
|
1009
|
+
"moonshotai/kimi-k2-thinking",
|
|
1010
|
+
"moonshotai/kimi-k2-thinking-turbo",
|
|
981
1011
|
"openai/gpt-5",
|
|
982
1012
|
"openai/gpt-5-codex",
|
|
983
1013
|
"qwen/qwen3-coder-plus",
|
|
@@ -991,6 +1021,31 @@ var provider_registry_default = {
|
|
|
991
1021
|
docUrl: "https://docs.zenmux.ai",
|
|
992
1022
|
gateway: "models.dev"
|
|
993
1023
|
},
|
|
1024
|
+
ovhcloud: {
|
|
1025
|
+
url: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1",
|
|
1026
|
+
apiKeyEnvVar: "OVHCLOUD_API_KEY",
|
|
1027
|
+
apiKeyHeader: "Authorization",
|
|
1028
|
+
name: "OVHcloud AI Endpoints",
|
|
1029
|
+
models: [
|
|
1030
|
+
"deepseek-r1-distill-llama-70b",
|
|
1031
|
+
"gpt-oss-120b",
|
|
1032
|
+
"gpt-oss-20b",
|
|
1033
|
+
"llama-3.1-8b-instruct",
|
|
1034
|
+
"llava-next-mistral-7b",
|
|
1035
|
+
"meta-llama-3_1-70b-instruct",
|
|
1036
|
+
"meta-llama-3_3-70b-instruct",
|
|
1037
|
+
"mistral-7b-instruct-v0.3",
|
|
1038
|
+
"mistral-nemo-instruct-2407",
|
|
1039
|
+
"mistral-small-3.2-24b-instruct-2506",
|
|
1040
|
+
"mixtral-8x7b-instruct-v0.1",
|
|
1041
|
+
"qwen2.5-coder-32b-instruct",
|
|
1042
|
+
"qwen2.5-vl-72b-instruct",
|
|
1043
|
+
"qwen3-32b",
|
|
1044
|
+
"qwen3-coder-30b-a3b-instruct"
|
|
1045
|
+
],
|
|
1046
|
+
docUrl: "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/catalog//",
|
|
1047
|
+
gateway: "models.dev"
|
|
1048
|
+
},
|
|
994
1049
|
iflowcn: {
|
|
995
1050
|
url: "https://apis.iflow.cn/v1",
|
|
996
1051
|
apiKeyEnvVar: "IFLOW_API_KEY",
|
|
@@ -1004,6 +1059,7 @@ var provider_registry_default = {
|
|
|
1004
1059
|
"glm-4.6",
|
|
1005
1060
|
"kimi-k2",
|
|
1006
1061
|
"kimi-k2-0905",
|
|
1062
|
+
"minimax-m2",
|
|
1007
1063
|
"qwen3-235b",
|
|
1008
1064
|
"qwen3-235b-a22b-instruct",
|
|
1009
1065
|
"qwen3-235b-a22b-thinking-2507",
|
|
@@ -1130,9 +1186,11 @@ var provider_registry_default = {
|
|
|
1130
1186
|
name: "Requesty",
|
|
1131
1187
|
models: [
|
|
1132
1188
|
"anthropic/claude-3-7-sonnet",
|
|
1133
|
-
"anthropic/claude-4-
|
|
1189
|
+
"anthropic/claude-haiku-4-5",
|
|
1134
1190
|
"anthropic/claude-opus-4",
|
|
1135
|
-
"anthropic/claude-opus-4-1
|
|
1191
|
+
"anthropic/claude-opus-4-1",
|
|
1192
|
+
"anthropic/claude-sonnet-4",
|
|
1193
|
+
"anthropic/claude-sonnet-4-5",
|
|
1136
1194
|
"google/gemini-2.5-flash",
|
|
1137
1195
|
"google/gemini-2.5-pro",
|
|
1138
1196
|
"openai/gpt-4.1",
|
|
@@ -1141,7 +1199,9 @@ var provider_registry_default = {
|
|
|
1141
1199
|
"openai/gpt-5",
|
|
1142
1200
|
"openai/gpt-5-mini",
|
|
1143
1201
|
"openai/gpt-5-nano",
|
|
1144
|
-
"openai/o4-mini"
|
|
1202
|
+
"openai/o4-mini",
|
|
1203
|
+
"xai/grok-4",
|
|
1204
|
+
"xai/grok-4-fast"
|
|
1145
1205
|
],
|
|
1146
1206
|
docUrl: "https://requesty.ai/solution/llm-routing/models",
|
|
1147
1207
|
gateway: "models.dev"
|
|
@@ -1285,9 +1345,7 @@ var provider_registry_default = {
|
|
|
1285
1345
|
gateway: "netlify",
|
|
1286
1346
|
models: [
|
|
1287
1347
|
"anthropic/claude-3-5-haiku-20241022",
|
|
1288
|
-
"anthropic/claude-3-5-haiku-latest",
|
|
1289
1348
|
"anthropic/claude-3-7-sonnet-20250219",
|
|
1290
|
-
"anthropic/claude-3-7-sonnet-latest",
|
|
1291
1349
|
"anthropic/claude-3-haiku-20240307",
|
|
1292
1350
|
"anthropic/claude-haiku-4-5-20251001",
|
|
1293
1351
|
"anthropic/claude-opus-4-1-20250805",
|
|
@@ -1297,11 +1355,13 @@ var provider_registry_default = {
|
|
|
1297
1355
|
"gemini/gemini-2.0-flash",
|
|
1298
1356
|
"gemini/gemini-2.0-flash-lite",
|
|
1299
1357
|
"gemini/gemini-2.5-flash",
|
|
1358
|
+
"gemini/gemini-2.5-flash-image",
|
|
1300
1359
|
"gemini/gemini-2.5-flash-image-preview",
|
|
1301
1360
|
"gemini/gemini-2.5-flash-lite",
|
|
1302
1361
|
"gemini/gemini-2.5-flash-lite-preview-09-2025",
|
|
1303
1362
|
"gemini/gemini-2.5-flash-preview-09-2025",
|
|
1304
1363
|
"gemini/gemini-2.5-pro",
|
|
1364
|
+
"gemini/gemini-3-pro-preview",
|
|
1305
1365
|
"gemini/gemini-flash-latest",
|
|
1306
1366
|
"gemini/gemini-flash-lite-latest",
|
|
1307
1367
|
"openai/codex-mini-latest",
|
|
@@ -1311,10 +1371,15 @@ var provider_registry_default = {
|
|
|
1311
1371
|
"openai/gpt-4o",
|
|
1312
1372
|
"openai/gpt-4o-mini",
|
|
1313
1373
|
"openai/gpt-5",
|
|
1374
|
+
"openai/gpt-5-2025-08-07",
|
|
1314
1375
|
"openai/gpt-5-codex",
|
|
1315
1376
|
"openai/gpt-5-mini",
|
|
1377
|
+
"openai/gpt-5-mini-2025-08-07",
|
|
1316
1378
|
"openai/gpt-5-nano",
|
|
1317
1379
|
"openai/gpt-5-pro",
|
|
1380
|
+
"openai/gpt-5.1",
|
|
1381
|
+
"openai/gpt-5.1-2025-11-13",
|
|
1382
|
+
"openai/gpt-5.1-codex",
|
|
1318
1383
|
"openai/o3",
|
|
1319
1384
|
"openai/o3-mini",
|
|
1320
1385
|
"openai/o4-mini"
|
|
@@ -1788,7 +1853,12 @@ var provider_registry_default = {
|
|
|
1788
1853
|
"moonshotai/Kimi-K2-Instruct",
|
|
1789
1854
|
"openai/gpt-oss-120b"
|
|
1790
1855
|
],
|
|
1791
|
-
baseten: [
|
|
1856
|
+
baseten: [
|
|
1857
|
+
"Qwen/Qwen3-Coder-480B-A35B-Instruct",
|
|
1858
|
+
"moonshotai/Kimi-K2-Instruct-0905",
|
|
1859
|
+
"moonshotai/Kimi-K2-Thinking",
|
|
1860
|
+
"zai-org/GLM-4.6"
|
|
1861
|
+
],
|
|
1792
1862
|
huggingface: [
|
|
1793
1863
|
"MiniMaxAI/MiniMax-M2",
|
|
1794
1864
|
"Qwen/Qwen3-235B-A22B-Thinking-2507",
|
|
@@ -1806,7 +1876,10 @@ var provider_registry_default = {
|
|
|
1806
1876
|
"zai-org/GLM-4.6"
|
|
1807
1877
|
],
|
|
1808
1878
|
opencode: [
|
|
1809
|
-
"
|
|
1879
|
+
"alpha-doubao-seed-code",
|
|
1880
|
+
"alpha-gd4",
|
|
1881
|
+
"alpha-kimi-k2-thinking",
|
|
1882
|
+
"alpha-minimax-m2",
|
|
1810
1883
|
"big-pickle",
|
|
1811
1884
|
"claude-3-5-haiku",
|
|
1812
1885
|
"claude-haiku-4-5",
|
|
@@ -1816,9 +1889,11 @@ var provider_registry_default = {
|
|
|
1816
1889
|
"glm-4.6",
|
|
1817
1890
|
"gpt-5",
|
|
1818
1891
|
"gpt-5-codex",
|
|
1892
|
+
"gpt-5-nano",
|
|
1893
|
+
"gpt-5.1",
|
|
1894
|
+
"gpt-5.1-codex",
|
|
1819
1895
|
"grok-code",
|
|
1820
1896
|
"kimi-k2",
|
|
1821
|
-
"minimax-m2",
|
|
1822
1897
|
"qwen3-coder"
|
|
1823
1898
|
],
|
|
1824
1899
|
fastrouter: [
|
|
@@ -1837,6 +1912,7 @@ var provider_registry_default = {
|
|
|
1837
1912
|
"qwen/qwen3-coder",
|
|
1838
1913
|
"x-ai/grok-4"
|
|
1839
1914
|
],
|
|
1915
|
+
minimax: ["MiniMax-M2"],
|
|
1840
1916
|
google: [
|
|
1841
1917
|
"gemini-1.5-flash",
|
|
1842
1918
|
"gemini-1.5-flash-8b",
|
|
@@ -1857,6 +1933,7 @@ var provider_registry_default = {
|
|
|
1857
1933
|
"gemini-2.5-pro-preview-05-06",
|
|
1858
1934
|
"gemini-2.5-pro-preview-06-05",
|
|
1859
1935
|
"gemini-2.5-pro-preview-tts",
|
|
1936
|
+
"gemini-3-pro-preview",
|
|
1860
1937
|
"gemini-embedding-001",
|
|
1861
1938
|
"gemini-flash-latest",
|
|
1862
1939
|
"gemini-flash-lite-latest",
|
|
@@ -1895,6 +1972,10 @@ var provider_registry_default = {
|
|
|
1895
1972
|
"gpt-5-mini",
|
|
1896
1973
|
"gpt-5-nano",
|
|
1897
1974
|
"gpt-5-pro",
|
|
1975
|
+
"gpt-5.1",
|
|
1976
|
+
"gpt-5.1-chat-latest",
|
|
1977
|
+
"gpt-5.1-codex",
|
|
1978
|
+
"gpt-5.1-codex-mini",
|
|
1898
1979
|
"o1",
|
|
1899
1980
|
"o1-mini",
|
|
1900
1981
|
"o1-preview",
|
|
@@ -1946,13 +2027,14 @@ var provider_registry_default = {
|
|
|
1946
2027
|
"google/gemma-3-27b-it",
|
|
1947
2028
|
"google/gemma-3n-e4b-it",
|
|
1948
2029
|
"google/gemma-3n-e4b-it:free",
|
|
2030
|
+
"kwaipilot/kat-coder-pro:free",
|
|
1949
2031
|
"meta-llama/llama-3.2-11b-vision-instruct",
|
|
1950
2032
|
"meta-llama/llama-3.3-70b-instruct:free",
|
|
1951
2033
|
"meta-llama/llama-4-scout:free",
|
|
1952
2034
|
"microsoft/mai-ds-r1:free",
|
|
1953
2035
|
"minimax/minimax-01",
|
|
1954
2036
|
"minimax/minimax-m1",
|
|
1955
|
-
"minimax/minimax-m2
|
|
2037
|
+
"minimax/minimax-m2",
|
|
1956
2038
|
"mistralai/codestral-2508",
|
|
1957
2039
|
"mistralai/devstral-medium-2507",
|
|
1958
2040
|
"mistralai/devstral-small-2505",
|
|
@@ -1985,6 +2067,10 @@ var provider_registry_default = {
|
|
|
1985
2067
|
"openai/gpt-5-mini",
|
|
1986
2068
|
"openai/gpt-5-nano",
|
|
1987
2069
|
"openai/gpt-5-pro",
|
|
2070
|
+
"openai/gpt-5.1",
|
|
2071
|
+
"openai/gpt-5.1-chat",
|
|
2072
|
+
"openai/gpt-5.1-codex",
|
|
2073
|
+
"openai/gpt-5.1-codex-mini",
|
|
1988
2074
|
"openai/gpt-oss-120b",
|
|
1989
2075
|
"openai/gpt-oss-120b:exacto",
|
|
1990
2076
|
"openai/gpt-oss-20b",
|
|
@@ -1993,6 +2079,8 @@ var provider_registry_default = {
|
|
|
1993
2079
|
"openrouter/horizon-alpha",
|
|
1994
2080
|
"openrouter/horizon-beta",
|
|
1995
2081
|
"openrouter/polaris-alpha",
|
|
2082
|
+
"openrouter/sherlock-dash-alpha",
|
|
2083
|
+
"openrouter/sherlock-think-alpha",
|
|
1996
2084
|
"openrouter/sonoma-dusk-alpha",
|
|
1997
2085
|
"openrouter/sonoma-sky-alpha",
|
|
1998
2086
|
"qwen/qwen-2.5-coder-32b-instruct",
|
|
@@ -2043,7 +2131,10 @@ var provider_registry_default = {
|
|
|
2043
2131
|
"inclusionai/lint-1t",
|
|
2044
2132
|
"inclusionai/ring-1t",
|
|
2045
2133
|
"kuaishou/kat-coder-pro-v1",
|
|
2134
|
+
"minimax/minimax-m2",
|
|
2046
2135
|
"moonshotai/kimi-k2-0905",
|
|
2136
|
+
"moonshotai/kimi-k2-thinking",
|
|
2137
|
+
"moonshotai/kimi-k2-thinking-turbo",
|
|
2047
2138
|
"openai/gpt-5",
|
|
2048
2139
|
"openai/gpt-5-codex",
|
|
2049
2140
|
"qwen/qwen3-coder-plus",
|
|
@@ -2054,6 +2145,23 @@ var provider_registry_default = {
|
|
|
2054
2145
|
"z-ai/glm-4.5-air",
|
|
2055
2146
|
"z-ai/glm-4.6"
|
|
2056
2147
|
],
|
|
2148
|
+
ovhcloud: [
|
|
2149
|
+
"deepseek-r1-distill-llama-70b",
|
|
2150
|
+
"gpt-oss-120b",
|
|
2151
|
+
"gpt-oss-20b",
|
|
2152
|
+
"llama-3.1-8b-instruct",
|
|
2153
|
+
"llava-next-mistral-7b",
|
|
2154
|
+
"meta-llama-3_1-70b-instruct",
|
|
2155
|
+
"meta-llama-3_3-70b-instruct",
|
|
2156
|
+
"mistral-7b-instruct-v0.3",
|
|
2157
|
+
"mistral-nemo-instruct-2407",
|
|
2158
|
+
"mistral-small-3.2-24b-instruct-2506",
|
|
2159
|
+
"mixtral-8x7b-instruct-v0.1",
|
|
2160
|
+
"qwen2.5-coder-32b-instruct",
|
|
2161
|
+
"qwen2.5-vl-72b-instruct",
|
|
2162
|
+
"qwen3-32b",
|
|
2163
|
+
"qwen3-coder-30b-a3b-instruct"
|
|
2164
|
+
],
|
|
2057
2165
|
iflowcn: [
|
|
2058
2166
|
"deepseek-r1",
|
|
2059
2167
|
"deepseek-v3",
|
|
@@ -2062,6 +2170,7 @@ var provider_registry_default = {
|
|
|
2062
2170
|
"glm-4.6",
|
|
2063
2171
|
"kimi-k2",
|
|
2064
2172
|
"kimi-k2-0905",
|
|
2173
|
+
"minimax-m2",
|
|
2065
2174
|
"qwen3-235b",
|
|
2066
2175
|
"qwen3-235b-a22b-instruct",
|
|
2067
2176
|
"qwen3-235b-a22b-thinking-2507",
|
|
@@ -2132,9 +2241,11 @@ var provider_registry_default = {
|
|
|
2132
2241
|
],
|
|
2133
2242
|
requesty: [
|
|
2134
2243
|
"anthropic/claude-3-7-sonnet",
|
|
2135
|
-
"anthropic/claude-4-
|
|
2244
|
+
"anthropic/claude-haiku-4-5",
|
|
2136
2245
|
"anthropic/claude-opus-4",
|
|
2137
|
-
"anthropic/claude-opus-4-1
|
|
2246
|
+
"anthropic/claude-opus-4-1",
|
|
2247
|
+
"anthropic/claude-sonnet-4",
|
|
2248
|
+
"anthropic/claude-sonnet-4-5",
|
|
2138
2249
|
"google/gemini-2.5-flash",
|
|
2139
2250
|
"google/gemini-2.5-pro",
|
|
2140
2251
|
"openai/gpt-4.1",
|
|
@@ -2143,7 +2254,9 @@ var provider_registry_default = {
|
|
|
2143
2254
|
"openai/gpt-5",
|
|
2144
2255
|
"openai/gpt-5-mini",
|
|
2145
2256
|
"openai/gpt-5-nano",
|
|
2146
|
-
"openai/o4-mini"
|
|
2257
|
+
"openai/o4-mini",
|
|
2258
|
+
"xai/grok-4",
|
|
2259
|
+
"xai/grok-4-fast"
|
|
2147
2260
|
],
|
|
2148
2261
|
morph: ["auto", "morph-v3-fast", "morph-v3-large"],
|
|
2149
2262
|
lmstudio: ["openai/gpt-oss-20b", "qwen/qwen3-30b-a3b-2507", "qwen/qwen3-coder-30b"],
|
|
@@ -2217,9 +2330,7 @@ var provider_registry_default = {
|
|
|
2217
2330
|
cerebras: ["gpt-oss-120b", "qwen-3-235b-a22b-instruct-2507", "qwen-3-coder-480b", "zai-glm-4.6"],
|
|
2218
2331
|
netlify: [
|
|
2219
2332
|
"anthropic/claude-3-5-haiku-20241022",
|
|
2220
|
-
"anthropic/claude-3-5-haiku-latest",
|
|
2221
2333
|
"anthropic/claude-3-7-sonnet-20250219",
|
|
2222
|
-
"anthropic/claude-3-7-sonnet-latest",
|
|
2223
2334
|
"anthropic/claude-3-haiku-20240307",
|
|
2224
2335
|
"anthropic/claude-haiku-4-5-20251001",
|
|
2225
2336
|
"anthropic/claude-opus-4-1-20250805",
|
|
@@ -2229,11 +2340,13 @@ var provider_registry_default = {
|
|
|
2229
2340
|
"gemini/gemini-2.0-flash",
|
|
2230
2341
|
"gemini/gemini-2.0-flash-lite",
|
|
2231
2342
|
"gemini/gemini-2.5-flash",
|
|
2343
|
+
"gemini/gemini-2.5-flash-image",
|
|
2232
2344
|
"gemini/gemini-2.5-flash-image-preview",
|
|
2233
2345
|
"gemini/gemini-2.5-flash-lite",
|
|
2234
2346
|
"gemini/gemini-2.5-flash-lite-preview-09-2025",
|
|
2235
2347
|
"gemini/gemini-2.5-flash-preview-09-2025",
|
|
2236
2348
|
"gemini/gemini-2.5-pro",
|
|
2349
|
+
"gemini/gemini-3-pro-preview",
|
|
2237
2350
|
"gemini/gemini-flash-latest",
|
|
2238
2351
|
"gemini/gemini-flash-lite-latest",
|
|
2239
2352
|
"openai/codex-mini-latest",
|
|
@@ -2243,10 +2356,15 @@ var provider_registry_default = {
|
|
|
2243
2356
|
"openai/gpt-4o",
|
|
2244
2357
|
"openai/gpt-4o-mini",
|
|
2245
2358
|
"openai/gpt-5",
|
|
2359
|
+
"openai/gpt-5-2025-08-07",
|
|
2246
2360
|
"openai/gpt-5-codex",
|
|
2247
2361
|
"openai/gpt-5-mini",
|
|
2362
|
+
"openai/gpt-5-mini-2025-08-07",
|
|
2248
2363
|
"openai/gpt-5-nano",
|
|
2249
2364
|
"openai/gpt-5-pro",
|
|
2365
|
+
"openai/gpt-5.1",
|
|
2366
|
+
"openai/gpt-5.1-2025-11-13",
|
|
2367
|
+
"openai/gpt-5.1-codex",
|
|
2250
2368
|
"openai/o3",
|
|
2251
2369
|
"openai/o3-mini",
|
|
2252
2370
|
"openai/o4-mini"
|
|
@@ -2397,7 +2515,7 @@ var PROVIDER_REGISTRY = new Proxy({}, {
|
|
|
2397
2515
|
return void 0;
|
|
2398
2516
|
}
|
|
2399
2517
|
});
|
|
2400
|
-
new Proxy({}, {
|
|
2518
|
+
var PROVIDER_MODELS = new Proxy({}, {
|
|
2401
2519
|
get(_target, prop) {
|
|
2402
2520
|
const registry = GatewayRegistry.getInstance();
|
|
2403
2521
|
const models = registry.getModels();
|
|
@@ -2446,12 +2564,26 @@ function getProviderConfig(providerId) {
|
|
|
2446
2564
|
const registry = GatewayRegistry.getInstance();
|
|
2447
2565
|
return registry.getProviderConfig(providerId);
|
|
2448
2566
|
}
|
|
2567
|
+
function isProviderRegistered(providerId) {
|
|
2568
|
+
const registry = GatewayRegistry.getInstance();
|
|
2569
|
+
return registry.isProviderRegistered(providerId);
|
|
2570
|
+
}
|
|
2571
|
+
function getRegisteredProviders() {
|
|
2572
|
+
const registry = GatewayRegistry.getInstance();
|
|
2573
|
+
const providers = registry.getProviders();
|
|
2574
|
+
return Object.keys(providers);
|
|
2575
|
+
}
|
|
2576
|
+
function isValidModelId(modelId) {
|
|
2577
|
+
const { provider } = parseModelString(modelId);
|
|
2578
|
+
return provider !== null && isProviderRegistered(provider);
|
|
2579
|
+
}
|
|
2449
2580
|
var GatewayRegistry = class _GatewayRegistry {
|
|
2450
2581
|
static instance = null;
|
|
2451
2582
|
lastRefreshTime = null;
|
|
2452
2583
|
refreshInterval = null;
|
|
2453
2584
|
isRefreshing = false;
|
|
2454
2585
|
useDynamicLoading;
|
|
2586
|
+
customGateways = [];
|
|
2455
2587
|
constructor(options = {}) {
|
|
2456
2588
|
const isDev2 = process.env.MASTRA_DEV === "true" || process.env.MASTRA_DEV === "1";
|
|
2457
2589
|
this.useDynamicLoading = options.useDynamicLoading ?? isDev2;
|
|
@@ -2465,6 +2597,19 @@ var GatewayRegistry = class _GatewayRegistry {
|
|
|
2465
2597
|
}
|
|
2466
2598
|
return _GatewayRegistry.instance;
|
|
2467
2599
|
}
|
|
2600
|
+
/**
|
|
2601
|
+
* Register custom gateways for type generation
|
|
2602
|
+
* @param gateways - Array of custom gateway instances
|
|
2603
|
+
*/
|
|
2604
|
+
registerCustomGateways(gateways) {
|
|
2605
|
+
this.customGateways = gateways;
|
|
2606
|
+
}
|
|
2607
|
+
/**
|
|
2608
|
+
* Get all registered custom gateways
|
|
2609
|
+
*/
|
|
2610
|
+
getCustomGateways() {
|
|
2611
|
+
return this.customGateways;
|
|
2612
|
+
}
|
|
2468
2613
|
/**
|
|
2469
2614
|
* Sync providers from all gateways
|
|
2470
2615
|
* Requires dynamic loading to be enabled (useDynamicLoading=true).
|
|
@@ -2480,11 +2625,12 @@ var GatewayRegistry = class _GatewayRegistry {
|
|
|
2480
2625
|
}
|
|
2481
2626
|
this.isRefreshing = true;
|
|
2482
2627
|
try {
|
|
2483
|
-
const { ModelsDevGateway
|
|
2484
|
-
const { NetlifyGateway
|
|
2485
|
-
const { fetchProvidersFromGateways, writeRegistryFiles } = await import('./registry-generator-
|
|
2486
|
-
const
|
|
2487
|
-
const
|
|
2628
|
+
const { ModelsDevGateway } = await import('./models-dev-GCVENVWA.js');
|
|
2629
|
+
const { NetlifyGateway } = await import('./netlify-O5NJW7CF.js');
|
|
2630
|
+
const { fetchProvidersFromGateways, writeRegistryFiles } = await import('./registry-generator-XD4FPZTU.js');
|
|
2631
|
+
const defaultGateways = [new ModelsDevGateway({}), new NetlifyGateway()];
|
|
2632
|
+
const gateways = [...defaultGateways, ...this.customGateways];
|
|
2633
|
+
const { providers, models } = await fetchProvidersFromGateways(gateways);
|
|
2488
2634
|
const packageRoot = getPackageRoot();
|
|
2489
2635
|
try {
|
|
2490
2636
|
fs.mkdirSync(CACHE_DIR(), { recursive: true });
|
|
@@ -2597,255 +2743,6 @@ if (autoRefreshEnabled) {
|
|
|
2597
2743
|
GatewayRegistry.getInstance({ useDynamicLoading: isDev }).startAutoRefresh();
|
|
2598
2744
|
}
|
|
2599
2745
|
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
if (prefixedGateway) {
|
|
2604
|
-
return prefixedGateway;
|
|
2605
|
-
}
|
|
2606
|
-
const unprefixedGateways = gateways2.filter((g) => !g.prefix);
|
|
2607
|
-
for (const gateway of unprefixedGateways) {
|
|
2608
|
-
return gateway;
|
|
2609
|
-
}
|
|
2610
|
-
throw new MastraError({
|
|
2611
|
-
id: "MODEL_ROUTER_NO_GATEWAY_FOUND",
|
|
2612
|
-
category: "USER",
|
|
2613
|
-
domain: "MODEL_ROUTER",
|
|
2614
|
-
text: `No Mastra model router gateway found for model id ${gatewayId}`
|
|
2615
|
-
});
|
|
2616
|
-
}
|
|
2617
|
-
|
|
2618
|
-
// src/llm/model/router.ts
|
|
2619
|
-
function getStaticProvidersByGateway(name) {
|
|
2620
|
-
return Object.fromEntries(Object.entries(PROVIDER_REGISTRY).filter(([_provider, config]) => config.gateway === name));
|
|
2621
|
-
}
|
|
2622
|
-
var gateways = [new NetlifyGateway(), new ModelsDevGateway(getStaticProvidersByGateway(`models.dev`))];
|
|
2623
|
-
var ModelRouterLanguageModel = class _ModelRouterLanguageModel {
|
|
2624
|
-
specificationVersion = "v2";
|
|
2625
|
-
defaultObjectGenerationMode = "json";
|
|
2626
|
-
supportsStructuredOutputs = true;
|
|
2627
|
-
supportsImageUrls = true;
|
|
2628
|
-
supportedUrls = {};
|
|
2629
|
-
modelId;
|
|
2630
|
-
provider;
|
|
2631
|
-
config;
|
|
2632
|
-
gateway;
|
|
2633
|
-
constructor(config) {
|
|
2634
|
-
let normalizedConfig;
|
|
2635
|
-
if (typeof config === "string") {
|
|
2636
|
-
normalizedConfig = { id: config };
|
|
2637
|
-
} else if ("providerId" in config && "modelId" in config) {
|
|
2638
|
-
normalizedConfig = {
|
|
2639
|
-
id: `${config.providerId}/${config.modelId}`,
|
|
2640
|
-
url: config.url,
|
|
2641
|
-
apiKey: config.apiKey,
|
|
2642
|
-
headers: config.headers
|
|
2643
|
-
};
|
|
2644
|
-
} else {
|
|
2645
|
-
normalizedConfig = {
|
|
2646
|
-
id: config.id,
|
|
2647
|
-
url: config.url,
|
|
2648
|
-
apiKey: config.apiKey,
|
|
2649
|
-
headers: config.headers
|
|
2650
|
-
};
|
|
2651
|
-
}
|
|
2652
|
-
const parsedConfig = {
|
|
2653
|
-
...normalizedConfig,
|
|
2654
|
-
routerId: normalizedConfig.id
|
|
2655
|
-
};
|
|
2656
|
-
this.gateway = findGatewayForModel(normalizedConfig.id, gateways);
|
|
2657
|
-
const parsed = parseModelRouterId(normalizedConfig.id, this.gateway.prefix);
|
|
2658
|
-
this.provider = parsed.providerId || "openai-compatible";
|
|
2659
|
-
if (parsed.providerId && parsed.modelId !== normalizedConfig.id) {
|
|
2660
|
-
parsedConfig.id = parsed.modelId;
|
|
2661
|
-
}
|
|
2662
|
-
this.modelId = parsedConfig.id;
|
|
2663
|
-
this.config = parsedConfig;
|
|
2664
|
-
}
|
|
2665
|
-
async doGenerate() {
|
|
2666
|
-
throw new Error(
|
|
2667
|
-
"doGenerate is not supported by Mastra model router. Mastra only uses streaming (doStream) for all LLM calls."
|
|
2668
|
-
);
|
|
2669
|
-
}
|
|
2670
|
-
async doStream(options) {
|
|
2671
|
-
let apiKey;
|
|
2672
|
-
try {
|
|
2673
|
-
if (this.config.url) {
|
|
2674
|
-
apiKey = this.config.apiKey || "";
|
|
2675
|
-
} else {
|
|
2676
|
-
apiKey = this.config.apiKey || await this.gateway.getApiKey(this.config.routerId);
|
|
2677
|
-
}
|
|
2678
|
-
} catch (error) {
|
|
2679
|
-
return {
|
|
2680
|
-
stream: new ReadableStream({
|
|
2681
|
-
start(controller) {
|
|
2682
|
-
controller.enqueue({
|
|
2683
|
-
type: "error",
|
|
2684
|
-
error
|
|
2685
|
-
});
|
|
2686
|
-
}
|
|
2687
|
-
})
|
|
2688
|
-
};
|
|
2689
|
-
}
|
|
2690
|
-
const model = await this.resolveLanguageModel({
|
|
2691
|
-
apiKey,
|
|
2692
|
-
...parseModelRouterId(this.config.routerId, this.gateway.prefix)
|
|
2693
|
-
});
|
|
2694
|
-
return model.doStream(options);
|
|
2695
|
-
}
|
|
2696
|
-
async resolveLanguageModel({
|
|
2697
|
-
modelId,
|
|
2698
|
-
providerId,
|
|
2699
|
-
apiKey
|
|
2700
|
-
}) {
|
|
2701
|
-
const key = createHash("sha256").update(this.gateway.name + modelId + providerId + apiKey + (this.config.url || "")).digest("hex");
|
|
2702
|
-
if (_ModelRouterLanguageModel.modelInstances.has(key)) return _ModelRouterLanguageModel.modelInstances.get(key);
|
|
2703
|
-
if (this.config.url) {
|
|
2704
|
-
const modelInstance2 = createOpenAICompatible({
|
|
2705
|
-
name: providerId,
|
|
2706
|
-
apiKey,
|
|
2707
|
-
baseURL: this.config.url,
|
|
2708
|
-
headers: this.config.headers,
|
|
2709
|
-
supportsStructuredOutputs: true
|
|
2710
|
-
}).chatModel(modelId);
|
|
2711
|
-
_ModelRouterLanguageModel.modelInstances.set(key, modelInstance2);
|
|
2712
|
-
return modelInstance2;
|
|
2713
|
-
}
|
|
2714
|
-
const modelInstance = await this.gateway.resolveLanguageModel({ modelId, providerId, apiKey });
|
|
2715
|
-
_ModelRouterLanguageModel.modelInstances.set(key, modelInstance);
|
|
2716
|
-
return modelInstance;
|
|
2717
|
-
}
|
|
2718
|
-
static modelInstances = /* @__PURE__ */ new Map();
|
|
2719
|
-
};
|
|
2720
|
-
|
|
2721
|
-
// src/llm/model/resolve-model.ts
|
|
2722
|
-
function isOpenAICompatibleObjectConfig(modelConfig) {
|
|
2723
|
-
if (typeof modelConfig === "object" && "specificationVersion" in modelConfig) return false;
|
|
2724
|
-
if (typeof modelConfig === "object" && !("model" in modelConfig)) {
|
|
2725
|
-
if ("id" in modelConfig) return true;
|
|
2726
|
-
if ("providerId" in modelConfig && "modelId" in modelConfig) return true;
|
|
2727
|
-
}
|
|
2728
|
-
return false;
|
|
2729
|
-
}
|
|
2730
|
-
async function resolveModelConfig(modelConfig, requestContext = new RequestContext(), mastra) {
|
|
2731
|
-
if (typeof modelConfig === "object" && "specificationVersion" in modelConfig) {
|
|
2732
|
-
return modelConfig;
|
|
2733
|
-
}
|
|
2734
|
-
if (typeof modelConfig === "string" || isOpenAICompatibleObjectConfig(modelConfig)) {
|
|
2735
|
-
return new ModelRouterLanguageModel(modelConfig);
|
|
2736
|
-
}
|
|
2737
|
-
if (typeof modelConfig === "function") {
|
|
2738
|
-
const fromDynamic = await modelConfig({ requestContext, mastra });
|
|
2739
|
-
if (typeof fromDynamic === "string" || isOpenAICompatibleObjectConfig(fromDynamic)) {
|
|
2740
|
-
return new ModelRouterLanguageModel(fromDynamic);
|
|
2741
|
-
}
|
|
2742
|
-
return fromDynamic;
|
|
2743
|
-
}
|
|
2744
|
-
throw new Error("Invalid model configuration provided");
|
|
2745
|
-
}
|
|
2746
|
-
|
|
2747
|
-
// src/llm/model/embedding-router.ts
|
|
2748
|
-
var ModelRouterEmbeddingModel = class {
|
|
2749
|
-
specificationVersion = "v2";
|
|
2750
|
-
modelId;
|
|
2751
|
-
provider;
|
|
2752
|
-
maxEmbeddingsPerCall = 2048;
|
|
2753
|
-
supportsParallelCalls = true;
|
|
2754
|
-
providerModel;
|
|
2755
|
-
constructor(config) {
|
|
2756
|
-
let normalizedConfig;
|
|
2757
|
-
if (typeof config === "string") {
|
|
2758
|
-
const parts = config.split("/");
|
|
2759
|
-
if (parts.length !== 2) {
|
|
2760
|
-
throw new Error(`Invalid model string format: "${config}". Expected format: "provider/model"`);
|
|
2761
|
-
}
|
|
2762
|
-
const [providerId, modelId] = parts;
|
|
2763
|
-
normalizedConfig = { providerId, modelId };
|
|
2764
|
-
} else if ("providerId" in config && "modelId" in config) {
|
|
2765
|
-
normalizedConfig = {
|
|
2766
|
-
providerId: config.providerId,
|
|
2767
|
-
modelId: config.modelId,
|
|
2768
|
-
url: config.url,
|
|
2769
|
-
apiKey: config.apiKey,
|
|
2770
|
-
headers: config.headers
|
|
2771
|
-
};
|
|
2772
|
-
} else {
|
|
2773
|
-
const parts = config.id.split("/");
|
|
2774
|
-
if (parts.length !== 2) {
|
|
2775
|
-
throw new Error(`Invalid model string format: "${config.id}". Expected format: "provider/model"`);
|
|
2776
|
-
}
|
|
2777
|
-
const [providerId, modelId] = parts;
|
|
2778
|
-
normalizedConfig = {
|
|
2779
|
-
providerId,
|
|
2780
|
-
modelId,
|
|
2781
|
-
url: config.url,
|
|
2782
|
-
apiKey: config.apiKey,
|
|
2783
|
-
headers: config.headers
|
|
2784
|
-
};
|
|
2785
|
-
}
|
|
2786
|
-
this.provider = normalizedConfig.providerId;
|
|
2787
|
-
this.modelId = normalizedConfig.modelId;
|
|
2788
|
-
if (normalizedConfig.url) {
|
|
2789
|
-
const apiKey = normalizedConfig.apiKey || "";
|
|
2790
|
-
this.providerModel = createOpenAICompatible({
|
|
2791
|
-
name: normalizedConfig.providerId,
|
|
2792
|
-
apiKey,
|
|
2793
|
-
baseURL: normalizedConfig.url,
|
|
2794
|
-
headers: normalizedConfig.headers
|
|
2795
|
-
}).textEmbeddingModel(normalizedConfig.modelId);
|
|
2796
|
-
} else {
|
|
2797
|
-
const registry = GatewayRegistry.getInstance();
|
|
2798
|
-
const providerConfig = registry.getProviderConfig(normalizedConfig.providerId);
|
|
2799
|
-
if (!providerConfig) {
|
|
2800
|
-
throw new Error(`Unknown provider: ${normalizedConfig.providerId}`);
|
|
2801
|
-
}
|
|
2802
|
-
let apiKey = normalizedConfig.apiKey;
|
|
2803
|
-
if (!apiKey) {
|
|
2804
|
-
const apiKeyEnvVar = providerConfig.apiKeyEnvVar;
|
|
2805
|
-
if (Array.isArray(apiKeyEnvVar)) {
|
|
2806
|
-
for (const envVar of apiKeyEnvVar) {
|
|
2807
|
-
apiKey = process.env[envVar];
|
|
2808
|
-
if (apiKey) break;
|
|
2809
|
-
}
|
|
2810
|
-
} else {
|
|
2811
|
-
apiKey = process.env[apiKeyEnvVar];
|
|
2812
|
-
}
|
|
2813
|
-
}
|
|
2814
|
-
if (!apiKey) {
|
|
2815
|
-
const envVarDisplay = Array.isArray(providerConfig.apiKeyEnvVar) ? providerConfig.apiKeyEnvVar.join(" or ") : providerConfig.apiKeyEnvVar;
|
|
2816
|
-
throw new Error(`API key not found for provider ${normalizedConfig.providerId}. Set ${envVarDisplay}`);
|
|
2817
|
-
}
|
|
2818
|
-
if (normalizedConfig.providerId === "openai") {
|
|
2819
|
-
this.providerModel = createOpenAI({ apiKey }).textEmbeddingModel(
|
|
2820
|
-
normalizedConfig.modelId
|
|
2821
|
-
);
|
|
2822
|
-
} else if (normalizedConfig.providerId === "google") {
|
|
2823
|
-
this.providerModel = createGoogleGenerativeAI({ apiKey }).textEmbedding(
|
|
2824
|
-
normalizedConfig.modelId
|
|
2825
|
-
);
|
|
2826
|
-
} else {
|
|
2827
|
-
if (!providerConfig.url) {
|
|
2828
|
-
throw new Error(`Provider ${normalizedConfig.providerId} does not have a URL configured`);
|
|
2829
|
-
}
|
|
2830
|
-
this.providerModel = createOpenAICompatible({
|
|
2831
|
-
name: normalizedConfig.providerId,
|
|
2832
|
-
apiKey,
|
|
2833
|
-
baseURL: providerConfig.url
|
|
2834
|
-
}).textEmbeddingModel(normalizedConfig.modelId);
|
|
2835
|
-
}
|
|
2836
|
-
}
|
|
2837
|
-
if (this.providerModel.maxEmbeddingsPerCall !== void 0) {
|
|
2838
|
-
this.maxEmbeddingsPerCall = this.providerModel.maxEmbeddingsPerCall;
|
|
2839
|
-
}
|
|
2840
|
-
if (this.providerModel.supportsParallelCalls !== void 0) {
|
|
2841
|
-
this.supportsParallelCalls = this.providerModel.supportsParallelCalls;
|
|
2842
|
-
}
|
|
2843
|
-
}
|
|
2844
|
-
async doEmbed(args) {
|
|
2845
|
-
return this.providerModel.doEmbed(args);
|
|
2846
|
-
}
|
|
2847
|
-
};
|
|
2848
|
-
|
|
2849
|
-
export { ModelRouterEmbeddingModel, ModelRouterLanguageModel, PROVIDER_REGISTRY, getProviderConfig, parseModelString, resolveModelConfig };
|
|
2850
|
-
//# sourceMappingURL=chunk-W7UH2PWL.js.map
|
|
2851
|
-
//# sourceMappingURL=chunk-W7UH2PWL.js.map
|
|
2746
|
+
export { GatewayRegistry, PROVIDER_MODELS, PROVIDER_REGISTRY, getProviderConfig, getRegisteredProviders, isProviderRegistered, isValidModelId, parseModelString };
|
|
2747
|
+
//# sourceMappingURL=chunk-VU6DVS7J.js.map
|
|
2748
|
+
//# sourceMappingURL=chunk-VU6DVS7J.js.map
|