@mastra/mcp-docs-server 1.3.6-alpha.9 → 1.3.7-alpha.1
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/deployment/mastra-server.md +2 -2
- package/.docs/docs/harness/durable-agents.md +45 -9
- package/.docs/docs/harness/signals.md +12 -0
- package/.docs/docs/memory/observational-memory.md +17 -15
- package/.docs/docs/sandbox/overview.md +1 -0
- package/.docs/docs/server/pubsub.md +2 -0
- package/.docs/docs/subagents.md +1 -0
- package/.docs/docs/workflows/overview.md +2 -0
- package/.docs/integrations/sandboxes/blaxel.md +3 -1
- package/.docs/integrations/sandboxes/e2b.md +32 -1
- package/.docs/integrations/sandboxes/railway.md +13 -0
- package/.docs/integrations/sandboxes/sprites.md +219 -0
- package/.docs/integrations.md +1 -0
- package/.docs/models/environment-variables.md +2 -1
- package/.docs/models/gateways/merge-gateway.md +3 -1
- package/.docs/models/gateways/openrouter.md +1 -12
- package/.docs/models/gateways/vercel.md +2 -1
- package/.docs/models/index.md +3 -2
- package/.docs/models/providers/302ai.md +3 -1
- package/.docs/models/providers/ambient.md +17 -15
- package/.docs/models/providers/coralbricks.md +2 -2
- package/.docs/models/providers/deepinfra.md +2 -2
- package/.docs/models/providers/digitalocean.md +2 -1
- package/.docs/models/providers/edenai.md +306 -300
- package/.docs/models/providers/empiriolabs.md +4 -8
- package/.docs/models/providers/huggingface.md +7 -4
- package/.docs/models/providers/kilo.md +31 -42
- package/.docs/models/providers/llmgateway-providers.md +6 -6
- package/.docs/models/providers/llmgateway.md +3 -7
- package/.docs/models/providers/lowrouter.md +84 -0
- package/.docs/models/providers/moark.md +17 -9
- package/.docs/models/providers/nano-gpt.md +12 -12
- package/.docs/models/providers/nearai.md +27 -3
- package/.docs/models/providers/novita-ai.md +43 -66
- package/.docs/models/providers/ofox.md +2 -1
- package/.docs/models/providers/tinfoil.md +1 -2
- package/.docs/models/providers.md +2 -1
- package/.docs/reference/agents/durable-agent.md +40 -4
- package/.docs/reference/agents/inngest-agent.md +26 -0
- package/.docs/reference/client-js/agent-controller.md +1 -1
- package/.docs/reference/client-js/agents.md +2 -2
- package/.docs/reference/client-js/datasets.md +19 -0
- package/.docs/reference/core/mastra-class.md +12 -4
- package/.docs/reference/memory/observational-memory.md +3 -3
- package/.docs/reference/pubsub/lease-provider.md +2 -0
- package/.docs/reference/pubsub/valkey-streams.md +1 -1
- package/.docs/reference/server/routes.md +1 -0
- package/.docs/reference/storage/retention.md +21 -18
- package/.docs/reference/tools/mcp-client.md +5 -0
- package/.docs/reference/workspace/platform-sandbox.md +15 -2
- package/package.json +6 -6
|
@@ -131,10 +131,14 @@ Visit the [Configuration reference](https://mastra.ai/reference/configuration) f
|
|
|
131
131
|
|
|
132
132
|
**scheduler.enabled** (`boolean`): Explicitly enable or disable the scheduler.
|
|
133
133
|
|
|
134
|
-
**recovery** (`MastraRecoveryConfig`): Boot-time recovery behavior for orphaned agent and workflow runs. See Crash recovery. (Default: `{ durableAgents: 'off' }`)
|
|
134
|
+
**recovery** (`MastraRecoveryConfig`): Boot-time recovery behavior for orphaned agent and workflow runs. See Crash recovery. (Default: `{ durableAgents: 'off', workflows: 'auto', workflowConcurrency: 5 }`)
|
|
135
135
|
|
|
136
136
|
**recovery.durableAgents** (`'auto' | 'off'`): Set to 'auto' to automatically re-drive orphaned RUNNING durable agent runs on server boot. This also controls the default snapshot-persistence policy for durable agents: running checkpoints are only written when set to 'auto' (or when an agent sets a custom shouldPersistSnapshot that includes running). Recovery re-issues LLM calls and re-executes tool calls, so tools must be idempotent. See Crash recovery.
|
|
137
137
|
|
|
138
|
+
**recovery.workflows** (`'auto' | 'off'`): Set to 'off' to skip restarting active workflow runs on server boot. Individual workflows can also opt out with autoRestartActiveRuns: false.
|
|
139
|
+
|
|
140
|
+
**recovery.workflowConcurrency** (`number`): Maximum number of workflow runs restarted at the same time during boot recovery. Use Infinity for no limit. Workflow and durable agent recovery run in parallel.
|
|
141
|
+
|
|
138
142
|
## Methods
|
|
139
143
|
|
|
140
144
|
### `recoverAllDurableAgents()`
|
|
@@ -143,17 +147,21 @@ Re-drives every orphaned `running` durable-agent run across all registered durab
|
|
|
143
147
|
|
|
144
148
|
Requires persistent storage. With an in-memory store, there's nothing to recover after a process restart.
|
|
145
149
|
|
|
150
|
+
A run that another execution still drives isn't taken over. It's counted in `skipped` and checked again once that execution's claim could have lapsed, so a run whose process crashed is recovered without another call. `shutdown()` cancels pending re-checks. See [run ownership](https://mastra.ai/docs/harness/durable-agents).
|
|
151
|
+
|
|
146
152
|
```typescript
|
|
147
153
|
const result = await mastra.recoverAllDurableAgents()
|
|
148
|
-
// { agents: 2, recovered: 3, succeeded: 3, failed: 0 }
|
|
154
|
+
// { agents: 2, recovered: 3, succeeded: 3, failed: 0, skipped: 1 }
|
|
149
155
|
```
|
|
150
156
|
|
|
151
157
|
Returns:
|
|
152
158
|
|
|
153
159
|
**agents** (`number`): Number of durable agents scanned.
|
|
154
160
|
|
|
155
|
-
**recovered** (`number`): Total number of runs that were re-driven.
|
|
161
|
+
**recovered** (`number`): Total number of runs that were re-driven: succeeded plus failed.
|
|
156
162
|
|
|
157
163
|
**succeeded** (`number`): Runs that restarted successfully.
|
|
158
164
|
|
|
159
|
-
**failed** (`number`): Runs whose restart threw an error.
|
|
165
|
+
**failed** (`number`): Runs whose restart threw an error.
|
|
166
|
+
|
|
167
|
+
**skipped** (`number`): Runs that another execution still drives. Each is checked again later.
|
|
@@ -99,7 +99,7 @@ OM performs thresholding with fast local token estimation. Text uses `tokenx`, a
|
|
|
99
99
|
|
|
100
100
|
**observation.activateOnProviderChange** (`boolean`): Force buffered observations to activate when the actor provider or model changes. If unset, the top-level activateOnProviderChange value is used for observations. Currently only applied when using the standalone ObservationalMemory class; new Memory(...) applies the top-level activateOnProviderChange only.
|
|
101
101
|
|
|
102
|
-
**observation.blockAfter** (`number`): Safety net for when background buffering can't keep up. Values from 1 up to (but not including) 100 are multipliers of messageTokens: 1.2 resolves to 120% of the threshold (36k tokens with the default 30k). Values of 100 or more are absolute token counts and must be greater than messageTokens. Above this point, activation uses the smallest set of buffered chunks that reaches the retention target, even when that overshoots the target by more than the usual safeguard allows. It never activates more chunks than are needed to reach the retention target, so it removes only slightly more history than a normal activation. It changes the result only when the retention floor is above roughly 20,000 tokens; with the default bufferActivation (a 6k floor) it has no observable effect. Activation usually keeps a minimum remaining context (the smaller of 1000 tokens or the retention floor), but a single buffered chunk that covers the whole pending window still activates and can leave less.
|
|
102
|
+
**observation.blockAfter** (`number`): Safety net for when background buffering can't keep up. Values from 1 up to (but not including) 100 are multipliers of messageTokens: 1.2 resolves to 120% of the threshold (36k tokens with the default 30k). Multipliers apply to a per-thread messageTokens override when one is set. Values of 100 or more are absolute token counts and must be greater than messageTokens. Between messageTokens and blockAfter, only async buffering and activation run: reaching the threshold without a buffered chunk to activate starts background buffering, and the chunk activates on a later step. A synchronous (blocking) observation runs if pending tokens still reach blockAfter after buffered activation. All remaining buffered chunks are activated first, so the synchronous observation only covers messages no chunk has observed. Set blockAfter: 1 to observe synchronously at messageTokens. Above this point, activation also uses the smallest set of buffered chunks that reaches the retention target, even when that overshoots the target by more than the usual safeguard allows. It never activates more chunks than are needed to reach the retention target, so it removes only slightly more history than a normal activation. It changes the result only when the retention floor is above roughly 20,000 tokens; with the default bufferActivation (a 6k floor) it has no observable effect. Activation usually keeps a minimum remaining context (the smaller of 1000 tokens or the retention floor), but a single buffered chunk that covers the whole pending window still activates and can leave less. Only relevant when bufferTokens is set. Defaults to 1.2 when async buffering is enabled.
|
|
103
103
|
|
|
104
104
|
**observation.previousObserverTokens** (`number | false`): Optional token budget for the observer's previous-observations context. When set to a number, the observations passed to the Observer agent are tail-truncated to fit within this budget while keeping the newest observations and preserving highlighted 🔴 items when possible. When a buffered reflection is pending, the already-reflected observation lines are automatically replaced with the reflection summary before truncation. Set to 0 to omit previous observations entirely, or false to disable truncation explicitly.
|
|
105
105
|
|
|
@@ -371,7 +371,7 @@ export const agent = new Agent({
|
|
|
371
371
|
|
|
372
372
|
Async buffering is **enabled by default**. It pre-computes observations in the background as the conversation grows: when the `messageTokens` threshold is reached, buffered observations activate instantly with no blocking LLM call.
|
|
373
373
|
|
|
374
|
-
The lifecycle follows **buffer → activate → remove messages → repeat**. Background Observer calls run at `bufferTokens` intervals and produce chunks of observations. At the threshold, activation moves observations into the log and removes raw messages from context.
|
|
374
|
+
The lifecycle follows **buffer → activate → remove messages → repeat**. Background Observer calls run at `bufferTokens` intervals and produce chunks of observations. At the threshold, activation moves observations into the log and removes raw messages from context. Between the threshold and `blockAfter`, buffering continues in the background and the next ready chunk activates on a later step. A synchronous observation runs if pending tokens still reach `blockAfter` after all buffered chunks have been activated. Above `blockAfter`, activation may also overshoot the retention target instead of activating fewer chunks.
|
|
375
375
|
|
|
376
376
|
Default settings:
|
|
377
377
|
|
|
@@ -402,7 +402,7 @@ export const agent = new Agent({
|
|
|
402
402
|
bufferTokens: 5_000,
|
|
403
403
|
// Activate to retain 30% of threshold
|
|
404
404
|
bufferActivation: 0.7,
|
|
405
|
-
//
|
|
405
|
+
// Observe synchronously at 1.5x the threshold if no buffered chunk is ready
|
|
406
406
|
blockAfter: 1.5,
|
|
407
407
|
},
|
|
408
408
|
reflection: {
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
`LeaseProvider` is the distributed leasing contract, separate from event delivery ([`PubSub`](https://mastra.ai/reference/pubsub/base)). Mastra's [signals layer](https://mastra.ai/docs/harness/signals) uses it to elect a single owner across multiple processes (for example, serverless invocations) for a resource, most commonly a thread key. The owner is the process that wakes and runs the agent stream, so other processes route follow-up work to it instead of starting a competing run.
|
|
8
8
|
|
|
9
|
+
[Durable agents](https://mastra.ai/docs/harness/durable-agents) also claim each run through a lease when the workflows store doesn't support run fencing, so crash recovery can tell whether another process still drives the run.
|
|
10
|
+
|
|
9
11
|
Leasing is separate from pub/sub. A `LeaseProvider` implementation needs actual lock coordination, whether through an atomic Redis operation such as `SET` or Lua or through an in-memory map for a single process. For backends that omit leasing, the signals runtime preserves single-process behavior with a no-op provider.
|
|
10
12
|
|
|
11
13
|
The built-in [`RedisStreamsPubSub`](https://mastra.ai/reference/pubsub/redis-streams) implements `LeaseProvider`, which is what enables signals to coordinate across instances in distributed and serverless deployments.
|
|
@@ -49,7 +49,7 @@ export const mastra = new Mastra({
|
|
|
49
49
|
|
|
50
50
|
## Constructor parameters
|
|
51
51
|
|
|
52
|
-
**url** (`string`): Valkey connection URL. Falls back to valkeyOptions.url. (Default: `valkey://localhost:6379`)
|
|
52
|
+
**url** (`string`): Valkey connection URL. Falls back to valkeyOptions.url. rediss\:// and valkeys\:// URLs enable TLS unless valkeyOptions.useTLS is set. (Default: `valkey://localhost:6379`)
|
|
53
53
|
|
|
54
54
|
**valkeyOptions** (`ValkeyClientOptions`): GLIDE connection options, including native client configuration.
|
|
55
55
|
|
|
@@ -405,6 +405,7 @@ On authenticated servers, the read routes require the `stored-workflows:read` pe
|
|
|
405
405
|
| `POST` | `/api/datasets/:datasetId/items` | Add a dataset item |
|
|
406
406
|
| `DELETE` | `/api/datasets/:datasetId/items/:itemId/purge` | Permanently scrub an item's content from every dataset version and linked experiment result |
|
|
407
407
|
| `GET` | `/api/experiments` | List experiments across datasets |
|
|
408
|
+
| `GET` | `/api/experiments/:experimentId` | Get an experiment by ID without knowing its dataset |
|
|
408
409
|
| `DELETE` | `/api/experiments/:experimentId` | Delete an experiment, including one orphaned by dataset deletion |
|
|
409
410
|
| `GET` | `/api/datasets/:datasetId/experiments` | List experiments for a dataset |
|
|
410
411
|
| `POST` | `/api/datasets/:datasetId/experiments` | Trigger an experiment, or create one without starting it (`start: false`) |
|
|
@@ -95,29 +95,32 @@ Set the `retention` field on the store config.
|
|
|
95
95
|
|
|
96
96
|
Each domain specifies its age-prunable tables and the timestamp column that anchors comparison, chosen so `maxAge` matches the meaning of the data. Append-only logs use creation time, live state uses last activity, and jobs or runs use completion time so in-flight work isn't pruned.
|
|
97
97
|
|
|
98
|
-
| Domain | Table key | Anchor column | `maxAge` measures
|
|
99
|
-
| ----------------- | ------------------ | ---------------- |
|
|
100
|
-
| `memory` | `threads` | `createdAt` | Thread age
|
|
101
|
-
| `memory` | `messages` | `createdAt` | Message age
|
|
102
|
-
| `memory` | `resources` | `createdAt` | Resource age
|
|
103
|
-
| `
|
|
104
|
-
| `
|
|
105
|
-
| `observability` | `
|
|
106
|
-
| `observability` | `
|
|
107
|
-
| `observability` | `
|
|
108
|
-
| `observability` | `
|
|
109
|
-
| `
|
|
110
|
-
| `
|
|
111
|
-
| `
|
|
112
|
-
| `
|
|
113
|
-
| `
|
|
114
|
-
| `
|
|
115
|
-
| `
|
|
98
|
+
| Domain | Table key | Anchor column | `maxAge` measures |
|
|
99
|
+
| ----------------- | ------------------ | ---------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
100
|
+
| `memory` | `threads` | `createdAt` | Thread age |
|
|
101
|
+
| `memory` | `messages` | `createdAt` | Message age |
|
|
102
|
+
| `memory` | `resources` | `createdAt` | Resource age |
|
|
103
|
+
| `memory` | `runFences` | `retiredAt` | Time since the durable agent execution holding the fence settled. Fences of running executions (`NULL`) are never pruned |
|
|
104
|
+
| `threadState` | `threadState` | `updatedAt` | Inactivity: state for still-active threads survives |
|
|
105
|
+
| `observability` | `spans` | `startedAt` | Span age |
|
|
106
|
+
| `observability` | `metrics` | `timestamp` | Metric event age (vNext only) |
|
|
107
|
+
| `observability` | `logs` | `timestamp` | Log event age (vNext only) |
|
|
108
|
+
| `observability` | `scores` | `timestamp` | Score event age (vNext only) |
|
|
109
|
+
| `observability` | `feedback` | `timestamp` | Feedback event age (vNext only) |
|
|
110
|
+
| `scores` | `scorers` | `createdAt` | Score record age |
|
|
111
|
+
| `workflows` | `workflowSnapshot` | `updatedAt` | Inactivity, suspended or long-running workflows survive |
|
|
112
|
+
| `workflows` | `runOwnership` | `updatedAt` | Inactivity. A running durable agent execution renews its claim every 10 seconds, so keep `maxAge` well above its 30-second lease |
|
|
113
|
+
| `backgroundTasks` | `backgroundTasks` | `completedAt` | Time since completion, in-flight tasks (`NULL`) are never pruned |
|
|
114
|
+
| `experiments` | `experiments` | `completedAt` | Time since completion, running experiments are never pruned |
|
|
115
|
+
| `notifications` | `notifications` | `createdAt` | Notification age |
|
|
116
|
+
| `harness` | `sessions` | `createdAt` | Session record age |
|
|
117
|
+
| `schedules` | `triggers` | `actual_fire_at` | Fire-history age (epoch-ms column) |
|
|
116
118
|
|
|
117
119
|
> **Note:**
|
|
118
120
|
>
|
|
119
121
|
> - The memory `observational_memory` table has no timestamp anchor, so it can't be age-pruned and isn't a valid retention key.
|
|
120
122
|
> - Experiments prune as whole units: an aged experiment's result rows are deleted together with it (results cascade with their parent), so a run is never left partially deleted. Retention doesn't have a separate `results` key.
|
|
123
|
+
> - `runOwnership` and `runFences` hold the run fencing records of durable agents, one small record per run in each. If the `runOwnership` `maxAge` is too short, a running execution can lose its run, but an execution that lost a run still can't write. A fence is retired only when its execution settles, so the fence of a run that crashed and was never recovered is never pruned.
|
|
121
124
|
> - For `schedules`, the growth table is the fire history (`schedule_triggers`, one row per fire): schedule definitions are config and aren't pruned.
|
|
122
125
|
> - On PostgreSQL, timestamp anchors use the timezone-aware mirror columns (for example `createdAtZ`, `completedAtZ`).
|
|
123
126
|
> - DuckDB observability stores append-only events for all five signals. Its `spans` policy uses the event `timestamp` column rather than `startedAt`.
|
|
@@ -17,6 +17,7 @@ constructor({
|
|
|
17
17
|
id?: string;
|
|
18
18
|
servers: Record<string, MastraMCPServerDefinition>;
|
|
19
19
|
timeout?: number;
|
|
20
|
+
clientInfo?: { name?: string; version?: string };
|
|
20
21
|
}: MCPClientOptions)
|
|
21
22
|
```
|
|
22
23
|
|
|
@@ -28,6 +29,8 @@ constructor({
|
|
|
28
29
|
|
|
29
30
|
**timeout** (`number`): Global timeout value in milliseconds for all servers unless overridden in individual server configs. (Default: `60000`)
|
|
30
31
|
|
|
32
|
+
**clientInfo** (`{ name?: string; version?: string }`): Client name and version every server receives on connect and with each request, so servers can attribute traffic to your application. Defaults to the server key as name and '1.0.0' as version. Individual server configs can override either field with their own clientInfo. Doesn't change tool name prefixes, which always use the server key.
|
|
33
|
+
|
|
31
34
|
### `MastraMCPServerDefinition`
|
|
32
35
|
|
|
33
36
|
Each server in the `servers` map is configured using the `MastraMCPServerDefinition` type. The transport type is detected based on the provided parameters:
|
|
@@ -59,6 +62,8 @@ The client speaks the MCP `2026-07-28` revision. On connect it asks the server w
|
|
|
59
62
|
|
|
60
63
|
**timeout** (`number`): Server-specific timeout in milliseconds. Falls back to the client-level timeout when omitted.
|
|
61
64
|
|
|
65
|
+
**clientInfo** (`{ name?: string; version?: string }`): Overrides the top-level clientInfo for this server. Fields you set replace the top-level values; fields you omit keep them.
|
|
66
|
+
|
|
62
67
|
**capabilities** (`MCPClientCapabilities`): Client capabilities to advertise: elicitation and extensions. elicitation is only accepted together with an inputRequests handler and defaults to form support when a handler is configured. Roots and sampling are not supported.
|
|
63
68
|
|
|
64
69
|
**inputRequests** (`MCPInputRequestHandler`): Answers input requests from this server. When a tool, resource or prompt call ends as input\_required, the handler is called with each embedded request and the client retries the call with the answers. Without a handler an input\_required result surfaces as an error. See Answering input requests below.
|
|
@@ -123,10 +123,21 @@ const result = await sandbox.executeCommand('cat', ['/workspace/state.json'])
|
|
|
123
123
|
|
|
124
124
|
When `sandboxId` is set, `environmentId` isn't required because the sandbox already exists.
|
|
125
125
|
|
|
126
|
-
Read the platform's id for the running sandbox from the `sandboxId` property after `start()` and persist it for the next reattach. The property is `undefined` until the sandbox has started in the current process. The option passed to the constructor is a hint for `start()`. Before `start()` runs, `getInfo()` answers from local state and doesn't ask the platform about the hint.
|
|
126
|
+
Read the platform's id for the running sandbox from the `sandboxId` property after `start()` and persist it for the next reattach. The property is `undefined` until the sandbox has started in the current process. The option passed to the constructor is a hint for `start()`. Before `start()` runs, `getInfo()` answers from local state and doesn't ask the platform about the hint. Under the default `reattach: 'best-effort'`, if the platform no longer knows the id, `start()` falls through to a fresh provision keyed by the sandbox's logical `id`. That fallback needs `environmentId` (or `MASTRA_ENVIRONMENT_ID`), so pass it whenever a hint might be stale; without it, `start()` throws `environmentId is required`.
|
|
127
127
|
|
|
128
128
|
`start()` reports `{ outcome: 'connected' }` on reattach and `{ outcome: 'created' }` on a fresh provision (including a checkpoint-recovered boot, which is a new VM even when its filesystem was restored). See [`start()`](https://mastra.ai/reference/workspace/sandbox) for the shared contract.
|
|
129
129
|
|
|
130
|
+
When a fresh sandbox would silently lose state your app depends on, set `reattach: 'required'`:
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
const sandbox = new PlatformSandbox({
|
|
134
|
+
sandboxId: 'sbx_abc123',
|
|
135
|
+
reattach: 'required',
|
|
136
|
+
})
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
With `reattach: 'required'`, a reattach target the platform reports as missing (404), gone (410), or destroyed rejects `start()` with a `SandboxError` whose `code` is `SANDBOX_REATTACH_FAILED`, and no sandbox is provisioned. The error's `details` include `provider`, `sandboxId`, `logicalId` (the sandbox's logical `id`), and `reason`. Other errors propagate unchanged. To start fresh, clear your persisted `sandboxId` and construct the sandbox without it. Clones inherit the `reattach` setting.
|
|
140
|
+
|
|
130
141
|
### Reusable templates
|
|
131
142
|
|
|
132
143
|
Pass a reusable template builder to `PlatformSandbox`. A fresh sandbox start sends the serialized definition to Platform, which content-addresses it and starts or reuses the provider build. Sandbox creation never blocks on a build. When the exact template isn't built yet, Platform boots the sandbox on the best available fallback and rebuilds the requested template in the background. The fallback is a same-lineage stale template with matching resources when one exists, otherwise the provider base template:
|
|
@@ -315,6 +326,8 @@ console.log(result.exitCode)
|
|
|
315
326
|
|
|
316
327
|
**sandboxId** (`string`): Existing sandbox ID to reattach to instead of creating a new sandbox. When set, environmentId is not required.
|
|
317
328
|
|
|
329
|
+
**reattach** (`'best-effort' | 'required'`): What start() does when sandboxId is set but the platform reports that sandbox as missing, gone, or destroyed. 'best-effort' provisions a fresh sandbox. 'required' throws a SandboxError with code SANDBOX\_REATTACH\_FAILED instead of provisioning. (Default: `'best-effort'`)
|
|
330
|
+
|
|
318
331
|
**seedCheckpointName** (`string`): Boot-only fallback checkpoint used when the primary recovery checkpoint for id has no stored state. Later snapshots continue writing to the checkpoint for id.
|
|
319
332
|
|
|
320
333
|
**template** (`SandboxTemplateBuilder | (() => SandboxTemplateBuilder | undefined | Promise<SandboxTemplateBuilder | undefined>)`): Reusable template builder or lazy resolver used during a fresh sandbox provision. Resolver and provider build failures fall back to the selected provider default.
|
|
@@ -351,7 +364,7 @@ console.log(result.exitCode)
|
|
|
351
364
|
|
|
352
365
|
## Methods
|
|
353
366
|
|
|
354
|
-
**start** (`() => Promise<SandboxStartResult>`): Provision the remote sandbox, or reattach when sandboxId was passed to the constructor. Idempotent once the sandbox is running. A destroyed reattach target falls through to a fresh provision.
|
|
367
|
+
**start** (`() => Promise<SandboxStartResult>`): Provision the remote sandbox, or reattach when sandboxId was passed to the constructor. Idempotent once the sandbox is running. A destroyed reattach target falls through to a fresh provision under the default reattach: 'best-effort', and throws SANDBOX\_REATTACH\_FAILED under reattach: 'required'.
|
|
355
368
|
|
|
356
369
|
**destroy** (`() => Promise<void>`): Tear down the remote sandbox and clear the cached exec lease. A subsequent start() provisions a fresh sandbox (or restores from checkpoint when a stable id is set).
|
|
357
370
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mcp-docs-server",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7-alpha.1",
|
|
4
4
|
"description": "MCP server for accessing Mastra.ai documentation, changelogs, and news.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"@mastra/mcp-legacy": "npm:@mastra/mcp@^1.18.0",
|
|
27
27
|
"local-pkg": "^1.1.2",
|
|
28
28
|
"zod": "^4.6.4",
|
|
29
|
-
"@mastra/
|
|
30
|
-
"@mastra/
|
|
29
|
+
"@mastra/mcp": "^2.3.0",
|
|
30
|
+
"@mastra/core": "1.77.0-alpha.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@hono/node-server": "^2.0.0",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"tsx": "^4.23.1",
|
|
44
44
|
"typescript": "^7.0.2",
|
|
45
45
|
"vitest": "4.1.11",
|
|
46
|
-
"@internal/
|
|
47
|
-
"@internal/
|
|
48
|
-
"@mastra/core": "1.
|
|
46
|
+
"@internal/types-builder": "0.0.117",
|
|
47
|
+
"@internal/lint": "0.0.142",
|
|
48
|
+
"@mastra/core": "1.77.0-alpha.0"
|
|
49
49
|
},
|
|
50
50
|
"homepage": "https://mastra.ai",
|
|
51
51
|
"repository": {
|