# Exclude heavy agent implementations but keep essential files
ai_platform_engineering/agents/*/agent_*/**
!ai_platform_engineering/agents/*/agent_*/agentcard.py
!ai_platform_engineering/agents/*/agent_*/__init__.py
!ai_platform_engineering/agents/*/agent_*/__main__.py
!ai_platform_engineering/agents/*/agent_*/agent.py
!ai_platform_engineering/agents/*/agent_*/agent_langgraph.py
!ai_platform_engineering/agents/*/agent_*/agent_strands.py
!ai_platform_engineering/agents/*/agent_*/tools.py
!ai_platform_engineering/agents/*/agent_*/vault_utils.py
!ai_platform_engineering/agents/*/agent_*/models.py
!ai_platform_engineering/agents/*/agent_*/state.py
!ai_platform_engineering/agents/*/agent_*/protocol_bindings/**

# Exclude special client directories for weather/webex (they use different structure)
ai_platform_engineering/agents/weather/agntcy_agent_client/**
!ai_platform_engineering/agents/weather/agntcy_agent_client/agentcard.py
!ai_platform_engineering/agents/weather/agntcy_agent_client/__init__.py
!ai_platform_engineering/agents/weather/agntcy_agent_client/__main__.py
!ai_platform_engineering/agents/weather/agntcy_agent_client/agent.py
ai_platform_engineering/agents/webex/a2a_agent_client/**
!ai_platform_engineering/agents/webex/a2a_agent_client/agentcard.py
!ai_platform_engineering/agents/webex/a2a_agent_client/__init__.py
!ai_platform_engineering/agents/webex/a2a_agent_client/__main__.py
!ai_platform_engineering/agents/webex/a2a_agent_client/agent.py

# Exclude heavy directories
# Allow MCP directories for workspace members
# ai_platform_engineering/agents/*/mcp/**
ai_platform_engineering/agents/*/build/**
ai_platform_engineering/agents/*/tests/**
ai_platform_engineering/agents/*/evals/**
ai_platform_engineering/agents/*/langgraph.json
ai_platform_engineering/agents/*/README.md
ai_platform_engineering/agents/*/CHANGELOG.md
ai_platform_engineering/agents/*/CODE_OF_CONDUCT.md
ai_platform_engineering/agents/*/MAINTAINERS.md
ai_platform_engineering/agents/*/Makefile

# Exclude main agent implementation files but keep __init__.py
ai_platform_engineering/agents/*/main.py
# NOTE: Don't exclude agent_*/__main__.py - it's needed for python -m execution
# ai_platform_engineering/agents/*/__main__.py

# Exclude other heavy directories
ai_platform_engineering/evaluation/**
ai_platform_engineering/cli/**

# This line ensures that all files under ai_platform_engineering/knowledge_bases/rag/clients/ are NOT ignored by Docker.
# In other words, it includes the entire rag/clients directory (and all its subdirectories/files) in the Docker build context,
# even if a previous ignore pattern would have excluded it.
!ai_platform_engineering/knowledge_bases/*

volumes/**
docker-compose/volumes/**
docs/**
workshop/**

# Python virtual environment - exclude ALL venv directories
.venv/
venv/
env/
**/.venv/
**/venv/
**/env/

# Python cache files
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
# Allow build directory files needed for Docker builds
!build/Dockerfile*
!build/*.sh
!build/skill-scanner-patches/
!build/skill-scanner-patches/**
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Testing
.pytest_cache/
.coverage
htmlcov/
.tox/
.nox/
coverage.xml
*.cover
*.py,cover
.hypothesis/

# Linting and formatting
.ruff_cache/
.flake8
.pylintrc

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

# OS
.DS_Store
Thumbs.db

# Git
.git/
.gitignore

# Documentation
docs/_build/

# Logs
*.log

# Environment variables
.env
.env.local
.env.*.local
