[package]
name = "fabro-api"
edition.workspace = true
version.workspace = true
license.workspace = true
description = "HTTP API server for Fabro pipelines"

[lib]
doctest = false

[dependencies]
fabro-config = { path = "../fabro-config" }
fabro-workflows = { path = "../fabro-workflows", features = ["exedev"] }
fabro-github = { path = "../fabro-github" }
fabro-agent = { path = "../fabro-agent" }
fabro-llm = { path = "../fabro-llm" }
fabro-util = { path = "../fabro-util" }
fabro-db = { path = "../fabro-db" }
fabro-types = { path = "../fabro-types" }
chrono.workspace = true
futures-util.workspace = true
axum = "0.8"
dirs.workspace = true
sqlx.workspace = true
tower = "0.5"
tokio-stream = { workspace = true, features = ["sync"] }
base64.workspace = true
jsonwebtoken.workspace = true
tokio.workspace = true
tokio-rustls = "0.26"
rustls = { version = "0.23", default-features = false, features = ["std", "ring"] }
rustls-pemfile = "2"
rustls-pki-types = "1"
hyper = "1"
hyper-util = { version = "0.1", features = ["tokio", "server-auto", "http1", "http2"] }
tower-service = "0.3"
x509-parser = "0.16"
serde.workspace = true
serde_json.workspace = true
serde_yaml = "0.9"
anyhow.workspace = true
clap.workspace = true
toml.workspace = true
tracing.workspace = true
ulid.workspace = true
uuid.workspace = true
hmac.workspace = true
sha2.workspace = true
hex.workspace = true
reqwest.workspace = true
bytes = "1"

[dev-dependencies]
tokio = { workspace = true, features = ["test-util", "macros"] }
tower = "0.5"
http-body-util = "0.1"
tempfile = "3"
openapiv3 = "2"
serde_yaml = "0.9"
fabro-exe = { path = "../fabro-exe" }
