# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
.venv/
venv/
env/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
dist/
build/
*.egg-info/

# Node
node_modules/
.next/
out/
.vercel/
*.tsbuildinfo

# Env
.env
.env.local
.env.*.local
!.env.example

# Data / Artifacts
data/
*.db
*.db-journal

# Eval per-run sidecars (large, session-specific; reference uncommitted screenshots).
# The committed eval/report.json baselines stay; the per-job JSON does not.
task1_browser_agent/eval/jobs/
task2_10k_extractor/eval/jobs/
# labels.json (training data) stays ignored; platt_params.json (the tiny
# trained calibration model) is COMMITTED so the deployed backend calibrates
# the same way as local — otherwise prod runs uncalibrated and quarantines
# clean filings (e.g. AAPL fell below the 0.45 threshold). See ADR-007.
task1_browser_agent/eval/labels.json
task2_10k_extractor/eval/labels.json

# Playwright
test-results/
playwright-report/
playwright/.cache/

# IDE
.vscode/
.idea/
*.swp
.DS_Store

# Logs
*.log
logs/
