# OmniRoute — Dashboard Features Gallery (Italiano) 🌐 **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) · 🇪🇸 [es](../../../es/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) · 🇯🇵 [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) · 🇪🇸 [es](../../../es/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) · 🇯🇵 [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) Guida visiva a ogni sezione della dashboard di OmniRoute. > 📅 **Ultimo aggiornamento:** 2026-06-28 — **v3.8.40** --- ## ✨ Novità principali della v3.8.0 Il ciclo v3.7.x → v3.8.0 ha introdotto l'instradamento automatico senza configurazione, nuovi provider, flussi OAuth, maggiore resilienza e un'esperienza CLI molto più completa. Di seguito le funzionalità principali; ulteriori dettagli sono disponibili nel resto del documento e nelle specifiche collegate. - 🤖 **Auto Combo / Instradamento automatico senza configurazione** — utilizza i prefissi `auto/coding`, `auto/fast`, `auto/cheap`, `auto/offline`, `auto/smart`, `auto/lkgp`, `auto/chaos`. Basato su un motore di valutazione a 16 fattori e 6 **pacchetti di modalità** selezionati (ship-fast, cost-saver, quality-first, offline-friendly, reliability-first, chaos-mode) - 🆕 **Provider Command Code** (#2199) — registrazione nativa con catalogo dei modelli e monitoraggio delle quote - 🆕 **Provider Z.AI** — nuovo provider con piano gratuito ed etichette delle quote - 🎬 **Espansione multimediale di KIE** — catalogo esteso che include modelli di generazione video - 🔐 **Autenticazione Devin** — Desktop importa una chiave API Devin esistente; la CLI utilizza le credenziali locali di `devin auth login` - 🆓 **8 nuovi provider gratuiti** — LLM7, Lepton, UncloseAI, BazaarLink, Completions, Enally, FreeTheAi, Command Code - 🎯 **Instradamento per livelli W1–W4 basato sui manifest** — i manifest dei provider determinano la selezione ponderata dei livelli - 🎨 **Piena compatibilità OpenAI per Cursor** — chiamate agli strumenti, streaming e gestione delle sessioni end-to-end - 📊 **Utilizzo del piano Cursor Pro** — dati su quote e cicli visualizzati nella dashboard dei limiti dei provider - ⚡ **Ripartizione per livello di servizio / analisi del livello rapido di Codex** — visibilità del consumo per ciascun livello - 📌 **Instradamento persistente per sessione** — le sessioni Codex rimangono associate allo stesso account tra un turno e l'altro - 🔊 **Miglioramenti al TTS di Inworld** — cataloghi vocali, streaming e miglioramenti della latenza - 🔑 **Autenticazione headless di Kiro** — accesso tramite l'archivio SQLite locale di `kiro-cli`, senza necessità di un browser - 📉 **Monitoraggio delle quote e dei limiti di DeepSeek** — utilizzo giornaliero/mensile visualizzato tramite la dashboard - 🔄 **Strategia di instradamento basata sul ripristino** — le combo ora preferiscono gli account la cui finestra di quota viene ripristinata prima - ⏱️ **`fallbackDelayMs`** e **rilevamento dinamico dei limiti degli strumenti** — temporizzazione del fallback più precisa + limiti del numero di strumenti per provider - 🔧 **Degradazione della modalità in background (Responses API)** — passa alla modalità sincrona con un avviso strutturato quando un servizio upstream non supporta il polling in background - 🚦 **Classificazione 429 per provider** + opzione `useUpstream429BreakerHints` — comportamento del circuit breaker più preciso grazie ai suggerimenti upstream sui limiti di frequenza - 🩺 **Dashboard dei cooldown dei modelli** — consente di osservare i blocchi per modello e riabilitarli manualmente dall'interfaccia utente - 🔒 **Rilevamento dinamico dei certificati MITM su Linux** — funziona su Debian/Ubuntu, Fedora/RHEL, Arch e altre distribuzioni - 💻 **Suite di miglioramenti della CLI** — oltre 20 comandi, inclusi `omniroute providers`, `omniroute combos`, `omniroute doctor`, `omniroute setup` - 🔍 **Individuazione dei modelli di embedding Qdrant** — rilevamento automatico del modello dell'archivio vettoriale - 🔑 **Chiavi API / chiavi Bearer con ambito `manage`** — consente di eseguire operazioni amministrative a livello di codice tramite API - 🏥 **Analisi dello stato delle destinazioni delle combo** + **generatore strutturato di combo** — stato per destinazione e generatore nell'interfaccia utente per assemblare passaggi `(provider, model, connection)` - 🤝 **Provider OAuth GitLab Duo** — accesso con credenziali GitLab - 🧠 **Cache di riproduzione del ragionamento** — persistenza ibrida in memoria + SQLite delle tracce di ragionamento 📚 **Documentazione correlata:** [Framework delle competenze](../frameworks/SKILLS.md) · [Sistema di memoria](../frameworks/MEMORY.md) · [Agenti cloud](../frameworks/CLOUD_AGENT.md) · [Webhook](../frameworks/WEBHOOKS.md) · [Cache di riproduzione del ragionamento](../routing/REASONING_REPLAY.md) --- ## 🔌 Provider Gestisci le connessioni ai provider di IA: provider OAuth (Claude Code, Codex), provider con chiave API (Groq, DeepSeek, OpenRouter) e provider gratuiti (Qoder, Kiro). Gli account Kiro includono il monitoraggio del saldo dei crediti: crediti rimanenti, disponibilità totale e data di rinnovo sono visibili in Dashboard → Usage. Le connessioni OpenRouter possono memorizzare un `preset` specifico per connessione nelle Advanced Settings. Quando è impostato, OmniRoute lo invia come campo di primo livello della richiesta OpenRouter, ad esempio `"preset": "email-copywriter"`, a meno che la richiesta del client non abbia già specificato il proprio `preset`. ![Dashboard dei provider](../screenshots/01-providers.png) --- ## 🎨 Combinazioni Crea combinazioni per l'instradamento dei modelli con 19 strategie pubbliche: priority, weighted, round-robin, context-relay, fill-first, p2c (scelta tra due opzioni), random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp (ultimo provider noto come funzionante), context-optimized, cache-optimized, **fusion** (inoltra la richiesta in parallelo a un gruppo di modelli, quindi sintetizza un'unica risposta tramite un modello valutatore) e **pipeline**. Ogni combinazione concatena più modelli con fallback automatico e include modelli predefiniti rapidi e controlli di disponibilità. Miglioramenti recenti alle combinazioni: - **Generatore strutturato di combinazioni** — crea ogni passaggio selezionando provider, modello e account/connessione esatti - **Supporto per provider ripetuti** — riutilizza più volte lo stesso provider in una combinazione, purché la tupla `(provider, model, connection)` sia univoca - **Stato delle destinazioni delle combinazioni** — le viste di analisi e dello stato ora distinguono le singole destinazioni/i singoli passaggi delle combinazioni, invece di raggruppare tutto in stringhe di modelli - **Ordinamento composito dei livelli** — `defaultTier -> fallbackTier` ora influisce sull'ordine di esecuzione/fallback in fase di runtime per i passaggi di primo livello delle combinazioni - **Modelli di prompt di sistema** — il `system_message` delle combinazioni supporta lato server i segnaposto `{{MODEL_ID}}`, `{{PROVIDER_ID}}`, `{{ACCOUNT}}` e `{{FINGERPRINT}}`, sostituiti usando la destinazione effettivamente selezionata subito prima dell'invio. Sono consentiti solo i segnaposto inclusi nell'elenco autorizzato e la sostituzione non è ricorsiva; i segnaposto sconosciuti rimangono letterali, mentre i valori vuoti vengono sostituiti con stringhe vuote; i prompt di sistema del client non vengono mai riscritti. `{{FINGERPRINT}}` viene risolto solo per i provider gratuiti basati su fingerprint con un fingerprint fissato o ruotato automaticamente; negli altri casi viene sostituito con una stringa vuota (ad esempio connessioni con un singolo fingerprint, provider non basati su fingerprint). La sostituzione è applicata al ciclo di invio standard, al round-robin e alle sessioni fissate della cache di contesto; le strategie fusion, chaos, pipeline e nested-execute non supportano ancora la sostituzione dei segnaposto. ![Dashboard delle combinazioni](../screenshots/02-combos.png) --- ## 📊 Analisi Analisi completa dell'utilizzo con consumo dei token, stime dei costi, mappe di calore delle attività, grafici della distribuzione settimanale e suddivisioni per provider. ![Dashboard delle analisi](../screenshots/03-analytics.png) --- ## 🏥 Stato del sistema Monitoraggio in tempo reale: tempo di attività, memoria, versione, percentili di latenza (p50/p95/p99), statistiche della cache, stati dei circuit breaker dei provider, sessioni attive con monitoraggio delle quote e stato delle destinazioni delle combinazioni. ![Dashboard dello stato](../screenshots/04-health.png) --- ## 🔧 Translator Playground Quattro modalità per il debug delle traduzioni API: **Playground** (convertitore di formato), **Chat Tester** (richieste in tempo reale), **Test Bench** (test in batch) e **Live Monitor** (flusso in tempo reale). ![Translator Playground](../screenshots/05-translator.png) --- ## 🎮 Model Playground _(v2.0.9+)_ Testa qualsiasi modello direttamente dalla dashboard. Seleziona provider, modello ed endpoint, scrivi i prompt con Monaco Editor, visualizza le risposte in streaming in tempo reale, interrompi lo streaming in corso e consulta le metriche relative ai tempi. --- ## 🎨 Temi _(v2.0.5+)_ Temi cromatici personalizzabili per l'intera dashboard. Scegli tra 7 colori predefiniti (corallo, blu, rosso, verde, viola, arancione, ciano) oppure crea un tema personalizzato selezionando un qualsiasi colore esadecimale. Supporta le modalità chiara, scura e di sistema. --- ## ⚙️ Impostazioni Pannello completo delle impostazioni con **7 schede**: - **Generali** — Archiviazione di sistema, gestione dei backup (esportazione/importazione del database) - **Aspetto** — Selettore del tema (scuro/chiaro/sistema), temi cromatici predefiniti e colori personalizzati, visibilità dei log di integrità, controlli di visibilità degli elementi e dei separatori di gruppo della barra laterale, controlli di visibilità dei tunnel degli endpoint - **IA** — Funzionalità dell'assistente IA, configurazioni predefinite di instradamento (Auto Combo `auto/coding`, `auto/fast`, `auto/cheap`, `auto/smart`), cache di riproduzione del ragionamento e opzioni per abilità/memoria - **Sicurezza** — Protezione degli endpoint API, blocco dei provider personalizzati, filtro IP, informazioni sulla sessione - **Instradamento** — Alias dei modelli, degradazione delle attività in background, instradamento per livello basato sul manifest (W1–W4), `fallbackDelayMs`, instradamento persistente per sessione - **Resilienza** — Persistenza dei limiti di frequenza, regolazione del circuit breaker, disattivazione automatica degli account bloccati, monitoraggio della scadenza dei provider, soglia di passaggio di consegne di **Context Relay** e configurazione del modello di riepilogo, classificazione degli errori 429 per provider e opzione `useUpstream429BreakerHints`, periodi di sospensione dei modelli - **Avanzate** — Override della configurazione, audit trail della configurazione, modalità di degradazione del fallback, degradazione della modalità in background per Responses API ![Dashboard delle impostazioni](../screenshots/06-settings.png) --- ## 🔧 Strumenti CLI Configurazione con un solo clic per gli strumenti di programmazione IA: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor e Factory Droid. Include applicazione/ripristino automatici della configurazione, profili di connessione e mappatura dei modelli. ![Dashboard degli strumenti CLI](../screenshots/07-cli-tools.png) --- ## 🤖 Agenti CLI _(v2.0.11+)_ Dashboard per individuare e gestire gli agenti CLI. Mostra una griglia di 16 agenti integrati (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) con: - **Stato dell'installazione** — Installato / Non trovato con rilevamento della versione - **Badge dei protocolli** — stdio, HTTP, ecc. - **Agenti personalizzati** — Registra qualsiasi strumento CLI tramite un modulo (nome, binario, comando della versione, argomenti di avvio) - **Corrispondenza dell'impronta digitale CLI** — Opzione per provider che consente di replicare le firme delle richieste CLI native, riducendo il rischio di blocco e mantenendo al contempo l'IP del proxy - **Autenticazione Devin locale** — Devin CLI utilizza `devin auth login`; non è richiesto alcun flusso OAuth tramite browser --- ## 🔗 Context Relay _(v3.5.5+)_ Una strategia combinata che preserva la continuità della sessione quando la rotazione degli account avviene durante una conversazione. Prima che l'account attivo esaurisca la quota, OmniRoute genera in background un riepilogo strutturato per il passaggio di consegne. Quando la richiesta successiva viene assegnata a un account diverso, il riepilogo viene inserito come messaggio di sistema, consentendo al nuovo account di proseguire con il contesto completo. Configurabile tramite impostazioni globali o a livello di combinazione: - **Soglia per il passaggio di consegne** — Percentuale di utilizzo della quota che attiva la generazione del riepilogo (valore predefinito: 85%) - **Numero massimo di messaggi per il riepilogo** — Quantità di cronologia recente da condensare - **Modello per il riepilogo** — Modello alternativo facoltativo per generare il riepilogo del passaggio di consegne Attualmente supporta la rotazione degli account Codex. Consulta la [documentazione di Context Relay](../architecture/ARCHITECTURE.md). --- ## 🗜️ Compressione dei prompt _(v3.7.9+)_ Context & Cache ora offre pagine dedicate a Caveman, RTK e alle combinazioni di compressione: - **Caveman** — pacchetti di regole sensibili alla lingua, anteprima, controlli della modalità di output e analisi - **RTK** — compressione sensibile ai comandi per output di shell, git, test, build, pacchetti, Docker, infrastruttura, JSON e stack trace - **Combinazioni di compressione** — pipeline con nome, come `rtk -> caveman`, assegnate alle combinazioni di instradamento; il calcolo combinato predefinito raggiunge un risparmio medio di circa `~89%` e un risparmio del `78-95%` sul contesto idoneo quando vengono applicati entrambi i motori - **Recupero dell'output non elaborato** — puntatori facoltativi all'output non elaborato di RTK, con dati sensibili oscurati, per eseguire il debug degli errori di compressione Consulta la [Guida alla compressione](../compression/COMPRESSION_GUIDE.md), la documentazione sulla [Compressione RTK](../compression/RTK_COMPRESSION.md) e quella sui [Motori di compressione](../compression/COMPRESSION_ENGINES.md). --- ## 🛡️ Rafforzamento del proxy _(v3.5.5+)_ Applicazione completa della configurazione del proxy lungo l'intera pipeline delle richieste: - **Controllo dello stato dei token** — L'aggiornamento OAuth in background ora risolve la configurazione del proxy per ogni connessione, evitando errori negli ambienti in cui è obbligatorio utilizzare un proxy - **Convalida della chiave API** — La convalida della chiave del provider (`POST /api/providers/validate`) viene instradata tramite `runWithProxyContext`, rispettando le impostazioni del proxy globali e a livello di provider - **Correzione del dispatcher undici** — I dispatcher del proxy utilizzano l'implementazione fetch di undici anziché quella integrata in Node, risolvendo gli errori `invalid onRequestStart method` su Node.js 22 - **Rilevamento della versione di Node.js** — La pagina di accesso rileva in modo proattivo le versioni incompatibili di Node.js (24+) e mostra un banner di avviso con le istruzioni per utilizzare Node 22 LTS --- ## 📧 Mascheramento delle email per la privacy _(v3.5.6+)_ Gli indirizzi email degli account OAuth vengono mascherati per impostazione predefinita (ad esempio `di*****@g****.com`) per evitare esposizioni accidentali durante la condivisione di screenshot o la registrazione di demo. Usa Impostazioni → Aspetto → Visibilità email account per mostrare o mascherare globalmente gli indirizzi email completi degli account nelle schermate di provider, combinazioni, log, quote e ambiente di prova. --- ## 👁️ Controllo della visibilità dei modelli _(v3.5.6+)_ L'elenco dei modelli nella pagina del provider ora include: - **Barra di ricerca/filtro in tempo reale** — Trova rapidamente modelli specifici - **Controllo della visibilità per ogni modello** (icona 👁) — I modelli nascosti appaiono in grigio e vengono esclusi dal catalogo `/v1/models` - **Badge del conteggio dei modelli attivi** (`N/M attivi`) — Mostra immediatamente quanti modelli sono abilitati rispetto al totale --- ## 🔧 Riparazione delle variabili d'ambiente OAuth _(v3.6.1+)_ Azione "Ripara env" con un solo clic per i provider OAuth, che ripristina le variabili d'ambiente mancanti e corregge lo stato di autenticazione danneggiato. Accessibile da `Dashboard → Provider → [Provider OAuth] → Ripara env`. Rileva e corregge automaticamente: - Credenziali client OAuth mancanti - Voci danneggiate nel file env - Sanitizzazione del percorso di backup --- ## 🗑️ Disinstallazione / Disinstallazione completa _(v3.6.2+)_ Script di rimozione completa per tutti i metodi di installazione: | Comando | Azione | | ------------------------ | --------------------------------------------------------------------------------------------- | | `npm run uninstall` | Rimuove l'app di sistema, ma **mantiene il database e le configurazioni** in `~/.omniroute`. | | `npm run uninstall:full` | Rimuove l'app E **cancella definitivamente tutte le configurazioni, le chiavi e i database**. | --- ## 🖼️ Contenuti multimediali _(v2.0.3+)_ Genera immagini, video e musica dalla dashboard. Supporta OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI, AnimateDiff, Stable Audio Open e MusicGen. --- ## 📝 Log delle richieste Registrazione delle richieste in tempo reale con filtri per provider, modello, account e chiave API. Mostra codici di stato, utilizzo dei token, latenza e dettagli delle risposte. ![Log di utilizzo](../screenshots/08-usage.png) --- ## 🌐 Endpoint API Il tuo endpoint API unificato con suddivisione delle funzionalità: completamenti chat, API Responses, embedding, generazione di immagini, riordinamento, trascrizione audio, sintesi vocale, moderazione e chiavi API registrate. Per l'accesso remoto sono disponibili Cloudflare Quick Tunnel, Tailscale Funnel, ngrok Tunnel e il supporto per proxy cloud. ![Dashboard degli endpoint](../screenshots/09-endpoint.png) --- ## 🔑 Gestione delle chiavi API Crea, limita e revoca le chiavi API. Ogni chiave può essere limitata a modelli/provider specifici, con accesso completo o autorizzazioni di sola lettura. Gestione visiva delle chiavi con monitoraggio dell'utilizzo. --- ## 📋 Log di audit Monitoraggio delle azioni amministrative con filtri per tipo di azione, attore, destinazione, indirizzo IP e data/ora. Cronologia completa degli eventi di sicurezza. --- ## 🖥️ Applicazione desktop App desktop Electron nativa per Windows, macOS e Linux. Esegui OmniRoute come applicazione autonoma con integrazione nella barra delle applicazioni, supporto offline, aggiornamento automatico e installazione con un solo clic. Funzionalità principali: - Verifica periodica della disponibilità del server (nessuna schermata vuota all'avvio a freddo) - Barra delle applicazioni con gestione delle porte - Content Security Policy - Blocco a istanza singola - Aggiornamento automatico al riavvio - Interfaccia utente specifica per piattaforma (pulsanti semaforo di macOS, barra del titolo predefinita di Windows/Linux) - Pacchettizzazione rafforzata della build Electron: i `node_modules` collegati simbolicamente nel bundle autonomo vengono rilevati e rifiutati prima della pacchettizzazione, evitando dipendenze di runtime dalla macchina di build (v2.5.5+) - **Arresto controllato**: `before-quit` di Electron arresta Next.js correttamente, evitando blocchi del database SQLite WAL (v3.6.2+) 📖 Consulta [`electron/README.md`](../../electron/README.md) per la documentazione completa. --- ## 🌐 Bridge WebSocket V1 _(v3.6.6+)_ OmniRoute ora supporta **client WebSocket compatibili con OpenAI** tramite l'endpoint di upgrade `/v1/ws`. Il server personalizzato `scripts/dev/v1-ws-bridge.mjs` esegue il wrapping di Next.js e aggiorna le connessioni WS a sessioni di streaming bidirezionali complete. L'autenticazione utilizza la stessa chiave API o lo stesso cookie di sessione delle richieste HTTP. Comportamenti principali: - L'upgrade WS viene convalidato da `src/lib/ws/handshake.ts` prima che venga stabilita la connessione - Gli stream vengono terminati correttamente alla chiusura della sessione o in caso di errore upstream - Funziona simultaneamente insieme al percorso di streaming HTTP+SSE esistente --- ## 🔑 Token di sincronizzazione e bundle di configurazione _(v3.6.6+)_ L'accesso da più dispositivi e da parte di operatori esterni è ora possibile tramite **token di sincronizzazione con ambiti definiti**: - **`POST /api/sync/tokens`** — Emette un nuovo token di sincronizzazione (con ambiti definiti e scadenza facoltativa) - **`DELETE /api/sync/tokens/:id`** — Revoca un token - **`GET /api/sync/bundle`** — Scarica uno snapshot JSON della configurazione, dotato di versione e identificato tramite ETag (autenticato esclusivamente con un token di sincronizzazione). Le impostazioni di autenticazione, come la password della dashboard, vengono rimosse, ma le credenziali dei provider e le chiavi API sono incluse; pertanto, il file deve essere trattato come un segreto Il bundle di configurazione viene generato da `src/lib/sync/bundle.ts`. I client confrontano l'header di risposta `ETag` per rilevare le modifiche senza scaricare nuovamente l'intero payload. Dalla CLI, `omniroute sync bundle --token ` (oppure `OMNIROUTE_SYNC_TOKEN`) lo salva in un file accessibile esclusivamente al proprietario. --- ## 🧠 Preset GLM Thinking _(v3.6.6+)_ **GLM Thinking (`glmt`)** è ora registrato come provider di prima classe: 65 536 token di output massimi, budget di ragionamento di 24 576 token, timeout predefinito di 900 s, formato API compatibile con Claude e sincronizzazione condivisa dell'utilizzo con la famiglia GLM. Con la v3.6.6 arriva anche il **conteggio ibrido dei token**: quando un provider compatibile con Claude espone `/messages/count_tokens`, OmniRoute lo richiama prima delle richieste di grandi dimensioni, con un meccanismo di fallback basato su una stima. --- ## 🛡️ Fetch in uscita sicuro e protezione SSRF _(v3.6.6+)_ Tutte le chiamate di convalida dei provider e di rilevamento dei modelli passano ora attraverso una protezione in uscita a due livelli: 1. **Protezione URL** (`src/shared/network/outboundUrlGuard.ts`) — Controlla innanzitutto il nome host o l'indirizzo IP letterale della destinazione così come è scritto; in modalità solo pubblica, il wrapper di fetch sicuro risolve anche il nome e rifiuta gli indirizzi privati risultanti. Per impostazione predefinita, blocca gli endpoint dei metadati cloud, ossia l'intero intervallo 169.254.0.0/16 più i nomi host noti dei metadati; `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false` blocca anche gli host privati e di loopback; `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` (o la variabile legacy `OUTBOUND_SSRF_GUARD_ENABLED=false`) disattiva i controlli. Un valore salvato tramite l'interruttore di un flag nella dashboard ha la precedenza sulla relativa variabile, mentre i provider locali integrati ignorano la protezione durante la convalida della chiave. Consulta `docs/reference/ENVIRONMENT.md`. 2. **Wrapper di fetch sicuro** (`src/shared/network/safeOutboundFetch.ts`) — Applica la protezione URL, normalizza i timeout e riprova in caso di errori transitori con backoff esponenziale. Le violazioni della protezione vengono segnalate come `URL_GUARD_BLOCKED` — HTTP 503 tramite `getSafeOutboundFetchErrorStatus` (400 sulla route di rilevamento dei modelli) — e i blocchi SSRF effettivi durante la convalida vengono registrati nel log di audit come eventi `provider.validation.ssrf_blocked`. --- ## 🔄 Nuovi tentativi basati sul cooldown _(v3.6.6+)_ Le richieste di chat vengono ora **ritentate automaticamente** quando un provider upstream restituisce un cooldown specifico per il modello. Il comportamento è configurabile tramite `REQUEST_RETRY` (valore predefinito: 2) e `MAX_RETRY_INTERVAL_SEC` (valore predefinito: 30 s). È stato migliorato il rilevamento degli header relativi ai limiti di frequenza per `x-ratelimit-reset-requests`, `x-ratelimit-reset-tokens` e `Retry-After`: lo stato del cooldown per ciascun modello è visibile nella dashboard Resilience. --- ## 📋 Audit di conformità v2 _(v3.6.6+)_ Il log di audit è stato ampliato con paginazione basata su cursore, arricchimento del contesto delle richieste (ID della richiesta, user agent, IP), eventi di autenticazione strutturati, eventi CRUD dei provider con contesto delle differenze e registrazione delle convalide bloccate per SSRF. I nuovi eventi vengono emessi da `src/lib/compliance/providerAudit.ts`.