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

# Virtual envs / uv
.venv/
.uv/
# A second env is normal on Windows when `.venv` was created from WSL: that one has a Linux layout
# (`bin/`, `lib64/`) and its interpreter cannot run on the host, so building the desktop sidecar
# needs a native one alongside it.
.venv-win/
# uv.lock IS tracked: Chimera is an application, so a committed lock is what makes a CI run
# reproducible. Without it every job re-resolved from PyPI, and an upstream release could turn the
# whole matrix red with no change of ours (litellm 1.92 did exactly that).

# Env / secrets
.env
.env.local
.env.bak*
.env.*.bak
*.key

# Caches
.pytest_cache/
.mypy_cache/
.ruff_cache/
.cache/

# mutmut's generated mutant tree (a full copy of the package with every mutant inlined). Rebuilt by
# `mutmut run`; committing it would add tens of thousands of machine-written lines to the repo.
mutants/

# Chimera runtime data (state lives outside the LLM context)
.chimera/
data/
*.sqlite
*.sqlite3
*.db

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

# mkdocs build output
site/

# Local benchmark run outputs (harness + tasks are tracked; per-run results are not)
bench/local_lift/results/
bench/llm_benchmarks/results/
bench/llm_benchmarks/data/   # downloaded HumanEval/GSM8K (their own licences; fetched on demand)

# role_routing: same rule, but two files inside are evidence rather than output — the cost ledger a
# claim gets cited from, and the slice that says which instances were run. Written as `results/*`
# and not `results/`, because git cannot re-include a file whose parent DIRECTORY is excluded.
# What stays out: runs.jsonl (carries the full SWE-bench task text and generated diffs), telemetry
# and per-arm predictions — all reproducible, and large.
bench/role_routing/results/*
!bench/role_routing/results/pilot_cost.json
!bench/role_routing/results/slice_pilot.jsonl

# Terminal-Bench official runner: local venv, built wheel, run outputs (tracked: scripts only)
bench/terminal_bench/.venv/
bench/terminal_bench/dist/
bench/terminal_bench/results/

# Tauri desktop shell: build outputs (tracked: src-tauri config/Rust/sidecar recipe only)
apps/desktop/src-tauri/target/
apps/desktop/src-tauri/gen/
apps/desktop/src-tauri/sidecar-dist/
apps/desktop/src-tauri/sidecar-build/
