/bin/
/e2a
*.exe
.env
.DS_Store
config.local.yaml
/config.yaml
client_secret_*.json
/node_modules/

# Stray Next.js build output if run from repo root instead of web/
/.next/
/out/

# Web app
web/node_modules/
web/.next/
web/out/
web/.env.local

# CLI
cli/node_modules/
cli/dist/

# TypeScript SDK
sdks/typescript/node_modules/
sdks/typescript/dist/
sdks/typescript/.oag-openapi.yaml

# Python SDK
sdks/python/.venv/
sdks/python/.venv-codegen/
sdks/python/__pycache__/
sdks/python/src/*.egg-info/
sdks/python/dist/
sdks/python/.pytest_cache/
sdks/python/.oag-openapi.yaml
sdks/python/.oag-tmp/
*.pyc
.gstack/
.claude/

# Docs
docs/originals/

# Go coverage profile (make cover)
cover.out

# Vitest coverage output (npm run test:coverage)
cli/coverage/
sdks/typescript/coverage/
mcp/coverage/

# pytest-cov data files (python -m pytest --cov): SQLite databases that
# embed absolute local worktree paths, so they must never be committed.
sdks/python/.coverage*

# TS SDK ergonomic-surface coverage-gate shards (npm run test:live --workspace @e2a/sdk)
sdks/typescript/test/coverage/reports/

# CLI command-coverage gate shards (npm run test:e2e:coverage --workspace @e2a/cli)
cli/test/reports/

# Isolated feature worktrees.
.worktrees/
