[package]
name = "edge-agent"
description = "Device-host agent bridging IoT devices (Nuimo BLE controller) to services (Roon, Philips Hue) via a central weave-server"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "../../README.md"
keywords = ["iot", "nuimo", "roon", "hue", "edge-agent"]
categories = ["command-line-utilities", "hardware-support"]

[dependencies]
weave-contracts = { version = "0.5", path = "../weave-contracts" }
edge-core = { version = "0.5", path = "../edge-core" }
nuimo = "0.1.1"
tokio = { workspace = true }
tokio-tungstenite = { workspace = true }
futures-util = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
anyhow = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
async-trait = { workspace = true }
uuid = { workspace = true }
toml = "0.8"
# Feature-gated: roon adapter
roon-api = { version = "0.5.1", optional = true }
# Feature-gated: hue adapter
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json", "stream"], optional = true }
bytes = { version = "1", optional = true }
mdns-sd = { version = "0.11", optional = true }
# Feature-gated: macos adapter (MQTT bridge to macos-hub)
rumqttc = { version = "0.24", optional = true }

[features]
default = ["roon"]
roon = ["dep:roon-api"]
hue = ["dep:reqwest", "dep:bytes", "dep:mdns-sd"]
macos = ["dep:rumqttc"]
