# =============================================================================
# PICO .gitignore
# =============================================================================

# --- Python ---
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
env/
venv/
.venv/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
.pytest_cache/
.ruff_cache/
.mypy_cache/
coverage.xml
.coverage
htmlcov/

# --- Package managers ---
.uv/
.pdm-python
# Lock files are intentionally NOT ignored so CI reproduces exact deps.
# If you want to ignore: uncomment below.
# uv.lock
# pdm.lock

# --- Environment / secrets ---
.env
.env.*
!.env.example
.python-version
# WireGuard / VPN keys generated at runtime — never commit
infra/vpn/wg*.conf
infra/vpn/private.key
infra/vpn/public.key
*.pem
*.key
# GitLab runner registration token
infra/runner/.runner-token

# --- Operating System ---
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
[Dd]esktop.ini

# --- Editor / IDE ---
.idea/
.vscode/
*.code-workspace
*.swp
*.swo
*~
*.iml
*.project
*.classpath
*.settings/

# --- Node / frontend ---
**/node_modules/
*.tsbuildinfo

# --- ROS 2 build artifacts ---
# colcon build/install/log directories in any workspace
**/ros2_ws/build/
**/ros2_ws/install/
**/ros2_ws/log/
# Root-level colcon artifacts (produced when running colcon from the repo root)
/build/
/install/
/log/
COLCON_IGNORE
ament_cmake_core/
ament_pcl_core/
ament_build_type/

# --- MuJoCo ---
MUJOCO_LOG.TXT
*.mjb       # compiled binary model cache

# --- RL / Training artifacts ---
training/logs/
training/runs/
training/checkpoints/
wandb/
*.pt
*.pth
*.ckpt
*.h5
# Exception: committed policy models co-located with robot task packages
!**/resource/models/**/*.pt
!**/resource/models/**/*.pth
!**/pico_tasks_*/config/**/*.pt
!**/pico_tasks_*/config/**/*.pth
!**/pico_tasks_*/config/**/*.onnx
# Generated ONNX models (do NOT ignore source ONNX in robot/*/mjcf)
deploy/policy.onnx
# Large binary datasets / recordings
data/recordings/
data/datasets/

# --- Docker runtime ---
deploy/docker/logs/

# --- Logs & runtime files ---
*.log
*.pid
logs/

# --- Copilot session state (local only) ---
.copilot/

# Docker build context (generated by prepare_context.sh)
deploy/integration_ws/

# --- Tools build artifacts ---
# setuptools/wheel build directories under tools/
tools/*/build/
dist/tools/
