@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,162 +0,0 @@
|
|
|
1
|
-
# Filesystem
|
|
2
|
-
|
|
3
|
-
**Added in:** `@mastra/core@1.1.0`
|
|
4
|
-
|
|
5
|
-
Filesystem providers give agents the ability to read, write, and manage files. When you configure a filesystem on a workspace, agents receive tools for file operations.
|
|
6
|
-
|
|
7
|
-
A filesystem provider handles all file operations for a workspace:
|
|
8
|
-
|
|
9
|
-
- **Read** - Read file contents
|
|
10
|
-
- **Write** - Create and update files
|
|
11
|
-
- **List** - Browse directories
|
|
12
|
-
- **Delete** - Remove files and directories
|
|
13
|
-
- **Stat** - Get file metadata
|
|
14
|
-
|
|
15
|
-
## Supported providers
|
|
16
|
-
|
|
17
|
-
Available providers:
|
|
18
|
-
|
|
19
|
-
- [`LocalFilesystem`](https://mastra.ai/reference/workspace/local-filesystem) - Stores files in a directory on disk
|
|
20
|
-
- [`S3Filesystem`](https://mastra.ai/reference/workspace/s3-filesystem) - Stores files in Amazon S3 or S3-compatible storage (R2, MinIO)
|
|
21
|
-
- [`GCSFilesystem`](https://mastra.ai/reference/workspace/gcs-filesystem) - Stores files in Google Cloud Storage
|
|
22
|
-
|
|
23
|
-
> **Tip:** `LocalFilesystem` is the simplest way to get started as it requires no external services. For cloud storage, use `S3Filesystem` or `GCSFilesystem`.
|
|
24
|
-
|
|
25
|
-
## Basic usage
|
|
26
|
-
|
|
27
|
-
Create a workspace with a filesystem and assign it to an agent. The agent can then read, write, and manage files as part of its tasks:
|
|
28
|
-
|
|
29
|
-
```typescript
|
|
30
|
-
import { Agent } from '@mastra/core/agent';
|
|
31
|
-
import { Workspace, LocalFilesystem } from '@mastra/core/workspace';
|
|
32
|
-
|
|
33
|
-
const workspace = new Workspace({
|
|
34
|
-
filesystem: new LocalFilesystem({
|
|
35
|
-
basePath: './workspace',
|
|
36
|
-
}),
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
const agent = new Agent({
|
|
40
|
-
id: 'file-agent',
|
|
41
|
-
model: 'openai/gpt-4o',
|
|
42
|
-
instructions: 'You are a helpful file management assistant.',
|
|
43
|
-
workspace,
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
// The agent now has filesystem tools available
|
|
47
|
-
const response = await agent.generate('List all files in the workspace');
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Containment
|
|
51
|
-
|
|
52
|
-
By default, `LocalFilesystem` runs in **contained mode** — all file operations are restricted to stay within `basePath`. This prevents path traversal attacks and symlink escapes.
|
|
53
|
-
|
|
54
|
-
In contained mode, absolute paths that fall within `basePath` are used as-is, while other absolute paths are treated as virtual paths relative to `basePath` (e.g. `/file.txt` resolves to `basePath/file.txt`). Any resolved path that escapes `basePath` throws a `PermissionError`.
|
|
55
|
-
|
|
56
|
-
If your agent needs to access specific paths outside `basePath`, use `allowedPaths` to grant access without disabling containment entirely:
|
|
57
|
-
|
|
58
|
-
```typescript
|
|
59
|
-
const workspace = new Workspace({
|
|
60
|
-
filesystem: new LocalFilesystem({
|
|
61
|
-
basePath: './workspace',
|
|
62
|
-
allowedPaths: ['/home/user/.config', '/home/user/documents'],
|
|
63
|
-
}),
|
|
64
|
-
});
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Allowed paths can be updated at runtime using the `setAllowedPaths()` method:
|
|
68
|
-
|
|
69
|
-
```typescript
|
|
70
|
-
// Add a path dynamically
|
|
71
|
-
workspace.filesystem.setAllowedPaths(prev => [...prev, '/home/user/documents']);
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
This is the recommended approach for least-privilege access — the agent can only reach the specific directories you allow.
|
|
75
|
-
|
|
76
|
-
If your agent needs unrestricted access to the entire filesystem, disable containment:
|
|
77
|
-
|
|
78
|
-
```typescript
|
|
79
|
-
const workspace = new Workspace({
|
|
80
|
-
filesystem: new LocalFilesystem({
|
|
81
|
-
basePath: './workspace',
|
|
82
|
-
contained: false,
|
|
83
|
-
}),
|
|
84
|
-
});
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
When `contained` is `false`, absolute paths are treated as real filesystem paths with no restriction.
|
|
88
|
-
|
|
89
|
-
## Read-only mode
|
|
90
|
-
|
|
91
|
-
To prevent agents from modifying files, enable read-only mode:
|
|
92
|
-
|
|
93
|
-
```typescript
|
|
94
|
-
const workspace = new Workspace({
|
|
95
|
-
filesystem: new LocalFilesystem({
|
|
96
|
-
basePath: './workspace',
|
|
97
|
-
readOnly: true,
|
|
98
|
-
}),
|
|
99
|
-
});
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
When read-only, write tools (`write_file`, `edit_file`, `delete`, `mkdir`) are not added to the agent's toolset. The agent can still read and list files.
|
|
103
|
-
|
|
104
|
-
## Mounts and CompositeFilesystem
|
|
105
|
-
|
|
106
|
-
When you use the `mounts` option on a workspace, Mastra creates a `CompositeFilesystem` that routes file operations to the correct provider based on path prefix.
|
|
107
|
-
|
|
108
|
-
```typescript
|
|
109
|
-
import { Workspace } from '@mastra/core/workspace';
|
|
110
|
-
import { S3Filesystem } from '@mastra/s3';
|
|
111
|
-
import { GCSFilesystem } from '@mastra/gcs';
|
|
112
|
-
import { E2BSandbox } from '@mastra/e2b';
|
|
113
|
-
|
|
114
|
-
const workspace = new Workspace({
|
|
115
|
-
mounts: {
|
|
116
|
-
'/data': new S3Filesystem({
|
|
117
|
-
bucket: 'my-bucket',
|
|
118
|
-
region: 'us-east-1',
|
|
119
|
-
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
|
|
120
|
-
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
|
|
121
|
-
}),
|
|
122
|
-
'/skills': new GCSFilesystem({
|
|
123
|
-
bucket: 'agent-skills',
|
|
124
|
-
}),
|
|
125
|
-
},
|
|
126
|
-
sandbox: new E2BSandbox({ id: 'dev-sandbox' }),
|
|
127
|
-
});
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
With this configuration:
|
|
131
|
-
|
|
132
|
-
- `read_file('/data/input.csv')` reads from the S3 bucket
|
|
133
|
-
- `write_file('/skills/guide.md', content)` writes to the GCS bucket
|
|
134
|
-
- `list_directory('/')` returns virtual entries for `/data` and `/skills`
|
|
135
|
-
- Commands in the sandbox can access files at `/data` and `/skills` via FUSE mounts
|
|
136
|
-
|
|
137
|
-
### Path routing
|
|
138
|
-
|
|
139
|
-
All file paths must start with a mount prefix. Operations on paths that don't match any mount will fail. Listing the root directory (`/`) returns virtual directory entries for each mount point.
|
|
140
|
-
|
|
141
|
-
Mount paths cannot be nested — for example, you cannot mount at both `/data` and `/data/sub`.
|
|
142
|
-
|
|
143
|
-
### `filesystem` vs `mounts`
|
|
144
|
-
|
|
145
|
-
`filesystem` and `mounts` are mutually exclusive options on a workspace:
|
|
146
|
-
|
|
147
|
-
- Use **`filesystem`** when you have a single storage provider and don't need to mount it into a sandbox. The agent gets file tools that operate directly against the provider.
|
|
148
|
-
- Use **`mounts`** when you need cloud storage accessible inside a sandbox, or when you want to combine multiple providers. The workspace creates a CompositeFilesystem for file tools and FUSE-mounts the storage into the sandbox.
|
|
149
|
-
|
|
150
|
-
For local development, you typically don't need `mounts` — a `LocalFilesystem` and `LocalSandbox` pointed at the same directory gives you both file tools and command execution on the same files. See [configuration patterns](https://mastra.ai/docs/workspace/overview) for more detail.
|
|
151
|
-
|
|
152
|
-
## Agent tools
|
|
153
|
-
|
|
154
|
-
When you configure a filesystem on a workspace, agents receive tools for reading, writing, listing, and deleting files. See [workspace class reference](https://mastra.ai/reference/workspace/workspace-class) for details.
|
|
155
|
-
|
|
156
|
-
## Related
|
|
157
|
-
|
|
158
|
-
- [LocalFilesystem reference](https://mastra.ai/reference/workspace/local-filesystem)
|
|
159
|
-
- [S3Filesystem reference](https://mastra.ai/reference/workspace/s3-filesystem)
|
|
160
|
-
- [GCSFilesystem reference](https://mastra.ai/reference/workspace/gcs-filesystem)
|
|
161
|
-
- [Workspace overview](https://mastra.ai/docs/workspace/overview)
|
|
162
|
-
- [Sandbox](https://mastra.ai/docs/workspace/sandbox)
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
# Workspaces
|
|
2
|
-
|
|
3
|
-
**Added in:** `@mastra/core@1.1.0`
|
|
4
|
-
|
|
5
|
-
A Mastra workspace gives agents a persistent environment for storing files and executing commands. Agents use workspace tools to read and write files, run shell commands, and search indexed content.
|
|
6
|
-
|
|
7
|
-
A workspace supports the following features:
|
|
8
|
-
|
|
9
|
-
- **[Filesystem](https://mastra.ai/docs/workspace/filesystem)**: File storage (read, write, list, delete)
|
|
10
|
-
- **[Sandbox](https://mastra.ai/docs/workspace/sandbox)**: Command execution (shell commands)
|
|
11
|
-
- **[Search](https://mastra.ai/docs/workspace/search)**: BM25, vector, or hybrid search over indexed content
|
|
12
|
-
- **[Skills](https://mastra.ai/docs/workspace/skills)**: Reusable instructions for agents
|
|
13
|
-
|
|
14
|
-
## How it works
|
|
15
|
-
|
|
16
|
-
When you assign a workspace to an agent, Mastra includes the corresponding tools in the agent's toolset. The agent can then use these tools to interact with files and execute commands.
|
|
17
|
-
|
|
18
|
-
You can create a workspace with any combination of the supported features. The agent receives only the tools relevant to what's configured.
|
|
19
|
-
|
|
20
|
-
## Usage
|
|
21
|
-
|
|
22
|
-
### Creating a workspace
|
|
23
|
-
|
|
24
|
-
Create a workspace by instantiating the `Workspace` class with your desired features:
|
|
25
|
-
|
|
26
|
-
```typescript
|
|
27
|
-
import { Workspace, LocalFilesystem, LocalSandbox } from '@mastra/core/workspace';
|
|
28
|
-
|
|
29
|
-
const workspace = new Workspace({
|
|
30
|
-
filesystem: new LocalFilesystem({
|
|
31
|
-
basePath: './workspace',
|
|
32
|
-
}),
|
|
33
|
-
sandbox: new LocalSandbox({
|
|
34
|
-
workingDirectory: './workspace',
|
|
35
|
-
}),
|
|
36
|
-
skills: ['/skills'],
|
|
37
|
-
});
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
The `skills` array specifies paths to directories containing skill definitions, see [Skills](https://mastra.ai/docs/workspace/skills).
|
|
41
|
-
|
|
42
|
-
### Global workspace
|
|
43
|
-
|
|
44
|
-
Set a workspace on the Mastra instance. All agents inherit this workspace unless they define their own:
|
|
45
|
-
|
|
46
|
-
```typescript
|
|
47
|
-
import { Mastra } from '@mastra/core';
|
|
48
|
-
import { Workspace, LocalFilesystem } from '@mastra/core/workspace';
|
|
49
|
-
|
|
50
|
-
const workspace = new Workspace({
|
|
51
|
-
filesystem: new LocalFilesystem({ basePath: './workspace' }),
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
const mastra = new Mastra({
|
|
55
|
-
workspace,
|
|
56
|
-
});
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Agent-scoped workspace
|
|
60
|
-
|
|
61
|
-
Assign a workspace directly to an agent to override the global workspace:
|
|
62
|
-
|
|
63
|
-
```typescript
|
|
64
|
-
import { Agent } from '@mastra/core/agent';
|
|
65
|
-
import { Workspace, LocalFilesystem } from '@mastra/core/workspace';
|
|
66
|
-
|
|
67
|
-
const workspace = new Workspace({
|
|
68
|
-
filesystem: new LocalFilesystem({ basePath: './agent-workspace' }),
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
export const myAgent = new Agent({
|
|
72
|
-
id: 'my-agent',
|
|
73
|
-
model: 'openai/gpt-4o',
|
|
74
|
-
workspace,
|
|
75
|
-
});
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Configuration patterns
|
|
79
|
-
|
|
80
|
-
Workspaces support several configuration patterns depending on what capabilities your agent needs. The two main building blocks are `filesystem` (file tools) and `sandbox` (command execution), with `mounts` as the way to bridge cloud storage into sandboxes.
|
|
81
|
-
|
|
82
|
-
### Filesystem + sandbox (local)
|
|
83
|
-
|
|
84
|
-
For local development, pair a `LocalFilesystem` and `LocalSandbox` pointed at the same directory. Since both operate on the local machine, files written through the filesystem are immediately available to commands in the sandbox:
|
|
85
|
-
|
|
86
|
-
```typescript
|
|
87
|
-
const workspace = new Workspace({
|
|
88
|
-
filesystem: new LocalFilesystem({ basePath: './workspace' }),
|
|
89
|
-
sandbox: new LocalSandbox({ workingDirectory: './workspace' }),
|
|
90
|
-
});
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
The agent receives both file tools and `execute_command`. This is the simplest full-featured setup.
|
|
94
|
-
|
|
95
|
-
### Mounts + sandbox (cloud storage)
|
|
96
|
-
|
|
97
|
-
When you need cloud storage accessible inside a sandbox, use `mounts`. This FUSE-mounts the cloud filesystem into the sandbox so commands can read and write files at the mount path:
|
|
98
|
-
|
|
99
|
-
```typescript
|
|
100
|
-
const workspace = new Workspace({
|
|
101
|
-
mounts: {
|
|
102
|
-
'/data': new S3Filesystem({
|
|
103
|
-
bucket: 'my-bucket',
|
|
104
|
-
region: 'us-east-1',
|
|
105
|
-
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
|
|
106
|
-
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
|
|
107
|
-
}),
|
|
108
|
-
'/skills': new GCSFilesystem({
|
|
109
|
-
bucket: 'agent-skills',
|
|
110
|
-
}),
|
|
111
|
-
},
|
|
112
|
-
sandbox: new E2BSandbox({ id: 'dev-sandbox' }),
|
|
113
|
-
});
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Under the hood, `mounts` creates a [CompositeFilesystem](https://mastra.ai/docs/workspace/filesystem) that routes file tool operations to the correct provider based on path prefix. Commands in the sandbox access the mounted paths directly (e.g., `ls /data`).
|
|
117
|
-
|
|
118
|
-
You can mount multiple providers at different paths. Each mount path must be unique and non-overlapping.
|
|
119
|
-
|
|
120
|
-
> **Note:** `filesystem` and `mounts` are mutually exclusive — you cannot use both in the same workspace. Use `filesystem` for a single provider without a sandbox, or `mounts` when you need to combine cloud storage with a sandbox.
|
|
121
|
-
|
|
122
|
-
### Filesystem only
|
|
123
|
-
|
|
124
|
-
Use a single `filesystem` when agents only need to read and write files. No command execution is available.
|
|
125
|
-
|
|
126
|
-
```typescript
|
|
127
|
-
const workspace = new Workspace({
|
|
128
|
-
filesystem: new S3Filesystem({
|
|
129
|
-
bucket: 'my-bucket',
|
|
130
|
-
region: 'us-east-1',
|
|
131
|
-
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
|
|
132
|
-
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
|
|
133
|
-
}),
|
|
134
|
-
});
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
The agent receives file tools (`read_file`, `write_file`, `list_directory`, etc.) that operate directly against the storage provider.
|
|
138
|
-
|
|
139
|
-
### Sandbox only
|
|
140
|
-
|
|
141
|
-
Use a single `sandbox` when agents only need to execute commands. No file tools are added.
|
|
142
|
-
|
|
143
|
-
```typescript
|
|
144
|
-
const workspace = new Workspace({
|
|
145
|
-
sandbox: new E2BSandbox({ id: 'dev-sandbox' }),
|
|
146
|
-
});
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
The agent receives the `execute_command` tool.
|
|
150
|
-
|
|
151
|
-
### Which pattern should I use?
|
|
152
|
-
|
|
153
|
-
| Scenario | Pattern |
|
|
154
|
-
| ----------------------------------------------------- | ----------------------------------------------------- |
|
|
155
|
-
| Local development with files and commands | `filesystem` + `sandbox` (both local, same directory) |
|
|
156
|
-
| Cloud storage accessible inside a cloud sandbox | `mounts` + `sandbox` |
|
|
157
|
-
| Multiple cloud providers in one sandbox | `mounts` + `sandbox` (one mount per provider) |
|
|
158
|
-
| Agent reads/writes files, no command execution needed | `filesystem` only |
|
|
159
|
-
| Agent runs commands, no file tools needed | `sandbox` only |
|
|
160
|
-
|
|
161
|
-
## Tool configuration
|
|
162
|
-
|
|
163
|
-
Configure tool behavior through the `tools` option on the workspace. This controls which tools are enabled and how they behave.
|
|
164
|
-
|
|
165
|
-
```typescript
|
|
166
|
-
import { Workspace, LocalFilesystem, LocalSandbox, WORKSPACE_TOOLS } from '@mastra/core/workspace';
|
|
167
|
-
|
|
168
|
-
const workspace = new Workspace({
|
|
169
|
-
filesystem: new LocalFilesystem({ basePath: './workspace' }),
|
|
170
|
-
sandbox: new LocalSandbox({ workingDirectory: './workspace' }),
|
|
171
|
-
tools: {
|
|
172
|
-
// Global defaults
|
|
173
|
-
enabled: true,
|
|
174
|
-
requireApproval: false,
|
|
175
|
-
|
|
176
|
-
// Per-tool overrides
|
|
177
|
-
[WORKSPACE_TOOLS.FILESYSTEM.WRITE_FILE]: {
|
|
178
|
-
requireApproval: true,
|
|
179
|
-
requireReadBeforeWrite: true,
|
|
180
|
-
},
|
|
181
|
-
[WORKSPACE_TOOLS.FILESYSTEM.DELETE]: {
|
|
182
|
-
enabled: false,
|
|
183
|
-
},
|
|
184
|
-
[WORKSPACE_TOOLS.SANDBOX.EXECUTE_COMMAND]: {
|
|
185
|
-
requireApproval: true,
|
|
186
|
-
},
|
|
187
|
-
},
|
|
188
|
-
});
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### Tool options
|
|
192
|
-
|
|
193
|
-
| Option | Type | Description |
|
|
194
|
-
| ------------------------ | --------- | --------------------------------------------------------------------------- |
|
|
195
|
-
| `enabled` | `boolean` | Whether the tool is available (default: `true`) |
|
|
196
|
-
| `requireApproval` | `boolean` | Whether the tool requires user approval before execution (default: `false`) |
|
|
197
|
-
| `requireReadBeforeWrite` | `boolean` | For write tools: require reading the file first (default: `false`) |
|
|
198
|
-
|
|
199
|
-
### Read-before-write
|
|
200
|
-
|
|
201
|
-
When `requireReadBeforeWrite` is enabled on write tools, agents must read a file before writing to it. This prevents overwriting files the agent hasn't seen:
|
|
202
|
-
|
|
203
|
-
- **New files**: Can be written without reading (they don't exist yet)
|
|
204
|
-
- **Existing files**: Must be read first
|
|
205
|
-
- **Externally modified files**: If a file changed since the agent read it, the write fails
|
|
206
|
-
|
|
207
|
-
## Initialization
|
|
208
|
-
|
|
209
|
-
Calling `init()` is optional in most cases—some providers initialize on first operation. Call `init()` manually when using a workspace outside of Mastra (standalone scripts, tests) or when you need to pre-provision resources before the first agent interaction.
|
|
210
|
-
|
|
211
|
-
```typescript
|
|
212
|
-
import { Workspace, LocalFilesystem, LocalSandbox } from '@mastra/core/workspace';
|
|
213
|
-
|
|
214
|
-
const workspace = new Workspace({
|
|
215
|
-
filesystem: new LocalFilesystem({ basePath: './workspace' }),
|
|
216
|
-
sandbox: new LocalSandbox({ workingDirectory: './workspace' }),
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
// Optional: pre-create directories and sandbox before first use
|
|
220
|
-
await workspace.init();
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
### What init() does
|
|
224
|
-
|
|
225
|
-
Initialization runs setup logic for each configured provider:
|
|
226
|
-
|
|
227
|
-
- `LocalFilesystem`: Creates the base directory if it doesn't exist
|
|
228
|
-
- `LocalSandbox`: Creates the working directory
|
|
229
|
-
- `Search` (if configured): Indexes files from `autoIndexPaths`, see [Search and Indexing](https://mastra.ai/docs/workspace/search)
|
|
230
|
-
|
|
231
|
-
External providers may perform additional setup like establishing connections or authenticating.
|
|
232
|
-
|
|
233
|
-
## Related
|
|
234
|
-
|
|
235
|
-
- [Filesystem](https://mastra.ai/docs/workspace/filesystem)
|
|
236
|
-
- [Sandbox](https://mastra.ai/docs/workspace/sandbox)
|
|
237
|
-
- [Skills](https://mastra.ai/docs/workspace/skills)
|
|
238
|
-
- [Search and indexing](https://mastra.ai/docs/workspace/search)
|
|
239
|
-
- [Workspace class reference](https://mastra.ai/reference/workspace/workspace-class)
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# Sandbox
|
|
2
|
-
|
|
3
|
-
**Added in:** `@mastra/core@1.1.0`
|
|
4
|
-
|
|
5
|
-
Sandbox providers give agents the ability to execute shell commands. When you configure a sandbox on a workspace, agents can run commands as part of their tasks.
|
|
6
|
-
|
|
7
|
-
A sandbox provider executes commands in a controlled environment:
|
|
8
|
-
|
|
9
|
-
- **Command execution** - Run shell commands with arguments
|
|
10
|
-
- **Working directory** - Commands run from a specific directory
|
|
11
|
-
- **Environment variables** - Control what variables are available
|
|
12
|
-
- **Timeouts** - Prevent long-running commands from hanging
|
|
13
|
-
- **Isolation** - Optional OS-level sandboxing for security
|
|
14
|
-
|
|
15
|
-
When you assign a workspace with a sandbox to an agent, Mastra automatically includes the `execute_command` tool in the agent's toolset.
|
|
16
|
-
|
|
17
|
-
## Supported providers
|
|
18
|
-
|
|
19
|
-
Available providers:
|
|
20
|
-
|
|
21
|
-
- [`LocalSandbox`](https://mastra.ai/reference/workspace/local-sandbox) - Executes commands on the local machine
|
|
22
|
-
- [`E2BSandbox`](https://mastra.ai/reference/workspace/e2b-sandbox) - Executes commands in isolated E2B cloud sandboxes
|
|
23
|
-
|
|
24
|
-
## Basic usage
|
|
25
|
-
|
|
26
|
-
Create a workspace with a sandbox and assign it to an agent. The agent can then execute shell commands:
|
|
27
|
-
|
|
28
|
-
```typescript
|
|
29
|
-
import { Agent } from '@mastra/core/agent';
|
|
30
|
-
import { Workspace, LocalFilesystem, LocalSandbox } from '@mastra/core/workspace';
|
|
31
|
-
|
|
32
|
-
const workspace = new Workspace({
|
|
33
|
-
filesystem: new LocalFilesystem({
|
|
34
|
-
basePath: './workspace',
|
|
35
|
-
}),
|
|
36
|
-
sandbox: new LocalSandbox({
|
|
37
|
-
workingDirectory: './workspace',
|
|
38
|
-
}),
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
const agent = new Agent({
|
|
42
|
-
id: 'dev-agent',
|
|
43
|
-
model: 'openai/gpt-4o',
|
|
44
|
-
instructions: 'You are a helpful development assistant.',
|
|
45
|
-
workspace,
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
// The agent now has the execute_command tool available
|
|
49
|
-
const response = await agent.generate('Run `ls -la` in the workspace directory');
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
See [`LocalSandbox` reference](https://mastra.ai/reference/workspace/local-sandbox) for configuration options including environment isolation and native OS sandboxing.
|
|
53
|
-
|
|
54
|
-
## Agent tools
|
|
55
|
-
|
|
56
|
-
When you configure a sandbox on a workspace, agents receive the `execute_command` tool for running shell commands. See [workspace class reference](https://mastra.ai/reference/workspace/workspace-class) for details.
|
|
57
|
-
|
|
58
|
-
## Related
|
|
59
|
-
|
|
60
|
-
- [`LocalSandbox` reference](https://mastra.ai/reference/workspace/local-sandbox)
|
|
61
|
-
- [`E2BSandbox` reference](https://mastra.ai/reference/workspace/e2b-sandbox)
|
|
62
|
-
- [Workspace overview](https://mastra.ai/docs/workspace/overview)
|
|
63
|
-
- [Filesystem](https://mastra.ai/docs/workspace/filesystem)
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
# Search and Indexing
|
|
2
|
-
|
|
3
|
-
**Added in:** `@mastra/core@1.1.0`
|
|
4
|
-
|
|
5
|
-
Search lets agents find relevant content in indexed workspace files. When an agent needs to answer a question or find information, it can search the indexed content instead of reading every file.
|
|
6
|
-
|
|
7
|
-
## How it works
|
|
8
|
-
|
|
9
|
-
Workspace search has two phases: indexing and querying.
|
|
10
|
-
|
|
11
|
-
### Indexing
|
|
12
|
-
|
|
13
|
-
Content must be indexed before it can be searched. When you index a document:
|
|
14
|
-
|
|
15
|
-
- The content is tokenized (split into searchable terms)
|
|
16
|
-
- For BM25: term frequencies and document statistics are computed
|
|
17
|
-
- For vector: the content is embedded using your embedder function and stored in the vector store
|
|
18
|
-
|
|
19
|
-
Each indexed document has:
|
|
20
|
-
|
|
21
|
-
- **id** - A unique identifier (typically the file path)
|
|
22
|
-
- **content** - The text content
|
|
23
|
-
- **metadata** - Optional key-value data stored with the document
|
|
24
|
-
|
|
25
|
-
### Querying
|
|
26
|
-
|
|
27
|
-
When you search:
|
|
28
|
-
|
|
29
|
-
1. The query is processed using the same tokenization/embedding as indexing
|
|
30
|
-
2. Documents are scored based on relevance to the query
|
|
31
|
-
3. Results are ranked by score and returned with the matching content
|
|
32
|
-
|
|
33
|
-
Workspaces support three search modes: BM25 keyword search, vector semantic search, and hybrid search that combines both.
|
|
34
|
-
|
|
35
|
-
## BM25 keyword search
|
|
36
|
-
|
|
37
|
-
BM25 scores documents based on term frequency and document length. It works well for exact matches and specific terminology.
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
import { Workspace, LocalFilesystem } from '@mastra/core/workspace';
|
|
41
|
-
|
|
42
|
-
const workspace = new Workspace({
|
|
43
|
-
filesystem: new LocalFilesystem({ basePath: './workspace' }),
|
|
44
|
-
bm25: true,
|
|
45
|
-
});
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
For custom BM25 parameters (`k1` is term frequency saturation, `b` is document length normalization):
|
|
49
|
-
|
|
50
|
-
```typescript
|
|
51
|
-
const workspace = new Workspace({
|
|
52
|
-
filesystem: new LocalFilesystem({ basePath: './workspace' }),
|
|
53
|
-
bm25: {
|
|
54
|
-
k1: 1.5,
|
|
55
|
-
b: 0.75,
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Vector search
|
|
61
|
-
|
|
62
|
-
Vector search uses embeddings to find semantically similar content. It requires a vector store and embedder function.
|
|
63
|
-
|
|
64
|
-
```typescript
|
|
65
|
-
import { Workspace, LocalFilesystem } from '@mastra/core/workspace';
|
|
66
|
-
import { PineconeVector } from '@mastra/pinecone';
|
|
67
|
-
import { embed } from 'ai';
|
|
68
|
-
import { openai } from '@ai-sdk/openai';
|
|
69
|
-
|
|
70
|
-
const workspace = new Workspace({
|
|
71
|
-
filesystem: new LocalFilesystem({ basePath: './workspace' }),
|
|
72
|
-
vectorStore: new PineconeVector({
|
|
73
|
-
apiKey: process.env.PINECONE_API_KEY,
|
|
74
|
-
index: 'workspace-index',
|
|
75
|
-
}),
|
|
76
|
-
embedder: async (text: string) => {
|
|
77
|
-
const { embedding } = await embed({
|
|
78
|
-
model: openai.embedding('text-embedding-3-small'),
|
|
79
|
-
value: text,
|
|
80
|
-
});
|
|
81
|
-
return embedding;
|
|
82
|
-
},
|
|
83
|
-
});
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## Hybrid search
|
|
87
|
-
|
|
88
|
-
Configure both BM25 and vector search to enable hybrid mode, which combines keyword matching with semantic understanding.
|
|
89
|
-
|
|
90
|
-
```typescript
|
|
91
|
-
const workspace = new Workspace({
|
|
92
|
-
filesystem: new LocalFilesystem({ basePath: './workspace' }),
|
|
93
|
-
bm25: true,
|
|
94
|
-
vectorStore: pineconeVector,
|
|
95
|
-
embedder: embedderFn,
|
|
96
|
-
});
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Indexing content
|
|
100
|
-
|
|
101
|
-
### Manual indexing
|
|
102
|
-
|
|
103
|
-
Use `workspace.index()` to add content to the search index programmatically. The file paths become document IDs. You can also pass metadata for each document.
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
// Basic indexing
|
|
107
|
-
await workspace.index('/docs/guide.md', 'Content of the guide...');
|
|
108
|
-
|
|
109
|
-
// Index with metadata for filtering or context
|
|
110
|
-
await workspace.index('/docs/api.md', apiDocContent, {
|
|
111
|
-
metadata: {
|
|
112
|
-
category: 'api',
|
|
113
|
-
version: '2.0',
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Manual indexing is useful when:
|
|
119
|
-
|
|
120
|
-
- You're indexing content that doesn't come from files (e.g., database records, API responses)
|
|
121
|
-
- You want to pre-process or chunk content before indexing
|
|
122
|
-
- You need to add custom metadata to documents
|
|
123
|
-
|
|
124
|
-
### Auto-indexing
|
|
125
|
-
|
|
126
|
-
Configure `autoIndexPaths` to automatically index files when the workspace initializes. Each path specifies a directory to index recursively.
|
|
127
|
-
|
|
128
|
-
```typescript
|
|
129
|
-
const workspace = new Workspace({
|
|
130
|
-
filesystem: new LocalFilesystem({ basePath: './workspace' }),
|
|
131
|
-
bm25: true,
|
|
132
|
-
autoIndexPaths: ['/docs', '/support/faq'],
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
await workspace.init();
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
When `init()` is called, all files in the specified directories are read and indexed for search. The file path becomes the document ID.
|
|
139
|
-
|
|
140
|
-
> **Note:** Paths must be directories, not glob patterns. Use `/docs` to index all files in the docs directory recursively. Glob patterns like `**/*.md` are not supported.
|
|
141
|
-
|
|
142
|
-
## Searching
|
|
143
|
-
|
|
144
|
-
Use `workspace.search()` to find relevant content. Results are ranked by relevance score.
|
|
145
|
-
|
|
146
|
-
```typescript
|
|
147
|
-
const results = await workspace.search('password reset');
|
|
148
|
-
|
|
149
|
-
for (const result of results) {
|
|
150
|
-
console.log(`${result.id}: ${result.score}`);
|
|
151
|
-
console.log(result.content);
|
|
152
|
-
}
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### Search options
|
|
156
|
-
|
|
157
|
-
You can customize the search behavior with options:
|
|
158
|
-
|
|
159
|
-
```typescript
|
|
160
|
-
const results = await workspace.search('authentication flow', {
|
|
161
|
-
topK: 10,
|
|
162
|
-
mode: 'hybrid',
|
|
163
|
-
minScore: 0.5,
|
|
164
|
-
vectorWeight: 0.5,
|
|
165
|
-
});
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
| Option | Description |
|
|
169
|
-
| -------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
170
|
-
| `topK` | Maximum number of results to return. Default: 5 |
|
|
171
|
-
| `mode` | Search mode: `'bm25'`, `'vector'`, or `'hybrid'`. Defaults to the best available mode based on configuration. |
|
|
172
|
-
| `minScore` | Filter out results below this score threshold (0-1). |
|
|
173
|
-
| `vectorWeight` | In hybrid mode, how much to weight vector scores vs BM25. 0 = all BM25, 1 = all vector, 0.5 = equal. |
|
|
174
|
-
|
|
175
|
-
### Search results
|
|
176
|
-
|
|
177
|
-
Each result contains:
|
|
178
|
-
|
|
179
|
-
```typescript
|
|
180
|
-
interface SearchResult {
|
|
181
|
-
id: string; // Document ID (typically file path)
|
|
182
|
-
content: string; // The matching content
|
|
183
|
-
score: number; // Relevance score (0-1)
|
|
184
|
-
lineRange?: { // Lines where the match was found
|
|
185
|
-
start: number;
|
|
186
|
-
end: number;
|
|
187
|
-
};
|
|
188
|
-
metadata?: Record<string, unknown>; // Metadata stored with the document
|
|
189
|
-
scoreDetails?: { // Score breakdown (hybrid mode only)
|
|
190
|
-
vector?: number;
|
|
191
|
-
bm25?: number;
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
**Understanding scores:**
|
|
197
|
-
|
|
198
|
-
- Scores range from 0 to 1, where 1 is a perfect match
|
|
199
|
-
- BM25 scores are normalized based on the best match in the result set
|
|
200
|
-
- Vector scores represent cosine similarity between query and document embeddings
|
|
201
|
-
- In hybrid mode, scores are combined using the `vectorWeight` parameter
|
|
202
|
-
|
|
203
|
-
### When to use each mode
|
|
204
|
-
|
|
205
|
-
| Mode | Best for | Example queries |
|
|
206
|
-
| -------- | ------------------------------------ | ------------------------------------------------------------------------ |
|
|
207
|
-
| `bm25` | Exact terms, technical queries, code | "useState hook", "404 error", "config.yaml" |
|
|
208
|
-
| `vector` | Conceptual queries, natural language | "how to handle user authentication", "best practices for error handling" |
|
|
209
|
-
| `hybrid` | General search, unknown query types | Most agent use cases |
|
|
210
|
-
|
|
211
|
-
## Agent tools
|
|
212
|
-
|
|
213
|
-
When you configure search on a workspace, agents receive tools for searching and indexing content. See [workspace class reference](https://mastra.ai/reference/workspace/workspace-class) for details.
|
|
214
|
-
|
|
215
|
-
## Related
|
|
216
|
-
|
|
217
|
-
- [Workspace overview](https://mastra.ai/docs/workspace/overview)
|
|
218
|
-
- [RAG overview](https://mastra.ai/docs/rag/overview)
|
|
219
|
-
- [Workspace class reference](https://mastra.ai/reference/workspace/workspace-class)
|