@mastra/core 1.0.0-beta.11 → 1.0.0-beta.13
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 +173 -0
- package/dist/_types/@internal_ai-sdk-v4/dist/index.d.ts +7549 -0
- package/dist/_types/@internal_ai-sdk-v4/dist/test.d.ts +65 -0
- package/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +8396 -0
- package/dist/_types/@internal_ai-sdk-v5/dist/test.d.ts +1708 -0
- package/dist/_types/@internal_external-types/dist/index.d.ts +858 -0
- package/dist/agent/agent-legacy.d.ts +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 +5 -1
- 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 +4 -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/attachments-to-parts.d.ts +1 -1
- package/dist/agent/message-list/prompt/invalid-content-error.d.ts +1 -1
- package/dist/agent/message-list/types.d.ts +3 -3
- package/dist/agent/message-list/types.d.ts.map +1 -1
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +1 -1
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +1 -1
- package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts +2 -2
- package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts.map +1 -1
- package/dist/agent/message-list/utils/convert-messages.d.ts +2 -2
- package/dist/agent/message-list/utils/convert-messages.d.ts.map +1 -1
- package/dist/agent/types.d.ts +3 -3
- package/dist/agent/utils.d.ts +3 -3
- 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/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/bundler/types.d.ts +14 -1
- package/dist/bundler/types.d.ts.map +1 -1
- package/dist/{chunk-U3XOLEPX.js → chunk-2IU4RGU5.js} +6 -32
- package/dist/chunk-2IU4RGU5.js.map +1 -0
- package/dist/chunk-2SQB3WBT.js +4574 -0
- package/dist/chunk-2SQB3WBT.js.map +1 -0
- package/dist/{chunk-THZTRBFS.js → chunk-373OC54J.js} +8 -8
- package/dist/chunk-373OC54J.js.map +1 -0
- package/dist/{chunk-F2GAJSBI.js → chunk-4BC5FUAO.js} +8 -6
- package/dist/{chunk-F2GAJSBI.js.map → chunk-4BC5FUAO.js.map} +1 -1
- package/dist/chunk-55VPMN3N.js +250 -0
- package/dist/chunk-55VPMN3N.js.map +1 -0
- package/dist/{chunk-QM5SRDJX.js → chunk-5PTZG26U.js} +66 -84
- package/dist/chunk-5PTZG26U.js.map +1 -0
- package/dist/chunk-5VZGJTPR.js +4837 -0
- package/dist/chunk-5VZGJTPR.js.map +1 -0
- package/dist/{chunk-C36YRTZ6.js → chunk-62Q7K656.js} +6 -7
- package/dist/chunk-62Q7K656.js.map +1 -0
- package/dist/chunk-6PMMP3FR.js +7 -0
- package/dist/chunk-6PMMP3FR.js.map +1 -0
- package/dist/{chunk-DZUJEN5N.cjs → chunk-6SZKM6EC.cjs} +10 -3
- package/dist/{chunk-DZUJEN5N.cjs.map → chunk-6SZKM6EC.cjs.map} +1 -1
- package/dist/{chunk-5WRI5ZAA.js → chunk-7D4SUZUM.js} +10 -4
- package/dist/{chunk-5WRI5ZAA.js.map → chunk-7D4SUZUM.js.map} +1 -1
- package/dist/{chunk-YWMMBIOM.cjs → chunk-7HEAVZRS.cjs} +15 -15
- package/dist/{chunk-YWMMBIOM.cjs.map → chunk-7HEAVZRS.cjs.map} +1 -1
- package/dist/{chunk-BUKY6CTR.cjs → chunk-AGHLXC4I.cjs} +106 -36
- package/dist/chunk-AGHLXC4I.cjs.map +1 -0
- package/dist/{chunk-PK2A5WBG.js → chunk-ARAQIW6E.js} +222 -604
- package/dist/chunk-ARAQIW6E.js.map +1 -0
- package/dist/{chunk-US2U7ECW.js → chunk-BQDZIQ3G.js} +156 -90
- package/dist/chunk-BQDZIQ3G.js.map +1 -0
- package/dist/chunk-D22XABFZ.js +79 -0
- package/dist/chunk-D22XABFZ.js.map +1 -0
- package/dist/{chunk-2ULLRN4Y.js → chunk-E5BQRAJK.js} +943 -626
- package/dist/chunk-E5BQRAJK.js.map +1 -0
- package/dist/chunk-FST2G2FQ.cjs +84 -0
- package/dist/chunk-FST2G2FQ.cjs.map +1 -0
- package/dist/chunk-FVQTJUBD.cjs +2120 -0
- package/dist/chunk-FVQTJUBD.cjs.map +1 -0
- package/dist/chunk-G6E6V2Z4.js +2070 -0
- package/dist/chunk-G6E6V2Z4.js.map +1 -0
- package/dist/{chunk-7P6BNIJH.js → chunk-GIWC35YQ.js} +105 -35
- package/dist/chunk-GIWC35YQ.js.map +1 -0
- package/dist/{chunk-4JKEUSCC.cjs → chunk-H4VUIOWU.cjs} +22 -20
- package/dist/chunk-H4VUIOWU.cjs.map +1 -0
- package/dist/{chunk-TWH4PTDG.cjs → chunk-HWMMIRIF.cjs} +32 -27
- package/dist/chunk-HWMMIRIF.cjs.map +1 -0
- package/dist/chunk-IXZ2T2QX.cjs +448 -0
- package/dist/chunk-IXZ2T2QX.cjs.map +1 -0
- package/dist/chunk-L3NKIMF5.cjs +10 -0
- package/dist/chunk-L3NKIMF5.cjs.map +1 -0
- package/dist/chunk-L4JCRWDY.cjs +252 -0
- package/dist/chunk-L4JCRWDY.cjs.map +1 -0
- package/dist/{chunk-BJXKH4LG.cjs → chunk-LGB4VNZI.cjs} +43 -78
- package/dist/chunk-LGB4VNZI.cjs.map +1 -0
- package/dist/{chunk-PG5H6QIO.cjs → chunk-MLKE7HRS.cjs} +41 -21
- package/dist/chunk-MLKE7HRS.cjs.map +1 -0
- package/dist/{chunk-OEIVMCWX.js → chunk-MRRFTNF4.js} +2537 -84
- package/dist/chunk-MRRFTNF4.js.map +1 -0
- package/dist/chunk-MXBVP7HX.cjs +4842 -0
- package/dist/chunk-MXBVP7HX.cjs.map +1 -0
- package/dist/chunk-NESKUIRE.cjs +4586 -0
- package/dist/chunk-NESKUIRE.cjs.map +1 -0
- package/dist/{chunk-SVLMF4UZ.cjs → chunk-NIOEY3N3.cjs} +66 -85
- package/dist/chunk-NIOEY3N3.cjs.map +1 -0
- package/dist/{chunk-CZEJQSWB.cjs → chunk-OWIEOL55.cjs} +295 -677
- package/dist/chunk-OWIEOL55.cjs.map +1 -0
- package/dist/{chunk-WTSZBHIZ.cjs → chunk-PJAK4U6R.cjs} +24 -24
- package/dist/{chunk-WTSZBHIZ.cjs.map → chunk-PJAK4U6R.cjs.map} +1 -1
- package/dist/{chunk-52RSUALV.cjs → chunk-R5AJGM55.cjs} +1314 -995
- package/dist/chunk-R5AJGM55.cjs.map +1 -0
- package/dist/{chunk-IVV5TOMD.js → chunk-RCJLMMTO.js} +32 -12
- package/dist/chunk-RCJLMMTO.js.map +1 -0
- package/dist/{chunk-S73Z3PBJ.cjs → chunk-SZYSDJTN.cjs} +27 -28
- package/dist/chunk-SZYSDJTN.cjs.map +1 -0
- package/dist/{chunk-YC6PJEPH.cjs → chunk-U4CSOY6T.cjs} +188 -122
- package/dist/chunk-U4CSOY6T.cjs.map +1 -0
- package/dist/chunk-UBSPZTQX.js +434 -0
- package/dist/chunk-UBSPZTQX.js.map +1 -0
- package/dist/{chunk-SCUWP4II.cjs → chunk-VEPP75C4.cjs} +47 -74
- package/dist/chunk-VEPP75C4.cjs.map +1 -0
- package/dist/{chunk-JIGDJK2O.js → chunk-VETAQUW3.js} +4 -39
- package/dist/chunk-VETAQUW3.js.map +1 -0
- package/dist/{chunk-Z57R5WS4.js → chunk-WPTTKULS.js} +4 -4
- package/dist/{chunk-Z57R5WS4.js.map → chunk-WPTTKULS.js.map} +1 -1
- package/dist/{chunk-O2BJW7YA.js → chunk-WYGUWVTF.js} +5 -5
- package/dist/{chunk-O2BJW7YA.js.map → chunk-WYGUWVTF.js.map} +1 -1
- package/dist/{chunk-SXNQRJQD.js → chunk-WYWRMIQC.js} +127 -22
- package/dist/chunk-WYWRMIQC.js.map +1 -0
- package/dist/{chunk-5Q6WAYEY.cjs → chunk-X6IBA7FP.cjs} +137 -50
- package/dist/chunk-X6IBA7FP.cjs.map +1 -0
- package/dist/{chunk-MRFUISXC.cjs → chunk-Y7MZ5LJT.cjs} +2632 -179
- package/dist/chunk-Y7MZ5LJT.cjs.map +1 -0
- package/dist/{chunk-JJ5O45LH.js → chunk-YPLZDWG7.js} +32 -27
- package/dist/chunk-YPLZDWG7.js.map +1 -0
- package/dist/{chunk-MGCGWPQJ.cjs → chunk-Z55SJVEC.cjs} +8 -8
- package/dist/chunk-Z55SJVEC.cjs.map +1 -0
- package/dist/error/index.cjs +6 -6
- package/dist/error/index.d.ts +26 -20
- package/dist/error/index.d.ts.map +1 -1
- package/dist/error/index.js +1 -1
- package/dist/error/utils.d.ts +19 -5
- package/dist/error/utils.d.ts.map +1 -1
- package/dist/evals/index.cjs +4 -4
- package/dist/evals/index.js +1 -1
- package/dist/evals/run/index.d.ts +1 -1
- package/dist/evals/scoreTraces/index.cjs +8 -8
- package/dist/evals/scoreTraces/index.js +2 -2
- package/dist/evals/types.d.ts +1 -1
- package/dist/events/event-emitter.d.ts +6 -1
- package/dist/events/event-emitter.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 +15 -15
- package/dist/llm/index.d.ts +2 -2
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +5 -5
- package/dist/llm/model/aisdk/v5/model.d.ts +1 -1
- package/dist/llm/model/base.types.d.ts +2 -2
- package/dist/llm/model/model.d.ts +1 -1
- package/dist/llm/model/model.d.ts.map +1 -1
- 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 +1 -1
- package/dist/llm/model/model.loop.types.d.ts.map +1 -1
- package/dist/llm/model/provider-types.generated.d.ts +51 -11
- package/dist/llm/model/shared.types.d.ts +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/loop.d.ts +2 -2
- package/dist/loop/loop.d.ts.map +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -1
- package/dist/loop/test-utils/options.d.ts.map +1 -1
- package/dist/loop/test-utils/streamObject.d.ts +1 -1
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
- package/dist/loop/test-utils/tools.d.ts.map +1 -1
- package/dist/loop/types.d.ts +3 -1
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/index.d.ts +13 -13
- package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +10 -10
- 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 +5 -5
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +22 -21
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts +13 -13
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/loop/workflows/schema.d.ts +6 -6
- package/dist/loop/workflows/schema.d.ts.map +1 -1
- package/dist/loop/workflows/stream.d.ts +2 -2
- package/dist/loop/workflows/stream.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.cjs +4 -4
- package/dist/mcp/index.js +1 -1
- package/dist/memory/index.cjs +6 -6
- package/dist/memory/index.js +1 -1
- package/dist/memory/memory.d.ts +1 -1
- package/dist/memory/types.d.ts +3 -3
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/models-dev-D3EKFGAO.cjs +12 -0
- package/dist/{models-dev-EO3SUIY2.cjs.map → models-dev-D3EKFGAO.cjs.map} +1 -1
- package/dist/models-dev-EO22XOXQ.js +3 -0
- package/dist/{models-dev-23RN2WHG.js.map → models-dev-EO22XOXQ.js.map} +1 -1
- package/dist/netlify-AE4LNCAI.js +3 -0
- package/dist/{netlify-GXJ5D5DD.js.map → netlify-AE4LNCAI.js.map} +1 -1
- package/dist/netlify-WE42TZIT.cjs +12 -0
- package/dist/{netlify-KJLY3GFS.cjs.map → netlify-WE42TZIT.cjs.map} +1 -1
- package/dist/processors/index.cjs +37 -37
- package/dist/processors/index.d.ts +2 -2
- package/dist/processors/index.d.ts.map +1 -1
- package/dist/processors/index.js +1 -1
- package/dist/processors/step-schema.d.ts +1267 -1267
- package/dist/processors/step-schema.d.ts.map +1 -1
- package/dist/provider-registry-6LF3NGC5.js +3 -0
- package/dist/{provider-registry-F67Y6OF2.js.map → provider-registry-6LF3NGC5.js.map} +1 -1
- package/dist/provider-registry-73FKMXJV.cjs +40 -0
- package/dist/{provider-registry-3TG2KUD2.cjs.map → provider-registry-73FKMXJV.cjs.map} +1 -1
- package/dist/provider-registry.json +100 -30
- package/dist/{registry-generator-UMTNPBJX.js → registry-generator-AVQXI3GX.js} +2 -2
- package/dist/{registry-generator-UMTNPBJX.js.map → registry-generator-AVQXI3GX.js.map} +1 -1
- package/dist/{registry-generator-34SC4TAU.cjs → registry-generator-KOFNIIWJ.cjs} +2 -2
- package/dist/{registry-generator-34SC4TAU.cjs.map → registry-generator-KOFNIIWJ.cjs.map} +1 -1
- package/dist/relevance/index.cjs +2 -2
- package/dist/relevance/index.js +1 -1
- package/dist/server/index.cjs +5 -5
- package/dist/server/index.js +1 -1
- package/dist/storage/base.d.ts +2 -10
- package/dist/storage/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/base.d.ts +2 -8
- package/dist/storage/domains/workflows/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/inmemory.d.ts +2 -8
- package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +38 -38
- package/dist/storage/index.js +1 -1
- package/dist/storage/mock.d.ts +2 -8
- package/dist/storage/mock.d.ts.map +1 -1
- package/dist/storage/types.d.ts +9 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/RunOutput.d.ts +1 -1
- package/dist/stream/aisdk/v4/input.d.ts +1 -1
- package/dist/stream/aisdk/v5/compat/content.d.ts +1 -1
- package/dist/stream/aisdk/v5/compat/content.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts +1 -1
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat/ui-message.d.ts +1 -1
- package/dist/stream/aisdk/v5/compat/ui-message.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat/validation.d.ts +1 -1
- package/dist/stream/aisdk/v5/compat/validation.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/execute.d.ts +2 -2
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/input.d.ts +1 -1
- package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output-helpers.d.ts +12 -27
- package/dist/stream/aisdk/v5/output-helpers.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output.d.ts +41 -91
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/transform.d.ts +1 -1
- package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
- package/dist/stream/base/input.d.ts +1 -1
- package/dist/stream/base/output.d.ts +9 -31
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/base/schema.d.ts +2 -2
- package/dist/stream/base/schema.d.ts.map +1 -1
- package/dist/stream/index.cjs +12 -12
- package/dist/stream/index.js +2 -2
- package/dist/stream/types.d.ts +3 -2
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +14587 -14
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.d.ts +3 -3
- package/dist/test-utils/llm-mock.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.js +14577 -4
- package/dist/test-utils/llm-mock.js.map +1 -1
- package/dist/token-6GSAFR2W-SGVIXFCP.cjs +63 -0
- package/dist/token-6GSAFR2W-SGVIXFCP.cjs.map +1 -0
- package/dist/token-6GSAFR2W-SPYPLMBM.js +61 -0
- package/dist/token-6GSAFR2W-SPYPLMBM.js.map +1 -0
- package/dist/token-util-NEHG7TUY-7GMW5FXI.cjs +10 -0
- package/dist/token-util-NEHG7TUY-7GMW5FXI.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-JRJTGTAB.js +8 -0
- package/dist/token-util-NEHG7TUY-JRJTGTAB.js.map +1 -0
- 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 +2 -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 +5 -5
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils.cjs +22 -22
- package/dist/utils.d.ts +3 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vector/embed.d.ts +2 -2
- package/dist/vector/embed.d.ts.map +1 -1
- package/dist/vector/index.cjs +11 -11
- package/dist/vector/index.js +3 -3
- package/dist/vector/vector.d.ts +1 -1
- package/dist/voice/aisdk/speech.d.ts +1 -1
- package/dist/voice/aisdk/speech.d.ts.map +1 -1
- package/dist/voice/aisdk/transcription.d.ts +1 -1
- package/dist/voice/aisdk/transcription.d.ts.map +1 -1
- package/dist/voice/composite-voice.d.ts +1 -1
- package/dist/voice/composite-voice.d.ts.map +1 -1
- package/dist/voice/index.cjs +6 -6
- package/dist/voice/index.js +1 -1
- package/dist/workflows/constants.cjs +4 -4
- package/dist/workflows/constants.d.ts +1 -1
- package/dist/workflows/constants.d.ts.map +1 -1
- package/dist/workflows/constants.js +1 -1
- package/dist/workflows/default.d.ts +9 -16
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/execution-engine.d.ts +3 -2
- 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 +1 -1
- package/dist/workflows/evented/step-executor.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
- package/dist/workflows/evented/workflow.d.ts +15 -0
- package/dist/workflows/evented/workflow.d.ts.map +1 -1
- package/dist/workflows/execution-engine.d.ts +25 -2
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/handlers/control-flow.d.ts +6 -5
- package/dist/workflows/handlers/control-flow.d.ts.map +1 -1
- package/dist/workflows/handlers/entry.d.ts +5 -3
- package/dist/workflows/handlers/entry.d.ts.map +1 -1
- package/dist/workflows/handlers/sleep.d.ts +4 -3
- package/dist/workflows/handlers/sleep.d.ts.map +1 -1
- package/dist/workflows/handlers/step.d.ts +5 -3
- package/dist/workflows/handlers/step.d.ts.map +1 -1
- package/dist/workflows/index.cjs +26 -22
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/step.d.ts +5 -4
- package/dist/workflows/step.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +66 -14
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/utils.d.ts +11 -0
- package/dist/workflows/utils.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +26 -8
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +12 -11
- package/src/llm/model/provider-types.generated.d.ts +51 -11
- package/dist/agent/__tests__/mock-model.d.ts +0 -8
- package/dist/agent/__tests__/mock-model.d.ts.map +0 -1
- package/dist/agent/agent-types.test-d.d.ts +0 -2
- package/dist/agent/agent-types.test-d.d.ts.map +0 -1
- package/dist/ai-sdk.types.d.ts +0 -4705
- package/dist/chunk-2ULLRN4Y.js.map +0 -1
- package/dist/chunk-3E3ILV6T.cjs +0 -518
- package/dist/chunk-3E3ILV6T.cjs.map +0 -1
- package/dist/chunk-4JKEUSCC.cjs.map +0 -1
- package/dist/chunk-52RSUALV.cjs.map +0 -1
- package/dist/chunk-5PAEYE3Q.js +0 -513
- package/dist/chunk-5PAEYE3Q.js.map +0 -1
- package/dist/chunk-5Q6WAYEY.cjs.map +0 -1
- package/dist/chunk-7P6BNIJH.js.map +0 -1
- package/dist/chunk-ABJOUEVA.cjs +0 -10
- package/dist/chunk-ABJOUEVA.cjs.map +0 -1
- package/dist/chunk-BJXKH4LG.cjs.map +0 -1
- package/dist/chunk-BUKY6CTR.cjs.map +0 -1
- package/dist/chunk-C36YRTZ6.js.map +0 -1
- package/dist/chunk-CZEJQSWB.cjs.map +0 -1
- package/dist/chunk-IVV5TOMD.js.map +0 -1
- package/dist/chunk-JIGDJK2O.js.map +0 -1
- package/dist/chunk-JJ5O45LH.js.map +0 -1
- package/dist/chunk-MGCGWPQJ.cjs.map +0 -1
- package/dist/chunk-MRFUISXC.cjs.map +0 -1
- package/dist/chunk-NLNKQD2T.js +0 -7
- package/dist/chunk-NLNKQD2T.js.map +0 -1
- package/dist/chunk-OEIVMCWX.js.map +0 -1
- package/dist/chunk-PG5H6QIO.cjs.map +0 -1
- package/dist/chunk-PK2A5WBG.js.map +0 -1
- package/dist/chunk-QM5SRDJX.js.map +0 -1
- package/dist/chunk-S73Z3PBJ.cjs.map +0 -1
- package/dist/chunk-SCUWP4II.cjs.map +0 -1
- package/dist/chunk-SVLMF4UZ.cjs.map +0 -1
- package/dist/chunk-SXNQRJQD.js.map +0 -1
- package/dist/chunk-THZTRBFS.js.map +0 -1
- package/dist/chunk-TWH4PTDG.cjs.map +0 -1
- package/dist/chunk-U3XOLEPX.js.map +0 -1
- package/dist/chunk-US2U7ECW.js.map +0 -1
- package/dist/chunk-YC6PJEPH.cjs.map +0 -1
- package/dist/models-dev-23RN2WHG.js +0 -3
- package/dist/models-dev-EO3SUIY2.cjs +0 -12
- package/dist/netlify-GXJ5D5DD.js +0 -3
- package/dist/netlify-KJLY3GFS.cjs +0 -12
- package/dist/provider-registry-3TG2KUD2.cjs +0 -40
- package/dist/provider-registry-F67Y6OF2.js +0 -3
- package/dist/tools/tool-stream-types.test-d.d.ts +0 -2
- package/dist/tools/tool-stream-types.test-d.d.ts.map +0 -1
|
@@ -236,6 +236,7 @@
|
|
|
236
236
|
"magistral-small",
|
|
237
237
|
"ministral-3b-latest",
|
|
238
238
|
"ministral-8b-latest",
|
|
239
|
+
"mistral-embed",
|
|
239
240
|
"mistral-large-2411",
|
|
240
241
|
"mistral-large-2512",
|
|
241
242
|
"mistral-large-latest",
|
|
@@ -243,6 +244,7 @@
|
|
|
243
244
|
"mistral-medium-2508",
|
|
244
245
|
"mistral-medium-latest",
|
|
245
246
|
"mistral-nemo",
|
|
247
|
+
"mistral-small-2506",
|
|
246
248
|
"mistral-small-latest",
|
|
247
249
|
"open-mistral-7b",
|
|
248
250
|
"open-mixtral-8x22b",
|
|
@@ -469,6 +471,7 @@
|
|
|
469
471
|
"llama-3.2-3b",
|
|
470
472
|
"llama-3.3-70b",
|
|
471
473
|
"mistral-31-24b",
|
|
474
|
+
"openai-gpt-52",
|
|
472
475
|
"openai-gpt-oss-120b",
|
|
473
476
|
"qwen3-235b",
|
|
474
477
|
"qwen3-235b-a22b-instruct-2507",
|
|
@@ -495,6 +498,7 @@
|
|
|
495
498
|
"NousResearch/Hermes-4-14B",
|
|
496
499
|
"NousResearch/Hermes-4-405B-FP8",
|
|
497
500
|
"NousResearch/Hermes-4-70B",
|
|
501
|
+
"NousResearch/Hermes-4.3-36B",
|
|
498
502
|
"OpenGVLab/InternVL3-78B",
|
|
499
503
|
"Qwen/Qwen2.5-72B-Instruct",
|
|
500
504
|
"Qwen/Qwen2.5-Coder-32B-Instruct",
|
|
@@ -523,9 +527,8 @@
|
|
|
523
527
|
"deepseek-ai/DeepSeek-V3.1",
|
|
524
528
|
"deepseek-ai/DeepSeek-V3.1-Terminus",
|
|
525
529
|
"deepseek-ai/DeepSeek-V3.2",
|
|
526
|
-
"deepseek-ai/DeepSeek-V3.2-Speciale",
|
|
527
|
-
"
|
|
528
|
-
"microsoft/MAI-DS-R1-FP8",
|
|
530
|
+
"deepseek-ai/DeepSeek-V3.2-Speciale-TEE",
|
|
531
|
+
"mistralai/Devstral-2-123B-Instruct-2512",
|
|
529
532
|
"moonshotai/Kimi-K2-Instruct-0905",
|
|
530
533
|
"moonshotai/Kimi-K2-Thinking",
|
|
531
534
|
"openai/gpt-oss-120b",
|
|
@@ -533,7 +536,7 @@
|
|
|
533
536
|
"rednote-hilab/dots.ocr",
|
|
534
537
|
"tngtech/DeepSeek-R1T-Chimera",
|
|
535
538
|
"tngtech/DeepSeek-TNG-R1T2-Chimera",
|
|
536
|
-
"tngtech/TNG-R1T-Chimera",
|
|
539
|
+
"tngtech/TNG-R1T-Chimera-TEE",
|
|
537
540
|
"unsloth/Mistral-Nemo-Instruct-2407",
|
|
538
541
|
"unsloth/Mistral-Small-24B-Instruct-2501",
|
|
539
542
|
"unsloth/gemma-3-12b-it",
|
|
@@ -541,7 +544,9 @@
|
|
|
541
544
|
"unsloth/gemma-3-4b-it",
|
|
542
545
|
"zai-org/GLM-4.5",
|
|
543
546
|
"zai-org/GLM-4.5-Air",
|
|
544
|
-
"zai-org/GLM-4.6"
|
|
547
|
+
"zai-org/GLM-4.6",
|
|
548
|
+
"zai-org/GLM-4.6-TEE",
|
|
549
|
+
"zai-org/GLM-4.6V"
|
|
545
550
|
],
|
|
546
551
|
"docUrl": "https://llm.chutes.ai/v1/models",
|
|
547
552
|
"gateway": "models.dev"
|
|
@@ -564,14 +569,19 @@
|
|
|
564
569
|
"claude-4-5-sonnet",
|
|
565
570
|
"claude-sonnet-4",
|
|
566
571
|
"deepseek-v3-0324",
|
|
572
|
+
"devstral-2512",
|
|
573
|
+
"devstral-small-2512",
|
|
567
574
|
"gemini-2.5-pro",
|
|
568
575
|
"gpt-4.1",
|
|
569
576
|
"gpt-oss-120b",
|
|
577
|
+
"intellect-3",
|
|
570
578
|
"kimi-k2-instruct",
|
|
579
|
+
"kimi-k2-thinking",
|
|
571
580
|
"llama-3.1-405b-instruct",
|
|
572
581
|
"nova-pro-v1",
|
|
573
582
|
"qwen3-32b",
|
|
574
|
-
"qwen3-coder-480b-a35b-instruct"
|
|
583
|
+
"qwen3-coder-480b-a35b-instruct",
|
|
584
|
+
"qwen3-next-80b-a3b-thinking"
|
|
575
585
|
],
|
|
576
586
|
"docUrl": "https://api.cortecs.ai/v1/models",
|
|
577
587
|
"gateway": "models.dev"
|
|
@@ -650,9 +660,13 @@
|
|
|
650
660
|
"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",
|
|
651
661
|
"deepseek-ai/DeepSeek-R1",
|
|
652
662
|
"deepseek-ai/DeepSeek-V3",
|
|
663
|
+
"deepseek-ai/DeepSeek-V3-1",
|
|
664
|
+
"essentialai/Rnj-1-Instruct",
|
|
653
665
|
"meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
|
654
666
|
"moonshotai/Kimi-K2-Instruct",
|
|
655
|
-
"
|
|
667
|
+
"moonshotai/Kimi-K2-Thinking",
|
|
668
|
+
"openai/gpt-oss-120b",
|
|
669
|
+
"zai-org/GLM-4.6"
|
|
656
670
|
],
|
|
657
671
|
"docUrl": "https://docs.together.ai/docs/serverless-models",
|
|
658
672
|
"gateway": "models.dev"
|
|
@@ -903,6 +917,7 @@
|
|
|
903
917
|
"gpt-5.1",
|
|
904
918
|
"gpt-5.1-codex",
|
|
905
919
|
"gpt-5.1-codex-max",
|
|
920
|
+
"gpt-5.2",
|
|
906
921
|
"grok-code",
|
|
907
922
|
"kimi-k2",
|
|
908
923
|
"kimi-k2-thinking",
|
|
@@ -1012,21 +1027,16 @@
|
|
|
1012
1027
|
"apiKeyHeader": "Authorization",
|
|
1013
1028
|
"name": "Cloudflare AI Gateway",
|
|
1014
1029
|
"models": [
|
|
1015
|
-
"anthropic/claude-3-5-haiku",
|
|
1016
1030
|
"anthropic/claude-3-haiku",
|
|
1017
1031
|
"anthropic/claude-3-opus",
|
|
1018
1032
|
"anthropic/claude-3-sonnet",
|
|
1019
1033
|
"anthropic/claude-3.5-haiku",
|
|
1020
1034
|
"anthropic/claude-3.5-sonnet",
|
|
1021
|
-
"anthropic/claude-haiku-4-5",
|
|
1022
1035
|
"anthropic/claude-haiku-4.5",
|
|
1023
1036
|
"anthropic/claude-opus-4",
|
|
1024
|
-
"anthropic/claude-opus-4-1",
|
|
1025
|
-
"anthropic/claude-opus-4-5",
|
|
1026
1037
|
"anthropic/claude-opus-4.1",
|
|
1027
1038
|
"anthropic/claude-opus-4.5",
|
|
1028
1039
|
"anthropic/claude-sonnet-4",
|
|
1029
|
-
"anthropic/claude-sonnet-4-5",
|
|
1030
1040
|
"anthropic/claude-sonnet-4.5",
|
|
1031
1041
|
"openai/gpt-3.5-turbo",
|
|
1032
1042
|
"openai/gpt-4",
|
|
@@ -1046,7 +1056,6 @@
|
|
|
1046
1056
|
"replicate/meta/meta-llama-3-70b-instruct",
|
|
1047
1057
|
"replicate/meta/meta-llama-3-8b-instruct",
|
|
1048
1058
|
"replicate/meta/meta-llama-3.1-405b-instruct",
|
|
1049
|
-
"replicate/replicate-internal/llama-405b-instruct-vllm",
|
|
1050
1059
|
"workers-ai/aura-1",
|
|
1051
1060
|
"workers-ai/aura-2-en",
|
|
1052
1061
|
"workers-ai/aura-2-es",
|
|
@@ -1120,6 +1129,9 @@
|
|
|
1120
1129
|
"gpt-5.1-codex",
|
|
1121
1130
|
"gpt-5.1-codex-max",
|
|
1122
1131
|
"gpt-5.1-codex-mini",
|
|
1132
|
+
"gpt-5.2",
|
|
1133
|
+
"gpt-5.2-chat-latest",
|
|
1134
|
+
"gpt-5.2-pro",
|
|
1123
1135
|
"o1",
|
|
1124
1136
|
"o1-mini",
|
|
1125
1137
|
"o1-preview",
|
|
@@ -1142,7 +1154,7 @@
|
|
|
1142
1154
|
"apiKeyEnvVar": "ZHIPU_API_KEY",
|
|
1143
1155
|
"apiKeyHeader": "Authorization",
|
|
1144
1156
|
"name": "Zhipu AI Coding Plan",
|
|
1145
|
-
"models": ["glm-4.5", "glm-4.5-air", "glm-4.5-flash", "glm-4.5v", "glm-4.6", "glm-4.6v"],
|
|
1157
|
+
"models": ["glm-4.5", "glm-4.5-air", "glm-4.5-flash", "glm-4.5v", "glm-4.6", "glm-4.6v", "glm-4.6v-flash"],
|
|
1146
1158
|
"docUrl": "https://docs.bigmodel.cn/cn/coding-plan/overview",
|
|
1147
1159
|
"gateway": "models.dev"
|
|
1148
1160
|
},
|
|
@@ -1214,6 +1226,8 @@
|
|
|
1214
1226
|
"minimax/minimax-m1",
|
|
1215
1227
|
"minimax/minimax-m2",
|
|
1216
1228
|
"mistralai/codestral-2508",
|
|
1229
|
+
"mistralai/devstral-2512",
|
|
1230
|
+
"mistralai/devstral-2512:free",
|
|
1217
1231
|
"mistralai/devstral-medium-2507",
|
|
1218
1232
|
"mistralai/devstral-small-2505",
|
|
1219
1233
|
"mistralai/devstral-small-2505:free",
|
|
@@ -1249,11 +1263,16 @@
|
|
|
1249
1263
|
"openai/gpt-5.1-chat",
|
|
1250
1264
|
"openai/gpt-5.1-codex",
|
|
1251
1265
|
"openai/gpt-5.1-codex-mini",
|
|
1266
|
+
"openai/gpt-5.2",
|
|
1267
|
+
"openai/gpt-5.2-chat-latest",
|
|
1268
|
+
"openai/gpt-5.2-pro",
|
|
1252
1269
|
"openai/gpt-oss-120b",
|
|
1253
1270
|
"openai/gpt-oss-120b:exacto",
|
|
1254
1271
|
"openai/gpt-oss-20b",
|
|
1255
1272
|
"openai/gpt-oss-safeguard-20b",
|
|
1256
1273
|
"openai/o4-mini",
|
|
1274
|
+
"openrouter/sherlock-dash-alpha",
|
|
1275
|
+
"openrouter/sherlock-think-alpha",
|
|
1257
1276
|
"qwen/qwen-2.5-coder-32b-instruct",
|
|
1258
1277
|
"qwen/qwen2.5-vl-32b-instruct:free",
|
|
1259
1278
|
"qwen/qwen2.5-vl-72b-instruct",
|
|
@@ -1439,7 +1458,7 @@
|
|
|
1439
1458
|
"apiKeyEnvVar": "ZHIPU_API_KEY",
|
|
1440
1459
|
"apiKeyHeader": "Authorization",
|
|
1441
1460
|
"name": "Zhipu AI",
|
|
1442
|
-
"models": ["glm-4.5", "glm-4.5-air", "glm-4.5-flash", "glm-4.5v", "glm-4.6", "glm-4.6v"],
|
|
1461
|
+
"models": ["glm-4.5", "glm-4.5-air", "glm-4.5-flash", "glm-4.5v", "glm-4.6", "glm-4.6v", "glm-4.6v-flash"],
|
|
1443
1462
|
"docUrl": "https://docs.z.ai/guides/overview/pricing",
|
|
1444
1463
|
"gateway": "models.dev"
|
|
1445
1464
|
},
|
|
@@ -1706,6 +1725,7 @@
|
|
|
1706
1725
|
"google/gemini-2.5-flash-lite",
|
|
1707
1726
|
"google/gemini-2.5-pro",
|
|
1708
1727
|
"google/gemini-3-pro",
|
|
1728
|
+
"google/gemini-deep-research",
|
|
1709
1729
|
"google/imagen-3",
|
|
1710
1730
|
"google/imagen-3-fast",
|
|
1711
1731
|
"google/imagen-4",
|
|
@@ -1751,8 +1771,12 @@
|
|
|
1751
1771
|
"openai/gpt-5-pro",
|
|
1752
1772
|
"openai/gpt-5.1",
|
|
1753
1773
|
"openai/gpt-5.1-codex",
|
|
1774
|
+
"openai/gpt-5.1-codex-max",
|
|
1754
1775
|
"openai/gpt-5.1-codex-mini",
|
|
1755
1776
|
"openai/gpt-5.1-instant",
|
|
1777
|
+
"openai/gpt-5.2",
|
|
1778
|
+
"openai/gpt-5.2-instant",
|
|
1779
|
+
"openai/gpt-5.2-pro",
|
|
1756
1780
|
"openai/gpt-image-1",
|
|
1757
1781
|
"openai/gpt-image-1-mini",
|
|
1758
1782
|
"openai/o1",
|
|
@@ -1766,6 +1790,7 @@
|
|
|
1766
1790
|
"openai/o4-mini-deep-research",
|
|
1767
1791
|
"openai/sora-2",
|
|
1768
1792
|
"openai/sora-2-pro",
|
|
1793
|
+
"poetools/claude-code",
|
|
1769
1794
|
"runwayml/runway",
|
|
1770
1795
|
"runwayml/runway-gen-4-turbo",
|
|
1771
1796
|
"stabilityai/stablediffusionxl",
|
|
@@ -1802,11 +1827,15 @@
|
|
|
1802
1827
|
"anthropic/claude-3-5-haiku-20241022",
|
|
1803
1828
|
"anthropic/claude-3-7-sonnet-20250219",
|
|
1804
1829
|
"anthropic/claude-3-haiku-20240307",
|
|
1830
|
+
"anthropic/claude-haiku-4-5",
|
|
1805
1831
|
"anthropic/claude-haiku-4-5-20251001",
|
|
1806
1832
|
"anthropic/claude-opus-4-1-20250805",
|
|
1807
1833
|
"anthropic/claude-opus-4-20250514",
|
|
1834
|
+
"anthropic/claude-opus-4-5",
|
|
1808
1835
|
"anthropic/claude-opus-4-5-20251101",
|
|
1836
|
+
"anthropic/claude-sonnet-4",
|
|
1809
1837
|
"anthropic/claude-sonnet-4-20250514",
|
|
1838
|
+
"anthropic/claude-sonnet-4-5",
|
|
1810
1839
|
"anthropic/claude-sonnet-4-5-20250929",
|
|
1811
1840
|
"gemini/gemini-2.0-flash",
|
|
1812
1841
|
"gemini/gemini-2.0-flash-lite",
|
|
@@ -1839,6 +1868,8 @@
|
|
|
1839
1868
|
"openai/gpt-5.1-codex",
|
|
1840
1869
|
"openai/gpt-5.1-codex-max",
|
|
1841
1870
|
"openai/gpt-5.1-codex-mini",
|
|
1871
|
+
"openai/gpt-5.2",
|
|
1872
|
+
"openai/gpt-5.2-pro",
|
|
1842
1873
|
"openai/o3",
|
|
1843
1874
|
"openai/o3-mini",
|
|
1844
1875
|
"openai/o4-mini"
|
|
@@ -1993,6 +2024,7 @@
|
|
|
1993
2024
|
"magistral-small",
|
|
1994
2025
|
"ministral-3b-latest",
|
|
1995
2026
|
"ministral-8b-latest",
|
|
2027
|
+
"mistral-embed",
|
|
1996
2028
|
"mistral-large-2411",
|
|
1997
2029
|
"mistral-large-2512",
|
|
1998
2030
|
"mistral-large-latest",
|
|
@@ -2000,6 +2032,7 @@
|
|
|
2000
2032
|
"mistral-medium-2508",
|
|
2001
2033
|
"mistral-medium-latest",
|
|
2002
2034
|
"mistral-nemo",
|
|
2035
|
+
"mistral-small-2506",
|
|
2003
2036
|
"mistral-small-latest",
|
|
2004
2037
|
"open-mistral-7b",
|
|
2005
2038
|
"open-mixtral-8x22b",
|
|
@@ -2187,6 +2220,7 @@
|
|
|
2187
2220
|
"llama-3.2-3b",
|
|
2188
2221
|
"llama-3.3-70b",
|
|
2189
2222
|
"mistral-31-24b",
|
|
2223
|
+
"openai-gpt-52",
|
|
2190
2224
|
"openai-gpt-oss-120b",
|
|
2191
2225
|
"qwen3-235b",
|
|
2192
2226
|
"qwen3-235b-a22b-instruct-2507",
|
|
@@ -2205,6 +2239,7 @@
|
|
|
2205
2239
|
"NousResearch/Hermes-4-14B",
|
|
2206
2240
|
"NousResearch/Hermes-4-405B-FP8",
|
|
2207
2241
|
"NousResearch/Hermes-4-70B",
|
|
2242
|
+
"NousResearch/Hermes-4.3-36B",
|
|
2208
2243
|
"OpenGVLab/InternVL3-78B",
|
|
2209
2244
|
"Qwen/Qwen2.5-72B-Instruct",
|
|
2210
2245
|
"Qwen/Qwen2.5-Coder-32B-Instruct",
|
|
@@ -2233,9 +2268,8 @@
|
|
|
2233
2268
|
"deepseek-ai/DeepSeek-V3.1",
|
|
2234
2269
|
"deepseek-ai/DeepSeek-V3.1-Terminus",
|
|
2235
2270
|
"deepseek-ai/DeepSeek-V3.2",
|
|
2236
|
-
"deepseek-ai/DeepSeek-V3.2-Speciale",
|
|
2237
|
-
"
|
|
2238
|
-
"microsoft/MAI-DS-R1-FP8",
|
|
2271
|
+
"deepseek-ai/DeepSeek-V3.2-Speciale-TEE",
|
|
2272
|
+
"mistralai/Devstral-2-123B-Instruct-2512",
|
|
2239
2273
|
"moonshotai/Kimi-K2-Instruct-0905",
|
|
2240
2274
|
"moonshotai/Kimi-K2-Thinking",
|
|
2241
2275
|
"openai/gpt-oss-120b",
|
|
@@ -2243,7 +2277,7 @@
|
|
|
2243
2277
|
"rednote-hilab/dots.ocr",
|
|
2244
2278
|
"tngtech/DeepSeek-R1T-Chimera",
|
|
2245
2279
|
"tngtech/DeepSeek-TNG-R1T2-Chimera",
|
|
2246
|
-
"tngtech/TNG-R1T-Chimera",
|
|
2280
|
+
"tngtech/TNG-R1T-Chimera-TEE",
|
|
2247
2281
|
"unsloth/Mistral-Nemo-Instruct-2407",
|
|
2248
2282
|
"unsloth/Mistral-Small-24B-Instruct-2501",
|
|
2249
2283
|
"unsloth/gemma-3-12b-it",
|
|
@@ -2251,21 +2285,28 @@
|
|
|
2251
2285
|
"unsloth/gemma-3-4b-it",
|
|
2252
2286
|
"zai-org/GLM-4.5",
|
|
2253
2287
|
"zai-org/GLM-4.5-Air",
|
|
2254
|
-
"zai-org/GLM-4.6"
|
|
2288
|
+
"zai-org/GLM-4.6",
|
|
2289
|
+
"zai-org/GLM-4.6-TEE",
|
|
2290
|
+
"zai-org/GLM-4.6V"
|
|
2255
2291
|
],
|
|
2256
2292
|
"kimi-for-coding": ["kimi-k2-thinking"],
|
|
2257
2293
|
"cortecs": [
|
|
2258
2294
|
"claude-4-5-sonnet",
|
|
2259
2295
|
"claude-sonnet-4",
|
|
2260
2296
|
"deepseek-v3-0324",
|
|
2297
|
+
"devstral-2512",
|
|
2298
|
+
"devstral-small-2512",
|
|
2261
2299
|
"gemini-2.5-pro",
|
|
2262
2300
|
"gpt-4.1",
|
|
2263
2301
|
"gpt-oss-120b",
|
|
2302
|
+
"intellect-3",
|
|
2264
2303
|
"kimi-k2-instruct",
|
|
2304
|
+
"kimi-k2-thinking",
|
|
2265
2305
|
"llama-3.1-405b-instruct",
|
|
2266
2306
|
"nova-pro-v1",
|
|
2267
2307
|
"qwen3-32b",
|
|
2268
|
-
"qwen3-coder-480b-a35b-instruct"
|
|
2308
|
+
"qwen3-coder-480b-a35b-instruct",
|
|
2309
|
+
"qwen3-next-80b-a3b-thinking"
|
|
2269
2310
|
],
|
|
2270
2311
|
"github-models": [
|
|
2271
2312
|
"ai21-labs/ai21-jamba-1.5-large",
|
|
@@ -2328,9 +2369,13 @@
|
|
|
2328
2369
|
"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",
|
|
2329
2370
|
"deepseek-ai/DeepSeek-R1",
|
|
2330
2371
|
"deepseek-ai/DeepSeek-V3",
|
|
2372
|
+
"deepseek-ai/DeepSeek-V3-1",
|
|
2373
|
+
"essentialai/Rnj-1-Instruct",
|
|
2331
2374
|
"meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
|
2332
2375
|
"moonshotai/Kimi-K2-Instruct",
|
|
2333
|
-
"
|
|
2376
|
+
"moonshotai/Kimi-K2-Thinking",
|
|
2377
|
+
"openai/gpt-oss-120b",
|
|
2378
|
+
"zai-org/GLM-4.6"
|
|
2334
2379
|
],
|
|
2335
2380
|
"baseten": [
|
|
2336
2381
|
"Qwen/Qwen3-Coder-480B-A35B-Instruct",
|
|
@@ -2541,6 +2586,7 @@
|
|
|
2541
2586
|
"gpt-5.1",
|
|
2542
2587
|
"gpt-5.1-codex",
|
|
2543
2588
|
"gpt-5.1-codex-max",
|
|
2589
|
+
"gpt-5.2",
|
|
2544
2590
|
"grok-code",
|
|
2545
2591
|
"kimi-k2",
|
|
2546
2592
|
"kimi-k2-thinking",
|
|
@@ -2604,21 +2650,16 @@
|
|
|
2604
2650
|
"moonshotai/Kimi-K2-Instruct"
|
|
2605
2651
|
],
|
|
2606
2652
|
"cloudflare-ai-gateway": [
|
|
2607
|
-
"anthropic/claude-3-5-haiku",
|
|
2608
2653
|
"anthropic/claude-3-haiku",
|
|
2609
2654
|
"anthropic/claude-3-opus",
|
|
2610
2655
|
"anthropic/claude-3-sonnet",
|
|
2611
2656
|
"anthropic/claude-3.5-haiku",
|
|
2612
2657
|
"anthropic/claude-3.5-sonnet",
|
|
2613
|
-
"anthropic/claude-haiku-4-5",
|
|
2614
2658
|
"anthropic/claude-haiku-4.5",
|
|
2615
2659
|
"anthropic/claude-opus-4",
|
|
2616
|
-
"anthropic/claude-opus-4-1",
|
|
2617
|
-
"anthropic/claude-opus-4-5",
|
|
2618
2660
|
"anthropic/claude-opus-4.1",
|
|
2619
2661
|
"anthropic/claude-opus-4.5",
|
|
2620
2662
|
"anthropic/claude-sonnet-4",
|
|
2621
|
-
"anthropic/claude-sonnet-4-5",
|
|
2622
2663
|
"anthropic/claude-sonnet-4.5",
|
|
2623
2664
|
"openai/gpt-3.5-turbo",
|
|
2624
2665
|
"openai/gpt-4",
|
|
@@ -2638,7 +2679,6 @@
|
|
|
2638
2679
|
"replicate/meta/meta-llama-3-70b-instruct",
|
|
2639
2680
|
"replicate/meta/meta-llama-3-8b-instruct",
|
|
2640
2681
|
"replicate/meta/meta-llama-3.1-405b-instruct",
|
|
2641
|
-
"replicate/replicate-internal/llama-405b-instruct-vllm",
|
|
2642
2682
|
"workers-ai/aura-1",
|
|
2643
2683
|
"workers-ai/aura-2-en",
|
|
2644
2684
|
"workers-ai/aura-2-es",
|
|
@@ -2706,6 +2746,9 @@
|
|
|
2706
2746
|
"gpt-5.1-codex",
|
|
2707
2747
|
"gpt-5.1-codex-max",
|
|
2708
2748
|
"gpt-5.1-codex-mini",
|
|
2749
|
+
"gpt-5.2",
|
|
2750
|
+
"gpt-5.2-chat-latest",
|
|
2751
|
+
"gpt-5.2-pro",
|
|
2709
2752
|
"o1",
|
|
2710
2753
|
"o1-mini",
|
|
2711
2754
|
"o1-preview",
|
|
@@ -2720,7 +2763,15 @@
|
|
|
2720
2763
|
"text-embedding-3-small",
|
|
2721
2764
|
"text-embedding-ada-002"
|
|
2722
2765
|
],
|
|
2723
|
-
"zhipuai-coding-plan": [
|
|
2766
|
+
"zhipuai-coding-plan": [
|
|
2767
|
+
"glm-4.5",
|
|
2768
|
+
"glm-4.5-air",
|
|
2769
|
+
"glm-4.5-flash",
|
|
2770
|
+
"glm-4.5v",
|
|
2771
|
+
"glm-4.6",
|
|
2772
|
+
"glm-4.6v",
|
|
2773
|
+
"glm-4.6v-flash"
|
|
2774
|
+
],
|
|
2724
2775
|
"minimax-cn": ["MiniMax-M2"],
|
|
2725
2776
|
"perplexity": ["sonar", "sonar-pro", "sonar-reasoning", "sonar-reasoning-pro"],
|
|
2726
2777
|
"openrouter": [
|
|
@@ -2771,6 +2822,8 @@
|
|
|
2771
2822
|
"minimax/minimax-m1",
|
|
2772
2823
|
"minimax/minimax-m2",
|
|
2773
2824
|
"mistralai/codestral-2508",
|
|
2825
|
+
"mistralai/devstral-2512",
|
|
2826
|
+
"mistralai/devstral-2512:free",
|
|
2774
2827
|
"mistralai/devstral-medium-2507",
|
|
2775
2828
|
"mistralai/devstral-small-2505",
|
|
2776
2829
|
"mistralai/devstral-small-2505:free",
|
|
@@ -2806,11 +2859,16 @@
|
|
|
2806
2859
|
"openai/gpt-5.1-chat",
|
|
2807
2860
|
"openai/gpt-5.1-codex",
|
|
2808
2861
|
"openai/gpt-5.1-codex-mini",
|
|
2862
|
+
"openai/gpt-5.2",
|
|
2863
|
+
"openai/gpt-5.2-chat-latest",
|
|
2864
|
+
"openai/gpt-5.2-pro",
|
|
2809
2865
|
"openai/gpt-oss-120b",
|
|
2810
2866
|
"openai/gpt-oss-120b:exacto",
|
|
2811
2867
|
"openai/gpt-oss-20b",
|
|
2812
2868
|
"openai/gpt-oss-safeguard-20b",
|
|
2813
2869
|
"openai/o4-mini",
|
|
2870
|
+
"openrouter/sherlock-dash-alpha",
|
|
2871
|
+
"openrouter/sherlock-think-alpha",
|
|
2814
2872
|
"qwen/qwen-2.5-coder-32b-instruct",
|
|
2815
2873
|
"qwen/qwen2.5-vl-32b-instruct:free",
|
|
2816
2874
|
"qwen/qwen2.5-vl-72b-instruct",
|
|
@@ -2948,7 +3006,7 @@
|
|
|
2948
3006
|
"openai/gpt-oss-20b",
|
|
2949
3007
|
"zai-org/GLM-4.5"
|
|
2950
3008
|
],
|
|
2951
|
-
"zhipuai": ["glm-4.5", "glm-4.5-air", "glm-4.5-flash", "glm-4.5v", "glm-4.6", "glm-4.6v"],
|
|
3009
|
+
"zhipuai": ["glm-4.5", "glm-4.5-air", "glm-4.5-flash", "glm-4.5v", "glm-4.6", "glm-4.6v", "glm-4.6v-flash"],
|
|
2952
3010
|
"submodel": [
|
|
2953
3011
|
"Qwen/Qwen3-235B-A22B-Instruct-2507",
|
|
2954
3012
|
"Qwen/Qwen3-235B-A22B-Thinking-2507",
|
|
@@ -3113,6 +3171,7 @@
|
|
|
3113
3171
|
"google/gemini-2.5-flash-lite",
|
|
3114
3172
|
"google/gemini-2.5-pro",
|
|
3115
3173
|
"google/gemini-3-pro",
|
|
3174
|
+
"google/gemini-deep-research",
|
|
3116
3175
|
"google/imagen-3",
|
|
3117
3176
|
"google/imagen-3-fast",
|
|
3118
3177
|
"google/imagen-4",
|
|
@@ -3158,8 +3217,12 @@
|
|
|
3158
3217
|
"openai/gpt-5-pro",
|
|
3159
3218
|
"openai/gpt-5.1",
|
|
3160
3219
|
"openai/gpt-5.1-codex",
|
|
3220
|
+
"openai/gpt-5.1-codex-max",
|
|
3161
3221
|
"openai/gpt-5.1-codex-mini",
|
|
3162
3222
|
"openai/gpt-5.1-instant",
|
|
3223
|
+
"openai/gpt-5.2",
|
|
3224
|
+
"openai/gpt-5.2-instant",
|
|
3225
|
+
"openai/gpt-5.2-pro",
|
|
3163
3226
|
"openai/gpt-image-1",
|
|
3164
3227
|
"openai/gpt-image-1-mini",
|
|
3165
3228
|
"openai/o1",
|
|
@@ -3173,6 +3236,7 @@
|
|
|
3173
3236
|
"openai/o4-mini-deep-research",
|
|
3174
3237
|
"openai/sora-2",
|
|
3175
3238
|
"openai/sora-2-pro",
|
|
3239
|
+
"poetools/claude-code",
|
|
3176
3240
|
"runwayml/runway",
|
|
3177
3241
|
"runwayml/runway-gen-4-turbo",
|
|
3178
3242
|
"stabilityai/stablediffusionxl",
|
|
@@ -3193,11 +3257,15 @@
|
|
|
3193
3257
|
"anthropic/claude-3-5-haiku-20241022",
|
|
3194
3258
|
"anthropic/claude-3-7-sonnet-20250219",
|
|
3195
3259
|
"anthropic/claude-3-haiku-20240307",
|
|
3260
|
+
"anthropic/claude-haiku-4-5",
|
|
3196
3261
|
"anthropic/claude-haiku-4-5-20251001",
|
|
3197
3262
|
"anthropic/claude-opus-4-1-20250805",
|
|
3198
3263
|
"anthropic/claude-opus-4-20250514",
|
|
3264
|
+
"anthropic/claude-opus-4-5",
|
|
3199
3265
|
"anthropic/claude-opus-4-5-20251101",
|
|
3266
|
+
"anthropic/claude-sonnet-4",
|
|
3200
3267
|
"anthropic/claude-sonnet-4-20250514",
|
|
3268
|
+
"anthropic/claude-sonnet-4-5",
|
|
3201
3269
|
"anthropic/claude-sonnet-4-5-20250929",
|
|
3202
3270
|
"gemini/gemini-2.0-flash",
|
|
3203
3271
|
"gemini/gemini-2.0-flash-lite",
|
|
@@ -3230,6 +3298,8 @@
|
|
|
3230
3298
|
"openai/gpt-5.1-codex",
|
|
3231
3299
|
"openai/gpt-5.1-codex-max",
|
|
3232
3300
|
"openai/gpt-5.1-codex-mini",
|
|
3301
|
+
"openai/gpt-5.2",
|
|
3302
|
+
"openai/gpt-5.2-pro",
|
|
3233
3303
|
"openai/o3",
|
|
3234
3304
|
"openai/o3-mini",
|
|
3235
3305
|
"openai/o4-mini"
|
|
@@ -120,5 +120,5 @@ async function writeRegistryFiles(jsonPath, typesPath, providers, models) {
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
export { atomicWriteFile, fetchProvidersFromGateways, generateTypesContent, writeRegistryFiles };
|
|
123
|
-
//# sourceMappingURL=registry-generator-
|
|
124
|
-
//# sourceMappingURL=registry-generator-
|
|
123
|
+
//# sourceMappingURL=registry-generator-AVQXI3GX.js.map
|
|
124
|
+
//# sourceMappingURL=registry-generator-AVQXI3GX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/llm/model/registry-generator.ts"],"names":[],"mappings":"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","file":"registry-generator-UMTNPBJX.js","sourcesContent":["/**\n * Shared provider registry generation logic\n * Used by both the CLI generation script and runtime refresh\n */\n\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport type { MastraModelGateway, ProviderConfig } from './gateways/base.js';\n\n/**\n * Write a file atomically using the write-to-temp-then-rename pattern.\n * This prevents file corruption when multiple processes write to the same file concurrently.\n *\n * The rename operation is atomic on POSIX systems when source and destination\n * are on the same filesystem.\n *\n * @param filePath - The target file path\n * @param content - The content to write\n * @param encoding - The encoding to use (default: 'utf-8')\n */\nexport async function atomicWriteFile(\n filePath: string,\n content: string,\n encoding: BufferEncoding = 'utf-8',\n): Promise<void> {\n // Create a unique temp file name using PID, timestamp, and random suffix to avoid collisions\n const randomSuffix = Math.random().toString(36).substring(2, 15);\n const tempPath = `${filePath}.${process.pid}.${Date.now()}.${randomSuffix}.tmp`;\n\n try {\n // Write to temp file first\n await fs.writeFile(tempPath, content, encoding);\n\n // Atomically rename temp file to target path\n // This is atomic on POSIX when both paths are on the same filesystem\n await fs.rename(tempPath, filePath);\n } catch (error) {\n // Clean up temp file if it exists\n try {\n await fs.unlink(tempPath);\n } catch {\n // Ignore cleanup errors\n }\n throw error;\n }\n}\n\n/**\n * Fetch providers from all gateways with retry logic\n * @param gateways - Array of gateway instances to fetch from\n * @returns Object containing providers and models records\n */\nexport async function fetchProvidersFromGateways(\n gateways: MastraModelGateway[],\n): Promise<{ providers: Record<string, ProviderConfig>; models: Record<string, string[]> }> {\n const allProviders: Record<string, ProviderConfig> = {};\n const allModels: Record<string, string[]> = {};\n\n const maxRetries = 3;\n\n for (const gateway of gateways) {\n let lastError: Error | null = null;\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const providers = await gateway.fetchProviders();\n\n // models.dev is a provider registry, not a true gateway - don't prefix its providers\n const isProviderRegistry = gateway.id === 'models.dev';\n\n for (const [providerId, config] of Object.entries(providers)) {\n // For true gateways, use gateway.id as prefix (e.g., \"netlify/anthropic\")\n // Special case: if providerId matches gateway.id, it's a unified gateway (e.g., azure-openai returning {azure-openai: {...}})\n // In this case, use just the gateway ID to avoid duplication (azure-openai, not azure-openai/azure-openai)\n const typeProviderId = isProviderRegistry\n ? providerId\n : providerId === gateway.id\n ? gateway.id\n : `${gateway.id}/${providerId}`;\n\n allProviders[typeProviderId] = config;\n // Sort models alphabetically for consistent ordering\n allModels[typeProviderId] = config.models.sort();\n }\n\n lastError = null;\n break; // Success, exit retry loop\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n\n if (attempt < maxRetries) {\n // Wait before retrying (exponential backoff)\n const delayMs = Math.min(1000 * Math.pow(2, attempt - 1), 5000);\n await new Promise(resolve => setTimeout(resolve, delayMs));\n }\n }\n }\n\n // If all retries failed, throw the last error\n if (lastError) {\n throw lastError;\n }\n }\n\n return { providers: allProviders, models: allModels };\n}\n\n/**\n * Generate TypeScript type definitions content\n * @param models - Record of provider IDs to model arrays\n * @returns Generated TypeScript type definitions as a string\n */\nexport function generateTypesContent(models: Record<string, string[]>): string {\n const providerModelsEntries = Object.entries(models)\n .map(([provider, modelList]) => {\n const modelsList = modelList.map(m => `'${m}'`);\n\n // Only quote provider key if it contains special characters (like dashes)\n const needsQuotes = /[^a-zA-Z0-9_$]/.test(provider);\n const providerKey = needsQuotes ? `'${provider}'` : provider;\n\n // Format array based on length (prettier printWidth: 120)\n const singleLine = ` readonly ${providerKey}: readonly [${modelsList.join(', ')}];`;\n\n // If single line exceeds 120 chars, format as multi-line\n if (singleLine.length > 120) {\n const formattedModels = modelList.map(m => ` '${m}',`).join('\\n');\n return ` readonly ${providerKey}: readonly [\\n${formattedModels}\\n ];`;\n }\n\n return singleLine;\n })\n .join('\\n');\n\n return `/**\n * THIS FILE IS AUTO-GENERATED - DO NOT EDIT\n * Generated from model gateway providers\n */\n\n/**\n * Provider models mapping type\n * This is derived from the JSON data and provides type-safe access\n */\nexport type ProviderModelsMap = {\n${providerModelsEntries}\n};\n\n/**\n * Union type of all registered provider IDs\n */\nexport type Provider = keyof ProviderModelsMap;\n\n/**\n * Provider models mapping interface\n */\nexport interface ProviderModels {\n [key: string]: string[];\n}\n\n/**\n * OpenAI-compatible model ID type\n * Dynamically derived from ProviderModelsMap\n * Full provider/model paths (e.g., \"openai/gpt-4o\", \"anthropic/claude-3-5-sonnet-20241022\")\n */\nexport type ModelRouterModelId =\n | {\n [P in Provider]: \\`\\${P}/\\${ProviderModelsMap[P][number]}\\`;\n }[Provider]\n | (string & {});\n\n/**\n * Extract the model part from a ModelRouterModelId for a specific provider\n * Dynamically derived from ProviderModelsMap\n * Example: ModelForProvider<'openai'> = 'gpt-4o' | 'gpt-4-turbo' | ...\n */\nexport type ModelForProvider<P extends Provider> = ProviderModelsMap[P][number];\n`;\n}\n\n/**\n * Write registry files to disk (JSON and .d.ts)\n * @param jsonPath - Path to write the JSON file\n * @param typesPath - Path to write the .d.ts file\n * @param providers - Provider configurations\n * @param models - Model lists by provider\n */\nexport async function writeRegistryFiles(\n jsonPath: string,\n typesPath: string,\n providers: Record<string, ProviderConfig>,\n models: Record<string, string[]>,\n): Promise<void> {\n // 0. Ensure directories exist\n const jsonDir = path.dirname(jsonPath);\n const typesDir = path.dirname(typesPath);\n await fs.mkdir(jsonDir, { recursive: true });\n await fs.mkdir(typesDir, { recursive: true });\n\n // 1. Write JSON file atomically to prevent corruption from concurrent writes\n const registryData = {\n providers,\n models,\n version: '1.0.0',\n };\n\n await atomicWriteFile(jsonPath, JSON.stringify(registryData, null, 2), 'utf-8');\n\n // 2. Generate .d.ts file with type-only declarations (also atomic)\n const typeContent = generateTypesContent(models);\n await atomicWriteFile(typesPath, typeContent, 'utf-8');\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/llm/model/registry-generator.ts"],"names":[],"mappings":"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","file":"registry-generator-AVQXI3GX.js","sourcesContent":["/**\n * Shared provider registry generation logic\n * Used by both the CLI generation script and runtime refresh\n */\n\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport type { MastraModelGateway, ProviderConfig } from './gateways/base.js';\n\n/**\n * Write a file atomically using the write-to-temp-then-rename pattern.\n * This prevents file corruption when multiple processes write to the same file concurrently.\n *\n * The rename operation is atomic on POSIX systems when source and destination\n * are on the same filesystem.\n *\n * @param filePath - The target file path\n * @param content - The content to write\n * @param encoding - The encoding to use (default: 'utf-8')\n */\nexport async function atomicWriteFile(\n filePath: string,\n content: string,\n encoding: BufferEncoding = 'utf-8',\n): Promise<void> {\n // Create a unique temp file name using PID, timestamp, and random suffix to avoid collisions\n const randomSuffix = Math.random().toString(36).substring(2, 15);\n const tempPath = `${filePath}.${process.pid}.${Date.now()}.${randomSuffix}.tmp`;\n\n try {\n // Write to temp file first\n await fs.writeFile(tempPath, content, encoding);\n\n // Atomically rename temp file to target path\n // This is atomic on POSIX when both paths are on the same filesystem\n await fs.rename(tempPath, filePath);\n } catch (error) {\n // Clean up temp file if it exists\n try {\n await fs.unlink(tempPath);\n } catch {\n // Ignore cleanup errors\n }\n throw error;\n }\n}\n\n/**\n * Fetch providers from all gateways with retry logic\n * @param gateways - Array of gateway instances to fetch from\n * @returns Object containing providers and models records\n */\nexport async function fetchProvidersFromGateways(\n gateways: MastraModelGateway[],\n): Promise<{ providers: Record<string, ProviderConfig>; models: Record<string, string[]> }> {\n const allProviders: Record<string, ProviderConfig> = {};\n const allModels: Record<string, string[]> = {};\n\n const maxRetries = 3;\n\n for (const gateway of gateways) {\n let lastError: Error | null = null;\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const providers = await gateway.fetchProviders();\n\n // models.dev is a provider registry, not a true gateway - don't prefix its providers\n const isProviderRegistry = gateway.id === 'models.dev';\n\n for (const [providerId, config] of Object.entries(providers)) {\n // For true gateways, use gateway.id as prefix (e.g., \"netlify/anthropic\")\n // Special case: if providerId matches gateway.id, it's a unified gateway (e.g., azure-openai returning {azure-openai: {...}})\n // In this case, use just the gateway ID to avoid duplication (azure-openai, not azure-openai/azure-openai)\n const typeProviderId = isProviderRegistry\n ? providerId\n : providerId === gateway.id\n ? gateway.id\n : `${gateway.id}/${providerId}`;\n\n allProviders[typeProviderId] = config;\n // Sort models alphabetically for consistent ordering\n allModels[typeProviderId] = config.models.sort();\n }\n\n lastError = null;\n break; // Success, exit retry loop\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n\n if (attempt < maxRetries) {\n // Wait before retrying (exponential backoff)\n const delayMs = Math.min(1000 * Math.pow(2, attempt - 1), 5000);\n await new Promise(resolve => setTimeout(resolve, delayMs));\n }\n }\n }\n\n // If all retries failed, throw the last error\n if (lastError) {\n throw lastError;\n }\n }\n\n return { providers: allProviders, models: allModels };\n}\n\n/**\n * Generate TypeScript type definitions content\n * @param models - Record of provider IDs to model arrays\n * @returns Generated TypeScript type definitions as a string\n */\nexport function generateTypesContent(models: Record<string, string[]>): string {\n const providerModelsEntries = Object.entries(models)\n .map(([provider, modelList]) => {\n const modelsList = modelList.map(m => `'${m}'`);\n\n // Only quote provider key if it contains special characters (like dashes)\n const needsQuotes = /[^a-zA-Z0-9_$]/.test(provider);\n const providerKey = needsQuotes ? `'${provider}'` : provider;\n\n // Format array based on length (prettier printWidth: 120)\n const singleLine = ` readonly ${providerKey}: readonly [${modelsList.join(', ')}];`;\n\n // If single line exceeds 120 chars, format as multi-line\n if (singleLine.length > 120) {\n const formattedModels = modelList.map(m => ` '${m}',`).join('\\n');\n return ` readonly ${providerKey}: readonly [\\n${formattedModels}\\n ];`;\n }\n\n return singleLine;\n })\n .join('\\n');\n\n return `/**\n * THIS FILE IS AUTO-GENERATED - DO NOT EDIT\n * Generated from model gateway providers\n */\n\n/**\n * Provider models mapping type\n * This is derived from the JSON data and provides type-safe access\n */\nexport type ProviderModelsMap = {\n${providerModelsEntries}\n};\n\n/**\n * Union type of all registered provider IDs\n */\nexport type Provider = keyof ProviderModelsMap;\n\n/**\n * Provider models mapping interface\n */\nexport interface ProviderModels {\n [key: string]: string[];\n}\n\n/**\n * OpenAI-compatible model ID type\n * Dynamically derived from ProviderModelsMap\n * Full provider/model paths (e.g., \"openai/gpt-4o\", \"anthropic/claude-3-5-sonnet-20241022\")\n */\nexport type ModelRouterModelId =\n | {\n [P in Provider]: \\`\\${P}/\\${ProviderModelsMap[P][number]}\\`;\n }[Provider]\n | (string & {});\n\n/**\n * Extract the model part from a ModelRouterModelId for a specific provider\n * Dynamically derived from ProviderModelsMap\n * Example: ModelForProvider<'openai'> = 'gpt-4o' | 'gpt-4-turbo' | ...\n */\nexport type ModelForProvider<P extends Provider> = ProviderModelsMap[P][number];\n`;\n}\n\n/**\n * Write registry files to disk (JSON and .d.ts)\n * @param jsonPath - Path to write the JSON file\n * @param typesPath - Path to write the .d.ts file\n * @param providers - Provider configurations\n * @param models - Model lists by provider\n */\nexport async function writeRegistryFiles(\n jsonPath: string,\n typesPath: string,\n providers: Record<string, ProviderConfig>,\n models: Record<string, string[]>,\n): Promise<void> {\n // 0. Ensure directories exist\n const jsonDir = path.dirname(jsonPath);\n const typesDir = path.dirname(typesPath);\n await fs.mkdir(jsonDir, { recursive: true });\n await fs.mkdir(typesDir, { recursive: true });\n\n // 1. Write JSON file atomically to prevent corruption from concurrent writes\n const registryData = {\n providers,\n models,\n version: '1.0.0',\n };\n\n await atomicWriteFile(jsonPath, JSON.stringify(registryData, null, 2), 'utf-8');\n\n // 2. Generate .d.ts file with type-only declarations (also atomic)\n const typeContent = generateTypesContent(models);\n await atomicWriteFile(typesPath, typeContent, 'utf-8');\n}\n"]}
|
|
@@ -130,5 +130,5 @@ exports.atomicWriteFile = atomicWriteFile;
|
|
|
130
130
|
exports.fetchProvidersFromGateways = fetchProvidersFromGateways;
|
|
131
131
|
exports.generateTypesContent = generateTypesContent;
|
|
132
132
|
exports.writeRegistryFiles = writeRegistryFiles;
|
|
133
|
-
//# sourceMappingURL=registry-generator-
|
|
134
|
-
//# sourceMappingURL=registry-generator-
|
|
133
|
+
//# sourceMappingURL=registry-generator-KOFNIIWJ.cjs.map
|
|
134
|
+
//# sourceMappingURL=registry-generator-KOFNIIWJ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/llm/model/registry-generator.ts"],"names":["fs","path"],"mappings":"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","file":"registry-generator-34SC4TAU.cjs","sourcesContent":["/**\n * Shared provider registry generation logic\n * Used by both the CLI generation script and runtime refresh\n */\n\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport type { MastraModelGateway, ProviderConfig } from './gateways/base.js';\n\n/**\n * Write a file atomically using the write-to-temp-then-rename pattern.\n * This prevents file corruption when multiple processes write to the same file concurrently.\n *\n * The rename operation is atomic on POSIX systems when source and destination\n * are on the same filesystem.\n *\n * @param filePath - The target file path\n * @param content - The content to write\n * @param encoding - The encoding to use (default: 'utf-8')\n */\nexport async function atomicWriteFile(\n filePath: string,\n content: string,\n encoding: BufferEncoding = 'utf-8',\n): Promise<void> {\n // Create a unique temp file name using PID, timestamp, and random suffix to avoid collisions\n const randomSuffix = Math.random().toString(36).substring(2, 15);\n const tempPath = `${filePath}.${process.pid}.${Date.now()}.${randomSuffix}.tmp`;\n\n try {\n // Write to temp file first\n await fs.writeFile(tempPath, content, encoding);\n\n // Atomically rename temp file to target path\n // This is atomic on POSIX when both paths are on the same filesystem\n await fs.rename(tempPath, filePath);\n } catch (error) {\n // Clean up temp file if it exists\n try {\n await fs.unlink(tempPath);\n } catch {\n // Ignore cleanup errors\n }\n throw error;\n }\n}\n\n/**\n * Fetch providers from all gateways with retry logic\n * @param gateways - Array of gateway instances to fetch from\n * @returns Object containing providers and models records\n */\nexport async function fetchProvidersFromGateways(\n gateways: MastraModelGateway[],\n): Promise<{ providers: Record<string, ProviderConfig>; models: Record<string, string[]> }> {\n const allProviders: Record<string, ProviderConfig> = {};\n const allModels: Record<string, string[]> = {};\n\n const maxRetries = 3;\n\n for (const gateway of gateways) {\n let lastError: Error | null = null;\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const providers = await gateway.fetchProviders();\n\n // models.dev is a provider registry, not a true gateway - don't prefix its providers\n const isProviderRegistry = gateway.id === 'models.dev';\n\n for (const [providerId, config] of Object.entries(providers)) {\n // For true gateways, use gateway.id as prefix (e.g., \"netlify/anthropic\")\n // Special case: if providerId matches gateway.id, it's a unified gateway (e.g., azure-openai returning {azure-openai: {...}})\n // In this case, use just the gateway ID to avoid duplication (azure-openai, not azure-openai/azure-openai)\n const typeProviderId = isProviderRegistry\n ? providerId\n : providerId === gateway.id\n ? gateway.id\n : `${gateway.id}/${providerId}`;\n\n allProviders[typeProviderId] = config;\n // Sort models alphabetically for consistent ordering\n allModels[typeProviderId] = config.models.sort();\n }\n\n lastError = null;\n break; // Success, exit retry loop\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n\n if (attempt < maxRetries) {\n // Wait before retrying (exponential backoff)\n const delayMs = Math.min(1000 * Math.pow(2, attempt - 1), 5000);\n await new Promise(resolve => setTimeout(resolve, delayMs));\n }\n }\n }\n\n // If all retries failed, throw the last error\n if (lastError) {\n throw lastError;\n }\n }\n\n return { providers: allProviders, models: allModels };\n}\n\n/**\n * Generate TypeScript type definitions content\n * @param models - Record of provider IDs to model arrays\n * @returns Generated TypeScript type definitions as a string\n */\nexport function generateTypesContent(models: Record<string, string[]>): string {\n const providerModelsEntries = Object.entries(models)\n .map(([provider, modelList]) => {\n const modelsList = modelList.map(m => `'${m}'`);\n\n // Only quote provider key if it contains special characters (like dashes)\n const needsQuotes = /[^a-zA-Z0-9_$]/.test(provider);\n const providerKey = needsQuotes ? `'${provider}'` : provider;\n\n // Format array based on length (prettier printWidth: 120)\n const singleLine = ` readonly ${providerKey}: readonly [${modelsList.join(', ')}];`;\n\n // If single line exceeds 120 chars, format as multi-line\n if (singleLine.length > 120) {\n const formattedModels = modelList.map(m => ` '${m}',`).join('\\n');\n return ` readonly ${providerKey}: readonly [\\n${formattedModels}\\n ];`;\n }\n\n return singleLine;\n })\n .join('\\n');\n\n return `/**\n * THIS FILE IS AUTO-GENERATED - DO NOT EDIT\n * Generated from model gateway providers\n */\n\n/**\n * Provider models mapping type\n * This is derived from the JSON data and provides type-safe access\n */\nexport type ProviderModelsMap = {\n${providerModelsEntries}\n};\n\n/**\n * Union type of all registered provider IDs\n */\nexport type Provider = keyof ProviderModelsMap;\n\n/**\n * Provider models mapping interface\n */\nexport interface ProviderModels {\n [key: string]: string[];\n}\n\n/**\n * OpenAI-compatible model ID type\n * Dynamically derived from ProviderModelsMap\n * Full provider/model paths (e.g., \"openai/gpt-4o\", \"anthropic/claude-3-5-sonnet-20241022\")\n */\nexport type ModelRouterModelId =\n | {\n [P in Provider]: \\`\\${P}/\\${ProviderModelsMap[P][number]}\\`;\n }[Provider]\n | (string & {});\n\n/**\n * Extract the model part from a ModelRouterModelId for a specific provider\n * Dynamically derived from ProviderModelsMap\n * Example: ModelForProvider<'openai'> = 'gpt-4o' | 'gpt-4-turbo' | ...\n */\nexport type ModelForProvider<P extends Provider> = ProviderModelsMap[P][number];\n`;\n}\n\n/**\n * Write registry files to disk (JSON and .d.ts)\n * @param jsonPath - Path to write the JSON file\n * @param typesPath - Path to write the .d.ts file\n * @param providers - Provider configurations\n * @param models - Model lists by provider\n */\nexport async function writeRegistryFiles(\n jsonPath: string,\n typesPath: string,\n providers: Record<string, ProviderConfig>,\n models: Record<string, string[]>,\n): Promise<void> {\n // 0. Ensure directories exist\n const jsonDir = path.dirname(jsonPath);\n const typesDir = path.dirname(typesPath);\n await fs.mkdir(jsonDir, { recursive: true });\n await fs.mkdir(typesDir, { recursive: true });\n\n // 1. Write JSON file atomically to prevent corruption from concurrent writes\n const registryData = {\n providers,\n models,\n version: '1.0.0',\n };\n\n await atomicWriteFile(jsonPath, JSON.stringify(registryData, null, 2), 'utf-8');\n\n // 2. Generate .d.ts file with type-only declarations (also atomic)\n const typeContent = generateTypesContent(models);\n await atomicWriteFile(typesPath, typeContent, 'utf-8');\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/llm/model/registry-generator.ts"],"names":["fs","path"],"mappings":"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","file":"registry-generator-KOFNIIWJ.cjs","sourcesContent":["/**\n * Shared provider registry generation logic\n * Used by both the CLI generation script and runtime refresh\n */\n\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport type { MastraModelGateway, ProviderConfig } from './gateways/base.js';\n\n/**\n * Write a file atomically using the write-to-temp-then-rename pattern.\n * This prevents file corruption when multiple processes write to the same file concurrently.\n *\n * The rename operation is atomic on POSIX systems when source and destination\n * are on the same filesystem.\n *\n * @param filePath - The target file path\n * @param content - The content to write\n * @param encoding - The encoding to use (default: 'utf-8')\n */\nexport async function atomicWriteFile(\n filePath: string,\n content: string,\n encoding: BufferEncoding = 'utf-8',\n): Promise<void> {\n // Create a unique temp file name using PID, timestamp, and random suffix to avoid collisions\n const randomSuffix = Math.random().toString(36).substring(2, 15);\n const tempPath = `${filePath}.${process.pid}.${Date.now()}.${randomSuffix}.tmp`;\n\n try {\n // Write to temp file first\n await fs.writeFile(tempPath, content, encoding);\n\n // Atomically rename temp file to target path\n // This is atomic on POSIX when both paths are on the same filesystem\n await fs.rename(tempPath, filePath);\n } catch (error) {\n // Clean up temp file if it exists\n try {\n await fs.unlink(tempPath);\n } catch {\n // Ignore cleanup errors\n }\n throw error;\n }\n}\n\n/**\n * Fetch providers from all gateways with retry logic\n * @param gateways - Array of gateway instances to fetch from\n * @returns Object containing providers and models records\n */\nexport async function fetchProvidersFromGateways(\n gateways: MastraModelGateway[],\n): Promise<{ providers: Record<string, ProviderConfig>; models: Record<string, string[]> }> {\n const allProviders: Record<string, ProviderConfig> = {};\n const allModels: Record<string, string[]> = {};\n\n const maxRetries = 3;\n\n for (const gateway of gateways) {\n let lastError: Error | null = null;\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const providers = await gateway.fetchProviders();\n\n // models.dev is a provider registry, not a true gateway - don't prefix its providers\n const isProviderRegistry = gateway.id === 'models.dev';\n\n for (const [providerId, config] of Object.entries(providers)) {\n // For true gateways, use gateway.id as prefix (e.g., \"netlify/anthropic\")\n // Special case: if providerId matches gateway.id, it's a unified gateway (e.g., azure-openai returning {azure-openai: {...}})\n // In this case, use just the gateway ID to avoid duplication (azure-openai, not azure-openai/azure-openai)\n const typeProviderId = isProviderRegistry\n ? providerId\n : providerId === gateway.id\n ? gateway.id\n : `${gateway.id}/${providerId}`;\n\n allProviders[typeProviderId] = config;\n // Sort models alphabetically for consistent ordering\n allModels[typeProviderId] = config.models.sort();\n }\n\n lastError = null;\n break; // Success, exit retry loop\n } catch (error) {\n lastError = error instanceof Error ? error : new Error(String(error));\n\n if (attempt < maxRetries) {\n // Wait before retrying (exponential backoff)\n const delayMs = Math.min(1000 * Math.pow(2, attempt - 1), 5000);\n await new Promise(resolve => setTimeout(resolve, delayMs));\n }\n }\n }\n\n // If all retries failed, throw the last error\n if (lastError) {\n throw lastError;\n }\n }\n\n return { providers: allProviders, models: allModels };\n}\n\n/**\n * Generate TypeScript type definitions content\n * @param models - Record of provider IDs to model arrays\n * @returns Generated TypeScript type definitions as a string\n */\nexport function generateTypesContent(models: Record<string, string[]>): string {\n const providerModelsEntries = Object.entries(models)\n .map(([provider, modelList]) => {\n const modelsList = modelList.map(m => `'${m}'`);\n\n // Only quote provider key if it contains special characters (like dashes)\n const needsQuotes = /[^a-zA-Z0-9_$]/.test(provider);\n const providerKey = needsQuotes ? `'${provider}'` : provider;\n\n // Format array based on length (prettier printWidth: 120)\n const singleLine = ` readonly ${providerKey}: readonly [${modelsList.join(', ')}];`;\n\n // If single line exceeds 120 chars, format as multi-line\n if (singleLine.length > 120) {\n const formattedModels = modelList.map(m => ` '${m}',`).join('\\n');\n return ` readonly ${providerKey}: readonly [\\n${formattedModels}\\n ];`;\n }\n\n return singleLine;\n })\n .join('\\n');\n\n return `/**\n * THIS FILE IS AUTO-GENERATED - DO NOT EDIT\n * Generated from model gateway providers\n */\n\n/**\n * Provider models mapping type\n * This is derived from the JSON data and provides type-safe access\n */\nexport type ProviderModelsMap = {\n${providerModelsEntries}\n};\n\n/**\n * Union type of all registered provider IDs\n */\nexport type Provider = keyof ProviderModelsMap;\n\n/**\n * Provider models mapping interface\n */\nexport interface ProviderModels {\n [key: string]: string[];\n}\n\n/**\n * OpenAI-compatible model ID type\n * Dynamically derived from ProviderModelsMap\n * Full provider/model paths (e.g., \"openai/gpt-4o\", \"anthropic/claude-3-5-sonnet-20241022\")\n */\nexport type ModelRouterModelId =\n | {\n [P in Provider]: \\`\\${P}/\\${ProviderModelsMap[P][number]}\\`;\n }[Provider]\n | (string & {});\n\n/**\n * Extract the model part from a ModelRouterModelId for a specific provider\n * Dynamically derived from ProviderModelsMap\n * Example: ModelForProvider<'openai'> = 'gpt-4o' | 'gpt-4-turbo' | ...\n */\nexport type ModelForProvider<P extends Provider> = ProviderModelsMap[P][number];\n`;\n}\n\n/**\n * Write registry files to disk (JSON and .d.ts)\n * @param jsonPath - Path to write the JSON file\n * @param typesPath - Path to write the .d.ts file\n * @param providers - Provider configurations\n * @param models - Model lists by provider\n */\nexport async function writeRegistryFiles(\n jsonPath: string,\n typesPath: string,\n providers: Record<string, ProviderConfig>,\n models: Record<string, string[]>,\n): Promise<void> {\n // 0. Ensure directories exist\n const jsonDir = path.dirname(jsonPath);\n const typesDir = path.dirname(typesPath);\n await fs.mkdir(jsonDir, { recursive: true });\n await fs.mkdir(typesDir, { recursive: true });\n\n // 1. Write JSON file atomically to prevent corruption from concurrent writes\n const registryData = {\n providers,\n models,\n version: '1.0.0',\n };\n\n await atomicWriteFile(jsonPath, JSON.stringify(registryData, null, 2), 'utf-8');\n\n // 2. Generate .d.ts file with type-only declarations (also atomic)\n const typeContent = generateTypesContent(models);\n await atomicWriteFile(typesPath, typeContent, 'utf-8');\n}\n"]}
|
package/dist/relevance/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkR5AJGM55_cjs = require('../chunk-R5AJGM55.cjs');
|
|
4
4
|
|
|
5
5
|
// src/relevance/relevance-score-provider.ts
|
|
6
6
|
function createSimilarityPrompt(query, text) {
|
|
@@ -17,7 +17,7 @@ Relevance score (0-1):`;
|
|
|
17
17
|
var MastraAgentRelevanceScorer = class {
|
|
18
18
|
agent;
|
|
19
19
|
constructor(name, model) {
|
|
20
|
-
this.agent = new
|
|
20
|
+
this.agent = new chunkR5AJGM55_cjs.Agent({
|
|
21
21
|
id: `relevance-scorer-${name}`,
|
|
22
22
|
name: `Relevance Scorer ${name}`,
|
|
23
23
|
instructions: `You are a specialized agent for evaluating the relevance of text to queries.
|
package/dist/relevance/index.js
CHANGED