Integración de grammY (API de Bots de Telegram)
Por qué grammY
- Cliente de la API de Bots con enfoque en TS, con helpers integrados para long-poll y webhooks, middleware, manejo de errores y limitador de tasa.
- Helpers de medios más limpios que implementar fetch + FormData a mano; compatible con todos los métodos de la API de Bots.
- Extensible: soporte de proxy mediante fetch personalizado, middleware de sesiones (opcional) y contexto con tipado seguro.
Qué enviamos
- Ruta de cliente única: se eliminó la implementación basada en fetch; grammY es ahora el único cliente de Telegram (envío + Gateway) con el limitador de grammY habilitado por defecto.
- Gateway:
monitorTelegramProviderconstruye unBotde grammY, conecta el control de menciones/lista de permitidos, descarga de medios mediantegetFile/download, y entrega respuestas consendMessage/sendPhoto/sendVideo/sendAudio/sendDocument. Admite long-poll o webhook mediantewebhookCallback. - Proxy: el
channels.telegram.proxyopcional usaundici.ProxyAgenta través declient.baseFetchde grammY. - Soporte de webhook:
webhook-set.tsenvuelvesetWebhook/deleteWebhook;webhook.tsaloja el callback con salud + apagado gradual. El Gateway habilita el modo webhook cuando se establecenchannels.telegram.webhookUrl+channels.telegram.webhookSecret(de lo contrario usa long-poll). - Sesiones: los chats directos se colapsan en la sesión principal del agente (
agent:<agentId>:<mainKey>); los grupos usanagent:<agentId>:telegram:group:<chatId>; las respuestas regresan al mismo canal. - Perillas de configuración:
channels.telegram.botToken,channels.telegram.dmPolicy,channels.telegram.groups(lista de permitidos + valores predeterminados de menciones),channels.telegram.allowFrom,channels.telegram.groupAllowFrom,channels.telegram.groupPolicy,channels.telegram.mediaMaxMb,channels.telegram.linkPreview,channels.telegram.proxy,channels.telegram.webhookSecret,channels.telegram.webhookUrl. - Vista previa de transmisión en vivo:
channels.telegram.streamModeopcional envía un mensaje temporal y lo actualiza coneditMessageText. Esto es independiente del streaming por bloques del canal. - Pruebas: los mocks de grammY cubren el control de menciones en mensajes directos y grupos, y el envío saliente; aún se agradecen más fixtures de medios/webhooks.
- Plugins opcionales de grammY (limitador) si encontramos errores 429 de la API de Bots.
- Agregar más pruebas estructuradas de medios (stickers, notas de voz).
- Hacer configurable el puerto de escucha del webhook (actualmente fijo en 8787 a menos que se conecte a través del Gateway).