Documentation
¶
Overview ¶
Package e2b provides a CodeExecutor implementation for E2B.
Index ¶
- type CodeExecutor
- func (c *CodeExecutor) Cleanup(ctx context.Context, ws codeexecutor.Workspace) error
- func (c *CodeExecutor) Close() error
- func (c *CodeExecutor) CodeBlockDelimiter() codeexecutor.CodeBlockDelimiter
- func (c *CodeExecutor) Collect(ctx context.Context, ws codeexecutor.Workspace, patterns []string) ([]codeexecutor.File, error)
- func (c *CodeExecutor) CollectOutputs(ctx context.Context, ws codeexecutor.Workspace, spec codeexecutor.OutputSpec) (codeexecutor.OutputManifest, error)
- func (c *CodeExecutor) CreateWorkspace(ctx context.Context, execID string, pol codeexecutor.WorkspacePolicy) (codeexecutor.Workspace, error)
- func (c *CodeExecutor) Engine() codeexecutor.Engine
- func (c *CodeExecutor) ExecuteCode(ctx context.Context, input codeexecutor.CodeExecutionInput) (codeexecutor.CodeExecutionResult, error)
- func (c *CodeExecutor) ExecuteInline(ctx context.Context, execID string, blocks []codeexecutor.CodeBlock, ...) (codeexecutor.RunResult, error)
- func (c *CodeExecutor) PutDirectory(ctx context.Context, ws codeexecutor.Workspace, hostPath, to string) error
- func (c *CodeExecutor) PutFiles(ctx context.Context, ws codeexecutor.Workspace, files []codeexecutor.PutFile) error
- func (c *CodeExecutor) RunProgram(ctx context.Context, ws codeexecutor.Workspace, ...) (codeexecutor.RunResult, error)
- func (c *CodeExecutor) Sandbox() *ci.Sandbox
- func (c *CodeExecutor) SandboxID() string
- func (c *CodeExecutor) StageDirectory(ctx context.Context, ws codeexecutor.Workspace, src, to string, ...) error
- func (c *CodeExecutor) StageInputs(ctx context.Context, ws codeexecutor.Workspace, specs []codeexecutor.InputSpec) error
- type Option
- func WithAPIKey(apiKey string) Option
- func WithAccessToken(token string) Option
- func WithDebug(debug bool) Option
- func WithDomain(domain string) Option
- func WithEnvVars(vars map[string]string) Option
- func WithExecutionTimeout(t time.Duration) Option
- func WithHTTPClient(h *http.Client) Option
- func WithHeaders(headers map[string]string) Option
- func WithLanguage(lang ci.RunCodeLanguage) Option
- func WithMetadata(meta map[string]string) Option
- func WithRequestTimeout(t time.Duration) Option
- func WithSandboxID(sandboxID string) Option
- func WithSandboxRunBase(dir string) Option
- func WithSandboxTimeout(t time.Duration) Option
- func WithTemplate(template string) Option
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CodeExecutor ¶
type CodeExecutor struct {
// contains filtered or unexported fields
}
CodeExecutor executes code inside an E2B code-interpreter sandbox.
func New ¶
func New(opts ...Option) (*CodeExecutor, error)
New creates a new CodeExecutor. When `WithSandboxID` is supplied it connects to an existing sandbox; otherwise a new sandbox is created.
func NewWithContext ¶
func NewWithContext(ctx context.Context, opts ...Option) (*CodeExecutor, error)
NewWithContext is like New but accepts a context used for sandbox setup.
func (*CodeExecutor) Cleanup ¶
func (c *CodeExecutor) Cleanup( ctx context.Context, ws codeexecutor.Workspace, ) error
Cleanup removes the workspace directory inside the sandbox.
func (*CodeExecutor) Close ¶
func (c *CodeExecutor) Close() error
Close terminates the owned sandbox (if any).
func (*CodeExecutor) CodeBlockDelimiter ¶
func (c *CodeExecutor) CodeBlockDelimiter() codeexecutor.CodeBlockDelimiter
CodeBlockDelimiter returns the fenced code delimiter.
func (*CodeExecutor) Collect ¶
func (c *CodeExecutor) Collect( ctx context.Context, ws codeexecutor.Workspace, patterns []string, ) ([]codeexecutor.File, error)
Collect reads matching files from the sandbox workspace.
func (*CodeExecutor) CollectOutputs ¶
func (c *CodeExecutor) CollectOutputs( ctx context.Context, ws codeexecutor.Workspace, spec codeexecutor.OutputSpec, ) (codeexecutor.OutputManifest, error)
CollectOutputs applies the declarative output spec in the sandbox.
func (*CodeExecutor) CreateWorkspace ¶
func (c *CodeExecutor) CreateWorkspace( ctx context.Context, execID string, pol codeexecutor.WorkspacePolicy, ) (codeexecutor.Workspace, error)
CreateWorkspace creates a workspace inside the sandbox.
func (*CodeExecutor) Engine ¶
func (c *CodeExecutor) Engine() codeexecutor.Engine
Engine exposes the sandbox-backed runtime as an Engine for skill tools.
func (*CodeExecutor) ExecuteCode ¶
func (c *CodeExecutor) ExecuteCode( ctx context.Context, input codeexecutor.CodeExecutionInput, ) (codeexecutor.CodeExecutionResult, error)
ExecuteCode executes all code blocks sequentially in the sandbox and aggregates their output.
func (*CodeExecutor) ExecuteInline ¶
func (c *CodeExecutor) ExecuteInline( ctx context.Context, execID string, blocks []codeexecutor.CodeBlock, timeout time.Duration, ) (codeexecutor.RunResult, error)
ExecuteInline writes inline code blocks into the sandbox and runs them.
func (*CodeExecutor) PutDirectory ¶
func (c *CodeExecutor) PutDirectory( ctx context.Context, ws codeexecutor.Workspace, hostPath, to string, ) error
PutDirectory copies a host directory into the sandbox workspace.
func (*CodeExecutor) PutFiles ¶
func (c *CodeExecutor) PutFiles( ctx context.Context, ws codeexecutor.Workspace, files []codeexecutor.PutFile, ) error
PutFiles writes files into the sandbox workspace.
func (*CodeExecutor) RunProgram ¶
func (c *CodeExecutor) RunProgram( ctx context.Context, ws codeexecutor.Workspace, spec codeexecutor.RunProgramSpec, ) (codeexecutor.RunResult, error)
RunProgram executes a command inside the sandbox workspace.
func (*CodeExecutor) Sandbox ¶
func (c *CodeExecutor) Sandbox() *ci.Sandbox
Sandbox exposes the underlying sandbox for advanced usage.
func (*CodeExecutor) SandboxID ¶
func (c *CodeExecutor) SandboxID() string
SandboxID returns the current sandbox id.
func (*CodeExecutor) StageDirectory ¶
func (c *CodeExecutor) StageDirectory( ctx context.Context, ws codeexecutor.Workspace, src, to string, opt codeexecutor.StageOptions, ) error
StageDirectory stages a host directory with options into the sandbox.
func (*CodeExecutor) StageInputs ¶
func (c *CodeExecutor) StageInputs( ctx context.Context, ws codeexecutor.Workspace, specs []codeexecutor.InputSpec, ) error
StageInputs maps external inputs into the sandbox workspace.
type Option ¶
type Option func(*CodeExecutor)
Option configures a CodeExecutor.
func WithAPIKey ¶
WithAPIKey sets the E2B API key. When empty the E2B_API_KEY env var is used.
func WithAccessToken ¶
WithAccessToken sets the envd access token.
func WithDomain ¶
WithDomain overrides the E2B domain (default: e2b.app).
func WithEnvVars ¶
WithEnvVars sets environment variables injected into the sandbox at start.
func WithExecutionTimeout ¶
WithExecutionTimeout sets the per-cell code execution timeout. Use a negative value to disable timeouts.
func WithHTTPClient ¶
WithHTTPClient overrides the underlying HTTP client.
func WithHeaders ¶
WithHeaders sets additional HTTP headers applied to every API call.
func WithLanguage ¶
func WithLanguage(lang ci.RunCodeLanguage) Option
WithLanguage sets the default language used when a code block does not specify one (default: python).
func WithMetadata ¶
WithMetadata attaches metadata to the sandbox.
func WithRequestTimeout ¶
WithRequestTimeout sets the HTTP request timeout.
func WithSandboxID ¶
WithSandboxID connects to an existing sandbox instead of creating one.
func WithSandboxRunBase ¶
WithSandboxRunBase sets the base directory **inside the sandbox** where per-execution workspaces are created (default: /tmp/run).
func WithSandboxTimeout ¶
WithSandboxTimeout sets the wall-clock lifetime of the sandbox.
func WithTemplate ¶
WithTemplate sets the sandbox template (default: code-interpreter-v1).
Directories
¶
| Path | Synopsis |
|---|---|
|
internal
|
|
|
codeinterpreter
Package codeinterpreter provides a CodeInterpreter implementation for E2B.
|
Package codeinterpreter provides a CodeInterpreter implementation for E2B. |
|
codeinterpreter/example
command
Example command demonstrating typical use of the Go Code Interpreter SDK.
|
Example command demonstrating typical use of the Go Code Interpreter SDK. |