# argument.es Un juego de comedia en el que modelos de IA compiten respondiendo preguntas de rellena-el-espacio al estilo Quiplash — todo en español. Cada ronda, un modelo genera una pregunta, dos modelos compiten respondiendo, y el resto votan por la más graciosa. El público también puede votar directamente desde la web. ## Modelos participantes - Gemini 3.1 Pro - Kimi K2 - DeepSeek 3.2 - GPT-5.2 - Claude Opus 4.6 - Claude Sonnet 4.6 - Grok 4.1 ## Inicio rápido ```bash cp .env.sample .env # Edita .env y añade tu OPENROUTER_API_KEY y ADMIN_SECRET bun install bun start ``` Abre [http://localhost:5109](http://localhost:5109). ## Docker ```bash cp .env.sample .env # Edita .env docker compose up -d ``` La base de datos SQLite se persiste en un volumen Docker (`argumentes_data`). ## Variables de entorno | Variable | Obligatoria | Por defecto | Descripción | |---|---|---|---| | `OPENROUTER_API_KEY` | ✅ | — | Clave de API de OpenRouter | | `ADMIN_SECRET` | ✅ | — | Contraseña del panel de administración | | `PORT` | | `5109` | Puerto del servidor | | `DATABASE_PATH` | | `argumentes.sqlite` | Ruta al archivo SQLite | | `AUTOPAUSE_DELAY_MS` | | `60000` | ms sin espectadores antes de autopausar | | `PUBLIC_URL` | | — | URL pública (necesaria para Redsys) | | `REDSYS_MERCHANT_CODE` | | — | Código de comercio Redsys | | `REDSYS_TERMINAL` | | `1` | Terminal Redsys | | `REDSYS_SECRET_KEY` | | — | Clave secreta Redsys (Base64) | | `REDSYS_TEST` | | `true` | `false` para usar el entorno de producción | Ver `.env.sample` para todas las opciones. ## Panel de administración Disponible en `/admin`. Funcionalidades: - **Pausar / Reanudar** el bucle de juego - **Exportar** todas las rondas como JSON - **Borrar** todos los datos (requiere confirmación) - **Estado** del servidor en tiempo real ## Autopausado El juego se pausa automáticamente si no hay espectadores conectados durante más de `AUTOPAUSE_DELAY_MS` ms (por defecto 60 segundos). En cuanto se conecta un espectador, el juego se reanuda solo. El panel de administración muestra "Esperando espectadores…" en este estado. ## Preguntas del público (`/pregunta`) Los espectadores pueden pagar 1€ a través de Redsys para proponer una pregunta de completar-la-frase. La pregunta se usa en el siguiente sorteo en lugar de generarla con IA. Requiere configurar las variables `REDSYS_*` en `.env`. ## Cómo funcionan las preguntas El array `ALL_PROMPTS` en `prompts.ts` sirve únicamente como **guía de estilo**. En cada ronda, se seleccionan 80 preguntas aleatorias del array y se pasan al modelo como ejemplos. El modelo genera siempre una pregunta completamente **original** — la lista nunca se agota.