SandboxProvider
SandboxProvider は、Sandbox を MastraEditor に登録するためにパッケージが実装するインターフェースです。Editor は Workspace のハイドレーション時に createSandbox(config) を呼び出し、保存された StorageWorkspaceRef の Sandbox 設定にある provider ID を検索キーとして使用します。
組み込みの local Sandbox Provider は自動的に登録されます。外部 Provider(E2B など)は MastraEditorConfig.sandboxes を介して指定します。
使用例使用例への直接リンク
src/mastra/index.ts
import { MastraEditor } from '@mastra/editor'
import { e2bSandboxProvider } from '@mastra/e2b'
new MastraEditor({
sandboxes: {
[e2bSandboxProvider.id]: e2bSandboxProvider,
},
})
プロパティプロパティへの直接リンク
id:
string
一意の Provider 識別子(例:
"local"、"e2b")。この Provider を使用する保存済み Workspace の StorageSandboxConfig.provider と一致する必要があります。name:
string
UI 表示用の、人が読みやすい名前。
description?:
string
Workspace の Sandbox 選択画面に表示される簡潔な説明。
configSchema?:
Record<string, unknown>
Provider 固有の設定を記述する JSON Schema。UI が設定フォームをレンダリングするために使用します。
createSandbox:
(config: TConfig) => WorkspaceSandbox | Promise<WorkspaceSandbox>
保存された設定からランタイムの
WorkspaceSandbox インスタンスを作成します。Workspace のハイドレーション時に呼び出されます。Provider を実装するProvider を実装するへの直接リンク
src/providers/my-sandbox.ts
import type { SandboxProvider, WorkspaceSandbox } from '@mastra/core/editor'
export const mySandboxProvider: SandboxProvider<{ apiKey: string }> = {
id: 'my-sandbox',
name: 'My Sandbox',
description: 'Cloud sandbox for command execution.',
configSchema: {
type: 'object',
required: ['apiKey'],
properties: {
apiKey: { type: 'string' },
},
},
async createSandbox(config): Promise<WorkspaceSandbox> {
return createMySandbox({ apiKey: config.apiKey })
},
}
登録後、管理者はインラインの Workspace 設定または保存された StorageWorkspaceRef から Provider を参照できます。
関連情報関連情報への直接リンク
- Workspace: 概念と実践的な例。
- StorageWorkspaceRef:
createSandboxが使用する保存済み設定。 - FilesystemProvider: ファイルアクセス用の関連 Provider。
- MastraEditor クラス: Provider レジストリ。