[package]
name = "devrig"
version = "0.29.0"
edition = "2021"
description = "Local development orchestrator"
license = "MIT"
repository = "https://github.com/steveyackey/devrig"
homepage = "https://github.com/steveyackey/devrig"
include = [
    "/src/**/*",
    "/skill/**/*",
    "/dashboard/dist/**/*",
    "/Cargo.toml",
    "/Cargo.lock",
    "/LICENSE",
    "/README.md",
    "/CHANGELOG.md",
]

[dependencies]
clap = { version = "4.5", features = ["derive", "env", "wrap_help"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "process", "signal", "io-util", "time", "fs", "sync", "net"] }
tokio-util = { version = "0.7", features = ["rt"] }
tokio-stream = "0.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.8"
petgraph = "0.7"
sha2 = "0.10"
hex = "0.4"
dirs = "6"
owo-colors = "4"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "ansi", "fmt"] }
anyhow = "1"
thiserror = "2"
miette = { version = "7", features = ["fancy"] }
regex = "1"
is-terminal = "0.4"
rand = "0.8"
chrono = { version = "0.4", features = ["serde"] }
bollard = "0.20"
futures-util = "0.3"
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] }
backon = "1"
notify = "8"
notify-debouncer-mini = "0.5"
clap_complete = "4.5"
strsim = "0.11"
comfy-table = "7"

# v0.5: Observability + Dashboard
axum = { version = "0.8", features = ["ws"] }
tower-http = { version = "0.6", features = ["cors", "compression-br"] }
tonic = "0.12"
prost = "0.13"
prost-types = "0.13"
opentelemetry-proto = { version = "0.27", features = ["gen-tonic", "trace", "metrics", "logs", "with-serde"] }
flate2 = "1"
rust-embed = { version = "8", features = ["compression", "include-exclude"] }
mime_guess = "2"
humantime = "2"
dashmap = "6"
libc = "0.2"

[dev-dependencies]
assert_cmd = "2"
assert_fs = "1"
predicates = "3"
scopeguard = "1"
tempfile = "3"
tokio = { version = "1", features = ["test-util", "macros", "rt-multi-thread"] }
tokio-tungstenite = "0.28"

[target.'cfg(unix)'.dependencies]
nix = { version = "0.29", features = ["signal", "process"] }

[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.59", features = [
    "Win32_Foundation",
    "Win32_System_Threading",
    "Win32_System_JobObjects",
    "Win32_System_Console",
    "Win32_Security",
] }

[features]
default = ["dashboard"]
dashboard = []
integration = []

[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }{ archive-suffix }"
bin-dir = "{ name }-{ target }/{ bin }{ binary-ext }"
pkg-fmt = "txz"

[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"

# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"
