# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# Virtual environments
venv/
ENV/
env/
.venv

# IDEs
.vscode/
.idea/
*.swp
*.swo
*~

# Testing
.pytest_cache/
.coverage
htmlcov/
.tox/

# World Model databases (don't commit project-specific data)
*.db
*.db-journal
*.db-wal
*.db-shm
# .claude/ is per-project install state (hooks copy, settings, world-model DB,
# project_id file). The canonical hook sources live in world_model_server/hooks/
# and the canonical settings template is generated by `world-model setup`.
.claude/

# Logs
*.log

# OS
.DS_Store
Thumbs.db

# Environment
.env
.env.local
*.env

# Node modules
node_modules/

# TypeScript build artifacts
hooks/dist/
*.tsbuildinfo

# Internal documentation (keep only public docs)
BUILD_SUMMARY.md
OPEN_SOURCE_READY.md
TEST_RESULTS.md
SOCIAL_MEDIA_THREADS.md
CREATE_RELEASE_GUIDE.md
GITHUB_RELEASE_v*.md

# API keys and secrets (never commit these!)
**/secrets.json
**/credentials.json
**/*_secret*.json
**/*_private*.json

# Release-time telemetry embedding (see scripts/embed_token.py).
# .env.release holds the release-only PAT and must never enter git.
# Note: world_model_server/_embedded_token.py IS committed as an empty stub
# (EMBEDDED_TOKEN = "") so the wheel always builds; scripts/embed_token.py
# overwrites it locally before a release build. Local modifications to that
# file are ignored at commit time.
.env.release
