# Dependencies
node_modules/
.venv/
__pycache__/
*.py[cod]

# Build outputs
dist/
.next/
out/
build/
*.tsbuildinfo
.source/
.turbo/
.vercel/
.workflow-data/
.playground/
# apps/web/scripts/embed-bundle.ts copies the built @repo/embed here at build time
apps/web/public/v1/

# Python tooling caches
.pytest_cache/
.mypy_cache/
.ruff_cache/
*.egg-info/

# Test artifacts
coverage/
playwright-report/
test-results/
.drift-tmp/

# Env - only *.example files are committed
.env
.env.*
!.env.local.example
!.env.local.test.example

# Editor / OS noise
.DS_Store
Thumbs.db
.idea/
*.swp

# credentials for the heinimex catalog experiment
notes/experiments/heinimex-catalog/.gdrive-key.json

# Next.js writes this file itself and rewrites it on every mode switch: `next build`
# points it at .next/types/routes.d.ts, `next dev` at .next/dev/types/routes.d.ts. Tracking
# it means a permanent phantom diff that flips whenever you run the other command. Every
# Next app here runs `next typegen` before `tsc` (see each package.json), and Vercel's build
# regenerates it too, so nothing ever reads a copy that git would have supplied.
next-env.d.ts

# Agent worktrees (Claude Code); never tracked, never committed - the directories are
# throwaway checkouts and their node_modules.
.claude/worktrees/
