# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
dist/
develop-eggs/
downloads/
eggs/
.eggs/
/lib/
/lib64/
# Allow lib/ inside sub-projects (e.g. sable_dev/lib)
!sable_dev/lib/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual Environment
venv/
.venv/
ENV/
env/

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

# Runtime Data (never commit)
.opensable/
*.jsonl

# Backup files
*.bak
*.bak_*
*.backup

# Node modules
node_modules/
whatsapp-bridge/node_modules/
whatsapp-bridge/tokens/
whatsapp-bridge/.wwebjs_auth/
whatsapp-bridge/.wwebjs_cache/
package-lock.json

# Mobile app build artifacts
/mobile
mobile/node_modules/
mobile/.expo/
mobile/android/
mobile/ios/
mobile/dist/

# Skills runtime data
opensable/skills/installed/
opensable/skills/created/
opensable/skills/marketplace/cache.json
/marketplace
# Marketplace server runtime data (secrets & DB)
marketplace/server/agent-*.json
marketplace/server/data/marketplace.db
marketplace/server/uploads/
marketplace/client/build/

# Environment & Secrets
.env
.env.local
.env.production
*.lock
gateway.lock

# Logs
*.log
logs/
.sable.pid

# Testing
.coverage
.pytest_cache/
htmlcov/

# OS
.DS_Store
Thumbs.db

# AI Models (can be gigabytes)
*.gguf
*.safetensors
*.onnx
*.pt
*.pth
*.h5
*.tflite
*.ckpt
*.pkl
*.pickle
*.bin
!requirements*.txt
models/
*.model

# Temp / Debug files
*.bak
*.backup
*_fix.txt
*_check.txt
discord_clean_check.txt
config/permissions.json

# Trading runtime data
trading_backtest_results/
*.trading.db
*.portfolio.db


# Dashboard (React app,  keep dist/ for gateway, ignore node_modules)
dashboard/node_modules/

# Website (built separately,  root-level only, not aggr subcomponents)
/website/

# MkDocs build output
site/
/data/benchmarks
mobile/app.json

# Desktop Electron app
desktop/node_modules/
desktop/dist/
desktop/dist-electron/
desktop/release/
desktop/out/
desktop/.env
.desktop.pid
# Agent runtime data,  NEVER commit (conversations, memory, state, vectordb, etc.)
agents/*/data
!agents/_template/data/
agents/nexus_erebus/
agents/btc-5min-scalper/
# All agent profile.env files contain credentials,  only EXAMPLE files go to repo
agents/*/profile.env
.sable-analyst.pid
.sable-nano.pid
.sable-nexus_erebus.pid
.sable-sable.pid
.dev-studio.pid
_reference_external_DO_NOT_SHIP/
/episodes

system_check.service
system_check.timer
/test-venv

# Private Zunvra skills 
opensable/skills/media/genelia_skill.py
opensable/core/tools/_schemas/genelia.py
q4_planning_meeting_materials.md
team_meeting_presentation.md
cognitive_state.md
technical_debt_inventory.md
technical_debt.html
.technical_debt_inventory.md

# Agent-generated files (prevent root clutter)
decision_tree
decision_tree.png
*.dot
dashboard/src/components/agent/BrainPanel.jsx

# Agent runtime state (auto-generated per module, never commit)
data/*
!data/calendar.json
epistemic_uncertainty_framework.md
epistemic_wary.png

# Agent autonomous write sandbox,  all LLM-generated files land here
data/agent_output/
/agents/nano/
/agents/nano-sweaters/
/agents/btc-5min-scalper/
tournament-operation-requirements.md
opensable/data/operation_diary.json
opensable/data/operation_dossier.json

# Zunvra enrollment secrets (each agent has its own)
**/zunvra_enrollment.json
**/zunvra_keys.json
opensable/skills/zunvra_intel/data/tracked_stories.json
opensable/skills/zunvra_intel/data/visited_cells.json

validation_framework.json
.depshield.json
installers/build/
installers/__pycache__/
# Keep installer binaries in dist,  force-add with git add -f

email_subject_lines_roi.py
email_subject_lines_roi.txt
