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