[package]
name = "bamboo-subagent"
version.workspace = true
edition = "2021"
rust-version.workspace = true
description = "Sub-agent fleet runtime: project-keyed session store, indices, and Maildir-style mailbox"
license = "MIT"

[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
chrono = { workspace = true }
uuid = { workspace = true }
async-trait = "0.1"
futures-util = "0.3"
tokio = { version = "1", features = ["fs", "io-util", "io-std", "rt", "rt-multi-thread", "sync", "macros", "net", "time", "process"] }
tokio-util = "0.7"
# rustls-tls-webpki-roots gives the CLIENT (`ChildClient`) real wss:// support
# against standard CA roots, and pulls in the `Connector` API so a parent can
# also pin a self-signed worker cert via connect_with_auth_tls (remote-actor P1).
tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] }
# TLS termination for a remotely-reachable worker (remote-actor-plan P1, #181).
# default-features=false + ["ring","std","tls12"] matches the server's TLS face
# (#183) so the workspace resolves a single rustls/ring provider.
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"] }
tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "logging", "tls12"] }
rustls-pemfile = "2"

[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread", "time"] }
tempfile = "3"
