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

# Build output — never committed (`uv build` writes here; CI builds fresh)
dist/
build/

# Virtual environments
.venv/
venv/

# Local state, databases, generated artifacts
*.sqlite
*.sqlite3
artifacts/

# Secrets & local env
.env
.env.*
!.env.example

# Captured hook events — may contain secrets/PII, never commit
.etchplan/
hook_events*.jsonl

# Heavy / raw benchmark data — never commit (only compact examples are tracked)
examples/benchmark_reports/raw/
examples/benchmark_reports/heavy/
examples/benchmark_reports/downloads/

# Modal benchmark harness — runnable research scaffolding copied from agent-compiler,
# intentionally kept OUT of the clean product carve-out. Run with:
#   uv run --with modal modal run modal/benchmark_jobs.py::<entrypoint>
/modal/
modal-results/
.modal/
# Benchmark-only eval/compiler modules the Modal harness imports (not part of the product).
packages/etchplan-evals/etchplan_evals/benchmark_workflows.py
packages/etchplan-evals/etchplan_evals/semantic_labels.py
packages/etchplan-evals/etchplan_evals/semantic_mining.py
packages/etchplan-evals/etchplan_evals/appworld_safety.py
packages/etchplan-evals/etchplan_evals/native_validation.py
packages/etchplan-evals/etchplan_evals/tau_tool_recovery.py
packages/etchplan-evals/etchplan_evals/mind2web_metrics.py
packages/etchplan-evals/etchplan_evals/workarena_summary.py
packages/etchplan-compiler/etchplan_compiler/benchmark_planner.py

# macOS
.DS_Store
