[package]
name = "fabro-workflows"
edition.workspace = true
version.workspace = true
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]
default = []
exedev = ["dep:fabro-exe"]

[dependencies]
clap.workspace = true
anyhow.workspace = true
dotenvy.workspace = true
fabro-agent = { path = "../fabro-agent" }
fabro-devcontainer = { path = "../fabro-devcontainer" }
fabro-exe = { path = "../fabro-exe", optional = true }
fabro-ssh = { path = "../fabro-ssh" }
fabro-mcp = { path = "../fabro-mcp" }
fabro-github = { path = "../fabro-github" }
fabro-util = { path = "../fabro-util" }
fabro-git-storage = { path = "../fabro-git-storage" }
fabro-llm = { path = "../fabro-llm" }
thiserror.workspace = true
serde.workspace = true
serde_json.workspace = true
tokio.workspace = true
ulid.workspace = true
uuid.workspace = true
rand.workspace = true
async-trait.workspace = true
futures.workspace = true
chrono = { workspace = true, features = ["serde"] }
nom = "7"
toml.workspace = true
dirs = "6"
dialoguer.workspace = true
daytona-sdk.workspace = true
daytona-api-client.workspace = true
base64.workspace = true
regex.workspace = true
scopeguard = "1"
hex.workspace = true
sha2 = { workspace = true }
shlex = "1"
strsim = "0.11"
git2.workspace = true
cli-table.workspace = true
console.workspace = true
indicatif.workspace = true
tokio-util.workspace = true
tracing.workspace = true
walkdir.workspace = true
reqwest.workspace = true
[dev-dependencies]
fabro-mcp = { path = "../fabro-mcp" }
mockito = "1"
tokio = { workspace = true, features = ["test-util", "macros"] }
tempfile = "3"
dotenvy.workspace = true
assert_cmd = "2"
predicates = "3"
