@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,327 +0,0 @@
|
|
|
1
|
-
# LocalFilesystem
|
|
2
|
-
|
|
3
|
-
**Added in:** `@mastra/core@1.1.0`
|
|
4
|
-
|
|
5
|
-
Stores files in a directory on the local filesystem.
|
|
6
|
-
|
|
7
|
-
> **Info:** For interface details, see [WorkspaceFilesystem Interface](https://mastra.ai/reference/workspace/filesystem).
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
Add a `LocalFilesystem` to a workspace and assign it to an agent. The agent can then read, write, and manage files as part of its tasks:
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
import { Agent } from '@mastra/core/agent';
|
|
15
|
-
import { Workspace, LocalFilesystem } from '@mastra/core/workspace';
|
|
16
|
-
|
|
17
|
-
const workspace = new Workspace({
|
|
18
|
-
filesystem: new LocalFilesystem({
|
|
19
|
-
basePath: './workspace',
|
|
20
|
-
}),
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
const agent = new Agent({
|
|
24
|
-
id: 'file-agent',
|
|
25
|
-
model: 'openai/gpt-4o',
|
|
26
|
-
workspace,
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
// The agent now has filesystem tools available
|
|
30
|
-
const response = await agent.generate('List all files in the workspace');
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Constructor parameters
|
|
34
|
-
|
|
35
|
-
**basePath:** (`string`): Base directory path on disk. All file paths are resolved relative to this directory.
|
|
36
|
-
|
|
37
|
-
**id?:** (`string`): Unique identifier for this filesystem instance (Default: `Auto-generated`)
|
|
38
|
-
|
|
39
|
-
**contained?:** (`boolean`): When true, all file operations are restricted to stay within basePath. Prevents path traversal attacks and symlink escapes. See \[containment]\(/docs/workspace/filesystem#containment). (Default: `true`)
|
|
40
|
-
|
|
41
|
-
**allowedPaths?:** (`string[]`): Additional absolute paths that are allowed beyond basePath. Useful with \`contained: true\` to grant access to specific directories without disabling containment entirely. Paths are resolved to absolute paths. (Default: `[]`)
|
|
42
|
-
|
|
43
|
-
**readOnly?:** (`boolean`): When true, all write operations are blocked. Read operations are still allowed. (Default: `false`)
|
|
44
|
-
|
|
45
|
-
## Properties
|
|
46
|
-
|
|
47
|
-
**id:** (`string`): Filesystem instance identifier
|
|
48
|
-
|
|
49
|
-
**name:** (`string`): Provider name ('LocalFilesystem')
|
|
50
|
-
|
|
51
|
-
**provider:** (`string`): Provider identifier ('local')
|
|
52
|
-
|
|
53
|
-
**basePath:** (`string`): The absolute base path on disk
|
|
54
|
-
|
|
55
|
-
**readOnly:** (`boolean | undefined`): Whether the filesystem is in read-only mode
|
|
56
|
-
|
|
57
|
-
**allowedPaths:** (`readonly string[]`): Current set of additional allowed paths (absolute, resolved). These paths are permitted beyond basePath when containment is enabled.
|
|
58
|
-
|
|
59
|
-
## Methods
|
|
60
|
-
|
|
61
|
-
### `init()`
|
|
62
|
-
|
|
63
|
-
Initialize the filesystem. Creates the base directory if it doesn't exist.
|
|
64
|
-
|
|
65
|
-
```typescript
|
|
66
|
-
await filesystem.init();
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Called by `workspace.init()`.
|
|
70
|
-
|
|
71
|
-
### Lazy initialization
|
|
72
|
-
|
|
73
|
-
LocalFilesystem initializes on first operation if not already initialized, creating the base directory automatically. Calling `init()` explicitly is optional but can be useful to pre-create directories before the first operation.
|
|
74
|
-
|
|
75
|
-
### `destroy()`
|
|
76
|
-
|
|
77
|
-
Clean up filesystem resources.
|
|
78
|
-
|
|
79
|
-
```typescript
|
|
80
|
-
await filesystem.destroy();
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
Called by `workspace.destroy()`.
|
|
84
|
-
|
|
85
|
-
### `setAllowedPaths(pathsOrUpdater)`
|
|
86
|
-
|
|
87
|
-
Update the allowed paths at runtime. Accepts a new paths array (replaces current) or an updater callback that receives the current paths and returns the new set.
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
// Set directly
|
|
91
|
-
filesystem.setAllowedPaths(['/home/user/.config']);
|
|
92
|
-
|
|
93
|
-
// Update with callback
|
|
94
|
-
filesystem.setAllowedPaths(prev => [...prev, '/home/user/documents']);
|
|
95
|
-
|
|
96
|
-
// Clear all allowed paths
|
|
97
|
-
filesystem.setAllowedPaths([]);
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
**Parameters:**
|
|
101
|
-
|
|
102
|
-
**pathsOrUpdater:** (`string[] | ((current: readonly string[]) => string[])`): New allowed paths array or updater function receiving current paths
|
|
103
|
-
|
|
104
|
-
### `readFile(path, options?)`
|
|
105
|
-
|
|
106
|
-
Read file contents.
|
|
107
|
-
|
|
108
|
-
```typescript
|
|
109
|
-
const content = await filesystem.readFile('/docs/guide.md');
|
|
110
|
-
const buffer = await filesystem.readFile('/image.png', { encoding: 'binary' });
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
**Parameters:**
|
|
114
|
-
|
|
115
|
-
**path:** (`string`): File path relative to basePath
|
|
116
|
-
|
|
117
|
-
**options.encoding?:** (`'utf-8' | 'binary'`): Text or binary encoding (Default: `'utf-8'`)
|
|
118
|
-
|
|
119
|
-
### `writeFile(path, content, options?)`
|
|
120
|
-
|
|
121
|
-
Write content to a file.
|
|
122
|
-
|
|
123
|
-
```typescript
|
|
124
|
-
await filesystem.writeFile('/docs/new.md', '# New Document');
|
|
125
|
-
await filesystem.writeFile('/nested/path/file.md', content, { recursive: true });
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
**Parameters:**
|
|
129
|
-
|
|
130
|
-
**path:** (`string`): File path relative to basePath
|
|
131
|
-
|
|
132
|
-
**content:** (`string | Buffer`): File content
|
|
133
|
-
|
|
134
|
-
**options.recursive?:** (`boolean`): Create parent directories if they don't exist (Default: `false`)
|
|
135
|
-
|
|
136
|
-
**options.overwrite?:** (`boolean`): Overwrite existing file (Default: `true`)
|
|
137
|
-
|
|
138
|
-
### `appendFile(path, content)`
|
|
139
|
-
|
|
140
|
-
Append content to an existing file.
|
|
141
|
-
|
|
142
|
-
```typescript
|
|
143
|
-
await filesystem.appendFile('/logs/app.log', 'New log entry\n');
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**Parameters:**
|
|
147
|
-
|
|
148
|
-
**path:** (`string`): File path relative to basePath
|
|
149
|
-
|
|
150
|
-
**content:** (`string | Buffer`): Content to append
|
|
151
|
-
|
|
152
|
-
### `deleteFile(path, options?)`
|
|
153
|
-
|
|
154
|
-
Delete a file.
|
|
155
|
-
|
|
156
|
-
```typescript
|
|
157
|
-
await filesystem.deleteFile('/docs/old.md');
|
|
158
|
-
await filesystem.deleteFile('/docs/maybe.md', { force: true }); // Don't throw if missing
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
**Parameters:**
|
|
162
|
-
|
|
163
|
-
**path:** (`string`): File path
|
|
164
|
-
|
|
165
|
-
**options.force?:** (`boolean`): Don't throw error if file doesn't exist (Default: `false`)
|
|
166
|
-
|
|
167
|
-
### `copyFile(src, dest, options?)`
|
|
168
|
-
|
|
169
|
-
Copy a file to a new location.
|
|
170
|
-
|
|
171
|
-
```typescript
|
|
172
|
-
await filesystem.copyFile('/docs/template.md', '/docs/new-doc.md');
|
|
173
|
-
await filesystem.copyFile('/src/config.json', '/backup/config.json', { overwrite: false });
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
**Parameters:**
|
|
177
|
-
|
|
178
|
-
**src:** (`string`): Source file path
|
|
179
|
-
|
|
180
|
-
**dest:** (`string`): Destination file path
|
|
181
|
-
|
|
182
|
-
**options.overwrite?:** (`boolean`): Overwrite destination if it exists (Default: `true`)
|
|
183
|
-
|
|
184
|
-
### `moveFile(src, dest, options?)`
|
|
185
|
-
|
|
186
|
-
Move or rename a file.
|
|
187
|
-
|
|
188
|
-
```typescript
|
|
189
|
-
await filesystem.moveFile('/docs/draft.md', '/docs/final.md');
|
|
190
|
-
await filesystem.moveFile('/temp/upload.txt', '/files/document.txt');
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
**Parameters:**
|
|
194
|
-
|
|
195
|
-
**src:** (`string`): Source file path
|
|
196
|
-
|
|
197
|
-
**dest:** (`string`): Destination file path
|
|
198
|
-
|
|
199
|
-
**options.overwrite?:** (`boolean`): Overwrite destination if it exists (Default: `true`)
|
|
200
|
-
|
|
201
|
-
### `mkdir(path, options?)`
|
|
202
|
-
|
|
203
|
-
Create a directory.
|
|
204
|
-
|
|
205
|
-
```typescript
|
|
206
|
-
await filesystem.mkdir('/docs/api');
|
|
207
|
-
await filesystem.mkdir('/deeply/nested/path', { recursive: true });
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
**Parameters:**
|
|
211
|
-
|
|
212
|
-
**path:** (`string`): Directory path
|
|
213
|
-
|
|
214
|
-
**options.recursive?:** (`boolean`): Create parent directories (Default: `false`)
|
|
215
|
-
|
|
216
|
-
### `rmdir(path, options?)`
|
|
217
|
-
|
|
218
|
-
Remove a directory.
|
|
219
|
-
|
|
220
|
-
```typescript
|
|
221
|
-
await filesystem.rmdir('/docs/old');
|
|
222
|
-
await filesystem.rmdir('/docs/nested', { recursive: true });
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
**Parameters:**
|
|
226
|
-
|
|
227
|
-
**path:** (`string`): Directory path
|
|
228
|
-
|
|
229
|
-
**options.recursive?:** (`boolean`): Remove contents recursively (Default: `false`)
|
|
230
|
-
|
|
231
|
-
**options.force?:** (`boolean`): Don't throw if directory doesn't exist (Default: `false`)
|
|
232
|
-
|
|
233
|
-
### `readdir(path, options?)`
|
|
234
|
-
|
|
235
|
-
List directory contents.
|
|
236
|
-
|
|
237
|
-
```typescript
|
|
238
|
-
const entries = await filesystem.readdir('/docs');
|
|
239
|
-
// [{ name: 'guide.md', type: 'file' }, { name: 'api', type: 'directory' }]
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
### `exists(path)`
|
|
243
|
-
|
|
244
|
-
Check if a path exists.
|
|
245
|
-
|
|
246
|
-
```typescript
|
|
247
|
-
const exists = await filesystem.exists('/docs/guide.md');
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
### `stat(path)`
|
|
251
|
-
|
|
252
|
-
Get file or directory metadata.
|
|
253
|
-
|
|
254
|
-
```typescript
|
|
255
|
-
const stat = await filesystem.stat('/docs/guide.md');
|
|
256
|
-
// { type: 'file', size: 1234, modifiedAt: Date, createdAt: Date, path: '/docs/guide.md' }
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
### `getInfo()`
|
|
260
|
-
|
|
261
|
-
Returns metadata about this filesystem instance.
|
|
262
|
-
|
|
263
|
-
```typescript
|
|
264
|
-
const info = filesystem.getInfo();
|
|
265
|
-
// { id: '...', name: 'LocalFilesystem', provider: 'local', basePath: '/workspace', readOnly: false }
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
### `getInstructions()`
|
|
269
|
-
|
|
270
|
-
Returns a description of how paths work in this filesystem. Used in tool descriptions.
|
|
271
|
-
|
|
272
|
-
```typescript
|
|
273
|
-
const instructions = filesystem.getInstructions();
|
|
274
|
-
// 'Local filesystem at "/workspace". Files at workspace path "/foo" are stored at "/workspace/foo" on disk.'
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
## Path resolution
|
|
278
|
-
|
|
279
|
-
### How basePath works
|
|
280
|
-
|
|
281
|
-
The `basePath` option sets the root directory for all file operations. File paths passed to methods like `readFile()` are resolved relative to this base:
|
|
282
|
-
|
|
283
|
-
- Leading slashes are stripped: `/docs/guide.md` → `docs/guide.md`
|
|
284
|
-
- The path is normalized and joined with basePath
|
|
285
|
-
- Result: `./workspace` + `docs/guide.md` → `./workspace/docs/guide.md`
|
|
286
|
-
|
|
287
|
-
```typescript
|
|
288
|
-
const filesystem = new LocalFilesystem({
|
|
289
|
-
basePath: './workspace',
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
// These all resolve to ./workspace/docs/guide.md
|
|
293
|
-
await filesystem.readFile('/docs/guide.md');
|
|
294
|
-
await filesystem.readFile('docs/guide.md');
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
### Relative paths and execution context
|
|
298
|
-
|
|
299
|
-
When you use a relative path for `basePath`, it resolves from `process.cwd()`. In Mastra projects, cwd varies depending on how you run your code:
|
|
300
|
-
|
|
301
|
-
| Context | Working directory | `./workspace` resolves to |
|
|
302
|
-
| -------------- | ------------------------- | ------------------------------- |
|
|
303
|
-
| `mastra dev` | `./src/mastra/public/` | `./src/mastra/public/workspace` |
|
|
304
|
-
| `mastra start` | `./.mastra/output/` | `./.mastra/output/workspace` |
|
|
305
|
-
| Direct script | Where you ran the command | Relative to that location |
|
|
306
|
-
|
|
307
|
-
This can cause confusion when the same relative path resolves to different locations.
|
|
308
|
-
|
|
309
|
-
### Recommended: Use absolute paths
|
|
310
|
-
|
|
311
|
-
For consistent paths across all execution contexts, use an environment variable with an absolute path:
|
|
312
|
-
|
|
313
|
-
```typescript
|
|
314
|
-
import { LocalFilesystem } from '@mastra/core/workspace';
|
|
315
|
-
|
|
316
|
-
const filesystem = new LocalFilesystem({
|
|
317
|
-
basePath: process.env.WORKSPACE_PATH!,
|
|
318
|
-
});
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
Set `WORKSPACE_PATH` in your environment to an absolute path like `/home/user/my-project/workspace`. This ensures the workspace path is consistent regardless of how you run your code.
|
|
322
|
-
|
|
323
|
-
## Related
|
|
324
|
-
|
|
325
|
-
- [WorkspaceFilesystem interface](https://mastra.ai/reference/workspace/filesystem)
|
|
326
|
-
- [Workspace class](https://mastra.ai/reference/workspace/workspace-class)
|
|
327
|
-
- [Workspace overview](https://mastra.ai/docs/workspace/overview)
|
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
# LocalSandbox
|
|
2
|
-
|
|
3
|
-
**Added in:** `@mastra/core@1.1.0`
|
|
4
|
-
|
|
5
|
-
Executes commands on the local system.
|
|
6
|
-
|
|
7
|
-
> **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
Add a `LocalSandbox` to a workspace and assign it to an agent. The agent can then execute shell commands as part of its tasks:
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
import { Agent } from '@mastra/core/agent';
|
|
15
|
-
import { Workspace, LocalFilesystem, LocalSandbox } from '@mastra/core/workspace';
|
|
16
|
-
|
|
17
|
-
const workspace = new Workspace({
|
|
18
|
-
filesystem: new LocalFilesystem({ basePath: './workspace' }),
|
|
19
|
-
sandbox: new LocalSandbox({
|
|
20
|
-
workingDirectory: './workspace',
|
|
21
|
-
env: {
|
|
22
|
-
NODE_ENV: 'development',
|
|
23
|
-
},
|
|
24
|
-
}),
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
const agent = new Agent({
|
|
28
|
-
id: 'dev-agent',
|
|
29
|
-
model: 'openai/gpt-4o',
|
|
30
|
-
workspace,
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
// The agent now has the execute_command tool available
|
|
34
|
-
const response = await agent.generate('Run npm install');
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Auto-start behavior
|
|
38
|
-
|
|
39
|
-
`LocalSandbox` automatically starts on the first command execution if not already running. You can also explicitly start the sandbox by calling `workspace.init()` at application startup to avoid first-command latency.
|
|
40
|
-
|
|
41
|
-
## Constructor parameters
|
|
42
|
-
|
|
43
|
-
**id?:** (`string`): Unique identifier for this sandbox instance (Default: `Auto-generated`)
|
|
44
|
-
|
|
45
|
-
**workingDirectory?:** (`string`): Directory for command execution. Defaults to .sandbox/ in process.cwd() for isolation from seatbelt profiles. (Default: `process.cwd()/.sandbox/`)
|
|
46
|
-
|
|
47
|
-
**env?:** (`NodeJS.ProcessEnv`): Environment variables to set. PATH is included by default unless overridden.
|
|
48
|
-
|
|
49
|
-
**timeout?:** (`number`): Default timeout for operations in milliseconds (Default: `30000`)
|
|
50
|
-
|
|
51
|
-
**isolation?:** (`'none' | 'seatbelt' | 'bwrap'`): Native OS sandboxing backend. 'seatbelt' for macOS, 'bwrap' for Linux. (Default: `'none'`)
|
|
52
|
-
|
|
53
|
-
**nativeSandbox?:** (`NativeSandboxConfig`): Configuration for native sandboxing (see NativeSandboxConfig below).
|
|
54
|
-
|
|
55
|
-
## NativeSandboxConfig
|
|
56
|
-
|
|
57
|
-
Configuration options for native OS sandboxing (used with `isolation: 'seatbelt'` or `'bwrap'`).
|
|
58
|
-
|
|
59
|
-
**allowNetwork?:** (`boolean`): Allow network access from sandboxed commands. (Default: `false`)
|
|
60
|
-
|
|
61
|
-
**readOnlyPaths?:** (`string[]`): Additional paths to allow read-only access (system paths are always readable).
|
|
62
|
-
|
|
63
|
-
**readWritePaths?:** (`string[]`): Additional paths to allow read-write access beyond the workspace directory.
|
|
64
|
-
|
|
65
|
-
**seatbeltProfilePath?:** (`string`): Path to a custom seatbelt profile file (macOS only). If the file exists, it's used; if not, a default profile is generated and written to this path.
|
|
66
|
-
|
|
67
|
-
**bwrapArgs?:** (`string[]`): Additional arguments to pass to bwrap (Linux only).
|
|
68
|
-
|
|
69
|
-
**allowSystemBinaries?:** (`boolean`): Allow read access to standard system binary paths (/bin, /usr/bin, etc.). (Default: `true`)
|
|
70
|
-
|
|
71
|
-
## Properties
|
|
72
|
-
|
|
73
|
-
**id:** (`string`): Sandbox instance identifier
|
|
74
|
-
|
|
75
|
-
**name:** (`string`): Provider name ('LocalSandbox')
|
|
76
|
-
|
|
77
|
-
**provider:** (`string`): Provider identifier ('local')
|
|
78
|
-
|
|
79
|
-
**status:** (`ProviderStatus`): 'starting' | 'running' | 'stopped' | 'error'
|
|
80
|
-
|
|
81
|
-
**workingDirectory:** (`string`): The configured working directory
|
|
82
|
-
|
|
83
|
-
## Methods
|
|
84
|
-
|
|
85
|
-
### `start()`
|
|
86
|
-
|
|
87
|
-
Initialize and start the sandbox. Creates the working directory and sets up seatbelt profiles if using native isolation.
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
await sandbox.start();
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Called automatically by `workspace.init()` or on first `executeCommand()` call.
|
|
94
|
-
|
|
95
|
-
### `stop()`
|
|
96
|
-
|
|
97
|
-
Stop the sandbox.
|
|
98
|
-
|
|
99
|
-
```typescript
|
|
100
|
-
await sandbox.stop();
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### `destroy()`
|
|
104
|
-
|
|
105
|
-
Clean up sandbox resources. Removes seatbelt profiles if they were auto-generated.
|
|
106
|
-
|
|
107
|
-
```typescript
|
|
108
|
-
await sandbox.destroy();
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
Called by `workspace.destroy()`.
|
|
112
|
-
|
|
113
|
-
### `isReady()`
|
|
114
|
-
|
|
115
|
-
Check if the sandbox is ready for operations.
|
|
116
|
-
|
|
117
|
-
```typescript
|
|
118
|
-
const ready = await sandbox.isReady();
|
|
119
|
-
// true if status is 'running'
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### `executeCommand(command, args?, options?)`
|
|
123
|
-
|
|
124
|
-
Execute a shell command in the sandbox.
|
|
125
|
-
|
|
126
|
-
```typescript
|
|
127
|
-
const listResult = await sandbox.executeCommand('ls', ['-la']);
|
|
128
|
-
const installResult = await sandbox.executeCommand('npm', ['install', 'lodash'], {
|
|
129
|
-
timeout: 60000,
|
|
130
|
-
env: { NODE_ENV: 'development' },
|
|
131
|
-
});
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
**Parameters:**
|
|
135
|
-
|
|
136
|
-
**command:** (`string`): Command to execute
|
|
137
|
-
|
|
138
|
-
**args?:** (`string[]`): Command arguments
|
|
139
|
-
|
|
140
|
-
**options.timeout?:** (`number`): Execution timeout in milliseconds
|
|
141
|
-
|
|
142
|
-
**options.cwd?:** (`string`): Working directory for the command
|
|
143
|
-
|
|
144
|
-
**options.env?:** (`Record<string, string>`): Additional environment variables
|
|
145
|
-
|
|
146
|
-
**options.onStdout?:** (`(data: string) => void`): Callback for stdout streaming
|
|
147
|
-
|
|
148
|
-
**options.onStderr?:** (`(data: string) => void`): Callback for stderr streaming
|
|
149
|
-
|
|
150
|
-
### `getInfo()`
|
|
151
|
-
|
|
152
|
-
Get sandbox status and resource information.
|
|
153
|
-
|
|
154
|
-
```typescript
|
|
155
|
-
const info = await sandbox.getInfo();
|
|
156
|
-
// { status: 'running', resources: { ... } }
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### `getInstructions()`
|
|
160
|
-
|
|
161
|
-
Returns a description of how this sandbox works. Used in tool descriptions.
|
|
162
|
-
|
|
163
|
-
```typescript
|
|
164
|
-
const instructions = sandbox.getInstructions();
|
|
165
|
-
// 'Local command execution. Working directory: "/workspace".'
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
## Path Resolution
|
|
169
|
-
|
|
170
|
-
### Relative paths and execution context
|
|
171
|
-
|
|
172
|
-
When you use a relative path for `workingDirectory`, it resolves from `process.cwd()`. In Mastra projects, cwd varies depending on how you run your code:
|
|
173
|
-
|
|
174
|
-
| Context | Working directory | `./workspace` resolves to |
|
|
175
|
-
| -------------- | ------------------------- | ------------------------------- |
|
|
176
|
-
| `mastra dev` | `./src/mastra/public/` | `./src/mastra/public/workspace` |
|
|
177
|
-
| `mastra start` | `./.mastra/output/` | `./.mastra/output/workspace` |
|
|
178
|
-
| Direct script | Where you ran the command | Relative to that location |
|
|
179
|
-
|
|
180
|
-
This can cause confusion when the same relative path resolves to different locations.
|
|
181
|
-
|
|
182
|
-
### Recommended: Use absolute paths
|
|
183
|
-
|
|
184
|
-
For consistent paths across all execution contexts, use an environment variable with an absolute path:
|
|
185
|
-
|
|
186
|
-
```typescript
|
|
187
|
-
import { LocalSandbox } from '@mastra/core/workspace';
|
|
188
|
-
|
|
189
|
-
const sandbox = new LocalSandbox({
|
|
190
|
-
workingDirectory: process.env.WORKSPACE_PATH!,
|
|
191
|
-
});
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
Set `WORKSPACE_PATH` in your environment to an absolute path like `/home/user/my-project/workspace`. This ensures commands run from a consistent directory regardless of how you run your code.
|
|
195
|
-
|
|
196
|
-
## Static Methods
|
|
197
|
-
|
|
198
|
-
### `detectIsolation()`
|
|
199
|
-
|
|
200
|
-
Detect the best available isolation backend for the current platform.
|
|
201
|
-
|
|
202
|
-
```typescript
|
|
203
|
-
const detection = LocalSandbox.detectIsolation();
|
|
204
|
-
// { backend: 'seatbelt', available: true, message: 'Seatbelt available on macOS' }
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
## Environment Isolation
|
|
208
|
-
|
|
209
|
-
By default, `LocalSandbox` only includes `PATH` in the environment. This allows commands to run while preventing accidental exposure of API keys and secrets.
|
|
210
|
-
|
|
211
|
-
```typescript
|
|
212
|
-
// Default: only PATH is available (commands work, secrets protected)
|
|
213
|
-
const secureSandbox = new LocalSandbox({
|
|
214
|
-
workingDirectory: './workspace',
|
|
215
|
-
});
|
|
216
|
-
|
|
217
|
-
// Explicit: pass specific variables
|
|
218
|
-
const sandbox = new LocalSandbox({
|
|
219
|
-
workingDirectory: './workspace',
|
|
220
|
-
env: {
|
|
221
|
-
NODE_ENV: 'development',
|
|
222
|
-
API_URL: 'https://api.example.com',
|
|
223
|
-
},
|
|
224
|
-
});
|
|
225
|
-
|
|
226
|
-
// Full access (use with caution)
|
|
227
|
-
const devSandbox = new LocalSandbox({
|
|
228
|
-
workingDirectory: './workspace',
|
|
229
|
-
env: process.env,
|
|
230
|
-
});
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
## Native OS Sandboxing
|
|
234
|
-
|
|
235
|
-
`LocalSandbox` supports native OS-level sandboxing for additional security:
|
|
236
|
-
|
|
237
|
-
- **macOS**: Uses Seatbelt (`sandbox-exec`) for filesystem and network isolation
|
|
238
|
-
- **Linux**: Uses Bubblewrap (`bwrap`) for namespace isolation
|
|
239
|
-
|
|
240
|
-
```typescript
|
|
241
|
-
// Detect the best available backend for this platform
|
|
242
|
-
const detection = LocalSandbox.detectIsolation();
|
|
243
|
-
console.log(detection);
|
|
244
|
-
// { backend: 'seatbelt', available: true, message: '...' }
|
|
245
|
-
|
|
246
|
-
// Enable native sandboxing
|
|
247
|
-
const sandbox = new LocalSandbox({
|
|
248
|
-
workingDirectory: './workspace',
|
|
249
|
-
isolation: 'seatbelt', // or 'bwrap' on Linux
|
|
250
|
-
nativeSandbox: {
|
|
251
|
-
allowNetwork: false, // Block network access (default)
|
|
252
|
-
readWritePaths: ['/tmp/extra'], // Additional writable paths
|
|
253
|
-
},
|
|
254
|
-
});
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
When isolation is enabled:
|
|
258
|
-
|
|
259
|
-
- File writes are restricted to the workspace directory (and configured paths)
|
|
260
|
-
- File reads are allowed everywhere (needed for system binaries)
|
|
261
|
-
- Network access is blocked by default
|
|
262
|
-
- Process isolation prevents affecting the host system
|
|
263
|
-
|
|
264
|
-
### Sandbox profile location
|
|
265
|
-
|
|
266
|
-
When using seatbelt isolation on macOS, `LocalSandbox` generates a profile file in a `.sandbox-profiles/` folder in `process.cwd()`, separate from the working directory:
|
|
267
|
-
|
|
268
|
-
```text
|
|
269
|
-
project/
|
|
270
|
-
├── .sandbox/ # Default working directory (sandboxed)
|
|
271
|
-
│ └── ... files created by sandbox
|
|
272
|
-
├── .sandbox-profiles/ # Seatbelt profiles (outside sandbox)
|
|
273
|
-
│ └── seatbelt-a1b2c3d4.sb # Hash based on workspace + config
|
|
274
|
-
└── ... your project files
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
The profile filename is a hash of the workspace path and configuration, so sandboxes with identical settings share the same profile while different configurations get separate files. This prevents collisions when running multiple sandboxes concurrently.
|
|
278
|
-
|
|
279
|
-
This separation prevents sandboxed processes from reading or modifying their own security profiles. The profile is created when the sandbox starts and cleaned up when destroyed.
|
|
280
|
-
|
|
281
|
-
## Related
|
|
282
|
-
|
|
283
|
-
- [WorkspaceSandbox Interface](https://mastra.ai/reference/workspace/sandbox)
|
|
284
|
-
- [Workspace Class](https://mastra.ai/reference/workspace/workspace-class)
|
|
285
|
-
- [Workspace Overview](https://mastra.ai/docs/workspace/overview)
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# WorkspaceSandbox
|
|
2
|
-
|
|
3
|
-
**Added in:** `@mastra/core@1.1.0`
|
|
4
|
-
|
|
5
|
-
The `WorkspaceSandbox` interface defines how workspaces execute commands.
|
|
6
|
-
|
|
7
|
-
## Methods
|
|
8
|
-
|
|
9
|
-
### `start()`
|
|
10
|
-
|
|
11
|
-
Start the sandbox. Called automatically by `workspace.init()` or on first `executeCommand()` call.
|
|
12
|
-
|
|
13
|
-
```typescript
|
|
14
|
-
await sandbox.start();
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
This method prepares the sandbox for command execution.
|
|
18
|
-
|
|
19
|
-
### `stop()`
|
|
20
|
-
|
|
21
|
-
Stop the sandbox.
|
|
22
|
-
|
|
23
|
-
```typescript
|
|
24
|
-
await sandbox.stop?.();
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### `destroy()`
|
|
28
|
-
|
|
29
|
-
Clean up sandbox resources. Called by `workspace.destroy()`.
|
|
30
|
-
|
|
31
|
-
```typescript
|
|
32
|
-
await sandbox.destroy();
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### `executeCommand(command, args?, options?)`
|
|
36
|
-
|
|
37
|
-
Execute a shell command.
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
const result = await sandbox.executeCommand('ls', ['-la', '/docs']);
|
|
41
|
-
const result = await sandbox.executeCommand('npm', ['install', 'lodash']);
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**Parameters:**
|
|
45
|
-
|
|
46
|
-
**command:** (`string`): Command to execute
|
|
47
|
-
|
|
48
|
-
**args?:** (`string[]`): Command arguments
|
|
49
|
-
|
|
50
|
-
**options.timeout?:** (`number`): Execution timeout in milliseconds
|
|
51
|
-
|
|
52
|
-
**options.cwd?:** (`string`): Working directory for the command
|
|
53
|
-
|
|
54
|
-
**options.env?:** (`Record<string, string>`): Additional environment variables
|
|
55
|
-
|
|
56
|
-
**options.onStdout?:** (`(data: string) => void`): Callback for stdout streaming
|
|
57
|
-
|
|
58
|
-
**options.onStderr?:** (`(data: string) => void`): Callback for stderr streaming
|
|
59
|
-
|
|
60
|
-
### `getInfo()`
|
|
61
|
-
|
|
62
|
-
Get sandbox status and resource information.
|
|
63
|
-
|
|
64
|
-
```typescript
|
|
65
|
-
const info = await sandbox.getInfo();
|
|
66
|
-
// { status: 'running', resources: { memoryMB: 512, cpuPercent: 5 } }
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### `getInstructions()`
|
|
70
|
-
|
|
71
|
-
Get a description of how this sandbox works. Used in tool descriptions to help agents understand the execution context.
|
|
72
|
-
|
|
73
|
-
```typescript
|
|
74
|
-
const instructions = sandbox.getInstructions?.();
|
|
75
|
-
// 'Local command execution. Working directory: "/workspace".'
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Related
|
|
79
|
-
|
|
80
|
-
- [Workspace Class](https://mastra.ai/reference/workspace/workspace-class)
|
|
81
|
-
- [Filesystem Interface](https://mastra.ai/reference/workspace/filesystem)
|