[package]
name = "fabro-agent"
edition.workspace = true
version.workspace = true
publish = false
license.workspace = true
description = "A programmable agentic loop for coding agents"
repository = "https://github.com/brynary/arc"
readme = "README.md"
keywords = ["llm", "ai", "agent", "coding"]
categories = ["api-bindings"]

[features]
default = ["docker"]
docker = ["fabro-sandbox/docker"]
quarantine = []

[lib]
doctest = false

[lints]
workspace = true

[dependencies]
clap.workspace = true
anyhow.workspace = true
fabro-auth = { path = "../../foundation/fabro-auth" }
fabro-config = { path = "../../foundation/fabro-config", features = ["clap"] }
fabro-types = { path = "../../foundation/fabro-types", features = ["clap"] }
fabro-llm = { path = "../fabro-llm" }
fabro-model = { path = "../../foundation/fabro-model" }
fabro-mcp = { path = "../fabro-mcp" }
fabro-sandbox = { path = "../fabro-sandbox" }
fabro-static.workspace = true
fabro-template = { path = "../../foundation/fabro-template" }
fabro-util = { path = "../../foundation/fabro-util" }
fabro-vault = { path = "../../foundation/fabro-vault" }
fabro-http.workspace = true
thiserror.workspace = true
serde.workspace = true
serde_json.workspace = true
strum.workspace = true
tokio.workspace = true
uuid.workspace = true
futures.workspace = true
async-trait.workspace = true
jsonschema.workspace = true
chrono.workspace = true
tokio-util.workspace = true
tracing.workspace = true
toml.workspace = true
dirs = "6"
glob = "0.3"
sha2.workspace = true
shell-escape = "0.1"
htmd = "0.5"

[target.'cfg(unix)'.dependencies]
libc = "0.2"

[dev-dependencies]
fabro-auth = { path = "../../foundation/fabro-auth", features = ["test-support"] }
insta.workspace = true
tokio = { workspace = true, features = ["test-util", "macros"] }
tempfile = "3"
paste = "1"
shlex = "1"
fabro-sandbox = { path = "../fabro-sandbox", features = ["test-support"] }
fabro-macros = { path = "../../foundation/fabro-macros" }
fabro-test = { workspace = true }
tracing-subscriber.workspace = true
