Files
OmniRoute/docs/i18n/pt/docs/reference/ENVIRONMENT.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

642 KiB
Raw Blame History

Environment Variables Reference (Português (Portugal))

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Referência completa de todas as variáveis de ambiente reconhecidas pelo OmniRoute. Para obter um modelo de início rápido, consulte .env.example.

Important

Todas as variáveis documentadas aqui também têm de constar em .env.example, e todas as variáveis em .env.example têm de constar aqui. npm run check:env-doc-sync valida esta correspondência em cada commit e na CI. Para omitir intencionalmente uma variável, adicione-a à lista de permissões em scripts/check/check-env-doc-sync.mjs.


Índice


1. Segredos obrigatórios

Estes têm de ser definidos antes da primeira execução. Sem eles, a aplicação recusará iniciar ou funcionará com predefinições inseguras.

Variável Obrigatória Predefinição Ficheiro de origem Descrição
JWT_SECRET Sim (nenhuma) src/lib/auth Assina/verifica todos os cookies de sessão do painel de controlo (JWT). Gere com openssl rand -base64 48.
API_KEY_SECRET Sim (nenhuma) src/lib/db/apiKeys.ts Chave de encriptação AES para os valores das chaves de API armazenados no SQLite. Gere com openssl rand -hex 32.
INITIAL_PASSWORD Sim CHANGEME Script de inicialização Define a palavra-passe inicial de administrador do painel de controlo (corresponde à predefinição de .env.example — mantida obviamente insegura para forçar uma alteração). Altere antes da primeira utilização. Após iniciar sessão, altere-a através de Painel de controlo → Definições → Segurança.
OMNIROUTE_WS_BRIDGE_SECRET Sim (produção) (não definida) src/app/api/internal/codex-responses-ws/route.ts Segredo partilhado para a ponte WebSocket interna do Codex Responses. Autentica os pedidos da ponte entre o relay WS do Electron/browser e o OmniRoute. ⚠️ OBRIGATÓRIO em produção — quando não está definido, todos os pedidos da ponte WS são rejeitados. Gere com openssl rand -base64 32.
OMNIROUTE_SW_BUILD_ID Não (SHA do git) next.config.mjs, scripts/build/assembleStandalone.mjs ID explícito de invalidação da cache do service worker para a shell da PWA (#11779); primeiro na cadeia de resolução.
SOURCE_VERSION Não (não definida) next.config.mjs, scripts/build/assembleStandalone.mjs Segundo na cadeia — definido pelos sistemas de compilação PaaS (por exemplo, ao estilo do Heroku) como o commit implementado.
NEXT_PUBLIC_SW_BUILD_ID Não (derivada) src/shared/components/PwaRegister.tsx Valor público em tempo de compilação que o cliente utiliza para registar /sw.js?v=…; derivado dos dois valores acima e, em seguida, do SHA do git.
OMNIROUTE_PEER_STAMP_TOKEN Não (automática) (automática por arranque) src/server/authz/policies/management.ts Segredo por processo que comprova que a marca de IP do peer fidedigno veio do próprio servidor HTTP do OmniRoute (scripts/dev/peer-stamp.mjs). O middleware authz só confia na localidade do pedido (controlo por loopback/LAN das rotas LOCAL_ONLY) quando a marca inclui este token. Gerado automaticamente em cada arranque — deixe-o por definir; defina-o apenas para configurações multiprocesso que tenham de partilhar a marca.

Comandos de geração

# Gerar os quatro segredos de uma só vez:
echo "JWT_SECRET=$(openssl rand -base64 48)"
echo "API_KEY_SECRET=$(openssl rand -hex 32)"
echo "INITIAL_PASSWORD=$(openssl rand -base64 16)"
echo "OMNIROUTE_WS_BRIDGE_SECRET=$(openssl rand -base64 32)"

Caution

Nunca submeta ficheiros .env com segredos reais para o controlo de versões. O .gitignore já exclui .env, mas confirme antes de enviar.


2. Armazenamento e Base de Dados

O OmniRoute utiliza SQLite (através de better-sqlite3) para toda a persistência. Estas variáveis controlam a localização, a encriptação e o ciclo de vida dos dados.

Variável Predefinição Ficheiro de Origem Descrição
DATA_DIR ~/.omniroute/ src/lib/db/core.ts Diretório raiz da base de dados SQLite, das cópias de segurança e dos ficheiros de dados. Substitua-o para volumes Docker ou caminhos personalizados.
OMNIROUTE_ALLOW_DEFAULT_DATA_DIR (não definida) src/lib/dataPaths.ts Mecanismo de exceção para a proteção de DATA_DIR em testes/avaliações (#10428). Os testes e as sondas de avaliação/impressão do Node (-e/--eval/-p/--print, incluindo as formas --eval=/--print=) sem DATA_DIR são redirecionados para um diretório temporário descartável, para que não possam abrir a base de dados real do operador; defina como 1 para voltar a utilizar o diretório real.
OMNIROUTE_BUILD_SHA (não definida) src/lib/monitoring/buildSha.ts SHA do Git do artefacto em execução. Registado por npm run build:release; pode ser injetado em contentores distribuídos sem o sentinela dist/BUILD_SHA. Exposto como system.buildSha em /api/monitoring/health.
OMNIROUTE_RELEASE_REF origin/main scripts/build/buildProvenance.ts Referência relativamente à qual o mecanismo de proveniência do empacotamento do artefacto verifica o SHA da compilação (#10427).
OMNIROUTE_ALLOW_CANARY_BUILD (não definida) scripts/build/buildProvenance.ts Defina como 1 para permitir o empacotamento de uma compilação cujo SHA não se encontra na linha de lançamento, registando-a como uma versão canário deliberada em vez de fazer falhar a validação (#10427).
OMNIROUTE_SMOKE_API_KEY (não definida) scripts/ops/deploy-canary.mjs Chave de API para a sonda de teste rápido da implementação canário, enviada como Authorization: Bearer para /v1/chat/completions. Utilizada apenas pelo script de implementação (#10429), nunca pelo servidor. Não está relacionada com as variáveis OMNIROUTE_SMOKE_* da infraestrutura opcional de testes rápidos da CLI (RUN_CLI_SMOKE=1, OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS em tests/integration/upstream-cli-smoke.int.test.ts) — consulte Integrações da CLI → Verificação rápida real.
OMNIROUTE_BUILDING (não definida) src/lib/buildPhase.ts Sinal da fase de compilação (#10060): definido como 1 por scripts/build/build-next-isolated.mjs e herdado por todos os processos de trabalho de compilação iniciados, para que a camada da base de dados devolva uma implementação simulada sem operações em vez de carregar o complemento nativo better-sqlite3 (que termina abruptamente o processo de trabalho ao sair). Nunca é definido para o servidor em execução.
OMNIROUTE_SKIP_NATIVE_DEP_CHECK 0 scripts/check/check-native-deps.mjs Defina como 1 para ignorar a verificação prévia opcional de dependências nativas em árvores de dependências fornecidas externamente menos comuns. Isto não permite compilar quando falta uma dependência; utilize apenas quando as dependências nativas são fornecidas por um mecanismo externo.
OMNIROUTE_DATA_DIR (não definida) open-sse/executors/promptql/threadSticky.ts Alias de recurso para DATA_DIR, verificado apenas quando DATA_DIR não está definida. Utilizado para localizar a cache de sessões persistentes por thread do executor PromptQL no disco (<dir>/promptql-thread-sessions.json); se nenhuma das variáveis estiver definida, a cache permanece apenas em memória (não é persistida entre reinícios).
OMNIROUTE_PLUGINS_DIR (não definida) src/lib/plugins/scanner.ts Diretório que o analisador de plugins em tempo de execução lê — e raiz na qual o gestor de plugins efetua as instalações — substituindo a predefinição derivada do diretório pessoal (#11827). Aponte-o para a árvore de plugins montada através de bind mount no Docker/K8s, em vez de mover HOME apenas para relocalizar o caminho de análise (HOME também rege todos os outros comportamentos relativos ao diretório pessoal). Não definida = ~/.omniroute/plugins, ou /tmp/.omniroute/plugins quando o processo não exporta qualquer diretório pessoal — evitando assim a não deteção silenciosa que esta variável elimina. O diretório resolvido é registado uma vez no arranque como scanner.dir_resolved, juntamente com a entrada selecionada. Apenas no lado do servidor: os plugins de comandos da CLI mantêm o seu próprio OMNIROUTE_PLUGIN_PATH (secção 9).
STORAGE_ENCRYPTION_KEY (vazio = desativado) src/lib/db/encryption.ts Chave AES para a encriptação integral da base de dados SQLite em repouso. Gere-a com openssl rand -hex 32.
STORAGE_ENCRYPTION_KEY_VERSION v1 scripts/build/bootstrap-env.mjs, electron/main.js Etiqueta de versão da chave de encriptação. Incremente-a ao efetuar a rotação da chave para permitir a desencriptação de cópias de segurança antigas.
DISABLE_SQLITE_AUTO_BACKUP false src/lib/db/backup.ts Quando definido como true, ignora as cópias de segurança de rotina/anteriores à escrita do ficheiro SQLite (guardar/limpar preços de models.dev, escritas nas definições). As cópias de segurança manuais e anteriores ao restauro continuam a ser executadas. Não desativa o instantâneo de segurança durável obrigatório do executor de migrações nem a proteção contra migrações em massa para uma BD persistente existente. As cópias de segurança não manuais são limitadas a, no máximo, uma a cada 60 minutos. Em Definições → Armazenamento no painel, a cópia de segurança automática de rotina pode ser desativada de forma independente.
OMNIROUTE_CRYPT_KEY (não definido) src/lib/db/encryption.ts Alias legado de STORAGE_ENCRYPTION_KEY. Aceite como alternativa quando a variável principal não está presente.
OMNIROUTE_API_KEY_BASE64 (não definido) src/lib/db/encryption.ts Alias legado (formato codificado em Base64) aceite como alternativa. É descodificado automaticamente antes da utilização.
OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS (não definido) src/lib/db/core.ts Substitui o intervalo da verificação periódica do estado do SQLite (ms). Quando não está definido, os valores predefinidos são derivados de NODE_ENV.
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS 21600000 (6 h) src/lib/db/walMaintenance.ts Substitui o intervalo periódico de wal_checkpoint(TRUNCATE) (ms). O checkpoint automático nunca reduz o próprio ficheiro WAL, e um servidor de execução prolongada nunca fecha a respetiva BD. 0 desativa esta funcionalidade.
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS 300000 (5 min) src/lib/db/walMaintenance.ts Substitui o intervalo frequente de wal_checkpoint(PASSIVE) (ms). Mantém reduzido o número de tramas WAL pendentes, para que o TRUNCATE periódico nunca copie no thread principal um volume acumulado de vários GB. 0 desativa esta funcionalidade.
OMNIROUTE_WAL_GUARD_MAX_MB 256 src/lib/db/walMaintenance.ts Quando uma execução PASSIVE deteta que o ficheiro WAL excede este tamanho, muda imediatamente para wal_checkpoint(TRUNCATE), em vez de aguardar pela execução de baixa frequência.
OMNIROUTE_PRESSURE_SELF_RESTART false open-sse/utils/resourcePressure.ts Defina como 1/true/yes/on para terminar o processo após se manter uma pressão crítica sobre os recursos durante OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS, permitindo que um supervisor (systemd Restart=always, política de reinício do Docker) reponha um processo limpo, em vez de devolver respostas 503 indefinidamente.
OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS 120000 (2 min) open-sse/utils/resourcePressure.ts Período durante o qual a pressão crítica deve persistir antes de ser acionada a saída para reinício automático.
OMNIROUTE_SQLJS_WASM_PATH (deteção automática) src/lib/db/adapters/sqljsAdapter.ts Caminho explícito (absoluto ou relativo ao cwd) para sql-wasm.wasm ao utilizar o adaptador alternativo WASM sql.js. Quando não está definido, é detetado automaticamente através das dependências do pacote e das disposições candidatas.
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS 21600000 (6 h) src/lib/db/core.ts Substitui o intervalo periódico de wal_checkpoint(TRUNCATE) (ms). O checkpoint automático nunca reduz o próprio ficheiro WAL, e um servidor de execução prolongada nunca fecha a respetiva BD. 0 desativa esta funcionalidade.
OMNIROUTE_BATCH_RETENTION_DAYS 30 src/lib/db/cleanup.ts Número de dias durante os quais os checkpoints, os ficheiros de entrada/saída/erro referenciados e a linha de uma tarefa terminal (concluída/com falha/cancelada/expirada) da Batch API são conservados pela limpeza automática antes da eliminação. Só produz efeitos depois de BATCH_AND_FILE_AUTO_CLEANUP_ENABLED ser ativado; corresponde ao período de retenção dos resultados da Batch API da própria OpenAI. Não afeta a rota DELETE /api/v1/batches/delete-completed acionada pelo operador, que, por conceção, permanece incondicional (sem filtro de antiguidade).
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED false src/lib/db/cleanup.ts Quando definido como true, permite que a limpeza automática elimine tarefas terminais da Batch API (e os respetivos pontos de controlo) que tenham ultrapassado OMNIROUTE_BATCH_RETENTION_DAYS e limpe o conteúdo BLOB dos ficheiros carregados que tenham ultrapassado o respetivo expires_at. Desativado por predefinição: todas as instalações existentes mantêm estes dados exatamente como antes até que um operador opte pela ativação. É também um sinalizador de funcionalidade editável no painel — consulte docs/reference/FEATURE_FLAGS.md → Runtime.
OMNIROUTE_SKIP_DB_HEALTHCHECK 0 src/lib/db/core.ts, src/lib/db/healthCheck.ts Defina como 1 para ignorar por completo a verificação do estado da BD durante o arranque. Útil para tarefas de curta duração e testes de integração.
OMNIROUTE_FORCE_DB_HEALTHCHECK 0 src/lib/db/core.ts Defina como 1 para forçar a ativação do ciclo de verificação do estado da BD, mesmo quando seria normalmente ignorado (por exemplo, em tarefas de curta duração).
OMNIROUTE_SKIP_POSTINSTALL 0 scripts/postinstall.mjs Defina como 1 para ignorar o aquecimento do runtime nativo durante npm install. Útil em instalações de CI/sem interface, nas quais o sqlite já está compilado.
OMNIROUTE_MIGRATIONS_DIR (deteção automática) src/lib/db/migrationRunner.ts Substitui o diretório analisado pelo executor de migrações. Útil ao distribuir migrações incluídas em compilações personalizadas.
OMNIROUTE_EXTRA_MIGRATIONS_DIRS (não definido) src/lib/db/migrationRunner/extraDirs.ts Diretórios de migração adicionais, sob a forma de entradas namespace=dir separadas pelo delimitador de caminhos da plataforma (por exemplo, ee=/opt/app/enterprise/db/migrations). Os ficheiros aí encontrados são registados como <namespace>-<number>, para que uma distribuição que inclua as suas próprias migrações nunca colida com os intervalos numéricos do projeto de origem. Uma entrada malformada, um espaço de nomes inválido ou um diretório inexistente provoca um erro durante o arranque, em vez de ignorar silenciosamente o esquema.
OMNIROUTE_MAX_PENDING_MIGRATIONS 50 src/lib/db/migrationRunner.ts Limite de segurança para um número elevado de migrações pendentes (#3416). O arranque é interrompido se existirem mais migrações pendentes do que este valor numa BD existente (protege contra uma tabela de controlo apagada). Aumente-o para restaurar uma cópia de segurança mais antiga; defina como 0 para desativar a verificação.
OMNIROUTE_INSTALL_UPGRADE_WORKDIR (<repo>/.install-upgrade) scripts/check/check-install-upgrade.mjs Diretório de trabalho para a barreira de lançamento check:install-upgrade. Requer aproximadamente 12 GB (duas árvores de instalação de ~3 GB mais o ficheiro tar), pelo que não deve ser executada num tmpfs pequeno — no executor autoalojado, /tmp é um tmpfs de 12 GB suportado por RAM e a barreira esgotou-o, truncando o pacote.
OMNIROUTE_SPEND_FLUSH_INTERVAL_MS (predefinição no código) src/lib/spend/batchWriter.ts Intervalo de descarga (ms) para o gravador de despesas/custos em lote. Valores mais baixos reduzem a agregação de escritas; valores mais altos reduzem a contenção na BD.
OMNIROUTE_SPEND_MAX_BUFFER_SIZE (predefinição no código) src/lib/spend/batchWriter.ts Número máximo de entradas de despesas em memória intermédia antes de uma descarga forçada. Aumente-o em implementações com QPS elevado; reduza-o quando limitar a utilização de memória for mais importante.
OMNIROUTE_PROXY_FETCH_DEBUG (não definido) open-sse/utils/proxyFetch.ts Defina como "true" para emitir registos de depuração [ProxyFetch] no caminho de reencaminhamento da Vercel. Desativado por predefinição para evitar a exposição de informações de encaminhamento.
PROXY_LOG_INCLUDE_IPS false src/lib/proxyLogger.ts Defina como "true" ou "1" para incluir os IPs do cliente/de saída e o prefixo da conta na linha detalhada [ProxyEgress] do registo do processo. Mantém-se DESATIVADO por predefinição para que o registo do processo não exponha IPs nem o prefixo da conta.
OMNIROUTE_DEBUG (não definido) bin/cli/commands/quota.mjs Defina como 1 para imprimir no stderr diagnósticos de temporização por pedido ([omniroute] GET <path> completed in Nms) a partir dos comandos de quota da CLI.
OMNIROUTE_HEALTHCHECK_PATH (automático) scripts/dev/healthcheck.mjs Caminho explícito sondado pela verificação do estado de funcionamento do contentor. Quando não está definido, a sonda deriva-o de OMNIROUTE_BASE_PATH; defini-lo volta a ativar o endpoint de monitorização aprofundada.
OMNIROUTE_DEBUG_COMPLETION (não definido) bin/cli/commands/completion.mjs Defina como qualquer valor não vazio para emitir diagnósticos [omniroute completion] a partir dos caminhos da cache de conclusão da shell da CLI (leitura/atualização/escrita). Desativado por predefinição — essas caches falham silenciosamente para que uma cache em falta/danificada nunca impeça a conclusão com a tecla Tab.
BATCH_RETRY_DURATION_MS 86400000 (24 h) open-sse/services/batchProcessor.ts Período máximo de novas tentativas para itens individuais do lote (ms). Os itens que excedam esta duração são marcados como falhados.
BATCH_BACKOFF_BASE_MS 5000 open-sse/services/batchProcessor.ts Atraso base (ms) para o recuo exponencial nas novas tentativas de itens do lote.
BATCH_BACKOFF_MAX_MS 3600000 (1 h) open-sse/services/batchProcessor.ts Limite máximo (ms) para o recuo exponencial entre novas tentativas de itens do lote.
BATCH_MAX_CONCURRENT 1 open-sse/services/batchProcessor.ts Número máximo de lotes processados em simultâneo. Aumente-o para melhorar o débito; mantenha-o baixo para evitar picos de pedidos que excedam os limites de taxa.

Important

Antes de alterar uma base de dados persistente existente, o executor de migrações publica um instantâneo completo, endereçado pelo conteúdo, em DATA_DIR/db_backups/. A publicação requer um sistema de ficheiros que suporte ligações físicas sem substituição no mesmo sistema de ficheiros, bem como sincronização durável de ficheiros. Os sistemas POSIX também requerem a sincronização de diretórios; no Windows, o Node pode rejeitar identificadores de diretório, pelo que o OmniRoute descarrega os dados do ficheiro publicado e trata a sincronização da entrada de diretório como uma operação de melhor esforço. Se o DATA_DIR montado não puder fornecer essas garantias, o arranque falha de forma segura antes de aplicar uma migração. Mova DATA_DIR para um volume que suporte essas primitivas; não utilize DISABLE_SQLITE_AUTO_BACKUP para contornar a segurança da migração.

Cenários

Cenário Configuração
Desenvolvimento local Mantenha todos os valores predefinidos. A BD encontra-se em ~/.omniroute/omniroute.db.
Docker DATA_DIR=/data + monte um volume em /data.
Encriptação em repouso Defina STORAGE_ENCRYPTION_KEY + mantenha cópias de segurança da chave! Perdê-la = perder dados.
CI/Testes DATA_DIR=/tmp/omniroute-test — efémero, sem necessidade de encriptação.

3. Rede e Portas

Variável Predefinição Ficheiro de Origem Descrição
PORT 20128 src/lib/runtime/ports.ts Porta principal para a IU do Painel e os endpoints da API (modo de porta única).
OMNIROUTE_BASE_PATH (vazio = raiz) next.config.mjs, scripts/docker/ensure-docker-base-path.mjs Subcaminho do URL para disponibilizar o OmniRoute através de um proxy inverso (define o basePath do Next.js; os redirecionamentos de autenticação têm em conta o basePath). Por exemplo, /omniroute. No Docker, o valor é incorporado durante o docker build (ARG OMNIROUTE_BASE_PATH); as imagens pré-compiladas para a raiz podem aplicar um valor diferente em tempo de execução, uma única vez no arranque do contentor, antes de o Next.js iniciar. Defina NEXT_PUBLIC_BASE_URL como a origem pública, incluindo o mesmo subcaminho.
NEXT_PUBLIC_OMNIROUTE_BASE_PATH (vazio = raiz) src/shared/hooks/useDisplayBaseUrl.ts Cópia de OMNIROUTE_BASE_PATH visível no navegador, incorporada durante a compilação para que a apresentação do endpoint no painel mostre https://host/omniroute/v1 em vez de https://host/v1. Quando não está definida, recorre a OMNIROUTE_BASE_PATH. Volte a compilar após a alteração (o basePath do Next é definido durante a compilação).
DASHBOARD_ALLOW_EMBED (não definida = nunca enquadrável) next.config.mjs, scripts/build/dashboardEmbed.mjs Ativa explicitamente a incorporação das páginas HTML num iframe. Quando não está definida, todas as rotas incluem frame-ancestors 'none' + X-Frame-Options: DENY. Defina como vscode para disponibilizar as páginas (painel, início de sessão, documentação e página inicial) com frame-ancestors 'self' vscode-webview: e sem X-Frame-Options, permitindo que o Simple Browser do VS Code as apresente (modo dashboardOpen: "editor" do OmniCopilot). A superfície da API (/api, /v1, /v1beta, /a2a, /healthz, aliases ao nível da raiz) mantém os cabeçalhos restritivos em ambos os casos. Apenas vscode é reconhecido — 1/true não ativa esta opção. Em tempo de compilação: volte a compilar após a alteração (docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode para imagens; defini-la numa instalação pré-compilada não produz qualquer efeito).
API_PORT (não definida) src/lib/runtime/ports.ts Quando definida, disponibiliza a API de proxy /v1/* nesta porta separada.
API_HOST 0.0.0.0 src/lib/runtime/ports.ts Endereço de escuta da porta da API.
DASHBOARD_PORT (não definida) src/lib/runtime/ports.ts Quando definida, disponibiliza a IU do Painel nesta porta separada.
OMNI_MAX_CONCURRENT_CONNECTIONS 0 (desativado) src/sse/utils/backpressure.ts Limita as ligações de chat simultâneas em curso; os pedidos que excedam o limite recebem 503 com Retry-After. Um número inteiro positivo ativa a proteção; um valor não definido ou 0 desativa-a.
OMNIROUTE_INSTANCE_ID (não definida) src/shared/resilience/peerRouting.ts ID estável e exclusivo deste gateway ao encadear instâncias do OmniRoute. Ativa verificações de ciclos de encaminhamento entre pares nos pedidos recebidos. Caracteres permitidos: letras, algarismos, ., _, : e -; máximo de 64 caracteres.
OMNIROUTE_PEER_URLS (não definido) src/shared/resilience/peerRouting.ts, open-sse/executors/base.ts URLs base do OmniRoute, separadas por vírgulas, que podem receber X-OmniRoute-Peer-Trace. Apenas os URLs upstream explicitamente incluídos na lista de permissões recebem metadados de pares; todos os outros fornecedores permanecem inalterados.
OMNIROUTE_PEER_MAX_HOPS 4 src/shared/resilience/peerRouting.ts Número máximo de instâncias do OmniRoute anteriormente visitadas aceite num pedido encadeado (1-32). Instâncias repetidas ou um limite esgotado devolvem HTTP 508 Loop Detected.
PROD_DASHBOARD_PORT 20130 docker-compose.prod.yml Porta publicada no anfitrião para o Painel no modo de produção do Docker.
PROD_API_PORT 20131 docker-compose.prod.yml Porta publicada no anfitrião para a API no modo de produção do Docker.
OMNIROUTE_PORT (não definido) src/lib/runtime/ports.ts Tem precedência sobre PORT quando é executado no Electron ou noutros wrappers.
LIVE_WS_PORT 20129 src/server/ws/liveServer.ts Porta do servidor WebSocket de monitorização em tempo real.
LIVE_WS_HOST 127.0.0.1 src/server/ws/liveServer.ts Endereço de escuta do servidor WebSocket em tempo real. Defina como 0.0.0.0 para o expor na LAN (configure também LIVE_WS_ALLOWED_ORIGINS).
LIVE_WS_ALLOWED_ORIGINS (não definido) src/server/ws/liveServer.ts Origens adicionais, separadas por vírgulas, autorizadas a abrir uma ligação WebSocket em tempo real. As origens de loopback do painel já são permitidas por predefinição.
LIVE_WS_ALLOWED_HOSTS (não definido) src/server/ws/liveServerAllowList.ts Nomes de anfitrião adicionais, separados por vírgulas, permitidos para origens WebSocket em tempo real. Ao contrário de LIVE_WS_ALLOWED_ORIGINS (URLs de origem completos), corresponde apenas à parte do anfitrião — útil para configurações de LAN/Tailscale.
NEXT_PUBLIC_LIVE_WS_PUBLIC_URL (não definido) src/hooks/useLiveDashboard.ts URL público do WebSocket do painel em tempo real (no lado do browser). Defina-o quando colocar o servidor WS atrás de um proxy inverso ou de um Cloudflare Tunnel (por exemplo, wss://ws.my-ai.com/live-ws); o browser estabelece aí a ligação, em vez de usar ws://hostname:20132. A parte do caminho também é utilizada como caminho de atualização do WebSocket (predefinição: /live-ws).
OMNIROUTE_ENABLE_LIVE_WS true src/server/ws/liveServer.ts e scripts/start-ws-server.mjs Defina como 0 ou false para desativar o servidor WebSocket em tempo real (ativado por predefinição e associado ao loopback). Opção de CI/harness que desativa o script auxiliar autónomo do WebSocket em tempo real.
RELAY_IP_PER_MINUTE 30 src/app/api/v1/relay/chat/completions/route.ts Limite de taxa de retransmissão por (token, IP), em pedidos/minuto. Em memória, por instância. 0 ou um valor negativo desativa o controlo da dimensão de IP (o limite da base de dados por token continua a aplicar-se).
NODE_ENV production Núcleo do Next.js Controla o nível de detalhe dos registos, a colocação em cache, a exposição de detalhes de erros e as otimizações do Next.js.
OMNIROUTE_USE_TURBOPACK 1 (Turbopack — predefinição no código) package.json / Next.js 16 O Turbopack é o bundler predefinido para npm run dev e npm run build (compilações 23× mais rápidas, segundo testes de desempenho). Defina como 0 para voltar ao webpack no Windows, em caso de incompatibilidades com bindings nativos/com o bundler, ou em máquinas com RAM limitada — sabe-se que as compilações de produção do Turbopack nesta linha de versões do Next.js (16.2.x) atingem picos de utilização de memória muito superiores aos do webpack em grafos de módulos de grandes dimensões (a correção de libertação de memória do Turbopack no Next 16.3 ainda não é estável); a alternativa com webpack atinge picos muito inferiores. Consulte #6409.
OMNIROUTE_SKIP_DB_HEALTHCHECK (não definida) src/lib/db/core.ts / src/lib/db/healthCheck.ts Defina como 1 para ignorar a verificação de integridade do SQLite no arranque. Útil para um arranque mais rápido com bases de dados de grandes dimensões.
NOTIFY_SOCKET (não definida) systemd (protocolo sd_notify) Definida pelo systemd quando o processo é executado numa unidade de serviço com integração sd_notify; o OmniRoute lê-a (consulte OMNIROUTE_DISABLE_SD_NOTIFY) para enviar notificações READY/WATCHDOG. Nunca deve ser definida pelo utilizador.
OMNIROUTE_DISABLE_SD_NOTIFY (não definida) scripts/dev/systemd-notify.mjs Defina como 1 para desativar o sd_notify do systemd (Type=notify / WatchdogSec=), mesmo durante a execução numa unidade do systemd. Fora do systemd, o notificador não efetua qualquer operação, independentemente desta definição.
CREDENTIAL_HEALTH_CHECK_INTERVAL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/scheduler.ts Intervalo (ms) do agendador de verificação do estado das credenciais em segundo plano. Mínimo: 10000 (10 s).
CREDENTIAL_HEALTH_CACHE_TTL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/cache.ts TTL (ms) do estado de funcionamento das credenciais em cache.
OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK false src/lib/credentialHealth/scheduler.ts Defina como 1 ou true para desativar os testes periódicos em segundo plano das ligações aos fornecedores. Os fornecedores de pesquisa (SEARCH_VALIDATOR_CONFIGS em src/lib/providers/validation/searchProviders.ts, por exemplo, tavily-search) são sempre excluídos da verificação — a sua «validação» é uma consulta real faturada pelo fornecedor, pelo que nunca são sujeitos a verificações periódicas do estado (#9970).
HOST 0.0.0.0 scripts/dev/run-next.mjs Endereço de associação para o servidor de desenvolvimento/inicialização do Next.js. Substitui o valor predefinido 0.0.0.0 quando definido.
HOSTNAME 127.0.0.1 scripts/dev/run-next-playwright.mjs Endereço de associação utilizado pelo executor do Playwright ao iniciar o Next.js. A predefinição é 127.0.0.1 para testes herméticos. Não utilize com omniroute serve — utilize antes OMNIROUTE_SERVER_HOST (as shells POSIX definem automaticamente HOSTNAME como o nome da máquina; .env não o pode substituir).
OMNIROUTE_SERVER_HOST 0.0.0.0 bin/cli/commands/serve.mjs Endereço de associação para omniroute serve. Evita conflitos com a variável HOSTNAME da shell POSIX (sempre definida pelo bash/zsh como o nome da máquina). Quando não está definida, utiliza 0.0.0.0. (#6194)

Modos de Porta

┌─────────────────────────── Porta única (predefinição) ─────────────────────┐
│  PORT=20128                                                                 │
│  → Painel: http://localhost:20128                                           │
│  → API:    http://localhost:20128/v1/chat/completions                       │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────── Portas separadas ────────────────────────────────┐
│  DASHBOARD_PORT=20128                                                       │
│  API_PORT=20129                                                             │
│  API_HOST=0.0.0.0                                                           │
│  → Painel: http://localhost:20128                                           │
│  → API:    http://0.0.0.0:20129/v1/chat/completions                        │
│  Caso de utilização: expor a API à LAN, restringindo o Painel ao localhost. │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────── Docker em produção ─────────────────────────────┐
│  PROD_DASHBOARD_PORT=443   PROD_API_PORT=8443                              │
│  → Mapeia as portas do contentor para as portas do anfitrião em             │
│    docker-compose.prod.yml.                                                 │
└─────────────────────────────────────────────────────────────────────────────┘

4. Segurança e Autenticação

Variável Predefinição Ficheiro de Origem Descrição
MACHINE_ID_SALT endpoint-proxy-salt src/lib/auth Salt combinado com identificadores de hardware para criar a impressão digital da máquina. Altere-o em cada implementação para garantir o isolamento.
OMNIROUTE_CLI_SALT (não definido = salt aleatório por instalação, guardado em <DATA_DIR>/cli-token-salt.json) src/lib/machineToken.ts Salt HMAC para derivar o token de autenticação local da CLI. A definição deste valor roda todos os tokens da CLI na máquina e tem sempre prioridade sobre o salt guardado. Consulte docs/security/CLI_TOKEN.md.
AUTH_COOKIE_SECURE false src/lib/auth Define o atributo Secure nos cookies de sessão. Tem de ser true durante a execução atrás de HTTPS.
REQUIRE_API_KEY false middleware da API Quando definido como true, todos os pedidos de proxy para /v1/* têm de incluir uma chave de API válida.
ALLOW_API_KEY_REVEAL false src/shared/constants/featureFlagDefinitions.ts Permite revelar os valores completos das chaves de API na interface do Painel. Configurável através dos Sinalizadores de Funcionalidades do Painel; representa um risco de segurança em instâncias partilhadas.
NO_LOG_API_KEY_IDS (vazio) src/lib/compliance/index.ts IDs de chaves de API, separados por vírgulas, que não são sujeitos ao registo de pedidos (conformidade com o RGPD).
DEFAULT_RATE_LIMIT_PER_DAY (não definido = ilimitado) src/shared/utils/apiKeyPolicy.ts Orçamento de pedidos diário de contingência aplicado às chaves de API cuja coluna rate_limits é nula. Não definido ou vazio: sem limite implícito (#2289, #11017). 0 é equivalente (ilimitado). Um número inteiro positivo N ativa N/dia, 5N/semana e 20N/mês. Valores não vazios e malformados recorrem aos limites legados de 1000/dia, 5000/semana e 20000/mês.
MAX_BODY_SIZE_BYTES 10485760 (10 MB) src/shared/middleware/bodySizeGuard.ts Tamanho máximo permitido para o corpo do pedido. Rejeita cargas úteis que excedam este limite.
OMNIROUTE_CHAT_LARGE_BODY_BYTES 262144 (256 KB) src/shared/middleware/chatBodyAdmission.ts Os corpos reais dos pedidos que atinjam ou excedam este limiar obtêm a concessão atómica local ao processo para admissão de cargas pesadas antes da análise do JSON (percurso BYTE, incluindo POST /v1/responses). Aplica-se a mesma alternativa de margem saudável de #10437 usada para cargas estruturalmente pesadas; continua limitada por OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, para que o problema #7849 não volte a ocorrer.
OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES 52428800 (50 MB) src/shared/middleware/chatBodyAdmission.ts Limite rígido das rotas de chat, aplicado aos bytes lidos durante a ingestão limitada, incluindo pedidos com Content-Length ausente, inválido ou fraudulento; os pedidos que excedam o limite recebem 413.
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (não definido — sem limite de número de pedidos) src/shared/middleware/chatBodyAdmission.ts #503-fanout: este limite legado de NÚMERO de pedidos só se aplica agora quando é explicitamente definido. Quando não é definido (a predefinição), a admissão de conversas pesadas é, em alternativa, controlada por OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES — um orçamento de BYTES derivado automaticamente, dimensionado a partir do limite real de memória do processo em um processo (uma heap V8). Dois pedidos /v1/responses sobrepostos com ~750 mil tokens abortam heaps de ~12 GiB (#7849) — um aviso relativo ao orçamento de memória, não um máximo rígido de produto de 2. Um processo saudável (heap abaixo do rácio de rejeição) PODE admitir mais pedidos /v1/responses longos em simultâneo através de OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM. Dezenas de clientes SSE de longa duração (4050) dependem da heap + OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, não de um «máximo de 2». Aumentar este valor sem critério para «utilizar o anfitrião» reintroduz o problema #7849. Multiplique as heaps com N DATA_DIRs independentes (#11024); nunca utilize replicas>1 num único ficheiro SQLite.
OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES (derivado automaticamente) src/shared/middleware/admissionBudget.ts #503-fanout: substituição do orçamento de bytes de ingestão derivado automaticamente (25% do limite mais restritivo de memória V8/cgroup, dividido por uma amplificação transitória de 8x). Os valores derivados e explícitos são limitados ao intervalo de 8 MiB2 GiB. Um corpo maior do que o orçamento efetivo falha imediatamente com 413 body_exceeds_budget; a contenção entre corpos que poderiam ser processados individualmente continua a permitir nova tentativa com 503. A existência de 4050 clientes SSE longos em simultâneo depende deste orçamento + heap, não de um «máximo de 2» rígido. Consulte chatAdmission.maxInflightBytes / budgetSource / pressureSeverity em /api/monitoring/health antes de efetuar ajustes.
OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO 0.75 src/shared/middleware/chatBodyAdmission.ts Rácio de rejeição por pressão da heap (heapUsed / heap_size_limit) para a admissão pesada por BYTES e ESTRUTURA (#10183, #10268, #10437). Um pedido pesado simultâneo que ultrapasse OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT só é rejeitado com o erro 503, que permite nova tentativa, quando a heap TAMBÉM se encontra neste rácio ou acima dele; numa heap saudável, é admitido através da margem de capacidade saudável.
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (predefinição 1) src/shared/middleware/chatBodyAdmission.ts Capacidade adicional limitada para o caminho rápido de heap saudável (#10437), tanto para ESTRUTURA como para BYTES (admitChatRequest, incluindo corpos ≥ OMNIROUTE_CHAT_LARGE_BODY_BYTES). Sem este limite, todos os pedidos efetuados enquanto o sistema estivesse ocupado, mas com uma heap saudável, contornariam a admissão sem qualquer teto. Quando este número de concessões simultâneas estiver ativo através do caminho de heap saudável, os pedidos adicionais efetuados enquanto o sistema está ocupado passam para o MESMO caminho de espera limitada/rejeição utilizado sob pressão real da heap. 0 desativa totalmente este desvio.
OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT 200 src/shared/middleware/chatBodyAdmission.ts Número de mensagens que classifica um pedido de conversa como pesado, mesmo quando o respetivo corpo está abaixo do limiar de bytes.
OMNIROUTE_CHAT_HEAVY_TOOL_COUNT 64 src/shared/middleware/chatBodyAdmission.ts Número de ferramentas que classifica um pedido de conversa como pesado, mesmo quando o respetivo corpo está abaixo do limiar de bytes.
OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS 32000 src/shared/middleware/chatBodyAdmission.ts Estimativa conservadora de tokens baseada no tamanho das cadeias de carateres que classifica um pedido como pesado; trata-se de uma aproximação do custo de admissão, não da tokenização utilizada pelo fornecedor para faturação.
OMNIROUTE_CHAT_HARD_MAX_MESSAGES 0 (desativado) src/shared/middleware/chatBodyAdmission.ts Limite opcional e explícito do histórico de conversas. Está desativado por predefinição: o número de mensagens é uma política da implementação, não uma propriedade universal de um pedido, e aplicar aqui um limite rejeita conversas com um erro terminal 413 antes de o pipeline de compressão poder torná-las processáveis. O crescimento da heap é limitado por OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT e pela rejeição por pressão da heap. Defina um valor positivo em implementações com memória limitada que necessitem de um teto rígido; os pedidos em excesso recebem então um erro estruturado 413 a indicar que é necessária compactação.
OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES 67108864 (64 MB) open-sse/handlers/chatCore/nonStreamingResponseBody.ts Limite rígido para uma resposta upstream sem streaming armazenada integralmente em memória. Quando este limite é ultrapassado, o leitor upstream é cancelado e o pedido falha rapidamente, em vez de aumentar uma cadeia de carateres sem limites até esgotar a heap.
OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES 768 open-sse/handlers/chatCore/responseHeaders.ts Número máximo de bytes transmitidos dos cabeçalhos da resposta upstream. Quando o orçamento é excedido, os cabeçalhos de menor prioridade (por exemplo, cabeçalhos x-codex-* personalizados e x-oai-request-id) são eliminados para respeitar os limites comuns de cabeçalhos de proxies inversos. Defina um valor superior para reencaminhar mais metadados upstream, à custa de um tamanho maior dos cabeçalhos da resposta.
CORS_ORIGIN (não definido) src/server/cors/origins.ts Lista de permissões CORS legada para uma única origem. Prefira CORS_ALLOWED_ORIGINS para novas implementações. O CORS destina-se apenas a clientes da API no navegador de origem cruzada; as escritas autenticadas no painel utilizam pedidos da mesma origem juntamente com proteção CSRF associada à sessão.
CORS_ALLOWED_ORIGINS (não definido) src/server/cors/origins.ts Lista de permissões CORS separada por vírgulas. Não é enviado nenhum carácter universal, a menos que CORS_ALLOW_ALL=true seja explicitamente configurado.
CORS_ALLOW_ALL false src/server/cors/origins.ts Mecanismo de exceção apenas para desenvolvimento que permite devolver qualquer Origin do navegador. Não o ative em implementações partilhadas ou de produção.
OUTBOUND_SSRF_GUARD_ENABLED true src/shared/network/outboundUrlGuard.ts Bloqueia chamadas a fornecedores que tenham como destino intervalos de endereços IP privados, de loopback ou link-local. Desative apenas em ambientes de teste isolados.
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS false src/shared/network/outboundUrlGuard.ts Permite URLs de fornecedores que apontem para redes privadas/locais (localhost, 192.168.x.x, 10.x.x.x, etc.). OBRIGATÓRIO para fornecedores autoalojados (LM Studio, Ollama, vLLM, Llamafile, Triton, SearXNG). Quando definido como false, o painel rejeita a validação de URLs locais.
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS true src/shared/network/outboundUrlGuard.ts Permite adicionar/validar fornecedores em endereços locais/privados (127.0.0.1, localhost, LAN, intervalos privados) — limitado ao caminho de validação do fornecedor. Predefinição: true (local em primeiro lugar); defina como false para impor o bloqueio estrito apenas a endereços públicos. Os endpoints de metadados da nuvem (169.254.169.254, metadata.google.internal) permanecem bloqueados independentemente desta definição. (#5066)
AUDIO_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/audioProviderNodes.ts Permite que as rotas /v1/audio/* (transcrições, voz, traduções) utilizem um nó de fornecedor compatível com OpenAI alojado fora de localhost. Desativado por predefinição — encaminhar áudio para um anfitrião remoto altera a identidade de saída e tem de ser uma decisão explícita do operador. Os nós de loopback/privados (localhost, 127.0.0.1, 172.16-31.x) são sempre permitidos e não são afetados. (#3963)
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Quando o OIDC está ativado, desativa o início de sessão com palavra-passe para que os utilizadores apenas possam autenticar-se através do início de sessão único OIDC. O alias simples OIDC_DISABLE_PASSWORD_LOGIN também é aceite; o sinalizador de funcionalidade do painel com a mesma chave tem precedência. (#10889)
OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Alias simples de OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN (#10889).

Lista de verificação de reforço da segurança

# Requisitos mínimos de segurança para produção:
AUTH_COOKIE_SECURE=true        # Requer HTTPS
REQUIRE_API_KEY=true           # Autentica todas as chamadas ao proxy
ALLOW_API_KEY_REVEAL=false     # Nunca expõe chaves na interface do utilizador
CORS_ALLOWED_ORIGINS=https://your.domain.com
MAX_BODY_SIZE_BYTES=5242880    # Limite de 5 MB

5. Saneamento de entradas e proteção de PII

O OmniRoute fornece uma defesa em duas camadas: análise de injeções do lado dos pedidos e remoção de PII do lado das respostas.

⚠️ Limitações: Estas proteções são deteções heurísticas de melhor esforço, não uma firewall completa contra injeções de prompts nem um sistema DLP de PII. Podem produzir falsos positivos (prompts inofensivos de personas/RPG sinalizados) e falsos negativos (leetspeak, espaçamento, padrões não ingleses). Por si só, não são suficientes para garantir a conformidade. Ajuste os modos e teste-os com o seu tráfego antes de confiar neles.

Lado dos pedidos: proteção contra injeção de prompts

Variável Predefinição Ficheiro de origem Descrição
INPUT_SANITIZER_ENABLED true src/middleware/promptInjectionGuard.ts Ativa a análise das mensagens recebidas para detetar padrões de injeção de prompts.
INPUT_SANITIZER_MODE warn src/middleware/promptInjectionGuard.ts Política de injeção: warn = apenas registar, block = rejeitar o pedido com 400. O modo legado redact não remove texto de injeção; utilize PII_REDACTION_ENABLED para reescrever PII nos pedidos.
INJECTION_GUARD_MODE (não definido) src/middleware/promptInjectionGuard.ts Nome alternativo legado de INPUT_SANITIZER_MODE — mesmo comportamento.
INPUT_SANITIZER_BLOCK_THRESHOLD high src/shared/utils/injectionSeverity.ts Gravidade mínima rejeitada por MODE=block: high (predefinição), medium ou low. Os padrões de gravidade média são apenas observados, a menos que o limiar seja reduzido.
INJECTION_GUARD_BLOCK_THRESHOLD (não definido) src/shared/utils/injectionSeverity.ts Nome alternativo legado de INPUT_SANITIZER_BLOCK_THRESHOLD — mesmo comportamento.
PII_REDACTION_ENABLED false src/lib/guardrails/piiMasker.ts Quando definido como true, oculta PII nos pedidos recebidos (independentemente do modo de injeção).
CREDENTIAL_REDACTION_ENABLED false src/lib/guardrails/credentialMasker.ts Oculta padrões conhecidos de chaves de API/tokens secretos dos conteúdos dos pedidos e das respostas. Opcional; reflete PII_REDACTION_ENABLED.

Lado das respostas: saneador de PII

Variável Predefinição Ficheiro de origem Descrição
PII_RESPONSE_SANITIZATION false src/lib/piiSanitizer.ts Analisa as respostas do LLM para detetar PII divulgadas antes de as devolver ao cliente.
PII_RESPONSE_SANITIZATION_MODE redact src/lib/piiSanitizer.ts redact = ocultar PII, warn = apenas registar, block = descartar toda a resposta.

Saneador de contexto de rotas tokenizadas do VS Code

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_VSCODE_SANITIZE_CONTEXT 1 src/app/api/v1/vscode/contextSanitizer.ts Remove o contexto implícito do editor ativo (editorContext, activeEditor, currentFile, selection, openTabs…) dos pedidos para /v1/vscode/[token]/* e oculta o conteúdo de ficheiros sensíveis anexados explicitamente. Seguro por predefinição; defina como 0 para desativar.

Cenários

Cenário Configuração
Conformidade empresarial INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=block, PII_REDACTION_ENABLED=true, PII_RESPONSE_SANITIZATION=true (bloqueio de injeções + ocultação de PII nos pedidos/respostas; os modos são independentes)
Apenas monitorização INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=warn — regista, mas nunca bloqueia
Utilização pessoal Deixe tudo desativado — sobrecarga nula

6. Políticas de Ferramentas e Encaminhamento

Variável Predefinição Ficheiro de Origem Descrição
TOOL_POLICY_MODE disabled src/lib/toolPolicy.ts Controla o acesso do LLM à chamada de ferramentas/funções. allowlist = apenas as ferramentas listadas, denylist = todas exceto as listadas, disabled = sem restrições.
OMNIROUTE_PAYLOAD_RULES_PATH ./config/payloadRules.json open-sse/services/payloadRules.ts Caminho para o ficheiro JSON de regras de manipulação do payload (ajustes a montante por modelo/protocolo).
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS 5000 open-sse/services/payloadRules.ts Intervalo de recarregamento (ms) para o recarregamento em tempo real do ficheiro de regras do payload. Mínimo de 1000.
OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS false open-sse/services/model.ts Opção voluntária: encaminha IDs de modelos claude-* sem prefixo provenientes de clientes Claude Code através da conta OAuth do Claude Code, em vez de exigir um prefixo de fornecedor. Os prefixos de fornecedor explícitos continuam a ter prioridade. Também pode ser configurado através de um seletor no painel, na página do fornecedor Claude.
COMBO_CONCURRENCY_PER_MODEL 3 open-sse/services/comboConfig.ts Limite de concorrência por modelo para combinações round-robin (#9100). O semáforo de combinações round-robin tinha um limite fixo de 3 pedidos simultâneos por modelo, sem possibilidade de substituição, colocando em série o tráfego com maior concorrência atrás desse limite. Validado como >= 1, limitado a <= 32.
DISABLE_CONTEXT_WINDOW_CHECKS false open-sse/handlers/chatCore.ts Opção voluntária perigosa que ignora a verificação local da janela de contexto/dos tokens máximos de entrada do OmniRoute para pedidos diretos a um único modelo. Os fornecedores a montante continuam a aplicar os respetivos limites reais; a compressão do prompt e o limite de tokens de saída do próprio modelo permanecem ativos. A precedência efetiva é: substituição na base de dados de Feature Flags > variável de ambiente > predefinição; não é necessário reiniciar.
OMNIROUTE_DISABLE_CONVERSATION_TRACKING (não definido) open-sse/services/conversationTracker.ts Defina como 1 para deixar de recolher o histórico de conversas. resolveConversationId() devolve um resultado não monitorizado antes de ler o SQLite ou analisar o histórico de mensagens, abrangendo também os IDs de sessão fornecidos pelo cliente. O processamento das sessões de encaminhamento não é alterado e os registos existentes não são eliminados. Destina-se a implementações que não utilizam a vista de conversas do painel e pretendem impedir que a tabela de turnos continue a crescer.

7. URLs e Sincronização na Cloud

Variável Predefinição Ficheiro de origem Descrição
BASE_URL http://localhost:20128 src/lib/cloudSync.ts URL do lado do servidor utilizada pelas tarefas internas de sincronização para chamar /api/sync/cloud. Mantenha-a como um URL de loopback/contentor, mesmo quando a aplicação é disponibilizada publicamente através de um proxy.
CLOUD_URL (vazio) src/lib/cloudSync.ts URL do endpoint de retransmissão na cloud (funcionalidade premium).
CLOUD_SYNC_TIMEOUT_MS 12000 src/lib/cloudSync.ts Tempo limite HTTP para pedidos de sincronização na cloud.
OMNIROUTE_BUILD_PROFILE full Configuração de compilação do Webpack Perfil de compilação (defina como minimal para excluir fisicamente os módulos privilegiados do bundle).
OMNIROUTE_STANDALONE_DIR saída standalone .build/ scripts/build/colocate-standalone.mjs Substituição, durante a compilação, do diretório de saída standalone utilizado pelo passo de colocação pós-compilação. Não é uma definição de tempo de execução.
OMNIROUTE_CLOUD_SYNC_SECRET (vazio) src/lib/cloudSync.ts Segredo partilhado utilizado para verificar a assinatura HMAC-SHA256 das respostas da Sincronização na Cloud.
OMNIROUTE_CLOUD_SYNC_SECRETS false src/lib/cloudSync.ts Defina como true para permitir que o endpoint de Sincronização na Cloud substitua as credenciais locais. A predefinição é false.
OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE false src/lib/cloudSync.ts Defina como true para rejeitar uma resposta não assinada da Sincronização na Cloud quando não estiver configurado nenhum segredo local (#13679). Uma assinatura presente é sempre verificada — e sempre rejeitada quando OMNIROUTE_CLOUD_SYNC_SECRET não está definido — independentemente deste sinalizador. Na v3.9, a predefinição passa a impor a assinatura.
OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP false src/app/api/providers/zed/import/route.ts Defina como true para voltar ao comportamento de um único passo «importar tudo» da v3.8.5 sem confirmação do utilizador.
NEXT_PUBLIC_BASE_URL http://localhost:20128 OAuth, Painel, sincronização URL pública para o redirect_uri do OAuth, as ligações do Painel e os URLs públicos gerados. Defina-a como o URL público estável quando os callbacks do OAuth ou as ligações geradas para o browser tiverem de utilizar um anfitrião canónico de proxy inverso.
NEXT_PUBLIC_CLOUD_URL (vazio) Lado do cliente Espelho do lado do cliente de CLOUD_URL.
NEXT_PUBLIC_APP_URL (não definido) src/shared/services/cloudSyncScheduler.ts Alternativa legada para NEXT_PUBLIC_BASE_URL.
OMNIROUTE_PUBLIC_BASE_URL (não definido) Resolvedor da origem pública, URLs de imagens Origem do OmniRoute destinada ao browser e com prioridade máxima, utilizada para gerar URLs públicas e validar a origem do browser fora do dashboard. Defina esta variável quando o OpenWebUI ou outro relay aceder ao OmniRoute através de um URL interno, mas o browser do utilizador tiver de obter os conteúdos multimédia gerados a partir de uma origem de LAN, túnel ou pública. Não inclua /v1.
OMNIROUTE_PROVIDER_MANIFEST_URL (não definido) open-sse/config/providerPluginManifestUrl.ts URL absoluto do manifesto de plugins de fornecedores anunciado aos clientes sidecar. Quando não está definido, o OmniRoute deriva /api/v1/provider-plugin-manifest da origem do pedido ou de HOST/PORT.
OMNIROUTE_PUBLIC_PROTOCOL http open-sse/config/providerPluginManifestUrl.ts Protocolo utilizado ao derivar o URL do manifesto de plugins de fornecedores a partir de HOST/PORT sem uma origem do pedido. Defina como https quando estiver por trás de um proxy público que termine TLS e não estiver definido um OMNIROUTE_PROVIDER_MANIFEST_URL explícito.
OMNIROUTE_TRUST_PROXY (não definido) src/server/origin/publicOrigin.ts Modo de confiança opcional para cabeçalhos reencaminhados de origem pública. Não definido = não confiar em Forwarded / X-Forwarded-* para decisões de segurança. true / loopback confia no anfitrião/protocolo reencaminhado apenas a partir de um proxy de loopback marcado com token. private / lan também confia em pares de proxy da LAN privada. Em produção, prefira um NEXT_PUBLIC_BASE_URL explícito.
KIE_CALLBACK_URL (não definido) open-sse/utils/kieTask.ts URL público de callback para tarefas assíncronas do kie.ai. Substituição com prioridade máxima, antes de OMNIROUTE_KIE_CALLBACK_URL e OMNIROUTE_PUBLIC_URL.
OMNIROUTE_KIE_CALLBACK_URL (não definido) open-sse/utils/kieTask.ts Designação alternativa de KIE_CALLBACK_URL. É utilizada como alternativa quando a variável principal não está definida.
OMNIROUTE_PUBLIC_URL (não definido) open-sse/utils/kieTask.ts Origem pública utilizada para compor URLs de callback assíncronos. Alternativa de prioridade mais baixa para callbacks do kie.ai; também utilizada como URL público genérico para outros relays.
OMNIROUTE_CROF_USAGE_URL https://crof.ai/usage_api/ open-sse/services/usage.ts Endpoint de consulta da quota do CrofAI utilizado pela página Utilização. Substitua para relays / fixtures de teste.
OMNIROUTE_OPENCODE_QUOTA_URL https://opencode.ai/zen/go/v1/usage open-sse/services/opencodeQuotaFetcher.ts Endpoint oficial de utilização do OpenCode Go, autenticado por chave de API, utilizado pela página Utilização. Substitua para relays / fixtures de teste.
OPENCODE_SYNTHESIZE_CLI_HEADERS true open-sse/executors/opencode.ts Sintetiza cabeçalhos de identidade do OpenCode CLI (User-Agent, x-opencode-client/project, UUIDs de pedido/sessão) em pedidos a montante do opencode-go/zen que o cliente não tenha enviado, para que o Cloudflare os aceite no tráfego de saída de VPS (#6210/#5997). Ativado por predefinição desde #10571; desative com false/0/no/off.
OPENCODE_USER_AGENT opencode open-sse/executors/opencode.ts User-Agent predefinido utilizado quando OPENCODE_SYNTHESIZE_CLI_HEADERS está ativado e não existe uma substituição <PROVIDER>_USER_AGENT por fornecedor. Aplicado apenas aos executores do opencode.
OPENCODE_CLIENT desktop open-sse/executors/opencode.ts Valor do cabeçalho x-opencode-client sintetizado quando OPENCODE_SYNTHESIZE_CLI_HEADERS está ativado.
OPENCODE_PROJECT global open-sse/executors/opencode.ts Valor para o cabeçalho x-opencode-project sintetizado quando OPENCODE_SYNTHESIZE_CLI_HEADERS está ativado.
OMNIROUTE_OLLAMA_CLOUD_USAGE_URL https://ollama.com/settings open-sse/services/usage.ts URL das definições do Ollama Cloud utilizada para recolher dados de quotas. Substitua-a para retransmissores/fixtures de teste.
OLLAMA_USAGE_COOKIE (não definido) open-sse/services/usage.ts Cookie __Secure-session do Ollama Cloud utilizado para recolher dados de quotas da página de definições. É confidencial; quando estão configuradas várias contas, dê preferência ao campo correspondente a cada ligação no Dashboard.
OLLAMA_CLOUD_USAGE_COOKIE (não definido) open-sse/services/usage.ts Variável de ambiente alternativa para o cookie __Secure-session do Ollama Cloud. É confidencial; quando estão configuradas várias contas, dê preferência ao campo correspondente a cada ligação no Dashboard.
OMNIROUTE_OLLAMA_USAGE_COOKIE (não definido) open-sse/services/usage.ts Variável de ambiente alternativa para o cookie __Secure-session do Ollama Cloud, utilizada antes dos aliases mais curtos. É confidencial; quando estão configuradas várias contas, dê preferência ao campo correspondente a cada ligação no Dashboard.
OMNIROUTE_CODEWHISPERER_BASE_URL https://codewhisperer.us-east-1.amazonaws.com open-sse/services/usage.ts Endpoint dos limites de utilização do CodeWhisperer (AWS Kiro). Substitua-o para retransmissores/fixtures de teste.

Important

Ao implementar atrás de um proxy inverso (nginx, Caddy), defina NEXT_PUBLIC_BASE_URL como o seu URL público estável (por exemplo, https://omniroute.example.com) quando os callbacks OAuth ou as ligações públicas geradas tiverem de utilizar esse nome de anfitrião. Sem esta definição, os callbacks OAuth podem falhar porque o redirect_uri não corresponde, e as ligações públicas geradas podem apontar para a origem interna do contentor.

Mantenha BASE_URL como um URL interno de loopback/contentor para tarefas de servidor para servidor. Não utilize um Origin do navegador nem um nome de anfitrião público para pedidos internos ao próprio serviço que incluam credenciais.

As operações de escrita autenticadas no Dashboard não exigem um URL base público estático: o Dashboard envia pedidos não seguros para a mesma origem com um token CSRF associado à sessão. O OmniRoute continua a centralizar a validação da origem pública para integrações de navegador que não utilizem o Dashboard: as variáveis de ambiente explícitas de URL público são consideradas fidedignas em primeiro lugar; os cabeçalhos Forwarded / X-Forwarded-* em bruto são ignorados, a menos que OMNIROUTE_TRUST_PROXY esteja ativado e o peer de proxy imediato esteja identificado por token como fidedigno. Não utilize as definições de CORS para corrigir pedidos do Dashboard para a mesma origem; o CORS destina-se apenas a clientes de navegador de origem cruzada.


8. Proxy de saída

Encaminhe as chamadas para fornecedores LLM a montante através de um proxy HTTP ou SOCKS5 para controlo de saída, encaminhamento geográfico ou ocultação de IP.

Variável Predefinição Ficheiro de origem Descrição
ENABLE_SOCKS5_PROXY true open-sse/executors Ativa o agente proxy SOCKS5 para chamadas a montante. Desative com false.
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY true Lado do cliente Indica, no lado do cliente, a disponibilidade de SOCKS5.
PROXY_SKIP_RECENTLY_FAILED false src/shared/utils/featureFlags.ts Flag de funcionalidade opcional (consulte FEATURE_FLAGS.md; uma substituição na BD do painel tem precedência). Os conjuntos de proxies e a rotação por conta deixam de voltar a disponibilizar um membro que tenha acabado de falhar (sondagem TCP recusada ou um erro 429 através do mesmo) durante um período que duplica a cada repetição, até um limite máximo. true (ou 1, yes) ativa esta opção.
HTTP_PROXY (não definida) Padrão do Node.js Proxy HTTP para chamadas a montante.
HTTPS_PROXY (não definida) Padrão do Node.js Proxy HTTPS para chamadas a montante.
ALL_PROXY (não definida) Padrão do Node.js Proxy universal (suporta socks5://).
OMNIROUTE_PROXY_ECHO_URL (não definida) src/lib/proxyEchoTarget.ts Fixa num único URL o destino de eco de IP utilizado pelas sondagens de saída do proxy. Se não estiver definida, a sondagem tenta api64.ipify.org e depois api4.ipify.org, para que túneis apenas com IPv4 não sejam incorretamente indicados como inativos (#9694).
NO_PROXY (não definida) Padrão do Node.js Nomes de anfitrião/IP separados por vírgulas que devem ignorar o proxy.
OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS 32 open-sse/utils/proxyDispatcher.ts Número máximo de sockets simultâneos por dispatcher de proxy HTTP/SOCKS em cache. Os fluxos SSE de longa duração, como o /v1/responses do Codex, necessitam de mais do que uma ligação quando vários pedidos partilham o mesmo proxy ao nível da conta. Os valores superiores a 256 são limitados.
SOCKS_HANDSHAKE_TIMEOUT_MS 10000 open-sse/utils/socksConnectorWithFamily.ts Tempo limite, em ms, para a negociação SOCKS5 (ligação). Aumente-o quando um único anfitrião de gateway residencial recebe um elevado nível de simultaneidade (por exemplo, 100 pedidos simultâneos) — a negociação real pode exceder 10 s num conjunto saturado, mesmo que o proxy esteja acessível, o que, de outra forma, é apresentado como um falso [Proxy Fast-Fail] Proxy unreachable. Limitado a 120000.
PROXY_FAIL_OPEN false src/sse/handlers/chatHelpers.ts Quando definido como false (predefinição), um pedido cujo proxy atribuído não possa ser resolvido é recusado (falha fechada) em vez de recorrer a uma ligação direta — isto evita fugas do IP real. Defina como true para restaurar o comportamento de recurso legado DIRECT.
ENABLE_TLS_FINGERPRINT false open-sse/executors Falsificar a impressão digital TLS utilizando wreq-js (imita o Chrome 124). Contorna bloqueios JA3/JA4.
TLS_FINGERPRINT_PROVIDERS (não definido) open-sse/utils/proxyFetch.ts Lista de fornecedores permitidos, separados por vírgulas, para o novo encaminhamento TLS através de proxy (open-sse/utils/proxyFetch.ts). Quando não definida, a ligação TLS direta mantém o comportamento legado; apenas estes fornecedores são encaminhados através da ponte de impressão digital do Chrome 124.
OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS false open-sse/services/claudeTurnstileSolver.ts Permitir que o contexto do navegador Playwright do Claude Turnstile ignore erros de certificado HTTPS.

Cenários

Cenário Configuração
SOCKS5 através de túnel SSH ALL_PROXY=socks5://127.0.0.1:7890, ENABLE_SOCKS5_PROXY=true
Proxy HTTP empresarial HTTP_PROXY=http://proxy.corp.com:3128, HTTPS_PROXY=http://proxy.corp.com:3128, NO_PROXY=localhost,internal.corp.com
Anti-impressão digital ENABLE_TLS_FINGERPRINT=true — requer wreq-js (incluído)
Saída controlada/sem acesso direto Mantenha PROXY_FAIL_OPEN=false (predefinição). Os pedidos falham de forma definitiva quando o proxy está indisponível, em vez de escaparem através de uma ligação direta.
Legado/desenvolvimento — permitir alternativa direta PROXY_FAIL_OPEN=true. Restaura o comportamento anterior ao reforço de segurança: é utilizada uma ligação direta quando a resolução do proxy falha.

Nota (desvio da validação da NVIDIA — #3226): O endpoint de validação da chave de API da NVIDIA fica bloqueado quando encaminhado através do fetch global corrigido para proxy/TLS (dispatcher undici → 504). src/lib/providers/validation.ts::directHttpsRequest() contorna intencionalmente a correção de proxy para essa chamada de validação específica utilizando safeOutboundFetch({ bypassProxyPatch: true }). Esta é uma exceção documentada e de âmbito limitado — não afeta a saída de conversação/utilização. O âmbito do desvio está fixado por tests/unit/proxy-bypass-scope-guard-3226.test.ts.


9. Integração de ferramentas CLI

Controla a forma como o OmniRoute descobre e inicia sidecars CLI (Claude Code, Codex, etc.).

Variável Predefinição Ficheiro de origem Descrição
CLI_MODE auto src/shared/services/cliRuntime.ts auto = procurar no PATH do sistema; manual = utilizar apenas caminhos explícitos.
CLI_EXTRA_PATHS (não definida) src/shared/services/cliRuntime.ts Entradas PATH adicionais para a deteção de binários da CLI (separadas por dois pontos).
CLI_CONFIG_HOME (não definida) src/shared/services/cliRuntime.ts Substitui o diretório pessoal utilizado para ler as configurações da CLI (~/.claude, ~/.codex). Tem de ser absoluto e estar dentro do diretório pessoal do processo — ou, num contentor, ser um caminho montado por associação (é assim que /host-home funciona). Qualquer outro caminho reverte para o diretório pessoal.
CLI_ALLOW_CONFIG_WRITES true src/shared/services/cliRuntime.ts Permite que o OmniRoute escreva ficheiros de configuração da CLI (atualização de tokens, dados de sessão). Defina como false para que todas as escritas na configuração da CLI falhem com um erro explícito de "escritas desativadas".
CLI_CLAUDE_BIN claude src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Claude.
CLI_CODEX_BIN codex src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Codex.
CLI_DROID_BIN droid src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Droid.
CLI_OPENCLAW_BIN openclaw src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI OpenClaw.
CLI_CURSOR_BIN agent, depois cursor src/shared/services/cliRuntime.ts Caminho personalizado para o binário do agente Cursor. Sem este caminho, a deteção tenta primeiro agent e, caso não o encontre, utiliza cursor.
CLI_CLINE_BIN cline src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Cline.
CLI_5DIVE_BIN 5dive src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI 5dive.
CLI_5DIVE_STATE_DIR /var/lib/5dive src/shared/services/cliRuntime.ts Diretório de estado do sistema do 5dive (perfis de autenticação pertencentes ao root); reflete a predefinição STATE_DIR do próprio 5dive.
CLI_CONTINUE_BIN cn src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Continue.
CLI_QODER_BIN qodercli src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Qoder.
CLI_QWEN_BIN qwen src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Qwen Code.
CLI_AIDER_BIN aider src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Aider.
CLI_GOOSE_BIN goose src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Goose.
CLI_GEMINI_BIN gemini src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Google Gemini — apenas para deteção e verificações de integridade no lado do servidor; omniroute run gemini resolve o binário gemini a partir do PATH do sistema.
CLI_KILO_BIN kilocode src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Kilo Code.
CLI_OPENCODE_BIN opencode src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI OpenCode.
CLI_HERMES_BIN hermes src/shared/services/cliRuntime.ts Caminho personalizado para o binário Hermes. Partilhado por ambas as entradas do catálogo (hermes e hermes-agent).
CLI_FORGE_BIN forge src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI ForgeCode.
CLI_JCODE_BIN jcode src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI jcode.
CLI_DEEPSEEK_TUI_BIN deepseek-tui src/shared/services/cliRuntime.ts Caminho personalizado para o binário da TUI DeepSeek.
CLI_CODEWHALE_BIN codewhale src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI CodeWhale.
CLI_SMELT_BIN smelt src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Smelt.
CLI_PI_BIN pi src/shared/services/cliRuntime.ts Caminho personalizado para o binário Pi (pi-coding-agent).
CLI_CRUSH_BIN crush src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Crush.
CLI_OMP_BIN omp src/shared/services/cliRuntime.ts Caminho personalizado para o binário do agente Oh My Pi (omp).
CLI_LETTA_BIN letta src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Letta.
CLI_PRIME_AGENT_BIN prime-agent src/shared/services/cliRuntime.ts Caminho personalizado para o binário Prime Agent (Prime Intellect).
CLI_WINDSURF_BIN (nenhum) src/shared/services/cliRuntime.ts Caminho personalizado para o binário Windsurf. O Windsurf é distribuído sem um comando predefinido — a deteção do binário permanece desativada até que esta opção seja definida.
CLI_DEVIN_BIN devin open-sse/executors/devin-cli.ts Caminho personalizado para o binário da CLI Devin (v3.8.0). Utilizado pelo executor Windsurf/Devin.
DEVIN_DESKTOP_VERSION 3.6.27 open-sse/executors/devin-desktop.ts ide_version do Devin Desktop. As substituições têm de utilizar o formato x.y.z; os valores inválidos revertem para o valor predefinido verificado.
DEVIN_DESKTOP_EXTENSION_VERSION 1.48.2 open-sse/executors/devin-desktop.ts extension_version incluída do Codeium/language-server, distinta da ide_version do Desktop. As substituições têm de utilizar x.y.z; os valores inválidos utilizam o valor predefinido incluído.
CLI_DEVIN_AGENTIC_BIN devin open-sse/executors/devin-cli-agentic.ts Substituição da CLI Devin exclusiva para a ponte agêntica. O executor aceita apenas o upstream ACP stdio local.
DEVIN_AGENTIC_HOME (obrigatório) open-sse/executors/devin-cli-agentic.ts Diretório pessoal isolado absoluto para o subprocesso Devin agêntico; os caminhos de ponte aceites são /home/bridge e caminhos .sandbox locais da tarefa (no Windows, C:\...\.sandbox\...).
DEVIN_AGENTIC_ACP_TIMEOUT_MS 120000 open-sse/executors/devin-cli-agentic.ts Duração máxima de um turno ACP do Devin antes de a ponte terminar o processo filho e devolver explicitamente um tempo limite.
DEVIN_BRIDGE_MODEL devin-cli-agentic/swe-1-7 docker/devin-bridge/compose.yml Alias do modelo principal do Claude Code para a ponte isolada. O harness em execução substitui o exemplo por um modelo devolvido pela conta Devin atual.
DEVIN_BRIDGE_SONNET_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias da ponte isolada utilizado quando o Claude Code solicita o seu modelo Sonnet predefinido.
DEVIN_BRIDGE_OPUS_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias da ponte isolada utilizado quando o Claude Code solicita o seu modelo Opus predefinido.
DEVIN_BRIDGE_HAIKU_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias da ponte isolada utilizado quando o Claude Code solicita o seu modelo Haiku predefinido.
DEVIN_BRIDGE_SUBAGENT_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias da ponte isolada utilizado para os subagentes do Claude Code.
DEVIN_SEAT_API_URL https://server.codeium.com open-sse/services/usage/devinCli.ts Substituição opcional para a API de gestão de licenças do Codeium utilizada pela quota da Devin CLI (GetUserStatus).
AUGGIE_BIN auggie open-sse/executors/auggie.ts Substituição por caminho absoluto para o binário da CLI Augment (Auggie) utilizado pelo fornecedor local auggie. Como alternativa, utiliza CLI_AUGGIE_BIN e, em seguida, procura no PATH.
CLI_AUGGIE_BIN auggie open-sse/executors/auggie.ts Substituição alternativa para o caminho do binário da CLI Augment (Auggie) (verificada após AUGGIE_BIN).
ZCODE_BIN zcode open-sse/executors/zcode.ts Binário utilizado pelo cliente stdio do fornecedor local zcode. Como alternativa, utiliza zcode no PATH.
ZCODE_ARGS open-sse/executors/zcode.ts Matriz JSON (≤16 cadeias de caracteres) de argumentos adicionais transmitidos ao binário zcode quando iniciado através de cliTools.
ZCODE_CWD process.cwd() open-sse/executors/zcode.ts Diretório de trabalho do subprocesso do servidor de aplicações ZCode.
ZCODE_PROVIDER_ID builtin:zai-coding-plan open-sse/executors/zcode.ts Substituição do ID do fornecedor enviado ao servidor de aplicações.
ZCODE_SERVER_RUNTIME_ROOT ~/.zcode/server open-sse/executors/zcode.ts Raiz do ambiente de execução do servidor de aplicações ZCode (onde se encontram o node e o zcode-server.cjs incluídos).
ZCODE_SERVER_NODE <runtimeRoot>/node open-sse/executors/zcode.ts Executável do Node utilizado para alojar o servidor de aplicações ZCode.
ZCODE_SERVER_ENTRY <runtimeRoot>/zcode-server.cjs open-sse/executors/zcode.ts Script de entrada utilizado para alojar o servidor ZCode.
ZCODE_STARTUP_TIMEOUT_MS 10000 open-sse/executors/zcode.ts Tempo limite de arranque (ms) após o qual se considera que o início de um servidor de aplicações ZCode falhou.
ZCODE_RPC_TIMEOUT_MS 30000 open-sse/executors/zcode.ts Tempo limite de RPC por pedido (ms) para uma chamada ao servidor de aplicações ZCode.
ZCODE_TURN_TIMEOUT_MS 120000 open-sse/executors/zcode.ts Duração máxima (ms) de um turno do ZCode antes de o supervisor exceder o respetivo tempo limite.
ZCODE_POLL_INTERVAL_MS 250 open-sse/executors/zcode.ts Intervalo de consulta (ms) para a conclusão de um turno do ZCode.
HERMES_HOME ~/.hermes src/lib/cli-helper/config-generator/hermesHome.ts Diretório base do Hermes Agent onde o OmniRoute lê/escreve a configuração da Hermes CLI. Corresponde à variável de ambiente definida no Windows pelo instalador PowerShell do Hermes (%LOCALAPPDATA%\hermes).

Sincronização automática de perfis da CLI

Estes sinalizadores de funcionalidade são opcionais e estão desativados por predefinição. Também podem ser ativados ou desativados a partir do painel de controlo CLI Code.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES false src/shared/constants/featureFlagDefinitions.ts Após a sincronização dos modelos de um fornecedor, reescreve automaticamente os ficheiros de perfil ~/.codex/*.config.toml a partir do catálogo atual. Requer CLI_ALLOW_CONFIG_WRITES; nunca altera a configuração ativa/predefinida do Codex, a autenticação, as definições do Codex-lb nem a escolha do fornecedor.
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES false src/shared/constants/featureFlagDefinitions.ts Após a sincronização dos modelos de um fornecedor, reescreve automaticamente os ficheiros de perfil do Claude Code ~/.claude/profiles/<name>/settings.json a partir do catálogo atual. Requer CLI_ALLOW_CONFIG_WRITES; nunca altera a configuração ativa/predefinida do Claude, a autenticação nem a escolha do fornecedor.

Exemplo do Docker

# Monte os binários do anfitrião no contentor e indique ao OmniRoute onde se encontram:
CLI_EXTRA_PATHS=/host-cli/bin
CLI_CONFIG_HOME=/host-home
CLI_ALLOW_CONFIG_WRITES=true
CLI_CLAUDE_BIN=/host-cli/bin/claude

CLI_CONFIG_HOME só tem efeito quando o caminho é efetivamente montado por bind a partir do anfitrião — combine-o com montagens como ~/.codex:/host-home/.codex:rw (consulte o perfil host em docker-compose.yml). Um caminho que não esteja dentro da pasta pessoal do utilizador do contentor nem seja uma montagem bind é ignorado, porque qualquer escrita nesse local seria descartada quando o contentor fosse recriado.

A imagem é executada como USER node, pelo que um /root não montado não é uma substituição válida.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_CONTAINER (automático) src/shared/utils/containerEnv.ts Força a deteção de contentor a estar ativa (1/true) ou inativa (0/false). Só é necessário em ambientes de execução que a deteção automática não identifica.
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE false src/shared/services/cliRuntime.ts Permite, ainda assim, que as ferramentas de CLI escrevam a configuração num caminho não montado do contentor. O equivalente na CLI é --allow-container-write.

Auxiliares do binário de CLI (omniroute)

Estas variáveis ajustam o comportamento do próprio binário de CLI omniroute (e não a deteção de sidecar acima).

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_LANG (sistema) bin/cli/i18n.mjs Força o idioma da saída da CLI. Localidade BCP-47 (por exemplo, en, pt-BR). Substitui as variáveis de ambiente da localidade do sistema (LC_ALL, LC_MESSAGES).
OMNIROUTE_SHOW_LOG (não definida) bin/cli/runtime/processSupervisor.mjs Defina como 1 para encaminhar stdout/stderr do servidor para o terminal no modo supervisionado. Equivale à opção --log em omniroute serve.
OMNIROUTE_CLI_TOKEN (não definida) bin/cli/api.mjs Token de autenticação de máquina injetado como cabeçalho x-omniroute-cli-token. Gerado automaticamente na tarefa 8.12.
OMNIROUTE_HTTP_TIMEOUT_MS 30000 bin/cli/api.mjs Tempo limite HTTP por tentativa (ms) para pedidos da CLI → servidor.
OMNIROUTE_READY_TIMEOUT_MS 60000 bin/cli/utils/pid.mjs Tempo máximo (ms) que a CLI aguarda pelo endpoint de estado do servidor antes de apresentar um aviso de tempo limite. Útil para arranques a frio lentos (por exemplo, no Windows). Também pode ser definido através de --ready-timeout.
OMNIROUTE_VERBOSE 0 bin/cli/api.mjs Defina como 1 para apresentar diagnósticos de novas tentativas/recuo em stderr durante os comandos da CLI.
OMNIROUTE_PLUGIN_PATH (não definida) bin/cli/plugins.mjs Diretório personalizado para a deteção de plugins da CLI (pacotes omniroute-cmd-*). Quando não está definida, a predefinição é ~/.omniroute/plugins/. Apenas para a CLI — nunca chega ao analisador de plugins do lado do servidor, que é indicado por OMNIROUTE_PLUGINS_DIR (secção 2).

10. Integrações internas de agentes e MCP

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_BASE_URL deteção automática open-sse/mcp-server/server.ts URL explícito para as ferramentas MCP/A2A acederem ao OmniRoute. Substitui a deteção automática do localhost.
OMNIROUTE_API_KEY (não definido) Módulos MCP/A2A Chave de API para chamadas internas de ferramentas MCP e competências A2A.
OMNIROUTE_API_KEY_ID (não definido) open-sse/mcp-server/audit.ts ID da chave para atribuição no registo de auditoria MCP.
ROUTER_API_KEY (não definido) Legado Alias legado de OMNIROUTE_API_KEY.
OMNIROUTE_A2A_HISTORY_RETENTION_DAYS 30 src/lib/a2a/taskManager.ts Número de dias durante os quais o histórico de tarefas A2A é mantido na base de dados local antes de a limpeza diária eliminar uma linha. Se não estiver definido, não for numérico ou for <= 0, é utilizado o valor 30.
OMNIROUTE_A2A_MEMORY_HITS 1 src/lib/a2a/taskExecution.ts Interruptor de desativação para a funcionalidade de observabilidade de ocorrências na memória A2A. Defina como 0 para ignorar totalmente a consulta de recuperação da memória para uma tarefa; qualquer outro valor (incluindo não definido) mantém-na ativada.
OMNIROUTE_ISSUE_AGENT_ENABLED false src/app/api/issue-agent/runs/route.ts Ativa o endpoint offline/local de triagem registada do Issue Agent. Mantenha-o desativado, exceto ao executar explicitamente fluxos de trabalho locais de triagem registada.
OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS (não definido) src/lib/issueAgent/execution.ts Tempo limite (ms) para uma única execução de triagem registada do Issue Agent. É limitado a um máximo interno; utiliza a predefinição incorporada quando não está definido ou é inválido.
OMNIROUTE_CONTEXT (contexto ativo) bin/cli/program.mjs, bin/cli/api.mjs Contexto/perfil do modo remoto da CLI para comandos omniroute; substitui o contexto ativo no armazenamento local de contextos. Equivalente a --context <name>.
OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED 0 bin/cli/contexts.mjs Desativa o backend opcional keytar do porta-chaves do sistema operativo para credenciais de contexto da CLI. Quando ativado, as credenciais permanecem no modo 0600 de config.json e a CLI emite um aviso único de alternativa; destina-se à utilização deliberada em ambientes headless/contentores.
OMNIROUTE_MCP_ENFORCE_SCOPES true open-sse/mcp-server/server.ts Impõe controlo de acesso baseado em âmbitos nas chamadas de ferramentas MCP.
OMNIROUTE_MCP_SCOPES (todos) open-sse/mcp-server/server.ts Âmbitos separados por vírgulas: admin, combos, health, models, routing, budget, metrics, pricing, memory, skills.
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS false open-sse/mcp-server/descriptionCompressor.ts Comprime as descrições das ferramentas MCP antes de serializar o manifesto. Valores de ativação: 1, true, on.
OMNIROUTE_MCP_DESCRIPTION_COMPRESSION rtk open-sse/mcp-server/descriptionCompressor.ts Algoritmo/perfil de compressão. Valores de desativação: 0, false, off.
OMNIROUTE_MCP_FETCH_TIMEOUT_MS 10000 open-sse/mcp-server/fetchTimeout.ts Limite de cancelamento (ms) para leituras de gestão internas do servidor MCP (estado, resiliência, combinações, quota, utilização).
OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS 60000 open-sse/mcp-server/fetchTimeout.ts Limite de tempo para cancelamento (ms) em saltos MCP que aguardam um fornecedor (route_request, web_search, web_fetch).
OMNIROUTE_CORPUS_CACHE_SIZE 5 src/lib/localCorpus/configured.ts Número máximo de instâncias do índice do corpus local mantidas em cache na memória (LRU, uma por diretório raiz indexado). Limitado a um mínimo de 1.
MODEL_SYNC_INTERVAL_HOURS 24 src/shared/services/modelSyncScheduler.ts Intervalo de sincronização do catálogo de modelos, em horas.
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES 70 src/lib/usage/providerLimits.ts Intervalo de consulta dos limites de taxa e das quotas do fornecedor.
PROVIDER_LIMITS_SYNC_SPACING_MS 1500 src/lib/usage/providerLimits.ts Intervalo (ms) entre obtenções consecutivas de quotas OAuth numa sincronização em massa; as ligações OAuth são consultadas uma de cada vez para evitar sobrecarregar um serviço a montante. 0 desativa este comportamento (execução simultânea).
OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS 250 open-sse/services/quotaFetchThrottle.ts Intervalo mínimo (ms) entre obtenções consecutivas de quotas a montante no caminho de verificação prévia/monitorização por pedido; espaça as chamadas de rede simultâneas para impedir que muitas contas num só IP sobrecarreguem o serviço a montante. Integrado nos mecanismos de obtenção de quotas do Codex (/wham/usage), DeepSeek, Bailian (em ambos os locais de obtenção), OpenCode e Crof (#6009, #6911). O caminho genérico de encaminhamento usage.ts::getUsageForProvider (github/glm/minimax/nanogpt/xai/etc.) ainda não está abrangido — é acompanhado separadamente. Os acertos da cache não são afetados. 0 desativa; limitado ao intervalo 0..5000.
PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS 5000 src/lib/usage/providerLimits.ts Atraso (ms) antes de atualizar os limites do fornecedor após um evento de utilização real, dando à API de quotas a montante tempo para registar o consumo.
OMNIROUTE_LOGIN_BROWSER_PATH deteção automática open-sse/services/adobeFireflyBrowserLogin.ts Caminho absoluto para um executável do Chrome ou Edge instalado no sistema, utilizado para o início de sessão interativo no Adobe Firefly e a renovação fora do ecrã.
ADOBE_FIREFLY_BROWSER_REFRESH ativado open-sse/services/adobeFireflySession.ts Mantém atualizados o IMS e o estado de risco do navegador através de sessões Chrome CDP associadas à conta. Defina como 0 para desativar a renovação pelo navegador.
ADOBE_FIREFLY_SESSION_DISK ativado open-sse/services/adobeFireflySession.ts Mantém as sessões Adobe reparadas em DATA_DIR após reinícios do processo. Defina como 0 para manter as sessões apenas na memória.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Intervalo mínimo, em milissegundos, entre submissões de geração do Adobe Firefly; 0 desativa o intervalo.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Período de espera adicional, em milissegundos, após cada terceira submissão bem-sucedida à Adobe.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyClient.ts Atraso base de recuo, em milissegundos, após respostas 408 transitórias da Adobe; combinado com o intervalo entre submissões ao longo de, no máximo, cinco tentativas.
OMNIROUTE_DISABLE_BACKGROUND_SERVICES false src/instrumentation-node.ts Desativa todos os serviços em segundo plano (sincronização, preços e atualização de modelos). Útil para CI/testes.
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS (não definido) src/lib/config/runtimeSettings.ts Força a ativação das tarefas em segundo plano quando são detetados testes automatizados. Defina como 1 para substituir a heurística de teste.
OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS 600000 src/lib/jobs/budgetResetJob.ts Cadência de verificação da reposição do orçamento (ms). Mínimo de 10000.
OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS 60000 src/lib/quota/connectionRecovery.ts Cadência da recuperação proativa do período de espera das ligações (ms): revalida as ligações cujo rate_limited_until transitório terminou, fora do caminho crítico dos pedidos. Mínimo 5000.
OMNIROUTE_DISABLE_CONNECTION_RECOVERY false src/lib/quota/connectionRecovery.ts Desativa o agendador de recuperação proativa do período de espera das ligações (a recuperação diferida em getProviderCredentials continua a aplicar-se).
OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS 1800000 src/lib/jobs/reasoningCacheCleanupJob.ts Cadência da limpeza da cache de raciocínio (ms). Mínimo 60000.
OMNIROUTE_REASONING_MIN_BUDGET não definido (desativado) open-sse/services/reasoningTokenBuffer.ts Limite mínimo opcional para os orçamentos de saída de modelos de raciocínio: o max_tokens do chamador no intervalo [256, floor) é aumentado até ao limite mínimo (limitado pelo máximo de saída do modelo). Não definido = os orçamentos dos clientes nunca são aumentados (#9507).
OMNIROUTE_LOG_EXPORT_CRON 0 * * * * src/lib/jobs/logExportJob.ts Expressão cron (UTC) para a tarefa de exportação dos registos de chamadas, que esvazia todos os destinos de exportação de registos ativados.
OMNIROUTE_CONFIG_HOT_RELOAD_MS 5000 src/lib/config/hotReload.ts Intervalo de consulta (ms) para o recarregamento dinâmico da configuração. Valores inferiores a 1000 são rejeitados.
OMNIROUTE_DISABLE_REDIS_AUTH_CACHE (ativado) src/lib/db/apiKeys.ts Defina como 1 para ignorar a cache de autenticação de chaves de API suportada pelo Redis (força leituras da base de dados).
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS 0 open-sse/services/compression/engines/rtk/filterLoader.ts Confia nas regras de filtragem de projetos RTK geridas pelo utilizador sem verificações rigorosas de assinaturas.
OMNIROUTE_LITE_MAX_TOOL_LENGTH 2000 open-sse/services/compression/lite.ts Limite de caracteres para o truncamento proativo dos resultados de ferramentas pelo Lite quando lite.maxToolLength não está definido. Intervalo 2561000000. A definição do painel tem precedência sobre esta variável de ambiente.
OMNI_COMPRESSION_WORKERS 2 open-sse/services/compression/compressionWorkerPool.ts Número máximo de workers RTK/Caveman síncronos em simultâneo; as tarefas excedentes aguardam segundo a ordem FIFO.
OMNI_COMPRESSION_WORKER_TIMEOUT_MS 120000 open-sse/services/compression/compressionWorkerPool.ts Tempo limite por tarefa, em milissegundos. Os workers cujo tempo limite seja excedido são terminados e o pedido prossegue sem alterações.
OMNI_COMPRESSION_WORKER_IDLE_MS 60000 open-sse/services/compression/compressionWorkerPool.ts Período de inatividade, em milissegundos, antes de um worker de compressão não utilizado ser terminado.
COMPRESSION_PIPELINE_BREAKER_ENABLED false open-sse/services/compression/pipelineEngineBreaker.ts Interruptor principal opcional do disjuntor por motor do pipeline encadeado T02. Adesão opcional (desativado por predefinição) — quando ativado, um motor que gera erros repetidamente entre pedidos é ignorado (falha em modo aberto) durante um período de espera; desativado = comportamento legado idêntico ao nível dos bytes.
COMPRESSION_PIPELINE_BREAKER_THRESHOLD 3 open-sse/services/compression/pipelineEngineBreaker.ts Número de falhas consecutivas entre pedidos antes de o disjuntor de um motor abrir.
COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS 30000 open-sse/services/compression/pipelineEngineBreaker.ts Número de milissegundos durante os quais um motor com o disjuntor aberto permanece ignorado antes de uma tentativa em estado semiaberto.
COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR 2 open-sse/services/compression/engines/ccr/index.ts Rampa de feedback da recuperação CCR T08/H8: cada recuperação anterior de um bloco armazenado aumenta linearmente o seu minChars efetivo (o conteúdo recuperado com frequência é menos comprimido; >=3 recuperações = nunca comprimido). 1 desativa a rampa (omissão binária apenas no limiar).
COMPRESSION_CCR_DURABLE_STORE true open-sse/services/compression/engines/ccr/index.ts Armazenamento durável de blocos CCR (#9061). Complementa o armazenamento em memória com SQLite, para que um bloco sobreviva à expulsão LRU, ao TTL, a um reinício ou a uma recuperação realizada noutra instância. Defina como false para manter os blocos apenas em memória. Os blocos com mais de 512 KB e os ambientes de execução na nuvem permanecem apenas em memória, independentemente desta definição.
COMPRESSION_PREFIX_FREEZE_ENABLED false open-sse/services/compression/prefixFreeze.ts Interruptor principal do congelamento de prefixos observado pela utilização T08/H5. Adesão opcional (desativado por predefinição) — quando ativado, um prompt de sistema observado >= ao limiar é tratado como um prefixo estável que pode ser colocado em cache e é preservado durante a compressão, mesmo para fornecedores que a heurística de cache estático não deteta (o congelamento apenas preserva, nunca altera).
COMPRESSION_PREFIX_FREEZE_THRESHOLD 3 open-sse/services/compression/prefixFreeze.ts Número de observações de um prompt de sistema antes de este ser tratado como um prefixo estável congelado.
OMNIROUTE_BOOTSTRAPPED false src/app/(dashboard)/dashboard/page.tsx Definido como true pelo script de inicialização após a configuração inicial. Controla a visibilidade do assistente de configuração.
OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE 0 open-sse/executors/antigravity.ts Mecanismo de recurso: permite que o corpo do pedido substitua o campo de projeto do Antigravity.
ANTIGRAVITY_CREDITS off open-sse/services/antigravityCredits.ts Política de créditos do Google One AI: off nunca injeta créditos, retry injeta-os uma vez após um erro 429 de quota elegível e always injeta-os no primeiro pedido.
ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS 0 open-sse/translator/request/openai-to-gemini.ts Permite que o tradutor de pedidos do Antigravity ignore a validação rigorosa da assinatura de pedidos da CLI quando o serviço a montante recusa assinaturas reais (modo de depuração/CLI obsoleta). Um valor diferente de zero ativa esta operação de contorno.
AGY_TOKEN_FILE ~/.gemini/antigravity-cli/antigravity-oauth-token src/app/api/providers/agy-auth/apply-local/route.ts Substitui o caminho do ficheiro de token da CLI do Antigravity (agy) para a importação do início de sessão local com deteção automática.

Ponte OAuth da CLI (interna)

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_SERVER deteção automática src/lib/oauth/config/index.ts URL do servidor para a ponte de autenticação CLI↔OmniRoute.
OMNIROUTE_TOKEN (não definido) src/lib/oauth/config/index.ts Token de autenticação para a ponte da CLI.
OMNIROUTE_USER_ID cli src/lib/oauth/config/index.ts ID de utilizador para sessões da ponte da CLI.
SERVER_URL (não definido) src/lib/oauth/config/index.ts Nome alternativo antigo de OMNIROUTE_SERVER.
CLI_TOKEN (não definido) src/lib/oauth/config/index.ts Nome alternativo antigo de OMNIROUTE_TOKEN.
CLI_USER_ID (não definido) src/lib/oauth/config/index.ts Nome alternativo antigo de OMNIROUTE_USER_ID.

11. Credenciais do fornecedor OAuth

Credenciais integradas para desenvolvimento em localhost. Para implementações remotas, registe as suas próprias credenciais na consola de programador de cada fornecedor.

Variável Fornecedor Notas
CLAUDE_OAUTH_CLIENT_ID Claude Code (Anthropic) Cliente público — não é necessário qualquer segredo.
CLAUDE_CODE_REDIRECT_URI Claude Code Substitui o URI de redirecionamento. Predefinição: https://platform.claude.com/oauth/code/callback
CODEX_OAUTH_CLIENT_ID Codex / OpenAI Cliente público.
GEMINI_OAUTH_CLIENT_ID Gemini (Google) Requer o _SECRET correspondente.
GEMINI_OAUTH_CLIENT_SECRET Gemini (Google)
KIMI_CODING_OAUTH_CLIENT_ID Kimi Coding (Moonshot) Cliente público.
ANTIGRAVITY_OAUTH_CLIENT_ID Antigravity (Google) Requer o _SECRET correspondente.
ANTIGRAVITY_OAUTH_CLIENT_SECRET Antigravity (Google)
GITHUB_OAUTH_CLIENT_ID GitHub Copilot Cliente público.
GHE_COPILOT_OAUTH_CLIENT_ID GHE Copilot Substituição opcional para o ID de cliente OAuth do GitHub Enterprise Copilot. Quando não está definido, recorre à predefinição pública de GITHUB_OAUTH_CLIENT_ID.
WINDSURF_API_KEY Windsurf / Devin (v3.8) Chave de API alternativa utilizada por open-sse/executors/devin-cli.ts quando não está disponível uma credencial por ligação. Opcional.
CLI_DEVIN_BIN Devin CLI (v3.8) Caminho personalizado para o binário da Devin CLI (devin). Resolvido por open-sse/executors/devin-cli.ts.
GITLAB_DUO_OAUTH_CLIENT_ID GitLab Duo (v3.8) ID de cliente OAuth para o GitLab Duo. Registe uma aplicação em https://gitlab.com/-/profile/applications com o URI de redirecionamento <NEXT_PUBLIC_BASE_URL>/callback e os âmbitos api, read_user, openid, profile, email. Recorre a GITLAB_OAUTH_CLIENT_ID.
GITLAB_DUO_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Segredo do cliente OAuth para o GitLab Duo. Opcional — o fluxo PKCE não requer um segredo. Recorre a GITLAB_OAUTH_CLIENT_SECRET.
GITLAB_DUO_BASE_URL GitLab Duo (v3.8) Substitui o URL base do GitLab (GitLab autoalojado). A predefinição é https://gitlab.com. Recorre a GITLAB_BASE_URL.
GITLAB_BASE_URL GitLab Duo (v3.8) Alternativa legada para GITLAB_DUO_BASE_URL. Utilizada quando a variante _DUO_ não está definida.
GITLAB_OAUTH_CLIENT_ID GitLab Duo (v3.8) Alternativa legada para GITLAB_DUO_OAUTH_CLIENT_ID, utilizada por src/lib/oauth/constants/oauth.ts.
GITLAB_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Alternativa legada para GITLAB_DUO_OAUTH_CLIENT_SECRET, utilizada por src/lib/oauth/constants/oauth.ts.
QODER_OAUTH_CLIENT_SECRET Qoder
QODER_OAUTH_AUTHORIZE_URL Qoder Defina para ativar o OAuth do Qoder.
QODER_OAUTH_TOKEN_URL Qoder
QODER_OAUTH_USERINFO_URL Qoder
QODER_OAUTH_CLIENT_ID Qoder
QODER_PERSONAL_ACCESS_TOKEN Qoder Alternativa de chave de API direta (ignora o OAuth).
QODER_CLI_WORKSPACE Qoder ID da área de trabalho para a CLI do Qoder.
OMNIROUTE_QODER_WORKSPACE Qoder Alias para QODER_CLI_WORKSPACE.
QODER_CLI_CONFIG_DIR Qoder Substitui o diretório de configuração da CLI do Qoder (sessão PAT isolada, evitando substituir um início de sessão no browser).
BLACKBOX_WEB_VALIDATED_TOKEN Blackbox Web Token tk do frontend a enviar como validated em /api/chat. Necessário quando o Blackbox impõe a correspondência de tokens; caso contrário, o OmniRoute recorre a um UUID aleatório. Consulte o issue #2252.
VISION_BRIDGE_BASE_URL Mecanismo de proteção Vision Bridge URL base compatível com OpenAI para chamadas do vision bridge não relacionadas com o Anthropic. Por predefinição, utiliza a variável de ambiente legada do URL do OpenAI ou api.openai.com. Aponte para o ciclo interno /v1 do OmniRoute ou para qualquer endpoint compatível com OpenAI (compatibilidade do Gemini com OpenAI, OpenRouter). Issue #2232. Quando o URL é o próprio /v1 do OmniRoute, o subpedido de descrição envia x-omniroute-admission-bypass: internal e autentica-se com a credencial resolvida do ciclo interno (sentinela sk_omniroute no modo local, ou OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350), para que as implementações com REQUIRE_API_KEY=true funcionem.
VISION_BRIDGE_API_KEY Mecanismo de proteção Vision Bridge Chave de API para o URL acima. Substitui as variáveis de ambiente do OpenAI/Google específicas de cada fornecedor para chamadas do vision bridge não relacionadas com o Anthropic. Os modelos Anthropic mantêm o seu caminho de chave Anthropic dedicado. Issue #2232.

Warning

  1. Aceda a Google Cloud Console → Credenciais
  2. Crie um ID de cliente OAuth 2.0 (tipo: "Aplicação Web")
  3. Adicione o URL do seu servidor como URI de redirecionamento autorizado
  4. Substitua os valores das credenciais em .env.

12. Substituições do User-Agent do fornecedor

Substitua o cabeçalho User-Agent enviado a cada fornecedor a montante. Este valor é resolvido dinamicamente em tempo de execução pela classe base do executor:

process.env[`${PROVIDER_ID}_USER_AGENT`]

Fonte: open-sse/executors/base.tsbuildHeaders()

Variável Valor predefinido Quando atualizar
CLAUDE_USER_AGENT claude-cli/2.1.258 (external, cli) Quando a Anthropic lançar uma nova versão da CLI
CLAUDE_DISABLE_TOOL_NAME_CLOAK false executors/base.ts + executors/cliproxyapi.ts Defina como 1/true para encaminhar literalmente para a Anthropic os nomes de ferramentas de harnesses de terceiros em ambos os caminhos destinados à Anthropic (OAuth nativo e CLIProxyAPI). Por predefinição, o executor atribui deterministicamente aliases a nomes de ferramentas que não sejam do Claude Code (mapeamento canónico do Claude Code, quando existir; caso contrário, PascalCase) e reverte-os na resposta através de _toolNameMap, para que harnesses com ferramentas em snake_case não sejam recusados por serem identificados como clientes de terceiros. Apenas para depuração.
CODEX_USER_AGENT codex-cli/0.142.0 (Windows 10.0.26200; x64) Quando a OpenAI atualizar a CLI do Codex
CODEX_CLIENT_VERSION 0.131.0 Substituir a versão do cliente Codex independentemente da cadeia completa do UA
CLAUDE_CODE_CLIENT_VERSION 2.1.258 Substituir a versão anunciada do Claude Code independentemente de CLAUDE_USER_AGENT. A Anthropic restringe alguns modelos com base neste valor (#12417).
GITHUB_COPILOT_CLI_VERSION 1.0.81-6 Substituir a versão anunciada da CLI do Copilot independentemente de GITHUB_USER_AGENT
GITHUB_USER_AGENT GitHubCopilotChat/0.54.0 Quando o GitHub Copilot Chat for atualizado
ANTIGRAVITY_USER_AGENT antigravity/2.0.1 darwin/arm64 Quando o IDE Antigravity for atualizado
KIRO_USER_AGENT AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 Quando o IDE Kiro for atualizado
KIRO_OAUTH_CLIENT_ID kiro-cli Substituir o clientId (ID público) do código de dispositivo social do Kiro
KIRO_VERIFY_FULL_CRC false Adesão: validação CRC completa por trama no fluxo de eventos do Kiro (depuração de fluxos corrompidos)
QODER_USER_AGENT Qoder-Cli Quando a CLI do Qoder for atualizada
CURSOR_USER_AGENT Cursor/3.3 Quando o Cursor for atualizado

Tip

Pode adicionar substituições do User-Agent para qualquer fornecedor utilizando o padrão {PROVIDER_ID}_USER_AGENT. O executor constrói dinamicamente o nome da variável de ambiente.


13. Compatibilidade de impressão digital da CLI

Quando ativado, o OmniRoute reordena os cabeçalhos HTTP e os campos do corpo JSON para corresponder à assinatura exata das ferramentas CLI oficiais. Isto reduz o risco de sinalização da conta, preservando simultaneamente o seu IP de proxy.

Origem: open-sse/config/cliFingerprints.ts, open-sse/executors/base.ts

Por fornecedor

Variável Ativação Efeito
CLI_COMPAT_CODEX =1 Imita a assinatura dos pedidos da CLI Codex
CLI_COMPAT_CLAUDE =1 Imita a assinatura dos pedidos do Claude Code
CLI_COMPAT_GITHUB =1 Imita a assinatura dos pedidos do GitHub Copilot
CLI_COMPAT_ANTIGRAVITY =1 Imita a assinatura dos pedidos do Antigravity
CLI_COMPAT_CURSOR =1 Imita a assinatura dos pedidos do Cursor
CLI_COMPAT_KIMI_CODING =1 Imita a assinatura dos pedidos do Kimi Coding
CLI_COMPAT_KILOCODE =1 Imita a assinatura dos pedidos do Kilo Code
CLI_COMPAT_CLINE =1 Imita a assinatura dos pedidos do Cline

Global

Variável Ativação Efeito
CLI_COMPAT_ALL =1 Ativa a compatibilidade de impressão digital para todos os fornecedores de uma só vez.

Substituições da identidade da CLI Kimi Coding

Variável Predefinição Ficheiro de origem Descrição
KIMI_CLI_VERSION 1.36.0 src/lib/oauth/providers/kimi-coding.ts Substitui a versão da CLI Kimi enviada durante as chamadas OAuth/API.
KIMI_CODING_DEVICE_ID (predefinição obtida) src/lib/oauth/providers/kimi-coding.ts Substitui o ID de dispositivo Kimi obtido e utilizado nos cabeçalhos do cliente.

Note

Esta funcionalidade funciona em conjunto com as substituições de User-Agent (§12). O sistema de impressão digital gere a ordenação dos cabeçalhos e dos campos do corpo, enquanto as substituições de User-Agent gerem a cadeia UA específica. Ambos podem ser ativados de forma independente.


14. Fornecedores de chaves de API

Chaves de API para fornecedores que utilizam autenticação direta. Configuração preferencial: Painel → Fornecedores → Adicionar chave de API.

A configuração através de variáveis de ambiente é uma alternativa para implementações Docker ou sem interface gráfica.

Padrão reconhecido: {PROVIDER_ID}_API_KEY

Variável Fornecedor
DEEPSEEK_API_KEY DeepSeek
NVIDIA_API_KEY NVIDIA NIM
JINA_AI_API_KEY Jina AI (API Foundation + recurso ao Reader)
JINA_API_KEY Jina AI (alias de JINA_AI_API_KEY)
GEMINI_API_KEY Gemini (Google AI Studio) embeddings + recurso ao chat
GOOGLE_API_KEY Gemini (alias de GEMINI_API_KEY)

Note

As entradas estáticas ${PROVIDER}_API_KEY para Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius e Qianfan foram removidas na v3.8.0 porque o runtime já não as lê — esses fornecedores dependem exclusivamente do Painel / data/provider-credentials.json / da base de dados encriptada. Consulte a secção Auditoria: variáveis removidas/inativas no final deste documento para conhecer o procedimento de migração.

Tip

As chaves configuradas através do Painel são armazenadas de forma encriptada no SQLite e têm precedência sobre as variáveis de ambiente.

Jina: os embeddings jina-ai/…, bem como rerank, classify, segment e jina-search, não faturam uma chave de ambiente do cluster quando existe uma ligação jina-ai (ou jina-reader partilhada) no painel — getProviderCredentials utiliza preenchimento prioritário. JINA_AI_API_KEY / JINA_API_KEY são utilizadas apenas quando não existe uma chave utilizável no painel. Os registos de chamadas atribuem o recurso à variável de ambiente como connection_id=env:JINA_AI_API_KEY. O cartão Reader (jina-reader, r.jina.ai) nunca serve /v1/embeddings nem /v1/rerank.

Gemini: gemini/gemini-embedding-2 (alias google/gemini-embedding-2) utiliza primeiro a ligação gemini do painel. GEMINI_API_KEY / GOOGLE_API_KEY são utilizadas apenas quando não existe uma chave utilizável no painel. Os registos de chamadas atribuem o recurso à variável de ambiente como connection_id=env:GEMINI_API_KEY. O tráfego multimodal nativo utiliza x-goog-api-key com :embedContent / :batchEmbedContents — N itens OpenAI em input tornam-se N vetores.


15. Definições de Tempo Limite

Todos os valores são expressos em milissegundos. Resolução centralizada em src/shared/utils/runtimeTimeouts.ts.

Hierarquia de Tempos Limite

REQUEST_TIMEOUT_MS (substituição global)
├─→ FETCH_TIMEOUT_MS (chamadas a fornecedores a montante, predefinição: 600000)
│   ├─→ FETCH_HEADERS_TIMEOUT_MS (herda de FETCH_TIMEOUT_MS)
│   ├─→ FETCH_BODY_TIMEOUT_MS (herda de FETCH_TIMEOUT_MS)
│   ├─→ TLS_CLIENT_TIMEOUT_MS (herda de FETCH_TIMEOUT_MS)
│   │   └── TLS_FIRST_BYTE_WATCHDOG_MS (independente, predefinição: 10000)
│   ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (independente, predefinição: 15000)
│   ├── FETCH_CONNECT_TIMEOUT_MS (independente, predefinição: 30000)
│   └── FETCH_KEEPALIVE_TIMEOUT_MS (independente, predefinição: 4000)
├─→ STREAM_IDLE_TIMEOUT_MS (herda de REQUEST_TIMEOUT_MS, predefinição: 600000)
├─→ STREAM_ACTIVE_TIMEOUT_MS (independente, predefinição: 1260000; 0 desativa)
├─→ STREAM_READINESS_TIMEOUT_MS (herda de REQUEST_TIMEOUT_MS, predefinição: 80000)
├─→ STREAM_READINESS_MAX_TIMEOUT_MS (limita as extensões adaptativas de prontidão, predefinição: 180000)
└─→ API_BRIDGE_PROXY_TIMEOUT_MS (herda de REQUEST_TIMEOUT_MS, predefinição: 30000)
    ├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (derivado, predefinição: 300000)
    ├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (predefinição: 60000)
    ├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (predefinição: 5000)
    └── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (predefinição: 0 = desativado)
Variável Predefinição Descrição
REQUEST_TIMEOUT_MS (não definido) Atalho global — substitui as predefinições de FETCH_TIMEOUT_MS e STREAM_IDLE_TIMEOUT_MS.
FETCH_TIMEOUT_MS 600000 Tempo limite total do pedido HTTP para chamadas a fornecedores a montante.
STREAM_IDLE_TIMEOUT_MS 600000 Período máximo de silêncio entre bytes em bruto provenientes do serviço a montante antes de abortar. Os modelos com raciocínio prolongado raramente pausam durante >90 s.
STREAM_ACTIVE_TIMEOUT_MS 1260000 Duração máxima total de um fluxo SSE ativo; nunca é reiniciada por bytes provenientes do serviço a montante e é independente de REQUEST_TIMEOUT_MS. Derivada do maior timeoutMs por modelo no registo (1200000, Codex), acrescido de uma margem de 60000, para que um modelo autorizado a utilizar todo o seu orçamento nunca seja interrompido a meio da resposta. Defina como 0 para desativar.
OMNIROUTE_SSE_COMMENTS (desativado) Indica se o OmniRoute pode emitir linhas de comentário SSE : (por exemplo, o sinal periódico : keepalive e os rodapés de metadados x-omniroute-*). Desativado por predefinição (#10524), pois os clientes estritamente compatíveis com OpenAI executam JSON.parse em cada linha SSE e falham ao encontrar comentários :; os sinais periódicos data: não são afetados. Defina como on/true/1/yes para voltar a ativar. Utilizado por open-sse/utils/sseHeartbeat.ts.
STREAM_READINESS_TIMEOUT_MS 80000 Tempo para receber o primeiro evento SSE que não seja um ping. Herda REQUEST_TIMEOUT_MS quando este está definido.
STREAM_READINESS_MAX_TIMEOUT_MS 180000 Janela adaptativa máxima de prontidão para o primeiro evento em pedidos de streaming de grande dimensão, com utilização intensiva de ferramentas ou com elevado nível de raciocínio.
OMNIROUTE_AGENT_GOAL_POLICY_ENABLED true Interruptor de emergência para a heurística /goal. Defina como false/0/off para desativar totalmente a deteção — os tempos limite de prontidão e a recuperação do fluxo nunca são aumentados pelo corpo/cabeçalhos do pedido, mitigando a amplificação de tempos limite controlada pelo cliente.
OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS 600000 Janela máxima de prontidão para o primeiro evento em execuções de agente /goal detetadas ou pedidos forçados com x-omniroute-agent-goal.
OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY true Ativa automaticamente a recuperação antecipada do fluxo para execuções de agente /goal detetadas. Defina como false/0/off para desativar a adesão específica de objetivo. Isto apenas pode ADICIONAR recuperação à predefinição do operador — nunca substitui uma desativação explícita nas definições de STREAM_RECOVERY_ENABLED/BD.
OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS true Remove eventos SSE codex.* não padronizados (por exemplo, codex.rate_limits) que fazem com que responses.stream() do SDK da OpenAI falhe com um erro 502. ATIVADO por predefinição (#11014). Defina como 0/false/no/off para os reencaminhar.
OMNIROUTE_CODEX_APPSERVER_WS (não definido) Transporte do app-server Codex de ativação opcional. Ponto final WebSocket (ws:///wss://) de um sidecar local codex app-server. Quando definido em conjunto com um token, os pedidos Codex são encaminhados por JSON-RPC para o sidecar em vez de utilizarem a API HTTP Responses. Também pode ser definido por ligação através de providerSpecificData.codexAppServerUrl. Utilizado por open-sse/executors/codex/appServerConfig.ts.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN (não definido) Token de capacidade/bearer incorporado apresentado ao app-server. Substituição por ligação: providerSpecificData.codexAppServerToken.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE (não definido) Caminho para um ficheiro que contém o token de capacidade do app-server (de codex app-server --ws-token-file). Utilizado quando OMNIROUTE_CODEX_APPSERVER_WS_TOKEN não está definido. Substituição por ligação: providerSpecificData.codexAppServerTokenFile.
OMNIROUTE_CODEX_APPSERVER_CWD /tmp Diretório de trabalho no qual é executado o turno do app-server. Substituição por ligação: providerSpecificData.codexAppServerCwd.
OMNIROUTE_CODEX_APPSERVER_APPROVAL (não definido) Política de aprovação transmitida ao turno do app-server (por exemplo, never, on-request). Substituição por ligação: providerSpecificData.codexAppServerApprovalPolicy.
OMNIROUTE_CODEX_APPSERVER_SANDBOX (não definido) Política de sandbox transmitida ao turno do app-server (por exemplo, read-only, workspace-write, danger-full-access). Quando não está definida, o executor utiliza workspace-write por predefinição (reforçado; anteriormente danger-full-access). Substituição por ligação: providerSpecificData.codexAppServerSandbox.
OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE false Aprova automaticamente os pedidos de aprovação do próprio app-server (execução de comandos/ficheiros/permissões no anfitrião). Desativado por predefinição — os pedidos são automaticamente recusados; as chamadas de ferramentas do harness não são afetadas (percorrem o encaminhamento separado item/tool/call). Aceita true/1/yes. Substituição por ligação: providerSpecificData.codexAppServerAutoApprove.
FETCH_HEADERS_TIMEOUT_MS = FETCH_TIMEOUT_MS Tempo para receber os cabeçalhos da resposta.
OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS 30000 (30s) Tempo máximo de espera pelo início da resposta (ms) para cada tentativa direta sem proxy. Um timeout provoca uma nova tentativa, uma vez, num socket novo; defina como 0 para desativar o limite e manter o comportamento anterior.
FETCH_BODY_TIMEOUT_MS = FETCH_TIMEOUT_MS Tempo para receber o corpo completo da resposta.
FETCH_CONNECT_TIMEOUT_MS 30000 Timeout para o estabelecimento da ligação TCP.
FETCH_KEEPALIVE_TIMEOUT_MS 4000 Timeout de inatividade do socket keep-alive.
TLS_CLIENT_TIMEOUT_MS = FETCH_TIMEOUT_MS Timeout do proxy de impressão digital TLS (wreq-js).
TLS_FIRST_BYTE_WATCHDOG_MS 10000 Limita especificamente o tempo até ao primeiro byte do corpo no transporte de impressão digital TLS do wreq-js; TLS_CLIENT_TIMEOUT_MS, por si só, não consegue detetar um corpo bloqueado, uma vez que é resolvido assim que os cabeçalhos chegam (#12656). Um timeout cancela o leitor wreq e recorre ao dispatcher direto/proxy; 0 desativa o watchdog.
RESPONSES_FIRST_BYTE_TIMEOUT_MS 15000 Apenas para o executor OpenCode e apenas enquanto a feature flag OPENCODE_RESPONSES_STALL_ROTATION estiver ativa (desativada por predefinição): limita a espera pelo primeiro byte do corpo de uma resposta Responses transmitida em streaming após os respetivos cabeçalhos (#13484). Um fluxo Responses começa com response.created, pelo que a ausência de dados para além desta janela constitui um bloqueio: a conta entra em período de arrefecimento e o pedido roda uma vez para a conta seguinte; um segundo bloqueio falha imediatamente. 0 desativa a proteção, mesmo com a flag ativa.
API_BRIDGE_PROXY_TIMEOUT_MS 30000 Timeout do salto de proxy para pedidos da ponte /v1.
FIRECRAWL_BASE_URL https://api.firecrawl.dev Direciona o executor de obtenção de conteúdos Web do Firecrawl para uma instância alojada pelo utilizador (chave de API opcional fora da cloud).
FIRECRAWL_TIMEOUT_MS 30000 Timeout por pedido para o executor de obtenção de conteúdos Web do Firecrawl.
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS 300000 Timeout global do pedido no servidor para a ponte.
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS 60000 Tempo para enviar os cabeçalhos da resposta através da ponte.
API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS 5000 Timeout de inatividade do keep-alive da ponte.
API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS 0 Timeout do socket não processado (0 = desativado).
SHUTDOWN_TIMEOUT_MS 30000 Período de tolerância após SIGTERM/SIGINT antes da saída forçada.
OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS 120000 Valor de contingência utilizado por src/shared/utils/fetchTimeout.ts quando FETCH_TIMEOUT_MS não está definido.
OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS 8000 Timeout (ms) para as predefinições validationRead e modelsProbe em src/shared/network/safeOutboundFetch.ts. Aumente-o para endpoints lentos (Cerebras, Cloudflare AI, Groq), para evitar alternâncias frequentes entre ativo/erro no painel. Recorre a 8000ms para valores inválidos (<1000) ou não numéricos.
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS 25000 Timeout de fetch específico do relay em open-sse/utils/proxyFetch.ts (#9158). Um relay bloqueado tem de falhar antes do timeout do cliente/agente (~30s), para que os autores das chamadas vejam uma falha específica do relay em vez de um timeout genérico do serviço a montante. Limitado a 29000 para garantir que é sempre acionado primeiro.
OMNIROUTE_RETRY_BACKOFF_MS 10 Intervalo de espera partilhado entre novas tentativas para os fluxos de tentativa única adicional direta/relay/proxy em open-sse/utils/proxyFetch.ts (#9158). 0 = repetir imediatamente.
OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS 60000 Timeout nativo do pedido wreq-js (claudeTlsClient.ts).
OMNIROUTE_CLAUDE_TLS_GRACE_MS 10000 Período de tolerância do prazo-limite absoluto de JS adicionado ao timeout nativo.
OMNIROUTE_PPLX_TLS_TIMEOUT_MS 30000 Timeout nativo do pedido wreq-js (perplexityTlsClient.ts).
OMNIROUTE_PPLX_TLS_GRACE_MS 10000 Período de tolerância do prazo-limite absoluto de JS adicionado ao timeout nativo.
OMNIROUTE_PPLX_SEARCH_HINT 0 (desativado) Acrescenta "Tem uma pesquisa Web integrada. Responda diretamente às perguntas utilizando os resultados da pesquisa." à mensagem de sistema do autor da chamada (perplexity-web/protocol.ts). Desativado por predefinição — o Perplexity pesquisa de qualquer forma, e a frase aparece nas respostas como metacomentário para clientes de programação. Defina como 1/true/yes/on para restaurar.
OMNIROUTE_GROK_TLS_TIMEOUT_MS 60000 Tempo limite do pedido nativo do wreq-js (grokTlsClient.ts).
OMNIROUTE_GROK_TLS_GRACE_MS 10000 Período de tolerância do prazo-limite absoluto do JS acrescentado ao tempo limite nativo.
OMNIROUTE_NOTION_TLS_TIMEOUT_MS 30000 Tempo limite do pedido nativo do wreq-js (notionTlsClient.ts); notion-web aumenta-o por pedido para 180000 em gerações longas.
OMNIROUTE_NOTION_TLS_GRACE_MS 10000 Período de tolerância do prazo-limite absoluto do JS acrescentado ao tempo limite nativo.
OMNIROUTE_BROWSER_POOL on Pool partilhado de browsers Playwright para conversação com cookies Web suportada por browser (browserPool.ts); defina como off para desativar.
OBSCURA_BIN auto-detect Caminho para o binário obscura utilizado como motor principal pelo pool de browsers e pelo executor do Cloudflare Playground (open-sse/services/obscura.ts); detetado automaticamente no PATH do sistema quando não está definido.
OBSCURA_CDP_ENDPOINT (não definido) Aponta para uma instância do Obscura já em execução (http://host:port), em vez de iniciar uma; o módulo não é responsável por esse processo (open-sse/services/obscura.ts).
OBSCURA_PORT porta livre aleatória Porta explícita para o obscura serve iniciado; é escolhida automaticamente uma porta livre quando não está definida (open-sse/services/obscura.ts).
WEB_COOKIE_USE_BROWSER 0 Encaminha um pedido de conversação com cookies Web para o percurso suportado por browser (browserBackedChat.ts); 1 para ativar.
KIMI_WEB_BASE_URL https://www.kimi.ai URL base do executor Kimi Web (Connect-RPC internacional do kimi.ai) (kimi-web.ts); substitua apenas para endpoints de espelho/proxy.
KIMI_WEB_CHAT_URL <KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat Endpoint completo de conversação para o executor Kimi Web (kimi-web.ts).
OMNIROUTE_LOGIN_BROWSER_PATH (detetado automaticamente) Caminho para um executável do Chrome/Edge do sistema para o início de sessão interativo no browser do Adobe Firefly (adobeFireflyBrowserLogin.ts); substitui a deteção automática específica de cada SO.
OMNIROUTE_STANDALONE_DIR saída autónoma .build/ Substituição, durante a compilação, do diretório de saída autónomo utilizado pelo passo de colocação conjunta posterior à compilação (scripts/build/colocate-standalone.mjs); ferramentas de compilação, não de tempo de execução.

As tentativas de destinos combinados herdam o tempo limite resolvido do pedido a montante (FETCH_TIMEOUT_MS, ou REQUEST_TIMEOUT_MS quando este fornece o valor predefinido da obtenção). Defina targetTimeoutMs numa combinação, nos valores predefinidos da combinação ou numa substituição do fornecedor apenas para tornar a contingência da combinação mais rápida; os valores acima do tempo limite atual a montante são limitados ao tempo limite a montante.

comboTimeoutMs é um orçamento cronológico separado para toda a combinação, abrangendo os destinos de contingência. Deixe-o não definido ou defina-o como 0 para manter a iteração ilimitada (o mecanismo de interrupção de bloqueios de 10 minutos COMBO_LOOP_SAFETY_TIMEOUT_MS continua a aplicar-se). Um valor positivo substitui esse mecanismo de segurança para a combinação. Mantenha comboTimeoutMs superior a targetTimeoutMs para que a contingência continue a ter tempo após um primeiro destino lento.

Limiares do disjuntor

Ajuste do disjuntor ao nível do fornecedor. Os valores predefinidos refletem os valores dimensionados utilizados desde a v3.6 para mais de 500 ligações.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD 8 open-sse/config/constants.ts Limiar de falhas consecutivas para fornecedores OAuth antes de o disjuntor disparar.
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS 60000 open-sse/config/constants.ts Janela de reposição (ms) para o disjuntor de fornecedores OAuth.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD 12 open-sse/config/constants.ts Limiar de falhas consecutivas para fornecedores com chave de API.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS 30000 open-sse/config/constants.ts Janela de reposição (ms) para o disjuntor de fornecedores com chave de API.
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD 2 open-sse/config/constants.ts Limiar de falhas consecutivas para fornecedores locais (Ollama, LM Studio, ...).
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS 15000 open-sse/config/constants.ts Janela de reposição (ms) para o disjuntor de fornecedores locais.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD 10 open-sse/config/constants.ts Disjuntor ao nível do fornecedor: falhas dentro da janela antes de todo o fornecedor OAuth entrar em período de espera.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS 900000 open-sse/config/constants.ts Disjuntor ao nível do fornecedor: janela móvel de contagem de falhas (ms) para fornecedores OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS 300000 open-sse/config/constants.ts Disjuntor ao nível do fornecedor: período de espera (ms) após ser atingido o limiar do fornecedor OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD 5 open-sse/config/constants.ts O fornecedor OAuth entra no estado DEGRADED ao atingir este número de falhas.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER 8 open-sse/config/constants.ts Multiplicador máximo de escalada de resetTimeout para fornecedores OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT 2 open-sse/config/constants.ts O fornecedor OAuth escala após este número de ciclos em estado aberto.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD 15 open-sse/config/constants.ts Disjuntor ao nível do fornecedor: falhas dentro da janela antes de todo o fornecedor com chave de API entrar em período de espera.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS 1800000 open-sse/config/constants.ts Disjuntor ao nível do fornecedor: janela móvel de contagem de falhas (ms) para fornecedores com chave de API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS 600000 open-sse/config/constants.ts Disjuntor ao nível do fornecedor: período de espera (ms) após ser atingido o limiar do fornecedor com chave de API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD 7 open-sse/config/constants.ts O fornecedor com chave de API entra no estado DEGRADED ao atingir este número de falhas.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER 4 open-sse/config/constants.ts Multiplicador máximo de escalada de resetTimeout para fornecedores com chave de API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT 3 open-sse/config/constants.ts O fornecedor com chave de API escala após este número de ciclos em estado aberto.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD 2 open-sse/config/constants.ts Disjuntor ao nível do fornecedor: falhas antes de todo o fornecedor local entrar em período de espera.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS 300000 open-sse/config/constants.ts Disjuntor ao nível do fornecedor: janela móvel de contagem de falhas (ms) para fornecedores locais.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS 60000 open-sse/config/constants.ts Disjuntor ao nível do fornecedor: período de espera (ms) após ser atingido o limiar do fornecedor local.
PIN_DROP_BACKOFF_LEVEL 2 open-sse/services/combo.ts Nível de recuo no qual o fornecedor de uma afixação da cache de contexto é considerado persistentemente indisponível e a afixação é removida para permitir a ativação pós-falha.
PIN_DROP_GRACE_MS 20000 open-sse/services/combo.ts Janela antioscilação (ms) que tolera períodos de espera transitórios breves antes de remover uma afixação da cache de contexto.

Cenários

Cenário Configuração
Geração de código de longa duração REQUEST_TIMEOUT_MS=900000 (15 min)
Limitar a duração total do fluxo STREAM_ACTIVE_TIMEOUT_MS=1260000 (21 min)
Falha rápida para API de produção API_BRIDGE_PROXY_TIMEOUT_MS=10000
Modelos com raciocínio prolongado STREAM_IDLE_TIMEOUT_MS=300000 (5 min entre blocos)

16. Registo

O sistema de registo escreve tanto em stdout como em ficheiros de registo com rotação. Toda a configuração é lida por src/lib/logEnv.ts.

Variável Predefinição Descrição
APP_LOG_LEVEL info Nível mínimo de registo: debug, info, warn, error.
APP_LOG_FORMAT text Formato de saída: text (legível por humanos) ou json (estruturado).
APP_LOG_TO_FILE true Escreve os registos num ficheiro, além de stdout.
APP_LOG_FILE_PATH logs/application/app.log Caminho do ficheiro de registo (relativo à raiz do projeto ou a DATA_DIR).
APP_LOG_MAX_FILE_SIZE 50M Tamanho máximo do ficheiro antes da rotação. Aceita: 50M, 1G, 512K ou bytes simples.
APP_LOG_RETENTION_DAYS 7 Número de dias durante os quais são mantidos os ficheiros de registo da aplicação sujeitos a rotação.
APP_LOG_MAX_FILES 20 Número máximo de cópias de segurança dos ficheiros de registo sujeitos a rotação.
CALL_LOG_RETENTION_DAYS 7 Número de dias durante os quais são mantidas na base de dados as entradas de registo de pedidos/chamadas.
CALL_LOG_MAX_ENTRIES 10000 Número máximo de entradas de registo de chamadas na memória intermédia.
CALL_LOGS_TABLE_MAX_ROWS 100000 Número máximo de linhas na tabela SQLite call_logs antes da eliminação.
ENABLE_REQUEST_LOGS (não definido) Força a ativação ou desativação do registo detalhado de pedidos, substituindo a definição do painel.
MAX_PENDING_REQUEST_AGE_MS 3600000 (1 hora) Idade máxima das entradas órfãs de registo de pedidos ativos antes da limpeza em memória.
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS false Armazena fragmentos de fluxo nos artefactos do pipeline quando call_log_pipeline_enabled=true. Opcional (true) — desativado por predefinição para poupar espaço em disco.
CALL_LOG_PIPELINE_MAX_SIZE_KB 512 Tamanho máximo, em KB, dos artefactos de registo de chamadas do pipeline quando call_log_pipeline_enabled=true.
PROXY_LOGS_TABLE_MAX_ROWS 100000 Número máximo de linhas na tabela SQLite proxy_logs antes da eliminação.
PROXY_LOG_INCLUDE_IPS false Inclui os IPs do cliente/de saída e os prefixos das contas nos registos da consola [ProxyEgress]. Os registos de proxy do painel/da base de dados mantêm todos os detalhes.
APP_LOG_ROTATION_CHECK_INTERVAL_MS 60000 (1 min) Frequência com que src/lib/logRotation.ts volta a verificar o tamanho do ficheiro de registo ativo.
CHAT_LOG_TEXT_LIMIT 65536 Comprimento máximo das cadeias de texto mantidas nos artefactos de registo de conversas (predefinição: 64 KB).
CHAT_LOG_ARRAY_TAIL_ITEMS 128 Número de itens da matriz mantidos a partir do fim ao truncar conteúdos de registo de conversas.
CHAT_LOG_MAX_DEPTH 6 Profundidade máxima de aninhamento antes de os conteúdos de registo de conversas serem truncados.
CHAT_LOG_MAX_OBJECT_KEYS 80 Número máximo de chaves de objeto mantidas nos conteúdos de registo de conversas (0 = ilimitado).
CHAT_LOG_MAX_BODY_KB 1024 Tamanho total, em KB, do corpo do pedido/resposta antes de este ser substituído por um resumo simples em vez da cópia completa. Aumente este valor se as conversas agênticas longas apresentarem um marcador de posição em vez das mensagens reais no painel.
CHAT_DEBUG_FILE false Quando definido como verdadeiro, serializeArtifactForStorage ignora o truncamento baseado no tamanho. Apenas para depuração.

17. Otimização da memória

Variável Predefinição Descrição
OMNIROUTE_MEMORY_MB automático (máquina física); 1024 na imagem Docker Limite recomendado da heap V8 (MB) para Docker/execução autónoma. Quando não está definido, é calibrado dinamicamente (~35% da RAM do sistema, limitado ao intervalo [512, 4096]); 512 é apenas o limite mínimo quando não é possível ler a memória total. Em run-standalone.mjs (Docker CMD), um valor explícito é acrescentado como --max-old-space-size e prevalece sobre um sinalizador de heap NODE_OPTIONS em conflito (o último sinalizador do V8 prevalece). omniroute serve continua a dar preferência a um valor de heap existente em NODE_OPTIONS (#5238). Não defina ambos com números diferentes — o processo regista um aviso que identifica ambos os valores e qual prevalece. A imagem Docker oficial define sempre 1024, pelo que a calibração nunca é executada aí. O /v1/responses do agente de programação necessita de 819212288, além de margem disponível no cgroup — consulte Guia do Docker — RAM em tempo de execução.
PROMPT_CACHE_MAX_SIZE 50 Número máximo de entradas de instruções de sistema em cache.
PROMPT_CACHE_MAX_BYTES 2097152 (2 MB) Tamanho total máximo da cache de instruções.
PROMPT_CACHE_TTL_MS 300000 (5 min) TTL das entradas da cache de instruções.
SEMANTIC_CACHE_MAX_SIZE 100 Número máximo de respostas com temperature=0 em cache.
SEMANTIC_CACHE_MAX_BYTES 4194304 (4 MB) Tamanho total máximo da cache semântica.
SEMANTIC_CACHE_TTL_MS 1800000 (30 min) TTL das entradas da cache semântica.
OMNIROUTE_CORPUS_CACHE_SIZE 5 Raízes de corpus locais que mantêm simultaneamente um índice ativo na memória (src/lib/localCorpus/configured.ts). LRU: ao atingir o limite, o índice da raiz utilizada há mais tempo é removido e reconstruído na consulta seguinte. Limitado a um mínimo de 1; um valor não numérico reverte para a predefinição.
STREAM_HISTORY_MAX 50 Número máximo de eventos de fluxo recentes na memória intermédia da vista em direto do Painel.
CONTEXT_LENGTH_DEFAULT 128000 Limite máximo global de contexto usado como alternativa para modelos sem configuração explícita.
USAGE_TOKEN_BUFFER 100 Margem adicional de tokens reservada ao controlar quotas de utilização.

Compressão

Variável Predefinição Descrição
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS não definido Confia no .rtk/filters.json do projeto sem um hash .rtk/trust.json. Utilize apenas em desenvolvimento local controlado.

Motor de memória (plano 21)

Custo no ciclo de eventos da memória, das competências e da atualização de tokens (#10349)

O OmniRoute é um único processo Node. A extração/obtenção de memória, a injeção de competências e a atualização de tokens dos fornecedores são executadas no mesmo ciclo de eventos que GET /healthz e o painel. Não são uma thread de trabalho.

Trabalho Código Predefinição Controlo pelo operador
Extração / recuperação de memória src/lib/memory/ memoryEnabled no painel (ativado por predefinição) Desative Definições → Memória. Não existe um interruptor de desativação separado através de variáveis de ambiente para além de desativar a funcionalidade nas definições.
Injeção de competências src/lib/skills/injection.ts skillsEnabled no painel (ativado por predefinição) Desative Definições → Memória/Competências (skillsEnabled). As opções de sandbox abaixo apenas limitam a execução depois de a injeção já estar ativada.
Renovação de tokens src/sse/services/tokenRefresh.ts Ativada para fornecedores OAuth/web ligados Desligue o fornecedor ou deixe que os tokens permaneçam válidos; atualmente, não existe uma variável de ambiente TOKEN_REFRESH=0.

Se /healthz estiver lento numa máquina sem carga, desative primeiro a memória e as competências e, em seguida, verifique a carga do catálogo/compressão (#10303, #9685). Estas funcionalidades cedem a execução nos pontos de await, mas continuam a competir pela única thread.

Opções da camada de embeddings, do armazenamento vetorial e de reordenação para o subsistema de memória persistente (src/lib/memory/).

Variável Predefinição Descrição
MEMORY_EMBEDDING_CACHE_TTL_MS 300000 (5 min) TTL da cache de embeddings em memória (por assinatura de origem/modelo/dimensão).
MEMORY_EMBEDDING_CACHE_MAX 1000 Número máximo de entradas LRU mantidas na cache de embeddings.
MEMORY_TRANSFORMERS_MODEL Xenova/all-MiniLM-L6-v2 ID do repositório HF para o pipeline MiniLM local opcional de @huggingface/transformers (~23 MB int8, ~400 MB de RAM).
MEMORY_STATIC_MODEL minishlab/potion-base-8M ID do repositório HF para o embedder estático de tabela de consulta potion/Model2Vec. Transferido de forma diferida para o diretório de cache.
MEMORY_STATIC_CACHE_DIR <DATA_DIR>/embeddings Diretório utilizado para armazenar em cache os ficheiros do modelo potion estático. Quando não está definido, a predefinição é um diretório sob DATA_DIR.
HF_HUB_ENDPOINT https://huggingface.co Substitui o URL base do Hugging Face Hub utilizado por staticPotion.ts (por exemplo, um endpoint espelho para configurações sem acesso à Internet).
MEMORY_VEC_TOP_K 20 Top-K predefinido utilizado pela pesquisa vetorial por força bruta de sqlite-vec em src/lib/memory/vectorStore.ts.
MEMORY_RRF_K 60 Constante k de Reciprocal Rank Fusion para recuperação híbrida FTS5 + vetorial (receita sqlite-vec).
VECTOR_STORE_DISABLE_VEC false Ponto de teste/diagnóstico em getVectorStore() (src/lib/memory/vectorStore.ts): quando definido como true, força o armazenamento vetorial a null (simula um ambiente cloud/WASM sem sqlite-vec), reduzindo a recuperação de memória à pesquisa por palavras-chave FTS5. Deixe por definir em produção.
NOTION_API_KEY (não definido) Chave de API para o backend Notion (utilizada pela predefinição de backend conhecido de genericBackend.ts).
NOTION_API_URL https://api.notion.com/v1 URL base da API do Notion (pode ser substituído para alternativas ao Notion alojadas localmente).
OBSIDIAN_API_KEY (não definido) Chave de API para o backend Obsidian Vault (utilizada pela predefinição de backend conhecido de genericBackend.ts).
OBSIDIAN_API_URL http://localhost:27123 URL base da API do Obsidian Vault (pode ser substituído para um cofre remoto).
MEMORY_TYPED_DECAY_ENABLED false Interruptor principal da degradação de memória tipificada TV6. Adesão explícita (desativado por predefinição) — a limpeza elimina as memórias degradadas. Quando está desativado, access_count/last_accessed_at são apenas telemetria e nada é eliminado.
MEMORY_TYPED_DECAY_EPISODIC_DAYS 30 TTL (dias) após o qual uma memória episodic não utilizada se degrada. 0 também torna as memórias episódicas imunes. Os tipos duradouros (factual/procedural/semantic) são sempre imunes. O relógio de degradação é reiniciado com base em last_accessed_at.
MEMORY_TYPED_DECAY_ACCESS_IMMUNITY 3 Uma memória injetada >= este número de vezes torna-se imune à degradação, independentemente do tipo. 0 desativa a imunidade por acesso.
MEMORY_TYPED_DECAY_SWEEP_INTERVAL 0 (desativado) Intervalo (segundos) para a limpeza periódica opcional da degradação em src/lib/memory/typedDecay.ts. 0/não definido = sem limpeza periódica. Requer adesão explícita dupla: também exige MEMORY_TYPED_DECAY_ENABLED=true.
OMNIROUTE_STRICT_SYSTEM_PROVIDERS (não definido) IDs de fornecedores separados por vírgulas (sem distinção entre maiúsculas e minúsculas) que aceitam uma mensagem system apenas no índice 0 (src/lib/memory/injection.ts). Para estes, a inserção de memória a meio do array, segura para a cache, não é segura em conversas com vários turnos, pelo que a memória é combinada/adicionada no início como a primeira mensagem de sistema. A predefinição inclui apenas xiaomi-mimo/mimo; acrescente endpoints compatíveis com OpenAI alojados localmente (por exemplo, Qwen3.5+/3.6) cujo modelo de chat imponha a mesma restrição de uma única mensagem de sistema inicial.

Exemplo de Docker com pouca RAM

128 destina-se apenas ao painel. Os agentes de programação neste heap apresentam FATAL ERROR durante pedidos longos a /v1/responses. Não utilize este exemplo como gateway para Claude/Codex/Grok.

OMNIROUTE_MEMORY_MB=128
PROMPT_CACHE_MAX_SIZE=20
PROMPT_CACHE_MAX_BYTES=524288        # 512 KB
SEMANTIC_CACHE_MAX_SIZE=25
SEMANTIC_CACHE_MAX_BYTES=1048576     # 1 MB
STREAM_HISTORY_MAX=10

18. Sincronização de preços

Sincronização automática dos dados de preços dos modelos a partir de fontes externas.

Variável Predefinição Ficheiro de origem Descrição
PRICING_SYNC_ENABLED false src/lib/pricingSync.ts Sincronização periódica de preços opcional.
PRICING_SYNC_INTERVAL 86400 (24h) src/lib/pricingSync.ts Intervalo de sincronização, em segundos.
PRICING_SYNC_SOURCES litellm src/lib/pricingSync.ts Fontes de dados separadas por vírgulas.

Sincronização do ELO da Arena

Variável Predefinição Ficheiro de origem Descrição
ARENA_ELO_SYNC_ENABLED true src/shared/constants/featureFlagDefinitions.ts Sincronização periódica do ELO da tabela classificativa da Arena AI, configurável nas funcionalidades experimentais do Painel ou com false para a desativar.
MODELS_CATALOG_PREFIX_MODE dual src/shared/constants/featureFlagDefinitions.ts, src/app/api/v1/models/catalog.ts Forma do prefixo utilizada nos identificadores de modelos em GET /v1/models. dual anuncia tanto o prefixo curto do alias como o prefixo canónico do fornecedor para cada modelo (retrocompatibilidade — aproximadamente duplica o catálogo); alias emite um identificador por modelo; canonical emite apenas o prefixo completo do identificador do fornecedor (os fornecedores cujo alias já é o identificador canónico mantêm a sua única entrada). Os clientes podem substituir esta definição em cada pedido com ?prefix=alias. Consulte API_REFERENCE.
ARENA_ELO_SYNC_INTERVAL 86400 (24h) src/lib/arenaEloSync.ts Intervalo de sincronização, em segundos.

Fornecedor do Playground do PromptQL (não oficial/experimental)

Ponte de sessão GraphQL obtida por engenharia inversa para prompt.ql.app (src/shared/constants/providers/web-cookie.ts). Todas as opções são facultativas — as predefinições apontam para os endpoints públicos do playground; substitua-as apenas para uma implementação do PromptQL autoalojada/alternativa.

Variável Predefinição Ficheiro de origem Descrição
PROMPTQL_GRAPHQL_ENDPOINT https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql open-sse/executors/promptql.ts Endpoint GraphQL utilizado para operações de chat/sessão.
PROMPTQL_CREDITS_ENDPOINT https://data.pro.ql.app/v1/graphql open-sse/executors/promptql.ts, open-sse/services/usage/promptql.ts Endpoint GraphQL utilizado para consultar o saldo/a utilização de créditos.
PROMPTQL_TOKEN_REFRESH_URL https://auth.pro.ql.app/ddn/project/token open-sse/executors/promptql.ts Endpoint utilizado para tentar atualizar o token.
PROMPTQL_POLL_TIMEOUT_MS 180000 open-sse/executors/promptql.ts Tempo máximo (ms) para consultar thread_events antes de expirar.

Fornecedor Web HyperAgent (Não oficial/Experimental)

Ponte de sessão obtida por engenharia inversa para hyperagent.com (src/shared/constants/providers/web-cookie.ts). Opcional — a predefinição aponta para o endpoint público de faturação/utilização; substitua-a apenas para uma implementação HyperAgent autoalojada/alternativa.

Variável Predefinição Ficheiro de origem Descrição
HYPERAGENT_USAGE_URL https://hyperagent.com/api/settings/billing/usage open-sse/services/usage/hyperagent.ts Endpoint utilizado para obter blocos de créditos de faturação/utilização.

Quotas de utilização do Kilo Code

Consulta do saldo pessoal em USD e da utilização do Kilo Pass para o fornecedor Kilo Code. Opcional — a predefinição aponta para a API pública do Kilo; substitua-a apenas para um relay/fixture de teste. A autenticação utiliza o token de acesso OAuth existente da ligação.

Variável Predefinição Ficheiro de origem Descrição
KILO_API_URL https://api.kilo.ai open-sse/services/usage/kilocode.ts URL base utilizado para obter o saldo pessoal do Kilo Code e a utilização do Kilo Pass.

Fornecedor Web Adobe Firefly (Não oficial/Experimental)

Atualização de sessão controlada pelo browser para o fornecedor Web Adobe Firefly (open-sse/services/adobeFireflyBrowserLogin.ts, open-sse/services/adobeFireflySession.ts, open-sse/services/adobeFireflyClient.ts). Opcional — todas as predefinições estão otimizadas para uma instalação normal em computador.

Removido em #9255. O antigo runtime do Chrome associado através de CDP (adobeFireflyChromeRuntime.ts) foi substituído por um serviço de início de sessão no browser com Playwright, e as respetivas opções deixaram de existir. As variáveis ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART, bem como ADOBE_FIREFLY_LOGIN_WAIT_MS e ADOBE_FIREFLY_FORTER_WAIT_MS, não são lidas em nenhum ponto da base de código — defini-las não produz qualquer efeito.

Variável Predefinição Ficheiro de origem Descrição
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Defina como 1 para utilizar o Chrome verdadeiramente sem interface gráfica (não funciona para geração; apenas para depuração).
ADOBE_FIREFLY_BROWSER_REFRESH 1 open-sse/services/adobeFireflySession.ts Adesão/desativação do aquecimento proativo do browser. 0 desativa o aquecimento proativo (a recuperação de erros 408 a meio de um lote continua a aplicar-se).
ADOBE_FIREFLY_SESSION_DISK 1 open-sse/services/adobeFireflySession.ts Defina como 0 para desativar a persistência da sessão do Adobe Firefly no disco.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS (não definido) open-sse/services/adobeFireflySession.ts Intervalo mínimo (ms) imposto entre envios sucessivos, substituindo a predefinição incorporada.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS (não definido) open-sse/services/adobeFireflySession.ts Intervalo adicional (ms) acrescentado após um lote bem-sucedido, substituindo a predefinição incorporada.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS (não definido) open-sse/services/adobeFireflyClient.ts Atraso base (ms) antes do envio de um pedido de geração, substituindo a predefinição incorporada.

19. Sincronização de modelos (Desenvolvimento)

Variável Predefinição Ficheiro de origem Descrição
MODELS_DEV_SYNC_ENABLED (não definida) src/lib/modelsDevSync.ts Substituição rígida para a sincronização de preços do models.dev. Não definida = respeita Definições > IA (modelsDevSyncEnabled). 0/false/off/no prevalece sobre a BD e ignora tanto a sincronização periódica como as análises SQL/JSON de getModelsDevPricing() (recuperação quando o painel está bloqueado no mesmo ciclo de eventos). 1/true/on/yes força a ativação da sincronização. Guardar/limpar preços continua a chamar backupDbFile("pre-write"), que não efetua qualquer operação durante a limitação de 60 minutos ou com DISABLE_SQLITE_AUTO_BACKUP.
MODELS_DEV_SYNC_INTERVAL 86400 (24 h) src/lib/modelsDevSync.ts Intervalo de sincronização do catálogo de modelos durante o desenvolvimento, em segundos.
CONTEXT_WINDOW_RECONCILE_INTERVAL 86400 (24 h) src/lib/contextWindowResolver.ts Intervalo (segundos) para o reconciliador autocorretivo da janela de contexto (5004): fixa as janelas declaradas pelo fornecedor, obtidas através da deteção em /models, como substituições auto:discovery quando divergem do catálogo. Defina como 0 para desativar. Reutiliza dados já sincronizados (sem nova obtenção); nunca substitui substituições manual.

20. Definições específicas do fornecedor

Variável Predefinição Ficheiro de origem Descrição
OPENROUTER_CATALOG_TTL_MS 86400000 (24 h) src/lib/catalog/openrouterCatalog.ts TTL da cache do catálogo de modelos do OpenRouter.
MODEL_CATALOG_INCLUDE_NAMES true src/shared/constants/featureFlagDefinitions.ts Inclui campos name de apresentação nas respostas de /v1/models. Desative para clientes que esperem apenas IDs.
CATALOG_BUILD_TIMEOUT_MS 8000 (8 s) src/app/api/v1/models/catalogCache.ts Limite de espera no percurso a frio para uma reconstrução agregada do catálogo através de GET /v1/models (#12627). Em caso de tempo limite, é devolvida uma última resposta 200 válida, caso exista.
OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS 2592000000 (30 dias) src/lib/db/models/activeSyncedCatalog.ts Período após o qual a lista de modelos sincronizada de uma ligação deixa de ser autoritativa para o encaminhamento, recorrendo então ao registo (#12849). As linhas sem carimbo de data/hora são consideradas obsoletas.
NANOBANANA_POLL_TIMEOUT_MS 120000 open-sse/handlers/imageGeneration.ts Tempo máximo de espera por tarefas de geração de imagens do NanoBanana.
NANOBANANA_POLL_INTERVAL_MS 2500 open-sse/handlers/imageGeneration.ts Frequência de consulta do estado das tarefas do NanoBanana.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyUpscale.ts Atraso base da espera exponencial entre novas tentativas de submissão de aumento de resolução ao Adobe Firefly.
AWS_REGION (não definido) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Região utilizada para construir pontos finais do AWS Bedrock (Kiro, áudio).
AWS_DEFAULT_REGION (não definido) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Valor de contingência quando AWS_REGION não está definido.
CLOUDFLARE_ACCOUNT_ID (não definido) open-sse/executors/cloudflare-ai.ts ID da conta do Cloudflare Workers AI.
CLOUDFLARE_PLAYGROUND_CHROME_PATH (não definido) open-sse/executors/cloudflare-playground.ts Caminho completo para o binário do Chrome para computador do executor do Cloudflare AI Playground, utilizado quando a verificação da assinatura do modo sem interface bloqueia o Chromium incluído no Playwright.
CLOUDFLARE_API_BASE https://api.cloudflare.com/client/v4 src/app/api/settings/proxy/cloudflare-deploy/route.ts Substitui a base da API REST do Cloudflare utilizada pelo implementador do relé Workers do conjunto de proxies (#4640 / 9router#1360).
NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx Nome predefinido do projeto do worker sugerido na janela modal «Implementar relé» do conjunto de proxies.
NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Defina como false para ocultar a opção de relé do Cloudflare Workers no separador Conjunto de proxies.
CLOUDFLARED_BIN deteção automática src/lib/cloudflaredTunnel.ts Caminho personalizado para o binário cloudflared.
CLOUDFLARED_PROTOCOL http2 src/lib/cloudflaredTunnel.ts Protocolo de transporte do túnel: http2 (predefinição), quic ou auto.
CLOUDFLARED_CONFIG (não definido) src/lib/cloudflaredTunnel.ts Caminho para um config.yml do cloudflared gerido localmente (com tunnel:, credentials-file:, ingress:). Quando definido, o OmniRoute executa tunnel --config <path> run (túnel com nome) em vez de um túnel rápido efémero.
CLOUDFLARED_HOSTNAME (da entrada de configuração) src/lib/cloudflaredTunnel.ts Substituição do nome de anfitrião público do túnel com nome (por exemplo, ai.example.com), comunicado como publicUrl/apiUrl. Quando não está definido, é lido a partir do primeiro nome de anfitrião de ingress da configuração.
DENO_DEPLOY_API_BASE https://api.deno.com/v2 src/app/api/settings/proxy/deno-deploy/route.ts Substitui a base da API REST do Deno Deploy utilizada pelo implementador do relay do conjunto de proxies (#4643 / 9router#1437).
NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT omniroute-deno-relay src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx Nome predefinido da aplicação Deno Deploy sugerido na janela modal «Deploy Relay» do conjunto de proxies.
NEXT_PUBLIC_DENO_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Defina como false para ocultar a opção de relay do Deno Deploy no separador Proxy Pool.
SEARCH_CACHE_TTL_MS 300000 (5 min) open-sse/services/searchCache.ts TTL da colocação em cache das respostas da API de pesquisa (Perplexity, Brave, etc.).
ENABLE_CC_COMPATIBLE_PROVIDER false src/shared/utils/featureFlags.ts Apresenta a interface experimental de fornecedores compatíveis com CC para relays exclusivos do Claude Code.
NINEROUTER_HOST 127.0.0.1 open-sse/executors/ninerouter.ts Substitui o anfitrião no qual a instância incorporada do 9router escuta.
NINEROUTER_PORT 20130 open-sse/executors/ninerouter.ts Substitui a porta na qual a instância incorporada do 9router escuta.
EMBED_WS_PROXY_HOST 127.0.0.1 src/lib/services/embedWsProxy.ts Anfitrião de associação para o proxy WebSocket do serviço incorporado (apenas loopback por predefinição).
EMBED_WS_PROXY_PORT 20131 src/lib/services/embedWsProxy.ts Porta do servidor proxy WebSocket do serviço incorporado.
CLIPROXYAPI_HOST 127.0.0.1 open-sse/executors/cliproxyapi.ts Anfitrião da ponte CLIProxyAPI (integração legada).
CLIPROXYAPI_PORT 5544 open-sse/executors/cliproxyapi.ts Porta da ponte CLIProxyAPI.
CLIPROXYAPI_API_KEY (vazio) open-sse/handlers/chatCore/cliproxyapiCredentials.ts Chave de contingência do plano de dados quando a definição cliproxyapi_api_key está ausente.
CLIPROXYAPI_MANAGEMENT_KEY (vazio) src/lib/services/cliproxyAccountHealth.ts Chave de gestão para leituras do estado de funcionamento das contas a partir de uma instância CLIProxyAPI gerida externamente.
CLIPROXYAPI_CONFIG_DIR ~/.cli-proxy-api src/lib/versionManager/processManager.ts Diretório de configuração da CLIProxyAPI.
CLIPROXY_BIND_HOST 127.0.0.1 docker-compose.yml Interface do anfitrião na qual o docker-compose publica o sidecar cliproxyapi (#12578). O respetivo volume de dados contém credenciais OAuth/API do fornecedor e a imagem fixada não tem qualquer substituição de api-keys do plano de dados baseada em variáveis de ambiente (apenas um config.yaml montado), pelo que 0.0.0.0 expõe um serviço que contém credenciais a toda a LAN.
MUX_SERVICE_PORT 8322 src/lib/services/bootstrap.ts Substitui a porta na qual o daemon incorporado de orquestração de agentes Mux (coder/mux) escuta (sempre em 127.0.0.1).
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Anfitrião de associação/ligação do serviço incorporado Dario (apenas loopback por predefinição).
DARIO_PORT 3456 open-sse/executors/dario.ts Porta do serviço incorporado Dario.
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Anfitrião de associação/ligação do serviço incorporado Dario (apenas loopback por predefinição).
DARIO_PORT 3456 open-sse/executors/dario.ts Porta do serviço incorporado Dario.
LOCAL_HOSTNAMES (vazio) open-sse/config/providerRegistry.ts Nomes de anfitrião adicionais, separados por vírgulas, tratados como «locais» (nomes de serviços Docker, etc.).

ENABLE_CC_COMPATIBLE_PROVIDER destina-se apenas a relays de terceiros que aceitam exclusivamente clientes Claude Code. O OmniRoute reescreve os pedidos para que esses relays os aceitem. Se apenas pretende utilizar a CLI do Claude Code, ou se não tem a certeza do que são estes relays, mantenha esta opção desativada e adicione, em alternativa, um fornecedor normal compatível com Anthropic.


21. Estado dos Proxies

Variável Predefinição Ficheiro de origem Descrição
PROXY_FAST_FAIL_TIMEOUT_MS 2000 src/lib/proxyHealth.ts Tempo limite da verificação rápida de estado.
PROXY_LATENCY_WINDOW_HOURS 3 src/lib/db/proxies.ts Janela temporal (em horas) para calcular a latência média dos proxies candidatos na estratégia de agrupamento otimizada para a latência.
PROXY_HEALTH_CACHE_TTL_MS 30000 src/lib/proxyHealth.ts TTL da cache de resultados da verificação de estado.
PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS 2000 src/lib/proxyHealth.ts TTL da cache para sondagens de estado de proxies que falharam. Mantenha este valor inferior a PROXY_HEALTH_CACHE_TTL_MS para que tempos limite transitórios dos proxies sob concorrência elevada sejam repetidos rapidamente, sem desativar a falha rápida para proxies efetivamente inativos.
PROXY_HEALTH_ENABLED true src/lib/proxyHealth/scheduler.ts Defina como false para desativar o agendador de estado dos proxies em segundo plano, que sonda periodicamente os proxies registados.
PROXY_HEALTH_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Intervalo de varrimento do agendador de estado em segundo plano, em ms (mínimo de 60000).
PROXY_HEALTH_TEST_URL https://httpbin.org/ip src/lib/proxyHealth/probeTarget.ts Alvo da sonda de acessibilidade utilizado pelo agendador e pelo endpoint /api/settings/proxies/auto-test. Aponte-o para um URL interno/alojado localmente para evitar o valor público predefinido.
PROXY_HEALTH_TEST_CONCURRENCY 10 src/lib/proxyHealth/probeTarget.ts Número de sondas iniciadas em simultâneo por lote, partilhado pelo agendador e pelo endpoint /api/settings/proxies/auto-test. O mínimo é 1 e o máximo é 50.
PROXY_HEALTH_TEST_STAGGER_MS 100 src/lib/proxyHealth/probeTarget.ts Atraso em ms entre o início de duas sondas dentro de um lote. Sem este atraso, todo o lote é enviado ao mesmo tempo e um IP de saída partilhado pode acionar o limite de pedidos de um alvo. Defina como 0 para desativar o espaçamento; o máximo é 5000.
PROXY_HEALTH_USE_PROVIDER_TARGET true src/lib/proxyHealth/providerProbeTarget.ts Defina como "false" para deixar de sondar o anfitrião real do fornecedor atribuído a um proxy (GET /models, sem chave de API) e utilizar sempre PROXY_HEALTH_TEST_URL.
PROXY_HEALTH_AUTO_DEACTIVATE false src/lib/proxyHealth/statusPolicy.ts Quando definido como false (predefinição), as sondas automáticas de acessibilidade (o agendador + o botão "Testar tudo" de /api/settings/proxies/auto-test) são apenas de leitura e nunca alteram o estado de um proxy — apenas o operador o define como ativo/inativo, para que uma sonda instável não possa deixar um proxy atribuído inutilizável (#6246). Defina como true para restaurar o comportamento anterior de testar e definir o estado.
PROXY_POOL_EGRESS_OBSERVATION false src/shared/utils/featureFlags.ts Sinalizador de funcionalidade de ativação opcional (consulte FEATURE_FLAGS.md; uma substituição na BD do painel tem precedência). true (ou 1, yes) apresenta a observação apenas de leitura da saída do conjunto sob um conjunto de proxies no painel (IPs de saída distintos, ligações e o maior número observado por trás de um IP nas últimas 24 h, com base no registo do proxy). Nunca é utilizado para encaminhamento.
PROXY_AUTO_REMOVE false src/lib/proxyHealth/scheduler.ts Defina como true para permitir que o agendador remova automaticamente proxies após falhas consecutivas repetidas.
PROXY_AUTO_REMOVE_AFTER 3 src/lib/proxyHealth/scheduler.ts Número de falhas consecutivas antes de o agendador remover automaticamente um proxy (quando PROXY_AUTO_REMOVE=true).
PROXY_AUTO_DISABLE false src/lib/proxyHealth/scheduler.ts Defina como true para permitir que o agendador desative de forma reversível (estado dead, nunca eliminado) um proxy após falhas consecutivas repetidas, em vez de o remover. Alternativa não destrutiva a PROXY_AUTO_REMOVE: o proxy é imediatamente excluído da resolução do conjunto/rotação (o filtro de estado ativo utilizado pela resolução do conjunto de âmbito já o exclui) e é automaticamente reativado assim que voltar a passar nas sondagens. Partilha o limiar PROXY_AUTO_REMOVE_AFTER. Se ambos os sinalizadores forem true, PROXY_AUTO_REMOVE prevalece.
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK false src/shared/constants/featureFlagDefinitions.ts Permite que os fluxos de validação OAuth e de fornecedores ignorem um proxy fixado e estabeleçam ligação diretamente quando as pré-verificações de acessibilidade do proxy falham. A precedência efetiva é: substituição da BD de Sinalizadores de Funcionalidades > variável de ambiente > predefinição.
RATE_LIMIT_MAX_WAIT_MS 30000 (30 s) open-sse/services/rateLimitManager.ts Tempo máximo de espera perante um erro 429 antes de o pedido falhar.
RATE_LIMIT_EXECUTION_MAX_WAIT_MS 600000 (10 min) open-sse/services/rateLimitManager.ts Limite máximo de tempo durante o qual um pedido admitido pode permanecer em execução antes de a respetiva reserva de limite de taxa expirar — dissociado do limite de espera na fila para que o início lento da obtenção em gateways não incrementais não esgote o tempo limite (#12027).
RATE_LIMIT_MAX_QUEUE_DEPTH 0 (desativado) open-sse/services/rateLimitManager.ts Limite de admissão na fila: rejeita com um erro 429 queue_full assim que este número de pedidos já estiver na fila. 0 = ilimitado (predefinição).
RATE_LIMIT_AUTO_ENABLE (não definido) open-sse/services/rateLimitManager.ts Força a ativação/desativação automática da salvaguarda de limite de taxa, independentemente da definição persistida no Painel. Aceita true/1/on para forçar a ativação e false/0/off para forçar a desativação.
PROVIDER_COOLDOWN_ENABLED (não definido → desativado) open-sse/services/providerCooldownTracker.ts Ativa opcionalmente o controlo global, entre pedidos, do período de espera de fornecedores/ligações. DESATIVADO por predefinição (sobrepõe-se ao Período de Espera da Ligação/Disjuntor do Fornecedor). Aceita true/1/on para ativar.
PROVIDER_COOLDOWN_MIN_MS 5000 open-sse/services/providerCooldownTracker.ts Período de espera mínimo (ms) antes de voltar a tentar um fornecedor/uma ligação que tenha falhado. Aumenta exponencialmente com falhas consecutivas. Utilizado apenas quando PROVIDER_COOLDOWN_ENABLED está ativo.
PROVIDER_COOLDOWN_MAX_MS 300000 (5 min) open-sse/services/providerCooldownTracker.ts Limite máximo do período de espera (ms) antes de um fornecedor/uma ligação com falha voltar a ser tentado, independentemente das circunstâncias. Utilizado apenas quando PROVIDER_COOLDOWN_ENABLED.
STREAM_RECOVERY_ENABLED (não definido → desativado) src/lib/resilience/settings.ts (valor inicial) → open-sse/services/streamRecovery.ts (lógica) O que faz: recuperação transparente de streams ascendentes truncados (port do free-claude-code). Retém a janela SSE inicial até STREAM_RECOVERY.HOLDBACK_MS (750 ms), para que um corte pré-confirmação — que ocorre antes de qualquer byte chegar ao cliente — seja reaberto e repetido de forma invisível. Quando ativar: fornecedores/streams ascendentes instáveis que são frequentemente truncados com 0 bytes no início do stream; mantenha DESATIVADO se não puder tolerar até 750 ms adicionais no tempo até ao primeiro token em todos os streams. Aceita true/1/on. Define o valor inicial da definição persistente de Resiliência; depois de definida, prevalece a definição do Dashboard.
STREAM_RECOVERY_MIDSTREAM_ENABLED (não definido → desativado) src/lib/resilience/settings.ts (valor inicial) → open-sse/services/streamRecovery.ts (lógica) O que faz: continuação a meio do stream (Fase 4.4) — após um truncamento pós-confirmação (os bytes já chegaram ao cliente), efetua um novo pedido com o texto parcial como preenchimento prévio do assistente e concatena o sufixo em falta. Apenas para streams de texto simples compatíveis com OpenAI; nunca é acionada enquanto estiver em curso uma chamada de ferramenta. Quando ativar: gerações longas que são interrompidas a meio da resposta e caso aceite que a parte final recuperada chegue de uma só vez, em vez de token a token. Independente de STREAM_RECOVERY_ENABLED (perfil de risco diferente). Aceita true/1/on.
STREAM_THROUGHPUT_WATCHDOG_ENABLED (não definido → desativado) src/lib/resilience/settings.tsopen-sse/services/throughputWatchdog.ts Monitor de débito de saída útil para streams ativos, de ativação opcional. Deteta streams que continuam a enviar blocos, mas permanecem abaixo da taxa configurada de saída do assistente; sinais de atividade, eventos de utilização, deltas vazios e fases de ferramentas/raciocínio não são interpretados como progresso. Separado dos tempos limite por inatividade e dos prazos rígidos.
STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS 30000 src/lib/resilience/settings/normalize.ts Período de tolerância antes da avaliação do débito, limitado a 0600000 ms.
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS 30000 src/lib/resilience/settings/normalize.ts Janela móvel de saída útil, limitada a 1000600000 ms; é necessária uma janela completa antes da interrupção.
STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND 4 src/lib/resilience/settings/normalize.ts Taxa mínima de bytes UTF-8 da saída do assistente (estimativa conservadora de tokens), limitada a 11000000.
STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES 1 src/lib/resilience/settings/normalize.ts Amostra mínima diferente de zero de saída útil considerada mensurável, limitada a 11000000 bytes.
HEALTHCHECK_STAGGER_MS 3000 src/lib/tokenHealthCheck.ts Intervalo de escalonamento (ms) entre as verificações do estado dos tokens dos fornecedores durante o arranque.
HEALTHCHECK_JITTER_MIN_MS 500 src/lib/tokenHealthCheck.ts Variação aleatória mínima (ms) adicionada a HEALTHCHECK_STAGGER_MS entre as verificações do estado dos tokens dos fornecedores, para evitar picos de pedidos (Problema #1220).
HEALTHCHECK_JITTER_MAX_MS 5000 src/lib/tokenHealthCheck.ts Variação aleatória máxima (ms) adicionada a HEALTHCHECK_STAGGER_MS entre as verificações do estado dos tokens dos fornecedores, para evitar picos de pedidos (Problema #1220).
HEALTHCHECK_BATCH_SIZE 20 src/lib/tokenHealthCheck.ts Tamanho do lote de verificações simultâneas para a análise de integridade dos tokens no arranque; valores maiores verificam mais ligações em paralelo, enquanto valores menores reduzem a carga em rajada (Problema #7875, regressão de #7719).
REQUEST_RETRY 2 src/sse/services/cooldownAwareRetry.ts Número de novas tentativas automáticas em respostas de cooldown específicas do modelo antes de devolver o erro ao cliente.
MAX_RETRY_INTERVAL_SEC 30 src/sse/services/cooldownAwareRetry.ts Intervalo máximo de espera progressiva (segundos) entre novas tentativas após cooldown. Limitado por este valor, independentemente do Retry-After a montante.
HEADROOM_URL http://localhost:8787 src/lib/headroom/detect.ts URL do proxy de poupança de tokens Headroom. Por predefinição, o ciclo de vida do painel (api/headroom/*) inicia uma CLI headroom-ai local na interface de loopback; substitua apenas para apontar para um proxy sidecar Docker externo.

Constantes de ajuste da recuperação de streams

O comportamento de retenção da recuperação é ajustado por constantes codificadas diretamente em open-sse/config/constants.ts (STREAM_RECOVERY), apresentadas aqui como referência — alterá-las requer uma edição do código, não uma variável de ambiente:

  • STREAM_RECOVERY.HOLDBACK_MS = 750 — durante quanto tempo a janela SSE inicial é retida para que uma interrupção prematura possa ser novamente tentada antes de qualquer byte ser enviado ao cliente.
  • STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536 — limite máximo absoluto da janela retida; é efetuada a confirmação (esvaziamento + passagem direta) assim que este número de bytes é acumulado, independentemente do temporizador.
  • STREAM_RECOVERY.EARLY_RETRY_MAX = 4 — número máximo de reaberturas transparentes do stream a montante enquanto a retenção ainda não tiver sido confirmada.

Limite de taxa por janela deslizante e por fornecedor (sem variável de ambiente): o mecanismo de fallback do limite de taxa por janela deslizante e por fornecedor, portado do FCC, existe no código (open-sse/services/providerDefaultRateLimit.ts, ligado através de open-sse/services/rateLimitManager.ts), mas é distribuído com um mapa predefinido vazio e atualmente não possui nenhuma variável de ambiente para operadores — é ativado apenas através de um hook de teste / uma edição do código. Intencionalmente, não consta da tabela acima. O limitador de retransmissão por (token, IP) que possui um parâmetro de configuração é RELAY_IP_PER_MINUTE (§3 Rede e portas).


22. Depuração

Caution

Estas variáveis produzem uma saída detalhada e podem expor dados sensíveis. Nunca as ative em produção.

Variável Predefinição Ficheiro de origem Descrição
CURSOR_DEBUG (não definida) open-sse/executors/cursor.ts Defina como 1 para ativar registos detalhados do executor do Cursor (segmentos SSE descodificados, etc.).
CURSOR_STREAM_DEBUG (não definida) open-sse/executors/cursor.ts Alias retrocompatível de CURSOR_DEBUG.
CURSOR_DUMP_FILE (não definida) open-sse/executors/cursor.ts Caminho de ficheiro opcional que recebe os segmentos brutos descodificados do Cursor quando CURSOR_DEBUG=1.
CURSOR_STREAM_TIMEOUT_MS 300000 open-sse/executors/cursor.ts Tempo limite de inatividade do fluxo (ms) para o executor do Cursor.
CURSOR_KV_GRACE_MS 2000 open-sse/executors/cursor.ts Período de tolerância (ms) após um terminador suave kv_after_text do compositor quando ainda existem bytes em memória intermédia — dá tempo a uma chamada de ferramenta exec_mcp subsequente para concluir a respetiva trama.
CURSOR_TOOL_DIRECTIVE ativada (!== "0") open-sse/executors/cursor.ts Diretiva de confirmação de ferramenta que faz com que o composer-2.5 emita chamadas de ferramentas de forma fiável. Defina como 0 para desativar.
OMNIROUTE_SYSTEM_INSTRUCTION_APPEND (não definida) open-sse/translator/request/claude-to-openai.ts, open-sse/translator/response/openai-to-claude.ts Texto de instrução do sistema definido pelo operador, anexado à mensagem do sistema APÓS a tradução (injeção pós-tradução), chegando aos caminhos codex/Responses e /v1/messages. Também é utilizado como prefixo da diretiva removido dos blocos de preâmbulo do sistema repetidos. Deixe por definir para desativar.
CURSOR_IMAGE_FETCH_TIMEOUT_MS 15000 open-sse/utils/cursorImages.ts Tempo limite de obtenção por imagem (ms) para entradas visuais image_url remotas.
CURSOR_STATE_DB_PATH (detetada) open-sse/utils/cursorVersionDetector.ts Substitui a pesquisa da base de dados de estado do Cursor IDE utilizada para detetar a versão do IDE.
CURSOR_AGENT_CLI_VERSION (detetar / fixar) open-sse/utils/cursorAgentCliVersion.ts ID da compilação da CLI do Agent (YYYY.MM.DD-<hash>) para x-cursor-client-version: cli-… no Agent Run.
CURSOR_AGENT_BIN (não definida) open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Caminho para o binário do Cursor Agent utilizado para gerar imagens. Se não estiver definida, o processador utiliza providerSpecificData.agentBin e, em seguida, PATH.
CURSOR_IMG_TIMEOUT_MS 210000 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Tempo total por imagem (ms) para tarefas de imagem do Cursor Agent.
CURSOR_IMG_MAX_CONCURRENT 2 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Limite de simultaneidade do posto partilhado para tarefas de imagem do Cursor.
CURSOR_IMG_MODEL pedido / auto open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Substitui --model da CLI do Cursor para tarefas de imagem.
UC_IMAGE_POLL_INTERVAL_MS 2000 open-sse/handlers/imageGeneration/providers/ucImage.ts Intervalo de consulta de resultados da geração de imagens da UC (uncensored.com) (ms).
UC_IMAGE_POLL_TIMEOUT_MS 60000 open-sse/handlers/imageGeneration/providers/ucImage.ts Tempo total limite da consulta de resultados da geração de imagens da UC (ms).
UC_VIDEO_POLL_INTERVAL_MS 3000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Intervalo de consulta de resultados da geração de vídeos da UC (uncensored.com) (ms).
UC_VIDEO_POLL_TIMEOUT_MS 300000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Tempo total limite da consulta de resultados da geração de vídeos da UC (ms).
CURSOR_DATA_DIR (detetado) open-sse/utils/cursorAgentCliVersion.ts Substitui o diretório de dados da CLI do Cursor Agent (…/versions/<id>); é a mesma variável utilizada pelo agente oficial.
CURSOR_TOKEN (não definida) scripts/ad-hoc/cursor-tap.cjs Token de portador direto do Cursor utilizado pelas ferramentas de desenvolvimento.
OMNIROUTE_LOG_REQUEST_SHAPE desativado (ativação explícita através de "1") src/app/api/v1/chat/completions/route.ts Regista marcadores de tipo e comprimento do conteúdo para payloads grandes de conversação quando definido como "1". Desativado por predefinição para reduzir o ruído dos registos.
DEBUG_RESPONSES_SSE_TO_JSON (não definida) open-sse/handlers/responseTranslator.ts Defina como true para registar detalhes da tradução SSE→JSON da Responses API.
DEBUG_CLAUDE_NONSTREAM (não definida) open-sse/handlers/responseTranslator.ts Defina como true para expor segmentos textContent vazios no caminho de tradução de respostas do Claude (apenas para depuração).
NEXT_PUBLIC_OMNIROUTE_E2E_MODE (não definida) Estrutura de testes E2E Defina como true para ativar o modo de teste E2E (autenticação menos restritiva, mecanismos de teste).

23. Integração com o GitHub

Permita que os utilizadores comuniquem problemas diretamente a partir do Dashboard.

Variável Predefinição Ficheiro de origem Descrição
GITHUB_ISSUES_REPO (não definido) src/app/api/v1/issues/report/route.ts Repositório no formato owner/repo.
GITHUB_ISSUES_TOKEN (não definido) src/app/api/v1/issues/report/route.ts Token de acesso pessoal do GitHub com o âmbito issues:write.
GITHUB_TOKEN (não definido) triagem de problemas/auxiliares do agente na cloud Token genérico de acesso ao GitHub utilizado como alternativa a GITHUB_ISSUES_TOKEN e pelos auxiliares do agente na cloud em src/lib/cloudAgent/*.

Cenários de Implementação

Para obter orientações de SRE sobre o backend de retransmissão (comportamento de ts/bifrost/auto, posicionamento de 9router face ao CLIProxyAPI e estratégia de contingência para elevado débito), consulte Estratégia do Backend de Retransmissão.

Desenvolvimento Local Mínimo

JWT_SECRET=$(openssl rand -base64 48)
API_KEY_SECRET=$(openssl rand -hex 32)
INITIAL_PASSWORD=dev123
PORT=20128
NODE_ENV=development

Produção com Docker

JWT_SECRET=<generated>
API_KEY_SECRET=<generated>
INITIAL_PASSWORD=<generated>
STORAGE_ENCRYPTION_KEY=<generated>
DATA_DIR=/data
PORT=20128
API_PORT=20129
NODE_ENV=production
AUTH_COOKIE_SECURE=true
REQUIRE_API_KEY=true
NEXT_PUBLIC_BASE_URL=https://omniroute.example.com
BASE_URL=http://localhost:20128
OMNIROUTE_MEMORY_MB=8192
CORS_ORIGIN=https://your-frontend.example.com

Ambiente Isolado / CI

JWT_SECRET=test-jwt-secret-for-ci
API_KEY_SECRET=test-api-key-secret-for-ci
INITIAL_PASSWORD=testpass
NODE_ENV=production
OMNIROUTE_DISABLE_BACKGROUND_SERVICES=true
APP_LOG_TO_FILE=false

VPS com Proxy Inverso (nginx + Cloudflare)

JWT_SECRET=<generated>
API_KEY_SECRET=<generated>
STORAGE_ENCRYPTION_KEY=<generated>
PORT=20128
AUTH_COOKIE_SECURE=true
REQUIRE_API_KEY=true
NEXT_PUBLIC_BASE_URL=https://omniroute.example.com
BASE_URL=http://127.0.0.1:20128
CORS_ORIGIN=https://omniroute.example.com
ENABLE_TLS_FINGERPRINT=true
CLI_COMPAT_ALL=1

24. Sandbox de Skills (v3.8.0+)

Limites e controlos de segurança aplicados quando a framework Skills (src/lib/skills/) executa automatizações definidas pelo utilizador num ambiente isolado.

Variável Predefinição Ficheiro de origem Descrição
SKILLS_SANDBOX_TIMEOUT_MS 10000 (10 s) src/lib/skills/builtins.ts Limite de tempo real por execução para código de skills no sandbox. Limite rígido; qualquer execução mais longa é terminada.
SKILLS_EXECUTION_TIMEOUT_MS (recorre a SKILLS_SANDBOX_TIMEOUT_MS) src/lib/skills/ Limite de tempo da orquestração de skills de alto nível. Defina-o acima de SKILLS_SANDBOX_TIMEOUT_MS para permitir fluxos com vários passos.
SKILLS_MAX_FILE_BYTES 1048576 (1 MB) src/lib/skills/builtins.ts Número máximo de bytes que uma skill pode ler de um único ficheiro no sandbox.
SKILLS_MAX_HTTP_RESPONSE_BYTES 256000 (250 KB) src/lib/skills/builtins.ts Número máximo de bytes capturados de uma única resposta HTTP numa skill.
SKILLS_MAX_SANDBOX_OUTPUT_CHARS 100000 src/lib/skills/builtins.ts Limite rígido de carateres de stdout/stderr devolvidos por uma invocação do sandbox.
SKILLS_SANDBOX_NETWORK_ENABLED false src/lib/skills/builtins.ts Defina como 1/true para permitir ligações de saída a partir do sandbox. Por predefinição, é isolado por segurança.
SKILLS_ALLOWED_SANDBOX_IMAGES (vazio) src/lib/skills/builtins.ts Lista de imagens de contentor permitidas para execução no sandbox, separadas por vírgulas. Vazio significa apenas a predefinição integrada.
SKILLS_SANDBOX_DOCKER_IMAGE (predefinição integrada) src/lib/skills/ Imagem de contentor utilizada ao iniciar um sandbox baseado em Docker. Substitua-a para fixar uma imagem base personalizada e reforçada.
SKILLS_SANDBOX_RUNTIME auto src/lib/skills/sandbox.ts, src/lib/skills/containerProvider.ts Runtime de contentores para o isolamento de skills: auto | docker | apple | wsl | orbstack | podman. auto seleciona o melhor runtime instalado para o SO anfitrião (Apple Container/OrbStack no macOS, WSL Container no Windows, Podman no Linux), recorrendo ao Docker como alternativa.

Caution

Ativar SKILLS_SANDBOX_NETWORK_ENABLED=true abre um caminho de saída para código arbitrário de skills. Combine esta opção com OUTBOUND_SSRF_GUARD_ENABLED=true e uma política rigorosa de CORS_ORIGIN/proxy em implementações partilhadas.


25. Quotas de fornecedores, túneis, cópias de segurança e diversos do runtime

Endpoints de quotas de fornecedores, túneis de rede (Tailscale, Ngrok, proxy de depuração MITM), o pool de saída 1Proxy, cópias de segurança da base de dados e pequenas substituições específicas de funcionalidades referenciadas pela camada do executor ou por scripts.

Variável Predefinição Ficheiro de origem Descrição
REDIS_URL redis://localhost:6379 src/shared/utils/rateLimiter.ts String de ligação ao Redis para o backend do limitador de taxa.
ALIBABA_CODING_PLAN_HOST (host de produção) open-sse/services/bailianQuotaFetcher.ts Substitui o host utilizado para obter as quotas do plano de programação do Alibaba Bailian.
ALIBABA_CODING_PLAN_QUOTA_URL derivado do host open-sse/services/bailianQuotaFetcher.ts Substituição do URL completo de quotas do Alibaba Bailian.
QWEN_CLOUD_COOKIE (não definido) open-sse/services/qwenTokenPlanQuotaFetcher.ts Cookie da sessão da consola para o gateway de quotas do Token Plan pessoal do Qwen Cloud / Model Studio (a chave da API de inferência não consegue lê-lo). Copie o cabeçalho completo do pedido Cookie — contém login_qwencloud_ticket — de qualquer chamada a api.json para cs-data.qwencloud.com em home.qwencloud.com Billing Subscription (F12 Network). É sensível e limitado à sessão; dê preferência ao campo qwenCloudCookie por ligação no Dashboard.
QWEN_CLOUD_SEC_TOKEN (não definido) open-sse/services/qwenTokenPlanQuotaFetcher.ts Substituição manual de sec_token para o gateway da consola do Token Plan. É sensível; quando não está definido, o serviço de obtenção resolve-o a partir do HTML do dashboard utilizando o cookie.
QWEN_TOKEN_PLAN_HOST https://cs-data.qwencloud.com open-sse/services/qwenTokenPlanQuotaFetcher.ts Substituição do host do gateway para o serviço de obtenção de quotas do Token Plan pessoal (por exemplo, bailian-singapore-cs.alibabacloud.com para a consola do Model Studio).
QWEN_TOKEN_PLAN_DASHBOARD_URL https://home.qwencloud.com/ open-sse/services/qwenTokenPlanQuotaFetcher.ts URL do dashboard utilizado para resolver sec_token a partir do HTML com sessão iniciada.
ALIBABA_FREE_TIER_VISION_FE_PATH /costing-balance/free-quota-image-video open-sse/services/alibabaFreeTierQuotaFetcher.ts Substituição do caminho do front-end da consola para obter a quota gratuita de visão/multimédia do Alibaba Model Studio.
ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH /costing-balance/free-quota-multimodal open-sse/services/alibabaFreeTierQuotaFetcher.ts Substituição do caminho do front-end da consola para obter a quota multimodal do nível gratuito do Alibaba Model Studio.
ALIBABA_FREE_TIER_AUDIO_FE_PATH /costing-balance/free-quota-audio open-sse/services/alibabaFreeTierQuotaFetcher.ts Substituição do caminho do front-end da consola para obter a quota de áudio do nível gratuito do Alibaba Model Studio.
ALIBABA_FREE_TIER_ALLOWLIST_PATH (não definido) open-sse/services/alibabaFreeTierAllowlist.ts Caminho opcional para um ficheiro JSON local que substitui a lista de permissões incorporada de modelos de texto do nível gratuito da Alibaba. Se não estiver disponível, utiliza $DATA_DIR/alibaba-free-tier-allowlist.json e, em seguida, config/alibaba-free-tier-allowlist.json.
CONTEXT_RESERVE_TOKENS 1024 open-sse/services/contextManager.ts Tokens reservados para o resultado da conclusão ao calcular os limites do prompt.
CONTEXT_KEEP_LATEST_IMAGES 2 open-sse/services/contextManager.ts Número de imagens inline mais recentes a manter ao remover as mais antigas para caber na janela de contexto (#8560).
MODEL_ALIAS_COMPAT_ENABLED ativado open-sse/services/model.ts Ativa ou desativa a camada de compatibilidade legada de aliases de modelos utilizada por clientes mais antigos.
OMNIROUTE_EMERGENCY_FALLBACK ativado open-sse/services/emergencyFallback.ts Defina como false (ou 0) para desativar o mecanismo de contingência de emergência por esgotamento do orçamento, que redireciona os pedidos falhados para o modelo gratuito nvidia/openai/gpt-oss-120b. A precedência efetiva é: substituição na base de dados de Feature Flags > variável de ambiente > predefinição; se estiver indisponível, o serviço utiliza o valor não processado da variável de ambiente.
COMMAND_CODE_CALLBACK_PORT (não definido) src/app/api/providers/command-code/auth/shared.ts Porta local utilizada para callbacks ao estilo OAuth provenientes do auxiliar da CLI Command Code.
COMMAND_CODE_VERSION 0.33.2 open-sse/executors/commandCode.ts Valor enviado como cabeçalho x-command-code-version ao serviço a montante Command Code. Substitua-o para atualizar a versão da CLI.
COMMANDCODE_API_URL https://api.commandcode.ai open-sse/services/usage/command-code.ts URL base do serviço a montante de utilização/quota do Command Code usado pela telemetria do coletor de quotas para smartphones. Substitua-a para utilizar uma API Command Code autoalojada/alternativa.
MITM_LOCAL_PORT 443 src/mitm/server.cjs Porta de escuta local para o proxy de depuração MITM.
MITM_DISABLE_TLS_VERIFY 0 src/mitm/server.cjs Defina como 1 para desativar a verificação TLS a montante (apenas para desenvolvimento).
MITM_IDLE_TIMEOUT_MS 60000 src/mitm/socketTimeouts.ts, src/mitm/server.cjs Tempo limite de inatividade do socket (ms) para ligações através do proxy; os sockets que permaneçam inativos além deste período são terminados para evitar fugas de túneis semiabertos.
MITM_VERBOSE 1 src/mitm/server.cjs, src/mitm/_internal/bypass.cjs Nível de detalhe dos registos de decisões de encaminhamento: 0 silencia-os; valores superiores registam mais decisões de bypass/encaminhamento.
MITM_ROOT_CA_ENABLED false src/mitm/manager.ts Defina como true para aderir ao modelo de AC raiz + certificado folha por anfitrião (#6684). As instalações novas obtêm-no automaticamente; as instalações com um certificado folha legado de confiança preexistente mantêm o certificado SAN fixo legado, a menos que seja solicitada a adesão.
MITM_CERT_MODE legacy src/mitm/manager.ts, src/mitm/server.cjs Definido PELO gestor MITM para o processo de proxy iniciado (root-ca | legacy) — reflete a decisão de migração do certificado; não se destina a ser definido manualmente.
OMNIROUTE_NO_SUDO 0 src/mitm/systemCommands.ts Defina como 1 (verdadeiro) para remover o sudo inicial dos comandos MITM de confiança em certificados — para implementações sem root/com espaços de nomes de utilizador, nas quais o operador confia manualmente na AC (por exemplo, através do mecanismo de certificados de AC adicionais do Node).
SKIP_ANTIGRAVITY_DNS (não definido) src/mitm/dns/provision.ts Defina como true para ignorar totalmente o aprovisionamento das entradas DNS em /etc/hosts para os nomes de anfitrião do proxy Antigravity — para contentores sem sudo/root disponível.
OMNIROUTE_SKIP_DNS_WRITE (não definido) src/mitm/dns/dnsConfig.ts Defina como 1 para ignorar a escrita no ficheiro hosts ao adicionar/remover entradas DNS — para ambientes de teste em sandbox ou só de leitura.
OMNIROUTE_SKIP_SYSTEM_TRUST 0 src/mitm/cert/install.ts, src/mitm/tproxy/caTrust.ts Proteção exclusiva para testes/CI: defina como 1 para tornar a instalação/desinstalação da confiança em certificados numa operação nula, garantindo que o conjunto de testes nunca altera o repositório de confiança do SO. Definido automaticamente pela configuração dos testes e pelos fluxos de trabalho de CI.
CHANGELOG_BASE_REF (automático) scripts/check/check-changelog-integrity.mjs Referência base explícita para a verificação que impede a eliminação do CHANGELOG (por predefinição, o branch base do PR em CI ou o release/v* mais elevado).
FREE_PROXY_AUTO_SYNC_ENABLED false src/lib/freeProxyProviders/scheduler.ts Defina como true para ativar o agendador de sincronização automática em segundo plano do conjunto de proxies gratuitos. Requer ativação explícita e está desativado por predefinição.
FREE_PROXY_AUTO_SYNC_INTERVAL_MS 1800000 src/lib/freeProxyProviders/scheduler.ts Intervalo de sincronização automática em milissegundos (predefinição: 30 min).
FREE_PROXY_1PROXY_ENABLED true src/lib/freeProxyProviders/oneproxy.ts Ativa a fonte de proxies gratuitos 1proxy. Defina como false para desativar.
FREE_PROXY_1PROXY_API_URL (consulte oneproxy.ts) src/lib/freeProxyProviders/oneproxy.ts Substituição do URL da API do 1proxy.
FREE_PROXY_1PROXY_MAX 500 src/lib/freeProxyProviders/oneproxy.ts Número máximo de proxies obtidos do 1proxy por sincronização.
FREE_PROXY_1PROXY_MIN_QUALITY 50 src/lib/freeProxyProviders/oneproxy.ts Limite mínimo da pontuação de qualidade para importações do 1proxy.
FREE_PROXY_PROXIFLY_ENABLED true src/lib/freeProxyProviders/proxifly.ts Ativa a fonte de proxies gratuitos Proxifly. Defina como false para desativar.
FREE_PROXY_PROXIFLY_QUANTITY 100 src/lib/freeProxyProviders/proxifly.ts Número de proxies a obter por sincronização do Proxifly.
FREE_PROXY_PROXIFLY_ANONYMITY elite src/lib/freeProxyProviders/proxifly.ts Filtro de nível de anonimato para o Proxifly (elite, anonymous, transparent).
FREE_PROXY_IPLOCATE_ENABLED false src/lib/freeProxyProviders/iplocate.ts Ativar a fonte de proxies gratuitos IPLocate. Apenas mediante adesão explícita.
FREE_PROXY_IPLOCATE_BASE_URL https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols src/lib/freeProxyProviders/iplocate.ts Substituição do URL base da lista de proxies do IPLocate.
FREE_PROXY_WEBSHARE_ENABLED true src/lib/freeProxyProviders/webshare.ts Ativar a fonte do conjunto de proxies do Webshare. Defina como false para desativar; também requer que FREE_PROXY_WEBSHARE_API_KEY esteja definida.
FREE_PROXY_WEBSHARE_API_KEY (nenhum) src/lib/freeProxyProviders/webshare.ts Token da API da conta Webshare (Authorization: Token <key>). Obrigatório — o fornecedor permanece desativado sem este token.
FREE_PROXY_WEBSHARE_API_URL https://proxy.webshare.io/api/v2/proxy/list/ src/lib/freeProxyProviders/webshare.ts Substituição do URL da API da lista de proxies do Webshare.
FREE_PROXY_WEBSHARE_MAX 500 src/lib/freeProxyProviders/webshare.ts Número máximo de proxies importados por sincronização do Webshare.
NEXT_PUBLIC_VERCEL_RELAY_ENABLED true src/app/(dashboard)/…/ProxyPoolTab.tsx Mostrar/ocultar o botão Implementar Vercel Relay no separador Conjunto de Proxies.
VERCEL_API_BASE https://api.vercel.com src/app/api/settings/proxy/vercel-deploy/route.ts Substituição do URL base da API da Vercel (para testes).
NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/…/VercelRelayModal.tsx Nome predefinido do projeto, previamente preenchido no modal de implementação do Vercel Relay.
TAILSCALE_BIN (deteção automática) src/lib/tailscaleTunnel.ts Caminho explícito para o binário tailscale.
TAILSCALED_BIN (deteção automática) src/lib/tailscaleTunnel.ts Caminho explícito para o binário do daemon tailscaled.
TAILSCALE_AUTHKEY (não definido) src/lib/tailscaleTunnel.ts Chave de autenticação Tailscale pré-partilhada para executar tailscale up de forma não interativa / headless (transmitida através de --auth-key=). Quando não está definida, o início de sessão recorre ao URL de autenticação interativa no navegador.
NGROK_AUTHTOKEN (não definido) src/lib/ngrokTunnel.ts Autentica túneis ngrok de saída.
DB_BACKUP_MAX_FILES 20 src/lib/db/backup.ts Número máximo de ficheiros de cópia de segurança SQLite retidos pela limpeza de cópias de segurança manual/agendada. Os instantâneos de migração são endereçados por conteúdo e reutilizados para um estado idêntico da base de dados; não são eliminados durante a janela de migração simultânea. Substitui o valor guardado em Definições → Retenção de cópias de segurança da base de dados.
DB_BACKUP_RETENTION_DAYS 0 src/lib/db/backup.ts Idade máxima (em dias) retida pela limpeza de cópias de segurança manual/agendada. 0 desativa a eliminação com base na idade. Os instantâneos de migração não são eliminados durante a janela de migração simultânea. Substitui o valor guardado em Definições → Retenção de cópias de segurança da base de dados.
OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS 30000 src/lib/jobs/backupScheduleJob.ts Intervalo de execução (ms) da tarefa no servidor que executa backup-schedule.json. Deve manter-se bastante abaixo da granularidade de 1 minuto do cron; valores inferiores a 5000 ou que não possam ser analisados regressam ao valor predefinido 30000.
CONTAINER_HOST docker scripts/check-permissions.sh Indicação do ambiente de execução de contentores para a verificação de permissões do ponto de entrada. Defina como podman para qualquer topologia Podman. Como o contentor não consegue determinar se o motor é local ou acedido através do Podman Machine, o aviso mantém-se neutro quanto à topologia e remete para contrib/podman/README.md.
QUOTA_STORE_DRIVER sqlite src/lib/quota/storeFactory.ts Backend de armazenamento do consumo de quotas partilhadas: sqlite (predefinição) ou redis.
QUOTA_STORE_REDIS_URL (não definido) src/lib/quota/storeFactory.ts Cadeia de ligação ao Redis utilizada quando QUOTA_STORE_DRIVER=redis (por exemplo, redis://localhost:6379).
QUOTA_SATURATION_THRESHOLD 0.5 src/lib/quota/enforce.ts Rácio de saturação do conjunto (0..1); ao atingir ou ultrapassar este valor, o conjunto entra no modo estrito (sem empréstimos).
QUOTA_SOFT_DEPRIORITIZE_FACTOR 0.7 open-sse/services/combo.ts Multiplicador de pontuação (0..1) aplicado a um destino quando a política de quota flexível reduz a sua prioridade.
STATUS_SOFT_DEPRIORITIZE_FACTOR 0.5 open-sse/services/combo/autoStrategy.ts Multiplicador de pontuação (0..1) aplicado a um fornecedor esgotado (credits_exhausted/rate_limited) na pontuação de combinação automática quando o limite de quota prévio está DESATIVADO (#4540).
QUOTA_CONSUMPTION_RETENTION_DAYS 14 src/lib/db/quotaConsumption.ts Período de retenção (dias) dos grupos de quota_consumption antes da recolha de lixo (gcQuotaConsumption).
QUOTA_PREFLIGHT_CUTOFF_ENABLED false src/lib/resilience/settings.ts Adesão opcional (DESATIVADA por predefinição): ativa o limite rígido de quota do encaminhamento automático, que elimina candidatos com quota baixa antes da pontuação.
OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL false open-sse/services/autoCombo/virtualFactory.ts Adesão opcional (DESATIVADA por predefinição): quando um filtro auto/<category>:<tier> não corresponde a nenhum candidato ligado, restaura o comportamento anterior de recorrer ao conjunto completo (não filtrado), em vez de devolver um conjunto vazio. A predefinição DESATIVADA faz com que :free signifique «apenas o escalão gratuito».
OMNIROUTE_CHAOS_MAX_PANEL 5 open-sse/services/autoCombo/virtualFactory.ts Limite do tamanho do painel (restringido a 110) para a variante de difusão auto/*:chaos — um pedido é distribuído por, no máximo, este número de modelos de diferentes fornecedores.
OMNIROUTE_CHAOS_MIN_PANEL (predefinição do motor) open-sse/services/autoCombo/virtualFactory.ts Ajuste do tamanho mínimo do painel encaminhado para o processador de difusão caótica; se não for definido, mantém a predefinição do motor.
OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS (predefinição do motor) open-sse/services/autoCombo/virtualFactory.ts Tempo limite rígido (ms) para toda a distribuição pelo painel caótico; se não for definido, mantém a predefinição do motor.
GROK_AUTH_PATH ~/.grok/auth.json open-sse/services/grokQuotaFetcher.ts Caminho para o auth.json da CLI do Grok utilizado para obter a quota semanal do grok-web; substitua-o para testes ou para uma instalação não padrão da CLI.
AGENTBRIDGE_UPSTREAM_CA_CERT (não definido) src/mitm/manager.ts Certificado de AC adicional (PEM) considerado fidedigno para ligações TLS a montante do AgentBridge.
INSPECTOR_BUFFER_SIZE 1000 src/mitm/inspector/buffer.ts Número máximo de pedidos capturados mantidos no buffer circular do Inspetor de Tráfego.
INSPECTOR_MAX_BODY_KB 1024 src/mitm/inspector/buffer.ts Tamanho máximo do corpo do pedido/resposta capturado (KB) antes de ser truncado.
INSPECTOR_HTTP_PROXY_PORT 8080 src/mitm/inspector/httpProxyServer.ts Porta local para o proxy HTTP do Inspetor de Tráfego.
INSPECTOR_HTTP_PROXY_AUTOSTART false src/mitm/inspector/httpProxyServer.ts Iniciar automaticamente o proxy HTTP do inspetor no arranque.
INSPECTOR_TLS_INTERCEPT false src/lib/inspector/captureState.ts Ativar a interceção TLS (MITM) para o tráfego HTTPS capturado.
INSPECTOR_LLM_HOSTS_EXTRA (não definido) src/lib/inspector/captureState.ts Nomes de anfitrião adicionais (separados por vírgulas) tratados como endpoints de LLM para captura.
INSPECTOR_MASK_SECRETS true src/mitm/inspector/buffer.ts Ocultar segredos (cabeçalhos de autenticação/chaves de API) no tráfego capturado.
INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES 30 src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts Minutos até que a proteção do proxy do sistema reverta automaticamente as definições de proxy do sistema operativo.
INSPECTOR_INTERNAL_INGEST_TOKEN (automático) src/app/api/tools/traffic-inspector/internal/ingest/route.ts Token que autentica a ingestão interna de capturas no inspetor.
PLAYGROUND_COMPARE_MAX_COLUMNS 4 src/app/(dashboard)/dashboard/playground/ Número máximo de colunas lado a lado no modo de comparação do Playground.
PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL (não definido) src/app/(dashboard)/dashboard/playground/ Modelo predefinido para a ação «melhorar prompt» do Playground (recorre ao modelo ativo quando não está definido).
BIFROST_ENABLED 1 src/app/api/v1/relay/chat/completions/bifrost/route.ts Interruptor principal de desativação do proxy sidecar Bifrost. Quando definido como 0, a rota devolve 503 com o cabeçalho X-Bifrost-Killswitch e o operador é redirecionado para o caminho TS. Utilize-o para desativar o sidecar sem voltar a implementar (incidente no router de nível 1, rotação de chaves).
BIFROST_BASE_URL (não definido) src/app/api/v1/relay/chat/completions/bifrost/route.ts Quando definido, a rota do proxy sidecar Bifrost encaminha o tráfego de /v1/chat/completions para este gateway Go, em vez de o encaminhar para o processador de relay TS. Não definido → 503 com fallback. A barra final é removida.
BIFROST_PORT 8080 src/lib/services/bootstrap.ts Porta à qual o serviço incorporado Bifrost supervisionado se associa (127.0.0.1:<port>) quando o OmniRoute gere o ciclo de vida do sidecar Bifrost. A predefinição é 8080.
BIFROST_API_KEY (não definido) src/app/api/v1/relay/chat/completions/bifrost/route.ts Chave de API para o gateway Bifrost (enviada como Authorization: Bearer ...). Se não estiver definida, a rota espera que o pedido contenha uma chave de API OmniRoute válida; esta chave destina-se apenas à autenticação do lado do gateway.
BIFROST_STREAMING_ENABLED true src/app/api/v1/relay/chat/completions/bifrost/route.ts Quando definida como true, a rota do sidecar Bifrost transmite as respostas através de SSE pelo gateway, em vez de utilizar o executor de streaming TS. Defina como 0 para forçar respostas JSON sem streaming através do gateway.
BIFROST_TIMEOUT_MS 30000 src/app/api/v1/relay/chat/completions/bifrost/route.ts Tempo limite por pedido ao encaminhar para o gateway Bifrost (ms). Quando o tempo limite é excedido, a rota devolve o caminho do relay TS através do cabeçalho X-Bifrost-Fallback.
OMNIROUTE_BIFROST_KEY (não definido) src/app/api/v1/relay/chat/completions/bifrost/route.ts Alias de BIFROST_API_KEY (utilizado por scripts que leem o ambiente através de OMNIROUTE_*). BIFROST_API_KEY tem precedência quando ambos estão definidos.
OMNIROUTE_RELAY_BACKEND ts / auto src/app/api/v1/relay/chat/completions/routingBackend.ts Backend de relay para /api/v1/relay/chat/completions: ts | bifrost | auto. ts = relay TypeScript (predefinição quando o Bifrost não está configurado); auto seleciona o Bifrost quando BIFROST_BASE_URL está definido e BIFROST_ENABLED0, com fallback automático para TS se o sidecar estiver inacessível; bifrost força a utilização do Bifrost (modo estrito, sem fallback). A autenticação, a limitação de taxa, a proteção contra injeção e a lista de permissões são sempre executadas primeiro na rota Next. As respostas incluem X-Routing-Backend / X-Routing-Fallback / X-Routing-Fallback-Reason.
RELAY_ROUTING_BACKEND (não definido) src/app/api/v1/relay/chat/completions/routingBackend.ts Alias aceite para OMNIROUTE_RELAY_BACKEND (os mesmos valores ts | bifrost | auto). OMNIROUTE_RELAY_BACKEND tem precedência quando ambos estão definidos.
OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS 5000 src/app/api/v1/relay/chat/completions/bifrostCooldown.ts Período de espera (ms) após uma passagem pelo sidecar Bifrost falhar no modo auto, antes de o relay tentar novamente o sidecar; encaminha diretamente para o percurso TS enquanto durar o período de espera e, em seguida, tenta novamente. 0 desativa. Aplica-se apenas quando OMNIROUTE_RELAY_BACKEND=auto.
OMNIROUTE_TLS_CERT (não definido) bin/cli/commands/serve.mjs Caminho para um certificado TLS PEM para disponibilizar omniroute serve através de HTTPS (equivalente a --tls-cert). Tem de ser fornecido juntamente com OMNIROUTE_TLS_KEY; o servidor autónomo termina então o TLS no mesmo listener (wss:// continua a funcionar sem alterações). Não definido → HTTP simples. Fornecer apenas o certificado ou a chave, ou um caminho ilegível, regista um aviso e mantém o HTTP.
OMNIROUTE_TLS_KEY (não definido) bin/cli/commands/serve.mjs Caminho para a chave privada TLS PEM para o HTTPS de omniroute serve (equivalente a --tls-key). Tem de ser fornecida juntamente com OMNIROUTE_TLS_CERT. Consulte OMNIROUTE_TLS_CERT.
OMNIROUTE_LOCAL_ENDPOINTS_ENABLED 0 src/lib/security/localEndpoints.ts Interruptor principal para as rotas /api/local/*. Quando não está definido ou é 0, todas as rotas /api/local/* devolvem 503 em produção. Tem de ser 1 em implementações fora da interface de loopback para ativar o iniciador do Redis e iniciadores semelhantes de serviços locais com 1 clique. Proteção redundante com a classificação da proteção de rotas isLocalOnlyPath() (LOCAL_ONLY_API_PREFIXES em src/server/authz/routeGuard.ts).
OMNIROUTE_LOCAL_ENDPOINTS_TOKEN (não definido) src/lib/security/localEndpoints.ts Token Bearer para clientes de /api/local/* que não estejam na interface de loopback (por exemplo, a aplicação para computador). Quando definido, os pedidos provenientes de IPs que não sejam de loopback têm de incluir Authorization: Bearer <token>. Obrigatório quando OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 em implementações fora da interface de loopback.
OMNIROUTE_REDIS_CONTAINER_NAME omniroute-redis bin/cli/commands/redis.mjs Nome do contentor para o iniciador do Redis com 1 clique (omniroute redis up). Utilizado tanto pela CLI como pela interface gráfica RedisLauncherPanel.
OMNIROUTE_REDIS_HOST_PORT 6379 bin/cli/commands/redis.mjs Porta do anfitrião para o iniciador do Redis com 1 clique. Altere-a se o anfitrião já utilizar a porta 6379. A porta interna do contentor mantém-se como 6379.
OMNIROUTE_REDIS_BIND_HOST 127.0.0.1 bin/cli/commands/redis.mjs Interface do anfitrião na qual o iniciador do Redis com 1 clique publica o serviço. O iniciador executa o Redis SEM palavra-passe, pelo que associá-lo a 0.0.0.0 disponibiliza um Redis não autenticado a todos os anfitriões da sua LAN — só deve alargar esta associação se também definir uma palavra-passe na instância.
REDIS_BIND_HOST 127.0.0.1 docker-compose.yml Interface do anfitrião na qual o docker-compose publica o sidecar Redis (#9286). O Redis do compose é executado sem requirepass; os contentores da aplicação acedem-lhe através da rede do compose (redis:6379) — a porta publicada existe apenas para ferramentas no anfitrião. 0.0.0.0 expõe um Redis não autenticado a toda a LAN.
REDIS_PORT 6379 docker-compose.yml Porta do anfitrião para o sidecar Redis do compose.
APP_BIND_HOST 127.0.0.1 docker-compose.yml, docker-compose.prod.yml Interface do anfitrião na qual o docker-compose publica as portas do dashboard/API/live-WS da própria aplicação (#12568). Com REQUIRE_API_KEY=false fornecido como predefinição em .env.example, 0.0.0.0 expõe o proxy LLM anónimo /v1 a toda a LAN/WAN — alargue o acesso apenas quando REQUIRE_API_KEY=true ou quando um proxy inverso a montante impuser a sua própria autenticação.
QDRANT_BIND_HOST 127.0.0.1 docker-compose.yml Interface do anfitrião na qual o docker-compose publica o serviço auxiliar de memória Qdrant (#12578). Aplica-se o mesmo princípio de exposição à LAN que em REDIS_BIND_HOST.
BIFROST_BIND_HOST 127.0.0.1 docker-compose.yml Interface do anfitrião na qual o docker-compose publica o serviço auxiliar de encaminhamento Bifrost (#12578). Aplica-se o mesmo princípio de exposição à LAN que em REDIS_BIND_HOST.
REDIS_KEY_PREFIX omniroute: src/shared/utils/rateLimiter.ts Prefixo de espaço de nomes aplicado a todas as chaves Redis do OmniRoute (limitador de taxa, cache de autenticação, armazenamento de quotas, disjuntor de pré-aquecimento). Evita colisões de chaves quando a instância Redis é partilhada com outras aplicações (#11042).
OMNIROUTE_INTERNAL_SERVICE_TOKEN (não definido — mecanismo desativado) src/lib/api/internalServiceAuth.ts Segredo partilhado para chamadas REST internas que preservam a identidade (#9260): os componentes do OmniRoute que chamam outras rotas locais do OmniRoute enviam-no como x-omniroute-internal-service-token, para que a identidade do autor original da chamada seja preservada. Comparado com timingSafeEqual.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE (não definido) src/lib/api/internalServiceAuth.ts Variante do token de serviço interno baseada num ficheiro de segredo: caminho para um ficheiro cujo conteúdo, após a remoção de espaços em branco no início e no fim, corresponde ao token. Apenas é consultada quando a variável em linha não está definida.
OPENROUTER_PROVIDER_STATS_ENABLED true src/lib/catalog/openrouterProviderStats.ts Enriquece a lista de fornecedores do dashboard com estatísticas de classificação semanal do OpenRouter (#9324). Ativada por predefinição; defina como false para ignorar totalmente a obtenção em segundo plano (não bloqueante e nunca fatal).
OPENROUTER_PROVIDER_STATS_TTL_MS 86400000 (24 h) src/lib/catalog/openrouterProviderStats.ts TTL da cache para o instantâneo das estatísticas de fornecedores do OpenRouter, em milissegundos.
OMNIROUTE_REDIS_IMAGE redis:7-alpine bin/cli/commands/redis.mjs Imagem Redis utilizada pelo iniciador Redis de 1 clique. Substitua por redis:8-alpine ou por um espelho de registo privado, conforme necessário.
QDRANT_HOST qdrant (perfil de cluster opcional) Nome do anfitrião do serviço auxiliar Qdrant quando --profile memory está ativo. A predefinição aponta para o nome do serviço qdrant dentro da rede; substitua-o para uma implementação externa. Apenas é utilizado quando qdrantEnabled é true no código (src/lib/memory/vectorStore.ts:108).
QDRANT_PORT 6333 (perfil de cluster opcional) Porta REST do sidecar do Qdrant.
QDRANT_GRPC_PORT 6334 (perfil de cluster opcional) Porta gRPC do sidecar do Qdrant. Utilizada por bibliotecas de cliente que preferem gRPC a REST para operações de streaming.
QDRANT_API_KEY (não definida) (perfil de cluster opcional) Chave de API opcional para o Qdrant Cloud ou uma instância on-prem com autenticação. Vazia → não é enviado qualquer cabeçalho api-key.
QDRANT_COLLECTION omniroute-memory (perfil de cluster opcional) Nome da coleção para os embeddings da memória de conversação do OmniRoute. Criada na primeira execução com as dimensões definidas em QDRANT_VECTOR_SIZE.
QDRANT_EMBEDDING_MODEL text-embedding-3-small (perfil de cluster opcional) Nome do modelo de embedding predefinido registado nos metadados da coleção do Qdrant. Os embeddings efetivos são gerados pelo fornecedor indicado pelo campo embeddingModel nas definições do OmniRoute.
QDRANT_VECTOR_SIZE 1536 (perfil de cluster opcional) Dimensão do vetor de embedding. Tem de corresponder ao modelo utilizado para gerar os embeddings (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768).
QDRANT_HNSW_EF_CONSTRUCT 128 (perfil de cluster opcional) Precisão do índice HNSW durante a construção. Um valor mais elevado = construção mais lenta, pesquisa mais rápida.
OMNIROUTE_ROTATION_ENABLED true open-sse/services/rotationConfig.ts Interruptor principal para a rotação de contas configurável pelo operador. Quando definido como false, nenhuma das classes OMNIROUTE_ROTATE_* abaixo aciona a mudança para outra conta (o estado principal desativado também bloqueia as classes 429/500/502, ativadas por predefinição). Permite que um front-end supervisor (por exemplo, a aplicação VibeProxy para computador) replique as respetivas regras de rotação no mecanismo de mudança de conta do backend.
OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS 0 open-sse/services/rotationConfig.ts Período de espera (segundos) aplicado a uma conta sujeita a limitação de taxa quando o serviço a montante não fornece uma indicação explícita de reposição. 0 = utilizar o período de espera predefinido do mecanismo em vez de uma substituição fixa.
OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET true open-sse/services/rotationConfig.ts Reflexo da preferência do front-end «não marcar como sujeito a limitação de taxa sem uma hora de reposição».
OMNIROUTE_ROTATE_ON_429 true open-sse/services/rotationConfig.ts Ativação da alternativa por estado para erros 429. Quando false (e OMNIROUTE_ROTATION_ENABLED=true), um erro 429 deixa de acionar a rotação de conta e é devolvido ao cliente.
OMNIROUTE_ROTATE_429_THRESHOLD 1 open-sse/services/rotationConfig.ts Número de erros 429 dentro de OMNIROUTE_ROTATE_429_WINDOW_SECONDS necessário antes de a conta ser rodada. 1 (predefinição) roda imediatamente, preservando o comportamento histórico.
OMNIROUTE_ROTATE_429_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Janela deslizante (segundos) durante a qual os erros 429 são contabilizados para OMNIROUTE_ROTATE_429_THRESHOLD.
OMNIROUTE_ROTATE_ON_500 true open-sse/services/rotationConfig.ts Ativação da alternativa por estado para erros de servidor 5xx (excluindo 502, que tem a sua própria classe). Quando false, estes erros deixam de acionar a rotação de conta.
OMNIROUTE_ROTATE_500_THRESHOLD 1 open-sse/services/rotationConfig.ts Número de erros 5xx dentro de OMNIROUTE_ROTATE_500_WINDOW_SECONDS necessário antes de a conta ser rodada. 1 (predefinição) roda imediatamente.
OMNIROUTE_ROTATE_500_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Janela deslizante (segundos) durante a qual os erros 5xx são contabilizados para OMNIROUTE_ROTATE_500_THRESHOLD.
OMNIROUTE_ROTATE_ON_502 true open-sse/services/rotationConfig.ts Ativação da alternativa por estado para erros 502 (gateway inválido). Quando false, os erros 502 deixam de acionar a rotação de conta.
OMNIROUTE_ROTATE_502_THRESHOLD 1 open-sse/services/rotationConfig.ts Número de erros 502 dentro de OMNIROUTE_ROTATE_502_WINDOW_SECONDS necessário antes de a conta ser rodada. 1 (predefinição) roda imediatamente.
OMNIROUTE_ROTATE_502_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Janela deslizante (segundos) durante a qual os erros 502 são contabilizados para OMNIROUTE_ROTATE_502_THRESHOLD.
OMNIROUTE_ROTATE_ON_400 false open-sse/services/rotationConfig.ts Adesão opcional (DESATIVADA por predefinição): quando true, um erro 400 simples (pedido inválido) também aciona a rotação de conta. Esta opção é apenas aditiva — nunca bloqueia o comportamento existente do motor, em que um erro 400 com texto de limite de taxa/quota continua a recorrer à alternativa, independentemente deste sinalizador.
OMNIROUTE_ROTATE_400_THRESHOLD 1 open-sse/services/rotationConfig.ts Número de erros 400 dentro de OMNIROUTE_ROTATE_400_WINDOW_SECONDS necessário antes de a conta ser alternada (consultado apenas quando OMNIROUTE_ROTATE_ON_400=true).
OMNIROUTE_ROTATE_400_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Janela deslizante (segundos) durante a qual os erros 400 são contabilizados para OMNIROUTE_ROTATE_400_THRESHOLD.

Agendador de aquecimento do Claude

Aquecimento controlado por cron para ligações OAuth da Anthropic com adesão ativa, para que a janela de limite de pedidos de 5 horas seja aberta por um pedido trivial agendado, em vez de pelo primeiro pedido real (#8848). O agendador permanece desativado, a menos que OMNIROUTE_WARMUP_ENABLED tenha um valor verdadeiro e a ligação esteja assinalada em settings.claudeWarmup.connections; uma lista de ligações vazia significa que nenhuma ligação é aquecida, mesmo com a variável de ambiente ativada.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_WARMUP_ENABLED (não definida → desativado) src/lib/warmupScheduler.ts Interruptor principal do agendador de aquecimento. Aceita 1/true/yes/on (sem distinção entre maiúsculas e minúsculas e com espaços removidos). Qualquer outro valor, ou a ausência de valor, mantém o agendador desativado.
OMNIROUTE_WARMUP_CRON 0 7 * * * src/lib/warmupScheduler.ts Expressão cron de cinco campos para a execução do aquecimento, avaliada em America/Los_Angeles (o fuso horário de reposição da Anthropic), independentemente do relógio do anfitrião.
OMNIROUTE_WARMUP_CONCURRENCY 3 src/lib/warmupScheduler.ts Número de ligações aquecidas em paralelo por execução. Limitado ao intervalo 1-10; um valor não numérico utiliza 3 como alternativa.
OMNIROUTE_WARMUP_MODEL claude-3-5-haiku-20241022 src/lib/warmupScheduler.ts Modelo utilizado no pedido de aquecimento. Substitua-o apenas se a predefinição não estiver disponível no seu plano; escolha o modelo mais barato que ainda abra a janela.

Sessões VNC de início de sessão no navegador e alias do diretório de dados

Chromium+VNC em contentor utilizado para a captura interativa de credenciais de início de sessão no navegador (/api/vnc-session), juntamente com um alias DATA_DIR legado. Tudo é opcional — as predefinições de VNC destinam-se à imagem omniroute-vnc-chromium:local incluída e apenas são substituídas para utilizar uma imagem de contentor ou portas personalizadas, ou para ajustar o ciclo de vida.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Etiqueta da imagem Docker para o contentor de início de sessão Chromium+VNC. Compile docker/vnc-browser/chromium ou defina esta variável para uma imagem personalizada.
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Binário do ambiente de execução de contentores utilizado para iniciar o contentor VNC (por exemplo, defina como podman).
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Porta VNC/noVNC exposta no interior do contentor.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Porta do Chrome DevTools Protocol no interior do contentor.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Caminho do diretório do perfil do Chromium no interior do contentor.
OMNIROUTE_VNC_PROFILE_DIR $HOME/.omniroute/browser-login-profiles src/lib/vncSession/manifest.ts Diretório do anfitrião que contém os perfis persistentes de início de sessão no navegador.
OMNIROUTE_VNC_IDLE_MS 600000 (10 min) src/lib/vncSession/manifest.ts Tempo limite de inatividade (ms) após o qual uma sessão VNC inativa é eliminada.
OMNIROUTE_VNC_MAX_MS 1800000 (30 min) src/lib/vncSession/manifest.ts Limite máximo absoluto (ms) da duração de uma única sessão VNC.
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Número máximo de sessões VNC simultâneas.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Tempo limite (ms) de espera até que o navegador em contentor esteja pronto para CDP.
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Tempo limite (ms) para recolher a sessão/os cookies capturados após a conclusão do início de sessão.
OMNIROUTE_VNC_CHROMIUM_ARGS --remote-debugging-port=9222 --no-first-run --no-default-browser-check src/lib/vncSession/manifest.ts Parâmetros adicionais da linha de comandos transmitidos ao Chromium em contentor.
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Rede Docker dedicada à qual o contentor de início de sessão VNC se liga (#12571), em vez da ponte predefinida, para que os contentores irmãos não consigam aceder à respetiva porta de ponte CDP.
VIBEPROXY_DATA_DIR (não definido) open-sse/services/notionThreadSessions.ts Nome alternativo legado para DATA_DIR, verificado apenas quando DATA_DIR e OMNIROUTE_DATA_DIR não estão definidos. Localiza a cache de sessões de tópicos Web do Notion (<dir>/notion-web-thread-sessions.json).

26. Infraestrutura de Testes e E2E

Utilizada por scripts/dev/run-next-playwright.mjs, scripts/dev/smoke-electron-packaged.mjs, scripts/dev/run-ecosystem-tests.mjs e scripts/build/uninstall.mjs. Deixe todos os valores abaixo por definir em implementações de produção.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_E2E_BOOTSTRAP_MODE auth scripts/dev/run-next-playwright.mjs Modo de inicialização E2E (auth, fresh, reuse) para o executor do Playwright.
OMNIROUTE_E2E_PASSWORD recorre a INITIAL_PASSWORD scripts/dev/run-next-playwright.mjs Palavra-passe de administrador injetada no ambiente do Playwright.
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Desativa a consulta periódica da verificação de integridade local durante as execuções do Playwright.
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Desativa o ciclo de verificação de integridade dos tokens OAuth durante os testes.
OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS (não definida) src/lib/tokenHealthCheck.ts Fornecedores separados por vírgulas excluídos da verificação proativa de atualização de tokens (por exemplo, codex,openai). Alternativa direcionada à desativação total da verificação de integridade — os fornecedores com TTL curto continuam a ser atualizados, enquanto os fornecedores em cascata permanecem apenas reativos.
OMNIROUTE_HIDE_HEALTHCHECK_LOGS true scripts/dev/run-next-playwright.mjs Suprime as mensagens da verificação de integridade no stdout do Playwright.
OMNIROUTE_PLAYWRIGHT_SKIP_BUILD 0 scripts/dev/run-next-playwright.mjs Ignora a compilação de produção do Next.js antes de o Playwright iniciar (otimização de CI).
OMNIROUTE_SKIP_UNINSTALL_HOOK 0 scripts/build/uninstall.mjs Ignora o hook de desinstalação do OmniRoute (utilizado pela CI para manter node_modules intacto).
ECOSYSTEM_SERVER_WAIT_MS 180000 scripts/dev/run-ecosystem-tests.mjs Tempo de espera (ms) para que o servidor fique operacional antes de executar testes de ecossistema/protocolo.
ELECTRON_SMOKE_URL http://127.0.0.1:20128/login scripts/dev/smoke-electron-packaged.mjs URL na qual a infraestrutura de testes de fumo do Electron espera que a aplicação empacotada esteja disponível.
ELECTRON_SMOKE_TIMEOUT_MS 45000 scripts/dev/smoke-electron-packaged.mjs Tempo limite total (ms) antes de a infraestrutura de testes de fumo desistir.
ELECTRON_SMOKE_SETTLE_MS 2000 scripts/dev/smoke-electron-packaged.mjs Período de estabilização (ms) após o carregamento da página.
ELECTRON_SMOKE_APP_EXECUTABLE (automático) scripts/dev/smoke-electron-packaged.mjs Caminho explícito para o executável empacotado do Electron.
ELECTRON_SMOKE_DATA_DIR (diretório temporário) scripts/dev/smoke-electron-packaged.mjs Diretório de dados para a execução dos testes de fumo do Electron.
ELECTRON_SMOKE_KEEP_DATA 0 scripts/dev/smoke-electron-packaged.mjs Defina como 1 para preservar o diretório de dados do teste de fumo após a execução.
ELECTRON_SMOKE_STREAM_LOGS 0 scripts/dev/smoke-electron-packaged.mjs Defina como 1 para transmitir os registos do Electron para stdout durante a execução.
ELECTRON_SMOKE_COLD_RESTART 0 scripts/dev/smoke-electron-packaged.mjs #7592: reinicia com o mesmo diretório de dados e confirma que o segundo arranque seleciona o controlador SQLite nativo.
CLI_DEVIN_BIN (pesquisa no PATH) open-sse/executors/devin-cli.ts Substitui o caminho do binário da CLI do Devin.

Pipeline de tradução da documentação

Utilizado por scripts/i18n/run-translation.mjs (o comando npm run i18n:run). As cinco variáveis não estão definidas por predefinição — defina-as em .env apenas nas máquinas que devem poder executar o tradutor da documentação.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_TRANSLATION_API_URL (não definida) scripts/i18n/run-translation.mjs URL base compatível com a OpenAI para o backend de tradução.
OMNIROUTE_TRANSLATION_API_KEY (não definida) scripts/i18n/run-translation.mjs Token Bearer para o backend de tradução (nunca é registado).
OMNIROUTE_TRANSLATION_MODEL (não definida) scripts/i18n/run-translation.mjs ID do modelo, por exemplo, gpt-4o-mini ou cx/gpt-5.4-mini.
OMNIROUTE_TRANSLATION_TIMEOUT_MS 60000 scripts/i18n/run-translation.mjs Tempo limite por pedido, em milissegundos.
OMNIROUTE_TRANSLATION_CONCURRENCY 4 scripts/i18n/run-translation.mjs Pedidos de tradução em paralelo ao processar vários ficheiros/idiomas.

27. Feed do Radar (Alojamento Próprio)

Extensão opcional controlada pela flag de funcionalidade RADAR_ENABLED (desativada por predefinição — uma flag de funcionalidade ativada através das Definições/BD, e não uma variável de ambiente; consulte docs/frameworks/RADAR.md). As primeiras quatro variáveis abaixo são substituições opcionais para um feed autoalojado ou derivado e para os fluxos de chaves de apoiantes. A quinta, RADAR_ADMIN_URL, é uma ligação separada, sem valor predefinido, para o painel de operações privado do proprietário. Consulte docs/frameworks/RADAR.md para obter a documentação completa do módulo e a respetiva sequência integral de ativação e configuração guiada.

O leitor genérico de anúncios da página inicial/registo de alterações não é configurado através de uma variável de ambiente e não depende da flag de funcionalidade RADAR_ENABLED. Este lê apenas através de GET o URL público de news.json do repositório, declarado em src/shared/utils/releaseNotes.ts; os IDs de dispensa permanecem no armazenamento local do navegador.

Variável Predefinição Ficheiro de origem Descrição
RADAR_FEED_URL https://radar.omniroute.online src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts URL base partilhado pelos feeds, assinados separadamente, de catálogo, referências, ofertas para apoiantes e Intel. Substitua-o para apontar para um serviço autoalojado ou derivado.
RADAR_FEED_PUBKEY (chave predefinida fixada) src/lib/radar/pinnedKeys.ts Chave pública Ed25519 (SPKI DER em base64 ou PEM) utilizada para verificar as assinaturas de um feed personalizado.
RADAR_CONTRIBUTOR_CLAIM_URL https://radar.omniroute.online/auth/github src/lib/radar/links.ts URL aberto pelo botão "Sou colaborador" do painel (fluxo de reivindicação de chave de apoiante através do GitHub OAuth).
RADAR_SUPPORTER_PLANS_URL https://radar.omniroute.online/planos src/lib/radar/links.ts URL aberto pelo botão "Apoiar o projeto" do painel (página de pagamentos/planos).
RADAR_ADMIN_URL (não definido) src/lib/radar/links.ts Ligação ao painel de operações privado, exclusiva do proprietário. HTTPS é obrigatório, exceto para um reencaminhamento SSH de loopback HTTP; valores não definidos ou inválidos não criam qualquer item de navegação.

Auditoria: Variáveis Removidas / Obsoletas

As seguintes variáveis apareciam em versões anteriores de .env.example, mas não têm referências em tempo de execução na base de código atual. Foram removidas:

Variável Motivo
STORAGE_DRIVER=sqlite Nunca é lida por qualquer ficheiro de código-fonte. SQLite é o único driver suportado — não é necessária qualquer seleção.
INSTANCE_NAME=omniroute Presente em documentação/modelos de ambiente antigos, mas não utilizada em tempo de execução. Poderá regressar numa futura funcionalidade de múltiplas instâncias.
SQLITE_MAX_SIZE_MB=2048 Não é referenciada no código-fonte. O tamanho da base de dados não é limitado artificialmente.
SQLITE_CLEAN_LEGACY_FILES=true Não é referenciada no código-fonte. A limpeza de ficheiros legados foi provavelmente removida.
CLI_ROO_BIN Não está registada em src/shared/services/cliRuntime.ts.
CLI_KIMI_CODING_BIN Não está registada em src/shared/services/cliRuntime.ts (o Kimi Coding utiliza OAuth, não um binário da CLI).
IFLOW_OAUTH_CLIENT_ID / IFLOW_OAUTH_CLIENT_SECRET Não são referenciadas em nenhuma parte do código-fonte.
CEREBRAS_API_KEY / COHERE_API_KEY / FIREWORKS_API_KEY / GROQ_API_KEY / MISTRAL_API_KEY / NEBIUS_API_KEY / PERPLEXITY_API_KEY / TOGETHER_API_KEY / XAI_API_KEY Removidas na v3.8.0. O runtime deixou de ler estas variáveis de ambiente — as credenciais provêm do Dashboard / data/provider-credentials.json / base de dados encriptada.
CURSOR_PROTOBUF_DEBUG Removida na v3.8.0. O executor do Cursor utiliza CURSOR_DEBUG / CURSOR_STREAM_DEBUG (consulte a secção §22).
CLI_COMPAT_KIRO Removida na v3.8.0. O Kiro está em CLI_COMPAT_OMITTED_PROVIDER_IDS — a respetiva opção não tem efeito.
QIANFAN_API_KEY Removida juntamente com outros stubs de chaves de API de fornecedores não utilizados na v3.8.0.

Correções dos valores predefinidos

Variável Valor antigo em .env.example Valor predefinido real no código Correção
APP_LOG_RETENTION_DAYS 90 7 Valor enganador removido; 7 documentado como predefinição
CALL_LOG_RETENTION_DAYS 90 7 Valor enganador removido; 7 documentado como predefinição

Regeneração da configuração do OpenCode (ferramenta ad hoc)

Utilizada por scripts/ad-hoc/regen-opencode-config.ts para regenerar um opencode.json com valores exatos de limit.context e limit.output obtidos da instância do OmniRoute em execução. Nenhuma destas variáveis é necessária para o funcionamento normal — o script é apenas uma ferramenta para programadores.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_URL http://localhost:20128 scripts/ad-hoc/regen-opencode-config.ts URL base da instância do OmniRoute a consultar para /v1/models.
OMNIROUTE_KEY (não definida) scripts/ad-hoc/regen-opencode-config.ts Chave de API para autenticação no endpoint /v1/models do OmniRoute. Se não estiver definida, utiliza OPENCODE_API_KEY.
OPENCODE_API_KEY (não definida) scripts/ad-hoc/regen-opencode-config.ts Chave de API ao estilo do OpenCode (sk-...) escrita no opencode.json regenerado. Se não estiver definida, utiliza OMNIROUTE_KEY.

Ferramenta ad hoc de avaliação offline da compressão

Utilizada por scripts/compression-eval/index.ts, a CLI de avaliação offline da compressão. Não é necessária para o funcionamento normal — destina-se apenas a ferramentas de desenvolvimento.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_EVAL_CREDENTIALS {} (vazio) scripts/compression-eval/index.ts Credenciais JSON fornecidas pelo operador para o fornecedor utilizado pela CLI de avaliação offline da compressão (analisadas com JSON.parse). Deixe por definir para uma execução de teste.

Sessões de navegador VNC

Utilizadas por src/lib/vncSession/manifest.ts para configurar sessões do Chromium sem interface gráfica baseadas em Docker para fornecedores de automatização de navegadores. Todas são opcionais — as predefinições são apresentadas abaixo.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Caminho para o binário do Docker utilizado para iniciar contentores VNC.
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Imagem Docker para o contentor VNC do Chromium.
OMNIROUTE_VNC_CHROMIUM_ARGS (opções incorporadas) src/lib/vncSession/manifest.ts Argumentos adicionais da CLI do Chromium transmitidos ao navegador dentro do contentor.
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Porta VNC dentro do contentor.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Porta do Chrome DevTools Protocol dentro do contentor.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Diretório do perfil dentro do contentor.
OMNIROUTE_VNC_PROFILE_DIR (não definida) src/lib/vncSession/manifest.ts Diretório no anfitrião para perfis persistentes do navegador.
OMNIROUTE_VNC_IDLE_MS 600000 src/lib/vncSession/manifest.ts Tempo limite de inatividade (ms) antes de uma sessão VNC ser recolhida.
OMNIROUTE_VNC_MAX_MS 1800000 src/lib/vncSession/manifest.ts Duração máxima da sessão (ms).
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Número máximo de sessões VNC simultâneas.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Tempo limite para o navegador ficar pronto (ms).
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Tempo limite para recolha/limpeza (ms).
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Rede Docker dedicada à qual o contentor se liga (#12571), fora da ponte predefinida.
VIBEPROXY_DATA_DIR (não definida) open-sse/services/notionThreadSessions.ts Diretório para persistência das sessões de conversação do Notion.

Autenticação de serviços internos

Variável Predefinição Descrição
OMNIROUTE_INTERNAL_SERVICE_TOKEN Token inline para autenticação serviço a serviço do plano de gestão.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE Caminho para um ficheiro que contém o token de serviço interno (preferível em contentores; substitui a variável inline).

Estatísticas de fornecedores do OpenRouter

Variável Predefinição Descrição
OPENROUTER_PROVIDER_STATS_ENABLED true Defina como false para não obter estatísticas por fornecedor do OpenRouter para enriquecimento do catálogo.
OPENROUTER_PROVIDER_STATS_TTL_MS 3600000 TTL da cache (ms) para as estatísticas obtidas dos fornecedores do OpenRouter.

Associação do Redis incorporado

Variável Predefinição Descrição
REDIS_BIND_HOST 127.0.0.1 Endereço de escuta do serviço Redis incorporado.
REDIS_PORT 6379 Porta do serviço Redis incorporado.
OMNIROUTE_REDIS_BIND_HOST Substituição específica do OmniRoute para o endereço de escuta do Redis incorporado.

24. Adições da versão v3.8.50

Estas definições foram introduzidas após a captura anterior do contrato de ambiente.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS 2000 src/shared/middleware/chatBodyAdmission.ts Tempo máximo de espera por uma vaga de admissão para conversações pesadas antes de devolver um 503 que permite nova tentativa; uma espera curta e limitada serializa os picos de agentes em vez de devolver imediatamente um 503. 0 repõe a rejeição imediata.
OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES 4194304 (4 MB) src/shared/middleware/chatBodyAdmission.ts Limite de bytes em fila para a espera de admissão: limita o total de bytes de corpos armazenados em memória intermédia e retidos em todo o processo, para que a espera não amplifique a heap (#4380). As esperas que excedam o limite recebem imediatamente um 503 que permite nova tentativa.
OMNIROUTE_CHAT_VIRTUAL_TTL_MS 60000 (60 s) src/shared/middleware/chatBodyAdmission.ts Operação sem efeito, obsoleta desde #10110: as vias de admissão por sessão foram removidas em favor de um único limite para todo o processo. Aceite para compatibilidade de configuração; ignorada.
OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS 64 src/shared/middleware/chatBodyAdmission.ts Operação sem efeito, obsoleta desde #10110: as vias de admissão por sessão foram removidas em favor de um único limite para todo o processo. Aceite para compatibilidade de configuração; ignorada.
OMNIROUTE_CHAT_VIRTUAL_LANES 0 (desativado) open-sse/services/admission/runtime.ts Vias virtuais adaptativas de admissão em tempo de execução (#9654): interruptor principal do controlo adaptativo por inquilino (sistema 2). Distinto das variáveis obsoletas de vias por ligação acima (TTL_MS / MAX_SESSIONS, sem efeito desde #10110). Sinalizador de funcionalidade com o mesmo nome no painel; a variável de ambiente prevalece sobre a substituição do painel; requer reinício.
OMNIROUTE_RUNNOW_TIMEOUT_MS 30000 src/app/api/jobs/[id]/run-now/route.ts Limita o tempo durante o qual uma chamada de execução imediata aguarda por uma tarefa em curso antes de iniciar a execução em fila.
ADOBE_FIREFLY_BROWSER_REFRESH ativado open-sse/services/adobeFireflySession.ts Mantém atualizados os estados do IMS e de risco do navegador através de sessões Chrome CDP ao nível da conta; defina como 0 para desativar.
ADOBE_FIREFLY_SESSION_DISK ativado open-sse/services/adobeFireflySession.ts Mantém as sessões Adobe reparadas em DATA_DIR; defina como 0 para manter o estado apenas em memória.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Intervalo mínimo entre submissões de geração ao Adobe Firefly.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Período de inatividade adicional após cada terceira submissão bem-sucedida à Adobe.
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Modo verdadeiramente sem interface gráfica, apenas para depuração; normalmente, o Adobe colligo rejeita a sessão de risco resultante.
CHROME_PATH deteção automática open-sse/executors/cloudflare-playground.ts, open-sse/executors/chatgpt-web-codex.ts Executável absoluto opcional do Chrome utilizado pelos executores controlados pelo navegador quando a deteção automática da plataforma é insuficiente.
TELEGRAM_BOT_TOKEN (não definido) src/lib/telegram/config.ts Token do BotFather que ativa o webhook de entrada e assina o initData da Mini App.
TELEGRAM_WEBHOOK_SECRET (não definido) src/lib/telegram/config.ts Segredo partilhado registado através de setWebhook e verificado em relação ao cabeçalho X-Telegram-Bot-Api-Secret-Token em cada entrega de webhook. Obrigatório para o caminho do webhook; se não estiver definido, as entregas de webhook são recusadas com 503.
TELEGRAM_DEFAULT_MODEL auto/chat src/lib/telegram/chatProxy.ts Modelo utilizado para respostas de conversação no Telegram.
TEGRAM_BOT_API_BASE https://api.telegram.org src/lib/telegram/config.ts Substituição do URL base da Bot API para proxies ou servidores Bot API autoalojados.
TELEGRAM_WEBHOOK_TIMEOUT_MS 60000 src/lib/telegram/config.ts Tempo limite, em milissegundos, para chamadas de saída à Bot API.
OMNIROUTE_OPTIONAL_PACK_TAR 1 (ativado) scripts/build/optionalPackStaging.mjs Defina como 0 para ignorar a emissão de arquivos tar .tar.gz durante a preparação de pacotes opcionais de ML/navegador para a árvore autónoma do Electron (os diretórios dos pacotes e optional-packs.index.json continuam a ser produzidos). Utilizado pelo fluxo de trabalho de lançamento para ambiente de trabalho para reduzir o tamanho do carregamento dos artefactos.

ChatGPT Web (Codex)

Predefinições globais para o navegador sem interface gráfica e para o túnel de ferramentas de saída. Os valores de ligação definidos no painel têm prioridade.

Variável Predefinição Ficheiro de origem Descrição
CHATGPT_WEB_CODEX_CHROME_PATH (deteção automática) open-sse/executors/chatgpt-web-codex.ts Caminho explícito do Chrome/Chromium para execução com npm, systemd e PM2.
CHROME_PATH (deteção automática) open-sse/executors/chatgpt-web-codex.ts Alternativa comum para um caminho explícito do Chrome/Chromium.
CHATGPT_WEB_CODEX_CDP_URL (não definido) open-sse/executors/chatgpt-web-codex.ts Endpoint CDP interno; o Docker utiliza o sidecar na porta 9223.
CDP_PROXY_TOKEN (não definido) docker/chatgpt-web-codex-browser/cdp-proxy.mjs Se estiver definido, todos os pedidos ao sidecar de proxy CDP têm de incluir este valor no cabeçalho X-Omni-Cdp-Token (#13679). Sem um valor, o proxy reencaminha os pedidos sem autenticação — nesse caso, apenas o isolamento da rede Compose chatgpt-web-codex-net oferece proteção. Gere-o com openssl rand -hex 32.
CHATGPT_WEB_CODEX_TUNNEL_ID (não definido) open-sse/executors/chatgpt-web-codex.ts ID global do túnel OpenAI para rondas locais das ferramentas Codex.
CHATGPT_WEB_CODEX_RUNTIME_KEY (não definido) open-sse/executors/chatgpt-web-codex.ts Chave de runtime global do túnel; nunca a inclua nos registos.
CHATGPT_WEB_CODEX_CONNECTOR_NAME OmniRoute Codex v2 open-sse/executors/chatgpt-web-codex.ts Nome exato do conector personalizado do ChatGPT recém-criado para a ponte MCP.
CODEX_CHATGPT_WEB_HOME <DATA_DIR>/chatgpt-web-codex open-sse/vendor/codex-chatgpt-web/config.ts Diretório dedicado para o estado do navegador, broker e túnel.
CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS 0 open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts Quando definido como 1, são capturadas imagens de diagnóstico do navegador em cada ponto de controlo.
CODEX_CHATGPT_WEB_LAUNCHER (não definido) open-sse/vendor/codex-chatgpt-web/config.ts Caminho absoluto opcional para um binário de launcher persistente.
CODEX_CHATGPT_WEB_BUN (deteção automática) open-sse/vendor/codex-chatgpt-web/config.ts Caminho absoluto opcional para o binário do runtime Bun.
CODEX_WEB_GPT_BUN (não definido) open-sse/vendor/codex-chatgpt-web/config.ts Alternativa legada para CODEX_CHATGPT_WEB_BUN; as novas configurações utilizam o nome canónico.

Ponte OmniConductor

Consumidor SSE de longa duração que replica tarefas do hub OmniConductor no A2A TaskManager local (src/lib/conductor/). Funcionalidade opcional — a ponte só é iniciada quando CONDUCTOR_HUB_URL está definida. Apenas no lado do servidor: o token do hub nunca deve chegar ao navegador.

Variável Predefinição Ficheiro de origem Descrição
CONDUCTOR_HUB_URL (vazio) src/lib/conductor/boot.ts URL base do hub OmniConductor (por exemplo, http://127.0.0.1:7910). Não definida = ponte desativada.
CONDUCTOR_HUB_TOKEN (vazio) src/lib/conductor/boot.ts Credencial do hub para o feed SSE — emita um par do tipo spokesperson no hub (POST /v1/peers, administrador).
CONDUCTOR_ORCHESTRATOR_TOKEN (vazio) src/lib/conductor/hubProxy.ts Credencial para delegação de tarefas A2A→hub recebidas (POST /v1/tasks); recorre a CONDUCTOR_HUB_TOKEN quando não definida.
CONDUCTOR_SPOKESPERSON_URL http://127.0.0.1:7920 src/lib/conductor/faroProxy.ts URL base do serviço de porta-voz (Faro) subjacente ao proxy de chat do painel (/api/conductor/ask).

Agendamento com reconhecimento de quotas

Utilizado por open-sse/services/combo.ts e src/lib/quota/quotaScheduler.ts para verificações do orçamento de tokens antes do pedido. Funcionalidade opcional — o comportamento de encaminhamento predefinido permanece inalterado quando não está definida.

Variável Predefinição Ficheiro de origem Descrição
OMNIROUTE_QUOTA_AWARE_ROUTING 0 open-sse/services/combo.ts Quando definida como 1, ignora ligações cujo orçamento de tokens por janela (rateLimitOverrides.tpm, tabela provider_quota_state) não consegue suportar o custo estimado do pedido antes do envio. Prossegue em caso de falha quando não existe um orçamento configurado.