Instalar
@niadra/sdk 0.3.0, pronto no ramo main e no npm quando for publicado; até lá, o pacote do npm é o 0.1.1.
As cinco primitivas
subscribe() (Python) e whatsAppChallenge() (TypeScript) respondem ao desafio de assinatura da Meta no GET.
Exemplo mínimo
examples/whatsapp_webhook.py e examples/whatsapp-cloud.ts. O flush() depois de record() faz o turno, e o V1 que ele prova, chegarem antes da primeira leitura.
Limites
- O adaptador nunca envia mensagem nem chama a Graph API; ele traduz o webhook e registra o que o seu código enviou.
- Mídia chega como referência (
id, tipo MIME, SHA-256): baixe os bytes da Graph API, passe aupload_media()e entregue o resultado emupload=(com a suatranscript=de uma nota de voz). O texto de um PDF ou de uma imagem só é lido dentro da célula, e só quando o espaço lista o tipo emmedia.extract_text_from: a camada de texto do PDF no worker, a imagem por OCR (RapidOCR em ONNX) num processo filho do servidor de modelos, uma por vez, redimensionada; uma imagem que falha (413 ou 422) é tratada como imagem sem texto, e nenhuma imagem sai da região. O texto passa pelo redator antes da extração e vira um turno derivado. - Cada
WhatsAppMessagetraz owa_ide, para um nome de usuário do WhatsApp, o id com escopo da conta Business (BSUID); statuses e outros campos do webhook ficam de fora. - Testado com cargas públicas do formato da Meta e assinaturas calculadas no teste; nenhuma conta da Meta é necessária.
Próximos passos
Agentes de WhatsApp
identidade pelo número, V1 pelo canal e o turno legível pelos outros agentes.
Twilio
WhatsApp e SMS pela Twilio, com o mesmo desenho.

