[package]
name        = "acdp-verify"
version.workspace = true
edition     = "2021"
description = "High-level body/publish-request verification (DID resolution + signature) for the Agent Context Distribution Protocol (ACDP)"
license     = "MIT OR Apache-2.0"
readme      = "README.md"
repository  = "https://github.com/agentcontextdistributionprotocol/acdp-rs"
homepage    = "https://github.com/agentcontextdistributionprotocol/acdp-rs"
documentation = "https://docs.rs/acdp-verify"
keywords    = ["acdp", "verification", "signature", "did", "ed25519"]
categories  = ["cryptography", "web-programming"]
rust-version = "1.86"

[features]
# Enables the resolver-backed Verifier and publish-request verification
# (did:web DID-document fetch). did:key offline verification works without it.
client = ["acdp-did/client"]
# Structured diagnostics on the verification pipeline (spans + stage events).
tracing = ["dep:tracing", "acdp-did/tracing"]

[dependencies]
acdp-primitives = { path = "../acdp-primitives", version = "=0.8.0" }
acdp-types      = { path = "../acdp-types", version = "=0.8.0" }
acdp-crypto     = { path = "../acdp-crypto", version = "=0.8.0" }
tracing         = { version = "0.1", optional = true, default-features = false, features = ["attributes"] }
acdp-did        = { path = "../acdp-did", version = "=0.8.0" }
acdp-validation = { path = "../acdp-validation", version = "=0.8.0" }
serde_json = { version = "1", features = ["preserve_order", "float_roundtrip"] }

[dev-dependencies]
# Build valid signed did:key bodies / requests / lifecycle events to
# exercise the offline verification branches. This is a test-only
# dependency (acdp-producer sits above acdp-verify at runtime), the same
# pattern CLAUDE.md documents for the did→crypto and validation→producer
# dev cycles. Keep PATH-ONLY (no version): acdp-producer is not a normal
# dep of acdp-verify, so release-plz may publish acdp-verify first — a
# versioned dev-pin would then fail resolving an unpublished producer.
acdp-producer = { path = "../acdp-producer" }
chrono = { version = "0.4", default-features = false }

[lints.rust]
unsafe_code = "forbid"

[lints.clippy]
all = { level = "warn", priority = -1 }
