org.llm4s.workspace

Members list

Type members

Classlikes

class ContainerisedWorkspace(val workspaceDir: String, val imageName: String, val hostPort: Int, val extraAllowedCommands: Set[String]) extends WorkspaceAgentInterface

WebSocket-based implementation of ContainerisedWorkspace that communicates with the workspace runner via WebSocket instead of HTTP.

WebSocket-based implementation of ContainerisedWorkspace that communicates with the workspace runner via WebSocket instead of HTTP.

This solves the threading issues of the HTTP version by:

  • Using asynchronous WebSocket communication
  • Implementing heartbeats over the same connection
  • Supporting real-time streaming of command output
  • Eliminating thread pool blocking during long commands

Commands run without a shell, and only programs on the runner's allowlist run (#1756): the runner's WORKSPACE_SANDBOX_PROFILE (unset, permissive) chooses the list, and extraAllowedCommands adds to it.

Value parameters

extraAllowedCommands

programs the runner may run besides its profile's allowlist (for example sbt), passed to the container as WORKSPACE_EXTRA_COMMANDS; each is a bare program name, never a shell or a launcher (see WorkspaceSandboxConfig.withExtraCommands), and a container is not started with a name the runner would refuse

hostPort

the host port the container's 8080 is published on

imageName

the workspace-runner image

workspaceDir

the host directory mounted as the container's /workspace

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type