feat: agente Telegram con IA + Coolify multi-instancia
- Coolify: soporte multi-instancia (CRUD de configs, ?config_id= en todos los endpoints, endpoints expandidos para services/databases/teams/envs) - AiConfig: campos es_agente_bot + telegram_config_id para marcar qué config de IA actúa como cerebro del bot administrador - TelegramAgentHistory + TelegramAgentAuth: historial de conversación por chat_id y whitelist de chats autorizados - Agent Engine: function calling OpenAI-compatible con 25+ herramientas (clientes, contratos, contabilidad, proyectos, tickets, tareas, Coolify multi-instancia, servidores, monitores URL) - Webhook POST /webhooks/telegram-agent/:bot_token (público, sin sesión) - API /api/v2/agent/auth y /api/v2/agent/history para administrar el agente - AutoMigrate: AiConfig, TelegramAgentHistory, TelegramAgentAuth Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
50812749ea
commit
33cfe4fdb0
+38
-1
@@ -349,20 +349,57 @@ func AdminApiRoutes(api fiber.Router) {
|
||||
h.Put("/cloudflare/zones/:zone_id/dns/:record_id", controllers.UpdateCloudflareDNS)
|
||||
h.Delete("/cloudflare/zones/:zone_id/dns/:record_id", controllers.DeleteCloudflareDNS)
|
||||
|
||||
// ─── Coolify ─────────────────────────────────────────────────────────────
|
||||
// ─── Coolify instancias (CRUD multi-instancia) ───────────────────────────
|
||||
h.Get("/coolify/configs", controllers.CoolifyListConfigs)
|
||||
h.Post("/coolify/configs", controllers.CoolifyCreateConfig)
|
||||
h.Put("/coolify/configs/:id", controllers.CoolifyUpdateConfig)
|
||||
h.Delete("/coolify/configs/:id", controllers.CoolifyDeleteConfig)
|
||||
h.Get("/coolify/configs/:id/test", controllers.CoolifyTestConfig)
|
||||
|
||||
// ─── Coolify operaciones (todos soportan ?config_id=) ────────────────────
|
||||
h.Get("/coolify/apps", controllers.CoolifyListApplications)
|
||||
h.Get("/coolify/apps/:uuid", controllers.CoolifyGetApplication)
|
||||
h.Get("/coolify/apps/:uuid/logs", controllers.CoolifyApplicationLogs)
|
||||
h.Get("/coolify/apps/:uuid/envs", controllers.CoolifyApplicationEnvs)
|
||||
h.Post("/coolify/apps/:uuid/envs", controllers.CoolifyApplicationEnvCreate)
|
||||
h.Patch("/coolify/apps/:uuid/envs", controllers.CoolifyApplicationEnvUpdateBulk)
|
||||
h.Delete("/coolify/apps/:uuid/envs/:env_id", controllers.CoolifyApplicationEnvDelete)
|
||||
h.Get("/coolify/apps/:uuid/start", controllers.CoolifyApplicationStart)
|
||||
h.Get("/coolify/apps/:uuid/stop", controllers.CoolifyApplicationStop)
|
||||
h.Get("/coolify/apps/:uuid/restart", controllers.CoolifyApplicationRestart)
|
||||
h.Get("/coolify/apps/:uuid/deployments", controllers.CoolifyApplicationDeployments)
|
||||
h.Post("/coolify/apps/:uuid/deploy", controllers.CoolifyApplicationDeploy)
|
||||
h.Get("/coolify/servers", controllers.CoolifyListServers)
|
||||
h.Get("/coolify/servers/:uuid", controllers.CoolifyGetServer)
|
||||
h.Get("/coolify/servers/:uuid/resources", controllers.CoolifyServerResources)
|
||||
h.Get("/coolify/servers/:uuid/domains", controllers.CoolifyServerDomains)
|
||||
h.Get("/coolify/servers/:uuid/validate", controllers.CoolifyServerValidate)
|
||||
h.Get("/coolify/services", controllers.CoolifyListServices)
|
||||
h.Get("/coolify/services/:uuid", controllers.CoolifyGetService)
|
||||
h.Get("/coolify/services/:uuid/start", controllers.CoolifyServiceStart)
|
||||
h.Get("/coolify/services/:uuid/stop", controllers.CoolifyServiceStop)
|
||||
h.Get("/coolify/services/:uuid/restart", controllers.CoolifyServiceRestart)
|
||||
h.Get("/coolify/services/:uuid/envs", controllers.CoolifyServiceEnvs)
|
||||
h.Patch("/coolify/services/:uuid/envs", controllers.CoolifyServiceEnvUpdateBulk)
|
||||
h.Get("/coolify/databases", controllers.CoolifyListDatabases)
|
||||
h.Get("/coolify/databases/:uuid", controllers.CoolifyGetDatabase)
|
||||
h.Get("/coolify/databases/:uuid/start", controllers.CoolifyDatabaseStart)
|
||||
h.Get("/coolify/databases/:uuid/stop", controllers.CoolifyDatabaseStop)
|
||||
h.Get("/coolify/databases/:uuid/restart", controllers.CoolifyDatabaseRestart)
|
||||
h.Get("/coolify/projects", controllers.CoolifyListProjects)
|
||||
h.Get("/coolify/projects/:uuid", controllers.CoolifyGetProject)
|
||||
h.Get("/coolify/projects/:uuid/environments", controllers.CoolifyProjectEnvironments)
|
||||
h.Get("/coolify/deployments", controllers.CoolifyListDeployments)
|
||||
h.Get("/coolify/deployments/:uuid", controllers.CoolifyGetDeployment)
|
||||
h.Get("/coolify/teams", controllers.CoolifyListTeams)
|
||||
h.Get("/coolify/teams/current", controllers.CoolifyCurrentTeam)
|
||||
h.Get("/coolify/teams/current/members", controllers.CoolifyTeamMembers)
|
||||
|
||||
// ─── Agente Telegram: chats autorizados ──────────────────────────────────
|
||||
h.Get("/agent/auth", controllers.AgentAuthList)
|
||||
h.Post("/agent/auth", controllers.AgentAuthCreate)
|
||||
h.Delete("/agent/auth/:id", controllers.AgentAuthDelete)
|
||||
h.Delete("/agent/history/:chat_id", controllers.AgentHistoryClear)
|
||||
|
||||
// ─── VCard API ───────────────────────────────────────────────────────────
|
||||
h.Get("/vcard-api/config", controllers.VcardApiGetConfig)
|
||||
|
||||
@@ -37,6 +37,10 @@ func RutasPublicas(web fiber.Router) {
|
||||
// Configurar en el bot: POST https://api.telegram.org/bot{TOKEN}/setWebhook?url={HOST}/webhooks/telegram-portal
|
||||
web.Post("/webhooks/telegram-portal", controllers.TelegramPortalWebhook)
|
||||
|
||||
// ─── Webhook del agente administrador (bot con IA) ──────────────────────
|
||||
// Configurar en el bot: POST https://api.telegram.org/bot{TOKEN}/setWebhook?url={HOST}/webhooks/telegram-agent/{BOT_TOKEN}
|
||||
web.Post("/webhooks/telegram-agent/:bot_token", controllers.TelegramAgentWebhook)
|
||||
|
||||
// ─── WebSMS (LabsMobile) — API de envío + webhooks ──────────────────
|
||||
web.Post("/api/sms/send", controllers.ApiSendSms)
|
||||
web.Post("/webhooks/websms/delivery", controllers.WebSmsDeliveryWebhook)
|
||||
|
||||
Reference in New Issue
Block a user