[package]
name = "lash-runtime"
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 = "Durable agent runtime for Rust: sessions, turns, tools, plugins. Embeddable facade over lash-core."
keywords = ["lash", "agent", "llm", "runtime", "ai"]
categories = ["asynchronous", "api-bindings"]
[lib]
name = "lash"
path = "src/lib.rs"
[dependencies]
async-trait = { workspace = true }
lash-core = { workspace = true }
lash-lashlang-runtime = { workspace = true, optional = true }
lash-remote-protocol = { workspace = true }
lash-tool-support = { workspace = true }
lash-protocol-rlm = { workspace = true, optional = true }
lash-protocol-standard = { workspace = true }
lash-plugin-tool-output-budget = { workspace = true }
lash-rlm-types = { workspace = true, optional = true }
lash-trace = { workspace = true }
lashlang = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["sync"] }
tokio-util = { workspace = true }
[features]
default = []
rlm = ["dep:lash-lashlang-runtime", "dep:lash-protocol-rlm", "dep:lash-rlm-types", "dep:lashlang"]
testing = ["lash-core/testing"]
[dev-dependencies]
lash-core = { workspace = true, features = ["testing"] }
lash-remote-protocol = { workspace = true, features = ["core-conversions"] }
lash-subagents = { workspace = true }
lash-sqlite-store = { workspace = true }
tempfile = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "sync"] }
rusqlite = { version = "0.37", features = ["bundled"] }
trybuild = "1"