[package]
name = "bamboo-engine"
version.workspace = true
edition = "2021"
rust-version.workspace = true
description = "Execution engine and orchestration for the Bamboo agent framework"
license = "MIT"

[dependencies]
bamboo-domain = { path = "../../core/bamboo-domain", version = "2026.6.16"}
bamboo-infrastructure = { path = "../../infra/bamboo-infrastructure", version = "2026.6.16"}
bamboo-llm = { path = "../../infra/bamboo-llm", version = "2026.6.16"}
bamboo-config = { path = "../../infra/bamboo-config", version = "2026.6.16"}
bamboo-storage = { path = "../../infra/bamboo-storage", version = "2026.6.16"}
bamboo-agent-core = { path = "../../core/bamboo-agent-core", version = "2026.6.16"}
bamboo-a2a = { path = "../../infra/bamboo-a2a", version = "2026.6.16"}
bamboo-memory = { path = "../../infra/bamboo-memory", version = "2026.6.16"}
bamboo-metrics = { path = "../../infra/bamboo-metrics", version = "2026.6.16"}
bamboo-skills = { path = "../../infra/bamboo-skills", version = "2026.6.16"}
bamboo-mcp = { path = "../../infra/bamboo-mcp", version = "2026.6.16"}
bamboo-compression = { path = "../../infra/bamboo-compression", version = "2026.6.16"}
bamboo-subagent = { path = "../../infra/bamboo-subagent", version = "2026.6.16"}
bamboo-tools = { path = "../../engine/bamboo-tools", version = "2026.6.16"}
serde = { workspace = true }
serde_json = "1"
anyhow = "1"
thiserror = "1"
tokio = { version = "1", features = ["full"] }
tokio-util = { version = "0.7", features = ["rt"] }
futures = "0.3"
async-trait = "0.1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1", features = ["v4", "serde"] }
regex = "1"
dashmap = "6"
parking_lot = "0.12"
base64 = "0.22"
sha2 = "0.10"
colored = "2"
globset = "0.4"
reqwest = { version = "0.12", features = ["json", "stream"] }
tokio-stream = "0.1"
url = "2"
toml = "0.8"
dirs = "5"
libc = "0.2"
rand = "0.8"
sysinfo = "0.33"
bytes = "1"

[target.'cfg(windows)'.dependencies]
rust_ocr = "0.1.5"

[dev-dependencies]
tempfile = "3"
mockall = "0.13"
wiremock = "0.6"
tokio-test = "0.4"
http = "1"

[features]
test-utils = []
# Write the per-call token-usage JSONL sidecar (for the bamboo-analytics dev
# tool). The emit is also active automatically in any debug build, so dev
# `cargo run`/tests get it for free; this feature is the explicit escape hatch
# to force it on in a `--release` build. Off (and silent) in release otherwise.
token-usage-log = []
