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

> ## Agent Instructions
> Documentación interna de VANTS, la plataforma de esports, escrita en español. Cubre siete repositorios de la organización de GitHub VANTSNET y dos de la cuenta feispla: el prototipo VANTSNET, que se llama igual que la organización, y vantsoport.
> Empieza por /mapa-del-codigo para saber qué repositorio y qué carpeta tocar, y consulta /glosario para los términos propios como pt_, mm_, RR, VANTS-BUS o VANTCALL.
> Cuando un componente existe en varios repositorios, estas páginas describen la versión de Vantsgames salvo que digan otra cosa. El esquema de la base de datos se versiona en VantsBasededatos.
> La web y la API pública están en https://vants.vants.workers.dev. Rutas y respuestas: /referencia/api-publica. Tablas y estados: /referencia/esquema-base-de-datos.
> No inventes rutas, tablas, comandos ni variables de entorno: si algo no aparece aquí, revisa el código del repositorio correspondiente.

# Vantsgames

> Repositorio principal de VANTS: carpetas, rutas públicas, despliegue del Worker, workflows de GitHub Actions, secretos y puesta en marcha del bot.

Repositorio principal de la plataforma de torneos VANTS. Antes se llamaba Playvants-web, y el código conserva ese nombre en algunos identificadores, como el proyecto `playvants-web` del bus de eventos. Contiene el Worker de Cloudflare que sirve la web y la API, las Neon Functions, el bot de Discord, el agente VANTS, el bus de eventos y los workflows que lo prueban y despliegan. La [API pública](https://vantsgg.mintlify.site/referencia/api-publica.md) y el [bot de Discord](https://vantsgg.mintlify.site/referencia/bot-de-discord.md) se documentan a partir del código de este repositorio.

## Estructura

| Ruta | Contenido |
| - | - |
| `vants-server/` | Worker de Cloudflare (`worker.js`), lógica compartida (`plataforma-core.js`) y frontend en `public/` |
| `neon-functions/` | Funciones: `vantsdata`, `mm`, `vantsbot`, `linker`, `supervisor`, `stripe-checkout`, `stripe-webhook`, `discord-notify` |
| `services/agent-service/` | Servicio de agente con LLM (cerebro, herramientas, memoria, sandbox) |
| `bot/` | Bot de Discord en Python |
| `vants-bus/` | Bus de eventos y worker consumidor |
| `db/migrations/` | Migraciones SQL idempotentes (01 a 34) |
| `scripts/` | Pruebas, sincronización con FACEIT, scraper de vlr.gg |
| `vlr-results/` | App en Python para resultados |
| `architecture/`, `product/`, `docs/` | Diseño, requisitos y guías internas |
| `android/` | App Android |

## Rutas públicas

El Worker expone rutas limpias como `/es/tournaments/:juego/:estado/` (también `/en/...`) y una API JSON pública (`/api/tournaments`, `/api/teams`, `/api/articles`, `/api/search`, entre otras). Las rutas, los parámetros y las respuestas están en [API pública](https://vantsgg.mintlify.site/referencia/api-publica.md).

## Despliegue

El Worker sirve el frontend desde `vants-server/public/`. Verificación posterior al despliegue: las páginas principales deben responder `200` con un User-Agent de navegador. Sin User-Agent la protección contra bots responde `403`.

Para revertir: `git revert <sha>` y push a `main`; el CI vuelve a desplegar.

Los workflows que despliegan y las precauciones antes de fusionar a `main` están en [Seguridad](https://vantsgg.mintlify.site/referencia/seguridad.md#despliegues-y-ci).

## Workflows

Los workflows están en `.github/workflows/`. Todos se pueden lanzar también a mano desde la pestaña Actions de GitHub.

| Workflow | Cuándo se ejecuta | Qué hace |
| - | - | - |
| `tests` | Push o PR a `main` que toque `scripts/`, `vants-server/`, `neon-functions/` o `db/` | Pruebas automáticas |
| `cloudflare-deploy` | Push a `main` que toque `vants-server/` | Despliega el Worker `vants` |
| `neon-migrate` | Push a `main` que toque `db/migrations/` | Aplica las migraciones en Neon |
| `neon-deploy-functions` | Push a `main` que toque `neon-functions/` | Despliega las Neon Functions |
| `android-build` | Push a `main` o PR que toque `android/` | Compila la app Android |
| `mejoras-discord` | Cada push a `main` | Avisa en Discord de los cambios |
| `agente` | Cada 30 minutos y cuando Vercel avisa de un despliegue | Ejecuta el agente VANTS: revisa la web, el webhook de FACEIT, los workflows y Neon, y relanza una vez lo que falle |
| `monitor` | Cada 30 minutos | Comprueba la web y `vantsdata`, y avisa en Discord si cambia su estado |
| `faceit-xp` | Cada 10 minutos | Procesa las partidas de FACEIT y actualiza la XP y el rango |
| `faceit-sync` | Cada día a las 05:17 UTC | Sincroniza los torneos reales de FACEIT con las tablas `pt_` |

`cloudflare-deploy`, `neon-migrate` y `neon-deploy-functions` comparten la cola `deploy-prod`, así que nunca se ejecutan a la vez.

## Secretos necesarios

Las credenciales de Cloudflare, Neon, FACEIT, Steam, HenrikDev, Discord y del servicio de agente se configuran como secrets del repositorio (GitHub) o del Worker (Cloudflare). No viven en el código. Cómo guardarlos y rotarlos: [Seguridad](https://vantsgg.mintlify.site/referencia/seguridad.md#secretos).

> [!WARNING]
>
> Nunca subas secretos ni archivos `.env` al repositorio.

## Bot de Discord

Las variables de entorno están en `bot/.env.example`. Además del token del bot y la cadena de conexión de Neon (`sslmode=require`), el bot usa:

| Variable | Uso |
| - | - |
| `DISCORD_GUILD_ID` | Servidor donde se registran los comandos |
| `PORT` | Puerto del health check (8080 por defecto) |

```bash theme={null}
cd bot
pip install -r requirements.txt
cp .env.example .env
python main.py
```

Los comandos viven en `bot/commands/`: análisis, comunidad, informes, moderación, perfil, verificar, vincular y agente. Cada comando, con sus permisos, está en [Bot de Discord](https://vantsgg.mintlify.site/referencia/bot-de-discord.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.