> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.veiseule.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# grammY

# 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:** `monitorTelegramProvider` construye un `Bot` de grammY, conecta el control de menciones/lista de permitidos, descarga de medios mediante `getFile`/`download`, y entrega respuestas con `sendMessage/sendPhoto/sendVideo/sendAudio/sendDocument`. Admite long-poll o webhook mediante `webhookCallback`.
* **Proxy:** el `channels.telegram.proxy` opcional usa `undici.ProxyAgent` a través de `client.baseFetch` de grammY.
* **Soporte de webhook:** `webhook-set.ts` envuelve `setWebhook/deleteWebhook`; `webhook.ts` aloja el callback con salud + apagado gradual. El Gateway habilita el modo webhook cuando se establecen `channels.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 usan `agent:<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.streamMode` opcional envía un mensaje temporal y lo actualiza con `editMessageText`. 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.

Preguntas abiertas

* 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).
