[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "codex-lens"
version = "0.1.0"
description = "CodexLens multi-modal code analysis platform"
readme = "README.md"
requires-python = ">=3.10"
license = { text = "MIT" }
authors = [
    { name = "CodexLens contributors" }
]
dependencies = [
    "typer>=0.9",
    "rich>=13",
    "pydantic>=2.0",
    "tree-sitter>=0.20",
    "tree-sitter-python>=0.25",
    "tree-sitter-javascript>=0.25",
    "tree-sitter-typescript>=0.23",
    "pathspec>=0.11",
]

[project.optional-dependencies]
# Semantic search using fastembed (ONNX-based, lightweight ~200MB)
semantic = [
    "numpy>=1.24",
    "fastembed>=0.2",
    "hnswlib>=0.8.0",
]

# GPU acceleration for semantic search (NVIDIA CUDA)
# Install with: pip install codexlens[semantic-gpu]
semantic-gpu = [
    "numpy>=1.24",
    "fastembed>=0.2",
    "hnswlib>=0.8.0",
    "onnxruntime-gpu>=1.15.0",  # CUDA support
]

# GPU acceleration for Windows (DirectML - supports NVIDIA/AMD/Intel)
# Install with: pip install codexlens[semantic-directml]
semantic-directml = [
    "numpy>=1.24",
    "fastembed>=0.2",
    "hnswlib>=0.8.0",
    "onnxruntime-directml>=1.15.0",  # DirectML support
]

# Encoding detection for non-UTF8 files
encoding = [
    "chardet>=5.0",
]

# Full features including tiktoken for accurate token counting
full = [
    "tiktoken>=0.5.0",
]

[project.urls]
Homepage = "https://github.com/openai/codex-lens"

[tool.setuptools]
package-dir = { "" = "src" }
