[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"]

[lints]
workspace = true

[dependencies]
anyhow.workspace = true
fabro-auth = { path = "../../foundation/fabro-auth" }
fabro-acp = { path = "../fabro-acp" }
fabro-agent = { path = "../fabro-agent" }
fabro-config = { path = "../../foundation/fabro-config" }
fabro-graphviz = { path = "../fabro-graphviz" }
fabro-hooks = { path = "../fabro-hooks" }
fabro-validate = { path = "../fabro-validate" }
fabro-dump = { path = "../fabro-dump" }
fabro-sandbox = { path = "../fabro-sandbox", features = ["daytona"] }
fabro-mcp = { path = "../fabro-mcp" }
fabro-github = { path = "../fabro-github" }
fabro-interview = { path = "../fabro-interview" }
fabro-template = { path = "../../foundation/fabro-template" }
fabro-tool = { path = "../fabro-tool" }
fabro-util = { path = "../../foundation/fabro-util" }
fabro-redact.workspace = true
fabro-checkpoint = { path = "../fabro-checkpoint" }
fabro-llm = { path = "../fabro-llm" }
fabro-model = { path = "../../foundation/fabro-model" }
fabro-core = { path = "../../foundation/fabro-core" }
fabro-store = { path = "../fabro-store" }
fabro-static.workspace = true
fabro-types = { path = "../../foundation/fabro-types" }
fabro-http.workspace = true
thiserror.workspace = true
strum.workspace = true
serde.workspace = true
serde_json.workspace = true
jsonschema.workspace = true
tokio.workspace = true
bytes.workspace = true
object_store.workspace = true
ulid.workspace = true
uuid.workspace = true
rand.workspace = true
async-trait.workspace = true
futures.workspace = true
chrono = { workspace = true, features = ["serde"] }
dirs = "6"
regex.workspace = true
scopeguard = "1"
md5.workspace = true
hex.workspace = true
sha2 = { workspace = true }
mime_guess.workspace = true
miette.workspace = true
git2.workspace = true
tokio-util.workspace = true
tracing.workspace = true
walkdir.workspace = true
tempfile = "3"
toml.workspace = true
fabro-vault = { path = "../../foundation/fabro-vault" }
[dev-dependencies]
fabro-auth = { path = "../../foundation/fabro-auth", features = ["test-support"] }
fabro-github = { path = "../fabro-github", features = ["test-support"] }
base64.workspace = true
fabro-acp = { path = "../fabro-acp", features = ["test-support"] }
fabro-workflow = { path = ".", features = ["test-support"] }
fabro-api = { path = "../../foundation/fabro-api" }
fabro-environment = { path = "../fabro-environment" }
fabro-sandbox = { path = "../fabro-sandbox", features = ["daytona", "docker", "test-support"] }
fabro-mcp = { path = "../fabro-mcp" }
tokio = { workspace = true, features = ["test-util", "macros"] }
object_store.workspace = true
assert_cmd = "2"
predicates = "3"
httpmock = "0.8"
fabro-macros = { path = "../../foundation/fabro-macros" }
fabro-test = { workspace = true }
fabro-types = { path = "../../foundation/fabro-types", features = ["test-support"] }
shlex = "1"
