fabro/lib/components/fabro-workflow/Cargo.toml
Bryan Helmkamp 23b8a6c449
Serve the sandbox tab, Run Files, and deletion on the driver handle
The sandbox handlers describe, list, download, upload, open a terminal
and build SSH and VNC access on the `Arc<dyn Sandbox>` the server attaches
to the run's record, with paths resolved against the recorded working
directory. Run Files holds the handle beside that directory and runs its
git through the driver's git facet and Fabro's exec policy;
fabro-workflow's sandbox git takes the same pair, and its
`GitCommandError` carries the driver's error. Run deletion deletes by id
through the provider scoped to the run's `petri.run` label, so a foreign
sandbox is refused and a designated host directory is left in place. Ask
Fabro wraps the attached, running handle. The legacy access shim is gone.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-19 13:56:13 -04:00

69 lines
2.4 KiB
TOML

[package]
name = "fabro-workflow"
edition.workspace = true
version.workspace = true
publish = false
license.workspace = true
description = "A DOT-based pipeline runner for multi-stage AI workflows"
repository = "https://github.com/brynary/arc"
keywords = ["llm", "ai", "pipeline", "workflow", "dot"]
categories = ["development-tools"]
readme = "README.md"
[lib]
doctest = false
[features]
test-support = ["fabro-auth/test-support", "fabro-store/test-support"]
[lints]
workspace = true
[dependencies]
anyhow.workspace = true
fabro-auth = { path = "../../foundation/fabro-auth" }
fabro-config = { path = "../../foundation/fabro-config" }
fabro-pebble-sandbox = { path = "../fabro-pebble-sandbox" }
sandbox-driver.workspace = true
pebble-coding-agent.workspace = true
fabro-github = { path = "../fabro-github" }
fabro-tool = { path = "../fabro-tool" }
fabro-util = { path = "../../foundation/fabro-util" }
fabro-redact.workspace = true
fabro-llm = { path = "../fabro-llm" }
fabro-store = { path = "../fabro-store" }
fabro-types = { path = "../../foundation/fabro-types" }
lithos-llm = { workspace = true, features = ["runtime"] }
fabro-http.workspace = true
thiserror.workspace = true
serde.workspace = true
serde_json.workspace = true
tokio.workspace = true
bytes.workspace = true
ulid.workspace = true
async-trait.workspace = true
chrono = { workspace = true, features = ["serde"] }
dirs = "6"
scopeguard = "1"
hex.workspace = true
git2.workspace = true
tracing.workspace = true
tempfile = "3"
toml.workspace = true
fabro-vault = { path = "../../foundation/fabro-vault" }
[dev-dependencies]
fabro-dump = { path = "../fabro-dump" }
fabro-client = { path = "../../foundation/fabro-client" }
fabro-workflow-version = { path = "../fabro-workflow-version" }
fabro-environment = { path = "../fabro-environment" }
fabro-llm = { path = "../fabro-llm", features = ["test-support"] }
fabro-store = { path = "../fabro-store", features = ["test-support"] }
fabro-auth = { path = "../../foundation/fabro-auth", features = ["test-support"] }
fabro-github = { path = "../fabro-github", features = ["test-support"] }
fabro-workflow = { path = ".", features = ["test-support"] }
sandbox-driver-host.workspace = true
tokio = { workspace = true, features = ["test-util", "macros"] }
httpmock = "0.8"
fabro-macros = { path = "../../foundation/fabro-macros" }
fabro-test = { workspace = true }
fabro-types = { path = "../../foundation/fabro-types", features = ["test-support"] }