sandbox

package
v0.7.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeleteState

func DeleteState(name string) error

func GenerateMountFlags

func GenerateMountFlags(mounts []ConfigMount) []string

func SaveState

func SaveState(s *SandboxState) error

Types

type AgentTemplate

type AgentTemplate struct {
	Name        string
	Image       string
	EntryCmd    []string
	EnvVars     []string // Required env var names (e.g., "ANTHROPIC_API_KEY")
	DefaultArgs []string
}

func GetTemplate

func GetTemplate(agent string) *AgentTemplate

type ConfigMount

type ConfigMount struct {
	HostPath      string
	ContainerPath string
	ReadOnly      bool
	Optional      bool
}

func ClaudeConfigMounts

func ClaudeConfigMounts(syncConfig, syncState, managedSettings bool) []ConfigMount

func CodexConfigMounts

func CodexConfigMounts(syncConfig, syncState, managedSettings bool) []ConfigMount

func GetConfigMounts

func GetConfigMounts(agent string, syncConfig, syncState, managedSettings bool) []ConfigMount

func SessionSyncMounts added in v0.4.0

func SessionSyncMounts(hostWorkspace, containerWorkspace string) []ConfigMount

SessionSyncMounts returns mounts that sync the host's Claude Code session into the VM so /resume works across host and sandbox.

Claude Code stores sessions at ~/.claude/projects/<path-hash>/ where path-hash is the workspace path with "/" replaced by "-". Host: ~/.claude/projects/-Users-adrian-Projects-myapp/ VM: ~/.claude/projects/-workspace/

We mount the host session dir at the VM's expected session path.

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager(eng engine.Runtime) *Manager

func (*Manager) Attach

func (m *Manager) Attach(ctx context.Context, name string) error

func (*Manager) List

func (m *Manager) List() ([]*SandboxState, error)

func (*Manager) Logs

func (m *Manager) Logs(ctx context.Context, name string, follow bool) error

func (*Manager) Remove

func (m *Manager) Remove(ctx context.Context, name string) error

func (*Manager) Run

func (m *Manager) Run(ctx context.Context, opts RunOptions) error

func (*Manager) Stop

func (m *Manager) Stop(ctx context.Context, name string) error

type RunOptions

type RunOptions struct {
	Name            string
	Agent           string
	Workspace       string
	NetworkPolicy   string
	AllowedHosts    []string
	ExtraEnv        []string
	ImageOverride   string
	EntryOverride   string
	Detach          bool
	SyncConfig      bool
	SyncState       bool
	SyncSession     bool
	ManagedSettings bool
}

type SandboxState

type SandboxState struct {
	Name          string    `json:"name"`
	Agent         string    `json:"agent"`
	Workspace     string    `json:"workspace"`
	ContainerID   string    `json:"container_id"`
	Status        string    `json:"status"` // running, stopped
	Created       time.Time `json:"created"`
	NetworkPolicy string    `json:"network_policy"`
	AllowedHosts  []string  `json:"allowed_hosts,omitempty"`
	ContainerIP   string    `json:"container_ip,omitempty"`
}

func ListStates

func ListStates() ([]*SandboxState, error)

func LoadState

func LoadState(name string) (*SandboxState, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL