# Python
__pycache__/
*.py[cod]
.venv/
.uv/
uv.lock.*
dist/
build/
# ...but `build/` above is a Python-packaging rule, and the docs site has a
# section at that name — `/build/` is the first lifecycle hub the MCP handshake
# links to, so the URL is load-bearing. Without this the whole directory is
# silently untracked: `git status` stays clean and the pages ship from nobody's
# checkout but yours.
!docs/src/content/docs/build/
*.egg-info/
.pytest_cache/
.ruff_cache/

# JS / TS
node_modules/
.pnpm-store/
*.tsbuildinfo
.astro/
# docs is a pnpm workspace member — the root lockfile is authoritative, and the
# deploy and CI install the docs from it, frozen. This transient lockfile is
# only written when someone installs docs standalone (--ignore-workspace); it
# must not be committed, or it can disagree with the root lockfile.
docs/pnpm-lock.yaml

# Generated protobuf stubs (regenerated via `make proto`)
proto/gen/

# Env / secrets
.env
.env.*
!.env.example

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

# The qween extension built against dev (demos/qween/extension, `pnpm build:dev`).
dist-dev/
