# Python
__pycache__/
*.py[cod]
*.egg-info/
*.egg
.Python

# Virtual envs
.venv/
.venv*/
venv/
env/

# Build artifacts
build/
dist/

# Staged implicant-fhe wheels (downloaded via `gh release download`, not
# committed; PIP_FIND_LINKS=./wheels)
wheels/

# Test / tooling caches
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
coverage.xml

# Editor / OS
.idea/
.vscode/
*.swp
*.swo
.DS_Store

# Local key material — never commit secret keys
.implicant-demo/

# Local agent context — keep out of version control
CLAUDE.local.md
.claude/settings.local.json

# Build logs
logs/

# Demo handoff bundle (large public-key blobs sent to platform; not committed).
# The .zip needs its own rule: the directory pattern above does not match it, so
# it stayed untracked-but-committable (460 MB) and hatchling swept it into the
# sdist (489 MB, past PyPI's 100 MB limit) until it was excluded explicitly.
/demo_handoff/
/demo_handoff.zip
tests/js/fixtures/**/*.bin
tests/js/fixtures/**/crypto.json
