cora-code 0.14.0

CLI-first AI code review — BYOK, diff/scan/branch, pre-commit hooks
[package]
name = "cora-code"
version = "0.14.0"
edition = "2024"
description = "CLI-first AI code review — BYOK, diff/scan/branch, pre-commit hooks"
license = "Apache-2.0"
repository = "https://github.com/codecoradev/cora-code"
readme = "README.md"
keywords = ["cli", "code-review", "ai", "git", "pre-commit"]
categories = ["command-line-utilities", "development-tools"]
rust-version = "1.85"
exclude = [
    "vendored/",
    "docs/",
    ".github/",
    "tests/",
    "bench/",
    "target/",
]

[dependencies]
# CLI
clap = { version = "4", features = ["derive", "env"] }
clap_complete = "4"

# Async runtime (only what we need)
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }

# HTTP client (OpenAI-compatible API calls)
reqwest = { version = "0.12", features = ["json", "stream", "rustls-tls"], default-features = false }

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml_ng = "0.10"

# Git operations
git2 = { version = "0.21", default-features = false, features = ["vendored-libgit2"] }

# Terminal output
colored = "3"
indicatif = "0.18"

# File system
dirs = "6"
glob = "0.3"
ignore = "0.4"

# Parallelism (cold-rebuild file parsing)
rayon = "1"

# Error handling
anyhow = "1"
which = "7"
thiserror = "2"

# Config
toml = "0.8"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# Misc
regex = "1"
futures-util = "0.3"
sha2 = "0.10"
chrono = { version = "0.4.44", features = ["serde"] }

# Symbol index (v0.6 — Code Intelligence)
rusqlite = { version = "0.31", features = ["bundled"] }

# Vector search (Phase 3 — Brain Mode)
usearch = "2"
fs2 = "0.4"

# Self-update (upgrade command)
flate2 = "1"
tar = "0.4"

# Tree-sitter AST parsing (optional — enable with --features tree-sitter)
tree-sitter = { version = "0.26", optional = true }
tree-sitter-rust = { version = "0.24", optional = true }
tree-sitter-go = { version = "0.25", optional = true }
tree-sitter-python = { version = "0.25", optional = true }
tree-sitter-typescript = { version = "0.23", optional = true }
tree-sitter-java = { version = "0.23", optional = true }
tree-sitter-c = { version = "0.24", optional = true }
tree-sitter-cpp = { version = "0.23", optional = true }
tree-sitter-c-sharp = { version = "0.23", optional = true }
tree-sitter-ruby = { version = "0.23", optional = true }
tree-sitter-php = { version = "0.24", optional = true }
tree-sitter-scala = { version = "0.26", optional = true }
tree-sitter-javascript = { version = "0.25", optional = true }

[features]
default = ["tree-sitter"]
pretrained-embed = []
tree-sitter = [
    "dep:tree-sitter",
    "dep:tree-sitter-rust",
    "dep:tree-sitter-go",
    "dep:tree-sitter-python",
    "dep:tree-sitter-typescript",
    "dep:tree-sitter-java",
    "dep:tree-sitter-c",
    "dep:tree-sitter-cpp",
    "dep:tree-sitter-c-sharp",
    "dep:tree-sitter-ruby",
    "dep:tree-sitter-php",
    "dep:tree-sitter-scala",
    "dep:tree-sitter-javascript",
]

[dev-dependencies]
assert_cmd = "2"
predicates = "3"
tempfile = "3"
tokio-test = "0.4"

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

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