# --- Python ---
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
dist/
*.egg-info/
*.egg
.eggs/
wheels/

# --- Entornos virtuales ---
.venv/
venv/
env/
ENV/

# --- Configuracion local de cargo ---
# `target-dir` es una ruta absoluta a una carpeta FUERA de OneDrive (ver
# .cargo/config.toml). Es local por diseno y no debe subirse a Git.
.cargo/

# --- Herramientas de verificación local ---
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/
.benchmarks/
.hypothesis/

# --- Herramientas de compilación (Rust) ---
# El protoc vendorizado se descarga a un directorio de build cacheado, nunca al repo.
*.orig
*.rej

# --- Plano de control (Rust) ---
# `target/` es todo lo que produce cargo: compilación, incrementales y perfiles.
target/
# Cargo.lock SE VERSIONA: `hecate-node` es un binario, y el lock es lo que garantiza
# una resolución de dependencias reproducible entre máquinas.

# --- Artefactos HECATE ---
# Checkpoints NCM, vocabularios VQ-VAE y datasets de benchmark NO se versionan
# con el código: se publican como artefactos de cada release.
*.ncm
*.ncm.json
*.vqvae
*.pt
*.pth
*.safetensors
*.gguf
*.bin
# Artefactos del experimento de subpalabras (prompt 44). Son derivados y se reconstruyen con
# `scripts/train-ncm-tokenizer.py` y `scripts/train-ncm-head-v2.py`; el vocabulario es un
# «vocabulario», que esta misma seccion ya declara no versionable. Las cifras que producen si
# se versionan, en `docs/benchmarks/`. Anclado a la raiz para no excluir `python/hecate/data/`
# si algun dia existe, que seria codigo y no un artefacto.
/data/
benchmarks/results/
bench_mock.json
bench_*.txt
# Ancladas a la raíz a propósito. Como `runtime/` sin anclar, la regla casaba con
# CUALQUIER directorio llamado así en cualquier nivel, incluido
# `python/hecate/runtime/`, que es código fuente: el paquete existía en disco y
# estaba excluido del repo, así que un checkout limpio no lo tenía y el test que
# lo importa no podía ni recolectarse. El fallo se veía en `verify.sh` paso 5
# como `ModuleNotFoundError: No module named 'hecate.runtime'`.
/runtime/
/logs/
*.log

# --- Cachés de herramientas ---
node_modules/

# --- Sistema operativo / editor ---
.DS_Store
Thumbs.db
desktop.ini
.idea/
.vscode/
*.swp
*~

# --- Secretos ---
.env
.env.*
!.env.example
*.pem
*.key

# --- Archivo de historia y material de rescate ---
# Los bundles de `git bundle` guardan la historia ANTERIOR a las reescrituras
# (rebase, linearizacion, split del sitio). GitHub ya solo tiene la historia
# reescrita, asi que estos ficheros son la unica copia que queda de la anterior.
# Viven dentro del repositorio para que OneDrive los respalde junto con el codigo:
# fuera de el eran una tercera ubicacion que nadie sincronizaba.
# No se versionan porque ya contienen historia de git, no codigo del proyecto.
.archive/
