[package]
name = "colgrep"
version.workspace = true
edition = "2021"
description = "Semantic code search powered by ColBERT"
license = "MIT"
repository = "https://github.com/lightonai/next-plaid"
homepage = "https://github.com/lightonai/next-plaid"

[package.metadata.dist]
dist = true

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

[dependencies]
# === Core: your crates ===
next-plaid = { path = "../next-plaid", version = "0.9.1" }
next-plaid-onnx = { path = "../next-plaid-onnx", version = "0.9.1" }

# === Tree-sitter for parsing ===
tree-sitter = "0.25"
# Original languages
tree-sitter-python = "0.25"
tree-sitter-typescript = "0.23"
tree-sitter-javascript = "0.25"
tree-sitter-go = "0.25"
tree-sitter-rust = "0.24"
tree-sitter-java = "0.23"
tree-sitter-c = "0.24"
tree-sitter-cpp = "0.23"
tree-sitter-ruby = "0.23"
tree-sitter-c-sharp = "0.23"
# Additional languages
tree-sitter-kotlin-ng = "1.1"
tree-sitter-swift = "0.7"
tree-sitter-scala = "0.23"
tree-sitter-php = "0.24"
tree-sitter-lua = "0.4"
tree-sitter-elixir = "0.3"
tree-sitter-haskell = "0.23"
tree-sitter-ocaml = "0.23"
tree-sitter-r = "1.2"
tree-sitter-zig = "1.1"
tree-sitter-julia = "0.23"
tree-sitter-sequel = "0.3"
tree-sitter-html = "0.23"

# === Model download ===
hf-hub = "0.4"

# === ONNX Runtime setup ===
ureq = "2"
flate2 = "1"
tar = "0.4"
dirs = "5"

# === CLI ===
clap = { version = "4", features = ["derive"] }
colored = "2"
indicatif = "0.17"
syntect = "5"

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

# === Error handling ===
anyhow = "1"
thiserror = "1"

# === Regex ===
regex = "1"

# === Parallelism ===
rayon = "1.8"

# === File handling ===
walkdir = "2"
ignore = "0.4"
globset = "0.4"
fs2 = "0.4"

# === Hashing ===
xxhash-rust = { version = "0.8", features = ["xxh3"] }

# === Signal handling ===
ctrlc = "3.4"

# === TTY detection ===
atty = "0.2"

# === Ndarray (for embeddings) ===

# === Ndarray (for embeddings) ===
ndarray = "0.16"

[dev-dependencies]
tempfile = "3"

[features]
default = []
# Model inference acceleration (ONNX Runtime execution providers)
cuda = ["next-plaid-onnx/cuda", "next-plaid/cuda"]
coreml = ["next-plaid-onnx/coreml"]
tensorrt = ["next-plaid-onnx/tensorrt"]
directml = ["next-plaid-onnx/directml"]
# Vector search acceleration (BLAS backends)
accelerate = ["next-plaid/accelerate"]
openblas = ["next-plaid/openblas"]

[target.'cfg(windows)'.dependencies]
zip = "2"

[target.'cfg(unix)'.dependencies]
# Process re-exec (for CUDA LD_LIBRARY_PATH setup on Linux)
exec = "0.3"
# Low-level syscalls for stderr suppression
libc = "0.2"
