@mastra/mcp-docs-server 1.1.8-alpha.0 → 1.1.9-alpha.0

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 (228) hide show
  1. package/.docs/docs/agents/agent-memory.md +2 -2
  2. package/.docs/docs/agents/guardrails.md +3 -3
  3. package/.docs/docs/agents/network-approval.md +4 -1
  4. package/.docs/docs/agents/networks.md +1 -1
  5. package/.docs/docs/agents/overview.md +1 -1
  6. package/.docs/docs/agents/processors.md +35 -17
  7. package/.docs/docs/agents/structured-output.md +1 -1
  8. package/.docs/docs/agents/using-tools.md +2 -2
  9. package/.docs/docs/build-with-ai/mcp-docs-server.md +4 -4
  10. package/.docs/docs/build-with-ai/skills.md +1 -1
  11. package/.docs/docs/community/discord.md +1 -1
  12. package/.docs/docs/community/licensing.md +1 -1
  13. package/.docs/docs/deployment/mastra-server.md +1 -1
  14. package/.docs/docs/deployment/studio.md +2 -2
  15. package/.docs/docs/deployment/web-framework.md +1 -1
  16. package/.docs/docs/evals/overview.md +1 -1
  17. package/.docs/docs/getting-started/build-with-ai.md +1 -1
  18. package/.docs/docs/getting-started/project-structure.md +1 -1
  19. package/.docs/docs/index.md +62 -16
  20. package/.docs/docs/mastra-cloud/deployment.md +1 -1
  21. package/.docs/docs/mastra-cloud/studio.md +1 -1
  22. package/.docs/docs/mcp/publishing-mcp-server.md +1 -1
  23. package/.docs/docs/memory/memory-processors.md +1 -1
  24. package/.docs/docs/memory/message-history.md +2 -2
  25. package/.docs/docs/memory/observational-memory.md +6 -2
  26. package/.docs/docs/memory/semantic-recall.md +2 -2
  27. package/.docs/docs/memory/storage.md +1 -1
  28. package/.docs/docs/memory/working-memory.md +6 -6
  29. package/.docs/docs/observability/tracing/bridges/otel.md +2 -2
  30. package/.docs/docs/observability/tracing/exporters/default.md +1 -1
  31. package/.docs/docs/observability/tracing/overview.md +4 -4
  32. package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +2 -2
  33. package/.docs/docs/rag/chunking-and-embedding.md +1 -1
  34. package/.docs/docs/rag/vector-databases.md +2 -2
  35. package/.docs/docs/server/auth/auth0.md +1 -1
  36. package/.docs/docs/server/auth/firebase.md +1 -1
  37. package/.docs/docs/server/auth/simple-auth.md +1 -1
  38. package/.docs/docs/server/auth.md +1 -1
  39. package/.docs/docs/server/mastra-client.md +1 -1
  40. package/.docs/docs/server/mastra-server.md +1 -1
  41. package/.docs/docs/server/server-adapters.md +2 -2
  42. package/.docs/docs/streaming/events.md +1 -1
  43. package/.docs/docs/streaming/overview.md +1 -1
  44. package/.docs/docs/streaming/tool-streaming.md +44 -30
  45. package/.docs/docs/streaming/workflow-streaming.md +1 -1
  46. package/.docs/docs/workflows/control-flow.md +44 -2
  47. package/.docs/docs/workflows/error-handling.md +1 -1
  48. package/.docs/docs/workflows/overview.md +3 -3
  49. package/.docs/docs/workflows/snapshots.md +1 -1
  50. package/.docs/docs/workflows/time-travel.md +2 -2
  51. package/.docs/docs/workspace/filesystem.md +2 -2
  52. package/.docs/docs/workspace/overview.md +52 -7
  53. package/.docs/docs/workspace/sandbox.md +72 -13
  54. package/.docs/docs/workspace/skills.md +2 -2
  55. package/.docs/guides/build-your-ui/copilotkit.md +1 -1
  56. package/.docs/guides/deployment/inngest.md +4 -4
  57. package/.docs/guides/guide/ai-recruiter.md +1 -1
  58. package/.docs/guides/guide/github-actions-pr-description.md +2 -2
  59. package/.docs/guides/guide/notes-mcp-server.md +1 -1
  60. package/.docs/guides/guide/stock-agent.md +2 -2
  61. package/.docs/guides/migrations/agentnetwork.md +1 -1
  62. package/.docs/guides/migrations/upgrade-to-v1/client.md +2 -2
  63. package/.docs/guides/migrations/upgrade-to-v1/deployment.md +1 -1
  64. package/.docs/guides/migrations/upgrade-to-v1/memory.md +2 -2
  65. package/.docs/guides/migrations/upgrade-to-v1/storage.md +1 -1
  66. package/.docs/guides/migrations/upgrade-to-v1/tools.md +2 -2
  67. package/.docs/guides/migrations/upgrade-to-v1/workflows.md +5 -5
  68. package/.docs/guides/migrations/vnext-to-standard-apis.md +2 -2
  69. package/.docs/models/gateways/netlify.md +1 -2
  70. package/.docs/models/gateways/openrouter.md +8 -1
  71. package/.docs/models/gateways/vercel.md +3 -1
  72. package/.docs/models/index.md +1 -1
  73. package/.docs/models/providers/abacus.md +21 -11
  74. package/.docs/models/providers/aihubmix.md +7 -2
  75. package/.docs/models/providers/alibaba-cn.md +80 -71
  76. package/.docs/models/providers/alibaba-coding-plan-cn.md +78 -0
  77. package/.docs/models/providers/alibaba-coding-plan.md +78 -0
  78. package/.docs/models/providers/chutes.md +1 -1
  79. package/.docs/models/providers/clarifai.md +81 -0
  80. package/.docs/models/providers/cloudferro-sherlock.md +5 -4
  81. package/.docs/models/providers/cloudflare-workers-ai.md +3 -2
  82. package/.docs/models/providers/cortecs.md +7 -5
  83. package/.docs/models/providers/deepinfra.md +7 -2
  84. package/.docs/models/providers/deepseek.md +1 -1
  85. package/.docs/models/providers/drun.md +73 -0
  86. package/.docs/models/providers/firmware.md +28 -20
  87. package/.docs/models/providers/google.md +3 -1
  88. package/.docs/models/providers/inception.md +4 -2
  89. package/.docs/models/providers/kilo.md +3 -1
  90. package/.docs/models/providers/nano-gpt.md +519 -40
  91. package/.docs/models/providers/nebius.md +34 -34
  92. package/.docs/models/providers/nvidia.md +4 -2
  93. package/.docs/models/providers/ollama-cloud.md +1 -2
  94. package/.docs/models/providers/openai.md +3 -1
  95. package/.docs/models/providers/opencode.md +36 -33
  96. package/.docs/models/providers/poe.md +8 -2
  97. package/.docs/models/providers/qiniu-ai.md +20 -5
  98. package/.docs/models/providers/requesty.md +17 -1
  99. package/.docs/models/providers/siliconflow-cn.md +7 -1
  100. package/.docs/models/providers/togetherai.md +1 -3
  101. package/.docs/models/providers/xai.md +28 -25
  102. package/.docs/models/providers/xiaomi.md +1 -1
  103. package/.docs/models/providers/zenmux.md +3 -1
  104. package/.docs/models/providers.md +4 -0
  105. package/.docs/reference/agents/getDefaultGenerateOptions.md +1 -1
  106. package/.docs/reference/agents/getDefaultOptions.md +1 -1
  107. package/.docs/reference/agents/getDefaultStreamOptions.md +1 -1
  108. package/.docs/reference/agents/getDescription.md +1 -1
  109. package/.docs/reference/agents/network.md +3 -1
  110. package/.docs/reference/ai-sdk/handle-chat-stream.md +2 -0
  111. package/.docs/reference/ai-sdk/handle-network-stream.md +2 -0
  112. package/.docs/reference/ai-sdk/network-route.md +2 -0
  113. package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +1 -1
  114. package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +1 -1
  115. package/.docs/reference/auth/auth0.md +3 -3
  116. package/.docs/reference/auth/firebase.md +1 -1
  117. package/.docs/reference/auth/workos.md +2 -2
  118. package/.docs/reference/cli/mastra.md +4 -4
  119. package/.docs/reference/client-js/mastra-client.md +1 -1
  120. package/.docs/reference/configuration.md +62 -6
  121. package/.docs/reference/core/getDeployer.md +1 -1
  122. package/.docs/reference/core/getLogger.md +1 -1
  123. package/.docs/reference/core/getScorer.md +2 -2
  124. package/.docs/reference/core/getServer.md +1 -1
  125. package/.docs/reference/core/getStorage.md +1 -1
  126. package/.docs/reference/core/getStoredAgentById.md +1 -1
  127. package/.docs/reference/core/getTelemetry.md +1 -1
  128. package/.docs/reference/core/getWorkflow.md +1 -1
  129. package/.docs/reference/core/listAgents.md +1 -1
  130. package/.docs/reference/core/listMCPServers.md +1 -1
  131. package/.docs/reference/core/listStoredAgents.md +1 -1
  132. package/.docs/reference/core/listVectors.md +1 -1
  133. package/.docs/reference/core/mastra-class.md +1 -1
  134. package/.docs/reference/core/setLogger.md +1 -1
  135. package/.docs/reference/core/setStorage.md +1 -1
  136. package/.docs/reference/datasets/dataset.md +1 -1
  137. package/.docs/reference/datasets/datasets-manager.md +1 -1
  138. package/.docs/reference/datasets/get.md +2 -2
  139. package/.docs/reference/datasets/getDetails.md +1 -1
  140. package/.docs/reference/datasets/listItems.md +1 -1
  141. package/.docs/reference/deployer/vercel.md +1 -1
  142. package/.docs/reference/evals/answer-relevancy.md +1 -1
  143. package/.docs/reference/evals/completeness.md +1 -1
  144. package/.docs/reference/evals/context-precision.md +3 -3
  145. package/.docs/reference/evals/context-relevance.md +1 -1
  146. package/.docs/reference/evals/hallucination.md +3 -9
  147. package/.docs/reference/evals/keyword-coverage.md +1 -1
  148. package/.docs/reference/evals/mastra-scorer.md +1 -1
  149. package/.docs/reference/evals/noise-sensitivity.md +2 -2
  150. package/.docs/reference/evals/textual-difference.md +1 -1
  151. package/.docs/reference/evals/tone-consistency.md +1 -1
  152. package/.docs/reference/evals/tool-call-accuracy.md +1 -1
  153. package/.docs/reference/harness/harness-class.md +4 -2
  154. package/.docs/reference/index.md +2 -0
  155. package/.docs/reference/memory/cloneThread.md +1 -1
  156. package/.docs/reference/memory/observational-memory.md +7 -5
  157. package/.docs/reference/observability/tracing/bridges/otel.md +1 -1
  158. package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +1 -1
  159. package/.docs/reference/observability/tracing/spans.md +2 -0
  160. package/.docs/reference/processors/message-history-processor.md +1 -1
  161. package/.docs/reference/processors/processor-interface.md +6 -2
  162. package/.docs/reference/processors/token-limiter-processor.md +2 -2
  163. package/.docs/reference/rag/metadata-filters.md +10 -10
  164. package/.docs/reference/server/create-route.md +2 -0
  165. package/.docs/reference/server/koa-adapter.md +1 -1
  166. package/.docs/reference/server/register-api-route.md +2 -2
  167. package/.docs/reference/storage/cloudflare-d1.md +3 -3
  168. package/.docs/reference/storage/cloudflare.md +1 -1
  169. package/.docs/reference/storage/convex.md +1 -1
  170. package/.docs/reference/storage/dynamodb.md +2 -2
  171. package/.docs/reference/storage/lance.md +2 -2
  172. package/.docs/reference/storage/mongodb.md +1 -1
  173. package/.docs/reference/storage/mssql.md +1 -1
  174. package/.docs/reference/storage/postgresql.md +2 -2
  175. package/.docs/reference/storage/upstash.md +1 -1
  176. package/.docs/reference/streaming/workflows/observeStream.md +1 -1
  177. package/.docs/reference/templates/overview.md +1 -1
  178. package/.docs/reference/tools/create-tool.md +1 -1
  179. package/.docs/reference/tools/mcp-server.md +4 -4
  180. package/.docs/reference/vectors/chroma.md +2 -2
  181. package/.docs/reference/vectors/couchbase.md +6 -6
  182. package/.docs/reference/vectors/pg.md +2 -0
  183. package/.docs/reference/vectors/s3vectors.md +5 -5
  184. package/.docs/reference/voice/azure.md +4 -2
  185. package/.docs/reference/voice/cloudflare.md +4 -2
  186. package/.docs/reference/voice/elevenlabs.md +1 -1
  187. package/.docs/reference/voice/google-gemini-live.md +2 -2
  188. package/.docs/reference/voice/google.md +3 -3
  189. package/.docs/reference/voice/mastra-voice.md +1 -1
  190. package/.docs/reference/voice/murf.md +2 -2
  191. package/.docs/reference/voice/openai-realtime.md +3 -1
  192. package/.docs/reference/voice/openai.md +7 -3
  193. package/.docs/reference/voice/playai.md +4 -2
  194. package/.docs/reference/voice/sarvam.md +3 -1
  195. package/.docs/reference/voice/speechify.md +6 -4
  196. package/.docs/reference/voice/voice.addInstructions.md +2 -2
  197. package/.docs/reference/voice/voice.addTools.md +1 -1
  198. package/.docs/reference/voice/voice.close.md +2 -2
  199. package/.docs/reference/voice/voice.connect.md +4 -2
  200. package/.docs/reference/voice/voice.events.md +2 -2
  201. package/.docs/reference/voice/voice.getSpeakers.md +1 -1
  202. package/.docs/reference/voice/voice.listen.md +11 -5
  203. package/.docs/reference/voice/voice.off.md +2 -2
  204. package/.docs/reference/voice/voice.on.md +2 -2
  205. package/.docs/reference/voice/voice.speak.md +14 -4
  206. package/.docs/reference/voice/voice.updateConfig.md +1 -1
  207. package/.docs/reference/workflows/run-methods/timeTravel.md +1 -1
  208. package/.docs/reference/workspace/blaxel-sandbox.md +164 -0
  209. package/.docs/reference/workspace/daytona-sandbox.md +48 -139
  210. package/.docs/reference/workspace/e2b-sandbox.md +39 -75
  211. package/.docs/reference/workspace/filesystem.md +24 -10
  212. package/.docs/reference/workspace/gcs-filesystem.md +20 -0
  213. package/.docs/reference/workspace/local-filesystem.md +23 -9
  214. package/.docs/reference/workspace/local-sandbox.md +23 -98
  215. package/.docs/reference/workspace/process-manager.md +296 -0
  216. package/.docs/reference/workspace/s3-filesystem.md +20 -0
  217. package/.docs/reference/workspace/sandbox.md +9 -1
  218. package/.docs/reference/workspace/workspace-class.md +93 -25
  219. package/CHANGELOG.md +16 -0
  220. package/dist/tools/course.d.ts +7 -27
  221. package/dist/tools/course.d.ts.map +1 -1
  222. package/dist/tools/docs.d.ts +6 -18
  223. package/dist/tools/docs.d.ts.map +1 -1
  224. package/dist/tools/embedded-docs.d.ts +12 -112
  225. package/dist/tools/embedded-docs.d.ts.map +1 -1
  226. package/dist/tools/migration.d.ts +6 -26
  227. package/dist/tools/migration.d.ts.map +1 -1
  228. package/package.json +9 -9
@@ -6,21 +6,19 @@ Sandbox providers give agents the ability to execute shell commands. When you co
6
6
 
7
7
  A sandbox provider executes commands in a controlled environment:
8
8
 
9
- - **Command execution** - Run shell commands with arguments
10
- - **Working directory** - Commands run from a specific directory
11
- - **Environment variables** - Control what variables are available
12
- - **Timeouts** - Prevent long-running commands from hanging
13
- - **Isolation** - Optional OS-level sandboxing for security
14
-
15
- When you assign a workspace with a sandbox to an agent, Mastra automatically includes the `execute_command` tool in the agent's toolset.
9
+ - **Command execution**: Run shell commands with arguments
10
+ - **Background processes**: Spawn long-running processes like dev servers and watchers
11
+ - **Working directory**: Commands run from a specific directory
12
+ - **Environment variables**: Control what variables are available
13
+ - **Timeouts**: Prevent long-running commands from hanging
14
+ - **Isolation**: Optional OS-level sandboxing for security
16
15
 
17
16
  ## Supported providers
18
17
 
19
- Available providers:
20
-
21
- - [`LocalSandbox`](https://mastra.ai/reference/workspace/local-sandbox) - Executes commands on the local machine
22
- - [`DaytonaSandbox`](https://mastra.ai/reference/workspace/daytona-sandbox) - Executes commands in isolated Daytona cloud sandboxes
23
- - [`E2BSandbox`](https://mastra.ai/reference/workspace/e2b-sandbox) - Executes commands in isolated E2B cloud sandboxes
18
+ - [`LocalSandbox`](https://mastra.ai/reference/workspace/local-sandbox): Executes commands on the local machine
19
+ - [`BlaxelSandbox`](https://mastra.ai/reference/workspace/blaxel-sandbox): Executes commands in isolated Blaxel cloud sandboxes
20
+ - [`DaytonaSandbox`](https://mastra.ai/reference/workspace/daytona-sandbox): Executes commands in isolated Daytona cloud sandboxes
21
+ - [`E2BSandbox`](https://mastra.ai/reference/workspace/e2b-sandbox): Executes commands in isolated E2B cloud sandboxes
24
22
 
25
23
  ## Basic usage
26
24
 
@@ -54,10 +52,71 @@ See [`LocalSandbox` reference](https://mastra.ai/reference/workspace/local-sandb
54
52
 
55
53
  ## Agent tools
56
54
 
57
- When you configure a sandbox on a workspace, agents receive the `execute_command` tool for running shell commands. See [workspace class reference](https://mastra.ai/reference/workspace/workspace-class) for details.
55
+ When you configure a sandbox on a workspace, agents receive the `execute_command` tool for running shell commands.
56
+
57
+ If your sandbox provider supports running processes in the background, the `execute_command` tool also accepts `background: true` for starting long-running processes, and two additional tools are registered:
58
+
59
+ | Tool | Description |
60
+ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
61
+ | `execute_command` | Run a shell command. Returns stdout, stderr, and exit code. Supports `background: true` to spawn a long-running process and return a PID. |
62
+ | `get_process_output` | Get stdout, stderr, and status of a background process by PID. Supports `tail` to limit output lines and `wait: true` to block until exit. |
63
+ | `kill_process` | Stop a background process by PID. Returns recent output. |
64
+
65
+ These tools are registered automatically. See [Workspace class reference](https://mastra.ai/reference/workspace/workspace-class) for the full tool name list.
66
+
67
+ ## Background process callbacks
68
+
69
+ When agents start background processes through the `execute_command` tool, you can receive lifecycle callbacks for stdout, stderr, and process exit. Configure these through the `backgroundProcesses` option on the `execute_command` tool:
70
+
71
+ ```typescript
72
+ import { Workspace, LocalSandbox, WORKSPACE_TOOLS } from '@mastra/core/workspace'
73
+
74
+ const workspace = new Workspace({
75
+ sandbox: new LocalSandbox({ workingDirectory: './workspace' }),
76
+ tools: {
77
+ [WORKSPACE_TOOLS.SANDBOX.EXECUTE_COMMAND]: {
78
+ backgroundProcesses: {
79
+ onStdout: (data, { pid }) => console.log(`[${pid}] ${data}`),
80
+ onStderr: (data, { pid }) => console.error(`[${pid}] ${data}`),
81
+ onExit: ({ pid, exitCode }) => console.log(`Process ${pid} exited: ${exitCode}`),
82
+ },
83
+ },
84
+ },
85
+ })
86
+ ```
87
+
88
+ These callbacks fire for all background processes started by the agent through the `execute_command` tool.
89
+
90
+ ### Abort signal
91
+
92
+ By default, background processes inherit the agent's abort signal and are killed when the agent disconnects. Control this behavior with the `abortSignal` option:
93
+
94
+ - **`undefined`** (default): Uses the agent's abort signal
95
+ - **`AbortSignal`**: Uses a custom signal
96
+ - **`null` or `false`**: Disables abort — processes persist after agent shutdown
97
+
98
+ ```typescript
99
+ import { Workspace, LocalSandbox, WORKSPACE_TOOLS } from '@mastra/core/workspace'
100
+
101
+ const workspace = new Workspace({
102
+ sandbox: new LocalSandbox({ workingDirectory: './workspace' }),
103
+ tools: {
104
+ [WORKSPACE_TOOLS.SANDBOX.EXECUTE_COMMAND]: {
105
+ backgroundProcesses: {
106
+ abortSignal: null, // Processes survive agent disconnection
107
+ },
108
+ },
109
+ },
110
+ })
111
+ ```
112
+
113
+ Use `null` or `false` for cloud sandboxes (for example, E2B or Daytona) where processes should outlive the agent.
114
+
115
+ > **Note:** For the full `SandboxProcessManager` API (spawning processes programmatically, reading output, sending stdin), see the [`SandboxProcessManager` reference](https://mastra.ai/reference/workspace/process-manager).
58
116
 
59
117
  ## Related
60
118
 
119
+ - [`SandboxProcessManager` reference](https://mastra.ai/reference/workspace/process-manager)
61
120
  - [`LocalSandbox` reference](https://mastra.ai/reference/workspace/local-sandbox)
62
121
  - [`DaytonaSandbox` reference](https://mastra.ai/reference/workspace/daytona-sandbox)
63
122
  - [`E2BSandbox` reference](https://mastra.ai/reference/workspace/e2b-sandbox)
@@ -123,7 +123,7 @@ The agent has three skill tools:
123
123
 
124
124
  - **`skill`** — Loads a skill's full instructions and returns them in the tool result. The agent calls this whenever it needs a skill's guidance.
125
125
  - **`skill_read`** — Reads a file from a skill's `references/`, `scripts/`, or `assets/` directory.
126
- - **`skill_search`** — Searches across all skill content. Uses BM25 or vector search when configured, otherwise falls back to simple text matching.
126
+ - **`skill_search`** — Searches across all skill content. Uses BM25 or vector search when configured, otherwise falls back to basic text matching.
127
127
 
128
128
  This design is stateless — there is no activation state to track. If the skill instructions leave the conversation context (due to context window limits or compaction), the agent can call `skill` again to reload them.
129
129
 
@@ -162,7 +162,7 @@ const workspace = new Workspace({
162
162
  - **`blobStore`** (`BlobStore`) — A content-addressable blob store instance that holds the actual file contents referenced by hash.
163
163
  - **`versionCreatedAt`** (`Date`) — The timestamp when this skill version was published. Used as the modification time for all files in the version.
164
164
 
165
- When `skillSource` is provided, it is used instead of the workspace filesystem for skill discovery.
165
+ When `skillSource` is provided, it's used instead of the workspace filesystem for skill discovery.
166
166
 
167
167
  ## Related
168
168
 
@@ -274,7 +274,7 @@ Congratulations! You have successfully integrated Mastra with CopilotKit using a
274
274
 
275
275
  ## Deployment
276
276
 
277
- When deploying your Mastra server with CopilotKit, you must exclude `@copilotkit/runtime` from the bundle. This package contains dependencies that are not compatible with bundling and will cause 500 errors if included.
277
+ When deploying your Mastra server with CopilotKit, you must exclude `@copilotkit/runtime` from the bundle. This package contains dependencies that aren't compatible with bundling and will cause 500 errors if included.
278
278
 
279
279
  > **Note:** This issue doesn't occur during development with `mastra dev` since it doesn't require bundling. However, anyone running `mastra build` for deployment will encounter this issue.
280
280
 
@@ -105,7 +105,7 @@ const incrementStep = createStep({
105
105
 
106
106
  ### Creating the workflow
107
107
 
108
- Compose the steps into a workflow using the `dountil` loop pattern. The `createWorkflow()` function creates a function on Inngest server that is invocable.
108
+ Compose the steps into a workflow using the `dountil` loop pattern. The `createWorkflow()` function creates a function on Inngest server that's invocable.
109
109
 
110
110
  ```ts
111
111
  // workflow that is registered as a function on inngest server
@@ -169,7 +169,7 @@ export const mastra = new Mastra({
169
169
 
170
170
  3. Open the Inngest Dashboard at <http://localhost:8288> and go to the **Apps** section in the sidebar to verify your Mastra workflow is registered
171
171
 
172
- 4. Invoke the workflow by going to **Functions**, selecting your workflow, and clicking **Invoke** with the following input:
172
+ 4. Invoke the workflow by going to **Functions**, selecting your workflow, and selecting **Invoke** with the following input:
173
173
 
174
174
  ```json
175
175
  {
@@ -227,9 +227,9 @@ Before you begin, make sure you have:
227
227
  vercel --prod
228
228
  ```
229
229
 
230
- 5. Sync with the [Inngest dashboard](https://app.inngest.com/env/production/apps) by clicking **Sync new app with Vercel** and following the instructions
230
+ 5. Sync with the [Inngest dashboard](https://app.inngest.com/env/production/apps) by selecting **Sync new app with Vercel** and following the instructions
231
231
 
232
- 6. Invoke the workflow by going to **Functions**, selecting `workflow.increment-workflow`, clicking **All actions** > **Invoke**, and providing the following input:
232
+ 6. Invoke the workflow by going to **Functions**, selecting `workflow.increment-workflow`, selecting **All actions** > **Invoke**, and providing the following input:
233
233
 
234
234
  ```json
235
235
  {
@@ -223,4 +223,4 @@ Now, run the workflow and get output in your terminal:
223
223
  npx tsx src/test-workflow.ts
224
224
  ```
225
225
 
226
- You've just built a workflow to parse a resume and decide which question to ask based on the candidate's technical abilities. Congrats and happy hacking!
226
+ You've built a workflow to parse a resume and decide which question to ask based on the candidate's technical abilities. Congrats and happy hacking!
@@ -10,7 +10,7 @@ The setup consists of three parts:
10
10
  - A GitHub Actions workflow that triggers on pull requests
11
11
  - A Node.js script that connects the workflow to the agent
12
12
 
13
- The finished action writes a description with summaries in English, Spanish, and Japanese, each marked with a flag emoji for easy scanning. For example:
13
+ The finished action writes a description with summaries in English, Spanish, and Japanese, each marked with a flag emoji for quick scanning. For example:
14
14
 
15
15
  ```text
16
16
  🇬🇧 English
@@ -49,7 +49,7 @@ The workflow references this secret as `${{ secrets.OPENAI_API_KEY }}` and makes
49
49
 
50
50
  The PR description agent is responsible for turning a git diff into a clear, reviewer-friendly pull request description.
51
51
 
52
- This agent receives the raw diff from a pull request. It generates descriptions in the configured languages and formats the output using emoji flags so each language section is easy to scan in the PR.
52
+ This agent receives the raw diff from a pull request. It generates descriptions in the configured languages and formats the output using emoji flags so each language section is quick to scan in the PR.
53
53
 
54
54
  ```ts
55
55
  import { Agent } from '@mastra/core/agent'
@@ -413,4 +413,4 @@ Open [`http://localhost:4111`](http://localhost:4111) in your browser. In the le
413
413
 
414
414
  You'll now be presented with instructions on how to add the MCP server to your IDE. You're able to use this MCP server with any MCP Client. On the right side under **Available Tools** you can also select the **write** tool.
415
415
 
416
- Inside the **write** tool, try it out by providing `test` as a name and `this is a test` for the markdown content. After clicking on **Submit** you'll have a new `test.md` file inside `notes`.
416
+ Inside the **write** tool, try it out by providing `test` as a name and `this is a test` for the markdown content. After selecting **Submit** you'll have a new `test.md` file inside `notes`.
@@ -1,6 +1,6 @@
1
1
  # Building an AI Stock Agent
2
2
 
3
- In this guide, you're going to create a simple agent that fetches the last day's closing stock price for a given symbol. You'll learn how to create a tool, add it to an agent, and use the agent to fetch stock prices.
3
+ In this guide, you're going to create an agent that fetches the last day's closing stock price for a given symbol. You'll learn how to create a tool, add it to an agent, and use the agent to fetch stock prices.
4
4
 
5
5
  [YouTube video player](https://www.youtube-nocookie.com/embed/rIaZ4l7y9wo)
6
6
 
@@ -41,7 +41,7 @@ To create an agent in Mastra use the `Agent` class to define it and then registe
41
41
 
42
42
  ## Creating the Stock Price Tool
43
43
 
44
- So far the Stock Agent doesn't know anything about the current stock prices. To change this, create a tool and add it to the agent.
44
+ The Stock Agent doesn't yet know anything about current stock prices. To change this, create a tool and add it to the agent.
45
45
 
46
46
  1. Create a new file `src/mastra/tools/stockPrices.ts`. Inside, add a `stockPrices` tool that will fetch the last day's closing stock price for a given symbol:
47
47
 
@@ -6,7 +6,7 @@ As of `v0.20.0` for `@mastra/core`, the following changes apply.
6
6
 
7
7
  - Bump all your model provider packages by a major version.
8
8
 
9
- > **Note:** This will ensure that they are all v5 models now.
9
+ > **Note:** This will ensure that they're all v5 models now.
10
10
 
11
11
  ## Memory is required
12
12
 
@@ -271,9 +271,9 @@ To migrate, use workflow streaming APIs instead of watch.
271
271
  + }
272
272
  ```
273
273
 
274
- ### Run-related methods cannot be called directly on workflow instance
274
+ ### Run-related methods can't be called directly on workflow instance
275
275
 
276
- Run-related methods cannot be called directly on workflow instance. You need to create a run instance first using `createRun()` method.
276
+ Run-related methods can't be called directly on workflow instance. You need to create a run instance first using `createRun()` method.
277
277
 
278
278
  ```diff
279
279
  - const result = await workflow.start({ runId: '123', inputData: { ... } });
@@ -32,6 +32,6 @@ const deployer = new CloudflareDeployer({
32
32
  });
33
33
  ```
34
34
 
35
- The `workerNamespace` field has been removed as it is no longer used.
35
+ The `workerNamespace` field has been removed as it's no longer used.
36
36
 
37
37
  For all available configuration options, see the [Wrangler configuration documentation](https://developers.cloudflare.com/workers/wrangler/configuration/).
@@ -29,7 +29,7 @@ const memory = new Memory({
29
29
 
30
30
  ### Default memory scope from `thread` to `resource`
31
31
 
32
- The default scope for both working memory and semantic recall has changed from `'thread'` to `'resource'`. This change aligns with common use cases where applications want to remember user information across conversations. When semantic recall is enabled, it now defaults to searching across all user conversations rather than just the current thread.
32
+ The default scope for both working memory and semantic recall has changed from `'thread'` to `'resource'`. This change aligns with common use cases where applications want to remember user information across conversations. When semantic recall is enabled, it now defaults to searching across all user conversations rather than the current thread.
33
33
 
34
34
  To migrate, if you want to maintain the old behavior where memory is isolated per conversation thread, explicitly set `scope: 'thread'`.
35
35
 
@@ -119,7 +119,7 @@ agent.stream('Hello', {
119
119
 
120
120
  ### `Memory.query()` renamed to `Memory.recall()`
121
121
 
122
- The `Memory.query()` method has been renamed to `Memory.recall()`. The new method returns a simpler format with just `{ messages: MastraDBMessage[] }` instead of multiple format variations. This change better describes the action of retrieving messages from memory and simplifies the API.
122
+ The `Memory.query()` method has been renamed to `Memory.recall()`. The new method returns a simpler format with `{ messages: MastraDBMessage[] }` instead of multiple format variations. This change better describes the action of retrieving messages from memory and simplifies the API.
123
123
 
124
124
  To migrate, rename `query()` to `recall()` and update code that expects the old return format.
125
125
 
@@ -23,7 +23,7 @@ ALTER TABLE mastra_scorers DROP COLUMN "runtimeContext";
23
23
 
24
24
  ### Duplicate spans migration
25
25
 
26
- If you're upgrading from an older version of Mastra, you may have duplicate `(traceId, spanId)` entries in your `mastra_spans` table. V1 adds a unique constraint on these columns to ensure data integrity, but this constraint cannot be added if duplicates exist.
26
+ If you're upgrading from an older version of Mastra, you may have duplicate `(traceId, spanId)` entries in your `mastra_spans` table. V1 adds a unique constraint on these columns to ensure data integrity, but this constraint can't be added if duplicates exist.
27
27
 
28
28
  > **Who needs this migration:** Only if you have existing spans data from Mastra versions prior to v1 and encounter errors about duplicate key violations or constraint creation failures.
29
29
 
@@ -8,7 +8,7 @@ Tool execution signatures have been updated to use separate input and context pa
8
8
 
9
9
  All `createTool` execute functions now use a new signature with separate `inputData` and `context` parameters instead of a single destructured object. This change provides clearer separation between tool inputs and execution context.
10
10
 
11
- **Note:** This change only applies to `createTool`. If you're using `createStep` for workflows, the signature remains `async (inputData, context)` and does not need to be changed.
11
+ **Note:** This change only applies to `createTool`. If you're using `createStep` for workflows, the signature remains `async (inputData, context)` and doesn't need to be changed.
12
12
 
13
13
  To migrate, update `createTool` signatures to use `inputData` as the first parameter (typed from `inputSchema`) and `context` as the second parameter.
14
14
 
@@ -80,7 +80,7 @@ createTool({
80
80
 
81
81
  The `suspendPayload` gets validated against the `suspendSchema` when the tool is executed. If the suspendPayload doesn't match the `suspendSchema`, a warning is logged and the error is returned as tool output, but suspension continues. Also, when the tool is resumed, the `resumeData` gets validated against the `resumeSchema`. If the resumeData doesn't match the `resumeSchema`, the tool will return a `ValidationError`, preventing the tool resumption.
82
82
 
83
- To skip the `suspendSchema` or `resumeSchema` validation, do not define `suspendSchema` or `resumeSchema` in the tool creation.
83
+ To skip the `suspendSchema` or `resumeSchema` validation, don't define `suspendSchema` or `resumeSchema` in the tool creation.
84
84
 
85
85
  > **Note:** For MCP-specific tool context changes, see the [MCP migration guide](https://mastra.ai/guides/migrations/upgrade-to-v1/mcp).
86
86
 
@@ -84,7 +84,7 @@ createStep({
84
84
 
85
85
  ### `getInitData` returns unknown
86
86
 
87
- The `getInitData` function in the execute function now returns unknown instead of any. You'll need to type it yourself. To simply migrate, change `getInitData()` into `getInitData<any>()`
87
+ The `getInitData` function in the execute function now returns unknown instead of any. You'll need to type it yourself. To migrate, change `getInitData()` into `getInitData<any>()`
88
88
 
89
89
  ```diff
90
90
  createStep({
@@ -198,7 +198,7 @@ const run = await workflow.createRun();
198
198
  + });
199
199
  ```
200
200
 
201
- > **Note:** The `writer` parameter passed to step `execute` functions is not affected by this change. It remains a `ToolStream` that extends `WritableStream<unknown>` and provides `.write()` and `.custom()` methods:
201
+ > **Note:** The `writer` parameter passed to step `execute` functions isn't affected by this change. It remains a `ToolStream` that extends `WritableStream<unknown>` and provides `.write()` and `.custom()` methods:
202
202
  >
203
203
  > ```ts
204
204
  > createStep({
@@ -240,9 +240,9 @@ See [`Run.stream()`](https://mastra.ai/reference/streaming/workflows/stream), [`
240
240
  > npx @mastra/codemod@latest v1/workflow-stream-vnext .
241
241
  > ```
242
242
 
243
- ### `suspend` and `setState` are not available in step condition functions parameters
243
+ ### `suspend` and `setState` aren't available in step condition functions parameters
244
244
 
245
- The `suspend` and `setState` functions are not available in step condition functions parameters.
245
+ The `suspend` and `setState` functions aren't available in step condition functions parameters.
246
246
 
247
247
  To migrate, use the `suspend` function in the step execute function instead.
248
248
 
@@ -260,7 +260,7 @@ This is the same for `dountil` and `branch` condition functions parameters.
260
260
 
261
261
  The `./workflows/legacy` export path has been removed from `@mastra/core`. Legacy workflows are no longer supported.
262
262
 
263
- To migrate, use the new workflow API. There is no direct migration path from legacy workflows.
263
+ To migrate, use the new workflow API. No direct migration path exists from legacy workflows.
264
264
 
265
265
  ```diff
266
266
  - import { LegacyWorkflow } from '@mastra/core/workflows/legacy';
@@ -40,7 +40,7 @@ Choose the migration path that fits your needs:
40
40
 
41
41
  - Bump all your model provider packages by a major version.
42
42
 
43
- > This will ensure that they are all v5 models now. Follow the guide below to understand the key differences and update your code accordingly.
43
+ > This will ensure that they're all v5 models now. Follow the guide below to understand the key differences and update your code accordingly.
44
44
 
45
45
  ## Key differences
46
46
 
@@ -306,7 +306,7 @@ The following options are available in the standard `.stream()` and `generate()`
306
306
 
307
307
  - `output`
308
308
 
309
- The `output` property is deprecated in favor of `structuredOutput`, to achieve the same results, omit the model and only pass `structuredOutput.schema`, optionally add `jsonPromptInjection: true` if your model does not natively support `response_format`.
309
+ The `output` property is deprecated in favor of `structuredOutput`, to achieve the same results, omit the model and only pass `structuredOutput.schema`, optionally add `jsonPromptInjection: true` if your model doesn't natively support `response_format`.
310
310
 
311
311
  ```typescript
312
312
  const result = await agent.generate(messages, {
@@ -1,6 +1,6 @@
1
1
  # Netlify
2
2
 
3
- Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 60 models through Mastra's model router.
3
+ Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 59 models through Mastra's model router.
4
4
 
5
5
  Learn more in the [Netlify documentation](https://docs.netlify.com/build/ai-gateway/overview/).
6
6
 
@@ -57,7 +57,6 @@ ANTHROPIC_API_KEY=ant-...
57
57
  | `gemini/gemini-2.5-pro` |
58
58
  | `gemini/gemini-3-flash-preview` |
59
59
  | `gemini/gemini-3-pro-image-preview` |
60
- | `gemini/gemini-3-pro-preview` |
61
60
  | `gemini/gemini-3.1-flash-image-preview` |
62
61
  | `gemini/gemini-3.1-flash-lite-preview` |
63
62
  | `gemini/gemini-3.1-pro-preview` |
@@ -1,6 +1,6 @@
1
1
  # ![OpenRouter logo](https://models.dev/logos/openrouter.svg)OpenRouter
2
2
 
3
- OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 186 models through Mastra's model router.
3
+ OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 193 models through Mastra's model router.
4
4
 
5
5
  Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
6
6
 
@@ -91,6 +91,9 @@ ANTHROPIC_API_KEY=ant-...
91
91
  | `google/gemma-3n-e2b-it:free` |
92
92
  | `google/gemma-3n-e4b-it` |
93
93
  | `google/gemma-3n-e4b-it:free` |
94
+ | `inception/mercury` |
95
+ | `inception/mercury-2` |
96
+ | `inception/mercury-coder` |
94
97
  | `kwaipilot/kat-coder-pro:free` |
95
98
  | `liquid/lfm-2.5-1.2b-instruct:free` |
96
99
  | `liquid/lfm-2.5-1.2b-thinking:free` |
@@ -153,6 +156,9 @@ ANTHROPIC_API_KEY=ant-...
153
156
  | `openai/gpt-5.2-chat` |
154
157
  | `openai/gpt-5.2-codex` |
155
158
  | `openai/gpt-5.2-pro` |
159
+ | `openai/gpt-5.3-codex` |
160
+ | `openai/gpt-5.4` |
161
+ | `openai/gpt-5.4-pro` |
156
162
  | `openai/gpt-oss-120b` |
157
163
  | `openai/gpt-oss-120b:exacto` |
158
164
  | `openai/gpt-oss-120b:free` |
@@ -161,6 +167,7 @@ ANTHROPIC_API_KEY=ant-...
161
167
  | `openai/gpt-oss-safeguard-20b` |
162
168
  | `openai/o4-mini` |
163
169
  | `openrouter/aurora-alpha` |
170
+ | `openrouter/free` |
164
171
  | `openrouter/sherlock-dash-alpha` |
165
172
  | `openrouter/sherlock-think-alpha` |
166
173
  | `prime-intellect/intellect-3` |
@@ -1,6 +1,6 @@
1
1
  # ![Vercel logo](https://models.dev/logos/vercel.svg)Vercel
2
2
 
3
- Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 199 models through Mastra's model router.
3
+ Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 201 models through Mastra's model router.
4
4
 
5
5
  Learn more in the [Vercel documentation](https://ai-sdk.dev/providers/ai-sdk-providers).
6
6
 
@@ -104,6 +104,8 @@ ANTHROPIC_API_KEY=ant-...
104
104
  | `google/gemini-3-flash` |
105
105
  | `google/gemini-3-pro-image` |
106
106
  | `google/gemini-3-pro-preview` |
107
+ | `google/gemini-3.1-flash-image-preview` |
108
+ | `google/gemini-3.1-flash-lite-preview` |
107
109
  | `google/gemini-3.1-pro-preview` |
108
110
  | `google/gemini-embedding-001` |
109
111
  | `google/imagen-4.0-fast-generate-001` |
@@ -1,6 +1,6 @@
1
1
  # Model Providers
2
2
 
3
- Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 2613 models from 88 providers through a single API.
3
+ Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 3229 models from 92 providers through a single API.
4
4
 
5
5
  ## Features
6
6
 
@@ -1,6 +1,6 @@
1
1
  # ![Abacus logo](https://models.dev/logos/abacus.svg)Abacus
2
2
 
3
- Access 55 Abacus models through Mastra's model router. Authentication is handled automatically using the `ABACUS_API_KEY` environment variable.
3
+ Access 65 Abacus models through Mastra's model router. Authentication is handled automatically using the `ABACUS_API_KEY` environment variable.
4
4
 
5
5
  Learn more in the [Abacus documentation](https://abacus.ai).
6
6
 
@@ -39,43 +39,52 @@ for await (const chunk of stream) {
39
39
  | `abacus/claude-opus-4-1-20250805` | 200K | | | | | | $15 | $75 |
40
40
  | `abacus/claude-opus-4-20250514` | 200K | | | | | | $15 | $75 |
41
41
  | `abacus/claude-opus-4-5-20251101` | 200K | | | | | | $5 | $25 |
42
+ | `abacus/claude-opus-4-6` | 200K | | | | | | $5 | $25 |
42
43
  | `abacus/claude-sonnet-4-20250514` | 200K | | | | | | $3 | $15 |
43
44
  | `abacus/claude-sonnet-4-5-20250929` | 200K | | | | | | $3 | $15 |
45
+ | `abacus/claude-sonnet-4-6` | 200K | | | | | | $3 | $15 |
44
46
  | `abacus/deepseek-ai/DeepSeek-R1` | 128K | | | | | | $3 | $7 |
45
47
  | `abacus/deepseek-ai/DeepSeek-V3.1-Terminus` | 128K | | | | | | $0.27 | $1 |
46
48
  | `abacus/deepseek-ai/DeepSeek-V3.2` | 128K | | | | | | $0.27 | $0.40 |
47
- | `abacus/deepseek/deepseek-v3.1` | 128K | | | | | | $0.14 | $0.28 |
48
- | `abacus/gemini-2.0-flash-001` | 1.0M | | | | | | $0.10 | $0.40 |
49
- | `abacus/gemini-2.0-pro-exp-02-05` | 2.0M | | | | | | — | — |
49
+ | `abacus/deepseek/deepseek-v3.1` | 128K | | | | | | $0.55 | $2 |
50
50
  | `abacus/gemini-2.5-flash` | 1.0M | | | | | | $0.30 | $3 |
51
51
  | `abacus/gemini-2.5-pro` | 1.0M | | | | | | $1 | $10 |
52
52
  | `abacus/gemini-3-flash-preview` | 1.0M | | | | | | $0.50 | $3 |
53
- | `abacus/gemini-3-pro-preview` | 1.0M | | | | | | $2 | $12 |
53
+ | `abacus/gemini-3.1-flash-lite-preview` | 1.0M | | | | | | $0.25 | $2 |
54
+ | `abacus/gemini-3.1-pro-preview` | 1.0M | | | | | | $2 | $12 |
54
55
  | `abacus/gpt-4.1` | 1.0M | | | | | | $2 | $8 |
55
56
  | `abacus/gpt-4.1-mini` | 1.0M | | | | | | $0.40 | $2 |
56
57
  | `abacus/gpt-4.1-nano` | 1.0M | | | | | | $0.10 | $0.40 |
57
58
  | `abacus/gpt-4o-2024-11-20` | 128K | | | | | | $3 | $10 |
58
59
  | `abacus/gpt-4o-mini` | 128K | | | | | | $0.15 | $0.60 |
59
60
  | `abacus/gpt-5` | 400K | | | | | | $1 | $10 |
61
+ | `abacus/gpt-5-codex` | 400K | | | | | | $1 | $10 |
60
62
  | `abacus/gpt-5-mini` | 400K | | | | | | $0.25 | $2 |
61
63
  | `abacus/gpt-5-nano` | 400K | | | | | | $0.05 | $0.40 |
62
64
  | `abacus/gpt-5.1` | 400K | | | | | | $1 | $10 |
63
65
  | `abacus/gpt-5.1-chat-latest` | 400K | | | | | | $1 | $10 |
66
+ | `abacus/gpt-5.1-codex` | 400K | | | | | | $1 | $10 |
67
+ | `abacus/gpt-5.1-codex-max` | 400K | | | | | | $1 | $10 |
64
68
  | `abacus/gpt-5.2` | 400K | | | | | | $2 | $14 |
65
- | `abacus/gpt-5.2-chat-latest` | 400K | | | | | | $2 | $12 |
69
+ | `abacus/gpt-5.2-chat-latest` | 400K | | | | | | $2 | $14 |
70
+ | `abacus/gpt-5.2-codex` | 400K | | | | | | $2 | $14 |
71
+ | `abacus/gpt-5.3-chat-latest` | 400K | | | | | | $2 | $14 |
72
+ | `abacus/gpt-5.3-codex` | 400K | | | | | | $2 | $14 |
73
+ | `abacus/gpt-5.3-codex-xhigh` | 400K | | | | | | $2 | $14 |
74
+ | `abacus/gpt-5.4` | 1.1M | | | | | | $3 | $15 |
66
75
  | `abacus/grok-4-0709` | 256K | | | | | | $3 | $15 |
67
76
  | `abacus/grok-4-1-fast-non-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
68
77
  | `abacus/grok-4-fast-non-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
69
78
  | `abacus/grok-code-fast-1` | 256K | | | | | | $0.20 | $2 |
70
79
  | `abacus/kimi-k2-turbo-preview` | 256K | | | | | | $0.15 | $8 |
80
+ | `abacus/kimi-k2.5` | 262K | | | | | | $0.60 | $3 |
71
81
  | `abacus/llama-3.3-70b-versatile` | 128K | | | | | | $0.59 | $0.79 |
72
82
  | `abacus/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8` | 1.0M | | | | | | $0.14 | $0.59 |
73
83
  | `abacus/meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo` | 128K | | | | | | $4 | $4 |
74
- | `abacus/meta-llama/Meta-Llama-3.1-70B-Instruct` | 128K | | | | | | $0.40 | $0.40 |
75
84
  | `abacus/meta-llama/Meta-Llama-3.1-8B-Instruct` | 128K | | | | | | $0.02 | $0.05 |
76
85
  | `abacus/o3` | 200K | | | | | | $2 | $8 |
77
86
  | `abacus/o3-mini` | 200K | | | | | | $1 | $4 |
78
- | `abacus/o3-pro` | 200K | | | | | | $20 | $80 |
87
+ | `abacus/o3-pro` | 200K | | | | | | $20 | $40 |
79
88
  | `abacus/o4-mini` | 200K | | | | | | $1 | $4 |
80
89
  | `abacus/openai/gpt-oss-120b` | 128K | | | | | | $0.08 | $0.44 |
81
90
  | `abacus/qwen-2.5-coder-32b` | 128K | | | | | | $0.79 | $0.79 |
@@ -85,10 +94,11 @@ for await (const chunk of stream) {
85
94
  | `abacus/Qwen/qwen3-coder-480b-a35b-instruct` | 262K | | | | | | $0.29 | $1 |
86
95
  | `abacus/Qwen/QwQ-32B` | 33K | | | | | | $0.40 | $0.40 |
87
96
  | `abacus/qwen3-max` | 131K | | | | | | $1 | $6 |
88
- | `abacus/route-llm` | 128K | | | | | | $0.50 | $2 |
97
+ | `abacus/route-llm` | 128K | | | | | | $3 | $15 |
89
98
  | `abacus/zai-org/glm-4.5` | 128K | | | | | | $0.60 | $2 |
90
99
  | `abacus/zai-org/glm-4.6` | 128K | | | | | | $0.60 | $2 |
91
- | `abacus/zai-org/glm-4.7` | 128K | | | | | | $0.70 | $3 |
100
+ | `abacus/zai-org/glm-4.7` | 128K | | | | | | $0.60 | $2 |
101
+ | `abacus/zai-org/glm-5` | 205K | | | | | | $1 | $3 |
92
102
 
93
103
  ## Advanced Configuration
94
104
 
@@ -118,7 +128,7 @@ const agent = new Agent({
118
128
  model: ({ requestContext }) => {
119
129
  const useAdvanced = requestContext.task === "complex";
120
130
  return useAdvanced
121
- ? "abacus/zai-org/glm-4.7"
131
+ ? "abacus/zai-org/glm-5"
122
132
  : "abacus/Qwen/QwQ-32B";
123
133
  }
124
134
  });
@@ -1,6 +1,6 @@
1
1
  # ![AIHubMix logo](https://models.dev/logos/aihubmix.svg)AIHubMix
2
2
 
3
- Access 43 AIHubMix models through Mastra's model router. Authentication is handled automatically using the `AIHUBMIX_API_KEY` environment variable.
3
+ Access 48 AIHubMix models through Mastra's model router. Authentication is handled automatically using the `AIHUBMIX_API_KEY` environment variable.
4
4
 
5
5
  Learn more in the [AIHubMix documentation](https://docs.aihubmix.com).
6
6
 
@@ -44,6 +44,7 @@ for await (const chunk of stream) {
44
44
  | `aihubmix/claude-sonnet-4-6-think` | 200K | | | | | | $3 | $15 |
45
45
  | `aihubmix/coding-glm-4.7` | 205K | | | | | | $0.27 | $1 |
46
46
  | `aihubmix/coding-glm-4.7-free` | 205K | | | | | | — | — |
47
+ | `aihubmix/coding-glm-5-free` | 205K | | | | | | — | — |
47
48
  | `aihubmix/coding-minimax-m2.1-free` | 205K | | | | | | — | — |
48
49
  | `aihubmix/deepseek-v3.2` | 131K | | | | | | $0.30 | $0.45 |
49
50
  | `aihubmix/deepseek-v3.2-fast` | 128K | | | | | | $1 | $3 |
@@ -54,6 +55,7 @@ for await (const chunk of stream) {
54
55
  | `aihubmix/gemini-3-pro-preview-search` | 1.0M | | | | | | $2 | $12 |
55
56
  | `aihubmix/glm-4.6v` | 128K | | | | | | $0.14 | $0.41 |
56
57
  | `aihubmix/glm-4.7` | 205K | | | | | | $0.27 | $1 |
58
+ | `aihubmix/glm-5` | 205K | | | | | | $0.88 | $3 |
57
59
  | `aihubmix/gpt-4.1` | 1.0M | | | | | | $2 | $8 |
58
60
  | `aihubmix/gpt-4.1-mini` | 1.0M | | | | | | $0.40 | $2 |
59
61
  | `aihubmix/gpt-4.1-nano` | 1.0M | | | | | | $0.10 | $0.40 |
@@ -72,11 +74,14 @@ for await (const chunk of stream) {
72
74
  | `aihubmix/Kimi-K2-0905` | 262K | | | | | | $0.55 | $2 |
73
75
  | `aihubmix/kimi-k2.5` | 262K | | | | | | $0.60 | $3 |
74
76
  | `aihubmix/minimax-m2.1` | 205K | | | | | | $0.29 | $1 |
77
+ | `aihubmix/minimax-m2.5` | 205K | | | | | | $0.29 | $1 |
75
78
  | `aihubmix/o4-mini` | 200K | | | | | | $2 | $6 |
76
79
  | `aihubmix/qwen3-235b-a22b-instruct-2507` | 262K | | | | | | $0.28 | $1 |
77
80
  | `aihubmix/qwen3-235b-a22b-thinking-2507` | 262K | | | | | | $0.28 | $3 |
78
81
  | `aihubmix/qwen3-coder-480b-a35b-instruct` | 262K | | | | | | $0.82 | $3 |
82
+ | `aihubmix/qwen3-coder-next` | 262K | | | | | | $0.14 | $0.55 |
79
83
  | `aihubmix/qwen3-max-2026-01-23` | 262K | | | | | | $0.34 | $1 |
84
+ | `aihubmix/qwen3.5-plus` | 1.0M | | | | | | $0.11 | $0.66 |
80
85
 
81
86
  ## Advanced Configuration
82
87
 
@@ -106,7 +111,7 @@ const agent = new Agent({
106
111
  model: ({ requestContext }) => {
107
112
  const useAdvanced = requestContext.task === "complex";
108
113
  return useAdvanced
109
- ? "aihubmix/qwen3-max-2026-01-23"
114
+ ? "aihubmix/qwen3.5-plus"
110
115
  : "aihubmix/Kimi-K2-0905";
111
116
  }
112
117
  });