メインコンテンツへ移動

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 を参照できます。