# OmniRoute — Dashboard Features Gallery (Español) 🌐 **Languages:** 🇺🇸 [English](../../../../guides/FEATURES.md) · 🇪🇹 [am](../../../am/docs/guides/FEATURES.md) · 🇸🇦 [ar](../../../ar/docs/guides/FEATURES.md) · 🇦🇿 [az](../../../az/docs/guides/FEATURES.md) · 🇧🇬 [bg](../../../bg/docs/guides/FEATURES.md) · 🇧🇩 [bn](../../../bn/docs/guides/FEATURES.md) · 🇧🇦 [bs](../../../bs/docs/guides/FEATURES.md) · 🇨🇿 [cs](../../../cs/docs/guides/FEATURES.md) · 🇩🇰 [da](../../../da/docs/guides/FEATURES.md) · 🇩🇪 [de](../../../de/docs/guides/FEATURES.md) · 🇬🇷 [el](../../../el/docs/guides/FEATURES.md) · 🇪🇪 [et](../../../et/docs/guides/FEATURES.md) · 🇮🇷 [fa](../../../fa/docs/guides/FEATURES.md) · 🇫🇮 [fi](../../../fi/docs/guides/FEATURES.md) · 🇫🇷 [fr](../../../fr/docs/guides/FEATURES.md) · 🇮🇪 [ga](../../../ga/docs/guides/FEATURES.md) · 🇮🇳 [gu](../../../gu/docs/guides/FEATURES.md) · 🇳🇬 [ha](../../../ha/docs/guides/FEATURES.md) · 🇮🇱 [he](../../../he/docs/guides/FEATURES.md) · 🇮🇳 [hi](../../../hi/docs/guides/FEATURES.md) · 🇭🇷 [hr](../../../hr/docs/guides/FEATURES.md) · 🇭🇺 [hu](../../../hu/docs/guides/FEATURES.md) · 🇦🇲 [hy](../../../hy/docs/guides/FEATURES.md) · 🇮🇩 [id](../../../id/docs/guides/FEATURES.md) · 🇳🇬 [ig](../../../ig/docs/guides/FEATURES.md) · 🇮🇹 [it](../../../it/docs/guides/FEATURES.md) · 🇯🇵 [ja](../../../ja/docs/guides/FEATURES.md) · 🇬🇪 [ka](../../../ka/docs/guides/FEATURES.md) · 🇰🇭 [km](../../../km/docs/guides/FEATURES.md) · 🇮🇳 [kn](../../../kn/docs/guides/FEATURES.md) · 🇰🇷 [ko](../../../ko/docs/guides/FEATURES.md) · 🇱🇹 [lt](../../../lt/docs/guides/FEATURES.md) · 🇱🇻 [lv](../../../lv/docs/guides/FEATURES.md) · 🇮🇳 [ml](../../../ml/docs/guides/FEATURES.md) · 🇮🇳 [mr](../../../mr/docs/guides/FEATURES.md) · 🇲🇾 [ms](../../../ms/docs/guides/FEATURES.md) · 🇲🇹 [mt](../../../mt/docs/guides/FEATURES.md) · 🇲🇲 [my](../../../my/docs/guides/FEATURES.md) · 🇳🇵 [ne](../../../ne/docs/guides/FEATURES.md) · 🇳🇱 [nl](../../../nl/docs/guides/FEATURES.md) · 🇳🇴 [no](../../../no/docs/guides/FEATURES.md) · 🇮🇳 [or](../../../or/docs/guides/FEATURES.md) · 🇮🇳 [pa](../../../pa/docs/guides/FEATURES.md) · 🇵🇭 [phi](../../../phi/docs/guides/FEATURES.md) · 🇵🇱 [pl](../../../pl/docs/guides/FEATURES.md) · 🇵🇹 [pt](../../../pt/docs/guides/FEATURES.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/FEATURES.md) · 🇷🇴 [ro](../../../ro/docs/guides/FEATURES.md) · 🇷🇺 [ru](../../../ru/docs/guides/FEATURES.md) · 🇱🇰 [si](../../../si/docs/guides/FEATURES.md) · 🇸🇰 [sk](../../../sk/docs/guides/FEATURES.md) · 🇸🇮 [sl](../../../sl/docs/guides/FEATURES.md) · 🇷🇸 [sr](../../../sr/docs/guides/FEATURES.md) · 🇸🇪 [sv](../../../sv/docs/guides/FEATURES.md) · 🇰🇪 [sw](../../../sw/docs/guides/FEATURES.md) · 🇮🇳 [ta](../../../ta/docs/guides/FEATURES.md) · 🇮🇳 [te](../../../te/docs/guides/FEATURES.md) · 🇹🇭 [th](../../../th/docs/guides/FEATURES.md) · 🇹🇷 [tr](../../../tr/docs/guides/FEATURES.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/FEATURES.md) · 🇵🇰 [ur](../../../ur/docs/guides/FEATURES.md) · 🇺🇿 [uz](../../../uz/docs/guides/FEATURES.md) · 🇻🇳 [vi](../../../vi/docs/guides/FEATURES.md) · 🇳🇬 [yo](../../../yo/docs/guides/FEATURES.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/FEATURES.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/FEATURES.md) --- 🌐 **Languages:** 🇺🇸 [English](../../../../guides/FEATURES.md) · 🇪🇹 [am](../../../am/docs/guides/FEATURES.md) · 🇸🇦 [ar](../../../ar/docs/guides/FEATURES.md) · 🇦🇿 [az](../../../az/docs/guides/FEATURES.md) · 🇧🇬 [bg](../../../bg/docs/guides/FEATURES.md) · 🇧🇩 [bn](../../../bn/docs/guides/FEATURES.md) · 🇧🇦 [bs](../../../bs/docs/guides/FEATURES.md) · 🇨🇿 [cs](../../../cs/docs/guides/FEATURES.md) · 🇩🇰 [da](../../../da/docs/guides/FEATURES.md) · 🇩🇪 [de](../../../de/docs/guides/FEATURES.md) · 🇬🇷 [el](../../../el/docs/guides/FEATURES.md) · 🇪🇪 [et](../../../et/docs/guides/FEATURES.md) · 🇮🇷 [fa](../../../fa/docs/guides/FEATURES.md) · 🇫🇮 [fi](../../../fi/docs/guides/FEATURES.md) · 🇫🇷 [fr](../../../fr/docs/guides/FEATURES.md) · 🇮🇪 [ga](../../../ga/docs/guides/FEATURES.md) · 🇮🇳 [gu](../../../gu/docs/guides/FEATURES.md) · 🇳🇬 [ha](../../../ha/docs/guides/FEATURES.md) · 🇮🇱 [he](../../../he/docs/guides/FEATURES.md) · 🇮🇳 [hi](../../../hi/docs/guides/FEATURES.md) · 🇭🇷 [hr](../../../hr/docs/guides/FEATURES.md) · 🇭🇺 [hu](../../../hu/docs/guides/FEATURES.md) · 🇦🇲 [hy](../../../hy/docs/guides/FEATURES.md) · 🇮🇩 [id](../../../id/docs/guides/FEATURES.md) · 🇳🇬 [ig](../../../ig/docs/guides/FEATURES.md) · 🇮🇹 [it](../../../it/docs/guides/FEATURES.md) · 🇯🇵 [ja](../../../ja/docs/guides/FEATURES.md) · 🇬🇪 [ka](../../../ka/docs/guides/FEATURES.md) · 🇰🇭 [km](../../../km/docs/guides/FEATURES.md) · 🇮🇳 [kn](../../../kn/docs/guides/FEATURES.md) · 🇰🇷 [ko](../../../ko/docs/guides/FEATURES.md) · 🇱🇹 [lt](../../../lt/docs/guides/FEATURES.md) · 🇱🇻 [lv](../../../lv/docs/guides/FEATURES.md) · 🇮🇳 [ml](../../../ml/docs/guides/FEATURES.md) · 🇮🇳 [mr](../../../mr/docs/guides/FEATURES.md) · 🇲🇾 [ms](../../../ms/docs/guides/FEATURES.md) · 🇲🇹 [mt](../../../mt/docs/guides/FEATURES.md) · 🇲🇲 [my](../../../my/docs/guides/FEATURES.md) · 🇳🇵 [ne](../../../ne/docs/guides/FEATURES.md) · 🇳🇱 [nl](../../../nl/docs/guides/FEATURES.md) · 🇳🇴 [no](../../../no/docs/guides/FEATURES.md) · 🇮🇳 [or](../../../or/docs/guides/FEATURES.md) · 🇮🇳 [pa](../../../pa/docs/guides/FEATURES.md) · 🇵🇭 [phi](../../../phi/docs/guides/FEATURES.md) · 🇵🇱 [pl](../../../pl/docs/guides/FEATURES.md) · 🇵🇹 [pt](../../../pt/docs/guides/FEATURES.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/FEATURES.md) · 🇷🇴 [ro](../../../ro/docs/guides/FEATURES.md) · 🇷🇺 [ru](../../../ru/docs/guides/FEATURES.md) · 🇱🇰 [si](../../../si/docs/guides/FEATURES.md) · 🇸🇰 [sk](../../../sk/docs/guides/FEATURES.md) · 🇸🇮 [sl](../../../sl/docs/guides/FEATURES.md) · 🇷🇸 [sr](../../../sr/docs/guides/FEATURES.md) · 🇸🇪 [sv](../../../sv/docs/guides/FEATURES.md) · 🇰🇪 [sw](../../../sw/docs/guides/FEATURES.md) · 🇮🇳 [ta](../../../ta/docs/guides/FEATURES.md) · 🇮🇳 [te](../../../te/docs/guides/FEATURES.md) · 🇹🇭 [th](../../../th/docs/guides/FEATURES.md) · 🇹🇷 [tr](../../../tr/docs/guides/FEATURES.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/FEATURES.md) · 🇵🇰 [ur](../../../ur/docs/guides/FEATURES.md) · 🇺🇿 [uz](../../../uz/docs/guides/FEATURES.md) · 🇻🇳 [vi](../../../vi/docs/guides/FEATURES.md) · 🇳🇬 [yo](../../../yo/docs/guides/FEATURES.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/FEATURES.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/FEATURES.md) Guía visual de cada sección del panel de OmniRoute. > 📅 **Última actualización:** 2026-06-28 — **v3.8.40** --- ## ✨ Aspectos destacados de v3.8.0 El ciclo v3.7.x → v3.8.0 incorporó enrutamiento automático sin configuración, nuevos proveedores, flujos OAuth, mayor resiliencia y una experiencia de CLI mucho más completa. A continuación se presentan las principales funcionalidades; encontrará todos los detalles más adelante en el documento y en las especificaciones enlazadas. - 🤖 **Combo automático / Enrutamiento automático sin configuración** — use los prefijos `auto/coding`, `auto/fast`, `auto/cheap`, `auto/offline`, `auto/smart`, `auto/lkgp`, `auto/chaos`. Respaldado por un motor de puntuación de 16 factores y 6 **paquetes de modos** seleccionados (ship-fast, cost-saver, quality-first, offline-friendly, reliability-first, chaos-mode) - 🆕 **Proveedor Command Code** (#2199) — registro de primera clase con catálogo de modelos y seguimiento de cuota - 🆕 **Proveedor Z.AI** — nuevo proveedor con nivel gratuito y etiquetas de cuota - 🎬 **Expansión multimedia de KIE** — catálogo ampliado que incluye modelos de generación de vídeo - 🔐 **Autenticación de Devin** — Desktop importa una clave de API de Devin existente; la CLI utiliza las credenciales locales de `devin auth login` - 🆓 **8 nuevos proveedores gratuitos** — LLM7, Lepton, UncloseAI, BazaarLink, Completions, Enally, FreeTheAi, Command Code - 🎯 **Enrutamiento por niveles W1–W4 basado en manifiestos** — los manifiestos de proveedores controlan la selección ponderada de niveles - 🎨 **Compatibilidad total de Cursor con OpenAI** — llamadas a herramientas, streaming y gestión de sesiones de extremo a extremo - 📊 **Uso del plan Cursor Pro** — los datos de cuota y ciclo se muestran en el panel de límites de proveedores - ⚡ **Desglose por nivel de servicio / Análisis del nivel rápido de Codex** — visibilidad del consumo por nivel - 📌 **Enrutamiento persistente por sesión** — las sesiones de Codex se fijan a la misma cuenta entre turnos - 🔊 **Mejoras de TTS de Inworld** — catálogos de voces, streaming y mejoras de latencia - 🔑 **Autenticación sin interfaz de Kiro** — inicio de sesión mediante el almacén SQLite local de `kiro-cli`, sin necesidad de navegador - 📉 **Supervisión de cuotas y límites de DeepSeek** — uso diario y mensual disponible en el panel - 🔄 **Estrategia de enrutamiento que tiene en cuenta los restablecimientos** — los combos ahora prefieren las cuentas cuya ventana de cuota se restablezca antes - ⏱️ **`fallbackDelayMs`** y **detección dinámica del límite de herramientas** — temporización de respaldo más precisa y límites de cantidad de herramientas por proveedor - 🔧 **Degradación del modo en segundo plano (API Responses)** — recurre al modo síncrono con una advertencia estructurada cuando un servicio ascendente no admite sondeo en segundo plano - 🚦 **Clasificación de errores 429 por proveedor** + opción `useUpstream429BreakerHints` — comportamiento más preciso del disyuntor mediante indicaciones de límites de velocidad del servicio ascendente - 🩺 **Panel de tiempos de espera de modelos** — permite observar los bloqueos por modelo y volver a habilitarlos manualmente desde la interfaz - 🔒 **Detección dinámica de certificados MITM en Linux** — funciona en Debian/Ubuntu, Fedora/RHEL, Arch y otras distribuciones - 💻 **Conjunto de mejoras de la CLI** — más de 20 comandos, incluidos `omniroute providers`, `omniroute combos`, `omniroute doctor`, `omniroute setup` - 🔍 **Detección de modelos de embeddings de Qdrant** — sondeo automático del modelo del almacén vectorial - 🔑 **Claves de API / Claves Bearer con alcance `manage`** — permite realizar operaciones administrativas mediante programación a través de la API - 🏥 **Análisis del estado de los destinos de combos** + **constructor estructurado de combos** — estado por destino y constructor de interfaz para ensamblar pasos `(provider, model, connection)` - 🤝 **Proveedor OAuth de GitLab Duo** — inicio de sesión con credenciales de GitLab - 🧠 **Caché de reproducción de razonamiento** — persistencia híbrida en memoria + SQLite de trazas de razonamiento 📚 **Documentación relacionada:** [Marco de habilidades](../frameworks/SKILLS.md) · [Sistema de memoria](../frameworks/MEMORY.md) · [Agentes en la nube](../frameworks/CLOUD_AGENT.md) · [Webhooks](../frameworks/WEBHOOKS.md) · [Caché de reproducción de razonamiento](../routing/REASONING_REPLAY.md) --- ## 🔌 Proveedores Gestiona las conexiones con proveedores de IA: proveedores OAuth (Claude Code, Codex), proveedores con clave de API (Groq, DeepSeek, OpenRouter) y proveedores gratuitos (Qoder, Kiro). Las cuentas de Kiro incluyen seguimiento del saldo de créditos: los créditos restantes, la asignación total y la fecha de renovación están visibles en Panel → Uso. Las conexiones de OpenRouter pueden almacenar un `preset` por conexión en Configuración avanzada. Cuando está configurado, OmniRoute lo envía como campo de nivel superior de la solicitud de OpenRouter, por ejemplo, `"preset": "email-copywriter"`, a menos que la solicitud del cliente ya haya proporcionado su propio `preset`. ![Panel de proveedores](../screenshots/01-providers.png) --- ## 🎨 Combos Crea combos de enrutamiento de modelos con 19 estrategias públicas: priority, weighted, round-robin, context-relay, fill-first, p2c (selección entre dos opciones), random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp (último proveedor válido conocido), context-optimized, cache-optimized, **fusion** (distribuye la solicitud en paralelo a un panel de modelos y luego sintetiza una única respuesta mediante un juez) y **pipeline**. Cada combo encadena varios modelos con conmutación por error automática e incluye plantillas rápidas y comprobaciones de disponibilidad. Mejoras recientes de los combos: - **Constructor estructurado de combos** — crea cada paso seleccionando el proveedor, el modelo y la cuenta o conexión exacta - **Compatibilidad con proveedores repetidos** — reutiliza el mismo proveedor varias veces en un combo, siempre que la tupla `(provider, model, connection)` sea única - **Estado de los destinos del combo** — las vistas de análisis y estado ahora distinguen los destinos o pasos individuales del combo, en lugar de agruparlo todo en cadenas de modelos - **Ordenación de niveles compuestos** — `defaultTier -> fallbackTier` ahora influye en el orden de ejecución y conmutación por error en tiempo de ejecución para los pasos de nivel superior del combo - **Plantillas de prompts del sistema** — el `system_message` del combo admite los marcadores de posición del lado del servidor `{{MODEL_ID}}`, `{{PROVIDER_ID}}`, `{{ACCOUNT}}` y `{{FINGERPRINT}}`, que se expanden a partir del destino al que realmente se ha enrutado justo antes del envío. Se usa una lista de permitidos y no son recursivos; los marcadores de posición desconocidos permanecen literales; los valores vacíos se expanden como vacíos; los prompts del sistema del cliente nunca se reescriben. `{{FINGERPRINT}}` solo se resuelve para proveedores gratuitos basados en huellas digitales con una huella fijada o rotada automáticamente; en otros casos se expande como vacío (por ejemplo, conexiones con una única huella digital o proveedores que no utilizan huellas digitales). La expansión abarca el bucle de envío estándar, round-robin y las sesiones fijadas de caché de contexto; las estrategias fusion, chaos, pipeline y nested-execute todavía no expanden los marcadores de posición. ![Panel de combos](../screenshots/02-combos.png) --- ## 📊 Análisis Análisis de uso exhaustivo con consumo de tokens, estimaciones de costes, mapas de calor de actividad, gráficos de distribución semanal y desgloses por proveedor. ![Panel de análisis](../screenshots/03-analytics.png) --- ## 🏥 Estado del sistema Supervisión en tiempo real: tiempo de actividad, memoria, versión, percentiles de latencia (p50/p95/p99), estadísticas de caché, estados de los disyuntores de los proveedores, sesiones activas con supervisión de cuota y estado de los destinos de los combos. ![Panel de estado](../screenshots/04-health.png) --- ## 🔧 Área de pruebas del traductor Cuatro modos para depurar traducciones de la API: **Área de pruebas** (conversor de formatos), **Probador de chat** (solicitudes en vivo), **Banco de pruebas** (pruebas por lotes) y **Monitor en vivo** (transmisión en tiempo real). ![Área de pruebas del traductor](../screenshots/05-translator.png) --- ## 🎮 Área de pruebas de modelos _(v2.0.9+)_ Prueba cualquier modelo directamente desde el panel. Selecciona el proveedor, el modelo y el endpoint, escribe prompts con Monaco Editor, transmite las respuestas en tiempo real, interrumpe la transmisión y consulta las métricas de tiempo. --- ## 🎨 Temas _(v2.0.5+)_ Temas de color personalizables para todo el panel. Elige entre 7 colores predefinidos (coral, azul, rojo, verde, violeta, naranja y cian) o crea un tema personalizado seleccionando cualquier color hexadecimal. Admite los modos claro, oscuro y del sistema. --- ## ⚙️ Configuración Panel de configuración completo con **7 pestañas**: - **General** — Almacenamiento del sistema y gestión de copias de seguridad (exportación/importación de la base de datos) - **Apariencia** — Selector de tema (oscuro/claro/sistema), temas de color predefinidos y colores personalizados, visibilidad del registro de estado, controles de visibilidad de los elementos y separadores de grupos de la barra lateral, y controles de visibilidad de los túneles de endpoints - **IA** — Funciones del asistente de IA, ajustes predefinidos de enrutamiento predeterminados (combinaciones automáticas `auto/coding`, `auto/fast`, `auto/cheap`, `auto/smart`), caché de reproducción del razonamiento y opciones para activar o desactivar habilidades y memoria - **Seguridad** — Protección de endpoints de la API, bloqueo de proveedores personalizados, filtrado de IP e información de la sesión - **Enrutamiento** — Alias de modelos, degradación de tareas en segundo plano, enrutamiento por niveles basado en el manifiesto (W1–W4), `fallbackDelayMs` y enrutamiento persistente por sesión - **Resiliencia** — Persistencia de límites de velocidad, ajuste del disyuntor, desactivación automática de cuentas bloqueadas, supervisión del vencimiento de proveedores, umbral de transferencia de **Context Relay** y configuración del modelo de resumen, clasificación de errores 429 por proveedor y opción `useUpstream429BreakerHints`, y tiempos de espera de los modelos - **Avanzado** — Sobrescrituras de configuración, registro de auditoría de la configuración, modo de degradación de respaldo y degradación del modo en segundo plano para Responses API ![Panel de configuración](../screenshots/06-settings.png) --- ## 🔧 Herramientas de CLI Configuración con un solo clic para herramientas de programación con IA: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor y Factory Droid. Incluye aplicación y restablecimiento automatizados de la configuración, perfiles de conexión y asignación de modelos. ![Panel de herramientas de CLI](../screenshots/07-cli-tools.png) --- ## 🤖 Agentes de CLI _(v2.0.11+)_ Panel para descubrir y gestionar agentes de CLI. Muestra una cuadrícula de 16 agentes integrados (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) con: - **Estado de instalación** — Instalado / No encontrado, con detección de versión - **Insignias de protocolo** — stdio, HTTP, etc. - **Agentes personalizados** — Registra cualquier herramienta de CLI mediante un formulario (nombre, binario, comando de versión y argumentos de inicio) - **Coincidencia de huellas digitales de CLI** — Opción por proveedor para imitar las firmas de solicitudes de la CLI nativa, lo que reduce el riesgo de bloqueo a la vez que conserva la IP del proxy - **Autenticación local de Devin** — Devin CLI utiliza `devin auth login`; no se requiere ningún flujo OAuth en el navegador --- ## 🔗 Context Relay _(v3.5.5+)_ Una estrategia combinada que preserva la continuidad de la sesión cuando se produce una rotación de cuentas en mitad de una conversación. Antes de que se agote la cuenta activa, OmniRoute genera en segundo plano un resumen estructurado de traspaso. Cuando la siguiente solicitud se asigna a una cuenta diferente, el resumen se inyecta como mensaje del sistema para que la nueva cuenta continúe con todo el contexto. Configurable mediante ajustes globales o del combo: - **Umbral de traspaso** — Porcentaje de uso de la cuota que activa la generación del resumen (valor predeterminado: 85%) - **Máximo de mensajes para el resumen** — Cantidad del historial reciente que se debe condensar - **Modelo de resumen** — Modelo de sustitución opcional para generar el resumen de traspaso Actualmente admite la rotación de cuentas de Codex. Consulta la [documentación de Context Relay](../architecture/ARCHITECTURE.md). --- ## 🗜️ Compresión de prompts _(v3.7.9+)_ Context & Cache ahora ofrece páginas específicas para Caveman, RTK y los combos de compresión: - **Caveman** — Paquetes de reglas adaptados al lenguaje, vista previa, controles del modo de salida y análisis - **RTK** — Compresión adaptada a comandos para la salida de shell, git, pruebas, compilación, paquetes, Docker, infraestructura, JSON y trazas de pila - **Combos de compresión** — Canalizaciones con nombre, como `rtk -> caveman`, asignadas a combos de enrutamiento; el cálculo combinado predeterminado alcanza un promedio de `~89%` y un ahorro de contexto apto del `78-95%` cuando se aplican ambos motores - **Recuperación de la salida sin procesar** — Punteros opcionales y censurados a la salida sin procesar de RTK para depurar fallos de compresión Consulta la [Guía de compresión](../compression/COMPRESSION_GUIDE.md), [Compresión RTK](../compression/RTK_COMPRESSION.md) y [Motores de compresión](../compression/COMPRESSION_ENGINES.md). --- ## 🛡️ Refuerzo del proxy _(v3.5.5+)_ Aplicación integral de la configuración del proxy en toda la canalización de solicitudes: - **Comprobación del estado del token** — La actualización de OAuth en segundo plano ahora resuelve la configuración del proxy para cada conexión, lo que evita fallos en entornos que requieren proxy - **Validación de claves de API** — La validación de claves de proveedores (`POST /api/providers/validate`) se enruta mediante `runWithProxyContext`, respetando la configuración global y del proxy del proveedor - **Corrección del despachador de undici** — Los despachadores de proxy usan la implementación de fetch propia de undici en lugar de la integrada en Node, lo que resuelve los errores `invalid onRequestStart method` en Node.js 22 - **Detección de la versión de Node.js** — La página de inicio de sesión detecta de forma proactiva las versiones incompatibles de Node.js (24+) y muestra un banner de advertencia con instrucciones para usar Node 22 LTS --- ## 📧 Enmascaramiento de privacidad del correo electrónico _(v3.5.6+)_ Los correos electrónicos de las cuentas OAuth se ocultan de forma predeterminada (por ejemplo, `di*****@g****.com`) para evitar su exposición accidental al compartir capturas de pantalla o grabar demostraciones. Usa Configuración → Apariencia → Visibilidad del correo electrónico de la cuenta para mostrar u ocultar globalmente los correos electrónicos completos de las cuentas en las pantallas de proveedores, combos, registros, cuota y entorno de pruebas. --- ## 👁️ Control de visibilidad de modelos _(v3.5.6+)_ La lista de modelos de la página del proveedor ahora incluye: - **Barra de búsqueda/filtro en tiempo real** — Encuentra rápidamente modelos específicos - **Control de visibilidad por modelo** (icono 👁) — Los modelos ocultos aparecen atenuados y se excluyen del catálogo `/v1/models` - **Insignia de recuento activo** (`N/M activos`) — Muestra de un vistazo cuántos modelos están habilitados respecto al total --- ## 🔧 Reparación del entorno OAuth _(v3.6.1+)_ Acción «Reparar entorno» con un solo clic para proveedores OAuth que restaura las variables de entorno que faltan y corrige el estado de autenticación dañado. Accesible desde `Panel → Proveedores → [Proveedor OAuth] → Reparar entorno`. Detecta y repara automáticamente: - Credenciales de cliente OAuth que faltan - Entradas dañadas del archivo de entorno - Saneamiento de rutas de copias de seguridad --- ## 🗑️ Desinstalación / Desinstalación completa _(v3.6.2+)_ Scripts de eliminación limpia para todos los métodos de instalación: | Comando | Acción | | ------------------------ | -------------------------------------------------------------------------------------------------------------- | | `npm run uninstall` | Elimina la aplicación del sistema, pero **conserva la base de datos y las configuraciones** en `~/.omniroute`. | | `npm run uninstall:full` | Elimina la aplicación Y **borra permanentemente todas las configuraciones, claves y bases de datos**. | --- ## 🖼️ Contenido multimedia _(v2.0.3+)_ Genera imágenes, vídeos y música desde el panel. Compatible con OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI, AnimateDiff, Stable Audio Open y MusicGen. --- ## 📝 Registros de solicitudes Registro de solicitudes en tiempo real con filtrado por proveedor, modelo, cuenta y clave de API. Muestra códigos de estado, uso de tokens, latencia y detalles de las respuestas. ![Registros de uso](../screenshots/08-usage.png) --- ## 🌐 Endpoint de la API Tu endpoint unificado de la API con un desglose de funcionalidades: finalizaciones de chat, Responses API, embeddings, generación de imágenes, reclasificación, transcripción de audio, conversión de texto a voz, moderaciones y claves de API registradas. Se ofrece compatibilidad con Cloudflare Quick Tunnel, Tailscale Funnel, ngrok Tunnel y proxies en la nube para el acceso remoto. ![Panel de endpoints](../screenshots/09-endpoint.png) --- ## 🔑 Gestión de claves de API Crea, delimita y revoca claves de API. Cada clave puede restringirse a modelos o proveedores específicos con acceso completo o permisos de solo lectura. Gestión visual de claves con seguimiento de uso. --- ## 📋 Registro de auditoría Seguimiento de acciones administrativas con filtrado por tipo de acción, autor, objetivo, dirección IP y marca temporal. Historial completo de eventos de seguridad. --- ## 🖥️ Aplicación de escritorio Aplicación de escritorio nativa basada en Electron para Windows, macOS y Linux. Ejecuta OmniRoute como una aplicación independiente con integración en la bandeja del sistema, compatibilidad sin conexión, actualización automática e instalación con un solo clic. Características principales: - Sondeo de disponibilidad del servidor (sin pantalla en blanco durante un arranque en frío) - Bandeja del sistema con gestión de puertos - Política de seguridad de contenido - Bloqueo de instancia única - Actualización automática al reiniciar - Interfaz condicional según la plataforma (controles de ventana de macOS y barra de título predeterminada de Windows/Linux) - Empaquetado reforzado de compilaciones de Electron: los `node_modules` con enlaces simbólicos del paquete independiente se detectan y rechazan antes del empaquetado, lo que evita la dependencia en tiempo de ejecución respecto a la máquina de compilación (v2.5.5+) - **Cierre ordenado**: `before-quit` de Electron cierra Next.js de forma limpia, lo que evita bloqueos de la base de datos WAL de SQLite (v3.6.2+) 📖 Consulta [`electron/README.md`](../../electron/README.md) para obtener la documentación completa. --- ## 🌐 Puente WebSocket V1 _(v3.6.6+)_ OmniRoute ahora admite **clientes WebSocket compatibles con OpenAI** mediante el endpoint de actualización `/v1/ws`. El servidor personalizado `scripts/dev/v1-ws-bridge.mjs` encapsula Next.js y actualiza las conexiones WS a sesiones completas de transmisión bidireccional. La autenticación utiliza la misma clave de API o cookie de sesión que las solicitudes HTTP. Comportamientos principales: - La actualización de WS se valida mediante `src/lib/ws/handshake.ts` antes de establecer la conexión - Las transmisiones finalizan de forma limpia al cerrarse la sesión o producirse un error ascendente - Funciona simultáneamente con la ruta de transmisión HTTP+SSE existente --- ## 🔑 Tokens de sincronización y paquete de configuración _(v3.6.6+)_ El acceso desde varios dispositivos y para operadores externos ahora es posible mediante **tokens de sincronización con alcance definido**: - **`POST /api/sync/tokens`** — Emite un nuevo token de sincronización (con alcance definido y caducidad opcional) - **`DELETE /api/sync/tokens/:id`** — Revoca un token - **`GET /api/sync/bundle`** — Descarga una instantánea JSON versionada de la configuración, identificada mediante ETag (autenticada únicamente con un token de sincronización). Se eliminan los ajustes de autenticación, como la contraseña del panel, pero se incluyen las credenciales de los proveedores y las claves de API, por lo que el archivo debe tratarse como un secreto El paquete de configuración se genera mediante `src/lib/sync/bundle.ts`. Los clientes comparan el encabezado de respuesta `ETag` para detectar cambios sin volver a descargar la carga útil completa. Desde la CLI, `omniroute sync bundle --token ` (o `OMNIROUTE_SYNC_TOKEN`) lo guarda en un archivo accesible únicamente por su propietario. --- ## 🧠 Preajuste de razonamiento GLM _(v3.6.6+)_ **GLM Thinking (`glmt`)** ahora es un proveedor de primera clase registrado: 65 536 tokens de salida como máximo, un presupuesto de razonamiento de 24 576, un tiempo de espera predeterminado de 900 s, un formato de API compatible con Claude y sincronización de uso compartida con la familia GLM. El **recuento híbrido de tokens** también llega en la versión v3.6.6: cuando un proveedor compatible con Claude expone `/messages/count_tokens`, OmniRoute lo invoca antes de las solicitudes grandes, con una estimación alternativa tolerante a fallos. --- ## 🛡️ Obtención saliente segura y protección contra SSRF _(v3.6.6+)_ Todas las llamadas de validación de proveedores y descubrimiento de modelos pasan ahora por una protección saliente de dos capas: 1. **Protección de URL** (`src/shared/network/outboundUrlGuard.ts`) — Primero comprueba el nombre de host o la dirección IP literal del destino tal como se ha escrito; en el modo exclusivamente público, el contenedor de obtención segura también resuelve el nombre y rechaza las respuestas privadas. De forma predeterminada, bloquea los endpoints de metadatos en la nube — todo el rango 169.254.0.0/16, además de los nombres de host de metadatos conocidos; `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false` también bloquea los hosts privados y de bucle invertido; `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` (o la variable heredada `OUTBOUND_SSRF_GUARD_ENABLED=false`) desactiva las comprobaciones. Un valor guardado mediante el interruptor de una opción en el panel tiene prioridad sobre su variable, y los proveedores locales integrados omiten la protección durante la validación de claves. Consulta `docs/reference/ENVIRONMENT.md`. 2. **Contenedor de obtención segura** (`src/shared/network/safeOutboundFetch.ts`) — Aplica la protección de URL, normaliza los tiempos de espera y reintenta los errores transitorios con retroceso exponencial. Las infracciones de la protección se muestran como `URL_GUARD_BLOCKED` — HTTP 503 mediante `getSafeOutboundFetchErrorStatus` (400 en la ruta de descubrimiento de modelos) — y los bloqueos SSRF reales durante la validación se registran en el registro de auditoría como eventos `provider.validation.ssrf_blocked`. --- ## 🔄 Reintentos que tienen en cuenta el período de espera _(v3.6.6+)_ Las solicitudes de chat ahora **se reintentan automáticamente** cuando un proveedor ascendente devuelve un período de espera específico del modelo. Se puede configurar mediante `REQUEST_RETRY` (valor predeterminado: 2) y `MAX_RETRY_INTERVAL_SEC` (valor predeterminado: 30 s). Se mejoró el aprendizaje de los encabezados de límite de solicitudes para `x-ratelimit-reset-requests`, `x-ratelimit-reset-tokens` y `Retry-After`; el estado del período de espera de cada modelo está visible en el panel de Resiliencia. --- ## 📋 Auditoría de cumplimiento v2 _(v3.6.6+)_ El registro de auditoría se ha ampliado con paginación basada en cursor, enriquecimiento del contexto de las solicitudes (ID de solicitud, agente de usuario, IP), eventos de autenticación estructurados, eventos CRUD de proveedores con contexto de diferencias y registro de las validaciones bloqueadas por SSRF. Nuevos eventos emitidos por `src/lib/compliance/providerAudit.ts`.