@mastra/mcp-docs-server 1.1.5 → 1.1.6-alpha.0

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 (556) hide show
  1. package/.docs/docs/agents/adding-voice.md +349 -0
  2. package/.docs/docs/agents/agent-approval.md +558 -0
  3. package/.docs/docs/agents/agent-memory.md +209 -0
  4. package/.docs/docs/agents/guardrails.md +374 -0
  5. package/.docs/docs/agents/network-approval.md +275 -0
  6. package/.docs/docs/agents/networks.md +299 -0
  7. package/.docs/docs/agents/overview.md +304 -0
  8. package/.docs/docs/agents/processors.md +622 -0
  9. package/.docs/docs/agents/structured-output.md +273 -0
  10. package/.docs/docs/agents/supervisor-agents.md +304 -0
  11. package/.docs/docs/agents/using-tools.md +214 -0
  12. package/.docs/docs/build-with-ai/mcp-docs-server.md +238 -0
  13. package/.docs/docs/build-with-ai/skills.md +35 -0
  14. package/.docs/docs/community/contributing-templates.md +3 -0
  15. package/.docs/docs/community/discord.md +9 -0
  16. package/.docs/docs/community/licensing.md +66 -0
  17. package/.docs/docs/deployment/cloud-providers.md +15 -0
  18. package/.docs/docs/deployment/mastra-server.md +122 -0
  19. package/.docs/docs/deployment/monorepo.md +142 -0
  20. package/.docs/docs/deployment/overview.md +62 -0
  21. package/.docs/docs/deployment/studio.md +239 -0
  22. package/.docs/docs/deployment/web-framework.md +52 -0
  23. package/.docs/docs/deployment/workflow-runners.md +9 -0
  24. package/.docs/docs/evals/built-in-scorers.md +47 -0
  25. package/.docs/docs/evals/custom-scorers.md +519 -0
  26. package/.docs/docs/evals/overview.md +141 -0
  27. package/.docs/docs/evals/running-in-ci.md +124 -0
  28. package/.docs/docs/getting-started/build-with-ai.md +68 -0
  29. package/.docs/docs/getting-started/manual-install.md +226 -0
  30. package/.docs/docs/getting-started/project-structure.md +60 -0
  31. package/.docs/docs/getting-started/start.md +28 -0
  32. package/.docs/docs/getting-started/studio.md +101 -0
  33. package/.docs/docs/index.md +43 -0
  34. package/.docs/docs/mastra-cloud/deployment.md +77 -0
  35. package/.docs/docs/mastra-cloud/observability.md +38 -0
  36. package/.docs/docs/mastra-cloud/overview.md +23 -0
  37. package/.docs/docs/mastra-cloud/setup.md +42 -0
  38. package/.docs/docs/mastra-cloud/studio.md +24 -0
  39. package/.docs/docs/mastra-code/configuration.md +299 -0
  40. package/.docs/docs/mastra-code/customization.md +228 -0
  41. package/.docs/docs/mastra-code/modes.md +104 -0
  42. package/.docs/docs/mastra-code/overview.md +135 -0
  43. package/.docs/docs/mastra-code/tools.md +229 -0
  44. package/.docs/docs/mcp/overview.md +373 -0
  45. package/.docs/docs/mcp/publishing-mcp-server.md +95 -0
  46. package/.docs/docs/memory/memory-processors.md +314 -0
  47. package/.docs/docs/memory/message-history.md +260 -0
  48. package/.docs/docs/memory/observational-memory.md +248 -0
  49. package/.docs/docs/memory/overview.md +45 -0
  50. package/.docs/docs/memory/semantic-recall.md +272 -0
  51. package/.docs/docs/memory/storage.md +261 -0
  52. package/.docs/docs/memory/working-memory.md +400 -0
  53. package/.docs/docs/observability/datasets/overview.md +198 -0
  54. package/.docs/docs/observability/datasets/running-experiments.md +274 -0
  55. package/.docs/docs/observability/logging.md +99 -0
  56. package/.docs/docs/observability/overview.md +70 -0
  57. package/.docs/docs/observability/tracing/bridges/otel.md +209 -0
  58. package/.docs/docs/observability/tracing/exporters/arize.md +272 -0
  59. package/.docs/docs/observability/tracing/exporters/braintrust.md +111 -0
  60. package/.docs/docs/observability/tracing/exporters/cloud.md +127 -0
  61. package/.docs/docs/observability/tracing/exporters/datadog.md +187 -0
  62. package/.docs/docs/observability/tracing/exporters/default.md +209 -0
  63. package/.docs/docs/observability/tracing/exporters/laminar.md +100 -0
  64. package/.docs/docs/observability/tracing/exporters/langfuse.md +213 -0
  65. package/.docs/docs/observability/tracing/exporters/langsmith.md +198 -0
  66. package/.docs/docs/observability/tracing/exporters/otel.md +476 -0
  67. package/.docs/docs/observability/tracing/exporters/posthog.md +148 -0
  68. package/.docs/docs/observability/tracing/exporters/sentry.md +208 -0
  69. package/.docs/docs/observability/tracing/overview.md +1112 -0
  70. package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +300 -0
  71. package/.docs/docs/rag/chunking-and-embedding.md +183 -0
  72. package/.docs/docs/rag/graph-rag.md +215 -0
  73. package/.docs/docs/rag/overview.md +72 -0
  74. package/.docs/docs/rag/retrieval.md +515 -0
  75. package/.docs/docs/rag/vector-databases.md +645 -0
  76. package/.docs/docs/server/auth/auth0.md +220 -0
  77. package/.docs/docs/server/auth/better-auth.md +203 -0
  78. package/.docs/docs/server/auth/clerk.md +132 -0
  79. package/.docs/docs/server/auth/composite-auth.md +234 -0
  80. package/.docs/docs/server/auth/custom-auth-provider.md +513 -0
  81. package/.docs/docs/server/auth/firebase.md +272 -0
  82. package/.docs/docs/server/auth/jwt.md +110 -0
  83. package/.docs/docs/server/auth/simple-auth.md +180 -0
  84. package/.docs/docs/server/auth/supabase.md +117 -0
  85. package/.docs/docs/server/auth/workos.md +186 -0
  86. package/.docs/docs/server/auth.md +38 -0
  87. package/.docs/docs/server/custom-adapters.md +378 -0
  88. package/.docs/docs/server/custom-api-routes.md +267 -0
  89. package/.docs/docs/server/mastra-client.md +243 -0
  90. package/.docs/docs/server/mastra-server.md +71 -0
  91. package/.docs/docs/server/middleware.md +225 -0
  92. package/.docs/docs/server/request-context.md +471 -0
  93. package/.docs/docs/server/server-adapters.md +547 -0
  94. package/.docs/docs/streaming/events.md +237 -0
  95. package/.docs/docs/streaming/overview.md +175 -0
  96. package/.docs/docs/streaming/tool-streaming.md +175 -0
  97. package/.docs/docs/streaming/workflow-streaming.md +109 -0
  98. package/.docs/docs/voice/overview.md +959 -0
  99. package/.docs/docs/voice/speech-to-speech.md +102 -0
  100. package/.docs/docs/voice/speech-to-text.md +79 -0
  101. package/.docs/docs/voice/text-to-speech.md +83 -0
  102. package/.docs/docs/workflows/agents-and-tools.md +166 -0
  103. package/.docs/docs/workflows/control-flow.md +822 -0
  104. package/.docs/docs/workflows/error-handling.md +360 -0
  105. package/.docs/docs/workflows/human-in-the-loop.md +215 -0
  106. package/.docs/docs/workflows/overview.md +370 -0
  107. package/.docs/docs/workflows/snapshots.md +238 -0
  108. package/.docs/docs/workflows/suspend-and-resume.md +205 -0
  109. package/.docs/docs/workflows/time-travel.md +309 -0
  110. package/.docs/docs/workflows/workflow-state.md +181 -0
  111. package/.docs/docs/workspace/filesystem.md +164 -0
  112. package/.docs/docs/workspace/overview.md +239 -0
  113. package/.docs/docs/workspace/sandbox.md +63 -0
  114. package/.docs/docs/workspace/search.md +243 -0
  115. package/.docs/docs/workspace/skills.md +169 -0
  116. package/.docs/guides/agent-frameworks/ai-sdk.md +140 -0
  117. package/.docs/guides/build-your-ui/ai-sdk-ui.md +1499 -0
  118. package/.docs/guides/build-your-ui/assistant-ui.md +156 -0
  119. package/.docs/guides/build-your-ui/copilotkit.md +289 -0
  120. package/.docs/guides/deployment/amazon-ec2.md +130 -0
  121. package/.docs/guides/deployment/aws-lambda.md +248 -0
  122. package/.docs/guides/deployment/azure-app-services.md +114 -0
  123. package/.docs/guides/deployment/cloudflare.md +99 -0
  124. package/.docs/guides/deployment/digital-ocean.md +168 -0
  125. package/.docs/guides/deployment/inngest.md +682 -0
  126. package/.docs/guides/deployment/netlify.md +77 -0
  127. package/.docs/guides/deployment/vercel.md +101 -0
  128. package/.docs/guides/getting-started/astro.md +398 -0
  129. package/.docs/guides/getting-started/electron.md +504 -0
  130. package/.docs/guides/getting-started/express.md +251 -0
  131. package/.docs/guides/getting-started/hono.md +190 -0
  132. package/.docs/guides/getting-started/next-js.md +347 -0
  133. package/.docs/guides/getting-started/nuxt.md +497 -0
  134. package/.docs/guides/getting-started/quickstart.md +67 -0
  135. package/.docs/guides/getting-started/sveltekit.md +296 -0
  136. package/.docs/guides/getting-started/vite-react.md +425 -0
  137. package/.docs/guides/guide/ai-recruiter.md +226 -0
  138. package/.docs/guides/guide/chef-michel.md +211 -0
  139. package/.docs/guides/guide/code-review-bot.md +226 -0
  140. package/.docs/guides/guide/dev-assistant.md +307 -0
  141. package/.docs/guides/guide/docs-manager.md +238 -0
  142. package/.docs/guides/guide/github-actions-pr-description.md +236 -0
  143. package/.docs/guides/guide/notes-mcp-server.md +416 -0
  144. package/.docs/guides/guide/research-assistant.md +348 -0
  145. package/.docs/guides/guide/research-coordinator.md +416 -0
  146. package/.docs/guides/guide/stock-agent.md +132 -0
  147. package/.docs/guides/guide/web-search.md +320 -0
  148. package/.docs/guides/guide/whatsapp-chat-bot.md +405 -0
  149. package/.docs/guides/index.md +3 -0
  150. package/.docs/guides/migrations/agentnetwork.md +97 -0
  151. package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +112 -0
  152. package/.docs/guides/migrations/network-to-supervisor.md +261 -0
  153. package/.docs/guides/migrations/upgrade-to-v1/agent.md +404 -0
  154. package/.docs/guides/migrations/upgrade-to-v1/cli.md +57 -0
  155. package/.docs/guides/migrations/upgrade-to-v1/client.md +337 -0
  156. package/.docs/guides/migrations/upgrade-to-v1/deployment.md +37 -0
  157. package/.docs/guides/migrations/upgrade-to-v1/evals.md +239 -0
  158. package/.docs/guides/migrations/upgrade-to-v1/mastra.md +143 -0
  159. package/.docs/guides/migrations/upgrade-to-v1/mcp.md +97 -0
  160. package/.docs/guides/migrations/upgrade-to-v1/memory.md +285 -0
  161. package/.docs/guides/migrations/upgrade-to-v1/overview.md +119 -0
  162. package/.docs/guides/migrations/upgrade-to-v1/processors.md +68 -0
  163. package/.docs/guides/migrations/upgrade-to-v1/rag.md +42 -0
  164. package/.docs/guides/migrations/upgrade-to-v1/storage.md +553 -0
  165. package/.docs/guides/migrations/upgrade-to-v1/tools.md +180 -0
  166. package/.docs/guides/migrations/upgrade-to-v1/tracing.md +412 -0
  167. package/.docs/guides/migrations/upgrade-to-v1/vectors.md +87 -0
  168. package/.docs/guides/migrations/upgrade-to-v1/voice.md +30 -0
  169. package/.docs/guides/migrations/upgrade-to-v1/workflows.md +341 -0
  170. package/.docs/guides/migrations/vnext-to-standard-apis.md +362 -0
  171. package/.docs/models/embeddings.md +161 -0
  172. package/.docs/models/gateways/azure-openai.md +128 -0
  173. package/.docs/models/gateways/custom-gateways.md +545 -0
  174. package/.docs/models/gateways/netlify.md +88 -0
  175. package/.docs/models/gateways/openrouter.md +219 -0
  176. package/.docs/models/gateways/vercel.md +225 -0
  177. package/.docs/models/gateways.md +14 -0
  178. package/.docs/models/index.md +286 -0
  179. package/.docs/models/providers/302ai.md +134 -0
  180. package/.docs/models/providers/abacus.md +125 -0
  181. package/.docs/models/providers/agentrouter.md +90 -0
  182. package/.docs/models/providers/aihubmix.md +107 -0
  183. package/.docs/models/providers/alibaba-cn.md +135 -0
  184. package/.docs/models/providers/alibaba.md +111 -0
  185. package/.docs/models/providers/amazon-bedrock.md +33 -0
  186. package/.docs/models/providers/anthropic.md +153 -0
  187. package/.docs/models/providers/azure.md +33 -0
  188. package/.docs/models/providers/bailing.md +72 -0
  189. package/.docs/models/providers/baseten.md +77 -0
  190. package/.docs/models/providers/berget.md +78 -0
  191. package/.docs/models/providers/cerebras.md +101 -0
  192. package/.docs/models/providers/chutes.md +136 -0
  193. package/.docs/models/providers/cloudflare-ai-gateway.md +33 -0
  194. package/.docs/models/providers/cloudflare-workers-ai.md +109 -0
  195. package/.docs/models/providers/cohere.md +33 -0
  196. package/.docs/models/providers/cortecs.md +91 -0
  197. package/.docs/models/providers/deepinfra.md +112 -0
  198. package/.docs/models/providers/deepseek.md +88 -0
  199. package/.docs/models/providers/fastrouter.md +84 -0
  200. package/.docs/models/providers/fireworks-ai.md +89 -0
  201. package/.docs/models/providers/firmware.md +85 -0
  202. package/.docs/models/providers/friendli.md +78 -0
  203. package/.docs/models/providers/github-models.md +125 -0
  204. package/.docs/models/providers/google-vertex.md +33 -0
  205. package/.docs/models/providers/google.md +159 -0
  206. package/.docs/models/providers/groq.md +107 -0
  207. package/.docs/models/providers/helicone.md +161 -0
  208. package/.docs/models/providers/huggingface.md +90 -0
  209. package/.docs/models/providers/iflowcn.md +84 -0
  210. package/.docs/models/providers/inception.md +72 -0
  211. package/.docs/models/providers/inference.md +79 -0
  212. package/.docs/models/providers/io-intelligence.md +87 -0
  213. package/.docs/models/providers/io-net.md +87 -0
  214. package/.docs/models/providers/jiekou.md +131 -0
  215. package/.docs/models/providers/kilo.md +333 -0
  216. package/.docs/models/providers/kimi-for-coding.md +100 -0
  217. package/.docs/models/providers/kuae-cloud-coding-plan.md +71 -0
  218. package/.docs/models/providers/llama.md +77 -0
  219. package/.docs/models/providers/lmstudio.md +73 -0
  220. package/.docs/models/providers/lucidquery.md +72 -0
  221. package/.docs/models/providers/minimax-cn-coding-plan.md +102 -0
  222. package/.docs/models/providers/minimax-cn.md +102 -0
  223. package/.docs/models/providers/minimax-coding-plan.md +102 -0
  224. package/.docs/models/providers/minimax.md +104 -0
  225. package/.docs/models/providers/mistral.md +124 -0
  226. package/.docs/models/providers/moark.md +72 -0
  227. package/.docs/models/providers/modelscope.md +77 -0
  228. package/.docs/models/providers/moonshotai-cn.md +76 -0
  229. package/.docs/models/providers/moonshotai.md +76 -0
  230. package/.docs/models/providers/morph.md +73 -0
  231. package/.docs/models/providers/nano-gpt.md +103 -0
  232. package/.docs/models/providers/nebius.md +116 -0
  233. package/.docs/models/providers/nova.md +72 -0
  234. package/.docs/models/providers/novita-ai.md +154 -0
  235. package/.docs/models/providers/nvidia.md +141 -0
  236. package/.docs/models/providers/ollama-cloud.md +103 -0
  237. package/.docs/models/providers/ollama.md +33 -0
  238. package/.docs/models/providers/openai.md +193 -0
  239. package/.docs/models/providers/opencode.md +100 -0
  240. package/.docs/models/providers/ovhcloud.md +83 -0
  241. package/.docs/models/providers/perplexity.md +100 -0
  242. package/.docs/models/providers/poe.md +183 -0
  243. package/.docs/models/providers/privatemode-ai.md +75 -0
  244. package/.docs/models/providers/requesty.md +90 -0
  245. package/.docs/models/providers/scaleway.md +84 -0
  246. package/.docs/models/providers/siliconflow-cn.md +138 -0
  247. package/.docs/models/providers/siliconflow.md +140 -0
  248. package/.docs/models/providers/stackit.md +78 -0
  249. package/.docs/models/providers/stepfun.md +73 -0
  250. package/.docs/models/providers/submodel.md +79 -0
  251. package/.docs/models/providers/synthetic.md +96 -0
  252. package/.docs/models/providers/togetherai.md +115 -0
  253. package/.docs/models/providers/upstage.md +73 -0
  254. package/.docs/models/providers/venice.md +95 -0
  255. package/.docs/models/providers/vivgrid.md +106 -0
  256. package/.docs/models/providers/vultr.md +75 -0
  257. package/.docs/models/providers/wandb.md +80 -0
  258. package/.docs/models/providers/xai.md +141 -0
  259. package/.docs/models/providers/xiaomi.md +71 -0
  260. package/.docs/models/providers/zai-coding-plan.md +80 -0
  261. package/.docs/models/providers/zai.md +79 -0
  262. package/.docs/models/providers/zenmux.md +161 -0
  263. package/.docs/models/providers/zhipuai-coding-plan.md +79 -0
  264. package/.docs/models/providers/zhipuai.md +79 -0
  265. package/.docs/models/providers.md +81 -0
  266. package/.docs/reference/agents/agent.md +141 -0
  267. package/.docs/reference/agents/generate.md +186 -0
  268. package/.docs/reference/agents/generateLegacy.md +173 -0
  269. package/.docs/reference/agents/getDefaultGenerateOptions.md +36 -0
  270. package/.docs/reference/agents/getDefaultOptions.md +34 -0
  271. package/.docs/reference/agents/getDefaultStreamOptions.md +36 -0
  272. package/.docs/reference/agents/getDescription.md +21 -0
  273. package/.docs/reference/agents/getInstructions.md +34 -0
  274. package/.docs/reference/agents/getLLM.md +37 -0
  275. package/.docs/reference/agents/getMemory.md +34 -0
  276. package/.docs/reference/agents/getModel.md +34 -0
  277. package/.docs/reference/agents/getTools.md +29 -0
  278. package/.docs/reference/agents/getVoice.md +34 -0
  279. package/.docs/reference/agents/listAgents.md +35 -0
  280. package/.docs/reference/agents/listScorers.md +34 -0
  281. package/.docs/reference/agents/listTools.md +34 -0
  282. package/.docs/reference/agents/listWorkflows.md +34 -0
  283. package/.docs/reference/agents/network.md +133 -0
  284. package/.docs/reference/ai-sdk/chat-route.md +82 -0
  285. package/.docs/reference/ai-sdk/handle-chat-stream.md +53 -0
  286. package/.docs/reference/ai-sdk/handle-network-stream.md +37 -0
  287. package/.docs/reference/ai-sdk/handle-workflow-stream.md +55 -0
  288. package/.docs/reference/ai-sdk/network-route.md +74 -0
  289. package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +231 -0
  290. package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +79 -0
  291. package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +76 -0
  292. package/.docs/reference/ai-sdk/with-mastra.md +59 -0
  293. package/.docs/reference/ai-sdk/workflow-route.md +79 -0
  294. package/.docs/reference/auth/auth0.md +73 -0
  295. package/.docs/reference/auth/better-auth.md +71 -0
  296. package/.docs/reference/auth/clerk.md +36 -0
  297. package/.docs/reference/auth/firebase.md +80 -0
  298. package/.docs/reference/auth/jwt.md +26 -0
  299. package/.docs/reference/auth/supabase.md +33 -0
  300. package/.docs/reference/auth/workos.md +84 -0
  301. package/.docs/reference/cli/create-mastra.md +137 -0
  302. package/.docs/reference/cli/mastra.md +336 -0
  303. package/.docs/reference/client-js/agents.md +437 -0
  304. package/.docs/reference/client-js/error-handling.md +16 -0
  305. package/.docs/reference/client-js/logs.md +24 -0
  306. package/.docs/reference/client-js/mastra-client.md +63 -0
  307. package/.docs/reference/client-js/memory.md +221 -0
  308. package/.docs/reference/client-js/observability.md +72 -0
  309. package/.docs/reference/client-js/telemetry.md +20 -0
  310. package/.docs/reference/client-js/tools.md +44 -0
  311. package/.docs/reference/client-js/vectors.md +79 -0
  312. package/.docs/reference/client-js/workflows.md +199 -0
  313. package/.docs/reference/configuration.md +752 -0
  314. package/.docs/reference/core/addGateway.md +42 -0
  315. package/.docs/reference/core/getAgent.md +21 -0
  316. package/.docs/reference/core/getAgentById.md +21 -0
  317. package/.docs/reference/core/getDeployer.md +22 -0
  318. package/.docs/reference/core/getGateway.md +38 -0
  319. package/.docs/reference/core/getGatewayById.md +41 -0
  320. package/.docs/reference/core/getLogger.md +22 -0
  321. package/.docs/reference/core/getMCPServer.md +47 -0
  322. package/.docs/reference/core/getMCPServerById.md +55 -0
  323. package/.docs/reference/core/getMemory.md +50 -0
  324. package/.docs/reference/core/getScorer.md +54 -0
  325. package/.docs/reference/core/getScorerById.md +54 -0
  326. package/.docs/reference/core/getServer.md +22 -0
  327. package/.docs/reference/core/getStorage.md +22 -0
  328. package/.docs/reference/core/getStoredAgentById.md +89 -0
  329. package/.docs/reference/core/getTelemetry.md +22 -0
  330. package/.docs/reference/core/getVector.md +22 -0
  331. package/.docs/reference/core/getWorkflow.md +42 -0
  332. package/.docs/reference/core/listAgents.md +21 -0
  333. package/.docs/reference/core/listGateways.md +40 -0
  334. package/.docs/reference/core/listLogs.md +38 -0
  335. package/.docs/reference/core/listLogsByRunId.md +36 -0
  336. package/.docs/reference/core/listMCPServers.md +55 -0
  337. package/.docs/reference/core/listMemory.md +56 -0
  338. package/.docs/reference/core/listScorers.md +29 -0
  339. package/.docs/reference/core/listStoredAgents.md +93 -0
  340. package/.docs/reference/core/listVectors.md +22 -0
  341. package/.docs/reference/core/listWorkflows.md +21 -0
  342. package/.docs/reference/core/mastra-class.md +66 -0
  343. package/.docs/reference/core/mastra-model-gateway.md +153 -0
  344. package/.docs/reference/core/setLogger.md +26 -0
  345. package/.docs/reference/core/setStorage.md +27 -0
  346. package/.docs/reference/datasets/addItem.md +37 -0
  347. package/.docs/reference/datasets/addItems.md +35 -0
  348. package/.docs/reference/datasets/compareExperiments.md +52 -0
  349. package/.docs/reference/datasets/create.md +51 -0
  350. package/.docs/reference/datasets/dataset.md +82 -0
  351. package/.docs/reference/datasets/datasets-manager.md +94 -0
  352. package/.docs/reference/datasets/delete.md +25 -0
  353. package/.docs/reference/datasets/deleteExperiment.md +27 -0
  354. package/.docs/reference/datasets/deleteItem.md +27 -0
  355. package/.docs/reference/datasets/deleteItems.md +29 -0
  356. package/.docs/reference/datasets/get.md +31 -0
  357. package/.docs/reference/datasets/getDetails.md +47 -0
  358. package/.docs/reference/datasets/getExperiment.md +30 -0
  359. package/.docs/reference/datasets/getItem.md +33 -0
  360. package/.docs/reference/datasets/getItemHistory.md +31 -0
  361. package/.docs/reference/datasets/list.md +31 -0
  362. package/.docs/reference/datasets/listExperimentResults.md +39 -0
  363. package/.docs/reference/datasets/listExperiments.md +33 -0
  364. package/.docs/reference/datasets/listItems.md +46 -0
  365. package/.docs/reference/datasets/listVersions.md +33 -0
  366. package/.docs/reference/datasets/startExperiment.md +62 -0
  367. package/.docs/reference/datasets/startExperimentAsync.md +43 -0
  368. package/.docs/reference/datasets/update.md +48 -0
  369. package/.docs/reference/datasets/updateItem.md +38 -0
  370. package/.docs/reference/deployer/cloudflare.md +79 -0
  371. package/.docs/reference/deployer/netlify.md +80 -0
  372. package/.docs/reference/deployer/vercel.md +91 -0
  373. package/.docs/reference/deployer.md +100 -0
  374. package/.docs/reference/evals/answer-relevancy.md +105 -0
  375. package/.docs/reference/evals/answer-similarity.md +99 -0
  376. package/.docs/reference/evals/bias.md +120 -0
  377. package/.docs/reference/evals/completeness.md +136 -0
  378. package/.docs/reference/evals/content-similarity.md +101 -0
  379. package/.docs/reference/evals/context-precision.md +196 -0
  380. package/.docs/reference/evals/context-relevance.md +531 -0
  381. package/.docs/reference/evals/create-scorer.md +270 -0
  382. package/.docs/reference/evals/faithfulness.md +114 -0
  383. package/.docs/reference/evals/hallucination.md +213 -0
  384. package/.docs/reference/evals/keyword-coverage.md +128 -0
  385. package/.docs/reference/evals/mastra-scorer.md +123 -0
  386. package/.docs/reference/evals/noise-sensitivity.md +675 -0
  387. package/.docs/reference/evals/prompt-alignment.md +614 -0
  388. package/.docs/reference/evals/run-evals.md +179 -0
  389. package/.docs/reference/evals/scorer-utils.md +326 -0
  390. package/.docs/reference/evals/textual-difference.md +113 -0
  391. package/.docs/reference/evals/tone-consistency.md +119 -0
  392. package/.docs/reference/evals/tool-call-accuracy.md +533 -0
  393. package/.docs/reference/evals/toxicity.md +123 -0
  394. package/.docs/reference/harness/harness-class.md +708 -0
  395. package/.docs/reference/index.md +277 -0
  396. package/.docs/reference/logging/pino-logger.md +117 -0
  397. package/.docs/reference/mastra-code/createMastraCode.md +108 -0
  398. package/.docs/reference/memory/clone-utilities.md +199 -0
  399. package/.docs/reference/memory/cloneThread.md +130 -0
  400. package/.docs/reference/memory/createThread.md +68 -0
  401. package/.docs/reference/memory/deleteMessages.md +38 -0
  402. package/.docs/reference/memory/getThreadById.md +24 -0
  403. package/.docs/reference/memory/listThreads.md +145 -0
  404. package/.docs/reference/memory/memory-class.md +147 -0
  405. package/.docs/reference/memory/observational-memory.md +565 -0
  406. package/.docs/reference/memory/recall.md +91 -0
  407. package/.docs/reference/observability/tracing/bridges/otel.md +131 -0
  408. package/.docs/reference/observability/tracing/configuration.md +178 -0
  409. package/.docs/reference/observability/tracing/exporters/arize.md +141 -0
  410. package/.docs/reference/observability/tracing/exporters/braintrust.md +93 -0
  411. package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +163 -0
  412. package/.docs/reference/observability/tracing/exporters/console-exporter.md +138 -0
  413. package/.docs/reference/observability/tracing/exporters/datadog.md +116 -0
  414. package/.docs/reference/observability/tracing/exporters/default-exporter.md +174 -0
  415. package/.docs/reference/observability/tracing/exporters/laminar.md +78 -0
  416. package/.docs/reference/observability/tracing/exporters/langfuse.md +134 -0
  417. package/.docs/reference/observability/tracing/exporters/langsmith.md +108 -0
  418. package/.docs/reference/observability/tracing/exporters/otel.md +199 -0
  419. package/.docs/reference/observability/tracing/exporters/posthog.md +92 -0
  420. package/.docs/reference/observability/tracing/exporters/sentry.md +184 -0
  421. package/.docs/reference/observability/tracing/instances.md +107 -0
  422. package/.docs/reference/observability/tracing/interfaces.md +743 -0
  423. package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +144 -0
  424. package/.docs/reference/observability/tracing/spans.md +224 -0
  425. package/.docs/reference/processors/batch-parts-processor.md +61 -0
  426. package/.docs/reference/processors/language-detector.md +82 -0
  427. package/.docs/reference/processors/message-history-processor.md +85 -0
  428. package/.docs/reference/processors/moderation-processor.md +104 -0
  429. package/.docs/reference/processors/pii-detector.md +108 -0
  430. package/.docs/reference/processors/processor-interface.md +521 -0
  431. package/.docs/reference/processors/prompt-injection-detector.md +72 -0
  432. package/.docs/reference/processors/semantic-recall-processor.md +117 -0
  433. package/.docs/reference/processors/system-prompt-scrubber.md +80 -0
  434. package/.docs/reference/processors/token-limiter-processor.md +115 -0
  435. package/.docs/reference/processors/tool-call-filter.md +85 -0
  436. package/.docs/reference/processors/tool-search-processor.md +111 -0
  437. package/.docs/reference/processors/unicode-normalizer.md +62 -0
  438. package/.docs/reference/processors/working-memory-processor.md +152 -0
  439. package/.docs/reference/rag/chunk.md +221 -0
  440. package/.docs/reference/rag/database-config.md +261 -0
  441. package/.docs/reference/rag/document.md +114 -0
  442. package/.docs/reference/rag/embeddings.md +92 -0
  443. package/.docs/reference/rag/extract-params.md +168 -0
  444. package/.docs/reference/rag/graph-rag.md +111 -0
  445. package/.docs/reference/rag/metadata-filters.md +216 -0
  446. package/.docs/reference/rag/rerank.md +75 -0
  447. package/.docs/reference/rag/rerankWithScorer.md +80 -0
  448. package/.docs/reference/server/create-route.md +262 -0
  449. package/.docs/reference/server/express-adapter.md +176 -0
  450. package/.docs/reference/server/fastify-adapter.md +90 -0
  451. package/.docs/reference/server/hono-adapter.md +162 -0
  452. package/.docs/reference/server/koa-adapter.md +127 -0
  453. package/.docs/reference/server/mastra-server.md +298 -0
  454. package/.docs/reference/server/register-api-route.md +249 -0
  455. package/.docs/reference/server/routes.md +306 -0
  456. package/.docs/reference/storage/cloudflare-d1.md +218 -0
  457. package/.docs/reference/storage/cloudflare.md +88 -0
  458. package/.docs/reference/storage/composite.md +235 -0
  459. package/.docs/reference/storage/convex.md +161 -0
  460. package/.docs/reference/storage/dynamodb.md +282 -0
  461. package/.docs/reference/storage/lance.md +131 -0
  462. package/.docs/reference/storage/libsql.md +135 -0
  463. package/.docs/reference/storage/mongodb.md +262 -0
  464. package/.docs/reference/storage/mssql.md +157 -0
  465. package/.docs/reference/storage/overview.md +121 -0
  466. package/.docs/reference/storage/postgresql.md +526 -0
  467. package/.docs/reference/storage/upstash.md +160 -0
  468. package/.docs/reference/streaming/ChunkType.md +292 -0
  469. package/.docs/reference/streaming/agents/MastraModelOutput.md +182 -0
  470. package/.docs/reference/streaming/agents/stream.md +221 -0
  471. package/.docs/reference/streaming/agents/streamLegacy.md +142 -0
  472. package/.docs/reference/streaming/workflows/observeStream.md +42 -0
  473. package/.docs/reference/streaming/workflows/resumeStream.md +61 -0
  474. package/.docs/reference/streaming/workflows/stream.md +88 -0
  475. package/.docs/reference/streaming/workflows/timeTravelStream.md +142 -0
  476. package/.docs/reference/templates/overview.md +194 -0
  477. package/.docs/reference/tools/create-tool.md +237 -0
  478. package/.docs/reference/tools/document-chunker-tool.md +89 -0
  479. package/.docs/reference/tools/graph-rag-tool.md +182 -0
  480. package/.docs/reference/tools/mcp-client.md +954 -0
  481. package/.docs/reference/tools/mcp-server.md +1271 -0
  482. package/.docs/reference/tools/vector-query-tool.md +459 -0
  483. package/.docs/reference/vectors/astra.md +121 -0
  484. package/.docs/reference/vectors/chroma.md +264 -0
  485. package/.docs/reference/vectors/convex.md +300 -0
  486. package/.docs/reference/vectors/couchbase.md +226 -0
  487. package/.docs/reference/vectors/duckdb.md +318 -0
  488. package/.docs/reference/vectors/elasticsearch.md +189 -0
  489. package/.docs/reference/vectors/lance.md +220 -0
  490. package/.docs/reference/vectors/libsql.md +305 -0
  491. package/.docs/reference/vectors/mongodb.md +295 -0
  492. package/.docs/reference/vectors/opensearch.md +99 -0
  493. package/.docs/reference/vectors/pg.md +408 -0
  494. package/.docs/reference/vectors/pinecone.md +168 -0
  495. package/.docs/reference/vectors/qdrant.md +222 -0
  496. package/.docs/reference/vectors/s3vectors.md +277 -0
  497. package/.docs/reference/vectors/turbopuffer.md +157 -0
  498. package/.docs/reference/vectors/upstash.md +294 -0
  499. package/.docs/reference/vectors/vectorize.md +147 -0
  500. package/.docs/reference/voice/azure.md +148 -0
  501. package/.docs/reference/voice/cloudflare.md +83 -0
  502. package/.docs/reference/voice/composite-voice.md +121 -0
  503. package/.docs/reference/voice/deepgram.md +79 -0
  504. package/.docs/reference/voice/elevenlabs.md +98 -0
  505. package/.docs/reference/voice/google-gemini-live.md +378 -0
  506. package/.docs/reference/voice/google.md +228 -0
  507. package/.docs/reference/voice/mastra-voice.md +311 -0
  508. package/.docs/reference/voice/murf.md +122 -0
  509. package/.docs/reference/voice/openai-realtime.md +203 -0
  510. package/.docs/reference/voice/openai.md +88 -0
  511. package/.docs/reference/voice/playai.md +80 -0
  512. package/.docs/reference/voice/sarvam.md +126 -0
  513. package/.docs/reference/voice/speechify.md +75 -0
  514. package/.docs/reference/voice/voice.addInstructions.md +55 -0
  515. package/.docs/reference/voice/voice.addTools.md +67 -0
  516. package/.docs/reference/voice/voice.answer.md +54 -0
  517. package/.docs/reference/voice/voice.close.md +51 -0
  518. package/.docs/reference/voice/voice.connect.md +94 -0
  519. package/.docs/reference/voice/voice.events.md +37 -0
  520. package/.docs/reference/voice/voice.getSpeakers.md +129 -0
  521. package/.docs/reference/voice/voice.listen.md +164 -0
  522. package/.docs/reference/voice/voice.off.md +54 -0
  523. package/.docs/reference/voice/voice.on.md +111 -0
  524. package/.docs/reference/voice/voice.send.md +65 -0
  525. package/.docs/reference/voice/voice.speak.md +157 -0
  526. package/.docs/reference/voice/voice.updateConfig.md +60 -0
  527. package/.docs/reference/workflows/run-methods/cancel.md +86 -0
  528. package/.docs/reference/workflows/run-methods/restart.md +33 -0
  529. package/.docs/reference/workflows/run-methods/resume.md +59 -0
  530. package/.docs/reference/workflows/run-methods/start.md +58 -0
  531. package/.docs/reference/workflows/run-methods/startAsync.md +67 -0
  532. package/.docs/reference/workflows/run-methods/timeTravel.md +142 -0
  533. package/.docs/reference/workflows/run.md +59 -0
  534. package/.docs/reference/workflows/step.md +119 -0
  535. package/.docs/reference/workflows/workflow-methods/branch.md +25 -0
  536. package/.docs/reference/workflows/workflow-methods/commit.md +17 -0
  537. package/.docs/reference/workflows/workflow-methods/create-run.md +63 -0
  538. package/.docs/reference/workflows/workflow-methods/dountil.md +25 -0
  539. package/.docs/reference/workflows/workflow-methods/dowhile.md +25 -0
  540. package/.docs/reference/workflows/workflow-methods/foreach.md +118 -0
  541. package/.docs/reference/workflows/workflow-methods/map.md +93 -0
  542. package/.docs/reference/workflows/workflow-methods/parallel.md +21 -0
  543. package/.docs/reference/workflows/workflow-methods/sleep.md +35 -0
  544. package/.docs/reference/workflows/workflow-methods/sleepUntil.md +35 -0
  545. package/.docs/reference/workflows/workflow-methods/then.md +21 -0
  546. package/.docs/reference/workflows/workflow.md +157 -0
  547. package/.docs/reference/workspace/e2b-sandbox.md +289 -0
  548. package/.docs/reference/workspace/filesystem.md +255 -0
  549. package/.docs/reference/workspace/gcs-filesystem.md +174 -0
  550. package/.docs/reference/workspace/local-filesystem.md +343 -0
  551. package/.docs/reference/workspace/local-sandbox.md +301 -0
  552. package/.docs/reference/workspace/s3-filesystem.md +175 -0
  553. package/.docs/reference/workspace/sandbox.md +87 -0
  554. package/.docs/reference/workspace/workspace-class.md +244 -0
  555. package/CHANGELOG.md +8 -0
  556. package/package.json +5 -5
@@ -0,0 +1,121 @@
1
+ # CompositeVoice
2
+
3
+ The CompositeVoice class allows you to combine different voice providers for text-to-speech and speech-to-text operations. This is particularly useful when you want to use the best provider for each operation - for example, using OpenAI for speech-to-text and PlayAI for text-to-speech.
4
+
5
+ CompositeVoice supports both Mastra voice providers and AI SDK model providers
6
+
7
+ ## Constructor Parameters
8
+
9
+ **config:** (`object`): Configuration object for the composite voice service
10
+
11
+ **config.input?:** (`MastraVoice | TranscriptionModel`): Voice provider or AI SDK transcription model to use for speech-to-text operations. AI SDK models are automatically wrapped.
12
+
13
+ **config.output?:** (`MastraVoice | SpeechModel`): Voice provider or AI SDK speech model to use for text-to-speech operations. AI SDK models are automatically wrapped.
14
+
15
+ **config.realtime?:** (`MastraVoice`): Voice provider to use for real-time speech-to-speech operations
16
+
17
+ ## Methods
18
+
19
+ ### speak()
20
+
21
+ Converts text to speech using the configured speaking provider.
22
+
23
+ **input:** (`string | NodeJS.ReadableStream`): Text to convert to speech
24
+
25
+ **options?:** (`object`): Provider-specific options passed to the speaking provider
26
+
27
+ Notes:
28
+
29
+ - If no speaking provider is configured, this method will throw an error
30
+ - Options are passed through to the configured speaking provider
31
+ - Returns a stream of audio data
32
+
33
+ ### listen()
34
+
35
+ Converts speech to text using the configured listening provider.
36
+
37
+ **audioStream:** (`NodeJS.ReadableStream`): Audio stream to convert to text
38
+
39
+ **options?:** (`object`): Provider-specific options passed to the listening provider
40
+
41
+ Notes:
42
+
43
+ - If no listening provider is configured, this method will throw an error
44
+ - Options are passed through to the configured listening provider
45
+ - Returns either a string or a stream of transcribed text, depending on the provider
46
+
47
+ ### getSpeakers()
48
+
49
+ Returns a list of available voices from the speaking provider, where each node contains:
50
+
51
+ **voiceId:** (`string`): Unique identifier for the voice
52
+
53
+ **key?:** (`value`): Additional voice properties that vary by provider (e.g., name, language)
54
+
55
+ Notes:
56
+
57
+ - Returns voices from the speaking provider only
58
+ - If no speaking provider is configured, returns an empty array
59
+ - Each voice object will have at least a voiceId property
60
+ - Additional voice properties depend on the speaking provider
61
+
62
+ ## Usage Examples
63
+
64
+ ### Using Mastra Voice Providers
65
+
66
+ ```typescript
67
+ import { CompositeVoice } from '@mastra/core/voice'
68
+ import { OpenAIVoice } from '@mastra/voice-openai'
69
+ import { PlayAIVoice } from '@mastra/voice-playai'
70
+
71
+ // Create voice providers
72
+ const openai = new OpenAIVoice()
73
+ const playai = new PlayAIVoice()
74
+
75
+ // Use OpenAI for listening (speech-to-text) and PlayAI for speaking (text-to-speech)
76
+ const voice = new CompositeVoice({
77
+ input: openai,
78
+ output: playai,
79
+ })
80
+
81
+ // Convert speech to text using OpenAI
82
+ const text = await voice.listen(audioStream)
83
+
84
+ // Convert text to speech using PlayAI
85
+ const audio = await voice.speak('Hello, world!')
86
+ ```
87
+
88
+ ### Using AI SDK Model Providers
89
+
90
+ You can pass AI SDK transcription and speech models directly to CompositeVoice:
91
+
92
+ ```typescript
93
+ import { CompositeVoice } from '@mastra/core/voice'
94
+ import { openai } from '@ai-sdk/openai'
95
+ import { elevenlabs } from '@ai-sdk/elevenlabs'
96
+
97
+ // Use AI SDK models directly - they will be auto-wrapped
98
+ const voice = new CompositeVoice({
99
+ input: openai.transcription('whisper-1'), // AI SDK transcription
100
+ output: elevenlabs.speech('eleven_turbo_v2'), // AI SDK speech
101
+ })
102
+
103
+ // Works the same way as with Mastra providers
104
+ const text = await voice.listen(audioStream)
105
+ const audio = await voice.speak('Hello from AI SDK!')
106
+ ```
107
+
108
+ ### Mix and Match
109
+
110
+ You can combine Mastra providers with AI SDK models:
111
+
112
+ ```typescript
113
+ import { CompositeVoice } from '@mastra/core/voice'
114
+ import { PlayAIVoice } from '@mastra/voice-playai'
115
+ import { groq } from '@ai-sdk/groq'
116
+
117
+ const voice = new CompositeVoice({
118
+ input: groq.transcription('whisper-large-v3'), // AI SDK for STT
119
+ output: new PlayAIVoice(), // Mastra for TTS
120
+ })
121
+ ```
@@ -0,0 +1,79 @@
1
+ # Deepgram
2
+
3
+ The Deepgram voice implementation in Mastra provides text-to-speech (TTS) and speech-to-text (STT) capabilities using Deepgram's API. It supports multiple voice models and languages, with configurable options for both speech synthesis and transcription.
4
+
5
+ ## Usage Example
6
+
7
+ ```typescript
8
+ import { DeepgramVoice } from '@mastra/voice-deepgram'
9
+
10
+ // Initialize with default configuration (uses DEEPGRAM_API_KEY environment variable)
11
+ const voice = new DeepgramVoice()
12
+
13
+ // Initialize with custom configuration
14
+ const voice = new DeepgramVoice({
15
+ speechModel: {
16
+ name: 'aura',
17
+ apiKey: 'your-api-key',
18
+ },
19
+ listeningModel: {
20
+ name: 'nova-2',
21
+ apiKey: 'your-api-key',
22
+ },
23
+ speaker: 'asteria-en',
24
+ })
25
+
26
+ // Text-to-Speech
27
+ const audioStream = await voice.speak('Hello, world!')
28
+
29
+ // Speech-to-Text
30
+ const transcript = await voice.listen(audioStream)
31
+ ```
32
+
33
+ ## Constructor Parameters
34
+
35
+ **speechModel?:** (`DeepgramVoiceConfig`): Configuration for text-to-speech functionality. (Default: `{ name: 'aura' }`)
36
+
37
+ **listeningModel?:** (`DeepgramVoiceConfig`): Configuration for speech-to-text functionality. (Default: `{ name: 'nova' }`)
38
+
39
+ **speaker?:** (`DeepgramVoiceId`): Default voice to use for text-to-speech (Default: `'asteria-en'`)
40
+
41
+ ### DeepgramVoiceConfig
42
+
43
+ **name?:** (`DeepgramModel`): The Deepgram model to use
44
+
45
+ **apiKey?:** (`string`): Deepgram API key. Falls back to DEEPGRAM\_API\_KEY environment variable
46
+
47
+ **properties?:** (`Record<string, any>`): Additional properties to pass to the Deepgram API
48
+
49
+ **language?:** (`string`): Language code for the model
50
+
51
+ ## Methods
52
+
53
+ ### speak()
54
+
55
+ Converts text to speech using the configured speech model and voice.
56
+
57
+ **input:** (`string | NodeJS.ReadableStream`): Text to convert to speech. If a stream is provided, it will be converted to text first.
58
+
59
+ **options?:** (`object`): Additional options for speech synthesis
60
+
61
+ **options.speaker?:** (`string`): Override the default speaker for this request
62
+
63
+ Returns: `Promise<NodeJS.ReadableStream>`
64
+
65
+ ### listen()
66
+
67
+ Converts speech to text using the configured listening model.
68
+
69
+ **audioStream:** (`NodeJS.ReadableStream`): Audio stream to transcribe
70
+
71
+ **options?:** (`object`): Additional options to pass to the Deepgram API
72
+
73
+ Returns: `Promise<string>`
74
+
75
+ ### getSpeakers()
76
+
77
+ Returns a list of available voice options.
78
+
79
+ **voiceId:** (`string`): Unique identifier for the voice
@@ -0,0 +1,98 @@
1
+ # ElevenLabs
2
+
3
+ The ElevenLabs voice implementation in Mastra provides high-quality text-to-speech (TTS) and speech-to-text (STT) capabilities using the ElevenLabs API.
4
+
5
+ ## Usage Example
6
+
7
+ ```typescript
8
+ import { ElevenLabsVoice } from '@mastra/voice-elevenlabs'
9
+
10
+ // Initialize with default configuration (uses ELEVENLABS_API_KEY environment variable)
11
+ const voice = new ElevenLabsVoice()
12
+
13
+ // Initialize with custom configuration
14
+ const voice = new ElevenLabsVoice({
15
+ speechModel: {
16
+ name: 'eleven_multilingual_v2',
17
+ apiKey: 'your-api-key',
18
+ },
19
+ speaker: 'custom-speaker-id',
20
+ })
21
+
22
+ // Text-to-Speech
23
+ const audioStream = await voice.speak('Hello, world!')
24
+
25
+ // Get available speakers
26
+ const speakers = await voice.getSpeakers()
27
+ ```
28
+
29
+ ## Constructor Parameters
30
+
31
+ **speechModel?:** (`ElevenLabsVoiceConfig`): Configuration for text-to-speech functionality. (Default: `{ name: 'eleven_multilingual_v2' }`)
32
+
33
+ **speaker?:** (`string`): ID of the speaker to use for text-to-speech (Default: `'9BWtsMINqrJLrRacOk9x' (Aria voice)`)
34
+
35
+ ### ElevenLabsVoiceConfig
36
+
37
+ **name?:** (`ElevenLabsModel`): The ElevenLabs model to use (Default: `'eleven_multilingual_v2'`)
38
+
39
+ **apiKey?:** (`string`): ElevenLabs API key. Falls back to ELEVENLABS\_API\_KEY environment variable
40
+
41
+ ## Methods
42
+
43
+ ### speak()
44
+
45
+ Converts text to speech using the configured speech model and voice.
46
+
47
+ **input:** (`string | NodeJS.ReadableStream`): Text to convert to speech. If a stream is provided, it will be converted to text first.
48
+
49
+ **options?:** (`object`): Additional options for speech synthesis
50
+
51
+ **options.speaker?:** (`string`): Override the default speaker ID for this request
52
+
53
+ Returns: `Promise<NodeJS.ReadableStream>`
54
+
55
+ ### getSpeakers()
56
+
57
+ Returns an array of available voice options, where each node contains:
58
+
59
+ **voiceId:** (`string`): Unique identifier for the voice
60
+
61
+ **name:** (`string`): Display name of the voice
62
+
63
+ **language:** (`string`): Language code for the voice
64
+
65
+ **gender:** (`string`): Gender of the voice
66
+
67
+ ### listen()
68
+
69
+ Converts audio input to text using ElevenLabs Speech-to-Text API.
70
+
71
+ **input:** (`NodeJS.ReadableStream`): A readable stream containing the audio data to transcribe
72
+
73
+ **options?:** (`object`): Configuration options for the transcription
74
+
75
+ The options object supports the following properties:
76
+
77
+ **language\_code?:** (`string`): ISO language code (e.g., 'en', 'fr', 'es')
78
+
79
+ **tag\_audio\_events?:** (`boolean`): Whether to tag audio events like \[MUSIC], \[LAUGHTER], etc.
80
+
81
+ **num\_speakers?:** (`number`): Number of speakers to detect in the audio
82
+
83
+ **filetype?:** (`string`): Audio file format (e.g., 'mp3', 'wav', 'ogg')
84
+
85
+ **timeoutInSeconds?:** (`number`): Request timeout in seconds
86
+
87
+ **maxRetries?:** (`number`): Maximum number of retry attempts
88
+
89
+ **abortSignal?:** (`AbortSignal`): Signal to abort the request
90
+
91
+ Returns: `Promise<string>` - A Promise that resolves to the transcribed text
92
+
93
+ ## Important Notes
94
+
95
+ 1. An ElevenLabs API key is required. Set it via the `ELEVENLABS_API_KEY` environment variable or pass it in the constructor.
96
+ 2. The default speaker is set to Aria (ID: '9BWtsMINqrJLrRacOk9x').
97
+ 3. Speech-to-text functionality is not supported by ElevenLabs.
98
+ 4. Available speakers can be retrieved using the `getSpeakers()` method, which returns detailed information about each voice including language and gender.
@@ -0,0 +1,378 @@
1
+ # Google Gemini Live Voice
2
+
3
+ The GeminiLiveVoice class provides real-time voice interaction capabilities using Google's Gemini Live API. It supports bidirectional audio streaming, tool calling, session management, and both standard Google API and Vertex AI authentication methods.
4
+
5
+ ## Usage Example
6
+
7
+ ```typescript
8
+ import { GeminiLiveVoice } from '@mastra/voice-google-gemini-live'
9
+ import { playAudio, getMicrophoneStream } from '@mastra/node-audio'
10
+
11
+ // Initialize with Gemini API (using API key)
12
+ const voice = new GeminiLiveVoice({
13
+ apiKey: process.env.GOOGLE_API_KEY, // Required for Gemini API
14
+ model: 'gemini-2.0-flash-exp',
15
+ speaker: 'Puck', // Default voice
16
+ debug: true,
17
+ })
18
+
19
+ // Or initialize with Vertex AI (using OAuth)
20
+ const voiceWithVertexAI = new GeminiLiveVoice({
21
+ vertexAI: true,
22
+ project: 'your-gcp-project',
23
+ location: 'us-central1',
24
+ serviceAccountKeyFile: '/path/to/service-account.json',
25
+ model: 'gemini-2.0-flash-exp',
26
+ speaker: 'Puck',
27
+ })
28
+
29
+ // Or use the VoiceConfig pattern (recommended for consistency with other providers)
30
+ const voiceWithConfig = new GeminiLiveVoice({
31
+ speechModel: {
32
+ name: 'gemini-2.0-flash-exp',
33
+ apiKey: process.env.GOOGLE_API_KEY,
34
+ },
35
+ speaker: 'Puck',
36
+ realtimeConfig: {
37
+ model: 'gemini-2.0-flash-exp',
38
+ apiKey: process.env.GOOGLE_API_KEY,
39
+ options: {
40
+ debug: true,
41
+ sessionConfig: {
42
+ interrupts: { enabled: true },
43
+ },
44
+ },
45
+ },
46
+ })
47
+
48
+ // Establish connection (required before using other methods)
49
+ await voice.connect()
50
+
51
+ // Set up event listeners
52
+ voice.on('speaker', audioStream => {
53
+ // Handle audio stream (NodeJS.ReadableStream)
54
+ playAudio(audioStream)
55
+ })
56
+
57
+ voice.on('writing', ({ text, role }) => {
58
+ // Handle transcribed text
59
+ console.log(`${role}: ${text}`)
60
+ })
61
+
62
+ voice.on('turnComplete', ({ timestamp }) => {
63
+ // Handle turn completion
64
+ console.log('Turn completed at:', timestamp)
65
+ })
66
+
67
+ // Convert text to speech
68
+ await voice.speak('Hello, how can I help you today?', {
69
+ speaker: 'Charon', // Override default voice
70
+ responseModalities: ['AUDIO', 'TEXT'],
71
+ })
72
+
73
+ // Process audio input
74
+ const microphoneStream = getMicrophoneStream()
75
+ await voice.send(microphoneStream)
76
+
77
+ // Update session configuration
78
+ await voice.updateSessionConfig({
79
+ speaker: 'Kore',
80
+ instructions: 'Be more concise in your responses',
81
+ })
82
+
83
+ // When done, disconnect
84
+ await voice.disconnect()
85
+ // Or use the synchronous wrapper
86
+ voice.close()
87
+ ```
88
+
89
+ ## Configuration
90
+
91
+ ### Constructor Options
92
+
93
+ **apiKey?:** (`string`): Google API key for Gemini API authentication. Required unless using Vertex AI.
94
+
95
+ **model?:** (`GeminiVoiceModel`): The model ID to use for real-time voice interactions. (Default: `'gemini-2.0-flash-exp'`)
96
+
97
+ **speaker?:** (`GeminiVoiceName`): Default voice ID for speech synthesis. (Default: `'Puck'`)
98
+
99
+ **vertexAI?:** (`boolean`): Use Vertex AI instead of Gemini API for authentication. (Default: `false`)
100
+
101
+ **project?:** (`string`): Google Cloud project ID (required for Vertex AI).
102
+
103
+ **location?:** (`string`): Google Cloud region for Vertex AI. (Default: `'us-central1'`)
104
+
105
+ **serviceAccountKeyFile?:** (`string`): Path to service account JSON key file for Vertex AI authentication.
106
+
107
+ **serviceAccountEmail?:** (`string`): Service account email for impersonation (alternative to key file).
108
+
109
+ **instructions?:** (`string`): System instructions for the model.
110
+
111
+ **sessionConfig?:** (`GeminiSessionConfig`): Session configuration including interrupt and context settings.
112
+
113
+ **debug?:** (`boolean`): Enable debug logging for troubleshooting. (Default: `false`)
114
+
115
+ ### Session Configuration
116
+
117
+ **interrupts?:** (`object`): Interrupt handling configuration.
118
+
119
+ **interrupts.enabled?:** (`boolean`): Enable interrupt handling. (Default: `true`)
120
+
121
+ **interrupts.allowUserInterruption?:** (`boolean`): Allow user to interrupt model responses. (Default: `true`)
122
+
123
+ **contextCompression?:** (`boolean`): Enable automatic context compression. (Default: `false`)
124
+
125
+ ## Methods
126
+
127
+ ### connect()
128
+
129
+ Establishes a connection to the Gemini Live API. Must be called before using speak, listen, or send methods.
130
+
131
+ **requestContext?:** (`object`): Optional request context for the connection.
132
+
133
+ **returns:** (`Promise<void>`): Promise that resolves when the connection is established.
134
+
135
+ ### speak()
136
+
137
+ Converts text to speech and sends it to the model. Can accept either a string or a readable stream as input.
138
+
139
+ **input:** (`string | NodeJS.ReadableStream`): Text or text stream to convert to speech.
140
+
141
+ **options?:** (`GeminiLiveVoiceOptions`): Optional speech configuration.
142
+
143
+ **options.speaker?:** (`GeminiVoiceName`): Voice ID to use for this specific speech request. (Default: `Constructor's speaker value`)
144
+
145
+ **options.languageCode?:** (`string`): Language code for the response.
146
+
147
+ **options.responseModalities?:** (`('AUDIO' | 'TEXT')[]`): Response modalities to receive from the model. (Default: `['AUDIO', 'TEXT']`)
148
+
149
+ Returns: `Promise<void>` (responses are emitted via `speaker` and `writing` events)
150
+
151
+ ### listen()
152
+
153
+ Processes audio input for speech recognition. Takes a readable stream of audio data and returns the transcribed text.
154
+
155
+ **audioStream:** (`NodeJS.ReadableStream`): Audio stream to transcribe.
156
+
157
+ **options?:** (`GeminiLiveVoiceOptions`): Optional listening configuration.
158
+
159
+ Returns: `Promise<string>` - The transcribed text
160
+
161
+ ### send()
162
+
163
+ Streams audio data in real-time to the Gemini service for continuous audio streaming scenarios like live microphone input.
164
+
165
+ **audioData:** (`NodeJS.ReadableStream | Int16Array`): Audio stream or buffer to send to the service.
166
+
167
+ Returns: `Promise<void>`
168
+
169
+ ### updateSessionConfig()
170
+
171
+ Updates the session configuration dynamically. This can be used to modify voice settings, speaker selection, and other runtime configurations.
172
+
173
+ **config:** (`Partial<GeminiLiveVoiceConfig>`): Configuration updates to apply.
174
+
175
+ Returns: `Promise<void>`
176
+
177
+ ### addTools()
178
+
179
+ Adds a set of tools to the voice instance. Tools allow the model to perform additional actions during conversations. When GeminiLiveVoice is added to an Agent, any tools configured for the Agent will automatically be available to the voice interface.
180
+
181
+ **tools:** (`ToolsInput`): Tools configuration to equip.
182
+
183
+ Returns: `void`
184
+
185
+ ### addInstructions()
186
+
187
+ Adds or updates system instructions for the model.
188
+
189
+ **instructions?:** (`string`): System instructions to set.
190
+
191
+ Returns: `void`
192
+
193
+ ### answer()
194
+
195
+ Triggers a response from the model. This method is primarily used internally when integrated with an Agent.
196
+
197
+ **options?:** (`Record<string, unknown>`): Optional parameters for the answer request.
198
+
199
+ Returns: `Promise<void>`
200
+
201
+ ### getSpeakers()
202
+
203
+ Returns a list of available voice speakers for the Gemini Live API.
204
+
205
+ Returns: `Promise<Array<{ voiceId: string; description?: string }>>`
206
+
207
+ ### disconnect()
208
+
209
+ Disconnects from the Gemini Live session and cleans up resources. This is the async method that properly handles cleanup.
210
+
211
+ Returns: `Promise<void>`
212
+
213
+ ### close()
214
+
215
+ Synchronous wrapper for disconnect(). Calls disconnect() internally without awaiting.
216
+
217
+ Returns: `void`
218
+
219
+ ### on()
220
+
221
+ Registers an event listener for voice events.
222
+
223
+ **event:** (`string`): Name of the event to listen for.
224
+
225
+ **callback:** (`Function`): Function to call when the event occurs.
226
+
227
+ Returns: `void`
228
+
229
+ ### off()
230
+
231
+ Removes a previously registered event listener.
232
+
233
+ **event:** (`string`): Name of the event to stop listening to.
234
+
235
+ **callback:** (`Function`): The specific callback function to remove.
236
+
237
+ Returns: `void`
238
+
239
+ ## Events
240
+
241
+ The GeminiLiveVoice class emits the following events:
242
+
243
+ **speaker:** (`event`): Emitted when audio data is received from the model. Callback receives a NodeJS.ReadableStream.
244
+
245
+ **speaking:** (`event`): Emitted with audio metadata. Callback receives { audioData?: Int16Array, sampleRate?: number }.
246
+
247
+ **writing:** (`event`): Emitted when transcribed text is available. Callback receives { text: string, role: 'assistant' | 'user' }.
248
+
249
+ **session:** (`event`): Emitted on session state changes. Callback receives { state: 'connecting' | 'connected' | 'disconnected' | 'disconnecting' | 'updated', config?: object }.
250
+
251
+ **turnComplete:** (`event`): Emitted when a conversation turn is completed. Callback receives { timestamp: number }.
252
+
253
+ **toolCall:** (`event`): Emitted when the model requests a tool call. Callback receives { name: string, args: object, id: string }.
254
+
255
+ **usage:** (`event`): Emitted with token usage information. Callback receives { inputTokens: number, outputTokens: number, totalTokens: number, modality: string }.
256
+
257
+ **error:** (`event`): Emitted when an error occurs. Callback receives { message: string, code?: string, details?: unknown }.
258
+
259
+ **interrupt:** (`event`): Interrupt events. Callback receives { type: 'user' | 'model', timestamp: number }.
260
+
261
+ ## Available Models
262
+
263
+ The following Gemini Live models are available:
264
+
265
+ - `gemini-2.0-flash-exp` (default)
266
+ - `gemini-2.0-flash-exp-image-generation`
267
+ - `gemini-2.0-flash-live-001`
268
+ - `gemini-live-2.5-flash-preview-native-audio`
269
+ - `gemini-2.5-flash-exp-native-audio-thinking-dialog`
270
+ - `gemini-live-2.5-flash-preview`
271
+ - `gemini-2.6.flash-preview-tts`
272
+
273
+ ## Available Voices
274
+
275
+ The following voice options are available:
276
+
277
+ - `Puck` (default): Conversational, friendly
278
+ - `Charon`: Deep, authoritative
279
+ - `Kore`: Neutral, professional
280
+ - `Fenrir`: Warm, approachable
281
+
282
+ ## Authentication Methods
283
+
284
+ ### Gemini API (Development)
285
+
286
+ The simplest method using an API key from [Google AI Studio](https://makersuite.google.com/app/apikey):
287
+
288
+ ```typescript
289
+ const voice = new GeminiLiveVoice({
290
+ apiKey: 'your-api-key', // Required for Gemini API
291
+ model: 'gemini-2.0-flash-exp',
292
+ })
293
+ ```
294
+
295
+ ### Vertex AI (Production)
296
+
297
+ For production use with OAuth authentication and Google Cloud Platform:
298
+
299
+ ```typescript
300
+ // Using service account key file
301
+ const voice = new GeminiLiveVoice({
302
+ vertexAI: true,
303
+ project: 'your-gcp-project',
304
+ location: 'us-central1',
305
+ serviceAccountKeyFile: '/path/to/service-account.json',
306
+ })
307
+
308
+ // Using Application Default Credentials
309
+ const voice = new GeminiLiveVoice({
310
+ vertexAI: true,
311
+ project: 'your-gcp-project',
312
+ location: 'us-central1',
313
+ })
314
+
315
+ // Using service account impersonation
316
+ const voice = new GeminiLiveVoice({
317
+ vertexAI: true,
318
+ project: 'your-gcp-project',
319
+ location: 'us-central1',
320
+ serviceAccountEmail: 'service-account@project.iam.gserviceaccount.com',
321
+ })
322
+ ```
323
+
324
+ ## Advanced Features
325
+
326
+ ### Session Management
327
+
328
+ The Gemini Live API supports session resumption for handling network interruptions:
329
+
330
+ ```typescript
331
+ voice.on('sessionHandle', ({ handle, expiresAt }) => {
332
+ // Store session handle for resumption
333
+ saveSessionHandle(handle, expiresAt)
334
+ })
335
+
336
+ // Resume a previous session
337
+ const voice = new GeminiLiveVoice({
338
+ sessionConfig: {
339
+ enableResumption: true,
340
+ maxDuration: '2h',
341
+ },
342
+ })
343
+ ```
344
+
345
+ ### Tool Calling
346
+
347
+ Enable the model to call functions during conversations:
348
+
349
+ ```typescript
350
+ import { z } from 'zod'
351
+
352
+ voice.addTools({
353
+ weather: {
354
+ description: 'Get weather information',
355
+ parameters: z.object({
356
+ location: z.string(),
357
+ }),
358
+ execute: async ({ location }) => {
359
+ const weather = await getWeather(location)
360
+ return weather
361
+ },
362
+ },
363
+ })
364
+
365
+ voice.on('toolCall', ({ name, args, id }) => {
366
+ console.log(`Tool called: ${name} with args:`, args)
367
+ })
368
+ ```
369
+
370
+ ## Notes
371
+
372
+ - The Gemini Live API uses WebSockets for real-time communication
373
+ - Audio is processed as 16kHz PCM16 for input and 24kHz PCM16 for output
374
+ - The voice instance must be connected with `connect()` before using other methods
375
+ - Always call `close()` when done to properly clean up resources
376
+ - Vertex AI authentication requires appropriate IAM permissions (`aiplatform.user` role)
377
+ - Session resumption allows recovery from network interruptions
378
+ - The API supports real-time interactions with text and audio