[package]
name = "aa-core"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "Pure domain logic for Agent Assembly — no_std compatible"

[dependencies]
aa-security  = { path = "../aa-security", version = "0.0.1-alpha.8", optional = true }
async-trait  = { workspace = true, optional = true }
cfg-if       = "1"
chrono       = { workspace = true, default-features = false, features = ["clock"], optional = true }
dirs         = { workspace = true, optional = true }
schemars     = { version = "1", optional = true }
serde        = { workspace = true, default-features = false, features = ["alloc"], optional = true }
serde_json   = { workspace = true, optional = true }
serde_yaml   = { workspace = true, optional = true }
sha2         = { workspace = true, default-features = false, optional = true }
thiserror    = { workspace = true, optional = true }

[features]
default    = ["std"]
std        = ["alloc", "dep:aa-security", "dep:async-trait", "dep:thiserror", "dep:chrono", "dep:dirs", "dep:serde_json", "dep:serde_yaml", "serde?/std"]
alloc      = ["dep:sha2"]
serde      = ["dep:serde", "aa-security?/serde"]
schemars   = ["dep:schemars"]
test-utils = []

[dev-dependencies]
proptest   = { workspace = true }
serde_json = { workspace = true }
# Self dev-dependency: turns on `serde` + `schemars` for aa-core's own test
# build so the `types::` property tests and JsonSchema derives compile and run
# under `cargo nextest run -p aa-core` without making those features default
# for downstream consumers.
aa-core    = { path = ".", features = ["serde", "schemars"] }

[lints]
workspace = true
