@mastra/mcp-docs-server 1.2.19-alpha.15 → 1.2.19-alpha.18
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/channels.md +27 -1
- package/.docs/docs/mastra-platform/api.md +54 -0
- package/.docs/docs/mastra-platform/observability.md +3 -1
- package/.docs/docs/memory/semantic-recall.md +19 -0
- package/.docs/docs/observability/feedback.md +14 -0
- package/.docs/docs/observability/metrics/overview.md +31 -44
- package/.docs/docs/server/middleware.md +26 -0
- package/.docs/docs/server/server-adapters.md +97 -26
- package/.docs/docs/subagents.md +6 -6
- package/.docs/integrations/channels/github.md +56 -9
- package/.docs/integrations/sandboxes/daytona.md +18 -0
- package/.docs/integrations/sandboxes/e2b.md +4 -0
- package/.docs/integrations/sandboxes/vercel.md +2 -2
- package/.docs/models/environment-variables.md +5 -0
- package/.docs/models/gateways/netlify.md +1 -1
- package/.docs/models/gateways/openrouter.md +2 -2
- package/.docs/models/gateways/vercel.md +5 -2
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/agnes.md +75 -0
- package/.docs/models/providers/cline-pass.md +4 -2
- package/.docs/models/providers/deepseek.md +4 -6
- package/.docs/models/providers/digitalocean.md +3 -3
- package/.docs/models/providers/edenai.md +5 -4
- package/.docs/models/providers/evroc.md +3 -2
- package/.docs/models/providers/hyper.md +3 -3
- package/.docs/models/providers/inceptron.md +1 -1
- package/.docs/models/providers/iteracompute.md +73 -0
- package/.docs/models/providers/kilo.md +13 -13
- package/.docs/models/providers/llmgateway-providers.md +4 -3
- package/.docs/models/providers/nano-gpt.md +11 -9
- package/.docs/models/providers/neosmith.md +104 -0
- package/.docs/models/providers/openai.md +2 -2
- package/.docs/models/providers/opencode-go.md +2 -2
- package/.docs/models/providers/pendra.md +78 -0
- package/.docs/models/providers/standardcompute.md +73 -0
- package/.docs/models/providers/vivgrid.md +2 -1
- package/.docs/models/providers/wandb.md +2 -1
- package/.docs/models/providers/zai.md +2 -1
- package/.docs/models/providers.md +5 -0
- package/.docs/reference/cli/mastra.md +10 -4
- package/.docs/reference/client-js/observability.md +1 -1
- package/.docs/reference/index.md +2 -0
- package/.docs/reference/observability/feedback.md +4 -0
- package/.docs/reference/observability/metrics/automatic-metrics.md +1 -1
- package/.docs/reference/observability/metrics/queries.md +462 -0
- package/.docs/reference/server/elysia-adapter.md +184 -0
- package/.docs/reference/workspace/local-sandbox.md +2 -0
- package/.docs/reference/workspace/platform-sandbox.md +3 -1
- package/.docs/reference/workspace/sandbox.md +70 -2
- package/CHANGELOG.md +14 -0
- package/package.json +5 -5
- package/.docs/docs/observability/metrics/querying.md +0 -314
|
@@ -74,7 +74,7 @@ export const mastra = new Mastra({
|
|
|
74
74
|
})
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
After the agent has created a memory thread, subscribe that thread to a PR.
|
|
77
|
+
After the agent has created a memory thread, subscribe that thread to a PR. Choose `review` mode when the thread only needs code revisions, authorized latest PR comments, and observable review-thread-state updates:
|
|
78
78
|
|
|
79
79
|
```typescript
|
|
80
80
|
await githubSignals.subscribeThreadToPR({
|
|
@@ -85,19 +85,66 @@ await githubSignals.subscribeThreadToPR({
|
|
|
85
85
|
repo: 'web-app',
|
|
86
86
|
number: 42,
|
|
87
87
|
},
|
|
88
|
+
mode: 'review',
|
|
88
89
|
})
|
|
89
90
|
```
|
|
90
91
|
|
|
91
92
|
The provider syncs the PR immediately, stores the subscription, and starts polling every five minutes. Set `pollIntervalMs` in the `GithubSignals` constructor to change the interval. If the process restarts, call `startPollingForThread()` for each persisted thread subscription to resume polling.
|
|
92
93
|
|
|
93
|
-
|
|
94
|
+
A thread has one current GitHub Signals subscription. Subscribing it to another PR replaces the existing subscription.
|
|
94
95
|
|
|
95
|
-
|
|
96
|
+
## Subscription modes
|
|
96
97
|
|
|
97
|
-
|
|
98
|
-
- A change in unresolved review threads.
|
|
99
|
-
- Continuous integration (CI) checks that start, fail, or recover.
|
|
100
|
-
- Merge conflicts that appear or are resolved.
|
|
101
|
-
- A state change to closed, reopened, or merged.
|
|
98
|
+
GitHub Signals supports two subscription modes:
|
|
102
99
|
|
|
103
|
-
|
|
100
|
+
- `review`: Follows new head revisions, authorized latest PR comments, and observable review-thread-state changes, including when all review threads become resolved.
|
|
101
|
+
- `working`: Follows all actionable PR activity detected by the provider. Comment-bearing notifications remain subject to existing authorization gates. This is the default when `mode` is omitted and for stored subscriptions without a valid mode.
|
|
102
|
+
|
|
103
|
+
The following table shows the observable behavior of each mode:
|
|
104
|
+
|
|
105
|
+
| Pull request activity | `working` | `review` |
|
|
106
|
+
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
107
|
+
| First observation | Sends a baseline notification | Saves all cursors without notifying unless the PR is closed or merged; then notifies and removes the subscription |
|
|
108
|
+
| New commit or force-push | Notifies when the latest comment author is authorized | Notifies without requiring a comment author |
|
|
109
|
+
| New authorized latest PR comment | Notifies | Notifies |
|
|
110
|
+
| Observable review-thread-state change | Notifies while unresolved threads remain | Notifies, including when all review threads become resolved |
|
|
111
|
+
| Continuous integration checks start, fail, or recover | Notifies | Saves the new state without notifying |
|
|
112
|
+
| Merge conflicts appear or resolve | Notifies | Saves the new state without notifying |
|
|
113
|
+
| Other actionable aggregate PR activity | Notifies when applicable authorization checks pass | Saves the new state without notifying |
|
|
114
|
+
| PR closes without merging | Notifies and keeps the subscription | Notifies and removes the subscription |
|
|
115
|
+
| PR reopens | Notifies | Doesn't notify because the earlier close removed the subscription |
|
|
116
|
+
| PR merges | Notifies and removes the subscription | Notifies and removes the subscription |
|
|
117
|
+
|
|
118
|
+
Review mode uses the latest generic PR comment exposed by `gitcrawl`. The snapshot doesn't distinguish general PR conversation from inline review comments. Comment notifications require an authorized author because they include comment content. Review-state notifications contain only provider-generated state summaries and aren't author-gated.
|
|
119
|
+
|
|
120
|
+
The review-state cursor includes the unresolved thread count and the latest unresolved thread timestamp. It reports when the count reaches zero, but it can't report replies on threads that are already resolved.
|
|
121
|
+
|
|
122
|
+
During subscription, a PR already known to be closed or merged isn't stored and doesn't send an activity notification. Otherwise, review mode silently saves its first available non-terminal snapshot, including when the subscribe-time snapshot fails and a later poll supplies the first observation. If the first available poll snapshot or a later snapshot is closed or merged, the provider sends a terminal notification and removes the subscription. It doesn't follow a later reopen unless you subscribe again.
|
|
123
|
+
|
|
124
|
+
## Subscription tools
|
|
125
|
+
|
|
126
|
+
The provider adds `github_subscribe_pr` and `github_unsubscribe_pr` tools to the agent. Pass `mode` when subscribing:
|
|
127
|
+
|
|
128
|
+
```json
|
|
129
|
+
{
|
|
130
|
+
"owner": "acme",
|
|
131
|
+
"repo": "web-app",
|
|
132
|
+
"number": 42,
|
|
133
|
+
"mode": "review"
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Omitting `mode` selects `working`. Don't subscribe for a one-off PR inspection.
|
|
138
|
+
|
|
139
|
+
## MastraCode commands
|
|
140
|
+
|
|
141
|
+
In MastraCode, use the spaced `--mode` flag with a PR number, `owner/repo#number`, or full GitHub PR URL:
|
|
142
|
+
|
|
143
|
+
```text
|
|
144
|
+
/github subscribe 42 --mode review
|
|
145
|
+
/github acme/web-app#42 --mode working
|
|
146
|
+
/github unsubscribe 42
|
|
147
|
+
/github debug
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
MastraCode rejects `--mode=review`, missing or repeated mode values, unknown modes, and mode flags on unsubscribe. `/github debug` shows the stored mode and displays absent or invalid legacy values as `working`.
|
|
@@ -282,6 +282,22 @@ await sandbox.instance.updateNetworkSettings({
|
|
|
282
282
|
})
|
|
283
283
|
```
|
|
284
284
|
|
|
285
|
+
### Secrets
|
|
286
|
+
|
|
287
|
+
Inject credentials without exposing raw values to code running inside the sandbox. Create a [Daytona Secret](https://www.daytona.io/docs/en/secrets/) once for your organization (via the Daytona dashboard or SDK), then map environment variable names to Secret names:
|
|
288
|
+
|
|
289
|
+
```typescript
|
|
290
|
+
const workspace = new Workspace({
|
|
291
|
+
sandbox: new DaytonaSandbox({
|
|
292
|
+
secrets: {
|
|
293
|
+
GITHUB_TOKEN: 'github-token',
|
|
294
|
+
},
|
|
295
|
+
}),
|
|
296
|
+
})
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
Inside the sandbox, the environment variable holds an opaque placeholder. Daytona's egress proxy substitutes the real value into HTTPS request headers toward the Secret's allowed hosts, so the raw credential never enters the sandbox. Secrets are applied at sandbox creation and are preserved by `clone()`.
|
|
300
|
+
|
|
285
301
|
## Constructor parameters
|
|
286
302
|
|
|
287
303
|
**id** (`string`): Unique identifier for this sandbox instance. (Default: `Auto-generated`)
|
|
@@ -328,6 +344,8 @@ await sandbox.instance.updateNetworkSettings({
|
|
|
328
344
|
|
|
329
345
|
**domainAllowList** (`string`): Comma-separated list of allowed domains when network access is restricted. Supports wildcards, for example \*.githubusercontent.com. Use this instead of networkAllowList for services whose IP addresses change.
|
|
330
346
|
|
|
347
|
+
**secrets** (`Record<string, string>`): Daytona Secrets to expose inside the sandbox, mapping environment variable names to Daytona Secret names. The env var holds an opaque placeholder; the real value is substituted into HTTPS request headers at egress toward the Secret's allowed hosts.
|
|
348
|
+
|
|
331
349
|
## Properties
|
|
332
350
|
|
|
333
351
|
**id** (`string`): Sandbox instance identifier.
|
|
@@ -68,6 +68,8 @@ const agent = new Agent({
|
|
|
68
68
|
|
|
69
69
|
**id** (`string`): Unique identifier for this sandbox instance (Default: `Auto-generated`)
|
|
70
70
|
|
|
71
|
+
**sandboxId** (`string`): Persisted E2B provider sandbox ID to reattach to deterministically. When set, start() connects to this exact sandbox (resuming it if paused) instead of discovering by logical id metadata. Only a typed "sandbox gone" error (not found, killed, or not running) falls through to the usual logical-id lookup and create ladder; auth, quota, rate-limit, timeout, and network errors propagate without creating a new sandbox. A sandbox tagged with a different logical id is refused. Read the resolved provider ID from the sandboxId property after start.
|
|
72
|
+
|
|
71
73
|
**domain** (`string`): Domain for self-hosted E2B. Falls back to E2B\_DOMAIN env var.
|
|
72
74
|
|
|
73
75
|
**apiUrl** (`string`): API URL for self-hosted E2B. Falls back to E2B\_API\_URL env var.
|
|
@@ -88,6 +90,8 @@ const agent = new Agent({
|
|
|
88
90
|
|
|
89
91
|
**status** (`ProviderStatus`): 'pending' | 'initializing' | 'ready' | 'starting' | 'running' | 'stopping' | 'stopped' | 'destroying' | 'destroyed' | 'error'
|
|
90
92
|
|
|
93
|
+
**sandboxId** (`string | undefined`): The E2B provider sandbox ID resolved after connect or create. Persist it and pass it back via the sandboxId constructor option (or clone({ sandboxId })) to reattach deterministically. Undefined until the sandbox has been started in this process.
|
|
94
|
+
|
|
91
95
|
**processes** (`E2BProcessManager`): Background process manager. See SandboxProcessManager reference.
|
|
92
96
|
|
|
93
97
|
## Background processes
|
|
@@ -158,7 +158,7 @@ Both callbacks are optional and can be used independently.
|
|
|
158
158
|
|
|
159
159
|
**instructions** (`string | ((opts) => string)`): Override the default instructions returned by getInstructions(). Pass a string to replace them, or a function to extend the defaults.
|
|
160
160
|
|
|
161
|
-
**onStart** (`
|
|
161
|
+
**onStart** (`SandboxStartHook`): Lifecycle hook called after the sandbox reaches running status.
|
|
162
162
|
|
|
163
163
|
**onStop** (`SandboxLifecycleHook`): Lifecycle hook called before the sandbox stops.
|
|
164
164
|
|
|
@@ -303,7 +303,7 @@ const workspace = new Workspace({
|
|
|
303
303
|
|
|
304
304
|
**instructions** (`string | ((opts) => string)`): Custom instructions that override the default instructions returned by getInstructions(). Pass a string to fully replace, or a function to extend the defaults.
|
|
305
305
|
|
|
306
|
-
**onStart** (`
|
|
306
|
+
**onStart** (`SandboxStartHook`): Lifecycle hook called after the sandbox reaches running status.
|
|
307
307
|
|
|
308
308
|
**onStop** (`SandboxLifecycleHook`): Lifecycle hook called before the sandbox stops.
|
|
309
309
|
|
|
@@ -10,6 +10,7 @@ List of required environment variables for each model provider and gateway suppo
|
|
|
10
10
|
| [Abacus](https://mastra.ai/models/providers/abacus) | `abacus/*` | `ABACUS_API_KEY` |
|
|
11
11
|
| [abliteration.ai](https://mastra.ai/models/providers/abliteration-ai) | `abliteration-ai/*` | `ABLIT_KEY` |
|
|
12
12
|
| [AgentRouter](https://mastra.ai/models/providers/agentrouter) | `agentrouter/*` | `AGENTROUTER_API_KEY` |
|
|
13
|
+
| [Agnes AI](https://mastra.ai/models/providers/agnes) | `agnes/*` | `AGNES_API_KEY` |
|
|
13
14
|
| [AI-ROUTER](https://mastra.ai/models/providers/ai-router) | `ai-router/*` | `AI_ROUTER_API_KEY` |
|
|
14
15
|
| [ai&](https://mastra.ai/models/providers/aiand) | `aiand/*` | `AIAND_API_KEY` |
|
|
15
16
|
| [AKI.IO](https://mastra.ai/models/providers/aki-io) | `aki-io/*` | `AKI_IO_API_KEY` |
|
|
@@ -77,6 +78,7 @@ List of required environment variables for each model provider and gateway suppo
|
|
|
77
78
|
| [InferX](https://mastra.ai/models/providers/inferx) | `inferx/*` | `INFERX_API_KEY` |
|
|
78
79
|
| [Infomaniak](https://mastra.ai/models/providers/infomaniak) | `infomaniak/*` | `INFOMANIAK_PRODUCT_ID`, `INFOMANIAK_API_KEY` |
|
|
79
80
|
| [IO.NET](https://mastra.ai/models/providers/io-net) | `io-net/*` | `IOINTELLIGENCE_API_KEY` |
|
|
81
|
+
| [IteraCompute](https://mastra.ai/models/providers/iteracompute) | `iteracompute/*` | `ITERACOMPUTE_API_KEY` |
|
|
80
82
|
| [Jalapeno Cloud](https://mastra.ai/models/providers/jalapeno) | `jalapeno/*` | `JALAPENO_API_KEY` |
|
|
81
83
|
| [Jiekou.AI](https://mastra.ai/models/providers/jiekou) | `jiekou/*` | `JIEKOU_API_KEY` |
|
|
82
84
|
| [Kenari](https://mastra.ai/models/providers/kenari) | `kenari/*` | `KENARI_API_KEY` |
|
|
@@ -111,6 +113,7 @@ List of required environment variables for each model provider and gateway suppo
|
|
|
111
113
|
| [NanoGPT](https://mastra.ai/models/providers/nano-gpt) | `nano-gpt/*` | `NANO_GPT_API_KEY` |
|
|
112
114
|
| [NEAR AI Cloud](https://mastra.ai/models/providers/nearai) | `nearai/*` | `NEARAI_API_KEY` |
|
|
113
115
|
| [Nebius Token Factory](https://mastra.ai/models/providers/nebius) | `nebius/*` | `NEBIUS_API_KEY` |
|
|
116
|
+
| [NeoSmith](https://mastra.ai/models/providers/neosmith) | `neosmith/*` | `NEOSMITH_API_KEY` |
|
|
114
117
|
| [Neuralwatt](https://mastra.ai/models/providers/neuralwatt) | `neuralwatt/*` | `NEURALWATT_API_KEY` |
|
|
115
118
|
| [Nova](https://mastra.ai/models/providers/nova) | `nova/*` | `NOVA_API_KEY` |
|
|
116
119
|
| [NovitaAI](https://mastra.ai/models/providers/novita-ai) | `novita-ai/*` | `NOVITA_API_KEY` |
|
|
@@ -123,6 +126,7 @@ List of required environment variables for each model provider and gateway suppo
|
|
|
123
126
|
| [Opper](https://mastra.ai/models/providers/opper) | `opper/*` | `OPPER_API_KEY` |
|
|
124
127
|
| [OrcaRouter](https://mastra.ai/models/providers/orcarouter) | `orcarouter/*` | `ORCAROUTER_API_KEY` |
|
|
125
128
|
| [OVHcloud AI Endpoints](https://mastra.ai/models/providers/ovhcloud) | `ovhcloud/*` | `OVHCLOUD_API_KEY` |
|
|
129
|
+
| [Pendra](https://mastra.ai/models/providers/pendra) | `pendra/*` | `PENDRA_API_KEY` |
|
|
126
130
|
| [Perplexity](https://mastra.ai/models/providers/perplexity) | `perplexity/*` | `PERPLEXITY_API_KEY` |
|
|
127
131
|
| [Perplexity Agent](https://mastra.ai/models/providers/perplexity-agent) | `perplexity-agent/*` | `PERPLEXITY_API_KEY` |
|
|
128
132
|
| [Pioneer](https://mastra.ai/models/providers/pioneer) | `pioneer/*` | `PIONEER_API_KEY` |
|
|
@@ -144,6 +148,7 @@ List of required environment variables for each model provider and gateway suppo
|
|
|
144
148
|
| [SiliconFlow (China)](https://mastra.ai/models/providers/siliconflow-cn) | `siliconflow-cn/*` | `SILICONFLOW_CN_API_KEY` |
|
|
145
149
|
| [Snowflake Cortex](https://mastra.ai/models/providers/snowflake-cortex) | `snowflake-cortex/*` | `SNOWFLAKE_ACCOUNT`, `SNOWFLAKE_CORTEX_PAT` |
|
|
146
150
|
| [STACKIT](https://mastra.ai/models/providers/stackit) | `stackit/*` | `STACKIT_API_KEY` |
|
|
151
|
+
| [Standard Compute](https://mastra.ai/models/providers/standardcompute) | `standardcompute/*` | `STANDARDCOMPUTE_API_KEY` |
|
|
147
152
|
| [StepFun (China)](https://mastra.ai/models/providers/stepfun) | `stepfun/*` | `STEPFUN_API_KEY` |
|
|
148
153
|
| [StepFun (Global)](https://mastra.ai/models/providers/stepfun-ai) | `stepfun-ai/*` | `STEPFUN_API_KEY` |
|
|
149
154
|
| [StepFun Step Plan (China)](https://mastra.ai/models/providers/stepfun-step-plan) | `stepfun-step-plan/*` | `STEPFUN_API_KEY` |
|
|
@@ -137,7 +137,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
137
137
|
| `openrouter/google/gemma-3-12b-it` |
|
|
138
138
|
| `openrouter/google/gemma-3-27b-it` |
|
|
139
139
|
| `openrouter/google/gemma-3-4b-it` |
|
|
140
|
-
| `openrouter/google/gemma-3n-e4b-it` |
|
|
141
140
|
| `openrouter/google/gemma-4-26b-a4b-it` |
|
|
142
141
|
| `openrouter/google/gemma-4-31b-it` |
|
|
143
142
|
| `openrouter/gryphe/mythomax-l2-13b` |
|
|
@@ -169,6 +168,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
169
168
|
| `openrouter/mistralai/ministral-8b-2512` |
|
|
170
169
|
| `openrouter/mistralai/mistral-large-2512` |
|
|
171
170
|
| `openrouter/mistralai/mistral-medium-3` |
|
|
171
|
+
| `openrouter/mistralai/mistral-medium-3-5` |
|
|
172
172
|
| `openrouter/mistralai/mistral-medium-3.1` |
|
|
173
173
|
| `openrouter/mistralai/mistral-nemo` |
|
|
174
174
|
| `openrouter/mistralai/mistral-small-24b-instruct-2501` |
|
|
@@ -131,7 +131,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
131
131
|
| `google/gemma-3-12b-it` |
|
|
132
132
|
| `google/gemma-3-27b-it` |
|
|
133
133
|
| `google/gemma-3-4b-it` |
|
|
134
|
-
| `google/gemma-3n-e4b-it` |
|
|
135
134
|
| `google/gemma-4-26b-a4b-it` |
|
|
136
135
|
| `google/gemma-4-26b-a4b-it:free` |
|
|
137
136
|
| `google/gemma-4-31b-it` |
|
|
@@ -170,7 +169,9 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
170
169
|
| `minimax/minimax-m2.1` |
|
|
171
170
|
| `minimax/minimax-m2.5` |
|
|
172
171
|
| `minimax/minimax-m2.7` |
|
|
172
|
+
| `minimax/minimax-m2.7:free` |
|
|
173
173
|
| `minimax/minimax-m3` |
|
|
174
|
+
| `minimax/minimax-m3:free` |
|
|
174
175
|
| `mistralai/codestral-2508` |
|
|
175
176
|
| `mistralai/devstral-2512` |
|
|
176
177
|
| `mistralai/ministral-14b-2512` |
|
|
@@ -293,7 +294,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
293
294
|
| `qwen/qwen-2.5-coder-32b-instruct` |
|
|
294
295
|
| `qwen/qwen-plus` |
|
|
295
296
|
| `qwen/qwen-plus-2025-07-28` |
|
|
296
|
-
| `qwen/qwen-plus-2025-07-28:thinking` |
|
|
297
297
|
| `qwen/qwen2.5-vl-72b-instruct` |
|
|
298
298
|
| `qwen/qwen3-14b` |
|
|
299
299
|
| `qwen/qwen3-235b-a22b` |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Vercel
|
|
4
4
|
|
|
5
|
-
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
5
|
+
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 351 models through Mastra's model router.
|
|
6
6
|
|
|
7
7
|
Learn more in the [Vercel documentation](https://ai-sdk.dev/providers/ai-sdk-providers).
|
|
8
8
|
|
|
@@ -75,6 +75,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
75
75
|
| `alibaba/wan-v2.6-t2v` |
|
|
76
76
|
| `alibaba/wan-v2.7-r2v` |
|
|
77
77
|
| `alibaba/wan-v2.7-t2v` |
|
|
78
|
+
| `alibaba/wan-v3.0-video` |
|
|
78
79
|
| `amazon/nova-2-lite` |
|
|
79
80
|
| `amazon/nova-lite` |
|
|
80
81
|
| `amazon/nova-micro` |
|
|
@@ -203,8 +204,10 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
203
204
|
| `minimax/minimax-m2.5` |
|
|
204
205
|
| `minimax/minimax-m2.5-highspeed` |
|
|
205
206
|
| `minimax/minimax-m2.7` |
|
|
207
|
+
| `minimax/minimax-m2.7-free` |
|
|
206
208
|
| `minimax/minimax-m2.7-highspeed` |
|
|
207
209
|
| `minimax/minimax-m3` |
|
|
210
|
+
| `minimax/minimax-m3-free` |
|
|
208
211
|
| `mistral/codestral` |
|
|
209
212
|
| `mistral/codestral-embed` |
|
|
210
213
|
| `mistral/devstral-2` |
|
|
@@ -233,7 +236,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
233
236
|
| `nvidia/nemotron-3-super-120b-a12b` |
|
|
234
237
|
| `nvidia/nemotron-3-ultra-550b-a55b` |
|
|
235
238
|
| `nvidia/nemotron-3.5-lightning` |
|
|
236
|
-
| `nvidia/nemotron-3.5-lightning-free` |
|
|
237
239
|
| `nvidia/nemotron-nano-12b-v2-vl` |
|
|
238
240
|
| `nvidia/nemotron-nano-9b-v2` |
|
|
239
241
|
| `openai/gpt-3.5-turbo` |
|
|
@@ -289,6 +291,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
289
291
|
| `openai/gpt-image-2` |
|
|
290
292
|
| `openai/gpt-oss-120b` |
|
|
291
293
|
| `openai/gpt-oss-20b` |
|
|
294
|
+
| `openai/gpt-oss-safeguard-120b` |
|
|
292
295
|
| `openai/gpt-oss-safeguard-20b` |
|
|
293
296
|
| `openai/gpt-realtime-1.5` |
|
|
294
297
|
| `openai/gpt-realtime-2` |
|
package/.docs/models/index.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Model Providers
|
|
4
4
|
|
|
5
|
-
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to
|
|
5
|
+
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 6846 models from 187 providers through a single API.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
> Discover all available pages from the documentation index: https://mastra.ai/llms.txt
|
|
2
|
+
|
|
3
|
+
# Agnes AI
|
|
4
|
+
|
|
5
|
+
Access 3 Agnes AI models through Mastra's model router. Authentication is handled automatically using the `AGNES_API_KEY` environment variable.
|
|
6
|
+
|
|
7
|
+
Learn more in the [Agnes AI documentation](https://agnes-ai.com/doc).
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
AGNES_API_KEY=your-api-key
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { Agent } from "@mastra/core/agent";
|
|
15
|
+
|
|
16
|
+
const agent = new Agent({
|
|
17
|
+
id: "my-agent",
|
|
18
|
+
name: "My Agent",
|
|
19
|
+
instructions: "You are a helpful assistant",
|
|
20
|
+
model: "agnes/agnes-2.0-flash"
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// Generate a response
|
|
24
|
+
const response = await agent.generate("Hello!");
|
|
25
|
+
|
|
26
|
+
// Stream a response
|
|
27
|
+
const stream = await agent.stream("Tell me a story");
|
|
28
|
+
for await (const chunk of stream) {
|
|
29
|
+
console.log(chunk);
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
> **Note:** Mastra uses the OpenAI-compatible `/chat/completions` endpoint. Some provider-specific features may not be available. Check the [Agnes AI documentation](https://agnes-ai.com/doc) for details.
|
|
34
|
+
|
|
35
|
+
## Models
|
|
36
|
+
|
|
37
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
38
|
+
| --------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
39
|
+
| `agnes/agnes-2.0-flash` | 512K | | | | | | — | — |
|
|
40
|
+
| `agnes/agnes-2.5-flash` | 512K | | | | | | — | — |
|
|
41
|
+
| `agnes/agnes-2.5-pro-alpha` | 1.0M | | | | | | $0.45 | $0.90 |
|
|
42
|
+
|
|
43
|
+
## Advanced configuration
|
|
44
|
+
|
|
45
|
+
### Custom headers
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
const agent = new Agent({
|
|
49
|
+
id: "custom-agent",
|
|
50
|
+
name: "custom-agent",
|
|
51
|
+
model: {
|
|
52
|
+
url: "https://apihub.agnes-ai.com/v1",
|
|
53
|
+
id: "agnes/agnes-2.0-flash",
|
|
54
|
+
apiKey: process.env.AGNES_API_KEY,
|
|
55
|
+
headers: {
|
|
56
|
+
"X-Custom-Header": "value"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Dynamic model selection
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
const agent = new Agent({
|
|
66
|
+
id: "dynamic-agent",
|
|
67
|
+
name: "Dynamic Agent",
|
|
68
|
+
model: ({ requestContext }) => {
|
|
69
|
+
const useAdvanced = requestContext.task === "complex";
|
|
70
|
+
return useAdvanced
|
|
71
|
+
? "agnes/agnes-2.5-pro-alpha"
|
|
72
|
+
: "agnes/agnes-2.0-flash";
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# ClinePass
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 13 ClinePass models through Mastra's model router. Authentication is handled automatically using the `CLINE_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [ClinePass documentation](https://docs.cline.bot/getting-started/clinepass).
|
|
8
8
|
|
|
@@ -39,6 +39,7 @@ for await (const chunk of stream) {
|
|
|
39
39
|
| `cline-pass/cline-pass/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
40
40
|
| `cline-pass/cline-pass/deepseek-v4-pro` | 1.0M | | | | | | $2 | $3 |
|
|
41
41
|
| `cline-pass/cline-pass/glm-5.2` | 1.0M | | | | | | $1 | $4 |
|
|
42
|
+
| `cline-pass/cline-pass/glm-5.3` | 1.0M | | | | | | $1 | $4 |
|
|
42
43
|
| `cline-pass/cline-pass/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
|
|
43
44
|
| `cline-pass/cline-pass/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
44
45
|
| `cline-pass/cline-pass/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
@@ -47,6 +48,7 @@ for await (const chunk of stream) {
|
|
|
47
48
|
| `cline-pass/cline-pass/minimax-m3` | 512K | | | | | | $0.30 | $1 |
|
|
48
49
|
| `cline-pass/cline-pass/qwen3.7-max` | 1.0M | | | | | | $3 | $8 |
|
|
49
50
|
| `cline-pass/cline-pass/qwen3.7-plus` | 1.0M | | | | | | $0.40 | $2 |
|
|
51
|
+
| `cline-pass/cline-pass/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
|
|
50
52
|
|
|
51
53
|
## Advanced configuration
|
|
52
54
|
|
|
@@ -76,7 +78,7 @@ const agent = new Agent({
|
|
|
76
78
|
model: ({ requestContext }) => {
|
|
77
79
|
const useAdvanced = requestContext.task === "complex";
|
|
78
80
|
return useAdvanced
|
|
79
|
-
? "cline-pass/cline-pass/qwen3.
|
|
81
|
+
? "cline-pass/cline-pass/qwen3.8-max"
|
|
80
82
|
: "cline-pass/cline-pass/deepseek-v4-flash";
|
|
81
83
|
}
|
|
82
84
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# DeepSeek
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 3 DeepSeek models through Mastra's model router. Authentication is handled automatically using the `DEEPSEEK_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [DeepSeek documentation](https://api-docs.deepseek.com/quick_start/pricing).
|
|
8
8
|
|
|
@@ -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: "deepseek/deepseek-
|
|
20
|
+
model: "deepseek/deepseek-v4-flash"
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
// Generate a response
|
|
@@ -34,8 +34,6 @@ for await (const chunk of stream) {
|
|
|
34
34
|
|
|
35
35
|
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
36
36
|
| --------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
37
|
-
| `deepseek/deepseek-chat` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
38
|
-
| `deepseek/deepseek-reasoner` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
39
37
|
| `deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
40
38
|
| `deepseek/deepseek-v4-flash-vision-exp` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
41
39
|
| `deepseek/deepseek-v4-pro` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
@@ -50,7 +48,7 @@ const agent = new Agent({
|
|
|
50
48
|
name: "custom-agent",
|
|
51
49
|
model: {
|
|
52
50
|
url: "https://api.deepseek.com",
|
|
53
|
-
id: "deepseek/deepseek-
|
|
51
|
+
id: "deepseek/deepseek-v4-flash",
|
|
54
52
|
apiKey: process.env.DEEPSEEK_API_KEY,
|
|
55
53
|
headers: {
|
|
56
54
|
"X-Custom-Header": "value"
|
|
@@ -69,7 +67,7 @@ const agent = new Agent({
|
|
|
69
67
|
const useAdvanced = requestContext.task === "complex";
|
|
70
68
|
return useAdvanced
|
|
71
69
|
? "deepseek/deepseek-v4-pro"
|
|
72
|
-
: "deepseek/deepseek-
|
|
70
|
+
: "deepseek/deepseek-v4-flash";
|
|
73
71
|
}
|
|
74
72
|
});
|
|
75
73
|
```
|
|
@@ -104,9 +104,9 @@ for await (const chunk of stream) {
|
|
|
104
104
|
| `digitalocean/openai-gpt-5.4-nano` | 400K | | | | | | $0.20 | $1 |
|
|
105
105
|
| `digitalocean/openai-gpt-5.4-pro` | 1.1M | | | | | | $30 | $180 |
|
|
106
106
|
| `digitalocean/openai-gpt-5.5` | 1.0M | | | | | | $5 | $30 |
|
|
107
|
-
| `digitalocean/openai-gpt-5.6-luna` | 1.1M | | | | | | $0.
|
|
108
|
-
| `digitalocean/openai-gpt-5.6-sol` | 1.1M | | | | | | $
|
|
109
|
-
| `digitalocean/openai-gpt-5.6-terra` | 1.1M | | | | | | $
|
|
107
|
+
| `digitalocean/openai-gpt-5.6-luna` | 1.1M | | | | | | $0.20 | $1 |
|
|
108
|
+
| `digitalocean/openai-gpt-5.6-sol` | 1.1M | | | | | | $5 | $30 |
|
|
109
|
+
| `digitalocean/openai-gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
|
|
110
110
|
| `digitalocean/openai-gpt-image-1` | — | | | | | | $5 | $40 |
|
|
111
111
|
| `digitalocean/openai-gpt-image-1.5` | — | | | | | | $5 | $10 |
|
|
112
112
|
| `digitalocean/openai-gpt-image-2` | — | | | | | | $8 | $30 |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Eden AI
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 233 Eden AI models through Mastra's model router. Authentication is handled automatically using the `EDENAI_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [Eden AI documentation](https://docs.edenai.co).
|
|
8
8
|
|
|
@@ -94,7 +94,6 @@ for await (const chunk of stream) {
|
|
|
94
94
|
| `edenai/deepinfra/thinkingmachines/Inkling-Small` | 524K | | | | | | $0.45 | $1 |
|
|
95
95
|
| `edenai/deepinfra/zai-org/GLM-4.7-Flash` | 203K | | | | | | $0.06 | $0.40 |
|
|
96
96
|
| `edenai/deepseek/deepseek-chat` | 131K | | | | | | $0.28 | $0.42 |
|
|
97
|
-
| `edenai/deepseek/deepseek-reasoner` | 131K | | | | | | $0.28 | $0.42 |
|
|
98
97
|
| `edenai/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.44 | $1 |
|
|
99
98
|
| `edenai/deepseek/deepseek-v4-flash-vision-exp` | 1.0M | | | | | | $0.22 | $0.66 |
|
|
100
99
|
| `edenai/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $1 | $4 |
|
|
@@ -139,7 +138,7 @@ for await (const chunk of stream) {
|
|
|
139
138
|
| `edenai/minimax/MiniMax-M2.7` | 205K | | | | | | $0.30 | $1 |
|
|
140
139
|
| `edenai/minimax/MiniMax-M3` | 524K | | | | | | $0.30 | $1 |
|
|
141
140
|
| `edenai/mistral/codestral-latest` | 256K | | | | | | $0.30 | $0.90 |
|
|
142
|
-
| `edenai/mistral/devstral-2512` | 262K | | | | | | $0.
|
|
141
|
+
| `edenai/mistral/devstral-2512` | 262K | | | | | | $0.44 | $2 |
|
|
143
142
|
| `edenai/mistral/devstral-medium-latest` | 262K | | | | | | $0.40 | $2 |
|
|
144
143
|
| `edenai/mistral/magistral-medium-latest` | 262K | | | | | | $2 | $5 |
|
|
145
144
|
| `edenai/mistral/mistral-large-2512` | 262K | | | | | | $0.50 | $2 |
|
|
@@ -200,7 +199,7 @@ for await (const chunk of stream) {
|
|
|
200
199
|
| `edenai/perplexityai/sonar-pro` | 200K | | | | | | $3 | $15 |
|
|
201
200
|
| `edenai/perplexityai/sonar-reasoning-pro` | 128K | | | | | | $2 | $8 |
|
|
202
201
|
| `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.18 | $0.53 |
|
|
203
|
-
| `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $0.
|
|
202
|
+
| `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $0.58 | $2 |
|
|
204
203
|
| `edenai/qwen/qwen-max` | 33K | | | | | | $2 | $6 |
|
|
205
204
|
| `edenai/qwen/qwen-vl-max` | 131K | | | | | | $0.80 | $3 |
|
|
206
205
|
| `edenai/qwen/qwen-vl-plus` | 131K | | | | | | $0.21 | $0.63 |
|
|
@@ -209,8 +208,10 @@ for await (const chunk of stream) {
|
|
|
209
208
|
| `edenai/qwen/qwen3-coder-480b-a35b-instruct` | 262K | | | | | | $2 | $8 |
|
|
210
209
|
| `edenai/qwen/qwen3-coder-flash` | 1.0M | | | | | | $0.30 | $2 |
|
|
211
210
|
| `edenai/qwen/qwen3-coder-next` | 262K | | | | | | $0.30 | $2 |
|
|
211
|
+
| `edenai/qwen/qwen3-coder-next@eu` | 262K | | | | | | $0.30 | $2 |
|
|
212
212
|
| `edenai/qwen/qwen3-coder-plus` | 1.0M | | | | | | $1 | $5 |
|
|
213
213
|
| `edenai/qwen/qwen3-max` | 262K | | | | | | $1 | $6 |
|
|
214
|
+
| `edenai/qwen/qwen3-max@eu` | 262K | | | | | | $1 | $6 |
|
|
214
215
|
| `edenai/qwen/qwen3-next-80b-a3b-instruct` | 131K | | | | | | $0.15 | $1 |
|
|
215
216
|
| `edenai/qwen/qwen3-next-80b-a3b-thinking` | 131K | | | | | | $0.15 | $1 |
|
|
216
217
|
| `edenai/qwen/qwen3-vl-235b-a22b-instruct` | 131K | | | | | | $0.40 | $2 |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# evroc
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 16 evroc models through Mastra's model router. Authentication is handled automatically using the `EVROC_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [evroc documentation](https://docs.evroc.com/products/think/overview.html).
|
|
8
8
|
|
|
@@ -49,7 +49,8 @@ for await (const chunk of stream) {
|
|
|
49
49
|
| `evroc/openai/whisper-large-v3-turbo` | 448 | | | | | | $0.00 | $0.00 |
|
|
50
50
|
| `evroc/Qwen/Qwen3-Embedding-8B` | 41K | | | | | | $0.12 | $0.12 |
|
|
51
51
|
| `evroc/Qwen/Qwen3-Reranker-4B` | 32K | | | | | | $0.06 | — |
|
|
52
|
-
| `evroc/Qwen/Qwen3.6-35B-A3B
|
|
52
|
+
| `evroc/Qwen/Qwen3.6-35B-A3B` | 262K | | | | | | $0.34 | $1 |
|
|
53
|
+
| `evroc/Qwen/Qwen3.8-27B` | 262K | | | | | | $0.87 | $4 |
|
|
53
54
|
| `evroc/zai-org/GLM-5.2` | 524K | | | | | | $1 | $6 |
|
|
54
55
|
|
|
55
56
|
## Advanced configuration
|
|
@@ -40,11 +40,11 @@ for await (const chunk of stream) {
|
|
|
40
40
|
| `hyper/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.44 | $1 |
|
|
41
41
|
| `hyper/deepseek-v4-pro` | 1.0M | | | | | | $2 | $5 |
|
|
42
42
|
| `hyper/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
|
|
43
|
-
| `hyper/gemma-4-26b-a4b-it` | 256K | | | | | | $0.
|
|
44
|
-
| `hyper/glm-5` | 203K | | | | | | $0.
|
|
43
|
+
| `hyper/gemma-4-26b-a4b-it` | 256K | | | | | | $0.12 | $0.42 |
|
|
44
|
+
| `hyper/glm-5` | 203K | | | | | | $0.91 | $3 |
|
|
45
45
|
| `hyper/glm-5.1` | 203K | | | | | | $1 | $4 |
|
|
46
46
|
| `hyper/glm-5.2` | 1.0M | | | | | | $2 | $5 |
|
|
47
|
-
| `hyper/gpt-oss-120b` | 128K | | | | | | $0.
|
|
47
|
+
| `hyper/gpt-oss-120b` | 128K | | | | | | $0.19 | $0.70 |
|
|
48
48
|
| `hyper/kimi-k2.5` | 262K | | | | | | $0.54 | $3 |
|
|
49
49
|
| `hyper/kimi-k2.6` | 262K | | | | | | $1 | $4 |
|
|
50
50
|
| `hyper/kimi-k2.7-code` | 262K | | | | | | $1 | $4 |
|
|
@@ -39,7 +39,7 @@ for await (const chunk of stream) {
|
|
|
39
39
|
| `inceptron/deepseek-ai/DeepSeek-V4-Flash-0731` | 1.0M | | | | | | $0.13 | $0.28 |
|
|
40
40
|
| `inceptron/moonshotai/Kimi-K2.6` | 262K | | | | | | $0.57 | $3 |
|
|
41
41
|
| `inceptron/moonshotai/Kimi-K2.7-Code` | 262K | | | | | | $0.67 | $3 |
|
|
42
|
-
| `inceptron/zai-org/GLM-5.2` | 1.0M | | | | | | $0.75 | $
|
|
42
|
+
| `inceptron/zai-org/GLM-5.2` | 1.0M | | | | | | $0.75 | $2 |
|
|
43
43
|
|
|
44
44
|
## Advanced configuration
|
|
45
45
|
|