# =============================================================================
# SpecMem - Cognitive Memory Layer for AI Coding Agents
# Comprehensive .gitignore for Python OSS Project
# =============================================================================

# =============================================================================
# Python
# =============================================================================

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
.benchmarks/

# Translations
*.mo
*.pot

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
Pipfile.lock

# poetry
poetry.lock

# pdm
.pdm.toml
.pdm-python
.pdm-build/

# PEP 582
__pypackages__/

# Celery
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.env.local
.env.*.local
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# Ruff
.ruff_cache/

# =============================================================================
# SpecMem Specific
# =============================================================================

# SpecMem data directory (contains user-specific data)
.specmem/

# Vector database files
*.lance/
*.lancedb/
lancedb/
chroma/
qdrant_data/

# Embedding cache
embeddings_cache/
*.embeddings

# Agent Experience Packs (generated output)
agent_memory.json
agent_context.md
knowledge_index.json

# Configuration with secrets
.specmem.local.toml
.specmem.secrets.toml
secrets.toml

# =============================================================================
# IDE / Editors
# =============================================================================

# VSCode
.vscode/
!.vscode/settings.json.example
!.vscode/launch.json.example
!.vscode/extensions.json
*.code-workspace

# JetBrains IDEs
.idea/
*.iml
*.ipr
*.iws
out/

# Sublime Text
*.sublime-project
*.sublime-workspace

# Vim
*.swp
*.swo
*.swn
*~
.vim/

# Emacs
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*

# Atom
.atom/

# =============================================================================
# Operating System
# =============================================================================

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

# Windows
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
*.stackdump
[Dd]esktop.ini
$RECYCLE.BIN/
*.cab
*.msi
*.msix
*.msm
*.msp
*.lnk

# Linux
*~
.fuse_hidden*
.directory
.Trash-*
.nfs*

# =============================================================================
# Node.js (for frontend UI)
# =============================================================================

node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-store/

# Build outputs
specmem/ui/frontend/dist/
specmem/ui/frontend/build/
specmem/ui/frontend/.next/
specmem/ui/frontend/out/

# TypeScript
*.tsbuildinfo

# =============================================================================
# Logs and Databases
# =============================================================================

*.log
*.sql
*.sqlite
*.sqlite3
*.db

# =============================================================================
# Secrets and Credentials
# =============================================================================

# API keys and secrets
*.pem
*.key
*.crt
*.p12
.env
.env.*
!.env.example
secrets/
credentials/

# AWS
.aws/

# Google Cloud
*.json
!package.json
!tsconfig.json
!.vscode/*.json

# =============================================================================
# Temporary Files
# =============================================================================

tmp/
temp/
*.tmp
*.temp
*.bak
*.backup
*.old

# =============================================================================
# Kiro (keep specs, ignore generated)
# =============================================================================

# Keep Kiro specs (don't ignore .kiro/)
# But ignore any generated files within
.kiro/cache/
.kiro/tmp/
