@mastra/core 1.6.0 → 1.7.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 (453) hide show
  1. package/CHANGELOG.md +236 -0
  2. package/dist/agent/agent.d.ts +6 -0
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/index.cjs +8 -8
  5. package/dist/agent/index.js +1 -1
  6. package/dist/{chunk-VJWRJWSC.cjs → chunk-2X66GWF5.cjs} +94 -16
  7. package/dist/chunk-2X66GWF5.cjs.map +1 -0
  8. package/dist/{chunk-YM6245EM.js → chunk-6OXW5E2O.js} +3 -3
  9. package/dist/{chunk-YM6245EM.js.map → chunk-6OXW5E2O.js.map} +1 -1
  10. package/dist/{chunk-XWZAKKFT.cjs → chunk-6QBN6MZY.cjs} +14 -14
  11. package/dist/{chunk-XWZAKKFT.cjs.map → chunk-6QBN6MZY.cjs.map} +1 -1
  12. package/dist/{chunk-AYHSPIT6.cjs → chunk-7UAJ6LMR.cjs} +820 -259
  13. package/dist/chunk-7UAJ6LMR.cjs.map +1 -0
  14. package/dist/{chunk-RZNHRIM7.cjs → chunk-A72NTLFT.cjs} +5 -5
  15. package/dist/{chunk-RZNHRIM7.cjs.map → chunk-A72NTLFT.cjs.map} +1 -1
  16. package/dist/{chunk-EEU5NHHU.js → chunk-DFCRXDVK.js} +3 -3
  17. package/dist/{chunk-EEU5NHHU.js.map → chunk-DFCRXDVK.js.map} +1 -1
  18. package/dist/{chunk-5K45E5VE.js → chunk-GPJGPARM.js} +3 -2
  19. package/dist/chunk-GPJGPARM.js.map +1 -0
  20. package/dist/{chunk-LNKS4TJ6.cjs → chunk-HB6T4554.cjs} +8 -7
  21. package/dist/chunk-HB6T4554.cjs.map +1 -0
  22. package/dist/{chunk-DGS2KGDI.js → chunk-KUXNBWN7.js} +6 -5
  23. package/dist/chunk-KUXNBWN7.js.map +1 -0
  24. package/dist/{chunk-IHDE4CJV.js → chunk-QSHV7GPT.js} +89 -12
  25. package/dist/chunk-QSHV7GPT.js.map +1 -0
  26. package/dist/{chunk-3U3XFMGJ.cjs → chunk-QTAS3HND.cjs} +13 -8
  27. package/dist/chunk-QTAS3HND.cjs.map +1 -0
  28. package/dist/{chunk-RHKNKJNM.js → chunk-QWTB53GS.js} +4 -4
  29. package/dist/{chunk-RHKNKJNM.js.map → chunk-QWTB53GS.js.map} +1 -1
  30. package/dist/{chunk-4WG5K4CK.js → chunk-R4N65TLG.js} +7 -7
  31. package/dist/{chunk-4WG5K4CK.js.map → chunk-R4N65TLG.js.map} +1 -1
  32. package/dist/{chunk-5VQPSWPG.cjs → chunk-RABITNTG.cjs} +48 -48
  33. package/dist/{chunk-5VQPSWPG.cjs.map → chunk-RABITNTG.cjs.map} +1 -1
  34. package/dist/{chunk-TVPANHLE.cjs → chunk-SBOHDNIZ.cjs} +3 -2
  35. package/dist/chunk-SBOHDNIZ.cjs.map +1 -0
  36. package/dist/{chunk-MWGGSA5Q.js → chunk-T6GAM3SQ.js} +10 -5
  37. package/dist/chunk-T6GAM3SQ.js.map +1 -0
  38. package/dist/{chunk-TL2TTA4X.cjs → chunk-YQG7NBPR.cjs} +9 -9
  39. package/dist/{chunk-TL2TTA4X.cjs.map → chunk-YQG7NBPR.cjs.map} +1 -1
  40. package/dist/{chunk-XB3DA67Q.js → chunk-ZSBM2SVU.js} +818 -259
  41. package/dist/chunk-ZSBM2SVU.js.map +1 -0
  42. package/dist/datasets/experiment/scorer.d.ts.map +1 -1
  43. package/dist/datasets/index.cjs +17 -17
  44. package/dist/datasets/index.js +2 -2
  45. package/dist/evals/index.cjs +20 -20
  46. package/dist/evals/index.js +3 -3
  47. package/dist/evals/scoreTraces/index.cjs +7 -6
  48. package/dist/evals/scoreTraces/index.cjs.map +1 -1
  49. package/dist/evals/scoreTraces/index.js +4 -3
  50. package/dist/evals/scoreTraces/index.js.map +1 -1
  51. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
  52. package/dist/harness/harness.d.ts +21 -1
  53. package/dist/harness/harness.d.ts.map +1 -1
  54. package/dist/harness/index.cjs +422 -5
  55. package/dist/harness/index.cjs.map +1 -1
  56. package/dist/harness/index.d.ts +2 -1
  57. package/dist/harness/index.d.ts.map +1 -1
  58. package/dist/harness/index.js +418 -3
  59. package/dist/harness/index.js.map +1 -1
  60. package/dist/harness/types.d.ts +151 -0
  61. package/dist/harness/types.d.ts.map +1 -1
  62. package/dist/index.cjs +2 -2
  63. package/dist/index.js +1 -1
  64. package/dist/loop/index.cjs +12 -12
  65. package/dist/loop/index.js +1 -1
  66. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  67. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  68. package/dist/mastra/hooks.d.ts.map +1 -1
  69. package/dist/mastra/index.cjs +2 -2
  70. package/dist/mastra/index.js +1 -1
  71. package/dist/memory/index.cjs +14 -14
  72. package/dist/memory/index.js +1 -1
  73. package/dist/processor-provider/index.cjs +10 -10
  74. package/dist/processor-provider/index.js +1 -1
  75. package/dist/processors/index.cjs +45 -41
  76. package/dist/processors/index.js +1 -1
  77. package/dist/processors/processors/index.d.ts +1 -0
  78. package/dist/processors/processors/index.d.ts.map +1 -1
  79. package/dist/processors/processors/workspace-instructions.d.ts +50 -0
  80. package/dist/processors/processors/workspace-instructions.d.ts.map +1 -0
  81. package/dist/relevance/index.cjs +3 -3
  82. package/dist/relevance/index.js +1 -1
  83. package/dist/storage/constants.cjs +56 -56
  84. package/dist/storage/constants.d.ts.map +1 -1
  85. package/dist/storage/constants.js +1 -1
  86. package/dist/storage/index.cjs +160 -160
  87. package/dist/storage/index.js +2 -2
  88. package/dist/storage/types.d.ts +2 -0
  89. package/dist/storage/types.d.ts.map +1 -1
  90. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
  91. package/dist/stream/base/output.d.ts.map +1 -1
  92. package/dist/stream/index.cjs +8 -8
  93. package/dist/stream/index.js +1 -1
  94. package/dist/tool-loop-agent/index.cjs +4 -4
  95. package/dist/tool-loop-agent/index.js +1 -1
  96. package/dist/vector/index.cjs +7 -7
  97. package/dist/vector/index.js +1 -1
  98. package/dist/workflows/evented/index.cjs +10 -10
  99. package/dist/workflows/evented/index.js +1 -1
  100. package/dist/workflows/index.cjs +25 -25
  101. package/dist/workflows/index.js +1 -1
  102. package/dist/workspace/constants/index.d.ts +2 -0
  103. package/dist/workspace/constants/index.d.ts.map +1 -1
  104. package/dist/workspace/errors.d.ts +1 -1
  105. package/dist/workspace/errors.d.ts.map +1 -1
  106. package/dist/workspace/filesystem/composite-filesystem.d.ts +4 -1
  107. package/dist/workspace/filesystem/composite-filesystem.d.ts.map +1 -1
  108. package/dist/workspace/filesystem/file-write-lock.d.ts +35 -0
  109. package/dist/workspace/filesystem/file-write-lock.d.ts.map +1 -0
  110. package/dist/workspace/filesystem/filesystem.d.ts +5 -1
  111. package/dist/workspace/filesystem/filesystem.d.ts.map +1 -1
  112. package/dist/workspace/filesystem/index.d.ts +1 -0
  113. package/dist/workspace/filesystem/index.d.ts.map +1 -1
  114. package/dist/workspace/filesystem/local-filesystem.d.ts +17 -1
  115. package/dist/workspace/filesystem/local-filesystem.d.ts.map +1 -1
  116. package/dist/workspace/index.cjs +72 -64
  117. package/dist/workspace/index.d.ts +3 -2
  118. package/dist/workspace/index.d.ts.map +1 -1
  119. package/dist/workspace/index.js +1 -1
  120. package/dist/workspace/lifecycle.d.ts +1 -9
  121. package/dist/workspace/lifecycle.d.ts.map +1 -1
  122. package/dist/workspace/sandbox/index.d.ts +2 -0
  123. package/dist/workspace/sandbox/index.d.ts.map +1 -1
  124. package/dist/workspace/sandbox/local-process-manager.d.ts +18 -0
  125. package/dist/workspace/sandbox/local-process-manager.d.ts.map +1 -0
  126. package/dist/workspace/sandbox/local-sandbox.d.ts +49 -35
  127. package/dist/workspace/sandbox/local-sandbox.d.ts.map +1 -1
  128. package/dist/workspace/sandbox/mastra-sandbox.d.ts +45 -11
  129. package/dist/workspace/sandbox/mastra-sandbox.d.ts.map +1 -1
  130. package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts +2 -3
  131. package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts.map +1 -1
  132. package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts +2 -3
  133. package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts.map +1 -1
  134. package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts +4 -5
  135. package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts.map +1 -1
  136. package/dist/workspace/sandbox/process-manager/index.d.ts +4 -0
  137. package/dist/workspace/sandbox/process-manager/index.d.ts.map +1 -0
  138. package/dist/workspace/sandbox/process-manager/process-handle.d.ts +107 -0
  139. package/dist/workspace/sandbox/process-manager/process-handle.d.ts.map +1 -0
  140. package/dist/workspace/sandbox/process-manager/process-manager.d.ts +59 -0
  141. package/dist/workspace/sandbox/process-manager/process-manager.d.ts.map +1 -0
  142. package/dist/workspace/sandbox/process-manager/types.d.ts +24 -0
  143. package/dist/workspace/sandbox/process-manager/types.d.ts.map +1 -0
  144. package/dist/workspace/sandbox/sandbox.d.ts +38 -2
  145. package/dist/workspace/sandbox/sandbox.d.ts.map +1 -1
  146. package/dist/workspace/sandbox/types.d.ts +9 -2
  147. package/dist/workspace/sandbox/types.d.ts.map +1 -1
  148. package/dist/workspace/sandbox/utils.d.ts +7 -0
  149. package/dist/workspace/sandbox/utils.d.ts.map +1 -0
  150. package/dist/workspace/tools/execute-command.d.ts +53 -2
  151. package/dist/workspace/tools/execute-command.d.ts.map +1 -1
  152. package/dist/workspace/tools/get-process-output.d.ts +6 -0
  153. package/dist/workspace/tools/get-process-output.d.ts.map +1 -0
  154. package/dist/workspace/tools/index.d.ts +4 -1
  155. package/dist/workspace/tools/index.d.ts.map +1 -1
  156. package/dist/workspace/tools/kill-process.d.ts +4 -0
  157. package/dist/workspace/tools/kill-process.d.ts.map +1 -0
  158. package/dist/workspace/tools/output-helpers.d.ts +21 -0
  159. package/dist/workspace/tools/output-helpers.d.ts.map +1 -0
  160. package/dist/workspace/tools/tools.d.ts.map +1 -1
  161. package/dist/workspace/types.d.ts +31 -0
  162. package/dist/workspace/types.d.ts.map +1 -1
  163. package/dist/workspace/utils.d.ts +11 -0
  164. package/dist/workspace/utils.d.ts.map +1 -0
  165. package/dist/workspace/workspace.d.ts +36 -0
  166. package/dist/workspace/workspace.d.ts.map +1 -1
  167. package/package.json +7 -7
  168. package/dist/chunk-3U3XFMGJ.cjs.map +0 -1
  169. package/dist/chunk-5K45E5VE.js.map +0 -1
  170. package/dist/chunk-AYHSPIT6.cjs.map +0 -1
  171. package/dist/chunk-DGS2KGDI.js.map +0 -1
  172. package/dist/chunk-IHDE4CJV.js.map +0 -1
  173. package/dist/chunk-LNKS4TJ6.cjs.map +0 -1
  174. package/dist/chunk-MWGGSA5Q.js.map +0 -1
  175. package/dist/chunk-TVPANHLE.cjs.map +0 -1
  176. package/dist/chunk-VJWRJWSC.cjs.map +0 -1
  177. package/dist/chunk-XB3DA67Q.js.map +0 -1
  178. package/dist/docs/SKILL.md +0 -301
  179. package/dist/docs/assets/SOURCE_MAP.json +0 -1413
  180. package/dist/docs/references/docs-agents-adding-voice.md +0 -353
  181. package/dist/docs/references/docs-agents-agent-approval.md +0 -377
  182. package/dist/docs/references/docs-agents-agent-memory.md +0 -212
  183. package/dist/docs/references/docs-agents-guardrails.md +0 -382
  184. package/dist/docs/references/docs-agents-network-approval.md +0 -275
  185. package/dist/docs/references/docs-agents-networks.md +0 -290
  186. package/dist/docs/references/docs-agents-overview.md +0 -309
  187. package/dist/docs/references/docs-agents-processors.md +0 -632
  188. package/dist/docs/references/docs-agents-structured-output.md +0 -271
  189. package/dist/docs/references/docs-agents-using-tools.md +0 -214
  190. package/dist/docs/references/docs-evals-custom-scorers.md +0 -519
  191. package/dist/docs/references/docs-evals-overview.md +0 -146
  192. package/dist/docs/references/docs-evals-running-in-ci.md +0 -106
  193. package/dist/docs/references/docs-mcp-overview.md +0 -370
  194. package/dist/docs/references/docs-mcp-publishing-mcp-server.md +0 -95
  195. package/dist/docs/references/docs-memory-memory-processors.md +0 -316
  196. package/dist/docs/references/docs-memory-observational-memory.md +0 -246
  197. package/dist/docs/references/docs-memory-overview.md +0 -45
  198. package/dist/docs/references/docs-memory-semantic-recall.md +0 -272
  199. package/dist/docs/references/docs-memory-storage.md +0 -261
  200. package/dist/docs/references/docs-memory-working-memory.md +0 -400
  201. package/dist/docs/references/docs-observability-datasets-overview.md +0 -188
  202. package/dist/docs/references/docs-observability-datasets-running-experiments.md +0 -266
  203. package/dist/docs/references/docs-observability-logging.md +0 -99
  204. package/dist/docs/references/docs-observability-overview.md +0 -70
  205. package/dist/docs/references/docs-observability-tracing-bridges-otel.md +0 -209
  206. package/dist/docs/references/docs-observability-tracing-exporters-arize.md +0 -274
  207. package/dist/docs/references/docs-observability-tracing-exporters-braintrust.md +0 -111
  208. package/dist/docs/references/docs-observability-tracing-exporters-cloud.md +0 -129
  209. package/dist/docs/references/docs-observability-tracing-exporters-datadog.md +0 -187
  210. package/dist/docs/references/docs-observability-tracing-exporters-default.md +0 -211
  211. package/dist/docs/references/docs-observability-tracing-exporters-laminar.md +0 -100
  212. package/dist/docs/references/docs-observability-tracing-exporters-langfuse.md +0 -217
  213. package/dist/docs/references/docs-observability-tracing-exporters-langsmith.md +0 -202
  214. package/dist/docs/references/docs-observability-tracing-exporters-otel.md +0 -479
  215. package/dist/docs/references/docs-observability-tracing-exporters-posthog.md +0 -148
  216. package/dist/docs/references/docs-observability-tracing-overview.md +0 -1114
  217. package/dist/docs/references/docs-rag-chunking-and-embedding.md +0 -183
  218. package/dist/docs/references/docs-rag-graph-rag.md +0 -215
  219. package/dist/docs/references/docs-rag-overview.md +0 -72
  220. package/dist/docs/references/docs-rag-retrieval.md +0 -521
  221. package/dist/docs/references/docs-rag-vector-databases.md +0 -648
  222. package/dist/docs/references/docs-server-auth-auth0.md +0 -222
  223. package/dist/docs/references/docs-server-auth-clerk.md +0 -132
  224. package/dist/docs/references/docs-server-auth-composite-auth.md +0 -234
  225. package/dist/docs/references/docs-server-auth-custom-auth-provider.md +0 -513
  226. package/dist/docs/references/docs-server-auth-firebase.md +0 -272
  227. package/dist/docs/references/docs-server-auth-jwt.md +0 -110
  228. package/dist/docs/references/docs-server-auth-simple-auth.md +0 -178
  229. package/dist/docs/references/docs-server-auth-supabase.md +0 -117
  230. package/dist/docs/references/docs-server-auth-workos.md +0 -190
  231. package/dist/docs/references/docs-server-custom-adapters.md +0 -374
  232. package/dist/docs/references/docs-server-custom-api-routes.md +0 -267
  233. package/dist/docs/references/docs-server-mastra-client.md +0 -243
  234. package/dist/docs/references/docs-server-mastra-server.md +0 -71
  235. package/dist/docs/references/docs-server-middleware.md +0 -228
  236. package/dist/docs/references/docs-server-request-context.md +0 -478
  237. package/dist/docs/references/docs-streaming-events.md +0 -247
  238. package/dist/docs/references/docs-streaming-tool-streaming.md +0 -178
  239. package/dist/docs/references/docs-streaming-workflow-streaming.md +0 -109
  240. package/dist/docs/references/docs-voice-overview.md +0 -979
  241. package/dist/docs/references/docs-voice-speech-to-speech.md +0 -103
  242. package/dist/docs/references/docs-voice-speech-to-text.md +0 -80
  243. package/dist/docs/references/docs-voice-text-to-speech.md +0 -84
  244. package/dist/docs/references/docs-workflows-agents-and-tools.md +0 -170
  245. package/dist/docs/references/docs-workflows-control-flow.md +0 -823
  246. package/dist/docs/references/docs-workflows-error-handling.md +0 -360
  247. package/dist/docs/references/docs-workflows-human-in-the-loop.md +0 -213
  248. package/dist/docs/references/docs-workflows-overview.md +0 -372
  249. package/dist/docs/references/docs-workflows-snapshots.md +0 -238
  250. package/dist/docs/references/docs-workflows-suspend-and-resume.md +0 -205
  251. package/dist/docs/references/docs-workflows-time-travel.md +0 -309
  252. package/dist/docs/references/docs-workflows-workflow-state.md +0 -181
  253. package/dist/docs/references/docs-workspace-filesystem.md +0 -162
  254. package/dist/docs/references/docs-workspace-overview.md +0 -239
  255. package/dist/docs/references/docs-workspace-sandbox.md +0 -63
  256. package/dist/docs/references/docs-workspace-search.md +0 -219
  257. package/dist/docs/references/docs-workspace-skills.md +0 -126
  258. package/dist/docs/references/guides-agent-frameworks-ai-sdk.md +0 -140
  259. package/dist/docs/references/reference-agents-agent.md +0 -142
  260. package/dist/docs/references/reference-agents-generate.md +0 -174
  261. package/dist/docs/references/reference-agents-generateLegacy.md +0 -176
  262. package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +0 -36
  263. package/dist/docs/references/reference-agents-getDefaultOptions.md +0 -34
  264. package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +0 -36
  265. package/dist/docs/references/reference-agents-getDescription.md +0 -21
  266. package/dist/docs/references/reference-agents-getInstructions.md +0 -34
  267. package/dist/docs/references/reference-agents-getLLM.md +0 -37
  268. package/dist/docs/references/reference-agents-getMemory.md +0 -34
  269. package/dist/docs/references/reference-agents-getModel.md +0 -34
  270. package/dist/docs/references/reference-agents-getTools.md +0 -29
  271. package/dist/docs/references/reference-agents-getVoice.md +0 -34
  272. package/dist/docs/references/reference-agents-listAgents.md +0 -35
  273. package/dist/docs/references/reference-agents-listScorers.md +0 -34
  274. package/dist/docs/references/reference-agents-listTools.md +0 -34
  275. package/dist/docs/references/reference-agents-listWorkflows.md +0 -34
  276. package/dist/docs/references/reference-agents-network.md +0 -134
  277. package/dist/docs/references/reference-ai-sdk-chat-route.md +0 -82
  278. package/dist/docs/references/reference-ai-sdk-network-route.md +0 -74
  279. package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +0 -232
  280. package/dist/docs/references/reference-ai-sdk-with-mastra.md +0 -59
  281. package/dist/docs/references/reference-ai-sdk-workflow-route.md +0 -79
  282. package/dist/docs/references/reference-auth-auth0.md +0 -73
  283. package/dist/docs/references/reference-auth-clerk.md +0 -36
  284. package/dist/docs/references/reference-auth-firebase.md +0 -80
  285. package/dist/docs/references/reference-auth-jwt.md +0 -26
  286. package/dist/docs/references/reference-auth-supabase.md +0 -33
  287. package/dist/docs/references/reference-auth-workos.md +0 -84
  288. package/dist/docs/references/reference-client-js-agents.md +0 -438
  289. package/dist/docs/references/reference-configuration.md +0 -749
  290. package/dist/docs/references/reference-core-addGateway.md +0 -42
  291. package/dist/docs/references/reference-core-getAgent.md +0 -21
  292. package/dist/docs/references/reference-core-getAgentById.md +0 -21
  293. package/dist/docs/references/reference-core-getDeployer.md +0 -22
  294. package/dist/docs/references/reference-core-getGateway.md +0 -38
  295. package/dist/docs/references/reference-core-getGatewayById.md +0 -41
  296. package/dist/docs/references/reference-core-getLogger.md +0 -22
  297. package/dist/docs/references/reference-core-getMCPServer.md +0 -45
  298. package/dist/docs/references/reference-core-getMCPServerById.md +0 -53
  299. package/dist/docs/references/reference-core-getMemory.md +0 -50
  300. package/dist/docs/references/reference-core-getScorer.md +0 -54
  301. package/dist/docs/references/reference-core-getScorerById.md +0 -54
  302. package/dist/docs/references/reference-core-getServer.md +0 -22
  303. package/dist/docs/references/reference-core-getStorage.md +0 -22
  304. package/dist/docs/references/reference-core-getStoredAgentById.md +0 -89
  305. package/dist/docs/references/reference-core-getTelemetry.md +0 -22
  306. package/dist/docs/references/reference-core-getVector.md +0 -22
  307. package/dist/docs/references/reference-core-getWorkflow.md +0 -40
  308. package/dist/docs/references/reference-core-listAgents.md +0 -21
  309. package/dist/docs/references/reference-core-listGateways.md +0 -40
  310. package/dist/docs/references/reference-core-listLogs.md +0 -38
  311. package/dist/docs/references/reference-core-listLogsByRunId.md +0 -36
  312. package/dist/docs/references/reference-core-listMCPServers.md +0 -51
  313. package/dist/docs/references/reference-core-listMemory.md +0 -56
  314. package/dist/docs/references/reference-core-listScorers.md +0 -29
  315. package/dist/docs/references/reference-core-listStoredAgents.md +0 -93
  316. package/dist/docs/references/reference-core-listVectors.md +0 -22
  317. package/dist/docs/references/reference-core-listWorkflows.md +0 -21
  318. package/dist/docs/references/reference-core-mastra-class.md +0 -66
  319. package/dist/docs/references/reference-core-mastra-model-gateway.md +0 -153
  320. package/dist/docs/references/reference-core-setLogger.md +0 -26
  321. package/dist/docs/references/reference-core-setStorage.md +0 -27
  322. package/dist/docs/references/reference-datasets-addItem.md +0 -35
  323. package/dist/docs/references/reference-datasets-addItems.md +0 -33
  324. package/dist/docs/references/reference-datasets-compareExperiments.md +0 -48
  325. package/dist/docs/references/reference-datasets-create.md +0 -49
  326. package/dist/docs/references/reference-datasets-dataset.md +0 -78
  327. package/dist/docs/references/reference-datasets-datasets-manager.md +0 -84
  328. package/dist/docs/references/reference-datasets-delete.md +0 -23
  329. package/dist/docs/references/reference-datasets-deleteExperiment.md +0 -25
  330. package/dist/docs/references/reference-datasets-deleteItem.md +0 -25
  331. package/dist/docs/references/reference-datasets-deleteItems.md +0 -27
  332. package/dist/docs/references/reference-datasets-get.md +0 -29
  333. package/dist/docs/references/reference-datasets-getDetails.md +0 -45
  334. package/dist/docs/references/reference-datasets-getExperiment.md +0 -28
  335. package/dist/docs/references/reference-datasets-getItem.md +0 -31
  336. package/dist/docs/references/reference-datasets-getItemHistory.md +0 -29
  337. package/dist/docs/references/reference-datasets-list.md +0 -29
  338. package/dist/docs/references/reference-datasets-listExperimentResults.md +0 -37
  339. package/dist/docs/references/reference-datasets-listExperiments.md +0 -31
  340. package/dist/docs/references/reference-datasets-listItems.md +0 -44
  341. package/dist/docs/references/reference-datasets-listVersions.md +0 -31
  342. package/dist/docs/references/reference-datasets-startExperiment.md +0 -60
  343. package/dist/docs/references/reference-datasets-startExperimentAsync.md +0 -41
  344. package/dist/docs/references/reference-datasets-update.md +0 -46
  345. package/dist/docs/references/reference-datasets-updateItem.md +0 -36
  346. package/dist/docs/references/reference-evals-answer-relevancy.md +0 -105
  347. package/dist/docs/references/reference-evals-answer-similarity.md +0 -99
  348. package/dist/docs/references/reference-evals-bias.md +0 -120
  349. package/dist/docs/references/reference-evals-completeness.md +0 -137
  350. package/dist/docs/references/reference-evals-content-similarity.md +0 -101
  351. package/dist/docs/references/reference-evals-context-precision.md +0 -196
  352. package/dist/docs/references/reference-evals-create-scorer.md +0 -270
  353. package/dist/docs/references/reference-evals-faithfulness.md +0 -114
  354. package/dist/docs/references/reference-evals-hallucination.md +0 -220
  355. package/dist/docs/references/reference-evals-keyword-coverage.md +0 -128
  356. package/dist/docs/references/reference-evals-mastra-scorer.md +0 -123
  357. package/dist/docs/references/reference-evals-run-evals.md +0 -138
  358. package/dist/docs/references/reference-evals-scorer-utils.md +0 -330
  359. package/dist/docs/references/reference-evals-textual-difference.md +0 -113
  360. package/dist/docs/references/reference-evals-tone-consistency.md +0 -119
  361. package/dist/docs/references/reference-evals-toxicity.md +0 -123
  362. package/dist/docs/references/reference-harness-harness-class.md +0 -645
  363. package/dist/docs/references/reference-logging-pino-logger.md +0 -117
  364. package/dist/docs/references/reference-memory-deleteMessages.md +0 -40
  365. package/dist/docs/references/reference-memory-memory-class.md +0 -147
  366. package/dist/docs/references/reference-memory-observational-memory.md +0 -565
  367. package/dist/docs/references/reference-observability-tracing-bridges-otel.md +0 -131
  368. package/dist/docs/references/reference-observability-tracing-configuration.md +0 -178
  369. package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +0 -138
  370. package/dist/docs/references/reference-observability-tracing-exporters-datadog.md +0 -116
  371. package/dist/docs/references/reference-observability-tracing-instances.md +0 -109
  372. package/dist/docs/references/reference-observability-tracing-interfaces.md +0 -749
  373. package/dist/docs/references/reference-observability-tracing-processors-sensitive-data-filter.md +0 -144
  374. package/dist/docs/references/reference-observability-tracing-spans.md +0 -224
  375. package/dist/docs/references/reference-processors-batch-parts-processor.md +0 -61
  376. package/dist/docs/references/reference-processors-language-detector.md +0 -81
  377. package/dist/docs/references/reference-processors-message-history-processor.md +0 -85
  378. package/dist/docs/references/reference-processors-moderation-processor.md +0 -104
  379. package/dist/docs/references/reference-processors-pii-detector.md +0 -107
  380. package/dist/docs/references/reference-processors-processor-interface.md +0 -525
  381. package/dist/docs/references/reference-processors-prompt-injection-detector.md +0 -71
  382. package/dist/docs/references/reference-processors-semantic-recall-processor.md +0 -123
  383. package/dist/docs/references/reference-processors-system-prompt-scrubber.md +0 -80
  384. package/dist/docs/references/reference-processors-token-limiter-processor.md +0 -113
  385. package/dist/docs/references/reference-processors-tool-call-filter.md +0 -85
  386. package/dist/docs/references/reference-processors-tool-search-processor.md +0 -113
  387. package/dist/docs/references/reference-processors-unicode-normalizer.md +0 -62
  388. package/dist/docs/references/reference-processors-working-memory-processor.md +0 -154
  389. package/dist/docs/references/reference-rag-database-config.md +0 -264
  390. package/dist/docs/references/reference-rag-embeddings.md +0 -92
  391. package/dist/docs/references/reference-server-mastra-server.md +0 -298
  392. package/dist/docs/references/reference-server-register-api-route.md +0 -249
  393. package/dist/docs/references/reference-storage-cloudflare-d1.md +0 -218
  394. package/dist/docs/references/reference-storage-composite.md +0 -235
  395. package/dist/docs/references/reference-storage-lance.md +0 -131
  396. package/dist/docs/references/reference-storage-libsql.md +0 -135
  397. package/dist/docs/references/reference-storage-mongodb.md +0 -262
  398. package/dist/docs/references/reference-storage-mssql.md +0 -155
  399. package/dist/docs/references/reference-storage-overview.md +0 -121
  400. package/dist/docs/references/reference-storage-postgresql.md +0 -529
  401. package/dist/docs/references/reference-storage-upstash.md +0 -160
  402. package/dist/docs/references/reference-streaming-ChunkType.md +0 -292
  403. package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +0 -182
  404. package/dist/docs/references/reference-streaming-agents-streamLegacy.md +0 -142
  405. package/dist/docs/references/reference-streaming-workflows-observeStream.md +0 -42
  406. package/dist/docs/references/reference-streaming-workflows-resumeStream.md +0 -61
  407. package/dist/docs/references/reference-streaming-workflows-stream.md +0 -88
  408. package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +0 -142
  409. package/dist/docs/references/reference-templates-overview.md +0 -194
  410. package/dist/docs/references/reference-tools-create-tool.md +0 -237
  411. package/dist/docs/references/reference-tools-graph-rag-tool.md +0 -185
  412. package/dist/docs/references/reference-tools-mcp-client.md +0 -962
  413. package/dist/docs/references/reference-tools-mcp-server.md +0 -1275
  414. package/dist/docs/references/reference-tools-vector-query-tool.md +0 -459
  415. package/dist/docs/references/reference-vectors-libsql.md +0 -305
  416. package/dist/docs/references/reference-vectors-mongodb.md +0 -295
  417. package/dist/docs/references/reference-vectors-pg.md +0 -408
  418. package/dist/docs/references/reference-vectors-upstash.md +0 -294
  419. package/dist/docs/references/reference-voice-composite-voice.md +0 -121
  420. package/dist/docs/references/reference-voice-mastra-voice.md +0 -313
  421. package/dist/docs/references/reference-voice-voice.addInstructions.md +0 -56
  422. package/dist/docs/references/reference-voice-voice.addTools.md +0 -67
  423. package/dist/docs/references/reference-voice-voice.connect.md +0 -94
  424. package/dist/docs/references/reference-voice-voice.events.md +0 -37
  425. package/dist/docs/references/reference-voice-voice.listen.md +0 -164
  426. package/dist/docs/references/reference-voice-voice.on.md +0 -111
  427. package/dist/docs/references/reference-voice-voice.speak.md +0 -157
  428. package/dist/docs/references/reference-workflows-run-methods-cancel.md +0 -86
  429. package/dist/docs/references/reference-workflows-run-methods-restart.md +0 -33
  430. package/dist/docs/references/reference-workflows-run-methods-resume.md +0 -59
  431. package/dist/docs/references/reference-workflows-run-methods-start.md +0 -58
  432. package/dist/docs/references/reference-workflows-run-methods-startAsync.md +0 -67
  433. package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +0 -142
  434. package/dist/docs/references/reference-workflows-run.md +0 -59
  435. package/dist/docs/references/reference-workflows-step.md +0 -119
  436. package/dist/docs/references/reference-workflows-workflow-methods-branch.md +0 -25
  437. package/dist/docs/references/reference-workflows-workflow-methods-commit.md +0 -17
  438. package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +0 -63
  439. package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +0 -25
  440. package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +0 -25
  441. package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +0 -118
  442. package/dist/docs/references/reference-workflows-workflow-methods-map.md +0 -93
  443. package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +0 -21
  444. package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +0 -35
  445. package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +0 -35
  446. package/dist/docs/references/reference-workflows-workflow-methods-then.md +0 -21
  447. package/dist/docs/references/reference-workflows-workflow.md +0 -157
  448. package/dist/docs/references/reference-workspace-filesystem.md +0 -202
  449. package/dist/docs/references/reference-workspace-local-filesystem.md +0 -327
  450. package/dist/docs/references/reference-workspace-local-sandbox.md +0 -285
  451. package/dist/docs/references/reference-workspace-sandbox.md +0 -81
  452. package/dist/docs/references/reference-workspace-workspace-class.md +0 -226
  453. package/dist/docs/references/reference.md +0 -276
@@ -1,979 +0,0 @@
1
- # Voice in Mastra
2
-
3
- Mastra's Voice system provides a unified interface for voice interactions, enabling text-to-speech (TTS), speech-to-text (STT), and real-time speech-to-speech (STS) capabilities in your applications.
4
-
5
- ## Adding Voice to Agents
6
-
7
- To learn how to integrate voice capabilities into your agents, check out the [Adding Voice to Agents](https://mastra.ai/docs/agents/adding-voice) documentation. This section covers how to use both single and multiple voice providers, as well as real-time interactions.
8
-
9
- ```typescript
10
- import { Agent } from "@mastra/core/agent";
11
- import { OpenAIVoice } from "@mastra/voice-openai";
12
-
13
- // Initialize OpenAI voice for TTS
14
-
15
- const voiceAgent = new Agent({
16
- id: "voice-agent",
17
- name: "Voice Agent",
18
- instructions:
19
- "You are a voice assistant that can help users with their tasks.",
20
- model: "openai/gpt-5.1",
21
- voice: new OpenAIVoice(),
22
- });
23
- ```
24
-
25
- You can then use the following voice capabilities:
26
-
27
- ### Text to Speech (TTS)
28
-
29
- Turn your agent's responses into natural-sounding speech using Mastra's TTS capabilities. Choose from multiple providers like OpenAI, ElevenLabs, and more.
30
-
31
- For detailed configuration options and advanced features, check out our [Text-to-Speech guide](https://mastra.ai/docs/voice/text-to-speech).
32
-
33
- **OpenAI**:
34
-
35
- ```typescript
36
- import { Agent } from "@mastra/core/agent";
37
- import { OpenAIVoice } from "@mastra/voice-openai";
38
- import { playAudio } from "@mastra/node-audio";
39
-
40
- const voiceAgent = new Agent({
41
- id: "voice-agent",
42
- name: "Voice Agent",
43
- instructions:
44
- "You are a voice assistant that can help users with their tasks.",
45
- model: "openai/gpt-5.1",
46
- voice: new OpenAIVoice(),
47
- });
48
-
49
- const { text } = await voiceAgent.generate("What color is the sky?");
50
-
51
- // Convert text to speech to an Audio Stream
52
- const audioStream = await voiceAgent.voice.speak(text, {
53
- speaker: "default", // Optional: specify a speaker
54
- responseFormat: "wav", // Optional: specify a response format
55
- });
56
-
57
- playAudio(audioStream);
58
- ```
59
-
60
- Visit the [OpenAI Voice Reference](https://mastra.ai/reference/voice/openai) for more information on the OpenAI voice provider.
61
-
62
- **Azure**:
63
-
64
- ```typescript
65
- import { Agent } from "@mastra/core/agent";
66
- import { AzureVoice } from "@mastra/voice-azure";
67
- import { playAudio } from "@mastra/node-audio";
68
-
69
- const voiceAgent = new Agent({
70
- id: "voice-agent",
71
- name: "Voice Agent",
72
- instructions:
73
- "You are a voice assistant that can help users with their tasks.",
74
- model: "openai/gpt-5.1",
75
- voice: new AzureVoice(),
76
- });
77
-
78
- const { text } = await voiceAgent.generate("What color is the sky?");
79
-
80
- // Convert text to speech to an Audio Stream
81
- const audioStream = await voiceAgent.voice.speak(text, {
82
- speaker: "en-US-JennyNeural", // Optional: specify a speaker
83
- });
84
-
85
- playAudio(audioStream);
86
- ```
87
-
88
- Visit the [Azure Voice Reference](https://mastra.ai/reference/voice/azure) for more information on the Azure voice provider.
89
-
90
- **ElevenLabs**:
91
-
92
- ```typescript
93
- import { Agent } from "@mastra/core/agent";
94
- import { ElevenLabsVoice } from "@mastra/voice-elevenlabs";
95
- import { playAudio } from "@mastra/node-audio";
96
-
97
- const voiceAgent = new Agent({
98
- id: "voice-agent",
99
- name: "Voice Agent",
100
- instructions:
101
- "You are a voice assistant that can help users with their tasks.",
102
- model: "openai/gpt-5.1",
103
- voice: new ElevenLabsVoice(),
104
- });
105
-
106
- const { text } = await voiceAgent.generate("What color is the sky?");
107
-
108
- // Convert text to speech to an Audio Stream
109
- const audioStream = await voiceAgent.voice.speak(text, {
110
- speaker: "default", // Optional: specify a speaker
111
- });
112
-
113
- playAudio(audioStream);
114
- ```
115
-
116
- Visit the [ElevenLabs Voice Reference](https://mastra.ai/reference/voice/elevenlabs) for more information on the ElevenLabs voice provider.
117
-
118
- **PlayAI**:
119
-
120
- ```typescript
121
- import { Agent } from "@mastra/core/agent";
122
- import { PlayAIVoice } from "@mastra/voice-playai";
123
- import { playAudio } from "@mastra/node-audio";
124
-
125
- const voiceAgent = new Agent({
126
- id: "voice-agent",
127
- name: "Voice Agent",
128
- instructions:
129
- "You are a voice assistant that can help users with their tasks.",
130
- model: "openai/gpt-5.1",
131
- voice: new PlayAIVoice(),
132
- });
133
-
134
- const { text } = await voiceAgent.generate("What color is the sky?");
135
-
136
- // Convert text to speech to an Audio Stream
137
- const audioStream = await voiceAgent.voice.speak(text, {
138
- speaker: "default", // Optional: specify a speaker
139
- });
140
-
141
- playAudio(audioStream);
142
- ```
143
-
144
- Visit the [PlayAI Voice Reference](https://mastra.ai/reference/voice/playai) for more information on the PlayAI voice provider.
145
-
146
- **Google**:
147
-
148
- ```typescript
149
- import { Agent } from "@mastra/core/agent";
150
- import { GoogleVoice } from "@mastra/voice-google";
151
- import { playAudio } from "@mastra/node-audio";
152
-
153
- const voiceAgent = new Agent({
154
- id: "voice-agent",
155
- name: "Voice Agent",
156
- instructions:
157
- "You are a voice assistant that can help users with their tasks.",
158
- model: "openai/gpt-5.1",
159
- voice: new GoogleVoice(),
160
- });
161
-
162
- const { text } = await voiceAgent.generate("What color is the sky?");
163
-
164
- // Convert text to speech to an Audio Stream
165
- const audioStream = await voiceAgent.voice.speak(text, {
166
- speaker: "en-US-Studio-O", // Optional: specify a speaker
167
- });
168
-
169
- playAudio(audioStream);
170
- ```
171
-
172
- Visit the [Google Voice Reference](https://mastra.ai/reference/voice/google) for more information on the Google voice provider.
173
-
174
- **Cloudflare**:
175
-
176
- ```typescript
177
- import { Agent } from "@mastra/core/agent";
178
- import { CloudflareVoice } from "@mastra/voice-cloudflare";
179
- import { playAudio } from "@mastra/node-audio";
180
-
181
- const voiceAgent = new Agent({
182
- id: "voice-agent",
183
- name: "Voice Agent",
184
- instructions:
185
- "You are a voice assistant that can help users with their tasks.",
186
- model: "openai/gpt-5.1",
187
- voice: new CloudflareVoice(),
188
- });
189
-
190
- const { text } = await voiceAgent.generate("What color is the sky?");
191
-
192
- // Convert text to speech to an Audio Stream
193
- const audioStream = await voiceAgent.voice.speak(text, {
194
- speaker: "default", // Optional: specify a speaker
195
- });
196
-
197
- playAudio(audioStream);
198
- ```
199
-
200
- Visit the [Cloudflare Voice Reference](https://mastra.ai/reference/voice/cloudflare) for more information on the Cloudflare voice provider.
201
-
202
- **Deepgram**:
203
-
204
- ```typescript
205
- import { Agent } from "@mastra/core/agent";
206
- import { DeepgramVoice } from "@mastra/voice-deepgram";
207
- import { playAudio } from "@mastra/node-audio";
208
-
209
- const voiceAgent = new Agent({
210
- id: "voice-agent",
211
- name: "Voice Agent",
212
- instructions:
213
- "You are a voice assistant that can help users with their tasks.",
214
- model: "openai/gpt-5.1",
215
- voice: new DeepgramVoice(),
216
- });
217
-
218
- const { text } = await voiceAgent.generate("What color is the sky?");
219
-
220
- // Convert text to speech to an Audio Stream
221
- const audioStream = await voiceAgent.voice.speak(text, {
222
- speaker: "aura-english-us", // Optional: specify a speaker
223
- });
224
-
225
- playAudio(audioStream);
226
- ```
227
-
228
- Visit the [Deepgram Voice Reference](https://mastra.ai/reference/voice/deepgram) for more information on the Deepgram voice provider.
229
-
230
- **Speechify**:
231
-
232
- ```typescript
233
- import { Agent } from "@mastra/core/agent";
234
- import { SpeechifyVoice } from "@mastra/voice-speechify";
235
- import { playAudio } from "@mastra/node-audio";
236
-
237
- const voiceAgent = new Agent({
238
- id: "voice-agent",
239
- name: "Voice Agent",
240
- instructions:
241
- "You are a voice assistant that can help users with their tasks.",
242
- model: "openai/gpt-5.1",
243
- voice: new SpeechifyVoice(),
244
- });
245
-
246
- const { text } = await voiceAgent.generate("What color is the sky?");
247
-
248
- // Convert text to speech to an Audio Stream
249
- const audioStream = await voiceAgent.voice.speak(text, {
250
- speaker: "matthew", // Optional: specify a speaker
251
- });
252
-
253
- playAudio(audioStream);
254
- ```
255
-
256
- Visit the [Speechify Voice Reference](https://mastra.ai/reference/voice/speechify) for more information on the Speechify voice provider.
257
-
258
- **Sarvam**:
259
-
260
- ```typescript
261
- import { Agent } from "@mastra/core/agent";
262
- import { SarvamVoice } from "@mastra/voice-sarvam";
263
- import { playAudio } from "@mastra/node-audio";
264
-
265
- const voiceAgent = new Agent({
266
- id: "voice-agent",
267
- name: "Voice Agent",
268
- instructions:
269
- "You are a voice assistant that can help users with their tasks.",
270
- model: "openai/gpt-5.1",
271
- voice: new SarvamVoice(),
272
- });
273
-
274
- const { text } = await voiceAgent.generate("What color is the sky?");
275
-
276
- // Convert text to speech to an Audio Stream
277
- const audioStream = await voiceAgent.voice.speak(text, {
278
- speaker: "default", // Optional: specify a speaker
279
- });
280
-
281
- playAudio(audioStream);
282
- ```
283
-
284
- Visit the [Sarvam Voice Reference](https://mastra.ai/reference/voice/sarvam) for more information on the Sarvam voice provider.
285
-
286
- **Murf**:
287
-
288
- ```typescript
289
- import { Agent } from "@mastra/core/agent";
290
- import { MurfVoice } from "@mastra/voice-murf";
291
- import { playAudio } from "@mastra/node-audio";
292
-
293
- const voiceAgent = new Agent({
294
- id: "voice-agent",
295
- name: "Voice Agent",
296
- instructions:
297
- "You are a voice assistant that can help users with their tasks.",
298
- model: "openai/gpt-5.1",
299
- voice: new MurfVoice(),
300
- });
301
-
302
- const { text } = await voiceAgent.generate("What color is the sky?");
303
-
304
- // Convert text to speech to an Audio Stream
305
- const audioStream = await voiceAgent.voice.speak(text, {
306
- speaker: "default", // Optional: specify a speaker
307
- });
308
-
309
- playAudio(audioStream);
310
- ```
311
-
312
- Visit the [Murf Voice Reference](https://mastra.ai/reference/voice/murf) for more information on the Murf voice provider.
313
-
314
- ### Speech to Text (STT)
315
-
316
- Transcribe spoken content using various providers like OpenAI, ElevenLabs, and more. For detailed configuration options and more, check out [Speech to Text](https://mastra.ai/docs/voice/speech-to-text).
317
-
318
- You can download a sample audio file from [here](https://github.com/mastra-ai/realtime-voice-demo/raw/refs/heads/main/how_can_i_help_you.mp3).
319
-
320
- [](https://github.com/mastra-ai/realtime-voice-demo/raw/refs/heads/main/how_can_i_help_you.mp3)
321
-
322
- **OpenAI**:
323
-
324
- ```typescript
325
- import { Agent } from "@mastra/core/agent";
326
- import { OpenAIVoice } from "@mastra/voice-openai";
327
- import { createReadStream } from "fs";
328
-
329
- const voiceAgent = new Agent({
330
- id: "voice-agent",
331
- name: "Voice Agent",
332
- instructions:
333
- "You are a voice assistant that can help users with their tasks.",
334
- model: "openai/gpt-5.1",
335
- voice: new OpenAIVoice(),
336
- });
337
-
338
- // Use an audio file from a URL
339
- const audioStream = await createReadStream("./how_can_i_help_you.mp3");
340
-
341
- // Convert audio to text
342
- const transcript = await voiceAgent.voice.listen(audioStream);
343
- console.log(`User said: ${transcript}`);
344
-
345
- // Generate a response based on the transcript
346
- const { text } = await voiceAgent.generate(transcript);
347
- ```
348
-
349
- Visit the [OpenAI Voice Reference](https://mastra.ai/reference/voice/openai) for more information on the OpenAI voice provider.
350
-
351
- **Azure**:
352
-
353
- ```typescript
354
- import { createReadStream } from "fs";
355
- import { Agent } from "@mastra/core/agent";
356
- import { AzureVoice } from "@mastra/voice-azure";
357
- import { createReadStream } from "fs";
358
-
359
- const voiceAgent = new Agent({
360
- id: "voice-agent",
361
- name: "Voice Agent",
362
- instructions:
363
- "You are a voice assistant that can help users with their tasks.",
364
- model: "openai/gpt-5.1",
365
- voice: new AzureVoice(),
366
- });
367
-
368
- // Use an audio file from a URL
369
- const audioStream = await createReadStream("./how_can_i_help_you.mp3");
370
-
371
- // Convert audio to text
372
- const transcript = await voiceAgent.voice.listen(audioStream);
373
- console.log(`User said: ${transcript}`);
374
-
375
- // Generate a response based on the transcript
376
- const { text } = await voiceAgent.generate(transcript);
377
- ```
378
-
379
- Visit the [Azure Voice Reference](https://mastra.ai/reference/voice/azure) for more information on the Azure voice provider.
380
-
381
- **ElevenLabs**:
382
-
383
- ```typescript
384
- import { Agent } from "@mastra/core/agent";
385
- import { ElevenLabsVoice } from "@mastra/voice-elevenlabs";
386
- import { createReadStream } from "fs";
387
-
388
- const voiceAgent = new Agent({
389
- id: "voice-agent",
390
- name: "Voice Agent",
391
- instructions:
392
- "You are a voice assistant that can help users with their tasks.",
393
- model: "openai/gpt-5.1",
394
- voice: new ElevenLabsVoice(),
395
- });
396
-
397
- // Use an audio file from a URL
398
- const audioStream = await createReadStream("./how_can_i_help_you.mp3");
399
-
400
- // Convert audio to text
401
- const transcript = await voiceAgent.voice.listen(audioStream);
402
- console.log(`User said: ${transcript}`);
403
-
404
- // Generate a response based on the transcript
405
- const { text } = await voiceAgent.generate(transcript);
406
- ```
407
-
408
- Visit the [ElevenLabs Voice Reference](https://mastra.ai/reference/voice/elevenlabs) for more information on the ElevenLabs voice provider.
409
-
410
- **Google**:
411
-
412
- ```typescript
413
- import { Agent } from "@mastra/core/agent";
414
- import { GoogleVoice } from "@mastra/voice-google";
415
- import { createReadStream } from "fs";
416
-
417
- const voiceAgent = new Agent({
418
- id: "voice-agent",
419
- name: "Voice Agent",
420
- instructions:
421
- "You are a voice assistant that can help users with their tasks.",
422
- model: "openai/gpt-5.1",
423
- voice: new GoogleVoice(),
424
- });
425
-
426
- // Use an audio file from a URL
427
- const audioStream = await createReadStream("./how_can_i_help_you.mp3");
428
-
429
- // Convert audio to text
430
- const transcript = await voiceAgent.voice.listen(audioStream);
431
- console.log(`User said: ${transcript}`);
432
-
433
- // Generate a response based on the transcript
434
- const { text } = await voiceAgent.generate(transcript);
435
- ```
436
-
437
- Visit the [Google Voice Reference](https://mastra.ai/reference/voice/google) for more information on the Google voice provider.
438
-
439
- **Cloudflare**:
440
-
441
- ```typescript
442
- import { Agent } from "@mastra/core/agent";
443
- import { CloudflareVoice } from "@mastra/voice-cloudflare";
444
- import { createReadStream } from "fs";
445
-
446
- const voiceAgent = new Agent({
447
- id: "voice-agent",
448
- name: "Voice Agent",
449
- instructions:
450
- "You are a voice assistant that can help users with their tasks.",
451
- model: "openai/gpt-5.1",
452
- voice: new CloudflareVoice(),
453
- });
454
-
455
- // Use an audio file from a URL
456
- const audioStream = await createReadStream("./how_can_i_help_you.mp3");
457
-
458
- // Convert audio to text
459
- const transcript = await voiceAgent.voice.listen(audioStream);
460
- console.log(`User said: ${transcript}`);
461
-
462
- // Generate a response based on the transcript
463
- const { text } = await voiceAgent.generate(transcript);
464
- ```
465
-
466
- Visit the [Cloudflare Voice Reference](https://mastra.ai/reference/voice/cloudflare) for more information on the Cloudflare voice provider.
467
-
468
- **Deepgram**:
469
-
470
- ```typescript
471
- import { Agent } from "@mastra/core/agent";
472
- import { DeepgramVoice } from "@mastra/voice-deepgram";
473
- import { createReadStream } from "fs";
474
-
475
- const voiceAgent = new Agent({
476
- id: "voice-agent",
477
- name: "Voice Agent",
478
- instructions:
479
- "You are a voice assistant that can help users with their tasks.",
480
- model: "openai/gpt-5.1",
481
- voice: new DeepgramVoice(),
482
- });
483
-
484
- // Use an audio file from a URL
485
- const audioStream = await createReadStream("./how_can_i_help_you.mp3");
486
-
487
- // Convert audio to text
488
- const transcript = await voiceAgent.voice.listen(audioStream);
489
- console.log(`User said: ${transcript}`);
490
-
491
- // Generate a response based on the transcript
492
- const { text } = await voiceAgent.generate(transcript);
493
- ```
494
-
495
- Visit the [Deepgram Voice Reference](https://mastra.ai/reference/voice/deepgram) for more information on the Deepgram voice provider.
496
-
497
- **Sarvam**:
498
-
499
- ```typescript
500
- import { Agent } from "@mastra/core/agent";
501
- import { SarvamVoice } from "@mastra/voice-sarvam";
502
- import { createReadStream } from "fs";
503
-
504
- const voiceAgent = new Agent({
505
- id: "voice-agent",
506
- name: "Voice Agent",
507
- instructions:
508
- "You are a voice assistant that can help users with their tasks.",
509
- model: "openai/gpt-5.1",
510
- voice: new SarvamVoice(),
511
- });
512
-
513
- // Use an audio file from a URL
514
- const audioStream = await createReadStream("./how_can_i_help_you.mp3");
515
-
516
- // Convert audio to text
517
- const transcript = await voiceAgent.voice.listen(audioStream);
518
- console.log(`User said: ${transcript}`);
519
-
520
- // Generate a response based on the transcript
521
- const { text } = await voiceAgent.generate(transcript);
522
- ```
523
-
524
- Visit the [Sarvam Voice Reference](https://mastra.ai/reference/voice/sarvam) for more information on the Sarvam voice provider.
525
-
526
- ### Speech to Speech (STS)
527
-
528
- Create conversational experiences with speech-to-speech capabilities. The unified API enables real-time voice interactions between users and AI agents. For detailed configuration options and advanced features, check out [Speech to Speech](https://mastra.ai/docs/voice/speech-to-speech).
529
-
530
- **OpenAI**:
531
-
532
- ```typescript
533
- import { Agent } from "@mastra/core/agent";
534
- import { playAudio, getMicrophoneStream } from "@mastra/node-audio";
535
- import { OpenAIRealtimeVoice } from "@mastra/voice-openai-realtime";
536
-
537
- const voiceAgent = new Agent({
538
- id: "voice-agent",
539
- name: "Voice Agent",
540
- instructions:
541
- "You are a voice assistant that can help users with their tasks.",
542
- model: "openai/gpt-5.1",
543
- voice: new OpenAIRealtimeVoice(),
544
- });
545
-
546
- // Listen for agent audio responses
547
- voiceAgent.voice.on("speaker", ({ audio }) => {
548
- playAudio(audio);
549
- });
550
-
551
- // Initiate the conversation
552
- await voiceAgent.voice.speak("How can I help you today?");
553
-
554
- // Send continuous audio from the microphone
555
- const micStream = getMicrophoneStream();
556
- await voiceAgent.voice.send(micStream);
557
- ```
558
-
559
- Visit the [OpenAI Voice Reference](https://mastra.ai/reference/voice/openai-realtime) for more information on the OpenAI voice provider.
560
-
561
- **Google**:
562
-
563
- ```typescript
564
- import { Agent } from "@mastra/core/agent";
565
- import { playAudio, getMicrophoneStream } from "@mastra/node-audio";
566
- import { GeminiLiveVoice } from "@mastra/voice-google-gemini-live";
567
-
568
- const voiceAgent = new Agent({
569
- id: "voice-agent",
570
- name: "Voice Agent",
571
- instructions:
572
- "You are a voice assistant that can help users with their tasks.",
573
- model: "openai/gpt-5.1",
574
- voice: new GeminiLiveVoice({
575
- // Live API mode
576
- apiKey: process.env.GOOGLE_API_KEY,
577
- model: "gemini-2.0-flash-exp",
578
- speaker: "Puck",
579
- debug: true,
580
- // Vertex AI alternative:
581
- // vertexAI: true,
582
- // project: 'your-gcp-project',
583
- // location: 'us-central1',
584
- // serviceAccountKeyFile: '/path/to/service-account.json',
585
- }),
586
- });
587
-
588
- // Connect before using speak/send
589
- await voiceAgent.voice.connect();
590
-
591
- // Listen for agent audio responses
592
- voiceAgent.voice.on("speaker", ({ audio }) => {
593
- playAudio(audio);
594
- });
595
-
596
- // Listen for text responses and transcriptions
597
- voiceAgent.voice.on("writing", ({ text, role }) => {
598
- console.log(`${role}: ${text}`);
599
- });
600
-
601
- // Initiate the conversation
602
- await voiceAgent.voice.speak("How can I help you today?");
603
-
604
- // Send continuous audio from the microphone
605
- const micStream = getMicrophoneStream();
606
- await voiceAgent.voice.send(micStream);
607
- ```
608
-
609
- Visit the [Google Gemini Live Reference](https://mastra.ai/reference/voice/google-gemini-live) for more information on the Google Gemini Live voice provider.
610
-
611
- ## Voice Configuration
612
-
613
- Each voice provider can be configured with different models and options. Below are the detailed configuration options for all supported providers:
614
-
615
- **OpenAI**:
616
-
617
- ```typescript
618
- // OpenAI Voice Configuration
619
- const voice = new OpenAIVoice({
620
- speechModel: {
621
- name: "gpt-3.5-turbo", // Example model name
622
- apiKey: process.env.OPENAI_API_KEY,
623
- language: "en-US", // Language code
624
- voiceType: "neural", // Type of voice model
625
- },
626
- listeningModel: {
627
- name: "whisper-1", // Example model name
628
- apiKey: process.env.OPENAI_API_KEY,
629
- language: "en-US", // Language code
630
- format: "wav", // Audio format
631
- },
632
- speaker: "alloy", // Example speaker name
633
- });
634
- ```
635
-
636
- Visit the [OpenAI Voice Reference](https://mastra.ai/reference/voice/openai) for more information on the OpenAI voice provider.
637
-
638
- **Azure**:
639
-
640
- ```typescript
641
- // Azure Voice Configuration
642
- const voice = new AzureVoice({
643
- speechModel: {
644
- name: "en-US-JennyNeural", // Example model name
645
- apiKey: process.env.AZURE_SPEECH_KEY,
646
- region: process.env.AZURE_SPEECH_REGION,
647
- language: "en-US", // Language code
648
- style: "cheerful", // Voice style
649
- pitch: "+0Hz", // Pitch adjustment
650
- rate: "1.0", // Speech rate
651
- },
652
- listeningModel: {
653
- name: "en-US", // Example model name
654
- apiKey: process.env.AZURE_SPEECH_KEY,
655
- region: process.env.AZURE_SPEECH_REGION,
656
- format: "simple", // Output format
657
- },
658
- });
659
- ```
660
-
661
- Visit the [Azure Voice Reference](https://mastra.ai/reference/voice/azure) for more information on the Azure voice provider.
662
-
663
- **ElevenLabs**:
664
-
665
- ```typescript
666
- // ElevenLabs Voice Configuration
667
- const voice = new ElevenLabsVoice({
668
- speechModel: {
669
- voiceId: "your-voice-id", // Example voice ID
670
- model: "eleven_multilingual_v2", // Example model name
671
- apiKey: process.env.ELEVENLABS_API_KEY,
672
- language: "en", // Language code
673
- emotion: "neutral", // Emotion setting
674
- },
675
- // ElevenLabs may not have a separate listening model
676
- });
677
- ```
678
-
679
- Visit the [ElevenLabs Voice Reference](https://mastra.ai/reference/voice/elevenlabs) for more information on the ElevenLabs voice provider.
680
-
681
- **PlayAI**:
682
-
683
- ```typescript
684
- // PlayAI Voice Configuration
685
- const voice = new PlayAIVoice({
686
- speechModel: {
687
- name: "playai-voice", // Example model name
688
- speaker: "emma", // Example speaker name
689
- apiKey: process.env.PLAYAI_API_KEY,
690
- language: "en-US", // Language code
691
- speed: 1.0, // Speech speed
692
- },
693
- // PlayAI may not have a separate listening model
694
- });
695
- ```
696
-
697
- Visit the [PlayAI Voice Reference](https://mastra.ai/reference/voice/playai) for more information on the PlayAI voice provider.
698
-
699
- **Google**:
700
-
701
- ```typescript
702
- // Google Voice Configuration
703
- const voice = new GoogleVoice({
704
- speechModel: {
705
- name: "en-US-Studio-O", // Example model name
706
- apiKey: process.env.GOOGLE_API_KEY,
707
- languageCode: "en-US", // Language code
708
- gender: "FEMALE", // Voice gender
709
- speakingRate: 1.0, // Speaking rate
710
- },
711
- listeningModel: {
712
- name: "en-US", // Example model name
713
- sampleRateHertz: 16000, // Sample rate
714
- },
715
- });
716
- ```
717
-
718
- Visit the [Google Voice Reference](https://mastra.ai/reference/voice/google) for more information on the Google voice provider.
719
-
720
- **Cloudflare**:
721
-
722
- ```typescript
723
- // Cloudflare Voice Configuration
724
- const voice = new CloudflareVoice({
725
- speechModel: {
726
- name: "cloudflare-voice", // Example model name
727
- accountId: process.env.CLOUDFLARE_ACCOUNT_ID,
728
- apiToken: process.env.CLOUDFLARE_API_TOKEN,
729
- language: "en-US", // Language code
730
- format: "mp3", // Audio format
731
- },
732
- // Cloudflare may not have a separate listening model
733
- });
734
- ```
735
-
736
- Visit the [Cloudflare Voice Reference](https://mastra.ai/reference/voice/cloudflare) for more information on the Cloudflare voice provider.
737
-
738
- **Deepgram**:
739
-
740
- ```typescript
741
- // Deepgram Voice Configuration
742
- const voice = new DeepgramVoice({
743
- speechModel: {
744
- name: "nova-2", // Example model name
745
- speaker: "aura-english-us", // Example speaker name
746
- apiKey: process.env.DEEPGRAM_API_KEY,
747
- language: "en-US", // Language code
748
- tone: "formal", // Tone setting
749
- },
750
- listeningModel: {
751
- name: "nova-2", // Example model name
752
- format: "flac", // Audio format
753
- },
754
- });
755
- ```
756
-
757
- Visit the [Deepgram Voice Reference](https://mastra.ai/reference/voice/deepgram) for more information on the Deepgram voice provider.
758
-
759
- **Speechify**:
760
-
761
- ```typescript
762
- // Speechify Voice Configuration
763
- const voice = new SpeechifyVoice({
764
- speechModel: {
765
- name: "speechify-voice", // Example model name
766
- speaker: "matthew", // Example speaker name
767
- apiKey: process.env.SPEECHIFY_API_KEY,
768
- language: "en-US", // Language code
769
- speed: 1.0, // Speech speed
770
- },
771
- // Speechify may not have a separate listening model
772
- });
773
- ```
774
-
775
- Visit the [Speechify Voice Reference](https://mastra.ai/reference/voice/speechify) for more information on the Speechify voice provider.
776
-
777
- **Sarvam**:
778
-
779
- ```typescript
780
- // Sarvam Voice Configuration
781
- const voice = new SarvamVoice({
782
- speechModel: {
783
- name: "sarvam-voice", // Example model name
784
- apiKey: process.env.SARVAM_API_KEY,
785
- language: "en-IN", // Language code
786
- style: "conversational", // Style setting
787
- },
788
- // Sarvam may not have a separate listening model
789
- });
790
- ```
791
-
792
- Visit the [Sarvam Voice Reference](https://mastra.ai/reference/voice/sarvam) for more information on the Sarvam voice provider.
793
-
794
- **Murf**:
795
-
796
- ```typescript
797
- // Murf Voice Configuration
798
- const voice = new MurfVoice({
799
- speechModel: {
800
- name: "murf-voice", // Example model name
801
- apiKey: process.env.MURF_API_KEY,
802
- language: "en-US", // Language code
803
- emotion: "happy", // Emotion setting
804
- },
805
- // Murf may not have a separate listening model
806
- });
807
- ```
808
-
809
- Visit the [Murf Voice Reference](https://mastra.ai/reference/voice/murf) for more information on the Murf voice provider.
810
-
811
- **OpenAI Realtime**:
812
-
813
- ```typescript
814
- // OpenAI Realtime Voice Configuration
815
- const voice = new OpenAIRealtimeVoice({
816
- speechModel: {
817
- name: "gpt-3.5-turbo", // Example model name
818
- apiKey: process.env.OPENAI_API_KEY,
819
- language: "en-US", // Language code
820
- },
821
- listeningModel: {
822
- name: "whisper-1", // Example model name
823
- apiKey: process.env.OPENAI_API_KEY,
824
- format: "ogg", // Audio format
825
- },
826
- speaker: "alloy", // Example speaker name
827
- });
828
- ```
829
-
830
- For more information on the OpenAI Realtime voice provider, refer to the [OpenAI Realtime Voice Reference](https://mastra.ai/reference/voice/openai-realtime).
831
-
832
- **Google Gemini Live**:
833
-
834
- ```typescript
835
- // Google Gemini Live Voice Configuration
836
- const voice = new GeminiLiveVoice({
837
- speechModel: {
838
- name: "gemini-2.0-flash-exp", // Example model name
839
- apiKey: process.env.GOOGLE_API_KEY,
840
- },
841
- speaker: "Puck", // Example speaker name
842
- // Google Gemini Live is a realtime bidirectional API without separate speech and listening models
843
- });
844
- ```
845
-
846
- Visit the [Google Gemini Live Reference](https://mastra.ai/reference/voice/google-gemini-live) for more information on the Google Gemini Live voice provider.
847
-
848
- **AI SDK**:
849
-
850
- ```typescript
851
- // AI SDK Voice Configuration
852
- import { CompositeVoice } from "@mastra/core/voice";
853
- import { openai } from "@ai-sdk/openai";
854
- import { elevenlabs } from "@ai-sdk/elevenlabs";
855
-
856
- // Use AI SDK models directly - no need to install separate packages
857
- const voice = new CompositeVoice({
858
- input: openai.transcription('whisper-1'), // AI SDK transcription
859
- output: elevenlabs.speech('eleven_turbo_v2'), // AI SDK speech
860
- });
861
-
862
- // Works seamlessly with your agent
863
- const voiceAgent = new Agent({
864
- id: "aisdk-voice-agent",
865
- name: "AI SDK Voice Agent",
866
- instructions: "You are a helpful assistant with voice capabilities.",
867
- model: "openai/gpt-5.1",
868
- voice,
869
- });
870
- ```
871
-
872
- ### Using Multiple Voice Providers
873
-
874
- This example demonstrates how to create and use two different voice providers in Mastra: OpenAI for speech-to-text (STT) and PlayAI for text-to-speech (TTS).
875
-
876
- Start by creating instances of the voice providers with any necessary configuration.
877
-
878
- ```typescript
879
- import { OpenAIVoice } from "@mastra/voice-openai";
880
- import { PlayAIVoice } from "@mastra/voice-playai";
881
- import { CompositeVoice } from "@mastra/core/voice";
882
- import { playAudio, getMicrophoneStream } from "@mastra/node-audio";
883
-
884
- // Initialize OpenAI voice for STT
885
- const input = new OpenAIVoice({
886
- listeningModel: {
887
- name: "whisper-1",
888
- apiKey: process.env.OPENAI_API_KEY,
889
- },
890
- });
891
-
892
- // Initialize PlayAI voice for TTS
893
- const output = new PlayAIVoice({
894
- speechModel: {
895
- name: "playai-voice",
896
- apiKey: process.env.PLAYAI_API_KEY,
897
- },
898
- });
899
-
900
- // Combine the providers using CompositeVoice
901
- const voice = new CompositeVoice({
902
- input,
903
- output,
904
- });
905
-
906
- // Implement voice interactions using the combined voice provider
907
- const audioStream = getMicrophoneStream(); // Assume this function gets audio input
908
- const transcript = await voice.listen(audioStream);
909
-
910
- // Log the transcribed text
911
- console.log("Transcribed text:", transcript);
912
-
913
- // Convert text to speech
914
- const responseAudio = await voice.speak(`You said: ${transcript}`, {
915
- speaker: "default", // Optional: specify a speaker,
916
- responseFormat: "wav", // Optional: specify a response format
917
- });
918
-
919
- // Play the audio response
920
- playAudio(responseAudio);
921
- ```
922
-
923
- ### Using AI SDK Model Providers
924
-
925
- You can also use AI SDK models directly with `CompositeVoice`:
926
-
927
- ```typescript
928
- import { CompositeVoice } from "@mastra/core/voice";
929
- import { openai } from "@ai-sdk/openai";
930
- import { elevenlabs } from "@ai-sdk/elevenlabs";
931
- import { playAudio, getMicrophoneStream } from "@mastra/node-audio";
932
-
933
- // Use AI SDK models directly - no provider setup needed
934
- const voice = new CompositeVoice({
935
- input: openai.transcription('whisper-1'), // AI SDK transcription
936
- output: elevenlabs.speech('eleven_turbo_v2'), // AI SDK speech
937
- });
938
-
939
- // Works the same way as Mastra providers
940
- const audioStream = getMicrophoneStream();
941
- const transcript = await voice.listen(audioStream);
942
-
943
- console.log("Transcribed text:", transcript);
944
-
945
- // Convert text to speech
946
- const responseAudio = await voice.speak(`You said: ${transcript}`, {
947
- speaker: "Rachel", // ElevenLabs voice
948
- });
949
-
950
- playAudio(responseAudio);
951
- ```
952
-
953
- You can also mix AI SDK models with Mastra providers:
954
-
955
- ```typescript
956
- import { CompositeVoice } from "@mastra/core/voice";
957
- import { PlayAIVoice } from "@mastra/voice-playai";
958
- import { groq } from "@ai-sdk/groq";
959
-
960
- const voice = new CompositeVoice({
961
- input: groq.transcription('whisper-large-v3'), // AI SDK for STT
962
- output: new PlayAIVoice(), // Mastra provider for TTS
963
- });
964
- ```
965
-
966
- For more information on the CompositeVoice, refer to the [CompositeVoice Reference](https://mastra.ai/reference/voice/composite-voice).
967
-
968
- ## More Resources
969
-
970
- - [CompositeVoice](https://mastra.ai/reference/voice/composite-voice)
971
- - [MastraVoice](https://mastra.ai/reference/voice/mastra-voice)
972
- - [OpenAI Voice](https://mastra.ai/reference/voice/openai)
973
- - [OpenAI Realtime Voice](https://mastra.ai/reference/voice/openai-realtime)
974
- - [Azure Voice](https://mastra.ai/reference/voice/azure)
975
- - [Google Voice](https://mastra.ai/reference/voice/google)
976
- - [Google Gemini Live Voice](https://mastra.ai/reference/voice/google-gemini-live)
977
- - [Deepgram Voice](https://mastra.ai/reference/voice/deepgram)
978
- - [PlayAI Voice](https://mastra.ai/reference/voice/playai)
979
- - [Voice Examples](https://github.com/mastra-ai/voice-examples)