fabro/lib/components/fabro-sandbox/Cargo.toml
Bryan Helmkamp 957fc97c5c
Merge origin/main into pebble-agent-loop
Main merged the sandbox-driver adoption (#849) in a later form than this
branch was stacked on: the driver's own exec types replace fabro-sandbox's,
shell quoting moved to fabro-util, the sandbox lifecycle collapsed, and the
driver's events are stored as run events. This branch had deleted
`fabro-agent` and put the coding agent, the environment adapter, and the
steering hub on pebble.

The resolution takes main's sandbox API and re-applies pebble on top: the
`RunSandbox` `Environment` adapter moves to `pebble_environment.rs` (main's
`environment.rs` is the sandbox spec) and runs commands through `ExecSpec`
and `ExecControls`, feeding pebble's output sink from the driver's; the
driver-era `sandbox.*` names leave the known-event list, as on main, so a
stored event with that name and no driver shape is `Unknown` rather than an
error; `program_exit_code` matches pebble's non-exhaustive termination; the
Docker and Daytona smokes use main's constructor and credentials; the
remaining `fabro_agent` paths point at fabro-sandbox.

Pebble's `mcp` feature pins sandbox-driver, and the preview-url trait
objects only cross when both sides name one revision, so pebble moved to
main's `a92c0db6` (lithoscomputer/pebble#10) and fabro pins that pebble
revision until it lands on pebble main.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-12 09:40:00 -06:00

62 lines
1.7 KiB
TOML

[package]
name = "fabro-sandbox"
edition.workspace = true
version.workspace = true
publish = false
license.workspace = true
description = "Fabro run sandboxes over the sandbox driver: local, Docker, and Daytona"
[features]
default = ["local"]
local = []
test-support = ["dep:sandbox-driver-testing"]
[lib]
doctest = false
[lints]
workspace = true
[dependencies]
sandbox-driver.workspace = true
sandbox-driver-protocol.workspace = true
sandbox-driver-host.workspace = true
sandbox-driver-docker.workspace = true
sandbox-driver-docker-config.workspace = true
sandbox-driver-daytona.workspace = true
sandbox-driver-daytona-config.workspace = true
sandbox-driver-testing = { workspace = true, optional = true }
pebble-coding-agent.workspace = true
anyhow.workspace = true
async-trait.workspace = true
thiserror.workspace = true
tokio.workspace = true
tokio-util = { workspace = true, features = ["compat"] }
serde.workspace = true
serde_json.workspace = true
strum.workspace = true
tracing.workspace = true
reqwest.workspace = true
base64.workspace = true
uuid.workspace = true
fabro-proc = { path = "../../foundation/fabro-proc" }
fabro-static.workspace = true
fabro-util = { path = "../../foundation/fabro-util" }
fabro-redact.workspace = true
futures = { workspace = true }
fabro-github = { path = "../fabro-github" }
fabro-types = { path = "../../foundation/fabro-types" }
chrono = { workspace = true }
[dev-dependencies]
fabro-github = { path = "../fabro-github", features = ["test-support"] }
pebble-coding-agent = { workspace = true, features = ["test-util"] }
sandbox-driver-testing.workspace = true
tokio = { workspace = true, features = ["test-util", "macros"] }
tempfile = "3"
serde_json.workspace = true
toml.workspace = true
fabro-test.workspace = true