# Python
__pycache__/
*.py[cod]
.venv/
*.egg-info/

# Env / secrets — NEVER commit
.env
.env.*
!.env.example

# Tooling caches
.mypy_cache/
.ruff_cache/
.pytest_cache/

# Node / frontend
node_modules/
# `npm pack` output — built on demand in CI, never committed.
*.tgz
dist/
# TanStack Router generated tree (rebuilt by the vite plugin)
frontend/src/routeTree.gen.ts
# OpenAPI-generated client (regenerated on predev/prebuild)
frontend/src/client/

# OS / editor
.DS_Store
.idea/
.vscode/

# Harvested org prompts — internal, never committed
ORG_PROMPTS.md

# Customer workload measurements — a client's call volumes and token counts, which
# are their commercial data rather than ours. `scripts/cost_summary` reads these;
# the format is documented in its docstring so a file can be rebuilt from a run.
backend/workloads/

# Prompt corpora live outside the repo (see benchmark/classifier/README.md)
ORG_PROMPTS*
benchmark/baseline_prompts.jsonl
benchmark/proposal_labels.json
benchmark/gateway/attempts.jsonl
benchmark/**/__pycache__/

# Trained weights and corpora: large, regenerable, and not the repo's job.
benchmark/classifier/corpus/
benchmark/classifier/checkpoints/
benchmark/classifier/runs/
benchmark/retired/five-band/prompts.jsonl
benchmark/retired/kaggle/runs/

# Local working artefacts: a hand-taken table dump and a generated report.
backups/
*-report.pdf
