specrails-desktop 2.59.2 → 2.60.0
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/client/dist/assets/{ActivityFeedPage-vAY9C71W.js → ActivityFeedPage-3J7fR8yB.js} +1 -1
- package/client/dist/assets/{AgentBrowserCapture-CpwjGXQm.js → AgentBrowserCapture-D4a3wYM1.js} +1 -1
- package/client/dist/assets/{AgentModeAnalyticsPane-BHeoJVxQ.js → AgentModeAnalyticsPane-Dps30tk9.js} +2 -2
- package/client/dist/assets/{AgentModeCodePane-B0Nf3YkN.js → AgentModeCodePane-CvLimey8.js} +2 -2
- package/client/dist/assets/{AgentModeJobsPane-CpbIItY_.js → AgentModeJobsPane-25tQlLpF.js} +1 -1
- package/client/dist/assets/{AgentsPage-BVJAFXn3.js → AgentsPage-CUDp_sfw.js} +2 -2
- package/client/dist/assets/{AnalyticsPage-DDWees-K.js → AnalyticsPage-DXWMGn8b.js} +1 -1
- package/client/dist/assets/{CodePage-CzV5tkvS.js → CodePage-D981zRHy.js} +1 -1
- package/client/dist/assets/{DesktopAnalyticsPage-DfRHNK7i.js → DesktopAnalyticsPage-BkFBq0E6.js} +1 -1
- package/client/dist/assets/{DocsDialog-BxduBYbh.js → DocsDialog-BL7uSbIJ.js} +1 -1
- package/client/dist/assets/{DocsPage-DOVeRJn_.js → DocsPage-CsDLbmZX.js} +1 -1
- package/client/dist/assets/{ExportDropdown-BnKVV8UK.js → ExportDropdown-B4Olg1Fk.js} +1 -1
- package/client/dist/assets/{InteractiveJobComposer-Da9dvM-0.js → InteractiveJobComposer-Z6fl4791.js} +2 -2
- package/client/dist/assets/JobDetailModal-DS_Owxs6.js +1 -0
- package/client/dist/assets/JobDetailPage-1TUQ9vlE.js +1 -0
- package/client/dist/assets/{JobsPage-0vdlbNik.js → JobsPage-BSrl8P7u.js} +1 -1
- package/client/dist/assets/LoopBuilderPage-Dh5uk2Qy.js +1 -0
- package/client/dist/assets/{LoopPreviewModal-Df-S8NGf.js → LoopPreviewModal-CH1r-KhU.js} +1 -1
- package/client/dist/assets/{LoopWindowSurface-sdb7QbSo.js → LoopWindowSurface-CiZdI6aw.js} +1 -1
- package/client/dist/assets/{LoopsPage-CDfCC9Px.js → LoopsPage-BwFujdGi.js} +1 -1
- package/client/dist/assets/{MinimizedChatsContext-DKlPf54Y.js → MinimizedChatsContext-BD2bsRBe.js} +1 -1
- package/client/dist/assets/PluginsPage-B8f49Mvn.js +2 -0
- package/client/dist/assets/{ProjectSettingsDialog-DOkjT7xv.js → ProjectSettingsDialog-D7q-O6h3.js} +1 -1
- package/client/dist/assets/{RepositoryDeliveries-CJVpOUpZ.js → RepositoryDeliveries-NNorcGzT.js} +1 -1
- package/client/dist/assets/{RepositoryScopeSelector-BeM-2gIZ.js → RepositoryScopeSelector-D-jb4bI_.js} +1 -1
- package/client/dist/assets/{ReviewPacketPage-EBCim2w_.js → ReviewPacketPage-DpZSzF-Q.js} +1 -1
- package/client/dist/assets/{TemplatePreviewModal-1-92UGwN.js → TemplatePreviewModal-5CZdAZ0G.js} +1 -1
- package/client/dist/assets/{TicketDetailModalContext-CkVXuHxU.js → TicketDetailModalContext-BHmtj1As.js} +1 -1
- package/client/dist/assets/{Trans-CzhPjnjB.js → Trans-wmTUDVyC.js} +1 -1
- package/client/dist/assets/{agentRuntime-TXPQowKJ.js → agentRuntime-7Ydcvr6P.js} +1 -1
- package/client/dist/assets/{agentRuntime-Bpx3yWHK.js → agentRuntime-BHVw9orA.js} +1 -1
- package/client/dist/assets/{agentRuntime-15Pkk6we.js → agentRuntime-DCPDaQcV.js} +1 -1
- package/client/dist/assets/{agentRuntime-C78n13To.js → agentRuntime-DKTw4Ajg.js} +1 -1
- package/client/dist/assets/{agentRuntime-CCI7XF4c.js → agentRuntime-DVhij_i_.js} +1 -1
- package/client/dist/assets/{agentRuntime-Ddqvp2bP.js → agentRuntime-Doss-T8o.js} +1 -1
- package/client/dist/assets/{agentRuntime-CKDHe2-a.js → agentRuntime-eZSMUlkM.js} +1 -1
- package/client/dist/assets/{agentRuntime-hqZRy08E.js → agentRuntime-qSSU7fQk.js} +1 -1
- package/client/dist/assets/agents-B6ZsnARo.js +1 -0
- package/client/dist/assets/agents-BORdhe0K.js +1 -0
- package/client/dist/assets/agents-C6aq9Oqs.js +1 -0
- package/client/dist/assets/agents-Cbsc4bcX.js +1 -0
- package/client/dist/assets/agents-D0uYR6hq.js +1 -0
- package/client/dist/assets/agents-Doe1sHY5.js +1 -0
- package/client/dist/assets/agents-DyNi_I9m.js +1 -0
- package/client/dist/assets/agents-StKxiTg0.js +1 -0
- package/client/dist/assets/agentstudio-7cYCXn-L.js +1 -0
- package/client/dist/assets/{agentstudio-QdAJIDef.js → agentstudio-BHWQh8G3.js} +1 -1
- package/client/dist/assets/agentstudio-BjnWHyRs.js +1 -0
- package/client/dist/assets/{agentstudio-fLXpRGIi.js → agentstudio-BkV8vcK4.js} +1 -1
- package/client/dist/assets/{agentstudio-BWAKeGgB.js → agentstudio-BzugqB_N.js} +1 -1
- package/client/dist/assets/{agentstudio-Cja8Sjcp.js → agentstudio-CWbp7KvH.js} +1 -1
- package/client/dist/assets/agentstudio-DG6plf5o.js +1 -0
- package/client/dist/assets/agentstudio-DkZVF-Cc.js +1 -0
- package/client/dist/assets/{formatDistanceToNow-DlQaXc7c.js → formatDistanceToNow-Dax4zqPF.js} +1 -1
- package/client/dist/assets/{getTimezoneOffsetInMilliseconds-DxUFGcVq.js → getTimezoneOffsetInMilliseconds-dpIo42JZ.js} +1 -1
- package/client/dist/assets/{index-Czov72g7.js → index-g8S62tpS.js} +7 -7
- package/client/dist/assets/jira-B6OYw4CJ.js +1 -0
- package/client/dist/assets/jira-BTF6RaOe.js +1 -0
- package/client/dist/assets/jira-CEetIB2q.js +1 -0
- package/client/dist/assets/jira-CIzsZLw5.js +1 -0
- package/client/dist/assets/{jira-BOoaUXbb.js → jira-Cq6yvN4q.js} +1 -1
- package/client/dist/assets/jira-Daw9tmpI.js +1 -0
- package/client/dist/assets/jira-FXr7u2lh.js +1 -0
- package/client/dist/assets/jira-LaNQn7yl.js +1 -0
- package/client/dist/assets/{jira-api-CbJvbRYx.js → jira-api-CLrIvXFm.js} +1 -1
- package/client/dist/assets/{jobs-DZAbh1m2.js → jobs-ARwD85B9.js} +1 -1
- package/client/dist/assets/{jobs-BD47Ov11.js → jobs-BMF1w4WT.js} +1 -1
- package/client/dist/assets/{jobs-tWjcDF_6.js → jobs-CBfzGLwm.js} +1 -1
- package/client/dist/assets/{jobs-CSrRx5lD.js → jobs-CPjiluBY.js} +1 -1
- package/client/dist/assets/{jobs-epP7gt8W.js → jobs-CQQd58pY.js} +1 -1
- package/client/dist/assets/{jobs-1G3wodhl.js → jobs-De3EqaO0.js} +1 -1
- package/client/dist/assets/{jobs-BLOoVRRl.js → jobs-Du9-Ei9a.js} +1 -1
- package/client/dist/assets/{jobs-B4pu8TdF.js → jobs-qMHbnxwC.js} +1 -1
- package/client/dist/assets/{project-repositories-BkBD3rxx.js → project-repositories-BkyT8AjU.js} +1 -1
- package/client/dist/assets/{spending-CYotH-9N.js → spending-Oov7p52A.js} +1 -1
- package/client/dist/assets/{useDesktop-DpxVGfUC.js → useDesktop-DpiS8Uov.js} +1 -1
- package/client/dist/assets/{useRuntimeRuns-CfGRbhr9.js → useRuntimeRuns-DBm1mul0.js} +1 -1
- package/client/dist/assets/{useSharedWebSocket-C17TGqT8.js → useSharedWebSocket-BZxKaVNT.js} +2 -2
- package/client/dist/index.html +19 -19
- package/docs/getting-started.md +2 -2
- package/docs/guide/de/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/de/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/de/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/de/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/en/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/en/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/en/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/en/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/es/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/es/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/es/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/fr/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/fr/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/fr/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/fr/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/it/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/it/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/it/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/it/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/ja/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/ja/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/ja/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/ja/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/pt/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/pt/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/pt/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/pt/agents/4-custom-agents-catalog.md +3 -3
- package/docs/guide/zh/agents/1-meet-the-agents.md +1 -1
- package/docs/guide/zh/agents/2-profiles-and-the-balanced-default.md +1 -1
- package/docs/guide/zh/agents/3-customizing-models-per-agent.md +1 -1
- package/docs/guide/zh/agents/4-custom-agents-catalog.md +3 -3
- package/docs/internals/adding-a-provider.md +7 -6
- package/docs/internals/configuration.md +45 -0
- package/docs/internals/core-runtime-updates.md +19 -0
- package/docs/internals/loop-step-log-explorer.md +27 -0
- package/docs/internals/mission-rail-cards.md +7 -0
- package/docs/internals/profiles.md +17 -10
- package/docs/internals/review-packet.md +1 -1
- package/docs/internals/safe-pr-review-flow.md +9 -0
- package/docs/internals/source-map.md +6 -2
- package/docs/jira-integration-plan.md +7 -4
- package/docs/running-pipelines.md +2 -2
- package/package.json +1 -1
- package/server/dist/core-compat.js +7 -3
- package/server/dist/core-execution.js +5 -18
- package/server/dist/jira/jira-db.js +33 -6
- package/server/dist/jira/jira-materializer.js +11 -9
- package/server/dist/jira/jira-status-resolver.js +64 -22
- package/server/dist/jira/jira-sync-manager.js +40 -1
- package/server/dist/jira-router.js +8 -41
- package/server/dist/mcp/guide.js +4 -3
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +22 -70
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-controls.js +7 -4
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings.js +24 -1
- package/server/dist/modules/agent-runtime/runtime/agent-runtime-verification-log.js +252 -0
- package/server/dist/modules/agents/runtime/profiles-router.js +74 -36
- package/server/dist/modules/delivery/runtime/rail-relaunch.js +10 -2
- package/server/dist/modules/execution/runtime/queue-manager.js +7 -9
- package/server/dist/modules/loops/runtime/loop-agents.js +2 -5
- package/server/dist/modules/loops/runtime/loop-command-catalog.js +5 -5
- package/server/dist/modules/loops/runtime/loop-definition.js +1 -1
- package/server/dist/modules/loops/runtime/loop-executors.js +0 -2
- package/server/dist/modules/loops/runtime/loop-implement-recipe.js +5 -4
- package/server/dist/modules/loops/runtime/loop-run-manager.js +5 -3
- package/server/dist/modules/loops/runtime/loops-router.js +3 -1
- package/server/dist/path-resolver.js +41 -20
- package/server/dist/project-env.js +22 -6
- package/server/dist/providers/gemini-agent-ack.js +13 -10
- package/server/dist/setup-manager.js +28 -43
- package/server/dist/util/checkout-path.js +22 -0
- package/server/dist/workspace-manager.js +13 -71
- package/server/dist/worktree-node-modules.js +70 -34
- package/client/dist/assets/JobDetailModal-DhwKbZGe.js +0 -1
- package/client/dist/assets/JobDetailPage-MtPE-E_1.js +0 -1
- package/client/dist/assets/LoopBuilderPage-DCUHozXh.js +0 -1
- package/client/dist/assets/PluginsPage-iL0G3rQQ.js +0 -2
- package/client/dist/assets/agents-CA5eT1d0.js +0 -1
- package/client/dist/assets/agents-CAgy-5uS.js +0 -1
- package/client/dist/assets/agents-CNm6Qzlv.js +0 -1
- package/client/dist/assets/agents-CTwbx-fb.js +0 -1
- package/client/dist/assets/agents-DEGV1Vao.js +0 -1
- package/client/dist/assets/agents-HsDF1aQU.js +0 -1
- package/client/dist/assets/agents-IQjdA-z9.js +0 -1
- package/client/dist/assets/agents-RkGoteXh.js +0 -1
- package/client/dist/assets/agentstudio-B2CTtQgZ.js +0 -1
- package/client/dist/assets/agentstudio-DtfPcr99.js +0 -1
- package/client/dist/assets/agentstudio-X70BKf6u.js +0 -1
- package/client/dist/assets/agentstudio-qXKqVnWS.js +0 -1
- package/client/dist/assets/jira-BNZu8f9O.js +0 -1
- package/client/dist/assets/jira-BYVN4L2u.js +0 -1
- package/client/dist/assets/jira-CKJg3HZd.js +0 -1
- package/client/dist/assets/jira-DDDsZ4ub.js +0 -1
- package/client/dist/assets/jira-DXwYjVE4.js +0 -1
- package/client/dist/assets/jira-Dn6U2nRW.js +0 -1
- package/client/dist/assets/jira-j7hVolR5.js +0 -1
- package/server/dist/modules/loops/runtime/loop-agent-defaults.json +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Motore degli agenti`,t=`Architetto, sviluppatore e revisore girano come fasi separate con verifica deterministica in mezzo. Scegli un fornitore per ruolo; tutto il resto ha un valore predefinito funzionante.`,n=`Caricamento delle impostazioni…`,r=`Impossibile caricare le impostazioni. Riprova prima di modificarle.`,i=`Riprova`,a=`Questa installazione di Core non include il motore degli agenti. Aggiorna Core prima di attivarlo; puoi preparare le impostazioni mentre è disattivato.`,o=`Salva impostazioni`,s=`Salvataggio…`,c=`Impostazioni salvate`,l=`Impossibile salvare le impostazioni.`,u=`Richiedi approvazione prima di completare il flusso`,d={title:`Fornitori`,hint:`I CLI usano l’accesso esistente. Le API accettano solo il nome di una variabile d’ambiente, mai la chiave. Per servizi locali può restare vuoto. Riassegna i ruoli prima di rimuovere il fornitore.`,entry:`Fornitore {{index}}`,id:`ID del fornitore`,kind:`Tipo di connessione`,cli:`CLI di programmazione installato`,compatible:`Endpoint compatibile con OpenAI`,command:`CLI di programmazione`,baseUrl:`URL base dell’API`,apiKeyEnv:`Variabile d’ambiente della chiave (facoltativa)`,remove:`Rimuovi fornitore`,addCli:`Aggiungi fornitore CLI`,addLocal:`Aggiungi fornitore locale / API`,show:`Mostra connessioni dei fornitori`,hide:`Nascondi connessioni dei fornitori`,globalTitle:`Provider di IA`,globalHint:`Due tipi di provider alimentano ogni progetto: le CLI di programmazione rilevate su questa macchina e i motori locali compatibili con OpenAI che registri qui. Assegnali alle fasi della pipeline in Impostazioni del progetto ▸ Motore degli agenti. Le modifiche si applicano alle nuove esecuzioni.`,label:`Nome visualizzato (facoltativo)`,labelPlaceholder:`es. Macchina LAN`,defaultModel:`Modello predefinito`,defaultModelNone:`Nessun predefinito (primo rilevato)`,defaultModelPlaceholder:`ID del modello o alias personalizzato`,customModel:`Alias personalizzato…`,discoveredModels:`Modelli rilevati`,noModels:`Nessun modello rilevato finora: prova la connessione.`,rates:`Tariffe (USD per 1M di token, facoltativo)`,ratesHint:`I costi sono mostrati come stime; lascia entrambe vuote e il costo resta sconosciuto.`,inputRate:`Input per 1M`,outputRate:`Output per 1M`,ratesInvalid:`Inserisci entrambe le tariffe come numeri non negativi, oppure lasciale entrambe vuote.`,reasoningEffort:`L'endpoint accetta lo sforzo di ragionamento`,reasoningEffortHint:`Invia il campo reasoning_effort di OpenAI: lo sforzo configurato del ruolo a ogni chiamata, alzato ad alto mentre l'architetto compatto scrive il piano. Lascialo disattivo se il server non lo rispetta.`,apiKeyEnvMissing:`{{name}} non è impostata nel processo dell'app. Impostala nell'ambiente da cui viene avviata l'app.`,test:`Prova connessione`,testing:`Prova in corso…`,testFailed:`Impossibile provare la connessione.`,rename:`Rinomina`,renameHint:`Rinominando, le assegnazioni dei ruoli continuano a puntare a questa connessione.`,idLocked:`L'id è bloccato dopo il salvataggio. Usa Rinomina per cambiarlo.`,localBadge:`Motore locale`,cliBadge:`CLI`,notDetected:`Non rilevato su questa macchina`,unsaved:`Modifiche non salvate`,empty:`Nessuna connessione ancora. Aggiungi un provider locale / API per iniziare.`,fixBeforeSave:`Correggi i campi evidenziati prima di salvare.`,status:{probing:`Verifica…`,reachable:`Raggiungibile`,unauthorized:`Non autorizzato`,unreachable:`Non raggiungibile`,untested:`Mai provato`},auth:{authenticated:`Accesso effettuato`,unauthenticated:`Accesso non effettuato`,unknown:`Accesso sconosciuto`},agentLoop:`Loop dell'agente`,agentLoopHint:`come la pipeline implement guida questo modello`,agentLoop_compact:`Compatto`,agentLoop_compactHint:`Micro-passi guidati dall'app con output strutturato. Consigliato per modelli sotto ~30B.`,agentLoop_free:`Libero`,agentLoop_freeHint:`Un loop agentico per ruolo, come un provider CLI. Richiede un modello potente.`,contextWindow:`Finestra di contesto (token)`,contextWindowHint:`Allineala alla dimensione di contesto del server (n_ctx / num_ctx). Serve a compattare i vecchi risultati degli strumenti prima di riempire la finestra. Predefinito 32768.`,maxOutput:`Budget di output per turno (token)`,maxOutputHint:`max_tokens di un turno con strumenti; un turno troncato viene ritentato una volta al doppio. Conta dentro la finestra di contesto, quindi è sempre limitato allo spazio rimanente — alzalo se il modello ragiona in privato (il thinking lo consuma). Predefinito 8192.`,reasoningEffortRailHint:`Disattivo: il selettore dello sforzo di ragionamento non compare nell'intestazione del rail per questo motore.`,presetTitle:`Configurazione rapida`,presetSmallModel:`Consigliato per modelli piccoli`,presetSmallModelApplied:`Preset per modelli piccoli applicato`,presetSmallModelHint:`Imposta il loop Compatto, inoltra lo sforzo di ragionamento e una finestra di contesto di 32k: la combinazione validata con modelli da 7–14B. Ogni campo resta modificabile.`,cliGroup:`Strumenti CLI`,cliGroupHint:`Rilevati su questa macchina: usano il proprio accesso, niente da configurare.`,localGroup:`Motori locali`,localGroupHint:`Endpoint compatibili con OpenAI (llama.cpp, Ollama, vLLM, LM Studio…) raggiungibili da questa app.`,models_one:`{{count}} modello`,models_other:`{{count}} modelli`,expand:`Mostra impostazioni`,collapse:`Nascondi impostazioni`,overflow:`Altre azioni`,addLocalHero:`Aggiungi motore locale`,emptyLocalPitch:`Nessun motore locale per ora. Punta l’app a un endpoint compatibile con OpenAI per eseguire la pipeline sul tuo hardware: il costo resta sotto il tuo controllo e nulla esce dalla tua rete.`,defaultsGroup:`Valori predefiniti del provider`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Architetto`,developer:`Sviluppatore`,reviewer:`Revisore`,fixer:`Correttore`,verify:`Verifica`,archive:`Completamento`},m={title:`Assegnazione dei ruoli`,hint:`Ogni ruolo può usare un provider e un modello diversi. Connessioni: Impostazioni generali → Provider di IA. Limite predefinito: {{turns}} turni per agente.`,provider:`Fornitore`,model:`Modello`,modelPlaceholder:`ID del modello o predefinito del CLI`,maxTurns:`Numero massimo di turni (predefinito {{turns}})`,defaultModel:`Predefinito ({{model}})`,thinking:`Ragionamento nascosto`,thinking_off:`Disattivato`,thinking_on:`Attivato`,thinkingHint:`Disattivato per impostazione predefinita: il ragionamento nascosto consuma il budget di output e minuti per turno in un ciclo guidato dall'host. Attivalo per un ruolo che trae vantaggio dalla deliberazione (inviato come chat_template_kwargs.enable_thinking; gli endpoint che non lo conoscono lo ignorano).`},h={title:`Limiti del flusso`,hint:`I campi vuoti usano i valori di Core: {{attempts}} tentativi di correzione e {{minutes}} minuti per passo di ruolo. Sui motori locali il timeout si applica a ogni unità di lavoro (un gruppo di attività, un artefatto, una revisione) — 45 minuti per impostazione predefinita — più un watchdog di inattività di 20 minuti; un passo che esaurisce il tempo blocca l'esecuzione e può riprendere dal gruppo aperto successivo. I limiti di token e USD sono facoltativi; quelli in USD richiedono Claude per ogni ruolo.`,maxAttempts:`Tentativi massimi dello sviluppatore (predefinito {{attempts}})`,timeoutMinutes:`Timeout in minuti (predefinito {{minutes}}; motori locali 45 per gruppo di attività)`,maxTokens:`Token massimi`,maxCostUsd:`Costo massimo (USD)`,unlimited:`Nessun limite`},g={title:`Comandi di verifica`,hint:`Facoltativo. Vengono eseguiti quando lo sviluppatore termina e i fallimenti tornano allo sviluppatore. Lista vuota: l’architetto propone i controlli propri del progetto a ogni esecuzione; i repository senza controllo automatico vengono comunque revisionati.`,detect:`Rileva i controlli del progetto`,detecting:`Rilevamento…`,detected:`Compilato con i controlli che questo progetto già definisce.`,nothingDetected:`Nessun comando di test, controllo tipi o build trovato. Va bene: l’architetto propone controlli a ogni esecuzione quando possibile.`,detectFailed:`Impossibile ispezionare i repository del progetto.`,repository:`Repository`,command:`Comando`,reason:`Rilevato da {{reason}}`,remove:`Rimuovi`,add:`Aggiungi comando`,invalidLine:`Comando di verifica vuoto o con virgolette non chiuse: {{line}}`,label:`Nome del controllo (facoltativo)`,moveUp:`Sposta su`,moveDown:`Sposta giù`},_={title:`Esecuzioni salvate`,refresh:`Aggiorna`,hint:`Continua nel worktree originale con ambito e impostazioni salvati; l’avanzamento compare nel log di quel job. Non pubblica né riavvia la consegna Desktop. Le esecuzioni attive si fermano dai controlli del job.`,empty:`Nessuna esecuzione salvata.`,loadFailed:`Impossibile caricare le esecuzioni.`,actionFailed:`Impossibile aggiornare questa esecuzione.`,phase:`Prossima fase: {{phase}}`,approve:`Approva completamento`,recover:`Recupera fase interrotta`,resume:`Riprendi`,cancel:`Annulla continuazione`,status:{running:`Continuazione in corso…`,succeeded:`Riuscito`,failed:`Fallito`,blocked:`Bloccato`,paused:`In pausa`,cancelled:`Annullato`,interrupted:`Interrotto`,unavailable:`Non disponibile`,expired:`Scaduto`},question:`L'architetto chiede:`,answerLabel:`La tua risposta`,answerPlaceholder:`Rispondi alla domanda; l'architetto prosegue con essa.`,answer:`Rispondi e riprendi`,viewLog:`Visualizza log del job`,implementation:`Implementazione`,preserveProgress:`Riprendi dalla fase indicata, conservando il lavoro e le impostazioni salvate.`,reviewDelivery:`Implementazione completata. Controlla il risultato nel log prima della consegna; questa ripresa non lo ha pubblicato.`,prepareDelivery:`Prepara consegna`,dismiss:`Ignora`,selectRecovery:`Seleziona i tentativi interrotti da riprendere`},v={architect:`Legge il codice e scrive proposta, design, attività e spec. Sola lettura.`,developer:`Implementa le attività con i test. Può modificare file ed eseguire comandi nella sandbox del CLI.`,reviewer:`Controlla il risultato rispetto alla spec e alle prove di verifica. Sola lettura.`},y={title:`Soglia di revisione`,hint:`I campi vuoti usano la soglia di Core. I valori possono solo alzarla: punteggio complessivo almeno {{score}}, sicurezza almeno {{security}}, altri aspetti almeno {{aspect}}.`,minScore:`Punteggio complessivo minimo (predefinito {{score}})`,aspects:{type_correctness:`Correttezza dei tipi (predefinito {{score}})`,pattern_adherence:`Aderenza ai pattern (predefinito {{score}})`,test_coverage:`Copertura dei test (predefinito {{score}})`,security:`Sicurezza (predefinito {{score}})`,architectural_alignment:`Allineamento architetturale (predefinito {{score}})`}},b={title:`Confidenza dell'architetto`,hint:`Dopo un passaggio di indagine autonoma, un progetto ancora poco sicuro si mette in pausa con la domanda dell'architetto oppure procede su ipotesi dichiarate.`,onLowConfidence:`Con bassa confidenza`,ask:`Chiedere (pausa con la domanda)`,proceed:`Procedere su ipotesi dichiarate`},x={title:`Consumo e tempo`,hint:`Include correzioni e chiamate non riuscite. Il tempo degli agenti include gli strumenti. I token della cache fanno parte dei token di input.`,unknown:`Non disponibile`,duration:`Tempo di esecuzione`,agentTime:`Tempo degli agenti`,cost:`Costo dichiarato`,providerCalls:`Chiamate agli agenti`,toolCalls:`Chiamate agli strumenti`,input:`Token di input`,output:`Token di output`,uncached:`Input senza cache`,cacheRead:`Letture della cache`,cacheWrite:`Scritture della cache`,partial:`Alcuni tentativi non hanno misurazioni dettagliate.`,phases:`Consumo per fase`,phase:`Fase`,attempts:`Tentativi`},S={title:`Prompt dei ruoli degli agenti`,description:`Visualizza e modifica le istruzioni di ogni ruolo. Sono condivise da tutti i progetti e provider; le modifiche si applicano ai nuovi lavori. I lavori ripresi mantengono i prompt originali.`,definition:`Definizione di {{role}}`,default:`Impostazione predefinita`,custom:`Personalizzato`,restore:`Ripristina predefinito`,contracts:`Il contesto della spec, il workflow OpenSpec e il formato di risposta richiesto vengono aggiunti automaticamente e non sono modificabili qui.`,invalid:`Ogni definizione deve contenere da 1 a 20.000 caratteri, con testo non vuoto e senza byte nulli.`,saved:`Prompt dei ruoli salvati`,unsaved:`Modifiche non salvate`,discard:`Scarta modifiche`,save:`Salva prompt`,fixerHint:`Usato solo nei giri di correzione: dopo una verifica fallita o una revisione respinta. Gira sul motore dello sviluppatore, salvo che Impostazioni ▸ Motore agenti ▸ Correttore ne indichi uno proprio. Un provider CLI che riprende la sessione dello sviluppatore riceve il breve seguito di correzione; la definizione si applica ogni volta che parte una sessione nuova (motori locali, motore correttore, sessione persa).`},C={title:`Efficienza dell’implementazione`,scope:`Si applica alle nuove esecuzioni. Quelle salvate mantengono configurazione e motore originali.`,effort:`Sforzo di ragionamento`,providerDefault:`Predefinito del fornitore`,unconfirmed:`Non confermato`,unknownSupport:`Il supporto per questo modello e trasporto non è confermato.`,escalation:`Consenti un livello superiore con lo stesso fornitore`,baseRequired:`Seleziona prima un modello base esplicito.`,escalationModel:`Modello di livello superiore`,triggers:{architect:`Solo l’approfondimento già previsto può selezionare questo livello.`,developer:`Dopo due candidati falliti, il tentativo successivo consentito può selezionare questo livello.`,reviewer:`Solo per correggere risposte malformate; il rifiuto del codice non lo attiva.`,fixer:`Solo un giro di correzione può raggiungere questo livello; i primi passaggi non eseguono mai il correttore.`},contextMode:`Contesto del repository`,reviewMode:`Revisione delle correzioni`,planning:`Profondità della pianificazione`,adaptive:`Adattivo`,full:`Completo`,developerChecks:`Accetta controlli aggiuntivi proposti dallo sviluppatore`,concurrency:`Controlli simultanei massimi`,concurrencyHint:`Predefinito: 1. Solo controlli indipendenti dichiarati dall’host in repository diversi possono essere simultanei. Nessun riutilizzo predefinito.`,checkCapabilities:`Verifica compatibilità dei modelli`,capabilitiesFailed:`Compatibilità non confermata. Aggiorna Core o mantieni i valori del fornitore.`},w={title:`Evidenze di verifica`,acceptance:`Accettazione tecnica`,acceptanceStatus:{pending:`In attesa`,validated:`Validato`,"with-exceptions":`Con eccezioni`,blocked:`Bloccato`},calls:`Chiamate agli agenti`,executed:`Controlli eseguiti`,reused:`Controlli riutilizzati`,unknown:`Non disponibile`,unavailable:`Evidenza non disponibile. Il risultato registrato non prova la validità attuale.`,current:`Candidato e piano attuali`,historical:`Risultato storico`,moreChecks:`Altri controlli`,output:`Output della verifica`,empty:`Nessun output`,truncated:`Pagina limitata o acquisizione troncata.`,nextPage:`Pagina successiva`,status:{passed:`Superato`,failed:`Fallito`,cancelled:`Annullato`,interrupted:`Interrotto`},disposition:{executed:`Eseguito`,reused:`Riutilizzato`,"not-run":`Non eseguito`},origin:`Origine`,origins:{host:`Host`,architect:`Architetto`,developer:`Sviluppatore`,"frozen-runtime-config":`Configurazione salvata`,"project-role":`Ruolo del progetto`,default:`Predefinito`,"explicit-launch-override":`Provider scelto per questo avvio`,"loop-role":`Ruolo del loop`},reuseDisabled:`Riutilizzo disabilitato per questo controllo.`,reuseConfirmed:`Riutilizzato dopo la conferma di input e strumenti identici.`,inputsChanged:`Input cambiati durante la verifica; risultato invalidato.`,reuseUnproven:`Nessun risultato attuale con input identici comprovati; controllo rieseguito.`,original:`Esecuzione originale`,requested:`Richiesto`,reported:`Segnalato`},T={title:`Ruoli del loop`,hint:`Motori dei ruoli del loop quando un rail viene lanciato con il motore «Ruoli». I ruoli della pipeline qui sopra (architect, developer, reviewer) provengono già da questa configurazione del runtime.`,verifier:`Verificatore`,verifierHint:`Ogni passo IA del loop esterno al core: verify, fix e passi IA personalizzati.`,decider:`Decisore`,deciderHint:`Il Loop Decider che legge il verdetto e sceglie il passo successivo: un modello economico e veloce è la scelta naturale.`,inherit:`Eredita il principale`,model:`Modello`,effort:`Sforzo di ragionamento`,disabled:`Il runtime degli agenti è disattivato: i rail lanciati con il motore «Ruoli» vengono rifiutati finché non viene attivato.`,saveFailed:`Impossibile salvare i ruoli del loop.`},E={title:`Pipeline di implementazione`,explainer:`Queste fasi vengono eseguite in quest'ordine a ogni implementazione. Quando il motore del rail è "{{roles}}", ogni fase usa il motore configurato qui sotto: provider, modello ed effort diversi per fase. Scegliendo un motore specifico sul rail, tutte le fasi girano su quel motore.`,host:`Host`,noCommand:`nessun comando`,inherits:`Eredita il principale`,inheritsDeveloper:`Eredita dallo sviluppatore`,open:`Apri`,collapse:`Comprimi`,groups:{core:{title:`Pipeline principale`,hint:`Viene eseguita in ogni implementazione: pianificare, costruire, verificare, correggere, revisionare.`},loop:{title:`Passi del loop`,hint:`Passi IA del loop del rail che avvolge l'esecuzione (verificare → decidere → correggere) e dei loop personalizzati; ereditano il motore principale se non impostati.`,chip:`loop del rail`}},phases:{architect:{name:`Architetto`,purpose:`Legge il codice e scrive proposta, design e task.`},developer:{name:`Sviluppatore`,purpose:`Implementa i task con i test.`},verification:{name:`Verifica`,purpose:`L'host esegue i tuoi controlli; i fallimenti tornano allo sviluppatore.`},fixer:{name:`Correttore`,purpose:`Corregge ciò che la verifica o la revisione respingono; eredita dallo sviluppatore se non configurato.`},reviewer:{name:`Revisore`,purpose:`Confronta il risultato con la spec e le evidenze.`},verifier:{name:`Verificatore`,purpose:`Passi IA verify, fix e personalizzati del loop.`},decider:{name:`Decisore`,purpose:`Legge il verdetto e sceglie il prossimo passo del loop.`}}},D={title:`Motore del correttore`,inherit:`Eredita sviluppatore`,own:`Motore proprio`,hint:`Viene eseguito solo nei giri di correzione: dopo una verifica fallita o una revisione respinta; i primi passaggi restano sullo sviluppatore. Un modello più potente o cloud qui conviene quando lo sviluppatore è un modello locale economico.`},O={title:`Guardrail`,intro:`Regole di processo che l'host applica intorno ai modelli locali perché un modello piccolo non deragli. Tutte attive per impostazione predefinita; disattivane una solo per regolare il processo. I provider CLI non sono mai coinvolti.`,unsupported:`Questa installazione di Core non espone guardrail configurabili. Aggiorna Core per regolarli; le regole integrate continuano ad applicarsi.`,active:`{{on}} di {{total}} attivi`,reset:`Ripristina predefiniti`,phases:{architect:`Architetto`,developer:`Sviluppatore`,host:`Host`},unknown:`Un guardrail aggiunto da un Core più recente; questa app non ha ancora una descrizione.`,items:{"plan-validation":{title:`Piano di attività validato`,description:`Rifiuta piani che puntano a openspec/, elencano semplici nomi di file come attività, hanno troppo poche attività/gruppi per la spec o lasciano criteri di accettazione scoperti; l'architetto riprova.`,why:`Un piano vago o incompleto è la causa n. 1 per cui un piccolo modello sviluppatore scrive stub.`},"genuine-blocking-question":{title:`Solo vere domande bloccanti`,description:`L'architetto può mettere in pausa l'esecuzione solo con una vera domanda che termina con '?', mai con testo d'esempio copiato.`,why:`I modelli piccoli ripetono i segnaposto del prompt e bloccherebbero ogni esecuzione.`},"plan-language-hint":{title:`Pianificare nel linguaggio del repository`,description:`Indica all'architetto il linguaggio principale così i nomi dei file delle attività hanno l'estensione giusta.`,why:`Un piano JS su un repo TypeScript rende impossibile spuntare le attività.`},"frozen-plan-writes":{title:`Gli artefatti di pianificazione sono congelati`,description:`Lo sviluppatore non può scrivere sotto openspec/; il piano appartiene all'host.`,why:`I modelli 'implementano' modificando il piano invece del codice.`},"primary-language":{title:`Promemoria del linguaggio principale`,description:`A ogni gruppo di attività viene indicato il linguaggio principale del repository; i nuovi file dovrebbero usarlo.`,why:`Evita una seconda implementazione in un altro linguaggio.`},"duplicate-sibling":{title:`Nessun modulo gemello tra linguaggi`,description:`Rifiuta board.js quando board.ts esiste già; estendi invece il modulo esistente.`,why:`I gemelli compilano entrambi e i test importano quello sbagliato.`},"one-test-per-module":{title:`Un file di test per modulo`,description:`Rifiuta board.tick.test.ts quando esiste board.test.ts; estendilo invece.`,why:`Altrimenti ogni passata di correzione aggiunge una nuova suite.`},"empty-write":{title:`Nessuna sovrascrittura vuota`,description:`Una scrittura vuota su un file con contenuto viene rifiutata; scrivi il contenuto completo o applica una patch.`,why:`Una passata di 'pulizia' una volta lasciò index.ts a 0 righe.`},"evidence-gated-ticking":{title:`Prove prima di spuntare un'attività`,description:`Un'attività che nomina file è completata solo se esistono e non sono stub (estensioni sorelle accettate).`,why:`Senza, 'fatto' è solo un'affermazione e la verifica gira contro il nulla.`},"inventory-retry":{title:`Riprova con l'inventario reale`,description:`Quando il modello rinuncia sostenendo che il repo è vuoto mentre non lo è, riprova una volta con l'elenco dei file.`,why:`Seconda possibilità economica invece di un passo fallito.`},"synthetic-corrections":{title:`Trasformare il feedback in attività`,description:`Quando tutte le attività sono spuntate ma review/verify sono falliti, il feedback diventa attività di correzione concrete.`,why:`Altrimenti lo sviluppatore risponde 'già fatto' e nulla cambia.`},"silent-group-closure":{title:`Chiudere i gruppi silenziosi, conservare i loro file`,description:`Un gruppo il cui modello smette di rispondere viene chiuso accreditando i file scritti e lasciando aperte le sue attività, invece di far fallire l'esecuzione.`,why:`Un modello 9B scrisse cinque moduli, tacque e l'intera esecuzione fallì.`},"environment-repair":{title:`L'host ripara l'ambiente`,description:`Dipendenze o strumenti di test mancanti (npm install, ts-jest, @types/jest, moduli di config Jest) vengono installati dall'host, poi la verifica viene rieseguita una volta.`,why:`Il modello non può sistemare l'ambiente e brucia correzioni provandoci.`},"lockfile-repair":{title:`Scartare i lockfile scritti a mano`,description:`Un package-lock.json inventato dal modello (EINTEGRITY/ETARGET) viene rimosso e l'installazione ritentata una volta.`,why:`Gli hash inventati non si installano mai.`},"verify-idle-timeout":{title:`Fermare i test bloccati`,description:`Un comando di verifica senza output per 5 minuti viene fermato e segnalato come probabile blocco (ultimo output incluso).`,why:`Altrimenti un ciclo while in un test trattiene l'esecuzione fino al limite di 15 minuti.`},"verify-per-group":{title:`Verifica dopo ogni gruppo`,description:`Esegue il comando di test del repository subito dopo ogni gruppo di attività; un errore riceve un giro di correzione immediato finché il contesto del gruppo è fresco.`,why:`Cinque suite rotte alla fine sono molto più difficili da sistemare di una alla volta.`},"test-reachability":{title:`Ogni nuovo test deve essere eseguito davvero`,description:"Un file di test scritto dal developer che il comando di test del repository non esegue mai (uno script `test` che enumera e salta il file nuovo) fa fallire la verifica indicando il file esatto, prima a livello di gruppo e poi di nuovo nella verifica dell'host.",why:`Una suite di 622 righe con sei casi falliti è passata in verde perché nessuno l'aveva mai eseguita.`},"exit-code-honesty":{title:`Diffidare di un exit 0 che segnala fallimenti`,description:`Un comando di verifica che esce con 0 mentre l'output stampa fallimenti (righe \`FAIL:\`, "3 failed", un AssertionError) è trattato come FALLITO e passato al correttore con l'harness indicato come difetto.`,why:`Un runner di test artigianale che non impostava mai un exit code diverso da zero ha consegnato tre test rossi come verdi.`}}},k=`Modifiche non salvate`,A={title:`Ruoli personalizzati`,hint:`Definisci istruzioni riutilizzabili e autorizzazioni esplicite per i ruoli del flusso.`,unsupported:`Aggiorna Core per modificare i ruoli personalizzati.`,remove:`Rimuovi {{id}}`,access:`Accesso al codice`,read:`Sola lettura`,write:`Lettura e scrittura`,artifacts:`Accesso agli artefatti OpenSpec`,none:`Nessuno`,tasks:`Solo caselle delle attività`,all:`Tutti gli artefatti della modifica`,skill:`Skill OpenSpec`,noSkill:`Nessuno skill associato`,prompt:`Istruzioni del ruolo`,id:`ID del ruolo`,add:`Aggiungi ruolo`,invalidId:`Usa un ID univoco in minuscolo che inizi con una lettera, con un massimo di 64 lettere, numeri o trattini. Gli ID integrati sono riservati.`,escalationHint:`Solo una correzione consentita del protocollo può usare il modello superiore. Non viene aggiunto alcun tentativo.`},j={title:`Istruzioni di esecuzione`,hint:`Core conserva queste istruzioni per il prossimo turno di agente compatibile. L’invio non risponde alle domande e non concede approvazioni.`,label:`Istruzioni aggiuntive`,send:`Invia istruzioni`,accepted:`Ricevute da Core; in attesa di utilizzo.`,pending:`In attesa di un turno di agente`,consumed:`Utilizzate da un agente`,counts:`In attesa: {{pending}} · Utilizzate: {{consumed}}`,failed:`Impossibile inviare le istruzioni. Riprova per confermare lo stesso messaggio.`,unavailable:`I dettagli delle ricevute non sono disponibili.`,unreported:`Questa versione di Core non segnala l’utilizzo.`,truncated:`Sono mostrate solo le ricevute recenti e i messaggi in attesa.`},M={title:`Valori predefiniti del ruolo Core`,hint:`Questi valori del file si applicano ai nuovi workflow. Le impostazioni esplicite del progetto hanno la precedenza; le esecuzioni salvate mantengono le impostazioni fissate.`,invalid:`Correggi l’intestazione YAML nell’editor prima di modificare i campi del ruolo.`,escalationEffort:`Sforzo di ragionamento del modello superiore`},N={title:`Conservazione della cronologia`,description:`Elimina le cronologie scadute e le versioni di Core inutilizzate. Le cronologie eliminate non possono essere riprese o biforcate. Le esecuzioni attive o recuperabili e le consegne in sospeso restano protette; i log e i costi vengono conservati.`,forever:`Conserva la cronologia indefinitamente`,days:`Giorni di conservazione`,save:`Salva conservazione`,preview:`Anteprima pulizia`,collect:`Elimina cronologia scaduta`,previewSummary:`Idonei: {{runs}} cronologie e {{packages}} versioni di Core inutilizzate.`,collectedSummary:`Scadute: {{runs}} cronologie. Rimosse: {{packages}} versioni di Core inutilizzate.`,more:`{{count}} esecuzioni aggiuntive.`,failed:`Impossibile consultare o aggiornare la conservazione.`,expired:`Questa cronologia è scaduta secondo la politica del progetto. Il log e la contabilità restano disponibili.`,loading:`Caricamento della politica…`,states:{protected:`Conservato`,eligible:`Idoneo`,expired:`Scaduto`,cleanup_pending:`Pulizia in sospeso`,busy:`In uso`,error:`Verifica non riuscita`},reasons:{disabled:`Conservazione indefinita`,recoverable:`Recupero ancora disponibile`,active:`Esecuzione attiva`,human_pending:`In attesa di risposta umana`,interrupted_writes:`Scritture interrotte da verificare`,delivery_pending:`Consegna in sospeso`,fork_pending:`Resta una biforcazione dipendente`,unknown_terminal_time:`Data di completamento sconosciuta`,within_retention:`Periodo di conservazione non scaduto`}},P={title:`Loop agents`,hint:`These definitions are shared by every project using this loop. Duplicate the loop to customize a separate workflow.`,legacy:`This saved loop still uses historical project agents. Import them or enable loop agents before changing its configuration.`,enable:`Use loop agents`,import:`Import current project agents`,restoreDefinition:`Restore default definition`,default:`Provider default`,effort:`Reasoning effort`,escalationModel:`Escalation model`,escalationEffort:`Escalation effort`,policy:`Workflow policy`,maxAttempts:`Maximum correction attempts`,maxTokens:`Token budget`,maxCostUsd:`Cost budget (USD)`,timeoutMs:`Run timeout (ms)`,projectHint:`Configure repository checks here. Agent definitions, models and workflow policy are configured in the loop editor. Historical project agents can be imported into a duplicated loop.`,showUnused:`Also show agents not used in this loop`,stepTitle:`Step agent and options`,stepHint:`Edit this step’s agent definition and engine. Steps using the same role in this loop share these settings.`,inheritProvider:`Eredita il provider della missione`},F={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w,loopRoles:T,pipeline:E,fixer:D,guardrails:O,unsavedChanges:k,customRoles:A,steering:j,studioRole:M,retention:N,loopAgents:P};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,A as customRoles,F as default,t as description,C as efficiency,w as evidence,D as fixer,O as guardrails,h as limits,r as loadFailed,n as loading,P as loopAgents,T as loopRoles,x as metrics,E as pipeline,S as prompts,d as providers,N as retention,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,j as steering,M as studioRole,e as title,a as unavailable,k as unsavedChanges,g as verification};
|
|
1
|
+
var e=`Motore degli agenti`,t=`Architetto, sviluppatore e revisore girano come fasi separate con verifica deterministica in mezzo. Scegli un fornitore per ruolo; tutto il resto ha un valore predefinito funzionante.`,n=`Caricamento delle impostazioni…`,r=`Impossibile caricare le impostazioni. Riprova prima di modificarle.`,i=`Riprova`,a=`Questa installazione di Core non include il motore degli agenti. Aggiorna Core prima di attivarlo; puoi preparare le impostazioni mentre è disattivato.`,o=`Salva impostazioni`,s=`Salvataggio…`,c=`Impostazioni salvate`,l=`Impossibile salvare le impostazioni.`,u=`Richiedi approvazione prima di completare il flusso`,d={title:`Fornitori`,hint:`I CLI usano l’accesso esistente. Le API accettano solo il nome di una variabile d’ambiente, mai la chiave. Per servizi locali può restare vuoto. Riassegna i ruoli prima di rimuovere il fornitore.`,entry:`Fornitore {{index}}`,id:`ID del fornitore`,kind:`Tipo di connessione`,cli:`CLI di programmazione installato`,compatible:`Endpoint compatibile con OpenAI`,command:`CLI di programmazione`,baseUrl:`URL base dell’API`,apiKeyEnv:`Variabile d’ambiente della chiave (facoltativa)`,remove:`Rimuovi fornitore`,addCli:`Aggiungi fornitore CLI`,addLocal:`Aggiungi fornitore locale / API`,show:`Mostra connessioni dei fornitori`,hide:`Nascondi connessioni dei fornitori`,globalTitle:`Provider di IA`,globalHint:`Due tipi di provider alimentano ogni progetto: le CLI di programmazione rilevate su questa macchina e i motori locali compatibili con OpenAI che registri qui. Assegnali alle fasi della pipeline in Impostazioni del progetto ▸ Motore degli agenti. Le modifiche si applicano alle nuove esecuzioni.`,label:`Nome visualizzato (facoltativo)`,labelPlaceholder:`es. Macchina LAN`,defaultModel:`Modello predefinito`,defaultModelNone:`Nessun predefinito (primo rilevato)`,defaultModelPlaceholder:`ID del modello o alias personalizzato`,customModel:`Alias personalizzato…`,discoveredModels:`Modelli rilevati`,noModels:`Nessun modello rilevato finora: prova la connessione.`,rates:`Tariffe (USD per 1M di token, facoltativo)`,ratesHint:`I costi sono mostrati come stime; lascia entrambe vuote e il costo resta sconosciuto.`,inputRate:`Input per 1M`,outputRate:`Output per 1M`,ratesInvalid:`Inserisci entrambe le tariffe come numeri non negativi, oppure lasciale entrambe vuote.`,reasoningEffort:`L'endpoint accetta lo sforzo di ragionamento`,reasoningEffortHint:`Invia il campo reasoning_effort di OpenAI: lo sforzo configurato del ruolo a ogni chiamata, alzato ad alto mentre l'architetto compatto scrive il piano. Lascialo disattivo se il server non lo rispetta.`,apiKeyEnvMissing:`{{name}} non è impostata nel processo dell'app. Impostala nell'ambiente da cui viene avviata l'app.`,test:`Prova connessione`,testing:`Prova in corso…`,testFailed:`Impossibile provare la connessione.`,rename:`Rinomina`,renameHint:`Rinominando, le assegnazioni dei ruoli continuano a puntare a questa connessione.`,idLocked:`L'id è bloccato dopo il salvataggio. Usa Rinomina per cambiarlo.`,localBadge:`Motore locale`,cliBadge:`CLI`,notDetected:`Non rilevato su questa macchina`,unsaved:`Modifiche non salvate`,empty:`Nessuna connessione ancora. Aggiungi un provider locale / API per iniziare.`,fixBeforeSave:`Correggi i campi evidenziati prima di salvare.`,status:{probing:`Verifica…`,reachable:`Raggiungibile`,unauthorized:`Non autorizzato`,unreachable:`Non raggiungibile`,untested:`Mai provato`},auth:{authenticated:`Accesso effettuato`,unauthenticated:`Accesso non effettuato`,unknown:`Accesso sconosciuto`},agentLoop:`Loop dell'agente`,agentLoopHint:`come la pipeline implement guida questo modello`,agentLoop_compact:`Compatto`,agentLoop_compactHint:`Micro-passi guidati dall'app con output strutturato. Consigliato per modelli sotto ~30B.`,agentLoop_free:`Libero`,agentLoop_freeHint:`Un loop agentico per ruolo, come un provider CLI. Richiede un modello potente.`,contextWindow:`Finestra di contesto (token)`,contextWindowHint:`Allineala alla dimensione di contesto del server (n_ctx / num_ctx). Serve a compattare i vecchi risultati degli strumenti prima di riempire la finestra. Predefinito 32768.`,maxOutput:`Budget di output per turno (token)`,maxOutputHint:`max_tokens di un turno con strumenti; un turno troncato viene ritentato una volta al doppio. Conta dentro la finestra di contesto, quindi è sempre limitato allo spazio rimanente — alzalo se il modello ragiona in privato (il thinking lo consuma). Predefinito 8192.`,reasoningEffortRailHint:`Disattivo: il selettore dello sforzo di ragionamento non compare nell'intestazione del rail per questo motore.`,presetTitle:`Configurazione rapida`,presetSmallModel:`Consigliato per modelli piccoli`,presetSmallModelApplied:`Preset per modelli piccoli applicato`,presetSmallModelHint:`Imposta il loop Compatto, inoltra lo sforzo di ragionamento e una finestra di contesto di 32k: la combinazione validata con modelli da 7–14B. Ogni campo resta modificabile.`,cliGroup:`Strumenti CLI`,cliGroupHint:`Rilevati su questa macchina: usano il proprio accesso, niente da configurare.`,localGroup:`Motori locali`,localGroupHint:`Endpoint compatibili con OpenAI (llama.cpp, Ollama, vLLM, LM Studio…) raggiungibili da questa app.`,models_one:`{{count}} modello`,models_other:`{{count}} modelli`,expand:`Mostra impostazioni`,collapse:`Nascondi impostazioni`,overflow:`Altre azioni`,addLocalHero:`Aggiungi motore locale`,emptyLocalPitch:`Nessun motore locale per ora. Punta l’app a un endpoint compatibile con OpenAI per eseguire la pipeline sul tuo hardware: il costo resta sotto il tuo controllo e nulla esce dalla tua rete.`,defaultsGroup:`Valori predefiniti del provider`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Architetto`,developer:`Sviluppatore`,reviewer:`Revisore`,fixer:`Correttore`,verify:`Verifica`,archive:`Completamento`},m={title:`Assegnazione dei ruoli`,hint:`Ogni ruolo può usare un provider e un modello diversi. Connessioni: Impostazioni generali → Provider di IA. Limite predefinito: {{turns}} turni per agente.`,provider:`Fornitore`,model:`Modello`,modelPlaceholder:`ID del modello o predefinito del CLI`,maxTurns:`Numero massimo di turni (predefinito {{turns}})`,defaultModel:`Predefinito ({{model}})`,thinking:`Ragionamento nascosto`,thinking_off:`Disattivato`,thinking_on:`Attivato`,thinkingHint:`Disattivato per impostazione predefinita: il ragionamento nascosto consuma il budget di output e minuti per turno in un ciclo guidato dall'host. Attivalo per un ruolo che trae vantaggio dalla deliberazione (inviato come chat_template_kwargs.enable_thinking; gli endpoint che non lo conoscono lo ignorano).`},h={title:`Limiti del flusso`,hint:`I campi vuoti usano i valori di Core: {{attempts}} tentativi di correzione e {{minutes}} minuti per passo di ruolo. Sui motori locali il timeout si applica a ogni unità di lavoro (un gruppo di attività, un artefatto, una revisione) — 45 minuti per impostazione predefinita — più un watchdog di inattività di 20 minuti; un passo che esaurisce il tempo blocca l'esecuzione e può riprendere dal gruppo aperto successivo. I limiti di token e USD sono facoltativi; quelli in USD richiedono Claude per ogni ruolo.`,maxAttempts:`Tentativi massimi dello sviluppatore (predefinito {{attempts}})`,timeoutMinutes:`Timeout in minuti (predefinito {{minutes}}; motori locali 45 per gruppo di attività)`,maxTokens:`Token massimi`,maxCostUsd:`Costo massimo (USD)`,unlimited:`Nessun limite`},g={title:`Comandi di verifica`,hint:`Facoltativo. Vengono eseguiti quando lo sviluppatore termina e i fallimenti tornano allo sviluppatore. Lista vuota: l’architetto propone i controlli propri del progetto a ogni esecuzione; i repository senza controllo automatico vengono comunque revisionati.`,detect:`Rileva i controlli del progetto`,detecting:`Rilevamento…`,detected:`Compilato con i controlli che questo progetto già definisce.`,nothingDetected:`Nessun comando di test, controllo tipi o build trovato. Va bene: l’architetto propone controlli a ogni esecuzione quando possibile.`,detectFailed:`Impossibile ispezionare i repository del progetto.`,repository:`Repository`,command:`Comando`,reason:`Rilevato da {{reason}}`,remove:`Rimuovi`,add:`Aggiungi comando`,invalidLine:`Comando di verifica vuoto o con virgolette non chiuse: {{line}}`,label:`Nome del controllo (facoltativo)`,moveUp:`Sposta su`,moveDown:`Sposta giù`},_={title:`Esecuzioni salvate`,refresh:`Aggiorna`,hint:`Continua nel worktree originale con ambito e impostazioni salvati; l’avanzamento compare nel log di quel job. Non pubblica né riavvia la consegna Desktop. Le esecuzioni attive si fermano dai controlli del job.`,empty:`Nessuna esecuzione salvata.`,loadFailed:`Impossibile caricare le esecuzioni.`,actionFailed:`Impossibile aggiornare questa esecuzione.`,phase:`Prossima fase: {{phase}}`,approve:`Approva completamento`,recover:`Recupera fase interrotta`,resume:`Riprendi`,cancel:`Annulla continuazione`,status:{running:`Continuazione in corso…`,succeeded:`Riuscito`,failed:`Fallito`,blocked:`Bloccato`,paused:`In pausa`,cancelled:`Annullato`,interrupted:`Interrotto`,unavailable:`Non disponibile`,expired:`Scaduto`},question:`L'architetto chiede:`,answerLabel:`La tua risposta`,answerPlaceholder:`Rispondi alla domanda; l'architetto prosegue con essa.`,answer:`Rispondi e riprendi`,viewLog:`Visualizza log del job`,implementation:`Implementazione`,preserveProgress:`Riprendi dalla fase indicata, conservando il lavoro e le impostazioni salvate.`,reviewDelivery:`Implementazione completata. Controlla il risultato nel log prima della consegna; questa ripresa non lo ha pubblicato.`,prepareDelivery:`Prepara consegna`,dismiss:`Ignora`,selectRecovery:`Seleziona i tentativi interrotti da riprendere`},v={architect:`Legge il codice e scrive proposta, design, attività e spec. Sola lettura.`,developer:`Implementa le attività con i test. Può modificare file ed eseguire comandi nella sandbox del CLI.`,reviewer:`Controlla il risultato rispetto alla spec e alle prove di verifica. Sola lettura.`},y={title:`Soglia di revisione`,hint:`I campi vuoti usano la soglia di Core. I valori possono solo alzarla: punteggio complessivo almeno {{score}}, sicurezza almeno {{security}}, altri aspetti almeno {{aspect}}.`,minScore:`Punteggio complessivo minimo (predefinito {{score}})`,aspects:{type_correctness:`Correttezza dei tipi (predefinito {{score}})`,pattern_adherence:`Aderenza ai pattern (predefinito {{score}})`,test_coverage:`Copertura dei test (predefinito {{score}})`,security:`Sicurezza (predefinito {{score}})`,architectural_alignment:`Allineamento architetturale (predefinito {{score}})`}},b={title:`Confidenza dell'architetto`,hint:`Dopo un passaggio di indagine autonoma, un progetto ancora poco sicuro si mette in pausa con la domanda dell'architetto oppure procede su ipotesi dichiarate.`,onLowConfidence:`Con bassa confidenza`,ask:`Chiedere (pausa con la domanda)`,proceed:`Procedere su ipotesi dichiarate`},x={title:`Consumo e tempo`,hint:`Include correzioni e chiamate non riuscite. Il tempo degli agenti include gli strumenti. I token della cache fanno parte dei token di input.`,unknown:`Non disponibile`,duration:`Tempo di esecuzione`,agentTime:`Tempo degli agenti`,cost:`Costo dichiarato`,providerCalls:`Chiamate agli agenti`,toolCalls:`Chiamate agli strumenti`,input:`Token di input`,output:`Token di output`,uncached:`Input senza cache`,cacheRead:`Letture della cache`,cacheWrite:`Scritture della cache`,partial:`Alcuni tentativi non hanno misurazioni dettagliate.`,phases:`Consumo per fase`,phase:`Fase`,attempts:`Tentativi`},S={title:`Prompt dei ruoli degli agenti`,description:`Visualizza e modifica le istruzioni di ogni ruolo. Sono condivise da tutti i progetti e provider; le modifiche si applicano ai nuovi lavori. I lavori ripresi mantengono i prompt originali.`,definition:`Definizione di {{role}}`,default:`Impostazione predefinita`,custom:`Personalizzato`,restore:`Ripristina predefinito`,contracts:`Il contesto della spec, il workflow OpenSpec e il formato di risposta richiesto vengono aggiunti automaticamente e non sono modificabili qui.`,invalid:`Ogni definizione deve contenere da 1 a 20.000 caratteri, con testo non vuoto e senza byte nulli.`,saved:`Prompt dei ruoli salvati`,unsaved:`Modifiche non salvate`,discard:`Scarta modifiche`,save:`Salva prompt`,fixerHint:`Usato solo nei giri di correzione: dopo una verifica fallita o una revisione respinta. Gira sul motore dello sviluppatore, salvo che Impostazioni ▸ Motore agenti ▸ Correttore ne indichi uno proprio. Un provider CLI che riprende la sessione dello sviluppatore riceve il breve seguito di correzione; la definizione si applica ogni volta che parte una sessione nuova (motori locali, motore correttore, sessione persa).`},C={title:`Efficienza dell’implementazione`,scope:`Si applica alle nuove esecuzioni. Quelle salvate mantengono configurazione e motore originali.`,effort:`Sforzo di ragionamento`,providerDefault:`Predefinito del fornitore`,unconfirmed:`Non confermato`,unknownSupport:`Il supporto per questo modello e trasporto non è confermato.`,escalation:`Consenti un livello superiore con lo stesso fornitore`,baseRequired:`Seleziona prima un modello base esplicito.`,escalationModel:`Modello di livello superiore`,triggers:{architect:`Solo l’approfondimento già previsto può selezionare questo livello.`,developer:`Dopo due candidati falliti, il tentativo successivo consentito può selezionare questo livello.`,reviewer:`Solo per correggere risposte malformate; il rifiuto del codice non lo attiva.`,fixer:`Solo un giro di correzione può raggiungere questo livello; i primi passaggi non eseguono mai il correttore.`},contextMode:`Contesto del repository`,reviewMode:`Revisione delle correzioni`,planning:`Profondità della pianificazione`,adaptive:`Adattivo`,full:`Completo`,developerChecks:`Accetta controlli aggiuntivi proposti dallo sviluppatore`,concurrency:`Controlli simultanei massimi`,concurrencyHint:`Predefinito: 1. Solo controlli indipendenti dichiarati dall’host in repository diversi possono essere simultanei. Nessun riutilizzo predefinito.`,checkCapabilities:`Verifica compatibilità dei modelli`,capabilitiesFailed:`Compatibilità non confermata. Aggiorna Core o mantieni i valori del fornitore.`},w={title:`Evidenze di verifica`,acceptance:`Accettazione tecnica`,acceptanceStatus:{pending:`In attesa`,validated:`Validato`,"with-exceptions":`Con eccezioni`,blocked:`Bloccato`},calls:`Chiamate agli agenti`,executed:`Controlli eseguiti`,reused:`Controlli riutilizzati`,unknown:`Non disponibile`,unavailable:`Evidenza non disponibile. Il risultato registrato non prova la validità attuale.`,current:`Candidato e piano attuali`,historical:`Risultato storico`,moreChecks:`Altri controlli`,output:`Output della verifica`,empty:`Nessun output`,truncated:`Pagina limitata o acquisizione troncata.`,nextPage:`Pagina successiva`,status:{passed:`Superato`,failed:`Fallito`,cancelled:`Annullato`,interrupted:`Interrotto`},disposition:{executed:`Eseguito`,reused:`Riutilizzato`,"not-run":`Non eseguito`},origin:`Origine`,origins:{host:`Host`,architect:`Architetto`,developer:`Sviluppatore`,"frozen-runtime-config":`Configurazione salvata`,"project-role":`Ruolo del progetto`,default:`Predefinito`,"explicit-launch-override":`Provider scelto per questo avvio`,"loop-role":`Ruolo del loop`},reuseDisabled:`Riutilizzo disabilitato per questo controllo.`,reuseConfirmed:`Riutilizzato dopo la conferma di input e strumenti identici.`,inputsChanged:`Input cambiati durante la verifica; risultato invalidato.`,reuseUnproven:`Nessun risultato attuale con input identici comprovati; controllo rieseguito.`,original:`Esecuzione originale`,requested:`Richiesto`,reported:`Segnalato`},T={title:`Ruoli del loop`,hint:`Motori dei ruoli del loop quando un rail viene lanciato con il motore «Ruoli». I ruoli della pipeline qui sopra (architect, developer, reviewer) provengono già da questa configurazione del runtime.`,verifier:`Verificatore`,verifierHint:`Ogni passo IA del loop esterno al core: verify, fix e passi IA personalizzati.`,decider:`Decisore`,deciderHint:`Il Loop Decider che legge il verdetto e sceglie il passo successivo: un modello economico e veloce è la scelta naturale.`,inherit:`Eredita il principale`,model:`Modello`,effort:`Sforzo di ragionamento`,disabled:`Il runtime degli agenti è disattivato: i rail lanciati con il motore «Ruoli» vengono rifiutati finché non viene attivato.`,saveFailed:`Impossibile salvare i ruoli del loop.`},E={title:`Pipeline di implementazione`,explainer:`Queste fasi vengono eseguite in quest'ordine a ogni implementazione. Quando il motore del rail è "{{roles}}", ogni fase usa il motore configurato qui sotto: provider, modello ed effort diversi per fase. Scegliendo un motore specifico sul rail, tutte le fasi girano su quel motore.`,host:`Host`,noCommand:`nessun comando`,inherits:`Eredita il principale`,inheritsDeveloper:`Eredita dallo sviluppatore`,open:`Apri`,collapse:`Comprimi`,groups:{core:{title:`Pipeline principale`,hint:`Viene eseguita in ogni implementazione: pianificare, costruire, verificare, correggere, revisionare.`},loop:{title:`Passi del loop`,hint:`Passi IA del loop del rail che avvolge l'esecuzione (verificare → decidere → correggere) e dei loop personalizzati; ereditano il motore principale se non impostati.`,chip:`loop del rail`}},phases:{architect:{name:`Architetto`,purpose:`Legge il codice e scrive proposta, design e task.`},developer:{name:`Sviluppatore`,purpose:`Implementa i task con i test.`},verification:{name:`Verifica`,purpose:`L'host esegue i tuoi controlli; i fallimenti tornano allo sviluppatore.`},fixer:{name:`Correttore`,purpose:`Corregge ciò che la verifica o la revisione respingono; eredita dallo sviluppatore se non configurato.`},reviewer:{name:`Revisore`,purpose:`Confronta il risultato con la spec e le evidenze.`},verifier:{name:`Verificatore`,purpose:`Passi IA verify, fix e personalizzati del loop.`},decider:{name:`Decisore`,purpose:`Legge il verdetto e sceglie il prossimo passo del loop.`}}},D={title:`Motore del correttore`,inherit:`Eredita sviluppatore`,own:`Motore proprio`,hint:`Viene eseguito solo nei giri di correzione: dopo una verifica fallita o una revisione respinta; i primi passaggi restano sullo sviluppatore. Un modello più potente o cloud qui conviene quando lo sviluppatore è un modello locale economico.`},O={title:`Guardrail`,intro:`Regole di processo che l'host applica intorno ai modelli locali perché un modello piccolo non deragli. Tutte attive per impostazione predefinita; disattivane una solo per regolare il processo. I provider CLI non sono mai coinvolti.`,unsupported:`Questa installazione di Core non espone guardrail configurabili. Aggiorna Core per regolarli; le regole integrate continuano ad applicarsi.`,active:`{{on}} di {{total}} attivi`,reset:`Ripristina predefiniti`,phases:{architect:`Architetto`,developer:`Sviluppatore`,host:`Host`},unknown:`Un guardrail aggiunto da un Core più recente; questa app non ha ancora una descrizione.`,items:{"plan-validation":{title:`Piano di attività validato`,description:`Rifiuta piani che puntano a openspec/, elencano semplici nomi di file come attività, hanno troppo poche attività/gruppi per la spec o lasciano criteri di accettazione scoperti; l'architetto riprova.`,why:`Un piano vago o incompleto è la causa n. 1 per cui un piccolo modello sviluppatore scrive stub.`},"genuine-blocking-question":{title:`Solo vere domande bloccanti`,description:`L'architetto può mettere in pausa l'esecuzione solo con una vera domanda che termina con '?', mai con testo d'esempio copiato.`,why:`I modelli piccoli ripetono i segnaposto del prompt e bloccherebbero ogni esecuzione.`},"plan-language-hint":{title:`Pianificare nel linguaggio del repository`,description:`Indica all'architetto il linguaggio principale così i nomi dei file delle attività hanno l'estensione giusta.`,why:`Un piano JS su un repo TypeScript rende impossibile spuntare le attività.`},"frozen-plan-writes":{title:`Gli artefatti di pianificazione sono congelati`,description:`Lo sviluppatore non può scrivere sotto openspec/; il piano appartiene all'host.`,why:`I modelli 'implementano' modificando il piano invece del codice.`},"primary-language":{title:`Promemoria del linguaggio principale`,description:`A ogni gruppo di attività viene indicato il linguaggio principale del repository; i nuovi file dovrebbero usarlo.`,why:`Evita una seconda implementazione in un altro linguaggio.`},"duplicate-sibling":{title:`Nessun modulo gemello tra linguaggi`,description:`Rifiuta board.js quando board.ts esiste già; estendi invece il modulo esistente.`,why:`I gemelli compilano entrambi e i test importano quello sbagliato.`},"one-test-per-module":{title:`Un file di test per modulo`,description:`Rifiuta board.tick.test.ts quando esiste board.test.ts; estendilo invece.`,why:`Altrimenti ogni passata di correzione aggiunge una nuova suite.`},"empty-write":{title:`Nessuna sovrascrittura vuota`,description:`Una scrittura vuota su un file con contenuto viene rifiutata; scrivi il contenuto completo o applica una patch.`,why:`Una passata di 'pulizia' una volta lasciò index.ts a 0 righe.`},"evidence-gated-ticking":{title:`Prove prima di spuntare un'attività`,description:`Un'attività che nomina file è completata solo se esistono e non sono stub (estensioni sorelle accettate).`,why:`Senza, 'fatto' è solo un'affermazione e la verifica gira contro il nulla.`},"inventory-retry":{title:`Riprova con l'inventario reale`,description:`Quando il modello rinuncia sostenendo che il repo è vuoto mentre non lo è, riprova una volta con l'elenco dei file.`,why:`Seconda possibilità economica invece di un passo fallito.`},"synthetic-corrections":{title:`Trasformare il feedback in attività`,description:`Quando tutte le attività sono spuntate ma review/verify sono falliti, il feedback diventa attività di correzione concrete.`,why:`Altrimenti lo sviluppatore risponde 'già fatto' e nulla cambia.`},"silent-group-closure":{title:`Chiudere i gruppi silenziosi, conservare i loro file`,description:`Un gruppo il cui modello smette di rispondere viene chiuso accreditando i file scritti e lasciando aperte le sue attività, invece di far fallire l'esecuzione.`,why:`Un modello 9B scrisse cinque moduli, tacque e l'intera esecuzione fallì.`},"environment-repair":{title:`L'host ripara l'ambiente`,description:`Dipendenze o strumenti di test mancanti (npm install, ts-jest, @types/jest, moduli di config Jest) vengono installati dall'host, poi la verifica viene rieseguita una volta.`,why:`Il modello non può sistemare l'ambiente e brucia correzioni provandoci.`},"lockfile-repair":{title:`Scartare i lockfile scritti a mano`,description:`Un package-lock.json inventato dal modello (EINTEGRITY/ETARGET) viene rimosso e l'installazione ritentata una volta.`,why:`Gli hash inventati non si installano mai.`},"verify-idle-timeout":{title:`Fermare i test bloccati`,description:`Un comando di verifica senza output per 5 minuti viene fermato e segnalato come probabile blocco (ultimo output incluso).`,why:`Altrimenti un ciclo while in un test trattiene l'esecuzione fino al limite di 15 minuti.`},"verify-per-group":{title:`Verifica dopo ogni gruppo`,description:`Esegue il comando di test del repository subito dopo ogni gruppo di attività; un errore riceve un giro di correzione immediato finché il contesto del gruppo è fresco.`,why:`Cinque suite rotte alla fine sono molto più difficili da sistemare di una alla volta.`},"test-reachability":{title:`Ogni nuovo test deve essere eseguito davvero`,description:"Un file di test scritto dal developer che il comando di test del repository non esegue mai (uno script `test` che enumera e salta il file nuovo) fa fallire la verifica indicando il file esatto, prima a livello di gruppo e poi di nuovo nella verifica dell'host.",why:`Una suite di 622 righe con sei casi falliti è passata in verde perché nessuno l'aveva mai eseguita.`},"exit-code-honesty":{title:`Diffidare di un exit 0 che segnala fallimenti`,description:`Un comando di verifica che esce con 0 mentre l'output stampa fallimenti (righe \`FAIL:\`, "3 failed", un AssertionError) è trattato come FALLITO e passato al correttore con l'harness indicato come difetto.`,why:`Un runner di test artigianale che non impostava mai un exit code diverso da zero ha consegnato tre test rossi come verdi.`}}},k=`Modifiche non salvate`,A={title:`Ruoli personalizzati`,hint:`Definisci istruzioni riutilizzabili e autorizzazioni esplicite per i ruoli del flusso.`,unsupported:`Aggiorna Core per modificare i ruoli personalizzati.`,remove:`Rimuovi {{id}}`,access:`Accesso al codice`,read:`Sola lettura`,write:`Lettura e scrittura`,artifacts:`Accesso agli artefatti OpenSpec`,none:`Nessuno`,tasks:`Solo caselle delle attività`,all:`Tutti gli artefatti della modifica`,skill:`Skill OpenSpec`,noSkill:`Nessuno skill associato`,prompt:`Istruzioni del ruolo`,id:`ID del ruolo`,add:`Aggiungi ruolo`,invalidId:`Usa un ID univoco in minuscolo che inizi con una lettera, con un massimo di 64 lettere, numeri o trattini. Gli ID integrati sono riservati.`,escalationHint:`Solo una correzione consentita del protocollo può usare il modello superiore. Non viene aggiunto alcun tentativo.`},j={title:`Istruzioni di esecuzione`,hint:`Core conserva queste istruzioni per il prossimo turno di agente compatibile. L’invio non risponde alle domande e non concede approvazioni.`,label:`Istruzioni aggiuntive`,send:`Invia istruzioni`,accepted:`Ricevute da Core; in attesa di utilizzo.`,pending:`In attesa di un turno di agente`,consumed:`Utilizzate da un agente`,counts:`In attesa: {{pending}} · Utilizzate: {{consumed}}`,failed:`Impossibile inviare le istruzioni. Riprova per confermare lo stesso messaggio.`,unavailable:`I dettagli delle ricevute non sono disponibili.`,unreported:`Questa versione di Core non segnala l’utilizzo.`,truncated:`Sono mostrate solo le ricevute recenti e i messaggi in attesa.`},M={title:`Valori predefiniti del ruolo Core`,hint:`Questi valori del file si applicano ai nuovi workflow. Le impostazioni esplicite del progetto hanno la precedenza; le esecuzioni salvate mantengono le impostazioni fissate.`,invalid:`Correggi l’intestazione YAML nell’editor prima di modificare i campi del ruolo.`,escalationEffort:`Sforzo di ragionamento del modello superiore`},N={title:`Conservazione della cronologia`,description:`Elimina le cronologie scadute e le versioni di Core inutilizzate. Le cronologie eliminate non possono essere riprese o biforcate. Le esecuzioni attive o recuperabili e le consegne in sospeso restano protette; i log e i costi vengono conservati.`,forever:`Conserva la cronologia indefinitamente`,days:`Giorni di conservazione`,save:`Salva conservazione`,preview:`Anteprima pulizia`,collect:`Elimina cronologia scaduta`,previewSummary:`Idonei: {{runs}} cronologie e {{packages}} versioni di Core inutilizzate.`,collectedSummary:`Scadute: {{runs}} cronologie. Rimosse: {{packages}} versioni di Core inutilizzate.`,more:`{{count}} esecuzioni aggiuntive.`,failed:`Impossibile consultare o aggiornare la conservazione.`,expired:`Questa cronologia è scaduta secondo la politica del progetto. Il log e la contabilità restano disponibili.`,loading:`Caricamento della politica…`,states:{protected:`Conservato`,eligible:`Idoneo`,expired:`Scaduto`,cleanup_pending:`Pulizia in sospeso`,busy:`In uso`,error:`Verifica non riuscita`},reasons:{disabled:`Conservazione indefinita`,recoverable:`Recupero ancora disponibile`,active:`Esecuzione attiva`,human_pending:`In attesa di risposta umana`,interrupted_writes:`Scritture interrotte da verificare`,delivery_pending:`Consegna in sospeso`,fork_pending:`Resta una biforcazione dipendente`,unknown_terminal_time:`Data di completamento sconosciuta`,within_retention:`Periodo di conservazione non scaduto`}},P={title:`Loop agents`,hint:`These definitions are shared by every project using this loop. Duplicate the loop to customize a separate workflow.`,legacy:`This saved loop still uses historical project agents. Import them or enable loop agents before changing its configuration.`,enable:`Use loop agents`,import:`Import current project agents`,restoreDefinition:`Usa la definizione di Core`,default:`Provider default`,effort:`Reasoning effort`,escalationModel:`Escalation model`,escalationEffort:`Escalation effort`,policy:`Workflow policy`,maxAttempts:`Maximum correction attempts`,maxTokens:`Token budget`,maxCostUsd:`Cost budget (USD)`,timeoutMs:`Run timeout (ms)`,projectHint:`Configure repository checks here. Agent definitions, models and workflow policy are configured in the loop editor. Historical project agents can be imported into a duplicated loop.`,showUnused:`Also show agents not used in this loop`,stepTitle:`Step agent and options`,stepHint:`Edit this step’s agent definition and engine. Steps using the same role in this loop share these settings.`,inheritProvider:`Eredita il provider della missione`,inheritDefinition:`Segue la definizione di Core: ogni aggiornamento di Core la rinnova automaticamente.`,customizeDefinition:`Personalizza per questo loop`,coreDefinitionUnavailable:`Anteprima non disponibile finché non è installato un runtime Core.`},F={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w,loopRoles:T,pipeline:E,fixer:D,guardrails:O,unsavedChanges:k,customRoles:A,steering:j,studioRole:M,retention:N,loopAgents:P};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,A as customRoles,F as default,t as description,C as efficiency,w as evidence,D as fixer,O as guardrails,h as limits,r as loadFailed,n as loading,P as loopAgents,T as loopRoles,x as metrics,E as pipeline,S as prompts,d as providers,N as retention,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,j as steering,M as studioRole,e as title,a as unavailable,k as unsavedChanges,g as verification};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Agenten-Laufzeit`,t=`Architekt, Entwickler und Reviewer laufen als getrennte Phasen mit deterministischer Verifikation dazwischen. Wähle pro Rolle einen Anbieter; alles andere hat funktionierende Standardwerte.`,n=`Einstellungen werden geladen…`,r=`Einstellungen konnten nicht geladen werden. Vor Änderungen erneut versuchen.`,i=`Erneut versuchen`,a=`Diese Core-Installation enthält die Agenten-Laufzeit nicht. Aktualisieren Sie Core vor der Aktivierung. Die Einstellungen können Sie bereits vorbereiten.`,o=`Laufzeit-Einstellungen speichern`,s=`Wird gespeichert…`,c=`Einstellungen gespeichert`,l=`Einstellungen konnten nicht gespeichert werden.`,u=`Vor Abschluss des Workflows auf Freigabe warten`,d={title:`Anbieter`,hint:`CLI-Anbieter nutzen die bestehende Anmeldung. APIs akzeptieren nur den Namen einer Umgebungsvariablen, niemals den Schlüssel selbst. Lokal kann er leer bleiben. Rollen vor dem Entfernen ihres Anbieters neu zuweisen.`,entry:`Anbieter {{index}}`,id:`Anbieter-ID`,kind:`Verbindungstyp`,cli:`Installierte Programmier-CLI`,compatible:`OpenAI-kompatibler Endpunkt`,command:`Programmier-CLI`,baseUrl:`API-Basis-URL`,apiKeyEnv:`Umgebungsvariable für API-Schlüssel (optional)`,remove:`Anbieter entfernen`,addCli:`CLI-Anbieter hinzufügen`,addLocal:`Lokalen / API-Anbieter hinzufügen`,show:`Anbieterverbindungen anzeigen`,hide:`Anbieterverbindungen ausblenden`,globalTitle:`KI-Anbieter`,globalHint:`Zwei Arten von Anbietern treiben jedes Projekt an: auf diesem Rechner erkannte Coding-CLIs und lokale OpenAI-kompatible Engines, die du hier registrierst. Weise sie den Pipeline-Phasen in Projekteinstellungen ▸ Agenten-Engine zu. Änderungen gelten für neue Ausführungen.`,label:`Anzeigename (optional)`,labelPlaceholder:`z. B. LAN-Rechner`,defaultModel:`Standardmodell`,defaultModelNone:`Kein Standard (erstes gefundenes)`,defaultModelPlaceholder:`Modell-ID oder eigener Alias`,customModel:`Eigener Alias…`,discoveredModels:`Gefundene Modelle`,noModels:`Noch keine Modelle gefunden – Verbindung testen.`,rates:`Tarife (USD pro 1M Tokens, optional)`,ratesHint:`Kosten werden als Schätzung angezeigt; beide leer lassen und die Kosten bleiben unbekannt.`,inputRate:`Eingabe pro 1M`,outputRate:`Ausgabe pro 1M`,ratesInvalid:`Beide Tarife als nicht negative Zahlen eingeben oder beide leer lassen.`,reasoningEffort:`Endpunkt akzeptiert Reasoning-Aufwand`,reasoningEffortHint:`Sendet das OpenAI-Feld reasoning_effort: bei jedem Aufruf den konfigurierten Aufwand der Rolle, auf hoch angehoben, während der kompakte Architekt den Plan schreibt. Nur aktivieren, wenn der Server es berücksichtigt.`,apiKeyEnvMissing:`{{name}} ist im App-Prozess nicht gesetzt. Setze sie in der Umgebung, aus der die App gestartet wird.`,test:`Verbindung testen`,testing:`Wird getestet…`,testFailed:`Verbindung konnte nicht getestet werden.`,rename:`Umbenennen`,renameHint:`Beim Umbenennen zeigen Rollenzuweisungen weiterhin auf diese Verbindung.`,idLocked:`Die ID ist nach dem Speichern gesperrt. Zum Ändern Umbenennen verwenden.`,localBadge:`Lokale Engine`,cliBadge:`CLI`,notDetected:`Auf diesem Rechner nicht erkannt`,unsaved:`Ungespeicherte Änderungen`,empty:`Noch keine Verbindungen. Füge einen lokalen / API-Anbieter hinzu.`,fixBeforeSave:`Korrigiere die markierten Felder vor dem Speichern.`,status:{probing:`Wird geprüft…`,reachable:`Erreichbar`,unauthorized:`Nicht autorisiert`,unreachable:`Nicht erreichbar`,untested:`Nie getestet`},auth:{authenticated:`Angemeldet`,unauthenticated:`Nicht angemeldet`,unknown:`Anmeldung unbekannt`},agentLoop:`Agenten-Schleife`,agentLoopHint:`wie die Implement-Pipeline dieses Modell steuert`,agentLoop_compact:`Kompakt`,agentLoop_compactHint:`App-gesteuerte Mikroschritte mit strukturierter Ausgabe. Empfohlen für Modelle unter ~30B.`,agentLoop_free:`Frei`,agentLoop_freeHint:`Eine agentische Schleife pro Rolle, wie bei einem CLI-Provider. Braucht ein starkes Modell.`,contextWindow:`Kontextfenster (Tokens)`,contextWindowHint:`An die Kontextgröße des Servers anpassen (n_ctx / num_ctx). Dient zum Komprimieren alter Tool-Ergebnisse, bevor das Fenster voll ist. Standard 32768.`,maxOutput:`Ausgabebudget pro Zug (Tokens)`,maxOutputHint:`max_tokens eines Werkzeugzugs; ein abgeschnittener Zug wird einmal mit dem Doppelten wiederholt. Zählt innerhalb des Kontextfensters und wird daher stets auf den verbleibenden Platz begrenzt – erhöhen, wenn das Modell privat nachdenkt (Thinking verbraucht es). Standard 8192.`,reasoningEffortRailHint:`Aus: der Reasoning-Aufwand-Selektor erscheint für diese Engine nicht in der Rail-Kopfzeile.`,presetTitle:`Schnelleinrichtung`,presetSmallModel:`Empfohlen für kleine Modelle`,presetSmallModelApplied:`Voreinstellung für kleine Modelle angewendet`,presetSmallModelHint:`Setzt die kompakte Schleife, leitet den Reasoning-Aufwand weiter und ein 32k-Kontextfenster – die mit 7–14B-Modellen validierte Kombination. Jedes Feld bleibt änderbar.`,cliGroup:`CLI-Werkzeuge`,cliGroupHint:`Auf diesem Rechner erkannt – sie nutzen ihre eigene Anmeldung, nichts zu konfigurieren.`,localGroup:`Lokale Engines`,localGroupHint:`OpenAI-kompatible Endpunkte (llama.cpp, Ollama, vLLM, LM Studio …), die von dieser App aus erreichbar sind.`,models_one:`{{count}} Modell`,models_other:`{{count}} Modelle`,expand:`Einstellungen anzeigen`,collapse:`Einstellungen ausblenden`,overflow:`Weitere Aktionen`,addLocalHero:`Lokale Engine hinzufügen`,emptyLocalPitch:`Noch keine lokale Engine. Richte die App auf einen OpenAI-kompatiblen Endpunkt, um die Pipeline auf eigener Hardware auszuführen – die Kosten bleiben unter deiner Kontrolle und nichts verlässt dein Netzwerk.`,defaultsGroup:`Anbieter-Standardwerte`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Architekt`,developer:`Entwickler`,reviewer:`Prüfer`,fixer:`Korrektor`,verify:`Prüfung`,archive:`Abschluss`},m={title:`Rollenzuweisungen`,hint:`Jede Rolle kann einen anderen Anbieter und ein anderes Modell verwenden. Verbindungen: Allgemeine Einstellungen → KI-Anbieter. Standard: {{turns}} Runden pro Agent.`,provider:`Anbieter`,model:`Modell`,modelPlaceholder:`Modell-ID oder CLI-Standard`,maxTurns:`Maximale Runden (Standard {{turns}})`,defaultModel:`Standard ({{model}})`,thinking:`Verdecktes Nachdenken`,thinking_off:`Aus`,thinking_on:`An`,thinkingHint:`Standardmäßig aus: verdecktes Nachdenken verbraucht das Ausgabebudget und Minuten pro Zug in einer host-gesteuerten Schleife. Für eine Rolle einschalten, die von Abwägen profitiert (gesendet als chat_template_kwargs.enable_thinking; Endpunkte, die es nicht kennen, ignorieren es).`},h={title:`Workflow-Limits`,hint:`Leere Felder nutzen die Core-Standards: {{attempts}} Korrekturversuche und {{minutes}} Minuten pro Rollenschritt. Bei lokalen Engines gilt das Zeitlimit je Arbeitseinheit (eine Aufgabengruppe, ein Artefakt, ein Review) – standardmäßig 45 Minuten – plus ein 20-minütiger Leerlauf-Wächter; ein Schritt, dem die Zeit ausgeht, blockiert den Lauf und kann ab der nächsten offenen Aufgabengruppe fortgesetzt werden. Token- und USD-Limits sind optional; USD-Limits erfordern Claude für jede KI-Rolle.`,maxAttempts:`Maximale Entwicklerversuche (Standard {{attempts}})`,timeoutMinutes:`Zeitlimit in Minuten (Standard {{minutes}}; lokale Engines 45 je Aufgabengruppe)`,maxTokens:`Maximale Tokens`,maxCostUsd:`Maximale Kosten (USD)`,unlimited:`Kein Limit`},g={title:`Verifikationsbefehle`,hint:`Optional. Sie laufen, nachdem der Entwickler fertig ist; Fehler gehen an den Entwickler zurück. Bleibt die Liste leer, schlägt der Architekt bei jedem Lauf die projekteigenen Prüfungen vor; Repositories ohne automatische Prüfung werden trotzdem reviewt.`,detect:`Projektprüfungen erkennen`,detecting:`Erkenne…`,detected:`Ausgefüllt mit den Prüfungen, die dieses Projekt bereits definiert.`,nothingDetected:`Kein Test-, Typprüfungs- oder Build-Befehl gefunden. Kein Problem: der Architekt schlägt bei jedem Lauf Prüfungen vor, wenn möglich.`,detectFailed:`Die Projekt-Repositories konnten nicht untersucht werden.`,repository:`Repository`,command:`Befehl`,reason:`Erkannt aus {{reason}}`,remove:`Entfernen`,add:`Befehl hinzufügen`,invalidLine:`Verifikationsbefehl ist leer oder hat ein nicht geschlossenes Anführungszeichen: {{line}}`,label:`Prüfbezeichnung (optional)`,moveUp:`Nach oben`,moveDown:`Nach unten`},_={title:`Gespeicherte Ausführungen`,refresh:`Aktualisieren`,hint:`Setzt im ursprünglichen Worktree mit gespeichertem Umfang und Einstellungen fort; der Fortschritt erscheint im Protokoll dieses Jobs. Es wird nichts veröffentlicht und keine Desktop-Auslieferung neu gestartet. Aktive Rail-Ausführungen werden über ihre Job-Steuerung gestoppt.`,empty:`Keine gespeicherten Ausführungen.`,loadFailed:`Ausführungen konnten nicht geladen werden.`,actionFailed:`Ausführung konnte nicht aktualisiert werden.`,phase:`Nächste Phase: {{phase}}`,approve:`Abschluss freigeben`,recover:`Unterbrochene Phase wiederherstellen`,resume:`Fortsetzen`,cancel:`Fortsetzung abbrechen`,status:{running:`Wird fortgesetzt…`,succeeded:`Erfolgreich`,failed:`Fehlgeschlagen`,blocked:`Blockiert`,paused:`Pausiert`,cancelled:`Abgebrochen`,interrupted:`Unterbrochen`,unavailable:`Nicht verfügbar`,expired:`Abgelaufen`},question:`Der Architekt fragt:`,answerLabel:`Ihre Antwort`,answerPlaceholder:`Beantworten Sie die Frage; der Architekt macht damit weiter.`,answer:`Antworten und fortsetzen`,viewLog:`Job-Protokoll anzeigen`,implementation:`Implementierung`,preserveProgress:`Ab der angezeigten Phase fortsetzen; bisherige Arbeit und gespeicherte Einstellungen bleiben erhalten.`,reviewDelivery:`Implementierung abgeschlossen. Prüfe das Ergebnis im Job-Protokoll vor der Auslieferung; diese Fortsetzung hat es nicht veröffentlicht.`,prepareDelivery:`Auslieferung vorbereiten`,dismiss:`Verwerfen`,selectRecovery:`Unterbrochene Versuche zur Wiederaufnahme auswählen`},v={architect:`Liest den Code und schreibt Vorschlag, Design, Aufgaben und Spezifikation. Nur lesend.`,developer:`Setzt die Aufgaben mit Tests um. Darf Dateien bearbeiten und Befehle in der CLI-Sandbox ausführen.`,reviewer:`Prüft das Ergebnis gegen Spezifikation und Verifikationsnachweise. Nur lesend.`},y={title:`Review-Schwelle`,hint:`Leere Felder verwenden Cores Schwelle. Werte können sie nur anheben: Gesamtwert mindestens {{score}}, Sicherheit mindestens {{security}}, andere Aspekte mindestens {{aspect}}.`,minScore:`Mindestgesamtwert (Standard {{score}})`,aspects:{type_correctness:`Typkorrektheit (Standard {{score}})`,pattern_adherence:`Mustertreue (Standard {{score}})`,test_coverage:`Testabdeckung (Standard {{score}})`,security:`Sicherheit (Standard {{score}})`,architectural_alignment:`Architekturkonformität (Standard {{score}})`}},b={title:`Zuversicht des Architekten`,hint:`Nach einem autonomen Untersuchungsdurchlauf pausiert ein weiterhin unsicherer Entwurf mit der Frage des Architekten oder fährt mit benannten Annahmen fort.`,onLowConfidence:`Bei geringer Zuversicht`,ask:`Fragen (mit der Frage pausieren)`,proceed:`Mit benannten Annahmen fortfahren`},x={title:`Verbrauch und Zeit`,hint:`Enthält Korrekturen und fehlgeschlagene Aufrufe. Die Agentenzeit umfasst Werkzeuge. Cache-Tokens sind Teil der Eingabe-Tokens.`,unknown:`Nicht verfügbar`,duration:`Ausführungszeit`,agentTime:`Agentenzeit`,cost:`Gemeldete Kosten`,providerCalls:`Agentenaufrufe`,toolCalls:`Werkzeugaufrufe`,input:`Eingabe-Tokens`,output:`Ausgabe-Tokens`,uncached:`Eingabe ohne Cache`,cacheRead:`Cache-Lesezugriffe`,cacheWrite:`Cache-Schreibzugriffe`,partial:`Für einige Versuche fehlen detaillierte Messungen.`,phases:`Verbrauch nach Phase`,phase:`Phase`,attempts:`Versuche`},S={title:`Prompts der Agentenrollen`,description:`Anweisungen für jede Rolle anzeigen und bearbeiten. Sie gelten für alle Projekte und Anbieter; Änderungen gelten für neue Jobs. Fortgesetzte Jobs behalten ihre ursprünglichen Prompts.`,definition:`Definition für {{role}}`,default:`Werkseinstellung`,custom:`Angepasst`,restore:`Standard wiederherstellen`,contracts:`Spec-Kontext, OpenSpec-Workflow und erforderliches Antwortformat werden automatisch ergänzt und hier nicht bearbeitet.`,invalid:`Jede Definition muss 1–20.000 Zeichen mit nicht leerem Text und ohne Nullbytes enthalten.`,saved:`Rollen-Prompts gespeichert`,unsaved:`Ungespeicherte Änderungen`,discard:`Änderungen verwerfen`,save:`Prompts speichern`,fixerHint:`Nur in Korrekturrunden – nach einer fehlgeschlagenen Prüfung oder einem abgelehnten Review. Läuft auf der Engine des Entwicklers, sofern Einstellungen ▸ Agent-Engine ▸ Korrektor keine eigene nennt. Ein CLI-Anbieter, der die Entwickler-Sitzung fortsetzt, erhält stattdessen den kurzen Korrekturhinweis; die Definition gilt, sobald eine neue Sitzung startet (lokale Engines, Korrektor-Engine, verlorene Sitzung).`},C={title:`Effizienz der Implementierung`,scope:`Gilt für neue Ausführungen. Gespeicherte Ausführungen behalten ihre Konfiguration und Laufzeit.`,effort:`Denkaufwand`,providerDefault:`Anbietervorgabe`,unconfirmed:`Unbestätigt`,unknownSupport:`Unterstützung für dieses Modell und diesen Transport ist nicht bestätigt.`,escalation:`Eine höhere Stufe beim gleichen Anbieter erlauben`,baseRequired:`Zuerst ein konkretes Basismodell auswählen.`,escalationModel:`Modell der höheren Stufe`,triggers:{architect:`Nur die bestehende vertiefte Untersuchung kann diese Stufe wählen.`,developer:`Nach zwei fehlgeschlagenen Kandidaten kann der nächste erlaubte Versuch diese Stufe wählen.`,reviewer:`Nur zur Reparatur ungültiger Antworten, nicht bei Ablehnung des Codes.`,fixer:`Nur eine Korrekturrunde kann diese Stufe erreichen; erste Durchläufe führen den Korrektor nie aus.`},contextMode:`Repository-Kontext`,reviewMode:`Korrekturprüfung`,planning:`Planungstiefe`,adaptive:`Adaptiv`,full:`Vollständig`,developerChecks:`Zusätzliche Prüfungen des Entwicklers akzeptieren`,concurrency:`Maximale gleichzeitige Prüfungen`,concurrencyHint:`Standard: 1. Nur vom Host als unabhängig deklarierte Prüfungen verschiedener Repositories laufen gleichzeitig. Standardmäßig keine Wiederverwendung.`,checkCapabilities:`Modellkompatibilität prüfen`,capabilitiesFailed:`Kompatibilität nicht bestätigt. Core aktualisieren oder Anbietervorgaben beibehalten.`},w={title:`Prüfnachweise`,acceptance:`Technische Abnahme`,acceptanceStatus:{pending:`Ausstehend`,validated:`Validiert`,"with-exceptions":`Mit Ausnahmen`,blocked:`Blockiert`},calls:`Agentenaufrufe`,executed:`Ausgeführte Prüfungen`,reused:`Wiederverwendete Prüfungen`,unknown:`Nicht verfügbar`,unavailable:`Nachweise nicht verfügbar. Das gespeicherte Ergebnis beweist keine aktuelle Gültigkeit.`,current:`Aktueller Kandidat und Plan`,historical:`Historisches Ergebnis`,moreChecks:`Weitere Prüfungen`,output:`Prüfausgabe`,empty:`Keine Ausgabe`,truncated:`Begrenzte Seite oder gekürzte Erfassung.`,nextPage:`Nächste Ausgabeseite`,status:{passed:`Bestanden`,failed:`Fehlgeschlagen`,cancelled:`Abgebrochen`,interrupted:`Unterbrochen`},disposition:{executed:`Ausgeführt`,reused:`Wiederverwendet`,"not-run":`Nicht ausgeführt`},origin:`Herkunft`,origins:{host:`Host`,architect:`Architekt`,developer:`Entwickler`,"frozen-runtime-config":`Gespeicherte Konfiguration`,"project-role":`Projektrolle`,default:`Standard`,"explicit-launch-override":`Für diesen Start gewählter Anbieter`,"loop-role":`Loop-Rolle`},reuseDisabled:`Wiederverwendung für diese Prüfung deaktiviert.`,reuseConfirmed:`Nach Prüfung identischer Eingaben und Werkzeuge wiederverwendet.`,inputsChanged:`Eingaben während der Prüfung geändert; Ergebnis ungültig.`,reuseUnproven:`Kein aktuelles Ergebnis mit nachweislich identischen Eingaben; erneut ausgeführt.`,original:`Ursprüngliche Ausführung`,requested:`Angefordert`,reported:`Gemeldet`},T={title:`Loop-Rollen`,hint:`Engines für die Loop-Rollen, wenn ein Rail mit der Engine „Rollen“ gestartet wird. Die Pipeline-Rollen oben (Architect, Developer, Reviewer) stammen bereits aus dieser Runtime-Konfiguration.`,verifier:`Verifier`,verifierHint:`Jeder KI-Schritt des Loops außerhalb des Cores: verify, fix und eigene KI-Schritte.`,decider:`Decider`,deciderHint:`Der Loop Decider, der das Urteil liest und den nächsten Schritt bestimmt – ein günstiges, schnelles Modell ist die natürliche Wahl.`,inherit:`Primären übernehmen`,model:`Modell`,effort:`Denkaufwand`,disabled:`Die Agenten-Runtime ist deaktiviert – Rails mit der Engine „Rollen“ werden abgelehnt, bis sie aktiviert ist.`,saveFailed:`Die Loop-Rollen konnten nicht gespeichert werden.`},E={title:`Implementierungs-Pipeline`,explainer:`Diese Phasen laufen bei jeder Implementierung in dieser Reihenfolge. Ist die Engine des Rails „{{roles}}“, nutzt jede Phase die unten konfigurierte Engine – Anbieter, Modell und Aufwand je Phase. Wählst du im Rail eine konkrete Engine, laufen alle Phasen mit dieser Engine.`,host:`Host`,noCommand:`kein Befehl`,inherits:`Erbt die primäre`,inheritsDeveloper:`Erbt vom Entwickler`,open:`Öffnen`,collapse:`Einklappen`,groups:{core:{title:`Kern-Pipeline`,hint:`Läuft in jeder Implementierung: planen, bauen, prüfen, korrigieren, reviewen.`},loop:{title:`Loop-Schritte`,hint:`KI-Schritte des Rail-Loops um den Lauf (prüfen → entscheiden → korrigieren) und eigener Loops; sie erben die primäre Engine, sofern nicht gesetzt.`,chip:`Rail-Loop`}},phases:{architect:{name:`Architekt`,purpose:`Liest den Code und schreibt Vorschlag, Design und Aufgaben.`},developer:{name:`Entwickler`,purpose:`Setzt die Aufgaben mit Tests um.`},verification:{name:`Verifikation`,purpose:`Der Host führt deine Prüfungen aus; Fehler gehen zurück an den Entwickler.`},fixer:{name:`Korrektor`,purpose:`Behebt, was Verifizierung oder Review ablehnen; erbt vom Entwickler, wenn nicht konfiguriert.`},reviewer:{name:`Reviewer`,purpose:`Prüft das Ergebnis gegen Spec und Nachweise.`},verifier:{name:`Prüfer`,purpose:`Verify-, Fix- und eigene KI-Schritte des Loops.`},decider:{name:`Entscheider`,purpose:`Liest das Urteil und wählt den nächsten Loop-Schritt.`}}},D={title:`Korrektor-Engine`,inherit:`Vom Entwickler erben`,own:`Eigene Engine`,hint:`Läuft nur in Korrekturrunden – nach einer fehlgeschlagenen Verifizierung oder einem abgelehnten Review; erste Durchläufe bleiben beim Entwickler. Ein stärkeres oder Cloud-Modell lohnt sich hier, wenn der Entwickler ein günstiges lokales Modell ist.`},O={title:`Leitplanken`,intro:`Prozessregeln, die der Host um lokale Modelle herum anwendet, damit ein kleines Modell nicht entgleist. Standardmäßig alle aktiv; schalte eine nur ab, um den Prozess zu justieren. CLI-Anbieter sind nie betroffen.`,unsupported:`Diese Core-Installation stellt keine konfigurierbaren Leitplanken bereit. Aktualisiere Core, um sie zu justieren; die eingebauten Regeln gelten weiterhin.`,active:`{{on}} von {{total}} aktiv`,reset:`Auf Standard zurücksetzen`,phases:{architect:`Architekt`,developer:`Entwickler`,host:`Host`},unknown:`Eine Leitplanke aus einem neueren Core; diese App hat noch keine Beschreibung dafür.`,items:{"plan-validation":{title:`Validierter Aufgabenplan`,description:`Lehnt Pläne ab, die auf openspec/ zielen, bloße Dateinamen als Aufgaben listen, zu wenige Aufgaben/Gruppen für die Spec haben oder Akzeptanzkriterien unabgedeckt lassen; der Architekt versucht es erneut.`,why:`Ein vager oder unvollständiger Plan ist Grund Nr. 1, warum ein kleines Entwicklermodell Stubs schreibt.`},"genuine-blocking-question":{title:`Nur echte blockierende Fragen`,description:`Der Architekt kann den Lauf nur mit einer echten Frage anhalten, die auf „?“ endet, nie mit kopiertem Beispieltext.`,why:`Kleine Modelle wiederholen Prompt-Platzhalter und würden jeden Lauf blockieren.`},"plan-language-hint":{title:`In der Sprache des Repositorys planen`,description:`Nennt dem Architekten die Hauptsprache, damit Aufgaben-Dateinamen die richtige Endung tragen.`,why:`Ein JS-Plan auf einem TypeScript-Repo macht Aufgaben unabhakbar.`},"frozen-plan-writes":{title:`Planungsartefakte sind eingefroren`,description:`Der Entwickler darf nicht unter openspec/ schreiben; der Plan gehört dem Host.`,why:`Modelle „implementieren“, indem sie den Plan statt den Code bearbeiten.`},"primary-language":{title:`Erinnerung an die Hauptsprache`,description:`Jeder Aufgabengruppe wird die Hauptsprache des Repositorys mitgeteilt; neue Dateien sollen sie verwenden.`,why:`Verhindert eine zweite Implementierung in einer anderen Sprache.`},"duplicate-sibling":{title:`Keine Zwillingsmodule über Sprachen hinweg`,description:`Lehnt board.js ab, wenn board.ts bereits existiert; erweitere stattdessen das vorhandene Modul.`,why:`Zwillinge kompilieren beide und die Tests importieren den falschen.`},"one-test-per-module":{title:`Eine Testdatei pro Modul`,description:`Lehnt board.tick.test.ts ab, wenn board.test.ts existiert; erweitere diese stattdessen.`,why:`Sonst fügt jeder Korrekturdurchlauf eine neue Suite hinzu.`},"empty-write":{title:`Keine leeren Überschreibungen`,description:`Ein leerer Schreibvorgang über eine gefüllte Datei wird abgelehnt; schreibe den vollständigen Inhalt oder patche sie.`,why:`Ein „Aufräum“-Durchlauf ließ index.ts einmal mit 0 Zeilen zurück.`},"evidence-gated-ticking":{title:`Belege vor dem Abhaken einer Aufgabe`,description:`Eine Aufgabe, die Dateien nennt, ist nur erledigt, wenn diese existieren und keine Stubs sind (Geschwister-Endungen akzeptiert).`,why:`Ohne das ist „erledigt“ nur eine Behauptung und die Verifikation läuft gegen nichts.`},"inventory-retry":{title:`Mit dem echten Inventar erneut versuchen`,description:`Wenn das Modell aufgibt und behauptet, das Repo sei leer, obwohl es das nicht ist, wird einmal mit der Dateiliste erneut versucht.`,why:`Günstige zweite Chance statt eines fehlgeschlagenen Schritts.`},"synthetic-corrections":{title:`Feedback in Aufgaben verwandeln`,description:`Wenn alle Aufgaben abgehakt sind, aber Review/Verifikation fehlschlug, wird das Feedback zu konkreten Korrekturaufgaben.`,why:`Sonst meldet der Entwickler „schon erledigt“ und nichts ändert sich.`},"silent-group-closure":{title:`Stille Gruppen schließen, ihre Dateien behalten`,description:`Eine Gruppe, deren Modell nicht mehr antwortet, wird geschlossen; die geschriebenen Dateien werden gutgeschrieben und ihre Aufgaben bleiben offen, statt den Lauf scheitern zu lassen.`,why:`Ein 9B-Modell schrieb fünf Module, verstummte, und der ganze Lauf scheiterte.`},"environment-repair":{title:`Der Host repariert die Umgebung`,description:`Fehlende Abhängigkeiten oder Test-Tooling (npm install, ts-jest, @types/jest, Jest-Konfigurationsmodule) installiert der Host, dann läuft die Verifikation einmal erneut.`,why:`Das Modell kann die Umgebung nicht reparieren und verbrennt Korrekturen beim Versuch.`},"lockfile-repair":{title:`Handgeschriebene Lockfiles verwerfen`,description:`Eine vom Modell erfundene package-lock.json (EINTEGRITY/ETARGET) wird entfernt und die Installation einmal wiederholt.`,why:`Erfundene Hashes lassen sich nie installieren.`},"verify-idle-timeout":{title:`Hängende Tests stoppen`,description:`Ein Verifikationsbefehl ohne Ausgabe für 5 Minuten wird gestoppt und als wahrscheinlicher Hänger gemeldet (letzte Ausgabe inklusive).`,why:`Sonst hält eine while-Schleife in einem Test den Lauf bis zur 15-Minuten-Grenze.`},"verify-per-group":{title:`Nach jeder Gruppe prüfen`,description:`Führt den Testbefehl des Repositorys direkt nach jeder Aufgabengruppe aus; ein Fehler bekommt sofort eine Korrekturrunde, solange der Kontext der Gruppe frisch ist.`,why:`Fünf kaputte Suites am Ende sind viel schwerer zu beheben als eine nach der anderen.`},"test-reachability":{title:`Jeder neue Test muss wirklich laufen`,description:"Eine vom Developer geschriebene Testdatei, die der Testbefehl des Repositorys nie ausführt (ein aufzählendes `test`-Skript, das die neue Datei auslässt), lässt die Prüfung mit der genauen Datei fehlschlagen – zuerst auf Gruppenebene, dann erneut in der Host-Prüfung.",why:`Eine 622-zeilige Suite mit sechs fehlschlagenden Fällen wurde einmal grün ausgeliefert, weil sie nie lief.`},"exit-code-honesty":{title:`Grünem Exit-Code mit gemeldeten Fehlern misstrauen`,description:"Ein Prüfbefehl, der mit 0 endet, während seine Ausgabe Fehler meldet (`FAIL:`-Zeilen, „3 failed“, ein AssertionError), gilt als FEHLGESCHLAGEN und geht an den Korrektor, wobei der Test-Harness als Defekt benannt wird.",why:`Ein selbstgebauter Test-Runner ohne Nicht-Null-Exit-Code lieferte einmal drei rote Tests als grün aus.`}}},k=`Ungespeicherte Änderungen`,A={title:`Benutzerdefinierte Rollen`,hint:`Definieren Sie wiederverwendbare Anweisungen und ausdrückliche Berechtigungen für Workflow-Rollen.`,unsupported:`Aktualisieren Sie Core, um benutzerdefinierte Rollen zu bearbeiten.`,remove:`{{id}} entfernen`,access:`Quellcodezugriff`,read:`Nur lesen`,write:`Lesen und schreiben`,artifacts:`Zugriff auf OpenSpec-Artefakte`,none:`Keiner`,tasks:`Nur Aufgaben-Kontrollkästchen`,all:`Alle Änderungsartefakte`,skill:`OpenSpec-Skill`,noSkill:`Keine Skill-Zuordnung`,prompt:`Rollenanweisungen`,id:`Rollen-ID`,add:`Rolle hinzufügen`,invalidId:`Verwenden Sie eine eindeutige ID in Kleinbuchstaben, die mit einem Buchstaben beginnt und höchstens 64 Buchstaben, Ziffern oder Bindestriche enthält. Integrierte IDs sind reserviert.`,escalationHint:`Nur eine zulässige Protokollkorrektur darf das Eskalationsmodell verwenden. Es wird kein weiterer Versuch hinzugefügt.`},j={title:`Ausführungsanweisungen`,hint:`Core speichert diese Anweisungen für den nächsten geeigneten Agentendurchlauf. Das Senden beantwortet keine Fragen und erteilt keine Freigabe.`,label:`Zusätzliche Anweisungen`,send:`Anweisungen senden`,accepted:`Von Core angenommen; noch nicht übernommen.`,pending:`Warten auf einen Agentendurchlauf`,consumed:`Von einem Agenten übernommen`,counts:`Ausstehend: {{pending}} · Übernommen: {{consumed}}`,failed:`Anweisungen konnten nicht gesendet werden. Erneut versuchen, um dieselbe Nachricht zu bestätigen.`,unavailable:`Empfangsdetails sind nicht verfügbar.`,unreported:`Diese Core-Version meldet die Übernahme nicht.`,truncated:`Nur aktuelle Empfangsbestätigungen und ausstehende Nachrichten werden angezeigt.`},M={title:`Standardwerte der Core-Rolle`,hint:`Diese Dateivorgaben gelten für neue Workflows. Explizite Projekteinstellungen haben Vorrang; gespeicherte Ausführungen behalten ihre festgelegten Einstellungen.`,invalid:`Korrigieren Sie den YAML-Kopf im Editor, bevor Sie Rollenfelder ändern.`,escalationEffort:`Denkaufwand des höherwertigen Modells`},N={title:`Aufbewahrung des Verlaufs`,description:`Lösche abgelaufene Ausführungsverläufe und ungenutzte Core-Versionen. Gelöschte Verläufe können nicht fortgesetzt oder verzweigt werden. Aktive oder wiederherstellbare Ausführungen und offene Auslieferungen bleiben geschützt; Jobprotokolle und Kosten bleiben erhalten.`,forever:`Verlauf unbegrenzt aufbewahren`,days:`Aufbewahrungstage`,save:`Aufbewahrung speichern`,preview:`Bereinigung prüfen`,collect:`Abgelaufenen Verlauf löschen`,previewSummary:`Geeignet: {{runs}} Verläufe und {{packages}} ungenutzte Core-Versionen.`,collectedSummary:`Abgelaufen: {{runs}} Verläufe. Entfernt: {{packages}} ungenutzte Core-Versionen.`,more:`{{count}} weitere Ausführungen.`,failed:`Aufbewahrung konnte nicht geprüft oder aktualisiert werden.`,expired:`Dieser Verlauf ist gemäß der Projektrichtlinie abgelaufen. Jobprotokoll und Kosten bleiben verfügbar.`,loading:`Aufbewahrungsrichtlinie wird geladen…`,states:{protected:`Aufbewahrt`,eligible:`Geeignet`,expired:`Abgelaufen`,cleanup_pending:`Bereinigung ausstehend`,busy:`In Verwendung`,error:`Prüfung fehlgeschlagen`},reasons:{disabled:`Unbegrenzte Aufbewahrung`,recoverable:`Wiederherstellung noch möglich`,active:`Aktive Ausführung`,human_pending:`Wartet auf menschliche Antwort`,interrupted_writes:`Unterbrochene Schreibvorgänge prüfen`,delivery_pending:`Auslieferung ausstehend`,fork_pending:`Abhängige Verzweigung vorhanden`,unknown_terminal_time:`Abschlusszeit unbekannt`,within_retention:`Aufbewahrungsfrist noch nicht abgelaufen`}},P={title:`Loop agents`,hint:`These definitions are shared by every project using this loop. Duplicate the loop to customize a separate workflow.`,legacy:`This saved loop still uses historical project agents. Import them or enable loop agents before changing its configuration.`,enable:`Use loop agents`,import:`Import current project agents`,restoreDefinition:`Restore default definition`,default:`Provider default`,effort:`Reasoning effort`,escalationModel:`Escalation model`,escalationEffort:`Escalation effort`,policy:`Workflow policy`,maxAttempts:`Maximum correction attempts`,maxTokens:`Token budget`,maxCostUsd:`Cost budget (USD)`,timeoutMs:`Run timeout (ms)`,projectHint:`Configure repository checks here. Agent definitions, models and workflow policy are configured in the loop editor. Historical project agents can be imported into a duplicated loop.`,showUnused:`Also show agents not used in this loop`,stepTitle:`Step agent and options`,stepHint:`Edit this step’s agent definition and engine. Steps using the same role in this loop share these settings.`,inheritProvider:`Anbieter der Mission übernehmen`},F={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w,loopRoles:T,pipeline:E,fixer:D,guardrails:O,unsavedChanges:k,customRoles:A,steering:j,studioRole:M,retention:N,loopAgents:P};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,A as customRoles,F as default,t as description,C as efficiency,w as evidence,D as fixer,O as guardrails,h as limits,r as loadFailed,n as loading,P as loopAgents,T as loopRoles,x as metrics,E as pipeline,S as prompts,d as providers,N as retention,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,j as steering,M as studioRole,e as title,a as unavailable,k as unsavedChanges,g as verification};
|
|
1
|
+
var e=`Agenten-Laufzeit`,t=`Architekt, Entwickler und Reviewer laufen als getrennte Phasen mit deterministischer Verifikation dazwischen. Wähle pro Rolle einen Anbieter; alles andere hat funktionierende Standardwerte.`,n=`Einstellungen werden geladen…`,r=`Einstellungen konnten nicht geladen werden. Vor Änderungen erneut versuchen.`,i=`Erneut versuchen`,a=`Diese Core-Installation enthält die Agenten-Laufzeit nicht. Aktualisieren Sie Core vor der Aktivierung. Die Einstellungen können Sie bereits vorbereiten.`,o=`Laufzeit-Einstellungen speichern`,s=`Wird gespeichert…`,c=`Einstellungen gespeichert`,l=`Einstellungen konnten nicht gespeichert werden.`,u=`Vor Abschluss des Workflows auf Freigabe warten`,d={title:`Anbieter`,hint:`CLI-Anbieter nutzen die bestehende Anmeldung. APIs akzeptieren nur den Namen einer Umgebungsvariablen, niemals den Schlüssel selbst. Lokal kann er leer bleiben. Rollen vor dem Entfernen ihres Anbieters neu zuweisen.`,entry:`Anbieter {{index}}`,id:`Anbieter-ID`,kind:`Verbindungstyp`,cli:`Installierte Programmier-CLI`,compatible:`OpenAI-kompatibler Endpunkt`,command:`Programmier-CLI`,baseUrl:`API-Basis-URL`,apiKeyEnv:`Umgebungsvariable für API-Schlüssel (optional)`,remove:`Anbieter entfernen`,addCli:`CLI-Anbieter hinzufügen`,addLocal:`Lokalen / API-Anbieter hinzufügen`,show:`Anbieterverbindungen anzeigen`,hide:`Anbieterverbindungen ausblenden`,globalTitle:`KI-Anbieter`,globalHint:`Zwei Arten von Anbietern treiben jedes Projekt an: auf diesem Rechner erkannte Coding-CLIs und lokale OpenAI-kompatible Engines, die du hier registrierst. Weise sie den Pipeline-Phasen in Projekteinstellungen ▸ Agenten-Engine zu. Änderungen gelten für neue Ausführungen.`,label:`Anzeigename (optional)`,labelPlaceholder:`z. B. LAN-Rechner`,defaultModel:`Standardmodell`,defaultModelNone:`Kein Standard (erstes gefundenes)`,defaultModelPlaceholder:`Modell-ID oder eigener Alias`,customModel:`Eigener Alias…`,discoveredModels:`Gefundene Modelle`,noModels:`Noch keine Modelle gefunden – Verbindung testen.`,rates:`Tarife (USD pro 1M Tokens, optional)`,ratesHint:`Kosten werden als Schätzung angezeigt; beide leer lassen und die Kosten bleiben unbekannt.`,inputRate:`Eingabe pro 1M`,outputRate:`Ausgabe pro 1M`,ratesInvalid:`Beide Tarife als nicht negative Zahlen eingeben oder beide leer lassen.`,reasoningEffort:`Endpunkt akzeptiert Reasoning-Aufwand`,reasoningEffortHint:`Sendet das OpenAI-Feld reasoning_effort: bei jedem Aufruf den konfigurierten Aufwand der Rolle, auf hoch angehoben, während der kompakte Architekt den Plan schreibt. Nur aktivieren, wenn der Server es berücksichtigt.`,apiKeyEnvMissing:`{{name}} ist im App-Prozess nicht gesetzt. Setze sie in der Umgebung, aus der die App gestartet wird.`,test:`Verbindung testen`,testing:`Wird getestet…`,testFailed:`Verbindung konnte nicht getestet werden.`,rename:`Umbenennen`,renameHint:`Beim Umbenennen zeigen Rollenzuweisungen weiterhin auf diese Verbindung.`,idLocked:`Die ID ist nach dem Speichern gesperrt. Zum Ändern Umbenennen verwenden.`,localBadge:`Lokale Engine`,cliBadge:`CLI`,notDetected:`Auf diesem Rechner nicht erkannt`,unsaved:`Ungespeicherte Änderungen`,empty:`Noch keine Verbindungen. Füge einen lokalen / API-Anbieter hinzu.`,fixBeforeSave:`Korrigiere die markierten Felder vor dem Speichern.`,status:{probing:`Wird geprüft…`,reachable:`Erreichbar`,unauthorized:`Nicht autorisiert`,unreachable:`Nicht erreichbar`,untested:`Nie getestet`},auth:{authenticated:`Angemeldet`,unauthenticated:`Nicht angemeldet`,unknown:`Anmeldung unbekannt`},agentLoop:`Agenten-Schleife`,agentLoopHint:`wie die Implement-Pipeline dieses Modell steuert`,agentLoop_compact:`Kompakt`,agentLoop_compactHint:`App-gesteuerte Mikroschritte mit strukturierter Ausgabe. Empfohlen für Modelle unter ~30B.`,agentLoop_free:`Frei`,agentLoop_freeHint:`Eine agentische Schleife pro Rolle, wie bei einem CLI-Provider. Braucht ein starkes Modell.`,contextWindow:`Kontextfenster (Tokens)`,contextWindowHint:`An die Kontextgröße des Servers anpassen (n_ctx / num_ctx). Dient zum Komprimieren alter Tool-Ergebnisse, bevor das Fenster voll ist. Standard 32768.`,maxOutput:`Ausgabebudget pro Zug (Tokens)`,maxOutputHint:`max_tokens eines Werkzeugzugs; ein abgeschnittener Zug wird einmal mit dem Doppelten wiederholt. Zählt innerhalb des Kontextfensters und wird daher stets auf den verbleibenden Platz begrenzt – erhöhen, wenn das Modell privat nachdenkt (Thinking verbraucht es). Standard 8192.`,reasoningEffortRailHint:`Aus: der Reasoning-Aufwand-Selektor erscheint für diese Engine nicht in der Rail-Kopfzeile.`,presetTitle:`Schnelleinrichtung`,presetSmallModel:`Empfohlen für kleine Modelle`,presetSmallModelApplied:`Voreinstellung für kleine Modelle angewendet`,presetSmallModelHint:`Setzt die kompakte Schleife, leitet den Reasoning-Aufwand weiter und ein 32k-Kontextfenster – die mit 7–14B-Modellen validierte Kombination. Jedes Feld bleibt änderbar.`,cliGroup:`CLI-Werkzeuge`,cliGroupHint:`Auf diesem Rechner erkannt – sie nutzen ihre eigene Anmeldung, nichts zu konfigurieren.`,localGroup:`Lokale Engines`,localGroupHint:`OpenAI-kompatible Endpunkte (llama.cpp, Ollama, vLLM, LM Studio …), die von dieser App aus erreichbar sind.`,models_one:`{{count}} Modell`,models_other:`{{count}} Modelle`,expand:`Einstellungen anzeigen`,collapse:`Einstellungen ausblenden`,overflow:`Weitere Aktionen`,addLocalHero:`Lokale Engine hinzufügen`,emptyLocalPitch:`Noch keine lokale Engine. Richte die App auf einen OpenAI-kompatiblen Endpunkt, um die Pipeline auf eigener Hardware auszuführen – die Kosten bleiben unter deiner Kontrolle und nichts verlässt dein Netzwerk.`,defaultsGroup:`Anbieter-Standardwerte`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Architekt`,developer:`Entwickler`,reviewer:`Prüfer`,fixer:`Korrektor`,verify:`Prüfung`,archive:`Abschluss`},m={title:`Rollenzuweisungen`,hint:`Jede Rolle kann einen anderen Anbieter und ein anderes Modell verwenden. Verbindungen: Allgemeine Einstellungen → KI-Anbieter. Standard: {{turns}} Runden pro Agent.`,provider:`Anbieter`,model:`Modell`,modelPlaceholder:`Modell-ID oder CLI-Standard`,maxTurns:`Maximale Runden (Standard {{turns}})`,defaultModel:`Standard ({{model}})`,thinking:`Verdecktes Nachdenken`,thinking_off:`Aus`,thinking_on:`An`,thinkingHint:`Standardmäßig aus: verdecktes Nachdenken verbraucht das Ausgabebudget und Minuten pro Zug in einer host-gesteuerten Schleife. Für eine Rolle einschalten, die von Abwägen profitiert (gesendet als chat_template_kwargs.enable_thinking; Endpunkte, die es nicht kennen, ignorieren es).`},h={title:`Workflow-Limits`,hint:`Leere Felder nutzen die Core-Standards: {{attempts}} Korrekturversuche und {{minutes}} Minuten pro Rollenschritt. Bei lokalen Engines gilt das Zeitlimit je Arbeitseinheit (eine Aufgabengruppe, ein Artefakt, ein Review) – standardmäßig 45 Minuten – plus ein 20-minütiger Leerlauf-Wächter; ein Schritt, dem die Zeit ausgeht, blockiert den Lauf und kann ab der nächsten offenen Aufgabengruppe fortgesetzt werden. Token- und USD-Limits sind optional; USD-Limits erfordern Claude für jede KI-Rolle.`,maxAttempts:`Maximale Entwicklerversuche (Standard {{attempts}})`,timeoutMinutes:`Zeitlimit in Minuten (Standard {{minutes}}; lokale Engines 45 je Aufgabengruppe)`,maxTokens:`Maximale Tokens`,maxCostUsd:`Maximale Kosten (USD)`,unlimited:`Kein Limit`},g={title:`Verifikationsbefehle`,hint:`Optional. Sie laufen, nachdem der Entwickler fertig ist; Fehler gehen an den Entwickler zurück. Bleibt die Liste leer, schlägt der Architekt bei jedem Lauf die projekteigenen Prüfungen vor; Repositories ohne automatische Prüfung werden trotzdem reviewt.`,detect:`Projektprüfungen erkennen`,detecting:`Erkenne…`,detected:`Ausgefüllt mit den Prüfungen, die dieses Projekt bereits definiert.`,nothingDetected:`Kein Test-, Typprüfungs- oder Build-Befehl gefunden. Kein Problem: der Architekt schlägt bei jedem Lauf Prüfungen vor, wenn möglich.`,detectFailed:`Die Projekt-Repositories konnten nicht untersucht werden.`,repository:`Repository`,command:`Befehl`,reason:`Erkannt aus {{reason}}`,remove:`Entfernen`,add:`Befehl hinzufügen`,invalidLine:`Verifikationsbefehl ist leer oder hat ein nicht geschlossenes Anführungszeichen: {{line}}`,label:`Prüfbezeichnung (optional)`,moveUp:`Nach oben`,moveDown:`Nach unten`},_={title:`Gespeicherte Ausführungen`,refresh:`Aktualisieren`,hint:`Setzt im ursprünglichen Worktree mit gespeichertem Umfang und Einstellungen fort; der Fortschritt erscheint im Protokoll dieses Jobs. Es wird nichts veröffentlicht und keine Desktop-Auslieferung neu gestartet. Aktive Rail-Ausführungen werden über ihre Job-Steuerung gestoppt.`,empty:`Keine gespeicherten Ausführungen.`,loadFailed:`Ausführungen konnten nicht geladen werden.`,actionFailed:`Ausführung konnte nicht aktualisiert werden.`,phase:`Nächste Phase: {{phase}}`,approve:`Abschluss freigeben`,recover:`Unterbrochene Phase wiederherstellen`,resume:`Fortsetzen`,cancel:`Fortsetzung abbrechen`,status:{running:`Wird fortgesetzt…`,succeeded:`Erfolgreich`,failed:`Fehlgeschlagen`,blocked:`Blockiert`,paused:`Pausiert`,cancelled:`Abgebrochen`,interrupted:`Unterbrochen`,unavailable:`Nicht verfügbar`,expired:`Abgelaufen`},question:`Der Architekt fragt:`,answerLabel:`Ihre Antwort`,answerPlaceholder:`Beantworten Sie die Frage; der Architekt macht damit weiter.`,answer:`Antworten und fortsetzen`,viewLog:`Job-Protokoll anzeigen`,implementation:`Implementierung`,preserveProgress:`Ab der angezeigten Phase fortsetzen; bisherige Arbeit und gespeicherte Einstellungen bleiben erhalten.`,reviewDelivery:`Implementierung abgeschlossen. Prüfe das Ergebnis im Job-Protokoll vor der Auslieferung; diese Fortsetzung hat es nicht veröffentlicht.`,prepareDelivery:`Auslieferung vorbereiten`,dismiss:`Verwerfen`,selectRecovery:`Unterbrochene Versuche zur Wiederaufnahme auswählen`},v={architect:`Liest den Code und schreibt Vorschlag, Design, Aufgaben und Spezifikation. Nur lesend.`,developer:`Setzt die Aufgaben mit Tests um. Darf Dateien bearbeiten und Befehle in der CLI-Sandbox ausführen.`,reviewer:`Prüft das Ergebnis gegen Spezifikation und Verifikationsnachweise. Nur lesend.`},y={title:`Review-Schwelle`,hint:`Leere Felder verwenden Cores Schwelle. Werte können sie nur anheben: Gesamtwert mindestens {{score}}, Sicherheit mindestens {{security}}, andere Aspekte mindestens {{aspect}}.`,minScore:`Mindestgesamtwert (Standard {{score}})`,aspects:{type_correctness:`Typkorrektheit (Standard {{score}})`,pattern_adherence:`Mustertreue (Standard {{score}})`,test_coverage:`Testabdeckung (Standard {{score}})`,security:`Sicherheit (Standard {{score}})`,architectural_alignment:`Architekturkonformität (Standard {{score}})`}},b={title:`Zuversicht des Architekten`,hint:`Nach einem autonomen Untersuchungsdurchlauf pausiert ein weiterhin unsicherer Entwurf mit der Frage des Architekten oder fährt mit benannten Annahmen fort.`,onLowConfidence:`Bei geringer Zuversicht`,ask:`Fragen (mit der Frage pausieren)`,proceed:`Mit benannten Annahmen fortfahren`},x={title:`Verbrauch und Zeit`,hint:`Enthält Korrekturen und fehlgeschlagene Aufrufe. Die Agentenzeit umfasst Werkzeuge. Cache-Tokens sind Teil der Eingabe-Tokens.`,unknown:`Nicht verfügbar`,duration:`Ausführungszeit`,agentTime:`Agentenzeit`,cost:`Gemeldete Kosten`,providerCalls:`Agentenaufrufe`,toolCalls:`Werkzeugaufrufe`,input:`Eingabe-Tokens`,output:`Ausgabe-Tokens`,uncached:`Eingabe ohne Cache`,cacheRead:`Cache-Lesezugriffe`,cacheWrite:`Cache-Schreibzugriffe`,partial:`Für einige Versuche fehlen detaillierte Messungen.`,phases:`Verbrauch nach Phase`,phase:`Phase`,attempts:`Versuche`},S={title:`Prompts der Agentenrollen`,description:`Anweisungen für jede Rolle anzeigen und bearbeiten. Sie gelten für alle Projekte und Anbieter; Änderungen gelten für neue Jobs. Fortgesetzte Jobs behalten ihre ursprünglichen Prompts.`,definition:`Definition für {{role}}`,default:`Werkseinstellung`,custom:`Angepasst`,restore:`Standard wiederherstellen`,contracts:`Spec-Kontext, OpenSpec-Workflow und erforderliches Antwortformat werden automatisch ergänzt und hier nicht bearbeitet.`,invalid:`Jede Definition muss 1–20.000 Zeichen mit nicht leerem Text und ohne Nullbytes enthalten.`,saved:`Rollen-Prompts gespeichert`,unsaved:`Ungespeicherte Änderungen`,discard:`Änderungen verwerfen`,save:`Prompts speichern`,fixerHint:`Nur in Korrekturrunden – nach einer fehlgeschlagenen Prüfung oder einem abgelehnten Review. Läuft auf der Engine des Entwicklers, sofern Einstellungen ▸ Agent-Engine ▸ Korrektor keine eigene nennt. Ein CLI-Anbieter, der die Entwickler-Sitzung fortsetzt, erhält stattdessen den kurzen Korrekturhinweis; die Definition gilt, sobald eine neue Sitzung startet (lokale Engines, Korrektor-Engine, verlorene Sitzung).`},C={title:`Effizienz der Implementierung`,scope:`Gilt für neue Ausführungen. Gespeicherte Ausführungen behalten ihre Konfiguration und Laufzeit.`,effort:`Denkaufwand`,providerDefault:`Anbietervorgabe`,unconfirmed:`Unbestätigt`,unknownSupport:`Unterstützung für dieses Modell und diesen Transport ist nicht bestätigt.`,escalation:`Eine höhere Stufe beim gleichen Anbieter erlauben`,baseRequired:`Zuerst ein konkretes Basismodell auswählen.`,escalationModel:`Modell der höheren Stufe`,triggers:{architect:`Nur die bestehende vertiefte Untersuchung kann diese Stufe wählen.`,developer:`Nach zwei fehlgeschlagenen Kandidaten kann der nächste erlaubte Versuch diese Stufe wählen.`,reviewer:`Nur zur Reparatur ungültiger Antworten, nicht bei Ablehnung des Codes.`,fixer:`Nur eine Korrekturrunde kann diese Stufe erreichen; erste Durchläufe führen den Korrektor nie aus.`},contextMode:`Repository-Kontext`,reviewMode:`Korrekturprüfung`,planning:`Planungstiefe`,adaptive:`Adaptiv`,full:`Vollständig`,developerChecks:`Zusätzliche Prüfungen des Entwicklers akzeptieren`,concurrency:`Maximale gleichzeitige Prüfungen`,concurrencyHint:`Standard: 1. Nur vom Host als unabhängig deklarierte Prüfungen verschiedener Repositories laufen gleichzeitig. Standardmäßig keine Wiederverwendung.`,checkCapabilities:`Modellkompatibilität prüfen`,capabilitiesFailed:`Kompatibilität nicht bestätigt. Core aktualisieren oder Anbietervorgaben beibehalten.`},w={title:`Prüfnachweise`,acceptance:`Technische Abnahme`,acceptanceStatus:{pending:`Ausstehend`,validated:`Validiert`,"with-exceptions":`Mit Ausnahmen`,blocked:`Blockiert`},calls:`Agentenaufrufe`,executed:`Ausgeführte Prüfungen`,reused:`Wiederverwendete Prüfungen`,unknown:`Nicht verfügbar`,unavailable:`Nachweise nicht verfügbar. Das gespeicherte Ergebnis beweist keine aktuelle Gültigkeit.`,current:`Aktueller Kandidat und Plan`,historical:`Historisches Ergebnis`,moreChecks:`Weitere Prüfungen`,output:`Prüfausgabe`,empty:`Keine Ausgabe`,truncated:`Begrenzte Seite oder gekürzte Erfassung.`,nextPage:`Nächste Ausgabeseite`,status:{passed:`Bestanden`,failed:`Fehlgeschlagen`,cancelled:`Abgebrochen`,interrupted:`Unterbrochen`},disposition:{executed:`Ausgeführt`,reused:`Wiederverwendet`,"not-run":`Nicht ausgeführt`},origin:`Herkunft`,origins:{host:`Host`,architect:`Architekt`,developer:`Entwickler`,"frozen-runtime-config":`Gespeicherte Konfiguration`,"project-role":`Projektrolle`,default:`Standard`,"explicit-launch-override":`Für diesen Start gewählter Anbieter`,"loop-role":`Loop-Rolle`},reuseDisabled:`Wiederverwendung für diese Prüfung deaktiviert.`,reuseConfirmed:`Nach Prüfung identischer Eingaben und Werkzeuge wiederverwendet.`,inputsChanged:`Eingaben während der Prüfung geändert; Ergebnis ungültig.`,reuseUnproven:`Kein aktuelles Ergebnis mit nachweislich identischen Eingaben; erneut ausgeführt.`,original:`Ursprüngliche Ausführung`,requested:`Angefordert`,reported:`Gemeldet`},T={title:`Loop-Rollen`,hint:`Engines für die Loop-Rollen, wenn ein Rail mit der Engine „Rollen“ gestartet wird. Die Pipeline-Rollen oben (Architect, Developer, Reviewer) stammen bereits aus dieser Runtime-Konfiguration.`,verifier:`Verifier`,verifierHint:`Jeder KI-Schritt des Loops außerhalb des Cores: verify, fix und eigene KI-Schritte.`,decider:`Decider`,deciderHint:`Der Loop Decider, der das Urteil liest und den nächsten Schritt bestimmt – ein günstiges, schnelles Modell ist die natürliche Wahl.`,inherit:`Primären übernehmen`,model:`Modell`,effort:`Denkaufwand`,disabled:`Die Agenten-Runtime ist deaktiviert – Rails mit der Engine „Rollen“ werden abgelehnt, bis sie aktiviert ist.`,saveFailed:`Die Loop-Rollen konnten nicht gespeichert werden.`},E={title:`Implementierungs-Pipeline`,explainer:`Diese Phasen laufen bei jeder Implementierung in dieser Reihenfolge. Ist die Engine des Rails „{{roles}}“, nutzt jede Phase die unten konfigurierte Engine – Anbieter, Modell und Aufwand je Phase. Wählst du im Rail eine konkrete Engine, laufen alle Phasen mit dieser Engine.`,host:`Host`,noCommand:`kein Befehl`,inherits:`Erbt die primäre`,inheritsDeveloper:`Erbt vom Entwickler`,open:`Öffnen`,collapse:`Einklappen`,groups:{core:{title:`Kern-Pipeline`,hint:`Läuft in jeder Implementierung: planen, bauen, prüfen, korrigieren, reviewen.`},loop:{title:`Loop-Schritte`,hint:`KI-Schritte des Rail-Loops um den Lauf (prüfen → entscheiden → korrigieren) und eigener Loops; sie erben die primäre Engine, sofern nicht gesetzt.`,chip:`Rail-Loop`}},phases:{architect:{name:`Architekt`,purpose:`Liest den Code und schreibt Vorschlag, Design und Aufgaben.`},developer:{name:`Entwickler`,purpose:`Setzt die Aufgaben mit Tests um.`},verification:{name:`Verifikation`,purpose:`Der Host führt deine Prüfungen aus; Fehler gehen zurück an den Entwickler.`},fixer:{name:`Korrektor`,purpose:`Behebt, was Verifizierung oder Review ablehnen; erbt vom Entwickler, wenn nicht konfiguriert.`},reviewer:{name:`Reviewer`,purpose:`Prüft das Ergebnis gegen Spec und Nachweise.`},verifier:{name:`Prüfer`,purpose:`Verify-, Fix- und eigene KI-Schritte des Loops.`},decider:{name:`Entscheider`,purpose:`Liest das Urteil und wählt den nächsten Loop-Schritt.`}}},D={title:`Korrektor-Engine`,inherit:`Vom Entwickler erben`,own:`Eigene Engine`,hint:`Läuft nur in Korrekturrunden – nach einer fehlgeschlagenen Verifizierung oder einem abgelehnten Review; erste Durchläufe bleiben beim Entwickler. Ein stärkeres oder Cloud-Modell lohnt sich hier, wenn der Entwickler ein günstiges lokales Modell ist.`},O={title:`Leitplanken`,intro:`Prozessregeln, die der Host um lokale Modelle herum anwendet, damit ein kleines Modell nicht entgleist. Standardmäßig alle aktiv; schalte eine nur ab, um den Prozess zu justieren. CLI-Anbieter sind nie betroffen.`,unsupported:`Diese Core-Installation stellt keine konfigurierbaren Leitplanken bereit. Aktualisiere Core, um sie zu justieren; die eingebauten Regeln gelten weiterhin.`,active:`{{on}} von {{total}} aktiv`,reset:`Auf Standard zurücksetzen`,phases:{architect:`Architekt`,developer:`Entwickler`,host:`Host`},unknown:`Eine Leitplanke aus einem neueren Core; diese App hat noch keine Beschreibung dafür.`,items:{"plan-validation":{title:`Validierter Aufgabenplan`,description:`Lehnt Pläne ab, die auf openspec/ zielen, bloße Dateinamen als Aufgaben listen, zu wenige Aufgaben/Gruppen für die Spec haben oder Akzeptanzkriterien unabgedeckt lassen; der Architekt versucht es erneut.`,why:`Ein vager oder unvollständiger Plan ist Grund Nr. 1, warum ein kleines Entwicklermodell Stubs schreibt.`},"genuine-blocking-question":{title:`Nur echte blockierende Fragen`,description:`Der Architekt kann den Lauf nur mit einer echten Frage anhalten, die auf „?“ endet, nie mit kopiertem Beispieltext.`,why:`Kleine Modelle wiederholen Prompt-Platzhalter und würden jeden Lauf blockieren.`},"plan-language-hint":{title:`In der Sprache des Repositorys planen`,description:`Nennt dem Architekten die Hauptsprache, damit Aufgaben-Dateinamen die richtige Endung tragen.`,why:`Ein JS-Plan auf einem TypeScript-Repo macht Aufgaben unabhakbar.`},"frozen-plan-writes":{title:`Planungsartefakte sind eingefroren`,description:`Der Entwickler darf nicht unter openspec/ schreiben; der Plan gehört dem Host.`,why:`Modelle „implementieren“, indem sie den Plan statt den Code bearbeiten.`},"primary-language":{title:`Erinnerung an die Hauptsprache`,description:`Jeder Aufgabengruppe wird die Hauptsprache des Repositorys mitgeteilt; neue Dateien sollen sie verwenden.`,why:`Verhindert eine zweite Implementierung in einer anderen Sprache.`},"duplicate-sibling":{title:`Keine Zwillingsmodule über Sprachen hinweg`,description:`Lehnt board.js ab, wenn board.ts bereits existiert; erweitere stattdessen das vorhandene Modul.`,why:`Zwillinge kompilieren beide und die Tests importieren den falschen.`},"one-test-per-module":{title:`Eine Testdatei pro Modul`,description:`Lehnt board.tick.test.ts ab, wenn board.test.ts existiert; erweitere diese stattdessen.`,why:`Sonst fügt jeder Korrekturdurchlauf eine neue Suite hinzu.`},"empty-write":{title:`Keine leeren Überschreibungen`,description:`Ein leerer Schreibvorgang über eine gefüllte Datei wird abgelehnt; schreibe den vollständigen Inhalt oder patche sie.`,why:`Ein „Aufräum“-Durchlauf ließ index.ts einmal mit 0 Zeilen zurück.`},"evidence-gated-ticking":{title:`Belege vor dem Abhaken einer Aufgabe`,description:`Eine Aufgabe, die Dateien nennt, ist nur erledigt, wenn diese existieren und keine Stubs sind (Geschwister-Endungen akzeptiert).`,why:`Ohne das ist „erledigt“ nur eine Behauptung und die Verifikation läuft gegen nichts.`},"inventory-retry":{title:`Mit dem echten Inventar erneut versuchen`,description:`Wenn das Modell aufgibt und behauptet, das Repo sei leer, obwohl es das nicht ist, wird einmal mit der Dateiliste erneut versucht.`,why:`Günstige zweite Chance statt eines fehlgeschlagenen Schritts.`},"synthetic-corrections":{title:`Feedback in Aufgaben verwandeln`,description:`Wenn alle Aufgaben abgehakt sind, aber Review/Verifikation fehlschlug, wird das Feedback zu konkreten Korrekturaufgaben.`,why:`Sonst meldet der Entwickler „schon erledigt“ und nichts ändert sich.`},"silent-group-closure":{title:`Stille Gruppen schließen, ihre Dateien behalten`,description:`Eine Gruppe, deren Modell nicht mehr antwortet, wird geschlossen; die geschriebenen Dateien werden gutgeschrieben und ihre Aufgaben bleiben offen, statt den Lauf scheitern zu lassen.`,why:`Ein 9B-Modell schrieb fünf Module, verstummte, und der ganze Lauf scheiterte.`},"environment-repair":{title:`Der Host repariert die Umgebung`,description:`Fehlende Abhängigkeiten oder Test-Tooling (npm install, ts-jest, @types/jest, Jest-Konfigurationsmodule) installiert der Host, dann läuft die Verifikation einmal erneut.`,why:`Das Modell kann die Umgebung nicht reparieren und verbrennt Korrekturen beim Versuch.`},"lockfile-repair":{title:`Handgeschriebene Lockfiles verwerfen`,description:`Eine vom Modell erfundene package-lock.json (EINTEGRITY/ETARGET) wird entfernt und die Installation einmal wiederholt.`,why:`Erfundene Hashes lassen sich nie installieren.`},"verify-idle-timeout":{title:`Hängende Tests stoppen`,description:`Ein Verifikationsbefehl ohne Ausgabe für 5 Minuten wird gestoppt und als wahrscheinlicher Hänger gemeldet (letzte Ausgabe inklusive).`,why:`Sonst hält eine while-Schleife in einem Test den Lauf bis zur 15-Minuten-Grenze.`},"verify-per-group":{title:`Nach jeder Gruppe prüfen`,description:`Führt den Testbefehl des Repositorys direkt nach jeder Aufgabengruppe aus; ein Fehler bekommt sofort eine Korrekturrunde, solange der Kontext der Gruppe frisch ist.`,why:`Fünf kaputte Suites am Ende sind viel schwerer zu beheben als eine nach der anderen.`},"test-reachability":{title:`Jeder neue Test muss wirklich laufen`,description:"Eine vom Developer geschriebene Testdatei, die der Testbefehl des Repositorys nie ausführt (ein aufzählendes `test`-Skript, das die neue Datei auslässt), lässt die Prüfung mit der genauen Datei fehlschlagen – zuerst auf Gruppenebene, dann erneut in der Host-Prüfung.",why:`Eine 622-zeilige Suite mit sechs fehlschlagenden Fällen wurde einmal grün ausgeliefert, weil sie nie lief.`},"exit-code-honesty":{title:`Grünem Exit-Code mit gemeldeten Fehlern misstrauen`,description:"Ein Prüfbefehl, der mit 0 endet, während seine Ausgabe Fehler meldet (`FAIL:`-Zeilen, „3 failed“, ein AssertionError), gilt als FEHLGESCHLAGEN und geht an den Korrektor, wobei der Test-Harness als Defekt benannt wird.",why:`Ein selbstgebauter Test-Runner ohne Nicht-Null-Exit-Code lieferte einmal drei rote Tests als grün aus.`}}},k=`Ungespeicherte Änderungen`,A={title:`Benutzerdefinierte Rollen`,hint:`Definieren Sie wiederverwendbare Anweisungen und ausdrückliche Berechtigungen für Workflow-Rollen.`,unsupported:`Aktualisieren Sie Core, um benutzerdefinierte Rollen zu bearbeiten.`,remove:`{{id}} entfernen`,access:`Quellcodezugriff`,read:`Nur lesen`,write:`Lesen und schreiben`,artifacts:`Zugriff auf OpenSpec-Artefakte`,none:`Keiner`,tasks:`Nur Aufgaben-Kontrollkästchen`,all:`Alle Änderungsartefakte`,skill:`OpenSpec-Skill`,noSkill:`Keine Skill-Zuordnung`,prompt:`Rollenanweisungen`,id:`Rollen-ID`,add:`Rolle hinzufügen`,invalidId:`Verwenden Sie eine eindeutige ID in Kleinbuchstaben, die mit einem Buchstaben beginnt und höchstens 64 Buchstaben, Ziffern oder Bindestriche enthält. Integrierte IDs sind reserviert.`,escalationHint:`Nur eine zulässige Protokollkorrektur darf das Eskalationsmodell verwenden. Es wird kein weiterer Versuch hinzugefügt.`},j={title:`Ausführungsanweisungen`,hint:`Core speichert diese Anweisungen für den nächsten geeigneten Agentendurchlauf. Das Senden beantwortet keine Fragen und erteilt keine Freigabe.`,label:`Zusätzliche Anweisungen`,send:`Anweisungen senden`,accepted:`Von Core angenommen; noch nicht übernommen.`,pending:`Warten auf einen Agentendurchlauf`,consumed:`Von einem Agenten übernommen`,counts:`Ausstehend: {{pending}} · Übernommen: {{consumed}}`,failed:`Anweisungen konnten nicht gesendet werden. Erneut versuchen, um dieselbe Nachricht zu bestätigen.`,unavailable:`Empfangsdetails sind nicht verfügbar.`,unreported:`Diese Core-Version meldet die Übernahme nicht.`,truncated:`Nur aktuelle Empfangsbestätigungen und ausstehende Nachrichten werden angezeigt.`},M={title:`Standardwerte der Core-Rolle`,hint:`Diese Dateivorgaben gelten für neue Workflows. Explizite Projekteinstellungen haben Vorrang; gespeicherte Ausführungen behalten ihre festgelegten Einstellungen.`,invalid:`Korrigieren Sie den YAML-Kopf im Editor, bevor Sie Rollenfelder ändern.`,escalationEffort:`Denkaufwand des höherwertigen Modells`},N={title:`Aufbewahrung des Verlaufs`,description:`Lösche abgelaufene Ausführungsverläufe und ungenutzte Core-Versionen. Gelöschte Verläufe können nicht fortgesetzt oder verzweigt werden. Aktive oder wiederherstellbare Ausführungen und offene Auslieferungen bleiben geschützt; Jobprotokolle und Kosten bleiben erhalten.`,forever:`Verlauf unbegrenzt aufbewahren`,days:`Aufbewahrungstage`,save:`Aufbewahrung speichern`,preview:`Bereinigung prüfen`,collect:`Abgelaufenen Verlauf löschen`,previewSummary:`Geeignet: {{runs}} Verläufe und {{packages}} ungenutzte Core-Versionen.`,collectedSummary:`Abgelaufen: {{runs}} Verläufe. Entfernt: {{packages}} ungenutzte Core-Versionen.`,more:`{{count}} weitere Ausführungen.`,failed:`Aufbewahrung konnte nicht geprüft oder aktualisiert werden.`,expired:`Dieser Verlauf ist gemäß der Projektrichtlinie abgelaufen. Jobprotokoll und Kosten bleiben verfügbar.`,loading:`Aufbewahrungsrichtlinie wird geladen…`,states:{protected:`Aufbewahrt`,eligible:`Geeignet`,expired:`Abgelaufen`,cleanup_pending:`Bereinigung ausstehend`,busy:`In Verwendung`,error:`Prüfung fehlgeschlagen`},reasons:{disabled:`Unbegrenzte Aufbewahrung`,recoverable:`Wiederherstellung noch möglich`,active:`Aktive Ausführung`,human_pending:`Wartet auf menschliche Antwort`,interrupted_writes:`Unterbrochene Schreibvorgänge prüfen`,delivery_pending:`Auslieferung ausstehend`,fork_pending:`Abhängige Verzweigung vorhanden`,unknown_terminal_time:`Abschlusszeit unbekannt`,within_retention:`Aufbewahrungsfrist noch nicht abgelaufen`}},P={title:`Loop agents`,hint:`These definitions are shared by every project using this loop. Duplicate the loop to customize a separate workflow.`,legacy:`This saved loop still uses historical project agents. Import them or enable loop agents before changing its configuration.`,enable:`Use loop agents`,import:`Import current project agents`,restoreDefinition:`Core-Definition verwenden`,default:`Provider default`,effort:`Reasoning effort`,escalationModel:`Escalation model`,escalationEffort:`Escalation effort`,policy:`Workflow policy`,maxAttempts:`Maximum correction attempts`,maxTokens:`Token budget`,maxCostUsd:`Cost budget (USD)`,timeoutMs:`Run timeout (ms)`,projectHint:`Configure repository checks here. Agent definitions, models and workflow policy are configured in the loop editor. Historical project agents can be imported into a duplicated loop.`,showUnused:`Also show agents not used in this loop`,stepTitle:`Step agent and options`,stepHint:`Edit this step’s agent definition and engine. Steps using the same role in this loop share these settings.`,inheritProvider:`Anbieter der Mission übernehmen`,inheritDefinition:`Folgt der Core-Definition: jedes Core-Upgrade aktualisiert sie automatisch.`,customizeDefinition:`Für diesen Loop anpassen`,coreDefinitionUnavailable:`Vorschau erst verfügbar, wenn eine Core-Laufzeit installiert ist.`},F={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w,loopRoles:T,pipeline:E,fixer:D,guardrails:O,unsavedChanges:k,customRoles:A,steering:j,studioRole:M,retention:N,loopAgents:P};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,A as customRoles,F as default,t as description,C as efficiency,w as evidence,D as fixer,O as guardrails,h as limits,r as loadFailed,n as loading,P as loopAgents,T as loopRoles,x as metrics,E as pipeline,S as prompts,d as providers,N as retention,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,j as steering,M as studioRole,e as title,a as unavailable,k as unsavedChanges,g as verification};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`エージェント実行エンジン`,t=`アーキテクト、デベロッパー、レビュアーが別々のフェーズとして実行され、その間に決定的な検証が入ります。役割ごとにプロバイダーを選ぶだけで、他はそのまま動く既定値です。`,n=`実行設定を読み込み中…`,r=`実行設定を読み込めませんでした。変更する前に再試行してください。`,i=`再試行`,a=`この Core にはエージェント実行エンジンが含まれていません。有効にする前に Core を更新してください。無効な状態で設定を準備できます。`,o=`実行設定を保存`,s=`保存中…`,c=`実行設定を保存しました`,l=`実行設定を保存できませんでした。`,u=`ワークフロー完了前に承認を待つ`,d={title:`プロバイダー`,hint:`CLI は既存のログインを使用します。API には環境変数名のみを指定し、キー自体は入力しないでください。ローカルの場合は空欄にできます。削除前に役割を別のプロバイダーに割り当ててください。`,entry:`プロバイダー {{index}}`,id:`プロバイダー ID`,kind:`接続方式`,cli:`インストール済みの開発 CLI`,compatible:`OpenAI 互換エンドポイント`,command:`開発 CLI`,baseUrl:`API ベース URL`,apiKeyEnv:`API キーの環境変数(任意)`,remove:`プロバイダーを削除`,addCli:`CLI プロバイダーを追加`,addLocal:`ローカル / API プロバイダーを追加`,show:`プロバイダー接続を表示`,hide:`プロバイダー接続を隠す`,globalTitle:`AI プロバイダー`,globalHint:`各プロジェクトは 2 種類のプロバイダーで動きます。このマシンで検出されたコーディング CLI と、ここで登録するローカルの OpenAI 互換エンジンです。プロジェクト設定 ▸ エージェントエンジンでパイプラインの各フェーズに割り当てます。変更は新しい実行に適用されます。`,label:`表示名(任意)`,labelPlaceholder:`例: LAN マシン`,defaultModel:`既定のモデル`,defaultModelNone:`既定なし(最初に検出したもの)`,defaultModelPlaceholder:`モデル ID またはカスタムエイリアス`,customModel:`カスタムエイリアス…`,discoveredModels:`検出されたモデル`,noModels:`まだモデルが検出されていません。接続をテストしてください。`,rates:`料金(100 万トークンあたり USD、任意)`,ratesHint:`コストは概算として表示されます。両方を空にするとコストは不明のままです。`,inputRate:`入力 / 100 万`,outputRate:`出力 / 100 万`,ratesInvalid:`両方の料金を 0 以上の数値で入力するか、両方を空にしてください。`,reasoningEffort:`エンドポイントが推論の強さに対応`,reasoningEffortHint:`OpenAI の reasoning_effort フィールドを送信します。各呼び出しではロールに設定した強さを、コンパクトアーキテクトが計画を書く間は high に引き上げます。サーバーが対応していない場合はオフのままにしてください。`,apiKeyEnvMissing:`{{name}} はアプリのプロセスに設定されていません。アプリを起動する環境で設定してください。`,test:`接続をテスト`,testing:`テスト中…`,testFailed:`接続をテストできませんでした。`,rename:`名前を変更`,renameHint:`名前を変更してもロールの割り当てはこの接続を指したままです。`,idLocked:`保存後は ID がロックされます。変更するには「名前を変更」を使ってください。`,localBadge:`ローカルエンジン`,cliBadge:`CLI`,notDetected:`このマシンでは検出されていません`,unsaved:`未保存の変更`,empty:`接続はまだありません。ローカル / API プロバイダーを追加して始めましょう。`,fixBeforeSave:`保存する前にハイライトされた項目を修正してください。`,status:{probing:`確認中…`,reachable:`到達可能`,unauthorized:`未認可`,unreachable:`到達不可`,untested:`未テスト`},auth:{authenticated:`サインイン済み`,unauthenticated:`未サインイン`,unknown:`サインイン状態不明`},agentLoop:`エージェントループ`,agentLoopHint:`implement パイプラインがこのモデルを動かす方法`,agentLoop_compact:`コンパクト`,agentLoop_compactHint:`アプリ主導のマイクロステップと構造化出力。約 30B 未満のモデルに推奨。`,agentLoop_free:`フリー`,agentLoop_freeHint:`ロールごとに 1 つのエージェントループ。CLI プロバイダーと同じ。強力なモデルが必要。`,contextWindow:`コンテキストウィンドウ(トークン)`,contextWindowHint:`サーバーのコンテキストサイズ(n_ctx / num_ctx)に合わせてください。ウィンドウが埋まる前に古いツール結果を圧縮するために使います。既定 32768。`,maxOutput:`ターンあたりの出力予算(トークン)`,maxOutputHint:`ツールターン1回の max_tokens。途中で切れたターンは2倍で1回だけ再試行します。コンテキストウィンドウ内で数えられるため、常に残り容量で上限が決まります。モデルが内部で思考する場合(thinking はこの予算を消費します)は増やしてください。既定値 8192。`,reasoningEffortRailHint:`オフの場合、このエンジンではレールのヘッダーに推論の強さセレクターが表示されません。`,presetTitle:`クイック設定`,presetSmallModel:`小型モデル向け推奨`,presetSmallModelApplied:`小型モデル用プリセットを適用済み`,presetSmallModelHint:`コンパクトループを有効にし、推論の強さを転送し、32k のコンテキストウィンドウを設定します。7–14B モデルで検証済みの組み合わせです。各項目は後から変更できます。`,cliGroup:`CLI ツール`,cliGroupHint:`このマシンで検出済み。各自のログインを使うため設定は不要です。`,localGroup:`ローカルエンジン`,localGroupHint:`このアプリから到達できる OpenAI 互換エンドポイント(llama.cpp、Ollama、vLLM、LM Studio など)。`,models_one:`{{count}} モデル`,models_other:`{{count}} モデル`,expand:`設定を表示`,collapse:`設定を隠す`,overflow:`その他の操作`,addLocalHero:`ローカルエンジンを追加`,emptyLocalPitch:`ローカルエンジンはまだありません。OpenAI 互換エンドポイントを指定すると、自分のハードウェアでパイプラインを実行できます。コストは自分で管理でき、データはネットワークの外に出ません。`,defaultsGroup:`プロバイダーの既定値`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`設計担当`,developer:`開発担当`,reviewer:`レビュー担当`,fixer:`フィクサー`,verify:`検証`,archive:`完了`},m={title:`役割の割り当て`,hint:`各ロールで異なるプロバイダーとモデルを使用できます。接続は一般設定 → AI プロバイダーで管理します。既定の上限はエージェントごとに{{turns}}ターンです。`,provider:`プロバイダー`,model:`モデル`,modelPlaceholder:`モデル ID または CLI の既定値`,maxTurns:`最大ターン数(既定 {{turns}})`,defaultModel:`既定({{model}})`,thinking:`非表示の思考`,thinking_off:`オフ`,thinking_on:`オン`,thinkingHint:`既定はオフ:ホスト駆動のループでは、隠れた推論が出力予算とターンごとの時間を消費します。熟考が有効なロールでのみオンにしてください(chat_template_kwargs.enable_thinking として送信され、未対応のエンドポイントでは無視されます)。`},h={title:`ワークフローの制限`,hint:`空欄は Core の既定値を使います:修正試行 {{attempts}} 回、ロールステップごとに {{minutes}} 分。ローカルエンジンではタイムアウトは作業単位ごと(タスクグループ、成果物、レビュー)に適用され、既定 45 分に加えて 20 分のアイドル監視があります。時間切れのステップは実行をブロックし、次の未完了タスクグループから再開できます。トークン/USD の上限は任意で、USD 上限はすべての AI ロールに Claude が必要です。`,maxAttempts:`デベロッパーの最大試行回数(既定 {{attempts}})`,timeoutMinutes:`タイムアウト(分。既定 {{minutes}}、ローカルエンジンはタスクグループごとに 45)`,maxTokens:`最大トークン数`,maxCostUsd:`最大コスト(USD)`,unlimited:`制限なし`},g={title:`検証コマンド`,hint:`任意。デベロッパー完了後に実行され、失敗はデベロッパーに戻されます。空のままなら、毎回アーキテクトがプロジェクト自身のチェックを提案します。自動チェックのないリポジトリもレビューされます。`,detect:`プロジェクトのチェックを検出`,detecting:`検出中…`,detected:`このプロジェクトが定義済みのチェックで埋めました。`,nothingDetected:`テスト・型チェック・ビルドのコマンドは見つかりませんでした。問題ありません。可能な場合はアーキテクトが実行時にチェックを提案します。`,detectFailed:`プロジェクトのリポジトリを調べられませんでした。`,repository:`リポジトリ`,command:`コマンド`,reason:`{{reason}} から検出`,remove:`削除`,add:`コマンドを追加`,invalidLine:`検証コマンドが空か、引用符が閉じていません: {{line}}`,label:`チェック名(任意)`,moveUp:`上へ`,moveDown:`下へ`},_={title:`保存された実行`,refresh:`更新`,hint:`元のワークツリーで保存された範囲と設定を使って続行し、進行状況はそのジョブのログに表示されます。公開や Desktop の配信再開は行いません。実行中のレールはジョブの操作から停止してください。`,empty:`保存された実行はありません。`,loadFailed:`保存された実行を読み込めませんでした。`,actionFailed:`この実行を更新できませんでした。`,phase:`次のフェーズ: {{phase}}`,approve:`完了を承認`,recover:`中断したフェーズを復旧`,resume:`再開`,cancel:`続行をキャンセル`,status:{running:`続行中…`,succeeded:`成功`,failed:`失敗`,blocked:`ブロック中`,paused:`一時停止`,cancelled:`キャンセル済み`,interrupted:`中断`,unavailable:`利用不可`,expired:`期限切れ`},question:`アーキテクトからの質問:`,answerLabel:`あなたの回答`,answerPlaceholder:`質問に回答すると、アーキテクトはそれをもとに続行します。`,answer:`回答して再開`,viewLog:`ジョブログを表示`,implementation:`実装`,preserveProgress:`表示されたフェーズから、既存の作業と保存済み設定を保持して続行します。`,reviewDelivery:`実装が完了しました。引き渡しの前にジョブログで結果を確認してください。この続行では公開していません。`,prepareDelivery:`引き渡しを準備`,dismiss:`閉じる`,selectRecovery:`復旧する中断された試行を選択`},v={architect:`コードを読み、提案・設計・タスク・仕様を書きます。読み取り専用。`,developer:`タスクをテスト付きで実装します。CLI のサンドボックス内でファイル編集とコマンド実行ができます。`,reviewer:`仕様と検証結果に照らして成果を確認します。読み取り専用。`},y={title:`レビュー基準`,hint:`空欄は Core の基準を使います。値は基準を厳しくする方向にのみ設定できます: 総合スコア {{score}} 以上、セキュリティ {{security}} 以上、その他の観点 {{aspect}} 以上。`,minScore:`最低総合スコア(既定 {{score}})`,aspects:{type_correctness:`型の正確さ(既定 {{score}})`,pattern_adherence:`パターン準拠(既定 {{score}})`,test_coverage:`テストカバレッジ(既定 {{score}})`,security:`セキュリティ(既定 {{score}})`,architectural_alignment:`アーキテクチャ整合性(既定 {{score}})`}},b={title:`アーキテクトの確信度`,hint:`自律的な調査を1回行っても確信度が低い設計は、アーキテクトの質問で一時停止するか、明示した前提のもとで続行します。`,onLowConfidence:`確信度が低いとき`,ask:`質問する(質問で一時停止)`,proceed:`明示した前提で続行`},x={title:`使用量と時間`,hint:`修正と失敗した呼び出しを含みます。エージェント時間にはツールの実行時間を含みます。キャッシュトークンは入力トークンの一部です。`,unknown:`取得不可`,duration:`実行時間`,agentTime:`エージェント時間`,cost:`報告された費用`,providerCalls:`エージェント呼び出し`,toolCalls:`ツール呼び出し`,input:`入力トークン`,output:`出力トークン`,uncached:`キャッシュなしの入力`,cacheRead:`キャッシュ読み取り`,cacheWrite:`キャッシュ書き込み`,partial:`一部の試行には詳細な計測値がありません。`,phases:`フェーズ別使用量`,phase:`フェーズ`,attempts:`試行回数`},S={title:`エージェントのロール別プロンプト`,description:`各ロールの指示を表示・編集します。すべてのプロジェクトとプロバイダーで共有され、変更は新しいジョブに適用されます。再開したジョブは元のプロンプトを使用します。`,definition:`{{role}}の定義`,default:`初期設定`,custom:`カスタマイズ済み`,restore:`初期設定に戻す`,contracts:`Spec のコンテキスト、OpenSpec ワークフロー、必須の応答形式は自動的に追加されるため、ここでは編集できません。`,invalid:`各定義は 1~20,000 文字で、空白以外のテキストを含み、ヌルバイトを含まない必要があります。`,saved:`ロール別プロンプトを保存しました`,unsaved:`未保存の変更`,discard:`変更を破棄`,save:`プロンプトを保存`,fixerHint:`修正ラウンドでのみ使用されます(検証失敗またはレビュー却下の後)。設定 ▸ エージェントエンジン ▸ フィクサーで独自エンジンを指定しない限り、開発者のエンジンで実行されます。開発者セッションを再開する CLI プロバイダーには短い修正フォローアップが送られます。新しいセッションが始まるとき(ローカルエンジン、フィクサーエンジン、セッション喪失時)にこの定義が適用されます。`},C={title:`実装の効率`,scope:`新しい実行に適用されます。保存済みの実行は元の設定とランタイムを維持します。`,effort:`推論の強度`,providerDefault:`プロバイダーの既定値`,unconfirmed:`未確認`,unknownSupport:`このモデルと通信方式の対応状況は未確認です。`,escalation:`同じプロバイダーの上位モデルを1段階許可`,baseRequired:`まず基本モデルを明示的に選択してください。`,escalationModel:`上位モデル`,triggers:{architect:`既存の追加調査のみがこの段階を選択できます。`,developer:`候補が2回失敗した後、次の許可された試行で選択できます。`,reviewer:`不正な形式の応答の修復のみ。コードの却下では昇格しません。`,fixer:`この段階に到達できるのは修正ラウンドのみで、初回の実装ではフィクサーは実行されません。`},contextMode:`リポジトリのコンテキスト`,reviewMode:`修正のレビュー`,planning:`計画の深さ`,adaptive:`適応型`,full:`完全`,developerChecks:`開発者が提案する追加チェックを許可`,concurrency:`同時チェック数の上限`,concurrencyHint:`既定値は1。ホストが独立と宣言した異なるリポジトリのチェックのみ並行実行できます。既定では再利用しません。`,checkCapabilities:`モデルの互換性を確認`,capabilitiesFailed:`互換性を確認できません。対応するCoreを更新するか、既定値を維持してください。`},w={title:`検証の証拠`,acceptance:`技術的な受け入れ`,acceptanceStatus:{pending:`保留中`,validated:`検証済み`,"with-exceptions":`例外あり`,blocked:`ブロック済み`},calls:`エージェント呼び出し`,executed:`実行したチェック`,reused:`再利用したチェック`,unknown:`利用不可`,unavailable:`証拠は利用できません。記録された結果は現在の有効性を保証しません。`,current:`現在の候補と計画`,historical:`過去の結果`,moreChecks:`その他のチェック`,output:`検証出力`,empty:`出力なし`,truncated:`制限されたページまたは切り詰められた記録です。`,nextPage:`次の出力ページ`,status:{passed:`成功`,failed:`失敗`,cancelled:`キャンセル`,interrupted:`中断`},disposition:{executed:`実行済み`,reused:`再利用`,"not-run":`未実行`},origin:`出所`,origins:{host:`ホスト`,architect:`アーキテクト`,developer:`開発者`,"frozen-runtime-config":`保存済み設定`,"project-role":`プロジェクトの役割`,default:`既定`,"explicit-launch-override":`この実行で選択したプロバイダー`,"loop-role":`ループのロール`},reuseDisabled:`このチェックの再利用は無効です。`,reuseConfirmed:`入力とツールの一致を確認して再利用しました。`,inputsChanged:`検証中に入力が変化したため、結果は無効です。`,reuseUnproven:`入力の一致を証明できる有効な結果がないため、再実行しました。`,original:`元の実行`,requested:`要求値`,reported:`報告値`},T={title:`ループロール`,hint:`レールを「ロール別」エンジンで起動したときにループ側のロールが使うエンジンです。上のパイプラインロール(architect・developer・reviewer)はすでにこのランタイム設定から決まります。`,verifier:`検証者`,verifierHint:`ループ内のコア以外のすべての AI ステップ:verify、fix、カスタム AI ステップ。`,decider:`決定者`,deciderHint:`判定を読んで次のステップを決める Loop Decider です。安価で高速なモデルが自然な選択です。`,inherit:`プライマリを継承`,model:`モデル`,effort:`推論の深さ`,disabled:`エージェントランタイムが無効です。有効にするまで「ロール別」エンジンでのレール起動は拒否されます。`,saveFailed:`ループロールを保存できませんでした。`},E={title:`実装パイプライン`,explainer:`各実装ではこれらのフェーズがこの順序で実行されます。レールのエンジンが「{{roles}}」の場合、各フェーズは下で設定したエンジンで実行されます。フェーズごとに異なるプロバイダー、モデル、推論強度を指定できます。レールで特定のエンジンを選ぶと、すべてのフェーズがそのエンジンで実行されます。`,host:`ホスト`,noCommand:`コマンドなし`,inherits:`プライマリを継承`,inheritsDeveloper:`開発者を継承`,open:`開く`,collapse:`折りたたむ`,groups:{core:{title:`コアパイプライン`,hint:`すべての実装内で実行:計画、構築、検証、修正、レビュー。`},loop:{title:`ループステップ`,hint:`実行を包むレールのループ(検証 → 判定 → 修正)とカスタムループの AI ステップ。未設定の場合はプライマリエンジンを継承します。`,chip:`レールループ`}},phases:{architect:{name:`アーキテクト`,purpose:`コードを読み、提案・設計・タスクを書きます。`},developer:{name:`デベロッパー`,purpose:`テスト付きでタスクを実装します。`},verification:{name:`検証`,purpose:`ホストがチェックを実行し、失敗はデベロッパーに戻ります。`},fixer:{name:`フィクサー`,purpose:`検証やレビューで却下された内容を修正します。未設定の場合は開発者を継承します。`},reviewer:{name:`レビュアー`,purpose:`仕様と証拠に照らして結果を確認します。`},verifier:{name:`ベリファイア`,purpose:`ループの verify・fix・カスタム AI ステップ。`},decider:{name:`ディサイダー`,purpose:`判定を読み、ループの次のステップを決めます。`}}},D={title:`フィクサーのエンジン`,inherit:`開発者を継承`,own:`専用エンジン`,hint:`修正ラウンドでのみ実行されます(検証失敗またはレビュー却下の後)。初回の実装は開発者が担当します。開発者が安価なローカルモデルの場合、ここに強力なモデルやクラウドモデルを設定すると効果的です。`},O={title:`ガードレール`,intro:`小さなモデルが脱線しないよう、ホストがローカルモデルの周囲に適用するプロセスルールです。既定ではすべて有効。プロセスを調整する場合にのみ個別に無効化してください。CLI プロバイダーには影響しません。`,unsupported:`この Core には設定可能なガードレールがありません。調整するには Core を更新してください。組み込みルールは引き続き適用されます。`,active:`{{total}} 件中 {{on}} 件が有効`,reset:`既定に戻す`,phases:{architect:`アーキテクト`,developer:`開発者`,host:`ホスト`},unknown:`新しい Core で追加されたガードレールです。このアプリにはまだ説明がありません。`,items:{"plan-validation":{title:`検証済みのタスク計画`,description:`openspec/ を対象にする、ファイル名だけをタスクとして列挙する、仕様に対してタスク/グループが少なすぎる、受け入れ基準が未カバーな計画を拒否し、アーキテクトが再試行します。`,why:`曖昧または不完全な計画は、小さな開発者モデルがスタブを書く最大の原因です。`},"genuine-blocking-question":{title:`本当にブロックする質問のみ`,description:`アーキテクトは「?」で終わる実際の質問でのみ実行を一時停止でき、コピーした例文では停止できません。`,why:`小さなモデルはプロンプトのプレースホルダーをそのまま返し、すべての実行をブロックしてしまいます。`},"plan-language-hint":{title:`リポジトリの言語で計画する`,description:`アーキテクトに主要言語を伝え、タスクのファイル名が正しい拡張子を持つようにします。`,why:`TypeScript リポジトリに JS の計画を立てるとタスクを完了扱いにできません。`},"frozen-plan-writes":{title:`計画成果物は凍結`,description:`開発者は openspec/ 配下に書き込めません。計画はホストのものです。`,why:`モデルはコードではなく計画を編集して「実装」しがちです。`},"primary-language":{title:`主要言語のリマインダー`,description:`各タスクグループにリポジトリの主要言語を伝えます。新規ファイルはその言語を使うべきです。`,why:`別の言語による二重実装を防ぎます。`},"duplicate-sibling":{title:`言語をまたぐ双子モジュールを禁止`,description:`board.ts が既にある場合 board.js を拒否し、既存モジュールを拡張させます。`,why:`双子は両方コンパイルされ、テストが誤った方を import します。`},"one-test-per-module":{title:`モジュールごとにテストファイルは 1 つ`,description:`board.test.ts がある場合 board.tick.test.ts を拒否し、既存を拡張させます。`,why:`そうしないと修正のたびに新しいスイートが増えます。`},"empty-write":{title:`空の上書きを禁止`,description:`内容のあるファイルへの空の書き込みを拒否します。全内容を書くかパッチを当ててください。`,why:`「クリーンアップ」で index.ts が 0 行になったことがあります。`},"evidence-gated-ticking":{title:`証拠があってからタスクを完了にする`,description:`ファイルを指すタスクは、そのファイルが存在しスタブでない場合のみ完了です(類似拡張子は許容)。`,why:`これがないと「完了」は主張にすぎず、検証は何も対象にできません。`},"inventory-retry":{title:`実際のインベントリで再試行`,description:`モデルがリポジトリが空だと主張して諦めたが実際は空でない場合、ファイル一覧付きで一度再試行します。`,why:`失敗したステップの代わりに安価な二度目のチャンスを与えます。`},"synthetic-corrections":{title:`フィードバックをタスクに変換`,description:`すべてのタスクが完了なのにレビュー/検証が失敗した場合、フィードバックを具体的な修正タスクにします。`,why:`そうしないと開発者は「完了済み」と報告し、何も変わりません。`},"silent-group-closure":{title:`沈黙したグループを閉じ、ファイルは保持`,description:`モデルが応答しなくなったグループは、書き込んだファイルを計上しタスクは未完了のまま閉じ、実行を失敗させません。`,why:`9B モデルが 5 モジュールを書いた後に沈黙し、実行全体が失敗したことがあります。`},"environment-repair":{title:`ホストが環境を修復`,description:`不足する依存関係やテストツール(npm install、ts-jest、@types/jest、Jest 設定モジュール)をホストがインストールし、検証を一度再実行します。`,why:`モデルは環境を直せず、試行に修正回数を浪費します。`},"lockfile-repair":{title:`手書きのロックファイルを破棄`,description:`モデルが捏造した package-lock.json(EINTEGRITY/ETARGET)を削除し、インストールを一度再試行します。`,why:`捏造されたハッシュは決してインストールできません。`},"verify-idle-timeout":{title:`ハングしたテストを停止`,description:`5 分間出力のない検証コマンドを停止し、ハングの疑いとして報告します(最後の出力を含む)。`,why:`そうしないとテスト内の while ループが 15 分の上限まで実行を占有します。`},"verify-per-group":{title:`グループごとに検証`,description:`各タスクグループの直後にリポジトリのテストコマンドを実行し、失敗した場合はグループの文脈が新しいうちにその場で1回修正します。`,why:`最後に5つの壊れたスイートを直すより、1つずつ直す方がはるかに簡単です。`},"test-reachability":{title:`新しいテストは必ず実行されること`,description:"開発者が書いたのにリポジトリのテストコマンドが一度も実行しないテストファイル(ファイルを列挙する `test` スクリプトが新ファイルを漏らした場合)は、該当ファイル名を示して検証を失敗させます。まずグループ単位で、次にホスト検証で再確認します。",why:`6件の失敗を含む622行のスイートが、一度も実行されなかったためにグリーンのまま出荷されたことがあります。`},"exit-code-honesty":{title:`失敗を報告する終了コード 0 を信用しない`,description:'検証コマンドが 0 で終了しても出力に失敗(`FAIL:` 行、"3 failed"、AssertionError)が含まれる場合は失敗として扱い、テストハーネス自体を欠陥として指摘してフィクサーに渡します。',why:`非ゼロの終了コードを設定しない自作テストランナーが、3 件の失敗テストを成功として出荷したことがあります。`}}},k=`未保存の変更`,A={title:`カスタムロール`,hint:`ワークフローのロールに再利用可能な指示と明示的な権限を設定します。`,unsupported:`カスタムロールを編集するには Core を更新してください。`,remove:`{{id}} を削除`,access:`ソースコードへのアクセス`,read:`読み取りのみ`,write:`読み取りと書き込み`,artifacts:`OpenSpec 成果物へのアクセス`,none:`なし`,tasks:`タスクのチェックボックスのみ`,all:`変更のすべての成果物`,skill:`OpenSpec スキル`,noSkill:`スキルの関連付けなし`,prompt:`ロールへの指示`,id:`ロール ID`,add:`ロールを追加`,invalidId:`英字で始まる一意の小文字 ID を入力してください。英小文字・数字・ハイフンを64文字まで使用できます。組み込み ID は予約済みです。`,escalationHint:`許可されたプロトコル修正でのみ上位モデルを使用できます。再試行回数は増えません。`},j={title:`実行への指示`,hint:`Core は、対応する次のエージェントのターンのために指示を保存します。送信しても質問への回答や承認にはなりません。`,label:`追加の指示`,send:`指示を送信`,accepted:`Core が受信しました。エージェントでの使用を待っています。`,pending:`エージェントのターン待ち`,consumed:`エージェントが使用済み`,counts:`待機中: {{pending}} · 使用済み: {{consumed}}`,failed:`指示を送信できませんでした。同じメッセージを確認するには再試行してください。`,unavailable:`受信記録の詳細を取得できません。`,unreported:`このバージョンの Core は使用状況を報告しません。`,truncated:`最近の受信記録と待機中のメッセージのみ表示しています。`},M={title:`Core ロールの既定値`,hint:`このファイルの既定値は新しいワークフローに適用されます。プロジェクトの明示的な設定が優先され、保存済みの実行は固定された設定を保持します。`,invalid:`ロールの項目を変更する前に、エディターで YAML ヘッダーを修正してください。`,escalationEffort:`上位モデルの推論レベル`},N={title:`履歴の保持`,description:`期限切れの実行履歴と未使用の Core バージョンを削除します。削除した履歴は再開や分岐ができません。実行中・復旧可能な実行や未完了の配信は保護され、ジョブログと費用記録は保持されます。`,forever:`履歴を無期限に保持`,days:`保持日数`,save:`保持設定を保存`,preview:`削除対象を確認`,collect:`期限切れの履歴を削除`,previewSummary:`対象:履歴 {{runs}} 件、未使用の Core バージョン {{packages}} 件。`,collectedSummary:`期限切れ:履歴 {{runs}} 件。削除済み:未使用の Core バージョン {{packages}} 件。`,more:`ほか {{count}} 件の実行。`,failed:`保持設定を確認または更新できませんでした。`,expired:`この実行履歴はプロジェクトの保持方針により期限切れになりました。ジョブログと費用記録は引き続き利用できます。`,loading:`保持方針を読み込み中…`,states:{protected:`保持`,eligible:`対象`,expired:`期限切れ`,cleanup_pending:`削除待ち`,busy:`使用中`,error:`確認失敗`},reasons:{disabled:`無期限保持`,recoverable:`復旧可能`,active:`実行中`,human_pending:`人による回答待ち`,interrupted_writes:`中断した書き込みの確認が必要`,delivery_pending:`配信待ち`,fork_pending:`依存する分岐が残っています`,unknown_terminal_time:`完了日時が不明`,within_retention:`保持期間内`}},P={title:`Loop agents`,hint:`These definitions are shared by every project using this loop. Duplicate the loop to customize a separate workflow.`,legacy:`This saved loop still uses historical project agents. Import them or enable loop agents before changing its configuration.`,enable:`Use loop agents`,import:`Import current project agents`,restoreDefinition:`Restore default definition`,default:`Provider default`,effort:`Reasoning effort`,escalationModel:`Escalation model`,escalationEffort:`Escalation effort`,policy:`Workflow policy`,maxAttempts:`Maximum correction attempts`,maxTokens:`Token budget`,maxCostUsd:`Cost budget (USD)`,timeoutMs:`Run timeout (ms)`,projectHint:`Configure repository checks here. Agent definitions, models and workflow policy are configured in the loop editor. Historical project agents can be imported into a duplicated loop.`,showUnused:`Also show agents not used in this loop`,stepTitle:`Step agent and options`,stepHint:`Edit this step’s agent definition and engine. Steps using the same role in this loop share these settings.`,inheritProvider:`ミッションのプロバイダーを継承`},F={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w,loopRoles:T,pipeline:E,fixer:D,guardrails:O,unsavedChanges:k,customRoles:A,steering:j,studioRole:M,retention:N,loopAgents:P};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,A as customRoles,F as default,t as description,C as efficiency,w as evidence,D as fixer,O as guardrails,h as limits,r as loadFailed,n as loading,P as loopAgents,T as loopRoles,x as metrics,E as pipeline,S as prompts,d as providers,N as retention,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,j as steering,M as studioRole,e as title,a as unavailable,k as unsavedChanges,g as verification};
|
|
1
|
+
var e=`エージェント実行エンジン`,t=`アーキテクト、デベロッパー、レビュアーが別々のフェーズとして実行され、その間に決定的な検証が入ります。役割ごとにプロバイダーを選ぶだけで、他はそのまま動く既定値です。`,n=`実行設定を読み込み中…`,r=`実行設定を読み込めませんでした。変更する前に再試行してください。`,i=`再試行`,a=`この Core にはエージェント実行エンジンが含まれていません。有効にする前に Core を更新してください。無効な状態で設定を準備できます。`,o=`実行設定を保存`,s=`保存中…`,c=`実行設定を保存しました`,l=`実行設定を保存できませんでした。`,u=`ワークフロー完了前に承認を待つ`,d={title:`プロバイダー`,hint:`CLI は既存のログインを使用します。API には環境変数名のみを指定し、キー自体は入力しないでください。ローカルの場合は空欄にできます。削除前に役割を別のプロバイダーに割り当ててください。`,entry:`プロバイダー {{index}}`,id:`プロバイダー ID`,kind:`接続方式`,cli:`インストール済みの開発 CLI`,compatible:`OpenAI 互換エンドポイント`,command:`開発 CLI`,baseUrl:`API ベース URL`,apiKeyEnv:`API キーの環境変数(任意)`,remove:`プロバイダーを削除`,addCli:`CLI プロバイダーを追加`,addLocal:`ローカル / API プロバイダーを追加`,show:`プロバイダー接続を表示`,hide:`プロバイダー接続を隠す`,globalTitle:`AI プロバイダー`,globalHint:`各プロジェクトは 2 種類のプロバイダーで動きます。このマシンで検出されたコーディング CLI と、ここで登録するローカルの OpenAI 互換エンジンです。プロジェクト設定 ▸ エージェントエンジンでパイプラインの各フェーズに割り当てます。変更は新しい実行に適用されます。`,label:`表示名(任意)`,labelPlaceholder:`例: LAN マシン`,defaultModel:`既定のモデル`,defaultModelNone:`既定なし(最初に検出したもの)`,defaultModelPlaceholder:`モデル ID またはカスタムエイリアス`,customModel:`カスタムエイリアス…`,discoveredModels:`検出されたモデル`,noModels:`まだモデルが検出されていません。接続をテストしてください。`,rates:`料金(100 万トークンあたり USD、任意)`,ratesHint:`コストは概算として表示されます。両方を空にするとコストは不明のままです。`,inputRate:`入力 / 100 万`,outputRate:`出力 / 100 万`,ratesInvalid:`両方の料金を 0 以上の数値で入力するか、両方を空にしてください。`,reasoningEffort:`エンドポイントが推論の強さに対応`,reasoningEffortHint:`OpenAI の reasoning_effort フィールドを送信します。各呼び出しではロールに設定した強さを、コンパクトアーキテクトが計画を書く間は high に引き上げます。サーバーが対応していない場合はオフのままにしてください。`,apiKeyEnvMissing:`{{name}} はアプリのプロセスに設定されていません。アプリを起動する環境で設定してください。`,test:`接続をテスト`,testing:`テスト中…`,testFailed:`接続をテストできませんでした。`,rename:`名前を変更`,renameHint:`名前を変更してもロールの割り当てはこの接続を指したままです。`,idLocked:`保存後は ID がロックされます。変更するには「名前を変更」を使ってください。`,localBadge:`ローカルエンジン`,cliBadge:`CLI`,notDetected:`このマシンでは検出されていません`,unsaved:`未保存の変更`,empty:`接続はまだありません。ローカル / API プロバイダーを追加して始めましょう。`,fixBeforeSave:`保存する前にハイライトされた項目を修正してください。`,status:{probing:`確認中…`,reachable:`到達可能`,unauthorized:`未認可`,unreachable:`到達不可`,untested:`未テスト`},auth:{authenticated:`サインイン済み`,unauthenticated:`未サインイン`,unknown:`サインイン状態不明`},agentLoop:`エージェントループ`,agentLoopHint:`implement パイプラインがこのモデルを動かす方法`,agentLoop_compact:`コンパクト`,agentLoop_compactHint:`アプリ主導のマイクロステップと構造化出力。約 30B 未満のモデルに推奨。`,agentLoop_free:`フリー`,agentLoop_freeHint:`ロールごとに 1 つのエージェントループ。CLI プロバイダーと同じ。強力なモデルが必要。`,contextWindow:`コンテキストウィンドウ(トークン)`,contextWindowHint:`サーバーのコンテキストサイズ(n_ctx / num_ctx)に合わせてください。ウィンドウが埋まる前に古いツール結果を圧縮するために使います。既定 32768。`,maxOutput:`ターンあたりの出力予算(トークン)`,maxOutputHint:`ツールターン1回の max_tokens。途中で切れたターンは2倍で1回だけ再試行します。コンテキストウィンドウ内で数えられるため、常に残り容量で上限が決まります。モデルが内部で思考する場合(thinking はこの予算を消費します)は増やしてください。既定値 8192。`,reasoningEffortRailHint:`オフの場合、このエンジンではレールのヘッダーに推論の強さセレクターが表示されません。`,presetTitle:`クイック設定`,presetSmallModel:`小型モデル向け推奨`,presetSmallModelApplied:`小型モデル用プリセットを適用済み`,presetSmallModelHint:`コンパクトループを有効にし、推論の強さを転送し、32k のコンテキストウィンドウを設定します。7–14B モデルで検証済みの組み合わせです。各項目は後から変更できます。`,cliGroup:`CLI ツール`,cliGroupHint:`このマシンで検出済み。各自のログインを使うため設定は不要です。`,localGroup:`ローカルエンジン`,localGroupHint:`このアプリから到達できる OpenAI 互換エンドポイント(llama.cpp、Ollama、vLLM、LM Studio など)。`,models_one:`{{count}} モデル`,models_other:`{{count}} モデル`,expand:`設定を表示`,collapse:`設定を隠す`,overflow:`その他の操作`,addLocalHero:`ローカルエンジンを追加`,emptyLocalPitch:`ローカルエンジンはまだありません。OpenAI 互換エンドポイントを指定すると、自分のハードウェアでパイプラインを実行できます。コストは自分で管理でき、データはネットワークの外に出ません。`,defaultsGroup:`プロバイダーの既定値`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`設計担当`,developer:`開発担当`,reviewer:`レビュー担当`,fixer:`フィクサー`,verify:`検証`,archive:`完了`},m={title:`役割の割り当て`,hint:`各ロールで異なるプロバイダーとモデルを使用できます。接続は一般設定 → AI プロバイダーで管理します。既定の上限はエージェントごとに{{turns}}ターンです。`,provider:`プロバイダー`,model:`モデル`,modelPlaceholder:`モデル ID または CLI の既定値`,maxTurns:`最大ターン数(既定 {{turns}})`,defaultModel:`既定({{model}})`,thinking:`非表示の思考`,thinking_off:`オフ`,thinking_on:`オン`,thinkingHint:`既定はオフ:ホスト駆動のループでは、隠れた推論が出力予算とターンごとの時間を消費します。熟考が有効なロールでのみオンにしてください(chat_template_kwargs.enable_thinking として送信され、未対応のエンドポイントでは無視されます)。`},h={title:`ワークフローの制限`,hint:`空欄は Core の既定値を使います:修正試行 {{attempts}} 回、ロールステップごとに {{minutes}} 分。ローカルエンジンではタイムアウトは作業単位ごと(タスクグループ、成果物、レビュー)に適用され、既定 45 分に加えて 20 分のアイドル監視があります。時間切れのステップは実行をブロックし、次の未完了タスクグループから再開できます。トークン/USD の上限は任意で、USD 上限はすべての AI ロールに Claude が必要です。`,maxAttempts:`デベロッパーの最大試行回数(既定 {{attempts}})`,timeoutMinutes:`タイムアウト(分。既定 {{minutes}}、ローカルエンジンはタスクグループごとに 45)`,maxTokens:`最大トークン数`,maxCostUsd:`最大コスト(USD)`,unlimited:`制限なし`},g={title:`検証コマンド`,hint:`任意。デベロッパー完了後に実行され、失敗はデベロッパーに戻されます。空のままなら、毎回アーキテクトがプロジェクト自身のチェックを提案します。自動チェックのないリポジトリもレビューされます。`,detect:`プロジェクトのチェックを検出`,detecting:`検出中…`,detected:`このプロジェクトが定義済みのチェックで埋めました。`,nothingDetected:`テスト・型チェック・ビルドのコマンドは見つかりませんでした。問題ありません。可能な場合はアーキテクトが実行時にチェックを提案します。`,detectFailed:`プロジェクトのリポジトリを調べられませんでした。`,repository:`リポジトリ`,command:`コマンド`,reason:`{{reason}} から検出`,remove:`削除`,add:`コマンドを追加`,invalidLine:`検証コマンドが空か、引用符が閉じていません: {{line}}`,label:`チェック名(任意)`,moveUp:`上へ`,moveDown:`下へ`},_={title:`保存された実行`,refresh:`更新`,hint:`元のワークツリーで保存された範囲と設定を使って続行し、進行状況はそのジョブのログに表示されます。公開や Desktop の配信再開は行いません。実行中のレールはジョブの操作から停止してください。`,empty:`保存された実行はありません。`,loadFailed:`保存された実行を読み込めませんでした。`,actionFailed:`この実行を更新できませんでした。`,phase:`次のフェーズ: {{phase}}`,approve:`完了を承認`,recover:`中断したフェーズを復旧`,resume:`再開`,cancel:`続行をキャンセル`,status:{running:`続行中…`,succeeded:`成功`,failed:`失敗`,blocked:`ブロック中`,paused:`一時停止`,cancelled:`キャンセル済み`,interrupted:`中断`,unavailable:`利用不可`,expired:`期限切れ`},question:`アーキテクトからの質問:`,answerLabel:`あなたの回答`,answerPlaceholder:`質問に回答すると、アーキテクトはそれをもとに続行します。`,answer:`回答して再開`,viewLog:`ジョブログを表示`,implementation:`実装`,preserveProgress:`表示されたフェーズから、既存の作業と保存済み設定を保持して続行します。`,reviewDelivery:`実装が完了しました。引き渡しの前にジョブログで結果を確認してください。この続行では公開していません。`,prepareDelivery:`引き渡しを準備`,dismiss:`閉じる`,selectRecovery:`復旧する中断された試行を選択`},v={architect:`コードを読み、提案・設計・タスク・仕様を書きます。読み取り専用。`,developer:`タスクをテスト付きで実装します。CLI のサンドボックス内でファイル編集とコマンド実行ができます。`,reviewer:`仕様と検証結果に照らして成果を確認します。読み取り専用。`},y={title:`レビュー基準`,hint:`空欄は Core の基準を使います。値は基準を厳しくする方向にのみ設定できます: 総合スコア {{score}} 以上、セキュリティ {{security}} 以上、その他の観点 {{aspect}} 以上。`,minScore:`最低総合スコア(既定 {{score}})`,aspects:{type_correctness:`型の正確さ(既定 {{score}})`,pattern_adherence:`パターン準拠(既定 {{score}})`,test_coverage:`テストカバレッジ(既定 {{score}})`,security:`セキュリティ(既定 {{score}})`,architectural_alignment:`アーキテクチャ整合性(既定 {{score}})`}},b={title:`アーキテクトの確信度`,hint:`自律的な調査を1回行っても確信度が低い設計は、アーキテクトの質問で一時停止するか、明示した前提のもとで続行します。`,onLowConfidence:`確信度が低いとき`,ask:`質問する(質問で一時停止)`,proceed:`明示した前提で続行`},x={title:`使用量と時間`,hint:`修正と失敗した呼び出しを含みます。エージェント時間にはツールの実行時間を含みます。キャッシュトークンは入力トークンの一部です。`,unknown:`取得不可`,duration:`実行時間`,agentTime:`エージェント時間`,cost:`報告された費用`,providerCalls:`エージェント呼び出し`,toolCalls:`ツール呼び出し`,input:`入力トークン`,output:`出力トークン`,uncached:`キャッシュなしの入力`,cacheRead:`キャッシュ読み取り`,cacheWrite:`キャッシュ書き込み`,partial:`一部の試行には詳細な計測値がありません。`,phases:`フェーズ別使用量`,phase:`フェーズ`,attempts:`試行回数`},S={title:`エージェントのロール別プロンプト`,description:`各ロールの指示を表示・編集します。すべてのプロジェクトとプロバイダーで共有され、変更は新しいジョブに適用されます。再開したジョブは元のプロンプトを使用します。`,definition:`{{role}}の定義`,default:`初期設定`,custom:`カスタマイズ済み`,restore:`初期設定に戻す`,contracts:`Spec のコンテキスト、OpenSpec ワークフロー、必須の応答形式は自動的に追加されるため、ここでは編集できません。`,invalid:`各定義は 1~20,000 文字で、空白以外のテキストを含み、ヌルバイトを含まない必要があります。`,saved:`ロール別プロンプトを保存しました`,unsaved:`未保存の変更`,discard:`変更を破棄`,save:`プロンプトを保存`,fixerHint:`修正ラウンドでのみ使用されます(検証失敗またはレビュー却下の後)。設定 ▸ エージェントエンジン ▸ フィクサーで独自エンジンを指定しない限り、開発者のエンジンで実行されます。開発者セッションを再開する CLI プロバイダーには短い修正フォローアップが送られます。新しいセッションが始まるとき(ローカルエンジン、フィクサーエンジン、セッション喪失時)にこの定義が適用されます。`},C={title:`実装の効率`,scope:`新しい実行に適用されます。保存済みの実行は元の設定とランタイムを維持します。`,effort:`推論の強度`,providerDefault:`プロバイダーの既定値`,unconfirmed:`未確認`,unknownSupport:`このモデルと通信方式の対応状況は未確認です。`,escalation:`同じプロバイダーの上位モデルを1段階許可`,baseRequired:`まず基本モデルを明示的に選択してください。`,escalationModel:`上位モデル`,triggers:{architect:`既存の追加調査のみがこの段階を選択できます。`,developer:`候補が2回失敗した後、次の許可された試行で選択できます。`,reviewer:`不正な形式の応答の修復のみ。コードの却下では昇格しません。`,fixer:`この段階に到達できるのは修正ラウンドのみで、初回の実装ではフィクサーは実行されません。`},contextMode:`リポジトリのコンテキスト`,reviewMode:`修正のレビュー`,planning:`計画の深さ`,adaptive:`適応型`,full:`完全`,developerChecks:`開発者が提案する追加チェックを許可`,concurrency:`同時チェック数の上限`,concurrencyHint:`既定値は1。ホストが独立と宣言した異なるリポジトリのチェックのみ並行実行できます。既定では再利用しません。`,checkCapabilities:`モデルの互換性を確認`,capabilitiesFailed:`互換性を確認できません。対応するCoreを更新するか、既定値を維持してください。`},w={title:`検証の証拠`,acceptance:`技術的な受け入れ`,acceptanceStatus:{pending:`保留中`,validated:`検証済み`,"with-exceptions":`例外あり`,blocked:`ブロック済み`},calls:`エージェント呼び出し`,executed:`実行したチェック`,reused:`再利用したチェック`,unknown:`利用不可`,unavailable:`証拠は利用できません。記録された結果は現在の有効性を保証しません。`,current:`現在の候補と計画`,historical:`過去の結果`,moreChecks:`その他のチェック`,output:`検証出力`,empty:`出力なし`,truncated:`制限されたページまたは切り詰められた記録です。`,nextPage:`次の出力ページ`,status:{passed:`成功`,failed:`失敗`,cancelled:`キャンセル`,interrupted:`中断`},disposition:{executed:`実行済み`,reused:`再利用`,"not-run":`未実行`},origin:`出所`,origins:{host:`ホスト`,architect:`アーキテクト`,developer:`開発者`,"frozen-runtime-config":`保存済み設定`,"project-role":`プロジェクトの役割`,default:`既定`,"explicit-launch-override":`この実行で選択したプロバイダー`,"loop-role":`ループのロール`},reuseDisabled:`このチェックの再利用は無効です。`,reuseConfirmed:`入力とツールの一致を確認して再利用しました。`,inputsChanged:`検証中に入力が変化したため、結果は無効です。`,reuseUnproven:`入力の一致を証明できる有効な結果がないため、再実行しました。`,original:`元の実行`,requested:`要求値`,reported:`報告値`},T={title:`ループロール`,hint:`レールを「ロール別」エンジンで起動したときにループ側のロールが使うエンジンです。上のパイプラインロール(architect・developer・reviewer)はすでにこのランタイム設定から決まります。`,verifier:`検証者`,verifierHint:`ループ内のコア以外のすべての AI ステップ:verify、fix、カスタム AI ステップ。`,decider:`決定者`,deciderHint:`判定を読んで次のステップを決める Loop Decider です。安価で高速なモデルが自然な選択です。`,inherit:`プライマリを継承`,model:`モデル`,effort:`推論の深さ`,disabled:`エージェントランタイムが無効です。有効にするまで「ロール別」エンジンでのレール起動は拒否されます。`,saveFailed:`ループロールを保存できませんでした。`},E={title:`実装パイプライン`,explainer:`各実装ではこれらのフェーズがこの順序で実行されます。レールのエンジンが「{{roles}}」の場合、各フェーズは下で設定したエンジンで実行されます。フェーズごとに異なるプロバイダー、モデル、推論強度を指定できます。レールで特定のエンジンを選ぶと、すべてのフェーズがそのエンジンで実行されます。`,host:`ホスト`,noCommand:`コマンドなし`,inherits:`プライマリを継承`,inheritsDeveloper:`開発者を継承`,open:`開く`,collapse:`折りたたむ`,groups:{core:{title:`コアパイプライン`,hint:`すべての実装内で実行:計画、構築、検証、修正、レビュー。`},loop:{title:`ループステップ`,hint:`実行を包むレールのループ(検証 → 判定 → 修正)とカスタムループの AI ステップ。未設定の場合はプライマリエンジンを継承します。`,chip:`レールループ`}},phases:{architect:{name:`アーキテクト`,purpose:`コードを読み、提案・設計・タスクを書きます。`},developer:{name:`デベロッパー`,purpose:`テスト付きでタスクを実装します。`},verification:{name:`検証`,purpose:`ホストがチェックを実行し、失敗はデベロッパーに戻ります。`},fixer:{name:`フィクサー`,purpose:`検証やレビューで却下された内容を修正します。未設定の場合は開発者を継承します。`},reviewer:{name:`レビュアー`,purpose:`仕様と証拠に照らして結果を確認します。`},verifier:{name:`ベリファイア`,purpose:`ループの verify・fix・カスタム AI ステップ。`},decider:{name:`ディサイダー`,purpose:`判定を読み、ループの次のステップを決めます。`}}},D={title:`フィクサーのエンジン`,inherit:`開発者を継承`,own:`専用エンジン`,hint:`修正ラウンドでのみ実行されます(検証失敗またはレビュー却下の後)。初回の実装は開発者が担当します。開発者が安価なローカルモデルの場合、ここに強力なモデルやクラウドモデルを設定すると効果的です。`},O={title:`ガードレール`,intro:`小さなモデルが脱線しないよう、ホストがローカルモデルの周囲に適用するプロセスルールです。既定ではすべて有効。プロセスを調整する場合にのみ個別に無効化してください。CLI プロバイダーには影響しません。`,unsupported:`この Core には設定可能なガードレールがありません。調整するには Core を更新してください。組み込みルールは引き続き適用されます。`,active:`{{total}} 件中 {{on}} 件が有効`,reset:`既定に戻す`,phases:{architect:`アーキテクト`,developer:`開発者`,host:`ホスト`},unknown:`新しい Core で追加されたガードレールです。このアプリにはまだ説明がありません。`,items:{"plan-validation":{title:`検証済みのタスク計画`,description:`openspec/ を対象にする、ファイル名だけをタスクとして列挙する、仕様に対してタスク/グループが少なすぎる、受け入れ基準が未カバーな計画を拒否し、アーキテクトが再試行します。`,why:`曖昧または不完全な計画は、小さな開発者モデルがスタブを書く最大の原因です。`},"genuine-blocking-question":{title:`本当にブロックする質問のみ`,description:`アーキテクトは「?」で終わる実際の質問でのみ実行を一時停止でき、コピーした例文では停止できません。`,why:`小さなモデルはプロンプトのプレースホルダーをそのまま返し、すべての実行をブロックしてしまいます。`},"plan-language-hint":{title:`リポジトリの言語で計画する`,description:`アーキテクトに主要言語を伝え、タスクのファイル名が正しい拡張子を持つようにします。`,why:`TypeScript リポジトリに JS の計画を立てるとタスクを完了扱いにできません。`},"frozen-plan-writes":{title:`計画成果物は凍結`,description:`開発者は openspec/ 配下に書き込めません。計画はホストのものです。`,why:`モデルはコードではなく計画を編集して「実装」しがちです。`},"primary-language":{title:`主要言語のリマインダー`,description:`各タスクグループにリポジトリの主要言語を伝えます。新規ファイルはその言語を使うべきです。`,why:`別の言語による二重実装を防ぎます。`},"duplicate-sibling":{title:`言語をまたぐ双子モジュールを禁止`,description:`board.ts が既にある場合 board.js を拒否し、既存モジュールを拡張させます。`,why:`双子は両方コンパイルされ、テストが誤った方を import します。`},"one-test-per-module":{title:`モジュールごとにテストファイルは 1 つ`,description:`board.test.ts がある場合 board.tick.test.ts を拒否し、既存を拡張させます。`,why:`そうしないと修正のたびに新しいスイートが増えます。`},"empty-write":{title:`空の上書きを禁止`,description:`内容のあるファイルへの空の書き込みを拒否します。全内容を書くかパッチを当ててください。`,why:`「クリーンアップ」で index.ts が 0 行になったことがあります。`},"evidence-gated-ticking":{title:`証拠があってからタスクを完了にする`,description:`ファイルを指すタスクは、そのファイルが存在しスタブでない場合のみ完了です(類似拡張子は許容)。`,why:`これがないと「完了」は主張にすぎず、検証は何も対象にできません。`},"inventory-retry":{title:`実際のインベントリで再試行`,description:`モデルがリポジトリが空だと主張して諦めたが実際は空でない場合、ファイル一覧付きで一度再試行します。`,why:`失敗したステップの代わりに安価な二度目のチャンスを与えます。`},"synthetic-corrections":{title:`フィードバックをタスクに変換`,description:`すべてのタスクが完了なのにレビュー/検証が失敗した場合、フィードバックを具体的な修正タスクにします。`,why:`そうしないと開発者は「完了済み」と報告し、何も変わりません。`},"silent-group-closure":{title:`沈黙したグループを閉じ、ファイルは保持`,description:`モデルが応答しなくなったグループは、書き込んだファイルを計上しタスクは未完了のまま閉じ、実行を失敗させません。`,why:`9B モデルが 5 モジュールを書いた後に沈黙し、実行全体が失敗したことがあります。`},"environment-repair":{title:`ホストが環境を修復`,description:`不足する依存関係やテストツール(npm install、ts-jest、@types/jest、Jest 設定モジュール)をホストがインストールし、検証を一度再実行します。`,why:`モデルは環境を直せず、試行に修正回数を浪費します。`},"lockfile-repair":{title:`手書きのロックファイルを破棄`,description:`モデルが捏造した package-lock.json(EINTEGRITY/ETARGET)を削除し、インストールを一度再試行します。`,why:`捏造されたハッシュは決してインストールできません。`},"verify-idle-timeout":{title:`ハングしたテストを停止`,description:`5 分間出力のない検証コマンドを停止し、ハングの疑いとして報告します(最後の出力を含む)。`,why:`そうしないとテスト内の while ループが 15 分の上限まで実行を占有します。`},"verify-per-group":{title:`グループごとに検証`,description:`各タスクグループの直後にリポジトリのテストコマンドを実行し、失敗した場合はグループの文脈が新しいうちにその場で1回修正します。`,why:`最後に5つの壊れたスイートを直すより、1つずつ直す方がはるかに簡単です。`},"test-reachability":{title:`新しいテストは必ず実行されること`,description:"開発者が書いたのにリポジトリのテストコマンドが一度も実行しないテストファイル(ファイルを列挙する `test` スクリプトが新ファイルを漏らした場合)は、該当ファイル名を示して検証を失敗させます。まずグループ単位で、次にホスト検証で再確認します。",why:`6件の失敗を含む622行のスイートが、一度も実行されなかったためにグリーンのまま出荷されたことがあります。`},"exit-code-honesty":{title:`失敗を報告する終了コード 0 を信用しない`,description:'検証コマンドが 0 で終了しても出力に失敗(`FAIL:` 行、"3 failed"、AssertionError)が含まれる場合は失敗として扱い、テストハーネス自体を欠陥として指摘してフィクサーに渡します。',why:`非ゼロの終了コードを設定しない自作テストランナーが、3 件の失敗テストを成功として出荷したことがあります。`}}},k=`未保存の変更`,A={title:`カスタムロール`,hint:`ワークフローのロールに再利用可能な指示と明示的な権限を設定します。`,unsupported:`カスタムロールを編集するには Core を更新してください。`,remove:`{{id}} を削除`,access:`ソースコードへのアクセス`,read:`読み取りのみ`,write:`読み取りと書き込み`,artifacts:`OpenSpec 成果物へのアクセス`,none:`なし`,tasks:`タスクのチェックボックスのみ`,all:`変更のすべての成果物`,skill:`OpenSpec スキル`,noSkill:`スキルの関連付けなし`,prompt:`ロールへの指示`,id:`ロール ID`,add:`ロールを追加`,invalidId:`英字で始まる一意の小文字 ID を入力してください。英小文字・数字・ハイフンを64文字まで使用できます。組み込み ID は予約済みです。`,escalationHint:`許可されたプロトコル修正でのみ上位モデルを使用できます。再試行回数は増えません。`},j={title:`実行への指示`,hint:`Core は、対応する次のエージェントのターンのために指示を保存します。送信しても質問への回答や承認にはなりません。`,label:`追加の指示`,send:`指示を送信`,accepted:`Core が受信しました。エージェントでの使用を待っています。`,pending:`エージェントのターン待ち`,consumed:`エージェントが使用済み`,counts:`待機中: {{pending}} · 使用済み: {{consumed}}`,failed:`指示を送信できませんでした。同じメッセージを確認するには再試行してください。`,unavailable:`受信記録の詳細を取得できません。`,unreported:`このバージョンの Core は使用状況を報告しません。`,truncated:`最近の受信記録と待機中のメッセージのみ表示しています。`},M={title:`Core ロールの既定値`,hint:`このファイルの既定値は新しいワークフローに適用されます。プロジェクトの明示的な設定が優先され、保存済みの実行は固定された設定を保持します。`,invalid:`ロールの項目を変更する前に、エディターで YAML ヘッダーを修正してください。`,escalationEffort:`上位モデルの推論レベル`},N={title:`履歴の保持`,description:`期限切れの実行履歴と未使用の Core バージョンを削除します。削除した履歴は再開や分岐ができません。実行中・復旧可能な実行や未完了の配信は保護され、ジョブログと費用記録は保持されます。`,forever:`履歴を無期限に保持`,days:`保持日数`,save:`保持設定を保存`,preview:`削除対象を確認`,collect:`期限切れの履歴を削除`,previewSummary:`対象:履歴 {{runs}} 件、未使用の Core バージョン {{packages}} 件。`,collectedSummary:`期限切れ:履歴 {{runs}} 件。削除済み:未使用の Core バージョン {{packages}} 件。`,more:`ほか {{count}} 件の実行。`,failed:`保持設定を確認または更新できませんでした。`,expired:`この実行履歴はプロジェクトの保持方針により期限切れになりました。ジョブログと費用記録は引き続き利用できます。`,loading:`保持方針を読み込み中…`,states:{protected:`保持`,eligible:`対象`,expired:`期限切れ`,cleanup_pending:`削除待ち`,busy:`使用中`,error:`確認失敗`},reasons:{disabled:`無期限保持`,recoverable:`復旧可能`,active:`実行中`,human_pending:`人による回答待ち`,interrupted_writes:`中断した書き込みの確認が必要`,delivery_pending:`配信待ち`,fork_pending:`依存する分岐が残っています`,unknown_terminal_time:`完了日時が不明`,within_retention:`保持期間内`}},P={title:`Loop agents`,hint:`These definitions are shared by every project using this loop. Duplicate the loop to customize a separate workflow.`,legacy:`This saved loop still uses historical project agents. Import them or enable loop agents before changing its configuration.`,enable:`Use loop agents`,import:`Import current project agents`,restoreDefinition:`Core の定義を使用`,default:`Provider default`,effort:`Reasoning effort`,escalationModel:`Escalation model`,escalationEffort:`Escalation effort`,policy:`Workflow policy`,maxAttempts:`Maximum correction attempts`,maxTokens:`Token budget`,maxCostUsd:`Cost budget (USD)`,timeoutMs:`Run timeout (ms)`,projectHint:`Configure repository checks here. Agent definitions, models and workflow policy are configured in the loop editor. Historical project agents can be imported into a duplicated loop.`,showUnused:`Also show agents not used in this loop`,stepTitle:`Step agent and options`,stepHint:`Edit this step’s agent definition and engine. Steps using the same role in this loop share these settings.`,inheritProvider:`ミッションのプロバイダーを継承`,inheritDefinition:`Core の定義に従います。Core をアップグレードすると自動的に更新されます。`,customizeDefinition:`このループ用にカスタマイズ`,coreDefinitionUnavailable:`Core ランタイムをインストールするまでプレビューは利用できません。`},F={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w,loopRoles:T,pipeline:E,fixer:D,guardrails:O,unsavedChanges:k,customRoles:A,steering:j,studioRole:M,retention:N,loopAgents:P};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,A as customRoles,F as default,t as description,C as efficiency,w as evidence,D as fixer,O as guardrails,h as limits,r as loadFailed,n as loading,P as loopAgents,T as loopRoles,x as metrics,E as pipeline,S as prompts,d as providers,N as retention,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,j as steering,M as studioRole,e as title,a as unavailable,k as unsavedChanges,g as verification};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`Motor de agentes`,t=`Arquiteto, programador e revisor correm como fases separadas com verificação determinista entre elas. Escolha um fornecedor por função; tudo o resto tem um valor por defeito que funciona.`,n=`A carregar configurações…`,r=`Não foi possível carregar as configurações. Tente novamente antes de alterar.`,i=`Tentar novamente`,a=`Esta instalação do Core não inclui o motor de agentes. Atualize o Core antes de ativar; pode preparar as configurações enquanto está desativado.`,o=`Guardar configurações`,s=`A guardar…`,c=`Configurações guardadas`,l=`Não foi possível guardar as configurações.`,u=`Pausar para aprovação antes de concluir o fluxo`,d={title:`Fornecedores`,hint:`Os CLI usam a sessão existente. As API aceitam apenas o nome da variável de ambiente, nunca a chave. Em serviços locais, pode ficar vazio. Reatribua as funções antes de remover o fornecedor.`,entry:`Fornecedor {{index}}`,id:`ID do fornecedor`,kind:`Tipo de ligação`,cli:`CLI de programação instalado`,compatible:`Endpoint compatível com OpenAI`,command:`CLI de programação`,baseUrl:`URL base da API`,apiKeyEnv:`Variável de ambiente da chave (opcional)`,remove:`Remover fornecedor`,addCli:`Adicionar fornecedor CLI`,addLocal:`Adicionar fornecedor local / API`,show:`Mostrar ligações a fornecedores`,hide:`Ocultar ligações a fornecedores`,globalTitle:`Provedores de IA`,globalHint:`Dois tipos de provedor alimentam cada projeto: as CLIs de programação detectadas nesta máquina e os motores locais compatíveis com OpenAI que registares aqui. Atribui-os às fases do pipeline em Definições do projeto ▸ Motor de agentes. As alterações aplicam-se a novas execuções.`,label:`Nome de exibição (opcional)`,labelPlaceholder:`ex.: Máquina LAN`,defaultModel:`Modelo padrão`,defaultModelNone:`Sem padrão (primeiro descoberto)`,defaultModelPlaceholder:`ID do modelo ou alias personalizado`,customModel:`Alias personalizado…`,discoveredModels:`Modelos descobertos`,noModels:`Nenhum modelo descoberto ainda — teste a conexão.`,rates:`Tarifas (USD por 1M de tokens, opcional)`,ratesHint:`Os custos são exibidos como estimativas; deixe ambas vazias e o custo permanece desconhecido.`,inputRate:`Entrada por 1M`,outputRate:`Saída por 1M`,ratesInvalid:`Informe ambas as tarifas como números não negativos ou deixe as duas vazias.`,reasoningEffort:`O endpoint aceita esforço de raciocínio`,reasoningEffortHint:`Envia o campo reasoning_effort da OpenAI: o esforço configurado do papel em cada chamada, elevado a alto enquanto o arquiteto compacto escreve o plano. Deixe desligado a menos que o servidor o respeite.`,apiKeyEnvMissing:`{{name}} não está definida no processo do app. Defina-a no ambiente a partir do qual o app é iniciado.`,test:`Testar conexão`,testing:`Testando…`,testFailed:`Não foi possível testar a conexão.`,rename:`Renomear`,renameHint:`Renomear mantém as atribuições de papéis apontando para esta conexão.`,idLocked:`O id fica bloqueado após salvar. Use Renomear para alterá-lo.`,localBadge:`Motor local`,cliBadge:`CLI`,notDetected:`Não detectado nesta máquina`,unsaved:`Alterações não salvas`,empty:`Ainda não há conexões. Adicione um provedor local / API para começar.`,fixBeforeSave:`Corrija os campos destacados antes de salvar.`,status:{probing:`Verificando…`,reachable:`Acessível`,unauthorized:`Não autorizado`,unreachable:`Inacessível`,untested:`Nunca testado`},auth:{authenticated:`Sessão iniciada`,unauthenticated:`Sem sessão`,unknown:`Sessão desconhecida`},agentLoop:`Loop do agente`,agentLoopHint:`como o pipeline implement conduz este modelo`,agentLoop_compact:`Compacto`,agentLoop_compactHint:`Micropassos conduzidos pelo app com saída estruturada. Recomendado para modelos abaixo de ~30B.`,agentLoop_free:`Livre`,agentLoop_freeHint:`Um loop agêntico por papel, como um provedor CLI. Exige um modelo forte.`,contextWindow:`Janela de contexto (tokens)`,contextWindowHint:`Iguale ao tamanho de contexto do servidor (n_ctx / num_ctx). Usado para compactar resultados antigos de ferramentas antes de encher a janela. Padrão 32768.`,maxOutput:`Orçamento de saída por turno (tokens)`,maxOutputHint:`max_tokens de um turno de ferramentas; um turno cortado é repetido uma vez com o dobro. Conta dentro da janela de contexto, por isso é sempre limitado ao espaço restante — aumente-o se o modelo raciocina em privado (o thinking consome-o). Predefinição 8192.`,reasoningEffortRailHint:`Desligado: o seletor de esforço de raciocínio não aparece no cabeçalho do rail para este motor.`,presetTitle:`Configuração rápida`,presetSmallModel:`Recomendado para modelos pequenos`,presetSmallModelApplied:`Predefinição para modelos pequenos aplicada`,presetSmallModelHint:`Ativa o loop Compacto, encaminha o esforço de raciocínio e fixa uma janela de contexto de 32k: a combinação validada com modelos de 7–14B. Cada campo continua editável.`,cliGroup:`Ferramentas CLI`,cliGroupHint:`Detectadas nesta máquina: usam o seu próprio início de sessão, nada a configurar.`,localGroup:`Motores locais`,localGroupHint:`Endpoints compatíveis com OpenAI (llama.cpp, Ollama, vLLM, LM Studio…) acessíveis a partir desta app.`,models_one:`{{count}} modelo`,models_other:`{{count}} modelos`,expand:`Mostrar definições`,collapse:`Ocultar definições`,overflow:`Mais ações`,addLocalHero:`Adicionar motor local`,emptyLocalPitch:`Ainda não há motores locais. Aponta a app para um endpoint compatível com OpenAI para executar o pipeline no teu próprio hardware: o custo fica sob o teu controlo e nada sai da tua rede.`,defaultsGroup:`Predefinições do provedor`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Arquiteto`,developer:`Desenvolvedor`,reviewer:`Revisor`,fixer:`Corretor`,verify:`Verificação`,archive:`Conclusão`},m={title:`Atribuição de funções`,hint:`Cada papel pode usar um fornecedor e um modelo diferentes. Conexões: Definições gerais → Provedores de IA. Limite padrão: {{turns}} turnos por agente.`,provider:`Fornecedor`,model:`Modelo`,modelPlaceholder:`ID do modelo ou padrão do CLI`,maxTurns:`Máximo de turnos (por defeito {{turns}})`,defaultModel:`Por defeito ({{model}})`,thinking:`Raciocínio oculto`,thinking_off:`Desligado`,thinking_on:`Ligado`,thinkingHint:`Desligado por defeito: o raciocínio oculto gasta o orçamento de saída e minutos por turno num ciclo guiado pelo host. Ligue-o para um papel que beneficie de deliberação (enviado como chat_template_kwargs.enable_thinking; os endpoints que não o conhecem ignoram-no).`},h={title:`Limites do fluxo`,hint:`Os campos vazios usam os valores do Core: {{attempts}} tentativas de correção e {{minutes}} minutos por passo de papel. Em motores locais o timeout aplica-se a cada unidade de trabalho (um grupo de tarefas, um artefacto, uma revisão) — 45 minutos por defeito — mais um watchdog de inatividade de 20 minutos; um passo que esgota o tempo bloqueia a execução e pode ser retomado a partir do próximo grupo aberto. Os limites de tokens e USD são opcionais; os de USD exigem Claude em todos os papéis.`,maxAttempts:`Máximo de tentativas do programador (por defeito {{attempts}})`,timeoutMinutes:`Timeout em minutos (por defeito {{minutes}}; motores locais 45 por grupo de tarefas)`,maxTokens:`Máximo de tokens`,maxCostUsd:`Custo máximo (USD)`,unlimited:`Sem limite`},g={title:`Comandos de verificação`,hint:`Opcional. Correm quando o programador termina e as falhas voltam ao programador. Com a lista vazia, o arquiteto propõe as verificações do próprio projeto em cada execução; os repositórios sem verificação automática são revistos na mesma.`,detect:`Detetar verificações do projeto`,detecting:`A detetar…`,detected:`Preenchido com as verificações que este projeto já define.`,nothingDetected:`Não foi encontrado nenhum comando de teste, verificação de tipos ou build. Não há problema: o arquiteto propõe verificações em cada execução quando possível.`,detectFailed:`Não foi possível inspecionar os repositórios do projeto.`,repository:`Repositório`,command:`Comando`,reason:`Detetado em {{reason}}`,remove:`Remover`,add:`Adicionar comando`,invalidLine:`Comando de verificação vazio ou com aspas por fechar: {{line}}`,label:`Nome da verificação (opcional)`,moveUp:`Subir`,moveDown:`Descer`},_={title:`Execuções guardadas`,refresh:`Atualizar`,hint:`Continua no worktree original com o âmbito e as configurações guardadas; o progresso aparece no registo desse trabalho. Não publica nem reinicia a entrega do Desktop. As execuções ativas param a partir dos controlos do trabalho.`,empty:`Não há execuções guardadas.`,loadFailed:`Não foi possível carregar as execuções.`,actionFailed:`Não foi possível atualizar esta execução.`,phase:`Próxima fase: {{phase}}`,approve:`Aprovar conclusão`,recover:`Recuperar fase interrompida`,resume:`Retomar`,cancel:`Cancelar continuação`,status:{running:`A continuar…`,succeeded:`Concluído`,failed:`Falhou`,blocked:`Bloqueado`,paused:`Em pausa`,cancelled:`Cancelado`,interrupted:`Interrompido`,unavailable:`Indisponível`,expired:`Expirado`},question:`O arquiteto pergunta:`,answerLabel:`A sua resposta`,answerPlaceholder:`Responda à pergunta; o arquiteto continua com ela.`,answer:`Responder e retomar`,viewLog:`Ver log do job`,implementation:`Implementação`,preserveProgress:`Continue a partir da fase indicada, preservando o trabalho e as configurações guardadas.`,reviewDelivery:`Implementação concluída. Reveja o resultado no log antes da entrega; esta continuação não o publicou.`,prepareDelivery:`Preparar entrega`,dismiss:`Descartar`,selectRecovery:`Selecione as tentativas interrompidas a recuperar`},v={architect:`Lê o código e escreve a proposta, o design, as tarefas e a spec. Só leitura.`,developer:`Implementa as tarefas com testes. Pode editar ficheiros e executar comandos na sandbox do CLI.`,reviewer:`Confere o resultado com a spec e a evidência de verificação. Só leitura.`},y={title:`Limite de revisão`,hint:`Campos vazios usam o limite do Core. Os valores só podem elevá-lo: pontuação geral de pelo menos {{score}}, segurança de pelo menos {{security}}, outros aspetos de pelo menos {{aspect}}.`,minScore:`Pontuação geral mínima (padrão {{score}})`,aspects:{type_correctness:`Correção de tipos (padrão {{score}})`,pattern_adherence:`Aderência a padrões (padrão {{score}})`,test_coverage:`Cobertura de testes (padrão {{score}})`,security:`Segurança (padrão {{score}})`,architectural_alignment:`Alinhamento arquitetural (padrão {{score}})`}},b={title:`Confiança do arquiteto`,hint:`Após uma passagem de investigação autónoma, um design ainda com baixa confiança pausa com a pergunta do arquiteto ou prossegue com suposições declaradas.`,onLowConfidence:`Com baixa confiança`,ask:`Perguntar (pausar com a pergunta)`,proceed:`Prosseguir com suposições declaradas`},x={title:`Consumo e tempo`,hint:`Inclui correções e chamadas falhadas. O tempo dos agentes inclui as ferramentas. Os tokens em cache fazem parte dos tokens de entrada.`,unknown:`Indisponível`,duration:`Tempo de execução`,agentTime:`Tempo dos agentes`,cost:`Custo reportado`,providerCalls:`Chamadas a agentes`,toolCalls:`Chamadas a ferramentas`,input:`Tokens de entrada`,output:`Tokens de saída`,uncached:`Entrada sem cache`,cacheRead:`Leituras da cache`,cacheWrite:`Escritas na cache`,partial:`Algumas tentativas não têm medições detalhadas.`,phases:`Consumo por fase`,phase:`Fase`,attempts:`Tentativas`},S={title:`Prompts dos papéis dos agentes`,description:`Veja e edite as instruções de cada papel. São partilhadas por todos os projetos e fornecedores; as alterações aplicam-se a novos trabalhos. Os trabalhos retomados mantêm os prompts originais.`,definition:`Definição de {{role}}`,default:`Predefinição de fábrica`,custom:`Personalizado`,restore:`Restaurar predefinição`,contracts:`O contexto da spec, o fluxo OpenSpec e o formato de resposta obrigatório são adicionados automaticamente e não são editados aqui.`,invalid:`Cada definição deve conter entre 1 e 20.000 caracteres, com texto não vazio e sem bytes nulos.`,saved:`Prompts dos papéis guardados`,unsaved:`Alterações por guardar`,discard:`Descartar alterações`,save:`Guardar prompts`,fixerHint:`Usado apenas em rondas de correção: após uma verificação falhada ou uma revisão rejeitada. Corre no motor do developer salvo se Definições ▸ Motor dos agentes ▸ Corretor indicar um próprio. Um fornecedor CLI que retoma a sessão do developer recebe o seguimento curto de correção; a definição aplica-se sempre que arranca uma sessão nova (motores locais, motor corretor, sessão perdida).`},C={title:`Eficiência da implementação`,scope:`Aplica-se a novas execuções. As execuções guardadas mantêm a configuração e o motor originais.`,effort:`Esforço de raciocínio`,providerDefault:`Padrão do fornecedor`,unconfirmed:`Não confirmado`,unknownSupport:`O suporte deste modelo e transporte não está confirmado.`,escalation:`Permitir um nível superior com o mesmo fornecedor`,baseRequired:`Selecione primeiro um modelo base explícito.`,escalationModel:`Modelo de nível superior`,triggers:{architect:`Apenas a investigação aprofundada existente pode selecionar este nível.`,developer:`Após dois candidatos falhados, a próxima tentativa permitida pode selecionar este nível.`,reviewer:`Apenas para reparar respostas inválidas; rejeitar código não ativa este nível.`,fixer:`Só uma rodada de correção pode alcançar este nível; as primeiras passagens nunca executam o corretor.`},contextMode:`Contexto do repositório`,reviewMode:`Revisão de correções`,planning:`Profundidade do planeamento`,adaptive:`Adaptativo`,full:`Completo`,developerChecks:`Aceitar verificações adicionais propostas pelo programador`,concurrency:`Máximo de verificações simultâneas`,concurrencyHint:`Padrão: 1. Apenas verificações independentes declaradas pelo anfitrião em repositórios diferentes podem executar em conjunto. Sem reutilização por padrão.`,checkCapabilities:`Verificar compatibilidade dos modelos`,capabilitiesFailed:`Compatibilidade não confirmada. Atualize Core ou mantenha os padrões do fornecedor.`},w={title:`Evidências de verificação`,acceptance:`Aceitação técnica`,acceptanceStatus:{pending:`Pendente`,validated:`Validado`,"with-exceptions":`Com exceções`,blocked:`Bloqueado`},calls:`Chamadas aos agentes`,executed:`Verificações executadas`,reused:`Verificações reutilizadas`,unknown:`Indisponível`,unavailable:`Evidência indisponível. O resultado guardado não prova a validade atual.`,current:`Candidato e plano atuais`,historical:`Resultado histórico`,moreChecks:`Mais verificações`,output:`Saída da verificação`,empty:`Sem saída`,truncated:`Página limitada ou captura truncada.`,nextPage:`Página seguinte`,status:{passed:`Aprovado`,failed:`Falhou`,cancelled:`Cancelado`,interrupted:`Interrompido`},disposition:{executed:`Executado`,reused:`Reutilizado`,"not-run":`Não executado`},origin:`Origem`,origins:{host:`Anfitrião`,architect:`Arquiteto`,developer:`Programador`,"frozen-runtime-config":`Configuração guardada`,"project-role":`Papel do projeto`,default:`Padrão`,"explicit-launch-override":`Fornecedor escolhido para esta execução`,"loop-role":`Papel do loop`},reuseDisabled:`Reutilização desativada para esta verificação.`,reuseConfirmed:`Reutilizado após confirmar entradas e ferramentas idênticas.`,inputsChanged:`As entradas mudaram durante a verificação; resultado invalidado.`,reuseUnproven:`Sem resultado atual com entradas idênticas comprovadas; executado novamente.`,original:`Execução original`,requested:`Solicitado`,reported:`Reportado`},T={title:`Papéis do loop`,hint:`Motores dos papéis do loop quando um rail é lançado com o motor «Papéis». Os papéis do pipeline acima (architect, developer, reviewer) já vêm desta configuração do runtime.`,verifier:`Verificador`,verifierHint:`Todos os passos de IA do loop fora do core: verify, fix e passos de IA personalizados.`,decider:`Decisor`,deciderHint:`O Loop Decider que lê o veredicto e escolhe o passo seguinte — um modelo barato e rápido é a escolha natural.`,inherit:`Herdar o principal`,model:`Modelo`,effort:`Esforço de raciocínio`,disabled:`O runtime de agentes está desativado — os rails lançados com o motor «Papéis» são recusados até ser ativado.`,saveFailed:`Não foi possível guardar os papéis do loop.`},E={title:`Pipeline de implementação`,explainer:`Estas fases executam nesta ordem em cada implementação. Quando o motor do rail é "{{roles}}", cada fase usa o motor configurado abaixo — fornecedor, modelo e esforço diferentes por fase. Escolher um motor concreto no rail executa todas as fases nesse motor.`,host:`Host`,noCommand:`sem comando`,inherits:`Herda o principal`,inheritsDeveloper:`Herda do desenvolvedor`,open:`Abrir`,collapse:`Recolher`,groups:{core:{title:`Pipeline principal`,hint:`Executa dentro de cada implementação: planear, construir, verificar, corrigir, rever.`},loop:{title:`Passos do loop`,hint:`Passos de IA do loop do rail que envolve a execução (verificar → decidir → corrigir) e dos loops personalizados; herdam o motor principal se não forem definidos.`,chip:`loop do rail`}},phases:{architect:{name:`Arquiteto`,purpose:`Lê o código e escreve a proposta, o design e as tarefas.`},developer:{name:`Desenvolvedor`,purpose:`Implementa as tarefas com testes.`},verification:{name:`Verificação`,purpose:`O host executa as suas verificações; as falhas voltam ao desenvolvedor.`},fixer:{name:`Corretor`,purpose:`Corrige o que a verificação ou a revisão rejeitam; herda do desenvolvedor se não for configurado.`},reviewer:{name:`Revisor`,purpose:`Confere o resultado com a spec e as evidências.`},verifier:{name:`Verificador`,purpose:`Passos de IA verify, fix e personalizados do loop.`},decider:{name:`Decisor`,purpose:`Lê o veredito e escolhe o próximo passo do loop.`}}},D={title:`Motor do corretor`,inherit:`Herdar desenvolvedor`,own:`Motor próprio`,hint:`Só é executado em rodadas de correção: após uma verificação falha ou uma revisão rejeitada; as primeiras passagens continuam no desenvolvedor. Um modelo mais forte ou na nuvem aqui compensa quando o desenvolvedor é um modelo local barato.`},O={title:`Guarda-corpos`,intro:`Regras de processo que o host aplica em torno dos modelos locais para que um modelo pequeno não descarrile. Todas ativas por padrão; desative uma apenas para ajustar o processo. Provedores CLI nunca são afetados.`,unsupported:`Esta instalação do Core não expõe guarda-corpos configuráveis. Atualize o Core para ajustá-los; as regras integradas continuam a aplicar-se.`,active:`{{on}} de {{total}} ativos`,reset:`Restaurar padrões`,phases:{architect:`Arquiteto`,developer:`Desenvolvedor`,host:`Host`},unknown:`Um guarda-corpo adicionado por um Core mais recente; este app ainda não tem descrição para ele.`,items:{"plan-validation":{title:`Plano de tarefas validado`,description:`Rejeita planos que apontam para openspec/, listam nomes de arquivo soltos como tarefas, têm poucas tarefas/grupos para a spec ou deixam critérios de aceitação descobertos; o arquiteto tenta novamente.`,why:`Um plano vago ou incompleto é a razão nº 1 para um modelo desenvolvedor pequeno escrever stubs.`},"genuine-blocking-question":{title:`Apenas perguntas bloqueantes reais`,description:`O arquiteto só pode pausar a execução com uma pergunta real terminada em '?', nunca com texto de exemplo copiado.`,why:`Modelos pequenos repetem os marcadores do prompt e bloqueariam todas as execuções.`},"plan-language-hint":{title:`Planejar na linguagem do repositório`,description:`Informa ao arquiteto a linguagem principal para que os nomes de arquivo das tarefas tenham a extensão correta.`,why:`Um plano JS num repo TypeScript torna impossível marcar as tarefas.`},"frozen-plan-writes":{title:`Artefatos de planejamento estão congelados`,description:`O desenvolvedor não pode escrever em openspec/; o plano pertence ao host.`,why:`Modelos 'implementam' editando o plano em vez do código.`},"primary-language":{title:`Lembrete da linguagem principal`,description:`Cada grupo de tarefas recebe a linguagem principal do repositório; arquivos novos devem usá-la.`,why:`Evita uma segunda implementação em outra linguagem.`},"duplicate-sibling":{title:`Sem módulos gêmeos entre linguagens`,description:`Recusa board.js quando board.ts já existe; estenda o módulo existente.`,why:`Gêmeos compilam ambos e os testes importam o errado.`},"one-test-per-module":{title:`Um arquivo de teste por módulo`,description:`Recusa board.tick.test.ts quando board.test.ts existe; estenda-o em vez disso.`,why:`Senão cada passada de correção adiciona uma suíte nova.`},"empty-write":{title:`Sem sobrescritas vazias`,description:`Uma escrita vazia sobre um arquivo com conteúdo é recusada; escreva o conteúdo completo ou aplique um patch.`,why:`Uma passada de 'limpeza' certa vez deixou index.ts com 0 linhas.`},"evidence-gated-ticking":{title:`Evidência antes de marcar uma tarefa`,description:`Uma tarefa que nomeia arquivos só está concluída quando eles existem e não são stubs (extensões irmãs aceitas).`,why:`Sem isso, 'concluído' é só uma afirmação e a verificação roda contra nada.`},"inventory-retry":{title:`Tentar de novo com o inventário real`,description:`Quando o modelo desiste alegando que o repo está vazio sem estar, tenta uma vez mais com a lista de arquivos.`,why:`Segunda chance barata em vez de um passo falhado.`},"synthetic-corrections":{title:`Transformar feedback em tarefas`,description:`Quando todas as tarefas estão marcadas mas review/verify falharam, o feedback vira tarefas de correção concretas.`,why:`Senão o desenvolvedor responde 'já está feito' e nada muda.`},"silent-group-closure":{title:`Fechar grupos silenciosos, manter seus arquivos`,description:`Um grupo cujo modelo para de responder é fechado creditando os arquivos que escreveu e deixando suas tarefas abertas, em vez de falhar a execução.`,why:`Um modelo 9B escreveu cinco módulos, silenciou e toda a execução falhou.`},"environment-repair":{title:`O host repara o ambiente`,description:`Dependências ou ferramentas de teste ausentes (npm install, ts-jest, @types/jest, módulos de config do Jest) são instaladas pelo host e a verificação roda de novo uma vez.`,why:`O modelo não consegue consertar o ambiente e gasta correções tentando.`},"lockfile-repair":{title:`Descartar lockfiles escritos à mão`,description:`Um package-lock.json inventado pelo modelo (EINTEGRITY/ETARGET) é removido e a instalação repetida uma vez.`,why:`Hashes inventados nunca instalam.`},"verify-idle-timeout":{title:`Parar testes travados`,description:`Um comando de verificação sem saída por 5 minutos é interrompido e reportado como provável travamento (última saída incluída).`,why:`Senão um laço while num teste segura a execução até o limite de 15 minutos.`},"verify-per-group":{title:`Verificar após cada grupo`,description:`Executa o comando de teste do repositório logo após cada grupo de tarefas; uma falha recebe uma ronda de correção imediata com o contexto do grupo ainda fresco.`,why:`Cinco suites partidas no fim são muito mais difíceis de corrigir do que uma de cada vez.`},"test-reachability":{title:`Todo teste novo tem de correr mesmo`,description:"Um ficheiro de teste escrito pelo developer que o comando de teste do repositório nunca executa (um script `test` enumerativo que omite o ficheiro novo) falha a verificação com o ficheiro exato, primeiro ao nível do grupo e de novo na verificação do host.",why:`Uma suite de 622 linhas com seis casos a falhar chegou verde porque nada a executou.`},"exit-code-honesty":{title:`Desconfiar de um exit 0 que reporta falhas`,description:'Um comando de verificação que sai com 0 enquanto a saída imprime falhas (linhas `FAIL:`, "3 failed", um AssertionError) é tratado como FALHADO e entregue ao corretor com o harness apontado como o defeito.',why:`Um runner de testes caseiro que nunca definia um exit code diferente de zero entregou três testes vermelhos como verdes.`}}},k=`Alterações não guardadas`,A={title:`Funções personalizadas`,hint:`Defina instruções reutilizáveis e permissões explícitas para as funções do fluxo.`,unsupported:`Atualize o Core para editar funções personalizadas.`,remove:`Remover {{id}}`,access:`Acesso ao código`,read:`Somente leitura`,write:`Leitura e escrita`,artifacts:`Acesso aos artefatos OpenSpec`,none:`Nenhum`,tasks:`Somente caixas de tarefas`,all:`Todos os artefatos da alteração`,skill:`Skill do OpenSpec`,noSkill:`Nenhuma skill associada`,prompt:`Instruções da função`,id:`ID da função`,add:`Adicionar função`,invalidId:`Use um ID único em minúsculas que comece com uma letra, com até 64 letras, números ou hífens. Os IDs integrados são reservados.`,escalationHint:`Somente uma correção permitida do protocolo pode usar o modelo de escalonamento. Nenhuma tentativa extra é adicionada.`},j={title:`Instruções de execução`,hint:`O Core guarda estas instruções para o próximo turno de agente compatível. O envio não responde a perguntas nem concede aprovações.`,label:`Instruções adicionais`,send:`Enviar instruções`,accepted:`Recebidas pelo Core; aguardando utilização.`,pending:`Aguardando um turno de agente`,consumed:`Utilizadas por um agente`,counts:`Pendentes: {{pending}} · Utilizadas: {{consumed}}`,failed:`Não foi possível enviar as instruções. Tente novamente para confirmar a mesma mensagem.`,unavailable:`Os detalhes dos recibos estão indisponíveis.`,unreported:`Esta versão do Core não informa a utilização.`,truncated:`São apresentados apenas os recibos recentes e as mensagens pendentes.`},M={title:`Valores padrão do papel do Core`,hint:`Estes valores do arquivo aplicam-se a novos workflows. As configurações explícitas do projeto têm prioridade; as execuções salvas mantêm as configurações fixadas.`,invalid:`Corrija o cabeçalho YAML no editor antes de alterar os campos do papel.`,escalationEffort:`Esforço de raciocínio do modelo superior`},N={title:`Retenção do histórico`,description:`Elimine históricos expirados e versões do Core sem uso. Históricos eliminados não podem ser retomados nem bifurcados. Execuções ativas ou recuperáveis e entregas pendentes ficam protegidas; registos de trabalhos e custos são mantidos.`,forever:`Manter o histórico indefinidamente`,days:`Dias de retenção`,save:`Guardar retenção`,preview:`Pré-visualizar limpeza`,collect:`Eliminar histórico expirado`,previewSummary:`Elegíveis: {{runs}} históricos e {{packages}} versões do Core sem uso.`,collectedSummary:`Expirados: {{runs}} históricos. Removidas: {{packages}} versões do Core sem uso.`,more:`{{count}} execuções adicionais.`,failed:`Não foi possível consultar ou atualizar a retenção.`,expired:`Este histórico expirou segundo a política do projeto. O registo do trabalho e a contabilidade continuam disponíveis.`,loading:`A carregar a política…`,states:{protected:`Mantido`,eligible:`Elegível`,expired:`Expirado`,cleanup_pending:`Limpeza pendente`,busy:`Em uso`,error:`Falha na inspeção`},reasons:{disabled:`Retenção indefinida`,recoverable:`Recuperação ainda disponível`,active:`Execução ativa`,human_pending:`A aguardar resposta humana`,interrupted_writes:`Escritas interrompidas por rever`,delivery_pending:`Entrega pendente`,fork_pending:`Existe uma bifurcação dependente`,unknown_terminal_time:`Data de conclusão desconhecida`,within_retention:`Dentro do período de retenção`}},P={title:`Loop agents`,hint:`These definitions are shared by every project using this loop. Duplicate the loop to customize a separate workflow.`,legacy:`This saved loop still uses historical project agents. Import them or enable loop agents before changing its configuration.`,enable:`Use loop agents`,import:`Import current project agents`,restoreDefinition:`Restore default definition`,default:`Provider default`,effort:`Reasoning effort`,escalationModel:`Escalation model`,escalationEffort:`Escalation effort`,policy:`Workflow policy`,maxAttempts:`Maximum correction attempts`,maxTokens:`Token budget`,maxCostUsd:`Cost budget (USD)`,timeoutMs:`Run timeout (ms)`,projectHint:`Configure repository checks here. Agent definitions, models and workflow policy are configured in the loop editor. Historical project agents can be imported into a duplicated loop.`,showUnused:`Also show agents not used in this loop`,stepTitle:`Step agent and options`,stepHint:`Edit this step’s agent definition and engine. Steps using the same role in this loop share these settings.`,inheritProvider:`Herdar o fornecedor da missão`},F={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w,loopRoles:T,pipeline:E,fixer:D,guardrails:O,unsavedChanges:k,customRoles:A,steering:j,studioRole:M,retention:N,loopAgents:P};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,A as customRoles,F as default,t as description,C as efficiency,w as evidence,D as fixer,O as guardrails,h as limits,r as loadFailed,n as loading,P as loopAgents,T as loopRoles,x as metrics,E as pipeline,S as prompts,d as providers,N as retention,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,j as steering,M as studioRole,e as title,a as unavailable,k as unsavedChanges,g as verification};
|
|
1
|
+
var e=`Motor de agentes`,t=`Arquiteto, programador e revisor correm como fases separadas com verificação determinista entre elas. Escolha um fornecedor por função; tudo o resto tem um valor por defeito que funciona.`,n=`A carregar configurações…`,r=`Não foi possível carregar as configurações. Tente novamente antes de alterar.`,i=`Tentar novamente`,a=`Esta instalação do Core não inclui o motor de agentes. Atualize o Core antes de ativar; pode preparar as configurações enquanto está desativado.`,o=`Guardar configurações`,s=`A guardar…`,c=`Configurações guardadas`,l=`Não foi possível guardar as configurações.`,u=`Pausar para aprovação antes de concluir o fluxo`,d={title:`Fornecedores`,hint:`Os CLI usam a sessão existente. As API aceitam apenas o nome da variável de ambiente, nunca a chave. Em serviços locais, pode ficar vazio. Reatribua as funções antes de remover o fornecedor.`,entry:`Fornecedor {{index}}`,id:`ID do fornecedor`,kind:`Tipo de ligação`,cli:`CLI de programação instalado`,compatible:`Endpoint compatível com OpenAI`,command:`CLI de programação`,baseUrl:`URL base da API`,apiKeyEnv:`Variável de ambiente da chave (opcional)`,remove:`Remover fornecedor`,addCli:`Adicionar fornecedor CLI`,addLocal:`Adicionar fornecedor local / API`,show:`Mostrar ligações a fornecedores`,hide:`Ocultar ligações a fornecedores`,globalTitle:`Provedores de IA`,globalHint:`Dois tipos de provedor alimentam cada projeto: as CLIs de programação detectadas nesta máquina e os motores locais compatíveis com OpenAI que registares aqui. Atribui-os às fases do pipeline em Definições do projeto ▸ Motor de agentes. As alterações aplicam-se a novas execuções.`,label:`Nome de exibição (opcional)`,labelPlaceholder:`ex.: Máquina LAN`,defaultModel:`Modelo padrão`,defaultModelNone:`Sem padrão (primeiro descoberto)`,defaultModelPlaceholder:`ID do modelo ou alias personalizado`,customModel:`Alias personalizado…`,discoveredModels:`Modelos descobertos`,noModels:`Nenhum modelo descoberto ainda — teste a conexão.`,rates:`Tarifas (USD por 1M de tokens, opcional)`,ratesHint:`Os custos são exibidos como estimativas; deixe ambas vazias e o custo permanece desconhecido.`,inputRate:`Entrada por 1M`,outputRate:`Saída por 1M`,ratesInvalid:`Informe ambas as tarifas como números não negativos ou deixe as duas vazias.`,reasoningEffort:`O endpoint aceita esforço de raciocínio`,reasoningEffortHint:`Envia o campo reasoning_effort da OpenAI: o esforço configurado do papel em cada chamada, elevado a alto enquanto o arquiteto compacto escreve o plano. Deixe desligado a menos que o servidor o respeite.`,apiKeyEnvMissing:`{{name}} não está definida no processo do app. Defina-a no ambiente a partir do qual o app é iniciado.`,test:`Testar conexão`,testing:`Testando…`,testFailed:`Não foi possível testar a conexão.`,rename:`Renomear`,renameHint:`Renomear mantém as atribuições de papéis apontando para esta conexão.`,idLocked:`O id fica bloqueado após salvar. Use Renomear para alterá-lo.`,localBadge:`Motor local`,cliBadge:`CLI`,notDetected:`Não detectado nesta máquina`,unsaved:`Alterações não salvas`,empty:`Ainda não há conexões. Adicione um provedor local / API para começar.`,fixBeforeSave:`Corrija os campos destacados antes de salvar.`,status:{probing:`Verificando…`,reachable:`Acessível`,unauthorized:`Não autorizado`,unreachable:`Inacessível`,untested:`Nunca testado`},auth:{authenticated:`Sessão iniciada`,unauthenticated:`Sem sessão`,unknown:`Sessão desconhecida`},agentLoop:`Loop do agente`,agentLoopHint:`como o pipeline implement conduz este modelo`,agentLoop_compact:`Compacto`,agentLoop_compactHint:`Micropassos conduzidos pelo app com saída estruturada. Recomendado para modelos abaixo de ~30B.`,agentLoop_free:`Livre`,agentLoop_freeHint:`Um loop agêntico por papel, como um provedor CLI. Exige um modelo forte.`,contextWindow:`Janela de contexto (tokens)`,contextWindowHint:`Iguale ao tamanho de contexto do servidor (n_ctx / num_ctx). Usado para compactar resultados antigos de ferramentas antes de encher a janela. Padrão 32768.`,maxOutput:`Orçamento de saída por turno (tokens)`,maxOutputHint:`max_tokens de um turno de ferramentas; um turno cortado é repetido uma vez com o dobro. Conta dentro da janela de contexto, por isso é sempre limitado ao espaço restante — aumente-o se o modelo raciocina em privado (o thinking consome-o). Predefinição 8192.`,reasoningEffortRailHint:`Desligado: o seletor de esforço de raciocínio não aparece no cabeçalho do rail para este motor.`,presetTitle:`Configuração rápida`,presetSmallModel:`Recomendado para modelos pequenos`,presetSmallModelApplied:`Predefinição para modelos pequenos aplicada`,presetSmallModelHint:`Ativa o loop Compacto, encaminha o esforço de raciocínio e fixa uma janela de contexto de 32k: a combinação validada com modelos de 7–14B. Cada campo continua editável.`,cliGroup:`Ferramentas CLI`,cliGroupHint:`Detectadas nesta máquina: usam o seu próprio início de sessão, nada a configurar.`,localGroup:`Motores locais`,localGroupHint:`Endpoints compatíveis com OpenAI (llama.cpp, Ollama, vLLM, LM Studio…) acessíveis a partir desta app.`,models_one:`{{count}} modelo`,models_other:`{{count}} modelos`,expand:`Mostrar definições`,collapse:`Ocultar definições`,overflow:`Mais ações`,addLocalHero:`Adicionar motor local`,emptyLocalPitch:`Ainda não há motores locais. Aponta a app para um endpoint compatível com OpenAI para executar o pipeline no teu próprio hardware: o custo fica sob o teu controlo e nada sai da tua rede.`,defaultsGroup:`Predefinições do provedor`},f={claude:`Claude`,codex:`Codex`,gemini:`Gemini`,kimi:`Kimi`},p={architect:`Arquiteto`,developer:`Desenvolvedor`,reviewer:`Revisor`,fixer:`Corretor`,verify:`Verificação`,archive:`Conclusão`},m={title:`Atribuição de funções`,hint:`Cada papel pode usar um fornecedor e um modelo diferentes. Conexões: Definições gerais → Provedores de IA. Limite padrão: {{turns}} turnos por agente.`,provider:`Fornecedor`,model:`Modelo`,modelPlaceholder:`ID do modelo ou padrão do CLI`,maxTurns:`Máximo de turnos (por defeito {{turns}})`,defaultModel:`Por defeito ({{model}})`,thinking:`Raciocínio oculto`,thinking_off:`Desligado`,thinking_on:`Ligado`,thinkingHint:`Desligado por defeito: o raciocínio oculto gasta o orçamento de saída e minutos por turno num ciclo guiado pelo host. Ligue-o para um papel que beneficie de deliberação (enviado como chat_template_kwargs.enable_thinking; os endpoints que não o conhecem ignoram-no).`},h={title:`Limites do fluxo`,hint:`Os campos vazios usam os valores do Core: {{attempts}} tentativas de correção e {{minutes}} minutos por passo de papel. Em motores locais o timeout aplica-se a cada unidade de trabalho (um grupo de tarefas, um artefacto, uma revisão) — 45 minutos por defeito — mais um watchdog de inatividade de 20 minutos; um passo que esgota o tempo bloqueia a execução e pode ser retomado a partir do próximo grupo aberto. Os limites de tokens e USD são opcionais; os de USD exigem Claude em todos os papéis.`,maxAttempts:`Máximo de tentativas do programador (por defeito {{attempts}})`,timeoutMinutes:`Timeout em minutos (por defeito {{minutes}}; motores locais 45 por grupo de tarefas)`,maxTokens:`Máximo de tokens`,maxCostUsd:`Custo máximo (USD)`,unlimited:`Sem limite`},g={title:`Comandos de verificação`,hint:`Opcional. Correm quando o programador termina e as falhas voltam ao programador. Com a lista vazia, o arquiteto propõe as verificações do próprio projeto em cada execução; os repositórios sem verificação automática são revistos na mesma.`,detect:`Detetar verificações do projeto`,detecting:`A detetar…`,detected:`Preenchido com as verificações que este projeto já define.`,nothingDetected:`Não foi encontrado nenhum comando de teste, verificação de tipos ou build. Não há problema: o arquiteto propõe verificações em cada execução quando possível.`,detectFailed:`Não foi possível inspecionar os repositórios do projeto.`,repository:`Repositório`,command:`Comando`,reason:`Detetado em {{reason}}`,remove:`Remover`,add:`Adicionar comando`,invalidLine:`Comando de verificação vazio ou com aspas por fechar: {{line}}`,label:`Nome da verificação (opcional)`,moveUp:`Subir`,moveDown:`Descer`},_={title:`Execuções guardadas`,refresh:`Atualizar`,hint:`Continua no worktree original com o âmbito e as configurações guardadas; o progresso aparece no registo desse trabalho. Não publica nem reinicia a entrega do Desktop. As execuções ativas param a partir dos controlos do trabalho.`,empty:`Não há execuções guardadas.`,loadFailed:`Não foi possível carregar as execuções.`,actionFailed:`Não foi possível atualizar esta execução.`,phase:`Próxima fase: {{phase}}`,approve:`Aprovar conclusão`,recover:`Recuperar fase interrompida`,resume:`Retomar`,cancel:`Cancelar continuação`,status:{running:`A continuar…`,succeeded:`Concluído`,failed:`Falhou`,blocked:`Bloqueado`,paused:`Em pausa`,cancelled:`Cancelado`,interrupted:`Interrompido`,unavailable:`Indisponível`,expired:`Expirado`},question:`O arquiteto pergunta:`,answerLabel:`A sua resposta`,answerPlaceholder:`Responda à pergunta; o arquiteto continua com ela.`,answer:`Responder e retomar`,viewLog:`Ver log do job`,implementation:`Implementação`,preserveProgress:`Continue a partir da fase indicada, preservando o trabalho e as configurações guardadas.`,reviewDelivery:`Implementação concluída. Reveja o resultado no log antes da entrega; esta continuação não o publicou.`,prepareDelivery:`Preparar entrega`,dismiss:`Descartar`,selectRecovery:`Selecione as tentativas interrompidas a recuperar`},v={architect:`Lê o código e escreve a proposta, o design, as tarefas e a spec. Só leitura.`,developer:`Implementa as tarefas com testes. Pode editar ficheiros e executar comandos na sandbox do CLI.`,reviewer:`Confere o resultado com a spec e a evidência de verificação. Só leitura.`},y={title:`Limite de revisão`,hint:`Campos vazios usam o limite do Core. Os valores só podem elevá-lo: pontuação geral de pelo menos {{score}}, segurança de pelo menos {{security}}, outros aspetos de pelo menos {{aspect}}.`,minScore:`Pontuação geral mínima (padrão {{score}})`,aspects:{type_correctness:`Correção de tipos (padrão {{score}})`,pattern_adherence:`Aderência a padrões (padrão {{score}})`,test_coverage:`Cobertura de testes (padrão {{score}})`,security:`Segurança (padrão {{score}})`,architectural_alignment:`Alinhamento arquitetural (padrão {{score}})`}},b={title:`Confiança do arquiteto`,hint:`Após uma passagem de investigação autónoma, um design ainda com baixa confiança pausa com a pergunta do arquiteto ou prossegue com suposições declaradas.`,onLowConfidence:`Com baixa confiança`,ask:`Perguntar (pausar com a pergunta)`,proceed:`Prosseguir com suposições declaradas`},x={title:`Consumo e tempo`,hint:`Inclui correções e chamadas falhadas. O tempo dos agentes inclui as ferramentas. Os tokens em cache fazem parte dos tokens de entrada.`,unknown:`Indisponível`,duration:`Tempo de execução`,agentTime:`Tempo dos agentes`,cost:`Custo reportado`,providerCalls:`Chamadas a agentes`,toolCalls:`Chamadas a ferramentas`,input:`Tokens de entrada`,output:`Tokens de saída`,uncached:`Entrada sem cache`,cacheRead:`Leituras da cache`,cacheWrite:`Escritas na cache`,partial:`Algumas tentativas não têm medições detalhadas.`,phases:`Consumo por fase`,phase:`Fase`,attempts:`Tentativas`},S={title:`Prompts dos papéis dos agentes`,description:`Veja e edite as instruções de cada papel. São partilhadas por todos os projetos e fornecedores; as alterações aplicam-se a novos trabalhos. Os trabalhos retomados mantêm os prompts originais.`,definition:`Definição de {{role}}`,default:`Predefinição de fábrica`,custom:`Personalizado`,restore:`Restaurar predefinição`,contracts:`O contexto da spec, o fluxo OpenSpec e o formato de resposta obrigatório são adicionados automaticamente e não são editados aqui.`,invalid:`Cada definição deve conter entre 1 e 20.000 caracteres, com texto não vazio e sem bytes nulos.`,saved:`Prompts dos papéis guardados`,unsaved:`Alterações por guardar`,discard:`Descartar alterações`,save:`Guardar prompts`,fixerHint:`Usado apenas em rondas de correção: após uma verificação falhada ou uma revisão rejeitada. Corre no motor do developer salvo se Definições ▸ Motor dos agentes ▸ Corretor indicar um próprio. Um fornecedor CLI que retoma a sessão do developer recebe o seguimento curto de correção; a definição aplica-se sempre que arranca uma sessão nova (motores locais, motor corretor, sessão perdida).`},C={title:`Eficiência da implementação`,scope:`Aplica-se a novas execuções. As execuções guardadas mantêm a configuração e o motor originais.`,effort:`Esforço de raciocínio`,providerDefault:`Padrão do fornecedor`,unconfirmed:`Não confirmado`,unknownSupport:`O suporte deste modelo e transporte não está confirmado.`,escalation:`Permitir um nível superior com o mesmo fornecedor`,baseRequired:`Selecione primeiro um modelo base explícito.`,escalationModel:`Modelo de nível superior`,triggers:{architect:`Apenas a investigação aprofundada existente pode selecionar este nível.`,developer:`Após dois candidatos falhados, a próxima tentativa permitida pode selecionar este nível.`,reviewer:`Apenas para reparar respostas inválidas; rejeitar código não ativa este nível.`,fixer:`Só uma rodada de correção pode alcançar este nível; as primeiras passagens nunca executam o corretor.`},contextMode:`Contexto do repositório`,reviewMode:`Revisão de correções`,planning:`Profundidade do planeamento`,adaptive:`Adaptativo`,full:`Completo`,developerChecks:`Aceitar verificações adicionais propostas pelo programador`,concurrency:`Máximo de verificações simultâneas`,concurrencyHint:`Padrão: 1. Apenas verificações independentes declaradas pelo anfitrião em repositórios diferentes podem executar em conjunto. Sem reutilização por padrão.`,checkCapabilities:`Verificar compatibilidade dos modelos`,capabilitiesFailed:`Compatibilidade não confirmada. Atualize Core ou mantenha os padrões do fornecedor.`},w={title:`Evidências de verificação`,acceptance:`Aceitação técnica`,acceptanceStatus:{pending:`Pendente`,validated:`Validado`,"with-exceptions":`Com exceções`,blocked:`Bloqueado`},calls:`Chamadas aos agentes`,executed:`Verificações executadas`,reused:`Verificações reutilizadas`,unknown:`Indisponível`,unavailable:`Evidência indisponível. O resultado guardado não prova a validade atual.`,current:`Candidato e plano atuais`,historical:`Resultado histórico`,moreChecks:`Mais verificações`,output:`Saída da verificação`,empty:`Sem saída`,truncated:`Página limitada ou captura truncada.`,nextPage:`Página seguinte`,status:{passed:`Aprovado`,failed:`Falhou`,cancelled:`Cancelado`,interrupted:`Interrompido`},disposition:{executed:`Executado`,reused:`Reutilizado`,"not-run":`Não executado`},origin:`Origem`,origins:{host:`Anfitrião`,architect:`Arquiteto`,developer:`Programador`,"frozen-runtime-config":`Configuração guardada`,"project-role":`Papel do projeto`,default:`Padrão`,"explicit-launch-override":`Fornecedor escolhido para esta execução`,"loop-role":`Papel do loop`},reuseDisabled:`Reutilização desativada para esta verificação.`,reuseConfirmed:`Reutilizado após confirmar entradas e ferramentas idênticas.`,inputsChanged:`As entradas mudaram durante a verificação; resultado invalidado.`,reuseUnproven:`Sem resultado atual com entradas idênticas comprovadas; executado novamente.`,original:`Execução original`,requested:`Solicitado`,reported:`Reportado`},T={title:`Papéis do loop`,hint:`Motores dos papéis do loop quando um rail é lançado com o motor «Papéis». Os papéis do pipeline acima (architect, developer, reviewer) já vêm desta configuração do runtime.`,verifier:`Verificador`,verifierHint:`Todos os passos de IA do loop fora do core: verify, fix e passos de IA personalizados.`,decider:`Decisor`,deciderHint:`O Loop Decider que lê o veredicto e escolhe o passo seguinte — um modelo barato e rápido é a escolha natural.`,inherit:`Herdar o principal`,model:`Modelo`,effort:`Esforço de raciocínio`,disabled:`O runtime de agentes está desativado — os rails lançados com o motor «Papéis» são recusados até ser ativado.`,saveFailed:`Não foi possível guardar os papéis do loop.`},E={title:`Pipeline de implementação`,explainer:`Estas fases executam nesta ordem em cada implementação. Quando o motor do rail é "{{roles}}", cada fase usa o motor configurado abaixo — fornecedor, modelo e esforço diferentes por fase. Escolher um motor concreto no rail executa todas as fases nesse motor.`,host:`Host`,noCommand:`sem comando`,inherits:`Herda o principal`,inheritsDeveloper:`Herda do desenvolvedor`,open:`Abrir`,collapse:`Recolher`,groups:{core:{title:`Pipeline principal`,hint:`Executa dentro de cada implementação: planear, construir, verificar, corrigir, rever.`},loop:{title:`Passos do loop`,hint:`Passos de IA do loop do rail que envolve a execução (verificar → decidir → corrigir) e dos loops personalizados; herdam o motor principal se não forem definidos.`,chip:`loop do rail`}},phases:{architect:{name:`Arquiteto`,purpose:`Lê o código e escreve a proposta, o design e as tarefas.`},developer:{name:`Desenvolvedor`,purpose:`Implementa as tarefas com testes.`},verification:{name:`Verificação`,purpose:`O host executa as suas verificações; as falhas voltam ao desenvolvedor.`},fixer:{name:`Corretor`,purpose:`Corrige o que a verificação ou a revisão rejeitam; herda do desenvolvedor se não for configurado.`},reviewer:{name:`Revisor`,purpose:`Confere o resultado com a spec e as evidências.`},verifier:{name:`Verificador`,purpose:`Passos de IA verify, fix e personalizados do loop.`},decider:{name:`Decisor`,purpose:`Lê o veredito e escolhe o próximo passo do loop.`}}},D={title:`Motor do corretor`,inherit:`Herdar desenvolvedor`,own:`Motor próprio`,hint:`Só é executado em rodadas de correção: após uma verificação falha ou uma revisão rejeitada; as primeiras passagens continuam no desenvolvedor. Um modelo mais forte ou na nuvem aqui compensa quando o desenvolvedor é um modelo local barato.`},O={title:`Guarda-corpos`,intro:`Regras de processo que o host aplica em torno dos modelos locais para que um modelo pequeno não descarrile. Todas ativas por padrão; desative uma apenas para ajustar o processo. Provedores CLI nunca são afetados.`,unsupported:`Esta instalação do Core não expõe guarda-corpos configuráveis. Atualize o Core para ajustá-los; as regras integradas continuam a aplicar-se.`,active:`{{on}} de {{total}} ativos`,reset:`Restaurar padrões`,phases:{architect:`Arquiteto`,developer:`Desenvolvedor`,host:`Host`},unknown:`Um guarda-corpo adicionado por um Core mais recente; este app ainda não tem descrição para ele.`,items:{"plan-validation":{title:`Plano de tarefas validado`,description:`Rejeita planos que apontam para openspec/, listam nomes de arquivo soltos como tarefas, têm poucas tarefas/grupos para a spec ou deixam critérios de aceitação descobertos; o arquiteto tenta novamente.`,why:`Um plano vago ou incompleto é a razão nº 1 para um modelo desenvolvedor pequeno escrever stubs.`},"genuine-blocking-question":{title:`Apenas perguntas bloqueantes reais`,description:`O arquiteto só pode pausar a execução com uma pergunta real terminada em '?', nunca com texto de exemplo copiado.`,why:`Modelos pequenos repetem os marcadores do prompt e bloqueariam todas as execuções.`},"plan-language-hint":{title:`Planejar na linguagem do repositório`,description:`Informa ao arquiteto a linguagem principal para que os nomes de arquivo das tarefas tenham a extensão correta.`,why:`Um plano JS num repo TypeScript torna impossível marcar as tarefas.`},"frozen-plan-writes":{title:`Artefatos de planejamento estão congelados`,description:`O desenvolvedor não pode escrever em openspec/; o plano pertence ao host.`,why:`Modelos 'implementam' editando o plano em vez do código.`},"primary-language":{title:`Lembrete da linguagem principal`,description:`Cada grupo de tarefas recebe a linguagem principal do repositório; arquivos novos devem usá-la.`,why:`Evita uma segunda implementação em outra linguagem.`},"duplicate-sibling":{title:`Sem módulos gêmeos entre linguagens`,description:`Recusa board.js quando board.ts já existe; estenda o módulo existente.`,why:`Gêmeos compilam ambos e os testes importam o errado.`},"one-test-per-module":{title:`Um arquivo de teste por módulo`,description:`Recusa board.tick.test.ts quando board.test.ts existe; estenda-o em vez disso.`,why:`Senão cada passada de correção adiciona uma suíte nova.`},"empty-write":{title:`Sem sobrescritas vazias`,description:`Uma escrita vazia sobre um arquivo com conteúdo é recusada; escreva o conteúdo completo ou aplique um patch.`,why:`Uma passada de 'limpeza' certa vez deixou index.ts com 0 linhas.`},"evidence-gated-ticking":{title:`Evidência antes de marcar uma tarefa`,description:`Uma tarefa que nomeia arquivos só está concluída quando eles existem e não são stubs (extensões irmãs aceitas).`,why:`Sem isso, 'concluído' é só uma afirmação e a verificação roda contra nada.`},"inventory-retry":{title:`Tentar de novo com o inventário real`,description:`Quando o modelo desiste alegando que o repo está vazio sem estar, tenta uma vez mais com a lista de arquivos.`,why:`Segunda chance barata em vez de um passo falhado.`},"synthetic-corrections":{title:`Transformar feedback em tarefas`,description:`Quando todas as tarefas estão marcadas mas review/verify falharam, o feedback vira tarefas de correção concretas.`,why:`Senão o desenvolvedor responde 'já está feito' e nada muda.`},"silent-group-closure":{title:`Fechar grupos silenciosos, manter seus arquivos`,description:`Um grupo cujo modelo para de responder é fechado creditando os arquivos que escreveu e deixando suas tarefas abertas, em vez de falhar a execução.`,why:`Um modelo 9B escreveu cinco módulos, silenciou e toda a execução falhou.`},"environment-repair":{title:`O host repara o ambiente`,description:`Dependências ou ferramentas de teste ausentes (npm install, ts-jest, @types/jest, módulos de config do Jest) são instaladas pelo host e a verificação roda de novo uma vez.`,why:`O modelo não consegue consertar o ambiente e gasta correções tentando.`},"lockfile-repair":{title:`Descartar lockfiles escritos à mão`,description:`Um package-lock.json inventado pelo modelo (EINTEGRITY/ETARGET) é removido e a instalação repetida uma vez.`,why:`Hashes inventados nunca instalam.`},"verify-idle-timeout":{title:`Parar testes travados`,description:`Um comando de verificação sem saída por 5 minutos é interrompido e reportado como provável travamento (última saída incluída).`,why:`Senão um laço while num teste segura a execução até o limite de 15 minutos.`},"verify-per-group":{title:`Verificar após cada grupo`,description:`Executa o comando de teste do repositório logo após cada grupo de tarefas; uma falha recebe uma ronda de correção imediata com o contexto do grupo ainda fresco.`,why:`Cinco suites partidas no fim são muito mais difíceis de corrigir do que uma de cada vez.`},"test-reachability":{title:`Todo teste novo tem de correr mesmo`,description:"Um ficheiro de teste escrito pelo developer que o comando de teste do repositório nunca executa (um script `test` enumerativo que omite o ficheiro novo) falha a verificação com o ficheiro exato, primeiro ao nível do grupo e de novo na verificação do host.",why:`Uma suite de 622 linhas com seis casos a falhar chegou verde porque nada a executou.`},"exit-code-honesty":{title:`Desconfiar de um exit 0 que reporta falhas`,description:'Um comando de verificação que sai com 0 enquanto a saída imprime falhas (linhas `FAIL:`, "3 failed", um AssertionError) é tratado como FALHADO e entregue ao corretor com o harness apontado como o defeito.',why:`Um runner de testes caseiro que nunca definia um exit code diferente de zero entregou três testes vermelhos como verdes.`}}},k=`Alterações não guardadas`,A={title:`Funções personalizadas`,hint:`Defina instruções reutilizáveis e permissões explícitas para as funções do fluxo.`,unsupported:`Atualize o Core para editar funções personalizadas.`,remove:`Remover {{id}}`,access:`Acesso ao código`,read:`Somente leitura`,write:`Leitura e escrita`,artifacts:`Acesso aos artefatos OpenSpec`,none:`Nenhum`,tasks:`Somente caixas de tarefas`,all:`Todos os artefatos da alteração`,skill:`Skill do OpenSpec`,noSkill:`Nenhuma skill associada`,prompt:`Instruções da função`,id:`ID da função`,add:`Adicionar função`,invalidId:`Use um ID único em minúsculas que comece com uma letra, com até 64 letras, números ou hífens. Os IDs integrados são reservados.`,escalationHint:`Somente uma correção permitida do protocolo pode usar o modelo de escalonamento. Nenhuma tentativa extra é adicionada.`},j={title:`Instruções de execução`,hint:`O Core guarda estas instruções para o próximo turno de agente compatível. O envio não responde a perguntas nem concede aprovações.`,label:`Instruções adicionais`,send:`Enviar instruções`,accepted:`Recebidas pelo Core; aguardando utilização.`,pending:`Aguardando um turno de agente`,consumed:`Utilizadas por um agente`,counts:`Pendentes: {{pending}} · Utilizadas: {{consumed}}`,failed:`Não foi possível enviar as instruções. Tente novamente para confirmar a mesma mensagem.`,unavailable:`Os detalhes dos recibos estão indisponíveis.`,unreported:`Esta versão do Core não informa a utilização.`,truncated:`São apresentados apenas os recibos recentes e as mensagens pendentes.`},M={title:`Valores padrão do papel do Core`,hint:`Estes valores do arquivo aplicam-se a novos workflows. As configurações explícitas do projeto têm prioridade; as execuções salvas mantêm as configurações fixadas.`,invalid:`Corrija o cabeçalho YAML no editor antes de alterar os campos do papel.`,escalationEffort:`Esforço de raciocínio do modelo superior`},N={title:`Retenção do histórico`,description:`Elimine históricos expirados e versões do Core sem uso. Históricos eliminados não podem ser retomados nem bifurcados. Execuções ativas ou recuperáveis e entregas pendentes ficam protegidas; registos de trabalhos e custos são mantidos.`,forever:`Manter o histórico indefinidamente`,days:`Dias de retenção`,save:`Guardar retenção`,preview:`Pré-visualizar limpeza`,collect:`Eliminar histórico expirado`,previewSummary:`Elegíveis: {{runs}} históricos e {{packages}} versões do Core sem uso.`,collectedSummary:`Expirados: {{runs}} históricos. Removidas: {{packages}} versões do Core sem uso.`,more:`{{count}} execuções adicionais.`,failed:`Não foi possível consultar ou atualizar a retenção.`,expired:`Este histórico expirou segundo a política do projeto. O registo do trabalho e a contabilidade continuam disponíveis.`,loading:`A carregar a política…`,states:{protected:`Mantido`,eligible:`Elegível`,expired:`Expirado`,cleanup_pending:`Limpeza pendente`,busy:`Em uso`,error:`Falha na inspeção`},reasons:{disabled:`Retenção indefinida`,recoverable:`Recuperação ainda disponível`,active:`Execução ativa`,human_pending:`A aguardar resposta humana`,interrupted_writes:`Escritas interrompidas por rever`,delivery_pending:`Entrega pendente`,fork_pending:`Existe uma bifurcação dependente`,unknown_terminal_time:`Data de conclusão desconhecida`,within_retention:`Dentro do período de retenção`}},P={title:`Loop agents`,hint:`These definitions are shared by every project using this loop. Duplicate the loop to customize a separate workflow.`,legacy:`This saved loop still uses historical project agents. Import them or enable loop agents before changing its configuration.`,enable:`Use loop agents`,import:`Import current project agents`,restoreDefinition:`Usar a definição do Core`,default:`Provider default`,effort:`Reasoning effort`,escalationModel:`Escalation model`,escalationEffort:`Escalation effort`,policy:`Workflow policy`,maxAttempts:`Maximum correction attempts`,maxTokens:`Token budget`,maxCostUsd:`Cost budget (USD)`,timeoutMs:`Run timeout (ms)`,projectHint:`Configure repository checks here. Agent definitions, models and workflow policy are configured in the loop editor. Historical project agents can be imported into a duplicated loop.`,showUnused:`Also show agents not used in this loop`,stepTitle:`Step agent and options`,stepHint:`Edit this step’s agent definition and engine. Steps using the same role in this loop share these settings.`,inheritProvider:`Herdar o fornecedor da missão`,inheritDefinition:`Segue a definição do Core: cada atualização do Core renova-a automaticamente.`,customizeDefinition:`Personalizar para este loop`,coreDefinitionUnavailable:`Pré-visualização indisponível até instalar um runtime do Core.`},F={title:e,description:t,loading:n,loadFailed:r,retry:i,unavailable:a,save:o,saving:s,saved:c,saveFailed:l,approvalBeforeArchive:u,providers:d,cliNames:f,roles:p,agents:m,limits:h,verification:g,runs:_,roleHints:v,review:y,architect:b,metrics:x,prompts:S,efficiency:C,evidence:w,loopRoles:T,pipeline:E,fixer:D,guardrails:O,unsavedChanges:k,customRoles:A,steering:j,studioRole:M,retention:N,loopAgents:P};export{m as agents,u as approvalBeforeArchive,b as architect,f as cliNames,A as customRoles,F as default,t as description,C as efficiency,w as evidence,D as fixer,O as guardrails,h as limits,r as loadFailed,n as loading,P as loopAgents,T as loopRoles,x as metrics,E as pipeline,S as prompts,d as providers,N as retention,i as retry,y as review,v as roleHints,p as roles,_ as runs,o as save,l as saveFailed,c as saved,s as saving,j as steering,M as studioRole,e as title,a as unavailable,k as unsavedChanges,g as verification};
|