[package]
name = "decapod"
version = "0.59.0"
edition = "2024"
rust-version = "1.91.1"
build = "build/compress_constitution.rs"
description = "Decapod is a Rust-built governance runtime for AI agents: repo-native state, enforced workflow, proof gates, safe coordination."
license = "MIT"
repository = "https://github.com/DecapodLabs/decapod"
homepage = "https://github.com/DecapodLabs/decapod"
readme = "README.md"
keywords = ["governance", "ai", "ai-agents", "control-plane", "orchestration"]
categories = ["artificial-intelligence", "command-line-utilities", "development-tools"]
exclude = [
    ".decapod/*",
    "dist/*",
    "target/*",
    "constitution_embed/*",
    "project/assets/*.mp4",
    "tests/fixtures/*",
    "tests/golden_vectors/*"
]

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

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

[[bin]]
name = "selective-test"
path = "src/bin/selective-test.rs"

[workspace]
# members = ["crates/*"]

[build-dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
flate2 = "1.0"

[dependencies]
flate2 = "1.0"
rusqlite = "0.32"
fancy-regex = "0.13"
clap = { version = "4.5", features = ["derive"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tiktoken-rs = "0.9"
sha2 = "0.10"
rust-embed = { version = "8.5", features = ["include-exclude"] }
toml = "1.0"

tokio = { version = "1.52.3", features = ["full"] }
anyhow = "1.0.102"
async-trait = "0.1.89"
chrono = { version = "0.4.44", features = ["serde"] }

[features]
default = []
cloud = []

[dev-dependencies]
tempfile = "3.10"
decapod = { path = "." }
criterion = { version = "0.5", features = ["html_reports"] }
serde_json = "1.0"
regex = "1.10"

[[test]]
name = "plugins_todo_tests"
path = "tests/plugins/todo.rs"

[[test]]
name = "plugins_policy_tests"
path = "tests/plugins/policy.rs"

[[test]]
name = "plugins_health_tests"
path = "tests/plugins/health.rs"

[[test]]
name = "plugins_aptitude_tests"
path = "tests/plugins/aptitude.rs"

[[test]]
name = "plugins_internalize_tests"
path = "tests/plugins/internalize.rs"

[[test]]
name = "plugins_federation_tests"
path = "tests/plugins/federation.rs"

[[test]]
name = "plugins_decide_tests"
path = "tests/plugins/decide.rs"

[[test]]
name = "plugins_obligation_tests"
path = "tests/plugins/obligation.rs"

[[test]]
name = "gatling"
path = "tests/gatling.rs"

[[test]]
name = "core_tests"
path = "tests/core/core.rs"

[[bench]]
name = "perf_1_1"
path = "project/benches/perf_1_1.rs"
harness = false

[[bench]]
name = "perf_1_2"
path = "project/benches/perf_1_2.rs"
harness = false

[[bench]]
name = "perf_1_3"
path = "project/benches/perf_1_3.rs"
harness = false
