# Contributing to Agent Status SDK

We welcome contributions to the Agent Status SDK! This document provides guidelines for contributing.

## Getting Started

1. Fork the repository
2. Clone your fork:
   ```bash
   git clone https://github.com/YOUR_USERNAME/rora-sdk.git
   cd rora-sdk
   ```
3. Create a virtual environment:
   ```bash
   python -m venv venv
   source venv/bin/activate  # On Windows: venv\Scripts\activate
   ```
4. Install development dependencies:
   ```bash
   pip install -e ".[dev]"
   ```

## Development Workflow

### Running Tests

```bash
pytest
```

### Code Style

We use `ruff` for linting. Run before committing:

```bash
ruff check .
ruff format .
```

### Making Changes

1. Create a new branch:
   ```bash
   git checkout -b feature/your-feature-name
   ```
2. Make your changes
3. Add tests for new functionality
4. Ensure all tests pass
5. Commit with a clear message:
   ```bash
   git commit -m "Add feature: description of change"
   ```

## Pull Request Process

1. Update documentation if needed
2. Add yourself to CONTRIBUTORS if this is your first contribution
3. Submit a pull request with a clear description
4. Wait for review and address any feedback

## Code Guidelines

- Follow PEP 8 style guidelines
- Add type hints to all functions
- Write docstrings for public functions
- Keep functions focused and small
- Handle errors gracefully

## Adding Integrations

When adding a new framework integration:

1. Create a new file in `agent_status/integrations/`
2. Follow the existing integration patterns (see `langchain.py`)
3. Add optional dependency to `pyproject.toml`
4. Update `agent_status/integrations/__init__.py`
5. Add an example in `examples/`
6. Update README.md

## Reporting Issues

- Use GitHub Issues
- Include Python version, OS, and SDK version
- Provide a minimal reproducible example
- Include full error traceback

## Questions?

- Open a GitHub Discussion
- Email: dev@carmel.so

## License

By contributing, you agree that your contributions will be licensed under the MIT License.
