@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,222 +0,0 @@
|
|
|
1
|
-
# MastraAuthAuth0 Class
|
|
2
|
-
|
|
3
|
-
The `MastraAuthAuth0` class provides authentication for Mastra using Auth0. It verifies incoming requests using Auth0-issued JWT tokens and integrates with the Mastra server using the `auth` option.
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
|
|
7
|
-
This example uses Auth0 authentication. Make sure to:
|
|
8
|
-
|
|
9
|
-
1. Create an Auth0 account at [auth0.com](https://auth0.com/)
|
|
10
|
-
2. Set up an Application in your Auth0 Dashboard
|
|
11
|
-
3. Configure an API in your Auth0 Dashboard with an identifier (audience)
|
|
12
|
-
4. Configure your application's allowed callback URLs, web origins, and logout URLs
|
|
13
|
-
|
|
14
|
-
```env
|
|
15
|
-
AUTH0_DOMAIN=your-tenant.auth0.com
|
|
16
|
-
AUTH0_AUDIENCE=your-api-identifier
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
> **Note:** You can find your domain in the Auth0 Dashboard under Applications > Settings. The audience is the identifier of your API configured in Auth0 Dashboard > APIs.
|
|
20
|
-
>
|
|
21
|
-
> For detailed setup instructions, refer to the [Auth0 quickstarts](https://auth0.com/docs/quickstarts) for your specific platform.
|
|
22
|
-
|
|
23
|
-
## Installation
|
|
24
|
-
|
|
25
|
-
Before you can use the `MastraAuthAuth0` class you have to install the `@mastra/auth-auth0` package.
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
npm install @mastra/auth-auth0@latest
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Usage examples
|
|
32
|
-
|
|
33
|
-
### Basic usage with environment variables
|
|
34
|
-
|
|
35
|
-
```typescript
|
|
36
|
-
import { Mastra } from "@mastra/core";
|
|
37
|
-
import { MastraAuthAuth0 } from "@mastra/auth-auth0";
|
|
38
|
-
|
|
39
|
-
export const mastra = new Mastra({
|
|
40
|
-
server: {
|
|
41
|
-
auth: new MastraAuthAuth0(),
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### Custom configuration
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
import { Mastra } from "@mastra/core";
|
|
50
|
-
import { MastraAuthAuth0 } from "@mastra/auth-auth0";
|
|
51
|
-
|
|
52
|
-
export const mastra = new Mastra({
|
|
53
|
-
server: {
|
|
54
|
-
auth: new MastraAuthAuth0({
|
|
55
|
-
domain: process.env.AUTH0_DOMAIN,
|
|
56
|
-
audience: process.env.AUTH0_AUDIENCE,
|
|
57
|
-
}),
|
|
58
|
-
},
|
|
59
|
-
});
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Configuration
|
|
63
|
-
|
|
64
|
-
### User Authorization
|
|
65
|
-
|
|
66
|
-
By default, `MastraAuthAuth0` allows all authenticated users who have valid Auth0 tokens for the specified audience. The token verification ensures that:
|
|
67
|
-
|
|
68
|
-
1. The token is properly signed by Auth0
|
|
69
|
-
2. The token is not expired
|
|
70
|
-
3. The token audience matches your configured audience
|
|
71
|
-
4. The token issuer matches your Auth0 domain
|
|
72
|
-
|
|
73
|
-
To customize user authorization, provide a custom `authorizeUser` function:
|
|
74
|
-
|
|
75
|
-
```typescript
|
|
76
|
-
import { MastraAuthAuth0 } from "@mastra/auth-auth0";
|
|
77
|
-
|
|
78
|
-
const auth0Provider = new MastraAuthAuth0({
|
|
79
|
-
authorizeUser: async (user) => {
|
|
80
|
-
// Custom authorization logic
|
|
81
|
-
return user.email?.endsWith("@yourcompany.com") || false;
|
|
82
|
-
},
|
|
83
|
-
});
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
> **Info:** Visit [MastraAuthAuth0](https://mastra.ai/reference/auth/auth0) for all available configuration options.
|
|
87
|
-
|
|
88
|
-
## Client-side setup
|
|
89
|
-
|
|
90
|
-
When using Auth0 auth, you'll need to set up the Auth0 React SDK, authenticate users, and retrieve their access tokens to pass to your Mastra requests.
|
|
91
|
-
|
|
92
|
-
### Setting up Auth0 React SDK
|
|
93
|
-
|
|
94
|
-
First, install and configure the Auth0 React SDK in your application:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
npm install @auth0/auth0-react
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
```typescript
|
|
101
|
-
import React from 'react';
|
|
102
|
-
import { Auth0Provider } from '@auth0/auth0-react';
|
|
103
|
-
|
|
104
|
-
const Auth0ProviderWithHistory = ({ children }) => {
|
|
105
|
-
return (
|
|
106
|
-
<Auth0Provider
|
|
107
|
-
domain={process.env.REACT_APP_AUTH0_DOMAIN}
|
|
108
|
-
clientId={process.env.REACT_APP_AUTH0_CLIENT_ID}
|
|
109
|
-
authorizationParams={{
|
|
110
|
-
redirect_uri: window.location.origin,
|
|
111
|
-
audience: process.env.REACT_APP_AUTH0_AUDIENCE,
|
|
112
|
-
scope: "read:current_user update:current_user_metadata"
|
|
113
|
-
}}
|
|
114
|
-
>
|
|
115
|
-
{children}
|
|
116
|
-
</Auth0Provider>
|
|
117
|
-
);
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
export default Auth0ProviderWithHistory;
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### Retrieving access tokens
|
|
124
|
-
|
|
125
|
-
Use the Auth0 React SDK to authenticate users and retrieve their access tokens:
|
|
126
|
-
|
|
127
|
-
```typescript
|
|
128
|
-
import { useAuth0 } from "@auth0/auth0-react";
|
|
129
|
-
|
|
130
|
-
export const useAuth0Token = () => {
|
|
131
|
-
const { getAccessTokenSilently } = useAuth0();
|
|
132
|
-
|
|
133
|
-
const getAccessToken = async () => {
|
|
134
|
-
const token = await getAccessTokenSilently();
|
|
135
|
-
return token;
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
return { getAccessToken };
|
|
139
|
-
};
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
> **Note:** Refer to the [Auth0 React SDK documentation](https://auth0.com/docs/libraries/auth0-react) for more authentication methods and configuration options.
|
|
143
|
-
|
|
144
|
-
## Configuring `MastraClient`
|
|
145
|
-
|
|
146
|
-
When `auth` is enabled, all requests made with `MastraClient` must include a valid Auth0 access token in the `Authorization` header:
|
|
147
|
-
|
|
148
|
-
```typescript
|
|
149
|
-
import { MastraClient } from "@mastra/client-js";
|
|
150
|
-
|
|
151
|
-
export const createMastraClient = (accessToken: string) => {
|
|
152
|
-
return new MastraClient({
|
|
153
|
-
baseUrl: "https://<mastra-api-url>",
|
|
154
|
-
headers: {
|
|
155
|
-
Authorization: `Bearer ${accessToken}`,
|
|
156
|
-
},
|
|
157
|
-
});
|
|
158
|
-
};
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
> **Info:** The access token must be prefixed with `Bearer` in the Authorization header.
|
|
162
|
-
>
|
|
163
|
-
> Visit [Mastra Client SDK](https://mastra.ai/docs/server/mastra-client) for more configuration options.
|
|
164
|
-
|
|
165
|
-
### Making authenticated requests
|
|
166
|
-
|
|
167
|
-
Once `MastraClient` is configured with the Auth0 access token, you can send authenticated requests:
|
|
168
|
-
|
|
169
|
-
**React**:
|
|
170
|
-
|
|
171
|
-
```tsx
|
|
172
|
-
import React, { useState } from 'react';
|
|
173
|
-
import { useAuth0 } from '@auth0/auth0-react';
|
|
174
|
-
import { MastraClient } from '@mastra/client-js';
|
|
175
|
-
|
|
176
|
-
export const MastraApiTest = () => {
|
|
177
|
-
const { getAccessTokenSilently } = useAuth0();
|
|
178
|
-
const [result, setResult] = useState(null);
|
|
179
|
-
|
|
180
|
-
const callMastraApi = async () => {
|
|
181
|
-
const token = await getAccessTokenSilently();
|
|
182
|
-
|
|
183
|
-
const mastra = new MastraClient({
|
|
184
|
-
baseUrl: "http://localhost:4111",
|
|
185
|
-
headers: {
|
|
186
|
-
Authorization: `Bearer ${token}`
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
|
|
190
|
-
const weatherAgent = mastra.getAgent("weatherAgent");
|
|
191
|
-
const response = await weatherAgent.generate("What's the weather like in New York");
|
|
192
|
-
|
|
193
|
-
setResult(response.text);
|
|
194
|
-
};
|
|
195
|
-
|
|
196
|
-
return (
|
|
197
|
-
<div>
|
|
198
|
-
<button onClick={callMastraApi}>
|
|
199
|
-
Test Mastra API
|
|
200
|
-
</button>
|
|
201
|
-
|
|
202
|
-
{result && (
|
|
203
|
-
<div className="result">
|
|
204
|
-
<h6>Result:</h6>
|
|
205
|
-
<pre>{result}</pre>
|
|
206
|
-
</div>
|
|
207
|
-
)}
|
|
208
|
-
</div>
|
|
209
|
-
);
|
|
210
|
-
};
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
**cURL**:
|
|
214
|
-
|
|
215
|
-
```bash
|
|
216
|
-
curl -X POST http://localhost:4111/api/agents/weatherAgent/generate \
|
|
217
|
-
-H "Content-Type: application/json" \
|
|
218
|
-
-H "Authorization: Bearer <your-auth0-access-token>" \
|
|
219
|
-
-d '{
|
|
220
|
-
"messages": "Weather in London"
|
|
221
|
-
}'
|
|
222
|
-
```
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
# MastraAuthClerk Class
|
|
2
|
-
|
|
3
|
-
The `MastraAuthClerk` class provides authentication for Mastra using Clerk. It verifies incoming requests using Clerk's authentication system and integrates with the Mastra server using the `auth` option.
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
|
|
7
|
-
This example uses Clerk authentication. Make sure to add your Clerk credentials to your `.env` file and ensure your Clerk project is properly configured.
|
|
8
|
-
|
|
9
|
-
```env
|
|
10
|
-
CLERK_PUBLISHABLE_KEY=pk_test_...
|
|
11
|
-
CLERK_SECRET_KEY=sk_test_...
|
|
12
|
-
CLERK_JWKS_URI=https://your-clerk-domain.clerk.accounts.dev/.well-known/jwks.json
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
> **Note:** You can find these keys in your Clerk Dashboard under "API Keys".
|
|
16
|
-
|
|
17
|
-
## Installation
|
|
18
|
-
|
|
19
|
-
Before you can use the `MastraAuthClerk` class you have to install the `@mastra/auth-clerk` package.
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npm install @mastra/auth-clerk@latest
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Usage example
|
|
26
|
-
|
|
27
|
-
```typescript
|
|
28
|
-
import { Mastra } from "@mastra/core";
|
|
29
|
-
import { MastraAuthClerk } from "@mastra/auth-clerk";
|
|
30
|
-
|
|
31
|
-
export const mastra = new Mastra({
|
|
32
|
-
server: {
|
|
33
|
-
auth: new MastraAuthClerk({
|
|
34
|
-
publishableKey: process.env.CLERK_PUBLISHABLE_KEY,
|
|
35
|
-
secretKey: process.env.CLERK_SECRET_KEY,
|
|
36
|
-
jwksUri: process.env.CLERK_JWKS_URI,
|
|
37
|
-
}),
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
> **Info:** The default `authorizeUser` method allows all authenticated users. To customize user authorization, provide a custom `authorizeUser` function when constructing the provider.
|
|
43
|
-
>
|
|
44
|
-
> Visit [MastraAuthClerk](https://mastra.ai/reference/auth/clerk) for all available configuration options.
|
|
45
|
-
|
|
46
|
-
## Client-side setup
|
|
47
|
-
|
|
48
|
-
When using Clerk auth, you'll need to retrieve the access token from Clerk on the client side and pass it to your Mastra requests.
|
|
49
|
-
|
|
50
|
-
### Retrieving the access token
|
|
51
|
-
|
|
52
|
-
Use the Clerk React hooks to authenticate users and retrieve their access token:
|
|
53
|
-
|
|
54
|
-
```typescript
|
|
55
|
-
import { useAuth } from "@clerk/nextjs";
|
|
56
|
-
|
|
57
|
-
export const useClerkAuth = () => {
|
|
58
|
-
const { getToken } = useAuth();
|
|
59
|
-
|
|
60
|
-
const getAccessToken = async () => {
|
|
61
|
-
const token = await getToken();
|
|
62
|
-
return token;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
return { getAccessToken };
|
|
66
|
-
};
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
> **Info:** Refer to the [Clerk documentation](https://clerk.com/docs) for more information.
|
|
70
|
-
|
|
71
|
-
## Configuring `MastraClient`
|
|
72
|
-
|
|
73
|
-
When `auth` is enabled, all requests made with `MastraClient` must include a valid Clerk access token in the `Authorization` header:
|
|
74
|
-
|
|
75
|
-
```typescript
|
|
76
|
-
import { MastraClient } from "@mastra/client-js";
|
|
77
|
-
|
|
78
|
-
export const mastraClient = new MastraClient({
|
|
79
|
-
baseUrl: "https://<mastra-api-url>",
|
|
80
|
-
headers: {
|
|
81
|
-
Authorization: `Bearer ${accessToken}`,
|
|
82
|
-
},
|
|
83
|
-
});
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
> **Info:** The access token must be prefixed with `Bearer` in the Authorization header.
|
|
87
|
-
>
|
|
88
|
-
> Visit [Mastra Client SDK](https://mastra.ai/docs/server/mastra-client) for more configuration options.
|
|
89
|
-
|
|
90
|
-
### Making authenticated requests
|
|
91
|
-
|
|
92
|
-
Once `MastraClient` is configured with the Clerk access token, you can send authenticated requests:
|
|
93
|
-
|
|
94
|
-
**React**:
|
|
95
|
-
|
|
96
|
-
```tsx
|
|
97
|
-
"use client";
|
|
98
|
-
|
|
99
|
-
import { useAuth } from "@clerk/nextjs";
|
|
100
|
-
import { MastraClient } from "@mastra/client-js";
|
|
101
|
-
|
|
102
|
-
export const TestAgent = () => {
|
|
103
|
-
const { getToken } = useAuth();
|
|
104
|
-
|
|
105
|
-
async function handleClick() {
|
|
106
|
-
const token = await getToken();
|
|
107
|
-
|
|
108
|
-
const client = new MastraClient({
|
|
109
|
-
baseUrl: "http://localhost:4111",
|
|
110
|
-
headers: token ? { Authorization: `Bearer ${token}` } : undefined,
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
const weatherAgent = client.getAgent("weatherAgent");
|
|
114
|
-
const response = await weatherAgent.generate("What's the weather like in New York");
|
|
115
|
-
|
|
116
|
-
console.log({ response });
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
return <button onClick={handleClick}>Test Agent</button>;
|
|
120
|
-
};
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
**cURL**:
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
curl -X POST http://localhost:4111/api/agents/weatherAgent/generate \
|
|
127
|
-
-H "Content-Type: application/json" \
|
|
128
|
-
-H "Authorization: Bearer <your-clerk-access-token>" \
|
|
129
|
-
-d '{
|
|
130
|
-
"messages": "Weather in London"
|
|
131
|
-
}'
|
|
132
|
-
```
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
# CompositeAuth Class
|
|
2
|
-
|
|
3
|
-
The `CompositeAuth` class allows you to combine multiple authentication providers into a single auth handler. It tries each provider in order until one succeeds.
|
|
4
|
-
|
|
5
|
-
## Use Cases
|
|
6
|
-
|
|
7
|
-
- Support both API keys and OAuth tokens
|
|
8
|
-
- Migrate between auth providers without breaking existing clients
|
|
9
|
-
- Allow multiple identity providers (e.g., Clerk for web, API keys for integrations)
|
|
10
|
-
- Gradual rollout of new authentication methods
|
|
11
|
-
|
|
12
|
-
## Installation
|
|
13
|
-
|
|
14
|
-
CompositeAuth is included in `@mastra/core`, no additional packages required.
|
|
15
|
-
|
|
16
|
-
```typescript
|
|
17
|
-
import { CompositeAuth } from '@mastra/core/server';
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Usage Example
|
|
21
|
-
|
|
22
|
-
Combine SimpleAuth (for API keys) with Clerk (for user sessions):
|
|
23
|
-
|
|
24
|
-
```typescript
|
|
25
|
-
import { Mastra } from '@mastra/core';
|
|
26
|
-
import { CompositeAuth, SimpleAuth } from '@mastra/core/server';
|
|
27
|
-
import { MastraAuthClerk } from '@mastra/auth-clerk';
|
|
28
|
-
|
|
29
|
-
// API key users
|
|
30
|
-
type ApiKeyUser = {
|
|
31
|
-
id: string;
|
|
32
|
-
name: string;
|
|
33
|
-
type: 'api-key';
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
const apiKeyAuth = new SimpleAuth<ApiKeyUser>({
|
|
37
|
-
tokens: {
|
|
38
|
-
'sk-integration-key-123': {
|
|
39
|
-
id: 'integration-1',
|
|
40
|
-
name: 'CI/CD Pipeline',
|
|
41
|
-
type: 'api-key',
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
// Clerk users (from web app)
|
|
47
|
-
const clerkAuth = new MastraAuthClerk({
|
|
48
|
-
publishableKey: process.env.CLERK_PUBLISHABLE_KEY,
|
|
49
|
-
secretKey: process.env.CLERK_SECRET_KEY,
|
|
50
|
-
jwksUri: process.env.CLERK_JWKS_URI,
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
export const mastra = new Mastra({
|
|
54
|
-
server: {
|
|
55
|
-
auth: new CompositeAuth([apiKeyAuth, clerkAuth]),
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## How It Works
|
|
61
|
-
|
|
62
|
-
When a request comes in, CompositeAuth:
|
|
63
|
-
|
|
64
|
-
1. Extracts the token from the `Authorization` header
|
|
65
|
-
2. Tries each provider's `authenticateToken()` method in order
|
|
66
|
-
3. Returns the user from the first provider that succeeds
|
|
67
|
-
4. Returns `null` (401 Unauthorized) if all providers fail
|
|
68
|
-
|
|
69
|
-
For authorization, it calls each provider's `authorizeUser()` method until one returns `true`.
|
|
70
|
-
|
|
71
|
-
```typescript
|
|
72
|
-
// Pseudocode of CompositeAuth behavior
|
|
73
|
-
async authenticateToken(token, request) {
|
|
74
|
-
for (const provider of this.providers) {
|
|
75
|
-
const user = await provider.authenticateToken(token, request);
|
|
76
|
-
if (user) return user; // First match wins
|
|
77
|
-
}
|
|
78
|
-
return null; // All providers failed
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
## Provider Order
|
|
83
|
-
|
|
84
|
-
The order of providers matters. Place the most common authentication method first for better performance:
|
|
85
|
-
|
|
86
|
-
```typescript
|
|
87
|
-
// If most requests use Clerk, put it first
|
|
88
|
-
new CompositeAuth([
|
|
89
|
-
clerkAuth, // Checked first (most common)
|
|
90
|
-
apiKeyAuth, // Checked second (less common)
|
|
91
|
-
]);
|
|
92
|
-
|
|
93
|
-
// If most requests use API keys, put it first
|
|
94
|
-
new CompositeAuth([
|
|
95
|
-
apiKeyAuth, // Checked first (most common)
|
|
96
|
-
clerkAuth, // Checked second (less common)
|
|
97
|
-
]);
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## Multiple OAuth Providers
|
|
101
|
-
|
|
102
|
-
Support users from different identity providers:
|
|
103
|
-
|
|
104
|
-
```typescript
|
|
105
|
-
import { CompositeAuth } from '@mastra/core/server';
|
|
106
|
-
import { MastraAuthClerk } from '@mastra/auth-clerk';
|
|
107
|
-
import { MastraAuthAuth0 } from '@mastra/auth-auth0';
|
|
108
|
-
|
|
109
|
-
const clerkAuth = new MastraAuthClerk({
|
|
110
|
-
publishableKey: process.env.CLERK_PUBLISHABLE_KEY,
|
|
111
|
-
secretKey: process.env.CLERK_SECRET_KEY,
|
|
112
|
-
jwksUri: process.env.CLERK_JWKS_URI,
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
const auth0Auth = new MastraAuthAuth0({
|
|
116
|
-
domain: process.env.AUTH0_DOMAIN,
|
|
117
|
-
audience: process.env.AUTH0_AUDIENCE,
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
export const mastra = new Mastra({
|
|
121
|
-
server: {
|
|
122
|
-
auth: new CompositeAuth([clerkAuth, auth0Auth]),
|
|
123
|
-
},
|
|
124
|
-
});
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
## Migration Example
|
|
128
|
-
|
|
129
|
-
Migrate from JWT to Clerk while maintaining backwards compatibility:
|
|
130
|
-
|
|
131
|
-
```typescript
|
|
132
|
-
import { CompositeAuth } from '@mastra/core/server';
|
|
133
|
-
import { MastraJwtAuth } from '@mastra/auth';
|
|
134
|
-
import { MastraAuthClerk } from '@mastra/auth-clerk';
|
|
135
|
-
|
|
136
|
-
// Legacy JWT auth (existing clients)
|
|
137
|
-
const legacyAuth = new MastraJwtAuth({
|
|
138
|
-
secret: process.env.JWT_SECRET,
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
// New Clerk auth (new clients)
|
|
142
|
-
const clerkAuth = new MastraAuthClerk({
|
|
143
|
-
publishableKey: process.env.CLERK_PUBLISHABLE_KEY,
|
|
144
|
-
secretKey: process.env.CLERK_SECRET_KEY,
|
|
145
|
-
jwksUri: process.env.CLERK_JWKS_URI,
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
// Support both during migration
|
|
149
|
-
export const mastra = new Mastra({
|
|
150
|
-
server: {
|
|
151
|
-
auth: new CompositeAuth([
|
|
152
|
-
clerkAuth, // New auth method (preferred)
|
|
153
|
-
legacyAuth, // Legacy support
|
|
154
|
-
]),
|
|
155
|
-
},
|
|
156
|
-
});
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## With Custom Providers
|
|
160
|
-
|
|
161
|
-
Combine built-in providers with custom implementations:
|
|
162
|
-
|
|
163
|
-
```typescript
|
|
164
|
-
import { CompositeAuth, SimpleAuth } from '@mastra/core/server';
|
|
165
|
-
import { MyCustomAuth } from './my-custom-auth';
|
|
166
|
-
|
|
167
|
-
const apiKeyAuth = new SimpleAuth({
|
|
168
|
-
tokens: {
|
|
169
|
-
'sk-key-123': { id: 'user-1', name: 'API User' },
|
|
170
|
-
},
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
const customAuth = new MyCustomAuth({
|
|
174
|
-
apiUrl: process.env.CUSTOM_AUTH_URL,
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
export const mastra = new Mastra({
|
|
178
|
-
server: {
|
|
179
|
-
auth: new CompositeAuth([apiKeyAuth, customAuth]),
|
|
180
|
-
},
|
|
181
|
-
});
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
## Error Handling
|
|
185
|
-
|
|
186
|
-
CompositeAuth silently catches errors from individual providers and moves to the next one. This prevents one failing provider from blocking authentication:
|
|
187
|
-
|
|
188
|
-
```typescript
|
|
189
|
-
// If clerkAuth throws an error, apiKeyAuth still gets tried
|
|
190
|
-
new CompositeAuth([clerkAuth, apiKeyAuth]);
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
To debug authentication issues, add logging to your custom providers or check individual provider configurations.
|
|
194
|
-
|
|
195
|
-
## Limitations
|
|
196
|
-
|
|
197
|
-
- All providers share the same token from the `Authorization` header
|
|
198
|
-
- User types may differ between providers (use discriminated unions if needed)
|
|
199
|
-
- No built-in way to identify which provider authenticated a request
|
|
200
|
-
|
|
201
|
-
### Handling Different User Types
|
|
202
|
-
|
|
203
|
-
When providers return different user types, use a discriminated union:
|
|
204
|
-
|
|
205
|
-
```typescript
|
|
206
|
-
type ApiKeyUser = {
|
|
207
|
-
type: 'api-key';
|
|
208
|
-
id: string;
|
|
209
|
-
name: string;
|
|
210
|
-
};
|
|
211
|
-
|
|
212
|
-
type ClerkUser = {
|
|
213
|
-
type: 'clerk';
|
|
214
|
-
sub: string;
|
|
215
|
-
email: string;
|
|
216
|
-
};
|
|
217
|
-
|
|
218
|
-
type User = ApiKeyUser | ClerkUser;
|
|
219
|
-
|
|
220
|
-
// In your application code
|
|
221
|
-
function handleUser(user: User) {
|
|
222
|
-
if (user.type === 'api-key') {
|
|
223
|
-
console.log('API key user:', user.name);
|
|
224
|
-
} else {
|
|
225
|
-
console.log('Clerk user:', user.email);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
## Related
|
|
231
|
-
|
|
232
|
-
- [Auth Overview](https://mastra.ai/docs/server/auth) - Authentication concepts
|
|
233
|
-
- [Simple Auth](https://mastra.ai/docs/server/auth/simple-auth) - Token-to-user mapping
|
|
234
|
-
- [Custom Auth Provider](https://mastra.ai/docs/server/auth/custom-auth-provider) - Build your own provider
|