[package]
name = "joy-cli"
version = "0.15.6"
edition = "2021"
license = "MIT"
description = "CLI for Joy product management - Git-native, terminal-first"
repository = "https://github.com/joyint/joy"
homepage = "https://joyint.com/en/joy"
readme = "README.md"

[[bin]]
name = "joy"
path = "src/main.rs"

[dependencies]
joy-core = { version = "0.15.6", path = "../joy-core" }
minijinja = { workspace = true }
joy-ai = { version = "0.15.6", path = "../joy-ai" }
clap = { workspace = true }
clap_complete = { version = "4.5", features = ["unstable-dynamic"] }
anyhow = { workspace = true }
chrono = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml_ng = { workspace = true }
tokio = { workspace = true }

# TUI (optional)
ratatui = { version = "0.29", optional = true }
crossterm = { version = "0.28", optional = true }

# Server (optional)
axum = { version = "0.8", optional = true }
tower-http = { version = "0.6", optional = true, features = ["cors"] }
rpassword = "7"
sigpipe = "0.1"
unicode-width = "0.2.0"
toml_edit = "0.25.5"
glob = "0.3.3"
termimad = "0.31"
inquire = { version = "0.7", default-features = false, features = ["crossterm"] }
hex = "0.4"
# Self-update for cargo-dist-distributed binaries. Receipt-gated, so
# brew / cargo-install / distro-package builds opt out gracefully.
# See JOY-0164-B5.
axoupdater = { version = "0.10", features = ["blocking"] }

[dev-dependencies]
assert_cmd = "2"
predicates = "3"
tempfile = "3"
trycmd = "0.15"

[features]
default = ["tui"]
tui = ["dep:ratatui", "dep:crossterm"]
server = ["dep:axum", "dep:tower-http"]
full = ["tui", "server"]
fast-kdf = ["joy-core/fast-kdf"]
