[package]
name = "lash-core"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
readme.workspace = true
rust-version.workspace = true
description = "Sans-IO turn machine and runtime kernel for the lash agent runtime."
keywords = ["lash", "agent", "runtime", "async", "ai"]
categories = ["asynchronous", "api-bindings"]

[features]
# Keep core portable by default.
default = []
otel-trace = ["lash-trace/otel"]
# Expose `lash::testing` for downstream plugin crates to share mock
# session-manager/turn fixtures with lash's own tests.
testing = []

[dependencies]
lash-sansio = { workspace = true }
lash-trace = { workspace = true }
tokio = { workspace = true, features = ["process", "io-util", "sync", "time", "rt", "rt-multi-thread", "macros"] }
serde = { workspace = true, features = ["derive", "rc"] }
serde_json = { workspace = true }
schemars = { workspace = true, features = ["derive"] }
async-trait = { workspace = true }
arc-swap = { workspace = true }
uuid = { workspace = true, features = ["v4"] }
thiserror = { workspace = true }
tracing = { workspace = true }
tokio-util = { workspace = true, features = ["rt"] }
sha2 = { workspace = true }
chrono = { workspace = true }
futures-util = { workspace = true }
hmac = { workspace = true }

[dev-dependencies]
proptest = "1"
tempfile = { workspace = true }
