[package]
name = "aa-runtime"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "Tokio async runtime wrapper and lifecycle management for Agent Assembly"

[features]
default = []
# Enables integration tests that exercise both proxy and eBPF layers together.
# Requires Linux + root (CAP_BPF + CAP_PERFMON). Not included in default features.
# Usage: sudo cargo test -p aa-runtime --features integration-test --test layer_integration
integration-test = []

[dependencies]
aa-core                     = { path = "../aa-core", version = "0.0.1-alpha.8", features = ["serde"] }
aa-security                 = { path = "../aa-security", version = "0.0.1-alpha.8", features = ["serde"] }
aa-proto                    = { path = "../aa-proto", version = "0.0.1-alpha.8" }
aa-storage-sqlite-buffer    = { path = "../aa-storage-sqlite-buffer", version = "0.0.1-alpha.8" }
async-nats                  = { workspace = true }
async-trait                 = { workspace = true }
axum                        = { workspace = true }
bitflags                    = "2"
bytes                       = { workspace = true }
dashmap                     = { workspace = true }
uuid                        = { workspace = true, features = ["v4"] }
metrics                     = { workspace = true }
metrics-exporter-prometheus = { workspace = true }
prost                       = { workspace = true }
serde                       = { workspace = true }
sha2                        = { workspace = true }
serde_json                  = { workspace = true }
toml                        = { workspace = true }
tokio                       = { workspace = true, features = ["full"] }
tokio-stream                = { workspace = true }
tokio-util                  = { workspace = true, features = ["rt"] }
tonic                       = { workspace = true }
tracing                     = { workspace = true }
tracing-subscriber          = { workspace = true, features = ["json", "env-filter"] }
which                       = { workspace = true }

[target.'cfg(target_os = "linux")'.dependencies]
aa-ebpf = { path = "../aa-ebpf", version = "0.0.1-alpha.8" }
libc    = { workspace = true }

[dev-dependencies]
tempfile = { workspace = true }
tokio = { workspace = true, features = ["test-util"] }
tower = { workspace = true }
# Captures emitted metric values so the audit-publisher metric tests can assert
# the exact counter values recorded by `metrics::counter!`.
metrics-util = { workspace = true, features = ["debugging"] }
# Real NATS server for the audit-publisher reconnect integration test. Requires
# Docker; re-exports the `testcontainers` core runner.
testcontainers-modules = { workspace = true, features = ["nats"] }

[lints]
workspace = true
