@mastra/mcp-docs-server 1.2.26 → 1.2.27-alpha.11
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/structured-output.md +17 -0
- package/.docs/docs/connections/a2a.md +4 -3
- package/.docs/docs/deployment/monorepo.md +2 -2
- package/.docs/docs/evals/datasets.md +53 -0
- package/.docs/docs/guides/build-an-eval-loop.md +395 -0
- package/.docs/docs/harness/durable-agents.md +27 -2
- package/.docs/docs/mastra-platform/alerts.md +83 -0
- package/.docs/docs/mastra-platform/observability.md +184 -0
- package/.docs/docs/mastra-platform/overview.md +2 -0
- package/.docs/docs/memory/message-history.md +21 -0
- package/.docs/docs/memory/observational-memory.md +33 -0
- package/.docs/docs/observability/feedback.md +1 -1
- package/.docs/docs/observability/tracing/overview.md +2 -0
- package/.docs/docs/server/custom-adapters.md +43 -0
- package/.docs/docs/subagents.md +38 -7
- package/.docs/integrations/channels/github.md +6 -2
- package/.docs/integrations/databases/clickhouse.md +1 -1
- package/.docs/integrations/observability/confident-ai.md +67 -43
- package/.docs/integrations/observability/langfuse.md +4 -0
- package/.docs/integrations/observability/opentelemetry.md +14 -6
- package/.docs/integrations/sandboxes/cloudflare-sandbox.md +36 -4
- package/.docs/models/environment-variables.md +5 -1
- package/.docs/models/gateways/netlify.md +8 -4
- package/.docs/models/gateways/openrouter.md +5 -2
- package/.docs/models/gateways/vercel.md +378 -379
- package/.docs/models/index.md +22 -1
- package/.docs/models/providers/ai21.md +78 -0
- package/.docs/models/providers/ainetcafe.md +77 -0
- package/.docs/models/providers/alibaba-cn.md +8 -6
- package/.docs/models/providers/alibaba-token-plan-cn.md +2 -1
- package/.docs/models/providers/alibaba-token-plan.md +3 -1
- package/.docs/models/providers/alibaba.md +2 -1
- package/.docs/models/providers/chutes.md +2 -2
- package/.docs/models/providers/cortecs.md +6 -7
- package/.docs/models/providers/digitalocean.md +1 -1
- package/.docs/models/providers/edenai.md +4 -7
- package/.docs/models/providers/empiriolabs.md +2 -1
- package/.docs/models/providers/fireworks-ai.md +11 -10
- package/.docs/models/providers/hyper.md +26 -37
- package/.docs/models/providers/inception.md +3 -3
- package/.docs/models/providers/inco.md +83 -0
- package/.docs/models/providers/iteracompute.md +14 -7
- package/.docs/models/providers/kilo.md +12 -9
- package/.docs/models/providers/llmgateway-providers.md +4 -2
- package/.docs/models/providers/llmgateway.md +1 -1
- package/.docs/models/providers/mistral.md +3 -2
- package/.docs/models/providers/nano-gpt.md +10 -19
- package/.docs/models/providers/nvidia.md +2 -1
- package/.docs/models/providers/oci.md +85 -0
- package/.docs/models/providers/ofox.md +24 -23
- package/.docs/models/providers/opencode.md +2 -1
- package/.docs/models/providers/ovhcloud.md +1 -1
- package/.docs/models/providers/privatemode-ai.md +3 -3
- package/.docs/models/providers/scnet-token-plan.md +2 -1
- package/.docs/models/providers/synthetic.md +2 -1
- package/.docs/models/providers/tensorx.md +2 -1
- package/.docs/models/providers/tinfoil.md +1 -1
- package/.docs/models/providers/umans-ai-coding-plan.md +3 -4
- package/.docs/models/providers/umans-ai.md +3 -4
- package/.docs/models/providers/vancine.md +10 -10
- package/.docs/models/providers/volcengine.md +3 -2
- package/.docs/models/providers/wandb.md +4 -4
- package/.docs/models/providers/xai.md +1 -3
- package/.docs/models/providers/zhipuai-coding-plan.md +2 -8
- package/.docs/models/providers.md +5 -1
- package/.docs/reference/agents/durable-agent.md +9 -1
- package/.docs/reference/agents/generate.md +1 -1
- package/.docs/reference/agents/inngest-agent.md +2 -0
- package/.docs/reference/auth/clerk.md +25 -1
- package/.docs/reference/cli/mastra.md +84 -0
- package/.docs/reference/client-js/agents.md +25 -0
- package/.docs/reference/client-js/mastra-client.md +1 -1
- package/.docs/reference/client-js/observability.md +101 -4
- package/.docs/reference/code-sdk/mount-agent-controller.md +23 -0
- package/.docs/reference/core/getMCPServer.md +47 -0
- package/.docs/reference/core/mastra-class.md +1 -1
- package/.docs/reference/index.md +2 -0
- package/.docs/reference/memory/memory-class.md +2 -0
- package/.docs/reference/memory/observational-memory.md +34 -4
- package/.docs/reference/observability/tracing/interfaces.md +3 -1
- package/.docs/reference/observability/tracing/trace-query.md +219 -46
- package/.docs/reference/pubsub/redis-streams.md +34 -0
- package/.docs/reference/rag/vector-databases.md +73 -0
- package/.docs/reference/storage/retention.md +56 -4
- package/.docs/reference/streaming/agents/stream.md +1 -1
- package/.docs/reference/tools/mcp-server.md +0 -28
- package/.docs/reference/vectors/azure-ai-search.md +150 -0
- package/.docs/reference/vectors/weaviate.md +128 -0
- package/.docs/reference/workspace/workspace-class.md +10 -2
- package/package.json +10 -12
- package/.docs/docs/connections/connect-mcp-client.md +0 -211
|
@@ -4,49 +4,49 @@
|
|
|
4
4
|
|
|
5
5
|
# Confident AI
|
|
6
6
|
|
|
7
|
-
[Confident AI](https://www.confident-ai.com/) is an LLM observability and evaluation platform for teams
|
|
7
|
+
[Confident AI](https://www.confident-ai.com/) is an LLM observability and evaluation platform for teams building reliable AI applications in both development and production.
|
|
8
8
|
|
|
9
|
-
The
|
|
9
|
+
The `ConfidentMastraExporter` from [`confident-trace`](https://github.com/confident-ai/confident-trace) sends your Mastra traces to Confident AI, where agent runs show up with the full agent, model, and tool hierarchy, and can be scored automatically as they arrive.
|
|
10
10
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
13
13
|
**npm**:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
npm install @
|
|
16
|
+
npm install confident-trace@latest
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
**pnpm**:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
pnpm add @
|
|
22
|
+
pnpm add confident-trace@latest
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
**Yarn**:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
yarn add @
|
|
28
|
+
yarn add confident-trace@latest
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
**Bun**:
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
bun add @
|
|
34
|
+
bun add confident-trace@latest
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
## Configuration
|
|
38
38
|
|
|
39
39
|
### Prerequisites
|
|
40
40
|
|
|
41
|
-
1. **Confident AI account**: Sign up at [confident-ai.com](https://
|
|
41
|
+
1. **Confident AI account**: Sign up at [confident-ai.com](https://app.confident-ai.com)
|
|
42
42
|
2. **API key**: Generate one in your Confident AI project settings
|
|
43
43
|
3. **Environment variables**: Set your credentials:
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
46
|
CONFIDENT_API_KEY=confident_proj_xxxxxxxxxxxxx
|
|
47
47
|
|
|
48
|
-
# Optional
|
|
49
|
-
|
|
48
|
+
# Optional. EU region, defaults to the US servers
|
|
49
|
+
CONFIDENT_OTEL_ENDPOINT=https://eu.otel.confident-ai.com/v1/traces
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
### Zero-Config Setup
|
|
@@ -56,14 +56,14 @@ With environment variables set, use the exporter with no configuration:
|
|
|
56
56
|
```typescript
|
|
57
57
|
import { Mastra } from '@mastra/core'
|
|
58
58
|
import { Observability } from '@mastra/observability'
|
|
59
|
-
import {
|
|
59
|
+
import { ConfidentMastraExporter } from 'confident-trace/mastra'
|
|
60
60
|
|
|
61
61
|
export const mastra = new Mastra({
|
|
62
62
|
observability: new Observability({
|
|
63
63
|
configs: {
|
|
64
|
-
|
|
64
|
+
confidentAI: {
|
|
65
65
|
serviceName: 'my-service',
|
|
66
|
-
exporters: [new
|
|
66
|
+
exporters: [new ConfidentMastraExporter()],
|
|
67
67
|
},
|
|
68
68
|
},
|
|
69
69
|
}),
|
|
@@ -77,17 +77,17 @@ You can also pass credentials directly (takes precedence over environment variab
|
|
|
77
77
|
```typescript
|
|
78
78
|
import { Mastra } from '@mastra/core'
|
|
79
79
|
import { Observability } from '@mastra/observability'
|
|
80
|
-
import {
|
|
80
|
+
import { ConfidentMastraExporter } from 'confident-trace/mastra'
|
|
81
81
|
|
|
82
82
|
export const mastra = new Mastra({
|
|
83
83
|
observability: new Observability({
|
|
84
84
|
configs: {
|
|
85
|
-
|
|
85
|
+
confidentAI: {
|
|
86
86
|
serviceName: 'my-service',
|
|
87
87
|
exporters: [
|
|
88
|
-
new
|
|
88
|
+
new ConfidentMastraExporter({
|
|
89
89
|
apiKey: process.env.CONFIDENT_API_KEY,
|
|
90
|
-
|
|
90
|
+
endpoint: process.env.CONFIDENT_OTEL_ENDPOINT,
|
|
91
91
|
}),
|
|
92
92
|
],
|
|
93
93
|
},
|
|
@@ -96,47 +96,71 @@ export const mastra = new Mastra({
|
|
|
96
96
|
})
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
These options are available to you:
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
```typescript
|
|
102
|
+
new ConfidentMastraExporter({
|
|
103
|
+
apiKey: process.env.CONFIDENT_API_KEY, // Default: CONFIDENT_API_KEY
|
|
104
|
+
endpoint: process.env.CONFIDENT_OTEL_ENDPOINT, // Default: US servers
|
|
105
|
+
captureContent: false, // Omit inputs, outputs, and messages
|
|
106
|
+
maxContentBytes: 512, // Truncate captured content
|
|
107
|
+
timeoutMillis: 30000, // Flush and shutdown budget
|
|
108
|
+
resourceAttributes: { 'service.name': 'my-agent' }, // Overrides serviceName
|
|
109
|
+
})
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Traces carry Mastra's configured `serviceName` unless `resourceAttributes['service.name']` overrides it. Mastra's own sampling, filters, and span processors run before export, so whatever your pipeline lets through is what Confident AI receives.
|
|
113
|
+
|
|
114
|
+
## Supported signals
|
|
115
|
+
|
|
116
|
+
The exporter converts ended Mastra spans into OTLP spans, preserving trace IDs, span IDs, parent IDs, external parent IDs, and original timestamps. It needs no start-event cache, so resumed workflow spans and out-of-order completion export correctly.
|
|
117
|
+
|
|
118
|
+
- **Agent and workflow execution**: Operation names, timing, status, and the parent-child relationships between steps.
|
|
119
|
+
- **Model calls**: Model details, messages, finish reasons, and [token usage](https://www.confident-ai.com/docs/llm-tracing/features/token-usage-cost).
|
|
120
|
+
- **Tool calls**: Tool names and their [input/output](https://www.confident-ai.com/docs/llm-tracing/features/input-output).
|
|
121
|
+
- **Trace details**: The root operation's name, tags, metadata, and input/output.
|
|
122
|
+
- **Errors**: Failed operations retain their error status to make failures visible in the trace.
|
|
123
|
+
|
|
124
|
+
This integration exports tracing data. Mastra logs, metrics, scores, and feedback aren't included.
|
|
125
|
+
|
|
126
|
+
## Custom trace metadata
|
|
127
|
+
|
|
128
|
+
Metadata and tags passed through Mastra's `tracingOptions` are forwarded to the trace in Confident AI, where you can filter and group by them:
|
|
102
129
|
|
|
103
130
|
```typescript
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
toolMetricCollectionMap: {
|
|
109
|
-
search: 'search-tool-metrics', // applied to the "search" tool
|
|
131
|
+
const result = await mastra.getAgent('assistant').generate('How do you make the best coffee?', {
|
|
132
|
+
tracingOptions: {
|
|
133
|
+
metadata: { release: '2026-09', tier: 'enterprise' },
|
|
134
|
+
tags: ['production', 'support'],
|
|
110
135
|
},
|
|
111
136
|
})
|
|
112
137
|
```
|
|
113
138
|
|
|
114
|
-
|
|
139
|
+
Your metadata is merged with the fields Mastra sets itself, such as `runId`. Tags apply to the root span, so they land on the trace rather than on individual spans.
|
|
140
|
+
|
|
141
|
+
## Lifecycle
|
|
142
|
+
|
|
143
|
+
Mastra owns this exporter. It creates its own OTLP processor and never registers, replaces, or shuts down the global OpenTelemetry provider, so there is no `init()` call to make and no preload to add to your start command.
|
|
144
|
+
|
|
145
|
+
Spans are batched and sent when the exporter is shut down. Shut it down once, after every agent run and stream has finished, or a short-lived script exits before anything is sent:
|
|
115
146
|
|
|
116
147
|
```typescript
|
|
117
|
-
|
|
118
|
-
apiKey: process.env.CONFIDENT_API_KEY,
|
|
119
|
-
environment: 'production', // Default: "development"
|
|
120
|
-
name: 'my-trace', // Default: the Mastra serviceName
|
|
121
|
-
tags: ['production'],
|
|
122
|
-
metadata: { team: 'growth' },
|
|
123
|
-
})
|
|
148
|
+
await observability.shutdown()
|
|
124
149
|
```
|
|
125
150
|
|
|
126
|
-
|
|
151
|
+
In a long-running server, shut down during graceful shutdown rather than per request. Traces can take up to 30 seconds to appear in the Observatory after being sent.
|
|
152
|
+
|
|
153
|
+
## Threads and trace properties
|
|
154
|
+
|
|
155
|
+
This exporter maps Mastra's own tracing surface, so trace metadata and tags come from `tracingOptions` as shown above.
|
|
127
156
|
|
|
128
|
-
|
|
157
|
+
Grouping turns into [threads](https://www.confident-ai.com/docs/llm-tracing/features/threads) and setting trace-level properties such as user IDs use `confident-trace`'s SDK instrumentation, which attaches to Mastra directly rather than through an exporter. See the [Mastra integration guide](https://www.confident-ai.com/docs/integrations/third-party/mastra) for that setup.
|
|
129
158
|
|
|
130
|
-
|
|
131
|
-
| ---------------------------------------------------------------------- | ---------------------- |
|
|
132
|
-
| `AGENT_RUN`, `WORKFLOW_RUN` | `AGENT` |
|
|
133
|
-
| `MODEL_GENERATION` | `LLM` |
|
|
134
|
-
| `TOOL_CALL`, `MCP_TOOL_CALL`, `PROVIDER_TOOL_CALL`, `CLIENT_TOOL_CALL` | `TOOL` |
|
|
135
|
-
| `RAG_EMBEDDING`, `RAG_VECTOR_OPERATION` | `RETRIEVER` |
|
|
136
|
-
| All other exported span types | `CUSTOM` |
|
|
159
|
+
Choose one or the other. Do not use both at once.
|
|
137
160
|
|
|
138
161
|
## Related
|
|
139
162
|
|
|
140
163
|
- [Tracing Overview](https://mastra.ai/docs/observability/tracing/overview)
|
|
141
|
-
- [
|
|
142
|
-
- [
|
|
164
|
+
- [Mastra integration guide](https://www.confident-ai.com/docs/integrations/third-party/mastra)
|
|
165
|
+
- [Online evals](https://www.confident-ai.com/docs/llm-tracing/online-evals)
|
|
166
|
+
- [confident-trace on GitHub](https://github.com/confident-ai/confident-trace)
|
|
@@ -287,6 +287,10 @@ The prompt object requires both `name` and `version`:
|
|
|
287
287
|
|
|
288
288
|
When set on a `MODEL_GENERATION` span, the Langfuse exporter automatically links the generation to the corresponding prompt.
|
|
289
289
|
|
|
290
|
+
## Import existing traces into Mastra Platform
|
|
291
|
+
|
|
292
|
+
The Mastra CLI can import historical trace observations from Langfuse Cloud or a self-hosted Langfuse v4 or later instance. This is separate from configuring the exporter on this page. See [Import existing traces](https://mastra.ai/docs/mastra-platform/observability) for credentials, dry runs, resume, verification, and current limits.
|
|
293
|
+
|
|
290
294
|
## Related
|
|
291
295
|
|
|
292
296
|
- [Tracing Overview](https://mastra.ai/docs/observability/tracing/overview)
|
|
@@ -571,11 +571,14 @@ The exporter follows [OpenTelemetry Semantic Conventions for GenAI v1.38.0](http
|
|
|
571
571
|
|
|
572
572
|
#### Span Naming
|
|
573
573
|
|
|
574
|
-
- **
|
|
574
|
+
- **Model calls**: `chat {model}`
|
|
575
|
+
- **Generation loop**: `model_generation {model}`, with one `agent_step {agent_id}` per turn
|
|
575
576
|
- **Tool Execution**: `execute_tool {tool_name}`
|
|
576
577
|
- **Agent Runs**: `invoke_agent {agent_id}`
|
|
577
578
|
- **Workflow Runs**: `invoke_workflow {workflow_id}`
|
|
578
579
|
|
|
580
|
+
Each agent turn calls the model once. The `chat` span is that call and is the only span that carries `gen_ai.request.model`, the messages, and `gen_ai.usage.*`, so backends that sum usage across spans count each call once. The `model_generation` span wraps the whole loop and `agent_step` wraps one turn (model call plus tool execution); neither carries usage.
|
|
581
|
+
|
|
579
582
|
#### Key Attributes
|
|
580
583
|
|
|
581
584
|
- `gen_ai.operation.name` - Operation type (chat, tool.execute, etc.)
|
|
@@ -805,10 +808,13 @@ With the `OtelBridge`, your traces maintain proper hierarchy across OTEL and Mas
|
|
|
805
808
|
```text
|
|
806
809
|
HTTP POST /api/chat (from Hono middleware)
|
|
807
810
|
└── agent.assistant (from Mastra via OtelBridge)
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
811
|
+
└── model_generation gpt-5 (generation loop)
|
|
812
|
+
├── agent_step assistant (turn 1)
|
|
813
|
+
│ ├── chat gpt-5 (LLM call)
|
|
814
|
+
│ └── execute_tool search (tool execution)
|
|
815
|
+
│ └── HTTP GET api.example.com (from OTEL auto-instrumentation)
|
|
816
|
+
└── agent_step assistant (turn 2)
|
|
817
|
+
└── chat gpt-5 (follow-up LLM call)
|
|
812
818
|
```
|
|
813
819
|
|
|
814
820
|
### Multi-service distributed tracing
|
|
@@ -821,7 +827,9 @@ Service A: HTTP POST /api/process
|
|
|
821
827
|
|
|
822
828
|
Service B: HTTP POST /api/analyze (incoming call - same trace!)
|
|
823
829
|
└── agent.analyzer (Mastra agent inherits trace context)
|
|
824
|
-
└──
|
|
830
|
+
└── model_generation gpt-5
|
|
831
|
+
└── agent_step analyzer
|
|
832
|
+
└── chat gpt-5
|
|
825
833
|
```
|
|
826
834
|
|
|
827
835
|
Both services must have:
|
|
@@ -100,9 +100,41 @@ const bytes = await workspace.sandbox?.readFile?.('src/index.ts')
|
|
|
100
100
|
const source = new TextDecoder().decode(bytes)
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
+
## Keep files across container sleep
|
|
104
|
+
|
|
105
|
+
Cloudflare stops an idle container after `sleepAfter` (10 minutes by default). The next command starts a fresh container, so anything written under `/workspace` is gone. Treat `/workspace` as scratch space, and put files that must survive on a mounted bucket.
|
|
106
|
+
|
|
107
|
+
Mount an S3-compatible bucket such as Cloudflare R2 through the Workspace `mounts` option. The sandbox mounts it on `start()`. A slept container boots without its mounts, so the sandbox re-mounts any dropped paths before the next filesystem operation, keeping mounted data durable across sleep.
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
import { Workspace } from '@mastra/core/workspace'
|
|
111
|
+
import { S3Filesystem } from '@mastra/s3'
|
|
112
|
+
import { CloudflareSandbox } from '@mastra/cloudflare-sandbox'
|
|
113
|
+
|
|
114
|
+
const workspace = new Workspace({
|
|
115
|
+
sandbox: new CloudflareSandbox({
|
|
116
|
+
baseUrl: process.env.CLOUDFLARE_SANDBOX_BRIDGE_URL!,
|
|
117
|
+
apiToken: process.env.CLOUDFLARE_SANDBOX_BRIDGE_TOKEN!,
|
|
118
|
+
}),
|
|
119
|
+
mounts: {
|
|
120
|
+
'/workspace/data': new S3Filesystem({
|
|
121
|
+
bucket: 'agent-data',
|
|
122
|
+
region: 'auto',
|
|
123
|
+
endpoint: `https://${process.env.CLOUDFLARE_ACCOUNT_ID}.r2.cloudflarestorage.com`,
|
|
124
|
+
accessKeyId: process.env.R2_ACCESS_KEY_ID,
|
|
125
|
+
secretAccessKey: process.env.R2_SECRET_ACCESS_KEY,
|
|
126
|
+
}),
|
|
127
|
+
},
|
|
128
|
+
})
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
The bridge mounts buckets with s3fs, so only `type: 's3'` mount configs are accepted. GCS and Azure filesystems, and S3 credentials that include a `sessionToken`, return a failed `MountResult` without contacting the bridge.
|
|
132
|
+
|
|
133
|
+
The default `getInstructions()` text tells the model that `/workspace` does not survive between commands and lists the mounted paths to write to instead.
|
|
134
|
+
|
|
103
135
|
## Persist and restore the workspace
|
|
104
136
|
|
|
105
|
-
`persistWorkspace()` archives `/workspace` and returns the raw tar bytes; `hydrateWorkspace()` restores it from those bytes.
|
|
137
|
+
`persistWorkspace()` archives `/workspace` and returns the raw tar bytes; `hydrateWorkspace()` restores it from those bytes. Use this for one-off backups. It is not a substitute for mounts: restoring must happen before the first command after a wake, and a persist taken from a freshly woken container overwrites the archive with an empty workspace.
|
|
106
138
|
|
|
107
139
|
```typescript
|
|
108
140
|
// Back up before the container can sleep
|
|
@@ -114,7 +146,7 @@ const archive = await myStorage.get('workspace-backup')
|
|
|
114
146
|
await workspace.sandbox?.hydrateWorkspace?.(archive)
|
|
115
147
|
```
|
|
116
148
|
|
|
117
|
-
For
|
|
149
|
+
For execution sessions, use the `CloudflareSandboxBridgeClient` methods (`createSession`, `deleteSession`) directly.
|
|
118
150
|
|
|
119
151
|
## Constructor parameters
|
|
120
152
|
|
|
@@ -138,10 +170,10 @@ For bucket mounts and execution sessions, use the corresponding `CloudflareSandb
|
|
|
138
170
|
|
|
139
171
|
## Lifecycle behavior
|
|
140
172
|
|
|
141
|
-
- `start()`: Reconnects to `sandboxId` or creates a remote sandbox
|
|
173
|
+
- `start()`: Reconnects to `sandboxId` or creates a remote sandbox, then mounts any Workspace `mounts`.
|
|
142
174
|
- `stop()`: Detaches the Mastra lifecycle without deleting the remote sandbox because the bridge doesn't expose a suspend operation.
|
|
143
175
|
- `destroy()`: Deletes the remote sandbox.
|
|
144
176
|
|
|
145
177
|
## Limitations
|
|
146
178
|
|
|
147
|
-
The provider surfaces command execution, streamed output, file reads and writes, and workspace persistence directly on the sandbox.
|
|
179
|
+
The provider surfaces command execution, streamed output, file reads and writes, S3-compatible bucket mounts, and workspace persistence directly on the sandbox. Sessions are available on the bridge client (`CloudflareSandboxBridgeClient`) but not on the `CloudflareSandbox` surface. PTY terminals are not exposed, and the provider doesn't support background process management, stdin, snapshots, or port URLs.
|
|
@@ -16,6 +16,8 @@ List of required environment variables for each model provider and gateway suppo
|
|
|
16
16
|
| [Agnes AI](https://mastra.ai/models/providers/agnes) | `agnes/*` | `AGNES_API_KEY` |
|
|
17
17
|
| [AI-ROUTER](https://mastra.ai/models/providers/ai-router) | `ai-router/*` | `AI_ROUTER_API_KEY` |
|
|
18
18
|
| [ai&](https://mastra.ai/models/providers/aiand) | `aiand/*` | `AIAND_API_KEY` |
|
|
19
|
+
| [AI21 Labs](https://mastra.ai/models/providers/ai21) | `ai21/*` | `AI21_API_KEY` |
|
|
20
|
+
| [ainetcafe](https://mastra.ai/models/providers/ainetcafe) | `ainetcafe/*` | `AINETCAFE_API_KEY` |
|
|
19
21
|
| [Aixy](https://mastra.ai/models/providers/aixy) | `aixy/*` | `AIXY_API_KEY` |
|
|
20
22
|
| [AKI.IO](https://mastra.ai/models/providers/aki-io) | `aki-io/*` | `AKI_IO_API_KEY` |
|
|
21
23
|
| [Alibaba](https://mastra.ai/models/providers/alibaba) | `alibaba/*` | `DASHSCOPE_API_KEY` |
|
|
@@ -45,6 +47,7 @@ List of required environment variables for each model provider and gateway suppo
|
|
|
45
47
|
| [CloudFerro Sherlock](https://mastra.ai/models/providers/cloudferro-sherlock) | `cloudferro-sherlock/*` | `CLOUDFERRO_SHERLOCK_API_KEY` |
|
|
46
48
|
| [Cloudflare Workers AI](https://mastra.ai/models/providers/cloudflare-workers-ai) | `cloudflare-workers-ai/*` | `CLOUDFLARE_ACCOUNT_ID`, `CLOUDFLARE_API_KEY` |
|
|
47
49
|
| [CoralBricks](https://mastra.ai/models/providers/coralbricks) | `coralbricks/*` | `CORAL_API_KEY` |
|
|
50
|
+
| [CoreWeave](https://mastra.ai/models/providers/wandb) | `wandb/*` | `WANDB_API_KEY` |
|
|
48
51
|
| [Cortecs](https://mastra.ai/models/providers/cortecs) | `cortecs/*` | `CORTECS_API_KEY` |
|
|
49
52
|
| [CrofAI](https://mastra.ai/models/providers/crof) | `crof/*` | `CROF_API_KEY` |
|
|
50
53
|
| [CrossModel](https://mastra.ai/models/providers/crossmodel) | `crossmodel/*` | `CROSSMODEL_API_KEY` |
|
|
@@ -79,6 +82,7 @@ List of required environment variables for each model provider and gateway suppo
|
|
|
79
82
|
| [Impossibl](https://mastra.ai/models/providers/impossibl) | `impossibl/*` | `IMPOSSIBL_API_KEY` |
|
|
80
83
|
| [Inception](https://mastra.ai/models/providers/inception) | `inception/*` | `INCEPTION_API_KEY` |
|
|
81
84
|
| [Inceptron](https://mastra.ai/models/providers/inceptron) | `inceptron/*` | `INCEPTRON_API_KEY` |
|
|
85
|
+
| [Inco](https://mastra.ai/models/providers/inco) | `inco/*` | `INCO_API_KEY` |
|
|
82
86
|
| [Infer by Flow7](https://mastra.ai/models/providers/infer) | `infer/*` | `INFER_API_KEY` |
|
|
83
87
|
| [Inference](https://mastra.ai/models/providers/inference) | `inference/*` | `INFERENCE_API_KEY` |
|
|
84
88
|
| [InferX](https://mastra.ai/models/providers/inferx) | `inferx/*` | `INFERX_API_KEY` |
|
|
@@ -128,6 +132,7 @@ List of required environment variables for each model provider and gateway suppo
|
|
|
128
132
|
| [Nova](https://mastra.ai/models/providers/nova) | `nova/*` | `NOVA_API_KEY` |
|
|
129
133
|
| [NovitaAI](https://mastra.ai/models/providers/novita-ai) | `novita-ai/*` | `NOVITA_API_KEY` |
|
|
130
134
|
| [Nvidia](https://mastra.ai/models/providers/nvidia) | `nvidia/*` | `NVIDIA_API_KEY` |
|
|
135
|
+
| [OCI Generative AI](https://mastra.ai/models/providers/oci) | `oci/*` | `OCI_GENAI_API_KEY` |
|
|
131
136
|
| [Ofox](https://mastra.ai/models/providers/ofox) | `ofox/*` | `OFOX_API_KEY` |
|
|
132
137
|
| [Ollama Cloud](https://mastra.ai/models/providers/ollama-cloud) | `ollama-cloud/*` | `OLLAMA_API_KEY` |
|
|
133
138
|
| [OpenAI](https://mastra.ai/models/providers/openai) | `openai/*` | `OPENAI_API_KEY` |
|
|
@@ -191,7 +196,6 @@ List of required environment variables for each model provider and gateway suppo
|
|
|
191
196
|
| [Vultr](https://mastra.ai/models/providers/vultr) | `vultr/*` | `VULTR_API_KEY` |
|
|
192
197
|
| [Wafer](https://mastra.ai/models/providers/wafer.ai) | `wafer.ai/*` | `WAFER_API_KEY` |
|
|
193
198
|
| [Wallaby](https://mastra.ai/models/providers/wallaby) | `wallaby/*` | `WALLABY_API_KEY` |
|
|
194
|
-
| [Weights & Biases](https://mastra.ai/models/providers/wandb) | `wandb/*` | `WANDB_API_KEY` |
|
|
195
199
|
| [xAI](https://mastra.ai/models/providers/xai) | `xai/*` | `XAI_API_KEY` |
|
|
196
200
|
| [Xiaomi](https://mastra.ai/models/providers/xiaomi) | `xiaomi/*` | `XIAOMI_API_KEY` |
|
|
197
201
|
| [Xiaomi Token Plan (China)](https://mastra.ai/models/providers/xiaomi-token-plan-cn) | `xiaomi-token-plan-cn/*` | `XIAOMI_API_KEY` |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Netlify
|
|
6
6
|
|
|
7
|
-
Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access
|
|
7
|
+
Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 261 models through Mastra's model router.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Netlify documentation](https://docs.netlify.com/build/ai-gateway/overview/).
|
|
10
10
|
|
|
@@ -145,6 +145,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
145
145
|
| `openrouter/deepseek/deepseek-v3.2-exp` |
|
|
146
146
|
| `openrouter/deepseek/deepseek-v4-flash` |
|
|
147
147
|
| `openrouter/deepseek/deepseek-v4-flash-0731` |
|
|
148
|
+
| `openrouter/deepseek/deepseek-v4-flash-0731:free` |
|
|
148
149
|
| `openrouter/deepseek/deepseek-v4-flash-vision-exp` |
|
|
149
150
|
| `openrouter/deepseek/deepseek-v4-pro` |
|
|
150
151
|
| `openrouter/deepseek/deepseek-v4-pro-0813` |
|
|
@@ -189,7 +190,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
189
190
|
| `openrouter/mistralai/ministral-3b-2512` |
|
|
190
191
|
| `openrouter/mistralai/ministral-8b-2512` |
|
|
191
192
|
| `openrouter/mistralai/mistral-large-2407` |
|
|
192
|
-
| `openrouter/mistralai/mistral-large-2512` |
|
|
193
193
|
| `openrouter/mistralai/mistral-medium-3` |
|
|
194
194
|
| `openrouter/mistralai/mistral-medium-3-5` |
|
|
195
195
|
| `openrouter/mistralai/mistral-medium-3.1` |
|
|
@@ -256,7 +256,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
256
256
|
| `openrouter/qwen/qwen3.6-35b-a3b` |
|
|
257
257
|
| `openrouter/qwen/qwen3.8-2.4t-a95b` |
|
|
258
258
|
| `openrouter/qwen/qwen3.8-27b` |
|
|
259
|
-
| `openrouter/qwen/qwen3.8-
|
|
259
|
+
| `openrouter/qwen/qwen3.8-27b:free` |
|
|
260
260
|
| `openrouter/rekaai/reka-edge` |
|
|
261
261
|
| `openrouter/rekaai/reka-flash-3` |
|
|
262
262
|
| `openrouter/relace/relace-apply-3` |
|
|
@@ -294,5 +294,9 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
294
294
|
| `openrouter/z-ai/glm-5` |
|
|
295
295
|
| `openrouter/z-ai/glm-5.1` |
|
|
296
296
|
| `openrouter/z-ai/glm-5.2` |
|
|
297
|
+
| `openrouter/z-ai/glm-5.2:free` |
|
|
297
298
|
| `openrouter/z-ai/glm-5.3` |
|
|
298
|
-
| `openrouter/z-ai/glm-5.3-flash` |
|
|
299
|
+
| `openrouter/z-ai/glm-5.3-flash` |
|
|
300
|
+
| `typesafe/jev-1.13.0` |
|
|
301
|
+
| `typesafe/jev-latest` |
|
|
302
|
+
| `typesafe/jev-preview` |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# OpenRouter
|
|
6
6
|
|
|
7
|
-
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
7
|
+
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 370 models through Mastra's model router.
|
|
8
8
|
|
|
9
9
|
Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
|
|
10
10
|
|
|
@@ -107,6 +107,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
107
107
|
| `deepseek/deepseek-v3.2-exp` |
|
|
108
108
|
| `deepseek/deepseek-v4-flash` |
|
|
109
109
|
| `deepseek/deepseek-v4-flash-0731` |
|
|
110
|
+
| `deepseek/deepseek-v4-flash-0731:free` |
|
|
110
111
|
| `deepseek/deepseek-v4-flash-vision-exp` |
|
|
111
112
|
| `deepseek/deepseek-v4-pro` |
|
|
112
113
|
| `deepseek/deepseek-v4-pro-0813` |
|
|
@@ -191,7 +192,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
191
192
|
| `mistralai/ministral-8b-2512` |
|
|
192
193
|
| `mistralai/mistral-large` |
|
|
193
194
|
| `mistralai/mistral-large-2407` |
|
|
194
|
-
| `mistralai/mistral-large-2512` |
|
|
195
195
|
| `mistralai/mistral-medium-3` |
|
|
196
196
|
| `mistralai/mistral-medium-3-5` |
|
|
197
197
|
| `mistralai/mistral-medium-3.1` |
|
|
@@ -350,6 +350,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
350
350
|
| `qwen/qwen3.7-plus` |
|
|
351
351
|
| `qwen/qwen3.8-2.4t-a95b` |
|
|
352
352
|
| `qwen/qwen3.8-27b` |
|
|
353
|
+
| `qwen/qwen3.8-27b:free` |
|
|
353
354
|
| `qwen/qwen3.8-flash` |
|
|
354
355
|
| `qwen/qwen3.8-max-0902` |
|
|
355
356
|
| `rekaai/reka-edge` |
|
|
@@ -379,6 +380,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
379
380
|
| `thinkingmachines/inkling-small` |
|
|
380
381
|
| `thinkingmachines/inkling-small:free` |
|
|
381
382
|
| `thinkingmachines/inkling:free` |
|
|
383
|
+
| `unbiased/pareto` |
|
|
382
384
|
| `undi95/remm-slerp-l2-13b` |
|
|
383
385
|
| `upstage/solar-pro-3` |
|
|
384
386
|
| `upstage/solar-pro4` |
|
|
@@ -402,6 +404,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
402
404
|
| `z-ai/glm-5-turbo` |
|
|
403
405
|
| `z-ai/glm-5.1` |
|
|
404
406
|
| `z-ai/glm-5.2` |
|
|
407
|
+
| `z-ai/glm-5.2:free` |
|
|
405
408
|
| `z-ai/glm-5.3` |
|
|
406
409
|
| `z-ai/glm-5.3-flash` |
|
|
407
410
|
| `z-ai/glm-5v-turbo` |
|