# Worktrees
.worktrees/
.superset/

# omx state
.omx/

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
.venv/
venv/
ENV/
.eggs/
*.egg-info/
dist/
!apps/buildai-openai-ingest/frontend/
!apps/buildai-openai-ingest/frontend/dist/
!apps/buildai-openai-ingest/frontend/dist/index.html
!apps/buildai-openai-ingest/frontend/dist/mac-mini.png
build/
.pytest_cache/
.mypy_cache/
.ruff_cache/
tmp/
test-results/
.certificates/

# Node
node_modules/
.next/
.expect/
out/
*.tsbuildinfo

# IDE
.idea/
.vscode/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Environment
.env
.env.*
!.env.example
!.env.local.example
.env.local
.env*.local
.env-archive/
.buildai/
.vercel

# Local tool state
.superpowers/
.grid-builder-work/

# EgoExo sync trial script spill (default output is under experiments/egoexo-pipeline/out/)
/*.sync_trial.json
/run_config.json
.entire/*
!.entire/
!.entire/settings.json
.codex/config.toml
.codex-bin/
.mcp.json
.playwright-mcp/
.hypothesis/
.dmux/
.ralph-status
buildai-workspace/
apps/buildai-sd-card-reader-android/

# Local DDS verification refresh artifacts. The reviewed dry-run manifest is
# tracked separately so tests and handoffs use one stable repair plan.
.codex/dds-gcs-inventory*.txt
.codex/dds-gcs-repair-dry-run.current.json
.codex/dds-gcs-repair-verify*.json
.codex/dds-*-smoke-current.png

# Generated artifacts
outputs/
logs/
reports/
scratchpad/
local-archive/
reference/
recording-cache/
/datasets/1m-hour-dataset/*
!/datasets/1m-hour-dataset/README.md
!/datasets/1m-hour-dataset/anonymized-remap-summary.json
!/datasets/1m-hour-dataset/clip_mapping.parquet
!/datasets/1m-hour-dataset/factory_mapping.csv
!/datasets/1m-hour-dataset/object_rename_mapping.parquet
!/datasets/1m-hour-dataset/worker_mapping.csv
/datasets/250k-hour-dataset/*
!/datasets/250k-hour-dataset/README.md
!/datasets/250k-hour-dataset/build/
!/datasets/250k-hour-dataset/build/**
/datasets/250k-hour-dataset/build/**/out/
/datasets/imu-on-head-frames-2026-04-25/*
!/datasets/imu-on-head-frames-2026-04-25/README.md
/datasets/dataset-*.json
/datasets/**/__pycache__/
/datasets/**/frames/
/datasets/**/*.jpg
/datasets/**/*.jpeg
/datasets/**/*.png
/datasets/**/*.mp4
/datasets/**/*.mov
/datasets/**/*.parquet
!/datasets/1m-hour-dataset/clip_mapping.parquet
!/datasets/1m-hour-dataset/object_rename_mapping.parquet
/datasets/**/manifest.csv
/datasets/**/scored_device_on_head_candidates.jsonl
/datasets/label-viz-clips/candidates/*.decisions.jsonl
.atlas-bootstrap/
scripts/output/
scripts/atlas/
scripts/dead_assets.json
scripts/dead_assets.ids.txt
scripts/figure_h264_1000h/
/apps/gigcamera/public/prototypes/
/apps/gigcamera/.local-prototypes/

# Terraform/Terragrunt local artifacts
**/.terragrunt-cache/
**/.terraform/
**/.terraform.lock.hcl
infra/**/plan*.txt
infra/**/apply*.txt

# Service account keys
*-sa-key.json
*-sa-key-*.json

# Large binaries
*.npy
*.apk
.tmp-*.yml

# TLS certs
*.ts.net.crt
*.ts.net.key
test-buildai-data/
.claude/worktrees/

# Generated multi-service app factory (local dev only)
_combined_factory.py
