@mastra/mcp-docs-server 1.2.28-alpha.3 → 1.2.28-alpha.6
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/.docs/docs/agents/guardrails.md +1 -1
- package/.docs/docs/agents/human-in-the-loop.md +38 -1
- package/.docs/docs/observability/tracing/overview.md +19 -0
- package/.docs/docs/skills.md +17 -0
- package/.docs/docs/workflows/control-flow.md +41 -0
- package/.docs/integrations/deploy/inngest.md +19 -0
- package/.docs/models/gateways/merge-gateway.md +3 -1
- package/.docs/models/gateways/netlify.md +4 -1
- package/.docs/models/gateways/openrouter.md +7 -1
- package/.docs/models/gateways/vercel.md +7 -1
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/cline-pass.md +21 -18
- package/.docs/models/providers/crossmodel.md +4 -1
- package/.docs/models/providers/deepseek.md +4 -6
- package/.docs/models/providers/digitalocean.md +4 -1
- package/.docs/models/providers/edenai.md +4 -1
- package/.docs/models/providers/kenari.md +2 -1
- package/.docs/models/providers/kilo.md +17 -11
- package/.docs/models/providers/llmgateway-providers.md +4 -1
- package/.docs/models/providers/llmgateway.md +4 -1
- package/.docs/models/providers/nano-gpt.md +7 -1
- package/.docs/models/providers/ofox.md +5 -1
- package/.docs/models/providers/openai.md +3 -1
- package/.docs/models/providers/opencode.md +5 -1
- package/.docs/models/providers/pioneer.md +3 -1
- package/.docs/models/providers/requesty.md +7 -1
- package/.docs/models/providers/stepfun-ai-step-plan.md +3 -2
- package/.docs/models/providers/stepfun.md +2 -1
- package/.docs/models/providers/wandb.md +2 -1
- package/.docs/reference/agents/generate.md +2 -0
- package/.docs/reference/agents/network.md +2 -0
- package/.docs/reference/classifier/classifier.md +19 -0
- package/.docs/reference/index.md +2 -0
- package/.docs/reference/observability/tracing/interfaces.md +7 -0
- package/.docs/reference/observability/tracing/trace-query.md +26 -1
- package/.docs/reference/processors/classifier-processor.md +201 -0
- package/.docs/reference/streaming/agents/stream.md +2 -0
- package/.docs/reference/streaming/workflows/resumeStream.md +2 -0
- package/.docs/reference/streaming/workflows/stream.md +2 -0
- package/.docs/reference/workflows/dynamic-workflow-definition.md +32 -3
- package/.docs/reference/workflows/run-methods/restart.md +2 -0
- package/.docs/reference/workflows/run-methods/resume.md +2 -0
- package/.docs/reference/workflows/run-methods/start.md +2 -0
- package/.docs/reference/workflows/run-methods/startAsync.md +2 -0
- package/.docs/reference/workflows/run-methods/timeTravel.md +2 -0
- package/.docs/reference/workflows/step.md +42 -1
- package/.docs/reference/workflows/workflow-methods/classifier.md +89 -0
- package/package.json +3 -3
|
@@ -55,7 +55,7 @@ export const secureAgent = new Agent({
|
|
|
55
55
|
})
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
Model-backed guardrail processors default to `errorStrategy: 'warn'`, which logs internal model failures and continues with the processor's fallback. Use `errorStrategy: 'strict'` when unchecked content must not proceed if the guardrail model is unavailable or returns invalid output. Strict mode stops processing with a tripwire.
|
|
58
|
+
Model-backed guardrail processors other than `ClassifierProcessor` default to `errorStrategy: 'warn'`, which logs internal model failures and continues with the processor's fallback. Use `errorStrategy: 'strict'` when unchecked content must not proceed if the guardrail model is unavailable or returns invalid output. Strict mode stops processing with a tripwire.
|
|
59
59
|
|
|
60
60
|
Visit [`PromptInjectionDetector()`](https://mastra.ai/reference/processors/prompt-injection-detector) reference for a full list of configuration options.
|
|
61
61
|
|
|
@@ -116,7 +116,44 @@ const stream = await agent.stream('Clean up old records', {
|
|
|
116
116
|
})
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
The function can be asynchronous. For decisions that depend on the tool name and arguments, use a [classifier](https://mastra.ai/reference/classifier/classifier) to estimate whether the call needs human review:
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
import { Classifier } from '@mastra/core/classifier'
|
|
123
|
+
import { model } from '../models/evaluation-model'
|
|
124
|
+
import { agent } from './agent'
|
|
125
|
+
|
|
126
|
+
const approvalClassifier = new Classifier({
|
|
127
|
+
id: 'tool-approval-classifier',
|
|
128
|
+
model,
|
|
129
|
+
questions: {
|
|
130
|
+
requiresApproval: {
|
|
131
|
+
type: 'boolean',
|
|
132
|
+
instructions:
|
|
133
|
+
'Does this tool call need human approval because it is destructive, irreversible, expensive, or handles sensitive data?',
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
})
|
|
137
|
+
|
|
138
|
+
const stream = await agent.stream('Clean up old records', {
|
|
139
|
+
requireToolApproval: async ({ toolName, args }) => {
|
|
140
|
+
const result = await approvalClassifier.evaluate({
|
|
141
|
+
state: {
|
|
142
|
+
toolName,
|
|
143
|
+
argumentNames: Object.keys(args),
|
|
144
|
+
},
|
|
145
|
+
})
|
|
146
|
+
|
|
147
|
+
return result.answers.requiresApproval.probability >= 0.7
|
|
148
|
+
},
|
|
149
|
+
})
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
The example sends argument names rather than values because the classifier forwards its state to the configured evaluation model. If the decision requires argument values, redact sensitive data first or use an evaluation model and provider that meet the protected tool's data-handling requirements.
|
|
153
|
+
|
|
154
|
+
Returning `true` pauses the tool call for human approval. It doesn't approve or decline the call automatically. Choose a threshold that matches the risk of the tools available to the agent. If this `requireToolApproval` function throws, it defaults to requiring approval.
|
|
155
|
+
|
|
156
|
+
The runtime then combines that result with the tool's `requireApproval` setting. A boolean `true` requires approval, while `false` doesn't disable approval required by `requireToolApproval`. A tool-level `requireApproval` function is authoritative and replaces the combined result for that tool.
|
|
120
157
|
|
|
121
158
|
> **Note:** Function-based `requireToolApproval` is only available on regular `stream()` / `generate()` calls. Durable agents and stored agents persist their options, and a function can't be serialized, so they accept only a boolean. If you pass a function in those contexts it falls back to requiring approval for every tool call.
|
|
122
159
|
|
|
@@ -289,6 +289,25 @@ const result = await agent.generate([{ role: 'user', content: 'Analyze this' }],
|
|
|
289
289
|
- **Priority levels**: `"priority-high"`, `"priority-low"`
|
|
290
290
|
- **Experiments**: `"experiment-v1"`, `"control-group"`, `"treatment-a"`
|
|
291
291
|
|
|
292
|
+
### Naming a trace
|
|
293
|
+
|
|
294
|
+
Every run of the same agent or workflow gets the same root span name by default, for example `workflow run: 'skill-analyze'`. When one workflow runs over many subjects, set `rootSpanName` in `tracingOptions` to label each run. The name replaces the root span name in Studio's trace list and in exporters that display span names.
|
|
295
|
+
|
|
296
|
+
```ts
|
|
297
|
+
const run = await mastra.getWorkflow('skillAnalyze').createRun()
|
|
298
|
+
|
|
299
|
+
await run.start({
|
|
300
|
+
inputData: { skillId: 'typescript' },
|
|
301
|
+
tracingOptions: {
|
|
302
|
+
rootSpanName: 'skill-analyze: typescript',
|
|
303
|
+
},
|
|
304
|
+
})
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
The name applies to the root span only. Child spans keep their default names. Entity filters keep working because the workflow or agent id is stored separately as `entityId` and `entityName`.
|
|
308
|
+
|
|
309
|
+
OpenTelemetry-based exporters and the Langfuse exporter build their span and trace names from the entity id, so they're not affected. To name a Langfuse trace, set `metadata.traceName` as described in the [Langfuse integration](https://mastra.ai/integrations/observability/langfuse).
|
|
310
|
+
|
|
292
311
|
### Hiding sensitive input/output
|
|
293
312
|
|
|
294
313
|
When processing sensitive data, you may want to prevent input and output values from being logged to your observability platforms. Use `hideInput` and `hideOutput` in `tracingOptions` to exclude this data from all spans in a trace:
|
package/.docs/docs/skills.md
CHANGED
|
@@ -193,6 +193,23 @@ for (const meta of allSkills) {
|
|
|
193
193
|
|
|
194
194
|
Visit [`.getSkill()` reference](https://mastra.ai/reference/agents/getSkill) and [`.listSkills()` reference](https://mastra.ai/reference/agents/listSkills) for the full API.
|
|
195
195
|
|
|
196
|
+
## Validating skills before saving
|
|
197
|
+
|
|
198
|
+
If your app writes `SKILL.md` files (from a tool, an upload, or a shell command), validate the content first with `validateSkillContent()`. It applies the same rules used when skills are loaded, including the check that `name` matches the directory name, and returns structured results instead of throwing:
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
import { validateSkillContent } from '@mastra/core/skills'
|
|
202
|
+
|
|
203
|
+
const result = validateSkillContent({ content: skillMarkdown, directoryName: 'code-review' })
|
|
204
|
+
|
|
205
|
+
if (!result.valid) {
|
|
206
|
+
throw new Error(`Invalid skill:\n${result.errors.join('\n')}`)
|
|
207
|
+
}
|
|
208
|
+
// result.warnings lists non-blocking issues, such as very long instructions
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
To validate an already-parsed frontmatter object, use `validateSkillMetadata({ metadata, directoryName })`.
|
|
212
|
+
|
|
196
213
|
## Related
|
|
197
214
|
|
|
198
215
|
- [Workspace skills](https://mastra.ai/docs/sandbox/skills)
|
|
@@ -249,6 +249,47 @@ export const testWorkflow = createWorkflow({
|
|
|
249
249
|
.commit();
|
|
250
250
|
```
|
|
251
251
|
|
|
252
|
+
### Route with a classifier
|
|
253
|
+
|
|
254
|
+
A configured classifier can produce typed answers before `.branch()`. Route on the answer field that matches each question type: `choice`, `score`, or `probability`.
|
|
255
|
+
|
|
256
|
+
```typescript
|
|
257
|
+
import { Classifier } from '@mastra/core/classifier'
|
|
258
|
+
import { createWorkflow } from '@mastra/core/workflows'
|
|
259
|
+
import { z } from 'zod'
|
|
260
|
+
|
|
261
|
+
const router = new Classifier({
|
|
262
|
+
id: 'ticket-router',
|
|
263
|
+
model,
|
|
264
|
+
questions: {
|
|
265
|
+
route: {
|
|
266
|
+
type: 'choice',
|
|
267
|
+
criteria: {
|
|
268
|
+
billing: 'Billing, invoices, refunds, and payments',
|
|
269
|
+
support: 'Account access and product help',
|
|
270
|
+
other: 'Anything else',
|
|
271
|
+
},
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
})
|
|
275
|
+
|
|
276
|
+
export const ticketTriage = createWorkflow({
|
|
277
|
+
id: 'ticket-triage',
|
|
278
|
+
inputSchema: z.object({ message: z.string() }),
|
|
279
|
+
outputSchema: z.any(),
|
|
280
|
+
})
|
|
281
|
+
.map({ message: { initData: true, path: 'message' } })
|
|
282
|
+
.classifier(router)
|
|
283
|
+
.branch([
|
|
284
|
+
[async ({ inputData }) => inputData.answers.route.choice === 'billing', billingStep],
|
|
285
|
+
[async ({ inputData }) => inputData.answers.route.choice === 'support', supportStep],
|
|
286
|
+
[async ({ inputData }) => inputData.answers.route.choice === 'other', fallbackStep],
|
|
287
|
+
])
|
|
288
|
+
.commit()
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
The `choice` field retains the configured criteria-key union, so `inputData.answers.route.choice` is typed as `'billing' | 'support' | 'other'`. Score answers expose `score`. Boolean answers expose the `P(true)` value as `probability`. Apply an explicit threshold when routing.
|
|
292
|
+
|
|
252
293
|
### Output structure
|
|
253
294
|
|
|
254
295
|
When using conditional branching, only one branch executes based on which condition evaluates to `true` first. The output structure is similar to `.parallel()`, where the result is keyed by the executed step's `id`.
|
|
@@ -628,6 +628,25 @@ const workflow = createWorkflow({
|
|
|
628
628
|
})
|
|
629
629
|
```
|
|
630
630
|
|
|
631
|
+
### Retries
|
|
632
|
+
|
|
633
|
+
Set `retries` to let a run survive a failed request to your app, such as a process restart, redeploy, or out-of-memory crash. Inngest calls the function again, skips the steps that already finished, and continues from the step that was interrupted:
|
|
634
|
+
|
|
635
|
+
```ts
|
|
636
|
+
const workflow = createWorkflow({
|
|
637
|
+
id: 'long-running-workflow',
|
|
638
|
+
inputSchema: z.object({ jobId: z.string() }),
|
|
639
|
+
outputSchema: z.object({ done: z.boolean() }),
|
|
640
|
+
steps: [longRunningStep],
|
|
641
|
+
// Re-invoke up to 3 times after a failed request
|
|
642
|
+
retries: 3,
|
|
643
|
+
})
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
`retries` defaults to `0`. Errors thrown by your step code are retried per step with `retryConfig` or the step's `retries` option, not at the function level. `createInngestAgent()` accepts the same `retries` option and applies it to every Inngest function the durable agent creates.
|
|
647
|
+
|
|
648
|
+
A nested workflow runs as its own Inngest function and uses its own `retries` setting. It doesn't inherit the parent's value, so set `retries` on each nested workflow that should recover from a failed request.
|
|
649
|
+
|
|
631
650
|
### Combining flow control options
|
|
632
651
|
|
|
633
652
|
Multiple flow control options can be combined in a single workflow:
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Merge Gateway
|
|
6
6
|
|
|
7
|
-
Merge Gateway aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
7
|
+
Merge Gateway aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 191 models through Mastra's model router.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Merge Gateway documentation](https://docs.merge.dev/merge-gateway).
|
|
10
10
|
|
|
@@ -162,6 +162,8 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
162
162
|
| `openai/gpt-5.6-sol` |
|
|
163
163
|
| `openai/gpt-5.6-terra` |
|
|
164
164
|
| `openai/gpt-6-astra` |
|
|
165
|
+
| `openai/gpt-6-luna` |
|
|
166
|
+
| `openai/gpt-6-sol` |
|
|
165
167
|
| `openai/gpt-oss-120b` |
|
|
166
168
|
| `openai/gpt-oss-20b` |
|
|
167
169
|
| `openai/gpt-oss-safeguard-120b` |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Netlify
|
|
6
6
|
|
|
7
|
-
Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access
|
|
7
|
+
Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 267 models through Mastra's model router.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Netlify documentation](https://docs.netlify.com/build/ai-gateway/overview/).
|
|
10
10
|
|
|
@@ -137,6 +137,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
137
137
|
| `openrouter/bytedance-seed/seed-2.0-mini` |
|
|
138
138
|
| `openrouter/bytedance/ui-tars-1.5-7b` |
|
|
139
139
|
| `openrouter/cognitivecomputations/dolphin-mistral-24b-venice-edition` |
|
|
140
|
+
| `openrouter/cohere/command-a-plus` |
|
|
140
141
|
| `openrouter/deepseek/deepseek-chat` |
|
|
141
142
|
| `openrouter/deepseek/deepseek-chat-v3-0324` |
|
|
142
143
|
| `openrouter/deepseek/deepseek-chat-v3.1` |
|
|
@@ -288,6 +289,8 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
288
289
|
| `openrouter/x-ai/grok-build-0.1` |
|
|
289
290
|
| `openrouter/xiaomi/mimo-v2.5` |
|
|
290
291
|
| `openrouter/xiaomi/mimo-v2.5-pro` |
|
|
292
|
+
| `openrouter/xiaomi/mimo-v2.6-flash` |
|
|
293
|
+
| `openrouter/xiaomi/mimo-v2.6-pro` |
|
|
291
294
|
| `openrouter/z-ai/glm-4.5-air` |
|
|
292
295
|
| `openrouter/z-ai/glm-4.5v` |
|
|
293
296
|
| `openrouter/z-ai/glm-4.6` |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# OpenRouter
|
|
6
6
|
|
|
7
|
-
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
7
|
+
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 382 models through Mastra's model router.
|
|
8
8
|
|
|
9
9
|
Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
|
|
10
10
|
|
|
@@ -92,6 +92,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
92
92
|
| `bytedance/ui-tars-1.5-7b` |
|
|
93
93
|
| `cognitivecomputations/dolphin-mistral-24b-venice-edition` |
|
|
94
94
|
| `cohere/command-a` |
|
|
95
|
+
| `cohere/command-a-plus` |
|
|
95
96
|
| `cohere/command-r-08-2024` |
|
|
96
97
|
| `cohere/command-r-plus-08-2024` |
|
|
97
98
|
| `cohere/command-r7b-12-2024` |
|
|
@@ -272,6 +273,10 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
272
273
|
| `openai/gpt-5.6-terra-pro` |
|
|
273
274
|
| `openai/gpt-6-astra` |
|
|
274
275
|
| `openai/gpt-6-astra-pro` |
|
|
276
|
+
| `openai/gpt-6-luna` |
|
|
277
|
+
| `openai/gpt-6-luna-pro` |
|
|
278
|
+
| `openai/gpt-6-sol` |
|
|
279
|
+
| `openai/gpt-6-sol-pro` |
|
|
275
280
|
| `openai/gpt-audio` |
|
|
276
281
|
| `openai/gpt-audio-mini` |
|
|
277
282
|
| `openai/gpt-chat-latest` |
|
|
@@ -354,6 +359,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
354
359
|
| `qwen/qwen3.8-27b:free` |
|
|
355
360
|
| `qwen/qwen3.8-flash` |
|
|
356
361
|
| `qwen/qwen3.8-max-0902` |
|
|
362
|
+
| `qwen/qwen3.8-omni-flash` |
|
|
357
363
|
| `rekaai/reka-edge` |
|
|
358
364
|
| `rekaai/reka-flash-3` |
|
|
359
365
|
| `relace/relace-apply-3` |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Vercel
|
|
6
6
|
|
|
7
|
-
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
7
|
+
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 385 models through Mastra's model router.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Vercel documentation](https://ai-sdk.dev/providers/ai-sdk-providers).
|
|
10
10
|
|
|
@@ -99,6 +99,8 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
99
99
|
| `anthropic/claude-opus-4.8-fast` |
|
|
100
100
|
| `anthropic/claude-opus-5` |
|
|
101
101
|
| `anthropic/claude-opus-5-fast` |
|
|
102
|
+
| `anthropic/claude-opus-5.5` |
|
|
103
|
+
| `anthropic/claude-opus-5.5-fast` |
|
|
102
104
|
| `anthropic/claude-sonnet-4` |
|
|
103
105
|
| `anthropic/claude-sonnet-4.5` |
|
|
104
106
|
| `anthropic/claude-sonnet-4.6` |
|
|
@@ -300,6 +302,10 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
300
302
|
| `openai/gpt-5.6-terra-fast` |
|
|
301
303
|
| `openai/gpt-6-astra` |
|
|
302
304
|
| `openai/gpt-6-astra-fast` |
|
|
305
|
+
| `openai/gpt-6-luna` |
|
|
306
|
+
| `openai/gpt-6-luna-fast` |
|
|
307
|
+
| `openai/gpt-6-sol` |
|
|
308
|
+
| `openai/gpt-6-sol-fast` |
|
|
303
309
|
| `openai/gpt-image-1` |
|
|
304
310
|
| `openai/gpt-image-1-mini` |
|
|
305
311
|
| `openai/gpt-image-1.5` |
|
package/.docs/models/index.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Model Providers
|
|
6
6
|
|
|
7
|
-
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to
|
|
7
|
+
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 7576 models from 210 providers through a single API.
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# ClinePass
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 18 ClinePass models through Mastra's model router. Authentication is handled automatically using the `CLINE_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [ClinePass documentation](https://docs.cline.bot/getting-started/clinepass).
|
|
10
10
|
|
|
@@ -36,23 +36,26 @@ for await (const chunk of stream) {
|
|
|
36
36
|
|
|
37
37
|
## Models
|
|
38
38
|
|
|
39
|
-
| Model
|
|
40
|
-
|
|
|
41
|
-
| `cline-pass/cline-pass/deepseek-v4-flash`
|
|
42
|
-
| `cline-pass/cline-pass/deepseek-v4-pro`
|
|
43
|
-
| `cline-pass/cline-pass/deepseek-v4.1-flash`
|
|
44
|
-
| `cline-pass/cline-pass/glm-5.2`
|
|
45
|
-
| `cline-pass/cline-pass/glm-5.3`
|
|
46
|
-
| `cline-pass/cline-pass/glm-5.3-flash`
|
|
47
|
-
| `cline-pass/cline-pass/kimi-k2.6`
|
|
48
|
-
| `cline-pass/cline-pass/kimi-k2.7-code`
|
|
49
|
-
| `cline-pass/cline-pass/kimi-k3`
|
|
50
|
-
| `cline-pass/cline-pass/mimo-v2.5`
|
|
51
|
-
| `cline-pass/cline-pass/mimo-v2.5-pro`
|
|
52
|
-
| `cline-pass/cline-pass/
|
|
53
|
-
| `cline-pass/cline-pass/
|
|
54
|
-
| `cline-pass/cline-pass/
|
|
55
|
-
| `cline-pass/cline-pass/
|
|
39
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
40
|
+
| -------------------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
41
|
+
| `cline-pass/cline-pass/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
42
|
+
| `cline-pass/cline-pass/deepseek-v4-pro` | 1.0M | | | | | | $2 | $3 |
|
|
43
|
+
| `cline-pass/cline-pass/deepseek-v4.1-flash` | 1.0M | | | | | | $0.15 | $0.60 |
|
|
44
|
+
| `cline-pass/cline-pass/glm-5.2` | 1.0M | | | | | | $1 | $4 |
|
|
45
|
+
| `cline-pass/cline-pass/glm-5.3` | 1.0M | | | | | | $1 | $4 |
|
|
46
|
+
| `cline-pass/cline-pass/glm-5.3-flash` | 1.0M | | | | | | $0.15 | $0.50 |
|
|
47
|
+
| `cline-pass/cline-pass/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
|
|
48
|
+
| `cline-pass/cline-pass/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
49
|
+
| `cline-pass/cline-pass/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
50
|
+
| `cline-pass/cline-pass/mimo-v2.5` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
51
|
+
| `cline-pass/cline-pass/mimo-v2.5-pro` | 1.0M | | | | | | $2 | $3 |
|
|
52
|
+
| `cline-pass/cline-pass/mimo-v2.6-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
53
|
+
| `cline-pass/cline-pass/mimo-v2.6-pro` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
54
|
+
| `cline-pass/cline-pass/minimax-m3` | 1.0M | | | | | | $0.30 | $1 |
|
|
55
|
+
| `cline-pass/cline-pass/muse-spark-1.3-contributor` | 1.0M | | | | | | — | — |
|
|
56
|
+
| `cline-pass/cline-pass/qwen3.7-max` | 1.0M | | | | | | $3 | $8 |
|
|
57
|
+
| `cline-pass/cline-pass/qwen3.7-plus` | 1.0M | | | | | | $0.40 | $2 |
|
|
58
|
+
| `cline-pass/cline-pass/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
|
|
56
59
|
|
|
57
60
|
Model availability, capabilities, context windows, and pricing are sourced from [models.dev](https://models.dev) and may change.
|
|
58
61
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# CrossModel
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 66 CrossModel models through Mastra's model router. Authentication is handled automatically using the `CROSSMODEL_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [CrossModel documentation](https://www.crossmodel.ai/docs).
|
|
10
10
|
|
|
@@ -44,6 +44,7 @@ for await (const chunk of stream) {
|
|
|
44
44
|
| `crossmodel/anthropic/claude-opus-4-7` | 1.0M | | | | | | $5 | $25 |
|
|
45
45
|
| `crossmodel/anthropic/claude-opus-4-8` | 1.0M | | | | | | $5 | $25 |
|
|
46
46
|
| `crossmodel/anthropic/claude-opus-5` | 1.0M | | | | | | $5 | $25 |
|
|
47
|
+
| `crossmodel/anthropic/claude-opus-5-5` | 1.0M | | | | | | $4 | $20 |
|
|
47
48
|
| `crossmodel/anthropic/claude-sonnet-4-6` | 1.0M | | | | | | $3 | $15 |
|
|
48
49
|
| `crossmodel/anthropic/claude-sonnet-5` | 1.0M | | | | | | $2 | $10 |
|
|
49
50
|
| `crossmodel/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.27 | $1 |
|
|
@@ -75,6 +76,8 @@ for await (const chunk of stream) {
|
|
|
75
76
|
| `crossmodel/openai/gpt-5.6-sol` | 1.1M | | | | | | $4 | $20 |
|
|
76
77
|
| `crossmodel/openai/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
|
|
77
78
|
| `crossmodel/openai/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
|
|
79
|
+
| `crossmodel/openai/gpt-6-luna` | 1.1M | | | | | | $0.10 | $0.50 |
|
|
80
|
+
| `crossmodel/openai/gpt-6-sol` | 1.1M | | | | | | $2 | $10 |
|
|
78
81
|
| `crossmodel/qwen/qwen3.6-flash` | 1.0M | | | | | | $0.19 | $1 |
|
|
79
82
|
| `crossmodel/qwen/qwen3.6-plus` | 1.0M | | | | | | $0.32 | $2 |
|
|
80
83
|
| `crossmodel/qwen/qwen3.7-flash` | 1.0M | | | | | | $0.04 | $0.13 |
|
|
@@ -34,12 +34,10 @@ for await (const chunk of stream) {
|
|
|
34
34
|
|
|
35
35
|
## Models
|
|
36
36
|
|
|
37
|
-
| Model
|
|
38
|
-
|
|
|
39
|
-
| `deepseek/deepseek-flash`
|
|
40
|
-
| `deepseek/deepseek-v4-
|
|
41
|
-
| `deepseek/deepseek-v4-flash-vision-exp` | 1.0M | | | | | | $0.15 | $0.60 |
|
|
42
|
-
| `deepseek/deepseek-v4-pro` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
37
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
38
|
+
| -------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
39
|
+
| `deepseek/deepseek-flash` | 1.0M | | | | | | $0.15 | $0.60 |
|
|
40
|
+
| `deepseek/deepseek-v4-pro` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
43
41
|
|
|
44
42
|
Model availability, capabilities, context windows, and pricing are sourced from [models.dev](https://models.dev) and may change.
|
|
45
43
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# DigitalOcean
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 100 DigitalOcean models through Mastra's model router. Authentication is handled automatically using the `DIGITALOCEAN_ACCESS_TOKEN` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [DigitalOcean documentation](https://docs.digitalocean.com/products/gradient-ai-platform/details/models/).
|
|
10
10
|
|
|
@@ -54,6 +54,7 @@ for await (const chunk of stream) {
|
|
|
54
54
|
| `digitalocean/anthropic-claude-opus-4.7` | 200K | | | | | | $5 | $25 |
|
|
55
55
|
| `digitalocean/anthropic-claude-opus-4.8` | 1.0M | | | | | | $5 | $25 |
|
|
56
56
|
| `digitalocean/anthropic-claude-opus-5` | 1.0M | | | | | | $5 | $25 |
|
|
57
|
+
| `digitalocean/anthropic-claude-opus-5.5` | 1.0M | | | | | | $4 | $20 |
|
|
57
58
|
| `digitalocean/anthropic-claude-sonnet-4` | 1.0M | | | | | | $3 | $15 |
|
|
58
59
|
| `digitalocean/arcee-trinity-large-thinking` | 128K | | | | | | $0.25 | $0.90 |
|
|
59
60
|
| `digitalocean/bge-m3` | 8K | | | | | | $0.02 | — |
|
|
@@ -114,6 +115,8 @@ for await (const chunk of stream) {
|
|
|
114
115
|
| `digitalocean/openai-gpt-5.6-sol` | 1.1M | | | | | | $4 | $20 |
|
|
115
116
|
| `digitalocean/openai-gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
|
|
116
117
|
| `digitalocean/openai-gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
|
|
118
|
+
| `digitalocean/openai-gpt-6-luna` | 1.1M | | | | | | $0.10 | $0.50 |
|
|
119
|
+
| `digitalocean/openai-gpt-6-sol` | 1.1M | | | | | | $2 | $10 |
|
|
117
120
|
| `digitalocean/openai-gpt-image-1` | — | | | | | | $5 | $40 |
|
|
118
121
|
| `digitalocean/openai-gpt-image-1.5` | — | | | | | | $5 | $10 |
|
|
119
122
|
| `digitalocean/openai-gpt-image-2` | — | | | | | | $8 | $30 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Eden AI
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 283 Eden AI models through Mastra's model router. Authentication is handled automatically using the `EDENAI_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Eden AI documentation](https://docs.edenai.co).
|
|
10
10
|
|
|
@@ -71,6 +71,7 @@ for await (const chunk of stream) {
|
|
|
71
71
|
| `edenai/anthropic/claude-opus-4-7` | 1.0M | | | | | | $5 | $25 |
|
|
72
72
|
| `edenai/anthropic/claude-opus-4-8` | 1.0M | | | | | | $5 | $25 |
|
|
73
73
|
| `edenai/anthropic/claude-opus-5` | 1.0M | | | | | | $5 | $25 |
|
|
74
|
+
| `edenai/anthropic/claude-opus-5-5` | 1.0M | | | | | | $4 | $20 |
|
|
74
75
|
| `edenai/anthropic/claude-opus-latest` | 1.0M | | | | | | $5 | $25 |
|
|
75
76
|
| `edenai/anthropic/claude-sonnet-4-6` | 1.0M | | | | | | $3 | $15 |
|
|
76
77
|
| `edenai/anthropic/claude-sonnet-5` | 1.0M | | | | | | $2 | $10 |
|
|
@@ -220,6 +221,8 @@ for await (const chunk of stream) {
|
|
|
220
221
|
| `edenai/openai/gpt-5.6-sol` | 1.1M | | | | | | $4 | $20 |
|
|
221
222
|
| `edenai/openai/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
|
|
222
223
|
| `edenai/openai/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
|
|
224
|
+
| `edenai/openai/gpt-6-luna` | 1.1M | | | | | | $0.10 | $0.50 |
|
|
225
|
+
| `edenai/openai/gpt-6-sol` | 1.1M | | | | | | $2 | $10 |
|
|
223
226
|
| `edenai/openai/gpt-latest` | 1.1M | | | | | | $10 | $50 |
|
|
224
227
|
| `edenai/openai/gpt-mini-latest` | 400K | | | | | | $0.75 | $5 |
|
|
225
228
|
| `edenai/openai/gpt-pro-latest` | 1.1M | | | | | | $30 | $180 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Kenari
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 60 Kenari models through Mastra's model router. Authentication is handled automatically using the `KENARI_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Kenari documentation](https://kenari.id/docs).
|
|
10
10
|
|
|
@@ -44,6 +44,7 @@ for await (const chunk of stream) {
|
|
|
44
44
|
| `kenari/claude-opus-5` | 1.0M | | | | | | — | — |
|
|
45
45
|
| `kenari/claude-sonnet-4-6` | 1.0M | | | | | | — | — |
|
|
46
46
|
| `kenari/claude-sonnet-5` | 1.0M | | | | | | — | — |
|
|
47
|
+
| `kenari/deepseek-v4-1-flash` | 1.0M | | | | | | — | — |
|
|
47
48
|
| `kenari/deepseek-v4-flash` | 1.0M | | | | | | — | — |
|
|
48
49
|
| `kenari/deepseek-v4-flash:free` | 1.0M | | | | | | — | — |
|
|
49
50
|
| `kenari/deepseek-v4-pro` | 1.0M | | | | | | — | — |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Kilo Gateway
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 389 Kilo Gateway models through Mastra's model router. Authentication is handled automatically using the `KILO_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Kilo Gateway documentation](https://kilo.ai).
|
|
10
10
|
|
|
@@ -42,23 +42,23 @@ for await (const chunk of stream) {
|
|
|
42
42
|
| `kilo/~anthropic/claude-haiku-latest` | 200K | | | | | | $1 | $5 |
|
|
43
43
|
| `kilo/~anthropic/claude-opus-latest` | 1.0M | | | | | | $4 | $20 |
|
|
44
44
|
| `kilo/~anthropic/claude-sonnet-latest` | 1.0M | | | | | | $2 | $10 |
|
|
45
|
-
| `kilo/~deepseek/deepseek-flash-latest` | 1.0M | | | | | | $0.
|
|
46
|
-
| `kilo/~deepseek/deepseek-pro-latest` | 1.0M | | | | | | $0.
|
|
47
|
-
| `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.03 | $
|
|
45
|
+
| `kilo/~deepseek/deepseek-flash-latest` | 1.0M | | | | | | $0.08 | $0.60 |
|
|
46
|
+
| `kilo/~deepseek/deepseek-pro-latest` | 1.0M | | | | | | $0.40 | $4 |
|
|
47
|
+
| `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.03 | $0.80 |
|
|
48
48
|
| `kilo/~google/gemini-flash-latest` | 1.0M | | | | | | $0.75 | $4 |
|
|
49
49
|
| `kilo/~google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
|
|
50
|
-
| `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $
|
|
50
|
+
| `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $1 | $11 |
|
|
51
51
|
| `kilo/~openai/gpt-astra-latest` | 1.1M | | | | | | $10 | $50 |
|
|
52
|
-
| `kilo/~openai/gpt-luna-latest` | 1.1M | | | | | | $0.
|
|
52
|
+
| `kilo/~openai/gpt-luna-latest` | 1.1M | | | | | | $0.10 | $0.50 |
|
|
53
53
|
| `kilo/~openai/gpt-mini-latest` | 400K | | | | | | $0.75 | $5 |
|
|
54
54
|
| `kilo/~openai/gpt-sol-latest` | 1.1M | | | | | | $2 | $10 |
|
|
55
55
|
| `kilo/~openai/gpt-terra-latest` | 1.1M | | | | | | $2 | $12 |
|
|
56
56
|
| `kilo/~x-ai/grok-latest` | 500K | | | | | | $2 | $5 |
|
|
57
57
|
| `kilo/~z-ai/glm-flash-latest` | 1.0M | | | | | | $0.07 | $0.25 |
|
|
58
|
-
| `kilo/~z-ai/glm-latest` | 1.0M | | | | | | $0.
|
|
59
|
-
| `kilo/aion-labs/aion-2.0` |
|
|
60
|
-
| `kilo/aion-labs/aion-3.0` |
|
|
61
|
-
| `kilo/aion-labs/aion-3.0-mini` |
|
|
58
|
+
| `kilo/~z-ai/glm-latest` | 1.0M | | | | | | $0.56 | $3 |
|
|
59
|
+
| `kilo/aion-labs/aion-2.0` | 131K | | | | | | $0.80 | $2 |
|
|
60
|
+
| `kilo/aion-labs/aion-3.0` | 131K | | | | | | $3 | $6 |
|
|
61
|
+
| `kilo/aion-labs/aion-3.0-mini` | 131K | | | | | | $0.70 | $1 |
|
|
62
62
|
| `kilo/aion-labs/aion-rp-llama-3.1-8b` | 33K | | | | | | $0.80 | $2 |
|
|
63
63
|
| `kilo/amazon/nova-2-lite-v1` | 1.0M | | | | | | $0.30 | $3 |
|
|
64
64
|
| `kilo/amazon/nova-lite-v1` | 300K | | | | | | $0.06 | $0.24 |
|
|
@@ -92,6 +92,7 @@ for await (const chunk of stream) {
|
|
|
92
92
|
| `kilo/bytedance/ui-tars-1.5-7b` | 128K | | | | | | $0.10 | $0.20 |
|
|
93
93
|
| `kilo/cognitivecomputations/dolphin-mistral-24b-venice-edition` | 128K | | | | | | $0.20 | $0.90 |
|
|
94
94
|
| `kilo/cohere/command-a` | 256K | | | | | | $3 | $10 |
|
|
95
|
+
| `kilo/cohere/command-a-plus` | 192K | | | | | | $0.30 | $2 |
|
|
95
96
|
| `kilo/cohere/command-r-08-2024` | 128K | | | | | | $0.15 | $0.60 |
|
|
96
97
|
| `kilo/cohere/command-r-plus-08-2024` | 128K | | | | | | $3 | $10 |
|
|
97
98
|
| `kilo/cohere/command-r7b-12-2024` | 128K | | | | | | $0.04 | $0.15 |
|
|
@@ -275,6 +276,10 @@ for await (const chunk of stream) {
|
|
|
275
276
|
| `kilo/openai/gpt-5.6-terra-pro` | 1.1M | | | | | | $2 | $12 |
|
|
276
277
|
| `kilo/openai/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
|
|
277
278
|
| `kilo/openai/gpt-6-astra-pro` | 1.1M | | | | | | $10 | $50 |
|
|
279
|
+
| `kilo/openai/gpt-6-luna` | 1.1M | | | | | | $0.10 | $0.50 |
|
|
280
|
+
| `kilo/openai/gpt-6-luna-pro` | 1.1M | | | | | | $0.10 | $0.50 |
|
|
281
|
+
| `kilo/openai/gpt-6-sol` | 1.1M | | | | | | $2 | $10 |
|
|
282
|
+
| `kilo/openai/gpt-6-sol-pro` | 1.1M | | | | | | $2 | $10 |
|
|
278
283
|
| `kilo/openai/gpt-audio` | 128K | | | | | | $3 | $10 |
|
|
279
284
|
| `kilo/openai/gpt-audio-mini` | 128K | | | | | | $0.60 | $2 |
|
|
280
285
|
| `kilo/openai/gpt-chat-latest` | 400K | | | | | | $5 | $30 |
|
|
@@ -356,6 +361,7 @@ for await (const chunk of stream) {
|
|
|
356
361
|
| `kilo/qwen/qwen3.8-27b:free` | 262K | | | | | | — | — |
|
|
357
362
|
| `kilo/qwen/qwen3.8-flash` | 1.0M | | | | | | $0.15 | $0.47 |
|
|
358
363
|
| `kilo/qwen/qwen3.8-max-0902` | 1.0M | | | | | | $2 | $6 |
|
|
364
|
+
| `kilo/qwen/qwen3.8-omni-flash` | 1.0M | | | | | | $0.15 | $0.47 |
|
|
359
365
|
| `kilo/rekaai/reka-edge` | 16K | | | | | | $0.10 | $0.10 |
|
|
360
366
|
| `kilo/rekaai/reka-flash-3` | 66K | | | | | | $0.10 | $0.20 |
|
|
361
367
|
| `kilo/relace/relace-apply-3` | 256K | | | | | | $0.85 | $1 |
|
|
@@ -379,7 +385,7 @@ for await (const chunk of stream) {
|
|
|
379
385
|
| `kilo/tencent/hy-mt2-1.8b` | 8K | | | | | | $0.04 | $0.18 |
|
|
380
386
|
| `kilo/tencent/hy-mt2-30b-a3b` | 8K | | | | | | $0.07 | $0.29 |
|
|
381
387
|
| `kilo/tencent/hy-mt2-7b` | 8K | | | | | | $0.07 | $0.29 |
|
|
382
|
-
| `kilo/tencent/hy3` | 262K | | | | | | $0.
|
|
388
|
+
| `kilo/tencent/hy3` | 262K | | | | | | $0.13 | $0.53 |
|
|
383
389
|
| `kilo/tencent/hy3-preview` | 262K | | | | | | $0.18 | $0.60 |
|
|
384
390
|
| `kilo/tencent/hy4-preview` | 1.0M | | | | | | $0.83 | $3 |
|
|
385
391
|
| `kilo/thedrummer/cydonia-24b-v4.1` | 131K | | | | | | $0.30 | $0.50 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# LLM Gateway
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 426 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [LLM Gateway documentation](https://llmgateway.io/docs).
|
|
10
10
|
|
|
@@ -76,6 +76,7 @@ for await (const chunk of stream) {
|
|
|
76
76
|
| `llmgateway-providers/anthropic/claude-opus-4-7` | 1.0M | | | | | | $5 | $25 |
|
|
77
77
|
| `llmgateway-providers/anthropic/claude-opus-4-8` | 1.0M | | | | | | $5 | $25 |
|
|
78
78
|
| `llmgateway-providers/anthropic/claude-opus-5` | 1.0M | | | | | | $5 | $25 |
|
|
79
|
+
| `llmgateway-providers/anthropic/claude-opus-5-5` | 1.0M | | | | | | $4 | $20 |
|
|
79
80
|
| `llmgateway-providers/anthropic/claude-sonnet-4-5` | 200K | | | | | | $3 | $15 |
|
|
80
81
|
| `llmgateway-providers/anthropic/claude-sonnet-4-5-20250929` | 200K | | | | | | $3 | $15 |
|
|
81
82
|
| `llmgateway-providers/anthropic/claude-sonnet-4-6` | 1.0M | | | | | | $3 | $15 |
|
|
@@ -350,6 +351,8 @@ for await (const chunk of stream) {
|
|
|
350
351
|
| `llmgateway-providers/openai/gpt-5.6-sol` | 1.1M | | | | | | $4 | $20 |
|
|
351
352
|
| `llmgateway-providers/openai/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
|
|
352
353
|
| `llmgateway-providers/openai/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
|
|
354
|
+
| `llmgateway-providers/openai/gpt-6-luna` | 1.1M | | | | | | $0.10 | $0.50 |
|
|
355
|
+
| `llmgateway-providers/openai/gpt-6-sol` | 1.1M | | | | | | $2 | $10 |
|
|
353
356
|
| `llmgateway-providers/openai/o1` | 200K | | | | | | $15 | $60 |
|
|
354
357
|
| `llmgateway-providers/openai/o3` | 200K | | | | | | $2 | $8 |
|
|
355
358
|
| `llmgateway-providers/openai/o3-mini` | 200K | | | | | | $1 | $4 |
|