heal-cli 0.4.0

Hook-driven Evaluation & Autonomous Loop — code-health harness CLI for AI coding agents
Documentation
[package]
name = "heal-cli"
description = "Hook-driven Evaluation & Autonomous Loop — code-health harness CLI for AI coding agents"
documentation = "https://docs.rs/heal-cli"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
rust-version.workspace = true
keywords.workspace = true
categories.workspace = true

# Files shipped to crates.io. The default Cargo logic only walks `src/`,
# `Cargo.toml`, `Cargo.lock`, and a few common docs — `skills/` and
# `queries/` would be silently dropped, breaking `include_dir!` and
# `include_str!` in the published tarball.
include = [
    "src/**/*",
    "tests/**/*",
    "skills/**/*",
    "queries/**/*.scm",
    "Cargo.toml",
    "README.md",
    "LICENSE-MIT",
    "LICENSE-APACHE",
]

[lints]
workspace = true

[features]
# All six grammars ship in the released binary. Each is gated so a
# downstream binary can drop unused ones via `--no-default-features
# --features lang-<name>,...` to shrink the build. Long-form names
# (matching the `tree-sitter-<name>` parser crate) are canonical.
default = [
    "lang-typescript",
    "lang-javascript",
    "lang-python",
    "lang-go",
    "lang-scala",
    "lang-rust",
]
lang-typescript = ["dep:tree-sitter-typescript"]
lang-javascript = ["dep:tree-sitter-javascript"]
lang-python = ["dep:tree-sitter-python"]
lang-go = ["dep:tree-sitter-go"]
lang-scala = ["dep:tree-sitter-scala"]
lang-rust = ["dep:tree-sitter-rust"]

# Short-form aliases (legacy). Predate the long-form names; kept so
# existing `--features lang-ts` invocations don't break.
lang-ts = ["lang-typescript"]
lang-js = ["lang-javascript"]
lang-py = ["lang-python"]

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

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

[dependencies]
clap = { workspace = true }
anyhow = { workspace = true }
thiserror = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
toml = { workspace = true }
chrono = { workspace = true }
include_dir = { workspace = true }
tokei = { workspace = true }
tree-sitter = { workspace = true }
tree-sitter-typescript = { workspace = true, optional = true }
tree-sitter-javascript = { workspace = true, optional = true }
tree-sitter-python = { workspace = true, optional = true }
tree-sitter-go = { workspace = true, optional = true }
tree-sitter-scala = { workspace = true, optional = true }
tree-sitter-rust = { workspace = true, optional = true }
ignore = { workspace = true }
git2 = { workspace = true }
tempfile = { workspace = true }

[dev-dependencies]
git2 = { workspace = true }