Documentation
¶
Index ¶
- Variables
- func Compile(name, src string) (*goja.Program, error)
- func RunProgram(ctx context.Context, vm *goja.Runtime, prog *goja.Program, _ ExecOptions) (goja.Value, error)
- type ActionFunc
- type Builtin
- type BuiltinHandlers
- type CallTaskChainBuiltin
- type Collector
- type ConsoleBuiltin
- type Env
- type ExecLogEntry
- type ExecOptions
- type ExecuteHookBuiltin
- type ExecuteTaskBuiltin
- type ExecuteTaskChainBuiltin
- type HTTPClient
- type HTTPFetchBuiltin
- type SendEventBuiltin
Constants ¶
This section is empty.
Variables ¶
var ( ErrMissingHTTPFetchArgument = errors.New("httpFetch requires at least one argument") ErrMissingHTTPFetchURL = errors.New("httpFetch requires a non-empty 'url'") )
Simple typed errors so callers can distinguish mis-use vs network errors.
Functions ¶
func RunProgram ¶
func RunProgram( ctx context.Context, vm *goja.Runtime, prog *goja.Program, _ ExecOptions, ) (goja.Value, error)
RunProgram executes a precompiled program in the given VM, with context cancellation and panic recovery. It DOES NOT wire builtins; caller must have called Env.SetupVM first.
Types ¶
type ActionFunc ¶
type ActionFunc func() (interface{}, error)
type Builtin ¶
type Builtin interface {
Name() string
Description() string
// ParametersSchema returns a JSON Schema object (type, properties, required)
// compatible with taskengine.FunctionTool.Parameters. May be nil or empty.
ParametersSchema() map[string]any
// Register performs vm.Set(name, ...) and uses deps where needed.
Register(vm *goja.Runtime, ctx context.Context, tracker libtracker.ActivityTracker, col *Collector, deps BuiltinHandlers) error
}
Builtin is the plugin interface for VM globals. Each implementation provides name, description, parameters schema, and registers itself on the VM.
func DefaultBuiltins ¶
func DefaultBuiltins() []Builtin
DefaultBuiltins returns the default set of builtins in registration order.
type BuiltinHandlers ¶
type BuiltinHandlers struct {
Eventsource eventsourceservice.Service
TaskService execservice.ExecService
TaskchainService taskchainservice.Service
TaskchainExecService execservice.TasksEnvService
FunctionService functionservice.Service // not used yet, but available
HookRepo taskengine.HookRepo
}
BuiltinHandlers holds the REAL services used by the builtins. These are injected once when you create the env.
type CallTaskChainBuiltin ¶
type CallTaskChainBuiltin struct{}
CallTaskChainBuiltin registers callTaskChain(chainID, input).
func (CallTaskChainBuiltin) Description ¶
func (CallTaskChainBuiltin) Description() string
func (CallTaskChainBuiltin) Name ¶
func (CallTaskChainBuiltin) Name() string
func (CallTaskChainBuiltin) ParametersSchema ¶
func (CallTaskChainBuiltin) ParametersSchema() map[string]any
func (CallTaskChainBuiltin) Register ¶
func (CallTaskChainBuiltin) Register(vm *goja.Runtime, ctx context.Context, tracker libtracker.ActivityTracker, col *Collector, deps BuiltinHandlers) error
type Collector ¶
type Collector struct {
// contains filtered or unexported fields
}
Collector accumulates logs and call records for a single JS execution.
func NewCollector ¶
func NewCollector() *Collector
func (*Collector) Add ¶
func (c *Collector) Add(entry ExecLogEntry)
func (*Collector) Logs ¶
func (c *Collector) Logs() []ExecLogEntry
type ConsoleBuiltin ¶
type ConsoleBuiltin struct{}
ConsoleBuiltin registers the console object (console.log).
func (ConsoleBuiltin) Description ¶
func (ConsoleBuiltin) Description() string
func (ConsoleBuiltin) Name ¶
func (ConsoleBuiltin) Name() string
func (ConsoleBuiltin) ParametersSchema ¶
func (ConsoleBuiltin) ParametersSchema() map[string]any
func (ConsoleBuiltin) Register ¶
func (ConsoleBuiltin) Register(vm *goja.Runtime, ctx context.Context, tracker libtracker.ActivityTracker, col *Collector, deps BuiltinHandlers) error
type Env ¶
type Env struct {
// contains filtered or unexported fields
}
Env = configured JS environment with tracker + services.
func NewEnv ¶
func NewEnv( tracker libtracker.ActivityTracker, deps BuiltinHandlers, builtins []Builtin, ) *Env
func (*Env) GetBuiltinSignatures ¶
func (e *Env) GetBuiltinSignatures() []taskengine.Tool
GetBuiltinSignatures returns tool-shaped descriptions for all registered builtins, for use in sandbox API documentation to the model.
func (*Env) GetExecuteHookToolDescriptions ¶
GetExecuteHookToolDescriptions returns tool-shaped descriptions for all tools callable via executeHook(hookName, toolName, args), using the env's HookRepo. Used to document the sandbox API for the model.
func (*Env) SetBuiltinHandlers ¶
func (e *Env) SetBuiltinHandlers(deps BuiltinHandlers)
type ExecLogEntry ¶
type ExecLogEntry struct {
Timestamp time.Time `json:"ts"`
Kind string `json:"kind"` // "console", "sendEvent", "executeTask", "executeTaskChain", ...
Level string `json:"level,omitempty"` // for console logs, e.g. "log", "error"
Name string `json:"name,omitempty"` // builtin / function name (sendEvent, executeTask, etc)
Message string `json:"message,omitempty"`
Args []any `json:"args,omitempty"` // raw args for console / calls
Meta map[string]any `json:"meta,omitempty"` // arbitrary extra data (event_type, chain_id, etc)
Error string `json:"error,omitempty"`
}
ExecLogEntry is a single line in the JS execution trace.
type ExecOptions ¶
type ExecOptions struct{}
ExecOptions is a placeholder for future tuning (timeouts, maxSteps, etc).
type ExecuteHookBuiltin ¶
type ExecuteHookBuiltin struct{}
ExecuteHookBuiltin registers executeHook(hookName, toolName, args).
func (ExecuteHookBuiltin) Description ¶
func (ExecuteHookBuiltin) Description() string
func (ExecuteHookBuiltin) Name ¶
func (ExecuteHookBuiltin) Name() string
func (ExecuteHookBuiltin) ParametersSchema ¶
func (ExecuteHookBuiltin) ParametersSchema() map[string]any
func (ExecuteHookBuiltin) Register ¶
func (ExecuteHookBuiltin) Register(vm *goja.Runtime, ctx context.Context, tracker libtracker.ActivityTracker, col *Collector, deps BuiltinHandlers) error
type ExecuteTaskBuiltin ¶
type ExecuteTaskBuiltin struct{}
ExecuteTaskBuiltin registers executeTask(prompt, modelName, modelProvider).
func (ExecuteTaskBuiltin) Description ¶
func (ExecuteTaskBuiltin) Description() string
func (ExecuteTaskBuiltin) Name ¶
func (ExecuteTaskBuiltin) Name() string
func (ExecuteTaskBuiltin) ParametersSchema ¶
func (ExecuteTaskBuiltin) ParametersSchema() map[string]any
func (ExecuteTaskBuiltin) Register ¶
func (ExecuteTaskBuiltin) Register(vm *goja.Runtime, ctx context.Context, tracker libtracker.ActivityTracker, col *Collector, deps BuiltinHandlers) error
type ExecuteTaskChainBuiltin ¶
type ExecuteTaskChainBuiltin struct{}
ExecuteTaskChainBuiltin registers executeTaskChain(chainID, input).
func (ExecuteTaskChainBuiltin) Description ¶
func (ExecuteTaskChainBuiltin) Description() string
func (ExecuteTaskChainBuiltin) Name ¶
func (ExecuteTaskChainBuiltin) Name() string
func (ExecuteTaskChainBuiltin) ParametersSchema ¶
func (ExecuteTaskChainBuiltin) ParametersSchema() map[string]any
func (ExecuteTaskChainBuiltin) Register ¶
func (ExecuteTaskChainBuiltin) Register(vm *goja.Runtime, ctx context.Context, tracker libtracker.ActivityTracker, col *Collector, deps BuiltinHandlers) error
type HTTPClient ¶
HTTPClient is the minimal interface we need from an HTTP client.
type HTTPFetchBuiltin ¶
type HTTPFetchBuiltin struct{}
HTTPFetchBuiltin registers httpFetch(urlOrOptions).
func (HTTPFetchBuiltin) Description ¶
func (HTTPFetchBuiltin) Description() string
func (HTTPFetchBuiltin) Name ¶
func (HTTPFetchBuiltin) Name() string
func (HTTPFetchBuiltin) ParametersSchema ¶
func (HTTPFetchBuiltin) ParametersSchema() map[string]any
func (HTTPFetchBuiltin) Register ¶
func (HTTPFetchBuiltin) Register(vm *goja.Runtime, ctx context.Context, tracker libtracker.ActivityTracker, col *Collector, deps BuiltinHandlers) error
type SendEventBuiltin ¶
type SendEventBuiltin struct{}
SendEventBuiltin registers sendEvent(eventType, data).
func (SendEventBuiltin) Description ¶
func (SendEventBuiltin) Description() string
func (SendEventBuiltin) Name ¶
func (SendEventBuiltin) Name() string
func (SendEventBuiltin) ParametersSchema ¶
func (SendEventBuiltin) ParametersSchema() map[string]any
func (SendEventBuiltin) Register ¶
func (SendEventBuiltin) Register(vm *goja.Runtime, ctx context.Context, tracker libtracker.ActivityTracker, col *Collector, deps BuiltinHandlers) error