[package]
name = "hematite-cli"
version = "0.8.2"
edition = "2021"
description = "Senior SysAdmin, Network Admin, Data Analyst, and Software Engineer living in your terminal. A high-precision local AI agent harness for LM Studio, Ollama, and other local OpenAI-compatible runtimes that runs 100% on your own silicon. Reads repos, edits files, runs builds, inspects full network state and workstation telemetry, and runs real Python/JS for data analysis."
readme = "README.md"
repository = "https://github.com/undergroundrap/hematite-cli"
homepage = "https://github.com/undergroundrap/hematite-cli"
license = "AGPL-3.0-only"
license-file = "LICENSE"
keywords = ["ai", "harness", "sysadmin", "local-llm", "cli"]
categories = ["command-line-utilities", "development-tools", "network-programming", "os"]

exclude = [
    "assets/*",
    "evals/*",
    "installer/*",
    "docs/*",
    "dist/*",
    ".claude/*",
    ".hematite/*",
    "scripts/*",
    "*.ps1",
    "*.sh",
    "prompt_library.md",
    "MEMORY.md",
    "WORKFLOWS.md",
    "CONTRIBUTING.md",
    "CAPABILITIES.md",
]

[package.metadata.docs.rs]
# docs.rs runs on Linux — MSVC targets require lib.exe which is not available.
# Build docs for Linux; the API surface is the same across platforms.
default-target = "x86_64-unknown-linux-gnu"
targets = ["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]
async-trait = "0.1"
tokio = { version = "1.0", features = ["full", "parking_lot"] }
reqwest = { version = "0.12", features = ["json", "stream", "blocking"] }
ratatui = "0.29"
crossterm = { version = "0.28", features = ["event-stream"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
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"
aho-corasick = "1"
walkdir = "2"
regex = "1"
chrono = "0.4"
percent-encoding = "2.3"
urlencoding = "2.1.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"
libc = "0.2"
tempfile = "3"
shlex = "1.3"
url = "2.5"
which = "6.0"
similar = { version = "2.4", features = ["inline"] }

# Voice & Audio Synthesis
kokoros = { package = "hematite-kokoros", version = "0.1.3", path = "libs/kokoros" }
rodio = "0.19"
base64 = "0.22.1"
home = "0.5.12"
dirs = "5"
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]

[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
