@mastra/mcp-docs-server 1.2.12-alpha.0 → 1.2.12-alpha.4

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 (257) hide show
  1. package/.docs/docs/agent-builder/access-control.md +3 -3
  2. package/.docs/docs/agent-builder/browser.md +1 -1
  3. package/.docs/docs/agent-builder/channels.md +1 -1
  4. package/.docs/docs/agent-builder/configuration.md +3 -3
  5. package/.docs/docs/agent-builder/deploying.md +2 -2
  6. package/.docs/docs/agent-builder/integrations.md +8 -8
  7. package/.docs/docs/agent-builder/memory.md +2 -2
  8. package/.docs/docs/agent-builder/overview.md +1 -1
  9. package/.docs/docs/agent-controller/channels.md +8 -6
  10. package/.docs/docs/agent-controller/modes.md +6 -6
  11. package/.docs/docs/agent-controller/overview.md +13 -9
  12. package/.docs/docs/agent-controller/session.md +27 -9
  13. package/.docs/docs/agent-controller/subagents.md +9 -6
  14. package/.docs/docs/agent-controller/threads-and-state.md +12 -8
  15. package/.docs/docs/agent-controller/tool-approvals.md +7 -3
  16. package/.docs/docs/agents/a2a.md +4 -2
  17. package/.docs/docs/agents/acp.md +5 -5
  18. package/.docs/docs/agents/agent-approval.md +13 -11
  19. package/.docs/docs/agents/code-mode.md +29 -6
  20. package/.docs/docs/agents/guardrails.md +8 -8
  21. package/.docs/docs/agents/networks.md +2 -2
  22. package/.docs/docs/agents/overview.md +9 -7
  23. package/.docs/docs/agents/processors.md +15 -15
  24. package/.docs/docs/agents/skills.md +6 -6
  25. package/.docs/docs/agents/structured-output.md +6 -6
  26. package/.docs/docs/agents/supervisor-agents.md +19 -13
  27. package/.docs/docs/agents/using-tools.md +25 -23
  28. package/.docs/docs/browser/agent-browser.md +4 -4
  29. package/.docs/docs/browser/browser-viewer.md +2 -2
  30. package/.docs/docs/browser/firecrawl.md +1 -1
  31. package/.docs/docs/browser/overview.md +2 -2
  32. package/.docs/docs/browser/recording.md +1 -1
  33. package/.docs/docs/browser/stagehand.md +7 -7
  34. package/.docs/docs/capabilities/channels/discord.md +1 -1
  35. package/.docs/docs/capabilities/channels/other-adapters.md +1 -1
  36. package/.docs/docs/capabilities/channels/overview.md +9 -5
  37. package/.docs/docs/capabilities/channels/slack.md +2 -2
  38. package/.docs/docs/capabilities/channels/teams.md +1 -1
  39. package/.docs/docs/capabilities/channels/telegram.md +1 -1
  40. package/.docs/docs/capabilities/channels/whatsapp.md +1 -1
  41. package/.docs/docs/deployment/mastra-server.md +1 -1
  42. package/.docs/docs/deployment/overview.md +6 -2
  43. package/.docs/docs/deployment/sandbox.md +3 -1
  44. package/.docs/docs/deployment/workers.md +137 -0
  45. package/.docs/docs/editor/overview.md +37 -31
  46. package/.docs/docs/editor/prompts.md +8 -4
  47. package/.docs/docs/editor/tools.md +3 -3
  48. package/.docs/docs/evals/built-in-scorers.md +4 -4
  49. package/.docs/docs/evals/custom-scorers.md +5 -5
  50. package/.docs/docs/evals/datasets/running-experiments.md +7 -7
  51. package/.docs/docs/evals/evals-with-memory.md +4 -4
  52. package/.docs/docs/evals/gates-and-verdicts.md +4 -4
  53. package/.docs/docs/evals/multi-turn.md +12 -12
  54. package/.docs/docs/evals/overview.md +6 -4
  55. package/.docs/docs/evals/quick-checks.md +2 -2
  56. package/.docs/docs/getting-started/build-with-ai.md +6 -4
  57. package/.docs/docs/getting-started/file-based-agents.md +6 -4
  58. package/.docs/docs/getting-started/manual-install.md +1 -1
  59. package/.docs/docs/index.md +9 -90
  60. package/.docs/docs/long-running-agents/background-tasks.md +10 -10
  61. package/.docs/docs/long-running-agents/durable-agents.md +46 -5
  62. package/.docs/docs/long-running-agents/goals.md +15 -11
  63. package/.docs/docs/long-running-agents/schedules.md +3 -3
  64. package/.docs/docs/long-running-agents/signal-providers.md +8 -6
  65. package/.docs/docs/long-running-agents/signals.md +9 -5
  66. package/.docs/docs/mastra-platform/configuration.md +3 -3
  67. package/.docs/docs/mastra-platform/database.md +8 -8
  68. package/.docs/docs/mastra-platform/deploy.md +8 -4
  69. package/.docs/docs/mastra-platform/environments.md +8 -4
  70. package/.docs/docs/mastra-platform/github.md +3 -1
  71. package/.docs/docs/mastra-platform/server.md +1 -1
  72. package/.docs/docs/mastra-platform/studio.md +2 -2
  73. package/.docs/docs/mastra-platform/workspace.md +6 -6
  74. package/.docs/docs/mcp/mcp-apps.md +1 -1
  75. package/.docs/docs/mcp/overview.md +9 -9
  76. package/.docs/docs/memory/memory-processors.md +10 -10
  77. package/.docs/docs/memory/message-history.md +11 -5
  78. package/.docs/docs/memory/multi-user-threads.md +6 -6
  79. package/.docs/docs/memory/observational-memory.md +27 -25
  80. package/.docs/docs/memory/overview.md +10 -10
  81. package/.docs/docs/memory/semantic-recall.md +3 -3
  82. package/.docs/docs/memory/working-memory.md +8 -8
  83. package/.docs/docs/observability/integrations/bridges/datadog.md +6 -6
  84. package/.docs/docs/observability/integrations/bridges/otel.md +5 -5
  85. package/.docs/docs/observability/integrations/exporters/datadog.md +1 -1
  86. package/.docs/docs/observability/integrations/exporters/laminar.md +1 -1
  87. package/.docs/docs/observability/integrations/exporters/langfuse.md +3 -3
  88. package/.docs/docs/observability/integrations/exporters/langsmith.md +4 -4
  89. package/.docs/docs/observability/integrations/exporters/mastra-platform.md +1 -1
  90. package/.docs/docs/observability/integrations/exporters/mastra-storage.md +1 -1
  91. package/.docs/docs/observability/integrations/exporters/otel.md +26 -4
  92. package/.docs/docs/observability/integrations/exporters/sentry.md +1 -1
  93. package/.docs/docs/observability/integrations/overview.md +1 -1
  94. package/.docs/docs/observability/integrations/processors/sensitive-data-filter.md +1 -1
  95. package/.docs/docs/observability/logging.md +1 -1
  96. package/.docs/docs/observability/metrics/overview.md +1 -1
  97. package/.docs/docs/observability/metrics/querying.md +8 -8
  98. package/.docs/docs/observability/overview.md +4 -4
  99. package/.docs/docs/observability/tracing/overview.md +18 -12
  100. package/.docs/docs/rag/chunking-and-embedding.md +1 -1
  101. package/.docs/docs/rag/graph-rag.md +7 -7
  102. package/.docs/docs/rag/overview.md +2 -2
  103. package/.docs/docs/rag/retrieval.md +18 -18
  104. package/.docs/docs/rag/vector-databases.md +2 -2
  105. package/.docs/docs/server/auth/composite-auth.md +2 -2
  106. package/.docs/docs/server/auth/fga.md +6 -6
  107. package/.docs/docs/server/auth/firebase.md +2 -2
  108. package/.docs/docs/server/auth/simple-auth.md +1 -1
  109. package/.docs/docs/server/auth/workers.md +133 -0
  110. package/.docs/docs/server/custom-adapters.md +4 -4
  111. package/.docs/docs/server/mastra-client.md +3 -3
  112. package/.docs/docs/server/mastra-server.md +2 -2
  113. package/.docs/docs/server/middleware.md +1 -1
  114. package/.docs/docs/server/pubsub.md +7 -4
  115. package/.docs/docs/server/request-context.md +11 -11
  116. package/.docs/docs/server/server-adapters.md +2 -2
  117. package/.docs/docs/storage/overview.md +2 -2
  118. package/.docs/docs/studio/auth.md +5 -5
  119. package/.docs/docs/studio/deployment.md +1 -1
  120. package/.docs/docs/studio/observability.md +2 -2
  121. package/.docs/docs/studio/overview.md +11 -9
  122. package/.docs/docs/voice/overview.md +26 -26
  123. package/.docs/docs/voice/realtime-voice.md +8 -8
  124. package/.docs/docs/voice/speech-to-speech.md +9 -9
  125. package/.docs/docs/voice/speech-to-text.md +3 -3
  126. package/.docs/docs/voice/text-to-speech.md +6 -6
  127. package/.docs/docs/what-is-mastra.md +161 -0
  128. package/.docs/docs/workflows/agents-and-tools.md +3 -3
  129. package/.docs/docs/workflows/control-flow.md +10 -8
  130. package/.docs/docs/workflows/error-handling.md +2 -2
  131. package/.docs/docs/workflows/overview.md +7 -6
  132. package/.docs/docs/workflows/scheduled-workflows.md +12 -12
  133. package/.docs/docs/workflows/snapshots.md +3 -3
  134. package/.docs/docs/workflows/suspend-and-resume.md +1 -1
  135. package/.docs/docs/workflows/time-travel.md +3 -1
  136. package/.docs/docs/workflows/workflow-state.md +1 -1
  137. package/.docs/docs/workspace/filesystem.md +10 -10
  138. package/.docs/docs/workspace/lsp.md +1 -1
  139. package/.docs/docs/workspace/overview.md +12 -12
  140. package/.docs/docs/workspace/sandbox.md +9 -7
  141. package/.docs/docs/workspace/search.md +3 -3
  142. package/.docs/docs/workspace/skills.md +7 -7
  143. package/.docs/guides/build-your-ui/ai-sdk-ui.md +1 -1
  144. package/.docs/guides/build-your-ui/copilotkit/generative-ui.md +1 -1
  145. package/.docs/guides/build-your-ui/openui.md +1 -1
  146. package/.docs/guides/concepts/streaming.md +1 -1
  147. package/.docs/guides/deployment/kubernetes.md +1 -1
  148. package/.docs/guides/deployment/mastra-workers.md +232 -0
  149. package/.docs/guides/guide/ai-recruiter.md +1 -1
  150. package/.docs/guides/guide/chef-michel.md +1 -1
  151. package/.docs/guides/guide/code-review-bot.md +1 -1
  152. package/.docs/guides/guide/coding-agent.md +1 -1
  153. package/.docs/guides/guide/dev-assistant.md +1 -1
  154. package/.docs/guides/guide/docs-manager.md +1 -1
  155. package/.docs/guides/guide/firecrawl.md +1 -1
  156. package/.docs/guides/guide/github-actions-pr-description.md +1 -1
  157. package/.docs/guides/guide/research-assistant.md +1 -1
  158. package/.docs/guides/guide/research-coordinator.md +2 -2
  159. package/.docs/guides/guide/signal-provider.md +1 -1
  160. package/.docs/guides/guide/stock-agent.md +2 -2
  161. package/.docs/guides/guide/web-search.md +4 -4
  162. package/.docs/guides/guide/whatsapp-chat-bot.md +2 -2
  163. package/.docs/guides/migrations/agentnetwork.md +4 -4
  164. package/.docs/guides/migrations/upgrade-to-v1/agent.md +1 -1
  165. package/.docs/guides/migrations/vnext-to-standard-apis.md +2 -2
  166. package/.docs/models/gateways/custom-gateways.md +3 -3
  167. package/.docs/models/gateways/openrouter.md +7 -9
  168. package/.docs/models/gateways/vercel.md +8 -7
  169. package/.docs/models/index.md +96 -97
  170. package/.docs/models/providers/baseten.md +24 -26
  171. package/.docs/models/providers/chutes.md +25 -26
  172. package/.docs/models/providers/crossmodel.md +25 -27
  173. package/.docs/models/providers/deepinfra.md +23 -25
  174. package/.docs/models/providers/hyper.md +26 -28
  175. package/.docs/models/providers/llmgateway.md +27 -28
  176. package/.docs/models/providers/wandb.md +25 -26
  177. package/.docs/reference/acp/acp-agent.md +1 -1
  178. package/.docs/reference/acp/create-acp-tool.md +1 -1
  179. package/.docs/reference/agents/agent.md +7 -7
  180. package/.docs/reference/agents/channels.md +26 -10
  181. package/.docs/reference/agents/durable-agent.md +51 -2
  182. package/.docs/reference/agents/generateLegacy.md +1 -1
  183. package/.docs/reference/agents/getLLM.md +2 -2
  184. package/.docs/reference/agents/getMetadata.md +2 -2
  185. package/.docs/reference/agents/inngest-agent.md +1 -1
  186. package/.docs/reference/agents/network.md +1 -1
  187. package/.docs/reference/browser/agent-browser.md +1 -1
  188. package/.docs/reference/browser/browser-viewer.md +1 -1
  189. package/.docs/reference/browser/firecrawl-browser.md +1 -1
  190. package/.docs/reference/browser/mastra-browser.md +1 -1
  191. package/.docs/reference/browser/stagehand-browser.md +4 -4
  192. package/.docs/reference/cli/mastra.md +132 -1
  193. package/.docs/reference/client-js/agents.md +17 -0
  194. package/.docs/reference/configuration.md +1 -1
  195. package/.docs/reference/core/getAgentById.md +1 -1
  196. package/.docs/reference/core/mastra-class.md +48 -1
  197. package/.docs/reference/core/mastra-model-gateway.md +1 -1
  198. package/.docs/reference/evals/answer-relevancy.md +1 -1
  199. package/.docs/reference/evals/answer-similarity.md +1 -1
  200. package/.docs/reference/evals/bias.md +1 -1
  201. package/.docs/reference/evals/context-precision.md +3 -3
  202. package/.docs/reference/evals/context-recall.md +3 -3
  203. package/.docs/reference/evals/context-relevance.md +11 -11
  204. package/.docs/reference/evals/faithfulness.md +1 -1
  205. package/.docs/reference/evals/hallucination.md +5 -5
  206. package/.docs/reference/evals/noise-sensitivity.md +10 -10
  207. package/.docs/reference/evals/prompt-alignment.md +15 -15
  208. package/.docs/reference/evals/rubric.md +1 -1
  209. package/.docs/reference/evals/tool-call-accuracy.md +3 -3
  210. package/.docs/reference/evals/toxicity.md +1 -1
  211. package/.docs/reference/file-based-agents/config.md +3 -3
  212. package/.docs/reference/file-based-agents/instructions.md +1 -1
  213. package/.docs/reference/file-based-agents/subagents.md +3 -3
  214. package/.docs/reference/index.md +2 -0
  215. package/.docs/reference/memory/memory-class.md +3 -3
  216. package/.docs/reference/memory/observational-memory.md +4 -4
  217. package/.docs/reference/observability/tracing/exporters/langfuse.md +1 -1
  218. package/.docs/reference/processors/batch-parts-processor.md +1 -1
  219. package/.docs/reference/processors/language-detector.md +1 -1
  220. package/.docs/reference/processors/message-history-processor.md +1 -1
  221. package/.docs/reference/processors/moderation-processor.md +2 -2
  222. package/.docs/reference/processors/pii-detector.md +2 -2
  223. package/.docs/reference/processors/processor-interface.md +1 -1
  224. package/.docs/reference/processors/prompt-injection-detector.md +1 -1
  225. package/.docs/reference/processors/semantic-recall-processor.md +1 -1
  226. package/.docs/reference/processors/skill-search-processor.md +1 -1
  227. package/.docs/reference/processors/system-prompt-scrubber.md +1 -1
  228. package/.docs/reference/processors/token-limiter-processor.md +3 -3
  229. package/.docs/reference/processors/tool-call-filter.md +2 -2
  230. package/.docs/reference/processors/tool-search-processor.md +2 -2
  231. package/.docs/reference/processors/unicode-normalizer.md +1 -1
  232. package/.docs/reference/processors/working-memory-processor.md +1 -1
  233. package/.docs/reference/rag/rerank.md +1 -1
  234. package/.docs/reference/server/routes.md +7 -7
  235. package/.docs/reference/signals/create-notification-inbox-tool.md +1 -1
  236. package/.docs/reference/storage/dsql.md +1 -1
  237. package/.docs/reference/storage/mongodb.md +1 -1
  238. package/.docs/reference/storage/postgresql.md +1 -1
  239. package/.docs/reference/storage/redis.md +1 -1
  240. package/.docs/reference/storage/upstash.md +1 -1
  241. package/.docs/reference/streaming/agents/stream.md +1 -1
  242. package/.docs/reference/tools/create-code-mode.md +3 -3
  243. package/.docs/reference/tools/isolated-vm-transport.md +74 -0
  244. package/.docs/reference/tools/mcp-client.md +2 -2
  245. package/.docs/reference/tools/mcp-server.md +1 -1
  246. package/.docs/reference/tools/vector-query-tool.md +1 -1
  247. package/.docs/reference/vectors/libsql.md +1 -1
  248. package/.docs/reference/vectors/mongodb.md +2 -2
  249. package/.docs/reference/vectors/pg.md +1 -1
  250. package/.docs/reference/vectors/upstash.md +1 -1
  251. package/.docs/reference/voice/voice.addInstructions.md +1 -1
  252. package/.docs/reference/workers/overview.md +85 -0
  253. package/.docs/reference/workspace/agentfs-filesystem.md +1 -1
  254. package/.docs/reference/workspace/local-filesystem.md +1 -1
  255. package/.docs/reference/workspace/local-sandbox.md +1 -1
  256. package/CHANGELOG.md +21 -0
  257. package/package.json +6 -6
@@ -11,22 +11,22 @@ DEEPINFRA_API_KEY=your-api-key
11
11
  ```
12
12
 
13
13
  ```typescript
14
- import { Agent } from "@mastra/core/agent";
14
+ import { Agent } from '@mastra/core/agent'
15
15
 
16
16
  const agent = new Agent({
17
- id: "my-agent",
18
- name: "My Agent",
19
- instructions: "You are a helpful assistant",
20
- model: "deepinfra/MiniMaxAI/MiniMax-M2.5"
21
- });
17
+ id: 'my-agent',
18
+ name: 'My Agent',
19
+ instructions: 'You are a helpful assistant',
20
+ model: 'deepinfra/MiniMaxAI/MiniMax-M2.5',
21
+ })
22
22
 
23
23
  // Generate a response
24
- const response = await agent.generate("Hello!");
24
+ const response = await agent.generate('Hello!')
25
25
 
26
26
  // Stream a response
27
- const stream = await agent.stream("Tell me a story");
27
+ const stream = await agent.stream('Tell me a story')
28
28
  for await (const chunk of stream) {
29
- console.log(chunk);
29
+ console.log(chunk)
30
30
  }
31
31
  ```
32
32
 
@@ -62,7 +62,7 @@ for await (const chunk of stream) {
62
62
  | `deepinfra/Qwen/Qwen3.5-397B-A17B` | 262K | | | | | | $0.45 | $3 |
63
63
  | `deepinfra/Qwen/Qwen3.5-9B` | 262K | | | | | | $0.10 | $0.15 |
64
64
  | `deepinfra/Qwen/Qwen3.6-27B` | 262K | | | | | | $0.32 | $3 |
65
- | `deepinfra/Qwen/Qwen3.6-35B-A3B` | 262K | | | | | | $0.15 | $0.95 |
65
+ | `deepinfra/Qwen/Qwen3.6-35B-A3B` | 262K | | | | | | $0.10 | $0.95 |
66
66
  | `deepinfra/Qwen/Qwen3.7-Max` | 256K | | | | | | $3 | $8 |
67
67
  | `deepinfra/XiaomiMiMo/MiMo-V2.5` | 262K | | | | | | $0.40 | $2 |
68
68
  | `deepinfra/XiaomiMiMo/MiMo-V2.5-Pro` | 1.0M | | | | | | $1 | $3 |
@@ -79,31 +79,29 @@ for await (const chunk of stream) {
79
79
 
80
80
  ```typescript
81
81
  const agent = new Agent({
82
- id: "custom-agent",
83
- name: "custom-agent",
82
+ id: 'custom-agent',
83
+ name: 'custom-agent',
84
84
  model: {
85
- id: "deepinfra/MiniMaxAI/MiniMax-M2.5",
85
+ id: 'deepinfra/MiniMaxAI/MiniMax-M2.5',
86
86
  apiKey: process.env.DEEPINFRA_API_KEY,
87
87
  headers: {
88
- "X-Custom-Header": "value"
89
- }
90
- }
91
- });
88
+ 'X-Custom-Header': 'value',
89
+ },
90
+ },
91
+ })
92
92
  ```
93
93
 
94
94
  ### Dynamic model selection
95
95
 
96
96
  ```typescript
97
97
  const agent = new Agent({
98
- id: "dynamic-agent",
99
- name: "Dynamic Agent",
98
+ id: 'dynamic-agent',
99
+ name: 'Dynamic Agent',
100
100
  model: ({ requestContext }) => {
101
- const useAdvanced = requestContext.task === "complex";
102
- return useAdvanced
103
- ? "deepinfra/zai-org/GLM-5.2"
104
- : "deepinfra/MiniMaxAI/MiniMax-M2.5";
105
- }
106
- });
101
+ const useAdvanced = requestContext.task === 'complex'
102
+ return useAdvanced ? 'deepinfra/zai-org/GLM-5.2' : 'deepinfra/MiniMaxAI/MiniMax-M2.5'
103
+ },
104
+ })
107
105
  ```
108
106
 
109
107
  ## Direct provider installation
@@ -11,22 +11,22 @@ HYPER_API_KEY=your-api-key
11
11
  ```
12
12
 
13
13
  ```typescript
14
- import { Agent } from "@mastra/core/agent";
14
+ import { Agent } from '@mastra/core/agent'
15
15
 
16
16
  const agent = new Agent({
17
- id: "my-agent",
18
- name: "My Agent",
19
- instructions: "You are a helpful assistant",
20
- model: "hyper/deepseek-v4-flash"
21
- });
17
+ id: 'my-agent',
18
+ name: 'My Agent',
19
+ instructions: 'You are a helpful assistant',
20
+ model: 'hyper/deepseek-v4-flash',
21
+ })
22
22
 
23
23
  // Generate a response
24
- const response = await agent.generate("Hello!");
24
+ const response = await agent.generate('Hello!')
25
25
 
26
26
  // Stream a response
27
- const stream = await agent.stream("Tell me a story");
27
+ const stream = await agent.stream('Tell me a story')
28
28
  for await (const chunk of stream) {
29
- console.log(chunk);
29
+ console.log(chunk)
30
30
  }
31
31
  ```
32
32
 
@@ -38,17 +38,17 @@ for await (const chunk of stream) {
38
38
  | ---------------------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
39
39
  | `hyper/deepseek-v4-flash` | 1.0M | | | | | | $0.20 | $0.40 |
40
40
  | `hyper/deepseek-v4-pro` | 1.0M | | | | | | $2 | $5 |
41
- | `hyper/gemma-4-26b-a4b-it` | 256K | | | | | | $0.13 | $0.42 |
41
+ | `hyper/gemma-4-26b-a4b-it` | 256K | | | | | | $0.12 | $0.41 |
42
42
  | `hyper/glm-5` | 203K | | | | | | $0.81 | $3 |
43
43
  | `hyper/glm-5.1` | 203K | | | | | | $2 | $5 |
44
44
  | `hyper/glm-5.2` | 1.0M | | | | | | $1 | $4 |
45
- | `hyper/gpt-oss-120b` | 131K | | | | | | $0.18 | $0.65 |
45
+ | `hyper/gpt-oss-120b` | 131K | | | | | | $0.18 | $0.68 |
46
46
  | `hyper/kimi-k2.5` | 262K | | | | | | $0.53 | $3 |
47
47
  | `hyper/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
48
48
  | `hyper/kimi-k2.7-code` | 256K | | | | | | $0.95 | $4 |
49
49
  | `hyper/llama-3.3-70b-instruct` | 128K | | | | | | $0.61 | $1 |
50
50
  | `hyper/llama-4-maverick-17b-128e-instruct-fp8` | 430K | | | | | | $0.28 | $0.93 |
51
- | `hyper/minimax-m2.7` | 205K | | | | | | $0.35 | $1 |
51
+ | `hyper/minimax-m2.7` | 205K | | | | | | $0.41 | $2 |
52
52
  | `hyper/qwen3-coder-480b-a35b-instruct-int4-mixed-ar` | 106K | | | | | | $0.57 | $2 |
53
53
  | `hyper/qwen3-next-80b-a3b-instruct` | 262K | | | | | | $0.12 | $1 |
54
54
  | `hyper/qwen3.6-flash` | 1.0M | | | | | | $1 | $4 |
@@ -63,30 +63,28 @@ for await (const chunk of stream) {
63
63
 
64
64
  ```typescript
65
65
  const agent = new Agent({
66
- id: "custom-agent",
67
- name: "custom-agent",
66
+ id: 'custom-agent',
67
+ name: 'custom-agent',
68
68
  model: {
69
- url: "https://hyper.charm.land/v1",
70
- id: "hyper/deepseek-v4-flash",
69
+ url: 'https://hyper.charm.land/v1',
70
+ id: 'hyper/deepseek-v4-flash',
71
71
  apiKey: process.env.HYPER_API_KEY,
72
72
  headers: {
73
- "X-Custom-Header": "value"
74
- }
75
- }
76
- });
73
+ 'X-Custom-Header': 'value',
74
+ },
75
+ },
76
+ })
77
77
  ```
78
78
 
79
79
  ### Dynamic model selection
80
80
 
81
81
  ```typescript
82
82
  const agent = new Agent({
83
- id: "dynamic-agent",
84
- name: "Dynamic Agent",
83
+ id: 'dynamic-agent',
84
+ name: 'Dynamic Agent',
85
85
  model: ({ requestContext }) => {
86
- const useAdvanced = requestContext.task === "complex";
87
- return useAdvanced
88
- ? "hyper/qwen3.7-plus"
89
- : "hyper/deepseek-v4-flash";
90
- }
91
- });
86
+ const useAdvanced = requestContext.task === 'complex'
87
+ return useAdvanced ? 'hyper/qwen3.7-plus' : 'hyper/deepseek-v4-flash'
88
+ },
89
+ })
92
90
  ```
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ![LLM Gateway logo](https://models.dev/logos/llmgateway.svg)LLM Gateway
4
4
 
5
- Access 185 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
5
+ Access 186 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
6
6
 
7
7
  Learn more in the [LLM Gateway documentation](https://llmgateway.io/docs).
8
8
 
@@ -11,22 +11,22 @@ LLMGATEWAY_API_KEY=your-api-key
11
11
  ```
12
12
 
13
13
  ```typescript
14
- import { Agent } from "@mastra/core/agent";
14
+ import { Agent } from '@mastra/core/agent'
15
15
 
16
16
  const agent = new Agent({
17
- id: "my-agent",
18
- name: "My Agent",
19
- instructions: "You are a helpful assistant",
20
- model: "llmgateway/auto"
21
- });
17
+ id: 'my-agent',
18
+ name: 'My Agent',
19
+ instructions: 'You are a helpful assistant',
20
+ model: 'llmgateway/auto',
21
+ })
22
22
 
23
23
  // Generate a response
24
- const response = await agent.generate("Hello!");
24
+ const response = await agent.generate('Hello!')
25
25
 
26
26
  // Stream a response
27
- const stream = await agent.stream("Tell me a story");
27
+ const stream = await agent.stream('Tell me a story')
28
28
  for await (const chunk of stream) {
29
- console.log(chunk);
29
+ console.log(chunk)
30
30
  }
31
31
  ```
32
32
 
@@ -200,9 +200,9 @@ for await (const chunk of stream) {
200
200
  | `llmgateway/qwen3-max` | 262K | | | | | | $0.84 | $3 |
201
201
  | `llmgateway/qwen3-next-80b-a3b-instruct` | 131K | | | | | | $0.15 | $1 |
202
202
  | `llmgateway/qwen3-next-80b-a3b-thinking` | 131K | | | | | | $0.15 | $1 |
203
- | `llmgateway/qwen3-vl-235b-a22b-instruct` | 131K | | | | | | $0.30 | $2 |
203
+ | `llmgateway/qwen3-vl-235b-a22b-instruct` | 262K | | | | | | $0.20 | $0.88 |
204
204
  | `llmgateway/qwen3-vl-235b-a22b-thinking` | 131K | | | | | | $0.98 | $4 |
205
- | `llmgateway/qwen3-vl-30b-a3b-instruct` | 131K | | | | | | $0.20 | $0.70 |
205
+ | `llmgateway/qwen3-vl-30b-a3b-instruct` | 262K | | | | | | $0.15 | $0.60 |
206
206
  | `llmgateway/qwen3-vl-flash` | 262K | | | | | | $0.05 | $0.40 |
207
207
  | `llmgateway/qwen3-vl-plus` | 262K | | | | | | $0.20 | $2 |
208
208
  | `llmgateway/qwen3.5-9b` | 262K | | | | | | $0.10 | $0.15 |
@@ -210,6 +210,7 @@ for await (const chunk of stream) {
210
210
  | `llmgateway/qwen3.6-flash` | 262K | | | | | | $0.15 | $0.90 |
211
211
  | `llmgateway/qwen3.6-max-preview` | 262K | | | | | | $1 | $8 |
212
212
  | `llmgateway/qwen3.6-plus` | 262K | | | | | | $0.50 | $3 |
213
+ | `llmgateway/qwen3.7-flash` | 1.0M | | | | | | $0.03 | $0.13 |
213
214
  | `llmgateway/qwen3.7-max` | 1.0M | | | | | | $1 | $4 |
214
215
  | `llmgateway/qwen3.7-plus` | 1.0M | | | | | | $0.40 | $2 |
215
216
  | `llmgateway/qwen35-397b-a17b` | 262K | | | | | | $0.60 | $4 |
@@ -227,30 +228,28 @@ for await (const chunk of stream) {
227
228
 
228
229
  ```typescript
229
230
  const agent = new Agent({
230
- id: "custom-agent",
231
- name: "custom-agent",
231
+ id: 'custom-agent',
232
+ name: 'custom-agent',
232
233
  model: {
233
- url: "https://api.llmgateway.io/v1",
234
- id: "llmgateway/auto",
234
+ url: 'https://api.llmgateway.io/v1',
235
+ id: 'llmgateway/auto',
235
236
  apiKey: process.env.LLMGATEWAY_API_KEY,
236
237
  headers: {
237
- "X-Custom-Header": "value"
238
- }
239
- }
240
- });
238
+ 'X-Custom-Header': 'value',
239
+ },
240
+ },
241
+ })
241
242
  ```
242
243
 
243
244
  ### Dynamic model selection
244
245
 
245
246
  ```typescript
246
247
  const agent = new Agent({
247
- id: "dynamic-agent",
248
- name: "Dynamic Agent",
248
+ id: 'dynamic-agent',
249
+ name: 'Dynamic Agent',
249
250
  model: ({ requestContext }) => {
250
- const useAdvanced = requestContext.task === "complex";
251
- return useAdvanced
252
- ? "llmgateway/sonar-reasoning-pro"
253
- : "llmgateway/auto";
254
- }
255
- });
251
+ const useAdvanced = requestContext.task === 'complex'
252
+ return useAdvanced ? 'llmgateway/sonar-reasoning-pro' : 'llmgateway/auto'
253
+ },
254
+ })
256
255
  ```
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ![Weights & Biases logo](https://models.dev/logos/wandb.svg)Weights & Biases
4
4
 
5
- Access 30 Weights & Biases models through Mastra's model router. Authentication is handled automatically using the `WANDB_API_KEY` environment variable.
5
+ Access 31 Weights & Biases models through Mastra's model router. Authentication is handled automatically using the `WANDB_API_KEY` environment variable.
6
6
 
7
7
  Learn more in the [Weights & Biases documentation](https://docs.wandb.ai).
8
8
 
@@ -11,22 +11,22 @@ WANDB_API_KEY=your-api-key
11
11
  ```
12
12
 
13
13
  ```typescript
14
- import { Agent } from "@mastra/core/agent";
14
+ import { Agent } from '@mastra/core/agent'
15
15
 
16
16
  const agent = new Agent({
17
- id: "my-agent",
18
- name: "My Agent",
19
- instructions: "You are a helpful assistant",
20
- model: "wandb/JetBrains/Mellum2-12B-A2.5B-Instruct"
21
- });
17
+ id: 'my-agent',
18
+ name: 'My Agent',
19
+ instructions: 'You are a helpful assistant',
20
+ model: 'wandb/JetBrains/Mellum2-12B-A2.5B-Instruct',
21
+ })
22
22
 
23
23
  // Generate a response
24
- const response = await agent.generate("Hello!");
24
+ const response = await agent.generate('Hello!')
25
25
 
26
26
  // Stream a response
27
- const stream = await agent.stream("Tell me a story");
27
+ const stream = await agent.stream('Tell me a story')
28
28
  for await (const chunk of stream) {
29
- console.log(chunk);
29
+ console.log(chunk)
30
30
  }
31
31
  ```
32
32
 
@@ -50,6 +50,7 @@ for await (const chunk of stream) {
50
50
  | `wandb/moonshotai/Kimi-K2.5` | 262K | | | | | | $0.60 | $3 |
51
51
  | `wandb/moonshotai/Kimi-K2.6` | 262K | | | | | | $0.65 | $3 |
52
52
  | `wandb/moonshotai/Kimi-K2.7-Code` | 262K | | | | | | $0.71 | $4 |
53
+ | `wandb/moonshotai/Kimi-K3` | 1.0M | | | | | | $3 | $15 |
53
54
  | `wandb/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8` | 262K | | | | | | $0.20 | $0.80 |
54
55
  | `wandb/nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B` | 262K | | | | | | $0.75 | $3 |
55
56
  | `wandb/openai/gpt-oss-120b` | 131K | | | | | | $0.03 | $0.17 |
@@ -69,30 +70,28 @@ for await (const chunk of stream) {
69
70
 
70
71
  ```typescript
71
72
  const agent = new Agent({
72
- id: "custom-agent",
73
- name: "custom-agent",
73
+ id: 'custom-agent',
74
+ name: 'custom-agent',
74
75
  model: {
75
- url: "https://api.inference.wandb.ai/v1",
76
- id: "wandb/JetBrains/Mellum2-12B-A2.5B-Instruct",
76
+ url: 'https://api.inference.wandb.ai/v1',
77
+ id: 'wandb/JetBrains/Mellum2-12B-A2.5B-Instruct',
77
78
  apiKey: process.env.WANDB_API_KEY,
78
79
  headers: {
79
- "X-Custom-Header": "value"
80
- }
81
- }
82
- });
80
+ 'X-Custom-Header': 'value',
81
+ },
82
+ },
83
+ })
83
84
  ```
84
85
 
85
86
  ### Dynamic model selection
86
87
 
87
88
  ```typescript
88
89
  const agent = new Agent({
89
- id: "dynamic-agent",
90
- name: "Dynamic Agent",
90
+ id: 'dynamic-agent',
91
+ name: 'Dynamic Agent',
91
92
  model: ({ requestContext }) => {
92
- const useAdvanced = requestContext.task === "complex";
93
- return useAdvanced
94
- ? "wandb/zai-org/GLM-5.2"
95
- : "wandb/JetBrains/Mellum2-12B-A2.5B-Instruct";
96
- }
97
- });
93
+ const useAdvanced = requestContext.task === 'complex'
94
+ return useAdvanced ? 'wandb/zai-org/GLM-5.2' : 'wandb/JetBrains/Mellum2-12B-A2.5B-Instruct'
95
+ },
96
+ })
98
97
  ```
@@ -27,7 +27,7 @@ export const codeSupervisor = new Agent({
27
27
  id: 'code-supervisor',
28
28
  name: 'Code Supervisor',
29
29
  instructions: 'Delegate code editing tasks to the code-agent subagent.',
30
- model: 'openai/gpt-5.5',
30
+ model: 'openai/gpt-5.6-sol',
31
31
  agents: {
32
32
  codeAgent,
33
33
  },
@@ -26,7 +26,7 @@ export const codeSupervisor = new Agent({
26
26
  id: 'code-supervisor',
27
27
  name: 'Code Supervisor',
28
28
  instructions: 'Use the code-agent tool when a task requires repository inspection or code edits.',
29
- model: 'openai/gpt-5.5',
29
+ model: 'openai/gpt-5.6-sol',
30
30
  tools: {
31
31
  codeAgentTool,
32
32
  },
@@ -18,7 +18,7 @@ export const agent = new Agent({
18
18
  id: 'test-agent',
19
19
  name: 'Test Agent',
20
20
  instructions: 'You are a helpful assistant that provides concise answers.',
21
- model: 'openai/gpt-5.5',
21
+ model: 'openai/gpt-5.6-sol',
22
22
  })
23
23
 
24
24
  // System message object
@@ -29,7 +29,7 @@ export const agent2 = new Agent({
29
29
  role: 'system',
30
30
  content: 'You are an expert programmer',
31
31
  },
32
- model: 'openai/gpt-5.5',
32
+ model: 'openai/gpt-5.6-sol',
33
33
  })
34
34
 
35
35
  // Array of system messages
@@ -40,7 +40,7 @@ export const agent3 = new Agent({
40
40
  { role: 'system', content: 'You are a helpful assistant' },
41
41
  { role: 'system', content: 'You have expertise in TypeScript' },
42
42
  ],
43
- model: 'openai/gpt-5.5',
43
+ model: 'openai/gpt-5.6-sol',
44
44
  })
45
45
  ```
46
46
 
@@ -63,7 +63,7 @@ export const agent = new Agent({
63
63
  },
64
64
  },
65
65
  },
66
- model: 'openai/gpt-5.5',
66
+ model: 'openai/gpt-5.6-sol',
67
67
  })
68
68
  ```
69
69
 
@@ -102,7 +102,7 @@ For the simplest setup, pass `model` as a string in `provider/model` format. Sep
102
102
 
103
103
  Popular provider strings and credentials:
104
104
 
105
- - **OpenAI**: `openai/gpt-5.5` uses `OPENAI_API_KEY`.
105
+ - **OpenAI**: `openai/gpt-5.6-sol` uses `OPENAI_API_KEY`.
106
106
  - **Anthropic**: `anthropic/claude-sonnet-4-6` uses `ANTHROPIC_API_KEY`.
107
107
  - **Google**: `google/gemini-2.5-pro` uses `GOOGLE_API_KEY` or `GOOGLE_GENERATIVE_AI_API_KEY`.
108
108
 
@@ -396,7 +396,7 @@ export const supportAgent = new Agent({
396
396
  id: 'support-agent',
397
397
  name: 'Support Agent',
398
398
  instructions: 'Help the user triage updates.',
399
- model: 'openai/gpt-5.5',
399
+ model: 'openai/gpt-5.6-sol',
400
400
  notifications: {
401
401
  deliveryPolicy: {
402
402
  priorities: {
@@ -530,7 +530,7 @@ export const agent = new Agent({
530
530
  id: 'support-agent',
531
531
  name: 'support-agent',
532
532
  instructions: 'Help users with their questions.',
533
- model: 'openai/gpt-5.5',
533
+ model: 'openai/gpt-5.6-sol',
534
534
  hooks: {
535
535
  beforeToolCall: ({ toolName, input }) => {
536
536
  console.log(`Running ${toolName}`, input)
@@ -17,7 +17,7 @@ export const supportAgent = new Agent({
17
17
  id: 'support-agent',
18
18
  name: 'Support Agent',
19
19
  instructions: 'You are a helpful support assistant.',
20
- model: 'openai/gpt-5.5',
20
+ model: 'openai/gpt-5.6-sol',
21
21
  channels: {
22
22
  adapters: {
23
23
  slack: createSlackAdapter(),
@@ -70,7 +70,7 @@ const agent = new Agent({
70
70
  id: 'example',
71
71
  name: 'Example',
72
72
  instructions: '...',
73
- model: 'openai/gpt-5.5',
73
+ model: 'openai/gpt-5.6-sol',
74
74
  channels: {
75
75
  adapters: {
76
76
  discord: {
@@ -126,7 +126,7 @@ const agent = new Agent({
126
126
  id: 'streaming-agent',
127
127
  name: 'Streaming Agent',
128
128
  instructions: '...',
129
- model: 'openai/gpt-5.5',
129
+ model: 'openai/gpt-5.6-sol',
130
130
  channels: {
131
131
  adapters: {
132
132
  slack: {
@@ -154,7 +154,7 @@ const agent = new Agent({
154
154
  id: 'custom-typing-agent',
155
155
  name: 'Custom Typing Agent',
156
156
  instructions: '...',
157
- model: 'openai/gpt-5.5',
157
+ model: 'openai/gpt-5.6-sol',
158
158
  channels: {
159
159
  adapters: {
160
160
  discord: {
@@ -187,7 +187,7 @@ const agent = new Agent({
187
187
  id: 'custom-handler-agent',
188
188
  name: 'Custom Handler Agent',
189
189
  instructions: '...',
190
- model: 'openai/gpt-5.5',
190
+ model: 'openai/gpt-5.6-sol',
191
191
  channels: {
192
192
  adapters: {
193
193
  slack: createSlackAdapter(),
@@ -216,19 +216,35 @@ type ChannelHandler = (
216
216
  thread: Thread,
217
217
  message: Message,
218
218
  defaultHandler: (thread: Thread, message: Message) => Promise<void>,
219
- ctx?: ChannelHandlerContext,
219
+ ctx: ChannelHandlerContext,
220
220
  ) => Promise<void>
221
+
222
+ type ChannelHandlerContext = {
223
+ mastra?: Mastra
224
+ requestContext: RequestContext
225
+ }
226
+ ```
227
+
228
+ `ctx.mastra` is the resolved `mastra` instance, so a handler can reach storage or other registered primitives without being passed an external accessor:
229
+
230
+ ```typescript
231
+ onDirectMessage: async (thread, message, defaultHandler, ctx) => {
232
+ const store = await ctx.mastra?.getStorage()?.getStore('memory')
233
+ await defaultHandler(thread, message)
234
+ }
221
235
  ```
222
236
 
223
- `ctx` carries the resolved `mastra` instance, so a handler can reach storage or other registered primitives without being passed an external accessor:
237
+ `ctx.requestContext` is the [`RequestContext`](https://mastra.ai/docs/server/request-context) for the run this message is about to start, built fresh for every message. Write to it before calling `defaultHandler` and the value reaches the run, alongside the channel entries Mastra adds afterward:
224
238
 
225
239
  ```typescript
226
240
  onDirectMessage: async (thread, message, defaultHandler, ctx) => {
227
- const store = await ctx?.mastra?.getStorage()?.getStore('memory')
241
+ ctx.requestContext.set('locale', 'en-GB')
228
242
  await defaultHandler(thread, message)
229
243
  }
230
244
  ```
231
245
 
246
+ Anything the run reads from its request context can be decided per message this way, such as which user a platform sender maps to.
247
+
232
248
  ## Resource ID resolution
233
249
 
234
250
  By default a channel thread's memory `resourceId` is `${platform}:${message.author.userId}`. The sender owns the memory, scoped per platform. For apps with a shared identity, such as single sign-on (SSO), this splits memory: the same user gets `feishu:user_123` in a Feishu DM but `user_123` on the web.
@@ -243,7 +259,7 @@ const agent = new Agent({
243
259
  id: 'sso-agent',
244
260
  name: 'SSO Agent',
245
261
  instructions: '...',
246
- model: 'openai/gpt-5.5',
262
+ model: 'openai/gpt-5.6-sol',
247
263
  channels: {
248
264
  adapters: {
249
265
  slack: createSlackAdapter(),
@@ -284,7 +300,7 @@ const agent = new Agent({
284
300
  id: 'session-agent',
285
301
  name: 'Session Agent',
286
302
  instructions: '...',
287
- model: 'openai/gpt-5.5',
303
+ model: 'openai/gpt-5.6-sol',
288
304
  channels: {
289
305
  adapters: {
290
306
  slack: createSlackAdapter(),
@@ -17,7 +17,7 @@ const agent = new Agent({
17
17
  id: 'my-agent',
18
18
  name: 'My Agent',
19
19
  instructions: 'You are a helpful assistant',
20
- model: 'openai/gpt-5.5',
20
+ model: 'openai/gpt-5.6-sol',
21
21
  })
22
22
 
23
23
  const durableAgent = createDurableAgent({ agent })
@@ -49,7 +49,7 @@ const myAgent = new Agent({
49
49
  id: 'my-agent',
50
50
  name: 'My Agent',
51
51
  instructions: 'You are a helpful assistant',
52
- model: 'openai/gpt-5.5',
52
+ model: 'openai/gpt-5.6-sol',
53
53
  durable: true, // or: { maxSteps: 10, cleanupTimeoutMs: 60_000 }
54
54
  })
55
55
 
@@ -204,6 +204,55 @@ interface PrepareResult {
204
204
  }
205
205
  ```
206
206
 
207
+ ### Recovery
208
+
209
+ #### `recoverActiveRuns(options?)`
210
+
211
+ Discovers runs stuck in `running` status for this agent and re-drives them from the last persisted snapshot. Recovers up to `options.limit` runs (default: 100). Returns a summary of what was recovered.
212
+
213
+ ```typescript
214
+ const result = await durableAgent.recoverActiveRuns()
215
+ // { recovered: [{ runId, status }], succeeded: 2, failed: 0 }
216
+ ```
217
+
218
+ Pass a `runId` to recover a single known run:
219
+
220
+ ```typescript
221
+ await durableAgent.recoverActiveRuns({ runId: 'run-abc-123' })
222
+ ```
223
+
224
+ Returns:
225
+
226
+ ```typescript
227
+ interface DurableAgentRecoverActiveRunsResult {
228
+ recovered: Array<{ runId: string; status: 'success' | 'failed'; error?: Error }>
229
+ succeeded: number
230
+ failed: number
231
+ }
232
+ ```
233
+
234
+ **options.runId** (`string`): Recover a specific run by ID. When set, discovery filters are ignored.
235
+
236
+ **options.limit** (`number`): Maximum number of active runs to discover. Defaults to 100.
237
+
238
+ **options.createdBefore** (`Date`): Only recover runs created before this date.
239
+
240
+ #### `recover(runId, options?)`
241
+
242
+ Recovers a single run by ID. Returns a streamable result with the same shape as `stream()`. Use this when you need to observe the recovery stream in real time.
243
+
244
+ ```typescript
245
+ const { output, cleanup } = await durableAgent.recover('run-abc-123', {
246
+ onChunk: chunk => console.log(chunk),
247
+ onError: ({ error }) => console.error(error),
248
+ })
249
+
250
+ await output.text
251
+ cleanup()
252
+ ```
253
+
254
+ Returns: [`Promise<DurableAgentStreamResult>`](#durableagentstreamresult)
255
+
207
256
  ## Stream options
208
257
 
209
258
  `stream()` accepts a `DurableAgentStreamOptions` object. It supports the agent execution options below, plus lifecycle callbacks.
@@ -205,7 +205,7 @@ await agent.generateLegacy(
205
205
  sentiment: z.enum(['positive', 'negative', 'neutral']),
206
206
  confidence: z.number(),
207
207
  }),
208
- model: 'openai/gpt-5.5',
208
+ model: 'openai/gpt-5.6-sol',
209
209
  errorStrategy: 'warn',
210
210
  },
211
211
  // Output processors for response validation