Metadata-Version: 2.4
Name: brazilian-whatsapp-agno-interface
Version: 0.1.0
Summary: Add your description here
Requires-Python: >=3.14
Description-Content-Type: text/markdown
Requires-Dist: agno>=2.8.7
Requires-Dist: build>=1.5.0
Requires-Dist: fastapi[standard]>=0.141.1
Requires-Dist: twine>=7.0.0
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: pytest; extra == "dev"

# Brazilian WhatsApp Agno Interface

Integre agentes, equipes e workflows do Agno com o WhatsApp de forma simples usando FastAPI.

Este pacote fornece um adapter pronto para expor endpoints de status e webhook do WhatsApp, encaminhando mensagens recebidas para um agente ou workflow do Agno.

## Recursos

- Criação automática de um router FastAPI para WhatsApp
- Suporte a `agent`, `team` e `workflow`
- Endpoints prontos para:
  - `GET /status`
  - `GET /webhook`
  - `POST /webhook`
- Suporte opcional a criptografia para telefone
- Configuração de token de verificação, ID do número e timeout para mídia

## Instalação

Instale o pacote via pip:

```bash
pip install brazilian-whatsapp-agno-interface
```

Ou usando uv:

```bash
uv pip install brazilian-whatsapp-agno-interface
```

## Uso rápido

```python
from fastapi import FastAPI
from brazilian_whatsapp_agno_interface import BrazilianWhatsApp

app = FastAPI()

interface = BrazilianWhatsApp(
    agent=my_agent,
    prefix="/whatsapp",
)

app.include_router(interface.get_router())
```

## Configuração

Você pode passar os seguintes parâmetros ao criar a interface:

- `agent`: agente do Agno
- `team`: equipe do Agno
- `workflow`: workflow do Agno
- `prefix`: prefixo do router, padrão `/whatsapp`
- `access_token`: token de acesso do WhatsApp
- `phone_number_id`: ID do número do WhatsApp
- `verify_token`: token usado para verificação do webhook
- `media_timeout`: timeout para upload/download de mídia
- `enable_encryption`: habilita criptografia para números de telefone
- `encryption_key`: chave hexadecimal de 32 bytes para criptografia

## Variáveis de ambiente

Quando a criptografia estiver ativada, você pode definir:

```bash
export WHATSAPP_ENCRYPTION_KEY="sua_chave_hexadecimal"
```

## Endpoints

O router expõe:

- `GET /status`: retorna o status do serviço
- `GET /webhook`: valida a chamada de verificação do webhook
- `POST /webhook`: processa mensagens recebidas pelo WhatsApp

## Desenvolvimento

Para executar os testes localmente:

```bash
pytest -v
```

## Licença

Este projeto é distribuído sob a licença MIT.
