# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
/build/
/dist/
*.egg-info/
.eggs/

# Virtual environments
.venv/
venv/
env/

# Testing & coverage
.pytest_cache/
.coverage
.coverage.*
htmlcov/
coverage.xml
.hypothesis/

# Editors / OS
.DS_Store
.idea/
.vscode/
*.swp

# Secrets / env
.env
.env.local
*.pem

# Demo + run artifacts (regenerated by examples/demo_end_to_end.py)
/reports/
/datasets/
/eval-results.xml

# Claude (local settings stay ignored; versioned skills are tracked)
.claude/*
!.claude/skills/

# Console frontend (built assets ship in wheel, not committed)
console/node_modules/
sengol/console_static/
console/*.tsbuildinfo

# Terraform runtime artifacts — never commit (plans embed variable values)
terraform/aws/.terraform/
terraform/aws/.terraform.tfstate.lock.info
terraform/aws/*.tfstate
terraform/aws/*.tfstate.*
terraform/aws/tfplan*
# Generated by the internal Terraform pipeline (never committed — keeps the
# customer-facing terraform/aws free of sengol-internal backend config).
terraform/aws/backend_override.tf
terraform/internal/bootstrap/.terraform/
terraform/internal/bootstrap/*.tfstate
terraform/internal/bootstrap/*.tfstate.*
terraform/internal/bootstrap/.terraform.tfstate.lock.info
.sengol/
