[package] name = "fabro-cli" edition.workspace = true version.workspace = true license.workspace = true description = "Unified CLI for the Fabro AI framework" [[bin]] name = "fabro" path = "src/main.rs" [features] default = [] server = ["dep:fabro-api"] exedev = ["fabro-config/exedev", "fabro-workflows/exedev"] sleep_inhibitor = ["dep:fabro-beastie"] [dependencies] fabro-config = { path = "../fabro-config" } fabro-llm = { path = "../fabro-llm" } fabro-openai-oauth = { path = "../fabro-openai-oauth" } fabro-github = { path = "../fabro-github" } fabro-agent = { path = "../fabro-agent" } fabro-mcp = { path = "../fabro-mcp" } fabro-workflows = { path = "../fabro-workflows" } fabro-api = { path = "../fabro-api", optional = true } fabro-beastie = { path = "../fabro-beastie", optional = true } fabro-util = { path = "../fabro-util" } clap.workspace = true console.workspace = true indicatif.workspace = true daytona-sdk.workspace = true anyhow.workspace = true dotenvy.workspace = true tokio.workspace = true tracing.workspace = true tracing-subscriber.workspace = true tracing-appender.workspace = true chrono.workspace = true dirs.workspace = true serde.workspace = true toml.workspace = true futures.workspace = true regex.workspace = true semver.workspace = true reqwest.workspace = true jsonwebtoken.workspace = true base64.workspace = true ulid.workspace = true rustls = { version = "0.23", default-features = false, features = ["std", "ring"] } rustls-pemfile = "2" x509-parser = "0.16" rand.workspace = true dialoguer.workspace = true axum = "0.8" open = "5" serde_json.workspace = true tempfile = "3" sha2.workspace = true [target.'cfg(unix)'.dependencies] libc = "0.2" [build-dependencies] chrono = { workspace = true } [dev-dependencies] assert_cmd = "2" insta = { workspace = true } predicates = "3" serde_json.workspace = true httpmock = "0.8" trycmd = "0.15"