# Contributing to agentbudget

Thank you for your interest in contributing!

## Setup

```bash
git clone https://github.com/DavideZaninelloo/AgenticBudget
cd AgenticBudget
pip install -e ".[all,dev]"
```

## Running Tests

```bash
pytest                          # run all tests
pytest --cov=agentbudget        # with coverage
pytest tests/test_session.py    # single file
```

## Code Standards

- **Type hints** on all public functions and methods
- **Docstrings** in English on all public classes and methods
- **No `print()` directly** in library code — use `_log(verbose, message)`
- **No required dependencies** — keep `openai` and `anthropic` as optional extras
- **Python 3.9+** compatible — avoid 3.10+ syntax

## Adding a New Provider

1. Create `agentbudget/providers/your_provider.py` implementing `BaseProvider`
2. Add detection logic in `agentbudget/providers/base.py` (`detect_provider`)
3. Add model prices to `agentbudget/pricing.py`
4. Write tests in `tests/test_providers.py`

## Submitting Changes

1. Fork the repository
2. Create a feature branch: `git checkout -b feat/your-feature`
3. Commit using conventional commits: `feat(scope): description`
4. Open a pull request

## Reporting Issues

Open an issue on [GitHub](https://github.com/DavideZaninelloo/AgenticBudget/issues).
