Omni.Tools.Repl (Omni Tools v0.1.0)

Copy Markdown View Source

An Omni.Tool for executing Elixir code in a sandboxed peer node.

Each invocation runs in a fresh Erlang peer node with a clean slate. IO output is captured and returned alongside the expression result.

tool = Omni.Tools.Repl.new()
tool = Omni.Tools.Repl.new(timeout: 30_000, max_output: 10_000)

Extensions

Extensions inject code and/or documentation into the sandbox. Pass module-based extensions as {module, opts} tuples, or use inline extensions via Omni.Tools.Repl.Extension.new/1.

alias Omni.Tools.Repl.Extension

tool = Omni.Tools.Repl.new(
  extensions: [
    {MyApp.ReplExtension, api_key: "sk-..."},
    Extension.new(description: "Req and Jason are available.")
  ]
)

See Omni.Tools.Repl.Extension for the full extension API.

Options

  • :timeout — execution timeout in milliseconds. Default 60_000.
  • :max_output — output truncation limit in bytes. Default 50_000.
  • :extensions — list of extensions (module tuples or %Extension{}).

Summary

Functions

Builds a %Omni.Tool{} struct with a bound handler.

Functions

new(params \\ [])

Builds a %Omni.Tool{} struct with a bound handler.