[package]
name = "decapod"
version = "0.62.2"
edition = "2024"
rust-version = "1.96.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"

# Config for 'cargo dist'
[workspace.metadata.dist]
# The preferred cargo-dist version to use in CI (Cargo.toml SemVer syntax)
cargo-dist-version = "0.22.1"
# CI backends to support
ci = "github"
# The installers to generate for each app
installers = []
# Target platforms to build apps for (Rust target-triple syntax)
targets = ["x86_64-unknown-linux-gnu", "aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "aarch64-apple-darwin"]
# Allow manual modifications to the generated CI workflow
allow-dirty = ["ci"]
# members = ["crates/*"]

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

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

tokio = { version = "1", features = ["full"] }
anyhow = "1"
async-trait = "0.1"
chrono = { version = "0.4", 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"

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

[[test]]
name = "verify_deadlock_regression"
path = "tests/verify_deadlock_regression.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

# The profile that 'cargo dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"

[workspace.metadata.dist.github-custom-runners]
global = "ubuntu-24.04"
x86_64-unknown-linux-gnu = "ubuntu-24.04"
aarch64-unknown-linux-gnu = "ubuntu-24.04"
x86_64-apple-darwin = "macos-14"
aarch64-apple-darwin = "macos-14"
