[package]
name = "arbiter-mcp-firewall"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Arbiter: MCP tool-call firewall, integration binary"

[lib]
name = "arbiter"
path = "src/lib.rs"

[[bin]]
name = "arbiter"
path = "src/main.rs"

[features]
default = ["watch"]
watch = ["arbiter-policy/watch"]
sqlite = ["arbiter-storage/sqlite"]

[dependencies]
anyhow = "1"
flate2 = "1"
axum = { version = "0.8", features = ["json"] }
bytes = "1"
chrono = { version = "0.4", features = ["serde"] }
clap = { version = "4", features = ["derive", "env"] }
http-body-util = "0.1"
hyper = { version = "1", features = ["server", "client", "http1", "http2"] }
# RED-TEAM FIX (C-01): HTTPS support for upstream connections.
# Previously used build_http() which only supported plaintext HTTP,
# meaning all injected credentials traveled in cleartext to the upstream.
hyper-rustls = { version = "0.27", default-features = false, features = ["http1", "http2", "ring", "tls12", "webpki-tokio", "logging"] }
hyper-util = { version = "0.1", features = ["tokio", "server", "server-auto", "client", "client-legacy", "http1", "http2"] }
secrecy = "0.10"
subtle = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
arbiter-audit = { path = "../arbiter-audit", version = "0.0.43" }
arbiter-credential = { path = "../arbiter-credential", version = "0.0.43" }
arbiter-behavior = { path = "../arbiter-behavior", version = "0.0.43" }
arbiter-identity = { path = "../arbiter-identity", version = "0.0.43" }
arbiter-lifecycle = { path = "../arbiter-lifecycle", version = "0.0.43" }
arbiter-mcp = { path = "../arbiter-mcp", version = "0.0.43" }
arbiter-metrics = { path = "../arbiter-metrics", version = "0.0.43" }
arbiter-oauth = { path = "../arbiter-oauth", version = "0.0.43" }
arbiter-policy = { path = "../arbiter-policy", version = "0.0.43" }
arbiter-proxy = { path = "../arbiter-proxy", version = "0.0.43" }
arbiter-session = { path = "../arbiter-session", version = "0.0.43" }
arbiter-storage = { path = "../arbiter-storage", version = "0.0.43" }
tokio = { version = "1", features = ["full"] }
uuid = { version = "1", features = ["v4"] }
toml = "0.8"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] }
tempfile = "3"
tokio = { version = "1", features = ["full", "test-util"] }

[[bench]]
name = "throughput"
harness = false
