fabro/lib/apps/fabro-server/Cargo.toml
Scott Werner 6ac6d5495f fix: run built-in sandbox providers in process
Register lazy Host, Docker, and Daytona factories for Petri execution,
fork, and prune. Share server provider configuration, preserve lease
fingerprints, and source Daytona credentials from the vault.

Remove built-in plugin setup and skip gates; add a release-mode worker
and prune regression to catch the failure that blocked nightly builds.

Co-Authored-By: Codex <noreply@openai.com>
2026-09-24 17:14:47 -04:00

130 lines
4.8 KiB
TOML

[package]
name = "fabro-server"
edition.workspace = true
version.workspace = true
publish = false
license.workspace = true
description = "HTTP server for Fabro pipelines"
[lib]
doctest = false
[features]
test-support = ["fabro-store/test-support", "fabro-llm/test-support", "fabro-auth/test-support"]
[[test]]
name = "it"
path = "tests/it/main.rs"
required-features = ["test-support"]
[lints]
workspace = true
[dependencies]
fabro-automation = { path = "../../components/fabro-automation" }
fabro-auth = { path = "../../foundation/fabro-auth" }
fabro-install = { path = "../../components/fabro-install" }
fabro-spa = { path = "../fabro-spa" }
fabro-config = { path = "../../foundation/fabro-config" }
fabro-environment.workspace = true
fabro-dot = { path = "../../components/fabro-dot" }
fabro-graphviz = { path = "../../components/fabro-graphviz" }
fabro-interview = { path = "../../components/fabro-interview" }
fabro-slack = { path = "../../components/fabro-slack" }
fabro-workflow = { path = "../../components/fabro-workflow" }
fabro-workflow-version = { path = "../../components/fabro-workflow-version" }
sandbox-driver.workspace = true
sandbox-driver-host.workspace = true
sandbox-driver-protocol.workspace = true
fabro-github = { path = "../../components/fabro-github" }
pebble-agent.workspace = true
pebble-coding-agent.workspace = true
fabro-llm = { path = "../../components/fabro-llm" }
fabro-manifest = { path = "../../components/fabro-manifest" }
fabro-mcp-store = { path = "../../components/fabro-mcp-store" }
fabro-petri = { path = "../../components/fabro-petri" }
fabro-proc = { path = "../../foundation/fabro-proc" }
fabro-template = { path = "../../foundation/fabro-template" }
fabro-tool = { path = "../../components/fabro-tool" }
fabro-types = { path = "../../foundation/fabro-types" }
lithos-llm = { workspace = true, features = ["runtime"] }
fabro-util = { path = "../../foundation/fabro-util" }
fabro-api = { path = "../../foundation/fabro-api" }
fabro-client = { path = "../../foundation/fabro-client" }
fabro-db = { path = "../../foundation/fabro-db" }
fabro-store = { path = "../../components/fabro-store" }
fabro-vault = { path = "../../foundation/fabro-vault" }
fabro-variable = { path = "../../components/fabro-variable" }
fabro-http.workspace = true
fabro-redact.workspace = true
fabro-static.workspace = true
chrono.workspace = true
croner.workspace = true
futures-util.workspace = true
axum = { workspace = true, features = ["ws"] }
axum-extra.workspace = true
cookie.workspace = true
globset.workspace = true
tower = "0.5"
tower-http = { version = "0.6", features = ["trace", "compression-br", "compression-gzip"] }
tokio-stream = { workspace = true, features = ["sync"] }
tokio-util.workspace = true
base64.workspace = true
jsonwebtoken.workspace = true
hkdf.workspace = true
tokio.workspace = true
serde.workspace = true
serde_json.workspace = true
serde_yaml = "0.9"
sqlx.workspace = true
anyhow.workspace = true
async-trait.workspace = true
async_zip.workspace = true
clap.workspace = true
toml.workspace = true
tracing.workspace = true
ulid.workspace = true
uuid.workspace = true
hmac.workspace = true
sha2.workspace = true
hex.workspace = true
rand.workspace = true
bytes = "1"
tempfile = "3"
object_store.workspace = true
# reqwest 0.12 is a direct dep only so `NoProxyReqwestConnector` can build a
# `reqwest::Client` of the version object_store accepts. Rest of the crate
# talks to HTTP via fabro-http (reqwest 0.13).
object_store_reqwest = { package = "reqwest", version = "0.12", default-features = false, features = ["rustls-tls-native-roots"] }
mime_guess.workspace = true
walkdir.workspace = true
thiserror.workspace = true
percent-encoding.workspace = true
url = "2"
zeroize.workspace = true
strum.workspace = true
sysinfo = { version = "0.35.2", default-features = false, features = ["system", "disk"] }
[build-dependencies]
fabro-build-support = { path = "../../foundation/build-support" }
chrono = { workspace = true }
[dev-dependencies]
fabro-auth = { path = "../../foundation/fabro-auth", features = ["test-support"] }
fabro-petri = { path = "../../components/fabro-petri", features = ["test-support"] }
fabro-llm = { path = "../../components/fabro-llm", features = ["test-support"] }
git2.workspace = true
tokio = { workspace = true, features = ["test-util", "macros"] }
tower = "0.5"
http-body-util = "0.1"
httpmock = "0.8"
serde_yaml = "0.9"
tracing-subscriber.workspace = true
tokio-util.workspace = true
tokio-tungstenite.workspace = true
fabro-macros = { path = "../../foundation/fabro-macros" }
pebble-coding-agent = { workspace = true, features = ["sandbox-driver-test-util"] }
sandbox-driver-testing.workspace = true
fabro-store = { path = "../../components/fabro-store", features = ["test-support"] }
fabro-test = { workspace = true }
fabro-types = { path = "../../foundation/fabro-types", features = ["test-support"] }