Source files
│
▼
[Chunker] ── tree-sitter AST → semantic chunks (functions, classes)
│ fallback: sliding-window for unsupported file types
│
▼
[Embedder] ── fastembed ONNX (default) or sentence-transformers (torch)
│ all-MiniLM-L6-v2-code-search-512 (384-dim)
│
▼
[Store] ── LanceDB vector store (~/.vecgrep/<project_hash>/index.db)
│ IVF-PQ ANN index for sub-linear search
│ file_stats table for O(files) change detection
│
▼
[Server] ── MCP server exposing index_codebase, search_code, get_index_status