Integração grammY (API de Bots do Telegram)
Por que grammY
- Cliente da API de Bots com foco em TS, com helpers integrados para long-poll e webhook, middleware, tratamento de erros e limitador de taxa.
- Helpers de mídia mais limpos do que implementar fetch + FormData manualmente; suporta todos os métodos da API de Bots.
- Extensível: suporte a proxy via fetch customizado, middleware de sessão (opcional), contexto com tipagem segura.
O que entregamos
- Caminho único de cliente: a implementação baseada em fetch foi removida; grammY agora é o único cliente do Telegram (envio + gateway), com o throttler do grammY habilitado por padrão.
- Gateway:
monitorTelegramProvidercria umBotdo grammY, conecta o gating de menções/lista de permissões, download de mídia viagetFile/download, e entrega respostas comsendMessage/sendPhoto/sendVideo/sendAudio/sendDocument. Suporta long-poll ou webhook viawebhookCallback. - Proxy: o
channels.telegram.proxyopcional usaundici.ProxyAgentpor meio doclient.baseFetchdo grammY. - Suporte a webhook:
webhook-set.tsencapsulasetWebhook/deleteWebhook;webhook.tshospeda o callback com health check + desligamento gracioso. O Gateway habilita o modo webhook quandochannels.telegram.webhookUrl+channels.telegram.webhookSecretestão definidos (caso contrário, usa long-poll). - Sessões: chats diretos colapsam na sessão principal do agente (
agent:<agentId>:<mainKey>); grupos usamagent:<agentId>:telegram:group:<chatId>; as respostas retornam para o mesmo canal. - Parâmetros de configuração:
channels.telegram.botToken,channels.telegram.dmPolicy,channels.telegram.groups(padrões de lista de permissões + menção),channels.telegram.allowFrom,channels.telegram.groupAllowFrom,channels.telegram.groupPolicy,channels.telegram.mediaMaxMb,channels.telegram.linkPreview,channels.telegram.proxy,channels.telegram.webhookSecret,channels.telegram.webhookUrl. - Prévia de transmissão ao vivo:
channels.telegram.streamModeopcional envia uma mensagem temporária e a atualiza comeditMessageText. Isso é separado do streaming em blocos do canal. - Testes: mocks do grammY cobrem DM + gating de menções em grupos e envio de saída; mais fixtures de mídia/webhook ainda são bem-vindas.
- Plugins opcionais do grammY (throttler) se começarmos a receber 429 da API de Bots.
- Adicionar mais testes estruturados de mídia (figurinhas, mensagens de voz).
- Tornar a porta de escuta do webhook configurável (atualmente fixa em 8787, a menos que seja conectada via gateway).