[package] name = "jouleclaw-sandbox-protocol" version.workspace = true edition.workspace = true license.workspace = true repository.workspace = true authors.workspace = true description = "Typed sandbox lifecycle protocol — the execution surface JouleClaw was missing. Where jouleclaw-sandbox carries CapabilitySet claims, this crate adds the SandboxRuntime trait (create / start / exec / kill / status / destroy) + typed SandboxSpec + EgressPolicy. Alibaba OpenSandbox shape (CNCF Landscape) made deterministic-first: pluggable runtimes for Docker / K8s / gVisor / Firecracker / OpenSandbox-itself; in-tree LocalProcessRuntime reference (honest about what process-only sandboxing CAN'T enforce); no network, no Docker dep in the trusted core." [dependencies] jouleclaw-sandbox = { path = "../jouleclaw-sandbox" } async-trait = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = ["sync", "process", "io-util"] } [dev-dependencies] tokio = { workspace = true, features = ["macros", "rt", "rt-multi-thread", "sync", "process", "io-util", "time"] }