[package]
name = "hematite-cli"
version = "0.5.2"
edition = "2021"
description = "Local AI coding harness for LM Studio with TUI, voice, retrieval, and grounded workstation tooling"
readme = "README.md"
repository = "https://github.com/undergroundrap/hematite-cli"
homepage = "https://github.com/undergroundrap/hematite-cli"
license-file = "LICENSE"
keywords = ["ai", "cli", "coding-agent", "lm-studio", "tui"]
categories = ["command-line-utilities", "development-tools"]

[package.metadata.docs.rs]
# Hematite is a Windows-primary crate; default docs to the Windows target.
# List Linux explicitly so docs.rs also builds the platform-independent paths.
default-target = "x86_64-pc-windows-msvc"
targets = [
    "x86_64-pc-windows-msvc",
    "x86_64-unknown-linux-gnu",
]

[features]
default = []
embedded-voice-assets = []

[lib]
name = "hematite"
path = "src/lib.rs"

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

[dependencies]
tokio = { version = "1.0", features = ["full", "parking_lot"] }
reqwest = { version = "0.12", features = ["json", "stream", "blocking"] }
ratatui = "0.26"
crossterm = { version = "0.27", features = ["event-stream"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
clap = { version = "4.4", features = ["derive"] }
rusqlite = { version = "0.31", features = ["bundled"] }
thiserror = "1.0"
notify = "6.1"
futures = "0.3"
rand = "0.8"
lazy_static = "1.4"
walkdir = "2"
regex = "1"
chrono = "0.4"
percent-encoding = "2.3"
ignore = "0.4"
tree-sitter = "0.23"
tree-sitter-rust = "0.23"
tree-sitter-typescript = "0.23"
tree-sitter-javascript = "0.23"
tree-sitter-python = "0.23"
petgraph = "0.7"

# Voice & Audio Synthesis
kokoros = { package = "hematite-kokoros", version = "0.1.1", path = "libs/kokoros" }
rodio = "0.19"
base64 = "0.22.1"
home = "0.5.12"
anyhow = "1.0.102"
pdf-extract = "0.7"
lopdf = { version = "0.34", default-features = false, features = ["nom_parser"] }

# Performance overrides for heavy AI logic in Debug mode
[dev-dependencies]
tempfile = "3"
dirs = "5"

[build-dependencies]
winres = "0.1"

[profile.dev.package.ort]
opt-level = 3
codegen-units = 1
[profile.dev.package.hematite-kokoros]
opt-level = 3
codegen-units = 1
[profile.dev.package.ndarray]
opt-level = 3
codegen-units = 1

[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true
