Environment Variables Reference (Português (Brasil))
Sumário
Seção intitulada “Sumário”- 1. Segredos obrigatórios
- 2. Armazenamento e banco de dados
- 3. Rede e portas
- 4. Segurança e autenticação
- 5. Sanitização de entrada e proteção de PII
- 6. Políticas de ferramentas e roteamento
- 7. URLs e sincronização com a nuvem
- 8. Proxy de saída
- 9. Integração com ferramentas de CLI
- 10. Integrações com agentes internos e MCP
- 11. Credenciais de provedores OAuth
- 12. Substituições de User-Agent dos provedores
- 13. Compatibilidade de impressão digital da CLI
- 14. Provedores de chave de API
- 15. Configurações de tempo limite
- 16. Logs
- 17. Otimização de memória
- 18. Sincronização de preços
- 19. Sincronização de modelos (desenvolvimento)
- 20. Configurações específicas de provedores
- 21. Integridade do proxy
- 22. Depuração
- 23. Integração com o GitHub
- 24. Sandbox de habilidades (v3.8.0+)
- 27. Feed do Radar (auto-hospedagem)
- Cenários de implantação
- Auditoria: variáveis removidas/inativas
1. Segredos obrigatórios
Seção intitulada “1. Segredos obrigatórios”Estes devem ser definidos antes da primeira execução. Sem eles, a aplicação se recusará a iniciar ou operará com padrões inseguros.
| Variável | Obrigatória | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|---|
JWT_SECRET |
Sim | (nenhum) | src/lib/auth |
Assina/verifica todos os cookies de sessão do painel (JWT). Gere com openssl rand -base64 48. |
API_KEY_SECRET |
Sim | (nenhum) | src/lib/db/apiKeys.ts |
Chave de criptografia 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 senha inicial de administrador do painel (corresponde ao padrão de .env.example — mantida propositalmente insegura para forçar uma alteração). Altere antes do primeiro uso. Após entrar, altere-a em Painel → Configurações → Segurança. |
OMNIROUTE_WS_BRIDGE_SECRET |
Sim (produção) | (não definida) | src/app/api/internal/codex-responses-ws/route.ts |
Segredo compartilhado para a ponte WebSocket interna do Codex Responses. Autentica as solicitações da ponte entre o retransmissor WS do Electron/navegador e o OmniRoute. ⚠️ OBRIGATÓRIA em produção — quando não está definida, todas as solicitações à ponte WS são rejeitadas. 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 para invalidação de cache do service worker do shell da PWA (#11779); é o primeiro na cadeia de resolução. |
SOURCE_VERSION |
Não | (não definida) | next.config.mjs, scripts/build/assembleStandalone.mjs |
Segundo na cadeia — definido por sistemas de build de PaaS (por exemplo, no estilo Heroku) como o commit implantado. |
NEXT_PUBLIC_SW_BUILD_ID |
Não | (derivado) | src/shared/components/PwaRegister.tsx |
Valor público definido no momento do build que o cliente usa para registrar /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 a cada inicialização) | src/server/authz/policies/management.ts |
Segredo por processo que comprova que a marca de IP do par confiável veio do próprio servidor HTTP do OmniRoute (scripts/dev/peer-stamp.mjs). O middleware de autorização confia na localidade da solicitação (restrição de rotas LOCAL_ONLY a loopback/LAN) somente quando a marca contém esse token. Gerado automaticamente a cada inicialização — deixe-o sem definir; fixe-o apenas em configurações com vários processos que precisam compartilhar a marca. |
Comandos de geração
Seção intitulada “Comandos de geração”# Gere 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 faça commit de arquivos
.envcom segredos reais no controle de versão. O.gitignorejá exclui.env, mas verifique antes de enviar.
2. Armazenamento e banco de dados
Seção intitulada “2. Armazenamento e banco de dados”O OmniRoute usa SQLite (via better-sqlite3) para toda a persistência. Essas variáveis controlam a localização, a criptografia e o ciclo de vida dos dados.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
DATA_DIR |
~/.omniroute/ |
src/lib/db/core.ts |
Diretório raiz para o banco de dados SQLite, backups e arquivos de dados. Sobrescreva-o para volumes do Docker ou caminhos personalizados. |
OMNIROUTE_ALLOW_DEFAULT_DATA_DIR |
(não definida) | src/lib/dataPaths.ts |
Mecanismo de escape para a proteção de DATA_DIR em testes/avaliações (#10428). Testes e sondagens 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 o banco de dados real do operador; defina como 1 para voltar a usar o diretório real. |
OMNIROUTE_BUILD_SHA |
(não definida) | src/lib/monitoring/buildSha.ts |
SHA do Git do artefato em execução. Gravado por npm run build:release; pode ser injetado em contêineres 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 com a qual a verificação de proveniência do empacotamento do artefato compara 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 esteja na linha de lançamento, registrando-a como um canário deliberado em vez de reprovar na verificação (#10427). |
OMNIROUTE_SMOKE_API_KEY |
(não definida) | scripts/ops/deploy-canary.mjs |
Chave de API para a sondagem de smoke test da implantação canário, enviada como Authorization: Bearer em /v1/chat/completions. Usada apenas pelo script de implantação (#10429), nunca pelo servidor. Não está relacionada às variáveis OMNIROUTE_SMOKE_* do conjunto opcional de smoke tests 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 → Varredura de smoke tests reais. |
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 cada worker de compilação iniciado, para que a camada do banco de dados retorne um stub sem operação em vez de carregar o addon nativo better-sqlite3 (que encerra o worker de forma abrupta na saída). 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 de pré-compilação das dependências nativas opcionais em árvores vendorizadas exóticas. Isso não torna compilável uma dependência ausente; use apenas quando as dependências nativas forem fornecidas por um canal externo. |
OMNIROUTE_DATA_DIR |
(não definida) | open-sse/executors/promptql/threadSticky.ts |
Alias de fallback para DATA_DIR, verificado apenas quando DATA_DIR não está definida. Usado para localizar o cache em disco das sessões fixas por thread do executor PromptQL (<dir>/promptql-thread-sessions.json); se nenhuma das variáveis estiver definida, o cache permanecerá apenas na memória (não será persistido entre reinicializações). |
OMNIROUTE_PLUGINS_DIR |
(não definida) | src/lib/plugins/scanner.ts |
Diretório lido pelo scanner de plugins em tempo de execução — e diretório raiz no qual o gerenciador de plugins instala —, sobrescrevendo o padrão derivado do diretório inicial (#11827). Aponte-o para a árvore de plugins montada via bind no Docker/K8s, em vez de mover HOME apenas para realocar o caminho de varredura (HOME também rege todos os outros comportamentos relativos ao diretório inicial). Não definida = ~/.omniroute/plugins, ou /tmp/.omniroute/plugins quando o processo não exporta nenhum diretório inicial — evitando a não detecção silenciosa que esta variável elimina. O diretório resolvido é registrado uma vez na inicialização como scanner.dir_resolved, junto com a entrada selecionada. Apenas no lado do servidor: os plugins de comando da CLI mantêm seu próprio OMNIROUTE_PLUGIN_PATH (seção 9). |
STORAGE_ENCRYPTION_KEY |
(vazio = desabilitado) | src/lib/db/encryption.ts |
Chave AES para criptografia completa do banco de dados SQLite em repouso. Gere com openssl rand -hex 32. |
STORAGE_ENCRYPTION_KEY_VERSION |
v1 |
scripts/build/bootstrap-env.mjs, electron/main.js |
Rótulo de versão da chave de criptografia. Incremente-o ao realizar a rotação de chaves para permitir a descriptografia de backups antigos. |
DISABLE_SQLITE_AUTO_BACKUP |
false |
src/lib/db/backup.ts |
Quando definido como true, ignora backups rotineiros/anteriores à gravação do arquivo SQLite (salvamento/limpeza de preços do models.dev e gravações de configurações). Backups manuais e anteriores à restauração ainda são executados. Isso não desabilita o snapshot de segurança durável obrigatório do executor de migrações nem a proteção contra migração em massa para um banco de dados persistente existente. Backups não manuais são limitados a, no máximo, um a cada 60 minutos. A opção Configurações → Armazenamento do painel pode desabilitar o backup automático rotineiro de forma independente. |
OMNIROUTE_CRYPT_KEY |
(não definida) | src/lib/db/encryption.ts |
Alias legado de STORAGE_ENCRYPTION_KEY. Aceito como alternativa quando a variável principal estiver ausente. |
OMNIROUTE_API_KEY_BASE64 |
(não definida) | src/lib/db/encryption.ts |
Alias legado (formato codificado em Base64) aceito como alternativa. Decodificado automaticamente antes do uso. |
OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS |
(não definida) | src/lib/db/core.ts |
Sobrescreve o intervalo da verificação de integridade periódica do SQLite (ms). Quando não definido, os valores padrão são derivados de NODE_ENV. |
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS |
(removida) | src/lib/db/walMaintenance.ts |
Removida. Uma execução periódica de wal_checkpoint(TRUNCATE) em produção pode invalidar o mapeamento compartilhado do wal-index e causar o encerramento do processo com SIGBUS (#13973), portanto, o agendador não existe mais. A variável não tem efeito: um valor positivo registra um aviso de descontinuação uma única vez, enquanto 0 ou a ausência de valor não gera mensagens. O WAL é mantido por checkpoints PASSIVE (abaixo) e truncado pelo checkpoint de encerramento. |
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS |
300000 (5 min) |
src/lib/db/walMaintenance.ts |
Sobrescreve o intervalo frequente de wal_checkpoint(PASSIVE) (ms). Mantém pequeno o número de quadros WAL pendentes para que os checkpoints permaneçam rápidos e o arquivo WAL se mantenha limitado entre os truncamentos de encerramento. 0 desabilita. |
OMNIROUTE_WAL_GUARD_MAX_MB |
256 |
src/lib/db/walMaintenance.ts |
Quando uma execução PASSIVE encontra o arquivo WAL acima desse tamanho, executa wal_checkpoint(RESTART) para que o WAL recomece sem regravar o wal-index mapeado. Os checkpoints em modo de truncamento durante a execução foram removidos (consulte a linha OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS). |
OMNIROUTE_PRESSURE_SELF_RESTART |
false |
open-sse/utils/resourcePressure.ts |
Defina como 1/true/yes/on para encerrar o processo após a pressão crítica sobre os recursos persistir por OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS, permitindo que um supervisor (systemd Restart=always, política de reinicialização do Docker) inicie um processo limpo em vez de retornar erros 503 indefinidamente. |
OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS |
120000 (2 min) |
open-sse/utils/resourcePressure.ts |
Por quanto tempo a pressão crítica deve persistir antes que o encerramento para autorreinicialização seja acionado. |
OMNIROUTE_SQLJS_WASM_PATH |
(detecção automática) | src/lib/db/adapters/sqljsAdapter.ts |
Caminho explícito (absoluto ou relativo ao cwd) para sql-wasm.wasm ao usar o adaptador de fallback WASM sql.js. Quando não definido, é detectado automaticamente por meio das dependências do pacote e de layouts candidatos. |
OMNIROUTE_BATCH_RETENTION_DAYS |
30 |
src/lib/db/cleanup.ts |
Quantidade de dias durante os quais os checkpoints, os arquivos referenciados de entrada/saída/erro e o registro de um trabalho terminal da Batch API (concluído/com falha/cancelado/expirado) são mantidos pela limpeza automática antes da exclusão. Só entra em vigor quando BATCH_AND_FILE_AUTO_CLEANUP_ENABLED é habilitada; corresponde ao período de retenção de saída da própria Batch API da OpenAI. Não afeta a rota DELETE /api/v1/batches/delete-completed acionada pelo operador, que permanece incondicional (sem filtro de idade) por design. |
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED |
false |
src/lib/db/cleanup.ts |
Quando definida como true, permite que a limpeza automática exclua trabalhos terminais da Batch API (e seus checkpoints) após OMNIROUTE_BATCH_RETENTION_DAYS e limpe o conteúdo BLOB dos arquivos enviados após o respectivo expires_at. Desabilitada por padrão: cada instalação existente mantém esses dados exatamente como antes até que um operador habilite o recurso. Também é um sinalizador de recurso editável pelo painel — consulte docs/reference/FEATURE_FLAGS.md → Tempo de execução. |
OMNIROUTE_SKIP_DB_HEALTHCHECK |
0 |
src/lib/db/core.ts, src/lib/db/healthCheck.ts |
Defina como 1 para ignorar totalmente a verificação de integridade do banco de dados na inicialização. Ú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 loop de verificação de integridade do banco de dados, mesmo quando ele normalmente seria 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/headless nas quais o sqlite já está compilado. |
OMNIROUTE_MIGRATIONS_DIR |
(detecção automática) | src/lib/db/migrationRunner.ts |
Substitui o diretório verificado pelo executor de migrações. Útil ao distribuir migrações empacotadas em builds personalizados. |
OMNIROUTE_EXTRA_MIGRATIONS_DIRS |
(não definido) | src/lib/db/migrationRunner/extraDirs.ts |
Diretórios de migração adicionais como entradas namespace=dir separadas pelo delimitador de caminhos da plataforma (por exemplo, ee=/opt/app/enterprise/db/migrations). Os arquivos encontrados nesses diretórios são registrados como <namespace>-<number>, de modo que uma distribuição que inclua suas próprias migrações nunca entre em conflito com os slots numéricos upstream. Uma entrada malformada, um namespace inválido ou um diretório ausente causa um erro na inicialização, em vez de ignorar silenciosamente o esquema. |
OMNIROUTE_MAX_PENDING_MIGRATIONS |
50 |
src/lib/db/migrationRunner.ts |
Limite de segurança para migrações pendentes em massa (#3416). A inicialização é interrompida se houver mais migrações pendentes do que esse limite em um banco de dados existente (protege contra uma tabela de rastreamento apagada). Aumente-o para restaurar um backup mais antigo; 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 o gate de release check:install-upgrade. Ele precisa de aproximadamente 12 GB (duas árvores de instalação de ~3 GB mais o tarball), portanto não deve ser executado em um tmpfs pequeno — no runner auto-hospedado, /tmp é um tmpfs de 12 GB baseado em RAM, e o gate o esgotou, truncando o pacote. |
OMNIROUTE_SPEND_FLUSH_INTERVAL_MS |
(padrão no código) | src/lib/spend/batchWriter.ts |
Intervalo de flush (ms) para o gravador em lote de gastos/custos. Valores menores reduzem o agrupamento de gravações; valores maiores reduzem a contenção no banco de dados. |
OMNIROUTE_SPEND_MAX_BUFFER_SIZE |
(padrão no código) | src/lib/spend/batchWriter.ts |
Número máximo de entradas de gastos armazenadas em buffer antes de um flush forçado. Aumente em implantações com QPS alto; reduza quando limitar o uso de memória for mais importante. |
OMNIROUTE_PROXY_FETCH_DEBUG |
(não definido) | open-sse/utils/proxyFetch.ts |
Defina como "true" para emitir logs de depuração [ProxyFetch] no caminho de relay da Vercel. Desativado por padrão para evitar o vazamento de informações de roteamento. |
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 log do processo. Mantido DESATIVADO por padrão para que o log do processo não vaze IPs nem o prefixo da conta. |
OMNIROUTE_DEBUG |
(não definido) | bin/cli/commands/quota.mjs |
Defina como 1 para imprimir diagnósticos de tempo por solicitação ([omniroute] GET <path> completed in Nms) dos comandos de cota da CLI em stderr. |
OMNIROUTE_HEALTHCHECK_PATH |
(automático) | scripts/dev/healthcheck.mjs |
Caminho explícito sondado pela verificação de integridade do contêiner. Quando não definido, a sonda o deriva de OMNIROUTE_BASE_PATH; defini-lo reativa o endpoint de monitoramento profundo. |
OMNIROUTE_DEBUG_COMPLETION |
(não definido) | bin/cli/commands/completion.mjs |
Defina como qualquer valor não vazio para emitir diagnósticos [omniroute completion] dos caminhos de cache do preenchimento automático do shell pela CLI (leitura/atualização/gravação). Desativado por padrão — falhas nesses caches são silenciosas para que um cache ausente/corrompido nunca interrompa o preenchimento com Tab. |
BATCH_RETRY_DURATION_MS |
86400000 (24h) |
open-sse/services/batchProcessor.ts |
Janela máxima de novas tentativas para itens individuais do lote (ms). Os itens que excederem essa duração serão marcados como falhos. |
BATCH_BACKOFF_BASE_MS |
5000 |
open-sse/services/batchProcessor.ts |
Atraso base (ms) para backoff exponencial nas novas tentativas de itens em lote. |
BATCH_BACKOFF_MAX_MS |
3600000 (1h) |
open-sse/services/batchProcessor.ts |
Limite (ms) para backoff exponencial entre novas tentativas de itens em lote. |
BATCH_MAX_CONCURRENT |
1 |
open-sse/services/batchProcessor.ts |
Número máximo de lotes processados simultaneamente. Aumente para melhorar a vazão; mantenha baixo para evitar picos de limitação de taxa. |
[!IMPORTANT] Antes de alterar um banco de dados persistente existente, o executor de migrações publica um snapshot completo, endereçado por conteúdo, em
DATA_DIR/db_backups/. A publicação exige um sistema de arquivos que ofereça hard links no mesmo sistema de arquivos, sem sobrescrita, além de sincronização durável de arquivos. Hosts POSIX também exigem sincronização de diretórios; no Windows, o Node pode rejeitar identificadores de diretório, portanto, o OmniRoute descarrega o arquivo publicado e trata a sincronização da entrada de diretório como uma operação de melhor esforço. Se oDATA_DIRmontado não puder fornecer essas garantias, a inicialização será interrompida com segurança antes de aplicar uma migração. MovaDATA_DIRpara um volume que ofereça esses recursos; não useDISABLE_SQLITE_AUTO_BACKUPpara contornar a segurança da migração.
Cenários
Seção intitulada “Cenários”| Cenário | Configuração |
|---|---|
| Desenvolvimento local | Mantenha todos os valores padrão. O banco de dados fica em ~/.omniroute/omniroute.db. |
| Docker | DATA_DIR=/data + monte um volume em /data. |
| Criptografado em repouso | Defina STORAGE_ENCRYPTION_KEY + mantenha backups da chave! Perdê-la = perder os dados. |
| CI/Testes | DATA_DIR=/tmp/omniroute-test — efêmero, sem necessidade de criptografia. |
3. Rede e portas
Seção intitulada “3. Rede e portas”| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
PORT |
20128 |
src/lib/runtime/ports.ts |
Porta principal para a interface do Dashboard 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 da URL para disponibilizar o OmniRoute por trás de um proxy reverso (define o basePath do Next.js; os redirecionamentos de autenticação consideram o basePath). Por exemplo, /omniroute. No Docker, o valor é incorporado durante o docker build (ARG OMNIROUTE_BASE_PATH); imagens raiz pré-compiladas podem aplicar um valor diferente em tempo de execução uma única vez, na inicialização do contêiner, antes que o Next.js seja iniciado. 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 |
Espelho de OMNIROUTE_BASE_PATH visível no navegador, incorporado durante a compilação para que a exibição do endpoint no dashboard mostre https://host/omniroute/v1 em vez de https://host/v1. Quando não definido, usa OMNIROUTE_BASE_PATH como alternativa. Recompile após alterá-lo (o basePath do Next é definido em tempo de compilação). |
DASHBOARD_ALLOW_EMBED |
(não definido = nunca incorporável) | next.config.mjs, scripts/build/dashboardEmbed.mjs |
Permite opcionalmente a incorporação das páginas HTML em iframe. Quando não definido, todas as rotas são fornecidas com frame-ancestors 'none' + X-Frame-Options: DENY. Defina como vscode para disponibilizar as páginas (dashboard, login, documentação e página inicial) com frame-ancestors 'self' vscode-webview: e sem X-Frame-Options, para que o Navegador Simples do VS Code possa renderizá-las (modo dashboardOpen: "editor" do OmniCopilot). A superfície da API (/api, /v1, /v1beta, /a2a, /healthz, aliases no nível raiz) mantém os cabeçalhos estritos em ambos os casos. Somente vscode é reconhecido — 1/true não habilitam essa opção. Em tempo de compilação: recompile após alterá-la (docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode para imagens; defini-la em uma instalação pré-compilada não tem efeito). |
API_PORT |
(não definido) | 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 vinculação para a porta da API. |
DASHBOARD_PORT |
(não definido) | src/lib/runtime/ports.ts |
Quando definida, disponibiliza a interface do Dashboard nesta porta separada. |
OMNI_MAX_CONCURRENT_CONNECTIONS |
0 (desabilitado) |
src/sse/utils/backpressure.ts |
Limita as conexões simultâneas de chat em andamento; as solicitações acima do limite recebem 503 com Retry-After. Um número inteiro positivo habilita a proteção; não definido/0 a desabilita. |
OMNIROUTE_INSTANCE_ID |
(não definido) | src/shared/resilience/peerRouting.ts |
ID estável e exclusivo deste gateway ao encadear instâncias do OmniRoute. Habilita verificações de loop de pares para conexões de entrada. Caracteres permitidos: letras, dígitos, ., _, : 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. Somente URLs de upstream explicitamente incluídas na lista de permissões recebem metadados de pares; todos os outros provedores permanecem inalterados. |
OMNIROUTE_PEER_MAX_HOPS |
4 |
src/shared/resilience/peerRouting.ts |
Número máximo de instâncias do OmniRoute visitadas anteriormente que são aceitas em uma solicitação encadeada (1-32). Instâncias repetidas ou um limite esgotado retornam HTTP 508 Loop Detected. |
PROD_DASHBOARD_PORT |
20130 |
docker-compose.prod.yml |
Porta publicada no host para o Dashboard no modo de produção do Docker. |
PROD_API_PORT |
20131 |
docker-compose.prod.yml |
Porta publicada no host 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 durante a execução no Electron ou em outros wrappers. |
LIVE_WS_PORT |
20129 |
src/server/ws/liveServer.ts |
Porta do servidor WebSocket de monitoramento em tempo real. |
LIVE_WS_HOST |
127.0.0.1 |
src/server/ws/liveServer.ts |
Endereço de vinculação do servidor WebSocket em tempo real. Defina como 0.0.0.0 para expô-lo 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, que têm permissão para abrir um WebSocket em tempo real. As origens de loopback do dashboard já são permitidas por padrão. |
LIVE_WS_ALLOWED_HOSTS |
(não definido) | src/server/ws/liveServerAllowList.ts |
Nomes de host adicionais, separados por vírgulas, permitidos para origens do WebSocket em tempo real. Diferentemente de LIVE_WS_ALLOWED_ORIGINS (URLs completas de origem), corresponde somente à parte do host — útil para configurações de LAN/Tailscale. |
NEXT_PUBLIC_LIVE_WS_PUBLIC_URL |
(não definido) | src/hooks/useLiveDashboard.ts |
URL pública do WebSocket do dashboard em tempo real (no navegador). Defina-a ao colocar o servidor WS atrás de um proxy reverso ou Cloudflare Tunnel (por exemplo, wss://ws.my-ai.com/live-ws); o navegador se conecta a esse endereço em vez de ws://hostname:20132. A parte do caminho também é usada como o caminho de upgrade do WebSocket (padrã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 padrão, vinculado ao loopback). Alternância 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 do relay por (token, IP), em solicitações/minuto. Em memória, por instância. 0 ou um valor negativo desativa a restrição por IP (o limite por token no banco de dados continua sendo aplicado). |
NODE_ENV |
production |
Núcleo do Next.js | Controla o nível de detalhamento dos logs, o cache, a exposição de detalhes de erros e as otimizações do Next.js. |
OMNIROUTE_USE_TURBOPACK |
1 (Turbopack — padrão do código) |
package.json / Next.js 16 |
O Turbopack é o empacotador padrão para npm run dev e npm run build (compilações 2–3 vezes mais rápidas, segundo benchmarks). Defina como 0 para voltar ao webpack no Windows, ao encontrar incompatibilidades de bindings nativos ou de compatibilidade do empacotador, 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 uso de memória muito maiores do que o webpack em grafos de módulos grandes (a correção de liberação de memória do Turbopack no Next 16.3 ainda não está estável); o fallback para webpack atinge picos muito menores. 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 na inicialização. Útil para uma inicialização mais rápida em bancos de dados grandes. |
NOTIFY_SOCKET |
(não definida) | systemd (protocolo sd_notify) | Definida pelo systemd quando o processo é executado em uma unidade de serviço com integração sd_notify; o OmniRoute a lê (consulte OMNIROUTE_DISABLE_SD_NOTIFY) para enviar notificações READY/WATCHDOG. Nunca deve ser definida pelo usuário. |
OMNIROUTE_DISABLE_SD_NOTIFY |
(não definida) | scripts/dev/systemd-notify.mjs |
Defina como 1 para desabilitar o sd_notify do systemd (Type=notify / WatchdogSec=), mesmo durante a execução em uma unidade do systemd. O notificador não realiza nenhuma operação fora do systemd, independentemente dessa configuração. |
CREDENTIAL_HEALTH_CHECK_INTERVAL |
300000 |
open-sse/config/constants.ts / src/lib/credentialHealth/scheduler.ts |
Intervalo (ms) do agendador de verificação de integridade de credenciais em segundo plano. Mínimo: 10000 (10s). |
CREDENTIAL_HEALTH_CACHE_TTL |
300000 |
open-sse/config/constants.ts / src/lib/credentialHealth/cache.ts |
TTL (ms) do status de integridade de credenciais armazenado em cache. |
OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK |
false |
src/lib/credentialHealth/scheduler.ts |
Defina como 1 ou true para desabilitar os testes periódicos em segundo plano das conexões dos provedores. Provedores de pesquisa (SEARCH_VALIDATOR_CONFIGS em src/lib/providers/validation/searchProviders.ts, por exemplo, tavily-search) são sempre excluídos da verificação — sua “validação” é uma consulta real e faturada ao provedor, portanto, a integridade deles nunca é verificada periodicamente (#9970). |
HOST |
0.0.0.0 |
scripts/dev/run-next.mjs |
Endereço de associação do servidor de desenvolvimento/inicialização do Next.js. Quando definido, substitui o padrão 0.0.0.0. |
HOSTNAME |
127.0.0.1 |
scripts/dev/run-next-playwright.mjs |
Endereço de associação usado pelo executor do Playwright ao iniciar o Next.js. O padrão é 127.0.0.1 para testes herméticos. Não use para omniroute serve — use OMNIROUTE_SERVER_HOST em vez disso (shells POSIX definem automaticamente HOSTNAME como o nome da máquina; .env não pode substituí-la). |
OMNIROUTE_SERVER_HOST |
0.0.0.0 |
bin/cli/commands/serve.mjs |
Endereço de associação para omniroute serve. Evita conflito com a variável HOSTNAME do shell POSIX (sempre definida como o nome da máquina pelo bash/zsh). Usa 0.0.0.0 como fallback quando não definida. (#6194) |
Modos de porta
Seção intitulada “Modos de porta”┌─────────────────────────── Porta Única (padrã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 uso: expor a API à LAN e restringir o Painel ao localhost. │└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────── Produção com Docker ────────────────────────────┐│ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 ││ → Mapeia as portas do contêiner para as portas do host em ││ docker-compose.prod.yml. │└─────────────────────────────────────────────────────────────────────────────┘4. Segurança e autenticação
Seção intitulada “4. Segurança e autenticação”| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
MACHINE_ID_SALT |
endpoint-proxy-salt |
src/lib/auth |
Salt combinado com identificadores de hardware para gerar a impressão digital da máquina. Altere-o em cada implantação para garantir o isolamento. |
OMNIROUTE_CLI_SALT |
(não definido = salt aleatório por instalação, persistido em <DATA_DIR>/cli-token-salt.json) |
src/lib/machineToken.ts |
Salt HMAC usado para derivar o token de autenticação local da CLI. Definir esse valor rotaciona todos os tokens da CLI na máquina e sempre tem prioridade sobre o salt persistido. Consulte docs/security/CLI_TOKEN.md. |
AUTH_COOKIE_SECURE |
false |
src/lib/auth |
Define o atributo Secure nos cookies de sessão. Deve ser true ao executar por trás de HTTPS. |
REQUIRE_API_KEY |
false |
Middleware da API | Quando true, todas as solicitações de proxy para /v1/* devem incluir uma chave de API válida. Esse sinalizador não controla o acesso a GET /v1/models, que segue a configuração de login do painel (requireAuthForModels) — portanto, um 401 de /v1/models NÃO significa que a inferência está protegida. Consulte docs/security/INFERENCE_AUTH_POSTURE.md (#13695). |
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 nos sinalizadores de recursos do painel; representa um risco de segurança em instâncias compartilhadas. |
NO_LOG_API_KEY_IDS |
(vazio) | src/lib/compliance/index.ts |
IDs de chaves de API separados por vírgulas que ignoram o registro de solicitações (conformidade com o GDPR). |
DEFAULT_RATE_LIMIT_PER_DAY |
(não definido = ilimitado) | src/shared/utils/apiKeyPolicy.ts |
Orçamento diário alternativo de solicitações aplicado às chaves de API cuja coluna rate_limits seja nula. Não definido ou vazio: sem limite implícito (#2289, #11017). 0 tem o mesmo efeito (ilimitado). Um inteiro positivo N habilita N/dia, 5N/semana e 20N/mês. Valores não vazios malformados utilizam os 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 da solicitação. Rejeita cargas que excedam esse limite. |
OMNIROUTE_CHAT_LARGE_BODY_BYTES |
262144 (256 KB) |
src/shared/middleware/chatBodyAdmission.ts |
Corpos reais de solicitações com tamanho igual ou superior a esse limite adquirem a concessão atômica local ao processo para admissão de carga pesada antes da análise do JSON (caminho BYTE, incluindo POST /v1/responses). Usa a mesma saída com margem operacional saudável de #10437 aplicada a cargas estruturalmente pesadas; ainda limitada por OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, para que #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 solicitações com Content-Length ausente, inválido ou desonesto; o excesso recebe 413. |
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT |
(não definido — sem limite de quantidade de solicitações) | src/shared/middleware/chatBodyAdmission.ts |
#503-fanout: este limite legado de QUANTIDADE de solicitações agora só é aplicado quando definido explicitamente. Quando não definido (o padrão), a admissão de chats pesados é 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 (um heap V8). Duas solicitações /v1/responses sobrepostas com ~750 mil tokens abortam heaps de ~12 GiB (#7849) — um alerta de orçamento de memória, não um máximo rígido de produto igual a 2. Um processo saudável (heap abaixo da proporção de descarte) PODE admitir mais solicitações /v1/responses longas simultâneas por meio de OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM. Dezenas de clientes SSE de longa duração (40–50) são uma questão de heap + OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, não de “máximo de 2”. Aumentar isso às cegas para “usar o host” reintroduz o problema #7849. Multiplique os heaps com N DATA_DIRs independentes (#11024); nunca use replicas>1 com um único arquivo 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 do V8/cgroup, dividido pela amplificação transitória de 8x). Valores derivados e explícitos são limitados ao intervalo de 8 MiB–2 GiB. Um corpo maior que o orçamento efetivo falha imediatamente com 413 body_exceeds_budget; a contenção entre corpos que podem ser processados individualmente continua podendo ser repetida com 503. De 40 a 50 clientes SSE longos simultâneos são uma questão desse orçamento + heap, não de um “máximo de 2” rígido. Consulte chatAdmission.maxInflightBytes / budgetSource / pressureSeverity em /api/monitoring/health antes de fazer ajustes. |
OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO |
0.75 |
src/shared/middleware/chatBodyAdmission.ts |
Proporção de descarte por pressão do heap (heapUsed / heap_size_limit) para admissão pesada por BYTES e ESTRUTURA (#10183, #10268, #10437). Uma solicitação pesada simultânea que ultrapasse OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT só é descartada com o 503 repetível quando o heap TAMBÉM está nessa proporção ou acima dela; em um heap saudável, ela é admitida por meio da folga saudável. |
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM |
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (padrão 1) |
src/shared/middleware/chatBodyAdmission.ts |
Capacidade adicional limitada para o caminho rápido de heap saudável (#10437), tanto para ESTRUTURA quanto para BYTES (admitChatRequest, incluindo corpos ≥ OMNIROUTE_CHAT_LARGE_BODY_BYTES). Sem esse limite, toda solicitação com o sistema ocupado, mas com heap saudável, ignorava a admissão sem qualquer teto. Quando essa quantidade de concessões simultâneas está ativa pelo caminho de heap saudável, outras solicitações com o sistema ocupado passam para o MESMO caminho de espera limitada/descarte usado sob pressão real do heap. 0 desabilita completamente esse desvio. |
OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT |
200 |
src/shared/middleware/chatBodyAdmission.ts |
Quantidade de mensagens que classifica uma solicitação de chat como pesada, mesmo quando seu corpo está abaixo do limite de bytes. |
OMNIROUTE_CHAT_HEAVY_TOOL_COUNT |
64 |
src/shared/middleware/chatBodyAdmission.ts |
Quantidade de ferramentas que classifica uma solicitação de chat como pesada, mesmo quando seu corpo está abaixo do limite de bytes. |
OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS |
32000 |
src/shared/middleware/chatBodyAdmission.ts |
Estimativa conservadora de tokens com base no tamanho das strings que classifica uma solicitação como pesada; trata-se de uma aproximação do custo de admissão, não da tokenização de cobrança do provedor. |
OMNIROUTE_CHAT_HARD_MAX_MESSAGES |
0 (desabilitado) |
src/shared/middleware/chatBodyAdmission.ts |
Limite opcional e explícito do histórico de chat. Desabilitado por padrão: a quantidade de mensagens é uma política de implantação, não uma propriedade universal de uma solicitação, e aplicar um limite aqui rejeita conversas com um 413 terminal antes que o pipeline de compactação possa torná-las processáveis. O crescimento do heap é limitado por OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT e pelo descarte por pressão do heap. Defina um valor positivo em implantações com restrição de memória que precisem de um teto rígido; o excesso então recebe um 413 estruturado indicando que a compactação é necessária. |
OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES |
67108864 (64 MB) |
open-sse/handlers/chatCore/nonStreamingResponseBody.ts |
Limite rígido para uma resposta sem streaming do upstream armazenada integralmente em buffer na memória. Ao ultrapassá-lo, o leitor do upstream é cancelado e a solicitação falha rapidamente, em vez de expandir uma string sem limite até esgotar o heap. |
OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES |
768 |
open-sse/handlers/chatCore/responseHeaders.ts |
Máximo de bytes transmitidos encaminhados dos cabeçalhos de resposta do upstream. Quando o limite é excedido, os cabeçalhos de menor prioridade (por exemplo, x-codex-*, x-oai-request-id) são descartados para permanecer dentro dos limites comuns de cabeçalhos de proxies reversos. Defina um valor maior para encaminhar mais metadados do upstream, ao custo de aumentar o tamanho dos cabeçalhos de resposta. |
CORS_ORIGIN |
(não definido) | src/server/cors/origins.ts |
Lista legada de origens permitidas pelo CORS, com uma única origem. Prefira CORS_ALLOWED_ORIGINS para novas implantações. O CORS destina-se apenas a clientes de API de navegador entre origens; as gravações autenticadas do painel usam solicitações da mesma origem, além de proteção CSRF vinculada à sessão. |
CORS_ALLOWED_ORIGINS |
(não definido) | src/server/cors/origins.ts |
Lista de origens permitidas pelo CORS, separadas por vírgulas. Nenhum curinga é enviado, a menos que CORS_ALLOW_ALL=true seja configurado explicitamente. |
CORS_ALLOW_ALL |
false |
src/server/cors/origins.ts |
Mecanismo de escape exclusivo para desenvolvimento que ecoa qualquer Origin do navegador. Não habilite em implantações compartilhadas ou de produção. |
OUTBOUND_SSRF_GUARD_ENABLED |
true |
src/shared/network/outboundUrlGuard.ts |
Bloqueia chamadas de provedores direcionadas a intervalos de IP privados, de loopback ou link-local. Desabilite somente em ambientes de teste isolados. |
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS |
false |
src/shared/network/outboundUrlGuard.ts |
Permite URLs de provedores que apontem para redes privadas/locais (localhost, 192.168.x.x, 10.x.x.x etc.). OBRIGATÓRIO para provedores auto-hospedados (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 provedores em endereços locais/privados (127.0.0.1, localhost, LAN, intervalos privados) — restrito ao caminho de validação do provedor. Padrão true (local primeiro); defina como false para impor o bloqueio estrito, permitindo apenas endereços públicos. Endpoints de metadados de nuvem (169.254.169.254, metadata.google.internal) permanecem bloqueados independentemente dessa configuração. (#5066) |
AUDIO_REMOTE_PROVIDER_NODES |
false |
src/app/api/v1/_shared/audioProviderNodes.ts |
Permite que as rotas /v1/audio/* (transcrições, fala, traduções) usem um nó de provedor compatível com OpenAI hospedado fora do localhost. Desativado por padrão — rotear áudio para um host remoto altera a identidade de saída e deve ser uma decisão explícita do operador. 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) |
RERANK_REMOTE_PROVIDER_NODES |
false |
src/app/api/v1/_shared/rerankProviderNodes.ts |
Permite que POST /v1/rerank (e a etapa de reranqueamento por loopback do mecanismo de memória) use um nó de provedor compatível com OpenAI hospedado fora do localhost — uma máquina na LAN ou um par do Tailscale executando TEI, Infinity, vLLM etc. Desativado por padrão — rotear para um host remoto altera a identidade de saída e deve ser uma decisão explícita do operador. Nós de loopback (localhost, 127.0.0.1, 172.16-31.x) são sempre permitidos e não são afetados. Os nós remotos também devem ser aprovados pela política de URLs de saída do provedor (OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS / OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS); hosts de metadados de nuvem nunca são usados para roteamento. |
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN |
false |
src/app/api/auth/login/route.ts |
Quando o OIDC está habilitado, desabilita o login por senha para que os usuários possam se autenticar somente por meio do Single Sign-On via OIDC. O alias simples OIDC_DISABLE_PASSWORD_LOGIN também é aceito; o sinalizador de recurso 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 proteção
Seção intitulada “Lista de verificação de proteção”# Requisitos mínimos de segurança para produção:AUTH_COOKIE_SECURE=true # Requer HTTPSREQUIRE_API_KEY=true # Autentica todas as chamadas de proxyALLOW_API_KEY_REVEAL=false # Nunca expõe chaves na interfaceCORS_ALLOWED_ORIGINS=https://your.domain.comMAX_BODY_SIZE_BYTES=5242880 # Limite de 5 MB5. Sanitização de Entrada e Proteção de PII
Seção intitulada “5. Sanitização de Entrada e Proteção de PII”O OmniRoute oferece uma defesa em duas camadas: verificação de injeção nas requisições e remoção de PII nas respostas.
⚠️ Limitações: Essas proteções são detecções heurísticas de melhor esforço, não um firewall completo contra injeção de prompt nem um sistema de DLP para PII. Elas podem produzir falsos positivos (prompts inofensivos de persona/RPG sinalizados) e falsos negativos (leetspeak, espaçamento, padrões em outros idiomas). Por si só, elas não são suficientes para garantir conformidade. Ajuste os modos e teste-os com o seu tráfego antes de confiar neles.
Requisição: Proteção contra Injeção de Prompt
Seção intitulada “Requisição: Proteção contra Injeção de Prompt”| Variável | Padrão | Arquivo de Origem | Descrição |
|---|---|---|---|
INPUT_SANITIZER_ENABLED |
true |
src/middleware/promptInjectionGuard.ts |
Habilita a verificação de mensagens recebidas em busca de padrões de injeção de prompt. |
INPUT_SANITIZER_MODE |
warn |
src/middleware/promptInjectionGuard.ts |
Política de injeção: warn = apenas registrar, block = rejeitar a requisição com 400. O modo legado redact não remove o texto de injeção; use PII_REDACTION_ENABLED para reescrever PII nas requisições. |
INJECTION_GUARD_MODE |
(não definido) | src/middleware/promptInjectionGuard.ts |
Alias legado de INPUT_SANITIZER_MODE — mesmo comportamento. |
INPUT_SANITIZER_BLOCK_THRESHOLD |
high |
src/shared/utils/injectionSeverity.ts |
Severidade mínima rejeitada por MODE=block: high (padrão), medium ou low. Padrões de severidade média são apenas observados, a menos que o limite seja reduzido. |
INJECTION_GUARD_BLOCK_THRESHOLD |
(não definido) | src/shared/utils/injectionSeverity.ts |
Alias legado de INPUT_SANITIZER_BLOCK_THRESHOLD — mesmo comportamento. |
PII_REDACTION_ENABLED |
false |
src/lib/guardrails/piiMasker.ts |
Quando definido como true, oculta PII nas requisições recebidas (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 nos payloads de requisição e resposta. Opcional; funciona de forma semelhante a PII_REDACTION_ENABLED. |
Resposta: Sanitizador de PII
Seção intitulada “Resposta: Sanitizador de PII”| Variável | Padrão | Arquivo de Origem | Descrição |
|---|---|---|---|
PII_RESPONSE_SANITIZATION |
false |
src/lib/piiSanitizer.ts |
Verifica se as respostas do LLM contêm PII vazada antes de retorná-las ao cliente. |
PII_RESPONSE_SANITIZATION_MODE |
redact |
src/lib/piiSanitizer.ts |
redact = mascarar PII, warn = apenas registrar, block = descartar toda a resposta. |
Sanitizador de Contexto de Rotas Tokenizadas do VS Code
Seção intitulada “Sanitizador de Contexto de Rotas Tokenizadas do VS Code”| Variável | Padrão | Arquivo 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…) das requisições para /v1/vscode/[token]/* e oculta o conteúdo de arquivos confidenciais anexados explicitamente. Seguro por padrão; defina como 0 para desabilitar. |
Cenários
Seção intitulada “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ção + ocultação de PII em requisições/respostas; os modos são independentes) |
| Somente monitoramento | INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=warn — registra, mas nunca bloqueia |
| Uso pessoal | Deixe tudo desabilitado — nenhuma sobrecarga |
6. Políticas de ferramentas e roteamento
Seção intitulada “6. Políticas de ferramentas e roteamento”| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
TOOL_POLICY_MODE |
disabled |
src/lib/toolPolicy.ts |
Controla o acesso do LLM a ferramentas/chamadas de função. allowlist = somente 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 arquivo JSON de regras de manipulação de payload (ajustes de upstream por modelo/protocolo). |
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS |
5000 |
open-sse/services/payloadRules.ts |
Intervalo de recarregamento (ms) para recarregar dinamicamente o arquivo de regras de payload. Mínimo de 1000. |
OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS |
false |
open-sse/services/model.ts |
Ativação opcional: roteia IDs de modelos claude-* sem prefixo provenientes de clientes Claude Code pela conta OAuth do Claude Code, em vez de exigir um prefixo de provedor. Prefixos de provedor explícitos continuam tendo prioridade. Também pode ser configurado por meio de uma opção no painel, na página do provedor Claude. |
COMBO_CONCURRENCY_PER_MODEL |
3 |
open-sse/services/comboConfig.ts |
Limite de simultaneidade por modelo para combinações round-robin (#9100). O semáforo de combinações round-robin tinha um limite fixo de 3 solicitações simultâneas por modelo, sem possibilidade de substituição, serializando o tráfego com maior simultaneidade atrás desse limite. Validado como >= 1, limitado a <= 32. |
DISABLE_CONTEXT_WINDOW_CHECKS |
false |
open-sse/handlers/chatCore.ts |
Ativação opcional perigosa que ignora a verificação local do OmniRoute de janela de contexto/máximo de tokens de entrada para solicitações diretas a um único modelo. Os provedores upstream ainda impõem seus limites reais; a compactação do prompt e o próprio limite de tokens de saída do modelo permanecem ativos. A precedência efetiva é substituição pelo banco de dados de Feature Flags > variável de ambiente > padrão; nenhuma reinicialização é necessária. |
OMNIROUTE_SELF_HOSTED_PROVIDERS |
(não definido) | open-sse/services/selfHostedEntry.ts |
Documento YAML providers: embutido (RIC-738, D4). Quando definido (com ou sem um bloco strategy:), /v1/chat/completions é desviado para a entrada unificada auto-hospedada compatível com OpenAI, em vez de seguir pelo pipeline de nuvem. Quando não definido (o padrão), a rota segue diretamente para o pipeline de nuvem existente. Consulte docs/routing/SELF_HOSTED_OPENAI_ENTRY.md. |
OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE |
(não definido) | open-sse/services/selfHostedEntry.ts |
Caminho para um arquivo YAML contendo o mesmo documento providers: que OMNIROUTE_SELF_HOSTED_PROVIDERS, para implantações que prefiram um arquivo em vez de uma variável de ambiente embutida. Qualquer uma das opções ativa a entrada auto-hospedada. |
OMNIROUTE_SELF_HOSTED_API_KEY |
(não definido — rota aberta) | open-sse/services/selfHostedEntry.ts |
Chave de API compartilhada opcional para a entrada unificada auto-hospedada (estrutura D5, reservada para o sistema de cotas por chave). Quando definida, as solicitações devem incluir Authorization: Bearer <key>. Quando não definida, a rota fica aberta, correspondendo ao padrão existente de provedor local auto-hospedado (implantação em loopback/rede confiável). |
OMNIROUTE_SELF_HOSTED_STRATEGY |
(não definido) | open-sse/services/routingStrategies.ts |
Documento YAML strategy: embutido para o mecanismo de roteamento determinístico (M2/RIC-740, D3) — lista de bloqueio/lista de permissão, disjuntor com período de espera, prioridade por custo, reconhecimento de latência e cadeia de fallback. Substitui, por chave, um bloco strategy: embutido e aninhado em OMNIROUTE_SELF_HOSTED_PROVIDERS. Consulte docs/routing/DETERMINISTIC_ROUTING.md. |
OMNIROUTE_SELF_HOSTED_STRATEGY_FILE |
(não definido) | open-sse/services/routingStrategies.ts |
Caminho para um arquivo YAML contendo o mesmo documento strategy: que OMNIROUTE_SELF_HOSTED_STRATEGY, para implantações que prefiram um arquivo em vez de uma variável de ambiente embutida. |
OMNIROUTE_DISABLE_CONVERSATION_TRACKING |
(não definido) | open-sse/services/conversationTracker.ts |
Defina como 1 para interromper a coleta do histórico de conversas. resolveConversationId() retorna um resultado não rastreado antes de ler o SQLite ou analisar o histórico de mensagens, e os IDs de sessão fornecidos pelo cliente também são abrangidos. O tratamento de sessões de roteamento permanece inalterado, e os registros existentes não são excluídos. Destina-se a implantações que não usam a visualização de conversas do painel e desejam impedir que a tabela de turnos continue crescendo. |
7. URLs e sincronização na nuvem
Seção intitulada “7. URLs e sincronização na nuvem”| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
BASE_URL |
http://localhost:20128 |
src/lib/cloudSync.ts |
URL do lado do servidor usada por tarefas internas de sincronização para chamar /api/sync/cloud. Mantenha-a como uma URL de loopback/contêiner, mesmo quando o aplicativo estiver publicamente acessível por meio de um proxy. |
CLOUD_URL |
(vazio) | src/lib/cloudSync.ts |
URL do endpoint de retransmissão na nuvem (recurso premium). |
CLOUD_SYNC_TIMEOUT_MS |
12000 |
src/lib/cloudSync.ts |
Tempo limite de HTTP para solicitações de sincronização na nuvem. |
OMNIROUTE_BUILD_PROFILE |
full |
Configuração de build do Webpack | Perfil usado durante o build (defina como minimal para excluir fisicamente do bundle os módulos privilegiados). |
OMNIROUTE_STANDALONE_DIR |
.build/ saída standalone | scripts/build/colocate-standalone.mjs |
Substituição, durante o build, do diretório de saída standalone utilizado pela etapa de colocalização pós-build. Não é uma configuração de runtime. |
OMNIROUTE_CLOUD_SYNC_SECRET |
(vazio) | src/lib/cloudSync.ts |
Segredo compartilhado usado para verificar a assinatura HMAC-SHA256 das respostas da sincronização na nuvem. |
OMNIROUTE_CLOUD_SYNC_SECRETS |
false |
src/lib/cloudSync.ts |
Defina como true para permitir que o endpoint de sincronização na nuvem sobrescreva as credenciais locais. O padrã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 nuvem quando nenhum segredo local estiver configurado (#13679). Uma assinatura presente sempre será verificada — e sempre será rejeitada quando OMNIROUTE_CLOUD_SYNC_SECRET não estiver definido — independentemente dessa opção. O padrão passará a exigir a assinatura na v3.9. |
OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP |
false |
src/app/api/providers/zed/import/route.ts |
Defina como true para retornar ao comportamento de uma única etapa da v3.8.5, que “importa tudo” sem confirmação do usuário. |
NEXT_PUBLIC_BASE_URL |
http://localhost:20128 |
OAuth, Dashboard, sincronização | URL pública para o redirect_uri do OAuth, links do Dashboard e URLs públicas geradas. Defina-a como a URL pública estável quando os callbacks do OAuth ou os links gerados para o navegador precisarem usar um host canônico de proxy reverso. |
NEXT_PUBLIC_CLOUD_URL |
(vazio) | Lado do cliente | Espelho de CLOUD_URL no lado do cliente. |
NEXT_PUBLIC_APP_URL |
(não definida) | src/shared/services/cloudSyncScheduler.ts |
Alternativa legada para NEXT_PUBLIC_BASE_URL. |
NEXT_PUBLIC_PORT |
(não definida — usa PORT como alternativa) |
src/shared/hooks/useDisplayBaseUrl.ts |
Porta alternativa no lado do cliente para URLs de exibição quando nenhuma origem é conhecida (SSR/testes); lida antes de PORT. |
OMNIROUTE_PUBLIC_BASE_URL |
(não definida) | Resolvedor de origem pública, URLs de imagens | Origem do OmniRoute voltada ao navegador com a maior prioridade, usada para gerar URLs públicas e validar a origem do navegador fora do painel. Defina-a quando o OpenWebUI ou outro retransmissor acessar o OmniRoute por uma URL interna, mas o navegador do usuário precisar buscar a mídia gerada em uma origem de LAN, túnel ou pública. Não inclua /v1. |
OMNIROUTE_PROVIDER_MANIFEST_URL |
(não definida) | open-sse/config/providerPluginManifestUrl.ts |
URL absoluta do manifesto do plugin do provedor anunciada aos clientes sidecar. Quando não definida, o OmniRoute deriva /api/v1/provider-plugin-manifest da origem da solicitação ou de HOST/PORT. |
OMNIROUTE_PUBLIC_PROTOCOL |
http |
open-sse/config/providerPluginManifestUrl.ts |
Protocolo usado ao derivar a URL do manifesto do plugin do provedor de HOST/PORT sem uma origem de solicitação. Defina como https por trás de um proxy público que encerra TLS quando nenhuma OMNIROUTE_PROVIDER_MANIFEST_URL explícita estiver definida. |
OMNIROUTE_TRUST_PROXY |
(não definida) | src/server/origin/publicOrigin.ts |
Modo de confiança opcional para cabeçalhos encaminhados de origem pública. Não definida = não confiar em Forwarded / X-Forwarded-* para decisões de segurança. true / loopback confia no host/protocolo encaminhado somente quando proveniente de um proxy de loopback marcado por token. private / lan também confia em pares de proxy da LAN privada. Em produção, prefira definir explicitamente NEXT_PUBLIC_BASE_URL. |
KIE_CALLBACK_URL |
(não definida) | open-sse/utils/kieTask.ts |
URL pública de callback para trabalhos assíncronos da kie.ai. Substituição de maior prioridade, antes de OMNIROUTE_KIE_CALLBACK_URL e OMNIROUTE_PUBLIC_URL. |
OMNIROUTE_KIE_CALLBACK_URL |
(não definida) | open-sse/utils/kieTask.ts |
Grafia alternativa de KIE_CALLBACK_URL. Usada como alternativa quando a variável principal não está definida. |
OMNIROUTE_PUBLIC_URL |
(não definida) | open-sse/utils/kieTask.ts |
Origem pública usada para compor URLs de callback assíncronas. Alternativa de menor prioridade para callbacks da kie.ai; também usada como URL pública genérica para outros retransmissores. |
OMNIROUTE_CROF_USAGE_URL |
https://crof.ai/usage_api/ |
open-sse/services/usage.ts |
Endpoint de consulta de cota da CrofAI usado pela página Uso. Substitua-o para retransmissores / fixtures de teste. |
OMNIROUTE_OPENCODE_QUOTA_URL |
https://opencode.ai/zen/go/v1/usage |
open-sse/services/opencodeQuotaFetcher.ts |
Endpoint oficial de uso do OpenCode Go autenticado por chave de API, usado pela página Uso. Substitua-o para retransmissores / fixtures de teste. |
OPENCODE_SYNTHESIZE_CLI_HEADERS |
true |
open-sse/executors/opencode.ts |
Sintetiza cabeçalhos de identidade da CLI do OpenCode (User-Agent, x-opencode-client/project, UUIDs de solicitação/sessão) em solicitações upstream opencode-go/zen que não tenham sido enviadas pelo cliente, para que o Cloudflare as aceite na saída de VPS (#6210/#5997). Ativado por padrão desde #10571; desative com false/0/no/off. |
OPENCODE_USER_AGENT |
opencode/1.18.31 |
open-sse/utils/opencodeHeaders.ts |
User-Agent padrão usado quando OPENCODE_SYNTHESIZE_CLI_HEADERS está ativado e nenhuma substituição <PROVIDER>_USER_AGENT por provedor está definida. Aplicado somente aos executores opencode. Em uma solicitação sem chave bloqueada pelo upstream, um valor configurado que não contenha opencode/<version >= 1.17> é substituído por esse padrão, em vez de ser recusado. |
OPENCODE_CLIENT |
desktop |
open-sse/executors/opencode.ts |
Valor do cabeçalho x-opencode-client sintetizado quando OPENCODE_SYNTHESIZE_CLI_HEADERS está habilitado. |
OPENCODE_PROJECT |
global |
open-sse/executors/opencode.ts |
Valor do cabeçalho x-opencode-project sintetizado quando OPENCODE_SYNTHESIZE_CLI_HEADERS está habilitado. |
OPENCODE_FREE_TIER_REQUEST_CONTRACT |
(não definido) | open-sse/executors/opencodeFreeTierContract.ts |
Defina como off para interromper o ajuste do corpo das solicitações do OpenCode sem chave (indicador de streaming e lista de ferramentas). Os cabeçalhos continuam sendo aplicados. O valor é lido a cada solicitação, portanto uma alteração entra em vigor imediatamente. |
OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS |
(não definido) | open-sse/executors/opencodeFreeTierContract.ts |
Nomes de ferramentas separados por vírgulas a serem declarados em uma solicitação do OpenCode sem chave que não contenha nenhuma, quando ainda não tiver sido observada nenhuma para esse modelo. Um valor vazio faz com que seja usado um único espaço reservado que o modelo é instruído a não chamar. No máximo 32 entradas, [A-Za-z_][A-Za-z0-9_-]{0,63}; entradas inválidas são ignoradas. |
OMNIROUTE_OLLAMA_CLOUD_USAGE_URL |
https://ollama.com/settings |
open-sse/services/usage.ts |
URL das configurações do Ollama Cloud usada para extração de dados de cota. Substitua para retransmissores / fixtures de teste. |
OLLAMA_USAGE_COOKIE |
(não definido) | open-sse/services/usage.ts |
Cookie __Secure-session do Ollama Cloud usado para extração de dados de cota da página de configurações. Sensível; prefira o campo correspondente por conexão no Dashboard quando várias contas estiverem configuradas. |
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. Sensível; prefira o campo correspondente por conexão no Dashboard quando várias contas estiverem configuradas. |
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, usada antes dos aliases mais curtos. Sensível; prefira o campo correspondente por conexão no Dashboard quando várias contas estiverem configuradas. |
OMNIROUTE_CODEWHISPERER_BASE_URL |
https://codewhisperer.us-east-1.amazonaws.com |
open-sse/services/usage.ts |
Endpoint de limites de uso do CodeWhisperer (AWS Kiro). Substitua para retransmissores / fixtures de teste. |
[!IMPORTANT] Ao implantar por trás de um proxy reverso (nginx, Caddy), defina
NEXT_PUBLIC_BASE_URLcomo sua URL pública estável (por exemplo,https://omniroute.example.com) quando os callbacks de OAuth ou links públicos gerados precisarem usar esse nome de host. Sem isso, os callbacks de OAuth podem falhar porque o redirect_uri não corresponderá, e os links públicos gerados poderão apontar para a origem interna do contêiner.Mantenha
BASE_URLcomo uma URL interna de loopback/contêiner para tarefas de servidor para servidor. Não use umOrigindo navegador nem um nome de host público para buscas internas feitas pelo próprio servidor que incluam credenciais.As gravações autenticadas no dashboard não exigem uma URL base pública estática: o dashboard envia solicitações não seguras de mesma origem com um token CSRF vinculado à sessão. O OmniRoute ainda centraliza a validação de origem pública para integrações de navegador que não sejam do dashboard: variáveis de ambiente explícitas de URL pública são consideradas confiáveis primeiro; cabeçalhos
Forwarded/X-Forwarded-*brutos são ignorados, a menos queOMNIROUTE_TRUST_PROXYesteja habilitado e o par de proxy imediato esteja marcado com token como confiável. Não use configurações de CORS para corrigir solicitações de mesma origem do dashboard; o CORS serve apenas para clientes de navegador de origem cruzada.
8. Proxy de saída
Seção intitulada “8. Proxy de saída”Encaminhe as chamadas aos provedores de LLM upstream por meio de um proxy HTTP ou SOCKS5 para controle de saída, roteamento geográfico ou mascaramento de IP.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
ENABLE_SOCKS5_PROXY |
true |
open-sse/executors |
Habilita o agente de proxy SOCKS5 para chamadas upstream. Desative com false. |
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY |
true |
Lado do cliente | Permite que o lado do cliente reconheça a disponibilidade do SOCKS5. |
PROXY_SKIP_RECENTLY_FAILED |
false |
src/shared/utils/featureFlags.ts |
Flag de recurso opcional (consulte FEATURE_FLAGS.md; uma substituição no banco de dados do painel prevalece). Os pools de proxies e a rotação por conta deixam de reutilizar temporariamente um membro que acabou de falhar (sondagem TCP recusada ou erro 429 por meio dele), por um período que dobra a cada repetição, até um limite máximo. true (ou 1, yes) habilita esse recurso. |
HTTP_PROXY |
(não definido) | Padrão do Node.js | Proxy HTTP para chamadas upstream. |
HTTPS_PROXY |
(não definido) | Padrão do Node.js | Proxy HTTPS para chamadas upstream. |
ALL_PROXY |
(não definido) | Padrão do Node.js | Proxy universal (compatível com socks5://). |
OMNIROUTE_PROXY_ECHO_URL |
(não definido) | src/lib/proxyEchoTarget.ts |
Fixa em uma única URL o destino de eco de IP usado pelas sondagens de saída do proxy. Quando não definida, a sondagem tenta api64.ipify.org e depois api4.ipify.org, para que túneis compatíveis apenas com IPv4 não sejam indicados como inativos (#9694). |
NO_PROXY |
(não definido) | Padrão do Node.js | Nomes de host/IPs separados por vírgulas que devem ignorar o proxy. |
OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS |
32 |
open-sse/utils/proxyDispatcher.ts |
Máximo de sockets simultâneos por dispatcher de proxy HTTP/SOCKS em cache. Streams SSE de longa duração, como os de Codex /v1/responses, precisam de mais de uma conexão quando várias solicitações compartilham o mesmo proxy no nível da conta. Valores acima de 256 são limitados. |
SOCKS_HANDSHAKE_TIMEOUT_MS |
10000 |
open-sse/utils/socksConnectorWithFamily.ts |
Tempo limite, em ms, para o handshake (conexão) SOCKS5. Aumente-o quando um único host de gateway residencial receber alta concorrência (por exemplo, 100 solicitações simultâneas) — o handshake real pode exceder 10 s em um pool saturado, mesmo que o proxy esteja acessível, o que, caso contrário, resultaria em um falso [Proxy Fast-Fail] Proxy unreachable. Limitado a 120000. |
PROXY_FAIL_OPEN |
false |
src/sse/handlers/chatHelpers.ts |
Quando definido como false (padrão), uma solicitação cujo proxy atribuído não possa ser resolvido é recusada (falha fechada), em vez de usar uma conexão direta como alternativa — isso evita vazamentos do IP real. Defina como true para restaurar o fallback DIRECT legado. |
ENABLE_TLS_FINGERPRINT |
false |
open-sse/executors |
Falsifica a impressão digital TLS usando wreq-js (imita o Chrome 124). Contorna bloqueios JA3/JA4. |
TLS_FINGERPRINT_PROVIDERS |
(não definido) | open-sse/utils/proxyFetch.ts |
Lista de provedores permitidos, separada por vírgulas, para o novo roteamento TLS via proxy (open-sse/utils/proxyFetch.ts). O TLS direto mantém seu comportamento legado quando não definido; somente esses provedores são roteados pela ponte de impressão digital do Chrome 124. |
OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS |
false |
open-sse/services/claudeTurnstileSolver.ts |
Permite que o contexto do navegador Playwright do Claude Turnstile ignore erros de certificado HTTPS. |
Cenários
Seção intitulada “Cenários”| Cenário | Configuração |
|---|---|
| SOCKS5 por túnel SSH | ALL_PROXY=socks5://127.0.0.1:7890, ENABLE_SOCKS5_PROXY=true |
| Proxy HTTP corporativo | 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 (padrão). As solicitações falham imediatamente quando o proxy está indisponível, em vez de vazarem por uma conexão direta. |
| Legado/desenvolvimento — permitir fallback direto | PROXY_FAIL_OPEN=true. Restaura o comportamento anterior ao reforço de segurança: a conexão direta é usada quando a resolução do proxy falha. |
Observação (desvio da validação da NVIDIA — #3226): o endpoint de validação de chave de API da NVIDIA trava quando roteado pelo fetch global com proxy/correção de TLS (dispatcher do undici → 504).
src/lib/providers/validation.ts::directHttpsRequest()ignora intencionalmente a correção de proxy nessa única chamada de validação usandosafeOutboundFetch({ bypassProxyPatch: true }). Esta é uma exceção documentada e com escopo limitado — ela não afeta a saída de chat/uso. O escopo do desvio é fixado portests/unit/proxy-bypass-scope-guard-3226.test.ts.
9. Integração com ferramentas de CLI
Seção intitulada “9. Integração com ferramentas de CLI”Controla como o OmniRoute descobre e inicia sidecars de CLI (Claude Code, Codex etc.).
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
CLI_MODE |
auto |
src/shared/services/cliRuntime.ts |
auto = pesquisar no PATH do sistema; manual = usar somente caminhos explícitos. |
CLI_EXTRA_PATHS |
(não definido) | src/shared/services/cliRuntime.ts |
Entradas adicionais no PATH para localizar binários de CLI (separadas por dois-pontos). |
CLI_CONFIG_HOME |
(não definido) | src/shared/services/cliRuntime.ts |
Substitui o diretório inicial usado para ler as configurações de CLI (~/.claude, ~/.codex). Deve ser absoluto e estar dentro do diretório inicial do processo — ou, em um contêiner, ser um caminho montado por bind (é assim que /host-home funciona). Qualquer outro caminho faz com que o diretório inicial seja usado. |
CLI_ALLOW_CONFIG_WRITES |
true |
src/shared/services/cliRuntime.ts |
Permite que o OmniRoute grave arquivos de configuração de CLI (renovação de token, dados de sessão). Defina como false para fazer com que toda gravação de configuração de CLI falhe com um erro explícito de “gravações desabilitadas”. |
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 ele, a detecção tenta primeiro agent e, caso não o encontre, usa 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 usuário root); espelha o valor padrão de 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 detecção/verificações de integridade no 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 do Hermes. Compartilhado 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 do 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 do Prime Agent (Prime Intellect). |
CLI_WINDSURF_BIN |
(nenhum) | src/shared/services/cliRuntime.ts |
Caminho personalizado para o binário do Windsurf. O Windsurf não inclui nenhum comando padrão — a detecção do binário permanece desativada até que esta variável seja definida. |
CLI_DEVIN_BIN |
devin |
open-sse/executors/devin-cli.ts |
Caminho personalizado para o binário da CLI Devin (v3.8.0). Usado pelo executor Windsurf/Devin. |
DEVIN_DESKTOP_VERSION |
3.6.27 |
open-sse/executors/devin-desktop.ts |
ide_version do Devin Desktop. As substituições devem usar o formato x.y.z; valores inválidos retornam ao padrão verificado. |
DEVIN_DESKTOP_EXTENSION_VERSION |
1.48.2 |
open-sse/executors/devin-desktop.ts |
extension_version do Codeium/language-server incluído, distinta da ide_version do Desktop. As substituições devem usar x.y.z; valores inválidos usam o padrão 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 inicial absoluto e isolado para o subprocesso agêntico do Devin; os caminhos aceitos pela ponte 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 que a ponte encerre o processo filho e retorne explicitamente um timeout. |
DEVIN_BRIDGE_MODEL |
devin-cli-agentic/swe-1-7 |
docker/devin-bridge/compose.yml |
Alias principal do modelo Claude Code para a ponte isolada. O harness ativo substitui o exemplo por um modelo retornado pela conta atual do Devin. |
DEVIN_BRIDGE_SONNET_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Alias da ponte isolada usado quando o Claude Code solicita seu padrão Sonnet. |
DEVIN_BRIDGE_OPUS_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Alias da ponte isolada usado quando o Claude Code solicita seu padrão Opus. |
DEVIN_BRIDGE_HAIKU_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Alias da ponte isolada usado quando o Claude Code solicita seu padrão Haiku. |
DEVIN_BRIDGE_SUBAGENT_MODEL |
DEVIN_BRIDGE_MODEL |
docker/devin-bridge/compose.yml |
Alias da ponte isolada usado para 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 gerenciamento de licenças do Codeium usada pela cota do Devin CLI (GetUserStatus). |
AUGGIE_BIN |
auggie |
open-sse/executors/auggie.ts |
Substituição por caminho absoluto para o binário da CLI do Augment (Auggie) usado pelo provedor local auggie. Se não definido, usa CLI_AUGGIE_BIN e, em seguida, faz uma busca no PATH. |
CLI_AUGGIE_BIN |
auggie |
open-sse/executors/auggie.ts |
Substituição alternativa para o caminho do binário da CLI do Augment (Auggie), verificada após AUGGIE_BIN. |
ZCODE_BIN |
zcode |
open-sse/executors/zcode.ts |
Binário usado pelo cliente stdio do provedor local zcode. Se não definido, usa zcode no PATH. |
ZCODE_ARGS |
— | open-sse/executors/zcode.ts |
Matriz JSON (≤16 strings) de argumentos adicionais passados ao binário zcode quando iniciado por meio de cliTools. |
ZCODE_CWD |
process.cwd() |
open-sse/executors/zcode.ts |
Diretório de trabalho do subprocesso do servidor de aplicativos do ZCode. |
ZCODE_PROVIDER_ID |
builtin:zai-coding-plan |
open-sse/executors/zcode.ts |
Substituição do ID do provedor enviado ao servidor de aplicativos. |
ZCODE_SERVER_RUNTIME_ROOT |
~/.zcode/server |
open-sse/executors/zcode.ts |
Raiz do ambiente de execução do servidor de aplicativos do ZCode (onde ficam o node e o zcode-server.cjs incluídos). |
ZCODE_SERVER_NODE |
<runtimeRoot>/node |
open-sse/executors/zcode.ts |
Executável do Node usado para hospedar o servidor de aplicativos do ZCode. |
ZCODE_SERVER_ENTRY |
<runtimeRoot>/zcode-server.cjs |
open-sse/executors/zcode.ts |
Script de entrada do servidor de aplicativos usado para hospedar o servidor ZCode. |
ZCODE_STARTUP_TIMEOUT_MS |
10000 |
open-sse/executors/zcode.ts |
Tempo limite de inicialização (ms) antes que a inicialização de um servidor de aplicativos do ZCode seja considerada malsucedida. |
ZCODE_RPC_TIMEOUT_MS |
30000 |
open-sse/executors/zcode.ts |
Tempo limite de RPC por solicitação (ms) para uma chamada ao servidor de aplicativos do ZCode. |
ZCODE_TURN_TIMEOUT_MS |
120000 |
open-sse/executors/zcode.ts |
Duração máxima (ms) de um turno do ZCode antes que o supervisor o encerre por tempo limite. |
ZCODE_POLL_INTERVAL_MS |
250 |
open-sse/executors/zcode.ts |
Intervalo de consulta (ms) para verificar a conclusão do turno do ZCode. |
HERMES_HOME |
~/.hermes |
src/lib/cli-helper/config-generator/hermesHome.ts |
Diretório inicial do Hermes Agent no qual o OmniRoute lê/grava a configuração da CLI do Hermes. Corresponde à variável de ambiente definida no Windows pelo instalador PowerShell do Hermes (%LOCALAPPDATA%\hermes). |
Sincronização automática de perfis da CLI
Seção intitulada “Sincronização automática de perfis da CLI”Esses sinalizadores de recurso são opcionais e ficam desativados por padrão. Eles também podem ser alternados no painel CLI Code.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES |
false |
src/shared/constants/featureFlagDefinitions.ts |
Após a sincronização dos modelos de um provedor, regrava automaticamente os arquivos de perfil ~/.codex/*.config.toml usando o catálogo ativo. Requer CLI_ALLOW_CONFIG_WRITES; nunca altera a configuração ativa/padrão do Codex, a autenticação, as configurações do Codex-lb nem a escolha do provedor. |
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES |
false |
src/shared/constants/featureFlagDefinitions.ts |
Após a sincronização dos modelos de um provedor, regrava automaticamente os arquivos de perfil do Claude Code em ~/.claude/profiles/<name>/settings.json usando o catálogo ativo. Requer CLI_ALLOW_CONFIG_WRITES; nunca altera a configuração ativa/padrão do Claude, a autenticação nem a escolha do provedor. |
Exemplo com Docker
Seção intitulada “Exemplo com Docker”# Monte os binários do host no contêiner e informe ao OmniRoute onde eles estão:CLI_EXTRA_PATHS=/host-cli/binCLI_CONFIG_HOME=/host-homeCLI_ALLOW_CONFIG_WRITES=trueCLI_CLAUDE_BIN=/host-cli/bin/claudeCLI_CONFIG_HOME só entra em vigor quando o caminho é realmente montado via bind mount a partir
do host — combine-o com montagens como ~/.codex:/host-home/.codex:rw (consulte o
perfil host em docker-compose.yml). Um caminho que não esteja no diretório pessoal
do usuário do contêiner nem seja um bind mount é ignorado, pois qualquer conteúdo gravado
nele seria descartado quando o contêiner fosse recriado.
A imagem é executada como USER node, portanto um /root não montado não é uma
sobrescrita válida.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OMNIROUTE_CONTAINER |
(auto) | src/shared/utils/containerEnv.ts |
Força a detecção de contêiner a ser ativada (1/true) ou desativada (0/false). Necessário apenas em runtimes que a detecção automática não identifica. |
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE |
false |
src/shared/services/cliRuntime.ts |
Permite, mesmo assim, que a ferramenta de CLI grave configurações em um caminho não montado do contêiner. O equivalente na CLI é --allow-container-write. |
Auxiliares do binário da CLI (omniroute)
Seção intitulada “Auxiliares do binário da CLI (omniroute)”Estas variáveis ajustam o comportamento do próprio binário da CLI omniroute (não a
detecção do sidecar acima).
| Variável | Padrão | Arquivo 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). Sobrescreve as variáveis de ambiente de localidade do sistema (LC_ALL, LC_MESSAGES). |
OMNIROUTE_SHOW_LOG |
(não definido) | bin/cli/runtime/processSupervisor.mjs |
Defina como 1 para encaminhar stdout/stderr do servidor ao terminal no modo supervisionado. Equivale à opção --log em omniroute serve. |
OMNIROUTE_CLI_TOKEN |
(não definido) | bin/cli/api.mjs |
Token de autenticação de máquina injetado como o 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 solicitações da CLI → servidor. |
OMNIROUTE_READY_TIMEOUT_MS |
60000 |
bin/cli/utils/pid.mjs |
Tempo máximo (ms) que a CLI aguarda pelo endpoint de integridade do servidor antes de exibir um aviso de tempo limite. Útil para inicializações a frio lentas (por exemplo, no Windows). Também pode ser definido por meio de --ready-timeout. |
OMNIROUTE_VERBOSE |
0 |
bin/cli/api.mjs |
Defina como 1 para exibir diagnósticos de novas tentativas/recuo em stderr durante comandos da CLI. |
OMNIROUTE_PLUGIN_PATH |
(não definido) | bin/cli/plugins.mjs |
Diretório personalizado para descoberta de plugins da CLI (pacotes omniroute-cmd-*). Quando não definido, o padrão é ~/.omniroute/plugins/. Somente para a CLI — ele nunca chega ao verificador de plugins do lado do servidor, que é indicado por OMNIROUTE_PLUGINS_DIR (seção 2). |
10. Integrações Internas de Agentes e MCP
Seção intitulada “10. Integrações Internas de Agentes e MCP”| Variável | Padrão | Arquivo de Origem | Descrição |
|---|---|---|---|
OMNIROUTE_BASE_URL |
detecção automática | open-sse/mcp-server/server.ts |
URL explícita para que as ferramentas MCP/A2A acessem o OmniRoute. Substitui a detecção automática de localhost. |
OMNIROUTE_API_KEY |
(não definida) | Módulos MCP/A2A | Chave de API para chamadas internas de ferramentas MCP e habilidades A2A. |
OMNIROUTE_API_KEY_ID |
(não definida) | open-sse/mcp-server/audit.ts |
ID da chave para atribuição no log de auditoria do MCP. |
ROUTER_API_KEY |
(não definida) | Legado | Alias legado para OMNIROUTE_API_KEY. |
OMNIROUTE_A2A_HISTORY_RETENTION_DAYS |
30 |
src/lib/a2a/taskManager.ts |
Quantidade de dias durante os quais o histórico de tarefas A2A é mantido no banco de dados local antes que a limpeza diária exclua uma linha. Se não definida, não numérica ou <= 0, usa 30 como valor alternativo. |
OMNIROUTE_A2A_MEMORY_HITS |
1 |
src/lib/a2a/taskExecution.ts |
Interruptor de desativação do recurso de observabilidade de acertos de memória A2A. Defina como 0 para ignorar totalmente a consulta de recuperação de memória de uma tarefa; qualquer outro valor (inclusive se não definida) mantém o recurso habilitado. |
OMNIROUTE_ISSUE_AGENT_ENABLED |
false |
src/app/api/issue-agent/runs/route.ts |
Habilita o endpoint offline/local de triagem gravada do Issue Agent. Mantenha desabilitado, a menos que esteja executando explicitamente fluxos de trabalho locais de triagem gravada. |
OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS |
(não definida) | src/lib/issueAgent/execution.ts |
Tempo limite (ms) para uma única execução de triagem gravada do Issue Agent. Limitado a um máximo interno; usa o padrão integrado como alternativa quando não 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. Equivale a --context <name>. |
OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED |
0 |
bin/cli/contexts.mjs |
Desabilita o backend opcional de chaveiro do sistema operacional keytar para credenciais de contexto da CLI. Quando habilitada, as credenciais permanecem em config.json com o modo 0600, e a CLI emite uma única vez um aviso sobre o mecanismo alternativo; destinada à operação deliberada em ambientes headless/contêineres. |
OMNIROUTE_MCP_ENFORCE_SCOPES |
false |
open-sse/mcp-server/server.ts |
Impõe controle de acesso baseado em escopos às chamadas de ferramentas MCP. |
OMNIROUTE_MCP_SCOPES |
(todos) | open-sse/mcp-server/server.ts |
Escopos 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 |
Compacta as descrições das ferramentas MCP antes de serializar o manifesto. Valores de habilitação: 1, true, on. |
OMNIROUTE_MCP_DESCRIPTION_COMPRESSION |
rtk |
open-sse/mcp-server/descriptionCompressor.ts |
Algoritmo/perfil de compactação. Valores de desabilitação: 0, false, off. |
OMNIROUTE_MCP_FETCH_TIMEOUT_MS |
10000 |
open-sse/mcp-server/fetchTimeout.ts |
Limite de interrupção (ms) para leituras internas de gerenciamento do servidor MCP (integridade, resiliência, combinações, cota, uso). |
OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS |
60000 |
open-sse/mcp-server/fetchTimeout.ts |
Limite de tempo para cancelamento (ms) de saltos MCP que aguardam um provedor (route_request, web_search, web_fetch). |
OMNIROUTE_CORPUS_CACHE_SIZE |
5 |
src/lib/localCorpus/configured.ts |
Número máximo de instâncias de índice do corpus local armazenadas 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 cotas do provedor. |
PROVIDER_LIMITS_SYNC_SPACING_MS |
1500 |
src/lib/usage/providerLimits.ts |
Intervalo (ms) entre buscas consecutivas de cota OAuth em uma sincronização em massa; as conexões OAuth são consultadas uma por vez para evitar uma rajada de requisições ao serviço upstream. 0 desativa esse espaçamento (concorrente). |
OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS |
250 |
open-sse/services/quotaFetchThrottle.ts |
Intervalo mínimo (ms) entre buscas consecutivas de cota no upstream durante a verificação prévia/monitoramento por requisição; espaça as chamadas de rede concorrentes para que muitas contas em um único IP não sobrecarreguem o upstream com uma rajada de requisições. Integrado aos mecanismos de busca de cotas do Codex (/wham/usage), DeepSeek, Bailian (em ambos os locais de busca), OpenCode e Crof (#6009, #6911). O caminho genérico de despacho usage.ts::getUsageForProvider (github/glm/minimax/nanogpt/xai/etc.) ainda não está coberto — rastreado separadamente. Acertos de cache não são afetados. 0 desativa; limitado a 0..5000. |
PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS |
5000 |
src/lib/usage/providerLimits.ts |
Atraso (ms) antes de atualizar os limites do provedor após um evento real de uso, dando tempo para que a API de cotas upstream registre o consumo. |
OMNIROUTE_LOGIN_BROWSER_PATH |
detecção automática | open-sse/services/adobeFireflyBrowserLogin.ts |
Caminho absoluto para um executável do Chrome ou Edge do sistema usado para autenticação interativa no Adobe Firefly e renovação em segundo plano. |
ADOBE_FIREFLY_BROWSER_REFRESH |
habilitado | open-sse/services/adobeFireflySession.ts |
Mantém atualizados o IMS e o estado de risco do navegador com sessões Chrome CDP com escopo por conta. Defina como 0 para desativar a renovação pelo navegador. |
ADOBE_FIREFLY_SESSION_DISK |
habilitado | open-sse/services/adobeFireflySession.ts |
Persiste sessões reparadas da Adobe em DATA_DIR entre reinicializações 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 |
Espaçamento mínimo, em milissegundos, entre envios de geração do Adobe Firefly; 0 desativa o espaçamento. |
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS |
15000 |
open-sse/services/adobeFireflySession.ts |
Período adicional de espera, em milissegundos, após cada terceiro envio bem-sucedido à Adobe. |
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS |
8000 |
open-sse/services/adobeFireflyClient.ts |
Recuo base, em milissegundos, após respostas 408 transitórias da Adobe; combinado com o espaçamento entre envios em até cinco tentativas. |
OMNIROUTE_DISABLE_BACKGROUND_SERVICES |
false |
src/instrumentation-node.ts |
Desativa todos os serviços em segundo plano (sincronização, preços, 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 de tarefas em segundo plano quando testes automatizados são detectados. Defina como 1 para ignorar a heurística de teste. |
OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS |
600000 |
src/lib/jobs/budgetResetJob.ts |
Frequência de verificação da redefinição de 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 da conexão (ms): revalida conexões cujo rate_limited_until transitório expirou, fora do caminho crítico da solicitação. Mínimo de 5000. |
OMNIROUTE_DISABLE_CONNECTION_RECOVERY |
false |
src/lib/quota/connectionRecovery.ts |
Desativa o agendador de recuperação proativa do período de espera da conexão (a recuperação sob demanda em getProviderCredentials ainda se aplica). |
OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS |
1800000 |
src/lib/jobs/reasoningCacheCleanupJob.ts |
Cadência de limpeza do cache de raciocínio (ms). Mínimo de 60000. |
OMNIROUTE_REASONING_MIN_BUDGET |
não definido (desativado) | open-sse/services/reasoningTokenBuffer.ts |
Limite mínimo opcional para orçamentos de saída de modelos de pensamento: o max_tokens do chamador no intervalo [256, limite mínimo) é elevado até o limite mínimo (limitado pelo máximo de saída do modelo). Não definido = os orçamentos do cliente nunca são ampliados (#9507). |
OMNIROUTE_LOG_EXPORT_CRON |
0 * * * * |
src/lib/jobs/logExportJob.ts |
Expressão cron (UTC) para a tarefa de exportação de logs de chamadas, que esvazia todos os destinos de exportação de logs habilitados. |
OMNIROUTE_CONFIG_HOT_RELOAD_MS |
5000 |
src/lib/config/hotReload.ts |
Intervalo de sondagem (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 o cache de autenticação de chaves de API baseado em Redis (força leituras do banco de dados). |
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
0 |
open-sse/services/compression/engines/rtk/filterLoader.ts |
Confia nas regras de filtro de projeto RTK gerenciadas pelo usuário sem verificações rigorosas de assinatura. |
OMNIROUTE_LITE_MAX_TOOL_LENGTH |
2000 |
open-sse/services/compression/lite.ts |
Limite de caracteres para o truncamento proativo de resultados de ferramentas do Lite quando lite.maxToolLength não está definido. Intervalo de 256–1000000. A configuração do painel prevalece 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 simultâneos; tarefas excedentes aguardam em ordem FIFO. |
OMNI_COMPRESSION_WORKER_TIMEOUT_MS |
120000 |
open-sse/services/compression/compressionWorkerPool.ts |
Tempo limite por tarefa em milissegundos. Workers que excedem o tempo limite são encerrados, e a solicitação continua sem alterações. |
OMNI_COMPRESSION_WORKER_IDLE_MS |
60000 |
open-sse/services/compression/compressionWorkerPool.ts |
Tempo de vida ocioso em milissegundos antes que um worker de compressão não utilizado seja encerrado. |
COMPRESSION_PIPELINE_BREAKER_ENABLED |
false |
open-sse/services/compression/pipelineEngineBreaker.ts |
Chave geral do disjuntor por mecanismo do pipeline empilhado T02. Opcional (desativado por padrão) — quando ativado, um mecanismo que gera erros repetidamente entre solicitações é ignorado (continua sem interrupção) durante um período de espera; desativado = comportamento legado idêntico byte a byte. |
COMPRESSION_PIPELINE_BREAKER_THRESHOLD |
3 |
open-sse/services/compression/pipelineEngineBreaker.ts |
Número de falhas consecutivas entre solicitações antes que o disjuntor de um mecanismo seja aberto. |
COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS |
30000 |
open-sse/services/compression/pipelineEngineBreaker.ts |
Milissegundos durante os quais um mecanismo 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 de recuperação T08/H8 CCR: cada recuperação anterior de um bloco armazenado aumenta linearmente seu minChars efetivo (conteúdo recuperado com frequência é menos comprimido; >=3 recuperações = nunca comprimido). 1 desativa a rampa (ignoramento binário somente no limite). |
COMPRESSION_CCR_DURABLE_STORE |
true |
open-sse/services/compression/engines/ccr/index.ts |
Armazenamento durável de blocos do CCR (#9061). Usa SQLite como suporte para o armazenamento em memória, de modo que um bloco sobreviva à remoção por LRU, ao TTL, a uma reinicialização ou a uma recuperação realizada em outra instância. Defina como false para manter os blocos somente na memória. Blocos com mais de 512 KB e ambientes de execução em nuvem permanecem somente na memória, independentemente dessa configuração. |
COMPRESSION_PREFIX_FREEZE_ENABLED |
false |
open-sse/services/compression/prefixFreeze.ts |
Chave mestra do congelamento de prefixo observado pelo uso T08/H5. Adesão opcional (desativado por padrão) — quando ativada, um prompt do sistema observado >= ao limite é tratado como um prefixo estável armazenável em cache e preservado durante a compactação, mesmo para provedores que a heurística de cache estático não detecta (o congelamento apenas preserva, nunca modifica). |
COMPRESSION_PREFIX_FREEZE_THRESHOLD |
3 |
open-sse/services/compression/prefixFreeze.ts |
Número de observações de um prompt do sistema antes que ele seja 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 escape: permite que o corpo da solicitação 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 uma vez após um erro 429 de cota elegível e always injeta na primeira solicitação. |
ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS |
0 |
open-sse/translator/request/openai-to-gemini.ts |
Permite que o tradutor de solicitações do Antigravity ignore sua validação estrita da assinatura de solicitação da CLI quando o serviço upstream recusar assinaturas reais (modo de depuração/CLI obsoleta). Um valor diferente de zero habilita essa opção. |
AGY_TOKEN_FILE |
~/.gemini/antigravity-cli/antigravity-oauth-token |
src/app/api/providers/agy-auth/apply-local/route.ts |
Substitui o caminho do arquivo de token da CLI do Antigravity (agy) para a importação de login local por detecção automática. |
Ponte OAuth da CLI (interna)
Seção intitulada “Ponte OAuth da CLI (interna)”| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OMNIROUTE_SERVER |
detecçã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 do usuário para sessões da ponte da CLI. |
SERVER_URL |
(não definido) | src/lib/oauth/config/index.ts |
Alias legado de OMNIROUTE_SERVER. |
CLI_TOKEN |
(não definido) | src/lib/oauth/config/index.ts |
Alias legado de OMNIROUTE_TOKEN. |
CLI_USER_ID |
(não definido) | src/lib/oauth/config/index.ts |
Alias legado de OMNIROUTE_USER_ID. |
11. Credenciais do Provedor OAuth
Seção intitulada “11. Credenciais do Provedor OAuth”Credenciais integradas para desenvolvimento local. Para implantações remotas, registre as suas próprias no console de desenvolvedor de cada provedor.
| Variável | Provedor | Observações |
|---|---|---|
CLAUDE_OAUTH_CLIENT_ID |
Claude Code (Anthropic) | Cliente público — não é necessário segredo. |
CLAUDE_CODE_REDIRECT_URI |
Claude Code | Substituir URI de redirecionamento. Padrão: https://platform.claude.com/oauth/code/callback |
CODEX_OAUTH_CLIENT_ID |
Codex / OpenAI | Cliente público. |
GEMINI_OAUTH_CLIENT_ID |
Gemini (Google) | Requer _SECRET correspondente. |
GEMINI_OAUTH_CLIENT_SECRET |
Gemini (Google) | — |
KIMI_CODING_OAUTH_CLIENT_ID |
Kimi Coding (Moonshot) | Cliente público. |
MUSE_CODE_OAUTH_CLIENT_ID |
Muse Code (Meta) | Substituição opcional para o ID do cliente de fluxo de dispositivo da CLI pública do Muse. Deixe sem definir para usar o cliente público integrado. |
ANTIGRAVITY_OAUTH_CLIENT_ID |
Antigravity (Google) | Requer _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 do cliente OAuth do GitHub Enterprise Copilot. Retorna ao padrão público de GITHUB_OAUTH_CLIENT_ID quando não definido. |
COPILOT_INTEGRATION_ID |
GitHub Copilot | Substituição opcional para o ID de integração do cliente GitHub Copilot enviado nos cabeçalhos Copilot-Integration-Id e Editor-Plugin-Version. O padrão é copilot-developer-cli. |
WINDSURF_API_KEY |
Windsurf / Devin (v3.8) | Chave de API de fallback usada por open-sse/executors/devin-cli.ts quando nenhuma credencial por conexão está disponível. Opcional. |
CLI_DEVIN_BIN |
Devin CLI (v3.8) | Caminho personalizado para o binário da CLI do Devin (devin). Resolvido por open-sse/executors/devin-cli.ts. |
GITLAB_DUO_OAUTH_CLIENT_ID |
GitLab Duo (v3.8) | ID do cliente OAuth para GitLab Duo. Registre um aplicativo em https://gitlab.com/-/profile/applications com URI de redirecionamento <NEXT_PUBLIC_BASE_URL>/callback e escopos api, read_user, openid, profile, email. Retorna a GITLAB_OAUTH_CLIENT_ID. |
GITLAB_DUO_OAUTH_CLIENT_SECRET |
GitLab Duo (v3.8) | Segredo do cliente OAuth para GitLab Duo. Opcional — o fluxo PKCE não requer um segredo. Retorna a GITLAB_OAUTH_CLIENT_SECRET. |
GITLAB_DUO_BASE_URL |
GitLab Duo (v3.8) | Substitui a URL base do GitLab (GitLab auto-hospedado). O padrão é https://gitlab.com. Retorna a GITLAB_BASE_URL. |
GITLAB_BASE_URL |
GitLab Duo (v3.8) | Fallback legado para GITLAB_DUO_BASE_URL. Usado quando a variante _DUO_ não está definida. |
GITLAB_OAUTH_CLIENT_ID |
GitLab Duo (v3.8) | Fallback legado para GITLAB_DUO_OAUTH_CLIENT_ID consumido por src/lib/oauth/constants/oauth.ts. |
GITLAB_OAUTH_CLIENT_SECRET |
GitLab Duo (v3.8) | Fallback legado para GITLAB_DUO_OAUTH_CLIENT_SECRET consumido por src/lib/oauth/constants/oauth.ts. |
QODER_OAUTH_CLIENT_SECRET |
Qoder | — |
QODER_OAUTH_AUTHORIZE_URL |
Qoder | Definido para habilitar o Qoder OAuth. |
QODER_OAUTH_TOKEN_URL |
Qoder | — |
QODER_OAUTH_USERINFO_URL |
Qoder | — |
QODER_OAUTH_CLIENT_ID |
Qoder | — |
QODER_PERSONAL_ACCESS_TOKEN |
Qoder | Fallback direto da chave de API (ignora o OAuth). |
QODER_CLI_WORKSPACE |
Qoder | ID do espaço de trabalho para o Qoder CLI. |
OMNIROUTE_QODER_WORKSPACE |
Qoder | Alias para QODER_CLI_WORKSPACE. |
QODER_CLI_CONFIG_DIR |
Qoder | Substitui o diretório de configuração do Qoder CLI (sessão PAT isolada, evita sobrescrever um login de navegador). |
BLACKBOX_WEB_VALIDATED_TOKEN |
Blackbox Web | Token tk de frontend para enviar como validated em /api/chat. Necessário quando o Blackbox impõe a correspondência de tokens; caso contrário, o OmniRoute retorna a um UUID aleatório. Consulte o problema #2252. |
VISION_BRIDGE_BASE_URL |
Guardrail Vision Bridge | URL base compatível com OpenAI para chamadas não-Anthropic do vision-bridge. O padrão é a variável de ambiente da URL legada do OpenAI ou api.openai.com. Aponte para o auto-loop /v1 do OmniRoute ou qualquer endpoint compatível com OpenAI (Gemini OpenAI-compat, OpenRouter). Problema #2232. Quando a URL é o próprio /v1 do OmniRoute, a sub-requisição de descrição envia x-omniroute-admission-bypass: internal e autentica com a credencial de auto-loop resolvida (sentinela sk_omniroute no modo local, ou OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350) para que as implantações REQUIRE_API_KEY=true funcionem. |
VISION_BRIDGE_API_KEY |
Guardrail Vision Bridge | Chave de API para a URL acima. Substitui as variáveis de ambiente OpenAI / Google por provedor para chamadas não-Anthropic do vision-bridge. Os modelos Anthropic mantêm seu caminho de chave Anthropic dedicado. Problema #2232. |
OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS |
Guardrail Vision Bridge | Por quanto tempo um resultado de roteamento “nenhum candidato utilizável” é armazenado em cache, em ms (padrão 30000). Valores inválidos ou negativos retornam ao padrão; 0 desabilita o cache negativo. Fonte: src/lib/guardrails/visionBridgeRouter.ts. |
[!WARNING]
- Vá para Google Cloud Console → Credenciais
- Crie um ID de Cliente OAuth 2.0 (tipo: “Aplicativo da web”)
- Adicione a URL do seu servidor como URI de redirecionamento autorizado
- Substitua os valores das credenciais em
.env.
12. Substituições de User-Agent do provedor
Seção intitulada “12. Substituições de User-Agent do provedor”Substitua o cabeçalho User-Agent enviado a cada provedor upstream. Isso é resolvido dinamicamente em tempo de execução pela classe base do executor:
process.env[`${PROVIDER_ID}_USER_AGENT`]Fonte:
open-sse/executors/base.ts→buildHeaders()
| Variável | Valor padrão | 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 à Anthropic os nomes de ferramentas de harnesses de terceiros nos dois caminhos destinados à Anthropic (OAuth nativo e CLIProxyAPI). Por padrão, o executor atribui aliases determinísticos a nomes de ferramentas que não sejam do Claude Code (usando o mapeamento canônico do Claude Code quando houver um; caso contrário, PascalCase) e os reverte na resposta por meio de _toolNameMap, para que harnesses com ferramentas em snake_case não sejam recusados por serem identificados como clientes de terceiros. Somente para depuração. |
| CODEX_USER_AGENT | codex-cli/0.155.0 (Windows 10.0.26200; x64) | Quando a OpenAI atualizar a CLI do Codex |
| CODEX_CLIENT_VERSION | 0.155.0 | Substitua a versão do cliente Codex independentemente da string completa do UA |
| CLAUDE_CODE_CLIENT_VERSION | 2.1.258 | Substitua a versão anunciada do Claude Code independentemente de CLAUDE_USER_AGENT. A Anthropic restringe alguns modelos com base nesse valor (#12417). |
| GITHUB_COPILOT_CLI_VERSION | 1.0.81-6 | Substitua 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 Antigravity IDE for atualizado |
| KIRO_USER_AGENT | AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 | Quando o Kiro IDE for atualizado |
| KIRO_OAUTH_CLIENT_ID | kiro-cli | Substitua o clientId (ID público) do código de dispositivo social do Kiro |
| KIRO_VERIFY_FULL_CRC | false | Opcional: validação completa do CRC de cada quadro no fluxo de eventos do Kiro (para depurar 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] Você pode adicionar substituições de User-Agent para qualquer provedor usando o padrão
{PROVIDER_ID}_USER_AGENT. O executor constrói dinamicamente o nome da variável de ambiente.
13. Compatibilidade de fingerprint da CLI
Seção intitulada “13. Compatibilidade de fingerprint da CLI”Quando habilitado, o OmniRoute reordena os cabeçalhos HTTP e os campos do corpo JSON para corresponder à assinatura exata das ferramentas de CLI oficiais. Isso reduz o risco de sinalização da conta enquanto preserva o IP do seu proxy.
Fonte: open-sse/config/cliFingerprints.ts, open-sse/executors/base.ts
Por provedor
Seção intitulada “Por provedor”| Variável | Ativação | Efeito |
|---|---|---|
CLI_COMPAT_CODEX |
=1 |
Imita a assinatura de requisição da CLI do Codex |
CLI_COMPAT_CLAUDE |
=1 |
Imita a assinatura de requisição do Claude Code |
CLI_COMPAT_GITHUB |
=1 |
Imita a assinatura de requisição do GitHub Copilot |
CLI_COMPAT_ANTIGRAVITY |
=1 |
Imita a assinatura de requisição do Antigravity |
CLI_COMPAT_CURSOR |
=1 |
Imita a assinatura de requisição do Cursor |
CLI_COMPAT_KIMI_CODING |
=1 |
Imita a assinatura de requisição do Kimi Coding |
CLI_COMPAT_KILOCODE |
=1 |
Imita a assinatura de requisição do Kilo Code |
CLI_COMPAT_CLINE |
=1 |
Imita a assinatura de requisição do Cline |
| Variável | Ativação | Efeito |
|---|---|---|
CLI_COMPAT_ALL |
=1 |
Habilita a compatibilidade de fingerprint para todos os provedores de uma só vez. |
Substituições de identidade da CLI do Kimi Coding
Seção intitulada “Substituições de identidade da CLI do Kimi Coding”| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
KIMI_CLI_VERSION |
1.36.0 |
src/lib/oauth/providers/kimi-coding.ts |
Substitui a versão da CLI do Kimi enviada durante chamadas OAuth/API. |
KIMI_CODING_DEVICE_ID |
(padrão capturado) | src/lib/oauth/providers/kimi-coding.ts |
Substitui o ID de dispositivo do Kimi capturado usado nos cabeçalhos do cliente. |
[!NOTE] Este recurso funciona em conjunto com as substituições de User-Agent (§12). O sistema de fingerprint lida com a ordenação dos cabeçalhos e dos campos do corpo, enquanto as substituições de User-Agent lidam com a string específica de UA. Ambos podem ser habilitados independentemente.
14. Provedores de chave de API
Seção intitulada “14. Provedores de chave de API”Chaves de API para provedores que usam autenticação direta. Configuração preferencial: Painel → Provedores → Adicionar chave de API.
A configuração por meio de variáveis de ambiente é uma alternativa para implantações Docker ou sem interface gráfica.
Padrão reconhecido: {PROVIDER_ID}_API_KEY
| Variável | Provedor |
|---|---|
DEEPSEEK_API_KEY |
DeepSeek |
NVIDIA_API_KEY |
NVIDIA NIM |
JINA_AI_API_KEY |
Jina AI (Foundation API + fallback do Reader) |
JINA_API_KEY |
Jina AI (alias de JINA_AI_API_KEY) |
GEMINI_API_KEY |
Gemini (Google AI Studio) embeddings + fallback de chat |
GOOGLE_API_KEY |
Gemini (alias de GEMINI_API_KEY) |
[!NOTE] As entradas estáticas
${PROVIDER}_API_KEYpara Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius e Qianfan foram removidas na v3.8.0 porque o runtime não as lê mais — esses provedores dependem exclusivamente do Painel /data/provider-credentials.json/ banco de dados criptografado. Consulte a seção Auditoria: variáveis removidas / inativas no final deste documento para ver o caminho de migração.
[!TIP] As chaves definidas pelo Painel são armazenadas de forma criptografada no SQLite e têm precedência sobre as variáveis de ambiente.
Jina: embeddings
jina-ai/…, rerank, classify, segment ejina-searchnão cobram uma chave de ambiente do cluster quando existe uma conexãojina-ai(oujina-readercompartilhada) no painel —getProviderCredentialsusa a estratégia fill-first.JINA_AI_API_KEY/JINA_API_KEYsão usadas somente quando não existe uma chave utilizável no painel. Os logs de chamadas atribuem o fallback do ambiente comoconnection_id=env:JINA_AI_API_KEY. O cartão Reader (jina-reader,r.jina.ai) nunca atende a/v1/embeddingsou/v1/rerank.Gemini:
gemini/gemini-embedding-2(aliasgoogle/gemini-embedding-2) usa primeiro a conexãogeminido painel.GEMINI_API_KEY/GOOGLE_API_KEYsão usadas somente quando não existe uma chave utilizável no painel. Os logs de chamadas atribuem o fallback do ambiente comoconnection_id=env:GEMINI_API_KEY. O tráfego multimodal nativo usax-goog-api-keyem relação a:embedContent/:batchEmbedContents— N itens OpenAI eminputtornam-se N vetores.
15. Configurações de timeout
Seção intitulada “15. Configurações de timeout”Todos os valores estão em milissegundos. Resolução centralizada em src/shared/utils/runtimeTimeouts.ts.
Hierarquia de timeouts
Seção intitulada “Hierarquia de timeouts”REQUEST_TIMEOUT_MS (substituição global)├─→ FETCH_TIMEOUT_MS (chamadas a provedores upstream, padrã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, padrão: 10000)│ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (independente, padrão: 15000)│ ├── FETCH_CONNECT_TIMEOUT_MS (independente, padrão: 30000)│ └── FETCH_KEEPALIVE_TIMEOUT_MS (independente, padrão: 4000)├─→ STREAM_IDLE_TIMEOUT_MS (herda de REQUEST_TIMEOUT_MS, padrão: 600000)├─→ STREAM_ACTIVE_TIMEOUT_MS (independente, padrão: 1260000; 0 desabilita)├─→ STREAM_READINESS_TIMEOUT_MS (herda de REQUEST_TIMEOUT_MS, padrão: 80000)├─→ STREAM_READINESS_MAX_TIMEOUT_MS (limita extensões adaptativas de prontidão, padrão: 180000)└─→ API_BRIDGE_PROXY_TIMEOUT_MS (herda de REQUEST_TIMEOUT_MS, padrão: 30000) ├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (derivado, padrão: 300000) ├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (padrão: 60000) ├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (padrão: 5000) └── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (padrão: 0 = desabilitado)| Variável | Padrão | Descrição |
|---|---|---|
REQUEST_TIMEOUT_MS |
(não definido) | Atalho global — substitui os valores padrão de FETCH_TIMEOUT_MS e STREAM_IDLE_TIMEOUT_MS. |
FETCH_TIMEOUT_MS |
600000 |
Tempo limite total da requisição HTTP para chamadas ao provedor upstream. |
STREAM_IDLE_TIMEOUT_MS |
600000 |
Período máximo de silêncio entre bytes brutos recebidos do upstream antes de abortar. Modelos com raciocínio estendido raramente pausam por mais de 90 s. |
STREAM_ACTIVE_TIMEOUT_MS |
1260000 |
Duração total máxima de um fluxo SSE ativo; nunca é reiniciada por bytes do upstream e independe de REQUEST_TIMEOUT_MS. Derivada do maior timeoutMs por modelo no registro (1200000, Codex), acrescido de uma margem de 60000, para que um modelo autorizado a usar todo o seu orçamento nunca seja interrompido no meio da resposta. Defina como 0 para desabilitar. |
OMNIROUTE_SSE_COMMENTS |
(desabilitado) | Define se o OmniRoute pode emitir linhas de comentário SSE : (por exemplo, o heartbeat : keepalive e os trailers de metadados x-omniroute-*). Desabilitado por padrão (#10524), pois clientes estritamente compatíveis com a OpenAI executam JSON.parse em cada linha SSE e falham em comentários :; heartbeats data: não são afetados. Defina como on/true/1/yes para reativar. Usado 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 definido. |
STREAM_READINESS_MAX_TIMEOUT_MS |
180000 |
Janela adaptativa máxima de prontidão do primeiro evento para requisições de streaming grandes, com uso intensivo de ferramentas ou alto nível de raciocínio. |
OMNIROUTE_AGENT_GOAL_POLICY_ENABLED |
true |
Interruptor de emergência para a heurística de /goal. Defina como false/0/off para desabilitar completamente a detecção — os tempos limite de prontidão e a recuperação do fluxo nunca são elevados pelo corpo/cabeçalhos da requisição, reduzindo a amplificação do tempo limite controlada pelo cliente. |
OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS |
600000 |
Janela máxima de prontidão do primeiro evento para execuções de agente /goal detectadas ou requisições forçadas com x-omniroute-agent-goal. |
OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY |
true |
Habilita automaticamente a recuperação antecipada do fluxo para execuções de agente /goal detectadas. Defina como false/0/off para desabilitar a ativação específica de objetivo. Isso somente pode ADICIONAR recuperação à configuração padrão do operador — nunca substitui uma desativação explícita nas configurações de STREAM_RECOVERY_ENABLED/DB. |
OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS |
true |
Remove eventos SSE codex.* não padronizados (por exemplo, codex.rate_limits) que fazem o responses.stream() do SDK da OpenAI falhar com um erro 502. ATIVADO por padrão (#11014). Defina como 0/false/no/off para encaminhá-los. |
OMNIROUTE_CODEX_APPSERVER_WS |
(não definido) | Transporte do app-server Codex mediante ativação explícita. Endpoint WebSocket (ws:///wss://) de um sidecar local codex app-server. Quando definido junto com um token, as requisições do Codex são roteadas por JSON-RPC ao sidecar, em vez de usar a API HTTP Responses. Também pode ser definido por conexão via providerSpecificData.codexAppServerUrl. Usado por open-sse/executors/codex/appServerConfig.ts. |
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN |
(não definido) | Token inline de capacidade/bearer apresentado ao app-server. Substituição por conexão: providerSpecificData.codexAppServerToken. |
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE |
(não definido) | Caminho para um arquivo que contém o token de capacidade do app-server (proveniente de codex app-server --ws-token-file). Usado quando OMNIROUTE_CODEX_APPSERVER_WS_TOKEN não está definido. Substituição por conexão: providerSpecificData.codexAppServerTokenFile. |
OMNIROUTE_CODEX_APPSERVER_CWD |
/tmp |
Diretório de trabalho no qual o turno do app-server é executado. Substituição por conexão: providerSpecificData.codexAppServerCwd. |
OMNIROUTE_CODEX_APPSERVER_APPROVAL |
(não definido) | Política de aprovação passada ao turno do app-server (por exemplo, never, on-request). Substituição por conexão: providerSpecificData.codexAppServerApprovalPolicy. |
OMNIROUTE_CODEX_APPSERVER_SANDBOX |
(não definido) | Política de sandbox passada ao turno do app-server (por exemplo, read-only, workspace-write, danger-full-access). Quando não definida, o executor usa workspace-write por padrão (mais seguro; anteriormente, danger-full-access). Substituição por conexão: providerSpecificData.codexAppServerSandbox. |
OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE |
false |
Aprova automaticamente as próprias solicitações de aprovação do app-server (execução de comandos/arquivos/permissões no host). Desativado por padrão — as solicitações são negadas automaticamente; as chamadas de ferramentas do harness não são afetadas (elas percorrem o passthrough separado item/tool/call). Aceita true/1/yes. Substituição por conexã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 (ms) pelo início da resposta para cada tentativa direta sem proxy. Em caso de timeout, uma nova tentativa é feita uma vez em um socket novo; defina como 0 para desabilitar o limite e manter o comportamento anterior. |
OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS |
600000 (10 min) |
Limite máximo (ms) para a tentativa RETRY em um socket novo após um timeout de início da resposta em uma tentativa com conexão do pool descrita acima (#13703). Aplica-se somente quando o chamador já anexou seu próprio sinal de prazo limite (a cascata resolvida de conexão/modelo/provedor/FETCH_TIMEOUT_MS); esse sinal é o limite real e dispara primeiro no fluxo esperado, portanto este é um mecanismo de segurança generoso, e não um limite fixo — sem ele, a nova tentativa reutilizava a mesma janela curta de OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS da tentativa com conexão do pool e retornava 504 para modelos de raciocínio íntegros com TTFB lento. Nunca pode ser definido abaixo do limite mínimo fixo acima; quando o chamador não fornece nenhum sinal de prazo limite, a nova tentativa mantém o limite mínimo fixo inalterado. |
FETCH_BODY_TIMEOUT_MS |
= FETCH_TIMEOUT_MS |
Tempo para receber o corpo completo da resposta. |
FETCH_CONNECT_TIMEOUT_MS |
30000 |
Timeout para estabelecer a conexã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é o primeiro byte do corpo no transporte de impressão digital TLS do wreq-js; TLS_CLIENT_TIMEOUT_MS sozinho não consegue detectar um corpo travado, pois é resolvido assim que os cabeçalhos chegam (#12656). Um timeout cancela o leitor do wreq e usa como fallback o dispatcher direto/proxy; 0 desabilita o watchdog. |
RESPONSES_FIRST_BYTE_TIMEOUT_MS |
15000 |
Somente para o executor OpenCode e apenas enquanto a feature flag OPENCODE_RESPONSES_STALL_ROTATION estiver ativada (desativada por padrão): limita a espera pelo primeiro byte do corpo de uma resposta Responses transmitida por streaming após seus cabeçalhos (#13484). Um stream Responses começa com response.created, portanto o silêncio além dessa janela indica uma paralisação: a conta entra em cooldown e a solicitação é direcionada uma vez para a próxima conta; uma segunda paralisação falha imediatamente. 0 desabilita a proteção mesmo com a flag ativada. |
OPENCODE_PARK_AND_RESUME |
false |
Somente para o executor OpenCode: coloca a solicitação em espera com um heartbeat após erros 429 transitórios repetidos (ou um marcador recente de sobrecarga do pool) e, em seguida, repete uma etapa limitada de até 3 contas sequenciais, em vez de distribuir as tentativas por toda a frota (#13924). Desativado por padrão: cada erro 429 direciona a solicitação para a próxima conta exatamente como antes. |
OPENCODE_POOL_STRAIN_MARKER_PATH |
(não definido) | Somente para o executor OpenCode: substitui o caminho do marcador de sobrecarga do pool lido antes de colocar a solicitação em espera ({since, reason, ttl_s}, padrão /tmp/opencode-pool-strain.json, #13924). Um marcador recente coloca a solicitação em espera sem refazer a contagem; se estiver ausente ou obsoleto, o contador de rajadas será usado como fallback. |
API_BRIDGE_PROXY_TIMEOUT_MS |
30000 |
Timeout do salto de proxy para solicitações da ponte /v1. |
FIRECRAWL_BASE_URL |
https://api.firecrawl.dev |
Direciona o executor de busca na Web do Firecrawl para uma instância auto-hospedada (chave de API opcional fora da nuvem). |
FIRECRAWL_TIMEOUT_MS |
30000 |
Timeout por solicitação para o executor de busca na Web do Firecrawl. |
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS |
300000 |
Timeout geral da solicitação do servidor para a ponte. |
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS |
60000 |
Tempo para enviar os cabeçalhos da resposta por meio 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 bruto (0 = desabilitado). |
SHUTDOWN_TIMEOUT_MS |
30000 |
Período de carência após SIGTERM/SIGINT antes do encerramento forçado. |
OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS |
120000 |
Fallback usado 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) a fim de evitar alternância constante entre ativo/erro no dashboard. Usa 8000ms como fallback para valores inválidos (<1000) ou não numéricos. |
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS |
25000 |
Tempo limite de fetch específico do relay em open-sse/utils/proxyFetch.ts (#9158). Um relay travado deve falhar antes do tempo limite do cliente/agente (~30s), para que os chamadores vejam uma falha específica do relay em vez de um tempo limite genérico do upstream. Limitado a 29000 para que sempre seja acionado primeiro. |
OMNIROUTE_RETRY_BACKOFF_MS |
10 |
Backoff de nova tentativa compartilhado para os fluxos de uma única nova tentativa direta/via relay/via proxy em open-sse/utils/proxyFetch.ts (#9158). 0 = tentar novamente imediatamente. |
OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS |
60000 |
Tempo limite nativo de requisição do wreq-js (claudeTlsClient.ts). |
OMNIROUTE_CLAUDE_TLS_GRACE_MS |
10000 |
Margem do prazo-limite absoluto do JS adicionada ao tempo limite nativo. |
OMNIROUTE_PPLX_TLS_TIMEOUT_MS |
30000 |
Tempo limite nativo de requisição do wreq-js (perplexityTlsClient.ts). |
OMNIROUTE_PPLX_TLS_GRACE_MS |
10000 |
Margem do prazo-limite absoluto do JS adicionada ao tempo limite nativo. |
OMNIROUTE_PPLX_SEARCH_HINT |
0 (desativado) |
Anexa “Você tem pesquisa integrada na web. Responda às perguntas diretamente usando os resultados da pesquisa.” à mensagem de sistema do chamador (perplexity-web/protocol.ts). Desativado por padrão — o Perplexity realiza pesquisas 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 nativo de requisição do wreq-js (grokTlsClient.ts). |
OMNIROUTE_GROK_TLS_GRACE_MS |
10000 |
Margem do prazo-limite absoluto do JS adicionada ao tempo limite nativo. |
OMNIROUTE_NOTION_TLS_TIMEOUT_MS |
30000 |
Tempo limite nativo de requisição do wreq-js (notionTlsClient.ts); notion-web aumenta esse valor por requisição para 180000 em gerações longas. |
OMNIROUTE_NOTION_TLS_GRACE_MS |
10000 |
Margem do prazo-limite absoluto do JS adicionada ao tempo limite nativo. |
OMNIROUTE_BROWSER_POOL |
on |
Pool compartilhado de navegadores Playwright para chat com cookies da web baseado em navegador (browserPool.ts); defina como off para desativar. |
OBSCURA_BIN |
auto-detect |
Caminho para o binário obscura usado como mecanismo principal pelo pool de navegadores e pelo executor do Cloudflare Playground (open-sse/services/obscura.ts); detectado automaticamente no PATH do sistema quando não 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 é proprietário desse processo (open-sse/services/obscura.ts). |
OBSCURA_PORT |
porta livre aleatória |
Porta explícita para o obscura serve iniciado; uma porta livre é escolhida automaticamente quando não definida (open-sse/services/obscura.ts). |
WEB_COOKIE_USE_BROWSER |
0 |
Faz com que uma requisição de chat com cookies da web use o fluxo baseado em navegador (browserBackedChat.ts); 1 para habilitar. |
KIMI_WEB_BASE_URL |
https://www.kimi.ai |
URL base do executor Kimi Web (Connect-RPC internacional do kimi.ai) (kimi-web.ts); substitua somente para endpoints de espelho/proxy. |
KIMI_WEB_CHAT_URL |
<KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat |
Endpoint completo de chat do executor Kimi Web (kimi-web.ts). |
OMNIROUTE_LOGIN_BROWSER_PATH |
(detectado automaticamente) | Caminho para um executável do Chrome/Edge do sistema usado no login interativo pelo navegador do Adobe Firefly (adobeFireflyBrowserLogin.ts); substitui a detecção automática específica de cada SO. |
OMNIROUTE_STANDALONE_DIR |
saída standalone de .build/ | Substituição em tempo de build do diretório de saída standalone consumido pela etapa de colocalização pós-build (scripts/build/colocate-standalone.mjs); usado pelas ferramentas de build, não em runtime. |
As tentativas de destinos combo herdam o tempo limite resolvido da requisição upstream (FETCH_TIMEOUT_MS ou
REQUEST_TIMEOUT_MS quando ele fornece o padrão de fetch). Defina targetTimeoutMs em um combo,
nos padrões do combo ou na substituição do provedor somente para tornar o fallback do combo mais rápido; valores acima do
tempo limite upstream atual são limitados ao tempo limite upstream.
comboTimeoutMs é um orçamento de tempo de relógio separado para todo o combo, abrangendo os destinos de failover.
Deixe-o não definido ou como 0 para manter a iteração ilimitada (um mecanismo de interrupção de travamentos fixo de 10 minutos em
comboPredicates.ts ainda se aplica). Um valor positivo substitui essa
proteção para o combo. Mantenha comboTimeoutMs maior que targetTimeoutMs para que o failover
ainda tenha tempo após um primeiro destino lento.
Limites do Circuit Breaker
Seção intitulada “Limites do Circuit Breaker”Ajuste do circuit breaker no nível do provedor. Os padrões refletem os valores escalonados usados desde a v3.6 para mais de 500 conexões.
| Variável | Padrão | Arquivo-fonte | Descrição |
|---|---|---|---|
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD |
8 |
open-sse/config/constants.ts |
Limite de falhas consecutivas para provedores OAuth antes do acionamento do circuit breaker. |
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS |
60000 |
open-sse/config/constants.ts |
Janela de redefinição (ms) para o circuit breaker de provedores OAuth. |
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD |
12 |
open-sse/config/constants.ts |
Limite de falhas consecutivas para provedores com chave de API. |
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS |
30000 |
open-sse/config/constants.ts |
Janela de redefinição (ms) para o circuit breaker de provedores com chave de API. |
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD |
2 |
open-sse/config/constants.ts |
Limite de falhas consecutivas para provedores locais (Ollama, LM Studio, …). |
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS |
15000 |
open-sse/config/constants.ts |
Janela de redefinição (ms) para o circuit breaker de provedores locais. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD |
10 |
open-sse/config/constants.ts |
Circuit breaker no nível do provedor: falhas dentro da janela antes de todo o provedor OAuth entrar em período de espera. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS |
900000 |
open-sse/config/constants.ts |
Circuit breaker no nível do provedor: janela móvel de contagem de falhas (ms) para provedores OAuth. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS |
300000 |
open-sse/config/constants.ts |
Circuit breaker no nível do provedor: período de espera (ms) quando o limite do provedor OAuth é atingido. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD |
5 |
open-sse/config/constants.ts |
O provedor OAuth entra no estado DEGRADED após esta quantidade de falhas. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER |
8 |
open-sse/config/constants.ts |
Multiplicador máximo de escalonamento de resetTimeout do provedor OAuth. |
OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT |
2 |
open-sse/config/constants.ts |
O provedor OAuth escalona após esta quantidade de ciclos abertos. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD |
15 |
open-sse/config/constants.ts |
Circuit breaker no nível do provedor: falhas dentro da janela antes de todo o provedor com chave de API entrar em período de espera. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS |
1800000 |
open-sse/config/constants.ts |
Circuit breaker no nível do provedor: janela móvel de contagem de falhas (ms) para provedores com chave de API. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS |
600000 |
open-sse/config/constants.ts |
Circuit breaker no nível do provedor: período de espera (ms) quando o limite do provedor com chave de API é atingido. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD |
7 |
open-sse/config/constants.ts |
O provedor com chave de API entra no estado DEGRADED após esta quantidade de falhas. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER |
4 |
open-sse/config/constants.ts |
Multiplicador máximo de escalonamento de resetTimeout do provedor com chave de API. |
OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT |
3 |
open-sse/config/constants.ts |
O provedor com chave de API escalona após esta quantidade de ciclos abertos. |
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD |
2 |
open-sse/config/constants.ts |
Circuit breaker no nível do provedor: falhas antes de todo o provedor local entrar em período de espera. |
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS |
300000 |
open-sse/config/constants.ts |
Circuit breaker no nível do provedor: janela móvel de contagem de falhas (ms) para provedores locais. |
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS |
60000 |
open-sse/config/constants.ts |
Circuit breaker no nível do provedor: período de espera (ms) quando o limite do provedor local é atingido. |
PIN_DROP_BACKOFF_LEVEL |
2 |
open-sse/services/combo.ts |
Nível de recuo no qual o provedor de um pin do cache de contexto é considerado persistentemente indisponível, e o pin é removido para permitir o failover. |
PIN_DROP_GRACE_MS |
20000 |
open-sse/services/combo.ts |
Janela antioscilação (ms) que tolera breves períodos de espera transitórios antes de remover um pin do cache de contexto. |
Cenários
Seção intitulada “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 stream | STREAM_ACTIVE_TIMEOUT_MS=1260000 (21 min) |
| Falha rápida para API de produção | API_BRIDGE_PROXY_TIMEOUT_MS=10000 |
| Modelos de raciocínio estendido | STREAM_IDLE_TIMEOUT_MS=300000 (5 min entre fragmentos) |
16. Logs
Seção intitulada “16. Logs”O sistema de logs grava tanto na saída padrão (stdout) quanto em arquivos de log rotacionados. Toda a configuração é lida por src/lib/logEnv.ts.
| Variável | Padrão | Descrição |
|---|---|---|
APP_LOG_LEVEL |
info |
Nível mínimo de log: 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 |
Grava os logs em arquivo, além da saída padrão (stdout). |
APP_LOG_FILE_PATH |
logs/application/app.log |
Caminho do arquivo de log (relativo à raiz do projeto ou a DATA_DIR). |
APP_LOG_MAX_FILE_SIZE |
50M |
Tamanho máximo do arquivo antes da rotação. Aceita: 50M, 1G, 512K ou bytes simples. |
APP_LOG_RETENTION_DAYS |
7 |
Dias durante os quais os arquivos de log rotacionados da aplicação são mantidos. |
APP_LOG_MAX_FILES |
20 |
Número máximo de backups de arquivos de log rotacionados. |
CALL_LOG_RETENTION_DAYS |
7 |
Dias durante os quais as entradas de log de requisições/chamadas são mantidas no banco de dados. |
CALL_LOG_MAX_ENTRIES |
10000 |
Número máximo de entradas de log de chamadas no buffer em memória. |
CALL_LOGS_TABLE_MAX_ROWS |
100000 |
Número máximo de linhas na tabela SQLite call_logs antes da limpeza. |
ENABLE_REQUEST_LOGS |
(não definido) | Força a ativação ou desativação do registro detalhado de requisições, substituindo a configuração do painel. |
MAX_PENDING_REQUEST_AGE_MS |
3600000 (1 hora) |
Idade máxima das entradas órfãs de log de requisições ativas antes da limpeza na memória. |
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS |
false |
Armazena blocos do fluxo nos artefatos do pipeline quando call_log_pipeline_enabled=true. Opcional (true) — desativado por padrão para economizar espaço em disco. |
CALL_LOG_PIPELINE_MAX_SIZE_KB |
512 |
Tamanho máximo, em KB, do artefato de log 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 limpeza. |
PROXY_LOG_INCLUDE_IPS |
false |
Inclui IPs do cliente/de saída e prefixos de conta nos logs de console [ProxyEgress]. Os registros de log do proxy no painel/banco de dados mantêm todos os detalhes. |
APP_LOG_ROTATION_CHECK_INTERVAL_MS |
60000 (1 min) |
Frequência com que src/lib/logRotation.ts verifica novamente o tamanho do arquivo de log ativo. |
CHAT_LOG_TEXT_LIMIT |
65536 |
Comprimento máximo das strings mantidas nos artefatos de log de chat (padrão: 64 KB). |
CHAT_LOG_ARRAY_TAIL_ITEMS |
128 |
Número de itens do final do array mantidos ao truncar os dados dos logs de chat. |
CHAT_LOG_MAX_DEPTH |
6 |
Profundidade máxima de aninhamento antes que os dados dos logs de chat sejam truncados. |
CHAT_LOG_MAX_OBJECT_KEYS |
80 |
Número máximo de chaves de objeto mantidas nos dados dos logs de chat (0 = ilimitado). |
CHAT_LOG_MAX_BODY_KB |
1024 |
Tamanho total do corpo da requisição/resposta (KB) a partir do qual ele é substituído por um resumo básico em vez da cópia completa. Aumente esse valor se conversas agênticas longas exibirem um marcador de posição no painel em vez das mensagens reais. |
CHAT_DEBUG_FILE |
false |
Quando definido como true, serializeArtifactForStorage ignora o truncamento baseado no tamanho. Somente para depuração. |
17. Otimização de memória
Seção intitulada “17. Otimização de memória”| Variável | Padrão | Descrição |
|---|---|---|
OMNIROUTE_MEMORY_MB |
automático (máquina física); 1024 na imagem Docker |
Limite recomendado de heap do V8 (MB) para Docker/execução autônoma. Quando não 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 é anexado como --max-old-space-size e prevalece sobre um sinalizador de heap conflitante em NODE_OPTIONS (o último sinalizador prevalece no V8). omniroute serve ainda dá preferência a uma configuração de heap existente em NODE_OPTIONS (#5238). Não defina ambos com números diferentes — o processo registra um aviso indicando os dois valores e qual deles prevalece. A imagem Docker oficial sempre define 1024, portanto a calibração nunca é executada nela. O endpoint /v1/responses do agente de programação precisa de 8192–12288, além de uma margem para o cgroup — consulte o Guia do Docker — RAM em tempo de execução. |
PROMPT_CACHE_MAX_SIZE |
50 |
Número máximo de entradas de prompt do sistema em cache. |
PROMPT_CACHE_MAX_BYTES |
2097152 (2 MB) |
Tamanho total máximo do cache de prompts. |
PROMPT_CACHE_TTL_MS |
300000 (5 min) |
TTL das entradas do cache de prompts. |
SEMANTIC_CACHE_MAX_SIZE |
100 |
Número máximo de respostas com temperature=0 armazenadas em cache. |
SEMANTIC_CACHE_MAX_BYTES |
4194304 (4 MB) |
Tamanho total máximo do cache semântico. |
SEMANTIC_CACHE_TTL_MS |
1800000 (30 min) |
TTL das entradas do cache semântico. |
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 usada menos recentemente é removido e reconstruído na próxima consulta. Limitado ao mínimo de 1; um valor não numérico faz com que o padrão seja usado. |
STREAM_HISTORY_MAX |
50 |
Número máximo de eventos recentes de streaming no buffer de visualização em tempo real do Dashboard. |
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 monitorar cotas de uso. |
Compressão
Seção intitulada “Compressão”| Variável | Padrão | Descrição |
|---|---|---|
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS |
não definido | Confia no .rtk/filters.json do projeto sem um hash em .rtk/trust.json. Use somente em desenvolvimento local controlado. |
Mecanismo de memória (plano 21)
Seção intitulada “Mecanismo de memória (plano 21)”Custo no loop de eventos da memória, das habilidades e da renovação de tokens (#10349)
Seção intitulada “Custo no loop de eventos da memória, das habilidades e da renovação de tokens (#10349)”O OmniRoute é um único processo Node. A extração/recuperação de memória, a injeção de habilidades e a renovação de tokens do provedor são executadas no mesmo loop de eventos que GET /healthz e o Dashboard. Elas não são executadas em uma thread de trabalho.
| Trabalho | Código | Padrão | Controle do operador |
|---|---|---|---|
| Extração / recuperação de memória | src/lib/memory/ |
memoryEnabled no painel (ativado por padrão) | Desative em Configurações → Memória. Não há uma variável de ambiente separada para desativação de emergência além de desabilitar o recurso nas configurações. |
| Injeção de skills | src/lib/skills/injection.ts |
skillsEnabled no painel (ativado por padrão) | Desative em Configurações → Memória/Skills (skillsEnabled). Os controles de sandbox abaixo apenas limitam a execução depois que a injeção já está ativada. |
| Atualização de token | src/sse/services/tokenRefresh.ts |
Ativada para provedores OAuth/web conectados | Desconecte o provedor ou mantenha os tokens válidos; atualmente não há uma variável de ambiente TOKEN_REFRESH=0. |
Se /healthz estiver lento em uma máquina ociosa, desative primeiro memória + skills e depois verifique a carga do catálogo/compactação (#10303, #9685). Esses recursos cedem a execução nos pontos de await, mas ainda competem pela única thread.
Controles da camada de embeddings, do armazenamento vetorial e de reranqueamento para o subsistema de memória persistente (src/lib/memory/).
| Variável | Padrão | Descrição |
|---|---|---|
MEMORY_EMBEDDING_CACHE_TTL_MS |
300000 (5 min) |
TTL do 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 no 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 gerador de embeddings estático por tabela de consulta potion/Model2Vec. Baixado sob demanda no diretório de cache. |
MEMORY_STATIC_CACHE_DIR |
<DATA_DIR>/embeddings |
Diretório usado para armazenar em cache os arquivos do modelo potion estático. Quando não definido, o padrão fica sob DATA_DIR. |
HF_HUB_ENDPOINT |
https://huggingface.co |
Substitui a URL-base do Hugging Face Hub usada por staticPotion.ts (por exemplo, endpoint de espelho para ambientes isolados da rede). |
MEMORY_VEC_TOP_K |
20 |
Top-K padrão usado pela busca vetorial por força bruta do sqlite-vec em src/lib/memory/vectorStore.ts. |
MEMORY_RRF_K |
60 |
Constante k da Reciprocal Rank Fusion para recuperação híbrida com FTS5 + vetores (receita do sqlite-vec). |
VECTOR_STORE_DISABLE_VEC |
false |
Ponto de teste/diagnóstico em getVectorStore() (src/lib/memory/vectorStore.ts): quando true, força o armazenamento vetorial a null (simula um ambiente de nuvem/WASM sem sqlite-vec), reduzindo a recuperação de memória à busca por palavras-chave do FTS5. Deixe sem definir em produção. |
NOTION_API_KEY |
(não definido) | Chave de API para o backend do Notion (usada 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ída para alternativas auto-hospedadas ao Notion). |
OBSIDIAN_API_KEY |
(não definido) | Chave de API para o backend do Obsidian Vault (usada 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ída para um cofre remoto). |
MEMORY_TYPED_DECAY_ENABLED |
false |
Interruptor principal da expiração de memória tipada TV6. Adesão opcional (desativado por padrão) — a varredura exclui memórias expiradas. Quando desativado, access_count/last_accessed_at são apenas telemetria e nada é excluído. |
MEMORY_TYPED_DECAY_EPISODIC_DAYS |
30 |
TTL (em dias) após o qual uma memória episodic não utilizada expira. 0 também torna as memórias episódicas imunes. Tipos duráveis (factual/procedural/semantic) são sempre imunes. O relógio de expiraçã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 à expiração, independentemente do tipo. 0 desativa a imunidade por acesso. |
MEMORY_TYPED_DECAY_SWEEP_INTERVAL |
0 (desativado) |
Intervalo (em segundos) da varredura periódica opcional de expiração em src/lib/memory/typedDecay.ts. 0/não definido = sem varredura periódica. Exige adesão dupla: também requer MEMORY_TYPED_DECAY_ENABLED=true. |
OMNIROUTE_STRICT_SYSTEM_PROVIDERS |
(não definido) | IDs de provedores separados por vírgulas (sem diferenciação entre maiúsculas e minúsculas) que aceitam uma mensagem system somente no índice 0 (src/lib/memory/injection.ts). Para eles, a inserção de memória no meio do array, segura para cache, não é segura em conversas de vários turnos; portanto, a memória é mesclada/adicionada no início como a mensagem de sistema inicial. O padrão inclui apenas xiaomi-mimo/mimo; estenda para endpoints auto-hospedados compatíveis com OpenAI (por exemplo, Qwen3.5+/3.6) cujo template de chat imponha a mesma restrição de uma única mensagem de sistema inicial. |
Exemplo de Docker com pouca RAM
Seção intitulada “Exemplo de Docker com pouca RAM”128 destina-se apenas ao painel. Agentes de programação com esse heap apresentam FATAL ERROR durante solicitações /v1/responses longas. Não use este exemplo como gateway para Claude/Codex/Grok.
OMNIROUTE_MEMORY_MB=128PROMPT_CACHE_MAX_SIZE=20PROMPT_CACHE_MAX_BYTES=524288 # 512 KBSEMANTIC_CACHE_MAX_SIZE=25SEMANTIC_CACHE_MAX_BYTES=1048576 # 1 MBSTREAM_HISTORY_MAX=1018. Sincronização de preços
Seção intitulada “18. Sincronização de preços”Sincronização automática dos dados de preços dos modelos a partir de fontes externas.
| Variável | Padrão | Arquivo-fonte | 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 de ELO da Arena
Seção intitulada “Sincronização de ELO da Arena”| Variável | Padrão | Arquivo-fonte | Descrição |
|---|---|---|---|
ARENA_ELO_SYNC_ENABLED |
true |
src/shared/constants/featureFlagDefinitions.ts |
Sincronização periódica do ELO do ranking da Arena AI, configurável pelas flags de recursos do Dashboard ou com false para desativá-la. |
MODELS_CATALOG_PREFIX_MODE |
dual |
src/shared/constants/featureFlagDefinitions.ts, src/app/api/v1/models/catalog.ts |
Forma do prefixo usada para IDs de modelos em GET /v1/models. dual anuncia tanto o prefixo curto do alias quanto o prefixo canônico do provedor para cada modelo (compatibilidade retroativa — aproximadamente dobra o catálogo); alias emite um ID por modelo; canonical emite apenas o prefixo completo do ID do provedor (os provedores cujo alias já corresponde ao ID canônico mantêm sua única entrada). Os clientes podem sobrescrever essa configuração por solicitação com ?prefix=alias. Consulte API_REFERENCE. |
ARENA_ELO_SYNC_INTERVAL |
86400 (24h) |
src/lib/arenaEloSync.ts |
Intervalo de sincronização em segundos. |
Provedor do Playground PromptQL (não oficial/experimental)
Seção intitulada “Provedor do Playground PromptQL (não oficial/experimental)”Ponte de sessão GraphQL obtida por engenharia reversa para prompt.ql.app (src/shared/constants/providers/web-cookie.ts). Tudo é opcional — os valores padrão apontam para os endpoints públicos do playground; sobrescreva-os apenas para uma implantação do PromptQL auto-hospedada ou alternativa.
| Variável | Padrão | Arquivo-fonte | Descrição |
|---|---|---|---|
PROMPTQL_GRAPHQL_ENDPOINT |
https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql |
open-sse/executors/promptql.ts |
Endpoint GraphQL usado 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 usado para consultar o saldo/uso de créditos. |
PROMPTQL_TOKEN_REFRESH_URL |
https://auth.pro.ql.app/ddn/project/token |
open-sse/executors/promptql.ts |
Endpoint usado para a atualização de token por melhor esforço. |
PROMPTQL_POLL_TIMEOUT_MS |
180000 |
open-sse/executors/promptql.ts |
Tempo máximo (ms) para consultar thread_events antes de atingir o tempo limite. |
Provedor Web do HyperAgent (Não oficial/Experimental)
Seção intitulada “Provedor Web do HyperAgent (Não oficial/Experimental)”Ponte de sessão submetida a engenharia reversa para hyperagent.com (src/shared/constants/providers/web-cookie.ts). Opcional — o padrão aponta para o endpoint público de cobrança/uso; substitua-o apenas para uma implantação auto-hospedada/alternativa do HyperAgent.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
HYPERAGENT_USAGE_URL |
https://hyperagent.com/api/settings/billing/usage |
open-sse/services/usage/hyperagent.ts |
Endpoint usado para buscar blocos de créditos de cobrança/uso. |
Cotas de uso do Kilo Code
Seção intitulada “Cotas de uso do Kilo Code”Consulta do saldo pessoal em USD e do uso do Kilo Pass para o provedor Kilo Code. Opcional — o padrão aponta para a API pública do Kilo; substitua-o apenas para um relay/fixture de teste. A autenticação usa o token de acesso OAuth existente da conexão.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
KILO_API_URL |
https://api.kilo.ai |
open-sse/services/usage/kilocode.ts |
URL base usada para buscar o saldo pessoal do Kilo Code e o uso do Kilo Pass. |
Provedor Web do Adobe Firefly (Não oficial/Experimental)
Seção intitulada “Provedor Web do Adobe Firefly (Não oficial/Experimental)”Atualização de sessão controlada pelo navegador para o provedor web do Adobe Firefly
(open-sse/services/adobeFireflyBrowserLogin.ts, open-sse/services/adobeFireflySession.ts,
open-sse/services/adobeFireflyClient.ts). Opcional — todos os padrões são ajustados para uma instalação
normal em desktop.
Removido em #9255. O antigo runtime do Chrome conectado via CDP (adobeFireflyChromeRuntime.ts) foi substituído por um serviço de login via navegador do Playwright, e seus parâmetros de configuração não existem mais. As variáveis ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART, além de ADOBE_FIREFLY_LOGIN_WAIT_MS e ADOBE_FIREFLY_FORTER_WAIT_MS, não são lidas em nenhum lugar da base de código — defini-las não produz efeito.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
ADOBE_FIREFLY_CHROME_HEADLESS |
0 |
open-sse/services/adobeFireflyBrowserLogin.ts |
Defina como 1 para usar o Chrome verdadeiramente headless (sabidamente incompatível com a geração; apenas para depuração). |
ADOBE_FIREFLY_BROWSER_REFRESH |
1 |
open-sse/services/adobeFireflySession.ts |
Ativa/desativa o aquecimento proativo do navegador. 0 desativa o aquecimento proativo (a recuperação de erro 408 no meio do lote ainda se aplica). |
ADOBE_FIREFLY_SESSION_DISK |
1 |
open-sse/services/adobeFireflySession.ts |
Defina como 0 para desativar a persistência da sessão do Adobe Firefly em disco. |
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS |
(não definido) | open-sse/services/adobeFireflySession.ts |
Intervalo mínimo (ms) imposto entre envios sucessivos, substituindo o padrão integrado. |
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS |
(não definido) | open-sse/services/adobeFireflySession.ts |
Intervalo adicional (ms) aplicado após um lote bem-sucedido, substituindo o padrão integrado. |
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS |
(não definido) | open-sse/services/adobeFireflyClient.ts |
Atraso base (ms) antes de enviar uma solicitação de geração, substituindo o padrão integrado. |
19. Sincronização de modelos (Dev)
Seção intitulada “19. Sincronização de modelos (Dev)”| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
MODELS_DEV_SYNC_ENABLED |
(não definido) | src/lib/modelsDevSync.ts |
Substituição explícita para a sincronização de preços do models.dev. Não definido = respeita Configurações > IA (modelsDevSyncEnabled). 0/false/off/no prevalece sobre o banco de dados e ignora tanto a sincronização periódica quanto as varreduras SQL/JSON de getModelsDevPricing() (recuperação quando o painel fica travado no mesmo loop de eventos). 1/true/on/yes força a ativação da sincronização. Salvar/limpar preços ainda chama backupDbFile("pre-write"), que não realiza nenhuma operação durante a limitação de 60 minutos ou quando DISABLE_SQLITE_AUTO_BACKUP está definido. |
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 (em segundos) do reconciliador autocorretivo da janela de contexto (5004): fixa as janelas declaradas pelo provedor, obtidas pela descoberta em /models, como substituições auto:discovery quando divergem do catálogo. Defina como 0 para desativar. Reutiliza dados já sincronizados (sem nova busca); nunca sobrescreve substituições manual. |
20. Configurações específicas do provedor
Seção intitulada “20. Configurações específicas do provedor”| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OPENROUTER_CATALOG_TTL_MS |
86400000 (24h) |
src/lib/catalog/openrouterCatalog.ts |
TTL do cache do catálogo de modelos do OpenRouter. |
MODEL_CATALOG_INCLUDE_NAMES |
true |
src/shared/constants/featureFlagDefinitions.ts |
Inclui campos name fáceis de exibir nas respostas de /v1/models. Desative para clientes que esperam apenas IDs. |
CATALOG_BUILD_TIMEOUT_MS |
8000 (8s) |
src/app/api/v1/models/catalogCache.ts |
Limite de espera do caminho frio para uma reconstrução agrupada do catálogo de GET /v1/models (#12627). Em caso de timeout, a última resposta 200 válida é fornecida quando disponível. |
OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS |
2592000000 (30 dias) |
src/lib/db/models/activeSyncedCatalog.ts |
Tempo após o qual a lista sincronizada de modelos de uma conexão deixa de ser considerada autoritativa para o roteamento e passa a recorrer ao registro em caso de falha (#12849). Linhas sem registro de data/hora são consideradas desatualizadas. |
NANOBANANA_POLL_TIMEOUT_MS |
120000 |
open-sse/handlers/imageGeneration.ts |
Tempo máximo de espera para trabalhos de geração de imagens do NanoBanana. |
NANOBANANA_POLL_INTERVAL_MS |
2500 |
open-sse/handlers/imageGeneration.ts |
Frequência de consulta do status de trabalhos do NanoBanana. |
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS |
8000 |
open-sse/services/adobeFireflyUpscale.ts |
Atraso base do backoff exponencial para novas tentativas de envio de ampliação ao Adobe Firefly. |
AWS_REGION |
(não definido) | src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts |
Região usada para construir endpoints do AWS Bedrock (Kiro, áudio). |
AWS_DEFAULT_REGION |
(não definido) | src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts |
Valor alternativo 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 desktop usado pelo executor do Cloudflare AI Playground quando a verificação de impressão digital no modo headless 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 usada pelo implantador do relay do Workers para o pool de proxies (#4640 / 9router#1360). |
NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT |
omniroute-relay |
src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx |
Nome padrão do projeto de worker sugerido no modal “Deploy Relay” do pool 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 relay do Cloudflare Workers na guia Pool de Proxies. |
CLOUDFLARED_BIN |
detecçã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 (padrão), quic ou auto. |
CLOUDFLARED_CONFIG |
(não definido) | src/lib/cloudflaredTunnel.ts |
Caminho para um config.yml do cloudflared gerenciado localmente (com tunnel:, credentials-file: e ingress:). Quando definido, o OmniRoute executa tunnel --config <path> run (túnel nomeado) em vez de um túnel rápido efêmero. |
CLOUDFLARED_HOSTNAME |
(do ingresso da configuração) | src/lib/cloudflaredTunnel.ts |
Substituição para o nome de host público do túnel nomeado (por exemplo, ai.example.com), informado como publicUrl/apiUrl. Quando não definido, ele é lido do primeiro nome de host 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 usada pelo implantador de relay do pool de proxies (#4643 / 9router#1437). |
NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT |
omniroute-deno-relay |
src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx |
Nome padrão do aplicativo Deno Deploy sugerido no modal “Implantar Relay” do pool 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 na aba Pool de Proxies. |
SEARCH_CACHE_TTL_MS |
300000 (5 min) |
open-sse/services/searchCache.ts |
TTL do cache de respostas da API de pesquisa (Perplexity, Brave etc.). |
ENABLE_CC_COMPATIBLE_PROVIDER |
false |
src/shared/utils/featureFlags.ts |
Exibe a interface experimental do provedor compatível com CC para relays exclusivos do Claude Code. |
NINEROUTER_HOST |
127.0.0.1 |
open-sse/executors/ninerouter.ts |
Substitui o host 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 |
Host de vinculação do proxy WebSocket do serviço incorporado (somente loopback por padrã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 |
Host 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 alternativa do plano de dados quando a configuração cliproxyapi_api_key estiver ausente. |
CLIPROXYAPI_MANAGEMENT_KEY |
(vazio) | src/lib/services/cliproxyAccountHealth.ts |
Chave de gerenciamento para leituras da integridade da conta em uma instância CLIProxyAPI gerenciada 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 host na qual o docker-compose publica o sidecar cliproxyapi (#12578). Seu volume de dados contém credenciais OAuth/API do provedor, e a imagem fixada não oferece uma substituição de api-keys do plano de dados baseada em variáveis de ambiente (apenas um config.yaml montado); portanto, 0.0.0.0 expõe um serviço que contém credenciais para 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 127.0.0.1). |
OPENWA_SERVICE_PORT |
8323 |
src/lib/services/bootstrap.ts |
Substitui a porta na qual o daemon incorporado open-wa (automação do WhatsApp Web) escuta (sempre 127.0.0.1). |
DARIO_HOST |
127.0.0.1 |
open-sse/executors/dario.ts |
Host de vinculação/conexão do serviço incorporado Dario (somente loopback por padrã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 |
Host de vinculação/conexão do serviço incorporado Dario (somente loopback por padrã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 host adicionais, separados por vírgulas, tratados como “locais” (nomes de serviços do Docker etc.). |
ENABLE_CC_COMPATIBLE_PROVIDER destina-se apenas a relays de terceiros que aceitam clientes do Claude Code
exclusivamente. O OmniRoute reescreve as solicitações para que esses relays as aceitem. Se você deseja apenas usar a
CLI do Claude Code ou não tem certeza do que são esses relays, mantenha esta opção desativada e adicione um provedor
compatível com a Anthropic em seu lugar.
21. Integridade dos Proxies
Seção intitulada “21. Integridade dos Proxies”| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
PROXY_FAST_FAIL_TIMEOUT_MS |
2000 |
src/lib/proxyHealth.ts |
Tempo limite da verificação de integridade com falha rápida. |
PROXY_LATENCY_WINDOW_HOURS |
3 |
src/lib/db/proxies.ts |
Janela de tempo (em horas) para calcular a latência média dos proxies candidatos na estratégia de pool otimizada para latência. |
PROXY_HEALTH_CACHE_TTL_MS |
30000 |
src/lib/proxyHealth.ts |
TTL do cache dos resultados da verificação de integridade. |
PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS |
2000 |
src/lib/proxyHealth.ts |
TTL do cache para sondagens de integridade de proxy que falharam. Mantenha-o menor que PROXY_HEALTH_CACHE_TTL_MS para que tempos limite transitórios de proxy sob alta concorrência sejam testados novamente rapidamente, sem desativar a falha rápida para proxies que realmente estejam inativos. |
PROXY_HEALTH_ENABLED |
true |
src/lib/proxyHealth/scheduler.ts |
Defina como false para desativar o agendador de integridade de proxies em segundo plano, que sonda periodicamente os proxies registrados. |
PROXY_HEALTH_INTERVAL_MS |
600000 |
src/lib/proxyHealth/scheduler.ts |
Intervalo de varredura do agendador de integridade em segundo plano, em ms (mínimo de 60000). |
PROXY_HEALTH_RECOVERY_INTERVAL_MS |
600000 |
src/lib/proxyHealth/scheduler.ts |
Intervalo em ms da rotina de recuperação em segundo plano: define com que frequência proxies anteriormente não íntegros são testados novamente para que um proxy recuperado volte à rotação sem uma reinicialização. Valores abaixo de 60000 retornam ao padrão. |
PROXY_HEALTH_TEST_URL |
https://httpbin.org/ip |
src/lib/proxyHealth/probeTarget.ts |
Destino do teste de acessibilidade usado pelo agendador e pelo endpoint /api/settings/proxies/auto-test. Aponte-o para uma URL interna/auto-hospedada para evitar o padrão público. |
PROXY_HEALTH_TEST_CONCURRENCY |
10 |
src/lib/proxyHealth/probeTarget.ts |
Número de testes iniciados simultaneamente por lote, compartilhado pelo agendador e pelo endpoint /api/settings/proxies/auto-test. Arredondado para baixo, com mínimo de 1 e máximo de 50. |
PROXY_HEALTH_TEST_STAGGER_MS |
100 |
src/lib/proxyHealth/probeTarget.ts |
Atraso em ms entre o início de dois testes dentro de um lote. Sem ele, todo o lote é enviado ao mesmo tempo, e um IP de saída compartilhado pode acionar o limite de requisições do destino. Defina como 0 para desativar o espaçamento; limitado a 5000. |
PROXY_HEALTH_USE_PROVIDER_TARGET |
true |
src/lib/proxyHealth/providerProbeTarget.ts |
Defina como “false” para deixar de testar o host real do provedor atribuído a um proxy (GET /models, sem chave de API) e sempre usar PROXY_HEALTH_TEST_URL em vez disso. |
PROXY_HEALTH_AUTO_DEACTIVATE |
false |
src/lib/proxyHealth/statusPolicy.ts |
Quando false (padrão), os testes automatizados de acessibilidade (o agendador + o botão “Test All” de /api/settings/proxies/auto-test) são somente leitura e nunca alteram o status de um proxy — somente o operador define como ativo/inativo, portanto um teste instável não pode deixar um proxy atribuído indisponível (#6246). Defina como true para restaurar o comportamento legado de testar e definir. |
FLUSH_EMPTY_RETRY_ENABLED |
false |
src/shared/utils/featureFlags.ts |
Flag de recurso opcional (consulte FEATURE_FLAGS.md; uma substituição no banco de dados do painel tem precedência). true (ou 1, yes) repete turnos de streaming traduzidos vazios pelo fluxo normal de credenciais (até STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX tentativas adicionais), em vez de expor uma resposta 200 vazia ou uma resposta 502 com conteúdo vazio. |
PROXY_POOL_EGRESS_OBSERVATION |
false |
src/shared/utils/featureFlags.ts |
Flag de recurso opcional (consulte FEATURE_FLAGS.md; uma substituição no banco de dados do painel tem precedência). true (ou 1, yes) exibe a observação somente leitura da saída do pool abaixo de um pool de proxies no painel (IPs de saída distintos, conexões e o maior número observado por trás de um único IP nas últimas 24 h, com base no log de proxies). Nunca é usada para roteamento. |
PROXY_AUTO_REMOVE |
false |
src/lib/proxyHealth/scheduler.ts |
Defina como true para permitir que o agendador remova proxies automaticamente após falhas consecutivas repetidas. |
PROXY_AUTO_REMOVE_AFTER |
3 |
src/lib/proxyHealth/scheduler.ts |
Número de falhas consecutivas antes que o agendador remova 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 temporariamente (status dead, sem nunca excluir) um proxy após falhas consecutivas repetidas, em vez de removê-lo. Alternativa não destrutiva a PROXY_AUTO_REMOVE: o proxy é imediatamente retirado da resolução de pool/rotação (o filtro de status ativo usado pela resolução do pool de escopo já o exclui) e é reativado automaticamente assim que volta a passar pelas sondagens. Compartilha o limite PROXY_AUTO_REMOVE_AFTER. Se ambas as opções forem true, PROXY_AUTO_REMOVE prevalece. |
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK |
false |
src/shared/constants/featureFlagDefinitions.ts |
Permite que os fluxos de OAuth e validação de provedores ignorem um proxy fixado e se conectem diretamente quando as pré-verificações de acessibilidade do proxy falharem. A precedência efetiva é: substituição no banco de dados de Feature Flags > variável de ambiente > padrão. |
RATE_LIMIT_MAX_WAIT_MS |
30000 (30 s) |
src/lib/resilience/settings.ts |
Orçamento padrão de espera na fila: por quanto tempo uma solicitação pode aguardar um slot do provedor e permanecer na fila antes de ser rejeitada, sem nunca chegar ao upstream. O temporizador é removido assim que a tarefa começa a ser executada — a execução é limitada separadamente por RATE_LIMIT_EXECUTION_MAX_WAIT_MS. A variável de ambiente define apenas o padrão: um resilienceSettings.requestQueue.maxWaitMs persistido e, depois, um rateLimitOverrides.maxWaitMs por conexão têm precedência sobre ela, nessa ordem. |
RATE_LIMIT_EXECUTION_MAX_WAIT_MS |
600000 (10 min) |
open-sse/services/rateLimitManager.ts |
Limite máximo de tempo durante o qual uma solicitação admitida pode permanecer em execução antes que sua reserva de limite de taxa expire — desacoplado do orçamento de espera na fila para que o início lento da busca em gateways não incrementais não resulte em 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 quando essa quantidade de solicitações já estiver na fila. 0 = ilimitado (padrão). |
RATE_LIMIT_AUTO_ENABLE |
(não definido) | open-sse/services/rateLimitManager.ts |
Força a ativação ou desativação da proteção de limite de taxa com ativação automática, independentemente da configuração persistida no Dashboard. 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 |
Rastreamento global opcional, entre requisições, do período de espera de provedores/conexões. DESATIVADO por padrão (sobrepõe-se ao período de espera da conexão/disjuntor do provedor). Aceita true/1/on para habilitar. |
PROVIDER_COOLDOWN_MIN_MS |
5000 |
open-sse/services/providerCooldownTracker.ts |
Período de espera mínimo (ms) antes de uma nova tentativa com um provedor/conexão que falhou. Aumenta exponencialmente com falhas consecutivas. Usado somente quando PROVIDER_COOLDOWN_ENABLED está habilitado. |
PROVIDER_COOLDOWN_MAX_MS |
300000 (5 min) |
open-sse/services/providerCooldownTracker.ts |
Limite máximo do período de espera (ms) antes de uma nova tentativa com um provedor/conexão que falhou. Usado somente quando PROVIDER_COOLDOWN_ENABLED está habilitado. |
STREAM_RECOVERY_ENABLED |
(não definido → desativado) | src/lib/resilience/settings.ts (valor inicial) → open-sse/services/streamRecovery.ts (lógica) |
O que é: recuperação transparente de streams upstream truncados (port do free-claude-code). Retém a janela SSE inicial por até STREAM_RECOVERY.HOLDBACK_MS (750 ms), para que uma interrupção pré-confirmação — que ocorre antes de qualquer byte chegar ao cliente — seja reaberta e repetida de forma invisível. Quando habilitar: upstreams instáveis/que frequentemente truncam com 0 bytes no início do stream; mantenha DESATIVADO se não puder aceitar até 750 ms adicionais no tempo até o primeiro token em cada stream. Aceita true/1/on. Define o valor inicial da configuração persistente de Resiliência; depois que definida, a configuração do Dashboard prevalece. |
STREAM_RECOVERY_MIDSTREAM_ENABLED |
(não definido → desativado) | src/lib/resilience/settings.ts (valor inicial) → open-sse/services/streamRecovery.ts (lógica) |
O que é: continuação no meio do stream (Fase 4.4) — após uma truncagem pós-confirmação (os bytes já chegaram ao cliente), faz uma nova requisição usando o texto parcial como prefill do assistente e concatena o sufixo ausente. Somente para streams de texto simples compatíveis com OpenAI; nunca é acionada enquanto uma chamada de ferramenta está em andamento. Quando habilitar: gerações longas que são interrompidas no meio da resposta, caso você aceite que a parte final recuperada chegue de uma só vez, em vez de token por 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.ts → open-sse/services/throughputWatchdog.ts |
Watchdog opcional de saída útil para streams ativos. Detecta streams que continuam enviando chunks, mas permanecem abaixo da taxa configurada de saída do assistente; heartbeats, eventos de uso, deltas vazios e fases de ferramenta/raciocínio não se passam por progresso. Separado dos timeouts por inatividade e de prazo máximo. |
STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS |
30000 |
src/lib/resilience/settings/normalize.ts |
Período de tolerância antes da avaliação da taxa de transferência, limitado a 0–600000 ms. |
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS |
30000 |
src/lib/resilience/settings/normalize.ts |
Janela móvel de saída útil, limitada a 1000–600000 ms; é necessária uma janela completa antes do cancelamento. |
STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND |
4 |
src/lib/resilience/settings/normalize.ts |
Taxa mínima, em bytes UTF-8, da saída do assistente (proxy conservador de tokens), limitada a 1–1000000. |
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 1–1000000 bytes. |
HEALTHCHECK_STAGGER_MS |
3000 |
src/lib/tokenHealthCheck.ts |
Intervalo de escalonamento (ms) entre as verificações de integridade dos tokens dos provedores durante a inicialização. |
HEALTHCHECK_JITTER_MIN_MS |
500 |
src/lib/tokenHealthCheck.ts |
Jitter aleatório mínimo (ms) adicionado a HEALTHCHECK_STAGGER_MS entre as verificações de integridade dos tokens dos provedores, para evitar rajadas (Problema nº 1220). |
HEALTHCHECK_JITTER_MAX_MS |
5000 |
src/lib/tokenHealthCheck.ts |
Jitter aleatório máximo (ms) adicionado a HEALTHCHECK_STAGGER_MS entre as verificações de integridade dos tokens dos provedores, para evitar rajadas (Problema nº 1220). |
HEALTHCHECK_BATCH_SIZE |
20 |
src/lib/tokenHealthCheck.ts |
Tamanho do lote de verificações simultâneas para a varredura de integridade dos tokens na inicialização; valores maiores verificam mais conexões em paralelo, enquanto valores menores reduzem a carga em rajadas (Problema nº 7875, regressão do nº 7719). |
REQUEST_RETRY |
2 |
src/sse/services/cooldownAwareRetry.ts |
Número de novas tentativas automáticas em respostas de espera no escopo do modelo antes de retornar o erro ao cliente. |
MAX_RETRY_INTERVAL_SEC |
30 |
src/sse/services/cooldownAwareRetry.ts |
Intervalo máximo de recuo (segundos) entre novas tentativas após uma espera. Limitado por esse valor, independentemente do Retry-After do upstream. |
HEADROOM_URL |
http://localhost:8787 |
src/lib/headroom/detect.ts |
URL do proxy de economia de tokens Headroom. Por padrão, o ciclo de vida do painel (api/headroom/*) inicia uma CLI headroom-ai local na interface de loopback; sobrescreva apenas para apontar para um proxy sidecar externo no Docker. |
Constantes de ajuste da recuperação de stream
Seção intitulada “Constantes de ajuste da recuperação de stream”O comportamento de retenção da recuperação é ajustado por constantes fixas no código em
open-sse/config/constants.ts (STREAM_RECOVERY), mostradas aqui para referência —
alterá-las exige uma edição no código, não uma variável de ambiente:
STREAM_RECOVERY.HOLDBACK_MS = 750— por quanto tempo a janela SSE inicial é retida para que um truncamento antecipado possa ser repetido antes que qualquer byte seja enviado ao cliente.STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536— limite rígido da janela retida; efetua o envio (flush + passagem direta) assim que essa quantidade de bytes for acumulada, independentemente do temporizador.STREAM_RECOVERY.EARLY_RETRY_MAX = 4— número máximo de reaberturas transparentes do stream upstream enquanto a retenção ainda não tiver sido enviada.
Limite de taxa por janela deslizante e por provedor (sem variável de ambiente): o fallback de limite de taxa por janela deslizante e por provedor, portado do FCC, existe no código (
open-sse/services/providerDefaultRateLimit.ts, conectado por meio deopen-sse/services/rateLimitManager.ts), mas é distribuído com um mapa padrão vazio e atualmente não possui uma variável de ambiente para operadores — ele é habilitado apenas por meio de um hook de teste / uma edição no código. Intencionalmente, ele não está listado na tabela acima. O limitador do relay por(token, IP)que possui um parâmetro de configuração éRELAY_IP_PER_MINUTE(§3 Rede e portas).
22. Depuração
Seção intitulada “22. Depuração”[!CAUTION] Estas variáveis produzem saída detalhada e podem vazar dados confidenciais. Nunca as habilite em produção.
| Variável | Padrão | Arquivo-fonte | Descrição |
|---|---|---|---|
CURSOR_DEBUG |
(não definida) | open-sse/executors/cursor.ts |
Defina como 1 para habilitar logs detalhados do executor Cursor (blocos SSE decodificados 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 arquivo opcional que recebe blocos brutos decodificados 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 Cursor. |
CURSOR_KV_GRACE_MS |
2000 |
open-sse/executors/cursor.ts |
Janela de tolerância (ms) após um terminador flexível composer kv_after_text quando ainda há bytes no buffer — concede tempo para que uma chamada de ferramenta exec_mcp posterior conclua seu quadro. |
CURSOR_TOOL_DIRECTIVE |
habilitada (!== "0") |
open-sse/executors/cursor.ts |
Diretiva de confirmação de ferramenta que faz com que o composer-2.5 emita chamadas de ferramenta de forma confiável. Defina como 0 para desabilitar. |
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 prompt do sistema definido pelo operador e anexado à mensagem do sistema APÓS a tradução (injeção pós-tradução), alcançando os caminhos codex/Responses e /v1/messages. Também é usado como prefixo de diretiva removido de blocos de preâmbulo do sistema repetidos na saída. Deixe-a não definida para desabilitar. |
OMNIROUTE_STRIP_SYSTEM_PREAMBLE |
0 (desativada) |
open-sse/translator/response/openai-to-claude.ts, open-sse/utils/directivePreambleStripper.ts |
Defina como 1 para remover blocos de preâmbulo do prompt do sistema repetidos no início de um fluxo openai→claude. Desativada por padrão — as heurísticas são moldadas para prosa em inglês e alteram o payload da resposta; portanto, uma resposta que legitimamente comece com uma seção desse tipo a perderia. |
CURSOR_IMAGE_FETCH_TIMEOUT_MS |
15000 |
open-sse/utils/cursorImages.ts |
Tempo limite de busca por imagem (ms) para entradas remotas de visão image_url. |
CURSOR_STATE_DB_PATH |
(detectado) | open-sse/utils/cursorVersionDetector.ts |
Substitui a consulta ao banco de dados de estado do Cursor IDE usada para detectar a versão do IDE. |
CURSOR_AGENT_CLI_VERSION |
(detectar / fixar) | open-sse/utils/cursorAgentCliVersion.ts |
ID da compilação da Agent CLI (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 usado na geração de imagens. Quando não definida, o manipulador usa providerSpecificData.agentBin e depois PATH. |
CURSOR_IMG_TIMEOUT_MS |
210000 |
open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
Tempo decorrido máximo por imagem (ms) para tarefas de imagem do Cursor Agent. |
CURSOR_IMG_MAX_CONCURRENT |
2 |
open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
Limite de concorrência do acesso compartilhado para tarefas de imagem do Cursor. |
CURSOR_IMG_MODEL |
solicitação / auto |
open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts |
Substitui a opção --model da Cursor CLI para tarefas de imagem. |
UC_IMAGE_POLL_INTERVAL_MS |
2000 |
open-sse/handlers/imageGeneration/providers/ucImage.ts |
Cadência de consulta do resultado da geração de imagens da UC (uncensored.com), em ms. |
UC_IMAGE_POLL_TIMEOUT_MS |
60000 |
open-sse/handlers/imageGeneration/providers/ucImage.ts |
Tempo decorrido máximo (ms) para consultar o resultado da geração de imagens da UC. |
UC_VIDEO_POLL_INTERVAL_MS |
3000 |
open-sse/handlers/videoGeneration/providers/ucVideo.ts |
Cadência de consulta do resultado da geração de vídeos da UC (uncensored.com), em ms. |
UC_VIDEO_POLL_TIMEOUT_MS |
300000 |
open-sse/handlers/videoGeneration/providers/ucVideo.ts |
Tempo decorrido máximo (ms) para consultar o resultado da geração de vídeos da UC. |
CURSOR_DATA_DIR |
(detectado) | open-sse/utils/cursorAgentCliVersion.ts |
Substitui o diretório de dados da Cursor Agent CLI (…/versions/<id>); é a mesma variável usada pelo agente oficial. |
CURSOR_TOKEN |
(não definida) | scripts/ad-hoc/cursor-tap.cjs |
Token bearer direto do Cursor usado pelas ferramentas de desenvolvimento. |
OMNIROUTE_LOG_REQUEST_SHAPE |
desabilitada (ativação opcional por meio de "1") |
src/app/api/v1/chat/completions/route.ts |
Registra marcadores de tipo/tamanho de conteúdo para payloads grandes de chat quando "1" está definido. Desativada por padrão para reduzir o ruído dos logs. |
DEBUG_RESPONSES_SSE_TO_JSON |
(não definida) | open-sse/handlers/responseTranslator.ts |
Defina como true para registrar detalhes da tradução de SSE→JSON da Responses API. |
DEBUG_CLAUDE_NONSTREAM |
(não definida) | open-sse/handlers/responseTranslator.ts |
Defina como true para expor blocos textContent vazios no caminho de tradução de respostas do Claude (somente para depuração). |
NEXT_PUBLIC_OMNIROUTE_E2E_MODE |
(não definida) | Estrutura de testes E2E | Defina como true para habilitar o modo de teste E2E (autenticação flexibilizada, hooks de teste). |
23. Integração com o GitHub
Seção intitulada “23. Integração com o GitHub”Permite que os usuários relatem problemas diretamente pelo Dashboard.
| Variável | Padrão | Arquivo 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 escopo issues:write. |
GITHUB_TOKEN |
(não definido) | triagem de problemas / auxiliares do agente na nuvem | Token genérico de acesso ao GitHub usado como alternativa para GITHUB_ISSUES_TOKEN e utilizado pelos auxiliares do agente na nuvem em src/lib/cloudAgent/*. |
Cenários de Implantação
Seção intitulada “Cenários de Implantação”Para obter orientações de SRE sobre o backend de relay (comportamento de ts/bifrost/auto, posicionamento de 9router em comparação com CLIProxyAPI e estratégia de fallback para alta vazão), consulte Estratégia de Backend de Relay.
Desenvolvimento Local Mínimo
Seção intitulada “Desenvolvimento Local Mínimo”JWT_SECRET=$(openssl rand -base64 48)API_KEY_SECRET=$(openssl rand -hex 32)INITIAL_PASSWORD=dev123PORT=20128NODE_ENV=developmentProdução com Docker
Seção intitulada “Produção com Docker”JWT_SECRET=<gerado>API_KEY_SECRET=<gerado>INITIAL_PASSWORD=<gerado>STORAGE_ENCRYPTION_KEY=<gerado>DATA_DIR=/dataPORT=20128API_PORT=20129NODE_ENV=productionAUTH_COOKIE_SECURE=trueREQUIRE_API_KEY=trueNEXT_PUBLIC_BASE_URL=https://omniroute.example.comBASE_URL=http://localhost:20128OMNIROUTE_MEMORY_MB=8192CORS_ORIGIN=https://your-frontend.example.comAmbiente Isolado / CI
Seção intitulada “Ambiente Isolado / CI”JWT_SECRET=test-jwt-secret-for-ciAPI_KEY_SECRET=test-api-key-secret-for-ciINITIAL_PASSWORD=testpassNODE_ENV=productionOMNIROUTE_DISABLE_BACKGROUND_SERVICES=trueAPP_LOG_TO_FILE=falseVPS com Proxy Reverso (nginx + Cloudflare)
Seção intitulada “VPS com Proxy Reverso (nginx + Cloudflare)”JWT_SECRET=<gerado>API_KEY_SECRET=<gerado>STORAGE_ENCRYPTION_KEY=<gerado>PORT=20128AUTH_COOKIE_SECURE=trueREQUIRE_API_KEY=trueNEXT_PUBLIC_BASE_URL=https://omniroute.example.comBASE_URL=http://127.0.0.1:20128CORS_ORIGIN=https://omniroute.example.comENABLE_TLS_FINGERPRINT=trueCLI_COMPAT_ALL=124. Sandbox de Skills (v3.8.0+)
Seção intitulada “24. Sandbox de Skills (v3.8.0+)”Limites e controles de segurança aplicados quando o framework de Skills (src/lib/skills/) executa automações definidas pelo usuário em um ambiente isolado.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
SKILLS_SANDBOX_TIMEOUT_MS |
10000 (10 s) |
src/lib/skills/builtins.ts |
Tempo limite de relógio por execução para código de skill no sandbox. Limite rígido; qualquer execução mais longa é encerrada. |
SKILLS_EXECUTION_TIMEOUT_MS |
(usa SKILLS_SANDBOX_TIMEOUT_MS como fallback) |
src/lib/skills/ |
Tempo limite da orquestração de skills em alto nível. Defina um valor maior que SKILLS_SANDBOX_TIMEOUT_MS para permitir fluxos de trabalho com várias etapas. |
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 arquivo 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 dentro de uma skill. |
SKILLS_MAX_SANDBOX_OUTPUT_CHARS |
100000 |
src/lib/skills/builtins.ts |
Limite rígido de caracteres de stdout/stderr retornados por uma invocação do sandbox. |
SKILLS_SANDBOX_NETWORK_ENABLED |
false |
src/lib/skills/builtins.ts |
Defina como 1/true para permitir acesso de saída à rede de dentro do sandbox. Por segurança, o padrão é isolado. |
SKILLS_ALLOWED_SANDBOX_IMAGES |
(vazio) | src/lib/skills/builtins.ts |
Lista de permissões, separada por vírgulas, das imagens de contêiner permitidas para execução no sandbox. Vazio significa somente o padrão integrado. |
SKILLS_SANDBOX_DOCKER_IMAGE |
(padrão integrado) | src/lib/skills/ |
Imagem de contêiner usada ao iniciar um sandbox baseado em Docker. Sobrescreva 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 contêiner para o isolamento de skills: auto | docker | apple | wsl | orbstack | podman. auto seleciona o melhor runtime instalado para cada sistema operacional do host (Apple Container/OrbStack no macOS, WSL Container no Windows, Podman no Linux), usando Docker como fallback. |
[!CAUTION] Ativar
SKILLS_SANDBOX_NETWORK_ENABLED=trueabre um caminho de saída para código arbitrário de skills. Em implantações compartilhadas, use essa opção em conjunto comOUTBOUND_SSRF_GUARD_ENABLED=truee uma política rigorosa deCORS_ORIGIN/proxy.
25. Cotas de provedores, túneis, backups e outros itens de runtime
Seção intitulada “25. Cotas de provedores, túneis, backups e outros itens de runtime”Endpoints de cotas de provedores, túneis de rede (Tailscale, Ngrok, proxy de depuração MITM), o pool de saída 1Proxy, backups de banco de dados e pequenas substituições específicas por recurso referenciadas pela camada de execução ou por scripts.
| Variável | Padrão | Arquivo-fonte | Descrição |
|---|---|---|---|
REDIS_URL |
redis://localhost:6379 |
src/shared/utils/rateLimiter.ts |
String de conexão do Redis para o backend do limitador de taxa. |
ALIBABA_CODING_PLAN_HOST |
(host de produção) | open-sse/services/bailianQuotaFetcher.ts |
Substitui o host usado para buscar as cotas do plano de codificação do Alibaba Bailian. |
ALIBABA_CODING_PLAN_QUOTA_URL |
derivada do host | open-sse/services/bailianQuotaFetcher.ts |
Substituição da URL completa de cotas do Alibaba Bailian. |
QWEN_CLOUD_COOKIE |
(não definido) | open-sse/services/qwenTokenPlanQuotaFetcher.ts |
Cookie de sessão do console para o gateway de cotas do Token Plan pessoal do Qwen Cloud / Model Studio (a chave da API de inferência não consegue acessá-lo). Copie todo o cabeçalho de requisição Cookie — ele 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 vinculado à sessão; prefira o campo qwenCloudCookie por conexão no Dashboard. |
QWEN_CLOUD_SEC_TOKEN |
(não definido) | open-sse/services/qwenTokenPlanQuotaFetcher.ts |
Substituição manual de sec_token para o gateway do console do Token Plan. É sensível; quando não definido, o buscador o resolve a partir do HTML do Dashboard usando o cookie. |
QWEN_TOKEN_PLAN_HOST |
https://cs-data.qwencloud.com |
open-sse/services/qwenTokenPlanQuotaFetcher.ts |
Substituição do host do gateway para o buscador de cotas do Token Plan pessoal (por exemplo, bailian-singapore-cs.alibabacloud.com para o console do Model Studio). |
QWEN_TOKEN_PLAN_DASHBOARD_URL |
https://home.qwencloud.com/ |
open-sse/services/qwenTokenPlanQuotaFetcher.ts |
URL do Dashboard usada para resolver sec_token a partir do HTML da sessão autenticada. |
ALIBABA_FREE_TIER_VISION_FE_PATH |
/costing-balance/free-quota-image-video |
open-sse/services/alibabaFreeTierQuotaFetcher.ts |
Substituição do caminho do front-end do console para buscar a cota gratuita de visão/mí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 do console para consultar a cota 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 do console para consultar a cota 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 arquivo JSON local que substitui a lista de permissões integrada de modelos de texto do nível gratuito da Alibaba. Usa $DATA_DIR/alibaba-free-tier-allowlist.json como alternativa e, em seguida, config/alibaba-free-tier-allowlist.json. |
CONTEXT_RESERVE_TOKENS |
1024 |
open-sse/services/contextManager.ts |
Tokens reservados para a saída da conclusão ao calcular os limites do prompt. |
CONTEXT_KEEP_LATEST_IMAGES |
2 |
open-sse/services/contextManager.ts |
Quantidade de imagens inline mais recentes a manter ao remover as mais antigas para ajustá-las à janela de contexto (#8560). |
MODEL_ALIAS_COMPAT_ENABLED |
habilitado | open-sse/services/model.ts |
Ativa ou desativa a camada legada de compatibilidade com aliases de modelos usada por clientes mais antigos. |
OMNIROUTE_EMERGENCY_FALLBACK |
habilitado | open-sse/services/emergencyFallback.ts |
Defina como false (ou 0) para desativar o fallback de emergência por esgotamento do orçamento, que redireciona solicitações com falha para o modelo gratuito nvidia/openai/gpt-oss-120b. A precedência efetiva é: substituição no banco de dados de Feature Flags > variável de ambiente > padrão; se não estiver disponível, o serviço usa como fallback o valor bruto da variável de ambiente. |
COMMAND_CODE_CALLBACK_PORT |
(não definido) | src/app/api/providers/command-code/auth/shared.ts |
Porta local usada para callbacks no estilo OAuth provenientes do utilitário de CLI do Command Code. |
COMMAND_CODE_VERSION |
0.33.2 |
open-sse/executors/commandCode.ts |
Valor enviado como o cabeçalho x-command-code-version ao serviço upstream do 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 upstream de uso/cota do Command Code, utilizada pela telemetria do coletor de cotas para smartphones. Substitua-a para usar uma API do Command Code auto-hospedada ou alternativa. |
MITM_LOCAL_PORT |
443 |
src/mitm/server.cjs |
Porta de vinculação 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 upstream (somente para desenvolvimento). |
MITM_IDLE_TIMEOUT_MS |
60000 |
src/mitm/socketTimeouts.ts, src/mitm/server.cjs |
Tempo limite de inatividade do socket (ms) para conexões submetidas a proxy; sockets que permanecerem inativos além desse período serão encerrados para evitar o vazamento de túneis semiabertos. |
BRIDGE_PORT |
20129 |
bin/antigravity-bridge.mjs |
Porta na qual a ponte MITM do Antigravity escuta. |
ROUTER_URL |
http://127.0.0.1:20128/v1/antigravity |
bin/antigravity-bridge.mjs |
Endpoint do roteador para o qual a ponte encaminha o tráfego do Antigravity. |
CERT_DIR |
~/.omniroute/mitm |
bin/antigravity-bridge.mjs |
Diretório que contém server.key/server.crt para o listener TLS da ponte; a ponte é encerrada se qualquer um deles estiver ausente. |
MITM_VERBOSE |
1 |
src/mitm/server.cjs, src/mitm/_internal/bypass.cjs |
Nível de detalhamento dos logs de decisões de roteamento: 0 silencia os logs; valores maiores registram mais decisões de bypass/roteamento. |
MITM_ROOT_CA_ENABLED |
false |
src/mitm/manager.ts |
Defina como true para optar pelo modelo de CA raiz + certificado folha por host (#6684). Instalações novas o recebem automaticamente; instalações com um certificado folha legado confiável preexistente mantêm o certificado SAN fixo legado, a menos que essa opção seja ativada. |
MITM_CERT_MODE |
legacy |
src/mitm/manager.ts, src/mitm/server.cjs |
Definido PELO gerenciador MITM para o processo de proxy iniciado (root-ca | legacy) — reflete a decisão de migração do certificado; não deve ser definido manualmente. |
OMNIROUTE_NO_SUDO |
0 |
src/mitm/systemCommands.ts |
Defina como 1 (verdadeiro) para remover o sudo inicial dos comandos de confiança do certificado MITM — para implantações sem root/em namespaces de usuário nas quais o operador confia manualmente na CA (por exemplo, por meio do mecanismo extra-CA-certs do Node). |
SKIP_ANTIGRAVITY_DNS |
(não definido) | src/mitm/dns/provision.ts |
Defina como true para ignorar completamente o provisionamento de entradas DNS em /etc/hosts para os nomes de host do proxy Antigravity — para contêineres sem sudo/root disponível. |
OMNIROUTE_SKIP_DNS_WRITE |
(não definido) | src/mitm/dns/dnsConfig.ts |
Defina como 1 para não gravar no arquivo hosts ao adicionar/remover entradas DNS — para ambientes de teste em sandbox ou somente 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 fazer com que a instalação/desinstalação da confiança no certificado não realize nenhuma operação, garantindo que a suíte nunca altere o repositório de confiança do SO. Definido automaticamente pela configuração de 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 contra remoções no CHANGELOG (o padrão é o branch base do PR na CI ou o maior release/v*). |
FREE_PROXY_AUTO_SYNC_ENABLED |
false |
src/lib/freeProxyProviders/scheduler.ts |
Defina como true para habilitar o agendador de sincronização automática em segundo plano do pool de proxies gratuitos. Recurso opcional, desabilitado por padrão. |
FREE_PROXY_AUTO_SYNC_INTERVAL_MS |
1800000 |
src/lib/freeProxyProviders/scheduler.ts |
Intervalo de sincronização automática em milissegundos (padrão: 30 min). |
FREE_PROXY_1PROXY_ENABLED |
true |
src/lib/freeProxyProviders/oneproxy.ts |
Habilita a fonte de proxies gratuitos 1proxy. Defina como false para desabilitá-la. |
FREE_PROXY_1PROXY_API_URL |
(consulte oneproxy.ts) | src/lib/freeProxyProviders/oneproxy.ts |
Substituição da URL da API do 1proxy. |
FREE_PROXY_1PROXY_MAX |
500 |
src/lib/freeProxyProviders/oneproxy.ts |
Número máximo de proxies obtidos por sincronização do 1proxy. |
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 |
Habilita a fonte de proxies gratuitos Proxifly. Defina como false para desabilitá-la. |
FREE_PROXY_PROXIFLY_QUANTITY |
100 |
src/lib/freeProxyProviders/proxifly.ts |
Número de proxies a serem obtidos por sincronização do Proxifly. |
FREE_PROXY_PROXIFLY_ANONYMITY |
elite |
src/lib/freeProxyProviders/proxifly.ts |
Filtro de nível de anonimato do Proxifly (elite, anonymous, transparent). |
FREE_PROXY_IPLOCATE_ENABLED |
false |
src/lib/freeProxyProviders/iplocate.ts |
Habilita a fonte de proxies gratuitos do IPLocate. Requer ativaçã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 da URL base da lista de proxies do IPLocate. |
FREE_PROXY_WEBSHARE_ENABLED |
true |
src/lib/freeProxyProviders/webshare.ts |
Habilita a fonte do pool de proxies do Webshare. Defina como false para desabilitá-la; também exige que FREE_PROXY_WEBSHARE_API_KEY esteja definida. |
FREE_PROXY_WEBSHARE_API_KEY |
(nenhum) | src/lib/freeProxyProviders/webshare.ts |
Token da API da conta do Webshare (Authorization: Token <key>). Obrigatório — o provedor permanece desabilitado sem ele. |
FREE_PROXY_WEBSHARE_API_URL |
https://proxy.webshare.io/api/v2/proxy/list/ |
src/lib/freeProxyProviders/webshare.ts |
Substituição da 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 |
Exibe ou oculta o botão Implantar Vercel Relay na guia Pool de Proxies. |
VERCEL_API_BASE |
https://api.vercel.com |
src/app/api/settings/proxy/vercel-deploy/route.ts |
Substituição da URL base da API da Vercel (para testes). |
NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT |
omniroute-relay |
src/app/(dashboard)/…/VercelRelayModal.tsx |
Nome padrão do projeto, preenchido previamente no modal de implantação do Vercel Relay. |
TAILSCALE_BIN |
(detecção automática) | src/lib/tailscaleTunnel.ts |
Caminho explícito para o binário tailscale. |
TAILSCALED_BIN |
(detecçã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 pré-compartilhada do Tailscale para executar tailscale up de forma não interativa/sem interface gráfica (passada por meio de --auth-key=). Quando não definida, o login usa como alternativa a 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 arquivos de backup SQLite mantidos pela limpeza de backups manual/agendada. Os snapshots de migração são endereçados por conteúdo e reutilizados para um estado idêntico do banco de dados; eles não são removidos dentro da janela de migração simultânea. Substitui o valor salvo em Configurações → Retenção de backups do banco de dados. |
DB_BACKUP_RETENTION_DAYS |
0 |
src/lib/db/backup.ts |
Idade máxima (em dias) mantida pela limpeza de backups manual/agendada. 0 desativa a remoção baseada em idade. Os snapshots de migração não são removidos dentro da janela de migração simultânea. Substitui o valor salvo em Configurações → Retenção de backups do banco de dados. |
OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS |
30000 |
src/lib/jobs/backupScheduleJob.ts |
Intervalo de execução (ms) da tarefa no lado do servidor que executa backup-schedule.json. Deve permanecer bem abaixo da granularidade de 1 minuto do cron; valores inferiores a 5000 ou que não possam ser interpretados retornam ao padrão 30000. |
CONTAINER_HOST |
docker |
scripts/check-permissions.sh |
Indicação do runtime de contêiner para a verificação de permissões do ponto de entrada. Defina como podman para qualquer topologia do Podman. Como o contêiner não consegue determinar se o mecanismo é local ou acessado por meio do Podman Machine, o aviso permanece neutro em relação à topologia e aponta para contrib/podman/README.md. |
QUOTA_STORE_DRIVER |
sqlite |
src/lib/quota/storeFactory.ts |
Backend do armazenamento de consumo de compartilhamento de cotas: sqlite (padrão) ou redis. |
QUOTA_STORE_REDIS_URL |
(não definido) | src/lib/quota/storeFactory.ts |
String de conexão do Redis usada quando QUOTA_STORE_DRIVER=redis (por exemplo, redis://localhost:6379). |
QUOTA_SATURATION_THRESHOLD |
0.5 |
src/lib/quota/enforce.ts |
Taxa de saturação do pool (0..1); ao atingi-la ou ultrapassá-la, o pool 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 cota flexível reduz sua prioridade. |
STATUS_SOFT_DEPRIORITIZE_FACTOR |
0.5 |
open-sse/services/combo/autoStrategy.ts |
Multiplicador de pontuação (0..1) aplicado a um provedor esgotado (credits_exhausted/rate_limited) na pontuação de combinação automática quando o corte de cota pré-solicitação está DESATIVADO (#4540). |
QUOTA_CONSUMPTION_RETENTION_DAYS |
14 |
src/lib/db/quotaConsumption.ts |
Janela de retenção (em dias) para os buckets de quota_consumption antes da coleta de lixo (gcQuotaConsumption). |
QUOTA_PREFLIGHT_CUTOFF_ENABLED |
false |
src/lib/resilience/settings.ts |
Recurso opcional (DESATIVADO por padrão): habilita o corte rígido de cota do roteamento automático, que descarta candidatos com pouca cota antes da pontuação. |
OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL |
false |
open-sse/services/autoCombo/virtualFactory.ts |
Recurso opcional (DESATIVADO por padrão): quando um filtro auto/<category>:<tier> não corresponde a nenhum candidato conectado, restaura o comportamento legado de recorrer ao pool completo (não filtrado), em vez de retornar um pool vazio. A configuração padrão DESATIVADA faz com que :free signifique “somente nível gratuito”. |
OMNIROUTE_CHAOS_MAX_PANEL |
5 |
open-sse/services/autoCombo/virtualFactory.ts |
Limite do tamanho do painel (restrito a 1–10) para a variante de transmissão auto/*:chaos — uma solicitação é distribuída para, no máximo, essa quantidade de modelos de provedores distintos. |
OMNIROUTE_CHAOS_MIN_PANEL |
(padrão do mecanismo) | open-sse/services/autoCombo/virtualFactory.ts |
Ajuste do tamanho mínimo do painel encaminhado ao manipulador de transmissão de caos; se não for definido, mantém o padrão do mecanismo. |
OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS |
(padrão do mecanismo) | open-sse/services/autoCombo/virtualFactory.ts |
Tempo limite rígido (ms) para toda a distribuição do painel de caos; se não for definido, mantém o padrão do mecanismo. |
GROK_AUTH_PATH |
~/.grok/auth.json |
open-sse/services/grokQuotaFetcher.ts |
Caminho do auth.json da CLI do Grok usado para consultar a cota 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 CA adicional (PEM) confiável para conexões TLS upstream do AgentBridge. |
INSPECTOR_BUFFER_SIZE |
1000 |
src/mitm/inspector/buffer.ts |
Número máximo de requisições capturadas mantidas no buffer circular do Traffic Inspector. |
INSPECTOR_MAX_BODY_KB |
1024 |
src/mitm/inspector/buffer.ts |
Tamanho máximo do corpo de requisição/resposta capturado (KB) antes do truncamento. |
INSPECTOR_HTTP_PROXY_PORT |
8080 |
src/mitm/inspector/httpProxyServer.ts |
Porta local do proxy HTTP do Traffic Inspector. |
INSPECTOR_HTTP_PROXY_AUTOSTART |
false |
src/mitm/inspector/httpProxyServer.ts |
Inicia automaticamente o proxy HTTP do inspetor durante a inicialização. |
INSPECTOR_TLS_INTERCEPT |
false |
src/lib/inspector/captureState.ts |
Habilita a interceptação TLS (MITM) para o tráfego HTTPS capturado. |
INSPECTOR_LLM_HOSTS_EXTRA |
(não definido) | src/lib/inspector/captureState.ts |
Nomes de host adicionais (separados por vírgulas) tratados como endpoints de LLM para captura. |
INSPECTOR_MASK_SECRETS |
true |
src/mitm/inspector/buffer.ts |
Mascara 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 |
Número de minutos até que a proteção do proxy do sistema reverta automaticamente as configurações de proxy do sistema operacional. |
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 padrão para a ação de “melhorar prompt” do Playground (usa o modelo ativo como fallback quando não definido). |
BIFROST_ENABLED |
1 |
src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Chave geral de desativação do proxy sidecar Bifrost. Quando definida como 0, a rota retorna 503 com o cabeçalho X-Bifrost-Killswitch, e o operador é redirecionado para o caminho TS. Use-a para desativar o sidecar sem reimplantar (incidente no roteador 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 definida, a rota do proxy sidecar Bifrost encaminha o tráfego de /v1/chat/completions para esse gateway Go, em vez de usar o manipulador de relay TS. Não definida → 503 com fallback. A barra final é removida. |
BIFROST_PORT |
8080 |
src/lib/services/bootstrap.ts |
Porta à qual o serviço Bifrost incorporado e supervisionado se vincula (127.0.0.1:<port>) quando o OmniRoute gerencia o ciclo de vida do sidecar Bifrost. O padrão é 8080. |
BIFROST_API_KEY |
(não definido) | src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Chave de API do gateway Bifrost (enviada como Authorization: Bearer ...). Se não estiver definida, a rota espera que a solicitação contenha uma chave de API válida do OmniRoute; essa chave serve apenas para autenticação no gateway. |
BIFROST_STREAMING_ENABLED |
true |
src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Quando verdadeiro, a rota do sidecar Bifrost transmite as respostas via SSE por meio do gateway, em vez de usar o executor de streaming TS. Defina como 0 para forçar respostas JSON sem streaming por meio do gateway. |
BIFROST_TIMEOUT_MS |
30000 |
src/app/api/v1/relay/chat/completions/bifrost/route.ts |
Tempo limite por solicitação ao encaminhar para o gateway Bifrost (ms). Em caso de tempo limite, a rota retorna o caminho de relay TS por meio 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 (usado por scripts que leem a variável de ambiente via OMNIROUTE_*). BIFROST_API_KEY tem precedência quando ambas estão definidas. |
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 (padrão quando o Bifrost não está configurado); auto seleciona o Bifrost quando BIFROST_BASE_URL está definida e BIFROST_ENABLED ≠ 0, com fallback automático para TS se o sidecar estiver inacessível; bifrost força o Bifrost (estrito, sem fallback). Autenticação/limitação de taxa/proteção contra injeção/lista de permissões sempre são 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 aceito 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; durante o período de espera, ele encaminha diretamente para o caminho TS e depois tenta novamente. 0 desativa. Aplica-se somente 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 por HTTPS (equivalente a --tls-cert). Deve ser usado em conjunto com OMNIROUTE_TLS_KEY; o servidor autônomo então encerra o TLS no mesmo listener (wss:// funciona sem alterações). Não definido → HTTP simples. Fornecer apenas o certificado ou a chave, ou um caminho ilegível, registra 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 do HTTPS de omniroute serve (equivalente a --tls-key). Deve ser usado em conjunto com OMNIROUTE_TLS_CERT. Consulte OMNIROUTE_TLS_CERT. |
OMNIROUTE_LOCAL_ENDPOINTS_ENABLED |
0 |
src/lib/security/localEndpoints.ts |
Chave geral para as rotas /api/local/*. Quando não definida ou definida como 0, todas as rotas /api/local/* retornam 503 em produção. Deve ser 1 em implantações fora do loopback para habilitar o inicializador do Redis e iniciadores semelhantes de serviços locais com um clique. Proteção redundante com a classificação de 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 no loopback (por exemplo, o aplicativo para desktop). Quando definido, solicitações provenientes de IPs fora do loopback devem incluir Authorization: Bearer <token>. Obrigatório quando OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 em implantações fora do loopback. |
OMNIROUTE_REDIS_CONTAINER_NAME |
omniroute-redis |
bin/cli/commands/redis.mjs |
Nome do contêiner para o inicializador do Redis com um clique (omniroute redis up). Usado tanto pela CLI quanto pela GUI RedisLauncherPanel. |
OMNIROUTE_REDIS_HOST_PORT |
6379 |
bin/cli/commands/redis.mjs |
Porta do host para o inicializador do Redis com um clique. Altere-a se o host já usar a porta 6379. A porta interna do contêiner permanece 6379. |
OMNIROUTE_REDIS_BIND_HOST |
127.0.0.1 |
bin/cli/commands/redis.mjs |
Interface do host na qual o inicializador do Redis com um clique publica. O inicializador inicia o Redis SEM senha, portanto, associá-lo a 0.0.0.0 disponibiliza um Redis não autenticado para todos os hosts da sua LAN — amplie esse acesso somente se você também definir uma senha na instância por conta própria. |
REDIS_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
Interface do host na qual o docker-compose publica o sidecar Redis (#9286). O Redis do compose é executado sem requirepass; os contêineres do aplicativo o acessam pela rede do compose (redis:6379) — a porta publicada existe apenas para ferramentas executadas no host. 0.0.0.0 expõe um Redis não autenticado para toda a LAN. |
REDIS_PORT |
6379 |
docker-compose.yml |
Porta do host para o sidecar do Redis no Compose. |
APP_BIND_HOST |
127.0.0.1 |
docker-compose.yml, docker-compose.prod.yml |
Interface do host na qual o docker-compose publica as portas do painel/API/WS em tempo real do próprio aplicativo (#12568). Como REQUIRE_API_KEY=false é fornecido como padrão no .env.example, 0.0.0.0 expõe o proxy LLM anônimo /v1 para toda a LAN/WAN — amplie o acesso somente quando REQUIRE_API_KEY=true ou quando um proxy reverso à frente aplicar sua própria autenticação. |
QDRANT_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
Interface do host na qual o docker-compose publica o sidecar de memória Qdrant (#12578). Aplica-se o mesmo raciocínio sobre exposição à LAN que em REDIS_BIND_HOST. |
BIFROST_BIND_HOST |
127.0.0.1 |
docker-compose.yml |
Interface do host na qual o docker-compose publica o sidecar do roteador Bifrost (#12578). Aplica-se o mesmo raciocínio sobre exposição à LAN que em REDIS_BIND_HOST. |
REDIS_KEY_PREFIX |
omniroute: |
src/shared/utils/rateLimiter.ts |
Prefixo de namespace aplicado a todas as chaves Redis do OmniRoute (limitador de taxa, cache de autenticação, armazenamento de cotas, disjuntor de aquecimento). Evita colisões de chaves quando a instância do Redis é compartilhada com outros aplicativos (#11042). |
OMNIROUTE_INTERNAL_SERVICE_TOKEN |
(não definido — mecanismo desabilitado) | src/lib/api/internalServiceAuth.ts |
Segredo compartilhado para chamadas REST internas que preservam a identidade (#9260): componentes do OmniRoute que chamam outras rotas locais do OmniRoute o enviam como x-omniroute-internal-service-token, para que a identidade do chamador original seja preservada. Comparado usando timingSafeEqual. |
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE |
(não definido) | src/lib/api/internalServiceAuth.ts |
Variante em arquivo secreto do token de serviço interno: caminho para um arquivo cujo conteúdo, após a remoção dos espaços em branco nas extremidades, é o token. Consultado somente quando a variável inline não está definida. |
OPENROUTER_PROVIDER_STATS_ENABLED |
true |
src/lib/catalog/openrouterProviderStats.ts |
Enriquece a lista de provedores do painel com estatísticas semanais de classificação do OpenRouter (#9324). Ativado por padrão; defina como false para ignorar completamente a busca em segundo plano (não bloqueante e nunca fatal). |
OPENROUTER_PROVIDER_STATS_TTL_MS |
86400000 (24h) |
src/lib/catalog/openrouterProviderStats.ts |
TTL do cache do snapshot de estatísticas de provedores do OpenRouter, em milissegundos. |
OMNIROUTE_REDIS_IMAGE |
redis:7-alpine |
bin/cli/commands/redis.mjs |
Imagem do Redis usada pelo inicializador do Redis com um clique. Substitua por redis:8-alpine ou por um espelho de registro privado, conforme necessário. |
QDRANT_HOST |
qdrant |
(perfil de cluster opcional) | Nome do host do sidecar do Qdrant quando --profile memory está ativo. O padrão aponta para o nome do serviço qdrant na rede; substitua-o para uma implantação externa. Consumido apenas 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. Usada por bibliotecas 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 local autenticada. Vazio → nenhum cabeçalho api-key é enviado. |
QDRANT_COLLECTION |
omniroute-memory |
(perfil de cluster opcional) | Nome da coleção para os embeddings da memória de conversas do OmniRoute. Criada na primeira execução com as dimensões definidas por QDRANT_VECTOR_SIZE. |
QDRANT_EMBEDDING_MODEL |
text-embedding-3-small |
(perfil de cluster opcional) | Nome do modelo de embedding padrão registrado nos metadados da coleção do Qdrant. Os embeddings reais são gerados pelo provedor indicado pelo campo embeddingModel nas configurações do OmniRoute. |
QDRANT_VECTOR_SIZE |
1536 |
(perfil de cluster opcional) | Dimensão do vetor de embedding. Deve corresponder ao modelo usado 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. Valor maior = construção mais lenta, pesquisa mais rápida. |
OMNIROUTE_ROTATION_ENABLED |
true |
open-sse/services/rotationConfig.ts |
Chave mestra para a rotação de contas configurável pelo operador. Quando false, nenhuma das classes OMNIROUTE_ROTATE_* abaixo aciona o fallback de conta (o estado desativado da chave mestra também bloqueia as classes 429/500/502, habilitadas por padrão). Permite que um front-end supervisor (por exemplo, o aplicativo para desktop VibeProxy) replique suas próprias regras de rotação no mecanismo de fallback de contas do backend. |
OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS |
0 |
open-sse/services/rotationConfig.ts |
Tempo de espera (em segundos) aplicado a uma conta com limite de taxa atingido quando o serviço upstream não fornece uma indicação explícita de redefinição. 0 = usar o tempo de espera padrão do mecanismo em vez de uma substituição fixa. |
OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET |
true |
open-sse/services/rotationConfig.ts |
Espelha a preferência do front-end de “não marcar como limitado por taxa sem um horário de redefinição”. |
OMNIROUTE_ROTATE_ON_429 |
true |
open-sse/services/rotationConfig.ts |
Habilita o fallback por status para erros 429. Quando definido como false (e OMNIROUTE_ROTATION_ENABLED=true), um erro 429 deixa de acionar a rotação de contas e, em vez disso, é retornado 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 que a conta seja alternada. 1 (padrão) alterna imediatamente, preservando o comportamento histórico. |
OMNIROUTE_ROTATE_429_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
Janela deslizante (em 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 |
Habilita o fallback por status para erros de servidor 5xx (exceto 502, que tem sua própria classe). Quando definido como false, esses erros deixam de acionar a rotação de contas. |
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 que a conta seja alternada. 1 (padrão) alterna imediatamente. |
OMNIROUTE_ROTATE_500_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
Janela deslizante (em 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 |
Habilita o fallback por status para erros 502 (gateway inválido). Quando definido como false, os erros 502 deixam de acionar a rotação de contas. |
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 que a conta seja alternada. 1 (padrão) alterna imediatamente. |
OMNIROUTE_ROTATE_502_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
Janela deslizante (em 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 padrão): quando true, um 400 simples (solicitação inválida) também aciona a rotação de conta. Isso é apenas aditivo — nunca bloqueia o comportamento existente do mecanismo, no qual um 400 contendo texto sobre limite de requisições/cota ainda realiza o failover independentemente desse 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 que a conta seja rotacionada (consultado somente quando OMNIROUTE_ROTATE_ON_400=true). |
OMNIROUTE_ROTATE_400_WINDOW_SECONDS |
120 |
open-sse/services/rotationConfig.ts |
Janela deslizante (em segundos) durante a qual os erros 400 são contabilizados para OMNIROUTE_ROTATE_400_THRESHOLD. |
Agendador de aquecimento do Claude
Seção intitulada “Agendador de aquecimento do Claude”Aquecimento controlado por cron para conexões OAuth da Anthropic que aderiram ao recurso, para que a janela de limite de requisições de 5 horas seja aberta por uma solicitação trivial agendada, em vez de pela primeira solicitação real (#8848). O agendador permanece desativado, a menos que OMNIROUTE_WARMUP_ENABLED tenha um valor verdadeiro e a conexão esteja sinalizada em settings.claudeWarmup.connections; uma lista de conexões vazia significa que nenhuma conexão será aquecida, mesmo com a variável de ambiente ativada.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OMNIROUTE_WARMUP_ENABLED |
(não definida → desativado) | src/lib/warmupScheduler.ts |
Chave geral do agendador de aquecimento. Aceita 1/true/yes/on (sem diferenciar maiúsculas de minúsculas e desconsiderando espaços nas extremidades). 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 redefinição da Anthropic), independentemente do relógio do host. |
OMNIROUTE_WARMUP_CONCURRENCY |
3 |
src/lib/warmupScheduler.ts |
Quantas conexões são aquecidas em paralelo por execução. Limitado ao intervalo de 1 a 10; um valor não numérico usa 3 como padrão. |
OMNIROUTE_WARMUP_MODEL |
claude-3-5-haiku-20241022 |
src/lib/warmupScheduler.ts |
Modelo usado para a solicitação de aquecimento. Substitua-o somente se o padrão não estiver disponível em seu plano; escolha o modelo mais barato que ainda abra a janela. |
Sessões VNC para login pelo navegador e alias do diretório de dados
Seção intitulada “Sessões VNC para login pelo navegador e alias do diretório de dados”Chromium+VNC em contêiner usado para a captura interativa de credenciais de login pelo navegador (/api/vnc-session), além de um alias legado DATA_DIR. Tudo é opcional — os padrões do VNC usam como destino a imagem incluída omniroute-vnc-chromium:local e só precisam ser substituídos para usar uma imagem de contêiner personalizada, portas específicas ou ajustes no ciclo de vida.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OMNIROUTE_VNC_IMAGE |
omniroute-vnc-chromium:local |
src/lib/vncSession/manifest.ts |
Tag da imagem Docker para o contêiner de login do Chromium+VNC. Compile docker/vnc-browser/chromium ou aponte esta variável para uma imagem personalizada. |
OMNIROUTE_DOCKER_BIN |
docker |
src/lib/vncSession/manifest.ts |
Binário do runtime de contêiner usado para iniciar o contêiner VNC (por exemplo, defina como podman). |
OMNIROUTE_VNC_CONTAINER_VNC_PORT |
3000 |
src/lib/vncSession/manifest.ts |
Porta VNC/noVNC exposta dentro do contêiner. |
OMNIROUTE_VNC_CONTAINER_CDP_PORT |
9223 |
src/lib/vncSession/manifest.ts |
Porta do Chrome DevTools Protocol dentro do contêiner. |
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR |
/config |
src/lib/vncSession/manifest.ts |
Caminho do diretório de perfil do Chromium dentro do contêiner. |
OMNIROUTE_VNC_PROFILE_DIR |
$HOME/.omniroute/browser-login-profiles |
src/lib/vncSession/manifest.ts |
Diretório do host que armazena perfis persistidos de login no navegador. |
OMNIROUTE_VNC_IDLE_MS |
600000 (10 min) |
src/lib/vncSession/manifest.ts |
Tempo limite de inatividade (ms) antes que uma sessão VNC inativa seja encerrada. |
OMNIROUTE_VNC_MAX_MS |
1800000 (30 min) |
src/lib/vncSession/manifest.ts |
Limite máximo absoluto (ms) para a 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 para que o navegador em contêiner fique pronto para CDP. |
OMNIROUTE_VNC_HARVEST_MS |
20000 |
src/lib/vncSession/manifest.ts |
Tempo limite (ms) para coletar a sessão e os cookies capturados após a conclusão do login. |
OMNIROUTE_VNC_CHROMIUM_ARGS |
--remote-debugging-port=9222 --no-first-run --no-default-browser-check |
src/lib/vncSession/manifest.ts |
Flags adicionais de linha de comando passadas ao Chromium em contêiner. |
OMNIROUTE_VNC_NETWORK |
omniroute-vnc-browser-login |
src/lib/vncSession/manifest.ts |
Rede Docker dedicada à qual o contêiner de login VNC se conecta (#12571), em vez da bridge padrão, para que contêineres irmãos não possam acessar sua porta bridge de CDP. |
VIBEPROXY_DATA_DIR |
(não definida) | open-sse/services/notionThreadSessions.ts |
Alias legado para DATA_DIR, verificado somente quando DATA_DIR e OMNIROUTE_DATA_DIR não estão definidas. Localiza o cache de sessões de threads web do Notion (<dir>/notion-web-thread-sessions.json). |
26. Estrutura de testes e E2E
Seção intitulada “26. Estrutura de testes e E2E”Usado 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 não definidos em implantações de produção.
| Variável | Padrão | Arquivo 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 |
usa INITIAL_PASSWORD como fallback |
scripts/dev/run-next-playwright.mjs |
Senha de administrador injetada no ambiente do Playwright. |
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK |
true |
scripts/dev/run-next-playwright.mjs |
Desativa a sondagem local de integridade 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 definido) | src/lib/tokenHealthCheck.ts |
Provedores separados por vírgulas excluídos da varredura proativa de renovação de tokens (por exemplo, codex,openai). Alternativa direcionada a desativar completamente a verificação de integridade — provedores com TTL curto continuam sendo atualizados, enquanto provedores em cascata permanecem somente reativos. |
OMNIROUTE_HIDE_HEALTHCHECK_LOGS |
true |
scripts/dev/run-next-playwright.mjs |
Silencia mensagens de 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 que o Playwright seja iniciado (otimização de CI). |
OMNIROUTE_SKIP_UNINSTALL_HOOK |
0 |
scripts/build/uninstall.mjs |
Ignora o hook de desinstalação do OmniRoute (usado 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 íntegro antes da execução dos testes de ecossistema/protocolo. |
ELECTRON_SMOKE_URL |
http://127.0.0.1:20128/login |
scripts/dev/smoke-electron-packaged.mjs |
URL que a estrutura de teste de fumaça do Electron espera que o aplicativo empacotado disponibilize. |
ELECTRON_SMOKE_TIMEOUT_MS |
45000 |
scripts/dev/smoke-electron-packaged.mjs |
Tempo limite total (ms) antes que a estrutura de teste de fumaça desista. |
ELECTRON_SMOKE_SETTLE_MS |
2000 |
scripts/dev/smoke-electron-packaged.mjs |
Janela 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 do Electron empacotado. |
ELECTRON_SMOKE_DATA_DIR |
(tmpdir) | scripts/dev/smoke-electron-packaged.mjs |
Diretório de dados para a execução do teste de fumaça 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 fumaça após a execução. |
ELECTRON_SMOKE_STREAM_LOGS |
0 |
scripts/dev/smoke-electron-packaged.mjs |
Defina como 1 para transmitir os logs do Electron para a saída padrão durante a execução. |
ELECTRON_SMOKE_COLD_RESTART |
0 |
scripts/dev/smoke-electron-packaged.mjs |
#7592: reinicia usando o mesmo diretório de dados e verifica se a segunda inicialização seleciona o driver SQLite nativo. |
CLI_DEVIN_BIN |
(consulta ao PATH) | open-sse/executors/devin-cli.ts |
Substitui o caminho do binário da CLI do Devin. |
Pipeline de tradução da documentação
Seção intitulada “Pipeline de tradução da documentação”Usado por scripts/i18n/run-translation.mjs (o comando npm run i18n:run).
Por padrão, todas as cinco variáveis não estão definidas — defina-as em .env apenas nas máquinas
que devem ser capazes de executar o tradutor da documentação.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OMNIROUTE_TRANSLATION_API_URL |
(não definido) | scripts/i18n/run-translation.mjs |
URL base compatível com a OpenAI para o backend de tradução. |
OMNIROUTE_TRANSLATION_API_KEY |
(não definido) | scripts/i18n/run-translation.mjs |
Token Bearer para o backend de tradução (nunca registrado nos logs). |
OMNIROUTE_TRANSLATION_MODEL |
(não definido) | 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 solicitação, em milissegundos. |
OMNIROUTE_TRANSLATION_CONCURRENCY |
4 |
scripts/i18n/run-translation.mjs |
Solicitações de tradução paralelas ao processar vários arquivos/idiomas. |
27. Feed do Radar (Auto-hospedagem)
Seção intitulada “27. Feed do Radar (Auto-hospedagem)”Complemento opcional controlado pelo sinalizador de recurso RADAR_ENABLED (desativado por padrão — um sinalizador de
recurso alternado por meio de Configurações/DB, não uma variável de ambiente; consulte
docs/frameworks/RADAR.md).
As quatro primeiras variáveis abaixo são substituições opcionais para um feed auto-hospedado ou derivado e
para fluxos de chaves de apoiadores. A quinta, RADAR_ADMIN_URL, é um link separado, sem valor padrão, para o
painel privado de operações do proprietário. Consulte docs/frameworks/RADAR.md para ver a
documentação completa do módulo e sua
sequência completa de ativação e configuração guiada.
O leitor genérico de anúncios da Página Inicial/Registro de Alterações não é configurado por uma variável
de ambiente e não depende do sinalizador de recurso RADAR_ENABLED. Ele lê por meio apenas de
GET a URL pública news.json do repositório, declarada em src/shared/utils/releaseNotes.ts;
os IDs de dispensas permanecem no armazenamento local do navegador.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
RADAR_FEED_URL |
https://radar.omniroute.online |
src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts |
URL base compartilhada pelos feeds assinados separadamente de catálogo, indicações, ofertas para apoiadores e Intel. Substitua-a para apontar para um serviço auto-hospedado ou derivado. |
RADAR_FEED_PUBKEY |
(chave padrão fixada) | src/lib/radar/pinnedKeys.ts |
Chave pública Ed25519 (SPKI DER em base64 ou PEM) usada para verificar as assinaturas de um feed personalizado. |
RADAR_CONTRIBUTOR_CLAIM_URL |
https://radar.omniroute.online/auth/github |
src/lib/radar/links.ts |
URL aberta pelo botão “Sou um colaborador” do painel (fluxo de solicitação de chave de apoiador via OAuth do GitHub). |
RADAR_SUPPORTER_PLANS_URL |
https://radar.omniroute.online/planos |
src/lib/radar/links.ts |
URL aberta pelo botão “Apoie o projeto” do painel (página de pagamentos/planos). |
RADAR_ADMIN_URL |
(não definida) | src/lib/radar/links.ts |
Link do painel privado de operações exclusivo para o proprietário. HTTPS é obrigatório, exceto para um encaminhamento SSH de loopback HTTP; valores não definidos ou inválidos não criam nenhum item de navegação. |
Auditoria: variáveis removidas / inativas
Seção intitulada “Auditoria: variáveis removidas / inativas”As variáveis a seguir apareciam em versões anteriores de .env.example, mas não possuem referências em tempo de execução na base de código atual. Elas foram removidas:
| Variável | Motivo |
|---|---|
STORAGE_DRIVER=sqlite |
Nunca é lida por nenhum arquivo-fonte. SQLite é o único driver compatível — nenhuma seleção é necessária. |
INSTANCE_NAME=omniroute |
Presente em documentações/modelos de ambiente antigos, mas não é usada em tempo de execução. Pode retornar em um futuro recurso de múltiplas instâncias. |
SQLITE_MAX_SIZE_MB=2048 |
Não é referenciada no código-fonte. O tamanho do banco de dados não é limitado artificialmente. |
SQLITE_CLEAN_LEGACY_FILES=true |
Não é referenciada no código-fonte. A limpeza de arquivos legados provavelmente foi removida. |
CLI_ROO_BIN |
Não está registrada em src/shared/services/cliRuntime.ts. |
CLI_KIMI_CODING_BIN |
Não está registrada em src/shared/services/cliRuntime.ts (Kimi Coding usa OAuth, não um binário de 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 não lê mais essas variáveis de ambiente — as credenciais vêm do Dashboard / data/provider-credentials.json / banco de dados criptografado. |
CURSOR_PROTOBUF_DEBUG |
Removida na v3.8.0. O executor do Cursor usa CURSOR_DEBUG / CURSOR_STREAM_DEBUG (consulte §22). |
CLI_COMPAT_KIRO |
Removida na v3.8.0. Kiro está em CLI_COMPAT_OMITTED_PROVIDER_IDS — sua opção de ativação não tem efeito. |
QIANFAN_API_KEY |
Removida junto com outros stubs de chaves de API de provedores não utilizados na v3.8.0. |
Correções de valores padrão
Seção intitulada “Correções de valores padrão”| Variável | Valor antigo em .env.example |
Padrão real do código | Correção |
|---|---|---|---|
APP_LOG_RETENTION_DAYS |
90 |
7 |
✅ Valor enganoso removido; 7 documentado como padrão |
CALL_LOG_RETENTION_DAYS |
90 |
7 |
✅ Valor enganoso removido; 7 documentado como padrão |
Regeneração da configuração do OpenCode (ferramenta ad hoc)
Seção intitulada “Regeneração da configuração do OpenCode (ferramenta ad hoc)”Usada por scripts/ad-hoc/regen-opencode-config.ts para regenerar um opencode.json
com valores precisos de limit.context e limit.output obtidos da instância do
OmniRoute em execução. Nenhuma dessas variáveis é necessária para a operação normal — o script
é apenas uma ferramenta para desenvolvedores.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OMNIROUTE_URL |
http://localhost:20128 |
scripts/ad-hoc/regen-opencode-config.ts |
URL base da instância do OmniRoute a ser consultada em /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. Usa OPENCODE_API_KEY como alternativa quando não definida. |
OPENCODE_API_KEY |
(não definida) | scripts/ad-hoc/regen-opencode-config.ts |
Chave de API no estilo OpenCode (sk-...) gravada no opencode.json regenerado. Usa OMNIROUTE_KEY como alternativa quando não definida. |
Ambiente de avaliação offline de compactação (ferramentas ad hoc)
Seção intitulada “Ambiente de avaliação offline de compactação (ferramentas ad hoc)”Usado por scripts/compression-eval/index.ts, a CLI de avaliação offline de compactação.
Não é necessário para a operação normal — apenas ferramentas para desenvolvedores.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OMNIROUTE_EVAL_CREDENTIALS |
{} (vazio) |
scripts/compression-eval/index.ts |
Credenciais JSON fornecidas pelo operador para o provedor utilizado pela CLI de avaliação offline de compactação (analisadas com JSON.parse). Deixe sem definir para simulação. |
Sessões de navegador VNC
Seção intitulada “Sessões de navegador VNC”Usado por src/lib/vncSession/manifest.ts para configurar sessões do Chromium sem interface gráfica baseadas em Docker para provedores de automação de navegador. Todas são opcionais — os padrões são mostrados abaixo.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OMNIROUTE_DOCKER_BIN |
docker |
src/lib/vncSession/manifest.ts |
Caminho para o binário do Docker usado para iniciar contêineres VNC. |
OMNIROUTE_VNC_IMAGE |
omniroute-vnc-chromium:local |
src/lib/vncSession/manifest.ts |
Imagem do Docker para o contêiner VNC do Chromium. |
OMNIROUTE_VNC_CHROMIUM_ARGS |
(flags integradas) | src/lib/vncSession/manifest.ts |
Argumentos adicionais da CLI do Chromium passados ao navegador dentro do contêiner. |
OMNIROUTE_VNC_CONTAINER_VNC_PORT |
3000 |
src/lib/vncSession/manifest.ts |
Porta VNC dentro do contêiner. |
OMNIROUTE_VNC_CONTAINER_CDP_PORT |
9223 |
src/lib/vncSession/manifest.ts |
Porta do Chrome DevTools Protocol dentro do contêiner. |
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR |
/config |
src/lib/vncSession/manifest.ts |
Diretório de perfil dentro do contêiner. |
OMNIROUTE_VNC_PROFILE_DIR |
(não definida) | src/lib/vncSession/manifest.ts |
Diretório no host para perfis persistentes do navegador. |
OMNIROUTE_VNC_IDLE_MS |
600000 |
src/lib/vncSession/manifest.ts |
Tempo limite de inatividade (ms) antes que uma sessão VNC seja 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 de recolhimento/limpeza (ms). |
OMNIROUTE_VNC_NETWORK |
omniroute-vnc-browser-login |
src/lib/vncSession/manifest.ts |
Rede dedicada do Docker à qual o contêiner se conecta (#12571), separada da ponte padrão. |
VIBEPROXY_DATA_DIR |
(não definida) | open-sse/services/notionThreadSessions.ts |
Diretório para persistência de sessões de threads do Notion. |
Autenticação de serviço interno
Seção intitulada “Autenticação de serviço interno”| Variável | Padrão | Descrição |
|---|---|---|
OMNIROUTE_INTERNAL_SERVICE_TOKEN |
– | Token embutido para autenticação entre serviços do plano de gerenciamento. |
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE |
– | Caminho para um arquivo contendo o token de serviço interno (preferível em contêineres; substitui a variável embutida). |
Estatísticas do provedor OpenRouter
Seção intitulada “Estatísticas do provedor OpenRouter”| Variável | Padrão | Descrição |
|---|---|---|
OPENROUTER_PROVIDER_STATS_ENABLED |
true |
Defina como false para ignorar a obtenção de estatísticas por provedor do OpenRouter para enriquecimento do catálogo. |
OPENROUTER_PROVIDER_STATS_TTL_MS |
3600000 |
TTL do cache (ms) para as estatísticas de provedores do OpenRouter obtidas. |
Vinculação do Redis incorporado
Seção intitulada “Vinculação do Redis incorporado”| Variável | Padrão | Descrição |
|---|---|---|
REDIS_BIND_HOST |
127.0.0.1 |
Endereço de associação do serviço Redis integrado. |
REDIS_PORT |
6379 |
Porta do serviço Redis integrado. |
OMNIROUTE_REDIS_BIND_HOST |
– | Substituição no escopo do OmniRoute para o endereço de associação do Redis integrado. |
24. Adições da versão v3.8.50
Seção intitulada “24. Adições da versão v3.8.50”Estas configurações foram introduzidas após o snapshot anterior do contrato de ambiente.
| Variável | Padrão | Arquivo 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 de chat de alto consumo antes de retornar um 503 que permite nova tentativa; uma espera curta e limitada serializa os picos de agentes em vez de retornar um 503 imediatamente. 0 restaura a rejeição imediata. |
OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES |
4194304 (4 MB) |
src/shared/middleware/chatBodyAdmission.ts |
Orçamento de bytes enfileirados para a espera de admissão: limita o total de bytes de corpos armazenados em buffer e mantidos em espera em todo o processo, para que a espera não amplifique o uso de heap (#4380). Esperas acima do orçamento 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 faixas de admissão por sessão foram removidas em favor de um único orçamento para todo o processo. Aceita 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 faixas de admissão por sessão foram removidas em favor de um único orçamento para todo o processo. Aceita para compatibilidade de configuração; ignorada. |
OMNIROUTE_CHAT_VIRTUAL_LANES |
0 (desativado) |
open-sse/services/admission/runtime.ts |
Faixas virtuais adaptativas de admissão em tempo de execução (#9654): chave principal do controle adaptativo por locatário (sistema 2). Diferente das variáveis obsoletas de faixa por conexão acima (TTL_MS / MAX_SESSIONS, sem efeito desde #10110). É também o nome do sinalizador de recurso no painel; a variável de ambiente prevalece sobre a substituição do painel; requer reinicialização. |
OMNIROUTE_RUNNOW_TIMEOUT_MS |
30000 |
src/app/api/jobs/[id]/run-now/route.ts |
Limita por quanto tempo uma chamada de execução imediata aguarda um trabalho em andamento antes de iniciar a execução enfileirada. |
ADOBE_FIREFLY_BROWSER_REFRESH |
habilitado | open-sse/services/adobeFireflySession.ts |
Mantém atualizados o IMS e o estado de risco do navegador por meio de sessões Chrome CDP com escopo de conta; defina como 0 para desabilitar. |
ADOBE_FIREFLY_SESSION_DISK |
habilitado | open-sse/services/adobeFireflySession.ts |
Persiste as sessões reparadas da Adobe em DATA_DIR; defina como 0 para manter o estado somente na memória. |
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS |
12000 |
open-sse/services/adobeFireflySession.ts |
Intervalo mínimo entre envios de geração ao Adobe Firefly. |
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS |
15000 |
open-sse/services/adobeFireflySession.ts |
Período adicional de inatividade após cada terceiro envio bem-sucedido à Adobe. |
ADOBE_FIREFLY_CHROME_HEADLESS |
0 |
open-sse/services/adobeFireflyBrowserLogin.ts |
Modo verdadeiramente headless destinado apenas à depuração; o Adobe colligo normalmente rejeita a sessão de risco resultante. |
CHROME_PATH |
detecção automática | open-sse/executors/cloudflare-playground.ts, open-sse/executors/chatgpt-web-codex.ts |
Executável absoluto opcional do Chrome usado pelos executores controlados por navegador quando a detecção automática da plataforma é insuficiente. |
TELEGRAM_BOT_TOKEN |
(não definido) | src/lib/telegram/config.ts |
Token do BotFather que habilita o webhook de entrada e assina o initData do Mini App. |
TELEGRAM_WEBHOOK_SECRET |
(não definido) | src/lib/telegram/config.ts |
Segredo compartilhado registrado por meio 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; quando não definido, as entregas de webhook são recusadas com 503. |
TELEGRAM_DEFAULT_MODEL |
auto/chat |
src/lib/telegram/chatProxy.ts |
Modelo usado para respostas de chat do Telegram. |
TELEGRAM_BOT_API_BASE |
https://api.telegram.org |
src/lib/telegram/config.ts |
Substituição da URL base da Bot API para proxies ou servidores da Bot API auto-hospedados. |
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 (habilitado) |
scripts/build/optionalPackStaging.mjs |
Defina como 0 para não gerar 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 o optional-packs.index.json ainda são produzidos). Usado pelo fluxo de trabalho de lançamento para desktop a fim de reduzir o tamanho do upload dos artefatos. |
ChatGPT Web (Codex)
Seção intitulada “ChatGPT Web (Codex)”Padrões globais para o navegador headless e o túnel de ferramentas de saída. Os valores de conexão definidos no painel têm precedência.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
CHATGPT_WEB_CODEX_CHROME_PATH |
(detecçã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 |
(detecção automática) | open-sse/executors/chatgpt-web-codex.ts |
Fallback compartilhado 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 usa o sidecar na porta 9223. |
CDP_PROXY_TOKEN |
(não definido) | docker/chatgpt-web-codex-browser/cdp-proxy.mjs |
Se definido, todas as solicitações ao sidecar de proxy CDP devem enviar esse valor no cabeçalho X-Omni-Cdp-Token (#13679). Sem um valor, o proxy encaminha as solicitações sem autenticação — nesse caso, somente o isolamento da rede chatgpt-web-codex-net do Compose oferece proteção. Gere 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 da OpenAI para rodadas locais da ferramenta 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 logs. |
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, imagens de diagnóstico do navegador são capturadas em cada checkpoint. |
CODEX_CHATGPT_WEB_LAUNCHER |
(não definido) | open-sse/vendor/codex-chatgpt-web/config.ts |
Caminho absoluto opcional para um binário persistente do launcher. |
CODEX_CHATGPT_WEB_BUN |
(detecçã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 |
Fallback legado para CODEX_CHATGPT_WEB_BUN; novas configurações usam o nome canônico. |
Ponte do OmniConductor
Seção intitulada “Ponte do OmniConductor”Consumidor SSE de longa duração que espelha as tarefas do hub OmniConductor no A2A TaskManager local (src/lib/conductor/). Recurso opcional — a ponte só é iniciada quando CONDUCTOR_HUB_URL está definida. Somente no lado do servidor: o token do hub nunca deve chegar ao navegador.
| Variável | Padrão | Arquivo 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 desabilitada. |
CONDUCTOR_HUB_TOKEN |
(vazio) | src/lib/conductor/boot.ts |
Credencial do hub para o feed SSE — emita um peer do tipo spokesperson no hub (POST /v1/peers, administrador). |
CONDUCTOR_ORCHESTRATOR_TOKEN |
(vazio) | src/lib/conductor/hubProxy.ts |
Credencial para a delegação de tarefas A2A→hub de entrada (POST /v1/tasks); usa CONDUCTOR_HUB_TOKEN como alternativa 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) por trás do proxy de chat do painel (/api/conductor/ask). |
Agendamento com reconhecimento de cota
Seção intitulada “Agendamento com reconhecimento de cota”Usado por open-sse/services/combo.ts e src/lib/quota/quotaScheduler.ts para verificações do orçamento de tokens antes das requisições. Recurso opcional — o comportamento padrão de roteamento permanece inalterado quando não definido.
| Variável | Padrão | Arquivo de origem | Descrição |
|---|---|---|---|
OMNIROUTE_QUOTA_AWARE_ROUTING |
0 |
open-sse/services/combo.ts |
Quando definido como 1, ignora conexões cujo orçamento de tokens por janela (rateLimitOverrides.tpm, tabela provider_quota_state) não consegue cobrir o custo estimado da requisição antes do despacho. Em caso de ausência de orçamento configurado, permite a operação. |
HagiCode
HagiCode é um ambiente de programação com agentes, fluxos estruturados, execução multiagente e visualizações Hero Dungeon.
Transforme ideias em software útil com um fluxo de trabalho com agentes mais inteligente, rápido e agradável.

- SmartFluxos estruturados transformam intenções em um caminho executável da ideia à entrega.
- EfficientFluxos multiagente mantêm pesquisa, implementação e revisão em andamento simultaneamente.
- FunO Hero Dungeon torna longas sessões de programação mais visuais e colaborativas.