# OmniRoute — Dashboard Features Gallery (Português (Portugal)) 🌐 **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) · 🇮🇹 [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-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) · 🇮🇹 [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-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) Guia visual de todas as secções do painel de controlo do OmniRoute. > 📅 **Última atualização:** 2026-06-28 — **v3.8.40** --- ## ✨ Destaques da v3.8.0 O ciclo v3.7.x → v3.8.0 adicionou encaminhamento automático sem configuração, novos fornecedores, fluxos OAuth, maior resiliência e uma experiência de CLI muito mais completa. As principais funcionalidades encontram-se abaixo — estão disponíveis todos os detalhes mais adiante neste documento e nas especificações associadas. - 🤖 **Auto Combo / encaminhamento automático sem configuração** — utilize os prefixos `auto/coding`, `auto/fast`, `auto/cheap`, `auto/offline`, `auto/smart`, `auto/lkgp`, `auto/chaos`. Suportado por um motor de pontuação com 16 fatores e 6 **pacotes de modos** selecionados (ship-fast, cost-saver, quality-first, offline-friendly, reliability-first, chaos-mode) - 🆕 **Fornecedor Command Code** (#2199) — registo de primeira classe com catálogo de modelos e monitorização de quotas - 🆕 **Fornecedor Z.AI** — novo fornecedor de nível gratuito com etiquetas de quota - 🎬 **Expansão multimédia do KIE** — catálogo alargado, incluindo modelos de geração de vídeo - 🔐 **Autenticação do Devin** — a aplicação Desktop importa uma chave da API Devin existente; a CLI utiliza credenciais locais de `devin auth login` - 🆓 **8 novos fornecedores gratuitos** — LLM7, Lepton, UncloseAI, BazaarLink, Completions, Enally, FreeTheAi, Command Code - 🎯 **Encaminhamento por níveis W1–W4 com reconhecimento de manifestos** — os manifestos dos fornecedores determinam a seleção ponderada de níveis - 🎨 **Paridade total do Cursor com OpenAI** — chamadas de ferramentas, streaming e gestão de sessões de ponta a ponta - 📊 **Utilização do plano Cursor Pro** — dados de quota e de ciclo apresentados no painel de limites dos fornecedores - ⚡ **Discriminação por nível de serviço / análise do nível rápido do Codex** — visibilidade do consumo por nível - 📌 **Encaminhamento persistente por sessão** — as sessões do Codex permanecem associadas à mesma conta entre interações - 🔊 **Melhorias no TTS da Inworld** — catálogos de vozes, streaming e melhorias de latência - 🔑 **Autenticação headless do Kiro** — início de sessão através do armazenamento SQLite local do `kiro-cli`, sem necessidade de navegador - 📉 **Monitorização de quotas e limites do DeepSeek** — utilização diária/mensal apresentada através do painel - 🔄 **Estratégia de encaminhamento com reconhecimento de reposições** — as combinações passam a dar preferência às contas cuja janela de quota é reposta mais cedo - ⏱️ **`fallbackDelayMs`** e **deteção dinâmica do limite de ferramentas** — temporização de fallback mais precisa + limites de quantidade de ferramentas por fornecedor - 🔧 **Degradação do modo em segundo plano (Responses API)** — recorre ao modo síncrono com um aviso estruturado quando um serviço a montante não suporta consultas de estado em segundo plano - 🚦 **Classificação de erros 429 por fornecedor** + opção `useUpstream429BreakerHints` — comportamento mais preciso do disjuntor com recurso a indicações de limitação de pedidos do serviço a montante - 🩺 **Painel de períodos de espera dos modelos** — observe bloqueios por modelo e reative-os manualmente a partir da interface - 🔒 **Deteção dinâmica de certificados MITM no Linux** — funciona em Debian/Ubuntu, Fedora/RHEL, Arch e outras distribuições - 💻 **Conjunto de melhorias da CLI** — mais de 20 comandos, incluindo `omniroute providers`, `omniroute combos`, `omniroute doctor`, `omniroute setup` - 🔍 **Descoberta de modelos de embeddings no Qdrant** — sondagem automática do modelo do armazenamento vetorial - 🔑 **Chaves de API / chaves Bearer com âmbito `manage`** — execute operações administrativas de forma programática através da API - 🏥 **Análise do estado dos destinos das combinações** + **construtor estruturado de combinações** — estado por destino e construtor na interface para criar passos `(provider, model, connection)` - 🤝 **Fornecedor OAuth GitLab Duo** — inicie sessão com credenciais do GitLab - 🧠 **Cache de reprodução de raciocínio** — persistência híbrida, em memória + SQLite, dos rastos de raciocínio 📚 **Documentação relacionada:** [Arquitetura de competências](../frameworks/SKILLS.md) · [Sistema de memória](../frameworks/MEMORY.md) · [Agentes na nuvem](../frameworks/CLOUD_AGENT.md) · [Webhooks](../frameworks/WEBHOOKS.md) · [Cache de reprodução de raciocínio](../routing/REASONING_REPLAY.md) --- ## 🔌 Fornecedores Faça a gestão das ligações a fornecedores de IA: fornecedores OAuth (Claude Code, Codex), fornecedores de chaves de API (Groq, DeepSeek, OpenRouter) e fornecedores gratuitos (Qoder, Kiro). As contas Kiro incluem acompanhamento do saldo de créditos — créditos restantes, limite total e data de renovação visíveis em Painel → Utilização. As ligações OpenRouter podem armazenar um `preset` por ligação nas Definições Avançadas. Quando definido, o OmniRoute envia-o como campo de nível superior do pedido OpenRouter, por exemplo, `"preset": "email-copywriter"`, a menos que o pedido do cliente já tenha fornecido o seu próprio `preset`. ![Painel de Fornecedores](../screenshots/01-providers.png) --- ## 🎨 Combinações Crie combinações de encaminhamento de modelos com 19 estratégias públicas: prioridade, ponderada, round-robin, retransmissão de contexto, preenchimento prioritário, p2c (escolha entre duas opções), aleatória, menos utilizado, otimizada por custo, sensível à reposição, janela de reposição, margem disponível, aleatória estrita, automática, lkgp (último fornecedor funcional conhecido), otimizada por contexto, otimizada por cache, **fusão** (distribui o pedido em paralelo por um painel de modelos e, em seguida, sintetiza uma única resposta através de um avaliador) e **pipeline**. Cada combinação encadeia vários modelos com recurso alternativo automático e inclui modelos de configuração rápida e verificações de prontidão. Melhorias recentes nas combinações: - **Construtor estruturado de combinações** — crie cada passo selecionando o fornecedor, o modelo e a conta/ligação exata - **Suporte para fornecedores repetidos** — reutilize o mesmo fornecedor várias vezes numa combinação, desde que a tupla `(provider, model, connection)` seja única - **Estado dos destinos das combinações** — as vistas de análise e estado distinguem agora destinos/passos individuais das combinações, em vez de agregarem tudo em cadeias de modelos - **Ordenação por níveis compostos** — `defaultTier -> fallbackTier` influencia agora a ordem de execução/recurso alternativo em tempo de execução para os passos de nível superior das combinações - **Modelos de mensagens de sistema** — o `system_message` da combinação suporta, no lado do servidor, os marcadores de posição `{{MODEL_ID}}`, `{{PROVIDER_ID}}`, `{{ACCOUNT}}` e `{{FINGERPRINT}}`, expandidos a partir do destino efetivamente selecionado imediatamente antes do envio. São permitidos apenas os marcadores autorizados e não há expansão recursiva; os marcadores desconhecidos permanecem literais; os valores vazios são expandidos para vazio; as mensagens de sistema do cliente nunca são reescritas. `{{FINGERPRINT}}` é resolvido apenas para fornecedores gratuitos baseados em impressões digitais com uma impressão digital fixa ou rodada automaticamente — nos restantes casos, é expandido para vazio (por exemplo, ligações com uma única impressão digital, fornecedores sem impressões digitais). A expansão abrange o ciclo de envio padrão, round-robin e sessões fixas de cache de contexto; as estratégias de fusão, caos, pipeline e execução aninhada ainda não expandem marcadores de posição. ![Painel de Combinações](../screenshots/02-combos.png) --- ## 📊 Análises Análises de utilização abrangentes com consumo de tokens, estimativas de custos, mapas de calor de atividade, gráficos de distribuição semanal e discriminações por fornecedor. ![Painel de Análises](../screenshots/03-analytics.png) --- ## 🏥 Estado do Sistema Monitorização em tempo real: tempo de atividade, memória, versão, percentis de latência (p50/p95/p99), estatísticas de cache, estados dos disjuntores dos fornecedores, sessões ativas com monitorização de quotas e estado dos destinos das combinações. ![Painel de Estado](../screenshots/04-health.png) --- ## 🔧 Área de Testes do Tradutor Quatro modos para depurar traduções da API: **Área de Testes** (conversor de formatos), **Testador de Conversação** (pedidos em direto), **Banco de Testes** (testes em lote) e **Monitor em Direto** (fluxo em tempo real). ![Área de Testes do Tradutor](../screenshots/05-translator.png) --- ## 🎮 Área de Testes de Modelos _(v2.0.9+)_ Teste qualquer modelo diretamente a partir do painel. Selecione o fornecedor, o modelo e o endpoint, escreva instruções com o Monaco Editor, receba respostas em fluxo contínuo em tempo real, interrompa-as a meio e consulte métricas de tempo. --- ## 🎨 Temas _(v2.0.5+)_ Temas de cores personalizáveis para todo o painel. Escolha entre 7 cores predefinidas (Coral, Azul, Vermelho, Verde, Violeta, Laranja, Ciano) ou crie um tema personalizado ao selecionar qualquer cor hexadecimal. Suporta os modos claro, escuro e do sistema. --- ## ⚙️ Definições Painel de definições abrangente com **7 separadores**: - **Geral** — Armazenamento do sistema, gestão de cópias de segurança (exportar/importar base de dados) - **Aspeto** — Seletor de tema (escuro/claro/sistema), temas de cores predefinidos e cores personalizadas, visibilidade do registo de estado, controlos de visibilidade dos itens e separadores de grupos da barra lateral, controlos de visibilidade dos túneis de endpoints - **IA** — Funcionalidades do assistente de IA, predefinições de encaminhamento padrão (Combinação Automática `auto/coding`, `auto/fast`, `auto/cheap`, `auto/smart`), cache de repetição de raciocínio e controlos de competências/memória - **Segurança** — Proteção de endpoints da API, bloqueio de fornecedores personalizados, filtragem de IP, informações da sessão - **Encaminhamento** — Aliases de modelos, degradação de tarefas em segundo plano, encaminhamento por níveis baseado no manifesto (W1–W4), `fallbackDelayMs`, encaminhamento persistente por sessão - **Resiliência** — Persistência dos limites de pedidos, ajuste do disjuntor, desativação automática de contas banidas, monitorização da expiração dos fornecedores, limiar de transferência do **Context Relay** e configuração do modelo de resumo, classificação de erros 429 por fornecedor e controlo `useUpstream429BreakerHints`, períodos de espera dos modelos - **Avançado** — Substituições de configuração, registo de auditoria da configuração, modo de degradação de contingência, degradação do modo em segundo plano para a Responses API ![Painel de Definições](../screenshots/06-settings.png) --- ## 🔧 Ferramentas de CLI Configuração com um clique para ferramentas de programação com IA: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor e Factory Droid. Inclui aplicação/reposição automática da configuração, perfis de ligação e mapeamento de modelos. ![Painel de Ferramentas de CLI](../screenshots/07-cli-tools.png) --- ## 🤖 Agentes de CLI _(v2.0.11+)_ Painel para descobrir e gerir agentes de CLI. Apresenta uma grelha 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**) com: - **Estado da instalação** — Instalado / Não encontrado, com deteção da versão - **Emblemas de protocolo** — stdio, HTTP, etc. - **Agentes personalizados** — Registe qualquer ferramenta de CLI através de um formulário (nome, binário, comando de versão, argumentos de execução) - **Correspondência de impressão digital da CLI** — Controlo por fornecedor para corresponder às assinaturas de pedidos da CLI nativa, reduzindo o risco de banimento enquanto preserva o IP do proxy - **Autenticação local do Devin** — A Devin CLI utiliza `devin auth login`; não é necessário qualquer fluxo OAuth no navegador --- ## 🔗 Transmissão de Contexto _(v3.5.5+)_ Uma estratégia combinada que preserva a continuidade da sessão quando ocorre uma rotação de contas a meio de uma conversa. Antes de a conta ativa ficar sem quota, o OmniRoute gera, em segundo plano, um resumo estruturado para a transferência. Depois de o pedido seguinte ser encaminhado para uma conta diferente, o resumo é injetado como uma mensagem de sistema, para que a nova conta prossiga com todo o contexto. Configurável através das definições globais ou ao nível da combinação: - **Limiar de Transferência** — Percentagem de utilização da quota que aciona a geração do resumo (predefinição: 85%) - **Máximo de Mensagens para o Resumo** — Quantidade de histórico recente a condensar - **Modelo de Resumo** — Modelo de substituição opcional para gerar o resumo de transferência Atualmente, suporta a rotação de contas Codex. Consulte a [documentação sobre Transmissão de Contexto](../architecture/ARCHITECTURE.md). --- ## 🗜️ Compressão de Prompts _(v3.7.9+)_ A secção Contexto e Cache disponibiliza agora páginas dedicadas ao Caveman, RTK e Combinações de Compressão: - **Caveman** — pacotes de regras sensíveis ao idioma, pré-visualização, controlos do modo de saída e análises - **RTK** — compressão sensível aos comandos para resultados de shell, git, testes, compilação, pacotes, Docker, infraestrutura, JSON e rastreios da pilha - **Combinações de Compressão** — pipelines com nome, como `rtk -> caveman`, atribuídos a combinações de encaminhamento; os cálculos empilhados predefinidos atingem uma média de `~89%` e uma redução de `78-95%` no contexto elegível quando ambos os motores são aplicados - **Recuperação de resultados brutos** — referências opcionais e expurgadas para resultados brutos do RTK, destinadas à depuração de falhas comprimidas Consulte o [Guia de Compressão](../compression/COMPRESSION_GUIDE.md), a [Compressão RTK](../compression/RTK_COMPRESSION.md) e os [Motores de Compressão](../compression/COMPRESSION_ENGINES.md). --- ## 🛡️ Reforço do Proxy _(v3.5.5+)_ Aplicação abrangente da configuração do proxy em todo o pipeline de pedidos: - **Verificação do Estado do Token** — A atualização OAuth em segundo plano passa a determinar a configuração do proxy para cada ligação, evitando falhas em ambientes que exigem um proxy - **Validação da Chave da API** — A validação da chave do fornecedor (`POST /api/providers/validate`) é encaminhada através de `runWithProxyContext`, respeitando as definições de proxy globais e ao nível do fornecedor - **Correção do Dispatcher do undici** — Os dispatchers de proxy utilizam a implementação de fetch do próprio undici em vez da implementação integrada do Node, resolvendo os erros `invalid onRequestStart method` no Node.js 22 - **Deteção da Versão do Node.js** — A página de início de sessão deteta proativamente versões incompatíveis do Node.js (24+) e apresenta uma faixa de aviso com instruções para utilizar o Node 22 LTS --- ## 📧 Ocultação de E-mails para Proteção da Privacidade _(v3.5.6+)_ Por predefinição, os e-mails das contas OAuth são ocultados (por exemplo, `di*****@g****.com`) para evitar a exposição acidental ao partilhar capturas de ecrã ou gravar demonstrações. Utilize Definições → Aspeto → Visibilidade do e-mail da conta para revelar ou ocultar globalmente os endereços de e-mail completos das contas nos ecrãs de fornecedores, combinações, registos, quotas e área de testes. --- ## 👁️ Controlo de Visibilidade dos Modelos _(v3.5.6+)_ A lista de modelos na página do fornecedor inclui agora: - **Barra de pesquisa/filtragem em tempo real** — Encontre rapidamente modelos específicos - **Controlo de visibilidade por modelo** (ícone 👁) — Os modelos ocultos aparecem a cinzento e são excluídos do catálogo `/v1/models` - **Indicador da contagem de ativos** (`N/M ativos`) — Mostra rapidamente quantos modelos estão ativados em relação ao total --- ## 🔧 Reparação do ambiente OAuth _(v3.6.1+)_ Ação "Reparar ambiente" com um clique para fornecedores OAuth, que restaura variáveis de ambiente em falta e corrige estados de autenticação inválidos. Acessível em `Painel → Fornecedores → [Fornecedor OAuth] → Reparar ambiente`. Deteta e repara automaticamente: - Credenciais de cliente OAuth em falta - Entradas corrompidas no ficheiro de ambiente - Sanitização do caminho de cópia de segurança --- ## 🗑️ Desinstalação / Desinstalação completa _(v3.6.2+)_ Scripts de remoção limpa para todos os métodos de instalação: | Comando | Ação | | ------------------------ | ------------------------------------------------------------------------------------------------- | | `npm run uninstall` | Remove a aplicação do sistema, mas **mantém a sua BD e configurações** em `~/.omniroute`. | | `npm run uninstall:full` | Remove a aplicação E **elimina permanentemente todas as configurações, chaves e bases de dados**. | --- ## 🖼️ Multimédia _(v2.0.3+)_ Gere imagens, vídeos e música a partir do painel. Suporta OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI, AnimateDiff, Stable Audio Open e MusicGen. --- ## 📝 Registos de pedidos Registo de pedidos em tempo real, com filtragem por fornecedor, modelo, conta e chave de API. Apresenta códigos de estado, utilização de tokens, latência e detalhes das respostas. ![Registos de utilização](../screenshots/08-usage.png) --- ## 🌐 Endpoint da API O seu endpoint de API unificado, com discriminação de capacidades: conclusões de conversação, Responses API, incorporações, geração de imagens, reordenação, transcrição de áudio, conversão de texto em voz, moderação e chaves de API registadas. Estão disponíveis o Cloudflare Quick Tunnel, o Tailscale Funnel, o ngrok Tunnel e suporte de proxy na nuvem para acesso remoto. ![Painel do endpoint](../screenshots/09-endpoint.png) --- ## 🔑 Gestão de chaves de API Crie, defina o âmbito e revogue chaves de API. Cada chave pode ser restringida a modelos/fornecedores específicos, com acesso total ou permissões apenas de leitura. Gestão visual de chaves com monitorização da utilização. --- ## 📋 Registo de auditoria Monitorização de ações administrativas, com filtragem por tipo de ação, interveniente, alvo, endereço IP e data/hora. Histórico completo de eventos de segurança. --- ## 🖥️ Aplicação de ambiente de trabalho Aplicação nativa de ambiente de trabalho Electron para Windows, macOS e Linux. Execute o OmniRoute como uma aplicação autónoma, com integração na área de notificação, suporte offline, atualização automática e instalação com um clique. Funcionalidades principais: - Sondagem do estado de prontidão do servidor (sem ecrã em branco no arranque a frio) - Área de notificação com gestão de portas - Política de Segurança de Conteúdos - Bloqueio de instância única - Atualização automática ao reiniciar - IU condicionada pela plataforma (semáforos do macOS, barra de título predefinida do Windows/Linux) - Empacotamento reforçado da compilação Electron — os `node_modules` ligados simbolicamente no pacote autónomo são detetados e rejeitados antes do empacotamento, impedindo a dependência, em tempo de execução, da máquina de compilação (v2.5.5+) - **Encerramento controlado** — o evento `before-quit` do Electron encerra o Next.js corretamente, evitando bloqueios da base de dados WAL do SQLite (v3.6.2+) 📖 Consulte [`electron/README.md`](../../electron/README.md) para obter a documentação completa. --- ## 🌐 Ponte WebSocket V1 _(v3.6.6+)_ O OmniRoute suporta agora **clientes WebSocket compatíveis com OpenAI** através do endpoint de atualização `/v1/ws`. O servidor personalizado `scripts/dev/v1-ws-bridge.mjs` envolve o Next.js e atualiza as ligações WS para sessões completas de transmissão bidirecional. A autenticação utiliza a mesma chave de API ou cookie de sessão que os pedidos HTTP. Comportamentos principais: - Atualização WS validada por `src/lib/ws/handshake.ts` antes de a ligação ser estabelecida - Transmissões terminadas corretamente quando a sessão é encerrada ou ocorre um erro no serviço a montante - Funciona simultaneamente com o fluxo de transmissão HTTP+SSE existente --- ## 🔑 Tokens de Sincronização e Pacote de Configuração _(v3.6.6+)_ O acesso a partir de vários dispositivos e por operadores externos é agora possível através de **tokens de sincronização com âmbito definido**: - **`POST /api/sync/tokens`** — Emite um novo token de sincronização (com âmbito definido e validade opcional) - **`DELETE /api/sync/tokens/:id`** — Revoga um token - **`GET /api/sync/bundle`** — Transfere um instantâneo JSON versionado da configuração, identificado por ETag (autenticado apenas com um token de sincronização). As definições de autenticação, como a palavra-passe do painel, são removidas, mas as credenciais dos fornecedores e as chaves de API são incluídas, pelo que o ficheiro deve ser tratado como confidencial O pacote de configuração é criado por `src/lib/sync/bundle.ts`. Os consumidores comparam o cabeçalho de resposta `ETag` para detetar alterações sem voltar a transferir a carga útil completa. Na CLI, `omniroute sync bundle --token ` (ou `OMNIROUTE_SYNC_TOKEN`) guarda-o num ficheiro acessível apenas pelo proprietário. --- ## 🧠 Predefinição de Raciocínio GLM _(v3.6.6+)_ O **GLM Thinking (`glmt`)** está agora registado como fornecedor de primeira classe: máximo de 65 536 tokens de saída, orçamento de raciocínio de 24 576, tempo limite predefinido de 900 s, formato de API compatível com Claude e sincronização de utilização partilhada com a família GLM. A **contagem híbrida de tokens** também chega na v3.6.6: quando um fornecedor compatível com Claude disponibiliza `/messages/count_tokens`, o OmniRoute chama-o antes de pedidos de grande dimensão, com recurso harmonioso a uma estimativa em caso de falha. --- ## 🛡️ Obtenção Externa Segura e Proteção contra SSRF _(v3.6.6+)_ Todas as chamadas de validação de fornecedores e descoberta de modelos passam agora por uma proteção externa de duas camadas: 1. **Proteção de URL** (`src/shared/network/outboundUrlGuard.ts`) — Verifica primeiro o nome de anfitrião ou o literal de IP do destino tal como foi escrito; no modo exclusivamente público, o wrapper de obtenção segura também resolve o nome e recusa endereços privados. Por predefinição, bloqueia endpoints de metadados da cloud — todo o intervalo 169.254.0.0/16, além dos nomes de anfitrião de metadados conhecidos; `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false` também bloqueia anfitriões privados e de loopback; `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` (ou a variável legada `OUTBOUND_SSRF_GUARD_ENABLED=false`) desativa as verificações. Um valor guardado através do seletor de uma opção no painel tem precedência sobre a respetiva variável, e os fornecedores locais integrados ignoram a proteção durante a validação da chave. Consulte `docs/reference/ENVIRONMENT.md`. 2. **Wrapper de obtenção segura** (`src/shared/network/safeOutboundFetch.ts`) — Aplica a proteção de URL, normaliza os tempos limite e repete tentativas após erros transitórios, utilizando recuo exponencial. As violações da proteção são apresentadas como `URL_GUARD_BLOCKED` — HTTP 503 através de `getSafeOutboundFetchErrorStatus` (400 na rota de descoberta de modelos) — e os bloqueios de SSRF genuínos durante a validação são registados no registo de auditoria como eventos `provider.validation.ssrf_blocked`. --- ## 🔄 Repetições com Reconhecimento do Período de Espera _(v3.6.6+)_ Os pedidos de conversação são agora **automaticamente repetidos** quando um fornecedor a montante devolve um período de espera específico do modelo. Configurável através de `REQUEST_RETRY` (predefinição: 2) e `MAX_RETRY_INTERVAL_SEC` (predefinição: 30 s). A aprendizagem dos cabeçalhos de limite de taxa foi melhorada para `x-ratelimit-reset-requests`, `x-ratelimit-reset-tokens` e `Retry-After` — o estado do período de espera por modelo é visível no painel de Resiliência. --- ## 📋 Auditoria de Conformidade v2 _(v3.6.6+)_ O registo de auditoria foi expandido com paginação baseada em cursor, enriquecimento do contexto do pedido (ID do pedido, agente do utilizador, IP), eventos de autenticação estruturados, eventos CRUD de fornecedores com contexto das diferenças e registo de validações bloqueadas por SSRF. Novos eventos emitidos por `src/lib/compliance/providerAudit.ts`.