# Python
__pycache__/
*.pyc
*.egg-info/
dist/
build/
.pytest_cache/
.ruff_cache/
venv/
.venv/
.env

# C++ / CMake
out/
build_*/
cmake-build-*/
CMakeFiles/
CMakeCache.txt
cmake_install.cmake
*.o
*.obj
*.exe
*.dll
*.so
*.pyd

# Vendored/fetched deps (populated by CMake FetchContent). Actual git
# submodules (e.g. third_party/llama.cpp, added Phase 1) are intentionally
# NOT covered by this rule - a submodule is just a gitlink, not full content.
# third_party/patches/ holds tracked, reviewable patches for those submodules
# (see docs/DEVELOPMENT.md) and must stay un-ignored too.
third_party/*/
!third_party/.gitkeep
!third_party/llama.cpp/
!third_party/patches/

# Downloaded model fixtures (see models/README.md for how to fetch them) -
# these are test data, not source, and stories260K.gguf alone is >1MB.
models/*.gguf

# Exported OpenVINO IR text-to-image model (Phase 4 image-generation
# extension, see models/README.md's "sd-turbo-ov/" section) - an
# `optimum-cli export openvino` output directory, ~1-2GB of fp16 IR
# weights, the image-generation analog of the .gguf rule above.
models/sd-turbo-ov/

# Editor/OS
.vscode/
.idea/
.DS_Store
Thumbs.db

# Scratch benchmark output (committed baselines live under benchmarks/runs/baseline_*.json)
benchmarks/runs/*.json
!benchmarks/runs/baseline_*.json
# Phase 4 image-generation extension's committed results (see
# docs/benchmarks/image_generation.md) - the image-gen analog of
# baseline_*.json above, just not named "baseline_" since there's no
# separate non-baseline image-gen run to distinguish it from.
!benchmarks/runs/image_gen_*.json
# Phase 5, commit 5's embedding_bench.exe results (see
# docs/tier2_spike_log.md / docs/tier2_results.md) - two independent runs
# (80 and 160 requests) committed for reproducibility/consistency evidence.
!benchmarks/runs/embedding_tier2_bench*.json
