@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.
- package/CHANGELOG.md +236 -0
- package/dist/agent/agent.d.ts +6 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/index.cjs +8 -8
- package/dist/agent/index.js +1 -1
- package/dist/{chunk-VJWRJWSC.cjs → chunk-2X66GWF5.cjs} +94 -16
- package/dist/chunk-2X66GWF5.cjs.map +1 -0
- package/dist/{chunk-YM6245EM.js → chunk-6OXW5E2O.js} +3 -3
- package/dist/{chunk-YM6245EM.js.map → chunk-6OXW5E2O.js.map} +1 -1
- package/dist/{chunk-XWZAKKFT.cjs → chunk-6QBN6MZY.cjs} +14 -14
- package/dist/{chunk-XWZAKKFT.cjs.map → chunk-6QBN6MZY.cjs.map} +1 -1
- package/dist/{chunk-AYHSPIT6.cjs → chunk-7UAJ6LMR.cjs} +820 -259
- package/dist/chunk-7UAJ6LMR.cjs.map +1 -0
- package/dist/{chunk-RZNHRIM7.cjs → chunk-A72NTLFT.cjs} +5 -5
- package/dist/{chunk-RZNHRIM7.cjs.map → chunk-A72NTLFT.cjs.map} +1 -1
- package/dist/{chunk-EEU5NHHU.js → chunk-DFCRXDVK.js} +3 -3
- package/dist/{chunk-EEU5NHHU.js.map → chunk-DFCRXDVK.js.map} +1 -1
- package/dist/{chunk-5K45E5VE.js → chunk-GPJGPARM.js} +3 -2
- package/dist/chunk-GPJGPARM.js.map +1 -0
- package/dist/{chunk-LNKS4TJ6.cjs → chunk-HB6T4554.cjs} +8 -7
- package/dist/chunk-HB6T4554.cjs.map +1 -0
- package/dist/{chunk-DGS2KGDI.js → chunk-KUXNBWN7.js} +6 -5
- package/dist/chunk-KUXNBWN7.js.map +1 -0
- package/dist/{chunk-IHDE4CJV.js → chunk-QSHV7GPT.js} +89 -12
- package/dist/chunk-QSHV7GPT.js.map +1 -0
- package/dist/{chunk-3U3XFMGJ.cjs → chunk-QTAS3HND.cjs} +13 -8
- package/dist/chunk-QTAS3HND.cjs.map +1 -0
- package/dist/{chunk-RHKNKJNM.js → chunk-QWTB53GS.js} +4 -4
- package/dist/{chunk-RHKNKJNM.js.map → chunk-QWTB53GS.js.map} +1 -1
- package/dist/{chunk-4WG5K4CK.js → chunk-R4N65TLG.js} +7 -7
- package/dist/{chunk-4WG5K4CK.js.map → chunk-R4N65TLG.js.map} +1 -1
- package/dist/{chunk-5VQPSWPG.cjs → chunk-RABITNTG.cjs} +48 -48
- package/dist/{chunk-5VQPSWPG.cjs.map → chunk-RABITNTG.cjs.map} +1 -1
- package/dist/{chunk-TVPANHLE.cjs → chunk-SBOHDNIZ.cjs} +3 -2
- package/dist/chunk-SBOHDNIZ.cjs.map +1 -0
- package/dist/{chunk-MWGGSA5Q.js → chunk-T6GAM3SQ.js} +10 -5
- package/dist/chunk-T6GAM3SQ.js.map +1 -0
- package/dist/{chunk-TL2TTA4X.cjs → chunk-YQG7NBPR.cjs} +9 -9
- package/dist/{chunk-TL2TTA4X.cjs.map → chunk-YQG7NBPR.cjs.map} +1 -1
- package/dist/{chunk-XB3DA67Q.js → chunk-ZSBM2SVU.js} +818 -259
- package/dist/chunk-ZSBM2SVU.js.map +1 -0
- package/dist/datasets/experiment/scorer.d.ts.map +1 -1
- package/dist/datasets/index.cjs +17 -17
- package/dist/datasets/index.js +2 -2
- package/dist/evals/index.cjs +20 -20
- package/dist/evals/index.js +3 -3
- package/dist/evals/scoreTraces/index.cjs +7 -6
- package/dist/evals/scoreTraces/index.cjs.map +1 -1
- package/dist/evals/scoreTraces/index.js +4 -3
- package/dist/evals/scoreTraces/index.js.map +1 -1
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
- package/dist/harness/harness.d.ts +21 -1
- package/dist/harness/harness.d.ts.map +1 -1
- package/dist/harness/index.cjs +422 -5
- package/dist/harness/index.cjs.map +1 -1
- package/dist/harness/index.d.ts +2 -1
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +418 -3
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/types.d.ts +151 -0
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/loop/index.cjs +12 -12
- package/dist/loop/index.js +1 -1
- package/dist/loop/test-utils/tools.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/mastra/hooks.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +14 -14
- package/dist/memory/index.js +1 -1
- package/dist/processor-provider/index.cjs +10 -10
- package/dist/processor-provider/index.js +1 -1
- package/dist/processors/index.cjs +45 -41
- package/dist/processors/index.js +1 -1
- package/dist/processors/processors/index.d.ts +1 -0
- package/dist/processors/processors/index.d.ts.map +1 -1
- package/dist/processors/processors/workspace-instructions.d.ts +50 -0
- package/dist/processors/processors/workspace-instructions.d.ts.map +1 -0
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.js +1 -1
- package/dist/storage/constants.cjs +56 -56
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/constants.js +1 -1
- package/dist/storage/index.cjs +160 -160
- package/dist/storage/index.js +2 -2
- package/dist/storage/types.d.ts +2 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +8 -8
- package/dist/stream/index.js +1 -1
- package/dist/tool-loop-agent/index.cjs +4 -4
- package/dist/tool-loop-agent/index.js +1 -1
- package/dist/vector/index.cjs +7 -7
- package/dist/vector/index.js +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/index.cjs +25 -25
- package/dist/workflows/index.js +1 -1
- package/dist/workspace/constants/index.d.ts +2 -0
- package/dist/workspace/constants/index.d.ts.map +1 -1
- package/dist/workspace/errors.d.ts +1 -1
- package/dist/workspace/errors.d.ts.map +1 -1
- package/dist/workspace/filesystem/composite-filesystem.d.ts +4 -1
- package/dist/workspace/filesystem/composite-filesystem.d.ts.map +1 -1
- package/dist/workspace/filesystem/file-write-lock.d.ts +35 -0
- package/dist/workspace/filesystem/file-write-lock.d.ts.map +1 -0
- package/dist/workspace/filesystem/filesystem.d.ts +5 -1
- package/dist/workspace/filesystem/filesystem.d.ts.map +1 -1
- package/dist/workspace/filesystem/index.d.ts +1 -0
- package/dist/workspace/filesystem/index.d.ts.map +1 -1
- package/dist/workspace/filesystem/local-filesystem.d.ts +17 -1
- package/dist/workspace/filesystem/local-filesystem.d.ts.map +1 -1
- package/dist/workspace/index.cjs +72 -64
- package/dist/workspace/index.d.ts +3 -2
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +1 -1
- package/dist/workspace/lifecycle.d.ts +1 -9
- package/dist/workspace/lifecycle.d.ts.map +1 -1
- package/dist/workspace/sandbox/index.d.ts +2 -0
- package/dist/workspace/sandbox/index.d.ts.map +1 -1
- package/dist/workspace/sandbox/local-process-manager.d.ts +18 -0
- package/dist/workspace/sandbox/local-process-manager.d.ts.map +1 -0
- package/dist/workspace/sandbox/local-sandbox.d.ts +49 -35
- package/dist/workspace/sandbox/local-sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/mastra-sandbox.d.ts +45 -11
- package/dist/workspace/sandbox/mastra-sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts +2 -3
- package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts +2 -3
- package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts +4 -5
- package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts.map +1 -1
- package/dist/workspace/sandbox/process-manager/index.d.ts +4 -0
- package/dist/workspace/sandbox/process-manager/index.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/process-handle.d.ts +107 -0
- package/dist/workspace/sandbox/process-manager/process-handle.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/process-manager.d.ts +59 -0
- package/dist/workspace/sandbox/process-manager/process-manager.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/types.d.ts +24 -0
- package/dist/workspace/sandbox/process-manager/types.d.ts.map +1 -0
- package/dist/workspace/sandbox/sandbox.d.ts +38 -2
- package/dist/workspace/sandbox/sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/types.d.ts +9 -2
- package/dist/workspace/sandbox/types.d.ts.map +1 -1
- package/dist/workspace/sandbox/utils.d.ts +7 -0
- package/dist/workspace/sandbox/utils.d.ts.map +1 -0
- package/dist/workspace/tools/execute-command.d.ts +53 -2
- package/dist/workspace/tools/execute-command.d.ts.map +1 -1
- package/dist/workspace/tools/get-process-output.d.ts +6 -0
- package/dist/workspace/tools/get-process-output.d.ts.map +1 -0
- package/dist/workspace/tools/index.d.ts +4 -1
- package/dist/workspace/tools/index.d.ts.map +1 -1
- package/dist/workspace/tools/kill-process.d.ts +4 -0
- package/dist/workspace/tools/kill-process.d.ts.map +1 -0
- package/dist/workspace/tools/output-helpers.d.ts +21 -0
- package/dist/workspace/tools/output-helpers.d.ts.map +1 -0
- package/dist/workspace/tools/tools.d.ts.map +1 -1
- package/dist/workspace/types.d.ts +31 -0
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/utils.d.ts +11 -0
- package/dist/workspace/utils.d.ts.map +1 -0
- package/dist/workspace/workspace.d.ts +36 -0
- package/dist/workspace/workspace.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/chunk-3U3XFMGJ.cjs.map +0 -1
- package/dist/chunk-5K45E5VE.js.map +0 -1
- package/dist/chunk-AYHSPIT6.cjs.map +0 -1
- package/dist/chunk-DGS2KGDI.js.map +0 -1
- package/dist/chunk-IHDE4CJV.js.map +0 -1
- package/dist/chunk-LNKS4TJ6.cjs.map +0 -1
- package/dist/chunk-MWGGSA5Q.js.map +0 -1
- package/dist/chunk-TVPANHLE.cjs.map +0 -1
- package/dist/chunk-VJWRJWSC.cjs.map +0 -1
- package/dist/chunk-XB3DA67Q.js.map +0 -1
- package/dist/docs/SKILL.md +0 -301
- package/dist/docs/assets/SOURCE_MAP.json +0 -1413
- package/dist/docs/references/docs-agents-adding-voice.md +0 -353
- package/dist/docs/references/docs-agents-agent-approval.md +0 -377
- package/dist/docs/references/docs-agents-agent-memory.md +0 -212
- package/dist/docs/references/docs-agents-guardrails.md +0 -382
- package/dist/docs/references/docs-agents-network-approval.md +0 -275
- package/dist/docs/references/docs-agents-networks.md +0 -290
- package/dist/docs/references/docs-agents-overview.md +0 -309
- package/dist/docs/references/docs-agents-processors.md +0 -632
- package/dist/docs/references/docs-agents-structured-output.md +0 -271
- package/dist/docs/references/docs-agents-using-tools.md +0 -214
- package/dist/docs/references/docs-evals-custom-scorers.md +0 -519
- package/dist/docs/references/docs-evals-overview.md +0 -146
- package/dist/docs/references/docs-evals-running-in-ci.md +0 -106
- package/dist/docs/references/docs-mcp-overview.md +0 -370
- package/dist/docs/references/docs-mcp-publishing-mcp-server.md +0 -95
- package/dist/docs/references/docs-memory-memory-processors.md +0 -316
- package/dist/docs/references/docs-memory-observational-memory.md +0 -246
- package/dist/docs/references/docs-memory-overview.md +0 -45
- package/dist/docs/references/docs-memory-semantic-recall.md +0 -272
- package/dist/docs/references/docs-memory-storage.md +0 -261
- package/dist/docs/references/docs-memory-working-memory.md +0 -400
- package/dist/docs/references/docs-observability-datasets-overview.md +0 -188
- package/dist/docs/references/docs-observability-datasets-running-experiments.md +0 -266
- package/dist/docs/references/docs-observability-logging.md +0 -99
- package/dist/docs/references/docs-observability-overview.md +0 -70
- package/dist/docs/references/docs-observability-tracing-bridges-otel.md +0 -209
- package/dist/docs/references/docs-observability-tracing-exporters-arize.md +0 -274
- package/dist/docs/references/docs-observability-tracing-exporters-braintrust.md +0 -111
- package/dist/docs/references/docs-observability-tracing-exporters-cloud.md +0 -129
- package/dist/docs/references/docs-observability-tracing-exporters-datadog.md +0 -187
- package/dist/docs/references/docs-observability-tracing-exporters-default.md +0 -211
- package/dist/docs/references/docs-observability-tracing-exporters-laminar.md +0 -100
- package/dist/docs/references/docs-observability-tracing-exporters-langfuse.md +0 -217
- package/dist/docs/references/docs-observability-tracing-exporters-langsmith.md +0 -202
- package/dist/docs/references/docs-observability-tracing-exporters-otel.md +0 -479
- package/dist/docs/references/docs-observability-tracing-exporters-posthog.md +0 -148
- package/dist/docs/references/docs-observability-tracing-overview.md +0 -1114
- package/dist/docs/references/docs-rag-chunking-and-embedding.md +0 -183
- package/dist/docs/references/docs-rag-graph-rag.md +0 -215
- package/dist/docs/references/docs-rag-overview.md +0 -72
- package/dist/docs/references/docs-rag-retrieval.md +0 -521
- package/dist/docs/references/docs-rag-vector-databases.md +0 -648
- package/dist/docs/references/docs-server-auth-auth0.md +0 -222
- package/dist/docs/references/docs-server-auth-clerk.md +0 -132
- package/dist/docs/references/docs-server-auth-composite-auth.md +0 -234
- package/dist/docs/references/docs-server-auth-custom-auth-provider.md +0 -513
- package/dist/docs/references/docs-server-auth-firebase.md +0 -272
- package/dist/docs/references/docs-server-auth-jwt.md +0 -110
- package/dist/docs/references/docs-server-auth-simple-auth.md +0 -178
- package/dist/docs/references/docs-server-auth-supabase.md +0 -117
- package/dist/docs/references/docs-server-auth-workos.md +0 -190
- package/dist/docs/references/docs-server-custom-adapters.md +0 -374
- package/dist/docs/references/docs-server-custom-api-routes.md +0 -267
- package/dist/docs/references/docs-server-mastra-client.md +0 -243
- package/dist/docs/references/docs-server-mastra-server.md +0 -71
- package/dist/docs/references/docs-server-middleware.md +0 -228
- package/dist/docs/references/docs-server-request-context.md +0 -478
- package/dist/docs/references/docs-streaming-events.md +0 -247
- package/dist/docs/references/docs-streaming-tool-streaming.md +0 -178
- package/dist/docs/references/docs-streaming-workflow-streaming.md +0 -109
- package/dist/docs/references/docs-voice-overview.md +0 -979
- package/dist/docs/references/docs-voice-speech-to-speech.md +0 -103
- package/dist/docs/references/docs-voice-speech-to-text.md +0 -80
- package/dist/docs/references/docs-voice-text-to-speech.md +0 -84
- package/dist/docs/references/docs-workflows-agents-and-tools.md +0 -170
- package/dist/docs/references/docs-workflows-control-flow.md +0 -823
- package/dist/docs/references/docs-workflows-error-handling.md +0 -360
- package/dist/docs/references/docs-workflows-human-in-the-loop.md +0 -213
- package/dist/docs/references/docs-workflows-overview.md +0 -372
- package/dist/docs/references/docs-workflows-snapshots.md +0 -238
- package/dist/docs/references/docs-workflows-suspend-and-resume.md +0 -205
- package/dist/docs/references/docs-workflows-time-travel.md +0 -309
- package/dist/docs/references/docs-workflows-workflow-state.md +0 -181
- package/dist/docs/references/docs-workspace-filesystem.md +0 -162
- package/dist/docs/references/docs-workspace-overview.md +0 -239
- package/dist/docs/references/docs-workspace-sandbox.md +0 -63
- package/dist/docs/references/docs-workspace-search.md +0 -219
- package/dist/docs/references/docs-workspace-skills.md +0 -126
- package/dist/docs/references/guides-agent-frameworks-ai-sdk.md +0 -140
- package/dist/docs/references/reference-agents-agent.md +0 -142
- package/dist/docs/references/reference-agents-generate.md +0 -174
- package/dist/docs/references/reference-agents-generateLegacy.md +0 -176
- package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +0 -36
- package/dist/docs/references/reference-agents-getDefaultOptions.md +0 -34
- package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +0 -36
- package/dist/docs/references/reference-agents-getDescription.md +0 -21
- package/dist/docs/references/reference-agents-getInstructions.md +0 -34
- package/dist/docs/references/reference-agents-getLLM.md +0 -37
- package/dist/docs/references/reference-agents-getMemory.md +0 -34
- package/dist/docs/references/reference-agents-getModel.md +0 -34
- package/dist/docs/references/reference-agents-getTools.md +0 -29
- package/dist/docs/references/reference-agents-getVoice.md +0 -34
- package/dist/docs/references/reference-agents-listAgents.md +0 -35
- package/dist/docs/references/reference-agents-listScorers.md +0 -34
- package/dist/docs/references/reference-agents-listTools.md +0 -34
- package/dist/docs/references/reference-agents-listWorkflows.md +0 -34
- package/dist/docs/references/reference-agents-network.md +0 -134
- package/dist/docs/references/reference-ai-sdk-chat-route.md +0 -82
- package/dist/docs/references/reference-ai-sdk-network-route.md +0 -74
- package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +0 -232
- package/dist/docs/references/reference-ai-sdk-with-mastra.md +0 -59
- package/dist/docs/references/reference-ai-sdk-workflow-route.md +0 -79
- package/dist/docs/references/reference-auth-auth0.md +0 -73
- package/dist/docs/references/reference-auth-clerk.md +0 -36
- package/dist/docs/references/reference-auth-firebase.md +0 -80
- package/dist/docs/references/reference-auth-jwt.md +0 -26
- package/dist/docs/references/reference-auth-supabase.md +0 -33
- package/dist/docs/references/reference-auth-workos.md +0 -84
- package/dist/docs/references/reference-client-js-agents.md +0 -438
- package/dist/docs/references/reference-configuration.md +0 -749
- package/dist/docs/references/reference-core-addGateway.md +0 -42
- package/dist/docs/references/reference-core-getAgent.md +0 -21
- package/dist/docs/references/reference-core-getAgentById.md +0 -21
- package/dist/docs/references/reference-core-getDeployer.md +0 -22
- package/dist/docs/references/reference-core-getGateway.md +0 -38
- package/dist/docs/references/reference-core-getGatewayById.md +0 -41
- package/dist/docs/references/reference-core-getLogger.md +0 -22
- package/dist/docs/references/reference-core-getMCPServer.md +0 -45
- package/dist/docs/references/reference-core-getMCPServerById.md +0 -53
- package/dist/docs/references/reference-core-getMemory.md +0 -50
- package/dist/docs/references/reference-core-getScorer.md +0 -54
- package/dist/docs/references/reference-core-getScorerById.md +0 -54
- package/dist/docs/references/reference-core-getServer.md +0 -22
- package/dist/docs/references/reference-core-getStorage.md +0 -22
- package/dist/docs/references/reference-core-getStoredAgentById.md +0 -89
- package/dist/docs/references/reference-core-getTelemetry.md +0 -22
- package/dist/docs/references/reference-core-getVector.md +0 -22
- package/dist/docs/references/reference-core-getWorkflow.md +0 -40
- package/dist/docs/references/reference-core-listAgents.md +0 -21
- package/dist/docs/references/reference-core-listGateways.md +0 -40
- package/dist/docs/references/reference-core-listLogs.md +0 -38
- package/dist/docs/references/reference-core-listLogsByRunId.md +0 -36
- package/dist/docs/references/reference-core-listMCPServers.md +0 -51
- package/dist/docs/references/reference-core-listMemory.md +0 -56
- package/dist/docs/references/reference-core-listScorers.md +0 -29
- package/dist/docs/references/reference-core-listStoredAgents.md +0 -93
- package/dist/docs/references/reference-core-listVectors.md +0 -22
- package/dist/docs/references/reference-core-listWorkflows.md +0 -21
- package/dist/docs/references/reference-core-mastra-class.md +0 -66
- package/dist/docs/references/reference-core-mastra-model-gateway.md +0 -153
- package/dist/docs/references/reference-core-setLogger.md +0 -26
- package/dist/docs/references/reference-core-setStorage.md +0 -27
- package/dist/docs/references/reference-datasets-addItem.md +0 -35
- package/dist/docs/references/reference-datasets-addItems.md +0 -33
- package/dist/docs/references/reference-datasets-compareExperiments.md +0 -48
- package/dist/docs/references/reference-datasets-create.md +0 -49
- package/dist/docs/references/reference-datasets-dataset.md +0 -78
- package/dist/docs/references/reference-datasets-datasets-manager.md +0 -84
- package/dist/docs/references/reference-datasets-delete.md +0 -23
- package/dist/docs/references/reference-datasets-deleteExperiment.md +0 -25
- package/dist/docs/references/reference-datasets-deleteItem.md +0 -25
- package/dist/docs/references/reference-datasets-deleteItems.md +0 -27
- package/dist/docs/references/reference-datasets-get.md +0 -29
- package/dist/docs/references/reference-datasets-getDetails.md +0 -45
- package/dist/docs/references/reference-datasets-getExperiment.md +0 -28
- package/dist/docs/references/reference-datasets-getItem.md +0 -31
- package/dist/docs/references/reference-datasets-getItemHistory.md +0 -29
- package/dist/docs/references/reference-datasets-list.md +0 -29
- package/dist/docs/references/reference-datasets-listExperimentResults.md +0 -37
- package/dist/docs/references/reference-datasets-listExperiments.md +0 -31
- package/dist/docs/references/reference-datasets-listItems.md +0 -44
- package/dist/docs/references/reference-datasets-listVersions.md +0 -31
- package/dist/docs/references/reference-datasets-startExperiment.md +0 -60
- package/dist/docs/references/reference-datasets-startExperimentAsync.md +0 -41
- package/dist/docs/references/reference-datasets-update.md +0 -46
- package/dist/docs/references/reference-datasets-updateItem.md +0 -36
- package/dist/docs/references/reference-evals-answer-relevancy.md +0 -105
- package/dist/docs/references/reference-evals-answer-similarity.md +0 -99
- package/dist/docs/references/reference-evals-bias.md +0 -120
- package/dist/docs/references/reference-evals-completeness.md +0 -137
- package/dist/docs/references/reference-evals-content-similarity.md +0 -101
- package/dist/docs/references/reference-evals-context-precision.md +0 -196
- package/dist/docs/references/reference-evals-create-scorer.md +0 -270
- package/dist/docs/references/reference-evals-faithfulness.md +0 -114
- package/dist/docs/references/reference-evals-hallucination.md +0 -220
- package/dist/docs/references/reference-evals-keyword-coverage.md +0 -128
- package/dist/docs/references/reference-evals-mastra-scorer.md +0 -123
- package/dist/docs/references/reference-evals-run-evals.md +0 -138
- package/dist/docs/references/reference-evals-scorer-utils.md +0 -330
- package/dist/docs/references/reference-evals-textual-difference.md +0 -113
- package/dist/docs/references/reference-evals-tone-consistency.md +0 -119
- package/dist/docs/references/reference-evals-toxicity.md +0 -123
- package/dist/docs/references/reference-harness-harness-class.md +0 -645
- package/dist/docs/references/reference-logging-pino-logger.md +0 -117
- package/dist/docs/references/reference-memory-deleteMessages.md +0 -40
- package/dist/docs/references/reference-memory-memory-class.md +0 -147
- package/dist/docs/references/reference-memory-observational-memory.md +0 -565
- package/dist/docs/references/reference-observability-tracing-bridges-otel.md +0 -131
- package/dist/docs/references/reference-observability-tracing-configuration.md +0 -178
- package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +0 -138
- package/dist/docs/references/reference-observability-tracing-exporters-datadog.md +0 -116
- package/dist/docs/references/reference-observability-tracing-instances.md +0 -109
- package/dist/docs/references/reference-observability-tracing-interfaces.md +0 -749
- package/dist/docs/references/reference-observability-tracing-processors-sensitive-data-filter.md +0 -144
- package/dist/docs/references/reference-observability-tracing-spans.md +0 -224
- package/dist/docs/references/reference-processors-batch-parts-processor.md +0 -61
- package/dist/docs/references/reference-processors-language-detector.md +0 -81
- package/dist/docs/references/reference-processors-message-history-processor.md +0 -85
- package/dist/docs/references/reference-processors-moderation-processor.md +0 -104
- package/dist/docs/references/reference-processors-pii-detector.md +0 -107
- package/dist/docs/references/reference-processors-processor-interface.md +0 -525
- package/dist/docs/references/reference-processors-prompt-injection-detector.md +0 -71
- package/dist/docs/references/reference-processors-semantic-recall-processor.md +0 -123
- package/dist/docs/references/reference-processors-system-prompt-scrubber.md +0 -80
- package/dist/docs/references/reference-processors-token-limiter-processor.md +0 -113
- package/dist/docs/references/reference-processors-tool-call-filter.md +0 -85
- package/dist/docs/references/reference-processors-tool-search-processor.md +0 -113
- package/dist/docs/references/reference-processors-unicode-normalizer.md +0 -62
- package/dist/docs/references/reference-processors-working-memory-processor.md +0 -154
- package/dist/docs/references/reference-rag-database-config.md +0 -264
- package/dist/docs/references/reference-rag-embeddings.md +0 -92
- package/dist/docs/references/reference-server-mastra-server.md +0 -298
- package/dist/docs/references/reference-server-register-api-route.md +0 -249
- package/dist/docs/references/reference-storage-cloudflare-d1.md +0 -218
- package/dist/docs/references/reference-storage-composite.md +0 -235
- package/dist/docs/references/reference-storage-lance.md +0 -131
- package/dist/docs/references/reference-storage-libsql.md +0 -135
- package/dist/docs/references/reference-storage-mongodb.md +0 -262
- package/dist/docs/references/reference-storage-mssql.md +0 -155
- package/dist/docs/references/reference-storage-overview.md +0 -121
- package/dist/docs/references/reference-storage-postgresql.md +0 -529
- package/dist/docs/references/reference-storage-upstash.md +0 -160
- package/dist/docs/references/reference-streaming-ChunkType.md +0 -292
- package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +0 -182
- package/dist/docs/references/reference-streaming-agents-streamLegacy.md +0 -142
- package/dist/docs/references/reference-streaming-workflows-observeStream.md +0 -42
- package/dist/docs/references/reference-streaming-workflows-resumeStream.md +0 -61
- package/dist/docs/references/reference-streaming-workflows-stream.md +0 -88
- package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +0 -142
- package/dist/docs/references/reference-templates-overview.md +0 -194
- package/dist/docs/references/reference-tools-create-tool.md +0 -237
- package/dist/docs/references/reference-tools-graph-rag-tool.md +0 -185
- package/dist/docs/references/reference-tools-mcp-client.md +0 -962
- package/dist/docs/references/reference-tools-mcp-server.md +0 -1275
- package/dist/docs/references/reference-tools-vector-query-tool.md +0 -459
- package/dist/docs/references/reference-vectors-libsql.md +0 -305
- package/dist/docs/references/reference-vectors-mongodb.md +0 -295
- package/dist/docs/references/reference-vectors-pg.md +0 -408
- package/dist/docs/references/reference-vectors-upstash.md +0 -294
- package/dist/docs/references/reference-voice-composite-voice.md +0 -121
- package/dist/docs/references/reference-voice-mastra-voice.md +0 -313
- package/dist/docs/references/reference-voice-voice.addInstructions.md +0 -56
- package/dist/docs/references/reference-voice-voice.addTools.md +0 -67
- package/dist/docs/references/reference-voice-voice.connect.md +0 -94
- package/dist/docs/references/reference-voice-voice.events.md +0 -37
- package/dist/docs/references/reference-voice-voice.listen.md +0 -164
- package/dist/docs/references/reference-voice-voice.on.md +0 -111
- package/dist/docs/references/reference-voice-voice.speak.md +0 -157
- package/dist/docs/references/reference-workflows-run-methods-cancel.md +0 -86
- package/dist/docs/references/reference-workflows-run-methods-restart.md +0 -33
- package/dist/docs/references/reference-workflows-run-methods-resume.md +0 -59
- package/dist/docs/references/reference-workflows-run-methods-start.md +0 -58
- package/dist/docs/references/reference-workflows-run-methods-startAsync.md +0 -67
- package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +0 -142
- package/dist/docs/references/reference-workflows-run.md +0 -59
- package/dist/docs/references/reference-workflows-step.md +0 -119
- package/dist/docs/references/reference-workflows-workflow-methods-branch.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-commit.md +0 -17
- package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +0 -63
- package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +0 -118
- package/dist/docs/references/reference-workflows-workflow-methods-map.md +0 -93
- package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +0 -21
- package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +0 -35
- package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +0 -35
- package/dist/docs/references/reference-workflows-workflow-methods-then.md +0 -21
- package/dist/docs/references/reference-workflows-workflow.md +0 -157
- package/dist/docs/references/reference-workspace-filesystem.md +0 -202
- package/dist/docs/references/reference-workspace-local-filesystem.md +0 -327
- package/dist/docs/references/reference-workspace-local-sandbox.md +0 -285
- package/dist/docs/references/reference-workspace-sandbox.md +0 -81
- package/dist/docs/references/reference-workspace-workspace-class.md +0 -226
- package/dist/docs/references/reference.md +0 -276
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
# CompositeVoice
|
|
2
|
-
|
|
3
|
-
The CompositeVoice class allows you to combine different voice providers for text-to-speech and speech-to-text operations. This is particularly useful when you want to use the best provider for each operation - for example, using OpenAI for speech-to-text and PlayAI for text-to-speech.
|
|
4
|
-
|
|
5
|
-
CompositeVoice supports both Mastra voice providers and AI SDK model providers
|
|
6
|
-
|
|
7
|
-
## Constructor Parameters
|
|
8
|
-
|
|
9
|
-
**config:** (`object`): Configuration object for the composite voice service
|
|
10
|
-
|
|
11
|
-
**config.input?:** (`MastraVoice | TranscriptionModel`): Voice provider or AI SDK transcription model to use for speech-to-text operations. AI SDK models are automatically wrapped.
|
|
12
|
-
|
|
13
|
-
**config.output?:** (`MastraVoice | SpeechModel`): Voice provider or AI SDK speech model to use for text-to-speech operations. AI SDK models are automatically wrapped.
|
|
14
|
-
|
|
15
|
-
**config.realtime?:** (`MastraVoice`): Voice provider to use for real-time speech-to-speech operations
|
|
16
|
-
|
|
17
|
-
## Methods
|
|
18
|
-
|
|
19
|
-
### speak()
|
|
20
|
-
|
|
21
|
-
Converts text to speech using the configured speaking provider.
|
|
22
|
-
|
|
23
|
-
**input:** (`string | NodeJS.ReadableStream`): Text to convert to speech
|
|
24
|
-
|
|
25
|
-
**options?:** (`object`): Provider-specific options passed to the speaking provider
|
|
26
|
-
|
|
27
|
-
Notes:
|
|
28
|
-
|
|
29
|
-
- If no speaking provider is configured, this method will throw an error
|
|
30
|
-
- Options are passed through to the configured speaking provider
|
|
31
|
-
- Returns a stream of audio data
|
|
32
|
-
|
|
33
|
-
### listen()
|
|
34
|
-
|
|
35
|
-
Converts speech to text using the configured listening provider.
|
|
36
|
-
|
|
37
|
-
**audioStream:** (`NodeJS.ReadableStream`): Audio stream to convert to text
|
|
38
|
-
|
|
39
|
-
**options?:** (`object`): Provider-specific options passed to the listening provider
|
|
40
|
-
|
|
41
|
-
Notes:
|
|
42
|
-
|
|
43
|
-
- If no listening provider is configured, this method will throw an error
|
|
44
|
-
- Options are passed through to the configured listening provider
|
|
45
|
-
- Returns either a string or a stream of transcribed text, depending on the provider
|
|
46
|
-
|
|
47
|
-
### getSpeakers()
|
|
48
|
-
|
|
49
|
-
Returns a list of available voices from the speaking provider, where each node contains:
|
|
50
|
-
|
|
51
|
-
**voiceId:** (`string`): Unique identifier for the voice
|
|
52
|
-
|
|
53
|
-
**key?:** (`value`): Additional voice properties that vary by provider (e.g., name, language)
|
|
54
|
-
|
|
55
|
-
Notes:
|
|
56
|
-
|
|
57
|
-
- Returns voices from the speaking provider only
|
|
58
|
-
- If no speaking provider is configured, returns an empty array
|
|
59
|
-
- Each voice object will have at least a voiceId property
|
|
60
|
-
- Additional voice properties depend on the speaking provider
|
|
61
|
-
|
|
62
|
-
## Usage Examples
|
|
63
|
-
|
|
64
|
-
### Using Mastra Voice Providers
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
import { CompositeVoice } from "@mastra/core/voice";
|
|
68
|
-
import { OpenAIVoice } from "@mastra/voice-openai";
|
|
69
|
-
import { PlayAIVoice } from "@mastra/voice-playai";
|
|
70
|
-
|
|
71
|
-
// Create voice providers
|
|
72
|
-
const openai = new OpenAIVoice();
|
|
73
|
-
const playai = new PlayAIVoice();
|
|
74
|
-
|
|
75
|
-
// Use OpenAI for listening (speech-to-text) and PlayAI for speaking (text-to-speech)
|
|
76
|
-
const voice = new CompositeVoice({
|
|
77
|
-
input: openai,
|
|
78
|
-
output: playai,
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
// Convert speech to text using OpenAI
|
|
82
|
-
const text = await voice.listen(audioStream);
|
|
83
|
-
|
|
84
|
-
// Convert text to speech using PlayAI
|
|
85
|
-
const audio = await voice.speak("Hello, world!");
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Using AI SDK Model Providers
|
|
89
|
-
|
|
90
|
-
You can pass AI SDK transcription and speech models directly to CompositeVoice:
|
|
91
|
-
|
|
92
|
-
```typescript
|
|
93
|
-
import { CompositeVoice } from "@mastra/core/voice";
|
|
94
|
-
import { openai } from "@ai-sdk/openai";
|
|
95
|
-
import { elevenlabs } from "@ai-sdk/elevenlabs";
|
|
96
|
-
|
|
97
|
-
// Use AI SDK models directly - they will be auto-wrapped
|
|
98
|
-
const voice = new CompositeVoice({
|
|
99
|
-
input: openai.transcription('whisper-1'), // AI SDK transcription
|
|
100
|
-
output: elevenlabs.speech('eleven_turbo_v2'), // AI SDK speech
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
// Works the same way as with Mastra providers
|
|
104
|
-
const text = await voice.listen(audioStream);
|
|
105
|
-
const audio = await voice.speak("Hello from AI SDK!");
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### Mix and Match
|
|
109
|
-
|
|
110
|
-
You can combine Mastra providers with AI SDK models:
|
|
111
|
-
|
|
112
|
-
```typescript
|
|
113
|
-
import { CompositeVoice } from "@mastra/core/voice";
|
|
114
|
-
import { PlayAIVoice } from "@mastra/voice-playai";
|
|
115
|
-
import { groq } from "@ai-sdk/groq";
|
|
116
|
-
|
|
117
|
-
const voice = new CompositeVoice({
|
|
118
|
-
input: groq.transcription('whisper-large-v3'), // AI SDK for STT
|
|
119
|
-
output: new PlayAIVoice(), // Mastra for TTS
|
|
120
|
-
});
|
|
121
|
-
```
|
|
@@ -1,313 +0,0 @@
|
|
|
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<
|
|
46
|
-
Array<{ voiceId: string; [key: string]: unknown }>
|
|
47
|
-
> {
|
|
48
|
-
// Return list of available voices
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Optional speech-to-speech methods
|
|
52
|
-
async connect(): Promise<void> {
|
|
53
|
-
// Establish WebSocket connection for speech-to-speech communication
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
async send(audioData: NodeJS.ReadableStream | Int16Array): Promise<void> {
|
|
57
|
-
// Stream audio data in speech-to-speech
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
async answer(): Promise<void> {
|
|
61
|
-
// Trigger voice provider to respond
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
addTools(tools: Array<unknown>): void {
|
|
65
|
-
// Add tools for the voice provider to use
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
close(): void {
|
|
69
|
-
// Close WebSocket connection
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
on(event: string, callback: (data: unknown) => void): void {
|
|
73
|
-
// Register event listener
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
off(event: string, callback: (data: unknown) => void): void {
|
|
77
|
-
// Remove event listener
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Constructor Parameters
|
|
83
|
-
|
|
84
|
-
**config?:** (`VoiceConfig`): Configuration object for the voice service
|
|
85
|
-
|
|
86
|
-
**config.speechModel?:** (`BuiltInModelConfig`): Configuration for the text-to-speech model
|
|
87
|
-
|
|
88
|
-
**config.listeningModel?:** (`BuiltInModelConfig`): Configuration for the speech-to-text model
|
|
89
|
-
|
|
90
|
-
**config.speaker?:** (`string`): Default speaker/voice ID to use
|
|
91
|
-
|
|
92
|
-
**config.name?:** (`string`): Name for the voice provider instance
|
|
93
|
-
|
|
94
|
-
**config.realtimeConfig?:** (`object`): Configuration for real-time speech-to-speech capabilities
|
|
95
|
-
|
|
96
|
-
### BuiltInModelConfig
|
|
97
|
-
|
|
98
|
-
**name:** (`string`): Name of the model to use
|
|
99
|
-
|
|
100
|
-
**apiKey?:** (`string`): API key for the model service
|
|
101
|
-
|
|
102
|
-
### RealtimeConfig
|
|
103
|
-
|
|
104
|
-
**model?:** (`string`): Model to use for real-time speech-to-speech capabilities
|
|
105
|
-
|
|
106
|
-
**apiKey?:** (`string`): API key for the real-time service
|
|
107
|
-
|
|
108
|
-
**options?:** (`unknown`): Provider-specific options for real-time capabilities
|
|
109
|
-
|
|
110
|
-
## Abstract Methods
|
|
111
|
-
|
|
112
|
-
These methods must be implemented by unknown class extending MastraVoice.
|
|
113
|
-
|
|
114
|
-
### speak()
|
|
115
|
-
|
|
116
|
-
Converts text to speech using the configured speech model.
|
|
117
|
-
|
|
118
|
-
```typescript
|
|
119
|
-
abstract speak(
|
|
120
|
-
input: string | NodeJS.ReadableStream,
|
|
121
|
-
options?: {
|
|
122
|
-
speaker?: string;
|
|
123
|
-
[key: string]: unknown;
|
|
124
|
-
}
|
|
125
|
-
): Promise<NodeJS.ReadableStream | void>
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
Purpose:
|
|
129
|
-
|
|
130
|
-
- Takes text input and converts it to speech using the provider's text-to-speech service
|
|
131
|
-
- Supports both string and stream input for flexibility
|
|
132
|
-
- Allows overriding the default speaker/voice through options
|
|
133
|
-
- Returns a stream of audio data that can be played or saved
|
|
134
|
-
- May return void if the audio is handled by emitting 'speaking' event
|
|
135
|
-
|
|
136
|
-
### listen()
|
|
137
|
-
|
|
138
|
-
Converts speech to text using the configured listening model.
|
|
139
|
-
|
|
140
|
-
```typescript
|
|
141
|
-
abstract listen(
|
|
142
|
-
audioStream: NodeJS.ReadableStream,
|
|
143
|
-
options?: {
|
|
144
|
-
[key: string]: unknown;
|
|
145
|
-
}
|
|
146
|
-
): Promise<string | NodeJS.ReadableStream | void>
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
Purpose:
|
|
150
|
-
|
|
151
|
-
- Takes an audio stream and converts it to text using the provider's speech-to-text service
|
|
152
|
-
- Supports provider-specific options for transcription configuration
|
|
153
|
-
- Can return either a complete text transcription or a stream of transcribed text
|
|
154
|
-
- Not all providers support this functionality (e.g., PlayAI, Speechify)
|
|
155
|
-
- May return void if the transcription is handled by emitting 'writing' event
|
|
156
|
-
|
|
157
|
-
### getSpeakers()
|
|
158
|
-
|
|
159
|
-
Returns a list of available voices supported by the provider.
|
|
160
|
-
|
|
161
|
-
```typescript
|
|
162
|
-
abstract getSpeakers(): Promise<Array<{ voiceId: string; [key: string]: unknown }>>
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
Purpose:
|
|
166
|
-
|
|
167
|
-
- Retrieves the list of available voices/speakers from the provider
|
|
168
|
-
- Each voice must have at least a voiceId property
|
|
169
|
-
- Providers can include additional metadata about each voice
|
|
170
|
-
- Used to discover available voices for text-to-speech conversion
|
|
171
|
-
|
|
172
|
-
## Optional Methods
|
|
173
|
-
|
|
174
|
-
These methods have default implementations but can be overridden by voice providers that support speech-to-speech capabilities.
|
|
175
|
-
|
|
176
|
-
### connect()
|
|
177
|
-
|
|
178
|
-
Establishes a WebSocket or WebRTC connection for communication.
|
|
179
|
-
|
|
180
|
-
```typescript
|
|
181
|
-
connect(config?: unknown): Promise<void>
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
Purpose:
|
|
185
|
-
|
|
186
|
-
- Initializes a connection to the voice service for communication
|
|
187
|
-
- Must be called before using features like send() or answer()
|
|
188
|
-
- Returns a Promise that resolves when the connection is established
|
|
189
|
-
- Configuration is provider-specific
|
|
190
|
-
|
|
191
|
-
### send()
|
|
192
|
-
|
|
193
|
-
Streams audio data in real-time to the voice provider.
|
|
194
|
-
|
|
195
|
-
```typescript
|
|
196
|
-
send(audioData: NodeJS.ReadableStream | Int16Array): Promise<void>
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
Purpose:
|
|
200
|
-
|
|
201
|
-
- Sends audio data to the voice provider for real-time processing
|
|
202
|
-
- Useful for continuous audio streaming scenarios like live microphone input
|
|
203
|
-
- Supports both ReadableStream and Int16Array audio formats
|
|
204
|
-
- Must be in connected state before calling this method
|
|
205
|
-
|
|
206
|
-
### answer()
|
|
207
|
-
|
|
208
|
-
Triggers the voice provider to generate a response.
|
|
209
|
-
|
|
210
|
-
```typescript
|
|
211
|
-
answer(): Promise<void>
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
Purpose:
|
|
215
|
-
|
|
216
|
-
- Sends a signal to the voice provider to generate a response
|
|
217
|
-
- Used in real-time conversations to prompt the AI to respond
|
|
218
|
-
- Response will be emitted through the event system (e.g., 'speaking' event)
|
|
219
|
-
|
|
220
|
-
### addTools()
|
|
221
|
-
|
|
222
|
-
Equips the voice provider with tools that can be used during conversations.
|
|
223
|
-
|
|
224
|
-
```typescript
|
|
225
|
-
addTools(tools: Array<Tool>): void
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
Purpose:
|
|
229
|
-
|
|
230
|
-
- Adds tools that the voice provider can use during conversations
|
|
231
|
-
- Tools can extend the capabilities of the voice provider
|
|
232
|
-
- Implementation is provider-specific
|
|
233
|
-
|
|
234
|
-
### close()
|
|
235
|
-
|
|
236
|
-
Disconnects from the WebSocket or WebRTC connection.
|
|
237
|
-
|
|
238
|
-
```typescript
|
|
239
|
-
close(): void
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
Purpose:
|
|
243
|
-
|
|
244
|
-
- Closes the connection to the voice service
|
|
245
|
-
- Cleans up resources and stops any ongoing real-time processing
|
|
246
|
-
- Should be called when you're done with the voice instance
|
|
247
|
-
|
|
248
|
-
### on()
|
|
249
|
-
|
|
250
|
-
Registers an event listener for voice events.
|
|
251
|
-
|
|
252
|
-
```typescript
|
|
253
|
-
on<E extends VoiceEventType>(
|
|
254
|
-
event: E,
|
|
255
|
-
callback: (data: E extends keyof VoiceEventMap ? VoiceEventMap[E] : unknown) => void,
|
|
256
|
-
): void
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
Purpose:
|
|
260
|
-
|
|
261
|
-
- Registers a callback function to be called when the specified event occurs
|
|
262
|
-
- Standard events include 'speaking', 'writing', and 'error'
|
|
263
|
-
- Providers can emit custom events as well
|
|
264
|
-
- Event data structure depends on the event type
|
|
265
|
-
|
|
266
|
-
### off()
|
|
267
|
-
|
|
268
|
-
Removes an event listener.
|
|
269
|
-
|
|
270
|
-
```typescript
|
|
271
|
-
off<E extends VoiceEventType>(
|
|
272
|
-
event: E,
|
|
273
|
-
callback: (data: E extends keyof VoiceEventMap ? VoiceEventMap[E] : unknown) => void,
|
|
274
|
-
): void
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
Purpose:
|
|
278
|
-
|
|
279
|
-
- Removes a previously registered event listener
|
|
280
|
-
- Used to clean up event handlers when they're no longer needed
|
|
281
|
-
|
|
282
|
-
## Event System
|
|
283
|
-
|
|
284
|
-
The MastraVoice class includes an event system for real-time communication. Standard event types include:
|
|
285
|
-
|
|
286
|
-
**speaking:** (`{ text: string; audioStream?: NodeJS.ReadableStream; audio?: Int16Array }`): Emitted when the voice provider is speaking, contains audio data
|
|
287
|
-
|
|
288
|
-
**writing:** (`{ text: string, role: string }`): Emitted when text is transcribed from speech
|
|
289
|
-
|
|
290
|
-
**error:** (`{ message: string; code?: string; details?: unknown }`): Emitted when an error occurs
|
|
291
|
-
|
|
292
|
-
## Protected Properties
|
|
293
|
-
|
|
294
|
-
**listeningModel?:** (`BuiltInModelConfig | undefined`): Configuration for the speech-to-text model
|
|
295
|
-
|
|
296
|
-
**speechModel?:** (`BuiltInModelConfig | undefined`): Configuration for the text-to-speech model
|
|
297
|
-
|
|
298
|
-
**speaker?:** (`string | undefined`): Default speaker/voice ID
|
|
299
|
-
|
|
300
|
-
**realtimeConfig?:** (`{ model?: string; apiKey?: string; options?: unknown } | undefined`): Configuration for real-time speech-to-speech capabilities
|
|
301
|
-
|
|
302
|
-
## Telemetry Support
|
|
303
|
-
|
|
304
|
-
MastraVoice includes built-in telemetry support through the `traced` method, which wraps method calls with performance tracking and error monitoring.
|
|
305
|
-
|
|
306
|
-
## Notes
|
|
307
|
-
|
|
308
|
-
- MastraVoice is an abstract class and cannot be instantiated directly
|
|
309
|
-
- Implementations must provide concrete implementations for all abstract methods
|
|
310
|
-
- The class provides a consistent interface across different voice service providers
|
|
311
|
-
- Speech-to-speech capabilities are optional and provider-specific
|
|
312
|
-
- The event system enables asynchronous communication for real-time interactions
|
|
313
|
-
- Telemetry is automatically handled for all method calls
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# voice.addInstructions()
|
|
2
|
-
|
|
3
|
-
The `addInstructions()` method equips a voice provider with instructions that guide the model's behavior during real-time interactions. This is particularly useful for real-time voice providers that maintain context across a conversation.
|
|
4
|
-
|
|
5
|
-
## Usage Example
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
import { OpenAIRealtimeVoice } from "@mastra/voice-openai-realtime";
|
|
9
|
-
import { Agent } from "@mastra/core/agent";
|
|
10
|
-
|
|
11
|
-
// Initialize a real-time voice provider
|
|
12
|
-
const voice = new OpenAIRealtimeVoice({
|
|
13
|
-
realtimeConfig: {
|
|
14
|
-
model: "gpt-5.1-realtime",
|
|
15
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
// Create an agent with the voice provider
|
|
20
|
-
const agent = new Agent({
|
|
21
|
-
name: "Customer Support Agent",
|
|
22
|
-
instructions:
|
|
23
|
-
"You are a helpful customer support agent for a software company.",
|
|
24
|
-
model: "openai/gpt-5.1",
|
|
25
|
-
voice,
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
// Add additional instructions to the voice provider
|
|
29
|
-
voice.addInstructions(`
|
|
30
|
-
When speaking to customers:
|
|
31
|
-
- Always introduce yourself as the customer support agent
|
|
32
|
-
- Speak clearly and concisely
|
|
33
|
-
- Ask clarifying questions when needed
|
|
34
|
-
- Summarize the conversation at the end
|
|
35
|
-
`);
|
|
36
|
-
|
|
37
|
-
// Connect to the real-time service
|
|
38
|
-
await voice.connect();
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Parameters
|
|
42
|
-
|
|
43
|
-
**instructions:** (`string`): Instructions to guide the voice model's behavior
|
|
44
|
-
|
|
45
|
-
## Return Value
|
|
46
|
-
|
|
47
|
-
This method does not return a value.
|
|
48
|
-
|
|
49
|
-
## Notes
|
|
50
|
-
|
|
51
|
-
- Instructions are most effective when they are clear, specific, and relevant to the voice interaction
|
|
52
|
-
- This method is primarily used with real-time voice providers that maintain conversation context
|
|
53
|
-
- If called on a voice provider that doesn't support instructions, it will log a warning and do nothing
|
|
54
|
-
- Instructions added with this method are typically combined with any instructions provided by an associated Agent
|
|
55
|
-
- For best results, add instructions before starting a conversation (before calling `connect()`)
|
|
56
|
-
- Multiple calls to `addInstructions()` may either replace or append to existing instructions, depending on the provider implementation
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# voice.addTools()
|
|
2
|
-
|
|
3
|
-
The `addTools()` method equips a voice provider with tools (functions) that can be called by the model during real-time interactions. This enables voice assistants to perform actions like searching for information, making calculations, or interacting with external systems.
|
|
4
|
-
|
|
5
|
-
## Usage Example
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
import { OpenAIRealtimeVoice } from "@mastra/voice-openai-realtime";
|
|
9
|
-
import { createTool } from "@mastra/core/tools";
|
|
10
|
-
import { z } from "zod";
|
|
11
|
-
|
|
12
|
-
// Define tools
|
|
13
|
-
const weatherTool = createTool({
|
|
14
|
-
id: "getWeather",
|
|
15
|
-
description: "Get the current weather for a location",
|
|
16
|
-
inputSchema: z.object({
|
|
17
|
-
location: z.string().describe("The city and state, e.g. San Francisco, CA"),
|
|
18
|
-
}),
|
|
19
|
-
outputSchema: z.object({
|
|
20
|
-
message: z.string(),
|
|
21
|
-
}),
|
|
22
|
-
execute: async (inputData) => {
|
|
23
|
-
// Fetch weather data from an API
|
|
24
|
-
const response = await fetch(
|
|
25
|
-
`https://api.weather.com?location=${encodeURIComponent(inputData.location)}`,
|
|
26
|
-
);
|
|
27
|
-
const data = await response.json();
|
|
28
|
-
return {
|
|
29
|
-
message: `The current temperature in ${inputData.location} is ${data.temperature}°F with ${data.conditions}.`,
|
|
30
|
-
};
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
// Initialize a real-time voice provider
|
|
35
|
-
const voice = new OpenAIRealtimeVoice({
|
|
36
|
-
realtimeConfig: {
|
|
37
|
-
model: "gpt-5.1-realtime",
|
|
38
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
// Add tools to the voice provider
|
|
43
|
-
voice.addTools({
|
|
44
|
-
getWeather: weatherTool,
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
// Connect to the real-time service
|
|
48
|
-
await voice.connect();
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## Parameters
|
|
52
|
-
|
|
53
|
-
**tools:** (`ToolsInput`): Object containing tool definitions that can be called by the voice model
|
|
54
|
-
|
|
55
|
-
## Return Value
|
|
56
|
-
|
|
57
|
-
This method does not return a value.
|
|
58
|
-
|
|
59
|
-
## Notes
|
|
60
|
-
|
|
61
|
-
- Tools must follow the Mastra tool format with name, description, input schema, and execute function
|
|
62
|
-
- This method is primarily used with real-time voice providers that support function calling
|
|
63
|
-
- If called on a voice provider that doesn't support tools, it will log a warning and do nothing
|
|
64
|
-
- Tools added with this method are typically combined with any tools provided by an associated Agent
|
|
65
|
-
- For best results, add tools before starting a conversation (before calling `connect()`)
|
|
66
|
-
- The voice provider will automatically handle the invocation of tool handlers when the model decides to use them
|
|
67
|
-
- Multiple calls to `addTools()` may either replace or merge with existing tools, depending on the provider implementation
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# voice.connect()
|
|
2
|
-
|
|
3
|
-
The `connect()` method establishes a WebSocket or WebRTC connection for real-time speech-to-speech communication. This method must be called before using other real-time features like `send()` or `answer()`.
|
|
4
|
-
|
|
5
|
-
## Usage Example
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
import { OpenAIRealtimeVoice } from "@mastra/voice-openai-realtime";
|
|
9
|
-
import Speaker from "@mastra/node-speaker";
|
|
10
|
-
|
|
11
|
-
const speaker = new Speaker({
|
|
12
|
-
sampleRate: 24100, // Audio sample rate in Hz - standard for high-quality audio on MacBook Pro
|
|
13
|
-
channels: 1, // Mono audio output (as opposed to stereo which would be 2)
|
|
14
|
-
bitDepth: 16, // Bit depth for audio quality - CD quality standard (16-bit resolution)
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
// Initialize a real-time voice provider
|
|
18
|
-
const voice = new OpenAIRealtimeVoice({
|
|
19
|
-
realtimeConfig: {
|
|
20
|
-
model: "gpt-5.1-realtime",
|
|
21
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
22
|
-
options: {
|
|
23
|
-
sessionConfig: {
|
|
24
|
-
turn_detection: {
|
|
25
|
-
type: "server_vad",
|
|
26
|
-
threshold: 0.6,
|
|
27
|
-
silence_duration_ms: 1200,
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
speaker: "alloy", // Default voice
|
|
33
|
-
});
|
|
34
|
-
// Connect to the real-time service
|
|
35
|
-
await voice.connect();
|
|
36
|
-
// Now you can use real-time features
|
|
37
|
-
voice.on("speaker", (stream) => {
|
|
38
|
-
stream.pipe(speaker);
|
|
39
|
-
});
|
|
40
|
-
// With connection options
|
|
41
|
-
await voice.connect({
|
|
42
|
-
timeout: 10000, // 10 seconds timeout
|
|
43
|
-
reconnect: true,
|
|
44
|
-
});
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Parameters
|
|
48
|
-
|
|
49
|
-
**options?:** (`Record<string, unknown>`): Provider-specific connection options
|
|
50
|
-
|
|
51
|
-
## Return Value
|
|
52
|
-
|
|
53
|
-
Returns a `Promise<void>` that resolves when the connection is successfully established.
|
|
54
|
-
|
|
55
|
-
## Provider-Specific Options
|
|
56
|
-
|
|
57
|
-
Each real-time voice provider may support different options for the `connect()` method:
|
|
58
|
-
|
|
59
|
-
### OpenAI Realtime
|
|
60
|
-
|
|
61
|
-
**options.timeout?:** (`number`): Connection timeout in milliseconds (Default: `30000`)
|
|
62
|
-
|
|
63
|
-
**options.reconnect?:** (`boolean`): Whether to automatically reconnect on connection loss (Default: `false`)
|
|
64
|
-
|
|
65
|
-
## Using with CompositeVoice
|
|
66
|
-
|
|
67
|
-
When using `CompositeVoice`, the `connect()` method delegates to the configured real-time provider:
|
|
68
|
-
|
|
69
|
-
```typescript
|
|
70
|
-
import { CompositeVoice } from "@mastra/core/voice";
|
|
71
|
-
import { OpenAIRealtimeVoice } from "@mastra/voice-openai-realtime";
|
|
72
|
-
const realtimeVoice = new OpenAIRealtimeVoice();
|
|
73
|
-
const voice = new CompositeVoice({
|
|
74
|
-
realtime: realtimeVoice,
|
|
75
|
-
});
|
|
76
|
-
// This will use the OpenAIRealtimeVoice provider
|
|
77
|
-
await voice.connect();
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## Notes
|
|
81
|
-
|
|
82
|
-
- This method is only implemented by real-time voice providers that support speech-to-speech capabilities
|
|
83
|
-
- If called on a voice provider that doesn't support this functionality, it will log a warning and resolve immediately
|
|
84
|
-
- The connection must be established before using other real-time methods like `send()` or `answer()`
|
|
85
|
-
- When you're done with the voice instance, call `close()` to properly clean up resources
|
|
86
|
-
- Some providers may automatically reconnect on connection loss, depending on their implementation
|
|
87
|
-
- Connection errors will typically be thrown as exceptions that should be caught and handled
|
|
88
|
-
|
|
89
|
-
## Related Methods
|
|
90
|
-
|
|
91
|
-
- [voice.send()](https://mastra.ai/reference/voice/voice.send) - Sends audio data to the voice provider
|
|
92
|
-
- [voice.answer()](https://mastra.ai/reference/voice/voice.answer) - Triggers the voice provider to respond
|
|
93
|
-
- [voice.close()](https://mastra.ai/reference/voice/voice.close) - Disconnects from the real-time service
|
|
94
|
-
- [voice.on()](https://mastra.ai/reference/voice/voice.on) - Registers an event listener for voice events
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Voice Events
|
|
2
|
-
|
|
3
|
-
Voice providers emit various events during real-time voice interactions. These events can be listened to using the [voice.on()](https://mastra.ai/reference/voice/voice.on) method and are particularly important for building interactive voice applications.
|
|
4
|
-
|
|
5
|
-
## Common Events
|
|
6
|
-
|
|
7
|
-
These events are commonly implemented across real-time voice providers:
|
|
8
|
-
|
|
9
|
-
**error:** (`Error`): Emitted when an error occurs during voice processing or when audio data format is unsupported
|
|
10
|
-
|
|
11
|
-
**session.created:** (`object`): Emitted when a new session is created with the OpenAI service
|
|
12
|
-
|
|
13
|
-
**session.updated:** (`object`): Emitted when the session configuration is updated
|
|
14
|
-
|
|
15
|
-
**response.created:** (`object`): Emitted when a new response is created by the AI assistant
|
|
16
|
-
|
|
17
|
-
**response.done:** (`object`): Emitted when the AI assistant has completed its response
|
|
18
|
-
|
|
19
|
-
**speaker:** (`StreamWithId`): Emitted with a new audio stream that can be piped to an audio output
|
|
20
|
-
|
|
21
|
-
**writing:** (`object`): Emitted when text is being transcribed (user) or generated (assistant)
|
|
22
|
-
|
|
23
|
-
**speaking:** (`object`): Emitted when audio data is available from the voice provider
|
|
24
|
-
|
|
25
|
-
**speaking.done:** (`object`): Emitted when the voice provider has finished speaking
|
|
26
|
-
|
|
27
|
-
**tool-call-start:** (`object`): Emitted when the AI assistant starts executing a tool
|
|
28
|
-
|
|
29
|
-
**tool-call-result:** (`object`): Emitted when a tool execution is complete with its result
|
|
30
|
-
|
|
31
|
-
## Notes
|
|
32
|
-
|
|
33
|
-
- Not all events are supported by all voice providers
|
|
34
|
-
- The exact payload structure may vary between providers
|
|
35
|
-
- For non-real-time providers, most of these events will not be emitted
|
|
36
|
-
- Events are useful for building interactive UIs that respond to the conversation state
|
|
37
|
-
- Consider using the [voice.off()](https://mastra.ai/reference/voice/voice.off) method to remove event listeners when they are no longer needed
|