SandboxRunner

org.llm4s.agent.harness.SandboxRunner
@Experimental

What runs commands for a SandboxBackend (F2's workspace sandbox): it only runs. The backend wraps every run in C4's guard, so a runner cannot run a command twice on replay by mistake.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Abstract methods

def locks(workdir: VPath): Set[LockKey]

The locks a command run in workdir holds (F2: workspace/<id>).

The locks a command run in workdir holds (F2: workspace/<id>).

Attributes

def run(command: String, workdir: VPath, timeout: FiniteDuration, maxOutputBytes: Int, ctx: FileContext): Result[ExecResult]

Runs command in workdir, for at most timeout, capturing at most maxOutputBytes of each of stdout and stderr (bytes of the stream as a JSON string, as ExecResult is recorded) and discarding the rest, with truncated set: the bound holds while the output is read, not after it is all in memory (rule 12). The backend cuts anything over it again.

Runs command in workdir, for at most timeout, capturing at most maxOutputBytes of each of stdout and stderr (bytes of the stream as a JSON string, as ExecResult is recorded) and discarding the rest, with truncated set: the bound holds while the output is read, not after it is all in memory (rule 12). The backend cuts anything over it again.

Attributes