[workspace]
resolver = "2"
members = [
    "crates/openjarvis-core",
    "crates/openjarvis-engine",
    "crates/openjarvis-agents",
    "crates/openjarvis-tools",
    "crates/openjarvis-learning",
    "crates/openjarvis-telemetry",
    "crates/openjarvis-traces",
    "crates/openjarvis-security",
    "crates/openjarvis-mcp",
    "crates/openjarvis-python",
    "crates/openjarvis-sessions",
    "crates/openjarvis-workflow",
    "crates/openjarvis-skills",
    "crates/openjarvis-recipes",
    "crates/openjarvis-templates",
    "crates/openjarvis-a2a",
    "crates/openjarvis-scheduler",
]

# Minimum supported Rust version. The workspace uses let-chains (via rig-core)
# and `is_multiple_of` (openjarvis-skills), both stabilized in Rust 1.88 —
# building on 1.86/1.87 fails with cryptic E0658 errors deep in dependencies
# (see #252). Declared here and pinned in rust-toolchain.toml so users get a
# clear "requires rustc 1.88" signal instead.
[workspace.package]
rust-version = "1.88"

[workspace.dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
thiserror = "2"
tracing = "0.1"
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "blocking", "rustls-tls"] }
rusqlite = { version = "0.32", features = ["bundled", "column_decltype"] }
regex = "1"
once_cell = "1"
sha2 = "0.10"
uuid = { version = "1", features = ["v4"] }
rand = "0.8"
parking_lot = "0.12"
async-trait = "0.1"
pyo3 = { version = "0.23", features = ["extension-module"] }
meval = "0.2"
chrono = { version = "0.4", features = ["serde"] }
futures = "0.3"
tokio-stream = "0.1"
ed25519-dalek = { version = "2", features = ["rand_core"] }
fnmatch-regex = "0.2"
url = "2"
sysinfo = "0.33"
rig-core = "0.31"
schemars = "1"
