sandbox

package
v1.44.0 Latest Latest
Warning

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

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

Documentation

Overview

Package sandbox provides Docker sandbox lifecycle management including creation, detection, argument building, and environment forwarding.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EnvForAgent

func EnvForAgent(ctx context.Context, agentRef string, env environment.Provider) (flags, envVars []string)

EnvForAgent loads the agent config and gathers the environment variables it requires. It returns:

  • flags: `-e KEY` args for docker sandbox exec (name only, no value)
  • envVars: `KEY=VALUE` entries to set on the exec process environment

Variables that Docker Desktop already proxies are skipped.

func ExtraWorkspace

func ExtraWorkspace(wd, agentRef string) string

ExtraWorkspace returns the directory to mount as a read-only extra workspace when the agent file lives outside the main workspace. Returns "" if no extra mount is needed (file is under wd, is not a local path, etc.).

func ResolveAlias

func ResolveAlias(name string) string

ResolveAlias returns the alias path if name is a user-defined alias, or an empty string otherwise.

func StartTokenWriterIfNeeded

func StartTokenWriterIfNeeded(ctx context.Context, dir, modelsGateway string) func()

StartTokenWriterIfNeeded starts a background goroutine that refreshes DOCKER_TOKEN into a shared file when a models gateway is configured. Returns a stop function that is safe to call multiple times (and is a no-op when no writer was started).

Types

type Backend added in v1.44.0

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

Backend describes how to invoke sandbox CLI commands. The two supported backends are "docker sandbox" and "sbx".

func NewBackend added in v1.44.0

func NewBackend(preferSbx bool) *Backend

NewBackend returns the appropriate backend. When preferSbx is true and the "sbx" binary is on PATH, the sbx backend is used; otherwise it falls back to "docker sandbox".

func (*Backend) BuildExecCmd added in v1.44.0

func (b *Backend) BuildExecCmd(ctx context.Context, name, wd string, cagentArgs, envFlags, envVars []string) *exec.Cmd

BuildExecCmd assembles the sandbox exec command.

func (*Backend) CheckAvailable added in v1.44.0

func (b *Backend) CheckAvailable(ctx context.Context) error

CheckAvailable returns a user-friendly error when Docker is not installed or the sandbox feature is not supported.

func (*Backend) Ensure added in v1.44.0

func (b *Backend) Ensure(ctx context.Context, wd, extra, template, configDir string) (string, error)

Ensure makes sure a sandbox exists for the given workspace, creating or recreating it as needed. When template is non-empty it is passed to `docker sandbox create -t`. Returns the sandbox name.

func (*Backend) ForWorkspace added in v1.44.0

func (b *Backend) ForWorkspace(ctx context.Context, wd string) *Existing

ForWorkspace returns the existing sandbox whose primary workspace matches wd, or nil if none exists.

type Existing

type Existing struct {
	Name       string   `json:"name"`
	Workspaces []string `json:"workspaces"`
}

Existing holds the name and workspaces of an existing Docker sandbox.

func (*Existing) HasWorkspace

func (s *Existing) HasWorkspace(dir string) bool

HasWorkspace reports whether the sandbox has dir mounted as a workspace.

Jump to

Keyboard shortcuts

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