@wrongstack/webui 1.0.26 → 1.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AgentRosterView-udJ14GYq.js → AgentRosterView-BJ-1SQOm.js} +1 -1
- package/dist/assets/{AnalyticsDashboard-DwF-0cUA.js → AnalyticsDashboard-FYrD8BFQ.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-DpBGeZv_.js → AudienceMemoryPanel-BghMZicW.js} +1 -1
- package/dist/assets/{ChangesView-BfM0T_aS.js → ChangesView-B3uQtZGR.js} +1 -1
- package/dist/assets/{ChimeraReviewsView-Q_5C4DU1.js → ChimeraReviewsView-CBRbTHGM.js} +1 -1
- package/dist/assets/{ChronicleDashboard-D6LnZzhy.js → ChronicleDashboard-B1E-_u64.js} +1 -1
- package/dist/assets/{CodeEditor-DonrWH9u.js → CodeEditor-CbcWuMGV.js} +1 -1
- package/dist/assets/{CodeMap-Dxtc378S.js → CodeMap-WOfveRTG.js} +1 -1
- package/dist/assets/{CronJobsPanel-Cn2PQO_p.js → CronJobsPanel-DOFA5WVq.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-Mc5py-kJ.js → DeadCodeScanPanel-4ToPZX7e.js} +1 -1
- package/dist/assets/{DebugDashboard-D0LRcT4J.js → DebugDashboard-DAsNHSpG.js} +1 -1
- package/dist/assets/{DesignGalleryView-DAD-wRUc.js → DesignGalleryView-Dd5YnKhs.js} +1 -1
- package/dist/assets/{GoalView-CqeSw0tK.js → GoalView-BaDGAXuQ.js} +1 -1
- package/dist/assets/{KanbanView-V-bkFftp.js → KanbanView-CG8bVhpR.js} +1 -1
- package/dist/assets/{MailboxDetailView-CTEjap3r.js → MailboxDetailView-COxz-eEJ.js} +1 -1
- package/dist/assets/{MemoryDrawer-RCduY0FV.js → MemoryDrawer-4lDXuHCi.js} +1 -1
- package/dist/assets/{MemoryManager-B-p6-Bic.js → MemoryManager-DQlnpch1.js} +1 -1
- package/dist/assets/{ProcessMonitor-B9tpPo4r.js → ProcessMonitor-BUjfYqG3.js} +1 -1
- package/dist/assets/{PromptJournalView-DVNqlac9.js → PromptJournalView-o2dmPrwg.js} +1 -1
- package/dist/assets/{ProviderTestView-mmfpnAbZ.js → ProviderTestView-5wNbI46L.js} +1 -1
- package/dist/assets/{QueuePanel-BB9qozjm.js → QueuePanel-DP9D99DX.js} +1 -1
- package/dist/assets/{RefreshDebugView-CCCWzq29.js → RefreshDebugView-CB7_a_TI.js} +1 -1
- package/dist/assets/{RepositoryHistoryView-RQVRkkUU.js → RepositoryHistoryView-C_zpYLY6.js} +1 -1
- package/dist/assets/{RequirementIntakeView-D_JRhgzW.js → RequirementIntakeView-CahKEHJn.js} +1 -1
- package/dist/assets/{SageTabs--k2hQTvl.js → SageTabs-5Z2PR11S.js} +2 -2
- package/dist/assets/{SddFlowGraph-DKrrRXKy.js → SddFlowGraph-DSoWnlIt.js} +1 -1
- package/dist/assets/{SddHub-B5XO56oY.js → SddHub-0q2EpwYz.js} +2 -2
- package/dist/assets/{SessionInspectView-j3VJwXNi.js → SessionInspectView-CbDFR_tP.js} +1 -1
- package/dist/assets/{SessionList-CCVHBseu.js → SessionList-DhQK7JnP.js} +1 -1
- package/dist/assets/{SessionsDashboard-DsM7sXQw.js → SessionsDashboard-DNLDczSd.js} +1 -1
- package/dist/assets/{SetupScreen-DeuR8Y8S.js → SetupScreen-C-hpHQQ9.js} +1 -1
- package/dist/assets/{SkillDetailView-BeZyGIpW.js → SkillDetailView-Bir-Kdm4.js} +1 -1
- package/dist/assets/TechStackView-CJ3Abnwg.js +2 -0
- package/dist/assets/{TerminalPanel-BVJ5w-5R.js → TerminalPanel-8WHNTeQK.js} +1 -1
- package/dist/assets/{activity-BS2aW_NN.js → activity-B9WjS_Cz.js} +1 -1
- package/dist/assets/{activity-Cd0qM2Hx.js → activity-BB7AHL0U.js} +1 -1
- package/dist/assets/{activity-CR2KFruY.js → activity-Bd0XmdqX.js} +1 -1
- package/dist/assets/{activity-fI3Jy_jD.js → activity-BvmJte2K.js} +1 -1
- package/dist/assets/{activity-bBAOetvE.js → activity-DOEbDWqw.js} +1 -1
- package/dist/assets/{activity-DyXRoY2s.js → activity-beTxIN7V.js} +1 -1
- package/dist/assets/{activity-t6fUmVjo.js → activity-t-0KDhv5.js} +1 -1
- package/dist/assets/{chat-store-uzGtJfDz.js → chat-store-BMwP_sS0.js} +1 -1
- package/dist/assets/{common-DvjdaRhB.js → common-2kj0c3pG.js} +1 -1
- package/dist/assets/{common-D0QL7rwb.js → common-BAvh8XBp.js} +1 -1
- package/dist/assets/{common-opV6EoLd.js → common-CKwGvEQD.js} +1 -1
- package/dist/assets/{common-DJRPtYAt.js → common-CUd7l34J.js} +1 -1
- package/dist/assets/{common-BtyQBZBN.js → common-DmS4Wp1i.js} +1 -1
- package/dist/assets/common-PC103akE.js +1 -0
- package/dist/assets/{common-Bjl7V12m.js → common-zatZ4s-Z.js} +1 -1
- package/dist/assets/config-store-Cb4iyhGv.js +21 -0
- package/dist/assets/i18n-CzTjKT4L.js +3 -0
- package/dist/assets/{index-B4ELbNoz.js → index-Ci22AODp.js} +82 -81
- package/dist/assets/index-DfU9PQg8.css +1 -0
- package/dist/assets/{roster-ws-szSqUkqP.js → roster-ws-D-DCMdrg.js} +1 -1
- package/dist/assets/{settings-ClDQ01ie.js → settings-7W0ofid0.js} +1 -1
- package/dist/assets/{settings-BfNJfO4z.js → settings-BAArGYGW.js} +1 -1
- package/dist/assets/{settings-BMHZcBqe.js → settings-Btyr_M2v.js} +1 -1
- package/dist/assets/{settings-Dl_QM2QZ.js → settings-BwL_DVmc.js} +1 -1
- package/dist/assets/{settings-Da3EIcna.js → settings-C7ybAkyi.js} +1 -1
- package/dist/assets/{settings-BQ5J8WXE.js → settings-CgtL8eYb.js} +1 -1
- package/dist/assets/{settings-DD31lC4f.js → settings-D57Fd8Z8.js} +1 -1
- package/dist/assets/{stores-Cx52UOxM.js → stores-Svlibwo5.js} +2 -2
- package/dist/components/MessageBubble/FailedRunContinue.d.ts +7 -3
- package/dist/components/TechStackView/AnalyzeControls.d.ts +25 -0
- package/dist/components/TechStackView/RemediationTab.d.ts +20 -0
- package/dist/components/TechStackView/TrendsTab.d.ts +17 -0
- package/dist/hooks/ws-handlers/chat-handlers.d.ts +12 -0
- package/dist/hooks/ws-handlers/mcp-status-handlers.d.ts +6 -0
- package/dist/hooks/ws-handlers/techstack-handlers.d.ts +7 -0
- package/dist/index.html +7 -7
- package/dist/index.js +2639 -1487
- package/dist/stores/index.d.ts +1 -1
- package/dist/stores/local-prefs-defaults.d.ts +2 -1
- package/dist/stores/provider-quota-store.d.ts +5 -0
- package/dist/stores/techstack-store.d.ts +140 -1
- package/dist/stores/types.d.ts +5 -0
- package/dist/types/client-message.d.ts +3 -3
- package/dist/types/jev.d.ts +2 -0
- package/dist/types/server-message-mcp.d.ts +2 -0
- package/dist/types/server-message-system.d.ts +11 -0
- package/package.json +10 -9
- package/dist/assets/TechStackView-CpSMRQE0.js +0 -2
- package/dist/assets/common-DPPTV3yw.js +0 -1
- package/dist/assets/config-store-P5_updTQ.js +0 -21
- package/dist/assets/i18n-t7rIS4DB.js +0 -3
- package/dist/assets/index-qdrakcnP.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./config-store-
|
|
1
|
+
import{j as e}from"./config-store-Cb4iyhGv.js";import{n as t}from"./utils-B21Devim.js";var n=new Map,r=15e3;function i(e){return e.startsWith(`agent-roster.`)&&e.length>13?e.slice(13):void 0}function a(a,o,s){return new Promise((c,l)=>{let u=e(),d=t(),f=!1,p=[],m=e=>{if(!f){f=!0;for(let e of p)e();p=[],n.delete(a),e()}},h=e=>{let t=e,n=t&&typeof t==`object`?t.payload??t:e;if(!(n&&typeof n==`object`&&`requestId`in n&&typeof n.requestId==`string`&&n.requestId!==d)){if(n&&typeof n==`object`&&`error`in n&&typeof n.error==`string`){m(()=>l(Error(n.error)));return}m(()=>c(n))}};u.connect().then(()=>{if(f)return;let e=n.get(a);e&&(e.cleanup(),e.reject(Error(`Roster request "${a}" superseded by new request`)),n.delete(a)),n.set(a,{reject:e=>m(()=>l(e)),cleanup:()=>{for(let e of p)e();p=[],f||n.delete(a)}});let t=u.on(a,h);p.push(t);let c=i(a);if(c){let e=u.on(c,h);p.push(e)}if(s){if(s.aborted){m(()=>l(new DOMException(`Aborted`,`AbortError`)));return}let e=()=>m(()=>l(new DOMException(`Aborted`,`AbortError`)));s.addEventListener(`abort`,e,{once:!0}),p.push(()=>s.removeEventListener(`abort`,e))}let g=setTimeout(()=>m(()=>l(Error(`Roster request "${a}" timed out`))),r);p.push(()=>clearTimeout(g)),u.send({type:a,payload:{...o,requestId:d}})}).catch(e=>m(()=>l(e)))})}export{a as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Configurações`,t=`Configure every aspect of your agent workspace`,n={browse:`Explorar`,search:`Buscar configuração…`,clearSearch:`Limpar busca`,noResults:`Nenhuma configuração encontrada`,workspace:`Área de trabalho`,models:`Modelos e conexões`,behavior:`Comportamento do agente`,system:`Sistema e segurança`,label:`Seções de configurações`},r={title:`Teste de provedor`,description:`Teste provedores e assinaturas salvos; verifique cotas, autenticação, latência e limites de tokens.`,open:`Abrir teste de provedor`},i={general:`Geral`,provider:`Provedor`,connection:`Conexões`,agent:`Agente`,execution:`Execução`,fallbacks:`Fallbacks`,routing:`Roteamento`,fleet:`Frota`,integrations:`Integrações`,chimera:`Chimera`,context:`Contexto`,logs:`Registros`,security:`Segurança`,display:`Exibição`,displayDesc:`Aparência do workbench, chip de status, temporizadores de refine e alternâncias de injeção de ferramenta/memória — reflete o SettingsPicker do TUI.`,generalDesc:`Aparência, idioma e preferências de exibição — espelha o seletor de configurações da TUI.`,providerDesc:`Chaves de API, provedores salvos e o catálogo de provedores.`,connectionDesc:`URL do servidor WebSocket e saúde da conexão.`,agentDesc:`Autonomia, refinamento de prompts, raciocínio e roteamento de modelos.`,executionDesc:`Limites de iterações, comportamento de saída e disjuntor de processo.`,fallbacksDesc:`Cadeia de fallback de modelos, favoritos e perfis de fallback nomeados.`,routingDesc:`Matriz de roteamento de modelos por fase e por função.`,fleetDesc:`Concorrência de subagentes, streaming e previsão do próximo passo.`,integrationsDesc:`Cliente HQ, servidores MCP e notificações do Telegram.`,chimeraDesc:`Configuração do agente de revisão de código pós-sessão.`,contextDesc:`Flags de recursos, estratégia de contexto, compactador e controles de plugins.`,logsDesc:`Nível de log, detalhe de auditoria, escopo de acesso ao sistema de arquivos e stream de depuração.`,securityDesc:`Controle de decisão Brain, agente sombra e acesso a ferramentas.`,fonts:`Fontes`,fontsDesc:`Fontes de interface, chat, editor e terminal; tamanho, altura de linha e ligaduras.`,jev:`Jev`,jevDesc:`TypeSafe / Jev`},a={heading:`Modelo`,loading:`Carregando modelos...`,notFound:`Nenhum modelo encontrado para este provedor. O catálogo pode estar vazio ou ainda carregando.`,selectProviderFirst:`Selecione um provedor primeiro`,context:`{{count}}k contexto`},o={providerHealth:{heading:`Saúde dos provedores`,hint:`Quais pares de provedor/modelo estão saudáveis, degradados ou bloqueados e por quê.`,refresh:`Atualizar`,empty:`Nenhum provedor monitorado ainda.`,summary:`{{blocked}} bloqueados · {{degraded}} degradados · {{healthy}} saudáveis`,totalFailures:`falhas`,rateLimits:`limites de taxa`,state:{blocked:`Bloqueado`,degraded:`Degradado`,healthy:`Saudável`},blocked:`Bloqueado`,degraded:`Degradado`,consecutive:`falhas consecutivas`,retryNow:`Tentar novamente`,clear:`Limpar`,allHealthy:`Todos os provedores monitorados estão saudáveis.`,statSuccesses:`sucessos`,statFailures:`falhas`,statRateLimits:`limites de taxa`,statConsecutive:`consecutivas`,lastError:`Último erro`,recentErrors:`Erros recentes`,autoRecovery:`Recuperação automática às`,expired:`Expirado`,remainingSecs:`{{secs}} s`,remainingMins:`{{mins}} min`,remainingHours:`{{hours}} h {{mins}} min`,explainHealthy:`Respondendo normalmente.`,explain402:`Limite de cobrança atingido (402). Bloqueado por cerca de 15 minutos até a redefinição da cota.`,explain403quota:`Limite de uso deste ciclo atingido. Bloqueado até a próxima redefinição (cerca de 15 min).`,explain403auth:`Erro de permissão/autenticação. Não é possível repetir — verifique a chave de API e os direitos de acesso.`,explain429:`Limite de taxa atingido (429). Restrição temporária com recuperação automática.`,explain529:`Servidor sobrecarregado (529). O provedor está sob carga intensa.`,explain5xx:`Erro do servidor ({{status}}). Problema temporário no backend.`,explainNetwork:`Rede inacessível. Verifique sua conexão ou a página de status do provedor.`,explainTimeout:`Tempo limite da solicitação excedido (408). O provedor demorou para responder.`,explainStreamHang:`Fluxo interrompido (599). O provedor parou durante a resposta.`,explainQuota:`Cota esgotada. Bloqueado até a janela de redefinição.`,explainUnknown:`Tipo de falha: {{kind}} / status: {{status}}.`},wsUrlLabel:`URL do servidor WebSocket`,wsUrlPlaceholder:`ws://localhost:3456`,wsUrlHint:`URL do servidor WebSocket do agente. O servidor é executado junto com o CLI.`,startingHeading:`Iniciando o servidor WebSocket`,startingBody:`Para desenvolvimento, execute ./dev.ps1 da raiz do repo (opcionalmente defina WS_HOST/WS_PORT antes). Caso contrário, inicie a WebUI com a CLI: wstack --webui.`,healthHeading:`Saúde das conexões`,healthHint:`Relatório ao vivo de propriedade, armazenamento, fila, observador e latência dos serviços.`,healthRefresh:`Atualizar`,healthLoading:`Verificando serviços…`,healthUnknown:`Saúde desconhecida`,healthDisconnected:`O WebSocket da WebUI está desconectado.`,healthRestartRequired:`Reinicie o backend uma vez para ativar o relatório de conexões.`,healthOptional:`Sob demanda`,endpointInvalidBadge:`caminho do socket muito longo`,endpointInvalidRemedy:`O caminho do socket IPC excede o limite de comprimento desta plataforma, então o daemon compartilhado não pode iniciar. As consultas recorrem a um modo local de processo mais lento. Remédio: defina um TMPDIR mais curto (ex. export TMPDIR=/tmp) e reinicie o WrongStack.`,healthCounts:`{{healthy}} saudáveis · {{attention}} atenção · {{sleeping}} inativos`,healthOverall:{healthy:`Serviços obrigatórios saudáveis`,degraded:`Serviço obrigatório degradado`,error:`Serviço obrigatório indisponível`},healthStatus:{healthy:`Saudável`,degraded:`Degradado`,offline:`Inativo`,unavailable:`Indisponível`,error:`Erro`},services:{kanban:{label:`Kanban IPC`},mailbox:{label:`Mailbox IPC`}},serviceActionRestart:`Reiniciar {{label}}`,webuiTransport:`Transporte do WebUI`,serviceAutoRestarting:`Reiniciando automaticamente…`},s={removeProfileConfirm:`Remover o perfil “{{alias}}” e todas as suas chaves?`,removeProfileBody:`As credenciais salvas e as referências a esta conta nas rotas de modelos serão removidas.`,deleteKeyConfirm:`Excluir a chave “{{label}}” de “{{alias}}”?`,addProfile:`Adicionar conta / perfil de autenticação`,profileAlias:`Alias do perfil de autenticação`,profileHint:`Cada conta tem seu próprio alias e credenciais. Os destinos de fallback são alias/modelo.`,profileExists:`O perfil “{{alias}}” já existe. Escolha outro alias.`,operationTimeout:`O servidor não respondeu. Verifique a conexão e tente novamente.`,savedProviderCount_one:`{{count}} provedor`,savedProviderCount_other:`{{count}} provedores`,keyCount_one:`{{count}} chave configurada`,keyCount_other:`{{count}} chaves configuradas`,activeKeyCount_one:`{{count}} chave ativa`,activeKeyCount_other:`{{count}} chaves ativas`,subscriptionHeading:`Login com assinatura`,apiKeysHeading:`Provedores de chave de API`,apiKeysBody:`Escolha um provedor do catálogo e adicione uma chave de API, ou gerencie os provedores salvos.`,tabCatalog:`Catálogo`,tabSaved:`Salvos ({{count}})`,searchPlaceholder:`Pesquisar entre {{count}} provedores (nome / id / família)…`,loadingCatalog:`Carregando catálogo...`,noMatch:`Nenhum provedor corresponde a "{{query}}".`,configured:`Configurado`,reachable:`Acessível`,envVar:`ENV: {{var}}`,modelCount_one:`{{count}} modelo`,modelCount_other:`{{count}} modelos`,keyPlaceholder:`Chave de API do {{name}}`,orEnv:`Ou defina {{env}} no ambiente.`,addApiKey:`Adicionar chave de API`,manageKeys:`Gerencie suas chaves de API e configurações de provedor`,addProvider:`Adicionar provedor`,addCustomHeading:`Adicionar provedor personalizado`,localServers:`Servidores locais — clique para preencher:`,providerIdPlaceholder:`ID do provedor (ex. my-llm-server)`,apiKeyOptionalPlaceholder:`Chave de API (opcional)`,noSaved:`Nenhum provedor salvo`,noSavedHint:`Adicione um provedor para começar`,apiKeysLabel:`Chaves de API`,addKey:`Adicionar chave`,noKeys:`Nenhuma chave configurada`,active:`Ativa`,setActive:`Definir como ativa`,keyLabelPlaceholder:`Rótulo da chave (ex. default, production)`,apiKeyPlaceholder:`Chave de API`,saveKey:`Salvar chave`,savedToast:`Chave salva para {{name}}`},c={addCustom:`Adicionar modelo personalizado`,addCustomTitle:`Adicionar modelo personalizado`,addFromCatalog:`Adicionar do catálogo`,catalogSearchPlaceholder:`Pesquisar no catálogo models.dev…`,catalogSearchTitle:`Pesquisar no catálogo models.dev`,colActions:`Ações`,colCaps:`Capacidades`,colContext:`Contexto`,colCost:`Custo`,colModalities:`Modalidades`,colModel:`Modelo`,colOutput:`Saída`,colSource:`Origem`,editModel:`Editar modelo`,emptyState:`Nenhum modelo ainda — adicione do catálogo ou crie um modelo personalizado.`,fieldContext:`Janela de contexto`,fieldCostInput:`Custo de entrada`,fieldCostOutput:`Custo de saída`,fieldDescription:`Descrição`,fieldFamily:`Família`,fieldInputLimit:`Limite de entrada`,fieldInputModalities:`Modalidades de entrada`,fieldLastUpdated:`Última atualização`,fieldName:`Nome`,fieldOutput:`Saída máxima`,fieldOutputModalities:`Modalidades de saída`,fieldReleaseDate:`Data de lançamento`,modelAdded:`{{model}} adicionado`,modelRemoved:`{{model}} removido`,modelSaved:`{{model}} salvo`,noResults:`Nenhum modelo encontrado`,removeModel:`Remover modelo`,sectionCapabilities:`Indicadores de capacidades`,sectionDates:`Datas`,sectionIdentity:`Identidade`,sectionLimits:`Limites`,sectionModalities:`Modalidades`,sectionPricing:`Preços (por 1M de tokens, USD)`,tabForm:`Formulário`,tabRawJson:`JSON bruto`,typeToSearch:`Digite para pesquisar…`,useModel:`Usar {{model}}`,usingModel:`Usando {{model}}`,filterPlaceholder:`Filtrar modelos…`},l={status:{connected:`Conectado`,connecting:`Conectando`,sleeping:`Inativo`,discovering:`Descobrindo`,error:`Erro`,stopped:`Parado`,unknown:`Desconhecido`},disabled:`Os servidores MCP estão desativados.`,wakeTitle:`Acordar servidor`,sleepTitle:`Colocar em repouso`,discoverTitle:`Descobrir ferramentas`,editTitle:`Editar`,removeTitle:`Remover`,statusLabel:`Status:`,enabledLabel:`Ativado:`,yes:`Sim`,no:`Não`,descriptionLabel:`Descrição:`,pidLabel:`PID:`,errorLabel:`Erro:`,toolsLabel:`Ferramentas ({{count}}):`,noTools:`Nenhuma ferramenta descoberta ainda`,serverNameRequired:`O nome do servidor é obrigatório`,dialogTitleEdit:`Editar servidor MCP`,dialogTitleAdd:`Adicionar servidor MCP`,dialogTitleAddCustom:`Adicionar servidor MCP personalizado`,fieldName:`Nome`,fieldNamePlaceholder:`ex. github, filesystem`,fieldTransport:`Transporte`,fieldUrl:`URL`,fieldCommand:`Comando`,fieldCommandPlaceholder:`ex. npx`,fieldArgs:`Args`,fieldArgsHint:`(separados por espaços)`,fieldArgsPlaceholder:`ex. -y @modelcontextprotocol/server-github`,fieldEnv:`Variáveis de ambiente`,fieldEnvHint:`(KEY=valor, uma por linha)`,fieldDescription:`Descrição`,fieldDescriptionPlaceholder:`Servidor MCP do GitHub para acesso ao repositório`,enableServer:`Ativar servidor`,lazyConnect:`Conexão preguiçosa`,lazyConnectHint:`(não inicia até a primeira chamada; hiberna quando ocioso)`,saveChanges:`Salvar alterações`,addServer:`Adicionar servidor`,requires:`Requer: {{vars}}`,added:`Adicionado`,heading:`Servidores MCP`,summary:`{{connected}} conectados · {{sleeping}} inativos · {{total}} no total`,addCustom:`Personalizado`,tabRecommended:`Recomendados`,tabServers:`Servidores`,tabAddCustom:`Personalizado`,recommendedBody:`Adição com um clique para servidores MCP populares. Clique em Adicionar para preencher a configuração e depois confirme. Servidores que exigem credenciais precisarão de suas variáveis de ambiente antes do uso.`,loadingServers:`Carregando servidores...`,noServers:`Nenhum servidor MCP configurado`,noServersHint:`Mude para a aba Recomendados para adicionar servidores populares, ou Personalizado para os seus.`,addCustomBody:`Configure um servidor MCP personalizado com transporte stdio, SSE ou HTTP.`,addCustomBodyHint:`Para servidores populares, use a aba Recomendados — tudo já está pré-configurado.`,removeConfirmTitle:`Remover o servidor "{{name}}"?`,removeConfirmBody:`Isso remove o servidor MCP da sua configuração.`,toastAdded:`Servidor "{{name}}" adicionado`,toastRemoved:`Servidor "{{name}}" removido`,toastDiscovered:`Descobertas {{count}} ferramentas de "{{name}}"`,toastSleeping:`O servidor "{{name}}" está inativo`,toastConnected:`Servidor "{{name}}" conectado`,toastReconnected:`Servidor "{{name}}" reconectado`,toastDisconnected:`Servidor "{{name}}" desconectado: {{reason}}`,toastError:`Servidor "{{name}}" erro: {{error}}`,authRequired:`Login necessário`,authorized:`Autorizado`,authorizeTitle:`Autorizar com OAuth`,authSignOutTitle:`Remover credenciais OAuth`,authSignOutBody:`Remover as credenciais OAuth salvas de "{{name}}"? Você precisará autorizar novamente.`,authPromptTitle:`Conclua o login em "{{name}}"`,authPromptBody:`Abra a página de autorização e aprove o acesso. Este painel é atualizado quando o provedor redirecionar de volta.`,authPromptOpen:`Abrir página de autorização`,toastAuthorized:`"{{name}}" autorizado`,toastAuthFailed:`"{{name}}" precisa de autorização{{suffix}}`},u={title:`Limpar a allowlist salva?`,body_one:`Isso removerá o modelo fixado para {{provider}}. O seletor de modelos voltará ao catálogo models.dev.`,body_other:`Isso removerá os {{count}} modelos fixados para {{provider}}. O seletor de modelos voltará ao catálogo models.dev.`,undoHint:`Você pode desfazer por 8 segundos após confirmar.`,keepTitle:`Manter allowlist (Esc)`,clearTitle:`Limpar allowlist (Enter)`,clear:`Limpar allowlist`},d={termsWarning:`Entre com uma assinatura em vez de uma chave de API. Usar uma assinatura fora de seu cliente oficial pode violar os Termos do provedor — sua conta pode ser limitada ou banida. Uma chave de API é o caminho sancionado para uso programático.`,signIn:`Entrar`,waitingBrowser:`Aguardando seu login…`,openSignIn:`Abrir página de login`,pasteLoopbackBusy:`Porta loopback ocupada — cole a URL de redirecionamento`,pasteCantReach:`O navegador não alcança este servidor? Cole a URL de redirecionamento`,submit:`Enviar`,enterCode:`Insira este código na página de verificação:`,openVerification:`Abrir página de verificação`,waitingCode:`Aguardando autorização…`,exchanging:`Trocando tokens…`,fetchingModels:`Buscando modelos…`,signedIn:`Conectado.`,signedInToast:`Conectado — {{provider}}`,signInFailed:`Login falhou`,accountCount_one:`{{count}} conta salva`,accountCount_other:`{{count}} contas salvas`,active:`Ativo`,inactive:`Inativo`,retry:`Repetir`,retryLogin:`Reautenticar esta conta`,newAccount:`Nova conta`,aliasPlaceholder:`ex. {{default}}`},f={showThinkingLabel:`Mostrar registros de raciocínio`,showThinkingHint:`Exibe os blocos de raciocínio concluídos no histórico do chat.`,groupToolCallsLabel:`Agrupar chamadas de ferramentas`,groupToolCallsHint:`Agrupa chamadas consecutivas de ferramentas em um único indicador.`,autoCollapseInputLabel:`Recolher editor sob o histórico`,autoCollapseInputHint:`Ao carregar uma sessão com mensagens, recolher o editor sob o histórico. Desativado por padrão — o editor permanece expandido até ser recolhido manualmente.`,themeHeading:`Tema`,themeLight:`Claro`,themeDark:`Escuro`,themeSystem:`Sistema`,themeSystemHint:`Sistema segue a preferência claro/escuro do seu sistema operacional.`,preferencesHeading:`Preferências`,compactDensity:`Densidade compacta`,compactDensityHint:`Espaçamento mais estreito em todo o chat.`,soundOnComplete:`Som ao concluir`,soundOnCompleteHint:`Reproduz um toque suave quando uma execução termina.`,titleAnimation:`Animação do título`,titleAnimationHint:`Mostrar título animado do terminal no CLI.`,thinkingWordLabel:`Palavra de raciocínio (CLI/TUI)`,thinkingWordHint:`Palavra exibida no chip de status da TUI. Uma única palavra curta.`,statuslineModeLabel:`Modo da linha de status (CLI/TUI)`,statuslineModeHint:`Densidade da linha de status da TUI.`,statuslineModeDetailed:`Detalhado`,statuslineModeMinimum:`Mínimo`,statuslineModeNoColor:`Sem cor`,animationStyleLabel:`Estilo de animação (CLI/TUI)`,animationStyleHint:`Animação do chip de trabalho da TUI.`,animationStyleRainbow:`Arco-íris`,animationStyleWave:`Onda`,animationStylePulse:`Pulso`,animationStyleDots:`Pontos`,animationStyleBreathe:`Respiração`,animationStyleStatic:`Estático`,animationStyleCycle:`Ciclo`,languageHeading:`Idioma`,languageLabel:`Idioma da interface`,languageHint:`Altera apenas o texto da interface. Prompts, skills e a saída do modelo não são afetados.`,paletteHeading:`Paleta de cores`,paletteSwitcherTitle:`Paleta de cores`,paletteHint:`Escolha a cor principal (e suas derivadas). As superfícies neutras permanecem as mesmas.`,paletteSignal:`Sinal`,paletteEmeraldGold:`Esmeralda e dourado`,paletteBlueNavy:`Azul-marinho`,palettePurplePink:`Roxo e rosa`,paletteCyanTeal:`Ciano e verde-azulado`,paletteRoseCopper:`Rosa e cobre`,paletteIndigoAmber:`Índigo e âmbar`,paletteSageSand:`Salvia e areia`,paletteSlateViolet:`Lousa e violeta`,paletteCoralMint:`Coral e hortelã`,paletteArcticEmber:`Ártico e brasa`,paletteMossRust:`Musgo e ferrugem`},p={autonomyHeading:`Autonomia e Comportamento`,autonomyModeLabel:`Modo de autonomia`,autonomyModeHint:`Quão independentemente o agente prossegue entre turnos.`,autonomyModeOff:`Desativado — controle manual total`,autonomyModeSuggest:`Sugerir — sugere os próximos passos`,autonomyModeAuto:`Auto — breve atraso de confirmação`,autonomyModeEternal:`Eterno — autônomo até o objetivo concluído`,autonomyModeEternalParallel:`Eterno Paralelo — frota multi-agente`,autoProceedDelayLabel:`Atraso de auto-prosseguir`,autoProceedDelayHint:`Milissegundos antes de o agente auto-prosseguir no modo Auto. 0 = imediato.`,yoloLabel:`Modo YOLO`,yoloHint:`Executar chamadas de ferramentas sem perguntar, exceto os tipos de dano listados abaixo.`,yoloConfirmHeading:`Ainda perguntar sobre`,yoloConfirmIntro:`O YOLO executa todo o resto sem supervisao. Estes sao os tipos de dano diante dos quais ele para e pergunta.`,yoloConfirmLockedNote:`Estes dois sempre perguntam. Eles escrevem os arquivos que decidem se voce sera consultado, entao desliga-los deixaria o agente desligar o proprio sistema de aprovacao.`,yoloKindLocked:`sempre pergunta`,yoloKind:{"disk-wipe":{label:`Apagar um disco`,hint:`mkfs, dd para um dispositivo bruto, format C:, fork bomb`},"system-halt":{label:`Desligar ou reiniciar`,hint:`shutdown, reboot`},"delete-outside":{label:`Apagar fora do projeto`,hint:`exclusao recursiva forcada que sai do projeto ou atinge uma raiz de sistema ou home`},"git-history":{label:`Reescrever o historico do git`,hint:`reset --hard, clean -f, push --force, filter-branch`},publish:{label:`Publicar ou implantar`,hint:`npm publish, docker push, kubectl delete namespace`},"download-and-run":{label:`Executar codigo baixado`,hint:`curl | sh e cargas inline que baixam e executam`},"bulk-delete":{label:`Apagar em massa`,hint:`find -exec rm, rmSync inline em muitos caminhos`},"agent-state":{label:`Escrever o estado do proprio WrongStack`,hint:`config.json, trust.json, auth.json`},"credential-bind":{label:`Vincular uma chave de API a um endpoint`,hint:`anexar uma chave conhecida a uma URL de provedor`}},refineHeading:`Refinamento de Prompt`,enableRefineLabel:`Ativar refinamento`,enableRefineHint:`Reescreve os prompts antes de enviar — instruções mais claras, melhores resultados.`,refineDelayLabel:`Atraso de refinamento`,refineDelayHint:`Contagem regressiva antes do envio automático do prompt refinado.`,refineLanguageLabel:`Idioma de refinamento`,refineLanguageHint:`Mantenha seu idioma ou traduza para inglês para o modelo.`,refineLanguageOriginal:`Original — mantenha seu idioma`,refineLanguageEnglish:`Inglês — traduzir para inglês`,refinerProviderLabel:`Provedor do refinador`,refinerProviderHint:`Id do provedor para o refinamento de objetivos. Vazio = usar o provedor da sessão.`,refinerProviderDefault:`Provedor da sessão`,refinerModelLabel:`Modelo do refinador`,refinerModelHint:`Id do modelo para o refinamento de objetivos. Vazio = usar o modelo da sessão.`,refinerModelDefault:`Modelo da sessão`,refinerProfileLabel:`Perfil de fallback do refinador`,refinerProfileHint:`Perfil de fallback nomeado para refinamento de objetivos. Substitui o provedor e o modelo.`,refinerProfileDefault:`Nenhum — usar provedor e modelo ou os padrões da sessão`,reasoningHeading:`Raciocínio e Cache`,reasoningModeLabel:`Modo de raciocínio`,reasoningModeHint:`Controla como o modelo usa o pensamento estendido. Auto = padrão do provedor.`,reasoningModeAuto:`Auto — padrão do provedor`,reasoningModeOn:`Ligado — forçar pensamento`,reasoningModeOff:`Desligado — desativar pensamento`,reasoningEffortLabel:`Esforço de raciocínio`,reasoningEffortAuto:`Auto (geral)`,reasoningEffortAutoHint:`Configuração geral: {{value}}`,reasoningEffortHint:`Quanto compute o modelo gasta pensando. Enviado apenas quando o modelo suporta.`,reasoningEffortNone:`Nenhum`,reasoningEffortMinimal:`Mínimo`,reasoningEffortLow:`Baixo`,reasoningEffortMedium:`Médio`,reasoningEffortHigh:`Alto`,reasoningEffortXhigh:`Muito alto`,reasoningEffortMax:`Máx`,preserveThinkingLabel:`Preservar pensamento`,preserveThinkingHint:`Mantém os blocos de raciocínio entre turnos para continuidade de contexto.`,cacheTtlLabel:`TTL de cache`,cacheTtlHint:`Tempo de vida do cache de prompt. 1h custa mais na escrita mas economiza em releituras (Anthropic).`,cacheTtlDefault:`Padrão — padrão do provedor`,cacheTtl5m:`5 minutos`,cacheTtl1h:`1 hora`,capsHint:`Use wstack models caps para verificar o que o modelo atual suporta. Configurações não suportadas são omitidas silenciosamente por requisição.`,routingHeading:`Roteamento de modelo`,routingRouteKey:`Chave de rota de modelo`,routingPhasesGroup:`Fases`,routingRolesGroup:`Funções {{label}}`,routingCustomGroup:`Rotas personalizadas existentes`,routingTargetAria:`Destino da rota de modelo`,routingTargetEmpty:`— Limpar rota —`,routingTargetProfilesGroup:`Perfis de fallback`,routingTargetModelsGroup:`Modelos (provedor/modelo)`,routingSet:`Definir`,routingReasoningModeAria:`Modo raciocínio nova rota`,routingReasoningEffortAria:`Esforço raciocínio nova rota`,routingReasoningPreserveAria:`Preservação raciocínio nova rota`,routingReasoningModeFor:`Modo raciocínio para {{key}}`,routingReasoningEffortFor:`Esforço raciocínio para {{key}}`,routingReasoningPreserveFor:`Preservação raciocínio para {{key}}`,noRoutes:`Ainda não há rotas de modelo.`,leaderModel:`modelo líder`,autonomyDelayMsLabel:`Atraso de continuação automática`,autonomyDelayMsHint:`Milissegundos antes de o agente continuar automaticamente no modo Auto. 0 = imediato.`,refineCountdownLabel:`Contagem regressiva de refinamento`,refineCountdownHint:`Período de carência antes do envio automático do prompt refinado (milissegundos).`,reasoningEffortModelSet:`níveis do modelo ativo`,reasoningEffortUnsupported:`Não oferecido por este modelo (suportados: {{levels}}) — a configuração será omitida.`},m={heading:`Execução`,maxIterationsLabel:`Iterações máx por run`,unlimitedLabel:`Ilimitado`,maxIterationsHint:`Teto rígido de turnos LLM por agent.run().`,autoProceedMaxIterationsLabel:`Iterações máx de auto-prosseguir`,autoProceedMaxIterationsHint:`Para o auto-prosseguir após N iterações. 0 = ilimitado.`,confirmExitLabel:`Confirmar antes de sair`,confirmExitHint:`Primeiro Ctrl+C aborta o trabalho, segundo confirma a saída.`,chimeLabel:`Som ao concluir`,chimeHint:`Campainha do terminal quando um run de agente termina.`,breakerLabel:`Disjuntor de processos`,breakerHint:`Bloqueia bash/exec após falhas repetidas; ao disparar, arma a contagem de kill/reset.`,breakerTimeoutLabel:`Tempo de kill/reset do disjuntor`,breakerTimeoutHint:`Atraso antes do kill/reset automático ao disparar. 0 = recuperação manual.`,availabilityHeading:`Provider/model availability calendar`,availabilityHint:`Prevent autonomous and overnight runs from using selected providers or models during recurring windows.`},h={heading:`Modelos fallback / round-robin`,body:`Quando o modelo ativo é rate-limitado (429/529), dá erro 5xx ou trava — após suas próprias retentativas — o agente rotaciona para o próximo modelo desta cadeia. Também usado como padrão para os sub-agentes workers do SDD.`,autoFallbackLabel:`Fallback automático`,autoFallbackHint:`Quando a cadeia acima está vazia, derive uma automaticamente de seus provedores com chave.`,favoritesOnlyLabel:`Apenas favoritos`,favoritesOnlyHint:`Quando o fallback automático deriva uma cadeia, restrinja-a aos seus modelos favoritos.`,profilesHeading:`Perfis fallback / round-robin`,addProfile:`Adicionar`,noProfiles:`Ainda não há perfis de fallback nomeados.`,createDefault:`Criar padrão a partir do modelo ativo`,useChain:`Usar cadeia`,setLeader:`Definir líder`,profileEmpty:`O perfil está vazio.`,favoritesHeading:`Modelos favoritos`,favoritesEmpty:`Os favoritos são mostrados primeiro e podem restringir o fallback automático.`,addModelToProfile:`Adicionar modelo ao perfil…`,addFavoriteModel:`Adicionar modelo favorito…`,inactive:`inativo`},g={heading:`Frota e Streaming`,fleetChatVerbosityLabel:`Transmitir eventos da frota`,fleetChatVerbosityHint:`Mostra a atividade ao vivo dos sub-agentes no painel da frota.`,maxConcurrentLabel:`Sub-agentes concorrentes máx`,maxConcurrentHint:`Número máximo de sub-agentes que podem rodar simultaneamente.`,nextPredictionLabel:`Previsão do próximo passo`,nextPredictionHint:`Após um turno, prevê os prováveis próximos passos.`,nextStepsToolLabel:`Ferramenta nextsteps`,nextStepsToolHint:`Permite que o agente registre as sugestões com uma chamada de ferramenta em vez de escrever o bloco manualmente. Vale na próxima sessão.`},_={hqHeading:`Cliente HQ`,hqPublishingLabel:`Publicação HQ`,hqPublishingHint:`Publica esta sessão WebUI/cliente no WrongStack HQ. Clientes da mesma máquina podem auto-descobrir a auth HQ local; clientes remotos usam a URL/token abaixo.`,hqUrlLabel:`URL HQ`,hqUrlHint:`Deixe vazio para auto-descoberta na mesma máquina.`,hqTokenLabel:`Token do cliente HQ`,hqRawContentLabel:`Conteúdo HQ bruto`,hqRawContentHint:`Enviar pré-visualizações de conteúdo brutas para HQ em vez de pré-visualizações redigidas.`,wrongProxyHeading:`WrongProxy / WrongTrace`,wrongProxyEnabledLabel:`Rotear URLs base pelo proxy local`,wrongProxyEnabledHint:`Quando ativado, a URL base de cada provedor é reescrita pelo proxy configurado (padrão http://localhost:3444/proxy/<host><path>). openai-codex é excluído — ele fala diretamente com o backend do ChatGPT usando um token OAuth.`,wrongProxyUrlLabel:`URL do proxy`,wrongProxyUrlHint:`Onde o daemon proxy local escuta. O sistema verifica periodicamente <url>/api/health; um daemon inacessível desativa a reescrita sem tentar novamente a cada tecla.`,wrongProxyChangesApply:`As alterações se aplicam imediatamente às próximas requisições — sem necessidade de reiniciar.`,telegramHeading:`Notificações do Telegram`,telegramSessionEndLabel:`Fim de sessão`,telegramSessionEndHint:`Envia um resumo quando uma sessão termina.`,telegramDelegateLabel:`Delegado concluído`,telegramDelegateHint:`Envia uma nota humanizada quando um sub-agente conclui.`,telegramLongToolLabel:`Ferramentas longas`,telegramLongToolHint:`Notifica quando uma ferramenta excede {{ms}}ms. 0 para desativar.`,telegramChangesApply:`As mudanças se aplicam imediatamente.`,telegramNotConfigured:`O Telegram não está configurado. Execute /telegram-setup na CLI para conectar um bot primeiro.`,heading:`Integrations`,disabledHint:`Ative o recurso na aba Contexto para usar esta seção.`},v={chimeraDedicatedHeading:`Chimera — Post-session Code Review`,chimeraDedicatedHint:`Automated code quality review that runs after every agent session. Catches regressions, anti-patterns, and potential bugs.`,chimeraSectionEnabled:`Post-session review (Chimera)`,chimeraSectionEnabledHint:`Run a code review agent after every iteration.`,chimeraProviderLabel:`Chimera provider`,chimeraProviderHint:`Provider for the review agent. Select one from your configured providers.`,chimeraProviderSessionDefault:`Session default`,chimeraModelLabel:`Model`,chimeraModelSessionDefault:`Session default`,chimeraModelHint:`Model for the review agent. Requires a provider first.`,chimeraMaxFilesLabel:`Max files per review`,chimeraMaxFilesHint:`Maximum number of changed files included in a single review call.`,chimeraAutoFixLabel:`Auto-fix mode`,chimeraAutoFixHint:`Whether the review agent should automatically apply fixes for issues it finds.`,chimeraAutoFixOff:`Off — review only`,chimeraAutoFixAsk:`Ask — confirm before applying`,chimeraAutoFixAuto:`Auto — apply without confirmation`,autoReviewCascadeOnLabel:`Cascata em`,autoReviewCascadeOnHint:`Quando uma revisão encontra problemas nesta gravidade ou superior, inicia agentes de acompanhamento.`,autoReviewCascadeOnOff:`Desativado`,autoReviewCascadeOnHigh:`Alta ou superior`,autoReviewCascadeOnCritical:`Apenas crítica`,chimeraPickModel:`Pick provider/model for Chimera`,chimeraPickModelHint:`Select a provider and model for post-session code review.`,autoReviewSectionEnabled:`Mid-session review (Auto-Review)`,autoReviewSectionEnabledHint:`Run a review agent mid-session on every file change.`,autoReviewFallbackProfileLabel:`Perfil fallback / round-robin`,autoReviewFallbackProfileHint:`Perfil de modelos para auto-review; fornece o pool de fallback e os modelos para round-robin ou seleção aleatória.`,autoReviewFallbackProfileNone:`None — use provider+model or session defaults`,autoReviewModelSelectionLabel:`Seleção do perfil`,autoReviewModelSelectionHint:`Escolhe o próximo modelo na ordem ou um modelo inicial aleatório para cada revisão.`,autoReviewModelSelectionRoundRobin:`Round-robin — ordem do perfil`,autoReviewModelSelectionRandom:`Aleatório — escolher do perfil`,autoReviewFallbackModelsLabel:`Modelos fallback / round-robin`,autoReviewFallbackModelsEmpty:`Nenhum modelo fallback / round-robin configurado`,autoReviewFallbackModelsHint:`Modelos do perfil ou cadeia global; formam o pool de seleção e a cadeia de nova tentativa.`,autoReviewModelLabel:`Model`,autoReviewModelHint:`Model for the auto-review agent. Requires a provider first.`,autoReviewDebounceLabel:`Debounce interval (ms)`,autoReviewDebounceHint:`Minimum gap between review triggers after a file change.`,autoReviewMaxFilesLabel:`Max files per batch`,autoReviewMaxFilesHint:`Files per auto-review call.`,autoReviewMaxConcurrentLabel:`Max concurrent reviews`,autoReviewMaxConcurrentHint:`Parallel review subagent cap.`,autoReviewCascadeLabel:`Cascade on`,autoReviewCascadeHint:`Follow-up agent threshold — spawns security-scanner and bug-hunter above this severity.`,autoReviewCascadeOff:`Off — no cascade`,autoReviewCascadeCritical:`Critical — only critical findings`,autoReviewCascadeHigh:`High — critical or high findings`,autoReviewPickModel:`Pick provider/model for Auto-Review`,autoReviewPickModelHint:`Select a provider and model, or a named fallback profile, for mid-session auto-review.`,pluginsPerPluginHint:`Enable or disable individual plugins. Changes take effect on next session.`},y={flagsHeading:`Sinalizadores de Recursos`,mcpLabel:`Servidores MCP`,mcpHint:`Habilita integrações Model Context Protocol.`,pluginsLabel:`Plugins`,pluginsHint:`Carrega e executa plugins instalados pelo usuário.`,memoryLabel:`Memória`,memoryHint:`Persiste e recupera fatos entre sessões.`,skillsLabel:`Habilidades`,skillsHint:`Carrega prompts de habilidades específicas do domínio.`,modelsRegistryLabel:`Registro de modelos`,modelsRegistryHint:`Usa o catálogo models.dev para descoberta de provedores.`,indexOnStartLabel:`Indexar ao iniciar`,indexOnStartHint:`Constrói o índice de símbolos do código ao iniciar a sessão.`,pluginsPerPluginHeading:`🔌 Per-Plugin Controls`,pluginSearch:`Buscar plugins`,pluginEnabledOnly:`Somente ativos`,pluginNoMatches:`Nenhum plugin corresponde a este filtro.`,pluginsPerPluginHint:`Enable or disable individual plugins. Changes take effect on next session.`,pluginChimera:`Chimera — post-session code review`,pluginSkills:`Skills — skill library & authoring`,pluginPrompts:`Prompts — prompt library & gen`,pluginCostTracker:`Cost Tracker — token & cost tracking`,pluginTelegram:`Telegram — notification bot`,pluginErrorLens:`Error Lens — failure diagnostics`,pluginSecretScanner:`Secret Scanner — credential detection`,pluginLintGate:`Lint Gate — lint before iteration`,pluginDiffSummary:`Diff Summary — compact diffs`,pluginDepGuard:`Dep Guard — dependency rules`,pluginTypeGate:`Type Gate — typecheck before iteration`,pluginInjectionShield:`Injection Shield — prompt injection`,pluginPromptFirewall:`Prompt Firewall — input filtering`,pluginTokenBudget:`Token Budget — token limits`,pluginLoopBreaker:`Loop Breaker — runaway detection`,heading:`Contexto e Depuração`,autoCompactLabel:`Auto-compactar contexto`,autoCompactHint:`Apara automaticamente a janela de contexto perto dos limites.`,compactorStrategyLabel:`Estratégia de compactação`,compactorStrategyHint:`Como o contexto é compactado quando cresce demais.`,compactorStrategyHybrid:`Híbrida — regras rápidas (padrão)`,compactorStrategyIntelligent:`Inteligente — resumo LLM`,compactorStrategySelective:`Seletiva — seleção guiada por LLM`,contextModeLabel:`Modo de contexto`,contextModeHint:`Política de janela de contexto — equilibrado é o padrão.`,contextModeBalanced:`Equilibrado — uso normal do contexto`,contextModeFrugal:`Frugal — uso conservador de tokens`,contextModeDeep:`Profundo — contexto maior para tarefas complexas`,tokenSavingLabel:`Modo de economia de tokens`,tokenSavingHint:`Controla os esquemas diretos e o prompt do sistema da próxima sessão.`,tokenSavingAuto:`Auto — adaptar o prompt à janela do modelo`,tokenSavingOff:`Desativado — sem economia`,tokenSavingMinimal:`Mínimo — otimização básica`,tokenSavingLight:`Leve — redução moderada`,tokenSavingMedium:`Médio — economias significativas`,tokenSavingAggressive:`Agressivo — menor superfície direta e prompt`},b={logLevelLabel:`Nível de log`,logLevelHint:`Severidade mínima para logging do lado servidor.`,logLevelDebug:`Debug — tudo`,logLevelInfo:`Info — fluxo normal`,logLevelWarn:`Warn — apenas problemas`,logLevelError:`Error — apenas falhas`,auditLevelLabel:`Nível de auditoria`,auditLevelHint:`Nível de detalhe para logs de auditoria de sessão.`,auditLevelMinimal:`Mínimo — apenas erros`,auditLevelStandard:`Padrão — chamadas de ferramentas + erros`,auditLevelFull:`Completo — cada evento (logs grandes)`,fsAccessLabel:`Acesso ao sistema de arquivos`,fsAccessHint:`Escopo das ferramentas de arquivo. Aplica-se na próxima sessão.`,fsAccessUnrestricted:`Irrestrito — qualquer caminho`,fsAccessProject:`Projeto — limitado à raiz do projeto`,debugStreamLabel:`Fluxo de depuração`,debugStreamHint:`Dump hex SSE bruto no stderr do servidor para depurar provedores.`,heading:`Logs & Debug`},x={heading:`Security & Monitoring`,brainHeading:`🧠 Brain — Controle de decisões`,brainHint:`Modelos de decisão, conselho, escalonamento e teto de risco — aplicados na hora e salvos na configuração global.`,shadowHeading:`👁 Agente sombra — Monitor da frota`,shadowHint:`O agente sombra monitora todos os agentes da frota, acompanha suas tarefas e detecta anomalias.`,toolsHeading:`🔧 Tool Access Control`,toolsHint:`Ative ou desative ferramentas individuais. Ferramentas que alteram dados aparecem em âmbar.`,breakerHeading:`Process Circuit Breaker`,breakerHint:`Restringe bash/exec após falhas repetidas; o acionamento inicia a contagem regressiva de encerramento/reinício.`},S={switchingTo:`Mudando para {{provider}} / {{model}}…`,switching:`Mudando o modelo…`,switchingToTarget:`Mudando para {{target}}…`,previousModel:`modelo anterior`,modelSwitchedNextRequest:`Modelo alterado: {{from}} → {{to}}. Ativo na próxima solicitação ao LLM.`,modelSwitchedRunActive:`Modelo alterado: {{from}} → {{to}}. Ativo na próxima solicitação ao LLM; a execução atual continua sem reiniciar.`,fallbackExists:`O perfil de fallback "{{name}}" já existe`,selectProviderModelFirst:`Selecione um provedor e um modelo primeiro`,defaultProfileCreated:`Perfil de fallback padrão criado`,profileEmpty:`O perfil de fallback "{{name}}" está vazio`,leaderSetFrom:`Líder definido a partir de {{name}}`,modelSwitchTimeout:`Troca de modelo expirou. Por favor, tente novamente.`},C={workbenchHeading:`Aparência do workbench`,workbenchHint:`Alterna a visibilidade das superfícies do workbench na vista de chat.`,showModelReasoningLabel:`Mostrar raciocínio do modelo`,showModelReasoningHint:`Renderiza blocos de raciocínio/thinking do LLM no histórico do chat (paridade com TUI).`,showAgentSwarmPanelLabel:`Painel agent swarm`,showAgentSwarmPanelHint:`Controla onde o painel agent swarm (fleet + fila de missões) é exibido.`,swarmPanelBottom:`Painel inferior`,swarmPanelSidebar:`Barra lateral direita`,swarmPanelOff:`Desativado`,titleAnimationLabel:`Animação do título`,titleAnimationHint:`Anima o título do terminal/aba com o status de execução (paridade com TUI).`,keyboardShortcutsLabel:`Atalhos de teclado`,keyboardShortcutsHint:`Habilitar atalhos de teclado globais (Ctrl+K, Alt+1..4, etc.). Desativado por padrão.`,statusChipHeading:`Chip de status e barra de status`,statusChipHint:`Estilo visual para a barra de status TUI/CLI e o chip de trabalho.`,thinkingWordLabel:`Palavra de raciocínio`,thinkingWordHint:`Palavra curta única exibida no chip de status TUI enquanto o agente trabalha.`,thinkingWordInvalid:`Use uma palavra de até 16 letras, números, sublinhados ou hífens.`,statuslineModeLabel:`Modo da barra de status`,statuslineModeHint:`Densidade da barra de status TUI.`,statuslineModeMinimum:`Mínimo`,statuslineModeDetailed:`Detalhado`,statuslineModeNoColor:`Sem cor`,animationStyleLabel:`Estilo de animação`,animationStyleHint:`Animação do chip de trabalho TUI.`,animationStyleRainbow:`Arco-íris`,animationStyleWave:`Onda`,animationStylePulse:`Pulso`,animationStyleDots:`Pontos`,animationStyleBreathe:`Respiração`,animationStyleStatic:`Estático`,animationStyleCycle:`Ciclo`,refineHeading:`Contagem regressiva do refine e diffs`,refineHint:`Configura a contagem regressiva pré-refine e o limite mínimo de arquivos para o rodapé de resumo multi-diff.`,preRefineSecondsLabel:`Contagem regressiva pré-refine`,preRefineSecondsHint:`Período de carência antes do refiner iniciar (segundos). 0 = pula a contagem e refina imediatamente.`,preRefineSecondsPresets:`Predefinições: {{presets}} segundos (0 = desativado).`,multiDiffSummaryLabel:`Resumo multi-diff`,multiDiffSummaryHint:`Número mínimo de arquivos antes que o rodapé agregado 'N arquivos · +X -Y' apareça acima dos blocos por arquivo.`,multiDiffSummaryPresets:`Predefinições: {{presets}} (0 = desativado).`,memoryHeading:`Ferramenta read e injeção de memória SAGE`,memoryHint:`Alterna o que a ferramenta read inclui e quando blocos de memória SAGE aparecem nos resultados de ferramentas.`,readSymbolsLabel:`Ler símbolos`,readSymbolsHint:`Quando ativo, a ferramenta read inclui símbolos do índice do código junto com o conteúdo do arquivo.`,showSageMemoryInjectLabel:`Mostrar SAGE Memory Inject`,showSageMemoryInjectHint:`Quando ativo, mostra blocos de injeção de memória SAGE nos resultados de ferramentas.`,sageMemoryInjectThresholdLabel:`Limite de SAGE Memory Inject`,sageMemoryInjectThresholdHint:`Força mínima de relação necessária para uma memória SAGE injetada (0.72–0.95).`,footnote:`Estas configurações refletem o picker /settings do TUI. Alternâncias aplicam-se ao vivo; alguns campos exigem reinício da sessão.`,sageRelaxed:`0,72 (relaxado)`,sageDefault:`0,85 (padrão)`,sageStrict:`0,95 (rigoroso)`},w=`Limpar preferências locais`,T=`Cancelar`,E=`Limpar as preferências deste navegador?`,D=`Limpa as preferências salvas neste navegador e recarrega a página. As configurações conectadas são carregadas novamente do servidor.`,O=`Limpar e recarregar`,k=JSON.parse(`{"heading":"Brain","headingHint":"Modelos de decisão, conselho, escalada e teto de risco — aplicados em tempo real, salvos na configuração global.","riskHeading":"Teto de autonomia","escalationHeading":"Escalada","escalationModeLabel":"Modo","escalationModeHint":"Headless: o Brain nunca bloqueia esperando um humano — escaladas sem resposta são resolvidas pela política terminal segura. Aplica-se a sessões CLI/TUI; o Brain WebUI independente é sempre headless.","escalationDecisionTimeoutLabel":"Tempo limite de decisão","escalationDecisionTimeoutHint":"Orçamento de tempo por chamada LLM para uma decisão do Brain.","escalationHumanTimeoutLabel":"Tempo limite de resposta humana","escalationHumanTimeoutHint":"Modo interativo: quanto tempo um aviso de escalada pode esperar antes que a política terminal o resolva.","escalationTerminalPolicyLabel":"Política terminal","escalationTerminalPolicyHint":"Como uma escalada headless é resolvida sem humano disponível. Conservador aceita uma opção recomendada em risco baixo/médio; negar-tudo nunca aceita automaticamente; continuar-com-recomendação aceita uma opção recomendada em QUALQUER risco.","escalationDecisionLogSizeLabel":"Tamanho do registro de decisões","escalationDecisionLogSizeHint":"Registro de decisões em memória rotativo mantido para a visão de status.","rulesHeading":"Regras determinísticas","rulesConfigured":"{{count}} configurada(s)","rulesBody":"Avaliadas antes de qualquer chamada ao provedor — a primeira correspondência vence. Edite-as no arquivo de configuração global; esta visão é somente leitura.","rulesOff":"desativada","rulesDropped":"{{count}} regra(s) descartada(s)","heuristicsHeading":"Heurísticas","heuristicsBody":"Suposições de padrão gratuitas que resolvem uma pergunta antes que um modelo execute. Todas ativas por padrão — desligue aquela cuja suposição esteja errada para sua carga de trabalho.","heuristicsLowRiskLabel":"Resposta automática de baixo risco","heuristicsLowRiskHint":"Responda automaticamente solicitações de baixo risco que já trazem uma opção recomendada.","heuristicsBlockedLabel":"Bloqueado-resolvido","heuristicsBlockedHint":"'blocked …' mais um marcador de resolução explícito no contexto resolve como continuar.","heuristicsDeadlockLabel":"Pular impasse","heuristicsDeadlockHint":"'deadlock' mais unidades de trabalho falhas no contexto resolve como pular e continuar.","heuristicsRetryLabel":"Novas tentativas esgotadas","heuristicsRetryHint":"'failed'/'retry' mais novas tentativas comprovadamente esgotadas marca a unidade como falha e segue.","heuristicsPingLabel":"Ping de continuação","heuristicsPingHint":"Um simples ping de continuar/prosseguir sem alternativa concorrente resolve como continuar.","heuristicsMarkers":"Marcadores: {{markers}}","qualityHeading":"Qualidade LLM","qualityCircuit_one":"circuito {{state}} · {{count}} falha","qualityCircuit_other":"circuito {{state}} · {{count}} falhas","qualityResponseBudgetLabel":"Orçamento de resposta","qualityResponseBudgetHint":"Tokens de saída por chamada de decisão. Uma resposta do Brain é uma decisão mais uma justificativa de uma frase.","qualityRejectLabel":"Rejeitar respostas incertas","qualityRejectHint":"Trata uma resposta recusada ou vazia como 'este nível não pôde decidir' em vez de aceitá-la como resposta.","qualityMinConfidenceLabel":"Confiança mínima","qualityMinConfidenceHint":"Rejeita respostas cuja confiança autodeclarada esteja abaixo disso. Respostas sem confiança declarada sempre passam.","qualityDenyTerminalLabel":"A recusa é terminal","qualityDenyTerminalHint":"Se uma recusa do nível LLM único encerra a decisão. 'when-decided' torna terminal uma recusa genuína enquanto falhas de infraestrutura ainda escalam.","traceHeading":"Trilha de replay","traceRecordLabel":"Registrar trilhas de decisão","traceRecordHint":"JSONL por decisão de cada nível, alvo do pool e voto do conselho, com tempos e uso de tokens. Desativado por padrão — ativar grava o conteúdo das decisões em disco.","traceContentLabel":"Conteúdo da trilha","traceContentHint":"'full' mantém pergunta e contexto (necessário para reproduzir uma decisão); 'redacted' trunca texto livre; 'none' registra apenas metadados.","cacheHeading":"Cache de decisões","cacheStats":"{{hits}} acertos / {{misses}} erros · {{size}} ativos","cacheReplayLabel":"Reproduzir vereditos idênticos","cacheReplayHint":"Reutiliza um veredito anterior do conselho/LLM para uma pergunta idêntica repetida. Níveis determinísticos e perguntar-a-um-humano nunca são armazenados; uma decisão que o registro observa como falha é expulsa.","cacheLifetimeLabel":"Vida das entradas","cacheLifetimeHint":"Por quanto tempo um veredito em cache continua reproduzível.","cacheMaxEntriesLabel":"Entradas máximas","cacheMaxEntriesHint":"Limite de vereditos ativos em cache.","monitorHeading":"Monitor","monitorBody":"Auto-ativação por sinais de sofrimento. O monitor é construído uma vez na inicialização, então estes ajustes valem para a próxima sessão, não em tempo real.","monitorWatchLabel":"Vigiar sinais de sofrimento","monitorWatchHint":"Sequências de falhas de ferramentas, tempestades de erros, travamentos de agentes e churn de arquivos acionam o Brain sozinhos.","monitorPolicyLabel":"Política de sinais","monitorPolicyHint":"Como um sinal detectado é resolvido. 'llm' consulta o Brain; 'steer' sempre intervém e 'observe' nunca — ambos sem chamada ao provedor.","modelsHeading":"Modelos de decisão","modelsSessionBadge":"modelo da sessão","modelsResolvedBadge":"{{resolved}}/{{total}} resolvidos","modelsUseSessionLabel":"Usar modelo da sessão","modelsUseSessionHint":"Decidir com o modelo que a sessão está executando. Desligar adicionando modelos abaixo.","modelsAddModel":"Adicionar modelo","modelsPoolStrategyLabel":"Estratégia do pool","modelsPoolStrategyHint":"Fallback: o primeiro modelo é primário, os demais são tentados em ordem na falha. Round-robin: as decisões rotacionam pelo pool.","councilHeading":"Conselho","councilConvened":"convocado","councilDisabled":"desativado","councilEnableLabel":"Ativar conselho multi-LLM","councilEnableHint":"Perguntas de alto risco são votadas por assentos independentes (executor / cético-com-veto / auditor) em vez de um único modelo. Exige ≥2 votantes resolvíveis (assentos explícitos abaixo, ou um pool de ≥2 modelos).","councilSeatsDerived":"Assentos derivados do pool: {{seats}}","councilCustomLens":"Lente de decisão personalizada — enviada ao assento literalmente.","councilCustomOption":"{{persona}} (personalizado)","councilVeto":"veto","councilAddVoter":"Adicionar votante","councilRiskFloorLabel":"Piso de risco","councilRiskFloorHint":"Risco mínimo da pergunta que convoca o conselho em vez do nível mono-modelo.","councilJudge":"Juiz","councilJudgeDesc":"Modelo de desempate que vê a justificativa de cada voto.","councilResolved":"resolvido: {{model}}","councilAlsoVoter":"⚠ também votante","councilAuto":"auto","councilPick":"Escolher…","councilAutoReset":"Auto","councilQuorumLabel":"Quórum","councilQuorumHint":"Fração de assentos que deve retornar um voto válido.","councilApprovalLabel":"Aprovação","councilApprovalHint":"Fração do peso dos votos emitidos que a opção vencedora deve exceder.","councilPerSeatTimeoutLabel":"Tempo limite por assento","councilPerSeatTimeoutHint":"Orçamento de tempo para o voto de um único assento. Mais lento que o tempo de decisão significa que um assento travado segura o voto.","councilMaxConcurrencyLabel":"Concorrência máxima","councilMaxConcurrencyHint":"Quantos assentos votam em paralelo. Reduza quando o pool compartilha um provedor com limite de taxa.","councilDistinctnessLabel":"Distinção de assentos","councilDistinctnessHint":"Rejeita assentos duplicados: 'model' exige modelos distintos, 'provider' provedores independentes para que uma queda não possa influenciar o voto.","councilVoterBudgetLabel":"Orçamento de resposta do votante","councilVoterBudgetHint":"Tokens de saída por chamada de assento — modelos de raciocínio gastam seus tokens de pensamento deste orçamento.","councilRoundsLabel":"Rodadas de deliberação","councilRoundsHint":"A rodada 1 é independente. Nas seguintes, cada assento vê os votos dos demais e pode rever sua posição. Apenas a última rodada é contada, e cada rodada custa mais uma chamada por assento.","councilJudgeBudgetLabel":"Orçamento de resposta do juiz","councilJudgeBudgetHint":"Tokens de saída para a chamada do juiz de desempate.","councilSeatTemplate":"Modelo de assento:","ledgerHeading":"Registro de decisões","ledgerRecordLabel":"Registrar decisões + resultados","ledgerRecordHint":"Persiste cada decisão e seu resultado observado; resultados passados semelhantes são realimentados em prompts futuros do Brain.","ledgerAutoDenyLabel":"Auto-recusar após falhas","ledgerAutoDenyHint":"Recusar deterministicamente (sem LLM) quando este número de aprovações consecutivas de um grupo de decisões terminou em falhas observadas.","ledgerMemoryEntriesLabel":"Entradas em memória","ledgerMemoryEntriesHint":"Tamanho do anel em memória e o número de entradas passadas carregadas do disco na inicialização.","ledgerRetryWindowLabel":"Janela de nova tentativa de intervenção","ledgerRetryWindowHint":"Uma intervenção do monitor do mesmo tipo que se reativa nesta janela marca a orientação anterior como falha.","recentHeading":"Decisões recentes ({{count}})","recentEmpty":"Nenhuma decisão registrada nesta sessão.","optInteractive":"Interativo (pergunte-me)","optHeadless":"Headless (nunca perguntar)","optConservative":"Conservador (padrão)","optDenyAll":"Negar tudo","optContinueRecommended":"Continuar com recomendação","optNeverDefault":"Nunca (padrão)","optWhenDecided":"Quando decidido","optAlways":"Sempre","optFullDefault":"Completo (padrão)","optRedacted":"Redigido","optMetadataOnly":"Somente metadados","optConsultBrain":"Consultar o Brain (padrão)","optAlwaysSteer":"Orientar sempre","optObserveOnly":"Apenas observar","optFallback":"Fallback","optRoundRobin":"Round-robin","optMediumPlus":"Médio+","optHighPlus":"Alto+","optCriticalOnly":"Somente crítico","optNoneDefault":"Nenhum (padrão)","optDistinctModels":"Modelos distintos","optDistinctProviders":"Provedores distintos","optDefault3":"Padrão (3)","optOff":"Desativado","pickPoolTitle":"Adicionar modelo ao pool do Brain","pickPoolHint":"Pool de decisão ordenado — o primeiro é primário.","pickVoterTitle":"Adicionar votante ao conselho","pickVoterHint":"A caixa de diálogo permanece aberta — adicione ≥2 votantes e depois feche.","pickJudgeTitle":"Escolher juiz do conselho","pickJudgeHint":"Desempate que vê cada voto.","persistError":"Configurações aplicadas em tempo real, mas não salvas.","riskCopy":{"off":"Um humano decide tudo","low":"Decidir automaticamente apenas baixo risco","medium":"Decidir automaticamente até risco médio","high":"Decidir automaticamente até alto risco","all":"Decidir automaticamente tudo"},"rulesConfigured_one":"{{count}} configurada","rulesConfigured_other":"{{count}} configuradas"}`),A={default15s:`Padrão (15 s)`,waitForever:`Esperar indefinidamente`,defaultHalf:`Padrão (0,5)`,all:`Todos`,n200Default:`200 (padrão)`,offDefault:`Desativado (padrão)`,n20Default:`20 (padrão)`,m5Default:`5 min (padrão)`,default:`Padrão`,oneSerial:`1 (serial)`,roundsOff:`1 (sem deliberação)`,default500:`Padrão (500)`,default10m:`Padrão (10 min)`},j={capToolCall:`Chamada de ferramenta`,capReasoning:`Raciocínio`,capTemperature:`Temperatura`,capAttachment:`Anexo`,capStructuredOutput:`Saída estruturada`,capOpenWeights:`Pesos abertos`},M={presetsHeading:`Conjuntos de fontes`,presetsHint:`Um conjunto define todas as funções de uma vez; as fontes só são baixadas no primeiro uso.`,presets:{workbench:{label:`Bancada`,description:`A aparência padrão da bancada de trabalho.`},plex:{label:`IBM Plex`,description:`Uma única família técnica do início ao fim.`},modern:{label:`Moderno`,description:`Inter neutra com JetBrains Mono para código.`},geist:{label:`Geist`,description:`Combinação nítida de Geist Sans e Mono.`},classic:{label:`Clássico`,description:`Source Sans, Serif e Code Pro da Adobe.`},editorial:{label:`Editorial`,description:`Títulos serifados e uma fonte de chat com cara de livro.`},readable:{label:`Legível`,description:`Fontes muito legíveis para sessões longas.`},friendly:{label:`Amigável`,description:`Formas arredondadas e descontraídas com Fira Code.`},monospace:{label:`Monoespaçada`,description:`Monoespaçada em todo lugar, estilo terminal.`},system:{label:`Sistema`,description:`Fontes do sistema operacional, sem downloads.`}},rolesHeading:`Fontes por função`,rolesHint:`Substitua qualquer função sobre o conjunto. Funções marcadas com “Igual a” seguem a função principal.`,roles:{ui:{label:`Interface e painéis`,hint:`Botões, menus, barras laterais, listas e configurações.`},display:{label:`Títulos`,hint:`Títulos de página e de seção.`},reading:{label:`Chat e documentos`,hint:`Respostas do assistente, markdown e mensagens da caixa de entrada.`},code:{label:`Código em linha e dados`,hint:`Blocos de código, logs, IDs e dados tabulares.`},editor:{label:`Editor de código`,hint:`Editor de arquivos Monaco e visualização de diferenças.`},terminal:{label:`Terminal`,hint:`Sessões do terminal integrado.`}},fromPreset:`Conjunto ({{name}})`,inherit:`Igual a {{role}} ({{name}})`,categories:{sans:`Sem serifa`,serif:`Serifada`,mono:`Monoespaçada`},systemTag:`sistema`,sizeHeading:`Tamanho e espaçamento`,sizeHint:`O tamanho do texto da interface escala todos os painéis; editor e terminal são definidos em pixels.`,sizePresets:{compact:`Compacto`,normal:`Normal`,comfortable:`Confortável`,large:`Grande`,custom:`Personalizado`},controls:{uiScale:{label:`Tamanho do texto da interface`,hint:`Escala o texto de painéis, chat e diálogos.`},editorFontSize:{label:`Tamanho da fonte do editor`,hint:`Editor Monaco e visualização de diferenças.`},codeLineHeight:{label:`Altura de linha do código`,hint:`Editor, visualização de diferenças e blocos de código.`},terminalFontSize:{label:`Tamanho da fonte do terminal`,hint:`Terminal integrado.`},terminalLineHeight:{label:`Altura de linha do terminal`,hint:`Espaçamento entre linhas do terminal.`},ligatures:{label:`Ligaduras de código`,hint:`Une => !== >= em um único glifo em fontes compatíveis (Fira Code, Cascadia, JetBrains Mono…). Não se aplica ao terminal.`}},previewHeading:`Prévia ao vivo`,preview:{heading:`Refatorar o carregador de sessões`,body:`O agente leu 12 arquivos e propôs uma alteração em duas etapas. Revise as diferenças antes de aplicar.`,label:`Rótulo da interface`},resetAll:`Redefinir todas as configurações de fonte`,resetOverrides:`Limpar substituições por função`},N={description:`Manage the decision provider and see where Jev is used.`,loading:`Loading Jev settings…`,timeout:`No response from server. Reconnect and retry.`,route:`Decision provider`,routeChange:`Changing provider clears the previous key, endpoint and model. Enter a new key or use the provider environment variable.`,key:`API key`,keyHint:`Leave blank to keep the current key`,removeKey:`Remove saved key (environment key may still apply)`,endpoint:`Endpoint override`,model:`Model override`,defaultHint:`Empty uses provider default`,requestTimeout:`Request timeout (ms)`,featureHint:`Switches permit Jev usage. Actual use also depends on the prerequisites and triggers below.`,save:`Save Jev settings`,test:`Test saved connection`,testHint:`The test sends one small billed request. Save changes first. Restart existing sessions to apply all consumers.`,activity:`Jev activity`,activityHint:`Refreshes every 3 seconds. Last 300 requests in this server process, across its sessions. No prompts, credentials or raw errors. Disk log rotates at 5 MB. Answered means a typed response, not necessarily a decision accepted by the consumer.`,filter:`Feature`,all:`All`,empty:`No matching Jev requests yet. Test the connection or use an enabled feature.`,features:{brain:`Brain decisions`,memoryTriage:`Memory triage`,topicShift:`Topic changes`,memoryRecall:`Memory recall`,compaction:`Context compaction`,kanbanVerify:`Kanban verification`,modelTier:`Subagent model tier`,semanticLint:`Semantic lint`,tool:`Ferramenta de decisão do agente`,skillSuggestion:`Skill suggestions`,fleetDispatch:`Fleet dispatch`},readinessScope:`These are saved profile conditions, not the live state of every session. A request below means the service was called, not that its answer was accepted.`,unknownReadiness:`Readiness unavailable on this server`,unsaved:`Unsaved change`,lastRequest:`Last runtime request`,notObserved:`No runtime request in the displayed recent log.`,contextStrategy:`Profile compaction strategy`,contextScope:`Selective enables the Jev selection path. Save changes and restart existing sessions; a session-specific strategy can override this profile setting.`,openContext:`Open session context settings`,configureTiers:`Configure model tiers`,tiersHint:`Enable tiers and define at least two levels, cheapest first. Set their models or fallback profiles and a default tier. Changes here save immediately.`,checkHeading:`Live capability checks`,checkHint:`Runs 22 synthetic cases across all 11 features using the saved account, including disabled features. Makes billed API calls, sends no project content and changes no feature settings. Passing does not prove workload quality or that a session uses the feature.`,checkAll:`Test all 11 features`,checkRunning:`Running live checks…`,expected:`Expected`,actual:`Actual`,includeChecks:`Include diagnostic requests`,selfTest:`Diagnostic`,account:{ready:`Account configured`,unconfigured:`Account required`,unusable:`Account settings invalid`},readiness:{disabled:`Disabled`,"account-required":`Account required`,blocked:`Setup required`,conditional:`Configured · waiting for trigger`},reasons:{disabled:`This feature is not permitted to use Jev.`,"account-required":`Configure a valid Jev account first.`,"selective-required":`Jev selection requires selective compaction; hybrid and intelligent do not use this selector.`,"tiers-disabled":`The model tier system is disabled.`,"tiers-required":`Define at least two model tiers.`,"skills-disabled":`The global skills feature is disabled.`,"trigger-required":`Runs only when its trigger conditions are met.`,"memory-disabled":`Memory or SAGE is disabled.`,"recall-injection-required":`SAGE turn context recall is disabled; the Jev recall filter requires this path.`},triggers:{brain:`Runs before later decision tiers; uncertain answers defer.`,memoryTriage:`Runs during triage value evaluation and merge decisions.`,topicShift:`Runs when topic-change prechecks require a judgment; repeated results may be cached.`,memoryRecall:`Filters candidates returned by SAGE turn context recall; cached judgments are reused.`,compaction:`Rates middle conversation turns during selective compaction; requires a provider and sufficient history.`,kanbanVerify:`Judges open agent-type criteria against changed files and their diff.`,modelTier:`Suggests a tier for delegations with no explicit model/tier and no matching role/phase route.`,semanticLint:`Runs when the semantic lint command finds candidates; it is not an automatic edit watcher.`,tool:`Executa quando um agente chama jev com evidências e perguntas tipadas.`,skillSuggestion:`Requires skills enabled, at least two skills, and gate/fit thresholds; results may be cached.`,fleetDispatch:`Runs only for ambiguous routing with multiple candidate roles.`},recallTurnContext:`SAGE turn context recall`,recallTurnHint:`Adds relevant memories to each new turn; the Jev recall filter runs on this path. Memory and SAGE must also be enabled. Save and restart existing sessions.`},P={title:e,subtitle:t,navigation:n,providerTest:r,tabs:i,model:a,connection:o,provider:s,providerModels:c,mcp:l,allowlist:u,oauth:d,general:f,agent:p,execution:m,fallbacks:h,fleet:g,integrations:_,features:v,context:y,logs:b,security:x,toast:S,display:C,resetLabel:w,cancel:T,resetConfirmTitle:E,resetConfirmBody:D,resetConfirmAction:O,brain:k,brainOpt:A,modelSchema:j,fonts:M,jev:N};export{p as agent,u as allowlist,k as brain,A as brainOpt,T as cancel,o as connection,y as context,P as default,C as display,m as execution,h as fallbacks,v as features,g as fleet,M as fonts,f as general,_ as integrations,N as jev,b as logs,l as mcp,a as model,j as modelSchema,n as navigation,d as oauth,s as provider,c as providerModels,r as providerTest,O as resetConfirmAction,D as resetConfirmBody,E as resetConfirmTitle,w as resetLabel,x as security,t as subtitle,i as tabs,e as title,S as toast};
|
|
1
|
+
var e=`Configurações`,t=`Configure every aspect of your agent workspace`,n={browse:`Explorar`,search:`Buscar configuração…`,clearSearch:`Limpar busca`,noResults:`Nenhuma configuração encontrada`,workspace:`Área de trabalho`,models:`Modelos e conexões`,behavior:`Comportamento do agente`,system:`Sistema e segurança`,label:`Seções de configurações`},r={title:`Teste de provedor`,description:`Teste provedores e assinaturas salvos; verifique cotas, autenticação, latência e limites de tokens.`,open:`Abrir teste de provedor`},i={general:`Geral`,provider:`Provedor`,connection:`Conexões`,agent:`Agente`,execution:`Execução`,fallbacks:`Fallbacks`,routing:`Roteamento`,fleet:`Frota`,integrations:`Integrações`,chimera:`Chimera`,context:`Contexto`,logs:`Registros`,security:`Segurança`,display:`Exibição`,displayDesc:`Aparência do workbench, chip de status, temporizadores de refine e alternâncias de injeção de ferramenta/memória — reflete o SettingsPicker do TUI.`,generalDesc:`Aparência, idioma e preferências de exibição — espelha o seletor de configurações da TUI.`,providerDesc:`Chaves de API, provedores salvos e o catálogo de provedores.`,connectionDesc:`URL do servidor WebSocket e saúde da conexão.`,agentDesc:`Autonomia, refinamento de prompts, raciocínio e roteamento de modelos.`,executionDesc:`Limites de iterações, comportamento de saída e disjuntor de processo.`,fallbacksDesc:`Cadeia de fallback de modelos, favoritos e perfis de fallback nomeados.`,routingDesc:`Matriz de roteamento de modelos por fase e por função.`,fleetDesc:`Concorrência de subagentes, streaming e previsão do próximo passo.`,integrationsDesc:`Cliente HQ, servidores MCP e notificações do Telegram.`,chimeraDesc:`Configuração do agente de revisão de código pós-sessão.`,contextDesc:`Flags de recursos, estratégia de contexto, compactador e controles de plugins.`,logsDesc:`Nível de log, detalhe de auditoria, escopo de acesso ao sistema de arquivos e stream de depuração.`,securityDesc:`Controle de decisão Brain, agente sombra e acesso a ferramentas.`,fonts:`Fontes`,fontsDesc:`Fontes de interface, chat, editor e terminal; tamanho, altura de linha e ligaduras.`,jev:`Jev`,jevDesc:`TypeSafe / Jev`},a={heading:`Modelo`,loading:`Carregando modelos...`,notFound:`Nenhum modelo encontrado para este provedor. O catálogo pode estar vazio ou ainda carregando.`,selectProviderFirst:`Selecione um provedor primeiro`,context:`{{count}}k contexto`},o={providerHealth:{heading:`Saúde dos provedores`,hint:`Quais pares de provedor/modelo estão saudáveis, degradados ou bloqueados e por quê.`,refresh:`Atualizar`,empty:`Nenhum provedor monitorado ainda.`,summary:`{{blocked}} bloqueados · {{degraded}} degradados · {{healthy}} saudáveis`,totalFailures:`falhas`,rateLimits:`limites de taxa`,state:{blocked:`Bloqueado`,degraded:`Degradado`,healthy:`Saudável`},blocked:`Bloqueado`,degraded:`Degradado`,consecutive:`falhas consecutivas`,retryNow:`Tentar novamente`,clear:`Limpar`,allHealthy:`Todos os provedores monitorados estão saudáveis.`,statSuccesses:`sucessos`,statFailures:`falhas`,statRateLimits:`limites de taxa`,statConsecutive:`consecutivas`,lastError:`Último erro`,recentErrors:`Erros recentes`,autoRecovery:`Recuperação automática às`,expired:`Expirado`,remainingSecs:`{{secs}} s`,remainingMins:`{{mins}} min`,remainingHours:`{{hours}} h {{mins}} min`,explainHealthy:`Respondendo normalmente.`,explain402:`Limite de cobrança atingido (402). Bloqueado por cerca de 15 minutos até a redefinição da cota.`,explain403quota:`Limite de uso deste ciclo atingido. Bloqueado até a próxima redefinição (cerca de 15 min).`,explain403auth:`Erro de permissão/autenticação. Não é possível repetir — verifique a chave de API e os direitos de acesso.`,explain429:`Limite de taxa atingido (429). Restrição temporária com recuperação automática.`,explain529:`Servidor sobrecarregado (529). O provedor está sob carga intensa.`,explain5xx:`Erro do servidor ({{status}}). Problema temporário no backend.`,explainNetwork:`Rede inacessível. Verifique sua conexão ou a página de status do provedor.`,explainTimeout:`Tempo limite da solicitação excedido (408). O provedor demorou para responder.`,explainStreamHang:`Fluxo interrompido (599). O provedor parou durante a resposta.`,explainQuota:`Cota esgotada. Bloqueado até a janela de redefinição.`,explainUnknown:`Tipo de falha: {{kind}} / status: {{status}}.`},wsUrlLabel:`URL do servidor WebSocket`,wsUrlPlaceholder:`ws://localhost:3456`,wsUrlHint:`URL do servidor WebSocket do agente. O servidor é executado junto com o CLI.`,startingHeading:`Iniciando o servidor WebSocket`,startingBody:`Para desenvolvimento, execute ./dev.ps1 da raiz do repo (opcionalmente defina WS_HOST/WS_PORT antes). Caso contrário, inicie a WebUI com a CLI: wstack --webui.`,healthHeading:`Saúde das conexões`,healthHint:`Relatório ao vivo de propriedade, armazenamento, fila, observador e latência dos serviços.`,healthRefresh:`Atualizar`,healthLoading:`Verificando serviços…`,healthUnknown:`Saúde desconhecida`,healthDisconnected:`O WebSocket da WebUI está desconectado.`,healthRestartRequired:`Reinicie o backend uma vez para ativar o relatório de conexões.`,healthOptional:`Sob demanda`,endpointInvalidBadge:`caminho do socket muito longo`,endpointInvalidRemedy:`O caminho do socket IPC excede o limite de comprimento desta plataforma, então o daemon compartilhado não pode iniciar. As consultas recorrem a um modo local de processo mais lento. Remédio: defina um TMPDIR mais curto (ex. export TMPDIR=/tmp) e reinicie o WrongStack.`,healthCounts:`{{healthy}} saudáveis · {{attention}} atenção · {{sleeping}} inativos`,healthOverall:{healthy:`Serviços obrigatórios saudáveis`,degraded:`Serviço obrigatório degradado`,error:`Serviço obrigatório indisponível`},healthStatus:{healthy:`Saudável`,degraded:`Degradado`,offline:`Inativo`,unavailable:`Indisponível`,error:`Erro`},services:{kanban:{label:`Kanban IPC`},mailbox:{label:`Mailbox IPC`}},serviceActionRestart:`Reiniciar {{label}}`,webuiTransport:`Transporte do WebUI`,serviceAutoRestarting:`Reiniciando automaticamente…`},s={removeProfileConfirm:`Remover o perfil “{{alias}}” e todas as suas chaves?`,removeProfileBody:`As credenciais salvas e as referências a esta conta nas rotas de modelos serão removidas.`,deleteKeyConfirm:`Excluir a chave “{{label}}” de “{{alias}}”?`,addProfile:`Adicionar conta / perfil de autenticação`,profileAlias:`Alias do perfil de autenticação`,profileHint:`Cada conta tem seu próprio alias e credenciais. Os destinos de fallback são alias/modelo.`,profileExists:`O perfil “{{alias}}” já existe. Escolha outro alias.`,operationTimeout:`O servidor não respondeu. Verifique a conexão e tente novamente.`,savedProviderCount_one:`{{count}} provedor`,savedProviderCount_other:`{{count}} provedores`,keyCount_one:`{{count}} chave configurada`,keyCount_other:`{{count}} chaves configuradas`,activeKeyCount_one:`{{count}} chave ativa`,activeKeyCount_other:`{{count}} chaves ativas`,subscriptionHeading:`Login com assinatura`,apiKeysHeading:`Provedores de chave de API`,apiKeysBody:`Escolha um provedor do catálogo e adicione uma chave de API, ou gerencie os provedores salvos.`,tabCatalog:`Catálogo`,tabSaved:`Salvos ({{count}})`,searchPlaceholder:`Pesquisar entre {{count}} provedores (nome / id / família)…`,loadingCatalog:`Carregando catálogo...`,noMatch:`Nenhum provedor corresponde a "{{query}}".`,configured:`Configurado`,reachable:`Acessível`,envVar:`ENV: {{var}}`,modelCount_one:`{{count}} modelo`,modelCount_other:`{{count}} modelos`,keyPlaceholder:`Chave de API do {{name}}`,orEnv:`Ou defina {{env}} no ambiente.`,addApiKey:`Adicionar chave de API`,manageKeys:`Gerencie suas chaves de API e configurações de provedor`,addProvider:`Adicionar provedor`,addCustomHeading:`Adicionar provedor personalizado`,localServers:`Servidores locais — clique para preencher:`,providerIdPlaceholder:`ID do provedor (ex. my-llm-server)`,apiKeyOptionalPlaceholder:`Chave de API (opcional)`,noSaved:`Nenhum provedor salvo`,noSavedHint:`Adicione um provedor para começar`,apiKeysLabel:`Chaves de API`,addKey:`Adicionar chave`,noKeys:`Nenhuma chave configurada`,active:`Ativa`,setActive:`Definir como ativa`,keyLabelPlaceholder:`Rótulo da chave (ex. default, production)`,apiKeyPlaceholder:`Chave de API`,saveKey:`Salvar chave`,savedToast:`Chave salva para {{name}}`},c={addCustom:`Adicionar modelo personalizado`,addCustomTitle:`Adicionar modelo personalizado`,addFromCatalog:`Adicionar do catálogo`,catalogSearchPlaceholder:`Pesquisar no catálogo models.dev…`,catalogSearchTitle:`Pesquisar no catálogo models.dev`,colActions:`Ações`,colCaps:`Capacidades`,colContext:`Contexto`,colCost:`Custo`,colModalities:`Modalidades`,colModel:`Modelo`,colOutput:`Saída`,colSource:`Origem`,editModel:`Editar modelo`,emptyState:`Nenhum modelo ainda — adicione do catálogo ou crie um modelo personalizado.`,fieldContext:`Janela de contexto`,fieldCostInput:`Custo de entrada`,fieldCostOutput:`Custo de saída`,fieldDescription:`Descrição`,fieldFamily:`Família`,fieldInputLimit:`Limite de entrada`,fieldInputModalities:`Modalidades de entrada`,fieldLastUpdated:`Última atualização`,fieldName:`Nome`,fieldOutput:`Saída máxima`,fieldOutputModalities:`Modalidades de saída`,fieldReleaseDate:`Data de lançamento`,modelAdded:`{{model}} adicionado`,modelRemoved:`{{model}} removido`,modelSaved:`{{model}} salvo`,noResults:`Nenhum modelo encontrado`,removeModel:`Remover modelo`,sectionCapabilities:`Indicadores de capacidades`,sectionDates:`Datas`,sectionIdentity:`Identidade`,sectionLimits:`Limites`,sectionModalities:`Modalidades`,sectionPricing:`Preços (por 1M de tokens, USD)`,tabForm:`Formulário`,tabRawJson:`JSON bruto`,typeToSearch:`Digite para pesquisar…`,useModel:`Usar {{model}}`,usingModel:`Usando {{model}}`,filterPlaceholder:`Filtrar modelos…`},l={status:{connected:`Conectado`,connecting:`Conectando`,sleeping:`Inativo`,discovering:`Descobrindo`,error:`Erro`,stopped:`Parado`,unknown:`Desconhecido`},disabled:`Os servidores MCP estão desativados.`,wakeTitle:`Acordar servidor`,sleepTitle:`Colocar em repouso`,discoverTitle:`Descobrir ferramentas`,editTitle:`Editar`,removeTitle:`Remover`,statusLabel:`Status:`,enabledLabel:`Ativado:`,yes:`Sim`,no:`Não`,descriptionLabel:`Descrição:`,pidLabel:`PID:`,errorLabel:`Erro:`,toolsLabel:`Ferramentas ({{count}}):`,noTools:`Nenhuma ferramenta descoberta ainda`,serverNameRequired:`O nome do servidor é obrigatório`,dialogTitleEdit:`Editar servidor MCP`,dialogTitleAdd:`Adicionar servidor MCP`,dialogTitleAddCustom:`Adicionar servidor MCP personalizado`,fieldName:`Nome`,fieldNamePlaceholder:`ex. github, filesystem`,fieldTransport:`Transporte`,fieldUrl:`URL`,fieldCommand:`Comando`,fieldCommandPlaceholder:`ex. npx`,fieldArgs:`Args`,fieldArgsHint:`(separados por espaços)`,fieldArgsPlaceholder:`ex. -y @modelcontextprotocol/server-github`,fieldEnv:`Variáveis de ambiente`,fieldEnvHint:`(KEY=valor, uma por linha)`,fieldDescription:`Descrição`,fieldDescriptionPlaceholder:`Servidor MCP do GitHub para acesso ao repositório`,enableServer:`Ativar servidor`,lazyConnect:`Conexão preguiçosa`,lazyConnectHint:`(não inicia até a primeira chamada; hiberna quando ocioso)`,saveChanges:`Salvar alterações`,addServer:`Adicionar servidor`,requires:`Requer: {{vars}}`,added:`Adicionado`,heading:`Servidores MCP`,summary:`{{connected}} conectados · {{sleeping}} inativos · {{total}} no total`,addCustom:`Personalizado`,tabRecommended:`Recomendados`,tabServers:`Servidores`,tabAddCustom:`Personalizado`,recommendedBody:`Adição com um clique para servidores MCP populares. Clique em Adicionar para preencher a configuração e depois confirme. Servidores que exigem credenciais precisarão de suas variáveis de ambiente antes do uso.`,loadingServers:`Carregando servidores...`,noServers:`Nenhum servidor MCP configurado`,noServersHint:`Mude para a aba Recomendados para adicionar servidores populares, ou Personalizado para os seus.`,addCustomBody:`Configure um servidor MCP personalizado com transporte stdio, SSE ou HTTP.`,addCustomBodyHint:`Para servidores populares, use a aba Recomendados — tudo já está pré-configurado.`,removeConfirmTitle:`Remover o servidor "{{name}}"?`,removeConfirmBody:`Isso remove o servidor MCP da sua configuração.`,toastAdded:`Servidor "{{name}}" adicionado`,toastRemoved:`Servidor "{{name}}" removido`,toastDiscovered:`Descobertas {{count}} ferramentas de "{{name}}"`,toastSleeping:`O servidor "{{name}}" está inativo`,toastConnected:`Servidor "{{name}}" conectado`,toastReconnected:`Servidor "{{name}}" reconectado`,toastDisconnected:`Servidor "{{name}}" desconectado: {{reason}}`,toastError:`Servidor "{{name}}" erro: {{error}}`,authRequired:`Login necessário`,authorized:`Autorizado`,authorizeTitle:`Autorizar com OAuth`,authSignOutTitle:`Remover credenciais OAuth`,authSignOutBody:`Remover as credenciais OAuth salvas de "{{name}}"? Você precisará autorizar novamente.`,authPromptTitle:`Conclua o login em "{{name}}"`,authPromptBody:`Abra a página de autorização e aprove o acesso. Este painel é atualizado quando o provedor redirecionar de volta.`,authPromptOpen:`Abrir página de autorização`,toastAuthorized:`"{{name}}" autorizado`,toastAuthFailed:`"{{name}}" precisa de autorização{{suffix}}`},u={title:`Limpar a allowlist salva?`,body_one:`Isso removerá o modelo fixado para {{provider}}. O seletor de modelos voltará ao catálogo models.dev.`,body_other:`Isso removerá os {{count}} modelos fixados para {{provider}}. O seletor de modelos voltará ao catálogo models.dev.`,undoHint:`Você pode desfazer por 8 segundos após confirmar.`,keepTitle:`Manter allowlist (Esc)`,clearTitle:`Limpar allowlist (Enter)`,clear:`Limpar allowlist`},d={termsWarning:`Entre com uma assinatura em vez de uma chave de API. Usar uma assinatura fora de seu cliente oficial pode violar os Termos do provedor — sua conta pode ser limitada ou banida. Uma chave de API é o caminho sancionado para uso programático.`,signIn:`Entrar`,waitingBrowser:`Aguardando seu login…`,openSignIn:`Abrir página de login`,pasteLoopbackBusy:`Porta loopback ocupada — cole a URL de redirecionamento`,pasteCantReach:`O navegador não alcança este servidor? Cole a URL de redirecionamento`,submit:`Enviar`,enterCode:`Insira este código na página de verificação:`,openVerification:`Abrir página de verificação`,waitingCode:`Aguardando autorização…`,exchanging:`Trocando tokens…`,fetchingModels:`Buscando modelos…`,signedIn:`Conectado.`,signedInToast:`Conectado — {{provider}}`,signInFailed:`Login falhou`,accountCount_one:`{{count}} conta salva`,accountCount_other:`{{count}} contas salvas`,active:`Ativo`,inactive:`Inativo`,retry:`Repetir`,retryLogin:`Reautenticar esta conta`,newAccount:`Nova conta`,aliasPlaceholder:`ex. {{default}}`},f={showThinkingLabel:`Mostrar registros de raciocínio`,showThinkingHint:`Exibe os blocos de raciocínio concluídos no histórico do chat.`,groupToolCallsLabel:`Agrupar chamadas de ferramentas`,groupToolCallsHint:`Agrupa chamadas consecutivas de ferramentas em um único indicador.`,autoCollapseInputLabel:`Recolher editor sob o histórico`,autoCollapseInputHint:`Ao carregar uma sessão com mensagens, recolher o editor sob o histórico. Desativado por padrão — o editor permanece expandido até ser recolhido manualmente.`,themeHeading:`Tema`,themeLight:`Claro`,themeDark:`Escuro`,themeSystem:`Sistema`,themeSystemHint:`Sistema segue a preferência claro/escuro do seu sistema operacional.`,preferencesHeading:`Preferências`,compactDensity:`Densidade compacta`,compactDensityHint:`Espaçamento mais estreito em todo o chat.`,soundOnComplete:`Som ao concluir`,soundOnCompleteHint:`Reproduz um toque suave quando uma execução termina.`,titleAnimation:`Animação do título`,titleAnimationHint:`Mostrar título animado do terminal no CLI.`,thinkingWordLabel:`Palavra de raciocínio (CLI/TUI)`,thinkingWordHint:`Palavra exibida no chip de status da TUI. Uma única palavra curta.`,statuslineModeLabel:`Modo da linha de status (CLI/TUI)`,statuslineModeHint:`Densidade da linha de status da TUI.`,statuslineModeDetailed:`Detalhado`,statuslineModeMinimum:`Mínimo`,statuslineModeNoColor:`Sem cor`,animationStyleLabel:`Estilo de animação (CLI/TUI)`,animationStyleHint:`Animação do chip de trabalho da TUI.`,animationStyleRainbow:`Arco-íris`,animationStyleWave:`Onda`,animationStylePulse:`Pulso`,animationStyleDots:`Pontos`,animationStyleBreathe:`Respiração`,animationStyleStatic:`Estático`,animationStyleCycle:`Ciclo`,languageHeading:`Idioma`,languageLabel:`Idioma da interface`,languageHint:`Altera apenas o texto da interface. Prompts, skills e a saída do modelo não são afetados.`,paletteHeading:`Paleta de cores`,paletteSwitcherTitle:`Paleta de cores`,paletteHint:`Escolha a cor principal (e suas derivadas). As superfícies neutras permanecem as mesmas.`,paletteSignal:`Sinal`,paletteEmeraldGold:`Esmeralda e dourado`,paletteBlueNavy:`Azul-marinho`,palettePurplePink:`Roxo e rosa`,paletteCyanTeal:`Ciano e verde-azulado`,paletteRoseCopper:`Rosa e cobre`,paletteIndigoAmber:`Índigo e âmbar`,paletteSageSand:`Salvia e areia`,paletteSlateViolet:`Lousa e violeta`,paletteCoralMint:`Coral e hortelã`,paletteArcticEmber:`Ártico e brasa`,paletteMossRust:`Musgo e ferrugem`},p={autonomyHeading:`Autonomia e Comportamento`,autonomyModeLabel:`Modo de autonomia`,autonomyModeHint:`Quão independentemente o agente prossegue entre turnos.`,autonomyModeOff:`Desativado — controle manual total`,autonomyModeSuggest:`Sugerir — sugere os próximos passos`,autonomyModeAuto:`Auto — breve atraso de confirmação`,autonomyModeEternal:`Eterno — autônomo até o objetivo concluído`,autonomyModeEternalParallel:`Eterno Paralelo — frota multi-agente`,autoProceedDelayLabel:`Atraso de auto-prosseguir`,autoProceedDelayHint:`Milissegundos antes de o agente auto-prosseguir no modo Auto. 0 = imediato.`,yoloLabel:`Modo YOLO`,yoloHint:`Executar chamadas de ferramentas sem perguntar, exceto os tipos de dano listados abaixo.`,yoloConfirmHeading:`Ainda perguntar sobre`,yoloConfirmIntro:`O YOLO executa todo o resto sem supervisao. Estes sao os tipos de dano diante dos quais ele para e pergunta.`,yoloConfirmLockedNote:`Estes dois sempre perguntam. Eles escrevem os arquivos que decidem se voce sera consultado, entao desliga-los deixaria o agente desligar o proprio sistema de aprovacao.`,yoloKindLocked:`sempre pergunta`,yoloKind:{"disk-wipe":{label:`Apagar um disco`,hint:`mkfs, dd para um dispositivo bruto, format C:, fork bomb`},"system-halt":{label:`Desligar ou reiniciar`,hint:`shutdown, reboot`},"delete-outside":{label:`Apagar fora do projeto`,hint:`exclusao recursiva forcada que sai do projeto ou atinge uma raiz de sistema ou home`},"git-history":{label:`Reescrever o historico do git`,hint:`reset --hard, clean -f, push --force, filter-branch`},publish:{label:`Publicar ou implantar`,hint:`npm publish, docker push, kubectl delete namespace`},"download-and-run":{label:`Executar codigo baixado`,hint:`curl | sh e cargas inline que baixam e executam`},"bulk-delete":{label:`Apagar em massa`,hint:`find -exec rm, rmSync inline em muitos caminhos`},"agent-state":{label:`Escrever o estado do proprio WrongStack`,hint:`config.json, trust.json, auth.json`},"credential-bind":{label:`Vincular uma chave de API a um endpoint`,hint:`anexar uma chave conhecida a uma URL de provedor`}},refineHeading:`Refinamento de Prompt`,enableRefineLabel:`Ativar refinamento`,enableRefineHint:`Reescreve os prompts antes de enviar — instruções mais claras, melhores resultados.`,refineDelayLabel:`Atraso de refinamento`,refineDelayHint:`Contagem regressiva antes do envio automático do prompt refinado.`,refineLanguageLabel:`Idioma de refinamento`,refineLanguageHint:`Mantenha seu idioma ou traduza para inglês para o modelo.`,refineLanguageOriginal:`Original — mantenha seu idioma`,refineLanguageEnglish:`Inglês — traduzir para inglês`,refinerProviderLabel:`Provedor do refinador`,refinerProviderHint:`Id do provedor para o refinamento de objetivos. Vazio = usar o provedor da sessão.`,refinerProviderDefault:`Provedor da sessão`,refinerModelLabel:`Modelo do refinador`,refinerModelHint:`Id do modelo para o refinamento de objetivos. Vazio = usar o modelo da sessão.`,refinerModelDefault:`Modelo da sessão`,refinerProfileLabel:`Perfil de fallback do refinador`,refinerProfileHint:`Perfil de fallback nomeado para refinamento de objetivos. Substitui o provedor e o modelo.`,refinerProfileDefault:`Nenhum — usar provedor e modelo ou os padrões da sessão`,reasoningHeading:`Raciocínio e Cache`,reasoningModeLabel:`Modo de raciocínio`,reasoningModeHint:`Controla como o modelo usa o pensamento estendido. Auto = padrão do provedor.`,reasoningModeAuto:`Auto — padrão do provedor`,reasoningModeOn:`Ligado — forçar pensamento`,reasoningModeOff:`Desligado — desativar pensamento`,reasoningEffortLabel:`Esforço de raciocínio`,reasoningEffortAuto:`Auto (geral)`,reasoningEffortAutoHint:`Configuração geral: {{value}}`,reasoningEffortHint:`Quanto compute o modelo gasta pensando. Enviado apenas quando o modelo suporta.`,reasoningEffortNone:`Nenhum`,reasoningEffortMinimal:`Mínimo`,reasoningEffortLow:`Baixo`,reasoningEffortMedium:`Médio`,reasoningEffortHigh:`Alto`,reasoningEffortXhigh:`Muito alto`,reasoningEffortMax:`Máx`,preserveThinkingLabel:`Preservar pensamento`,preserveThinkingHint:`Mantém os blocos de raciocínio entre turnos para continuidade de contexto.`,cacheTtlLabel:`TTL de cache`,cacheTtlHint:`Tempo de vida do cache de prompt. 1h custa mais na escrita mas economiza em releituras (Anthropic).`,cacheTtlDefault:`Padrão — padrão do provedor`,cacheTtl5m:`5 minutos`,cacheTtl1h:`1 hora`,capsHint:`Use wstack models caps para verificar o que o modelo atual suporta. Configurações não suportadas são omitidas silenciosamente por requisição.`,routingHeading:`Roteamento de modelo`,routingRouteKey:`Chave de rota de modelo`,routingPhasesGroup:`Fases`,routingRolesGroup:`Funções {{label}}`,routingCustomGroup:`Rotas personalizadas existentes`,routingTargetAria:`Destino da rota de modelo`,routingTargetEmpty:`— Limpar rota —`,routingTargetProfilesGroup:`Perfis de fallback`,routingTargetModelsGroup:`Modelos (provedor/modelo)`,routingSet:`Definir`,routingReasoningModeAria:`Modo raciocínio nova rota`,routingReasoningEffortAria:`Esforço raciocínio nova rota`,routingReasoningPreserveAria:`Preservação raciocínio nova rota`,routingReasoningModeFor:`Modo raciocínio para {{key}}`,routingReasoningEffortFor:`Esforço raciocínio para {{key}}`,routingReasoningPreserveFor:`Preservação raciocínio para {{key}}`,noRoutes:`Ainda não há rotas de modelo.`,leaderModel:`modelo líder`,autonomyDelayMsLabel:`Atraso de continuação automática`,autonomyDelayMsHint:`Milissegundos antes de o agente continuar automaticamente no modo Auto. 0 = imediato.`,refineCountdownLabel:`Contagem regressiva de refinamento`,refineCountdownHint:`Período de carência antes do envio automático do prompt refinado (milissegundos).`,reasoningEffortModelSet:`níveis do modelo ativo`,reasoningEffortUnsupported:`Não oferecido por este modelo (suportados: {{levels}}) — a configuração será omitida.`},m={heading:`Execução`,maxIterationsLabel:`Iterações máx por run`,unlimitedLabel:`Ilimitado`,maxIterationsHint:`Teto rígido de turnos LLM por agent.run().`,autoProceedMaxIterationsLabel:`Iterações máx de auto-prosseguir`,autoProceedMaxIterationsHint:`Para o auto-prosseguir após N iterações. 0 = ilimitado.`,confirmExitLabel:`Confirmar antes de sair`,confirmExitHint:`Primeiro Ctrl+C aborta o trabalho, segundo confirma a saída.`,chimeLabel:`Som ao concluir`,chimeHint:`Campainha do terminal quando um run de agente termina.`,breakerLabel:`Disjuntor de processos`,breakerHint:`Bloqueia bash/exec após falhas repetidas; ao disparar, arma a contagem de kill/reset.`,breakerTimeoutLabel:`Tempo de kill/reset do disjuntor`,breakerTimeoutHint:`Atraso antes do kill/reset automático ao disparar. 0 = recuperação manual.`,availabilityHeading:`Provider/model availability calendar`,availabilityHint:`Prevent autonomous and overnight runs from using selected providers or models during recurring windows.`},h={heading:`Modelos fallback / round-robin`,body:`Quando o modelo ativo é rate-limitado (429/529), dá erro 5xx ou trava — após suas próprias retentativas — o agente rotaciona para o próximo modelo desta cadeia. Também usado como padrão para os sub-agentes workers do SDD.`,autoFallbackLabel:`Fallback automático`,autoFallbackHint:`Quando a cadeia acima está vazia, derive uma automaticamente de seus provedores com chave.`,favoritesOnlyLabel:`Apenas favoritos`,favoritesOnlyHint:`Quando o fallback automático deriva uma cadeia, restrinja-a aos seus modelos favoritos.`,profilesHeading:`Perfis fallback / round-robin`,addProfile:`Adicionar`,noProfiles:`Ainda não há perfis de fallback nomeados.`,createDefault:`Criar padrão a partir do modelo ativo`,useChain:`Usar cadeia`,setLeader:`Definir líder`,profileEmpty:`O perfil está vazio.`,favoritesHeading:`Modelos favoritos`,favoritesEmpty:`Os favoritos são mostrados primeiro e podem restringir o fallback automático.`,addModelToProfile:`Adicionar modelo ao perfil…`,addFavoriteModel:`Adicionar modelo favorito…`,inactive:`inativo`},g={heading:`Frota e Streaming`,fleetChatVerbosityLabel:`Transmitir eventos da frota`,fleetChatVerbosityHint:`Mostra a atividade ao vivo dos sub-agentes no painel da frota.`,maxConcurrentLabel:`Sub-agentes concorrentes máx`,maxConcurrentHint:`Número máximo de sub-agentes que podem rodar simultaneamente.`,nextPredictionLabel:`Previsão do próximo passo`,nextPredictionHint:`Após um turno, prevê os prováveis próximos passos.`,nextStepsToolLabel:`Ferramenta nextsteps`,nextStepsToolHint:`Permite que o agente registre as sugestões com uma chamada de ferramenta em vez de escrever o bloco manualmente. Vale na próxima sessão.`},_={hqHeading:`Cliente HQ`,hqPublishingLabel:`Publicação HQ`,hqPublishingHint:`Publica esta sessão WebUI/cliente no WrongStack HQ. Clientes da mesma máquina podem auto-descobrir a auth HQ local; clientes remotos usam a URL/token abaixo.`,hqUrlLabel:`URL HQ`,hqUrlHint:`Deixe vazio para auto-descoberta na mesma máquina.`,hqTokenLabel:`Token do cliente HQ`,hqRawContentLabel:`Conteúdo HQ bruto`,hqRawContentHint:`Enviar pré-visualizações de conteúdo brutas para HQ em vez de pré-visualizações redigidas.`,wrongProxyHeading:`WrongProxy / WrongTrace`,wrongProxyEnabledLabel:`Rotear URLs base pelo proxy local`,wrongProxyEnabledHint:`Quando ativado, a URL base de cada provedor é reescrita pelo proxy configurado (padrão http://localhost:3444/proxy/<host><path>). openai-codex é excluído — ele fala diretamente com o backend do ChatGPT usando um token OAuth.`,wrongProxyUrlLabel:`URL do proxy`,wrongProxyUrlHint:`Onde o daemon proxy local escuta. O sistema verifica periodicamente <url>/api/health; um daemon inacessível desativa a reescrita sem tentar novamente a cada tecla.`,wrongProxyChangesApply:`As alterações se aplicam imediatamente às próximas requisições — sem necessidade de reiniciar.`,telegramHeading:`Notificações do Telegram`,telegramSessionEndLabel:`Fim de sessão`,telegramSessionEndHint:`Envia um resumo quando uma sessão termina.`,telegramDelegateLabel:`Delegado concluído`,telegramDelegateHint:`Envia uma nota humanizada quando um sub-agente conclui.`,telegramLongToolLabel:`Ferramentas longas`,telegramLongToolHint:`Notifica quando uma ferramenta excede {{ms}}ms. 0 para desativar.`,telegramChangesApply:`As mudanças se aplicam imediatamente.`,telegramNotConfigured:`O Telegram não está configurado. Execute /telegram-setup na CLI para conectar um bot primeiro.`,heading:`Integrations`,disabledHint:`Ative o recurso na aba Contexto para usar esta seção.`},v={chimeraDedicatedHeading:`Chimera — Post-session Code Review`,chimeraDedicatedHint:`Automated code quality review that runs after every agent session. Catches regressions, anti-patterns, and potential bugs.`,chimeraSectionEnabled:`Post-session review (Chimera)`,chimeraSectionEnabledHint:`Run a code review agent after every iteration.`,chimeraProviderLabel:`Chimera provider`,chimeraProviderHint:`Provider for the review agent. Select one from your configured providers.`,chimeraProviderSessionDefault:`Session default`,chimeraModelLabel:`Model`,chimeraModelSessionDefault:`Session default`,chimeraModelHint:`Model for the review agent. Requires a provider first.`,chimeraMaxFilesLabel:`Max files per review`,chimeraMaxFilesHint:`Maximum number of changed files included in a single review call.`,chimeraAutoFixLabel:`Auto-fix mode`,chimeraAutoFixHint:`Whether the review agent should automatically apply fixes for issues it finds.`,chimeraAutoFixOff:`Off — review only`,chimeraAutoFixAsk:`Ask — confirm before applying`,chimeraAutoFixAuto:`Auto — apply without confirmation`,autoReviewCascadeOnLabel:`Cascata em`,autoReviewCascadeOnHint:`Quando uma revisão encontra problemas nesta gravidade ou superior, inicia agentes de acompanhamento.`,autoReviewCascadeOnOff:`Desativado`,autoReviewCascadeOnHigh:`Alta ou superior`,autoReviewCascadeOnCritical:`Apenas crítica`,chimeraPickModel:`Pick provider/model for Chimera`,chimeraPickModelHint:`Select a provider and model for post-session code review.`,autoReviewSectionEnabled:`Mid-session review (Auto-Review)`,autoReviewSectionEnabledHint:`Run a review agent mid-session on every file change.`,autoReviewFallbackProfileLabel:`Perfil fallback / round-robin`,autoReviewFallbackProfileHint:`Perfil de modelos para auto-review; fornece o pool de fallback e os modelos para round-robin ou seleção aleatória.`,autoReviewFallbackProfileNone:`None — use provider+model or session defaults`,autoReviewModelSelectionLabel:`Seleção do perfil`,autoReviewModelSelectionHint:`Escolhe o próximo modelo na ordem ou um modelo inicial aleatório para cada revisão.`,autoReviewModelSelectionRoundRobin:`Round-robin — ordem do perfil`,autoReviewModelSelectionRandom:`Aleatório — escolher do perfil`,autoReviewFallbackModelsLabel:`Modelos fallback / round-robin`,autoReviewFallbackModelsEmpty:`Nenhum modelo fallback / round-robin configurado`,autoReviewFallbackModelsHint:`Modelos do perfil ou cadeia global; formam o pool de seleção e a cadeia de nova tentativa.`,autoReviewModelLabel:`Model`,autoReviewModelHint:`Model for the auto-review agent. Requires a provider first.`,autoReviewDebounceLabel:`Debounce interval (ms)`,autoReviewDebounceHint:`Minimum gap between review triggers after a file change.`,autoReviewMaxFilesLabel:`Max files per batch`,autoReviewMaxFilesHint:`Files per auto-review call.`,autoReviewMaxConcurrentLabel:`Max concurrent reviews`,autoReviewMaxConcurrentHint:`Parallel review subagent cap.`,autoReviewCascadeLabel:`Cascade on`,autoReviewCascadeHint:`Follow-up agent threshold — spawns security-scanner and bug-hunter above this severity.`,autoReviewCascadeOff:`Off — no cascade`,autoReviewCascadeCritical:`Critical — only critical findings`,autoReviewCascadeHigh:`High — critical or high findings`,autoReviewPickModel:`Pick provider/model for Auto-Review`,autoReviewPickModelHint:`Select a provider and model, or a named fallback profile, for mid-session auto-review.`,pluginsPerPluginHint:`Enable or disable individual plugins. Changes take effect on next session.`},y={flagsHeading:`Sinalizadores de Recursos`,mcpLabel:`Servidores MCP`,mcpHint:`Habilita integrações Model Context Protocol.`,pluginsLabel:`Plugins`,pluginsHint:`Carrega e executa plugins instalados pelo usuário.`,memoryLabel:`Memória`,memoryHint:`Persiste e recupera fatos entre sessões.`,skillsLabel:`Habilidades`,skillsHint:`Carrega prompts de habilidades específicas do domínio.`,modelsRegistryLabel:`Registro de modelos`,modelsRegistryHint:`Usa o catálogo models.dev para descoberta de provedores.`,toolCoachLabel:`Guia de ferramentas`,toolCoachHint:`Sugere ferramentas ativadas durante a tarefa e orienta após erros. Ativado por padrão.`,indexOnStartLabel:`Indexar ao iniciar`,indexOnStartHint:`Constrói o índice de símbolos do código ao iniciar a sessão.`,pluginsPerPluginHeading:`🔌 Per-Plugin Controls`,pluginSearch:`Buscar plugins`,pluginEnabledOnly:`Somente ativos`,pluginNoMatches:`Nenhum plugin corresponde a este filtro.`,pluginsPerPluginHint:`Enable or disable individual plugins. Changes take effect on next session.`,pluginChimera:`Chimera — post-session code review`,pluginSkills:`Skills — skill library & authoring`,pluginPrompts:`Prompts — prompt library & gen`,pluginCostTracker:`Cost Tracker — token & cost tracking`,pluginTelegram:`Telegram — notification bot`,pluginErrorLens:`Error Lens — failure diagnostics`,pluginSecretScanner:`Secret Scanner — credential detection`,pluginLintGate:`Lint Gate — lint before iteration`,pluginDiffSummary:`Diff Summary — compact diffs`,pluginDepGuard:`Dep Guard — dependency rules`,pluginTypeGate:`Type Gate — typecheck before iteration`,pluginInjectionShield:`Injection Shield — prompt injection`,pluginPromptFirewall:`Prompt Firewall — input filtering`,pluginTokenBudget:`Token Budget — token limits`,pluginLoopBreaker:`Loop Breaker — runaway detection`,heading:`Contexto e Depuração`,autoCompactLabel:`Auto-compactar contexto`,autoCompactHint:`Apara automaticamente a janela de contexto perto dos limites.`,compactorStrategyLabel:`Estratégia de compactação`,compactorStrategyHint:`Como o contexto é compactado quando cresce demais.`,compactorStrategyHybrid:`Híbrida — regras rápidas (padrão)`,compactorStrategyIntelligent:`Inteligente — resumo LLM`,compactorStrategySelective:`Seletiva — seleção guiada por LLM`,contextModeLabel:`Modo de contexto`,contextModeHint:`Política de janela de contexto — equilibrado é o padrão.`,contextModeBalanced:`Equilibrado — uso normal do contexto`,contextModeFrugal:`Frugal — uso conservador de tokens`,contextModeDeep:`Profundo — contexto maior para tarefas complexas`,tokenSavingLabel:`Modo de economia de tokens`,tokenSavingHint:`Controla os esquemas diretos e o prompt do sistema da próxima sessão.`,tokenSavingAuto:`Auto — adaptar o prompt à janela do modelo`,tokenSavingOff:`Desativado — sem economia`,tokenSavingMinimal:`Mínimo — otimização básica`,tokenSavingLight:`Leve — redução moderada`,tokenSavingMedium:`Médio — economias significativas`,tokenSavingAggressive:`Agressivo — menor superfície direta e prompt`},b={logLevelLabel:`Nível de log`,logLevelHint:`Severidade mínima para logging do lado servidor.`,logLevelDebug:`Debug — tudo`,logLevelInfo:`Info — fluxo normal`,logLevelWarn:`Warn — apenas problemas`,logLevelError:`Error — apenas falhas`,auditLevelLabel:`Nível de auditoria`,auditLevelHint:`Nível de detalhe para logs de auditoria de sessão.`,auditLevelMinimal:`Mínimo — apenas erros`,auditLevelStandard:`Padrão — chamadas de ferramentas + erros`,auditLevelFull:`Completo — cada evento (logs grandes)`,fsAccessLabel:`Acesso ao sistema de arquivos`,fsAccessHint:`Escopo das ferramentas de arquivo. Aplica-se na próxima sessão.`,fsAccessUnrestricted:`Irrestrito — qualquer caminho`,fsAccessProject:`Projeto — limitado à raiz do projeto`,debugStreamLabel:`Fluxo de depuração`,debugStreamHint:`Dump hex SSE bruto no stderr do servidor para depurar provedores.`,heading:`Logs & Debug`},x={heading:`Security & Monitoring`,brainHeading:`🧠 Brain — Controle de decisões`,brainHint:`Modelos de decisão, conselho, escalonamento e teto de risco — aplicados na hora e salvos na configuração global.`,shadowHeading:`👁 Agente sombra — Monitor da frota`,shadowHint:`O agente sombra monitora todos os agentes da frota, acompanha suas tarefas e detecta anomalias.`,toolsHeading:`🔧 Tool Access Control`,toolsHint:`Ative ou desative ferramentas individuais. Ferramentas que alteram dados aparecem em âmbar.`,breakerHeading:`Process Circuit Breaker`,breakerHint:`Restringe bash/exec após falhas repetidas; o acionamento inicia a contagem regressiva de encerramento/reinício.`},S={switchingTo:`Mudando para {{provider}} / {{model}}…`,switching:`Mudando o modelo…`,switchingToTarget:`Mudando para {{target}}…`,previousModel:`modelo anterior`,modelSwitchedNextRequest:`Modelo alterado: {{from}} → {{to}}. Ativo na próxima solicitação ao LLM.`,modelSwitchedRunActive:`Modelo alterado: {{from}} → {{to}}. Ativo na próxima solicitação ao LLM; a execução atual continua sem reiniciar.`,fallbackExists:`O perfil de fallback "{{name}}" já existe`,selectProviderModelFirst:`Selecione um provedor e um modelo primeiro`,defaultProfileCreated:`Perfil de fallback padrão criado`,profileEmpty:`O perfil de fallback "{{name}}" está vazio`,leaderSetFrom:`Líder definido a partir de {{name}}`,modelSwitchTimeout:`Troca de modelo expirou. Por favor, tente novamente.`},C={workbenchHeading:`Aparência do workbench`,workbenchHint:`Alterna a visibilidade das superfícies do workbench na vista de chat.`,showModelReasoningLabel:`Mostrar raciocínio do modelo`,showModelReasoningHint:`Renderiza blocos de raciocínio/thinking do LLM no histórico do chat (paridade com TUI).`,showAgentSwarmPanelLabel:`Painel agent swarm`,showAgentSwarmPanelHint:`Controla onde o painel agent swarm (fleet + fila de missões) é exibido.`,swarmPanelBottom:`Painel inferior`,swarmPanelSidebar:`Barra lateral direita`,swarmPanelOff:`Desativado`,titleAnimationLabel:`Animação do título`,titleAnimationHint:`Anima o título do terminal/aba com o status de execução (paridade com TUI).`,keyboardShortcutsLabel:`Atalhos de teclado`,keyboardShortcutsHint:`Habilitar atalhos de teclado globais (Ctrl+K, Alt+1..4, etc.). Desativado por padrão.`,statusChipHeading:`Chip de status e barra de status`,statusChipHint:`Estilo visual para a barra de status TUI/CLI e o chip de trabalho.`,thinkingWordLabel:`Palavra de raciocínio`,thinkingWordHint:`Palavra curta única exibida no chip de status TUI enquanto o agente trabalha.`,thinkingWordInvalid:`Use uma palavra de até 16 letras, números, sublinhados ou hífens.`,statuslineModeLabel:`Modo da barra de status`,statuslineModeHint:`Densidade da barra de status TUI.`,statuslineModeMinimum:`Mínimo`,statuslineModeDetailed:`Detalhado`,statuslineModeNoColor:`Sem cor`,animationStyleLabel:`Estilo de animação`,animationStyleHint:`Animação do chip de trabalho TUI.`,animationStyleRainbow:`Arco-íris`,animationStyleWave:`Onda`,animationStylePulse:`Pulso`,animationStyleDots:`Pontos`,animationStyleBreathe:`Respiração`,animationStyleStatic:`Estático`,animationStyleCycle:`Ciclo`,refineHeading:`Contagem regressiva do refine e diffs`,refineHint:`Configura a contagem regressiva pré-refine e o limite mínimo de arquivos para o rodapé de resumo multi-diff.`,preRefineSecondsLabel:`Contagem regressiva pré-refine`,preRefineSecondsHint:`Período de carência antes do refiner iniciar (segundos). 0 = pula a contagem e refina imediatamente.`,preRefineSecondsPresets:`Predefinições: {{presets}} segundos (0 = desativado).`,multiDiffSummaryLabel:`Resumo multi-diff`,multiDiffSummaryHint:`Número mínimo de arquivos antes que o rodapé agregado 'N arquivos · +X -Y' apareça acima dos blocos por arquivo.`,multiDiffSummaryPresets:`Predefinições: {{presets}} (0 = desativado).`,memoryHeading:`Ferramenta read e injeção de memória SAGE`,memoryHint:`Alterna o que a ferramenta read inclui e quando blocos de memória SAGE aparecem nos resultados de ferramentas.`,readSymbolsLabel:`Ler símbolos`,readSymbolsHint:`Quando ativo, a ferramenta read inclui símbolos do índice do código junto com o conteúdo do arquivo.`,showSageMemoryInjectLabel:`Mostrar SAGE Memory Inject`,showSageMemoryInjectHint:`Quando ativo, mostra blocos de injeção de memória SAGE nos resultados de ferramentas.`,sageMemoryInjectThresholdLabel:`Limite de SAGE Memory Inject`,sageMemoryInjectThresholdHint:`Força mínima de relação necessária para uma memória SAGE injetada (0.72–0.95).`,footnote:`Estas configurações refletem o picker /settings do TUI. Alternâncias aplicam-se ao vivo; alguns campos exigem reinício da sessão.`,sageRelaxed:`0,72 (relaxado)`,sageDefault:`0,85 (padrão)`,sageStrict:`0,95 (rigoroso)`},w=`Limpar preferências locais`,T=`Cancelar`,E=`Limpar as preferências deste navegador?`,D=`Limpa as preferências salvas neste navegador e recarrega a página. As configurações conectadas são carregadas novamente do servidor.`,O=`Limpar e recarregar`,k=JSON.parse(`{"heading":"Brain","headingHint":"Modelos de decisão, conselho, escalada e teto de risco — aplicados em tempo real, salvos na configuração global.","riskHeading":"Teto de autonomia","escalationHeading":"Escalada","escalationModeLabel":"Modo","escalationModeHint":"Headless: o Brain nunca bloqueia esperando um humano — escaladas sem resposta são resolvidas pela política terminal segura. Aplica-se a sessões CLI/TUI; o Brain WebUI independente é sempre headless.","escalationDecisionTimeoutLabel":"Tempo limite de decisão","escalationDecisionTimeoutHint":"Orçamento de tempo por chamada LLM para uma decisão do Brain.","escalationHumanTimeoutLabel":"Tempo limite de resposta humana","escalationHumanTimeoutHint":"Modo interativo: quanto tempo um aviso de escalada pode esperar antes que a política terminal o resolva.","escalationTerminalPolicyLabel":"Política terminal","escalationTerminalPolicyHint":"Como uma escalada headless é resolvida sem humano disponível. Conservador aceita uma opção recomendada em risco baixo/médio; negar-tudo nunca aceita automaticamente; continuar-com-recomendação aceita uma opção recomendada em QUALQUER risco.","escalationDecisionLogSizeLabel":"Tamanho do registro de decisões","escalationDecisionLogSizeHint":"Registro de decisões em memória rotativo mantido para a visão de status.","rulesHeading":"Regras determinísticas","rulesConfigured":"{{count}} configurada(s)","rulesBody":"Avaliadas antes de qualquer chamada ao provedor — a primeira correspondência vence. Edite-as no arquivo de configuração global; esta visão é somente leitura.","rulesOff":"desativada","rulesDropped":"{{count}} regra(s) descartada(s)","heuristicsHeading":"Heurísticas","heuristicsBody":"Suposições de padrão gratuitas que resolvem uma pergunta antes que um modelo execute. Todas ativas por padrão — desligue aquela cuja suposição esteja errada para sua carga de trabalho.","heuristicsLowRiskLabel":"Resposta automática de baixo risco","heuristicsLowRiskHint":"Responda automaticamente solicitações de baixo risco que já trazem uma opção recomendada.","heuristicsBlockedLabel":"Bloqueado-resolvido","heuristicsBlockedHint":"'blocked …' mais um marcador de resolução explícito no contexto resolve como continuar.","heuristicsDeadlockLabel":"Pular impasse","heuristicsDeadlockHint":"'deadlock' mais unidades de trabalho falhas no contexto resolve como pular e continuar.","heuristicsRetryLabel":"Novas tentativas esgotadas","heuristicsRetryHint":"'failed'/'retry' mais novas tentativas comprovadamente esgotadas marca a unidade como falha e segue.","heuristicsPingLabel":"Ping de continuação","heuristicsPingHint":"Um simples ping de continuar/prosseguir sem alternativa concorrente resolve como continuar.","heuristicsMarkers":"Marcadores: {{markers}}","qualityHeading":"Qualidade LLM","qualityCircuit_one":"circuito {{state}} · {{count}} falha","qualityCircuit_other":"circuito {{state}} · {{count}} falhas","qualityResponseBudgetLabel":"Orçamento de resposta","qualityResponseBudgetHint":"Tokens de saída por chamada de decisão. Uma resposta do Brain é uma decisão mais uma justificativa de uma frase.","qualityRejectLabel":"Rejeitar respostas incertas","qualityRejectHint":"Trata uma resposta recusada ou vazia como 'este nível não pôde decidir' em vez de aceitá-la como resposta.","qualityMinConfidenceLabel":"Confiança mínima","qualityMinConfidenceHint":"Rejeita respostas cuja confiança autodeclarada esteja abaixo disso. Respostas sem confiança declarada sempre passam.","qualityDenyTerminalLabel":"A recusa é terminal","qualityDenyTerminalHint":"Se uma recusa do nível LLM único encerra a decisão. 'when-decided' torna terminal uma recusa genuína enquanto falhas de infraestrutura ainda escalam.","traceHeading":"Trilha de replay","traceRecordLabel":"Registrar trilhas de decisão","traceRecordHint":"JSONL por decisão de cada nível, alvo do pool e voto do conselho, com tempos e uso de tokens. Desativado por padrão — ativar grava o conteúdo das decisões em disco.","traceContentLabel":"Conteúdo da trilha","traceContentHint":"'full' mantém pergunta e contexto (necessário para reproduzir uma decisão); 'redacted' trunca texto livre; 'none' registra apenas metadados.","cacheHeading":"Cache de decisões","cacheStats":"{{hits}} acertos / {{misses}} erros · {{size}} ativos","cacheReplayLabel":"Reproduzir vereditos idênticos","cacheReplayHint":"Reutiliza um veredito anterior do conselho/LLM para uma pergunta idêntica repetida. Níveis determinísticos e perguntar-a-um-humano nunca são armazenados; uma decisão que o registro observa como falha é expulsa.","cacheLifetimeLabel":"Vida das entradas","cacheLifetimeHint":"Por quanto tempo um veredito em cache continua reproduzível.","cacheMaxEntriesLabel":"Entradas máximas","cacheMaxEntriesHint":"Limite de vereditos ativos em cache.","monitorHeading":"Monitor","monitorBody":"Auto-ativação por sinais de sofrimento. O monitor é construído uma vez na inicialização, então estes ajustes valem para a próxima sessão, não em tempo real.","monitorWatchLabel":"Vigiar sinais de sofrimento","monitorWatchHint":"Sequências de falhas de ferramentas, tempestades de erros, travamentos de agentes e churn de arquivos acionam o Brain sozinhos.","monitorPolicyLabel":"Política de sinais","monitorPolicyHint":"Como um sinal detectado é resolvido. 'llm' consulta o Brain; 'steer' sempre intervém e 'observe' nunca — ambos sem chamada ao provedor.","modelsHeading":"Modelos de decisão","modelsSessionBadge":"modelo da sessão","modelsResolvedBadge":"{{resolved}}/{{total}} resolvidos","modelsUseSessionLabel":"Usar modelo da sessão","modelsUseSessionHint":"Decidir com o modelo que a sessão está executando. Desligar adicionando modelos abaixo.","modelsAddModel":"Adicionar modelo","modelsPoolStrategyLabel":"Estratégia do pool","modelsPoolStrategyHint":"Fallback: o primeiro modelo é primário, os demais são tentados em ordem na falha. Round-robin: as decisões rotacionam pelo pool.","councilHeading":"Conselho","councilConvened":"convocado","councilDisabled":"desativado","councilEnableLabel":"Ativar conselho multi-LLM","councilEnableHint":"Perguntas de alto risco são votadas por assentos independentes (executor / cético-com-veto / auditor) em vez de um único modelo. Exige ≥2 votantes resolvíveis (assentos explícitos abaixo, ou um pool de ≥2 modelos).","councilSeatsDerived":"Assentos derivados do pool: {{seats}}","councilCustomLens":"Lente de decisão personalizada — enviada ao assento literalmente.","councilCustomOption":"{{persona}} (personalizado)","councilVeto":"veto","councilAddVoter":"Adicionar votante","councilRiskFloorLabel":"Piso de risco","councilRiskFloorHint":"Risco mínimo da pergunta que convoca o conselho em vez do nível mono-modelo.","councilJudge":"Juiz","councilJudgeDesc":"Modelo de desempate que vê a justificativa de cada voto.","councilResolved":"resolvido: {{model}}","councilAlsoVoter":"⚠ também votante","councilAuto":"auto","councilPick":"Escolher…","councilAutoReset":"Auto","councilQuorumLabel":"Quórum","councilQuorumHint":"Fração de assentos que deve retornar um voto válido.","councilApprovalLabel":"Aprovação","councilApprovalHint":"Fração do peso dos votos emitidos que a opção vencedora deve exceder.","councilPerSeatTimeoutLabel":"Tempo limite por assento","councilPerSeatTimeoutHint":"Orçamento de tempo para o voto de um único assento. Mais lento que o tempo de decisão significa que um assento travado segura o voto.","councilMaxConcurrencyLabel":"Concorrência máxima","councilMaxConcurrencyHint":"Quantos assentos votam em paralelo. Reduza quando o pool compartilha um provedor com limite de taxa.","councilDistinctnessLabel":"Distinção de assentos","councilDistinctnessHint":"Rejeita assentos duplicados: 'model' exige modelos distintos, 'provider' provedores independentes para que uma queda não possa influenciar o voto.","councilVoterBudgetLabel":"Orçamento de resposta do votante","councilVoterBudgetHint":"Tokens de saída por chamada de assento — modelos de raciocínio gastam seus tokens de pensamento deste orçamento.","councilRoundsLabel":"Rodadas de deliberação","councilRoundsHint":"A rodada 1 é independente. Nas seguintes, cada assento vê os votos dos demais e pode rever sua posição. Apenas a última rodada é contada, e cada rodada custa mais uma chamada por assento.","councilJudgeBudgetLabel":"Orçamento de resposta do juiz","councilJudgeBudgetHint":"Tokens de saída para a chamada do juiz de desempate.","councilSeatTemplate":"Modelo de assento:","ledgerHeading":"Registro de decisões","ledgerRecordLabel":"Registrar decisões + resultados","ledgerRecordHint":"Persiste cada decisão e seu resultado observado; resultados passados semelhantes são realimentados em prompts futuros do Brain.","ledgerAutoDenyLabel":"Auto-recusar após falhas","ledgerAutoDenyHint":"Recusar deterministicamente (sem LLM) quando este número de aprovações consecutivas de um grupo de decisões terminou em falhas observadas.","ledgerMemoryEntriesLabel":"Entradas em memória","ledgerMemoryEntriesHint":"Tamanho do anel em memória e o número de entradas passadas carregadas do disco na inicialização.","ledgerRetryWindowLabel":"Janela de nova tentativa de intervenção","ledgerRetryWindowHint":"Uma intervenção do monitor do mesmo tipo que se reativa nesta janela marca a orientação anterior como falha.","recentHeading":"Decisões recentes ({{count}})","recentEmpty":"Nenhuma decisão registrada nesta sessão.","optInteractive":"Interativo (pergunte-me)","optHeadless":"Headless (nunca perguntar)","optConservative":"Conservador (padrão)","optDenyAll":"Negar tudo","optContinueRecommended":"Continuar com recomendação","optNeverDefault":"Nunca (padrão)","optWhenDecided":"Quando decidido","optAlways":"Sempre","optFullDefault":"Completo (padrão)","optRedacted":"Redigido","optMetadataOnly":"Somente metadados","optConsultBrain":"Consultar o Brain (padrão)","optAlwaysSteer":"Orientar sempre","optObserveOnly":"Apenas observar","optFallback":"Fallback","optRoundRobin":"Round-robin","optMediumPlus":"Médio+","optHighPlus":"Alto+","optCriticalOnly":"Somente crítico","optNoneDefault":"Nenhum (padrão)","optDistinctModels":"Modelos distintos","optDistinctProviders":"Provedores distintos","optDefault3":"Padrão (3)","optOff":"Desativado","pickPoolTitle":"Adicionar modelo ao pool do Brain","pickPoolHint":"Pool de decisão ordenado — o primeiro é primário.","pickVoterTitle":"Adicionar votante ao conselho","pickVoterHint":"A caixa de diálogo permanece aberta — adicione ≥2 votantes e depois feche.","pickJudgeTitle":"Escolher juiz do conselho","pickJudgeHint":"Desempate que vê cada voto.","persistError":"Configurações aplicadas em tempo real, mas não salvas.","riskCopy":{"off":"Um humano decide tudo","low":"Decidir automaticamente apenas baixo risco","medium":"Decidir automaticamente até risco médio","high":"Decidir automaticamente até alto risco","all":"Decidir automaticamente tudo"},"rulesConfigured_one":"{{count}} configurada","rulesConfigured_other":"{{count}} configuradas"}`),A={default15s:`Padrão (15 s)`,waitForever:`Esperar indefinidamente`,defaultHalf:`Padrão (0,5)`,all:`Todos`,n200Default:`200 (padrão)`,offDefault:`Desativado (padrão)`,n20Default:`20 (padrão)`,m5Default:`5 min (padrão)`,default:`Padrão`,oneSerial:`1 (serial)`,roundsOff:`1 (sem deliberação)`,default500:`Padrão (500)`,default10m:`Padrão (10 min)`},j={capToolCall:`Chamada de ferramenta`,capReasoning:`Raciocínio`,capTemperature:`Temperatura`,capAttachment:`Anexo`,capStructuredOutput:`Saída estruturada`,capOpenWeights:`Pesos abertos`},M={presetsHeading:`Conjuntos de fontes`,presetsHint:`Um conjunto define todas as funções de uma vez; as fontes só são baixadas no primeiro uso.`,presets:{workbench:{label:`Bancada`,description:`A aparência padrão da bancada de trabalho.`},plex:{label:`IBM Plex`,description:`Uma única família técnica do início ao fim.`},modern:{label:`Moderno`,description:`Inter neutra com JetBrains Mono para código.`},geist:{label:`Geist`,description:`Combinação nítida de Geist Sans e Mono.`},classic:{label:`Clássico`,description:`Source Sans, Serif e Code Pro da Adobe.`},editorial:{label:`Editorial`,description:`Títulos serifados e uma fonte de chat com cara de livro.`},readable:{label:`Legível`,description:`Fontes muito legíveis para sessões longas.`},friendly:{label:`Amigável`,description:`Formas arredondadas e descontraídas com Fira Code.`},monospace:{label:`Monoespaçada`,description:`Monoespaçada em todo lugar, estilo terminal.`},system:{label:`Sistema`,description:`Fontes do sistema operacional, sem downloads.`}},rolesHeading:`Fontes por função`,rolesHint:`Substitua qualquer função sobre o conjunto. Funções marcadas com “Igual a” seguem a função principal.`,roles:{ui:{label:`Interface e painéis`,hint:`Botões, menus, barras laterais, listas e configurações.`},display:{label:`Títulos`,hint:`Títulos de página e de seção.`},reading:{label:`Chat e documentos`,hint:`Respostas do assistente, markdown e mensagens da caixa de entrada.`},code:{label:`Código em linha e dados`,hint:`Blocos de código, logs, IDs e dados tabulares.`},editor:{label:`Editor de código`,hint:`Editor de arquivos Monaco e visualização de diferenças.`},terminal:{label:`Terminal`,hint:`Sessões do terminal integrado.`}},fromPreset:`Conjunto ({{name}})`,inherit:`Igual a {{role}} ({{name}})`,categories:{sans:`Sem serifa`,serif:`Serifada`,mono:`Monoespaçada`},systemTag:`sistema`,sizeHeading:`Tamanho e espaçamento`,sizeHint:`O tamanho do texto da interface escala todos os painéis; editor e terminal são definidos em pixels.`,sizePresets:{compact:`Compacto`,normal:`Normal`,comfortable:`Confortável`,large:`Grande`,custom:`Personalizado`},controls:{uiScale:{label:`Tamanho do texto da interface`,hint:`Escala o texto de painéis, chat e diálogos.`},editorFontSize:{label:`Tamanho da fonte do editor`,hint:`Editor Monaco e visualização de diferenças.`},codeLineHeight:{label:`Altura de linha do código`,hint:`Editor, visualização de diferenças e blocos de código.`},terminalFontSize:{label:`Tamanho da fonte do terminal`,hint:`Terminal integrado.`},terminalLineHeight:{label:`Altura de linha do terminal`,hint:`Espaçamento entre linhas do terminal.`},ligatures:{label:`Ligaduras de código`,hint:`Une => !== >= em um único glifo em fontes compatíveis (Fira Code, Cascadia, JetBrains Mono…). Não se aplica ao terminal.`}},previewHeading:`Prévia ao vivo`,preview:{heading:`Refatorar o carregador de sessões`,body:`O agente leu 12 arquivos e propôs uma alteração em duas etapas. Revise as diferenças antes de aplicar.`,label:`Rótulo da interface`},resetAll:`Redefinir todas as configurações de fonte`,resetOverrides:`Limpar substituições por função`},N={description:`Manage the decision provider and see where Jev is used.`,loading:`Loading Jev settings…`,timeout:`No response from server. Reconnect and retry.`,route:`Decision provider`,routeChange:`Changing provider clears the previous key, endpoint and model. Enter a new key or use the provider environment variable.`,key:`API key`,keyHint:`Leave blank to keep the current key`,removeKey:`Remove saved key (environment key may still apply)`,endpoint:`Endpoint override`,model:`Model override`,defaultHint:`Empty uses provider default`,requestTimeout:`Request timeout (ms)`,featureHint:`Switches permit Jev usage. Actual use also depends on the prerequisites and triggers below.`,save:`Save Jev settings`,test:`Test saved connection`,testHint:`The test sends one small billed request. Save changes first. Restart existing sessions to apply all consumers.`,activity:`Jev activity`,activityHint:`Refreshes every 3 seconds. Last 300 requests in this server process, across its sessions. No prompts, credentials or raw errors. Disk log rotates at 5 MB. Answered means a typed response, not necessarily a decision accepted by the consumer.`,filter:`Feature`,all:`All`,empty:`No matching Jev requests yet. Test the connection or use an enabled feature.`,features:{brain:`Brain decisions`,memoryTriage:`Memory triage`,topicShift:`Topic changes`,memoryRecall:`Memory recall`,compaction:`Context compaction`,kanbanVerify:`Kanban verification`,modelTier:`Subagent model tier`,semanticLint:`Semantic lint`,tool:`Ferramenta de decisão do agente`,skillSuggestion:`Skill suggestions`,fleetDispatch:`Fleet dispatch`},readinessScope:`These are saved profile conditions, not the live state of every session. A request below means the service was called, not that its answer was accepted.`,unknownReadiness:`Readiness unavailable on this server`,unsaved:`Unsaved change`,lastRequest:`Last runtime request`,notObserved:`No runtime request in the displayed recent log.`,contextStrategy:`Profile compaction strategy`,contextScope:`Selective enables the Jev selection path. Save changes and restart existing sessions; a session-specific strategy can override this profile setting.`,openContext:`Open session context settings`,configureTiers:`Configure model tiers`,tiersHint:`Enable tiers and define at least two levels, cheapest first. Set their models or fallback profiles and a default tier. Changes here save immediately.`,checkHeading:`Live capability checks`,checkHint:`Runs 22 synthetic cases across all 11 features using the saved account, including disabled features. Makes billed API calls, sends no project content and changes no feature settings. Passing does not prove workload quality or that a session uses the feature.`,checkAll:`Test all 11 features`,checkRunning:`Running live checks…`,expected:`Expected`,actual:`Actual`,includeChecks:`Include diagnostic requests`,selfTest:`Diagnostic`,account:{ready:`Account configured`,unconfigured:`Account required`,unusable:`Account settings invalid`},readiness:{disabled:`Disabled`,"account-required":`Account required`,blocked:`Setup required`,conditional:`Configured · waiting for trigger`},reasons:{disabled:`This feature is not permitted to use Jev.`,"account-required":`Configure a valid Jev account first.`,"selective-required":`Jev selection requires selective compaction; hybrid and intelligent do not use this selector.`,"tiers-disabled":`The model tier system is disabled.`,"tiers-required":`Define at least two model tiers.`,"skills-disabled":`The global skills feature is disabled.`,"trigger-required":`Runs only when its trigger conditions are met.`,"memory-disabled":`Memory or SAGE is disabled.`,"recall-injection-required":`SAGE turn context recall is disabled; the Jev recall filter requires this path.`},triggers:{brain:`Runs before later decision tiers; uncertain answers defer.`,memoryTriage:`Runs during triage value evaluation and merge decisions.`,topicShift:`Runs when topic-change prechecks require a judgment; repeated results may be cached.`,memoryRecall:`Filters candidates returned by SAGE turn context recall; cached judgments are reused.`,compaction:`Rates middle conversation turns during selective compaction; requires a provider and sufficient history.`,kanbanVerify:`Judges open agent-type criteria against changed files and their diff.`,modelTier:`Suggests a tier for delegations with no explicit model/tier and no matching role/phase route.`,semanticLint:`Runs when the semantic lint command finds candidates; it is not an automatic edit watcher.`,tool:`Executa quando um agente chama jev com evidências e perguntas tipadas.`,skillSuggestion:`Requires skills enabled, at least two skills, and gate/fit thresholds; results may be cached.`,fleetDispatch:`Runs only for ambiguous routing with multiple candidate roles.`},recallTurnContext:`SAGE turn context recall`,recallTurnHint:`Adds relevant memories to each new turn; the Jev recall filter runs on this path. Memory and SAGE must also be enabled. Save and restart existing sessions.`,logContent:`Record full request/response content in the log file`,logContentHint:`Writes the state sent, the full question wording and the answers with their distributions to the Jev log file. This view stays metadata-only either way, and the account key is scrubbed. Turn it off when you are done. Save and restart existing sessions.`,logContentOn:`Full request/response content is recorded in this file. It is never shown here.`,logContentOff:`Metadata only. Full request/response content is not recorded.`},P={title:e,subtitle:t,navigation:n,providerTest:r,tabs:i,model:a,connection:o,provider:s,providerModels:c,mcp:l,allowlist:u,oauth:d,general:f,agent:p,execution:m,fallbacks:h,fleet:g,integrations:_,features:v,context:y,logs:b,security:x,toast:S,display:C,resetLabel:w,cancel:T,resetConfirmTitle:E,resetConfirmBody:D,resetConfirmAction:O,brain:k,brainOpt:A,modelSchema:j,fonts:M,jev:N};export{p as agent,u as allowlist,k as brain,A as brainOpt,T as cancel,o as connection,y as context,P as default,C as display,m as execution,h as fallbacks,v as features,g as fleet,M as fonts,f as general,_ as integrations,N as jev,b as logs,l as mcp,a as model,j as modelSchema,n as navigation,d as oauth,s as provider,c as providerModels,r as providerTest,O as resetConfirmAction,D as resetConfirmBody,E as resetConfirmTitle,w as resetLabel,x as security,t as subtitle,i as tabs,e as title,S as toast};
|