[package]
name        = "klieo-ops"
version     = "2.3.0"
edition     = "2021"
rust-version = "1.89"
description = "Operational layer above klieo-core: supervisor, governor, gates, escalation, worklog, handoff."
readme      = "README.md"
license     = "MIT"
publish     = true
repository.workspace    = true
homepage.workspace      = true
documentation.workspace = true

[features]
default     = ["supervisor", "governor", "gates", "escalation", "worklog", "handoff", "crypter"]
supervisor  = []
governor    = []
gates       = ["dep:cedar-policy"]
escalation  = []
worklog     = []
handoff     = ["dep:blake3", "dep:ciborium"]
crypter     = ["dep:aes-gcm"]
hot-reload  = ["dep:notify-debouncer-mini", "dep:arc-swap"]
full        = ["supervisor", "governor", "gates", "escalation", "worklog", "handoff", "crypter"]
test-utils  = []

[dependencies]
klieo-core    = { path = "../klieo-core", version = "2" }
klieo-provenance = { path = "../klieo-provenance", version = "2" }
klieo-pii-patterns = { path = "../klieo-pii-patterns", version = "2" }
async-trait   = { workspace = true }
bytes         = { workspace = true }
tokio         = { workspace = true }
tokio-stream  = { workspace = true }
tracing       = { workspace = true }
serde         = { workspace = true }
serde_json    = { workspace = true }
thiserror     = { workspace = true }
regex         = { workspace = true }
chrono        = { workspace = true }
futures-core  = { workspace = true }
futures       = { workspace = true }
cedar-policy  = { workspace = true, optional = true }
blake3        = { workspace = true, optional = true }
ciborium      = { workspace = true, optional = true }
aes-gcm       = { workspace = true, optional = true }
siphasher     = { workspace = true }
notify-debouncer-mini = { workspace = true, optional = true }
arc-swap      = { workspace = true, optional = true }
ed25519-dalek = { workspace = true }
hex           = { workspace = true }
serde_yaml    = { version = "0.9" }
base64        = { version = "0.22" }
dashmap       = { workspace = true }
parking_lot   = { workspace = true }
ulid          = { workspace = true }
anyhow        = { workspace = true }
http          = { workspace = true }
reqwest       = { workspace = true }
reqwest-middleware = { workspace = true }

[dev-dependencies]
klieo-ops     = { path = ".", features = ["test-utils"] }
klieo-core    = { path = "../klieo-core", features = ["test-utils"] }
klieo-bus-memory = { path = "../klieo-bus-memory" }
klieo-memory-sqlite = { path = "../klieo-memory-sqlite" }
klieo-runlog  = { path = "../klieo-runlog" }
klieo-ops-evidence-verify = { path = "../klieo-ops-evidence-verify" }
tokio         = { workspace = true, features = ["macros", "rt-multi-thread", "test-util"] }
tokio-util    = { workspace = true }
proptest      = { workspace = true }
tokio-test    = { workspace = true }
tempfile      = { workspace = true }
wiremock      = { workspace = true }
rand_core     = { version = "0.6" }

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
