@mastra/mcp-docs-server 1.3.1 → 1.3.2-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.docs/docs/agents/processors.md +1 -1
- package/.docs/docs/evals/evals-with-memory.md +3 -1
- package/.docs/docs/evals/experiments.md +30 -10
- package/.docs/docs/harness/durable-agents.md +23 -5
- package/.docs/docs/memory/observational-memory.md +59 -12
- package/.docs/docs/memory/overview.md +2 -2
- package/.docs/integrations/deploy/kubernetes.md +6 -4
- package/.docs/integrations/sandboxes/modal.md +40 -0
- package/.docs/models/gateways/netlify.md +7 -2
- package/.docs/models/gateways/openrouter.md +4 -5
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/above.md +2 -2
- package/.docs/models/providers/cerebras.md +1 -1
- package/.docs/models/providers/cortecs.md +3 -3
- package/.docs/models/providers/deepseek.md +9 -3
- package/.docs/models/providers/edenai.md +285 -288
- package/.docs/models/providers/fireworks-ai.md +4 -7
- package/.docs/models/providers/kilo.md +19 -20
- package/.docs/models/providers/melious.md +1 -4
- package/.docs/models/providers/nano-gpt.md +10 -4
- package/.docs/models/providers/opencode-go.md +2 -1
- package/.docs/models/providers/opencode.md +3 -2
- package/.docs/models/providers/requesty.md +2 -2
- package/.docs/models/providers/zenmux.md +8 -1
- package/.docs/reference/agents/agent.md +15 -0
- package/.docs/reference/agents/durable-agent.md +3 -1
- package/.docs/reference/channels/channel-provider.md +20 -1
- package/.docs/reference/client-js/agents.md +2 -0
- package/.docs/reference/coding-agent/create-coding-agent.md +22 -14
- package/.docs/reference/index.md +1 -0
- package/.docs/reference/memory/cloneThread.md +2 -2
- package/.docs/reference/memory/observational-memory.md +12 -6
- package/.docs/reference/processors/agents-md-injector.md +2 -0
- package/.docs/reference/processors/cyber-refusal-handler.md +76 -0
- package/.docs/reference/pubsub/base.md +11 -0
- package/.docs/reference/pubsub/redis-streams.md +8 -0
- package/.docs/reference/workspace/local-sandbox.md +2 -0
- package/.docs/reference/workspace/workspace-class.md +14 -1
- package/package.json +5 -5
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Fireworks AI
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 22 Fireworks AI models through Mastra's model router. Authentication is handled automatically using the `FIREWORKS_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Fireworks AI documentation](https://fireworks.ai/docs/).
|
|
10
10
|
|
|
@@ -19,7 +19,7 @@ const agent = new Agent({
|
|
|
19
19
|
id: "my-agent",
|
|
20
20
|
name: "My Agent",
|
|
21
21
|
instructions: "You are a helpful assistant",
|
|
22
|
-
model: "fireworks-ai/accounts/fireworks/models/deepseek-
|
|
22
|
+
model: "fireworks-ai/accounts/fireworks/models/deepseek-v4p1-flash"
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
// Generate a response
|
|
@@ -48,12 +48,9 @@ for await (const chunk of stream) {
|
|
|
48
48
|
| `fireworks-ai/accounts/fireworks/models/minimax-m3` | 512K | | | | | | $0.30 | $1 |
|
|
49
49
|
| `fireworks-ai/accounts/fireworks/models/nemotron-3-ultra-nvfp4` | 262K | | | | | | $0.60 | $2 |
|
|
50
50
|
| `fireworks-ai/accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b` | 262K | | | | | | $0.05 | $0.20 |
|
|
51
|
-
| `fireworks-ai/accounts/fireworks/models/qwen3p7-plus` | 262K | | | | | | $0.40 | $2 |
|
|
52
51
|
| `fireworks-ai/accounts/fireworks/models/qwen3p8-2p4t-a95b` | 262K | | | | | | $2 | $6 |
|
|
53
52
|
| `fireworks-ai/accounts/fireworks/models/qwen3p8-max` | 262K | | | | | | $2 | $6 |
|
|
54
53
|
| `fireworks-ai/accounts/fireworks/routers/deepseek-flash-latest` | 1.0M | | | | | | $0.22 | $0.66 |
|
|
55
|
-
| `fireworks-ai/accounts/fireworks/routers/deepseek-pro-latest` | 1.0M | | | | | | $1 | $4 |
|
|
56
|
-
| `fireworks-ai/accounts/fireworks/routers/glm-5p2-fast` | 1.0M | | | | | | $2 | $7 |
|
|
57
54
|
| `fireworks-ai/accounts/fireworks/routers/glm-5p3-fast` | 1.0M | | | | | | $2 | $7 |
|
|
58
55
|
| `fireworks-ai/accounts/fireworks/routers/glm-fast-latest` | 1.0M | | | | | | $2 | $7 |
|
|
59
56
|
| `fireworks-ai/accounts/fireworks/routers/glm-flash-latest` | 1.0M | | | | | | $0.15 | $0.50 |
|
|
@@ -76,7 +73,7 @@ const agent = new Agent({
|
|
|
76
73
|
name: "custom-agent",
|
|
77
74
|
model: {
|
|
78
75
|
url: "https://api.fireworks.ai/inference/v1/",
|
|
79
|
-
id: "fireworks-ai/accounts/fireworks/models/deepseek-
|
|
76
|
+
id: "fireworks-ai/accounts/fireworks/models/deepseek-v4p1-flash",
|
|
80
77
|
apiKey: process.env.FIREWORKS_API_KEY,
|
|
81
78
|
headers: {
|
|
82
79
|
"X-Custom-Header": "value"
|
|
@@ -95,7 +92,7 @@ const agent = new Agent({
|
|
|
95
92
|
const useAdvanced = requestContext.task === "complex";
|
|
96
93
|
return useAdvanced
|
|
97
94
|
? "fireworks-ai/accounts/fireworks/routers/qwen-max-latest"
|
|
98
|
-
: "fireworks-ai/accounts/fireworks/models/deepseek-
|
|
95
|
+
: "fireworks-ai/accounts/fireworks/models/deepseek-v4p1-flash";
|
|
99
96
|
}
|
|
100
97
|
});
|
|
101
98
|
```
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Kilo Gateway
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 391 Kilo Gateway models through Mastra's model router. Authentication is handled automatically using the `KILO_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Kilo Gateway documentation](https://kilo.ai).
|
|
10
10
|
|
|
@@ -42,12 +42,12 @@ for await (const chunk of stream) {
|
|
|
42
42
|
| `kilo/~anthropic/claude-haiku-latest` | 200K | | | | | | $1 | $5 |
|
|
43
43
|
| `kilo/~anthropic/claude-opus-latest` | 1.0M | | | | | | $4 | $20 |
|
|
44
44
|
| `kilo/~anthropic/claude-sonnet-latest` | 1.0M | | | | | | $2 | $10 |
|
|
45
|
-
| `kilo/~deepseek/deepseek-flash-latest` | 1.0M | | | | | | $0.
|
|
46
|
-
| `kilo/~deepseek/deepseek-pro-latest` | 1.0M | | | | | | $0.
|
|
47
|
-
| `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.
|
|
45
|
+
| `kilo/~deepseek/deepseek-flash-latest` | 1.0M | | | | | | $0.03 | $0.60 |
|
|
46
|
+
| `kilo/~deepseek/deepseek-pro-latest` | 1.0M | | | | | | $0.24 | $0.73 |
|
|
47
|
+
| `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.02 | $0.32 |
|
|
48
48
|
| `kilo/~google/gemini-flash-latest` | 1.0M | | | | | | $0.75 | $4 |
|
|
49
49
|
| `kilo/~google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
|
|
50
|
-
| `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $
|
|
50
|
+
| `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $0.99 | $9 |
|
|
51
51
|
| `kilo/~openai/gpt-astra-latest` | 1.1M | | | | | | $10 | $50 |
|
|
52
52
|
| `kilo/~openai/gpt-luna-latest` | 1.1M | | | | | | $0.10 | $0.50 |
|
|
53
53
|
| `kilo/~openai/gpt-mini-latest` | 400K | | | | | | $0.75 | $5 |
|
|
@@ -55,7 +55,7 @@ for await (const chunk of stream) {
|
|
|
55
55
|
| `kilo/~openai/gpt-terra-latest` | 1.1M | | | | | | $2 | $12 |
|
|
56
56
|
| `kilo/~x-ai/grok-latest` | 500K | | | | | | $2 | $5 |
|
|
57
57
|
| `kilo/~z-ai/glm-flash-latest` | 1.0M | | | | | | $0.04 | $0.14 |
|
|
58
|
-
| `kilo/~z-ai/glm-latest` | 1.0M | | | | | | $0.
|
|
58
|
+
| `kilo/~z-ai/glm-latest` | 1.0M | | | | | | $0.36 | $1 |
|
|
59
59
|
| `kilo/aion-labs/aion-2.0` | 131K | | | | | | $0.80 | $2 |
|
|
60
60
|
| `kilo/aion-labs/aion-3.0` | 131K | | | | | | $3 | $6 |
|
|
61
61
|
| `kilo/aion-labs/aion-3.0-mini` | 131K | | | | | | $0.70 | $1 |
|
|
@@ -68,7 +68,6 @@ for await (const chunk of stream) {
|
|
|
68
68
|
| `kilo/amazon/nova-premier-v1` | 1.0M | | | | | | $3 | $13 |
|
|
69
69
|
| `kilo/amazon/nova-pro-v1` | 300K | | | | | | $0.80 | $3 |
|
|
70
70
|
| `kilo/anthracite-org/magnum-v4-72b` | 33K | | | | | | $3 | $5 |
|
|
71
|
-
| `kilo/anthropic/claude-3-haiku` | 200K | | | | | | $0.25 | $1 |
|
|
72
71
|
| `kilo/anthropic/claude-fable-5` | 1.0M | | | | | | $10 | $50 |
|
|
73
72
|
| `kilo/anthropic/claude-fable-5.1` | 1.0M | | | | | | $10 | $50 |
|
|
74
73
|
| `kilo/anthropic/claude-haiku-4.5` | 200K | | | | | | $1 | $5 |
|
|
@@ -99,7 +98,7 @@ for await (const chunk of stream) {
|
|
|
99
98
|
| `kilo/cohere/command-r-plus-08-2024` | 128K | | | | | | $3 | $10 |
|
|
100
99
|
| `kilo/cohere/command-r7b-12-2024` | 128K | | | | | | $0.04 | $0.15 |
|
|
101
100
|
| `kilo/cohere/north-mini-code:free` | 256K | | | | | | — | — |
|
|
102
|
-
| `kilo/deepseek/deepseek-chat` |
|
|
101
|
+
| `kilo/deepseek/deepseek-chat` | 128K | | | | | | $0.26 | $1 |
|
|
103
102
|
| `kilo/deepseek/deepseek-chat-v3-0324` | 164K | | | | | | $0.25 | $1 |
|
|
104
103
|
| `kilo/deepseek/deepseek-chat-v3.1` | 164K | | | | | | $0.27 | $1 |
|
|
105
104
|
| `kilo/deepseek/deepseek-r1` | 64K | | | | | | $0.70 | $3 |
|
|
@@ -141,7 +140,7 @@ for await (const chunk of stream) {
|
|
|
141
140
|
| `kilo/google/gemma-3-27b-it` | 131K | | | | | | $0.08 | $0.16 |
|
|
142
141
|
| `kilo/google/gemma-3-4b-it` | 131K | | | | | | $0.05 | $0.10 |
|
|
143
142
|
| `kilo/google/gemma-4-26b-a4b-it` | 262K | | | | | | $0.04 | $0.22 |
|
|
144
|
-
| `kilo/google/gemma-4-31b-it` | 262K | | | | | | $0.
|
|
143
|
+
| `kilo/google/gemma-4-31b-it` | 262K | | | | | | $0.08 | $0.30 |
|
|
145
144
|
| `kilo/google/lyria-3-clip-preview` | 1.0M | | | | | | — | — |
|
|
146
145
|
| `kilo/google/lyria-3-pro-preview` | 1.0M | | | | | | — | — |
|
|
147
146
|
| `kilo/gryphe/mythomax-l2-13b` | 4K | | | | | | $0.08 | $0.11 |
|
|
@@ -153,7 +152,7 @@ for await (const chunk of stream) {
|
|
|
153
152
|
| `kilo/inclusionai/ling-3.0-flash-fin` | 262K | | | | | | $0.06 | $0.18 |
|
|
154
153
|
| `kilo/inclusionai/ling-3.0-flash-fin:free` | 262K | | | | | | — | — |
|
|
155
154
|
| `kilo/inclusionai/ling-3.0-flash-sante:free` | 262K | | | | | | — | — |
|
|
156
|
-
| `kilo/inclusionai/ling-3.0-flash-vl` |
|
|
155
|
+
| `kilo/inclusionai/ling-3.0-flash-vl` | 262K | | | | | | $0.07 | $0.22 |
|
|
157
156
|
| `kilo/inference-net/schematron-v2-small` | 128K | | | | | | $0.05 | $0.23 |
|
|
158
157
|
| `kilo/inference-net/schematron-v2-turbo` | 128K | | | | | | $0.03 | $0.15 |
|
|
159
158
|
| `kilo/kilo-auto/balanced` | 1.0M | | | | | | $0.33 | $2 |
|
|
@@ -187,23 +186,25 @@ for await (const chunk of stream) {
|
|
|
187
186
|
| `kilo/minimax/minimax-m2-her` | 66K | | | | | | $0.30 | $1 |
|
|
188
187
|
| `kilo/minimax/minimax-m2.1` | 205K | | | | | | $0.30 | $1 |
|
|
189
188
|
| `kilo/minimax/minimax-m2.5` | 200K | | | | | | $0.30 | $1 |
|
|
190
|
-
| `kilo/minimax/minimax-m2.7` |
|
|
189
|
+
| `kilo/minimax/minimax-m2.7` | 197K | | | | | | $0.30 | $1 |
|
|
191
190
|
| `kilo/minimax/minimax-m3` | 524K | | | | | | $0.30 | $1 |
|
|
192
191
|
| `kilo/mistralai/codestral-2508` | 256K | | | | | | $0.30 | $0.90 |
|
|
192
|
+
| `kilo/mistralai/devstral-2512` | 262K | | | | | | $0.40 | $2 |
|
|
193
193
|
| `kilo/mistralai/ministral-14b-2512` | 262K | | | | | | $0.20 | $0.20 |
|
|
194
194
|
| `kilo/mistralai/ministral-3b-2512` | 131K | | | | | | $0.10 | $0.10 |
|
|
195
195
|
| `kilo/mistralai/ministral-8b-2512` | 262K | | | | | | $0.15 | $0.15 |
|
|
196
196
|
| `kilo/mistralai/mistral-large` | 128K | | | | | | $2 | $6 |
|
|
197
197
|
| `kilo/mistralai/mistral-large-2407` | 131K | | | | | | $2 | $6 |
|
|
198
|
+
| `kilo/mistralai/mistral-large-2512` | 262K | | | | | | $0.50 | $2 |
|
|
198
199
|
| `kilo/mistralai/mistral-medium-3` | 131K | | | | | | $0.40 | $2 |
|
|
199
200
|
| `kilo/mistralai/mistral-medium-3-5` | 262K | | | | | | $2 | $8 |
|
|
200
201
|
| `kilo/mistralai/mistral-medium-3.1` | 131K | | | | | | $0.40 | $2 |
|
|
201
|
-
| `kilo/mistralai/mistral-nemo` | 131K | | | | | | $0.
|
|
202
|
+
| `kilo/mistralai/mistral-nemo` | 131K | | | | | | $0.15 | $0.15 |
|
|
202
203
|
| `kilo/mistralai/mistral-saba` | 33K | | | | | | $0.20 | $0.60 |
|
|
203
204
|
| `kilo/mistralai/mistral-small-24b-instruct-2501` | 33K | | | | | | $0.05 | $0.08 |
|
|
204
205
|
| `kilo/mistralai/mistral-small-2603` | 262K | | | | | | $0.15 | $0.60 |
|
|
205
206
|
| `kilo/mistralai/mistral-small-3.1-24b-instruct` | 128K | | | | | | $0.35 | $0.56 |
|
|
206
|
-
| `kilo/mistralai/mistral-small-3.2-24b-instruct` | 256K | | | | | | $0.
|
|
207
|
+
| `kilo/mistralai/mistral-small-3.2-24b-instruct` | 256K | | | | | | $0.10 | $0.30 |
|
|
207
208
|
| `kilo/mistralai/mixtral-8x22b-instruct` | 66K | | | | | | $2 | $6 |
|
|
208
209
|
| `kilo/mistralai/voxtral-small-24b-2507` | 33K | | | | | | $0.10 | $0.30 |
|
|
209
210
|
| `kilo/moonshotai/kimi-k2` | 131K | | | | | | $0.57 | $2 |
|
|
@@ -215,8 +216,6 @@ for await (const chunk of stream) {
|
|
|
215
216
|
| `kilo/moonshotai/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
216
217
|
| `kilo/morph/morph-v3-fast` | 82K | | | | | | $0.80 | $1 |
|
|
217
218
|
| `kilo/morph/morph-v3-large` | 262K | | | | | | $0.90 | $2 |
|
|
218
|
-
| `kilo/nex-agi/nex-n2.5-mini:free` | 262K | | | | | | — | — |
|
|
219
|
-
| `kilo/nex-agi/nex-n2.5-pro:free` | 262K | | | | | | — | — |
|
|
220
219
|
| `kilo/nousresearch/hermes-3-llama-3.1-405b` | 131K | | | | | | $1 | $1 |
|
|
221
220
|
| `kilo/nousresearch/hermes-3-llama-3.1-70b` | 131K | | | | | | $0.70 | $0.70 |
|
|
222
221
|
| `kilo/nousresearch/hermes-4-405b` | 131K | | | | | | $1 | $3 |
|
|
@@ -228,7 +227,7 @@ for await (const chunk of stream) {
|
|
|
228
227
|
| `kilo/nvidia/nemotron-3-ultra-550b-a55b:free` | 1.0M | | | | | | — | — |
|
|
229
228
|
| `kilo/nvidia/nemotron-3.5-content-safety` | 131K | | | | | | $0.20 | $0.20 |
|
|
230
229
|
| `kilo/nvidia/nemotron-3.5-content-safety:free` | 128K | | | | | | — | — |
|
|
231
|
-
| `kilo/nvidia/nemotron-3.5-lightning` | 262K | | | | | | $0.
|
|
230
|
+
| `kilo/nvidia/nemotron-3.5-lightning` | 262K | | | | | | $0.04 | $0.18 |
|
|
232
231
|
| `kilo/nvidia/nemotron-3.5-lightning:free` | 1.0M | | | | | | — | — |
|
|
233
232
|
| `kilo/openai/gpt-3.5-turbo` | 16K | | | | | | $0.50 | $2 |
|
|
234
233
|
| `kilo/openai/gpt-3.5-turbo-0613` | 4K | | | | | | $1 | $2 |
|
|
@@ -298,6 +297,7 @@ for await (const chunk of stream) {
|
|
|
298
297
|
| `kilo/openrouter/free` | 200K | | | | | | — | — |
|
|
299
298
|
| `kilo/openrouter/pareto-code` | 200K | | | | | | — | — |
|
|
300
299
|
| `kilo/perceptron/perceptron-mk1` | 33K | | | | | | $0.15 | $2 |
|
|
300
|
+
| `kilo/perceptron/perceptron-mk1.5` | 37K | | | | | | $0.15 | $2 |
|
|
301
301
|
| `kilo/perplexity/sonar` | 127K | | | | | | $1 | $1 |
|
|
302
302
|
| `kilo/perplexity/sonar-deep-research` | 128K | | | | | | $2 | $8 |
|
|
303
303
|
| `kilo/perplexity/sonar-pro` | 200K | | | | | | $3 | $15 |
|
|
@@ -334,7 +334,7 @@ for await (const chunk of stream) {
|
|
|
334
334
|
| `kilo/qwen/qwen3-next-80b-a3b-thinking` | 262K | | | | | | $0.15 | $1 |
|
|
335
335
|
| `kilo/qwen/qwen3-vl-235b-a22b-instruct` | 131K | | | | | | $0.26 | $1 |
|
|
336
336
|
| `kilo/qwen/qwen3-vl-235b-a22b-thinking` | 131K | | | | | | $0.40 | $4 |
|
|
337
|
-
| `kilo/qwen/qwen3-vl-30b-a3b-instruct` |
|
|
337
|
+
| `kilo/qwen/qwen3-vl-30b-a3b-instruct` | 262K | | | | | | $0.13 | $0.52 |
|
|
338
338
|
| `kilo/qwen/qwen3-vl-30b-a3b-thinking` | 131K | | | | | | $0.20 | $2 |
|
|
339
339
|
| `kilo/qwen/qwen3-vl-32b-instruct` | 131K | | | | | | $0.10 | $0.42 |
|
|
340
340
|
| `kilo/qwen/qwen3-vl-8b-instruct` | 131K | | | | | | $0.12 | $0.46 |
|
|
@@ -418,13 +418,12 @@ for await (const chunk of stream) {
|
|
|
418
418
|
| `kilo/z-ai/glm-4.5v` | 66K | | | | | | $0.60 | $2 |
|
|
419
419
|
| `kilo/z-ai/glm-4.6` | 198K | | | | | | $0.43 | $2 |
|
|
420
420
|
| `kilo/z-ai/glm-4.6v` | 131K | | | | | | $0.30 | $0.90 |
|
|
421
|
-
| `kilo/z-ai/glm-4.7` | 203K | | | | | | $0.
|
|
421
|
+
| `kilo/z-ai/glm-4.7` | 203K | | | | | | $0.60 | $2 |
|
|
422
422
|
| `kilo/z-ai/glm-4.7-flash` | 131K | | | | | | $0.06 | $0.40 |
|
|
423
423
|
| `kilo/z-ai/glm-5` | 198K | | | | | | $0.60 | $2 |
|
|
424
424
|
| `kilo/z-ai/glm-5-turbo` | 203K | | | | | | $1 | $4 |
|
|
425
|
-
| `kilo/z-ai/glm-5.1` |
|
|
425
|
+
| `kilo/z-ai/glm-5.1` | 203K | | | | | | $1 | $4 |
|
|
426
426
|
| `kilo/z-ai/glm-5.2` | 1.0M | | | | | | $1 | $4 |
|
|
427
|
-
| `kilo/z-ai/glm-5.2:free` | 33K | | | | | | — | — |
|
|
428
427
|
| `kilo/z-ai/glm-5.3` | 1.0M | | | | | | $1 | $4 |
|
|
429
428
|
| `kilo/z-ai/glm-5.3-flash` | 1.0M | | | | | | $0.15 | $0.50 |
|
|
430
429
|
| `kilo/z-ai/glm-5.3-flashx` | 1.0M | | | | | | $0.37 | $1 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Melious
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 12 Melious models through Mastra's model router. Authentication is handled automatically using the `MELIOUS_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Melious documentation](https://melious.ai/docs/reference/models).
|
|
10
10
|
|
|
@@ -41,12 +41,9 @@ for await (const chunk of stream) {
|
|
|
41
41
|
| `melious/deepseek-r1-0528` | 164K | | | | | | $0.70 | $3 |
|
|
42
42
|
| `melious/deepseek-v3.2` | 164K | | | | | | $0.35 | $0.58 |
|
|
43
43
|
| `melious/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.12 | $0.29 |
|
|
44
|
-
| `melious/deepseek-v4-pro` | 1.0M | | | | | | $2 | $4 |
|
|
45
|
-
| `melious/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $3 |
|
|
46
44
|
| `melious/deepseek-v4.1-flash` | 1.0M | | | | | | $0.23 | $1 |
|
|
47
45
|
| `melious/glm-5` | 203K | | | | | | $1 | $3 |
|
|
48
46
|
| `melious/glm-5.1` | 203K | | | | | | $2 | $5 |
|
|
49
|
-
| `melious/glm-5.2` | 1.0M | | | | | | $1 | $5 |
|
|
50
47
|
| `melious/glm-5.3` | 1.0M | | | | | | $1 | $3 |
|
|
51
48
|
| `melious/glm-5.3-flash` | 1.0M | | | | | | $0.12 | $0.46 |
|
|
52
49
|
| `melious/kimi-k2.5` | 262K | | | | | | $0.58 | $3 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# NanoGPT
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 598 NanoGPT models through Mastra's model router. Authentication is handled automatically using the `NANO_GPT_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [NanoGPT documentation](https://docs.nano-gpt.com).
|
|
10
10
|
|
|
@@ -83,7 +83,7 @@ for await (const chunk of stream) {
|
|
|
83
83
|
| `nano-gpt/anthropic/claude-opus-4.8:thinking` | 1.0M | | | | | | $5 | $25 |
|
|
84
84
|
| `nano-gpt/anthropic/claude-opus-5` | 1.0M | | | | | | $5 | $25 |
|
|
85
85
|
| `nano-gpt/anthropic/claude-opus-5.5` | 1.0M | | | | | | $4 | $20 |
|
|
86
|
-
| `nano-gpt/anthropic/claude-opus-latest` | 1.0M | | | | | | $
|
|
86
|
+
| `nano-gpt/anthropic/claude-opus-latest` | 1.0M | | | | | | $4 | $20 |
|
|
87
87
|
| `nano-gpt/anthropic/claude-sonnet-4` | 200K | | | | | | $3 | $15 |
|
|
88
88
|
| `nano-gpt/anthropic/claude-sonnet-4:thinking` | 1.0M | | | | | | $3 | $15 |
|
|
89
89
|
| `nano-gpt/anthropic/claude-sonnet-4:thinking:1024` | 1.0M | | | | | | $3 | $15 |
|
|
@@ -273,6 +273,7 @@ for await (const chunk of stream) {
|
|
|
273
273
|
| `nano-gpt/LLM360/K2-Think` | 128K | | | | | | $0.17 | $0.68 |
|
|
274
274
|
| `nano-gpt/longcat-2.0` | 1.0M | | | | | | $0.75 | $3 |
|
|
275
275
|
| `nano-gpt/longcat-2.0:thinking` | 1.0M | | | | | | $0.75 | $3 |
|
|
276
|
+
| `nano-gpt/longcat-2.5-preview` | 1.0M | | | | | | $0.75 | $3 |
|
|
276
277
|
| `nano-gpt/MarinaraSpaghetti/NemoMix-Unleashed-12B` | 33K | | | | | | $0.49 | $0.49 |
|
|
277
278
|
| `nano-gpt/meganova-ai/manta-flash-1.0` | 16K | | | | | | $0.02 | $0.16 |
|
|
278
279
|
| `nano-gpt/meganova-ai/manta-mini-1.0` | 8K | | | | | | $0.02 | $0.16 |
|
|
@@ -400,7 +401,7 @@ for await (const chunk of stream) {
|
|
|
400
401
|
| `nano-gpt/openai/gpt-astra-latest` | 1.1M | | | | | | $10 | $50 |
|
|
401
402
|
| `nano-gpt/openai/gpt-chat-latest` | 1.1M | | | | | | $2 | $10 |
|
|
402
403
|
| `nano-gpt/openai/gpt-latest` | 1.1M | | | | | | $10 | $50 |
|
|
403
|
-
| `nano-gpt/openai/gpt-luna-latest` | 1.1M | | | | | | $0.
|
|
404
|
+
| `nano-gpt/openai/gpt-luna-latest` | 1.1M | | | | | | $0.10 | $0.50 |
|
|
404
405
|
| `nano-gpt/openai/gpt-oss-120b` | 128K | | | | | | $0.35 | $0.75 |
|
|
405
406
|
| `nano-gpt/openai/gpt-oss-20b` | 128K | | | | | | $0.20 | $0.30 |
|
|
406
407
|
| `nano-gpt/openai/gpt-oss-safeguard-20b` | 128K | | | | | | $0.07 | $0.30 |
|
|
@@ -419,6 +420,7 @@ for await (const chunk of stream) {
|
|
|
419
420
|
| `nano-gpt/ornith-ai/ornith-1.5-35b-a3b:thinking` | 262K | | | | | | $0.10 | $0.40 |
|
|
420
421
|
| `nano-gpt/pamanseau/OpenReasoning-Nemotron-32B` | 33K | | | | | | $0.10 | $0.40 |
|
|
421
422
|
| `nano-gpt/perceptron/perceptron-mk1` | 33K | | | | | | $0.15 | $2 |
|
|
423
|
+
| `nano-gpt/perceptron/perceptron-mk1.5` | 37K | | | | | | $0.15 | $2 |
|
|
422
424
|
| `nano-gpt/phi-4-mini-instruct` | 128K | | | | | | $0.17 | $0.68 |
|
|
423
425
|
| `nano-gpt/phi-4-multimodal-instruct` | 128K | | | | | | $0.07 | $0.11 |
|
|
424
426
|
| `nano-gpt/pokee-isaac` | 10.0M | | | | | | $0.15 | $1 |
|
|
@@ -546,6 +548,7 @@ for await (const chunk of stream) {
|
|
|
546
548
|
| `nano-gpt/TEE/qwen3.6-27b` | 262K | | | | | | $0.32 | $3 |
|
|
547
549
|
| `nano-gpt/TEE/qwen3.6-35b-a3b` | 262K | | | | | | $0.20 | $1 |
|
|
548
550
|
| `nano-gpt/TEE/qwen3.8-27b` | 262K | | | | | | $0.40 | $3 |
|
|
551
|
+
| `nano-gpt/TEE/qwen3.8-27b-uncensored` | 262K | | | | | | $0.30 | $2 |
|
|
549
552
|
| `nano-gpt/tencent/hy3` | 262K | | | | | | $0.07 | $0.26 |
|
|
550
553
|
| `nano-gpt/tencent/hy4-preview` | 1.0M | | | | | | $0.83 | $3 |
|
|
551
554
|
| `nano-gpt/TheDrummer/Anubis-70B-v1` | 66K | | | | | | $0.31 | $0.31 |
|
|
@@ -586,12 +589,14 @@ for await (const chunk of stream) {
|
|
|
586
589
|
| `nano-gpt/x-ai/grok-4.6` | 500K | | | | | | $2 | $6 |
|
|
587
590
|
| `nano-gpt/x-ai/grok-4.7` | 500K | | | | | | $2 | $5 |
|
|
588
591
|
| `nano-gpt/x-ai/grok-build-0.1` | 256K | | | | | | $1 | $2 |
|
|
589
|
-
| `nano-gpt/x-ai/grok-latest` | 500K | | | | | | $2 | $
|
|
592
|
+
| `nano-gpt/x-ai/grok-latest` | 500K | | | | | | $2 | $5 |
|
|
590
593
|
| `nano-gpt/xiaomi/mimo-v2.5` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
591
594
|
| `nano-gpt/xiaomi/mimo-v2.5-pro` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
592
595
|
| `nano-gpt/xiaomi/mimo-v2.5-pro:thinking` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
593
596
|
| `nano-gpt/xiaomi/mimo-v2.5:thinking` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
594
597
|
| `nano-gpt/xiaomi/mimo-v2.6-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
598
|
+
| `nano-gpt/xiaomi/mimo-v2.6-flash-uncensored` | 1.0M | | | | | | $0.50 | $2 |
|
|
599
|
+
| `nano-gpt/xiaomi/mimo-v2.6-flash-uncensored:thinking` | 1.0M | | | | | | $0.50 | $2 |
|
|
595
600
|
| `nano-gpt/xiaomi/mimo-v2.6-pro` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
596
601
|
| `nano-gpt/xiaomi/mimo-v2.6-pro-ultraspeed` | 1.0M | | | | | | $4 | $9 |
|
|
597
602
|
| `nano-gpt/z-ai/glm-4.5` | 128K | | | | | | $0.30 | $1 |
|
|
@@ -626,6 +631,7 @@ for await (const chunk of stream) {
|
|
|
626
631
|
| `nano-gpt/z-ai/glm-5.3-flash` | 1.0M | | | | | | $0.07 | $0.25 |
|
|
627
632
|
| `nano-gpt/z-ai/glm-5.3-flash-cybersecurity` | 1.0M | | | | | | $0.15 | $0.50 |
|
|
628
633
|
| `nano-gpt/z-ai/glm-5.3-flash-uncensored` | 1.0M | | | | | | $0.20 | $0.80 |
|
|
634
|
+
| `nano-gpt/z-ai/glm-5.3-uncensored` | 1.0M | | | | | | $1 | $2 |
|
|
629
635
|
| `nano-gpt/z-ai/glm-5.3:thinking` | 1.0M | | | | | | $1 | $3 |
|
|
630
636
|
| `nano-gpt/z-ai/glm-5v-turbo` | 203K | | | | | | $1 | $4 |
|
|
631
637
|
| `nano-gpt/z-ai/glm-5v-turbo:thinking` | 203K | | | | | | $1 | $4 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# OpenCode Go
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 42 OpenCode Go models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [OpenCode Go documentation](https://opencode.ai/docs/go).
|
|
10
10
|
|
|
@@ -56,6 +56,7 @@ for await (const chunk of stream) {
|
|
|
56
56
|
| `opencode-go/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
57
57
|
| `opencode-go/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
58
58
|
| `opencode-go/longcat-2.0` | 1.0M | | | | | | $0.30 | $1 |
|
|
59
|
+
| `opencode-go/longcat-2.5-preview-free` | 1.0M | | | | | | — | — |
|
|
59
60
|
| `opencode-go/mimo-v2.5` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
60
61
|
| `opencode-go/mimo-v2.5-pro` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
61
62
|
| `opencode-go/mimo-v2.6-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# OpenCode Zen
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 112 OpenCode Zen models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [OpenCode Zen documentation](https://opencode.ai/docs/zen).
|
|
10
10
|
|
|
@@ -100,12 +100,12 @@ for await (const chunk of stream) {
|
|
|
100
100
|
| `opencode/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
101
101
|
| `opencode/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
102
102
|
| `opencode/ling-3.0-flash-fin-free` | 262K | | | | | | — | — |
|
|
103
|
+
| `opencode/longcat-2.5-preview-free` | 1.0M | | | | | | — | — |
|
|
103
104
|
| `opencode/mimo-v2.6-flash-free` | 200K | | | | | | — | — |
|
|
104
105
|
| `opencode/minimax-m2.5` | 205K | | | | | | $0.30 | $1 |
|
|
105
106
|
| `opencode/minimax-m2.7` | 205K | | | | | | $0.30 | $1 |
|
|
106
107
|
| `opencode/minimax-m3` | 512K | | | | | | $0.30 | $1 |
|
|
107
108
|
| `opencode/muse-spark-1.2` | 1.0M | | | | | | $1 | $4 |
|
|
108
|
-
| `opencode/muse-spark-1.2-contributor-free` | 1.0M | | | | | | — | — |
|
|
109
109
|
| `opencode/muse-spark-1.3` | 1.0M | | | | | | $1 | $4 |
|
|
110
110
|
| `opencode/muse-spark-1.3-contributor-free` | 1.0M | | | | | | — | — |
|
|
111
111
|
| `opencode/nemotron-3-ultra-free` | 1.0M | | | | | | — | — |
|
|
@@ -113,6 +113,7 @@ for await (const chunk of stream) {
|
|
|
113
113
|
| `opencode/qwen3.5-plus` | 262K | | | | | | $0.20 | $1 |
|
|
114
114
|
| `opencode/qwen3.6-plus` | 262K | | | | | | $0.50 | $3 |
|
|
115
115
|
| `opencode/qwen3.8-flash` | 1.0M | | | | | | $0.15 | $0.47 |
|
|
116
|
+
| `opencode/qwen3.8-max` | 262K | | | | | | $2 | $6 |
|
|
116
117
|
| `opencode/space-bunny-free` | 1.0M | | | | | | — | — |
|
|
117
118
|
|
|
118
119
|
Model availability, capabilities, context windows, and pricing are sourced from [models.dev](https://models.dev) and may change.
|
|
@@ -54,8 +54,8 @@ for await (const chunk of stream) {
|
|
|
54
54
|
| `requesty/claude-opus-4-8` | 1.0M | | | | | | $5 | $25 |
|
|
55
55
|
| `requesty/claude-opus-4-8@eu` | 1.0M | | | | | | $6 | $28 |
|
|
56
56
|
| `requesty/claude-opus-5` | 1.0M | | | | | | $5 | $25 |
|
|
57
|
-
| `requesty/claude-opus-5-5` | 1.0M | | | | | | $
|
|
58
|
-
| `requesty/claude-opus-5-5@eu` | 1.0M | | | | | | $
|
|
57
|
+
| `requesty/claude-opus-5-5` | 1.0M | | | | | | $4 | $20 |
|
|
58
|
+
| `requesty/claude-opus-5-5@eu` | 1.0M | | | | | | $4 | $22 |
|
|
59
59
|
| `requesty/claude-opus-5@eu` | 1.0M | | | | | | $6 | $28 |
|
|
60
60
|
| `requesty/claude-sonnet-4-5` | 1.0M | | | | | | $3 | $15 |
|
|
61
61
|
| `requesty/claude-sonnet-4-5@eu` | 1.0M | | | | | | $3 | $17 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# ZenMux
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 129 ZenMux models through Mastra's model router. Authentication is handled automatically using the `ZENMUX_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [ZenMux documentation](https://docs.zenmux.ai).
|
|
10
10
|
|
|
@@ -39,6 +39,7 @@ for await (const chunk of stream) {
|
|
|
39
39
|
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
40
40
|
| --------------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
41
41
|
| `zenmux/anthropic/claude-fable-5` | 1.0M | | | | | | $10 | $50 |
|
|
42
|
+
| `zenmux/anthropic/claude-fable-5.1` | 1.0M | | | | | | $10 | $50 |
|
|
42
43
|
| `zenmux/anthropic/claude-haiku-4.5` | 200K | | | | | | $1 | $5 |
|
|
43
44
|
| `zenmux/anthropic/claude-opus-4` | 200K | | | | | | $15 | $75 |
|
|
44
45
|
| `zenmux/anthropic/claude-opus-4.1` | 200K | | | | | | $15 | $75 |
|
|
@@ -46,6 +47,7 @@ for await (const chunk of stream) {
|
|
|
46
47
|
| `zenmux/anthropic/claude-opus-4.6` | 1.0M | | | | | | $5 | $25 |
|
|
47
48
|
| `zenmux/anthropic/claude-opus-4.7` | 1.0M | | | | | | $5 | $25 |
|
|
48
49
|
| `zenmux/anthropic/claude-opus-4.8` | 1.0M | | | | | | $5 | $25 |
|
|
50
|
+
| `zenmux/anthropic/claude-opus-5.5` | 1.0M | | | | | | $4 | $20 |
|
|
49
51
|
| `zenmux/anthropic/claude-sonnet-4` | 1.0M | | | | | | $3 | $15 |
|
|
50
52
|
| `zenmux/anthropic/claude-sonnet-4.5` | 1.0M | | | | | | $3 | $15 |
|
|
51
53
|
| `zenmux/anthropic/claude-sonnet-4.6` | 1.0M | | | | | | $3 | $15 |
|
|
@@ -56,6 +58,7 @@ for await (const chunk of stream) {
|
|
|
56
58
|
| `zenmux/deepseek/deepseek-v3.2-exp` | 163K | | | | | | $0.22 | $0.33 |
|
|
57
59
|
| `zenmux/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
58
60
|
| `zenmux/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
61
|
+
| `zenmux/deepseek/deepseek-v4.1-flash` | 1.0M | | | | | | $0.15 | $0.60 |
|
|
59
62
|
| `zenmux/google/gemini-2.5-flash` | 1.0M | | | | | | $0.30 | $3 |
|
|
60
63
|
| `zenmux/google/gemini-2.5-flash-lite` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
61
64
|
| `zenmux/google/gemini-2.5-pro` | 1.0M | | | | | | $1 | $10 |
|
|
@@ -77,6 +80,7 @@ for await (const chunk of stream) {
|
|
|
77
80
|
| `zenmux/moonshotai/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
|
|
78
81
|
| `zenmux/moonshotai/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
79
82
|
| `zenmux/moonshotai/kimi-k2.7-code-free` | 262K | | | | | | — | — |
|
|
83
|
+
| `zenmux/moonshotai/kimi-k2.7-code-highspeed` | 262K | | | | | | $2 | $8 |
|
|
80
84
|
| `zenmux/moonshotai/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
81
85
|
| `zenmux/moonshotai/kimi-k3-free` | 1.0M | | | | | | — | — |
|
|
82
86
|
| `zenmux/openai/gpt-5` | 400K | | | | | | $1 | $10 |
|
|
@@ -99,6 +103,8 @@ for await (const chunk of stream) {
|
|
|
99
103
|
| `zenmux/openai/gpt-5.6-luna` | 1.1M | | | | | | $1 | $6 |
|
|
100
104
|
| `zenmux/openai/gpt-5.6-sol` | 1.1M | | | | | | $5 | $30 |
|
|
101
105
|
| `zenmux/openai/gpt-5.6-terra` | 1.1M | | | | | | $3 | $15 |
|
|
106
|
+
| `zenmux/openai/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
|
|
107
|
+
| `zenmux/openai/gpt-6-sol` | 1.1M | | | | | | $2 | $10 |
|
|
102
108
|
| `zenmux/qwen/qwen3-coder-plus` | 1.0M | | | | | | $1 | $5 |
|
|
103
109
|
| `zenmux/qwen/qwen3-max` | 256K | | | | | | $1 | $6 |
|
|
104
110
|
| `zenmux/qwen/qwen3.5-flash` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
@@ -131,6 +137,7 @@ for await (const chunk of stream) {
|
|
|
131
137
|
| `zenmux/xiaomi/mimo-v2-pro` | 1.0M | | | | | | $1 | $3 |
|
|
132
138
|
| `zenmux/xiaomi/mimo-v2.5` | 1.0M | | | | | | $0.40 | $2 |
|
|
133
139
|
| `zenmux/xiaomi/mimo-v2.5-pro` | 1.0M | | | | | | $1 | $3 |
|
|
140
|
+
| `zenmux/xiaomi/mimo-v2.6-pro` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
134
141
|
| `zenmux/z-ai/glm-4.5` | 128K | | | | | | $0.29 | $1 |
|
|
135
142
|
| `zenmux/z-ai/glm-4.5-air` | 128K | | | | | | $0.12 | $0.29 |
|
|
136
143
|
| `zenmux/z-ai/glm-4.6` | 200K | | | | | | $0.29 | $1 |
|
|
@@ -510,6 +510,8 @@ Subscribes to raw stream chunks for a memory thread. Use this before calling `se
|
|
|
510
510
|
|
|
511
511
|
**options.hideSignals** (`boolean | AgentSignalType[]`): Use true to hide all recognized signals, false to show all, or an array to hide selected types from this subscription, including live, idle-persisted, and replayed signals. Other subscribers and the initiating stream keep their own policies.
|
|
512
512
|
|
|
513
|
+
**options.withInitialHistory** (`boolean | { perPage?: number }`): Emit the stored thread messages as one thread-history chunk first, then only retained parts newer than that history, then live parts. Completed runs already in storage aren't replayed; pending tool approvals are still emitted. perPage limits how many recent messages are loaded (default 40). Requires agent memory; without it the subscription is live-only.
|
|
514
|
+
|
|
513
515
|
By default, subscriptions include every signal type, including reactive reminders. To hide reminders for one subscriber without affecting another:
|
|
514
516
|
|
|
515
517
|
```ts
|
|
@@ -520,6 +522,19 @@ const filtered = await agent.subscribeToThread({
|
|
|
520
522
|
})
|
|
521
523
|
```
|
|
522
524
|
|
|
525
|
+
To render a thread without replaying finished runs, request initial history. The first chunk carries the stored messages:
|
|
526
|
+
|
|
527
|
+
```ts
|
|
528
|
+
const subscription = await agent.subscribeToThread({
|
|
529
|
+
threadId: 'thread-abc',
|
|
530
|
+
withInitialHistory: true,
|
|
531
|
+
})
|
|
532
|
+
for await (const chunk of subscription.stream) {
|
|
533
|
+
if (chunk.type === 'thread-history') render(chunk.payload.messages)
|
|
534
|
+
else handle(chunk)
|
|
535
|
+
}
|
|
536
|
+
```
|
|
537
|
+
|
|
523
538
|
`hideSignals: true` hides all recognized signal types. Set it to `false` to show all signals. An array accepts `user`, `state`, `reactive`, `notification`, `user-message`, and `system-reminder`. Matching normalizes `system-reminder` to `reactive` and `user-message` to `user`. An omitted option, `false`, or `[]` excludes nothing. Each subscriber filters its own live and replayed chunks, including remote pubsub events and idle-persisted signals. Filtering preserves non-signal chunks, unknown or malformed signal chunks, ordering, and completion/error events, even when every signal type is excluded.
|
|
524
539
|
|
|
525
540
|
Exclusions don't change model context, storage, shared broadcasts, or another caller's output. They aren't a security boundary and don't replace `ifActive`/`ifIdle` delivery policies or `transient` persistence behavior. This option is supported by the in-process core API, not HTTP or client-js subscription requests. See [stream signal visibility](https://mastra.ai/reference/streaming/agents/stream) for transform ordering and the distinction from recall's exact stored-type matching and reminder-hidden history default.
|
|
@@ -96,7 +96,7 @@ Returns: `DurableAgent`
|
|
|
96
96
|
|
|
97
97
|
## `createEventedAgent(options)`
|
|
98
98
|
|
|
99
|
-
Wraps an `Agent` with fire-and-forget durable execution on the built-in workflow engine. Like `createDurableAgent`, it returns a result you stream from, but the
|
|
99
|
+
Wraps an `Agent` with fire-and-forget durable execution on the built-in evented workflow engine. Like `createDurableAgent`, it returns a result you stream from, but the run is started without being awaited: execution is driven by events on the Mastra instance's PubSub, so the run progresses independently of the caller. Register the agent on a `Mastra` instance with storage to get evented execution; without one, the agent falls back to the default in-process engine and logs a warning. It doesn't accept `id` or `name` overrides.
|
|
100
100
|
|
|
101
101
|
```typescript
|
|
102
102
|
import { createEventedAgent } from '@mastra/core/agent/durable'
|
|
@@ -268,6 +268,8 @@ Returns: `boolean`. `false` when this process has no active run recorded for the
|
|
|
268
268
|
|
|
269
269
|
### Recovery
|
|
270
270
|
|
|
271
|
+
> **Warning:** Recovery re-drives a run from its last persisted snapshot. Mastra treats a sub-agent delegation as one generated `agent-<name>` tool step and doesn't checkpoint its inner LLM or tool calls independently. If recovery replays that step, the entire sub-agent run can execute again, including already-completed tool side effects. Make tools used by sub-agents idempotent, or deduplicate their external side effects. See [crash recovery](https://mastra.ai/docs/harness/durable-agents) for operational guidance.
|
|
272
|
+
|
|
271
273
|
#### `listActiveRuns(options?)`
|
|
272
274
|
|
|
273
275
|
Lists this agent's runs whose persisted snapshot is in `running` status: runs whose agentic loop was mid-execution when the workflow engine last saved state. On a live process they transition to `suspended` or a terminal status. After a crash or restart they stay `running` with nothing driving them, which is what `recoverActiveRuns()` re-drives. Runs started by other durable agents on the same storage aren't included.
|
|
@@ -26,6 +26,25 @@ The provider's `baseUrl` is the public URL the platform sends webhooks and event
|
|
|
26
26
|
|
|
27
27
|
Mastra includes [`SlackProvider`](https://mastra.ai/reference/channels/slack-provider) and [`TelegramProvider`](https://mastra.ai/reference/channels/telegram-provider) implementations. Build a custom provider by implementing this interface.
|
|
28
28
|
|
|
29
|
+
## Dynamic resolution
|
|
30
|
+
|
|
31
|
+
Instead of a static record, `channels` also accepts a resolver: an async function returning the current provider map, with a synchronous `getRoutes()` method. Mastra mounts the resolver's routes at construction and resolves providers at runtime, so connections added after boot become usable without a redeploy. The `channels()` helper from `@mastra/connect` returns a resolver backed by the Mastra platform.
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
import { Mastra } from '@mastra/core/mastra'
|
|
35
|
+
import { channels } from '@mastra/connect'
|
|
36
|
+
|
|
37
|
+
export const mastra = new Mastra({
|
|
38
|
+
channels: await channels({ projectId: process.env.MASTRA_PROJECT_ID! }),
|
|
39
|
+
})
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
With a resolver configured, call `resolveChannels()` to get the current provider map. It also works with a static record, where it returns the record directly.
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
const providers = await mastra.resolveChannels()
|
|
46
|
+
```
|
|
47
|
+
|
|
29
48
|
## Properties
|
|
30
49
|
|
|
31
50
|
**id** (`string`): Unique identifier for this channel type, for example 'slack' or 'discord'. Used as the key when routing events and looking the provider up from Mastra.
|
|
@@ -54,7 +73,7 @@ Access a registered provider through the `channels` getter, keyed by the id you
|
|
|
54
73
|
await mastra.channels.slack.configure({ refreshToken })
|
|
55
74
|
```
|
|
56
75
|
|
|
57
|
-
When the key is only known at runtime, look the provider up by string id instead. `getChannelProvider` takes the concrete type as a generic, and `getChannelProviders` returns every registered provider keyed by id.
|
|
76
|
+
When the key is only known at runtime, look the provider up by string id instead. `getChannelProvider` takes the concrete type as a generic, and `getChannelProviders` returns every registered provider keyed by id. With a [resolver](#dynamic-resolution), both return the latest resolved snapshot. Use `resolveChannels()` when you need providers that reflect the current platform state.
|
|
58
77
|
|
|
59
78
|
```typescript
|
|
60
79
|
import type { SlackProvider } from '@mastra/slack'
|
|
@@ -302,6 +302,8 @@ await subscription.processDataStream({
|
|
|
302
302
|
})
|
|
303
303
|
```
|
|
304
304
|
|
|
305
|
+
Pass `withInitialHistory: true` (or `{ perPage }`) to receive the stored messages as a first `thread-history` chunk instead of fetching history separately. Finished runs aren't replayed after it, so completed answers don't stream again on reconnect.
|
|
306
|
+
|
|
305
307
|
`subscribeToThread()` returns the underlying `Response` plus a `processDataStream()` helper. The helper reads the subscription stream until the connection closes or the request is aborted. Pass `reconnect: true` to resubscribe when the transport closes or a reconnect request fails, such as after a proxy idle timeout.
|
|
306
308
|
|
|
307
309
|
**resourceId** (`string`): Resource ID for the memory thread.
|
|
@@ -51,7 +51,9 @@ For the behavioral prompt Mastra Code uses, covering repository exploration, edi
|
|
|
51
51
|
|
|
52
52
|
**signals** (`SignalProvider[]`): Signal providers for the agent. A TaskSignalProvider is added only when memory is configured, and it is merged into the providers you pass rather than replacing them. Without memory, the agent gets exactly the providers you pass, or none.
|
|
53
53
|
|
|
54
|
-
**errorProcessors** (`Processor[]`): Error processors for the agent. When omitted, defaults to unknown stream-error retries with specialized ECONNRESET and bad-request policies, plus PrefillErrorHandler and
|
|
54
|
+
**errorProcessors** (`Processor[]`): Error processors for the agent. When omitted, defaults to unknown stream-error retries with specialized ECONNRESET and bad-request policies, plus PrefillErrorHandler, ProviderHistoryCompat, and CyberRefusalHandler.
|
|
55
|
+
|
|
56
|
+
**outputProcessors** (`Processor[]`): Output processors for the agent. When omitted, defaults to CyberRefusalHandler.
|
|
55
57
|
|
|
56
58
|
**goal** (`AgentGoalConfig`): Goal configuration. When provided without a prompt, the prompt defaults to DEFAULT\_GOAL\_JUDGE\_PROMPT.
|
|
57
59
|
|
|
@@ -63,23 +65,27 @@ For the behavioral prompt Mastra Code uses, covering repository exploration, edi
|
|
|
63
65
|
|
|
64
66
|
A default is only filled in when you don't provide the corresponding field. `signals` is the exception: the task signal provider is appended to the providers you pass.
|
|
65
67
|
|
|
66
|
-
| Field
|
|
67
|
-
|
|
|
68
|
-
| `workspace`
|
|
69
|
-
| `signals`
|
|
70
|
-
| `errorProcessors`
|
|
71
|
-
| `
|
|
68
|
+
| Field | Default when omitted |
|
|
69
|
+
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
70
|
+
| `workspace` | A [`Workspace`](https://mastra.ai/reference/workspace/workspace-class) backed by `LocalFilesystem` and `LocalSandbox` rooted at the base path. |
|
|
71
|
+
| `signals` | A [`TaskSignalProvider`](https://mastra.ai/reference/signals/task-signal-provider), added only when `memory` is configured. |
|
|
72
|
+
| `errorProcessors` | Unknown stream-error retries with specialized ECONNRESET and bad-request policies, plus `PrefillErrorHandler`, `ProviderHistoryCompat`, and `CyberRefusalHandler`. |
|
|
73
|
+
| `outputProcessors` | [`CyberRefusalHandler`](https://mastra.ai/reference/processors/cyber-refusal-handler). |
|
|
74
|
+
| `maxProcessorRetries` | `DEFAULT_MAX_PROCESSOR_RETRIES` (3), so the output-lane cyber-refusal retry has a budget. |
|
|
75
|
+
| `goal.prompt` | `DEFAULT_GOAL_JUDGE_PROMPT` (only when a `goal` is configured). |
|
|
72
76
|
|
|
73
|
-
Nothing else is filled in. There's no default `model`, `instructions`, `tools`, `memory`, storage, or input
|
|
77
|
+
Nothing else is filled in. There's no default `model`, `instructions`, `tools`, `memory`, storage, or input processors.
|
|
74
78
|
|
|
75
79
|
Each default has an explicit opt-out:
|
|
76
80
|
|
|
77
|
-
| Default
|
|
78
|
-
|
|
|
79
|
-
| Workspace
|
|
80
|
-
| Task tracking
|
|
81
|
-
| Error processors
|
|
82
|
-
|
|
|
81
|
+
| Default | How to opt out |
|
|
82
|
+
| ---------------------- | ------------------------------------------- |
|
|
83
|
+
| Workspace | `workspace: undefined` |
|
|
84
|
+
| Task tracking | Don't configure `memory` on the agent |
|
|
85
|
+
| Error processors | `errorProcessors: []` |
|
|
86
|
+
| Output processors | `outputProcessors: []` |
|
|
87
|
+
| Processor retry budget | `maxProcessorRetries: 0` |
|
|
88
|
+
| Goal judge prompt | Omit `goal`, or pass your own `goal.prompt` |
|
|
83
89
|
|
|
84
90
|
### Workspace
|
|
85
91
|
|
|
@@ -192,6 +198,8 @@ The default [`StreamErrorRetryProcessor`](https://mastra.ai/reference/processors
|
|
|
192
198
|
|
|
193
199
|
Specific network-reset and bad-request policies take precedence over the unknown-error policy. Passing `errorProcessors` replaces the default processor stack. `PrefillErrorHandler` and `ProviderHistoryCompat` are also included for provider compatibility: both repair errors caused by the shape of the message history, such as a provider rejecting a conversation that ends with an assistant message.
|
|
194
200
|
|
|
201
|
+
[`CyberRefusalHandler`](https://mastra.ai/reference/processors/cyber-refusal-handler) retries once when an OpenAI or Anthropic cybersecurity safeguard refuses a step, which often happens to ordinary coding work. It runs in both `errorProcessors` (OpenAI refusals are API errors) and `outputProcessors` (Anthropic refusals finish the step). Passing either list replaces that half of the handler.
|
|
202
|
+
|
|
195
203
|
Retries happen inside the `generate()` or `stream()` call that hit the error, so a recovered failure is invisible to your code. When the retries run out, the error surfaces the way any model error does: `generate()` rejects and `stream()` emits an `error` chunk. `generate()` and `stream()` also accept `errorProcessors` per call, which replaces the agent's stack for that request. See [Processors](https://mastra.ai/docs/agents/processors) for `maxProcessorRetries`, the retry budget these processors share.
|
|
196
204
|
|
|
197
205
|
### Goal
|