# OmniRoute — Dashboard Features Gallery (Suomi) 🌐 **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) · 🇫🇷 [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) · 🇪🇸 [es](../../../es/docs/guides/FEATURES.md) · 🇪🇪 [et](../../../et/docs/guides/FEATURES.md) · 🇮🇷 [fa](../../../fa/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) Visuaalinen opas OmniRoute-hallintapaneelin kaikkiin osioihin. > 📅 **Viimeksi päivitetty:** 2026-06-28 — **v3.8.40** --- ## ✨ v3.8.0:n kohokohdat v3.7.x → v3.8.0 -julkaisukierros toi käyttöön ilman määrityksiä toimivan automaattisen reitityksen, uusia palveluntarjoajia, OAuth-työnkulkuja, paremman häiriönsietokyvyn ja huomattavasti monipuolisemman komentorivikäyttökokemuksen. Tärkeimmät ominaisuudet on esitelty alla — täydelliset tiedot löytyvät myöhemmin tästä asiakirjasta ja linkitetyistä määrityksistä. - 🤖 **Auto Combo / automaattinen reititys ilman määrityksiä** — käytä etuliitteitä `auto/coding`, `auto/fast`, `auto/cheap`, `auto/offline`, `auto/smart`, `auto/lkgp`, `auto/chaos`. Taustalla toimii 16 tekijän pisteytysmoottori ja 6 kuratoitua **tilapakettia** (ship-fast, cost-saver, quality-first, offline-friendly, reliability-first, chaos-mode) - 🆕 **Command Code -palveluntarjoaja** (#2199) — ensiluokkainen rekisteröinti malliluettelolla ja kiintiöiden seurannalla - 🆕 **Z.AI-palveluntarjoaja** — uusi ilmaisen tason palveluntarjoaja kiintiötunnisteilla - 🎬 **KIE-median laajennus** — laajennettu luettelo, joka sisältää myös videoiden generointimalleja - 🔐 **Devin-todennus** — Desktop tuo olemassa olevan Devin API -avaimen; CLI käyttää paikallisia `devin auth login` -tunnistetietoja - 🆓 **8 uutta ilmaista palveluntarjoajaa** — LLM7, Lepton, UncloseAI, BazaarLink, Completions, Enally, FreeTheAi, Command Code - 🎯 **Manifestit huomioiva tasoreititys W1–W4** — palveluntarjoajien manifestit ohjaavat painotettua tasovalintaa - 🎨 **Cursorin täysi OpenAI-yhteensopivuus** — työkalukutsut, suoratoisto ja istunnonhallinta alusta loppuun - 📊 **Cursor Pro -tilauksen käyttö** — kiintiö- ja jaksotiedot näkyvät palveluntarjoajien rajoitusten koontinäytössä - ⚡ **Palvelutasokohtainen erittely / Codexin nopean tason analytiikka** — kulutuksen näkyvyys tasokohtaisesti - 📌 **Istuntokohtainen pysyvä reititys** — Codex-istunnot kiinnitetään samaan tiliin vuorojen välillä - 🔊 **Inworld TTS -parannukset** — ääniluettelot, suoratoisto ja viiveparannukset - 🔑 **Kiro-todennus ilman käyttöliittymää** — kirjautuminen paikallisen `kiro-cli`-SQLite-tietovaraston kautta ilman selainta - 📉 **DeepSeek-kiintiöiden ja -rajojen seuranta** — päivittäinen ja kuukausittainen käyttö näkyy koontinäytössä - 🔄 **Nollauksen huomioiva reititysstrategia** — yhdistelmät suosivat nyt tilejä, joiden kiintiöikkuna nollautuu pian - ⏱️ **`fallbackDelayMs`** ja **dynaaminen työkalurajojen tunnistus** — tarkempi varamenettelyn ajoitus ja palveluntarjoajakohtaiset työkalumäärien rajat - 🔧 **Taustatilan hallittu heikennys (Responses API)** — siirtyy synkroniseen tilaan ja antaa rakenteisen varoituksen, kun ylävirran palvelu ei tue taustakyselyä - 🚦 **Palveluntarjoajakohtainen 429-luokittelu** + `useUpstream429BreakerHints`-valitsin — tarkempi katkaisijan toiminta ylävirran nopeusrajoitusvihjeiden avulla - 🩺 **Mallien jäähdytysjaksojen koontinäyttö** — tarkastele mallikohtaisia lukituksia ja ota mallit manuaalisesti uudelleen käyttöön käyttöliittymästä - 🔒 **MITM:n dynaaminen Linux-varmenteiden tunnistus** — toimii Debianissa/Ubuntussa, Fedorassa/RHEL:ssä, Archissa ja muissa jakeluissa - 💻 **CLI-parannuskokonaisuus** — yli 20 komentoa, kuten `omniroute providers`, `omniroute combos`, `omniroute doctor`, `omniroute setup` - 🔍 **Qdrant-upotusmallien tunnistus** — vektorivaraston mallin automaattinen tunnistus - 🔑 **API-avaimet / Bearer-avaimet `manage`-käyttöoikeudella** — suorita ylläpitotoimintoja ohjelmallisesti API:n kautta - 🏥 **Yhdistelmäkohteiden kuntoanalytiikka** + **rakenteinen yhdistelmien muodostustyökalu** — kohdekohtaiset kuntotiedot ja käyttöliittymätyökalu `(provider, model, connection)`-vaiheiden kokoamiseen - 🤝 **GitLab Duo OAuth -palveluntarjoaja** — kirjaudu GitLab-tunnuksilla - 🧠 **Reasoning Replay Cache** — päättelyjälkien yhdistetty muisti- ja SQLite-pysyvyys 📚 **Aiheeseen liittyvät ohjeet:** [Taitokehys](../frameworks/SKILLS.md) · [Muistijärjestelmä](../frameworks/MEMORY.md) · [Pilviagentit](../frameworks/CLOUD_AGENT.md) · [Webhookit](../frameworks/WEBHOOKS.md) · [Päättelyn toistovälimuisti](../routing/REASONING_REPLAY.md) --- ## 🔌 Palveluntarjoajat Hallitse tekoälypalveluntarjoajien yhteyksiä: OAuth-palveluntarjoajia (Claude Code, Codex), API-avainpalveluntarjoajia (Groq, DeepSeek, OpenRouter) ja maksuttomia palveluntarjoajia (Qoder, Kiro). Kiro-tileihin sisältyy krediittisaldon seuranta — jäljellä olevat krediitit, kokonaiskiintiö ja uusimispäivä näkyvät kohdassa Dashboard → Usage. OpenRouter-yhteyksiin voidaan tallentaa yhteyskohtainen `preset` lisäasetuksissa. Kun se on määritetty, OmniRoute lähettää sen OpenRouterin ylätason pyyntökenttänä, esimerkiksi `"preset": "email-copywriter"`, ellei asiakaspyyntö ole jo määrittänyt omaa `preset`-arvoaan. ![Palveluntarjoajien hallintapaneeli](../screenshots/01-providers.png) --- ## 🎨 Yhdistelmät Luo mallien reititysyhdistelmiä 19 julkisella strategialla: priority, weighted, round-robin, context-relay, fill-first, p2c (kahden vaihtoehdon menetelmä), random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp (viimeksi toimivaksi tunnettu palveluntarjoaja), context-optimized, cache-optimized, **fusion** (lähettää pyynnön rinnakkain mallipaneelille ja koostaa sitten yhden vastauksen arviointimallin avulla) ja **pipeline**. Kukin yhdistelmä ketjuttaa useita malleja automaattisella varajärjestelyllä ja sisältää pikamalleja sekä valmiustarkistuksia. Yhdistelmien viimeaikaiset parannukset: - **Jäsennelty yhdistelmien rakennustyökalu** — luo kukin vaihe valitsemalla palveluntarjoaja, malli ja täsmällinen tili/yhteys - **Toistuvien palveluntarjoajien tuki** — käytä samaa palveluntarjoajaa useita kertoja yhdessä yhdistelmässä, kunhan `(provider, model, connection)`-monikko on yksilöllinen - **Yhdistelmäkohteiden kunto** — analytiikka- ja kuntonäkymät erottelevat nyt yksittäiset yhdistelmäkohteet/-vaiheet sen sijaan, että kaikki yhdistettäisiin mallimerkkijonoiksi - **Yhdistelmätasojen järjestys** — `defaultTier -> fallbackTier` vaikuttaa nyt ylätason yhdistelmävaiheiden suorituksen ja varajärjestelyjen järjestykseen ajon aikana - **Järjestelmäkehotteiden mallit** — yhdistelmän `system_message` tukee palvelinpuolen `{{MODEL_ID}}`-, `{{PROVIDER_ID}}`-, `{{ACCOUNT}}`- ja `{{FINGERPRINT}}` -paikkamerkkejä, jotka korvataan tosiasiallisesti reititetyn kohteen tiedoilla juuri ennen lähettämistä. Vain sallittujen arvojen luetteloa tuetaan, eikä korvaaminen ole rekursiivista; tuntemattomat paikkamerkit säilyvät kirjaimellisina ja tyhjät arvot laajenevat tyhjiksi; asiakkaan järjestelmäkehotteita ei koskaan kirjoiteta uudelleen. `{{FINGERPRINT}}` saa arvon vain sormenjälkipohjaisilla maksuttomilla palveluntarjoajilla, joilla on kiinnitetty tai automaattisesti vaihdettava sormenjälki — muualla se laajenee tyhjäksi (esim. yhden sormenjäljen yhteydet ja muut kuin sormenjälkipalveluntarjoajat). Laajennus kattaa vakiolähetyssilmukan, round-robin-strategian ja kiinnitetyt kontekstivälimuisti-istunnot; fusion-, chaos-, pipeline- ja nested-execute-strategiat eivät vielä laajenna paikkamerkkejä. ![Yhdistelmien hallintapaneeli](../screenshots/02-combos.png) --- ## 📊 Analytiikka Kattava käyttöanalytiikka, joka sisältää tokenien kulutuksen, kustannusarviot, aktiivisuuden lämpökartat, viikoittaiset jakaumakaaviot ja palveluntarjoajakohtaiset erittelyt. ![Analytiikan hallintapaneeli](../screenshots/03-analytics.png) --- ## 🏥 Järjestelmän kunto Reaaliaikainen valvonta: käyttöaika, muisti, versio, viiveen prosenttipisteet (p50/p95/p99), välimuistitilastot, palveluntarjoajien circuit breaker -tilat, aktiiviset kiintiövalvotut istunnot ja yhdistelmäkohteiden kunto. ![Järjestelmän kunnon hallintapaneeli](../screenshots/04-health.png) --- ## 🔧 Kääntäjän testialusta Neljä tilaa API-käännösten virheenkorjaukseen: **Playground** (muotomuunnin), **Chat Tester** (reaaliaikaiset pyynnöt), **Test Bench** (erätestit) ja **Live Monitor** (reaaliaikainen seuranta). ![Kääntäjän testialusta](../screenshots/05-translator.png) --- ## 🎮 Mallien testialusta _(v2.0.9+)_ Testaa mitä tahansa mallia suoraan hallintapaneelista. Valitse palveluntarjoaja, malli ja päätepiste, kirjoita kehotteita Monaco Editorilla, suoratoista vastaukset reaaliajassa, keskeytä suoratoisto ja tarkastele ajoitusmittareita. --- ## 🎨 Teemat _(v2.0.5+)_ Mukautettavat väriteemat koko hallintapaneelille. Valitse 7 esiasetetusta väristä (koralli, sininen, punainen, vihreä, violetti, oranssi, syaani) tai luo mukautettu teema valitsemalla mikä tahansa heksaväri. Tukee vaaleaa, tummaa ja järjestelmän tilaa. --- ## ⚙️ Asetukset Kattava asetuspaneeli, jossa on **7 välilehteä**: - **Yleiset** — Järjestelmän tallennustila, varmuuskopioiden hallinta (tietokannan vienti/tuonti) - **Ulkoasu** — Teeman valinta (tumma/vaalea/järjestelmä), väriteeman esiasetukset ja mukautetut värit, kuntolokin näkyvyys, sivupalkin kohteiden ja ryhmäerottimien näkyvyyden hallinta, päätepistetunnelin näkyvyyden hallinta - **Tekoäly** — Tekoälyavustajan ominaisuudet, reitityksen oletusesiasetukset (Auto Combo `auto/coding`, `auto/fast`, `auto/cheap`, `auto/smart`), päättelyn toistovälimuisti sekä taito- ja muistiasetukset - **Suojaus** — API-päätepisteiden suojaus, mukautettujen palveluntarjoajien esto, IP-suodatus, istuntotiedot - **Reititys** — Mallialiakset, taustatehtävien suorituskyvyn alentaminen, manifestit huomioiva tasoreititys (W1–W4), `fallbackDelayMs`, istuntokohtainen pysyvä reititys - **Vikasietoisuus** — Nopeusrajoitusten säilytys, katkaisijan hienosäätö, estettyjen tilien automaattinen poistaminen käytöstä, palveluntarjoajien vanhenemisen valvonta, **Context Relay** -luovutuskynnys ja yhteenvetomallin määritys, palveluntarjoajakohtainen 429-luokittelu ja `useUpstream429BreakerHints`-asetus, mallien jäähdytysajat - **Lisäasetukset** — Määritysten ohitukset, määritysten tarkastusloki, varajärjestelmän suorituskyvyn alentamistila, Responses API:n taustatilan suorituskyvyn alentaminen ![Asetusten hallintapaneeli](../screenshots/06-settings.png) --- ## 🔧 CLI-työkalut Tekoälyavusteisten ohjelmointityökalujen määritys yhdellä napsautuksella: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor ja Factory Droid. Ominaisuuksiin kuuluvat määritysten automaattinen käyttöönotto ja palautus, yhteysprofiilit sekä mallikartoitus. ![CLI-työkalujen hallintapaneeli](../screenshots/07-cli-tools.png) --- ## 🤖 CLI-agentit _(v2.0.11+)_ Hallintapaneeli CLI-agenttien etsimiseen ja hallintaan. Näyttää ruudukossa 16 sisäänrakennettua agenttia (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) sekä seuraavat tiedot ja toiminnot: - **Asennuksen tila** — Asennettu / Ei löytynyt sekä version tunnistus - **Protokollatunnukset** — stdio, HTTP jne. - **Mukautetut agentit** — Rekisteröi mikä tahansa CLI-työkalu lomakkeella (nimi, binääritiedosto, versiokomento, käynnistysargumentit) - **CLI-sormenjälkien täsmäytys** — Palveluntarjoajakohtainen asetus, joka jäljittelee natiivien CLI-pyyntöjen tunnisteita ja pienentää estoriskiä välityspalvelimen IP-osoitteen säilyessä - **Paikallinen Devin-todennus** — Devin CLI käyttää komentoa `devin auth login`; selaimen OAuth-kulkua ei tarvita --- ## 🔗 Kontekstin välitys _(v3.5.5+)_ Yhdistelmästrategia, joka säilyttää istunnon jatkuvuuden, kun tili vaihtuu kesken keskustelun. Ennen aktiivisen tilin kiintiön loppumista OmniRoute luo taustalla jäsennellyn yhteenvetoviestin. Kun seuraava pyyntö ohjautuu eri tilille, yhteenveto lisätään järjestelmäviestinä, jotta uusi tili voi jatkaa täydellä kontekstilla. Määritettävissä yhdistelmäkohtaisilla tai yleisillä asetuksilla: - **Välityskynnys** — Kiintiön käyttöprosentti, joka käynnistää yhteenvedon luonnin (oletus 85 %) - **Yhteenvedon viestien enimmäismäärä** — Kuinka suuri osa viimeaikaisesta historiasta tiivistetään - **Yhteenvetomalli** — Valinnainen korvaava malli välitysyhteenvedon luomiseen Tukee tällä hetkellä Codex-tilien kierrätystä. Katso [kontekstin välityksen dokumentaatio](../architecture/ARCHITECTURE.md). --- ## 🗜️ Kehotteiden pakkaus _(v3.7.9+)_ Konteksti ja välimuisti sisältää nyt omat sivut Cavemanille, RTK:lle ja pakkausyhdistelmille: - **Caveman** — kielitietoiset sääntöpaketit, esikatselu, tulostustilan hallinta ja analytiikka - **RTK** — komentotietoinen pakkaus komentotulkin, gitin, testien, koontien, pakettien, Dockerin, infrastruktuurin, JSONin ja pinonjäljitysten tulosteille - **Pakkausyhdistelmät** — nimetyt putket, kuten `rtk -> caveman`, jotka määritetään reititysyhdistelmille; pinotun laskennan oletusasetus saavuttaa keskimäärin `~89%`:n sekä `78-95%`:n säästöt soveltuvassa kontekstissa, kun molempia moottoreita käytetään - **Raakatulosteen palautus** — valinnaiset, arkaluonteisista tiedoista puhdistetut RTK:n raakatulosteviittaukset pakattujen virheiden vianmääritykseen Katso [pakkausopas](../compression/COMPRESSION_GUIDE.md), [RTK-pakkaus](../compression/RTK_COMPRESSION.md) ja [pakkausmoottorit](../compression/COMPRESSION_ENGINES.md). --- ## 🛡️ Välityspalvelimen vahvistaminen _(v3.5.5+)_ Kattava välityspalvelinmääritysten pakottaminen koko pyyntöputkessa: - **Tunnuksen kuntotarkistus** — OAuthin taustapäivitys ratkaisee nyt välityspalvelinmäärityksen yhteyskohtaisesti, mikä estää virheet ympäristöissä, joissa välityspalvelimen käyttö on pakollista - **API-avaimen vahvistus** — Palveluntarjoajan avaimen vahvistus (`POST /api/providers/validate`) reititetään `runWithProxyContext`-toiminnon kautta palveluntarjoajakohtaisia ja yleisiä välityspalvelinasetuksia noudattaen - **undici-välittäjän korjaus** — Välityspalvelimen välittäjät käyttävät Node.js:n sisäänrakennetun fetch-toteutuksen sijaan undicin omaa fetch-toteutusta, mikä korjaa `invalid onRequestStart method` -virheet Node.js 22:ssa - **Node.js-version tunnistus** — Kirjautumissivu tunnistaa ennakoivasti yhteensopimattomat Node.js-versiot (24+) ja näyttää varoituspalkin, jossa kehotetaan käyttämään Node 22 LTS:ää --- ## 📧 Sähköpostiosoitteiden yksityisyyttä suojaava peittäminen _(v3.5.6+)_ OAuth-tilien sähköpostiosoitteet peitetään oletusarvoisesti (esim. `di*****@g****.com`), jotta ne eivät paljastu vahingossa kuvakaappauksia jaettaessa tai demoja tallennettaessa. Voit näyttää tai peittää tilien täydelliset sähköpostiosoitteet yleisesti kaikkien palveluntarjoajien, yhdistelmien, lokien, kiintiöiden ja testiympäristön näkymissä valitsemalla Asetukset → Ulkoasu → Tilin sähköpostiosoitteen näkyvyys. --- ## 👁️ Mallin näkyvyyden vaihtokytkin _(v3.5.6+)_ Palveluntarjoajasivun malliluettelo sisältää nyt: - **Reaaliaikainen haku-/suodatinpalkki** — Löydä tietyt mallit nopeasti - **Mallikohtainen näkyvyyden vaihtokytkin** (👁-kuvake) — Piilotetut mallit näkyvät harmaina, eikä niitä sisällytetä `/v1/models`-luetteloon - **Aktiivisten mallien määrän ilmaisin** (`N/M aktiivista`) — Näyttää yhdellä silmäyksellä, kuinka monta mallia on käytössä suhteessa kokonaismäärään --- ## 🔧 OAuth-ympäristömuuttujien korjaus _(v3.6.1+)_ OAuth-palveluntarjoajien yhden napsautuksen "Korjaa ympäristömuuttujat" -toiminto palauttaa puuttuvat ympäristömuuttujat ja korjaa rikkoutuneen todennustilan. Käytettävissä kohdasta `Hallintapaneeli → Palveluntarjoajat → [OAuth-palveluntarjoaja] → Korjaa ympäristömuuttujat`. Tunnistaa ja korjaa automaattisesti: - Puuttuvat OAuth-asiakasohjelman tunnistetiedot - Vioittuneet ympäristömuuttujatiedoston merkinnät - Varmuuskopiopolun puhdistus --- ## 🗑️ Asennuksen poisto / Täydellinen asennuksen poisto _(v3.6.2+)_ Siistit poistokomentosarjat kaikille asennustavoille: | Komento | Toiminto | | ------------------------ | ----------------------------------------------------------------------------------------------------------- | | `npm run uninstall` | Poistaa järjestelmäsovelluksen, mutta **säilyttää tietokannan ja määritykset** hakemistossa `~/.omniroute`. | | `npm run uninstall:full` | Poistaa sovelluksen JA **hävittää pysyvästi kaikki määritykset, avaimet ja tietokannat**. | --- ## 🖼️ Media _(v2.0.3+)_ Luo kuvia, videoita ja musiikkia hallintapaneelista. Tukee OpenAI-, xAI-, Together-, Hyperbolic-, SD WebUI-, ComfyUI-, AnimateDiff-, Stable Audio Open- ja MusicGen-palveluita. --- ## 📝 Pyyntölokit Reaaliaikainen pyyntöloki, jota voi suodattaa palveluntarjoajan, mallin, tilin ja API-avaimen mukaan. Näyttää tilakoodit, tunnisteiden käytön, viiveen ja vastauksen tiedot. ![Käyttölokit](../screenshots/08-usage.png) --- ## 🌐 API-päätepiste Yhtenäinen API-päätepisteesi ominaisuuksittain eriteltynä: keskustelutäydennykset, Responses API, upotukset, kuvien luonti, uudelleenjärjestely, äänen litterointi, tekstistä puheeksi -muunnos, moderointi ja rekisteröidyt API-avaimet. Etäkäyttöä varten saatavilla ovat Cloudflare Quick Tunnel-, Tailscale Funnel-, ngrok Tunnel- ja pilvivälityspalvelintuki. ![Päätepisteen hallintapaneeli](../screenshots/09-endpoint.png) --- ## 🔑 API-avainten hallinta Luo, rajaa ja kumoa API-avaimia. Jokainen avain voidaan rajoittaa tiettyihin malleihin tai palveluntarjoajiin täydellä käyttöoikeudella tai vain luku -oikeuksilla. Visuaalinen avainten hallinta ja käytön seuranta. --- ## 📋 Tarkastusloki Hallinnollisten toimien seuranta, jota voi suodattaa toiminnon tyypin, suorittajan, kohteen, IP-osoitteen ja aikaleiman mukaan. Täydellinen tietoturvatapahtumien historia. --- ## 🖥️ Työpöytäsovellus Natiivi Electron-työpöytäsovellus Windowsille, macOS:lle ja Linuxille. Käytä OmniRoutea erillisenä sovelluksena, jossa on ilmaisinalueintegraatio, offline-tuki, automaattinen päivitys ja yhden napsautuksen asennus. Tärkeimmät ominaisuudet: - Palvelimen valmiuden kysely (ei tyhjää näyttöä kylmäkäynnistyksen yhteydessä) - Ilmaisinaluevalikko ja porttien hallinta - Sisällön suojauskäytäntö - Yhden ilmentymän lukitus - Automaattinen päivitys uudelleenkäynnistyksen yhteydessä - Alustakohtainen käyttöliittymä (macOS:n liikennevalopainikkeet, Windowsin/Linuxin oletusotsikkopalkki) - Vahvistettu Electron-koontipaketointi — erillispaketin symbolisesti linkitetty `node_modules` tunnistetaan ja hylätään ennen paketointia, mikä estää ajonaikaisen riippuvuuden koontikoneesta (v2.5.5+) - **Hallittu sammutus** — Electronin `before-quit` sammuttaa Next.js:n hallitusti, mikä estää SQLite WAL -tietokantalukitukset (v3.6.2+) 📖 Täydellinen dokumentaatio on tiedostossa [`electron/README.md`](../../electron/README.md). --- ## 🌐 V1 WebSocket -silta _(v3.6.6+)_ OmniRoute tukee nyt **OpenAI-yhteensopivia WebSocket-asiakasohjelmia** `/v1/ws`-päivityspäätepisteen kautta. Mukautettu `scripts/dev/v1-ws-bridge.mjs`-palvelin paketoi Next.js:n ja päivittää WS-yhteydet täysin kaksisuuntaisiksi suoratoistoistunnoiksi. Todennus käyttää samaa API-avainta tai istuntoevästettä kuin HTTP-pyynnöt. Keskeiset toimintatavat: - `src/lib/ws/handshake.ts` vahvistaa WS-päivityksen ennen yhteyden muodostamista - Suoratoistot päätetään hallitusti istunnon sulkeutuessa tai ylävirran virheen yhteydessä - Toimii samanaikaisesti nykyisen HTTP+SSE-suoratoistopolun rinnalla --- ## 🔑 Synkronointitunnukset ja määrityspaketti _(v3.6.6+)_ Usean laitteen ja ulkoisten operaattoreiden käyttö on nyt mahdollista **rajattujen synkronointitunnusten** avulla: - **`POST /api/sync/tokens`** — Myönnä uusi synkronointitunnus (rajattu, valinnaisella vanhentumisajalla) - **`DELETE /api/sync/tokens/:id`** — Peruuta tunnus - **`GET /api/sync/bundle`** — Lataa versioitu, ETag-avaimella yksilöity JSON-tilannevedos määrityksistä (todennus vain synkronointitunnuksella). Todennusasetukset, kuten hallintapaneelin salasana, poistetaan, mutta palveluntarjoajien tunnistetiedot ja API-avaimet sisällytetään, joten käsittele tiedostoa salaisuutena Määrityspaketti luodaan tiedostossa `src/lib/sync/bundle.ts`. Käyttäjät vertaavat `ETag`-vastausotsaketta havaitakseen muutokset lataamatta koko sisältöä uudelleen. CLI:stä komento `omniroute sync bundle --token ` (tai `OMNIROUTE_SYNC_TOKEN`) tallentaa sen tiedostoon, johon vain omistajalla on käyttöoikeus. --- ## 🧠 GLM Thinking -esiasetus _(v3.6.6+)_ **GLM Thinking (`glmt`)** on nyt rekisteröity ensisijainen palveluntarjoaja: enintään 65 536 tulostustunnusta, 24 576 tunnuksen päättelybudjetti, 900 s:n oletusaikakatkaisu, Claude-yhteensopiva API-muoto sekä GLM-perheen kanssa jaettu käytön synkronointi. Myös **hybriditunnuslaskenta** sisältyy versioon v3.6.6: kun Claude-yhteensopiva palveluntarjoaja tarjoaa `/messages/count_tokens`-päätepisteen, OmniRoute kutsuu sitä ennen suuria pyyntöjä ja käyttää tarvittaessa hallitusti arviointiin perustuvaa varamenetelmää. --- ## 🛡️ Turvallinen lähtevä haku ja SSRF-suojaus _(v3.6.6+)_ Kaikki palveluntarjoajien validointi- ja mallien etsintäkutsut kulkevat nyt kaksikerroksisen lähtevän liikenteen suojauksen kautta: 1. **URL-suojaus** (`src/shared/network/outboundUrlGuard.ts`) — Tarkistaa ensin kohteen isäntänimen tai IP-literaalin kirjoitetussa muodossaan. Vain julkiset osoitteet sallivassa tilassa turvallisen haun käärijä myös selvittää nimen osoitteen ja hylkää yksityiset osoitteet. Oletusarvoisesti se estää pilvipalvelujen metatietopäätepisteet — koko osoitealueen 169.254.0.0/16 sekä tunnetut metatietoisäntänimet. `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false` estää lisäksi yksityiset osoitteet ja takaisinkytkentäisännät. `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` (tai vanha `OUTBOUND_SSRF_GUARD_ENABLED=false`) poistaa tarkistukset käytöstä. Lipun hallintapaneelin valitsimella tallennettu arvo on ensisijainen sen muuttujaan nähden, ja sisäänrakennetut paikalliset palveluntarjoajat ohittavat suojauksen avaimen validoinnin aikana. Katso `docs/reference/ENVIRONMENT.md`. 2. **Turvallisen haun käärijä** (`src/shared/network/safeOutboundFetch.ts`) — Käyttää URL-suojausta, yhdenmukaistaa aikakatkaisut ja yrittää tilapäisesti epäonnistuneita pyyntöjä uudelleen eksponentiaalisella viiveellä. Suojauksen rikkomukset ilmoitetaan virheenä `URL_GUARD_BLOCKED` — HTTP 503 funktion `getSafeOutboundFetchErrorStatus` kautta (400 mallien etsintäreitillä) — ja validoinnin aikana havaitut todelliset SSRF-estot kirjataan tarkastuslokiin tapahtumina `provider.validation.ssrf_blocked`. --- ## 🔄 Jäähtymisajan huomioivat uudelleenyritykset _(v3.6.6+)_ Keskustelupyynnöt **yritetään nyt automaattisesti uudelleen**, kun ylävirran palveluntarjoaja palauttaa mallikohtaisen jäähtymisajan. Toimintaa voi määrittää asetuksilla `REQUEST_RETRY` (oletus: 2) ja `MAX_RETRY_INTERVAL_SEC` (oletus: 30 s). Nopeusrajoitusotsakkeiden oppimista on parannettu otsakkeille `x-ratelimit-reset-requests`, `x-ratelimit-reset-tokens` ja `Retry-After` — mallikohtainen jäähtymistila näkyy vikasietoisuuden hallintapaneelissa. --- ## 📋 Vaatimustenmukaisuuden tarkastus v2 _(v3.6.6+)_ Tarkastuslokia on laajennettu kohdistinpohjaisella sivutuksella, pyyntökontekstin rikastamisella (pyyntötunnus, käyttäjäagentti, IP), rakenteisilla todennustapahtumilla, palveluntarjoajien CRUD-tapahtumilla erokonteksteineen sekä SSRF-suojauksen estämien validointien kirjauksella. Uudet tapahtumat tuottaa `src/lib/compliance/providerAudit.ts`.