# --- Rust ---
/target
target/
**/*.rs.bk
Cargo.lock.bak
*.pdb

# --- Python (PyO3 builds, evals, harnesses) ---
__pycache__/
*.py[cod]
*$py.class
*.so
.venv/
venv/
.python-version
.pytest_cache/
.ruff_cache/
.mypy_cache/
uv.lock
.tox/
htmlcov/
.coverage
*.egg-info/
build/
dist/
wheels/

# --- Node / TypeScript (NAPI bindings) ---
node_modules/
.pnp
.pnp.js
*.tsbuildinfo
.next/
.turbo/
.npm/
.yarn/
dist-ts/
*.node

# --- Editors / OS ---
.vscode/
.idea/
*.swp
*.swo
.DS_Store
Thumbs.db

# --- Tooling caches ---
.serena/
.ruff_cache/
.cargo/
.rustup/
# .claude/ is local tooling (settings.local.json, worktrees/, the
# plugin-materialized `add` skill) EXCEPT the project-authored `/dream`
# skill (engram-soul-loop task 9), which is a real shipped deliverable and
# must be committed with the branch, not left as a local-only artifact.
.claude/*
!.claude/skills/
.claude/skills/*
!.claude/skills/dream/

# --- Local env / secrets ---
.env
.env.local
.env.*.local
secrets/
credentials.json
# Provider API keys. The LME harness reads its key from MINIMAX_API_KEY or
# from LUNARIS_BENCH_KEY_FILE (a path outside the repo); this is the backstop
# for the habit of dropping a `*.key` next to the runner. No tracked file has
# ever used this extension.
*.key

# --- Eval artefacts (large corpora, downloaded models) ---
evals/data/
evals/results/
models/
*.gguf
*.safetensors
*.onnx

# --- LongMemEval harness output (scripts/bench/lme) ---
# The runners default LME_RESULTS_DIR to target/lme, already covered by
# `/target` above. These rules make the harness directory itself un-dirtyable
# if an operator repoints LME_RESULTS_DIR at it: the SCRIPTS are tracked, the
# run artifacts, caches and Moon scratch dirs never are. The LongMemEval
# dataset is external and is never committed either (it downloads into
# LUNARIS_EVAL_CACHE_DIR, default ~/.cache/lunaris/eval-hub).
scripts/bench/lme/**/q*.json
scripts/bench/lme/**/*.log
scripts/bench/lme/**/config.fp
scripts/bench/lme/**/config.env
scripts/bench/lme/**/extract-cache/
scripts/bench/lme/**/graphon/
scripts/bench/lme/**/graphoff/
scripts/bench/lme/**/fill/
scripts/bench/lme/**/moon*/

# --- Local Postgres / Moon dev state ---
pgdata/
moon-data/
*.wal
*.snapshot
tmp/
# Moon writes these into its --dir cwd; if a bench is run with `--dir .`
# accidentally they end up in the repo root. Always-ignore so they don't
# get staged or committed.
appendonlydir/
shard-*/
replication.state
*.aof
*.rdb

# --- Live measurement scratch reports ---
LIVE-MEASUREMENT-REPORT.md
milestones/v0.1.1-bench/cache/

# mdBook build output
/docs/book/book/

# embedded-moon data dir (--features embedded-moon)
# Matches the dir written by the production binary (repo root) AND by
# cargo tests with --features embedded-moon (CWD = crates/lunaris-mcp/).
# No leading slash — intentional, matches at any directory depth.
.lunaris-moon/
