{ "common": { "error": "Erro: {message}", "serverOffline": "Servidor OmniRoute offline. Inicie com: omniroute serve", "authRequired": "Autenticação necessária. Configure OMNIROUTE_API_KEY ou execute: omniroute setup", "rateLimited": "Limite de requisições atingido. Tente novamente em {seconds}s.", "timeout": "Requisição expirou após {ms}ms.", "success": "Concluído.", "yes": "sim", "no": "não", "confirm": "Tem certeza? (sim/não)", "dryRun": "[simulação] faria: {action}", "cancelled": "Cancelado.", "jsonOpt": "Saída em JSON", "yesOpt": "Pular confirmação" }, "setup": { "title": "Configuração do OmniRoute", "passwordPrompt": "Senha de administrador", "providerPrompt": "Provedor padrão (deixe em branco para pular)", "done": "Configuração concluída", "passwordSet": "Senha de administrador configurada", "providerSet": "Provedor configurado: {name}", "testingProvider": "Testando conexão com provedor: {name}", "testPassed": "Teste do provedor aprovado", "testFailed": "Teste do provedor falhou: {error}", "loginEnabled": "Login: habilitado (senha atualizada)", "loginDisabled": "Login: desabilitado", "providerInfo": "Provedor: {info}" }, "doctor": { "title": "OmniRoute Doctor", "dbOk": "Banco de dados: OK ({path})", "dbMissing": "Banco de dados: não inicializado — execute `omniroute setup`", "portOk": "Porta {port}: disponível", "portConflict": "Porta {port}: em uso por outro processo", "encryptionOk": "Chave de criptografia: configurada", "encryptionMissing": "Chave de criptografia ausente — execute `omniroute setup`", "allGood": "Todas as verificações passaram.", "warnings": "{count} aviso(s) — veja acima." }, "providers": { "title": "Provedores", "noProviders": "Nenhum provedor configurado. Execute: omniroute setup", "testing": "Testando {name}...", "available": "{count} provedor(es) disponível(is)", "connected": "Conectado", "disconnected": "Desconectado", "validationFailed": "Validação falhou: {error}", "metrics": { "description": "Exibir métricas de performance dos provedores (latência, taxa de sucesso, custo)", "provider": "Filtrar por ID de provedor", "connection_id": "Filtrar por ID de conexão", "period": "Período: 1h|6h|24h|7d|30d (padrão: 24h)", "metric": "Focar em um campo de métrica específico", "sort": "Ordenar por campo (decrescente)", "limit": "Máximo de linhas (padrão: 50)", "watch": "Atualizar a cada 5s (modo live)", "compare": "IDs de provedores separados por vírgula para comparar" }, "metric_single": { "description": "Obter um único valor de métrica para uma conexão específica" }, "rotate": { "description": "Rotacionar a chave de API upstream de uma conexão de provedor", "newKeyOpt": "Novo valor de chave de API (evite: prefira --from-env)", "fromEnvOpt": "Ler nova chave da variável de ambiente VAR", "oauthOpt": "Iniciar fluxo de reautenticação OAuth", "skipTestOpt": "Pular teste de conectividade pós-rotação", "dryRunOpt": "Exibir o que seria alterado sem gravar", "confirmPrompt": "Substituir a chave de API da conexão \"{name}\" ({id})? [s/N] ", "dryRunResult": "[dry-run] Rotacionaria a chave para \"{name}\" ({id}). Nenhuma alteração feita.", "oauthHint": "Conexão OAuth — execute: omniroute oauth {provider}", "envVarEmpty": "A variável de ambiente {var} não está definida ou está vazia.", "success": "Chave rotacionada para \"{name}\". Execute `providers test {id}` para verificar.", "testPassed": "Teste pós-rotação aprovado.", "testFailed": "Teste pós-rotação falhou: {error}" }, "status": { "description": "Exibir saúde das chaves de todas as conexões de provedores (idade, validade, cooldown)", "providerOpt": "Filtrar por nome do provedor", "header": "ID Provedor Nome Validade Status Status Teste Cooldown Até", "noData": "Nenhum dado de conexão de provedor disponível.", "requiresServer": "providers status requer o servidor OmniRoute em execução." } }, "keys": { "title": "Chaves de API", "addDescription": "Adicionar ou atualizar uma chave de API para um provedor", "listDescription": "Listar todas as chaves de API configuradas", "removeDescription": "Remover uma chave de API de um provedor", "regenerateDescription": "Regenerar uma chave de API do OmniRoute", "revokeDescription": "Revogar uma chave de API do OmniRoute", "revealDescription": "Revelar o valor completo da chave (sem máscara)", "usageDescription": "Exibir uso recente de uma chave de API", "usageLimitOpt": "Número de requisições recentes", "rotateDescription": "Gerar nova chave e invalidar a antiga", "graceOpt": "Período de carência (ms) antes de invalidar a chave antiga", "stdinOpt": "Ler chave de API via stdin", "added": "Chave adicionada para {provider}.", "removed": "Chave removida.", "listed": "{count} chave(s).", "noKeys": "Nenhuma chave configurada.", "noUsage": "Nenhum dado de uso encontrado.", "confirmRemove": "Remover chave {id}?", "confirmRegenerate": "Regenerar chave {id}?", "confirmRevoke": "Revogar chave {id}?", "confirmRotate": "Rotacionar chave {id}? (a chave antiga será invalidada após o período de carência)", "regenerated": "Chave regenerada. Nova chave: {key}", "revoked": "Chave {id} revogada.", "rotated": "Chave {id} rotacionada. Novo ID: {newId}", "revealWarning": "⚠ Isso exibirá a chave completa sem máscara. Certifique-se de que sua tela está privada.", "providerRequired": "Provedor é obrigatório.", "keyRequired": "Chave de API é obrigatória.", "stdinEmpty": "Nenhuma chave fornecida via stdin.", "unknownProvider": "Provedor desconhecido: {provider}", "policy": { "title": "Política da Chave", "showDescription": "Exibir política de taxa/custo de uma chave", "setDescription": "Definir política de taxa/custo de uma chave", "rateLimitOpt": "Máximo de requisições por minuto", "maxCostOpt": "Custo máximo por dia (USD)", "allowedModelsOpt": "Lista de modelos permitidos (separados por vírgula)", "nothingToSet": "Nenhum campo de política fornecido. Use --rate-limit, --max-cost ou --allowed-models.", "updated": "Política atualizada." }, "expiration": { "title": "Expiração de Chaves", "listDescription": "Listar chaves prestes a expirar", "daysOpt": "Exibir chaves que expiram em N dias", "none": "Nenhuma chave expirando nos próximos {days} dias.", "listTitle": "Chaves que expiram nos próximos {days} dias:" } }, "stream": { "description": "Transmitir resposta de chat com modos de inspeção SSE", "file": "Ler prompt de arquivo", "stdin": "Ler prompt da entrada padrão", "model": "ID do modelo (padrão: auto)", "system": "Prompt de sistema", "combo": "Forçar um combo específico pelo nome", "max_tokens": "Máximo de tokens na resposta", "responses_api": "Usar /v1/responses em vez de /v1/chat/completions", "raw": "Imprimir linhas SSE brutas como recebidas", "debug": "Imprimir informações de timing por chunk no stderr", "save": "Salvar todos os eventos SSE em arquivo .jsonl", "error": { "empty_prompt": "Erro: prompt obrigatório (argumento posicional, --file ou --stdin)" } }, "usage": { "description": "Analytics de uso, budgets, quotas e logs", "analytics": { "description": "Exibir analytics de uso agregados", "period": "Período: 1d|7d|30d|90d|ytd|all (padrão: 30d)", "provider": "Filtrar por ID de provedor" }, "budget": { "description": "Gerenciar budgets de custo", "set": { "scope": "Escopo do budget (padrão: global)", "period": "Período do budget: daily|weekly|monthly (padrão: monthly)" } }, "quota": { "description": "Exibir uso de quota dos provedores", "provider": "Filtrar por ID de provedor", "check": "Mostrar se há quota disponível para uma nova requisição" }, "logs": { "description": "Exibir logs de chamadas", "limit": "Número de entradas de log a retornar (padrão: 100)", "search": "Filtro de busca", "since": "Retornar logs a partir deste timestamp", "follow": "Fazer tail contínuo de novos logs", "api_key": "Filtrar logs por chave de API" }, "utilization": { "description": "Exibir métricas de utilização por chave de API", "api_key": "Filtrar por chave de API" }, "history": { "description": "Exibir histórico de requisições", "limit": "Número de entradas de histórico (padrão: 100)" }, "proxy_logs": { "description": "Exibir logs de requisições em nível de proxy", "limit": "Número de entradas de proxy log (padrão: 100)" } }, "cost": { "description": "Exibir relatório de custos com breakdown por provedor, modelo, combo ou chave de API", "period": "Período: 1d|7d|30d|90d|ytd|all (padrão: 30d)", "since": "Data de início (formato ISO, ex: 2026-01-01) — substitui --period", "until": "Data de fim (formato ISO)", "group_by": "Agrupar por: provider|model|api-key|combo|day (padrão: provider)", "api_key_filter": "Filtrar por uma chave de API específica", "limit": "Número máximo de linhas (padrão: 100)" }, "simulate": { "description": "Simulação de routing em dry-run — mostra quais provedores seriam selecionados sem chamar o upstream", "file": "Carregar body completo da requisição de arquivo JSON", "model": "ID do modelo (padrão: auto)", "combo": "Forçar um combo específico pelo nome", "reasoning": "Nível de esforço de raciocínio (low|medium|high)", "thinking": "Budget de tokens para raciocínio estendido", "explain": "Imprimir árvore de fallback e faixa de custo no stderr", "noCombo": "Nenhum combo correspondente encontrado. Configure um com: omniroute combo create" }, "chat": { "description": "Enviar um prompt único ao OmniRoute", "file": "Ler prompt de arquivo", "stdin": "Ler prompt da entrada padrão", "system": "Prompt de sistema", "model": "ID do modelo (padrão: auto)", "max_tokens": "Máximo de tokens na resposta", "temperature": "Temperatura de amostragem (0–2)", "top_p": "Amostragem nucleus top-p", "reasoning_effort": "Nível de esforço de raciocínio (low|medium|high)", "thinking_budget": "Budget de tokens para raciocínio estendido", "combo": "Forçar um combo específico pelo nome", "responses_api": "Usar /v1/responses em vez de /v1/chat/completions", "stream": "Transmitir resposta incrementalmente", "no_history": "Não salvar em ~/.omniroute/cli-history.jsonl", "error": { "empty_prompt": "Erro: prompt obrigatório (argumento posicional, --file ou --stdin)" } }, "serve": { "description": "Iniciar o servidor OmniRoute (ação padrão)", "starting": "Iniciando servidor OmniRoute na porta {port}...", "ready": "Pronto em http://localhost:{port}", "stopping": "Parando servidor (PID {pid})...", "stopped": "Servidor parado.", "notRunning": "Servidor não está em execução.", "port": "Porta de escuta (padrão: 20128)", "no_open": "Não abrir navegador automaticamente", "daemon": "Executar servidor em segundo plano", "log": "Exibir logs do servidor inline", "no_recovery": "Desabilitar reinício automático em crash (modo debug)", "max_restarts": "Máximo de reinícios em 30s antes de desistir (padrão: 2)", "tray": "Mostrar ícone na bandeja do sistema (apenas desktop, opt-in)", "no_tray": "Desabilitar ícone na bandeja do sistema" }, "backup": { "title": "Backup", "description": "Criar backup dos dados do OmniRoute", "creating": "Criando backup...", "done": "Backup salvo em {path}", "noFiles": "Nenhum arquivo para backup (banco não inicializado)", "failed": "Backup falhou: {error}", "restoring": "Restaurando de {path}...", "restored": "Restauração concluída.", "restoreDescription": "Restaurar a partir de um backup", "listTitle": "Backups Disponíveis", "noBackups": "Nenhum backup encontrado.", "notFound": "Backup não encontrado: {name}", "confirmRestore": "Substituir dados atuais pelo backup de {ts}?", "createDescription": "Criar backup dos dados do OmniRoute", "nameOpt": "Nome personalizado para o backup", "cloudOpt": "Fazer upload do backup para armazenamento na nuvem", "encryptOpt": "Criptografar backup com AES-256-GCM", "keyFileOpt": "Caminho para arquivo com a senha de criptografia", "excludeOpt": "Excluir arquivo que corresponde ao padrão (repetível)", "retentionOpt": "Manter apenas os últimos N backups", "passphrasePrompt": "Senha de criptografia: ", "noPassphrase": "Senha é obrigatória para backup criptografado.", "cloudFailed": "Aviso: upload para nuvem falhou. Backup local foi salvo.", "cloudUploaded": "Backup enviado para nuvem: {url}", "auto": { "title": "Agendamento de Backup", "enableDescription": "Ativar backups automáticos agendados", "disableDescription": "Desativar backups automáticos agendados", "statusDescription": "Exibir status do agendamento de backup", "cronOpt": "Expressão cron para o agendamento (padrão: diário às 3h)", "enabled": "Backup automático ativado (cron: {cron}).", "hint": " O agendamento é lido pelo omniroute serve ao iniciar.", "disabled": "Backup automático desativado.", "notConfigured": "Nenhum agendamento de backup configurado." } }, "health": { "description": "Verificar saúde do servidor e status dos componentes", "noServer": "Servidor não está em execução. Inicie com: omniroute serve", "title": "Saúde", "status": "Status: {status}", "uptime": "Uptime: {uptime}", "requests": "Requisições (24h): {count}", "cost": "Custo (24h): ${cost}" }, "quota": { "description": "Exibir uso de cota dos provedores", "noServer": "Servidor não está em execução. Inicie com: omniroute serve", "noData": "Nenhuma informação de cota disponível." }, "cache": { "description": "Gerenciar cache de respostas", "noServer": "Servidor não está em execução. Inicie com: omniroute serve", "cleared": "Cache limpo.", "clearFailed": "Falha ao limpar cache." }, "redis": { "description": "Iniciar um contêiner Redis local com um clique (Podman ou Docker) para cache e rastreamento de cotas do OmniRoute" }, "test": { "description": "Testar conexão com um provedor", "noServer": "Servidor não está em execução. Inicie com: omniroute serve", "testing": "Testando {provider} / {model}...", "passed": "Conexão bem-sucedida!", "failed": "Conexão falhou: {error}", "allProvidersOpt": "Testar todos os provedores configurados", "latencyOpt": "Exibir medições de latência (avg/min/max ms)", "repeatOpt": "Repetir o teste N vezes e agregar os resultados", "compareOpt": "Modelos separados por vírgula para comparar (ex: gpt-4o,claude-3-5-sonnet)", "saveOpt": "Salvar resultados em arquivo JSON", "saved": "Resultados salvos em {path}", "compareTitle": "Comparação de Modelos", "compareMinTwo": "São necessários pelo menos dois modelos para --compare (separados por vírgula)", "noProviders": "Nenhum provedor configurado. Adicione um com: omniroute keys add" }, "update": { "checking": "Verificando atualizações...", "upToDate": "Já está atualizado ({version}).", "available": "Atualização disponível: {current} → {latest}", "installing": "Instalando {latest}...", "done": "Atualizado para {latest}. Reinicie o servidor para aplicar." }, "mcp": { "title": "Servidor MCP", "call": { "description": "Invocar uma ferramenta MCP diretamente", "args": "Objeto JSON de argumentos (inline)", "args_file": "Caminho para arquivo JSON de argumentos", "stream": "Usar endpoint de streaming (/api/mcp/stream)", "scope": "Escopo requerido (repetível, ex: read:health)" }, "scopes": { "description": "Listar escopos MCP disponíveis", "tool": "Mostrar escopos requeridos por uma ferramenta específica" }, "tools": { "description": "Inspecionar ferramentas MCP", "list": { "description": "Listar todas as ferramentas MCP", "scope": "Filtrar por escopo" }, "info": { "description": "Exibir metadados de uma ferramenta MCP" }, "schema": { "description": "Exibir schema JSON de entrada/saída de uma ferramenta MCP", "io": "Tipo de schema: input|output (padrão: input)" } }, "audit": { "description": "Log de auditoria MCP (alias para audit --source mcp)" }, "running": "Servidor MCP em execução ({transport})", "stopped": "Servidor MCP parado.", "restarted": "Servidor MCP reiniciado." }, "a2a": { "skills": { "description": "Listar skills A2A disponíveis na agent card" }, "invoke": { "description": "Invocar uma skill A2A e retornar o ID da task", "input": "Objeto JSON de entrada", "input_file": "Caminho para arquivo JSON de entrada", "wait": "Aguardar conclusão da task antes de retornar", "timeout": "Timeout aguardando conclusão em ms (padrão: 60000)" }, "tasks": { "description": "Gerenciar tasks A2A", "list": { "status": "Filtrar por status", "skill": "Filtrar por ID de skill" }, "watch": { "description": "Monitorar status da task até conclusão" }, "stream": { "description": "Transmitir eventos de execução da task via SSE" }, "logs": { "description": "Exibir mensagens e artefatos da task" } } }, "policy": { "description": "Gerenciar políticas de autorização do OmniRoute", "list": { "description": "Listar políticas", "kind": "Filtrar por tipo (allow|deny|rate-limit|cost-cap)", "scope": "Filtrar por escopo (global|api-key|provider)" }, "get": { "description": "Obter detalhes de política por ID" }, "create": { "description": "Criar política a partir de arquivo JSON", "file": "Caminho para arquivo JSON de política" }, "update": { "description": "Atualizar política a partir de arquivo JSON", "file": "Caminho para arquivo JSON de política" }, "delete": { "description": "Deletar política por ID", "yes": "Pular confirmação" }, "evaluate": { "description": "Dry-run de avaliação de política (saída 0=permitido, 4=negado)", "api_key": "Chave de API a avaliar", "action": "Ação a verificar (ex: chat, embed, admin)", "resource": "Caminho ou identificador do recurso", "context": "Contexto adicional como objeto JSON" }, "export": { "description": "Exportar todas as políticas para arquivo JSON" }, "import": { "description": "Importar políticas de arquivo JSON", "overwrite": "Sobrescrever políticas existentes com mesmo ID" } }, "compression": { "description": "Configurar e inspecionar o pipeline de compressão do OmniRoute", "status": { "description": "Exibir status atual de compressão e configurações" }, "configure": { "description": "Configurar as definições de compressão", "engine": "Engine de compressão (caveman|rtk|hybrid|none)", "caveman_agg": "Agressividade do Caveman 0.0–1.0", "rtk_budget": "Budget de tokens RTK", "language_pack": "Language pack a ativar" }, "engine": { "description": "Obter ou definir o engine de compressão ativo" }, "combos": { "description": "Gerenciar estatísticas de combos de compressão" }, "rules": { "description": "Gerenciar regras de compressão", "add": { "pattern": "Padrão para corresponder (regex ou campo:padrão)", "action": "Ação: drop|shrink|replace" } }, "language_packs": { "description": "Listar language packs de compressão disponíveis" }, "preview": { "description": "Visualizar efeito de compressão em uma requisição", "file": "Caminho para arquivo JSON da requisição" } }, "tunnel": { "title": "Túneis", "listDescription": "Listar túneis ativos", "createDescription": "Criar um túnel", "created": "Túnel criado: {url}", "stopped": "Túnel parado.", "confirmStop": "Parar túnel {id}?", "stopDescription": "Parar um túnel", "statusDescription": "Exibir status detalhado de um túnel", "logsDescription": "Exibir logs de um túnel", "infoDescription": "Exibir configuração detalhada de um túnel", "rotateDescription": "Gerar nova URL para o túnel", "tailOpt": "Número de linhas de log a exibir", "typeRequired": "Tipo de túnel é obrigatório.", "noLogs": "Nenhum log disponível.", "notAvailable": "Informações do túnel não disponíveis.", "noTunnels": "Nenhum túnel ativo.", "infoTitle": "Info do túnel: {type}", "rotated": "URL do túnel rotacionada: {url}", "confirmRotate": "Rotacionar túnel {type}? (uma nova URL será gerada)" }, "stop": { "description": "Parar o servidor OmniRoute", "stopping": "Parando servidor (PID {pid})...", "stopped": "Servidor parado.", "notRunning": "Nenhum servidor está em execução.", "portFallback": "Arquivo PID não encontrado, tentando parar pela porta..." }, "restart": { "description": "Reiniciar o servidor OmniRoute", "restarting": "Reiniciando servidor OmniRoute..." }, "dashboard": { "description": "Abrir o painel OmniRoute no navegador", "opening": "Abrindo painel em {url}", "urlOnly": "Exibir URL do painel sem abrir o navegador", "tui": "Abrir painel TUI interativo (terminal UI, 7 abas)" }, "models": { "description": "Listar modelos disponíveis (requer servidor)", "search": "Filtrar modelos por id, nome, provedor ou descrição", "noServer": "Servidor não está em execução. Inicie com: omniroute serve", "noModels": "Nenhum modelo encontrado." }, "audit": { "description": "Acessar logs de auditoria de compliance e MCP", "source": "Fonte do log: all|compliance|mcp (padrão: all)", "since": "Retornar entradas desde este timestamp (ISO 8601)", "until": "Retornar entradas até este timestamp (ISO 8601)", "tail": { "description": "Exibir entradas recentes do log de auditoria", "follow": "Fazer tail contínuo de novas entradas (poll 2s)", "limit": "Máximo de entradas (padrão: 100)" }, "search": { "description": "Buscar entradas do log de auditoria por palavra-chave", "limit": "Máximo de resultados (padrão: 200)", "actor": "Filtrar por ID de ator", "action": "Filtrar por nome de ação" }, "export": { "description": "Exportar log de auditoria para arquivo", "format": "Formato de saída: jsonl|csv (padrão: jsonl)" }, "stats": { "description": "Exibir estatísticas do log de auditoria", "period": "Período: 1d|7d|30d (padrão: 7d)" }, "get": { "description": "Obter uma entrada do log de auditoria por ID" } }, "skills": { "description": "Gerenciar skills do OmniRoute (sandbox, builtin, custom, hybrid, skillssh)", "list": { "description": "Listar skills instaladas", "type": "Filtrar por tipo (sandbox|custom|builtin|hybrid|skillssh)", "enabled": "Mostrar apenas skills habilitadas", "disabled": "Mostrar apenas skills desabilitadas", "api_key": "Filtrar por chave de API" }, "get": { "description": "Obter detalhes de uma skill por ID" }, "install": { "description": "Instalar uma skill a partir de arquivo ou URL", "from_file": "Caminho para o arquivo JSON de definição da skill", "from_url": "URL da definição remota da skill", "type": "Tipo de skill (sandbox|custom|hybrid)", "enable": "Habilitar skill após instalar" }, "enable": { "description": "Habilitar uma skill por ID" }, "disable": { "description": "Desabilitar uma skill por ID", "yes": "Pular confirmação" }, "delete": { "description": "Deletar uma skill por ID", "yes": "Pular confirmação" }, "execute": { "description": "Executar uma skill por ID", "input": "Objeto JSON de entrada", "input_file": "Caminho para arquivo JSON de entrada", "timeout": "Timeout de execução em ms (padrão: 30000)" }, "executions": { "description": "Listar histórico de execuções de skills", "skill": "Filtrar por ID de skill", "limit": "Máximo de resultados (padrão: 50)", "status": "Filtrar por status (running|completed|failed)" }, "skillssh": { "description": "Gerenciar skills instaladas via SSH" }, "marketplace": { "description": "Explorar e instalar skills do marketplace" }, "mp": { "search": { "description": "Buscar pacotes no marketplace", "category": "Filtrar por categoria", "tag": "Filtrar por tag", "limit": "Máximo de resultados (padrão: 30)", "sort": "Ordenar por: downloads|rating|recent" }, "info": { "description": "Exibir detalhes e readme do pacote" }, "install": { "description": "Instalar um pacote do marketplace", "version": "Versão do pacote (padrão: latest)", "enable": "Habilitar após instalar", "yes": "Pular confirmação" }, "categories": { "description": "Listar categorias do marketplace" }, "featured": { "description": "Exibir pacotes em destaque do marketplace" } } }, "memory": { "description": "Gerenciar memória conversacional do OmniRoute (FTS5 + vetorial)", "search": { "description": "Buscar entradas de memória por query semântica", "type": "Filtrar por tipo (user|feedback|project|reference)", "limit": "Máximo de resultados (padrão: 20)", "api_key": "Filtrar por chave de API", "token_budget": "Limitar total de tokens nos resultados" }, "add": { "description": "Adicionar nova entrada de memória", "content": "Conteúdo textual da memória", "file": "Ler conteúdo de arquivo", "type": "Tipo de memória (padrão: user)", "metadata": "Objeto JSON de metadados", "api_key": "Associar a chave de API" }, "clear": { "description": "Deletar entradas de memória que correspondem aos filtros", "type": "Filtrar por tipo", "older": "Deletar entradas mais antigas que a duração (30d, 6m, 1y)", "api_key": "Filtrar por chave de API", "yes": "Pular confirmação" }, "list": { "description": "Listar entradas de memória sem ranking de busca", "type": "Filtrar por tipo", "limit": "Máximo de resultados (padrão: 100)", "api_key": "Filtrar por chave de API" }, "get": { "description": "Obter entrada de memória por ID" }, "delete": { "description": "Deletar entrada de memória por ID", "yes": "Pular confirmação" }, "health": { "description": "Exibir saúde do subsistema de memória (FTS5 + Qdrant)" } }, "oauth": { "description": "Gerenciar conexões OAuth de provedores", "providers": { "description": "Listar provedores com suporte OAuth e seus tipos de fluxo" }, "start": { "description": "Iniciar fluxo de autorização OAuth para um provedor", "provider": "ID do provedor (gemini, copilot, cursor, …)", "no_browser": "Apenas exibir URL — não abrir navegador", "import_system": "Auto-importar credenciais da configuração local do sistema", "social": "Provedor de login social (google|github) — obrigatório para kiro", "timeout": "Timeout aguardando autorização em ms (padrão: 300000)" }, "status": { "description": "Listar conexões OAuth ativas", "provider": "Filtrar por ID do provedor" }, "revoke": { "description": "Revogar uma conexão OAuth", "provider": "ID do provedor a revogar", "connection_id": "Revogar uma conexão específica por ID", "yes": "Pular confirmação" } }, "cloud": { "description": "Gerenciar tarefas de agentes cloud de IA (codex, devin, jules)", "agents": { "description": "Listar agentes cloud disponíveis" }, "agent": { "description": "Gerenciar tarefas do agente cloud {agent}", "auth": { "description": "Autorizar {agent} via OAuth" } }, "task": { "description": "Gerenciar tarefas de agentes cloud", "create": { "description": "Criar nova tarefa de agente", "title": "Título da tarefa (padrão: primeiros 80 chars do prompt)", "prompt": "Texto do prompt da tarefa", "prompt_file": "Ler prompt de arquivo", "repo": "URL do repositório para clonar na tarefa", "branch": "Nome do branch a usar", "metadata": "Objeto JSON de metadados" }, "list": { "description": "Listar tarefas de agentes", "status": "Filtrar por status (running|completed|failed|cancelled)", "limit": "Máximo de resultados (padrão: 50)" }, "get": { "description": "Obter detalhes da tarefa por ID" }, "status": { "description": "Exibir status da tarefa (running|completed|failed|cancelled)" }, "cancel": { "description": "Cancelar uma tarefa em execução", "yes": "Pular confirmação" }, "approve": { "description": "Aprovar o plano do agente para iniciar execução" }, "message": { "description": "Enviar mensagem para uma tarefa em execução" } }, "sources": { "description": "Listar arquivos de origem produzidos por uma tarefa" } }, "eval": { "description": "Gerenciar suites e execuções de avaliação", "suites": { "description": "Gerenciar suites de avaliação", "list": { "description": "Listar suites de avaliação" }, "get": { "description": "Obter detalhes de suite por ID" }, "create": { "description": "Criar suite de avaliação a partir de arquivo JSON", "file": "Caminho para arquivo JSON de definição da suite" } }, "run": { "description": "Iniciar execução de avaliação para uma suite", "model": "ID do modelo a avaliar (padrão: auto)", "combo": "Forçar combo específico por nome", "concurrency": "Número de amostras concorrentes (padrão: 4)", "tag": "Tag para esta execução", "watch": "Monitorar progresso até conclusão" }, "list": { "description": "Listar execuções de avaliação", "suite": "Filtrar por ID de suite", "status": "Filtrar por status", "since": "Retornar execuções desde este timestamp", "limit": "Máximo de resultados (padrão: 50)" }, "get": { "description": "Obter detalhes de execução por ID" }, "results": { "description": "Exibir resultados de amostras de uma execução", "failed": "Exibir apenas amostras que falharam" }, "cancel": { "description": "Cancelar uma avaliação em execução", "yes": "Pular confirmação" }, "scorecard": { "description": "Exibir scorecard de uma execução concluída" } }, "webhooks": { "description": "Gerenciar webhooks do OmniRoute", "events": { "description": "Listar todos os tipos de evento disponíveis para webhooks" }, "list": { "description": "Listar webhooks configurados" }, "get": { "description": "Obter detalhes de webhook por ID" }, "add": { "description": "Registrar novo webhook", "url": "URL de destino", "events": "Lista de tipos de evento separados por vírgula", "secret": "Segredo HMAC de assinatura", "header": "Header extra no formato chave=valor (repetível)", "no_enabled": "Criar webhook em estado desabilitado" }, "update": { "description": "Atualizar webhook existente", "enabled": "Definir estado habilitado (true|false)" }, "remove": { "description": "Deletar webhook", "yes": "Pular confirmação" }, "test": { "description": "Enviar evento de teste para um webhook", "event": "Tipo de evento a simular (padrão: request.completed)" } }, "program": { "description": "OmniRoute — Roteador de IA com Fallback Automático", "version": "Exibir versão e sair", "output": "Formato de saída (table, json, jsonl, csv)", "quiet": "Suprimir saída não essencial", "no_color": "Desativar saída colorida", "timeout": "Timeout de requisições HTTP em milissegundos", "api_key": "Chave de API para o servidor OmniRoute", "base_url": "URL base do servidor OmniRoute", "context": "Contexto/perfil do servidor a usar neste comando", "lang": "Definir idioma de exibição do CLI (substitui OMNIROUTE_LANG)" }, "files": { "description": "Gerenciar arquivos (upload, listar, obter, baixar, deletar)", "list": { "purpose": "Filtrar por propósito", "limit": "Máximo de resultados" }, "get": { "description": "Obter metadados do arquivo" }, "upload": { "description": "Fazer upload de um arquivo", "purpose": "Propósito do arquivo (batch, assistants, fine-tune)" }, "content": { "description": "Baixar conteúdo do arquivo", "out": "Salvar no caminho (padrão: stdout)" }, "delete": { "yes": "Pular confirmação" } }, "batches": { "description": "Gerenciar jobs em batch (compatível com OpenAI)", "list": { "status": "Filtrar por status", "limit": "Máximo de resultados" }, "create": { "description": "Criar um job em batch", "inputFile": "ID do arquivo de entrada", "endpoint": "Endpoint destino", "window": "Janela de conclusão", "metadata": "Adicionar metadado key=value" }, "submit": { "description": "Fazer upload do JSONL e criar batch", "jsonl": "Caminho para o arquivo JSONL", "endpoint": "Endpoint destino", "wait": "Aguardar conclusão" }, "cancel": { "yes": "Pular confirmação" }, "wait": { "timeout": "Timeout em ms" }, "output": { "out": "Salvar output no caminho" }, "errors": { "out": "Salvar erros no caminho" } }, "translator": { "description": "Traduzir payloads entre formatos LLM", "detect": { "description": "Detectar formato do body" }, "translate": { "description": "Converter body de um formato para outro" }, "send": { "description": "Traduzir e despachar para upstream" }, "stream": { "description": "Tradução de request em stream" }, "from": "Formato de origem (openai|anthropic|gemini|cohere)", "to": "Formato de destino (openai|anthropic|gemini|cohere)", "file": "Caminho para o arquivo JSON do request", "out": "Salvar output em arquivo", "model": "Sobrescrever model", "history": { "limit": "Máximo de resultados" } }, "pricing": { "description": "Gerenciar dados de precificação dos modelos", "sync": { "description": "Sincronizar preços com fontes upstream", "provider": "Filtrar por provider", "force": "Forçar re-sincronização" }, "list": { "provider": "Filtrar por provider", "model": "Filtrar por model", "limit": "Máximo de resultados" }, "defaults": { "description": "Gerenciar preços padrão", "input": "Custo de entrada por 1M tokens (USD)", "output": "Custo de saída por 1M tokens (USD)", "cacheRead": "Custo de leitura de cache por 1M tokens (USD)", "cacheWrite": "Custo de escrita de cache por 1M tokens (USD)" }, "diff": { "description": "Mostrar divergências em relação ao upstream", "model": "Filtrar por model" } }, "resilience": { "description": "Inspecionar e gerenciar mecanismos de resiliência", "status": { "provider": "Filtrar por provider" }, "breakers": { "provider": "Filtrar por provider" }, "cooldowns": { "provider": "Filtrar por provider", "connectionId": "Filtrar por ID de conexão" }, "lockouts": { "provider": "Filtrar por provider", "model": "Filtrar por model" }, "reset": { "description": "Resetar estado de breaker/cooldown", "provider": "Provider para resetar", "connectionId": "ID de conexão para resetar", "model": "Model para liberar lockout", "allCooldowns": "Resetar todos os cooldowns do provider", "yes": "Pular confirmação" }, "profile": { "description": "Gerenciar perfil de resiliência", "name": "Nome do perfil" }, "config": { "description": "Gerenciar configuração de resiliência", "threshold": "Limiar de falhas", "resetTimeout": "Timeout de reset em ms", "baseCooldown": "Cooldown base em ms" } }, "nodes": { "description": "Gerenciar nodes de provider (endpoints)", "list": { "provider": "Filtrar por provider", "enabled": "Exibir apenas nodes ativos" }, "add": { "provider": "Nome do provider", "baseUrl": "URL base do node", "name": "Nome do node", "weight": "Peso para balanceamento de carga", "region": "Tag de região", "authHeader": "Header de autenticação customizado (key=value)" }, "update": { "baseUrl": "Nova URL base", "name": "Novo nome", "weight": "Novo peso", "region": "Nova região", "enabled": "Habilitar ou desabilitar (true|false)" }, "remove": { "yes": "Pular confirmação" }, "validate": { "baseUrl": "URL para validar", "provider": "Provider para validar" }, "test": { "description": "Enviar requisição de teste ao node" }, "metrics": { "description": "Exibir métricas do node", "period": "Período de tempo (ex: 24h, 7d)" } }, "context": { "description": "Configurar pipeline de context engineering (Caveman, RTK)", "analytics": { "period": "Período de tempo (ex: 7d, 30d)" }, "caveman": { "description": "Gerenciar compressor de contexto Caveman", "config": { "description": "Exibir ou atualizar configuração do Caveman", "aggressiveness": "Agressividade 0.0–1.0", "maxShrinkPct": "Percentual máximo de redução", "preserveTags": "Tags a preservar (separadas por vírgula)" } }, "rtk": { "description": "Gerenciar otimizador de contexto RTK", "config": { "description": "Exibir ou atualizar configuração RTK", "tokenBudget": "Orçamento de tokens RTK", "reservePct": "Percentual de reserva" }, "filters": { "description": "Gerenciar filtros RTK", "pattern": "Padrão do filtro (regex)", "priority": "Prioridade do filtro (padrão: 100)", "action": "Ação: drop|shrink|replace", "yes": "Pular confirmação" }, "test": { "file": "Caminho para arquivo JSON de requisição" } }, "combos": { "description": "Gerenciamento de combos com context-awareness" } }, "sessions": { "description": "Inspecionar e encerrar sessões ativas", "list": { "user": "Filtrar por usuário", "kind": "Filtrar por tipo (dashboard|api-key|mcp|a2a)", "active": "Exibir apenas sessões ativas", "limit": "Máximo de resultados (padrão: 100)" }, "expire": { "yes": "Pular confirmação" }, "expireAll": { "user": "Usuário cujas sessões serão encerradas", "yes": "Pular confirmação" } }, "tags": { "description": "Gerenciar tags de recursos", "add": { "color": "Cor da tag (hex ou nome)", "description": "Descrição da tag" }, "remove": { "yes": "Pular confirmação" }, "assign": { "tag": "Nome da tag", "to": "Recurso de destino como tipo:id (ex: provider:openai)" }, "unassign": { "tag": "Nome da tag", "from": "Recurso de origem como tipo:id" } }, "openapi": { "description": "Acessar e testar o spec OpenAPI do OmniRoute", "dump": { "description": "Exportar spec OpenAPI para stdout ou arquivo", "format": "Formato de saída: yaml|json (padrão: yaml)", "out": "Salvar em caminho de arquivo" }, "validate": { "description": "Validar o spec OpenAPI" }, "try": { "description": "Testar um endpoint da API via spec", "method": "Método HTTP (padrão: GET)", "body": "Caminho para arquivo JSON do corpo da requisição", "query": "Parâmetro de query como key=value (repetível)", "header": "Header como key=value (repetível)" }, "endpoints": { "description": "Listar todos os endpoints da API", "search": "Filtrar por caminho ou summary" }, "paths": { "description": "Listar todos os caminhos da API" } }, "combo": { "title": "Combos", "switched": "Combo ativo: {name}", "created": "Combo criado: {name}", "deleted": "Combo removido: {name}", "noCombos": "Nenhum combo configurado.", "confirmDelete": "Remover combo {name}?", "suggest": { "description": "Sugerir o melhor combo para uma tarefa usando scoring de IA", "task": "Descrição da tarefa", "maxCost": "Custo máximo por requisição em USD", "maxLatencyMs": "Latência máxima em milissegundos", "weights": "Pesos JSON ex: {\"latency\":0.7,\"cost\":0.3}", "top": "Número de candidatos a exibir (padrão: 5)", "explain": "Imprimir justificativa no stderr", "switch": "Ativar o combo mais bem classificado" } }, "oneproxy": { "description": "Gerenciar o pool de proxies OneProxy", "stats": { "provider": "Filtrar por provider", "period": "Período de tempo (padrão: 24h)" }, "fetch": { "description": "Buscar proxies do pool", "count": "Número de proxies a buscar (padrão: 1)", "type": "Tipo de proxy: http|socks5 (padrão: http)" }, "rotate": { "description": "Forçar rotação de proxy", "provider": "Provider para rotacionar", "connectionId": "ID de conexão específica para rotacionar" }, "config": { "description": "Exibir ou atualizar configuração do OneProxy", "enabled": "Habilitar pool de proxies (true|false)", "poolSize": "Tamanho do pool", "providerSource": "URL do provedor de proxies", "rotationPolicy": "Política de rotação: sticky|per-request|periodic" }, "pool": { "description": "Listar pool de proxies atual com métricas" } }, "open": { "description": "Abrir uma página específica do dashboard OmniRoute no navegador", "url": "Apenas imprime a URL, sem abrir o navegador" }, "telemetry": { "description": "Acessar dados de telemetria agregados", "summary": { "description": "Exibir resumo de telemetria agregado", "period": "Período: 24h|7d|30d (padrão: 24h)", "compareTo": "Comparar com período anterior" }, "export": { "description": "Exportar eventos de telemetria para JSONL", "out": "Caminho do arquivo de saída (padrão: telemetry.jsonl)", "period": "Período para exportação (padrão: 7d)" } }, "sync": { "description": "Sincronizar configuração entre instâncias OmniRoute", "push": { "description": "Enviar config para cloud ou instância remota", "target": "Destino (cloud ou context:nome)", "bundle": "Partes do bundle para sincronizar", "dryRun": "Visualizar sem aplicar" }, "pull": { "description": "Baixar config da cloud ou remoto", "source": "Origem (cloud ou context:nome)", "merge": "Mesclar com config existente", "replace": "Substituir config existente", "dryRun": "Visualizar sem aplicar" }, "diff": { "source": "Contexto de origem", "target": "Contexto de destino" }, "bundle": { "description": "Exportar config como arquivo bundle", "include": "Partes a incluir (separadas por vírgula)" }, "import": { "description": "Importar arquivo bundle", "dryRun": "Validar sem aplicar" }, "initialize": { "fromCloud": "Inicializar a partir de backup na cloud" }, "tokens": { "description": "Gerenciar tokens de sincronização", "create": { "name": "Nome do token", "scope": "Escopo do token", "ttl": "TTL do token (ex: 30d)" }, "revoke": { "yes": "Pular confirmação" } }, "resolve": { "description": "Resolver conflitos de sincronização interativamente" } }, "config": { "contexts": { "description": "Gerenciar contextos/perfis de servidor (add, use, list, show, remove, rename, export, import)" }, "lang": { "description": "Gerenciar idioma de exibição do CLI", "getDescription": "Exibir o código de idioma atualmente ativo", "setDescription": "Definir o idioma de exibição e salvar na configuração", "listDescription": "Listar todos os idiomas disponíveis", "listTitle": "Idiomas Disponíveis", "current": "Idioma: {code} ({name})", "saved": "Idioma definido como {code} ({name}).", "noCode": "Código de idioma obrigatório. Execute 'omniroute config lang list' para ver os códigos disponíveis.", "unknown": "Código de idioma desconhecido: {code}. Execute 'omniroute config lang list' para ver os códigos disponíveis.", "alreadySet": "O idioma já está definido como {code}.", "envHint": "Dica: você também pode definir OMNIROUTE_LANG={code} no seu ambiente." } }, "completion": { "description": "Gerar ou instalar scripts de completion do shell", "zsh": "Imprimir script de completion para zsh", "bash": "Imprimir script de completion para bash", "fish": "Imprimir script de completion para fish", "install": "Instalar completion globalmente para o shell detectado", "refresh": "Atualizar cache de combos/providers/models" }, "logs": { "description": "Streaming ou exportação de logs de request", "follow": "Transmitir logs em tempo real", "filter": "Filtrar por nível (error,warn,info) — separados por vírgula", "lines": "Número de linhas a buscar", "timeout": "Timeout de conexão em ms", "baseUrl": "URL base da API do OmniRoute", "requestId": "Filtrar por ID do request", "apiKey": "Filtrar por chave de API", "combo": "Filtrar por nome do combo", "status": "Filtrar por código HTTP", "durationMin": "Duração mínima do request em ms", "durationMax": "Duração máxima do request em ms", "export": "Salvar logs em arquivo (json/jsonl/csv)", "exported": "Logs salvos em {path}", "stopped": "Stream de logs interrompido.", "streamError": "Erro no stream de logs: {message}" }, "tray": { "description": "Controlar o ícone na bandeja do sistema", "show": "Mostrar o ícone na bandeja (se o servidor estiver rodando com --tray)", "hide": "Ocultar o ícone na bandeja", "quit": "Encerrar OmniRoute via bandeja" }, "autostart": { "description": "Gerenciar inicialização automática do OmniRoute no login", "enable": "Habilitar inicialização automática no login", "disable": "Desabilitar inicialização automática no login", "toggle": "Alternar inicialização automática no login", "status": "Mostrar status de inicialização automática" }, "runtime": { "description": "Gerenciar dependências nativas do runtime", "check": "Verificar status das deps nativas no diretório de runtime", "repair": "Reinstalar deps nativas no diretório de runtime", "repair_force": "Forçar reinstalação mesmo se estiver válido", "clean": "Remover diretório de runtime (libera espaço em disco)", "clean_yes": "Pular confirmação" }, "repl": { "description": "REPL interativo multi-turn com LLM", "model": "Modelo a usar (padrão: auto)", "combo": "Nome do combo a usar", "system": "System prompt", "resume": "Retomar sessão salva pelo nome" }, "plugin": { "description": "Gerenciar plugins CLI (omniroute-cmd-*)", "list": "Listar plugins instalados", "install": "Instalar plugin do npm ou caminho local", "remove": "Remover plugin instalado", "info": "Mostrar detalhes de um plugin instalado", "search": "Buscar plugins disponíveis no npm", "update": "Atualizar plugin(s) instalado(s)", "scaffold": "Gerar boilerplate de novo plugin" }, "launch": { "description": "Inicia o Claude Code apontando para o OmniRoute (local ou remoto, com --profile)", "token": "Token que o cliente Claude deve enviar (ANTHROPIC_AUTH_TOKEN)", "notRunning": "OmniRoute não está acessível em {port}. Inicie com 'omniroute serve'.", "notFound": "O CLI 'claude' não foi encontrado no PATH." }, "setupClaude": { "description": "Gera profiles do Claude Code em ~/.claude/profiles a partir do catálogo de modelos do OmniRoute" }, "connect": { "description": "Conecta a um servidor OmniRoute remoto e entra no modo remoto" }, "tokens": { "description": "Gerencia tokens de acesso CLI com escopo (modo remoto)" }, "configure": { "description": "Escolhe um provedor+modelo do servidor ativo e grava uma configuração de CLI local" }, "launchCodex": { "description": "Inicia o Codex CLI apontando para o OmniRoute (local ou VPS remoto)" }, "setupCodex": { "description": "Gera os arquivos de perfil ~/.codex a partir do catálogo de modelos ao vivo do OmniRoute" } }