WorkspaceSandboxConfig

org.llm4s.shared.WorkspaceSandboxConfig
See theWorkspaceSandboxConfig companion object
final case class WorkspaceSandboxConfig(limits: WorkspaceLimits, excludePatterns: List[String], shellAllowed: Boolean, defaultCommandTimeoutSeconds: Int, readOnlyPaths: List[String], allowedPaths: List[String], networkAllowed: Boolean, allowedCommands: Set[String])

Explicit sandbox configuration for workspace operations.

Describes allowed/blocked paths, resource limits, shell access, and timeouts. When provided, this config is validated at startup and enforced by the runner.

'''Phase 1:''' Config structure, validation, and documentation. '''Phase 2:''' Enforcement in runner and tools. '''Phase 3:''' Advanced policies (profiles, allowlists).

Value parameters

allowedCommands

Set of bare executable names permitted by executeCommand. Defaults to WorkspaceSandboxConfig.ReadOnlyCommands. Use WorkspaceSandboxConfig.ReadWriteCommands to also permit write-capable commands (cp, mv, rm, mkdir, …).

allowedPaths

If non-empty, only these paths are accessible; if empty, whole workspace

defaultCommandTimeoutSeconds

Default timeout for shell commands

excludePatterns

Glob patterns for paths to exclude from explore/search (e.g. node_modules, .git)

limits

Resource limits (file size, directory entries, search results, output size)

networkAllowed

Documentation: whether network access from commands is assumed (Phase 2: enforce)

readOnlyPaths

Paths under workspace root that are read-only (writes denied)

shellAllowed

Whether executeCommand is allowed (false = read-only file ops only)

Attributes

Companion
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Value members

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product