# ================================================================
# Python
# ================================================================
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
dist/
*.egg-info/
.eggs/
wheels/
develop-eggs/
downloads/
parts/
sdist/
var/
.venv/
venv/
env/
ENV/

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

# ================================================================
# Env / Secrets（.env.example 保留作为模板）
# ================================================================
.env
.env.*
.env.local
.env.*.local
!.env.example
*.key
*.pem
config/setting.local.json
config/user_settings.json
# 网易云账号会话（cookie）。这是长期有效的账号凭证，和 API key 同级。
config/netease_session.json

# ================================================================
# Logs & Debug Output
# ================================================================
*.log
logs/
output/
vllm_test*.log
.codex-*.pid

# ================================================================
# Databases（本地数据库文件）
# ================================================================
*.db
*.sqlite
*.sqlite3
chromaDB/
chroma_db/
milvus_data/
neo4j_data/

# ================================================================
# OS
# ================================================================
.DS_Store
Thumbs.db
desktop.ini

# ================================================================
# Temp / Cache / Test
# ================================================================
.cache
.cache/
*.tmp
*.temp
.pytest_cache/
.coverage
htmlcov/
.ipynb_checkpoints

# ================================================================
# Data & Artifacts（运行时生成的数据，不上传）
# ================================================================
# 运行时下载的音频/歌词/封面
data/download/
data/raw_audio/
data/online_audio/
data/embeddings/
data/kaggle/
data/mtg/
data/feedback/
data/memory/
data/teacher/
data/yt_dlp_manual/
data/knowledge_cache/

# JSON 数据文件（保留 music_database.json 作为种子数据）
data/**/*.json
!data/music_database.json

# V4 的这两个是接口定义(schema + 门禁配置)，不是数据；tests/unit 会读它们，
# 漏提交会让全新 clone 直接测试失败。按文件名逐个放行，不放行整个目录 ——
# 以后落到 data/sft/v4/ 的真实数据文件仍然要被上面那条规则挡住。
!data/sft/v4/MANIFEST.schema.json
!data/sft/v4/validator_config.json

# Pipeline 运行时产物
data/pipeline/ingest_progress.json
data/pipeline/gemini_prompts/gemini_result.json
data/pipeline/gemini_prompts/yt_dlp_url_probe_*.md
data/pipeline/mtg_metadata/*.tsv

# SFT 训练数据（大文件，通过其他渠道分发）
data/sft/*.jsonl
data/sft/reviews/
data/sft/*.json
data/sft/planner_sft_training/

# ================================================================
# Media（音频/模型权重）
# ================================================================
*.mp3
*.wav
*.flac
*.m4a
*.ogg
*.aac
*.pt
*.pth
*.ckpt
*.safetensors
*.bin

# ================================================================
# Web (Next.js)
# ================================================================
web/node_modules/
web/.next/
web/out/
web/build/
web/*.tsbuildinfo
web/next-env.d.ts
web/dark_mode_home.png

# ================================================================
# NeteaseCloudMusicApi（本地反向代理，不上传）
# ================================================================
NeteaseCloudMusicApi/

# ================================================================
# GraphZep Service
# ================================================================
# Node modules
graphzep_service/**/node_modules/

# TypeScript 编译产物（保留 .ts 源码即可）
graphzep_service/src/**/*.d.ts
graphzep_service/src/**/*.js
graphzep_service/src/**/*.js.map

# ================================================================
# Root-level stale files
# ================================================================
package-lock.json
!web/package-lock.json
diff_changes.txt

# ================================================================
# 大型安装包 / 二进制文件（防止误上传，已有教训 ⚠️）
# ================================================================
*.deb
*.run
*.rpm
*.msi
*.exe
*.iso
*.img

# 压缩包（通常几百MB级别）
*.zip
*.tar
*.tar.gz
*.tgz
*.tar.bz2
*.tar.xz
*.7z
*.gz
*.bz2

# 模型文件（AI/ML 大文件）
*.gguf
*.ggml
*.onnx
*.npy
*.npz
*.pkl
*.pickle
*.h5
*.hdf5
*.parquet

# ================================================================
# 私有文档（本地保留，不上传 GitHub）
# ================================================================
Technical_Report.md

# ================================================================
# 临时调试脚本（本地测试用，不上传）
# ================================================================
_*.py
_*.txt

# ================================================================
# 集成测试（依赖外部服务，不上传到 CI）
# ================================================================
tests/test_profile_synthesizer.py
tests/test_event_consistency.py

# 评测结果文件（运行时生成）
tests/eval/results/

diff.txt

# Phase 4: private full-text teacher episodes (never commit)
data/teacher/private/

# 从主项目移除但保留在本机的模块（音乐旅程等），不进仓库
legacy/
