# OS
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Thumbs.db
ehthumbs.db
Desktop.ini

# Environment / secrets
.env
.env.*
!.env.example
.envrc

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
dist/
*.egg-info/
*.egg
.eggs/
wheels/
*.whl
pip-wheel-metadata/

# Virtual environments
.venv/
venv/
env/
ENV/

# Test / coverage
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
.coverage.*
htmlcov/
coverage.xml
.tox/
.nox/
.hypothesis/

# IDE / editors
.vscode/
.idea/
*.swp
*.swo
*~
.project
.pydevproject

# uv
.uv/

# Local agent runtime artifacts
agent_root/
.e2e_root/
.cos_e2e_root/
.init_demo_root/
.skills_tour_root/
sessions/
*.sqlite
*.sqlite-journal
*.sqlite-wal
*.sqlite-shm
*.db
*.db-wal
*.db-shm

# Per-project harness-agent runtime (contains secrets, DB, JSONL logs).
# NOTE: to make !exceptions work, the parent dir must NOT be blanket-ignored.
# So we ignore individual sensitive files inside .harness-agent/ instead of
# ignoring the whole directory.
.harness-agent/config.json
.harness-agent/credentials.json
.harness-agent/*.sqlite
.harness-agent/*.sqlite-*
.harness-agent/*.db
.harness-agent/*.db-*
.harness-agent/sessions/
.harness-agent/logs/
.harness-agent/jsonl/

# Logs
*.log
logs/
