[package]
name = "construct-robot-kit"
version = "0.1.0"
edition = "2024"
authors = ["Kumiho Inc."]
license = "MIT OR Apache-2.0"
description = "Robot control toolkit for Construct - drive, vision, speech, sensors, safety"
repository = "https://github.com/KumihoIO/construct-os"
readme = "README.md"
keywords = ["robotics", "raspberry-pi", "ai", "agent", "ros2"]
categories = ["science::robotics", "embedded", "hardware-support"]

[features]
default = ["safety"]
# Core features
safety = []           # Safety monitor (recommended!)
ros2 = []             # ROS2 integration
gpio = ["dep:rppal"]  # Direct GPIO control (Pi only)
# Optional hardware
lidar = []            # LIDAR support
vision = []           # Camera + vision model

[dependencies]
# Re-use construct's tool trait (optional - can also be standalone)
# construct = { path = "../..", optional = true }

# Async runtime
tokio = { version = "1.50", features = ["rt-multi-thread", "macros", "time", "sync", "process", "fs", "io-util"] }

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "1.0"

# HTTP client (for Ollama vision)
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }

# Base64 encoding (for image data)
base64 = "0.22"

# Async traits
async-trait = "0.1"

# Error handling
anyhow = "1.0"
thiserror = "2.0"

# Logging
tracing = "0.1"

# Time handling
chrono = { version = "0.4", features = ["clock", "std"] }

# Portable atomics for 32-bit targets
portable-atomic = "1"

# User directories
directories = "6.0"


[target.'cfg(target_os = "linux")'.dependencies]
# GPIO (Raspberry Pi only, optional)
rppal = { version = "0.22", optional = true }

[dev-dependencies]
tokio-test = "0.4"
tempfile = "3.26"

[package.metadata.docs.rs]
all-features = true
