@mastra/mcp-docs-server 1.2.7-alpha.12 → 1.2.7-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/.docs/docs/agent-builder/integrations.md +2 -44
  2. package/.docs/docs/agent-builder/overview.md +3 -4
  3. package/.docs/docs/agent-builder/skill-registries.md +3 -1
  4. package/.docs/docs/agent-controller/overview.md +2 -3
  5. package/.docs/docs/agent-controller/session.md +3 -1
  6. package/.docs/docs/agents/a2a.md +1 -2
  7. package/.docs/docs/agents/channels.md +225 -0
  8. package/.docs/docs/agents/code-mode.md +1 -1
  9. package/.docs/docs/agents/file-based-agents.md +297 -0
  10. package/.docs/docs/agents/guardrails.md +9 -10
  11. package/.docs/docs/agents/overview.md +4 -4
  12. package/.docs/docs/agents/skills.md +5 -3
  13. package/.docs/docs/agents/structured-output.md +1 -1
  14. package/.docs/docs/agents/supervisor-agents.md +4 -3
  15. package/.docs/docs/agents/using-tools.md +4 -2
  16. package/.docs/docs/browser/agent-browser.md +3 -1
  17. package/.docs/docs/browser/browser-viewer.md +3 -1
  18. package/.docs/docs/browser/overview.md +1 -2
  19. package/.docs/docs/browser/stagehand.md +1 -1
  20. package/.docs/docs/deployment/mastra-server.md +4 -2
  21. package/.docs/docs/editor/overview.md +6 -2
  22. package/.docs/docs/editor/prompts.md +1 -1
  23. package/.docs/docs/editor/tools.md +5 -3
  24. package/.docs/docs/evals/custom-scorers.md +3 -1
  25. package/.docs/docs/evals/datasets/overview.md +5 -4
  26. package/.docs/docs/evals/datasets/running-experiments.md +2 -4
  27. package/.docs/docs/evals/evals-with-memory.md +3 -1
  28. package/.docs/docs/evals/gates-and-verdicts.md +3 -1
  29. package/.docs/docs/evals/overview.md +1 -4
  30. package/.docs/docs/evals/quick-checks.md +3 -1
  31. package/.docs/docs/long-running-agents/background-tasks.md +1 -1
  32. package/.docs/docs/long-running-agents/durable-agents.md +5 -3
  33. package/.docs/docs/long-running-agents/goals.md +3 -1
  34. package/.docs/docs/long-running-agents/signal-providers.md +3 -1
  35. package/.docs/docs/long-running-agents/signals.md +22 -11
  36. package/.docs/docs/mastra-platform/observability.md +1 -5
  37. package/.docs/docs/mcp/mcp-apps.md +3 -3
  38. package/.docs/docs/mcp/overview.md +10 -6
  39. package/.docs/docs/memory/observational-memory.md +1 -2
  40. package/.docs/docs/memory/overview.md +4 -6
  41. package/.docs/docs/memory/semantic-recall.md +1 -1
  42. package/.docs/docs/memory/working-memory.md +3 -3
  43. package/.docs/docs/observability/integrations/exporters/mastra-platform.md +3 -1
  44. package/.docs/docs/observability/logging.md +1 -1
  45. package/.docs/docs/observability/tracing/overview.md +1 -1
  46. package/.docs/docs/server/auth/auth0.md +1 -1
  47. package/.docs/docs/server/auth/better-auth.md +2 -2
  48. package/.docs/docs/server/auth/clerk.md +1 -1
  49. package/.docs/docs/server/auth/firebase.md +1 -1
  50. package/.docs/docs/server/auth/google.md +2 -2
  51. package/.docs/docs/server/auth/jwt.md +2 -2
  52. package/.docs/docs/server/auth/okta.md +2 -2
  53. package/.docs/docs/server/auth/workos.md +1 -1
  54. package/.docs/docs/server/mastra-client.md +1 -1
  55. package/.docs/docs/server/mastra-server.md +1 -1
  56. package/.docs/docs/server/pubsub.md +1 -1
  57. package/.docs/docs/server/request-context.md +4 -4
  58. package/.docs/docs/server/server-adapters.md +8 -8
  59. package/.docs/docs/studio/auth.md +3 -1
  60. package/.docs/docs/studio/overview.md +1 -1
  61. package/.docs/docs/voice/livekit.md +3 -100
  62. package/.docs/docs/workflows/agents-and-tools.md +5 -3
  63. package/.docs/docs/workflows/control-flow.md +3 -1
  64. package/.docs/docs/workflows/overview.md +7 -6
  65. package/.docs/docs/workspace/overview.md +1 -2
  66. package/.docs/docs/workspace/sandbox.md +0 -2
  67. package/.docs/guides/build-your-ui/assistant-ui.md +1 -1
  68. package/.docs/guides/build-your-ui/copilotkit/overview.md +1 -1
  69. package/.docs/guides/concepts/streaming.md +3 -3
  70. package/.docs/guides/getting-started/quickstart.md +1 -3
  71. package/.docs/guides/guide/chef-michel.md +2 -0
  72. package/.docs/guides/guide/slack-assistant.md +2 -2
  73. package/.docs/guides/guide/stock-agent.md +2 -0
  74. package/.docs/models/environment-variables.md +0 -7
  75. package/.docs/models/gateways/netlify.md +1 -4
  76. package/.docs/models/gateways/openrouter.md +7 -10
  77. package/.docs/models/gateways/vercel.md +1 -8
  78. package/.docs/models/index.md +1 -1
  79. package/.docs/models/providers/abacus.md +14 -44
  80. package/.docs/models/providers/google.md +1 -2
  81. package/.docs/models/providers/llmgateway.md +181 -185
  82. package/.docs/models/providers/nano-gpt.md +2 -2
  83. package/.docs/models/providers/neon.md +29 -40
  84. package/.docs/models/providers/nvidia.md +3 -1
  85. package/.docs/models/providers/openai.md +1 -6
  86. package/.docs/models/providers/opencode.md +2 -6
  87. package/.docs/models/providers/poolside.md +5 -6
  88. package/.docs/models/providers/routing-run.md +34 -23
  89. package/.docs/models/providers/the-grid-ai.md +3 -3
  90. package/.docs/models/providers/wandb.md +14 -21
  91. package/.docs/models/providers/xai.md +1 -2
  92. package/.docs/models/providers.md +0 -7
  93. package/.docs/reference/agents/channels.md +2 -2
  94. package/.docs/reference/channels/channel-provider.md +1 -1
  95. package/.docs/reference/channels/slack-provider.md +2 -2
  96. package/.docs/reference/cli/mastra.md +10 -117
  97. package/.docs/reference/evals/create-scorer.md +0 -8
  98. package/.docs/reference/index.md +0 -17
  99. package/.docs/reference/memory/memory-class.md +1 -1
  100. package/.docs/reference/memory/serialized-memory-config.md +1 -1
  101. package/.docs/reference/project-structure.md +1 -1
  102. package/.docs/reference/pubsub/lease-provider.md +1 -1
  103. package/.docs/reference/server/express-adapter.md +3 -1
  104. package/.docs/reference/server/fastify-adapter.md +3 -1
  105. package/.docs/reference/server/hono-adapter.md +3 -1
  106. package/.docs/reference/server/koa-adapter.md +3 -1
  107. package/.docs/reference/server/nestjs-adapter.md +3 -1
  108. package/.docs/reference/storage/clickhouse.md +0 -32
  109. package/.docs/reference/storage/composite.md +1 -27
  110. package/.docs/reference/storage/retention.md +0 -11
  111. package/.docs/reference/tools/mcp-client.md +0 -22
  112. package/.docs/reference/tools/mcp-server.md +4 -161
  113. package/.docs/reference/voice/livekit.md +8 -272
  114. package/.docs/reference/workspace/agentcore-runtime-sandbox.md +3 -1
  115. package/.docs/reference/workspace/agentfs-filesystem.md +3 -1
  116. package/.docs/reference/workspace/apple-container-sandbox.md +3 -1
  117. package/.docs/reference/workspace/archil-filesystem.md +3 -1
  118. package/.docs/reference/workspace/azure-blob-filesystem.md +3 -1
  119. package/.docs/reference/workspace/blaxel-sandbox.md +3 -1
  120. package/.docs/reference/workspace/daytona-sandbox.md +3 -1
  121. package/.docs/reference/workspace/docker-sandbox.md +3 -1
  122. package/.docs/reference/workspace/e2b-sandbox.md +3 -1
  123. package/.docs/reference/workspace/files-sdk-filesystem.md +3 -1
  124. package/.docs/reference/workspace/gcs-filesystem.md +3 -1
  125. package/.docs/reference/workspace/google-drive-filesystem.md +3 -1
  126. package/.docs/reference/workspace/local-filesystem.md +3 -1
  127. package/.docs/reference/workspace/local-sandbox.md +3 -1
  128. package/.docs/reference/workspace/modal-sandbox.md +3 -1
  129. package/.docs/reference/workspace/railway-sandbox.md +3 -1
  130. package/.docs/reference/workspace/s3-filesystem.md +3 -1
  131. package/.docs/reference/workspace/vercel-sandbox.md +7 -5
  132. package/.docs/reference/workspace/vercel-serverless.md +3 -1
  133. package/CHANGELOG.md +0 -29
  134. package/package.json +5 -5
  135. package/.docs/docs/capabilities/channels/discord.md +0 -98
  136. package/.docs/docs/capabilities/channels/other-adapters.md +0 -68
  137. package/.docs/docs/capabilities/channels/overview.md +0 -255
  138. package/.docs/docs/capabilities/channels/slack.md +0 -225
  139. package/.docs/docs/capabilities/channels/teams.md +0 -100
  140. package/.docs/docs/capabilities/channels/telegram.md +0 -98
  141. package/.docs/docs/capabilities/channels/whatsapp.md +0 -99
  142. package/.docs/docs/getting-started/file-based-agents.md +0 -116
  143. package/.docs/models/providers/crossmodel.md +0 -109
  144. package/.docs/models/providers/empiriolabs.md +0 -106
  145. package/.docs/models/providers/meta.md +0 -101
  146. package/.docs/models/providers/model-oracle-ai.md +0 -87
  147. package/.docs/models/providers/pioneer.md +0 -148
  148. package/.docs/models/providers/unorouter.md +0 -95
  149. package/.docs/models/providers/zenifra.md +0 -73
  150. package/.docs/reference/file-based-agents/config.md +0 -97
  151. package/.docs/reference/file-based-agents/instructions.md +0 -54
  152. package/.docs/reference/file-based-agents/logger.md +0 -26
  153. package/.docs/reference/file-based-agents/memory.md +0 -58
  154. package/.docs/reference/file-based-agents/observability.md +0 -32
  155. package/.docs/reference/file-based-agents/processors.md +0 -56
  156. package/.docs/reference/file-based-agents/scorers.md +0 -54
  157. package/.docs/reference/file-based-agents/server.md +0 -37
  158. package/.docs/reference/file-based-agents/skills.md +0 -56
  159. package/.docs/reference/file-based-agents/storage.md +0 -30
  160. package/.docs/reference/file-based-agents/studio.md +0 -56
  161. package/.docs/reference/file-based-agents/subagents.md +0 -123
  162. package/.docs/reference/file-based-agents/tools.md +0 -63
  163. package/.docs/reference/file-based-agents/workflows.md +0 -52
  164. package/.docs/reference/file-based-agents/workspace.md +0 -74
  165. package/.docs/reference/memory/summarizeConversation.md +0 -99
  166. package/.docs/reference/memory/summarizeThread.md +0 -93
@@ -6,11 +6,10 @@ The `@mastra/livekit` package connects Mastra agents to the LiveKit Agents frame
6
6
 
7
7
  See [Using LiveKit with Mastra](https://mastra.ai/docs/voice/livekit) for setup and concepts.
8
8
 
9
- The package has three entry points:
9
+ The package has two entry points, one per process:
10
10
 
11
- - `@mastra/livekit`: server-side APIs — [`liveKitConnectionRoute()`](#livekitconnectionroute), [`dispatchVoiceSession()`](#dispatchvoicesession), [`pipeAgentReplyToWriter()`](#pipeagentreplytowriter), [`serializeSessionMetadata()`](#livekitsessionmetadata), and [`createEndCallTool()`](#createendcalltool). Import these from Mastra server code. This entry never loads the LiveKit agents runtime.
12
- - `@mastra/livekit/worker`: the worker runtime — [`createLiveKitWorker()`](#createlivekitworker), [`runLiveKitWorker()`](#runlivekitworker), [`chatContextToMessages()`](#chatcontexttomessages), and the session helpers [`speakGreeting()`](#speakgreeting), [`waitForAgentDoneSpeaking()`](#waitforagentdonespeaking), and [`runEndCall()`](#runendcall). Import it only from the worker entry file.
13
- - `@mastra/livekit/plugin`: the LLM-component plugin — [`MastraLLM`](#mastrallm) and [`createRemoteAgentReplyGenerator()`](#createremoteagentreplygenerator). Import it in workers that build their own `voice.AgentSession`. `createRemoteAgentReplyGenerator()` is also exported from `@mastra/livekit/worker` because it plugs into `createLiveKitWorker()`'s `generate` option; `MastraLLM` is plugin-only.
11
+ - `@mastra/livekit`: server-side APIs — [`liveKitConnectionRoute()`](#livekitconnectionroute), [`dispatchVoiceSession()`](#dispatchvoicesession), [`pipeAgentReplyToWriter()`](#pipeagentreplytowriter), and [`serializeSessionMetadata()`](#livekitsessionmetadata). Import these from Mastra server code. This entry never loads the LiveKit agents runtime.
12
+ - `@mastra/livekit/worker`: the worker runtime — [`createLiveKitWorker()`](#createlivekitworker), [`runLiveKitWorker()`](#runlivekitworker), and [`chatContextToMessages()`](#chatcontexttomessages). Import it only from the worker entry file.
14
13
 
15
14
  ## `createLiveKitWorker()`
16
15
 
@@ -50,9 +49,9 @@ if (process.argv[1] === fileURLToPath(import.meta.url)) {
50
49
 
51
50
  **generate** (`VoiceReplyGenerator`): Lowest-level escape hatch: supply any reply generator directly (a custom workflow, remote bridge, and so on).
52
51
 
53
- **stt** (`STT | string`): Speech-to-text: a LiveKit plugin instance or an inference model string such as 'deepgram/nova-3'. For per-call selection, set the configuration.stt resolver — it takes precedence, with this option as the fallback.
52
+ **stt** (`STT | string`): Speech-to-text: a LiveKit plugin instance or an inference model string such as 'deepgram/nova-3'.
54
53
 
55
- **tts** (`TTS | string`): Text-to-speech: a LiveKit plugin instance or an inference model string such as 'cartesia/sonic-3'. For per-call selection, set the configuration.tts resolver — it takes precedence, with this option as the fallback.
54
+ **tts** (`TTS | string`): Text-to-speech: a LiveKit plugin instance or an inference model string such as 'cartesia/sonic-3'.
56
55
 
57
56
  **vad** (`VAD | 'silero' | false`): Voice activity detection. 'silero' loads the Silero VAD from @livekit/agents-plugin-silero during prewarm. Pass an instance to bring your own, or false to disable. (Default: `'silero'`)
58
57
 
@@ -66,23 +65,9 @@ if (process.argv[1] === fileURLToPath(import.meta.url)) {
66
65
 
67
66
  **toolFeedback** (`(toolCall) => string | undefined`): Called when the Mastra agent starts a tool call mid-reply. Return a short phrase to speak while the tool runs.
68
67
 
69
- **onTurnComplete** (`(ctx: VoiceTurnCompleteContext) => void | Promise<void>`): Called once per turn after the reply finished streaming to text-to-speech. Runs off the audio path and is not awaited. The context carries the produced reply (text, toolCalls, interrupted, usage) and the resolved memory mapping.
68
+ **greeting** (`string`): Static greeting spoken when the session starts.
70
69
 
71
- **configuration** (`LiveKitWorkerConfiguration`): Grouped conversation and compliance configuration: the opening greeting and AI disclosure, consent requirements, agent-initiated hang-up, and per-call STT/TTS selection.
72
-
73
- **configuration.greeting** (`GreetingConfiguration`): The opening greeting and AI disclosure: text (a fixed string or a per-call resolver for per-tenant greetings), allowInterruptions, awaitPlayout, persist, and periodic re-disclosure via repeatEvery and repeatText.
74
-
75
- **configuration.consentPolicy** (`ConsentConfiguration`): The call's consent policy, as named requirements (starting with summaryStorage). Declarative only — the worker blocks nothing by itself. Capture grants at runtime with createConsentTool and enforce them in your own code; the declared policy surfaces on onCallEnd for cross-checking.
76
-
77
- **configuration.endCall** (`EndCallConfiguration`): Agent-initiated hang-up: the worker watches each turn for the end-call tool (pair with createEndCallTool), waits for the agent's closing words to play out, then disconnects — running onCallEnd on the way out.
78
-
79
- **configuration.stt** (`(context: VoiceCallContext) => STT | string | undefined`): Per-call speech-to-text: a resolver invoked once per call (post-connect) with { metadata, requestContext, roomName, ctx }, returning anything the top-level stt option accepts. Return undefined to fall back to the top-level stt. Cache plugin instances across calls — the resolver runs during call setup.
80
-
81
- **configuration.tts** (`(context: VoiceCallContext) => TTS | string | undefined`): Per-call text-to-speech: a resolver invoked once per call (post-connect) with { metadata, requestContext, roomName, ctx }, returning anything the top-level tts option accepts — one voice or language per tenant. Return undefined to fall back to the top-level tts. Cache plugin instances across calls.
82
-
83
- **greeting** (`string`): Static greeting spoken when the session starts. Deprecated: prefer configuration.greeting.text.
84
-
85
- **persistGreeting** (`boolean`): Save the spoken greeting to the memory thread as an assistant message, making the saved thread a faithful call transcript. Only applies when a greeting is set and memory is enabled. Deprecated: prefer configuration.greeting.persist. (Default: `true`)
70
+ **persistGreeting** (`boolean`): Save the spoken greeting to the memory thread as an assistant message, making the saved thread a faithful call transcript. Only applies when a greeting is set and memory is enabled. (Default: `true`)
86
71
 
87
72
  **observability** (`boolean`): Trace each call when the Mastra instance has observability configured. Opens a voice call span per session: every turn's agent run nests under it, LiveKit's STT, TTS, end-of-utterance, VAD, and LLM latency metrics become child spans, and the span closes with a per-model usage roll-up. Pass false to disable. (Default: `true`)
88
73
 
@@ -144,256 +129,7 @@ export default createLiveKitWorker({
144
129
  })
145
130
  ```
146
131
 
147
- Returns: `VoiceTurnMessage[]`, where each entry is `{ role: 'system' | 'user' | 'assistant'; content: string; id?: string }`.
148
-
149
- ## `MastraLLM`
150
-
151
- A standard LiveKit LLM plugin (`llm.LLM`) backed by a Mastra agent. Use it when you build the `voice.AgentSession` yourself and want Mastra in the `llm` slot; [`createLiveKitWorker()`](#createlivekitworker) is the managed alternative. See [Use Mastra as the LLM component](https://mastra.ai/docs/voice/livekit) for how to choose.
152
-
153
- With `remote`, the plugin streams each turn from your Mastra server over HTTP using Server-Sent Events (SSE). The agent loop, tools, and memory run server-side, and interrupting the agent aborts the server-side generation.
154
-
155
- ```typescript
156
- import { voice } from '@livekit/agents'
157
- import { MastraLLM } from '@mastra/livekit/plugin'
158
-
159
- const session = new voice.AgentSession({
160
- llm: new MastraLLM({
161
- remote: { baseUrl: process.env.MASTRA_URL!, agentId: 'support' },
162
- memory: { thread: callId, resource: userId },
163
- }),
164
- stt: 'deepgram/nova-3',
165
- tts: 'cartesia/sonic-3',
166
- // Required with `memory`: LiveKit enables preemptive generation by default.
167
- turnHandling: { preemptiveGeneration: { enabled: false } },
168
- })
169
- ```
170
-
171
- The plugin reports `provider` as `mastra` and `model` as the agent id, so LiveKit metrics and fallback adapters identify it like any other LLM.
172
-
173
- ### Constructor options
174
-
175
- Provide exactly one reply source: `remote`, `agent`, or `generate`.
176
-
177
- **remote** (`RemoteMastraAgentOptions`): Remote Mastra server reached over HTTP. Takes the same connection options as createRemoteAgentReplyGenerator(): baseUrl, agentId, apiPrefix, headers, fetch, timeoutMs, retries, body.
178
-
179
- **agent** (`Agent`): In-process Mastra agent. Session ownership without a second deployment.
180
-
181
- **generate** (`VoiceReplyGenerator`): Custom reply source. A generate source owns its own hooks; toolFeedback, onToolCall, and onTurnComplete below only apply to the remote and agent sources.
182
-
183
- **memory** (`{ thread: string; resource?: string } | false`): Conversation persistence, resolved per call (for example from the SIP caller identity). When set, only messages new since the agent last spoke are sent each turn and Mastra Memory supplies history. When omitted, the full LiveKit chat context is sent every turn. (Default: `false`)
184
-
185
- **requestContext** (`RequestContext | Record<string, unknown>`): Request context forwarded to generation (tenant, dialed number, and so on).
186
-
187
- **toolFeedback** (`(toolCall: VoiceToolCall) => string | undefined`): Return a short phrase to speak while a server-side tool runs.
188
-
189
- **onToolCall** (`(toolCall: VoiceToolCall) => void`): Called as each tool call starts, mid-stream. Pair with runEndCall() to implement your own agent-initiated hang-up flow.
190
-
191
- **onTurnComplete** (`(ctx: VoiceTurnCompleteContext) => void | Promise<void>`): Called once per turn after the reply finished streaming, off the audio path and not awaited. The context carries the produced reply: text, toolCalls, interrupted, and usage.
192
-
193
- > **Warning:** Don't combine `memory` with the session's `preemptiveGeneration` option, which LiveKit enables by default in sessions you build yourself. A speculative turn that completes before LiveKit discards it persists a user message and a never-spoken reply to the thread. Set `turnHandling: { preemptiveGeneration: { enabled: false } }` on the session. Stateless mode (no `memory`) works with preemptive generation.
194
-
195
- ### Tools run on the Mastra agent
196
-
197
- Tools are defined and executed server-side on the Mastra agent. The plugin never forwards LiveKit tool definitions: if the session passes a non-empty `toolCtx`, it logs a one-time warning naming the ignored tools. Every tool must complete server-side — a tool that requires approval or client-side execution fails the turn with a descriptive error instead of hanging the call.
198
-
199
- Tool activity reaches the worker through `toolFeedback`, `onToolCall`, and `onTurnComplete`.
200
-
201
- ### Instructions
202
-
203
- LiveKit injects your `voice.Agent`'s `instructions` into the chat context of every request. The plugin drops them: the server-side Mastra agent's own instructions are authoritative. To change the prompt, change the Mastra agent.
204
-
205
- ### Interrupted turns
206
-
207
- When the user interrupts a reply:
208
-
209
- 1. The plugin cancels the stream. The server aborts generation and persists nothing from that turn.
210
- 2. LiveKit records the part the user actually heard in its chat context, flagged as interrupted.
211
- 3. On the next turn, the plugin re-sends that heard-only fragment, ordered before the new user message, so the memory thread backfills to match the call. Messages carry LiveKit's message ids and the server deduplicates by id, so retries and re-sends stay idempotent.
212
-
213
- A user who hangs up immediately after interrupting leaves that final fragment unrecorded. When the transcript must capture it, reconcile immediately from the session event; the shared message id means the next turn's re-send upserts instead of duplicating:
214
-
215
- ```typescript
216
- import { voice } from '@livekit/agents'
217
- import { MastraClient } from '@mastra/client-js'
218
-
219
- const client = new MastraClient({ baseUrl: process.env.MASTRA_URL! })
220
-
221
- session.on(voice.AgentSessionEventTypes.ConversationItemAdded, ({ item }) => {
222
- if (item.type !== 'message' || item.role !== 'assistant' || !item.interrupted) return
223
- void client.saveMessageToMemory({
224
- agentId: 'support',
225
- messages: [
226
- {
227
- id: item.id,
228
- threadId: callId,
229
- resourceId: userId,
230
- role: 'assistant',
231
- content: item.textContent ?? '',
232
- type: 'text',
233
- createdAt: new Date(),
234
- },
235
- ],
236
- })
237
- })
238
- ```
239
-
240
- ### Usage metrics
241
-
242
- When the server reports token usage for a turn, the plugin feeds it to LiveKit, so the session's `metrics_collected` events carry time-to-first-token, duration, and token counts like any LLM plugin. The same usage object (`promptTokens`, `completionTokens`, `promptCachedTokens`, `totalTokens`) arrives on `onTurnComplete` as `result.usage`.
243
-
244
- ### Errors and timeouts
245
-
246
- The transport throws LiveKit's `APIError` types (`APIStatusError`, `APIConnectionError`, `APITimeoutError`), so the session's retry policy (`connOptions.maxRetry`) and `FallbackAdapter` failover work unchanged. A turn is never retried after its first token — a voice reply is better failed fast than replayed half-heard.
247
-
248
- A connect and first-token watchdog uses the session's `connOptions.timeoutMs` (10 seconds by default), so a server that accepts the connection but never streams can't cause indefinite dead air.
249
-
250
- If the Mastra server goes down mid-call, each reply attempt fails with a typed error after its retries, and LiveKit closes the session after several consecutive failed replies. Restore the server before that budget runs out and the call recovers on the next turn.
251
-
252
- ### Message content
253
-
254
- Message extraction is text-only: image content is dropped, and audio content is included only through its transcript. Voice pipelines aren't affected, but items you inject into the chat context yourself must carry text.
255
-
256
- ## `createRemoteAgentReplyGenerator()`
257
-
258
- Builds a reply generator that runs the agent loop on a **remote** Mastra server over HTTP/SSE. `MastraLLM`'s `remote` mode uses it internally. Use it directly through `createLiveKitWorker`'s `generate` option to run the batteries-included worker against a remote server:
259
-
260
- ```typescript
261
- import { createLiveKitWorker, createRemoteAgentReplyGenerator } from '@mastra/livekit/worker'
262
- import { mastra } from './index'
263
-
264
- export default createLiveKitWorker({
265
- mastra, // local instance for logger and worker config; replies come from the remote server
266
- generate: createRemoteAgentReplyGenerator({
267
- baseUrl: process.env.MASTRA_URL!,
268
- agentId: 'support',
269
- }),
270
- memory: ({ metadata, roomName }) => ({ thread: metadata.threadId ?? roomName }),
271
- stt: 'deepgram/nova-3',
272
- tts: 'cartesia/sonic-3',
273
- })
274
- ```
275
-
276
- On the `generate` path the worker-level `toolFeedback` and `onTurnComplete` options don't apply, and the worker's end-call detection doesn't fire; pass the hooks to the generator instead.
277
-
278
- Cancelling a turn (barge-in) tears down the HTTP request, which aborts generation on the server. Errors are thrown as LiveKit `APIError` types; `retries` applies to the initial connection only — a turn is never retried after its first chunk.
279
-
280
- Returns: `VoiceReplyGenerator`.
281
-
282
- ### Options
283
-
284
- **baseUrl** (`string`): Base URL of the remote Mastra server, for example https\://my-app.example.com.
285
-
286
- **agentId** (`string`): The agent's registered key or id on the remote Mastra instance.
287
-
288
- **apiPrefix** (`string`): Path prefix for the Mastra API. (Default: `'/api'`)
289
-
290
- **headers** (`Record<string, string> | () => Record<string, string> | Promise<Record<string, string>>`): Static headers, or a resolver invoked per turn — for example to mint a fresh authorization token.
291
-
292
- **fetch** (`typeof fetch`): Injectable fetch implementation for tests or proxies. (Default: `globalThis.fetch`)
293
-
294
- **timeoutMs** (`number`): Connect and first-token timeout in milliseconds. When used through MastraLLM, defaults to the session's connOptions.timeoutMs instead. (Default: `10000`)
295
-
296
- **retries** (`number`): Initial-connection retry attempts, before the first chunk only. When used through MastraLLM, the LiveKit session owns retries and this is forced to 0. (Default: `2`)
297
-
298
- **body** (`Record<string, unknown>`): Extra fields merged into each stream request body.
299
-
300
- **toolFeedback** (`(toolCall: VoiceToolCall) => string | undefined`): Return a short phrase to speak while a server-side tool runs.
301
-
302
- **onToolCall** (`(toolCall: VoiceToolCall) => void`): Called as each tool call starts, mid-stream.
303
-
304
- **onTurnComplete** (`(ctx: VoiceTurnCompleteContext) => void | Promise<void>`): Called once per turn after the reply finished streaming, off the audio path.
305
-
306
- ## `speakGreeting()`
307
-
308
- Speaks an opening greeting on a session you own, honoring interruption and playout options. Returns the LiveKit `SpeechHandle`, or `undefined` when there's no greeting text. `createLiveKitWorker()` uses it internally for its `greeting` configuration.
309
-
310
- ```typescript
311
- import { speakGreeting } from '@mastra/livekit/worker'
312
-
313
- await speakGreeting(session, {
314
- text: "You've reached support. You're speaking with an AI assistant.",
315
- allowInterruptions: false,
316
- awaitPlayout: true,
317
- })
318
- ```
319
-
320
- ### Parameters
321
-
322
- **session** (`voice.AgentSession`): The session to speak on.
323
-
324
- **greeting** (`{ text?: string; allowInterruptions?: boolean; awaitPlayout?: boolean }`): The greeting text and playout options. When awaitPlayout is true, the returned promise resolves after the greeting finished playing (or was interrupted).
325
-
326
- ## `waitForAgentDoneSpeaking()`
327
-
328
- Resolves once the agent is no longer producing or playing a reply — its state has left `thinking` and `speaking`. Resolves immediately when the agent is already idle, and always resolves within `maxWaitMs` (30 seconds by default) as a safety cap. Use it before tearing a session down so closing words play out instead of being cut off.
329
-
330
- ```typescript
331
- import { waitForAgentDoneSpeaking } from '@mastra/livekit/worker'
332
-
333
- await waitForAgentDoneSpeaking(session)
334
- ```
335
-
336
- ## `runEndCall()`
337
-
338
- Ends the call after the agent asked to: waits for the agent's closing words to finish, speaks an optional final `message` non-interruptibly, then deletes the room (hanging up the caller, SIP included) and shuts the job down, which runs registered shutdown callbacks.
339
-
340
- Pair it with [`MastraLLM`](#mastrallm)'s `onToolCall` and an [end-call tool](#createendcalltool) on the server-side agent to rebuild agent-initiated hang-up on a session you own:
341
-
342
- ```typescript
343
- import { MastraLLM } from '@mastra/livekit/plugin'
344
- import { DEFAULT_END_CALL_TOOL, runEndCall } from '@mastra/livekit/worker'
345
-
346
- let ending = false
347
-
348
- const llm = new MastraLLM({
349
- remote: { baseUrl: process.env.MASTRA_URL!, agentId: 'support' },
350
- onToolCall: ({ toolName }) => {
351
- if (toolName !== DEFAULT_END_CALL_TOOL || ending) return
352
- ending = true
353
- void runEndCall(session, ctx, {}, console)
354
- },
355
- })
356
- ```
357
-
358
- The exported constants `DEFAULT_END_CALL_TOOL` (`'endCall'`), `DEFAULT_END_CALL_REASON`, and `DEFAULT_END_CALL_MAX_WAIT_MS` (30000) hold the defaults.
359
-
360
- ### Parameters
361
-
362
- **session** (`voice.AgentSession`): The session whose agent is finishing its closing words.
363
-
364
- **ctx** (`JobContext`): The LiveKit job context used to delete the room and shut down.
365
-
366
- **config** (`{ message?: string; reason?: string; maxWaitMs?: number; drainMs?: number }`): Optional final message spoken before hang-up, the shutdown reason to record, the safety cap on waiting for closing words, and the post-playout drain (default 800ms) that lets audio buffered at the caller finish playing before the room is deleted — LiveKit's playout accounting is worker-local, so hanging up the instant it clears clips the goodbye.
367
-
368
- **logger** (`{ warn: (message: string, ...args: unknown[]) => void }`): Receives warnings when teardown steps fail. Pass your logger or console.
369
-
370
- ## `createEndCallTool()`
371
-
372
- Builds the Mastra tool an agent calls to end the call itself: say goodbye, then hang up. The tool only signals intent (and runs optional bookkeeping) — the worker owns the actual hang-up. It lives on the server-safe root entry, so add it to agents defined in server code.
373
-
374
- ```typescript
375
- import { Agent } from '@mastra/core/agent'
376
- import { createEndCallTool } from '@mastra/livekit'
377
-
378
- const supportAgent = new Agent({
379
- id: 'support',
380
- name: 'Support',
381
- instructions:
382
- 'Help the caller. When everything is wrapped up, say goodbye and call endCall as your final action.',
383
- model: 'openai/gpt-5-mini',
384
- tools: { endCall: createEndCallTool() },
385
- })
386
- ```
387
-
388
- With `createLiveKitWorker()`, set `configuration: { endCall: {} }` and the worker watches for the tool and hangs up. On a session you own, rebuild the hang-up with [`runEndCall()`](#runendcall).
389
-
390
- ### Options
391
-
392
- **id** (`string`): Tool id the agent calls to end the call. Must match the name the worker watches for (the worker's configuration.endCall.tool, or your own onToolCall check). (Default: `'endCall'`)
393
-
394
- **description** (`string`): Override the description the model sees when deciding to call the tool.
395
-
396
- **onEndCall** (`(request: { reason?: string; resourceId?: string; threadId?: string }) => void | Promise<void>`): Bookkeeping hook called when the agent invokes the tool — record the reason or mark the call resolved. Runs inside the turn; keep it quick. It does not hang up the call.
132
+ Returns: `VoiceTurnMessage[]`, where each entry is `{ role: 'system' | 'user' | 'assistant'; content: string }`.
397
133
 
398
134
  ## `liveKitConnectionRoute()`
399
135
 
@@ -4,7 +4,9 @@
4
4
 
5
5
  Executes shell commands in an [AWS Bedrock AgentCore Runtime](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-execute-command.html) session by using `InvokeAgentRuntimeCommand`.
6
6
 
7
- Use `AgentCoreRuntimeSandbox` when your agent already runs in AgentCore Runtime and you want Mastra workspace command execution to use the same runtime session. For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
7
+ Use `AgentCoreRuntimeSandbox` when your agent already runs in AgentCore Runtime and you want Mastra workspace command execution to use the same runtime session.
8
+
9
+ > **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
8
10
 
9
11
  > **Warning:** `AgentCoreRuntimeSandbox` only supports one-shot command execution. It doesn't support background process management, stdin, or filesystem mounts. AgentCore Code Interpreter is a separate AWS service and isn't part of this provider.
10
12
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # AgentFSFilesystem
4
4
 
5
- Stores files in a Turso/SQLite database via the [AgentFS](https://github.com/nichochar/agentfs) SDK. Files are persisted across sessions in a local SQLite database, giving agents durable storage without external cloud services. For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
5
+ Stores files in a Turso/SQLite database via the [AgentFS](https://github.com/nichochar/agentfs) SDK. Files are persisted across sessions in a local SQLite database, giving agents durable storage without external cloud services.
6
+
7
+ > **Info:** For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # AppleContainerSandbox
4
4
 
5
- Executes commands inside local OCI Linux containers through Apple's [`container`](https://github.com/apple/container) CLI. The provider starts a long-lived container and uses `container exec` for workspace commands. For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
5
+ Executes commands inside local OCI Linux containers through Apple's [`container`](https://github.com/apple/container) CLI. The provider starts a long-lived container and uses `container exec` for workspace commands.
6
+
7
+ > **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # ArchilFilesystem
4
4
 
5
- Stores files on [Archil](https://docs.archil.com) elastic, serverless disks. Combines an S3-compatible object API for fast reads/writes with `exec()` for POSIX shell operations and `grep()` for parallel server-side search. For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
5
+ Stores files on [Archil](https://docs.archil.com) elastic, serverless disks. Combines an S3-compatible object API for fast reads/writes with `exec()` for POSIX shell operations and `grep()` for parallel server-side search.
6
+
7
+ > **Info:** For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # AzureBlobFilesystem
4
4
 
5
- Stores files in Azure Blob Storage containers. For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
5
+ Stores files in Azure Blob Storage containers.
6
+
7
+ > **Info:** For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # BlaxelSandbox
4
4
 
5
- Executes commands in isolated [Blaxel](https://blaxel.ai/) cloud sandboxes. Provides secure, isolated code execution environments with support for mounting cloud storage (S3, GCS) via FUSE. For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
5
+ Executes commands in isolated [Blaxel](https://blaxel.ai/) cloud sandboxes. Provides secure, isolated code execution environments with support for mounting cloud storage (S3, GCS) via FUSE.
6
+
7
+ > **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # DaytonaSandbox
4
4
 
5
- Executes commands in isolated [Daytona](https://www.daytona.io) cloud sandboxes. Supports multiple runtimes, resource configuration, volumes, snapshots, streaming output, sandbox reconnection, filesystem mounting (S3, GCS), and network isolation. For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
5
+ Executes commands in isolated [Daytona](https://www.daytona.io) cloud sandboxes. Supports multiple runtimes, resource configuration, volumes, snapshots, streaming output, sandbox reconnection, filesystem mounting (S3, GCS), and network isolation.
6
+
7
+ > **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # DockerSandbox
4
4
 
5
- Executes commands inside Docker containers on the local machine. Uses long-lived containers with `docker exec` for command execution. Targets local development, CI/CD, air-gapped deployments, and cost-sensitive scenarios where cloud sandboxes are unnecessary. For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
5
+ Executes commands inside Docker containers on the local machine. Uses long-lived containers with `docker exec` for command execution. Targets local development, CI/CD, air-gapped deployments, and cost-sensitive scenarios where cloud sandboxes are unnecessary.
6
+
7
+ > **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # E2BSandbox
4
4
 
5
- Executes commands in isolated [E2B](https://e2b.dev) cloud sandboxes. Provides secure, ephemeral environments with support for mounting cloud storage. For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
5
+ Executes commands in isolated [E2B](https://e2b.dev) cloud sandboxes. Provides secure, ephemeral environments with support for mounting cloud storage.
6
+
7
+ > **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # FilesSDKFilesystem
4
4
 
5
- Stores files in any storage backend supported by [FilesSDK](https://files-sdk.dev) — a unified abstraction over S3, Cloudflare R2, Google Cloud Storage, Azure Blob, Vercel Blob, MinIO, the local filesystem, and more. For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
5
+ Stores files in any storage backend supported by [FilesSDK](https://files-sdk.dev) — a unified abstraction over S3, Cloudflare R2, Google Cloud Storage, Azure Blob, Vercel Blob, MinIO, the local filesystem, and more.
6
+
7
+ > **Info:** For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
6
8
 
7
9
  Use `FilesSDKFilesystem` when you want a single adapter that can target multiple storage backends with the same code. Swap the underlying driver without changing the workspace setup. If you only target one backend and want first-class options for that backend, prefer the dedicated provider (for example [`S3Filesystem`](https://mastra.ai/reference/workspace/s3-filesystem) or [`GCSFilesystem`](https://mastra.ai/reference/workspace/gcs-filesystem)).
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # GCSFilesystem
4
4
 
5
- Stores files in Google Cloud Storage. For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
5
+ Stores files in Google Cloud Storage.
6
+
7
+ > **Info:** For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # GoogleDriveFilesystem
4
4
 
5
- Stores files in a single Google Drive folder. Each directory maps to a Drive folder under the configured root, and paths use POSIX semantics (for example `/notes/todo.txt`). For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
5
+ Stores files in a single Google Drive folder. Each directory maps to a Drive folder under the configured root, and paths use POSIX semantics (for example `/notes/todo.txt`).
6
+
7
+ > **Info:** For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
6
8
 
7
9
  ## Installation
8
10
 
@@ -4,7 +4,9 @@
4
4
 
5
5
  **Added in:** `@mastra/core@1.1.0`
6
6
 
7
- Stores files in a directory on the local filesystem. For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
7
+ Stores files in a directory on the local filesystem.
8
+
9
+ > **Info:** For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
8
10
 
9
11
  ## Usage
10
12
 
@@ -4,7 +4,9 @@
4
4
 
5
5
  **Added in:** `@mastra/core@1.1.0`
6
6
 
7
- Executes commands on the local system. For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
7
+ Executes commands on the local system.
8
+
9
+ > **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
8
10
 
9
11
  ## Usage
10
12
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # ModalSandbox
4
4
 
5
- Executes commands in isolated [Modal](https://modal.com) cloud sandboxes. Provides secure, ephemeral environments backed by Modal's infrastructure. For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
5
+ Executes commands in isolated [Modal](https://modal.com) cloud sandboxes. Provides secure, ephemeral environments backed by Modal's infrastructure.
6
+
7
+ > **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # RailwaySandbox
4
4
 
5
- Executes commands in ephemeral, isolated [Railway](https://docs.railway.com/sandboxes) sandboxes. Each sandbox is an isolated Debian Linux VM provisioned on demand through the Railway TypeScript SDK. Supports command execution with streaming output, command timeouts, configurable idle timeout, `ISOLATED`/`PRIVATE` network isolation, custom base images via the Railway template builder, forking a running sandbox, and reattaching to an existing sandbox by ID. For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
5
+ Executes commands in ephemeral, isolated [Railway](https://docs.railway.com/sandboxes) sandboxes. Each sandbox is an isolated Debian Linux VM provisioned on demand through the Railway TypeScript SDK. Supports command execution with streaming output, command timeouts, configurable idle timeout, `ISOLATED`/`PRIVATE` network isolation, custom base images via the Railway template builder, forking a running sandbox, and reattaching to an existing sandbox by ID.
6
+
7
+ > **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # S3Filesystem
4
4
 
5
- Stores files in Amazon S3 or S3-compatible storage services like Cloudflare R2, MinIO, DigitalOcean Spaces, and Tigris. For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
5
+ Stores files in Amazon S3 or S3-compatible storage services like Cloudflare R2, MinIO, DigitalOcean Spaces, and Tigris.
6
+
7
+ > **Info:** For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
6
8
 
7
9
  ## Installation
8
10
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  # VercelSandbox
4
4
 
5
- Executes commands inside [Vercel Sandbox](https://vercel.com/docs/vercel-sandbox) which is an ephemeral [Firecracker](https://firecracker-microvm.github.io/) MicroVM running Amazon Linux 2023. Provides a persistent in-session filesystem, `sudo` access, exposed ports, and background processes. For interface details, see the [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
5
+ Executes commands inside [Vercel Sandbox](https://vercel.com/docs/vercel-sandbox) which is an ephemeral [Firecracker](https://firecracker-microvm.github.io/) MicroVM running Amazon Linux 2023. Provides a persistent in-session filesystem, `sudo` access, exposed ports, and background processes.
6
+
7
+ > **Info:** For interface details, see the [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
6
8
 
7
9
  > **Note:** This is distinct from [`VercelServerlessSandbox`](https://mastra.ai/reference/workspace/vercel-serverless), which runs commands as stateless Vercel serverless **Functions**. `VercelSandbox` runs a full Linux MicroVM with a persistent filesystem and long-running processes.
8
10
 
@@ -146,7 +148,7 @@ Both callbacks are optional and can be used independently.
146
148
 
147
149
  **resources** (`{ vcpus?: number }`): Resource allocation. Each vCPU comes with 2048 MB of memory.
148
150
 
149
- **ports** (`number[]`): Ports to expose from the sandbox (up to 15). Public HTTPS domains are available via getInfo().metadata.domains.
151
+ **ports** (`number[]`): Ports to expose from the sandbox (up to 4). Public HTTPS domains are available via getInfo().metadata.domains.
150
152
 
151
153
  **env** (`Record<string, string>`): Default environment variables inherited by all commands. (Default: `{}`)
152
154
 
@@ -197,9 +199,9 @@ See the [`SandboxProcessManager` reference](https://mastra.ai/reference/workspac
197
199
 
198
200
  ## Limits
199
201
 
200
- - Up to 32 vCPUs, with 2048 MB of memory per vCPU.
201
- - Up to 15 exposed ports.
202
+ - Up to 8 vCPUs, with 2048 MB of memory per vCPU.
203
+ - Up to 4 exposed ports.
202
204
  - The filesystem is ephemeral — persisted only within the session and lost when the sandbox stops.
203
- - Maximum runtime is plan-dependent (45 minutes on Hobby, up to 24 hours on Pro and Enterprise), with a default of 5 minutes.
205
+ - Maximum runtime is plan-dependent (45 minutes on Hobby, up to 5 hours on Pro/Enterprise), with a default of 5 minutes.
204
206
 
205
207
  See the [Vercel Sandbox documentation](https://vercel.com/docs/vercel-sandbox) for current limits and pricing.
@@ -2,7 +2,9 @@
2
2
 
3
3
  # VercelServerlessSandbox
4
4
 
5
- Executes commands as [Vercel](https://vercel.com) serverless functions. Provides globally distributed, zero-infrastructure execution with automatic scaling. For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
5
+ Executes commands as [Vercel](https://vercel.com) serverless functions. Provides globally distributed, zero-infrastructure execution with automatic scaling.
6
+
7
+ > **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
6
8
 
7
9
  > **Warning:** VercelServerlessSandbox is stateless. It doesn't provide a persistent filesystem, interactive shell, or long-running background processes. Only `/tmp` is writable, and it's ephemeral between invocations.
8
10
 
package/CHANGELOG.md CHANGED
@@ -1,34 +1,5 @@
1
1
  # @mastra/mcp-docs-server
2
2
 
3
- ## 1.2.7-alpha.11
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies [[`fb8aea3`](https://github.com/mastra-ai/mastra/commit/fb8aea384291e77311be3a64ee1717320d5c3c73), [`4ce0163`](https://github.com/mastra-ai/mastra/commit/4ce0163dc86e675a86809685c8ce6c49f1aeb87e)]:
8
- - @mastra/core@1.51.0-alpha.5
9
-
10
- ## 1.2.7-alpha.9
11
-
12
- ### Patch Changes
13
-
14
- - Updated dependencies [[`a5c6337`](https://github.com/mastra-ai/mastra/commit/a5c6337d23c7686c81a32ce62f550f610543a240), [`eb70da9`](https://github.com/mastra-ai/mastra/commit/eb70da98e1007b18e1463d75121bc07db55f8e09), [`8b97958`](https://github.com/mastra-ai/mastra/commit/8b979589f9aa59ba67cac565949475f2ffeb4ac3), [`8410541`](https://github.com/mastra-ai/mastra/commit/84105412c60ecd3bb33a9838146f59c4b588228f), [`01b338c`](https://github.com/mastra-ai/mastra/commit/01b338c56271f0219606710e3e8b26dee27ac6c2), [`8b7361d`](https://github.com/mastra-ai/mastra/commit/8b7361d35de68b80d05d30a74e0c69e7218fd612), [`85fb642`](https://github.com/mastra-ai/mastra/commit/85fb642f4d112d0da9f39808617397f7e47fe622), [`481c112`](https://github.com/mastra-ai/mastra/commit/481c1125b752489673ec671fcb7ca80f9c86ffb1), [`c43f3a9`](https://github.com/mastra-ai/mastra/commit/c43f3a9d1efde99b38789364ba4d0ba670f430e3), [`c43f3a9`](https://github.com/mastra-ai/mastra/commit/c43f3a9d1efde99b38789364ba4d0ba670f430e3)]:
15
- - @mastra/core@1.51.0-alpha.4
16
- - @mastra/mcp@1.14.0-alpha.0
17
-
18
- ## 1.2.7-alpha.7
19
-
20
- ### Patch Changes
21
-
22
- - Updated dependencies [[`177010f`](https://github.com/mastra-ai/mastra/commit/177010ff096d2e4b28d89803be5b1a4cad2a0d6b), [`54a51e0`](https://github.com/mastra-ai/mastra/commit/54a51e0a484fe1ebad3fb1f7ef5282a075709eb7)]:
23
- - @mastra/core@1.51.0-alpha.3
24
-
25
- ## 1.2.7-alpha.5
26
-
27
- ### Patch Changes
28
-
29
- - Updated dependencies [[`e955965`](https://github.com/mastra-ai/mastra/commit/e955965dce575a903e37cf054d28ea99aa48785e), [`860ef7e`](https://github.com/mastra-ai/mastra/commit/860ef7e77d92b63469cbe5857aa1e626197e43e9), [`17e818c`](https://github.com/mastra-ai/mastra/commit/17e818c51a958ba90641b1a959dc38faf8c034e9), [`4451dfe`](https://github.com/mastra-ai/mastra/commit/4451dfe857428e7abcc0261a507a2e186dae6d47), [`1d39058`](https://github.com/mastra-ai/mastra/commit/1d39058e548efd691799985d5c8af2737f1c3bd2)]:
30
- - @mastra/core@1.51.0-alpha.2
31
-
32
3
  ## 1.2.7-alpha.2
33
4
 
34
5
  ### Patch Changes