@mastra/mcp-docs-server 1.2.24-alpha.19 → 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.
Files changed (44) hide show
  1. package/.docs/docs/evals/datasets.md +13 -3
  2. package/.docs/docs/evals/experiments.md +8 -0
  3. package/.docs/docs/server/middleware.md +17 -7
  4. package/.docs/integrations/frameworks/tanstack-start.md +3 -3
  5. package/.docs/models/gateways/openrouter.md +1 -3
  6. package/.docs/models/index.md +1 -1
  7. package/.docs/models/providers/302ai.md +52 -33
  8. package/.docs/models/providers/anthropic.md +1 -31
  9. package/.docs/models/providers/cerebras.md +1 -31
  10. package/.docs/models/providers/deepinfra.md +1 -31
  11. package/.docs/models/providers/edenai.md +7 -7
  12. package/.docs/models/providers/freemodel.md +0 -28
  13. package/.docs/models/providers/google.md +1 -31
  14. package/.docs/models/providers/groq.md +1 -31
  15. package/.docs/models/providers/hyper.md +3 -3
  16. package/.docs/models/providers/kilo.md +3 -5
  17. package/.docs/models/providers/kimi-for-coding.md +0 -28
  18. package/.docs/models/providers/llmgateway-providers.md +1 -2
  19. package/.docs/models/providers/llmgateway.md +1 -1
  20. package/.docs/models/providers/meta.md +0 -28
  21. package/.docs/models/providers/minimax-cn-coding-plan.md +0 -28
  22. package/.docs/models/providers/minimax-cn.md +0 -28
  23. package/.docs/models/providers/minimax-coding-plan.md +0 -28
  24. package/.docs/models/providers/minimax.md +1 -31
  25. package/.docs/models/providers/mistral.md +1 -31
  26. package/.docs/models/providers/nano-gpt.md +2 -5
  27. package/.docs/models/providers/neosmith.md +0 -28
  28. package/.docs/models/providers/openai.md +1 -31
  29. package/.docs/models/providers/orcarouter.md +2 -2
  30. package/.docs/models/providers/perplexity-agent.md +0 -28
  31. package/.docs/models/providers/perplexity.md +1 -31
  32. package/.docs/models/providers/subconscious.md +0 -28
  33. package/.docs/models/providers/thinkingmachines.md +0 -28
  34. package/.docs/models/providers/togetherai.md +1 -31
  35. package/.docs/models/providers/vivgrid.md +0 -28
  36. package/.docs/models/providers/xai.md +1 -31
  37. package/.docs/reference/client-js/datasets.md +56 -1
  38. package/.docs/reference/datasets/dataset.md +1 -0
  39. package/.docs/reference/datasets/datasets-manager.md +14 -0
  40. package/.docs/reference/datasets/deleteExperiment.md +47 -9
  41. package/.docs/reference/datasets/purgeItem.md +41 -0
  42. package/.docs/reference/index.md +1 -0
  43. package/.docs/reference/server/routes.md +44 -19
  44. package/package.json +5 -5
@@ -121,9 +121,9 @@ await dataset.addItems({
121
121
  })
122
122
  ```
123
123
 
124
- ## Updating and deleting items
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) let you modify or remove existing items by `itemId`:
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
- Every mutation to a dataset's items (add, update, or delete) bumps the dataset version. This lets you pin experiments to a specific snapshot of the data.
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. Authorization controls what they can access. Without resource ID scoping, an authenticated user could access other users' threads by guessing IDs or manipulating the `resourceId` parameter.
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
- // Org-scoped
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 owned by the user
171
- - **Validates thread access** and returns 403 if accessing another user's thread
172
- - **Forces thread creation** to use the authenticated user's ID
173
- - **Validates message operations** including deletion, ensuring messages belong to owned threads
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-user-id`, the auth-set value takes precedence. Attempts to access threads or messages owned by other users will return a 403 error.
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 native dependencies out of their processing pipelines:
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 logo](https://models.dev/logos/openrouter.svg)OpenRouter
6
6
 
7
- OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 358 models through Mastra's model router.
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` |
@@ -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 7098 models from 200 providers through a single API.
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 logo](https://models.dev/logos/302ai.svg)302.AI
6
6
 
7
- Access 97 302.AI models through Mastra's model router. Authentication is handled automatically using the `302AI_API_KEY` environment variable.
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/chatgpt-4o-latest` | 128K | | | | | | $5 | $15 |
42
- | `302ai/claude-3-5-haiku-20241022` | 200K | | | | | | $0.80 | $4 |
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-sonnet-4-20250514` | 200K | | | | | | $3 | $15 |
56
- | `302ai/claude-sonnet-4-5` | 200K | | | | | | $3 | $15 |
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/deepseek-chat` | 128K | | | | | | $0.29 | $0.43 |
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 | | | | | | $0.86 | $4 |
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.4-nano-2026-03-17` | 400K | | | | | | $0.20 | $1 |
111
- | `302ai/gpt-5.4-pro` | 1.1M | | | | | | $30 | $180 |
112
- | `302ai/grok-4-1-fast-non-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
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.20-multi-agent-beta-0309` | 2.0M | | | | | | $2 | $6 |
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-thinking-turbo` | 262K | | | | | | $1 | $9 |
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` | 1.0M | | | | | | $0.30 | $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-M2.7-highspeed` | 205K | | | | | | $0.60 | $5 |
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/qwen-flash` | 1.0M | | | | | | $0.02 | $0.22 |
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-2025-09-23"
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.03 | $0.10 |
115
- | `edenai/flexai/gpt-oss-120b` | 131K | | | | | | $0.04 | $0.10 |
116
- | `edenai/flexai/gpt-oss-20b` | 131K | | | | | | $0.02 | $0.10 |
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.76 | $0.76 |
141
- | `edenai/ionos/openai/gpt-oss-120b` | 131K | | | | | | $0.17 | $0.76 |
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.35 | $1 |
212
- | `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $3 |
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.41 |
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.19 | $0.70 |
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.47 | $2 |
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 |