# Dependencies
node_modules/
__pycache__/
*.pyc
*.pyo
.venv/
venv/
*.egg-info/

# Environment
.env
.env.local
.env.*.local

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

# OS
.DS_Store
Thumbs.db

# Build
.next/
out/
dist/
build/
*.egg

# GitHub Action dist must be committed so the action works without a build step
!sdks/github-action/dist/

# Docker
.docker/

# Testing
.coverage
htmlcov/
.pytest_cache/

# Caches
.cache/
.semantic_modulator_data/

# Vercel
.vercel/

# Duplicate SDK copies under apps/web (canonical SDK lives at root sdks/)
apps/web/sdks/

# Fly.io
fly.toml.bak

.vercel
.env*.local

# Local dev fixtures for self-hosted license docker tests (see run_docker_tests*.ps1).
# keys.json holds an Ed25519 PRIVATE KEY + signed test-only JWTs; never commit it.
# A separate production public key at api/app/self_hosted/public_key.pem remains tracked,
# so the rules below are path-anchored at repo root to avoid a blanket *.pem match.
/keys.json
/public_key_test.pem
/generate_keys.py
/run_docker_tests.ps1
/run_docker_tests_fixed.ps1

# Claude Code agent state
.claude/worktrees/
.claude/scheduled_tasks.lock
.claude/scheduled_tasks*.json

# Large index files
.tg_index

# Process logs
api_out.txt
api_err.txt
