# Python
__pycache__/
*.py[cod]
*$py.class
*.so
*.egg
*.egg-info/
.eggs/
build/
dist/

# Virtual environments
.venv/
venv/
env/

# Test, lint and type-check caches
.pytest_cache/
.ruff_cache/
.mypy_cache/
.benchmarks/
.deepeval/
.coverage
.coverage.*
coverage.xml
coverage/
htmlcov/

# Node
node_modules/
.next/
*.log

# Environment files. Real credentials never belong in the tree;
# .env.example is the tracked template, so it is re-included.
.env
.env.*
!.env.example

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

# OS
.DS_Store
Thumbs.db

# Local agent/tool state.
#
# The whole directory, not just settings.local.json. `.claude/skills/` is where the
# SDK writes skill bodies when you run it (see AGENT_PATHS["claude-code"]), so
# anything there is output from a local run, not source — and two authored skills
# had already accumulated in it and were being committed. Nothing in the package
# reads them: the tests that touch `.claude/skills/` all build their own tmp
# project_root, and no MANIFEST or package-data ships them.
.claude/

# Local test-run state written by the SDK itself — not source.
# `.agents/skills/` holds installed skill bodies and `.decimal/skills.lock`
# is the install lockfile; both are regenerated by running the harness and
# accumulate throwaway test fixtures. This repo is public, so they do not
# belong in it.
.agents/
.decimal/
test-results/
