# .gitattributes - Normalize line endings across platforms
# This file ensures LF line endings in the repository regardless of developer OS

# Auto-detect files, normalize to LF in repository
* text=auto eol=lf

# Explicitly mark text files (these should use LF)
# ============================================================================

# Source code
*.py text eol=lf
*.ts text eol=lf
*.tsx text eol=lf
*.js text eol=lf
*.jsx text eol=lf
*.json text eol=lf
*.toml text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
*.md text eol=lf
*.txt text eol=lf

# Shell scripts and configuration
*.sh text eol=lf
*.bash text eol=lf
.gitignore text eol=lf
.gitattributes text eol=lf
.editorconfig text eol=lf
Makefile text eol=lf
Dockerfile text eol=lf
.env.example text eol=lf

# CSS and styling
*.css text eol=lf
*.scss text eol=lf
*.less text eol=lf

# Web assets (text-based)
*.html text eol=lf

# Git and version control
.git* text eol=lf

# Lock files and dependency manifests
package.json text eol=lf
package-lock.json text eol=lf
bun.lockb binary
uv.lock text eol=lf
pyproject.toml text eol=lf
poetry.lock text eol=lf

# Explicitly mark binary files (these should NOT be normalized)
# ============================================================================

# Images and media
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.webp binary
*.svg binary
*.eot binary
*.ttf binary
*.woff binary
*.woff2 binary

# Compiled/archived files
*.pyc binary
*.pyo binary
*.egg-info binary
*.egg binary
*.whl binary
*.tar binary
*.tar.gz binary
*.zip binary
*.7z binary
*.rar binary
*.exe binary
*.dll binary
*.so binary
*.o binary

# Build outputs
*.map binary
*.min.js binary
*.min.css binary

# Database and data files
*.db binary
*.sqlite binary
*.sqlite3 binary
*.rdb binary

# Documents
*.pdf binary
*.docx binary
*.xlsx binary
*.pptx binary

# Use bd merge for beads JSONL files
.beads/issues.jsonl merge=beads
