@mastra/mcp-docs-server 1.2.24-alpha.20 → 1.2.24-alpha.21
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/evals/datasets.md +13 -3
- package/.docs/docs/evals/experiments.md +8 -0
- package/.docs/docs/server/middleware.md +17 -7
- package/.docs/integrations/frameworks/tanstack-start.md +3 -3
- package/.docs/models/gateways/openrouter.md +1 -3
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/302ai.md +52 -33
- package/.docs/models/providers/anthropic.md +1 -31
- package/.docs/models/providers/cerebras.md +1 -31
- package/.docs/models/providers/deepinfra.md +1 -31
- package/.docs/models/providers/edenai.md +7 -7
- package/.docs/models/providers/freemodel.md +0 -28
- package/.docs/models/providers/google.md +1 -31
- package/.docs/models/providers/groq.md +1 -31
- package/.docs/models/providers/hyper.md +3 -3
- package/.docs/models/providers/kilo.md +3 -5
- package/.docs/models/providers/kimi-for-coding.md +0 -28
- package/.docs/models/providers/llmgateway-providers.md +1 -2
- package/.docs/models/providers/llmgateway.md +1 -1
- package/.docs/models/providers/meta.md +0 -28
- package/.docs/models/providers/minimax-cn-coding-plan.md +0 -28
- package/.docs/models/providers/minimax-cn.md +0 -28
- package/.docs/models/providers/minimax-coding-plan.md +0 -28
- package/.docs/models/providers/minimax.md +1 -31
- package/.docs/models/providers/mistral.md +1 -31
- package/.docs/models/providers/nano-gpt.md +2 -5
- package/.docs/models/providers/neosmith.md +0 -28
- package/.docs/models/providers/openai.md +1 -31
- package/.docs/models/providers/orcarouter.md +2 -2
- package/.docs/models/providers/perplexity-agent.md +0 -28
- package/.docs/models/providers/perplexity.md +1 -31
- package/.docs/models/providers/subconscious.md +0 -28
- package/.docs/models/providers/thinkingmachines.md +0 -28
- package/.docs/models/providers/togetherai.md +1 -31
- package/.docs/models/providers/vivgrid.md +0 -28
- package/.docs/models/providers/xai.md +1 -31
- package/.docs/reference/client-js/datasets.md +56 -1
- package/.docs/reference/datasets/dataset.md +1 -0
- package/.docs/reference/datasets/datasets-manager.md +14 -0
- package/.docs/reference/datasets/deleteExperiment.md +47 -9
- package/.docs/reference/datasets/purgeItem.md +41 -0
- package/.docs/reference/index.md +1 -0
- package/.docs/reference/server/routes.md +44 -19
- package/package.json +5 -5
|
@@ -121,9 +121,9 @@ await dataset.addItems({
|
|
|
121
121
|
})
|
|
122
122
|
```
|
|
123
123
|
|
|
124
|
-
## Updating and
|
|
124
|
+
## Updating, deleting, and purging items
|
|
125
125
|
|
|
126
|
-
[`updateItem()`](https://mastra.ai/reference/datasets/updateItem), [`deleteItem()`](https://mastra.ai/reference/datasets/deleteItem), and [`deleteItems()`](https://mastra.ai/reference/datasets/deleteItems)
|
|
126
|
+
[`updateItem()`](https://mastra.ai/reference/datasets/updateItem), [`deleteItem()`](https://mastra.ai/reference/datasets/deleteItem), and [`deleteItems()`](https://mastra.ai/reference/datasets/deleteItems) create new dataset versions as they modify or remove items:
|
|
127
127
|
|
|
128
128
|
```typescript
|
|
129
129
|
await dataset.updateItem({
|
|
@@ -136,6 +136,16 @@ await dataset.deleteItem({ itemId: 'item-abc-123' })
|
|
|
136
136
|
await dataset.deleteItems({ itemIds: ['item-1', 'item-2'] })
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
+
Deleting an item hides it from the current dataset version but retains its content in historical rows and the deletion tombstone. Use [`purgeItem()`](https://mastra.ai/reference/datasets/purgeItem) to redact the item's stored content across its existing history:
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
await dataset.purgeItem({ itemId: 'item-abc-123' })
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Purging replaces content in every historical row and deletion tombstone present during the operation with redacted values, and scrubs linked experiment-result payloads, tags, and comments. Later experiment-result submissions for the item are also stored with redacted content, and later `updateItem()` calls reject with `DATASET_ITEM_PURGED`. Don't run purge concurrently with dataset item updates or deletions because a write that started before purge can commit a stale revision afterward. Purging keeps version, identity, experiment counters, and review status so pinned dataset versions and experiment records remain structurally consistent. It doesn't create a dataset version and can't be undone. Avoid storing sensitive data in `externalId`, which remains unchanged as the item's identity key.
|
|
146
|
+
|
|
147
|
+
MongoDB storage requires a replica set or sharded deployment with transaction support for this operation. Purging fails before changing data when MongoDB transactions aren't available.
|
|
148
|
+
|
|
139
149
|
## Listing and searching items
|
|
140
150
|
|
|
141
151
|
[`listItems()`](https://mastra.ai/reference/datasets/listItems) supports pagination and full-text search:
|
|
@@ -166,7 +176,7 @@ const v2Items = await dataset.listItems({ version: 2 })
|
|
|
166
176
|
|
|
167
177
|
## Versioning
|
|
168
178
|
|
|
169
|
-
|
|
179
|
+
Adding, updating, or deleting dataset items bumps the dataset version. Purging an item's stored content with [`purgeItem()`](https://mastra.ai/reference/datasets/purgeItem) doesn't create a new version. This lets you pin experiments to a specific snapshot of the data while erasing sensitive content without changing the version history.
|
|
170
180
|
|
|
171
181
|
### Listing versions
|
|
172
182
|
|
|
@@ -43,6 +43,14 @@ After running an experiment, the **Experiments** tab shows all runs for that dat
|
|
|
43
43
|
|
|
44
44
|
In the **Experiments** tab, select **Compare** and choose two or more experiments to compare their scores and results side by side.
|
|
45
45
|
|
|
46
|
+
## Delete experiments
|
|
47
|
+
|
|
48
|
+
In Studio, open the global **Experiments** list and select **Delete Experiment** from a row, or delete the experiment from its details page. The global list also lets you delete experiments orphaned by dataset deletion, which no longer have a dataset details page.
|
|
49
|
+
|
|
50
|
+
Deleting an experiment permanently removes its result records, plus the observability traces it produced and their associated spans, scores, feedback, metrics, and logs. A storage adapter without trace deletion support leaves the traces in place, logs a warning, and still deletes the experiment with its result records.
|
|
51
|
+
|
|
52
|
+
You can also delete experiments with the [Core API](https://mastra.ai/reference/datasets/deleteExperiment) or [Client SDK](https://mastra.ai/reference/client-js/datasets). The same operation is available through the [server routes](https://mastra.ai/reference/server/routes).
|
|
53
|
+
|
|
46
54
|
## Experiment targets
|
|
47
55
|
|
|
48
56
|
You can point an experiment at a registered agent, workflow, or scorer.
|
|
@@ -131,7 +131,11 @@ export const mastra = new Mastra({
|
|
|
131
131
|
|
|
132
132
|
### Authorization (User Isolation)
|
|
133
133
|
|
|
134
|
-
Authentication verifies who the user is
|
|
134
|
+
Authentication verifies who the user is, while authorization controls what they can access.
|
|
135
|
+
|
|
136
|
+
Without server-enforced resource scoping or another authorization policy, authenticated callers can list threads across resources and access their messages and working memory. Callers don't need to guess thread IDs: an unscoped listing can expose them. For private per-user or per-tenant memory, configure `mapUserToResourceId` or set a trusted resource ID in middleware.
|
|
137
|
+
|
|
138
|
+
Cross-resource access can be intentional in shared applications. A resource ID can identify a user, tenant, project, or another grouping. Choose an authorization policy that matches who can access those resources.
|
|
135
139
|
|
|
136
140
|
The simplest way to scope memory and threads to the authenticated user is the `mapUserToResourceId` callback in the auth config:
|
|
137
141
|
|
|
@@ -152,10 +156,16 @@ export const mastra = new Mastra({
|
|
|
152
156
|
|
|
153
157
|
After successful authentication, `mapUserToResourceId` is called with the authenticated user object. The returned value is set as `MASTRA_RESOURCE_ID_KEY` on the request context, which works across all server adapters (Hono, Express, Next.js, etc.).
|
|
154
158
|
|
|
159
|
+
When configured, the callback must return a non-empty string. If it throws or returns `null`, `undefined`, an empty or whitespace-only string, or a non-string value, authentication middleware rejects the request with a 500 error before the route runs. This applies to all requests that run authentication, including non-memory routes. A client-provided resource ID can't override a failed mapping.
|
|
160
|
+
|
|
161
|
+
With `CompositeAuth`, this requirement applies to the provider that authenticated the request. A provider without a mapper keeps its existing behavior, even if another provider in the composite has one. The same validation applies to configured Studio auth mappers.
|
|
162
|
+
|
|
163
|
+
Without a mapper, authentication doesn't enable user isolation: you're responsible for setting a trusted resource ID in middleware or otherwise enforcing authorization.
|
|
164
|
+
|
|
155
165
|
The resource ID doesn't have to be `user.id`. Common patterns:
|
|
156
166
|
|
|
157
167
|
```typescript
|
|
158
|
-
//
|
|
168
|
+
// Per-user within an organization
|
|
159
169
|
mapUserToResourceId: user => `${user.orgId}:${user.id}`
|
|
160
170
|
|
|
161
171
|
// From a JWT claim
|
|
@@ -167,12 +177,12 @@ mapUserToResourceId: user => `${user.workspaceId}:${user.projectId}:${user.id}`
|
|
|
167
177
|
|
|
168
178
|
With a resource ID set, the server automatically:
|
|
169
179
|
|
|
170
|
-
- **Filters thread listing** to only return threads
|
|
171
|
-
- **Validates thread access** and returns 403 if accessing
|
|
172
|
-
- **Forces thread creation** to use the
|
|
173
|
-
- **Validates message operations** including deletion, ensuring messages belong to
|
|
180
|
+
- **Filters thread listing** to only return threads in the configured resource scope
|
|
181
|
+
- **Validates thread access** and returns 403 if accessing a thread belonging to a different resource
|
|
182
|
+
- **Forces thread creation** to use the configured resource ID
|
|
183
|
+
- **Validates message operations** including deletion, ensuring messages belong to threads in the configured resource scope
|
|
174
184
|
|
|
175
|
-
Even if a client passes `?resourceId=other-
|
|
185
|
+
Even if a client passes `?resourceId=other-resource-id`, the server-set value takes precedence. Attempts to access threads or messages belonging to a different resource return a 403 error. Users mapped to the same resource ID share that resource scope.
|
|
176
186
|
|
|
177
187
|
#### Advanced: Setting resource ID in middleware
|
|
178
188
|
|
|
@@ -53,13 +53,13 @@ You'll pass the Mastra instance exported from `src/mastra/index.ts` to the serve
|
|
|
53
53
|
|
|
54
54
|
## Configure Vite and Nitro
|
|
55
55
|
|
|
56
|
-
Update `vite.config.ts` so Vite and Nitro leave DuckDB's
|
|
56
|
+
Update `vite.config.ts` so Vite and Nitro leave DuckDB's and `@mastra/core`'s Node-only dependencies out of their processing pipelines:
|
|
57
57
|
|
|
58
58
|
```diff
|
|
59
59
|
const config = defineConfig({
|
|
60
60
|
resolve: { tsconfigPaths: true },
|
|
61
61
|
+ optimizeDeps: {
|
|
62
|
-
+ exclude: ['@mastra/duckdb'],
|
|
62
|
+
+ exclude: ['@mastra/duckdb', 'execa'],
|
|
63
63
|
+ },
|
|
64
64
|
plugins: [
|
|
65
65
|
devtools(),
|
|
@@ -71,7 +71,7 @@ const config = defineConfig({
|
|
|
71
71
|
+ }),
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
The `optimizeDeps.exclude` setting prevents Vite's development optimizer from opening DuckDB's native `.node` binary as JavaScript. Adding `/^@duckdb\//` to Nitro's `rollupConfig.external` keeps DuckDB's native Node packages out of the production bundle so Node.js can load them at runtime.
|
|
74
|
+
The `optimizeDeps.exclude` setting prevents Vite's development optimizer from opening DuckDB's native `.node` binary as JavaScript. Excluding `execa` stops the optimizer from pre-bundling the server-only dependency `@mastra/core` uses for local process execution; its transitive `npm-run-path` and `unicorn-magic` packages use Node-only conditional exports that the optimizer cannot resolve in the browser build. Adding `/^@duckdb\//` to Nitro's `rollupConfig.external` keeps DuckDB's native Node packages out of the production bundle so Node.js can load them at runtime.
|
|
75
75
|
|
|
76
76
|
These changes apply only to `vite.config.ts`; you don't need to change your application or Mastra source files.
|
|
77
77
|
|
|
@@ -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 356 models through Mastra's model router.
|
|
8
8
|
|
|
9
9
|
Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
|
|
10
10
|
|
|
@@ -203,8 +203,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
203
203
|
| `moonshotai/kimi-k3` |
|
|
204
204
|
| `morph/morph-v3-fast` |
|
|
205
205
|
| `morph/morph-v3-large` |
|
|
206
|
-
| `nex-agi/nex-n2-mini` |
|
|
207
|
-
| `nex-agi/nex-n2-pro` |
|
|
208
206
|
| `nousresearch/hermes-3-llama-3.1-405b` |
|
|
209
207
|
| `nousresearch/hermes-3-llama-3.1-70b` |
|
|
210
208
|
| `nousresearch/hermes-4-405b` |
|
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 7109 models from 200 providers through a single API.
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# 302.AI
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 116 302.AI models through Mastra's model router. Authentication is handled automatically using the `302AI_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [302.AI documentation](https://doc.302.ai).
|
|
10
10
|
|
|
@@ -38,34 +38,28 @@ for await (const chunk of stream) {
|
|
|
38
38
|
|
|
39
39
|
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
40
40
|
| --------------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
41
|
-
| `302ai/
|
|
42
|
-
| `302ai/claude-
|
|
43
|
-
| `302ai/claude-3-5-haiku-latest` | 200K | | | | | | $0.80 | $4 |
|
|
41
|
+
| `302ai/claude-fable-5` | 1.0M | | | | | | $10 | $50 |
|
|
42
|
+
| `302ai/claude-fable-5-1` | 1.0M | | | | | | $10 | $50 |
|
|
44
43
|
| `302ai/claude-haiku-4-5` | 200K | | | | | | $1 | $5 |
|
|
45
44
|
| `302ai/claude-haiku-4-5-20251001` | 200K | | | | | | $1 | $5 |
|
|
46
45
|
| `302ai/claude-opus-4-1-20250805` | 200K | | | | | | $15 | $75 |
|
|
47
46
|
| `302ai/claude-opus-4-1-20250805-thinking` | 200K | | | | | | $15 | $75 |
|
|
48
|
-
| `302ai/claude-opus-4-20250514` | 200K | | | | | | $15 | $75 |
|
|
49
|
-
| `302ai/claude-opus-4-5` | 200K | | | | | | $5 | $25 |
|
|
50
47
|
| `302ai/claude-opus-4-5-20251101` | 200K | | | | | | $5 | $25 |
|
|
51
|
-
| `302ai/claude-opus-4-5-20251101-thinking` | 200K | | | | | | $5 | $25 |
|
|
52
|
-
| `302ai/claude-opus-4-6` | 1.0M | | | | | | $5 | $25 |
|
|
53
|
-
| `302ai/claude-opus-4-6-thinking` | 1.0M | | | | | | $5 | $25 |
|
|
54
48
|
| `302ai/claude-opus-4-7` | 1.0M | | | | | | $5 | $25 |
|
|
55
|
-
| `302ai/claude-
|
|
56
|
-
| `302ai/claude-
|
|
49
|
+
| `302ai/claude-opus-4-7-thinking` | 1.0M | | | | | | $5 | $25 |
|
|
50
|
+
| `302ai/claude-opus-4-8` | 1.0M | | | | | | $5 | $25 |
|
|
51
|
+
| `302ai/claude-opus-5` | 1.0M | | | | | | $5 | $25 |
|
|
52
|
+
| `302ai/claude-opus-5-thinking` | 1.0M | | | | | | $5 | $25 |
|
|
57
53
|
| `302ai/claude-sonnet-4-5-20250929` | 200K | | | | | | $3 | $15 |
|
|
58
54
|
| `302ai/claude-sonnet-4-5-20250929-thinking` | 200K | | | | | | $3 | $15 |
|
|
59
55
|
| `302ai/claude-sonnet-4-6` | 1.0M | | | | | | $3 | $15 |
|
|
60
56
|
| `302ai/claude-sonnet-4-6-thinking` | 1.0M | | | | | | $3 | $15 |
|
|
61
|
-
| `302ai/
|
|
62
|
-
| `302ai/deepseek-reasoner` | 128K | | | | | | $0.29 | $0.43 |
|
|
57
|
+
| `302ai/claude-sonnet-5` | 1.0M | | | | | | $2 | $10 |
|
|
63
58
|
| `302ai/deepseek-v3.2` | 128K | | | | | | $0.29 | $0.43 |
|
|
64
59
|
| `302ai/deepseek-v3.2-thinking` | 128K | | | | | | $0.29 | $0.43 |
|
|
65
60
|
| `302ai/doubao-seed-1-6-thinking-250715` | 256K | | | | | | $0.12 | $1 |
|
|
66
61
|
| `302ai/doubao-seed-1-6-vision-250815` | 256K | | | | | | $0.11 | $1 |
|
|
67
62
|
| `302ai/doubao-seed-1-8-251215` | 224K | | | | | | $0.11 | $0.29 |
|
|
68
|
-
| `302ai/doubao-seed-code-preview-251028` | 256K | | | | | | $0.17 | $1 |
|
|
69
63
|
| `302ai/gemini-2.0-flash-lite` | 2.0M | | | | | | $0.07 | $0.30 |
|
|
70
64
|
| `302ai/gemini-2.5-flash` | 1.0M | | | | | | $0.30 | $3 |
|
|
71
65
|
| `302ai/gemini-2.5-flash-image` | 33K | | | | | | $0.30 | $30 |
|
|
@@ -77,20 +71,27 @@ for await (const chunk of stream) {
|
|
|
77
71
|
| `302ai/gemini-3-pro-image-preview` | 33K | | | | | | $2 | $120 |
|
|
78
72
|
| `302ai/gemini-3-pro-preview` | 1.0M | | | | | | $2 | $12 |
|
|
79
73
|
| `302ai/gemini-3.1-flash-image-preview` | 131K | | | | | | $0.50 | $60 |
|
|
74
|
+
| `302ai/gemini-3.1-flash-lite` | 1.0M | | | | | | $0.25 | $2 |
|
|
75
|
+
| `302ai/gemini-3.1-flash-lite-preview` | 1.0M | | | | | | $0.25 | $2 |
|
|
76
|
+
| `302ai/gemini-3.1-pro-preview` | 1.0M | | | | | | $2 | $12 |
|
|
77
|
+
| `302ai/gemini-3.5-flash` | 1.0M | | | | | | $2 | $9 |
|
|
78
|
+
| `302ai/gemini-3.5-flash-lite` | 1.0M | | | | | | $0.30 | $3 |
|
|
79
|
+
| `302ai/gemini-3.5-flash-thinking` | 1.0M | | | | | | $2 | $9 |
|
|
80
|
+
| `302ai/gemini-3.6-flash` | 1.0M | | | | | | $2 | $8 |
|
|
81
|
+
| `302ai/gemini-3.7-flash` | 1.0M | | | | | | $0.75 | $4 |
|
|
82
|
+
| `302ai/gemini-3.8-flash` | 1.0M | | | | | | $0.75 | $4 |
|
|
80
83
|
| `302ai/glm-4.5` | 131K | | | | | | $0.29 | $1 |
|
|
81
|
-
| `302ai/glm-4.5-air` | 131K | | | | | | $0.11 | $0.29 |
|
|
82
|
-
| `302ai/glm-4.5-airx` | 128K | | | | | | $0.57 | $2 |
|
|
83
|
-
| `302ai/glm-4.5-x` | 128K | | | | | | $1 | $2 |
|
|
84
84
|
| `302ai/glm-4.5v` | 64K | | | | | | $0.29 | $0.86 |
|
|
85
85
|
| `302ai/glm-4.6` | 205K | | | | | | $0.29 | $1 |
|
|
86
86
|
| `302ai/glm-4.6v` | 128K | | | | | | $0.14 | $0.43 |
|
|
87
87
|
| `302ai/glm-4.7` | 205K | | | | | | $0.29 | $1 |
|
|
88
|
-
| `302ai/glm-4.7-flashx` | 200K | | | | | | $0.07 | $0.43 |
|
|
89
88
|
| `302ai/glm-5` | 205K | | | | | | $0.60 | $3 |
|
|
90
89
|
| `302ai/glm-5-turbo` | 200K | | | | | | $0.72 | $3 |
|
|
91
|
-
| `302ai/glm-5.1` | 200K | | | | | | $
|
|
90
|
+
| `302ai/glm-5.1` | 200K | | | | | | $1 | $4 |
|
|
91
|
+
| `302ai/glm-5.2` | 1.0M | | | | | | $1 | $4 |
|
|
92
|
+
| `302ai/glm-5.3` | 1.0M | | | | | | $1 | $4 |
|
|
93
|
+
| `302ai/glm-5.3-flash` | 1.0M | | | | | | $0.07 | $0.25 |
|
|
92
94
|
| `302ai/glm-5v-turbo` | 200K | | | | | | $0.72 | $3 |
|
|
93
|
-
| `302ai/glm-for-coding` | 200K | | | | | | $0.09 | $0.34 |
|
|
94
95
|
| `302ai/gpt-4.1` | 1.0M | | | | | | $2 | $8 |
|
|
95
96
|
| `302ai/gpt-4.1-mini` | 1.0M | | | | | | $0.40 | $2 |
|
|
96
97
|
| `302ai/gpt-4.1-nano` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
@@ -103,38 +104,56 @@ for await (const chunk of stream) {
|
|
|
103
104
|
| `302ai/gpt-5.1-chat-latest` | 128K | | | | | | $1 | $10 |
|
|
104
105
|
| `302ai/gpt-5.2` | 400K | | | | | | $2 | $14 |
|
|
105
106
|
| `302ai/gpt-5.2-chat-latest` | 128K | | | | | | $2 | $14 |
|
|
107
|
+
| `302ai/gpt-5.3-chat-latest` | 128K | | | | | | $2 | $14 |
|
|
106
108
|
| `302ai/gpt-5.4` | 1.1M | | | | | | $3 | $15 |
|
|
107
109
|
| `302ai/gpt-5.4-mini` | 400K | | | | | | $0.75 | $5 |
|
|
108
|
-
| `302ai/gpt-5.4-mini-2026-03-17` | 400K | | | | | | $0.75 | $5 |
|
|
109
110
|
| `302ai/gpt-5.4-nano` | 400K | | | | | | $0.20 | $1 |
|
|
110
|
-
| `302ai/gpt-5.
|
|
111
|
-
| `302ai/gpt-5.
|
|
112
|
-
| `302ai/
|
|
111
|
+
| `302ai/gpt-5.5` | 1.1M | | | | | | $5 | $30 |
|
|
112
|
+
| `302ai/gpt-5.6-luna` | 1.1M | | | | | | $0.20 | $1 |
|
|
113
|
+
| `302ai/gpt-5.6-luna-pro` | 1.1M | | | | | | $0.20 | $1 |
|
|
114
|
+
| `302ai/gpt-5.6-sol` | 1.1M | | | | | | $5 | $30 |
|
|
115
|
+
| `302ai/gpt-5.6-sol-pro` | 1.1M | | | | | | $5 | $30 |
|
|
116
|
+
| `302ai/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
|
|
117
|
+
| `302ai/gpt-5.6-terra-pro` | 1.1M | | | | | | $2 | $12 |
|
|
118
|
+
| `302ai/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
|
|
113
119
|
| `302ai/grok-4-1-fast-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
|
|
114
120
|
| `302ai/grok-4-fast-non-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
|
|
115
121
|
| `302ai/grok-4-fast-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
|
|
116
122
|
| `302ai/grok-4.1` | 200K | | | | | | $2 | $10 |
|
|
117
|
-
| `302ai/grok-4.20-beta-0309-non-reasoning` | 2.0M | | | | | | $2 | $6 |
|
|
118
123
|
| `302ai/grok-4.20-beta-0309-reasoning` | 2.0M | | | | | | $2 | $6 |
|
|
119
|
-
| `302ai/grok-4.
|
|
124
|
+
| `302ai/grok-4.3` | 1.0M | | | | | | $1 | $3 |
|
|
125
|
+
| `302ai/grok-4.5` | 500K | | | | | | $2 | $6 |
|
|
126
|
+
| `302ai/grok-4.6` | 500K | | | | | | $2 | $6 |
|
|
120
127
|
| `302ai/kimi-k2-0905-preview` | 262K | | | | | | $0.63 | $3 |
|
|
121
128
|
| `302ai/kimi-k2-thinking` | 262K | | | | | | $0.57 | $2 |
|
|
122
|
-
| `302ai/kimi-k2
|
|
129
|
+
| `302ai/kimi-k2.5` | 262K | | | | | | $0.66 | $3 |
|
|
130
|
+
| `302ai/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
|
|
131
|
+
| `302ai/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
132
|
+
| `302ai/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
123
133
|
| `302ai/MiniMax-M1` | 1.0M | | | | | | $0.13 | $1 |
|
|
124
134
|
| `302ai/MiniMax-M2` | 1.0M | | | | | | $0.33 | $1 |
|
|
125
|
-
| `302ai/MiniMax-M2.1` |
|
|
135
|
+
| `302ai/MiniMax-M2.1` | 205K | | | | | | $0.30 | $1 |
|
|
136
|
+
| `302ai/MiniMax-M2.5` | 205K | | | | | | $0.30 | $1 |
|
|
126
137
|
| `302ai/MiniMax-M2.7` | 205K | | | | | | $0.30 | $1 |
|
|
127
|
-
| `302ai/MiniMax-
|
|
138
|
+
| `302ai/MiniMax-M3` | 1.0M | | | | | | $0.72 | $3 |
|
|
128
139
|
| `302ai/ministral-14b-2512` | 128K | | | | | | $0.33 | $0.33 |
|
|
129
140
|
| `302ai/mistral-large-2512` | 128K | | | | | | $1 | $3 |
|
|
130
|
-
| `302ai/
|
|
131
|
-
| `302ai/qwen-max-latest` | 131K | | | | | | $0.34 | $1 |
|
|
132
|
-
| `302ai/qwen-plus` | 1.0M | | | | | | $0.12 | $1 |
|
|
141
|
+
| `302ai/o3` | 200K | | | | | | $2 | $8 |
|
|
133
142
|
| `302ai/qwen3-235b-a22b` | 128K | | | | | | $0.29 | $3 |
|
|
134
143
|
| `302ai/qwen3-235b-a22b-instruct-2507` | 128K | | | | | | $0.29 | $1 |
|
|
135
144
|
| `302ai/qwen3-30b-a3b` | 128K | | | | | | $0.11 | $1 |
|
|
136
145
|
| `302ai/qwen3-coder-480b-a35b-instruct` | 262K | | | | | | $0.86 | $3 |
|
|
137
146
|
| `302ai/qwen3-max-2025-09-23` | 258K | | | | | | $0.86 | $3 |
|
|
147
|
+
| `302ai/qwen3.5-35b-a3b` | 262K | | | | | | $0.06 | $0.46 |
|
|
148
|
+
| `302ai/qwen3.5-plus` | 1.0M | | | | | | $0.12 | $0.69 |
|
|
149
|
+
| `302ai/qwen3.6-35b-a3b` | 262K | | | | | | $0.28 | $2 |
|
|
150
|
+
| `302ai/qwen3.6-flash` | 1.0M | | | | | | $0.19 | $1 |
|
|
151
|
+
| `302ai/qwen3.6-plus` | 1.0M | | | | | | $0.30 | $2 |
|
|
152
|
+
| `302ai/qwen3.7-max` | 1.0M | | | | | | $2 | $5 |
|
|
153
|
+
| `302ai/qwen3.7-max-2026-06-08` | 1.0M | | | | | | $2 | $5 |
|
|
154
|
+
| `302ai/qwen3.7-plus` | 1.0M | | | | | | $0.28 | $1 |
|
|
155
|
+
| `302ai/qwen3.8-flash` | 1.0M | | | | | | $0.18 | $0.56 |
|
|
156
|
+
| `302ai/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
|
|
138
157
|
|
|
139
158
|
Model availability, capabilities, context windows, and pricing are sourced from [models.dev](https://models.dev) and may change.
|
|
140
159
|
|
|
@@ -166,7 +185,7 @@ const agent = new Agent({
|
|
|
166
185
|
model: ({ requestContext }) => {
|
|
167
186
|
const useAdvanced = requestContext.task === "complex";
|
|
168
187
|
return useAdvanced
|
|
169
|
-
? "302ai/qwen3-max
|
|
188
|
+
? "302ai/qwen3.8-max"
|
|
170
189
|
: "302ai/MiniMax-M1";
|
|
171
190
|
}
|
|
172
191
|
});
|
|
@@ -132,34 +132,4 @@ const response = await agent.generate("Hello!", {
|
|
|
132
132
|
|
|
133
133
|
**anthropicBeta** (`string[] | undefined`)
|
|
134
134
|
|
|
135
|
-
**contextManagement** (`{ edits: ({ type: "clear_tool_uses_20250919"; trigger?: { type: "input_tokens"; value: number; } | { type: "tool_uses"; value: number; } | undefined; keep?: { type: "tool_uses"; value: number; } | undefined; clearAtLeast?: { ...; } | undefined; clearToolInputs?: boolean | undefined; excludeTools?: string[] | undefin...`)
|
|
136
|
-
|
|
137
|
-
## Direct provider installation
|
|
138
|
-
|
|
139
|
-
This provider can also be installed directly as a standalone package, which can be used instead of the Mastra model router string. View the [package documentation](https://www.npmjs.com/package/@ai-sdk/anthropic) for more details.
|
|
140
|
-
|
|
141
|
-
**npm**:
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
npm install @ai-sdk/anthropic
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
**pnpm**:
|
|
148
|
-
|
|
149
|
-
```bash
|
|
150
|
-
pnpm add @ai-sdk/anthropic
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
**Yarn**:
|
|
154
|
-
|
|
155
|
-
```bash
|
|
156
|
-
yarn add @ai-sdk/anthropic
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
**Bun**:
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
bun add @ai-sdk/anthropic
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
For detailed provider-specific documentation, see the [AI SDK Anthropic provider docs](https://ai-sdk.dev/providers/ai-sdk-providers/anthropic).
|
|
135
|
+
**contextManagement** (`{ edits: ({ type: "clear_tool_uses_20250919"; trigger?: { type: "input_tokens"; value: number; } | { type: "tool_uses"; value: number; } | undefined; keep?: { type: "tool_uses"; value: number; } | undefined; clearAtLeast?: { ...; } | undefined; clearToolInputs?: boolean | undefined; excludeTools?: string[] | undefin...`)
|
|
@@ -72,34 +72,4 @@ const agent = new Agent({
|
|
|
72
72
|
: "cerebras/gpt-oss-120b";
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Direct provider installation
|
|
78
|
-
|
|
79
|
-
This provider can also be installed directly as a standalone package, which can be used instead of the Mastra model router string. View the [package documentation](https://www.npmjs.com/package/@ai-sdk/cerebras) for more details.
|
|
80
|
-
|
|
81
|
-
**npm**:
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
npm install @ai-sdk/cerebras
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
**pnpm**:
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
pnpm add @ai-sdk/cerebras
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**Yarn**:
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
yarn add @ai-sdk/cerebras
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
**Bun**:
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
bun add @ai-sdk/cerebras
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
For detailed provider-specific documentation, see the [AI SDK Cerebras provider docs](https://ai-sdk.dev/providers/ai-sdk-providers/cerebras).
|
|
75
|
+
```
|
|
@@ -129,34 +129,4 @@ const agent = new Agent({
|
|
|
129
129
|
: "deepinfra/ByteDance/Seed-2.0-code";
|
|
130
130
|
}
|
|
131
131
|
});
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
## Direct provider installation
|
|
135
|
-
|
|
136
|
-
This provider can also be installed directly as a standalone package, which can be used instead of the Mastra model router string. View the [package documentation](https://www.npmjs.com/package/@ai-sdk/deepinfra) for more details.
|
|
137
|
-
|
|
138
|
-
**npm**:
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
npm install @ai-sdk/deepinfra
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
**pnpm**:
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
pnpm add @ai-sdk/deepinfra
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
**Yarn**:
|
|
151
|
-
|
|
152
|
-
```bash
|
|
153
|
-
yarn add @ai-sdk/deepinfra
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**Bun**:
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
bun add @ai-sdk/deepinfra
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
For detailed provider-specific documentation, see the [AI SDK Deep Infra provider docs](https://ai-sdk.dev/providers/ai-sdk-providers/deepinfra).
|
|
132
|
+
```
|
|
@@ -111,9 +111,9 @@ for await (const chunk of stream) {
|
|
|
111
111
|
| `edenai/fireworks_ai/accounts/fireworks/models/inkling` | 1.0M | | | | | | $1 | $4 |
|
|
112
112
|
| `edenai/fireworks_ai/accounts/fireworks/models/muse-glimmer-30b` | 131K | | | | | | $0.35 | $2 |
|
|
113
113
|
| `edenai/fireworks_ai/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
|
|
114
|
-
| `edenai/flexai/DeepSeek-V4-Flash-0731` | 786K | | | | | | $0.
|
|
115
|
-
| `edenai/flexai/gpt-oss-120b` | 131K | | | | | | $0.04 | $0.
|
|
116
|
-
| `edenai/flexai/gpt-oss-20b` | 131K | | | | | | $0.
|
|
114
|
+
| `edenai/flexai/DeepSeek-V4-Flash-0731` | 786K | | | | | | $0.07 | $0.18 |
|
|
115
|
+
| `edenai/flexai/gpt-oss-120b` | 131K | | | | | | $0.04 | $0.17 |
|
|
116
|
+
| `edenai/flexai/gpt-oss-20b` | 131K | | | | | | $0.03 | $0.13 |
|
|
117
117
|
| `edenai/flexai/Muse-Glimmer-30B` | 131K | | | | | | $0.30 | $1 |
|
|
118
118
|
| `edenai/flexai/Nemotron-3-Super-120B-A12B` | 262K | | | | | | $0.09 | $0.40 |
|
|
119
119
|
| `edenai/flexai/Step-3.7-Flash` | 262K | | | | | | $0.20 | $1 |
|
|
@@ -137,8 +137,8 @@ for await (const chunk of stream) {
|
|
|
137
137
|
| `edenai/google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
|
|
138
138
|
| `edenai/groq/openai/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
|
|
139
139
|
| `edenai/groq/openai/gpt-oss-20b` | 131K | | | | | | $0.07 | $0.30 |
|
|
140
|
-
| `edenai/ionos/meta-llama/Llama-3.3-70B-Instruct` | 128K | | | | | | $0.
|
|
141
|
-
| `edenai/ionos/openai/gpt-oss-120b` | 131K | | | | | | $0.17 | $0.
|
|
140
|
+
| `edenai/ionos/meta-llama/Llama-3.3-70B-Instruct` | 128K | | | | | | $0.75 | $0.75 |
|
|
141
|
+
| `edenai/ionos/openai/gpt-oss-120b` | 131K | | | | | | $0.17 | $0.75 |
|
|
142
142
|
| `edenai/minimax/MiniMax-M2` | 205K | | | | | | $0.30 | $1 |
|
|
143
143
|
| `edenai/minimax/MiniMax-M2.1` | 205K | | | | | | $0.30 | $1 |
|
|
144
144
|
| `edenai/minimax/MiniMax-M2.5` | 205K | | | | | | $0.30 | $1 |
|
|
@@ -208,8 +208,8 @@ for await (const chunk of stream) {
|
|
|
208
208
|
| `edenai/perplexityai/sonar-deep-research` | 128K | | | | | | $2 | $8 |
|
|
209
209
|
| `edenai/perplexityai/sonar-pro` | 200K | | | | | | $3 | $15 |
|
|
210
210
|
| `edenai/perplexityai/sonar-reasoning-pro` | 128K | | | | | | $2 | $8 |
|
|
211
|
-
| `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.
|
|
212
|
-
| `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $
|
|
211
|
+
| `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.18 | $0.53 |
|
|
212
|
+
| `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $0.58 | $2 |
|
|
213
213
|
| `edenai/qwen/qwen-max` | 33K | | | | | | $2 | $6 |
|
|
214
214
|
| `edenai/qwen/qwen-vl-max` | 131K | | | | | | $0.80 | $3 |
|
|
215
215
|
| `edenai/qwen/qwen-vl-plus` | 131K | | | | | | $0.21 | $0.63 |
|
|
@@ -83,32 +83,4 @@ const agent = new Agent({
|
|
|
83
83
|
: "freemodel/claude-fable-5";
|
|
84
84
|
}
|
|
85
85
|
});
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## Direct provider installation
|
|
89
|
-
|
|
90
|
-
This provider can also be installed directly as a standalone package, which can be used instead of the Mastra model router string. View the [package documentation](https://www.npmjs.com/package/@ai-sdk/anthropic) for more details.
|
|
91
|
-
|
|
92
|
-
**npm**:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
npm install @ai-sdk/anthropic
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
**pnpm**:
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
pnpm add @ai-sdk/anthropic
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
**Yarn**:
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
yarn add @ai-sdk/anthropic
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
**Bun**:
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
bun add @ai-sdk/anthropic
|
|
114
86
|
```
|
|
@@ -155,34 +155,4 @@ const response = await agent.generate("Hello!", {
|
|
|
155
155
|
|
|
156
156
|
**sharedRequestType** (`"standard" | "flex" | "priority" | undefined`)
|
|
157
157
|
|
|
158
|
-
**requestType** (`"shared" | undefined`)
|
|
159
|
-
|
|
160
|
-
## Direct provider installation
|
|
161
|
-
|
|
162
|
-
This provider can also be installed directly as a standalone package, which can be used instead of the Mastra model router string. View the [package documentation](https://www.npmjs.com/package/@ai-sdk/google) for more details.
|
|
163
|
-
|
|
164
|
-
**npm**:
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
npm install @ai-sdk/google
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
**pnpm**:
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
pnpm add @ai-sdk/google
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
**Yarn**:
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
yarn add @ai-sdk/google
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
**Bun**:
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
bun add @ai-sdk/google
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
For detailed provider-specific documentation, see the [AI SDK Google provider docs](https://ai-sdk.dev/providers/ai-sdk-providers/google).
|
|
158
|
+
**requestType** (`"shared" | undefined`)
|
|
@@ -87,34 +87,4 @@ const agent = new Agent({
|
|
|
87
87
|
: "groq/allam-2-7b";
|
|
88
88
|
}
|
|
89
89
|
});
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Direct provider installation
|
|
93
|
-
|
|
94
|
-
This provider can also be installed directly as a standalone package, which can be used instead of the Mastra model router string. View the [package documentation](https://www.npmjs.com/package/@ai-sdk/groq) for more details.
|
|
95
|
-
|
|
96
|
-
**npm**:
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
npm install @ai-sdk/groq
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**pnpm**:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
pnpm add @ai-sdk/groq
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
**Yarn**:
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
yarn add @ai-sdk/groq
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
**Bun**:
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
bun add @ai-sdk/groq
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
For detailed provider-specific documentation, see the [AI SDK Groq provider docs](https://ai-sdk.dev/providers/ai-sdk-providers/groq).
|
|
90
|
+
```
|
|
@@ -42,13 +42,13 @@ for await (const chunk of stream) {
|
|
|
42
42
|
| `hyper/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.44 | $1 |
|
|
43
43
|
| `hyper/deepseek-v4-pro` | 1.0M | | | | | | $2 | $5 |
|
|
44
44
|
| `hyper/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
|
|
45
|
-
| `hyper/gemma-4-26b-a4b-it` | 256K | | | | | | $0.11 | $0.
|
|
45
|
+
| `hyper/gemma-4-26b-a4b-it` | 256K | | | | | | $0.11 | $0.37 |
|
|
46
46
|
| `hyper/glm-5` | 203K | | | | | | $0.86 | $3 |
|
|
47
47
|
| `hyper/glm-5.1` | 203K | | | | | | $1 | $4 |
|
|
48
48
|
| `hyper/glm-5.2` | 1.0M | | | | | | $2 | $5 |
|
|
49
49
|
| `hyper/glm-5.3` | 1.0M | | | | | | $2 | $5 |
|
|
50
50
|
| `hyper/glm-5.3-flash` | 1.0M | | | | | | $0.16 | $0.54 |
|
|
51
|
-
| `hyper/gpt-oss-120b` | 128K | | | | | | $0.
|
|
51
|
+
| `hyper/gpt-oss-120b` | 128K | | | | | | $0.18 | $0.68 |
|
|
52
52
|
| `hyper/inkling` | 1.0M | | | | | | $1 | $4 |
|
|
53
53
|
| `hyper/kimi-k2-thinking` | 262K | | | | | | $0.60 | $3 |
|
|
54
54
|
| `hyper/kimi-k2.5` | 262K | | | | | | $0.56 | $3 |
|
|
@@ -57,7 +57,7 @@ for await (const chunk of stream) {
|
|
|
57
57
|
| `hyper/kimi-k3` | 1.0M | | | | | | $3 | $16 |
|
|
58
58
|
| `hyper/llama-3.3-70b-instruct` | 128K | | | | | | $0.61 | $1 |
|
|
59
59
|
| `hyper/llama-4-maverick-17b-128e-instruct-fp8` | 430K | | | | | | $0.27 | $0.90 |
|
|
60
|
-
| `hyper/minimax-m2.7` | 262K | | | | | | $0.
|
|
60
|
+
| `hyper/minimax-m2.7` | 262K | | | | | | $0.46 | $2 |
|
|
61
61
|
| `hyper/minimax-m3` | 512K | | | | | | $0.33 | $1 |
|
|
62
62
|
| `hyper/qwen3-coder-480b-a35b-instruct-int4-mixed-ar` | 106K | | | | | | $0.45 | $2 |
|
|
63
63
|
| `hyper/qwen3-next-80b-a3b-instruct` | 262K | | | | | | $0.12 | $1 |
|