# Mirror of .gitignore plus extra paths the bundle never needs.
# The .mcpb only needs the manifest + a thin set of metadata; the actual
# server code is fetched via `uvx ph-civic-data-mcp` at install time.

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

# Virtual envs and tool caches
.venv/
venv/
.pytest_cache/
.ruff_cache/
.mypy_cache/
.tox/
.coverage
htmlcov/

# IDE / editor / OS
.vscode/
.idea/
*.swp
*.swo
.DS_Store
Thumbs.db

# Secrets. .gitignore has these; a bundle is a published artifact, so an
# untracked .env or key in a working tree must never reach one.
.env
.env.*
*.key
*.pem
*.p12
.pypirc
.netrc

# Local-only audit / scratch (must never leak into a public artifact)
tmp/
.claude/
.git/
.github/

# Other bundles in the repo (don't recurse a .mcpb into a .mcpb)
*.mcpb

# Lockfile / dev metadata not needed at runtime
uv.lock
uv.lock.backup
.python-version

# Demo recordings and their sources. GitHub already serves these through the
# README, and a bundle has no runtime use for them. Excluding the GIFs also
# keeps an untracked working-tree recording out of a published artifact.
docs/*.tape
docs/*.gif
docs/live_demo*.py
docs/live_probe*.py
docs/record_all.sh

# Docs that only matter in the repository
docs/archive/
docs/latent-bugs.md
docs/SUBMISSIONS.md
