@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,228 @@
1
+ # Google
2
+
3
+ The Google Voice implementation in Mastra provides both text-to-speech (TTS) and speech-to-text (STT) capabilities using Google Cloud services. It supports multiple voices, languages, advanced audio configuration options, and both standard API key authentication and Vertex AI mode for enterprise deployments.
4
+
5
+ ## Usage Example
6
+
7
+ ```typescript
8
+ import { GoogleVoice } from '@mastra/voice-google'
9
+
10
+ // Initialize with default configuration (uses GOOGLE_API_KEY environment variable)
11
+ const voice = new GoogleVoice()
12
+
13
+ // Text-to-Speech
14
+ const audioStream = await voice.speak('Hello, world!', {
15
+ languageCode: 'en-US',
16
+ audioConfig: {
17
+ audioEncoding: 'LINEAR16',
18
+ },
19
+ })
20
+
21
+ // Speech-to-Text
22
+ const transcript = await voice.listen(audioStream, {
23
+ config: {
24
+ encoding: 'LINEAR16',
25
+ languageCode: 'en-US',
26
+ },
27
+ })
28
+
29
+ // Get available voices for a specific language
30
+ const voices = await voice.getSpeakers({ languageCode: 'en-US' })
31
+ ```
32
+
33
+ ## Constructor Parameters
34
+
35
+ **speechModel?:** (`GoogleModelConfig`): Configuration for text-to-speech functionality (Default: `{ apiKey: process.env.GOOGLE_API_KEY }`)
36
+
37
+ **listeningModel?:** (`GoogleModelConfig`): Configuration for speech-to-text functionality (Default: `{ apiKey: process.env.GOOGLE_API_KEY }`)
38
+
39
+ **speaker?:** (`string`): Default voice ID to use for text-to-speech (Default: `'en-US-Casual-K'`)
40
+
41
+ **vertexAI?:** (`boolean`): Enable Vertex AI mode for enterprise deployments. Uses project-based authentication instead of API keys. Requires 'project' to be set. (Default: `false`)
42
+
43
+ **project?:** (`string`): Google Cloud project ID (required when vertexAI is true). Falls back to GOOGLE\_CLOUD\_PROJECT environment variable.
44
+
45
+ **location?:** (`string`): Google Cloud region for Vertex AI. Falls back to GOOGLE\_CLOUD\_LOCATION environment variable. (Default: `'us-central1'`)
46
+
47
+ ### GoogleModelConfig
48
+
49
+ **apiKey?:** (`string`): Google Cloud API key. Falls back to GOOGLE\_API\_KEY environment variable. Not used when vertexAI is true.
50
+
51
+ **keyFilename?:** (`string`): Path to service account JSON key file. Falls back to GOOGLE\_APPLICATION\_CREDENTIALS environment variable.
52
+
53
+ **credentials?:** (`object`): In-memory service account credentials object with client\_email and private\_key properties.
54
+
55
+ ## Methods
56
+
57
+ ### speak()
58
+
59
+ Converts text to speech using Google Cloud Text-to-Speech service.
60
+
61
+ **input:** (`string | NodeJS.ReadableStream`): Text to convert to speech. If a stream is provided, it will be converted to text first.
62
+
63
+ **options?:** (`object`): Speech synthesis options
64
+
65
+ **options.speaker?:** (`string`): Voice ID to use for this request
66
+
67
+ **options.languageCode?:** (`string`): Language code for the voice (e.g., 'en-US'). Defaults to the language code from the speaker ID or 'en-US'
68
+
69
+ **options.audioConfig?:** (`ISynthesizeSpeechRequest['audioConfig']`): Audio configuration options from Google Cloud Text-to-Speech API (Default: `{ audioEncoding: 'LINEAR16' }`)
70
+
71
+ Returns: `Promise<NodeJS.ReadableStream>`
72
+
73
+ ### listen()
74
+
75
+ Converts speech to text using Google Cloud Speech-to-Text service.
76
+
77
+ **audioStream:** (`NodeJS.ReadableStream`): Audio stream to transcribe
78
+
79
+ **options?:** (`object`): Recognition options
80
+
81
+ **options.stream?:** (`boolean`): Whether to use streaming recognition
82
+
83
+ **options.config?:** (`IRecognitionConfig`): Recognition configuration from Google Cloud Speech-to-Text API (Default: `{ encoding: 'LINEAR16', languageCode: 'en-US' }`)
84
+
85
+ Returns: `Promise<string>`
86
+
87
+ ### getSpeakers()
88
+
89
+ Returns an array of available voice options, where each node contains:
90
+
91
+ **voiceId:** (`string`): Unique identifier for the voice
92
+
93
+ **languageCodes:** (`string[]`): List of language codes supported by this voice
94
+
95
+ ### isUsingVertexAI()
96
+
97
+ Checks if Vertex AI mode is enabled.
98
+
99
+ Returns: `boolean` - `true` if using Vertex AI, `false` otherwise
100
+
101
+ ### getProject()
102
+
103
+ Gets the configured Google Cloud project ID.
104
+
105
+ Returns: `string | undefined` - The project ID or `undefined` if not set
106
+
107
+ ### getLocation()
108
+
109
+ Gets the configured Google Cloud location/region.
110
+
111
+ Returns: `string` - The location (default: `'us-central1'`)
112
+
113
+ ## Authentication
114
+
115
+ The Google Voice provider supports two authentication methods:
116
+
117
+ ### Standard Mode (API Key)
118
+
119
+ Uses a Google Cloud API key for authentication. Suitable for development and simple use cases.
120
+
121
+ ```typescript
122
+ // Using environment variable (GOOGLE_API_KEY)
123
+ const voice = new GoogleVoice()
124
+
125
+ // Using explicit API key
126
+ const voice = new GoogleVoice({
127
+ speechModel: { apiKey: 'your-api-key' },
128
+ listeningModel: { apiKey: 'your-api-key' },
129
+ speaker: 'en-US-Casual-K',
130
+ })
131
+ ```
132
+
133
+ ### Vertex AI Mode (Service Account)
134
+
135
+ Uses Google Cloud project-based authentication with service accounts. Recommended for production and enterprise deployments.
136
+
137
+ **Benefits:**
138
+
139
+ - Better security (no API keys in code)
140
+ - IAM-based access control
141
+ - Project-level billing and quotas
142
+ - Audit logging
143
+ - Enterprise features
144
+
145
+ **Configuration Options:**
146
+
147
+ ```typescript
148
+ // Using Application Default Credentials (ADC)
149
+ // Set GOOGLE_APPLICATION_CREDENTIALS and GOOGLE_CLOUD_PROJECT env vars
150
+ const voice = new GoogleVoice({
151
+ vertexAI: true,
152
+ project: 'your-gcp-project',
153
+ location: 'us-central1', // Optional, defaults to 'us-central1'
154
+ })
155
+
156
+ // Using service account key file
157
+ const voice = new GoogleVoice({
158
+ vertexAI: true,
159
+ project: 'your-gcp-project',
160
+ speechModel: {
161
+ keyFilename: '/path/to/service-account.json',
162
+ },
163
+ listeningModel: {
164
+ keyFilename: '/path/to/service-account.json',
165
+ },
166
+ })
167
+
168
+ // Using in-memory credentials
169
+ const voice = new GoogleVoice({
170
+ vertexAI: true,
171
+ project: 'your-gcp-project',
172
+ speechModel: {
173
+ credentials: {
174
+ client_email: 'service-account@project.iam.gserviceaccount.com',
175
+ private_key: '-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----',
176
+ },
177
+ },
178
+ })
179
+ ```
180
+
181
+ #### Required Permissions
182
+
183
+ #### IAM Roles
184
+
185
+ For Text-to-Speech:
186
+
187
+ - `roles/texttospeech.admin` - Text-to-Speech Admin (full access)
188
+ - `roles/texttospeech.editor` - Text-to-Speech Editor (create and manage)
189
+ - `roles/texttospeech.viewer` - Text-to-Speech Viewer (read-only)
190
+
191
+ For Speech-to-Text:
192
+
193
+ - `roles/speech.client` - Speech-to-Text Client
194
+
195
+ #### OAuth Scopes
196
+
197
+ For synchronous Text-to-Speech synthesis:
198
+
199
+ - `https://www.googleapis.com/auth/cloud-platform` - Full access to Google Cloud Platform services
200
+
201
+ For long-audio Text-to-Speech operations:
202
+
203
+ - `locations.longAudioSynthesize` - Create long-audio synthesis operations
204
+ - `operations.get` - Get operation status
205
+ - `operations.list` - List operations
206
+
207
+ ## Important Notes
208
+
209
+ 1. **Authentication**: Either a Google Cloud API key (standard mode) or service account credentials (Vertex AI mode) is required.
210
+
211
+ 2. **Environment Variables**:
212
+
213
+ - `GOOGLE_API_KEY` - API key for standard mode
214
+ - `GOOGLE_CLOUD_PROJECT` - Project ID for Vertex AI mode
215
+ - `GOOGLE_CLOUD_LOCATION` - Location for Vertex AI mode (defaults to 'us-central1')
216
+ - `GOOGLE_APPLICATION_CREDENTIALS` - Path to service account key file
217
+
218
+ 3. The default voice is set to `'en-US-Casual-K'`.
219
+
220
+ 4. Both text-to-speech and speech-to-text services use LINEAR16 as the default audio encoding.
221
+
222
+ 5. The `speak()` method supports advanced audio configuration through the Google Cloud Text-to-Speech API.
223
+
224
+ 6. The `listen()` method supports various recognition configurations through the Google Cloud Speech-to-Text API.
225
+
226
+ 7. Available voices can be filtered by language code using the `getSpeakers()` method.
227
+
228
+ 8. Vertex AI mode provides enterprise features including IAM control, audit logs, and project-level billing.
@@ -0,0 +1,311 @@
1
+ # MastraVoice
2
+
3
+ The MastraVoice class is an abstract base class that defines the core interface for voice services in Mastra. All voice provider implementations (like OpenAI, Deepgram, PlayAI, Speechify) extend this class to provide their specific functionality. The class now includes support for real-time speech-to-speech capabilities through WebSocket connections.
4
+
5
+ ## Usage Example
6
+
7
+ ```typescript
8
+ import { MastraVoice } from '@mastra/core/voice'
9
+
10
+ // Create a voice provider implementation
11
+ class MyVoiceProvider extends MastraVoice {
12
+ constructor(config: {
13
+ speechModel?: BuiltInModelConfig
14
+ listeningModel?: BuiltInModelConfig
15
+ speaker?: string
16
+ realtimeConfig?: {
17
+ model?: string
18
+ apiKey?: string
19
+ options?: unknown
20
+ }
21
+ }) {
22
+ super({
23
+ speechModel: config.speechModel,
24
+ listeningModel: config.listeningModel,
25
+ speaker: config.speaker,
26
+ realtimeConfig: config.realtimeConfig,
27
+ })
28
+ }
29
+
30
+ // Implement required abstract methods
31
+ async speak(
32
+ input: string | NodeJS.ReadableStream,
33
+ options?: { speaker?: string },
34
+ ): Promise<NodeJS.ReadableStream | void> {
35
+ // Implement text-to-speech conversion
36
+ }
37
+
38
+ async listen(
39
+ audioStream: NodeJS.ReadableStream,
40
+ options?: unknown,
41
+ ): Promise<string | NodeJS.ReadableStream | void> {
42
+ // Implement speech-to-text conversion
43
+ }
44
+
45
+ async getSpeakers(): Promise<Array<{ voiceId: string; [key: string]: unknown }>> {
46
+ // Return list of available voices
47
+ }
48
+
49
+ // Optional speech-to-speech methods
50
+ async connect(): Promise<void> {
51
+ // Establish WebSocket connection for speech-to-speech communication
52
+ }
53
+
54
+ async send(audioData: NodeJS.ReadableStream | Int16Array): Promise<void> {
55
+ // Stream audio data in speech-to-speech
56
+ }
57
+
58
+ async answer(): Promise<void> {
59
+ // Trigger voice provider to respond
60
+ }
61
+
62
+ addTools(tools: Array<unknown>): void {
63
+ // Add tools for the voice provider to use
64
+ }
65
+
66
+ close(): void {
67
+ // Close WebSocket connection
68
+ }
69
+
70
+ on(event: string, callback: (data: unknown) => void): void {
71
+ // Register event listener
72
+ }
73
+
74
+ off(event: string, callback: (data: unknown) => void): void {
75
+ // Remove event listener
76
+ }
77
+ }
78
+ ```
79
+
80
+ ## Constructor Parameters
81
+
82
+ **config?:** (`VoiceConfig`): Configuration object for the voice service
83
+
84
+ **config.speechModel?:** (`BuiltInModelConfig`): Configuration for the text-to-speech model
85
+
86
+ **config.listeningModel?:** (`BuiltInModelConfig`): Configuration for the speech-to-text model
87
+
88
+ **config.speaker?:** (`string`): Default speaker/voice ID to use
89
+
90
+ **config.name?:** (`string`): Name for the voice provider instance
91
+
92
+ **config.realtimeConfig?:** (`object`): Configuration for real-time speech-to-speech capabilities
93
+
94
+ ### BuiltInModelConfig
95
+
96
+ **name:** (`string`): Name of the model to use
97
+
98
+ **apiKey?:** (`string`): API key for the model service
99
+
100
+ ### RealtimeConfig
101
+
102
+ **model?:** (`string`): Model to use for real-time speech-to-speech capabilities
103
+
104
+ **apiKey?:** (`string`): API key for the real-time service
105
+
106
+ **options?:** (`unknown`): Provider-specific options for real-time capabilities
107
+
108
+ ## Abstract Methods
109
+
110
+ These methods must be implemented by unknown class extending MastraVoice.
111
+
112
+ ### speak()
113
+
114
+ Converts text to speech using the configured speech model.
115
+
116
+ ```typescript
117
+ abstract speak(
118
+ input: string | NodeJS.ReadableStream,
119
+ options?: {
120
+ speaker?: string;
121
+ [key: string]: unknown;
122
+ }
123
+ ): Promise<NodeJS.ReadableStream | void>
124
+ ```
125
+
126
+ Purpose:
127
+
128
+ - Takes text input and converts it to speech using the provider's text-to-speech service
129
+ - Supports both string and stream input for flexibility
130
+ - Allows overriding the default speaker/voice through options
131
+ - Returns a stream of audio data that can be played or saved
132
+ - May return void if the audio is handled by emitting 'speaking' event
133
+
134
+ ### listen()
135
+
136
+ Converts speech to text using the configured listening model.
137
+
138
+ ```typescript
139
+ abstract listen(
140
+ audioStream: NodeJS.ReadableStream,
141
+ options?: {
142
+ [key: string]: unknown;
143
+ }
144
+ ): Promise<string | NodeJS.ReadableStream | void>
145
+ ```
146
+
147
+ Purpose:
148
+
149
+ - Takes an audio stream and converts it to text using the provider's speech-to-text service
150
+ - Supports provider-specific options for transcription configuration
151
+ - Can return either a complete text transcription or a stream of transcribed text
152
+ - Not all providers support this functionality (e.g., PlayAI, Speechify)
153
+ - May return void if the transcription is handled by emitting 'writing' event
154
+
155
+ ### getSpeakers()
156
+
157
+ Returns a list of available voices supported by the provider.
158
+
159
+ ```typescript
160
+ abstract getSpeakers(): Promise<Array<{ voiceId: string; [key: string]: unknown }>>
161
+ ```
162
+
163
+ Purpose:
164
+
165
+ - Retrieves the list of available voices/speakers from the provider
166
+ - Each voice must have at least a voiceId property
167
+ - Providers can include additional metadata about each voice
168
+ - Used to discover available voices for text-to-speech conversion
169
+
170
+ ## Optional Methods
171
+
172
+ These methods have default implementations but can be overridden by voice providers that support speech-to-speech capabilities.
173
+
174
+ ### connect()
175
+
176
+ Establishes a WebSocket or WebRTC connection for communication.
177
+
178
+ ```typescript
179
+ connect(config?: unknown): Promise<void>
180
+ ```
181
+
182
+ Purpose:
183
+
184
+ - Initializes a connection to the voice service for communication
185
+ - Must be called before using features like send() or answer()
186
+ - Returns a Promise that resolves when the connection is established
187
+ - Configuration is provider-specific
188
+
189
+ ### send()
190
+
191
+ Streams audio data in real-time to the voice provider.
192
+
193
+ ```typescript
194
+ send(audioData: NodeJS.ReadableStream | Int16Array): Promise<void>
195
+ ```
196
+
197
+ Purpose:
198
+
199
+ - Sends audio data to the voice provider for real-time processing
200
+ - Useful for continuous audio streaming scenarios like live microphone input
201
+ - Supports both ReadableStream and Int16Array audio formats
202
+ - Must be in connected state before calling this method
203
+
204
+ ### answer()
205
+
206
+ Triggers the voice provider to generate a response.
207
+
208
+ ```typescript
209
+ answer(): Promise<void>
210
+ ```
211
+
212
+ Purpose:
213
+
214
+ - Sends a signal to the voice provider to generate a response
215
+ - Used in real-time conversations to prompt the AI to respond
216
+ - Response will be emitted through the event system (e.g., 'speaking' event)
217
+
218
+ ### addTools()
219
+
220
+ Equips the voice provider with tools that can be used during conversations.
221
+
222
+ ```typescript
223
+ addTools(tools: Array<Tool>): void
224
+ ```
225
+
226
+ Purpose:
227
+
228
+ - Adds tools that the voice provider can use during conversations
229
+ - Tools can extend the capabilities of the voice provider
230
+ - Implementation is provider-specific
231
+
232
+ ### close()
233
+
234
+ Disconnects from the WebSocket or WebRTC connection.
235
+
236
+ ```typescript
237
+ close(): void
238
+ ```
239
+
240
+ Purpose:
241
+
242
+ - Closes the connection to the voice service
243
+ - Cleans up resources and stops any ongoing real-time processing
244
+ - Should be called when you're done with the voice instance
245
+
246
+ ### on()
247
+
248
+ Registers an event listener for voice events.
249
+
250
+ ```typescript
251
+ on<E extends VoiceEventType>(
252
+ event: E,
253
+ callback: (data: E extends keyof VoiceEventMap ? VoiceEventMap[E] : unknown) => void,
254
+ ): void
255
+ ```
256
+
257
+ Purpose:
258
+
259
+ - Registers a callback function to be called when the specified event occurs
260
+ - Standard events include 'speaking', 'writing', and 'error'
261
+ - Providers can emit custom events as well
262
+ - Event data structure depends on the event type
263
+
264
+ ### off()
265
+
266
+ Removes an event listener.
267
+
268
+ ```typescript
269
+ off<E extends VoiceEventType>(
270
+ event: E,
271
+ callback: (data: E extends keyof VoiceEventMap ? VoiceEventMap[E] : unknown) => void,
272
+ ): void
273
+ ```
274
+
275
+ Purpose:
276
+
277
+ - Removes a previously registered event listener
278
+ - Used to clean up event handlers when they're no longer needed
279
+
280
+ ## Event System
281
+
282
+ The MastraVoice class includes an event system for real-time communication. Standard event types include:
283
+
284
+ **speaking:** (`{ text: string; audioStream?: NodeJS.ReadableStream; audio?: Int16Array }`): Emitted when the voice provider is speaking, contains audio data
285
+
286
+ **writing:** (`{ text: string, role: string }`): Emitted when text is transcribed from speech
287
+
288
+ **error:** (`{ message: string; code?: string; details?: unknown }`): Emitted when an error occurs
289
+
290
+ ## Protected Properties
291
+
292
+ **listeningModel?:** (`BuiltInModelConfig | undefined`): Configuration for the speech-to-text model
293
+
294
+ **speechModel?:** (`BuiltInModelConfig | undefined`): Configuration for the text-to-speech model
295
+
296
+ **speaker?:** (`string | undefined`): Default speaker/voice ID
297
+
298
+ **realtimeConfig?:** (`{ model?: string; apiKey?: string; options?: unknown } | undefined`): Configuration for real-time speech-to-speech capabilities
299
+
300
+ ## Telemetry Support
301
+
302
+ MastraVoice includes built-in telemetry support through the `traced` method, which wraps method calls with performance tracking and error monitoring.
303
+
304
+ ## Notes
305
+
306
+ - MastraVoice is an abstract class and cannot be instantiated directly
307
+ - Implementations must provide concrete implementations for all abstract methods
308
+ - The class provides a consistent interface across different voice service providers
309
+ - Speech-to-speech capabilities are optional and provider-specific
310
+ - The event system enables asynchronous communication for real-time interactions
311
+ - Telemetry is automatically handled for all method calls
@@ -0,0 +1,122 @@
1
+ # Murf
2
+
3
+ The Murf voice implementation in Mastra provides text-to-speech (TTS) capabilities using Murf's AI voice service. It supports multiple voices across different languages.
4
+
5
+ ## Usage Example
6
+
7
+ ```typescript
8
+ import { MurfVoice } from '@mastra/voice-murf'
9
+
10
+ // Initialize with default configuration (uses MURF_API_KEY environment variable)
11
+ const voice = new MurfVoice()
12
+
13
+ // Initialize with custom configuration
14
+ const voice = new MurfVoice({
15
+ speechModel: {
16
+ name: 'GEN2',
17
+ apiKey: 'your-api-key',
18
+ properties: {
19
+ format: 'MP3',
20
+ rate: 1.0,
21
+ pitch: 1.0,
22
+ sampleRate: 48000,
23
+ channelType: 'STEREO',
24
+ },
25
+ },
26
+ speaker: 'en-US-cooper',
27
+ })
28
+
29
+ // Text-to-Speech with default settings
30
+ const audioStream = await voice.speak('Hello, world!')
31
+
32
+ // Text-to-Speech with custom properties
33
+ const audioStream = await voice.speak('Hello, world!', {
34
+ speaker: 'en-UK-hazel',
35
+ properties: {
36
+ format: 'WAV',
37
+ rate: 1.2,
38
+ style: 'casual',
39
+ },
40
+ })
41
+
42
+ // Get available voices
43
+ const voices = await voice.getSpeakers()
44
+ ```
45
+
46
+ ## Constructor Parameters
47
+
48
+ **speechModel?:** (`MurfConfig`): Configuration for text-to-speech functionality (Default: `{ name: 'GEN2' }`)
49
+
50
+ **speaker?:** (`string`): Default voice ID to use for text-to-speech (Default: `'en-UK-hazel'`)
51
+
52
+ ### MurfConfig
53
+
54
+ **name:** (`'GEN1' | 'GEN2'`): The Murf model generation to use (Default: `'GEN2'`)
55
+
56
+ **apiKey?:** (`string`): Murf API key. Falls back to MURF\_API\_KEY environment variable
57
+
58
+ **properties?:** (`object`): Default properties for all speech synthesis requests
59
+
60
+ ### Speech Properties
61
+
62
+ **style?:** (`string`): Speaking style for the voice
63
+
64
+ **rate?:** (`number`): Speech rate multiplier
65
+
66
+ **pitch?:** (`number`): Voice pitch adjustment
67
+
68
+ **sampleRate?:** (`8000 | 24000 | 44100 | 48000`): Audio sample rate in Hz
69
+
70
+ **format?:** (`'MP3' | 'WAV' | 'FLAC' | 'ALAW' | 'ULAW'`): Output audio format
71
+
72
+ **channelType?:** (`'STEREO' | 'MONO'`): Audio channel configuration
73
+
74
+ **pronunciationDictionary?:** (`Record<string, string>`): Custom pronunciation mappings
75
+
76
+ **encodeAsBase64?:** (`boolean`): Whether to encode the audio as base64
77
+
78
+ **variation?:** (`number`): Voice variation parameter
79
+
80
+ **audioDuration?:** (`number`): Target audio duration in seconds
81
+
82
+ **multiNativeLocale?:** (`string`): Locale for multilingual support
83
+
84
+ ## Methods
85
+
86
+ ### speak()
87
+
88
+ Converts text to speech using Murf's API.
89
+
90
+ **input:** (`string | NodeJS.ReadableStream`): Text to convert to speech. If a stream is provided, it will be converted to text first.
91
+
92
+ **options?:** (`object`): Speech synthesis options
93
+
94
+ **options.speaker?:** (`string`): Override the default speaker for this request
95
+
96
+ **options.properties?:** (`object`): Override default speech properties for this request
97
+
98
+ Returns: `Promise<NodeJS.ReadableStream>`
99
+
100
+ ### getSpeakers()
101
+
102
+ Returns an array of available voice options, where each node contains:
103
+
104
+ **voiceId:** (`string`): Unique identifier for the voice
105
+
106
+ **name:** (`string`): Display name of the voice
107
+
108
+ **language:** (`string`): Language code for the voice
109
+
110
+ **gender:** (`string`): Gender of the voice
111
+
112
+ ### listen()
113
+
114
+ This method is not supported by Murf and will throw an error. Murf does not provide speech-to-text functionality.
115
+
116
+ ## Important Notes
117
+
118
+ 1. A Murf API key is required. Set it via the `MURF_API_KEY` environment variable or pass it in the constructor.
119
+ 2. The service uses GEN2 as the default model version.
120
+ 3. Speech properties can be set at the constructor level and overridden per request.
121
+ 4. The service supports extensive audio customization through properties like format, sample rate, and channel type.
122
+ 5. Speech-to-text functionality is not supported.