@wrongstack/webui 0.301.0 → 0.302.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.
Files changed (54) hide show
  1. package/dist/assets/{AgentRosterView-BV6ysoGs.js → AgentRosterView-PafACoYi.js} +1 -1
  2. package/dist/assets/{AnalyticsDashboard-UWNP8zjE.js → AnalyticsDashboard-D5lvkaiF.js} +1 -1
  3. package/dist/assets/{AudienceMemoryPanel-DwDKbvSA.js → AudienceMemoryPanel-DUXllPor.js} +1 -1
  4. package/dist/assets/{ChangesView-DuVlGWkD.js → ChangesView-CKLN6MLR.js} +1 -1
  5. package/dist/assets/{ChronicleDashboard-cs16n708.js → ChronicleDashboard-B8OyHq18.js} +1 -1
  6. package/dist/assets/{CodeEditor-sr50ljZN.js → CodeEditor-BtAkdKFs.js} +1 -1
  7. package/dist/assets/{CodeMap-CtK-C8gK.js → CodeMap-6L-z-L7d.js} +1 -1
  8. package/dist/assets/{ConfirmModal-ndS17YwF.js → ConfirmModal-B0BCqW4j.js} +1 -1
  9. package/dist/assets/{CronJobsPanel-Dovomns5.js → CronJobsPanel-B-rRYNgE.js} +1 -1
  10. package/dist/assets/{DeadCodeScanPanel-DjR4LLMs.js → DeadCodeScanPanel-CDbBO9Ic.js} +1 -1
  11. package/dist/assets/{DebugDashboard-jK1yp3qS.js → DebugDashboard-RAxaJDNV.js} +1 -1
  12. package/dist/assets/{DesignGalleryView-CqXlEUzE.js → DesignGalleryView-4kdGN1D5.js} +1 -1
  13. package/dist/assets/{GoalView-CGNLrnA4.js → GoalView-By18NfaK.js} +1 -1
  14. package/dist/assets/KanbanView-dyfUjpC5.js +3 -0
  15. package/dist/assets/{MailboxDetailView-0TBzZTdN.js → MailboxDetailView-BNyJNz-3.js} +1 -1
  16. package/dist/assets/{MemoryManager-CDK_MO8A.js → MemoryManager-BbZ-1pfr.js} +1 -1
  17. package/dist/assets/{ModelPicker-BbBZuQwR.js → ModelPicker-DwNrO_jw.js} +1 -1
  18. package/dist/assets/{OfficeMapPanel-68sVzHRD.js → OfficeMapPanel-Bo-cCLV7.js} +1 -1
  19. package/dist/assets/{ProcessMonitor-gFwiF8gX.js → ProcessMonitor-DPEMjjVq.js} +1 -1
  20. package/dist/assets/{QueuePanel-Cx-isRGl.js → QueuePanel-Dx9n4NZB.js} +1 -1
  21. package/dist/assets/{RefreshDebugView-C9tdu6Ld.js → RefreshDebugView-On6-vb92.js} +1 -1
  22. package/dist/assets/{RequirementIntakeView-cPEw-RpV.js → RequirementIntakeView-DpnZRVDz.js} +1 -1
  23. package/dist/assets/{SageTabs-BbK6VFO0.js → SageTabs-D5CzIKGe.js} +2 -2
  24. package/dist/assets/{SddHub-NKvDRECi.js → SddHub-BMedBDDs.js} +1 -1
  25. package/dist/assets/{SessionInspectView-DPG5qWhj.js → SessionInspectView-Crs1g_xM.js} +1 -1
  26. package/dist/assets/{SessionList-ncl-20X_.js → SessionList-SsEjoeJF.js} +1 -1
  27. package/dist/assets/{SessionsDashboard-D23UVLr4.js → SessionsDashboard-DYw9vuIv.js} +1 -1
  28. package/dist/assets/{SetupScreen-D3XQ8MGk.js → SetupScreen-Mr604Nx3.js} +1 -1
  29. package/dist/assets/{SkillDetailView-DDPhVFet.js → SkillDetailView-gt-Nm_ZI.js} +1 -1
  30. package/dist/assets/{SpecsView-afIS0QpX.js → SpecsView-CVVQSIZZ.js} +1 -1
  31. package/dist/assets/{TechStackView-kQ2OGxxw.js → TechStackView-BNen0ZpH.js} +1 -1
  32. package/dist/assets/{TerminalPanel-GcJWeldW.js → TerminalPanel-BByD75cu.js} +1 -1
  33. package/dist/assets/{Toaster-CgQA9256.js → Toaster-Cz-_rtgo.js} +1 -1
  34. package/dist/assets/{activity-DxDRJ8kN.js → activity-B0cam54R.js} +1 -1
  35. package/dist/assets/{activity-Ba3aMzvo.js → activity-B3FDXYFE.js} +1 -1
  36. package/dist/assets/{activity-DsSuflRW.js → activity-D7dMY0Jm.js} +1 -1
  37. package/dist/assets/{activity-VI776bUZ.js → activity-DXNwLcwn.js} +1 -1
  38. package/dist/assets/{activity-CRTVZ5A4.js → activity-DmdoxMAj.js} +1 -1
  39. package/dist/assets/{activity-B-cvKIfT.js → activity-IZoezahu.js} +1 -1
  40. package/dist/assets/{activity-nVmsmqAI.js → activity-jOHsoosT.js} +1 -1
  41. package/dist/assets/{i18n-COgumVF5.js → i18n-ags7mYPP.js} +2 -2
  42. package/dist/assets/index-Cw20Xg0d.css +1 -0
  43. package/dist/assets/{index-CtpViiZy.js → index-Doa2aJ1A.js} +4 -4
  44. package/dist/assets/{progress-ring-D_48qsBl.js → progress-ring-BxJsZCnD.js} +1 -1
  45. package/dist/assets/{stores-ChEnUmic.js → stores-Bz5nhi7q.js} +1 -1
  46. package/dist/assets/{useWebSocket-_gk4MRJz.js → useWebSocket-BHzEXXna.js} +1 -1
  47. package/dist/components/KanbanBoardState.d.ts +0 -1
  48. package/dist/components/KanbanTaskInspector.d.ts +1 -2
  49. package/dist/index.html +9 -9
  50. package/dist/index.js +646 -480
  51. package/dist/lib/kanban-cleaner.d.ts +7 -1
  52. package/package.json +8 -8
  53. package/dist/assets/KanbanView--tAf_K7N.js +0 -3
  54. package/dist/assets/index-fIsq43fR.css +0 -1
@@ -2,7 +2,7 @@ var e={chat:`Sessione`,agents:`Agenti`,history:`Cronologia`,files:`File`,changes
2
2
 
3
3
  Doppio clic per rinominare`,unfavorite:`Rimuovi dai preferiti`,markFavorite:`Segna come preferito`,deleteSessionConfirmTitle:`Eliminare la sessione?`,deleteSessionConfirmBody:`"{{name}}" verrà rimossa dal disco. Operazione irreversibile.`,deleteSessionTitle:`Elimina sessione`,rename:`Rinomina sessione`,renameAction:`Rinomina`,resume:`Riprendi sessione`,resumeShort:`Riprendi`,workspaceEyebrow:`Controllo sessione`,workspaceTitle:`Sessioni`,workspaceHint:`Cerca, ispeziona, fissa e riprendi tutte le conversazioni del progetto.`,tabs:{history:`Cronologia`,live:`Sessioni attive`},filters:{all:`Tutte`,favorites:`Preferite`,active:`Attive`,completed:`Completate`,issues:`Problemi`},status:{active:`Attiva`,completed:`Completata`,error:`Errore`,timeout:`Timeout`,aborted:`Annullata`,saved:`Sessione salvata`},sort:{label:`Ordina sessioni`,recent:`Più recenti`,tokens:`Più token`,activity:`Più attività`},stats:{sessions:`Sessioni`,tokens:`Token`,tools:`Chiamate strumenti`,files:`File modificati`,errors:`Errori`},inspect:`Ispeziona sessione`},f={actions:{abort:`Interrompi`,newSession:`Nuova sessione`,export:`Esporta`,compact:`Comprimi`,newSessionConfirm:`Confermi?`,newSessionConfirmMessage:`Un'attività è ancora in corso. Avviare comunque una nuova sessione?`,newSessionTitle:`Avvia una nuova sessione (Ctrl+N)`,exportTitle:`Esporta la chat come markdown (Ctrl+E)`,compactTitle:`Comprimi la finestra di contesto`,clearTitle:`Cancella il contesto (Ctrl+L)`},model:`Modello`,modelTitle:`Cambia modello (Ctrl+M)`,context:`Contesto`,contextTitle:`Clicca per un dettaglio del contesto`,sessionLabel:`Sessione`,stats:{messages:`Messaggi`,elapsed:`Trascorso`,tokens:`Token`,cost:`Costo`,iteration:`Iterazione`,agents:`Agenti`,tokensSub:`{{in}} in / {{out}} out`,iterationOf:`di {{max}}`,agentsRunning:`{{count}} in esecuzione`},plan:`Piano`,planComplete:`{{pct}}% completato`,pinned:`Fissati`,quickSettings:`Impostazioni rapide`,autonomy:`Autonomia`,autonomyTitle:`Interrompi l'esecuzione automatica dei passaggi successivi. Disattiva per fermare il ciclo autonomo dell'agente`,autonomyOptions:{off:`Off`,suggest:`Suggerisci`,auto:`Auto`,eternal:`Perpetuo`,"eternal-parallel":`Perpetuo Parallelo`},yolo:`Modalità YOLO`,yoloTitle:`Ignora le conferme degli strumenti`,refine:`Affina i prompt`,refineTitle:`Riscrivi i prompt prima dell'invio`,sound:`Suono al completamento`,soundTitle:`Riproduci un dolce suono al termine di un'esecuzione`,sessionId:`sessione {{id}}`},p={status:{running:`in esecuzione`,completed:`completato`,failed:`fallito`,timeout:`timeout`,stopped:`fermato`},leader:`leader`,providerModel:`Provider / Modello`,elapsed:`Trascorso`,running:`in corso…`,iterations:`Iterazioni`,toolCalls:`Chiamate strum.`,cost:`Costo`,budgetExtensions:`Estensioni budget`,activity:`Attività`,contextWindow:`Finestra di contesto`,tokensUsed:`{{used}} / {{max}} token`,toolRunning:`in esecuzione…`,lastTool:`ultimo strumento`,error:`Errore`,finalOutput:`Output finale`,copyOutput:`Copia output`,liveOutput:`Output live`,waitingOutput:`In attesa di output…`,outputHint:`L'output appare qui mentre l'agente trasmette il testo.`,toolLog:`Log strumenti ({{count}} chiamate)`,fail:`fallito`,moreTools:`+{{count}} altri strumenti`,cardRunning:`in esecuzione {{tool}}`,cardLastTool:`ultimo: {{tool}}`,contextPercent:`Contesto {{pct}}%`,doneCount:`{{count}} completati`,errCount:`{{count}} err`,statusRunning:`in corso`,statusDone:`completato`,statusFailed:`fallito`,statusTimeout:`timeout`,statusStopped:`fermato`,hittingLimitTitle:`⚡ raggiunge il limite {{kind}} ({{used}}/{{limit}})`,budgetExt_one:`{{count}} estensione budget`,budgetExt_other:`{{count}} estensioni budget`,extendedTimes_one:`L'agente ha esteso il budget {{count}} volta per attività lunghe`,extendedTimes_other:`L'agente ha esteso il budget {{count}} volte per attività lunghe`,errorLabel:`Errore`,failureReason:`Motivo fallimento`,failed:`Fallito`},m={wsNotConnected:`WebSocket non connesso`,noData:`Nessun dato di debug ricevuto. Il server potrebbe non supportare il debug del contesto.`,title:`Dettaglio contesto`,windowUsage:`Utilizzo finestra`,contextMode:`Modalità contesto`,fetching:`Recupero del dettaglio del contesto…`,systemPrompt:`Prompt di sistema`,tools:`Strumenti`,messages:`Messaggi`,tokenAllocation:`Allocazione token`,systemTitle:`Sistema: {{tokens}}`,toolsTitle:`Strumenti: {{tokens}}`,messagesTitle:`Messaggi: {{tokens}}`,system:`Sistema`,toolBreakdown:`Dettaglio strumenti`,messagesSummary:`Messaggi ({{count}}) — {{total}} tok`,barWithTokens:`Finestra di contesto: {{tokens}} / {{max}} token ({{pct}})`,barPct:`Finestra di contesto: {{pct}}`,barClick:` — clicca per il dettaglio`},h={header:`✨ Affina prompt`,autoSend:`invio automatico in {{count}} s`,cancelTitle:`Annulla (Esc)`,editLabel:`Modifica il prompt affinato:`,editPlaceholder:`Modifica il prompt affinato...`,useEdit:`Usa modifica`,original:`Originale`,refined:`Affinato`,yourLanguage:`(la tua lingua)`,refinedTitle:`Clicca o premi Invio per usare questa versione`,copyToInputTitle:`Copia nell'input senza inviare`,english:`Inglese`,englishTitle:`Premi e per la versione inglese`,hintRefined:`affinato`,hintEnglish:`Inglese`,hintOriginal:`originale`,hintEdit:`modifica`,hintRetry:`riprova`,edit:`Modifica`,useRefined:`Usa affinato`,langOriginal:`Original`,langEnglish:`English`,languageTitle:`Cambia la lingua predefinita di rifinitura — Originale o inglese`,yolo:`YOLO`,yoloTitle:`Salta le richieste di conferma degli strumenti`,refining:`Refining…`,sendAsIs:`Send as-is`,failedHeader:`Refinement failed`,retry:`Retry (more time)`,retryBetter:`Riprova meglio`,retryFallback:`Retry with {{model}}`,pickModel:`Another model…`,pickModelTitle:`Riprova la rifinitura con un altro modello`,pickModelHint:`Scegli un provider/modello su cui rieseguire questa rifinitura. Il modello della sessione resta invariato.`,countdownHeader:`✨ Il perfezionamento inizia tra…`,countdownYourMessage:`Il tuo messaggio`,countdownHint:`Il perfezionamento inizia tra {{seconds}}s. Clicca "Invia tale quale" per saltare.`,countdownStartNow:`Perfeziona ora`,countdownSendAsIs:`Invia tale quale`,cancelRefineSendOriginal:`Annulla e invia originale`},g={heading:`Specifiche`,subtitle:`Visualizza e gestisci lo sviluppo guidato dalle specifiche`,empty:`Nessuna spec trovata. Usa {{command}} per crearne una.`,tasks:`Attività ({{count}})`,doneCount:`{{count}} completate`,runningCount:`{{count}} in corso`,pendingCount:`{{count}} in attesa`,runTitle:`Esegui questa spec come un job multi-agente live`,run:`Esegui`,runAsSdd:`Esegui come SDD`,runAsSddTitle:`Avvia un run SDD multi-agente in parallelo (worktree, verifica, board live)`,runAsGoal:`Esegui come Goal`,runAsGoalTitle:`Avvia un Goal a fasi dalle colonne attività di questa spec`,list:`Lista`,graph:`Grafo`,loadingTasks:`Caricamento attività…`},_={heading:`Verificatore di resilienza F5`,subtitle:`Conferma che l'ultima sessione attiva, la trascrizione e lo stato UI sopravvivono a un aggiornamento della pagina. Apri questa vista, poi premi F5 — ogni riga verde dovrebbe restare verde.`,recordProbe:`Registra sondaggio`,latestSession:`Ultima sessione attiva`,restoredLocal:`Ripristinato da localStorage`,sessionIdExtra:`id sessione: {{id}}`,noSessionYet:`nessuna sessione è ancora stata avviata`,activePointer:`Puntatore sessione attiva`,lastVisited:`timestamp lastVisitedAt`,never:`mai`,persistedEnv:`Ambiente persistente`,transcriptRehydrate:`Reidratazione trascrizione chat`,localTranscript:`Trascrizione locale recuperata`,messagesExtra:`{{count}} messaggi, {{queued}} in coda`,noMessages:`0 messaggi`,noBleed:`Nessuna perdita tra sessioni`,bleedExtra:`collegato={{bound}} vs attivo={{active}}`,transcriptBinds:`la trascrizione si lega alla sessione attiva`,uiWorkspace:`Area di lavoro UI`,noneValue:`(nessuno)`,payloadSize:`Carico utile localStorage (4 chiavi): {{count}} caratteri`,probeLog:`Registro sondaggi`,noProbes:`Nessun sondaggio ancora — premi il pulsante "Registra sondaggio" in alto, oppure F5 in questa vista, per registrare un controllo di reidratazione.`,simulatedF5:`F5 simulato: riesecuzione di persist rehydrate`},v={status:{pending:`In attesa`,in_progress:`In corso`,review:`Revisione`,failed:`Fallito`,completed:`Completato`,queued:`In coda`,blocked:`Bloccato`,cancelled:`Annullato`},newTaskTitle:`Nuova attività`,newTaskPlaceholder:`Titolo attività…`,addTask:`Aggiungi attività`,empty:`Nessuna fase ancora — avvia un'esecuzione Goal per popolare la bacheca.`,summary:`{{phases}} fasi · {{tasks}} attività`,phases:`Fasi`,statusTab:`Stato`,dropHere:`Trascina le attività qui`,emptySpec:`Nessuna attività in questa spec ancora.`,depGraphHeading:`Grafo delle dipendenze`,worktreePrefix:`worktree: {{branch}}`},y={trendUp:`In aumento`,trendDown:`In diminuzione`,trendStable:`Stabile`,heading:`Dashboard di debug`,subtitle:`Monitoraggio in tempo reale per WrongStack WebUI`,refreshLabel:`Aggiorna:`,lastUpdated:`Ultimo aggiornamento: {{time}}`,fetchFailed:`Recupero delle metriche non riuscito`,fileWatcher:`File Watcher`,watcherStatus:`Stato watcher`,running:`In esecuzione`,stopped:`Fermo`,activeProjects:`Progetti attivi`,projectsWatched:`Progetti monitorati`,fileChanges:`Modifiche file`,totalDetected:`Totale rilevato`,filesProcessed:`File elaborati`,afterHash:`Dopo filtro hash`,broadcastsSent:`Broadcast inviati`,toClients:`Ai client WebUI`,debounceResets:`Reset debounce`,rapidWrites:`Scritture rapide successive`,avgDebounce:`Ritardo debounce medio`,actualDelay:`Ritardo effettivo applicato`,totalDelay:`Ritardo totale`,sumDelays:`Somma di tutti i ritardi`,browserPerf:`Prestazioni browser`,heapUsed:`Heap usato`,jsHeap:`Heap JavaScript`,heapTotal:`Heap totale`,totalHeap:`Dimensione totale heap`,pageUptime:`Tempo di attività pagina`,sinceLoad:`Dal caricamento`,rawData:`Dati grezzi`},b={allowlistTitle:`Elenco modelli consentiti`,modelCount_one:`{{count}} modello`,modelCount_other:`{{count}} modelli`,using:`In uso`,noModelPicked:`(nessun modello scelto)`,clearAllowlist:`Cancella allowlist`,clearAllowlistAria:`Cancella l'allowlist salvata per {{provider}}`,refresh:`Aggiorna dal server`,refreshAria:`Aggiorna l'elenco modelli per {{provider}}`,probing:`Verifica…`,searchPlaceholder:`Cerca modelli…`,use:`Usa`,useModelAria:`Usa il modello {{model}} per {{provider}}`},x={expandChip:`Espandi {{label}}`,collapseChip:`Comprimi {{label}}`,ahead:`{{count}} in avanti`,behind:`{{count}} indietro`,linesAdded:`{{count}} righe aggiunte`,linesDeleted:`{{count}} righe eliminate`,untrackedFiles:`{{count}} file non tracciati`,customizeTitle:`Personalizza chip del dock`,dockChips:`Chip del dock`,noActiveGoal:`Nessun obiettivo attivo`,noActiveGoalDetail:`Avvia un obiettivo dalla chat o dal comando goal.`,closeWorkspaceInspector:`Chiudi l'ispettore del workspace`,goal:`Obiettivo`,goalState:`Stato dell'obiettivo`,goalStateDetail:`Obiettivo attivo e avanzamento`,fleet:`Flotta`,fleetDetail:`Roster degli agenti in tempo reale e attività`,work:`Lavoro`,workDetail:`To-do, attività e piano`,worktrees:`Worktree`,worktreesDetail:`Rami e corsie paralleli`,collab:`Collab`,collabDetail:`Partecipanti alla sessione e controlli`,inspector:`Ispettore del workspace`,inspectorNamed:`Ispettore del workspace {{name}}`,workspace:`Workspace`,workspaceDetails:`Dettagli del workspace`},S={leaderBadge:`LEADER`,iters:`Iter.`,tools:`Strumenti`,activityBins:`Attività (12 bin)`,streamingOutput:`Output in streaming`,recentTools:`Strumenti recenti`,finalOutput:`Output finale`,heading:`Monitor agenti`,prevAgent:`Agente precedente`,nextAgent:`Agente successivo`,closeAria:`Chiudi monitor agenti`,hintPage:`←→ pagina`,hintNavigate:`↑↓ naviga elenco`,hintEsc:`Esc chiudi`},C={resize:`Ridimensiona terminali`,labelSingular:`Terminale`,labelPlural:`Terminali`,projectShell:`Shell del progetto`,maxTerminals:`Massimo {{count}} terminali`,newTerminal:`Nuovo terminale`,restart:`Riavvia terminale attivo`,closeAll:`Chiudi tutti i terminali`,closeDock:"Chiudi dock del terminale (Ctrl+`)",closeTab:`Chiudi {{name}}`,processExited:`[processo terminato con codice {{code}}]`},w={liveStream:`Stream dal vivo`,events_one:`{{count}} evento`,events_other:`{{count}} eventi`,interruptTitle:`Ferma cooperativamente questo agente al prossimo passo (non un kill)`,interrupt:`⏸ Interrompi`,interrupting:`…`,loading:`Caricamento sessione…`,done:`✓✓ fatto`,read:`✓ letto`,delivered:`⏳ consegnato`,agent:`Agente`,you:`Tu`,working:`{{name}} · in lavoro`,claude:`Claude`,priority:`Priorità`,placeholder:`{{label}} → questa sessione…`,send:`Invia`,sendHint:`⌘/Ctrl+Invio per inviare · visibile alla prossima iterazione dell'agente`,msgType:{steerLabel:`🔄 Dirigi`,steerHint:`Regola il comportamento durante l'attività`,askLabel:`❓ Chiedi`,askHint:`Domanda — attende una risposta`,assignLabel:`📋 Assegna`,assignHint:`Un'attività da svolgere`,noteLabel:`💬 Nota`,noteHint:`Per info, non urgente`},sentRunning:`Consegnato — l'agente in esecuzione lo vedrà al prossimo passo`,sentIdle:`Consegnato — il target è inattivo; appare nella sua mailbox, letto alla prossima esecuzione`,sentFailed:`Non riuscito: {{error}}`,interruptReason:`L'operatore ha richiesto l'arresto da Fleet HQ`,interruptSent:`Interruzione inviata — l'agente si ferma al prossimo passo (non un kill)`,interruptFailed:`Interruzione non riuscita: {{error}}`},T={empty:`Nessun effetto collaterale registrato ancora.`,emptyHint:`I comandi bash, le installazioni di pacchetti e le richieste di rete appariranno qui.`,heading:`Effetti collaterali`,exportTitle:`Esporta gli effetti collaterali filtrati come CSV`,all:`Tutti`,colTime:`Ora`,colTool:`Strumento`,colRisk:`Rischio`,colDetail:`Dettaglio`,colOutcome:`Esito`},E={elapsedHm:`{{h}}h {{m}}m fa`,elapsedMs:`{{m}}m {{s}}s fa`,elapsedS:`{{s}}s fa`,heading:`Monitor della flotta`,clientsHeading:`Client connessi`,terminal:`Terminale`,webui:`UI Web`,repl:`REPL`,totalConnected:`connessi in totale`,mailQueue:`Coda di posta`,total:`Totale`,open:`Aperti`,unread:`Non letti`,agents:`Agenti`,messagesSub:`messaggi`,uncompletedSub:`non completati`,waitingSub:`in attesa`,ofTotal:`su {{count}} totali`,agentRoster:`Elenco agenti`,liveMailActivity:`Attività posta dal vivo`,noActivity:`Nessuna attività recente`,mailboxAgents:`Agenti mailbox`,noMailboxAgents:`Nessun agente registrato`,moreCount:`+{{count}} altri`,agentFallback:`agente`,fleetAgents:`Agenti flotta`,noFleetAgents:`Nessun agente flotta in esecuzione`,iter:`iter.`,mailType:{sent:`Inviato`,delivered:`Consegnato`,read:`Letto`,completed:`Completato`}},D={status:{pending:`in attesa`,queued:`in coda`,in_progress:`in corso`,blocked:`bloccato`,review:`revisione`,failed:`fallito`,completed:`completato`,cancelled:`annullato`},activityHeading:`Attività`,feedEmpty:`Ancora nulla — gli eventi appaiono qui man mano che gli agenti prendono e completano le attività.`,destroyTitle:`Distruggere il progetto SDD?`,destroyDesc:`Questo cancella il run e il suo lavoro. Non può essere annullato (il revert opzionale preserva la cronologia).`,stopRun:`Ferma il run`,stopRunAgents_one:`Ferma il run ({{count}} agente attivo)`,stopRunAgents_other:`Ferma il run ({{count}} agenti attivi)`,removeWorktreesAll:`Rimuovi tutti i worktree git + branch wstack/ap/* — incluso il lavoro non mergiato`,removeWorktreesCount_one:`Rimuovi {{count}} worktree git + branch wstack/ap/* — incluso il lavoro non mergiato`,removeWorktreesCount_other:`Rimuovi {{count}} worktree git + branch wstack/ap/* — incluso il lavoro non mergiato`,deleteArtifacts:`Elimina tutti gli artefatti SDD (spec, grafo attività, board, sessione)`,revertMerged_one:`Revert anche {{count}} commit mergiato`,revertMerged_other:`Revert anche {{count}} commit mergiati`,revertHint:`Aggiunge commit di revert (cronologia preservata). Rifiutato se l'albero di lavoro è sporco.`,baseBranchFallback:`il branch di base`,noteLeaveMerged:`I commit mergiati resteranno sul branch di base. Spunta la casella sopra per annullare anche quelli.`,noteAbandon:`Assicurati di voler davvero abbandonare questo run.`,destroying:`Distruzione…`,destroyAll:`Distruggi tutto`,kanbanBacklog:`Backlog`,kanbanReady:`Pronto`,kanbanRunning:`In corso`,kanbanReview:`Revisione`,kanbanFailed:`Fallito`,kanbanDone:`Completato`,kanbanEmpty:`vuoto`},O={collapseToLines:`Comprimi alle prime {{count}} righe`,showAllLines:`Mostra tutte le {{total}} righe ({{more}} in più)`,exitCode:`codice di uscita:`,jsonLines:`JSON · {{count}} righe`,collapse:`comprimi`,expand:`espandi`},k={heading:`Design Studio — Galleria`,kitsCount:`{{count}} kit`,searchPlaceholder:`Cerca kit…`,stackTitle:`Stack per Use + Materialize`,wrote:`Scritto {{path}}`,materializeFailed:`Materialize non riuscito: {{error}}`,verifyError:`Verifica: {{error}}`,verifyOffPalette:`Verifica: {{pct}}% on-palette — {{count}} off-palette in {{files}} file`,verifyClean:`Verifica: pulito ✓ ({{files}} file on-palette)`,writing:`Scrittura del file di tema…`,scanning:`Scansione dei file UI…`,active:`Attivo`,reapply:`Riapplica`,use:`Usa`,materializeTitle:`Scrivi i token in un file di tema {{stack}}`,materialize:`Materializza`,verifyTitle:`Scansiona i file UI per colori fuori palette`,verify:`Verifica`,colors:`Colori`},A={summary_one:`{{count}} fase · {{pct}}% completato`,summary_other:`{{count}} fasi · {{pct}}% completato`,switchBoard:`Cambia bacheca`,boardsCount_one:`{{count}} bacheca…`,boardsCount_other:`{{count}} bacheche…`,toggleAutonomousTitle:`Attiva/disattiva modalità autonoma`,autonomous:`Autonomo`,manual:`Manuale`,resumeTitle:`Riprendi l'esecuzione`,pauseTitle:`Sospendi l'esecuzione`,resume:`Riprendi`,pause:`Sospendi`,stopTitle:`Ferma l'esecuzione — annulla immediatamente gli agenti in corso`,stop:`Ferma`,newTitle:`Cancella questa bacheca e avvia una nuova esecuzione Goal`,newLabel:`Nuovo`,revertConfirm:`Annullare i commit dell'esecuzione?`,revertTitle:`Annulla questa esecuzione — git-revert dei commit effettuati e rimozione dei worktree`,revert:`Annulla`,goal:`Obiettivo`,planning:`Pianificazione delle fasi…`,planningBody:`Il tuo obiettivo è stato ricevuto. WrongStack lo sta scomponendo in fasi e attività — la bacheca appare qui appena il piano è pronto.`,startHeading:`Avvia un piano di fasi`,startBody:`Descrivi cosa vuoi costruire. WrongStack pianificherà fasi e attività, poi le eseguirà — osserva e guida l'esecuzione sulla bacheca.`,startPlaceholder:`es. Crea un'API REST per la gestione utenti con Express e SQLite...`,isolateLabel:`Isola ogni fase nel suo worktree git`,startButton:`Avvia Goal`,ctrlHint:`Ctrl+Invio per avviare`,isolateOn:`le fasi girano in worktree isolati, uniti in squash`,isolateOff:`le fasi girano direttamente sul ramo corrente`,lanes:`Corsie`,graph:`Grafo`,planningAck:`🚀 **Goal** — ricevuto. Sto pianificando le fasi per il tuo obiettivo…`,assess:{analyzing:`Analisi dell'ambito dell'obiettivo…`,realistic:`✓ L'ambito sembra realistico`,durationConcern:`⚠ Problema di durata`,durationClaimed:`Durata indicata: {{duration}}`,recommendation:`Consigliato: {{duration}}`,concerns:`Preoccupazioni`,analysisFailed:`Impossibile analizzare l'ambito dell'obiettivo`,override:`Avvia comunque`,overrideTitle:`Cancella l'avviso e abilita il pulsante di avvio`,disableTitle:`Questo obiettivo ha una durata irrealistica — usa "Avvia comunque" per sovrascrivere`},multiBoardLabel:`Dividi in più board kanban`,verifyTasksLabel:`Richiedi verifica per ogni attività`,chimeraReviewLabel:`Abilita revisione automatica chimera`},j={noObservers:`Nessun osservatore dal vivo`,observerTitle:`Entra come osservatore in sola lettura (Fase 1)`,observerRole:`osservatore`,annotatorTitle:`Entra come annotatore — lascia note sugli strumenti (Fase 2)`,annotatorRole:`annotatore`,controllerTitle:`Entra come controllore — può mettere in pausa l'agente (Fase 3)`,controllerRole:`controllore`,errorPrefix:`Collab: {{error}}`,dismiss:`chiudi`,observers_one:`{{count}} osservatore`,observers_other:`{{count}} osservatori`,annotationsTitle:`{{count}} annotazione/i aperte — annotatori in revisione`,notes_one:`{{count}} nota`,notes_other:`{{count}} note`,pausedTitle:`Ciclo agente in pausa — un controllore sta revisionando`,paused:`in pausa`,joinedTitle:`Entrato {{time}}`,grantTitle:`Cedi controllo — promuovi questo partecipante a controllore`,injectTitle:`Inietta un risultato sintetico per una chiamata strumento in corso`,inject:`Inietta`,resumeTitle:`Riprendi il ciclo dell'agente`,resume:`Riprendi`,pauseTitle:`Metti in pausa l'agente prima della prossima chiamata strumento`,pauseAgent:`Metti in pausa agente`,leaveTitle:`Lascia la sessione di osservazione`,leave:`Lascia`,injectToolResult:`Inietta risultato strumento`,close:`chiudi`,targetTool:`id tool_use target`,targetPlaceholder:`scegli una chiamata in corso o digita un id tool_use`,toolFallback:`strumento`,noPendingTools:`Nessuna chiamata strumento in corso — digita un id tool_use o metti prima in pausa l'agente.`,resultContent:`Contenuto risultato`,resultPlaceholder:`Risultato strumento sintetico fornito all'agente al posto dell'esecuzione`,markError:`segna come errore`,reasonPlaceholder:`motivo (registro audit)`,queueInjection:`Metti in coda iniezione`,controllerInjection:`iniezione controllore`},M={connected:`Connesso`,reconnecting:`Riconnessione al backend (tentativo {{attempt}}) — nuovo tentativo tra {{remaining}} s`,disconnected:`Disconnesso dal backend`,retry:`Riprova ora`,retryTitle:`Riprova la connessione ora`,dismissTitle:`Chiudi (il chip nella barra superiore mostra ancora lo stato)`},N={modePrefix:`modalità:`,activeTitle:`Modalità attiva`,heading:`Modalità`,defaultName:`Predefinito`,defaultDesc:`Comportamento standard dell'agente`},P={clickTitle:`Clicca per il dettaglio dei costi per turno`,heading:`Dettaglio costi`,noPricing:`Nessuna tariffazione per il modello attuale — i valori di costo sono zero.`,noTurns:`Nessun turno completato ancora. Esegui un prompt per vedere il costo per turno qui.`,topExpensive_one:`Turno più costoso`,topExpensive_other:`I {{count}} turni più costosi`},F={runDefault:`Predefinito del run`,useRunDefault:`Usa predefinito del run`,filterPlaceholder:`Filtra modelli…`,loading:`Caricamento modelli…`,noMatch:`Nessuna corrispondenza`},I={heading:`Cambia modello`,filterPlaceholder:`Filtra provider e modelli…`,providerFilter:`Provider`,providerFilterAll:`Tutti i provider`,noSavedProviders:`Nessun provider salvato — registra prima una chiave nelle Impostazioni.`,noMatch:`Nessun modello corrispondente`,active:`attivo`},L={todos:`Da fare`,tasks:`Attività`,plan:`Piano`},R={toggleAria:`Attiva/disattiva: {{content}}`,removeTitle:`Rimuovi attività`,removeAria:`Rimuovi "{{content}}"`,completedCount_one:`{{count}} completata`,completedCount_other:`{{count}} completate`},z={start:`Avvia`,complete:`Completa`,retry:`Riprova`,assign:`Assegna`,assignTitle:`Assegna agente`,unassigned:`Non assegnato`,statusPending:`In attesa`,statusInProgress:`In corso`,statusBlocked:`Bloccato`,statusFailed:`Fallito`,statusReview:`Revisione`,statusDone:`Completato`,startTitle:`Avvia`,completeTitle:`Completa`,fail:`Fallisci`,failTitle:`Segna come fallito`,boardCount:`{{total}} attività · {{done}} completate`},B={toolCalls_one:`{{count}} chiamata strumento`,toolCalls_other:`{{count}} chiamate strumento`},V={removeTitle:`Rimuovi riferimento`,linesCount_one:`{{count}} riga`,linesCount_other:`{{count}} righe`},H={statusOpen:`Aperto`,statusInProgress:`In corso`,statusDone:`Completato`,startTitle:`Avvia`,doneTitle:`Segna come completato`,reopenTitle:`Riapri`,reopen:`Riapri`},U={heading:`@ File`,noMatch:`Nessun file corrisponde a "{{query}}"`,searching:`Ricerca nel progetto…`,selectInsertEscDismiss:`↑/↓ seleziona · ↵ inserisci · Esc chiudi`},W={dismiss:`Chiudi`},G={placeholder:`Cerca nella chat…`,prevHit:`Risultato precedente`,nextHit:`Risultato successivo`,close:`Chiudi (Esc)`},K={statusPending:`In attesa`,statusReady:`Pronto`,statusRunning:`In esecuzione`,statusPaused:`In pausa`,statusCompleted:`Completato`,statusFailed:`Fallito`,statusSkipped:`Saltato`,heading:`Fasi`,autonomousOn:`● Autonomo`,autonomousOff:`○ Manuale`,autonomousOnTitle:`Modalità autonoma attiva — clicca per mettere in pausa`,autonomousOffTitle:`Modalità manuale — clicca per attivare l'autonomo`,overallProgress:`Progresso complessivo`,tasksSuffix:`{{done}}/{{total}} attività`,agentsSuffix_one:`{{count}} agente`,agentsSuffix_other:`{{count}} agenti`},q={triggerTitle:`Modalità finestra di contesto`,ctxPrefix:`ctx:`,opsHeading:`Operazioni di contesto`,compactNow:`Compatta ora`,compactNowDesc:`Ometti output strumento vecchi`,compactAggressive:`Compattazione aggressiva`,compactAggressiveDesc:`Omissione massima ora`,repairContext:`Ripara contesto`,repairDesc:`Correggi blocchi tool-use orfani`,debugContext:`Debug contesto`,debugDesc:`Dettaglio dimensioni per sezione`,windowHeading:`Finestra di contesto`,keepElide:`mantieni {{k}} recenti · ometti {{t}}+ token`,fallbackName:`Bilanciato`,fallbackDesc:`Compattazione rolling predefinita`},J={kindAssistant:`Assistente`,kindThinking:`Pensiero`,kindToolCall:`Chiamata strumento`,kindToolResult:`Risultato strumento`,kindError:`Errore`,kindStatus:`Stato`,kindSystem:`Sistema`,title:`Cronologia chat`,copyTitle:`Copia cronologia chat agente`,empty:`Nessuna cronologia chat per questo agente ancora.`},Y={heading:`Modalità autonomia`,titlePrefix:`Autonomia: {{label}}`,descOff:`Controllo manuale totale — l'agente attende il tuo input.`,descSuggest:`L'agente suggerisce i prossimi passi ma attende approvazione.`,descAuto:`L'agente procede automaticamente dopo un breve ritardo di conferma.`,descEternal:`L'agente gira in autonomia fino al completamento dell'obiettivo.`,descEternalParallel:`Esecuzione autonoma multi-agente — modalità flotta.`,labelOff:`Disattivato`,labelSuggest:`Suggerisci`,labelAuto:`Auto`,labelEternal:`Eterno`,labelEternalParallel:`Eterno parallelo`},X={heading:`Coda dei messaggi`,subtitle:`{{count}} in coda · messaggi inviati prima che l'agente finisca`,btwTitle:`A proposito — inviato come follow-up senza interrompere l'agente in corso`,steerTitle:`Guida — interrompe l'agente in corso e lo reindirizza con questo messaggio`,queueTitle:`In coda — trattenuto fino al completamento del run dell'agente, poi inviato in ordine`,sortNewestTitle:`Ordinato dal più recente — clicca per ordinare dal più vecchio`,sortOldestTitle:`Ordinato dal più vecchio — clicca per ordinare dal più recente`,newest:`Più recente`,oldest:`Più vecchio`,clear:`Svuota`,clearTitle:`Cancella tutti i messaggi in coda`,closeTitle:`Chiudi`,emptyTitle:`La coda è vuota`,emptyBody:`Usa i pulsanti btw / steer / aggiungi a coda accanto all'input per aggiungere messaggi. Gli elementi in coda sono inviati in ordine al completamento del run dell'agente.`,removeTitle:`Rimuovi dalla coda`,clearDispatchedTitle:`Cancella i messaggi in coda — le note già inviate non possono essere revocate`,dispatchedTitle:`Già inviato all'agente`,dispatchedLabel:`Inviato`,footer:`I messaggi sono inviati in ordine di arrivo al completamento del run dell'agente. Usa l'ordinamento per vedere i più recenti prima.`},Z={heading:`Checkpoint di sessione`,countSuffix_one:`{{count}} checkpoint`,countSuffix_other:`{{count}} checkpoint`,description:`Riavvolgi la sessione a qualsiasi checkpoint. Messaggi e modifiche ai file tornano a quel punto — l'LLM continua da lì come se nulla fosse successo dopo.`,emptyTitle:`Nessun checkpoint ancora`,emptyBody:`I checkpoint sono creati automaticamente a ogni messaggio inviato. Invia qualche messaggio e torna.`,latest:`recente`,msgSuffix_one:`{{count}} msg`,msgSuffix_other:`{{count}} msg`,footerPre:`Clicca un checkpoint per riavvolgere`,footerPost:`per chiudere`},Q={statusActive:`Attivo`,statusPaused:`In pausa`,statusDone:`Completato`,statusFailed:`Fallito`,statusAbandoned:`Abbandonato`,heading:`Obiettivo`,refined:`Raffinato`,progress:`Progresso`,iterations:`iterazioni`,deliverables:`Deliverable`,recentActivity:`Attività recente`},$={cleanTitle_one:`Pulire {{count}} worktree orfano?`,cleanTitle_other:`Pulire {{count}} worktree orfani?`,cleanMessage:`Rimuove forzatamente ogni worktree git + branch wstack/ap residuo da run precedenti. Il lavoro non mergiato al loro interno va perso.`,cleanConfirm:`Pulisci orfani`,orphanCount_one:`{{count}} worktree orfano da run precedenti`,orphanCount_other:`{{count}} worktree orfani da run precedenti`,andMore:`…e {{count}} altri`,cleanButtonTitle:`Rimuovi forzatamente tutti i worktree + branch orfani`,removed_one:`✓ {{count}} worktree orfano rimosso.`,removed_other:`✓ {{count}} worktree orfani rimossi.`,cleanupFailed:`pulizia fallita`,lanesHeading:`Worktree`,base:`base`,isolatedCount_one:`{{count}} isolato`,isolatedCount_other:`{{count}} isolati`,statusAllocating:`allocazione`,statusActive:`attivo`,statusCommitting:`commit`,statusMerging:`merge`,statusMerged:`mergiato`,statusConflict:`conflitto`,statusFailed:`fallito`,conflictBadge:`CONFLITTO`,graphAria:`Grafo dei branch worktree da {{base}}`,mergedLabel:`✓ mergiato → {{base}}`},ee={heading:`Processi in esecuzione`,subtitle:`{{active}} attivi · {{total}} totali`,killAll:`Termina tutti`,emptyTitle:`Nessun processo tracciato`,emptyBody:`I processi appaiono qui quando l'agente esegue strumenti bash o exec. I processi attivi mostrano un LED pulsante.`,pidLabel:`PID {{pid}}`,protected:`protetto`,protectedTitle:`Protetto — sopravvive a kill/killAll`,background:`in background`,backgroundTitle:`Processo scollegato — continua dopo la chiusura di CLI/WebUI`,confirmKillBackground:`Terminare il processo scollegato in background {{pid}}?`,confirmKillAll:`Terminare tutti i {{count}} processi in esecuzione?`,killTitle:`Termina PID {{pid}}`},te={tooLarge:`Diff omesso (file troppo grande per il rendering in linea).`},ne={placeholder:`Aggiungi un modello di fallback…`,emptyHint:`Provati in ordine quando il modello primario è limitato o si blocca.`,moveUp:`Sposta su`,moveDown:`Sposta giù`},re={loading:`Caricamento sessioni...`,apiUnavailable:`API di sessione non disponibile:`,empty:`Nessuna sessione live. Apri un'altra istanza wstack per vederla qui.`,heading:`Sessioni live ({{count}})`,autoRefresh:`aggiornamento automatico ogni 5 s`,pidLabel:`PID {{pid}}`,agentMeta:`{{iter}} iter · {{tools}} strumenti · {{ago}}`,andMore:`... e altre {{count}}`,noAgents:`Nessun agente`},ie={applyTitle:`Scrivi la versione modificata sul disco`,applying:`Applicazione…`,applied:`Applicato`,apply:`Applica`},ae={showStack_one:`Mostra trace dello stack ({{count}} frame)`,showStack_other:`Mostra trace dello stack ({{count}} frame)`,hideStack_one:`Nascondi trace dello stack ({{count}} frame)`,hideStack_other:`Nascondi trace dello stack ({{count}} frame)`},oe={liveHeading:`Live`,clients:`Client`,agents:`Agenti`,model:`Modello`,mode:`Modalità`,toolCalls:`Chiamate strum.`,displayHeading:`Display`,statsHud:`HUD stat`,legends:`Legende`,minimap:`Minimappa`,zoomControls:`Controlli zoom`,animateWires:`Anima fili`,backgroundHeading:`Sfondo`,bgDots:`Punti`,bgLines:`Linee`,bgCross:`Croce`,bgNone:`Nessuno`},se={noParams:`(nessun parametro)`,itemCount_one:`{{count}} elemento`,itemCount_other:`{{count}} elementi`,keyCount_one:`{{count}} chiave`,keyCount_other:`{{count}} chiavi`},ce={roleYou:`Tu`,roleTool:`Strumento`,roleThinking:`Pensiero`,roleAssistant:`Assistente`,inputLabel:`Input`,downloadTitle:`Scarica come file`,empty:`(vuoto)`,hideDetails:`Nascondi dettagli`,showDetails:`Mostra dettagli`,showDetailsLines_one:`Mostra dettagli ({{count}} riga)`,showDetailsLines_other:`Mostra dettagli ({{count}} righe)`,editHint:`⌘/Ctrl+Invio per salvare · Esc per annullare`,saveResend:`Salva e reinvia`,thinkingProcess:`Processo di pensiero`,thinkingMeta:`iter {{iter}} · {{dur}} · {{lines}}`,replay:`replay`,linesSuffix_one:`{{count}} riga`,linesSuffix_other:`{{count}} righe`,copyLog:`Copia log`,showFullLog:`Mostra log completo`,typing:`Scrive…`,noContent:`Nessun contenuto`,imageNotRetained:`L'anteprima dell'immagine non viene conservata dopo il ricaricamento`,failedToSend:`⚠ Invio fallito`,autoPaused:`⚠️ _Avanzamento automatico in pausa — raggiunto il numero massimo di turni automatici consecutivi. Digita qualcosa per continuare (l'autonomia resta attiva)._`,autoLoopHalted:`⚠️ _Invio automatico interrotto perché lo stesso prompt si è ripetuto. L'autonomia resta attiva; inserisci un nuovo prompt per reimpostare la protezione dai cicli._`,rsIterations:`Iterazioni: {{n}}`,rsTools:`Chiamate strum.: {{n}}`,rsElapsed:`Trascorso: {{s}}`,rsCost:`Costo: {{c}}`,useInput:`Input: {{n}}`,useOutput:`Output: {{n}}`,useCacheRead:`Lettura cache: {{n}}`,useCost:`Costo: {{c}}`,renderedLabel:`Renderizzato`,rawLabel:`Grezzo`,showRenderedTitle:`Mostra markdown renderizzato`,showRawTitle:`Mostra sorgente markdown grezzo`,editTitle:`Modifica e reinvia questo prompt`,editLabel:`Modifica`,unpinTitle:`Rimuovi pin`,pinTitle:`Fissa questa risposta`,pinnedLabel:`Fissato`,pinLabel:`Fissa`,regenerateTitle:`Rigenera questa risposta`,retryLabel:`Riprova`},le={toolFallback:`strumento`,toolFailed:`Strumento fallito`},ue={heading:`Scorciatoie da tastiera`,footerPre:`Premi`,footerPost:`in qualsiasi momento per riaprire questa lista.`,sectionGlobal:`Globali`,sectionTuiParity:`Parità pannello TUI`,sectionFleet:`Flotta & Agenti`,sectionChatInput:`Input chat`,sectionChat:`Chat`,sectionChatNav:`Navigazione chat (senza scrivere)`,dCommandPalette:`Apri palette comandi`,dShowOverlay:`Mostra questa overlay scorciatoie`,dToggleSidebar:`Mostra/nascondi barra laterale`,dOpenPanel:`Apri pannello laterale (Sessione, Agenti, Cronologia, File, Changes, Messaggi, Competenze, Office Map)`,dDesignStudio:`Apri pannello Design Studio`,dWorktrees:`Apri pannello Worktree`,dSettings:`Apri Impostazioni`,dMemory:`Apri Memoria`,dFocusInput:`Focalizza l'input dei messaggi`,dSessionPanel:`Pannello sessione`,dFleetOverlay:`Overlay monitor flotta`,dAgentsOverlay:`Overlay monitor agenti`,dWorktreeMonitor:`Monitor worktree`,dPlanPanel:`Pannello piano`,dTodosPanel:`Pannello attività`,dQueuePanel:`Pannello coda`,dProcessMonitor:`Monitor processi`,dGoalPanel:`Pannello obiettivo`,dSessionsDashboard:`Dashboard sessioni`,dOfficeMap:`Office map del coordinatore`,dDockPicker:`Selettore chip del dock`,dOpenFleet:`Apri overlay monitor flotta`,dOpenAgents:`Apri overlay monitor agenti`,dNavigateAgents:`Naviga gli agenti nel monitor`,dSelectAgent:`Seleziona agente focalizzato`,dCloseOverlay:`Chiudi overlay attivo`,dSendMessage:`Invia messaggio`,dNewline:`Inserisci una nuova riga`,dRecallPrev:`Riprendi prompt precedente (input vuoto)`,dRecallNext:`Riprendi prompt successivo`,dSlashPopup:`Apri popup comandi slash`,dAutocomplete:`Autocompleta comando evidenziato`,dDismissPopup:`Chiudi popup / pulisci input`,dSearchChat:`Cerca nella chat attuale`,dClearContext:`Pulisci contesto (come /clear)`,dNewSession:`Avvia nuova sessione (come /new)`,dExportMarkdown:`Esporta chat come markdown`,dModelSwitcher:`Overlay selettore modello rapido`,dCompactDensity:`Attiva/disattiva densità UI compatta`,dAbortRun:`Interrompi run in corso (durante esecuzione)`,dFocusNext:`Focalizza messaggio successivo (alias: ↓)`,dFocusPrev:`Focalizza messaggio precedente (alias: ↑)`,dJumpFirst:`Vai al primo messaggio`,dJumpLast:`Vai all'ultimo messaggio`,dCopyFocused:`Copia testo messaggio focalizzato`,dClearFocused:`Cancella messaggio focalizzato`},de={titleFallback:`Board SDD live`,defaultModelTitle:`Modello worker predefinito a livello di run (gli override per task hanno la precedenza)`,graphLabel:`Grafo`,kanbanLabel:`Kanban`,retryAllTitle:`Rimetti ogni attività fallita in pending`,retryFailed:`Riprova fallite ({{count}})`,resume:`Riprendi`,pause:`Pausa`,stop:`Ferma`,cleanTitle:`Rimuovi i worktree git + branch wstack/ap del run`,cleanWorktrees:`Pulisci worktree`,rollbackTitle:`Revert di {{count}} commit mergiati su {{base}}`,rollback:`Rollback ({{count}})`,stopping:`Arresto…`,destroying:`Distruzione…`,destroyTitle:`Ferma, rimuovi tutti i worktree, revert opzionale dei commit mergiati ed elimina il progetto SDD`,destroy:`Distruggi`,statDone:`fatti`,statRunning:`in corso`,statFailed:`falliti`,statWave:`ondata`,statElapsed:`trascorso`,noActiveWorkers:`nessun worker attivo`,deadlock:`Stallo — attività bloccate da lavoro fallito:`,noRunTitle:`Nessun run SDD attivo.`,noRunBody:`Avviane uno dalla procedura New SDD Project o tramite /sdd execute nella CLI — gli agenti appaiono qui live, ciascuno in un worktree isolato.`,clickTaskHint:`clicca un'attività per i dettagli`,lcClean:`Pulizia`,lcRollback:`Rollback`,lcDestroy:`Distruzione`,lcFailed:`{{op}} fallito: {{reason}}`,lcUnknownError:`errore sconosciuto`,lcWorktrees_one:`{{count}} worktree rimosso`,lcWorktrees_other:`{{count}} worktree rimossi`,lcCommits_one:`{{count}} commit revertato`,lcCommits_other:`{{count}} commit revertati`,lcDeleted:`eliminato {{items}}`,lcNothing:`nulla da fare`,lcNote:`{{op}}: {{body}} — nota: {{reason}}`,lcOk:`{{op}}: {{body}}`},fe={backTitle:`Torna all'attività`,expandTitle:`Espandi dettagli attività`,collapseTitle:`Riduci dettagli attività`,eventLog:`Registro eventi attività`,newestFirst:`più recenti prima`,noEvents:`Non è stata ancora registrata alcuna attività per questo task.`,workingOn:`lavora a questa attività`,assigned:`assegnato`,metaPriority:`Priorità`,metaType:`Tipo`,metaDuration:`Durata`,metaElapsed:`Trascorso`,metaRetries:`Tentativi`,metaWorktree:`Worktree`,workerModel:`Modello worker`,runDefault:`predefinito del run: {{model}}`,runDefaultPlaceholder:`Predefinito del run`,runDefaultPlaceholderModel:`Predefinito del run ({{model}})`,verificationCmd:`Comando di verifica`,gatesCompletion:`gating del completamento (exit 0)`,verifyPlaceholder:`es. pnpm vitest run path/to/file`,addVerify:`+ Aggiungi comando di verifica`,description:`Descrizione`,timeline:`Cronologia`,dependsOn:`Dipende da`,blocks:`Blocca`,newWorkerPlaceholder:`Nome nuovo worker…`,confirmStop:`Fermare questa attività in corso?`,confirmDelete:`Eliminare questa attività dal run?`,retryTitle:`Rimetti questa attività in pending`,reassign:`Riassegna`,stopTitle:`Interrompi il worker su questa attività`,splitTitle:`Dividi questa attività in sotto-attività delegate a worker separati`,split:`Dividi`,splitHint:`Una sotto-attività per riga — Titolo :: descrizione (descrizione facoltativa)`,splitPlaceholder:`Scrivi il layer dati :: aggiungi il repository
4
4
  Collega l'UI`,splitInto:`Dividi in sotto-attività`,deleteTitle:`Rimuovi questa attività non avviata dal run`},pe={phaseStart:`Avvia`,phaseInterview:`Intervista`,phaseSpecReview:`Revisione spec`,phasePlanning:`Pianificazione`,phaseTaskReview:`Revisione attività`,phaseRunning:`In corso`,phaseDone:`Completato`,titleFallback:`Nuovo progetto SDD`,questionsSuffix:`{{cur}}/{{max}} domande`,tasksSuffix:`{{count}} attività`,runCfgTitle:`Config del run — modello predefinito + catena di fallback`,modelsLabel:`Modelli`,startRun:`Avvia run`,defaultWorkerModel:`Modello worker predefinito`,leaderDefaultPlaceholder:`Leader / predefinito sessione`,useSessionDefault:`Usa predefinito sessione`,fallbackChain:`Catena di fallback`,appliesToAll:`Si applica a ogni attività. Override per attività dal board live dopo l'avvio.`,parallelAgents:`Agenti paralleli`,isolateWorktrees:`Isola in worktree git`,worktreeOn:`Ogni attività gira nel proprio worktree, squash-mergiato al completamento.`,worktreeOff:`Le attività girano direttamente sul branch corrente (nessun isolamento).`,planDecompose:`Dividi automaticamente le attività grandi`,planDecomposeOn:`Prima del dispatch, suddivide le attività che il motore di atomicità marca come troppo grandi.`,planDecomposeOff:`Mantieni il grafo attività approvato così com'è (può comunque suddividersi a runtime se un'attività fallisce).`,goalPrompt:`Cosa vuoi costruire?`,goalPlaceholder:`es. Aggiungi login OAuth (Google + GitHub) con gestione sessione`,startingInterview:`Avvio intervista…`,startInterview:`Avvia intervista`,introBody:`Un agente isolato ti intervista per costruire una spec, la scompone in un grafo di attività ordinato per dipendenze, poi una vera flotta multi-agente la esegue — da seguire live sul board. Se aggiorni o riavvii, l'intervista riprende automaticamente.`,taskGraphSummary:`Grafo attività · {{count}} attività, ordinate per dipendenze`,dragToExplore:`trascina per esplorare`,show:`mostra`,goalLabel:`Obiettivo`,implementationPlan:`Piano di implementazione`,approveSpec:`Approva spec → pianifica implementazione`,approveTasks:`Approva attività`,approvePlan:`Approva piano`,answerPlaceholder:`Rispondi alla domanda…`,changePlaceholder:`Richiedi una modifica…`,resumeBanner:`Intervista ripresa da una sessione precedente — continua da dove avevi interrotto.`,openLiveBoard:`Apri board live`,discardInterview:`Annulla e ricomincia`,discardTitle:`Abbandona questa intervista e cancella la sessione salvata`},me={emptyDir:`vuoto`,loadFailed:`Caricamento file fallito: {{error}}`,expandAllTitle:`Espandi tutte le cartelle`,expandAll:`Espandi tutto`,collapseAllTitle:`Comprimi tutte le cartelle`,collapse:`Comprimi`,folders_one:`{{count}} cartella`,folders_other:`{{count}} cartelle`,currentDirTitle:`Cartella corrente: {{path}}`,navigateToTitle:`Vai a {{path}}`,filesSuffix_one:`{{count}} file`,filesSuffix_other:`{{count}} file`,goToDir:`vai alla cartella`,navigateParentTitle:`Vai alla cartella padre di {{path}}`,parentDirectory:`cartella padre`,noFiles:`Nessun file trovato`,copyAbsPath:`Copia percorso assoluto`,copyRelPath:`Copia percorso relativo`,openInTerminal:`Apri nel terminale`,openInFileManager:`Apri nel file manager`,mentionInChat:`Menziona in chat`,copyPath:`Copia percorso`},he={sendSelectionAction:`Invia selezione alla chat`,noFilesOpen:`Nessun file aperto`,selectToEdit:`Seleziona un file dall'esploratore per modificare`,sendSelectedTitle:`Invia le righe selezionate alla chat`,mentionFileTitle:`Menziona questo file in chat`,sendToChat:`Invia alla chat`,mentionFile:`Menziona file`,loadingEditor:`Caricamento editor…`,selectTab:`Seleziona una scheda per vedere il contenuto`},ge={title:`Attività del file`,overview:`Panoramica`,changes:`Modifiche`,context:`Contesto`,logs:`Log`,lines:`righe`,resizeHint:`Trascina per ridimensionare · doppio clic per ripristinare`,refresh:`Aggiorna le evidenze del file`,evidenceCount_one:`{{count}} evento`,evidenceCount_other:`{{count}} eventi`,mutations30m:`Modifiche · 30 min`,sessions:`Sessioni`,actors:`Attori`,linkedWork:`Lavoro collegato`,workLinks:`Kanban / attività`,recentActivity:`Attività recente del file`,events:`eventi`,noEvidence:`Nessuna attività è ancora attribuita a questo file.`,noSessions:`Nessuna attribuzione di sessione.`,noActors:`Nessuna attribuzione di attore.`,noWorkLinks:`Nessun collegamento Kanban, SDD o attività registrato.`,taskOrTodo:`Task / attività`,loadingEvidence:`Caricamento delle evidenze del file…`,gitToBuffer:`Git HEAD → buffer Monaco corrente`,savedToBuffer:`Ultima versione salvata → buffer Monaco corrente`,unsaved:`buffer non salvato`,lifetimeTitle:`Tutta la cronologia`,lifetimeChanges:`modifiche`,lifetimeSessions:`sessioni`,lifetimeTasks:`attività`,lifetimeBoards:`bacheche`,lifetimeSince:`dal {{date}}`,lifetimeTools:`tramite {{tools}}`,level:{quiet:`stabile`,active:`attivo`,churn:`elevata rotazione`},analysisTitle:{quiet:`Nessuna rotazione recente`,active:`Questo file viene modificato`,churn:`Rilevate modifiche ripetute`},analysisBody:{quiet:`Negli ultimi 30 minuti non sono state registrate modifiche attribuite.`,active:`{{mutations}} modifiche da {{actors}} attori in {{sessions}} sessioni negli ultimi 30 minuti.`,churn:`Elevata rotazione: {{mutations}} modifiche da {{actors}} attori in {{sessions}} sessioni. Controlla il lavoro sovrapposto prima della prossima modifica.`}},_e={loading:`Caricamento analytics…`,heading:`Dashboard Analytics`,autoRefresh:`aggiornamento ogni 10 s`,liveSessions:`Sessioni live`,agents:`Agenti`,agentsActive:`{{count}} attivi`,totalEvents:`Eventi totali`,categoriesSub:`{{count}} categorie`,toolCalls:`Chiamate strum.`,iterationsSub:`{{count}} iterazioni`,sessionCost:`Costo sessione`,tokensSub:`{{input}} in / {{output}} out`,sessionDuration:`Durata sessione`,messagesSub:`{{count}} messaggi`,eventsByCategory:`Eventi per categoria`,noEvents:`Nessun evento registrato.`,topEvents:`Eventi principali`,activeSessionUsage:`Utilizzo sessione attiva`,provider:`Provider`,model:`Modello`,inputTokens:`Token in ingresso`,outputTokens:`Token in uscita`,cacheRatio:`Rapporto cache`,filesRead:`File letti`,noSession:`Nessuna sessione attiva o in attesa di dati…`,healthErrors:`Salute & errori`,errorEvents:`Eventi di errore`,warningEvents:`Eventi di avviso`,cacheHitRate:`Tasso di hit cache`,totalCategories:`Categorie totali`,waitingData:`In attesa di dati…`,recentEvents:`Eventi recenti`,noRecentEvents:`Nessun evento recente. Interagisci con l'UI per generare eventi.`},ve={heading:`Libreria dei prompt`,searchPlaceholder:`Cerca prompt…`,newPrompt:`+ Nuovo prompt`,all:`Tutti`,recent:`🕘 Recenti`,favorites:`★ Preferiti`,noMatch:`Nessun prompt corrisponde.`,newPromptHeading:`Nuovo prompt`,titlePlaceholder:`Titolo *`,descPlaceholder:`Descrizione su una riga`,categoryPlaceholder:`Categoria`,tagsPlaceholder:`tag, separati, da virgola`,contentPlaceholder:`Contenuto del prompt * — usa {{name}} per le variabili`,variables:`Variabili`,addVar:`+ var`,varNamePlaceholder:`nome`,varDescPlaceholder:`descrizione`,removeVarTitle:`Rimuovi variabile`,required:`obbligatorio`,multiline:`multiriga`,enumPlaceholder:`enum: a, b, c`,savePrompt:`Salva prompt`,saveFailed:`Impossibile salvare il prompt.`,titleContentRequired:`Titolo e contenuto sono obbligatori.`,toggleFavoriteTitle:`Toggle preferito`,selectOption:`— scegli —`,fillMissing:`Compila: {{missing}}`,insertIntoChat:`Inserisci nella chat`,selectPromptHint:`Seleziona un prompt per anteprima e inserimento.`},ye={scopeProject:`Progetto`,scopeGlobal:`Globale`,scopeBundled:`Incluso`,timeoutError:`Timeout della richiesta. Riprova.`,updateFailed:`Aggiornamento fallito`,saveFailed:`Salvataggio fallito`,uninstallFailed:`Disinstallazione fallita`,noSkillSelected:`Nessuna competenza selezionata`,selectSkillHint:`Seleziona una competenza dalla sidebar per vederne la documentazione`,goToChat:`Vai alla chat`,openSourceRepo:`Apri repo sorgente`,copySourceUrl:`Copia URL sorgente`,updatedLabel:`↑ Aggiornato: {{list}}`,upToDateLabel:`— Aggiornato: {{list}}`,errorsLabel:`✗ {{list}}`,checkUpdatesTitle:`Cerca aggiornamenti`,exportTitle:`Esporta competenza come .md`,editTitle:`Modifica competenza`,uninstallTitle:`Disinstalla competenza`,closeTitle:`Chiudi e vai alla chat`,backTitle:`Indietro`,forwardTitle:`Avanti`,relatedFiles:`File correlati`,references:`Riferimenti`,goToSkillTitle:`Vai a {{name}}`,loadingContent:`Caricamento contenuto…`,editingLabel:`Modifica di {{name}}`,editStats:`{{lines}} righe · {{words}} parole · {{chars}} caratteri`,charsWarningFmt:`⚠ {{used}} MB / {{limit}} MB`,draftSaved:`Bozza salvata`,draftRestored:`Bozza ripristinata`,discardDraft:`Scarta bozza`,splitViewTitle:`Vista divisa`,hidePreviewTitle:`Nascondi anteprima`,contentPlaceholder:`Contenuto competenza (markdown)...`,loadFailed:`Caricamento contenuto fallito`,noContent:`Nessun contenuto disponibile`,uninstallSkillHeading:`Disinstalla competenza`,uninstallConfirm:`Disinstallare {{name}}?`,uninstallRemovePath:`Questo rimuoverà la competenza da {{path}} e non può essere annullato.`,uninstallAction:`Disinstalla`},be={sessionStats:`Statistiche sessione`,clients:`Client`,input:`Ingresso`,output:`Uscita`,cost:`Costo`,agentsSuffix:`agenti`,upPrefix:`da {{time}}`,webuiClient:`Client WebUI`,disconnected:`Disconnesso`,connected:`Connesso`,tuiClient:`Client TUI`,terminal:`Terminale`,repl:`REPL`,coordinator:`COORDINATORE`,fleetSummary:`Riepilogo flotta`,toolCallsLabel:`Chiamate strum.`,tokensLabel:`Token`,coordinatingFleet:`Coordina la flotta`,donePrefix:`✓ completato ·`,failedPrefix:`✕ fallito ·`,seenPrefix:`visto {{time}} fa`,availableDesk:`Scrivania libera`,mailboxHub:`Hub Posta`,unreadSuffix_one:`{{count}} non letto`,unreadSuffix_other:`{{count}} non letti`,allClear:`Tutto letto`,total:`Totale`,unreadLabel:`Non letti`,liveActivity:`Attività live`,waitingActivity:`In attesa di attività…`,now:`ora`,fleetHq:`QG Flotta WrongStack`,live:`LIVE`,legendStatus:`Stato`,legendActive:`Attivo`,legendIdle:`Inattivo`,legendError:`Errore`,legendConnections:`Connessioni`,legendMail:`Posta`,legendTask:`Attività`,legendStatusConn:`Stato`,arrange:`Disponi`,arrangeTitle:`Disponi i nodi per adattarli all'area disponibile`,feed:`Feed`,feedTitle:`Mostra/nascondi feed attività live`,broadcast:`Trasmetti`,broadcastTitle:`Trasmetti un messaggio a ogni sessione live del progetto`,broadcastToAll:`Trasmetti a tutte le sessioni`,broadcastPlaceholder:`Messaggio a ogni agente live del progetto…`,broadcastSendHint:`⌘/Ctrl+Invio per inviare`,openFullView:`Apri vista operazioni completa`,rowStatus:`Stato`,rowModel:`Modello`,rowTool:`Strumento`,rowIterations:`Iterazioni`,rowToolCalls:`Chiamate strum.`,rowTokensIn:`Token in`,rowTokensOut:`Token out`,rowTokensTotal:`Token totali`,rowContext:`Contesto`,rowCost:`Costo`,rowLastSeen:`Ultima volta visto`,rowSurface:`Superficie`,rowBranch:`Branch`,rowPid:`PID`,rowDir:`Dir.`,rowAgents:`Agenti`,rowUptime:`Uptime`,rowConnections:`Connessioni`,rowTotalMessages:`Messaggi totali`,rowUnread:`Non letti`,recent:`Recenti`,noSubject:`(nessun oggetto)`,fullOperationStream:`Flusso operazioni completo`,closeEsc:`Chiudi (Esc)`,idleDesk:`Scrivania inattiva`,fleetHqLabel:`QG Flotta`,clientsSuffix_one:`{{count}} client`,clientsSuffix_other:`{{count}} client`,taskFallback:`attività`,controlLabel:`controllo`},xe={installTitle:`Installa competenza`,createTitle:`Crea competenza`,exportTitle:`Esporta tutte le competenze come .zip`,checkUpdatesTitle:`Cerca aggiornamenti (tutte)`,searchPlaceholder:`Cerca competenze…`,loading:`Caricamento…`,noSkills:`Nessuna competenza installata`,noMatch:`Nessuna competenza corrisponde al filtro`,noDescription:`Nessuna descrizione`,scopeForeign:`Esterno`,installHeading:`Installa Competenza`,installHint:`Inserisci un riferimento repo GitHub (owner/repo) o URL completo.`,installPlaceholder:`es. wrongstack/skill-name o https://github.com/owner/repo`,installScope:`Ambito installazione:`,installBtn:`Installa`,installedMsg:`Installata: {{names}}`,installFailed:`Installazione fallita`,createHeading:`Crea Competenza`,createHint:`Scaffold una nuova competenza. La prima riga è il trigger.`,nameLabel:`Nome`,namePlaceholder:`es. mia-nuova-competenza`,descLabel:`Descrizione / Trigger`,descPlaceholder:`Usa questa competenza quando <situazione>.
5
- Trigger: l'utente dice "parola chiave", "altra".`,saveIn:`Salva in:`,createBtn:`Crea Competenza`,createdMsg:`Creata: {{name}}`,createFailed:`Creazione fallita`},Se={noEvents:`Nessun evento.`},Ce={pickHint:`Scegli un kit — l'agent vi si atterrà.`,gallery:`Galleria`,galleryTitle:`Apri galleria anteprima live`,stackTitle:`Stack target`,loading:`Caricamento kit…`,notFound:`Nessun design kit trovato.`,bestFor:`Ideale per:`,light:`Chiaro`,dark:`Scuro`,tune:`Regola`,font:`Carattere`,set:`Imposta`,spaceGrotesk:`Space Grotesk…`,aaHeading:`Aa Titolo`,theQuickBrownFoxJumpsOver:`Pranzo d'acqua fa volti sghembi.`,primary:`Primario`,ghost:`Ghost`,badge:`Badge`,inputField:`Campo di input…`,radius:`Raggio`,density:`Densità`,motion:`Movimento`},we={detached:`(scollegato)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktree`,baseSuffix:` · base {{base}}`,baseLabel:`base`,cleanOrphans:`Pulisci orfani`,cleanOrphansTitle:`Rimuovi tutti i worktree orfani`,liveBusyTitle:`Un run è attivo — fermalo prima`,rescanTitle:`Riscansiona`,removed_one:`Rimosso {{count}} worktree.`,removed_other:`Rimossi {{count}} worktree.`,failed:`Fallito`,mergedIntoBase:`{{branch}} unito alla base.`,conflictMerge:`Conflitto unendo {{branch}}: {{files}}`,seeGit:`vedi git`,mergeFailed:`Unione fallita: {{reason}}`,unknownReason:`sconosciuto`,mergeConfirmTitle:`Unire {{branch}} in {{base}}?`,mergeConfirmMsg:`Squash-merge questo branch sul branch base. Si annulla pulitamente in caso di conflitto.`,mergeAction:`Unisci`,removeConfirmTitle:`Rimuovere {{branch}}?`,removeConfirmMsg:`Rimuove forzatamente il checkout del worktree ed elimina il suo branch. Il lavoro non unito viene perso.`,empty:`Nessun worktree.`,emptyHint:`I run SDD / Goal creano worktree isolati qui. Anche gli orfani dei run crashati appaiono.`,actOpenTerm:`Apri nel terminale`,actOpenFolder:`Apri cartella`,actViewChanges:`Vedi modifiche`,actMerge:`Unisci alla base`,actRemove:`Rimuovi / scarta`,live:`live`,noUncommitted:`Nessuna modifica non confermata`,commitsAhead_one:`{{count}} commit avanti`,commitsAhead_other:`{{count}} commit avanti`,more:`…{{count}} altri`},Te={heading:`Mappa Ufficio`,headingHint:`Visualizza la tua flotta come piantina d'ufficio con stato agenti live.`,statAgents:`Agenti`,statMail:`Posta`,unreadSuffix:` non letti`,sectionView:`Vista`,sectionDisplay:`Visualizzazione`,sectionBackground:`Sfondo`,sectionRecent:`Attività Recente`,eventsTrackedSuffix:` eventi tracciati`,recentHint:`Invii posta, spawn agenti e cambi di stato appaiono qui.`,sectionShortcuts:`Scorciatoie`,sectionLegend:`Legenda`,hudLabel:`HUD`,hudDesc:`Mostra overlay statistiche sessione in tempo reale`,hudToggle:`Attiva HUD`,minimapLabel:`Minimappa`,minimapDesc:`Mostra la minimappa di panoramica`,minimapToggle:`Attiva minimappa`,controlsLabel:`Controlli`,controlsDesc:`Mostra controlli zoom e adatta`,controlsToggle:`Attiva controlli`,animateLabel:`Anima archi`,animateDesc:`Anima il flusso sulle connessioni attive`,animateToggle:`Attiva animazione archi`,legendLabel:`Mostra legenda`,legendDesc:`Mostra legenda di stato e connessione`,legendToggle:`Attiva legenda`,feedLabel:`Feed live`,feedDesc:`Striscia inferiore di attività cross-processo recente`,feedToggle:`Attiva feed live`,fitView:`Adatta`,zoomIn:`Ingrandisci`,zoomOut:`Riduci`,resetZoom:`Reimposta zoom`,legendActive:`Attivo (in corso)`,legendIdle:`Inattivo`,legendError:`Errore`,legendOffline:`Offline`,bg:{dots:`Punti`,lines:`Linee`,cross:`Croce`,none:`Nessuno`}},Ee={liveProjectOffice:`Ufficio del progetto in tempo reale`,agents:`agenti`,working:`al lavoro`,toolCalls:`chiamate strumenti`,office:`Ufficio`,topology:`Topologia`,officeDescription:`Postazioni e attività degli agenti live`,topologyDescription:`Client, agenti e connessioni`,team:`Team`,liveDesk:`Scrivania live e lavoro in arrivo`,lastActions:`Lavori recenti`,leadAgent:`Agente principale`,agent:`Agente`,callsCount:`{{count}} chiamate`,recent:`Recenti`,noCalls:`Nessuna chiamata completata`,telemetryReconnect:`Riconnetti questo terminale per avviare la cronologia degli strumenti`,thinking:`Sta pensando`,waiting:`In attesa di lavoro`,preparing:`Preparazione della prossima azione…`,deskReady:`La scrivania è pronta`,toolCall:`Chiamata strumento`,execution:`Esecuzione`,started:`Avvio`,duration:`Durata`,session:`Sessione`,target:`Destinazione`,resultSize:`Dimensione risultato`,lines:`righe`,bytes:`byte`,tokens:`token`,input:`Input`,outputPreview:`Anteprima output`,readyTitle:`L’ufficio è pronto`,readyBody:`Gli agenti prenderanno posto non appena entreranno nel progetto.`,liveEvent:`flusso eventi live`,connectedSessions_one:`{{count}} sessione connessa`,connectedSessions_other:`{{count}} sessioni connesse`,detailHint:`fai clic su un’azione per vedere input e risultato esatti`,officeBriefing:`Briefing dell’ufficio`,leaderPrompt:`Ultimo prompt del leader`,activeInstruction:`Istruzione attiva`,telemetryWaiting:`Riconnetti questo terminale per ricevere istruzioni live`,syncWaiting:`sincronizzazione in attesa`,todoTelemetryWaiting:`Riconnetti questo terminale per ricevere l’elenco attività live`,taskNotReported:`L’agente sta lavorando, ma non ha segnalato una descrizione dell’attività`,noPrompt:`Nessun prompt ancora ricevuto in questa sessione`,activeTodos:`Attività attive`,todoProgress:`{{done}}/{{total}} completate`,allTodosDone:`Tutte le attività completate`,noActiveTodos:`Nessuna attività attiva`,moreTodos:`+{{count}} altre`,currentTask:`Attività corrente`,task:`Attività`,promptReceived:`Ricevuto`,todos:`Attività`,todoStatus:{pending:`In attesa`,in_progress:`In corso`,completed:`Completata`},breakRoom:`Sala relax`,onBreak:`{{count}} in pausa`,desksEmpty:`Tutti sono in pausa — le scrivanie sono pronte per il prossimo compito`,files:`FILE`,read:`LETTURA`,write:`SCRITTURA`,edit:`MODIFICA`,term:`TERM`,live:`LIVE`,uniqueFilesTouched:`File univoci toccati`,fileReads:`Letture di file`,filesWritten:`File scritti`,filesEdited:`File modificati`,linesAddedAndRemoved:`Righe aggiunte e rimosse`,terminalCommands:`Comandi del terminale`,incomingAndOutgoingMail:`Posta in entrata e in uscita`,sessionActivityTotals:`Totali dell'attività di sessione`,closeToolDetails:`Chiudi i dettagli dello strumento`,closeDetails:`Chiudi i dettagli`,closeMailDetails:`Chiudi i dettagli della posta`,closeTaskDetails:`Chiudi i dettagli dell'attività`,closeOfficeBriefing:`Chiudi il briefing dell'ufficio`,priority:`Priorità`,route:`Percorso`},De={injectedHeading:`Memoria SAGE inserita`,memoriesLabel_one:`{{count}} ricordo`,memoriesLabel_other:`{{count}} ricordi`},Oe={tabProject:`Progetto SDD`,tabBoard:`Bacheca SDD live`,tabSpecs:`Specifiche`},ke={label:`Pannello laterale`},Ae={deleteTitle:`Eliminare questa memoria?`,backToList:`Torna all'elenco delle memorie`,copyId:`Copia ID memoria`,deletedMemory:`Memoria eliminata`,anchorCursorHint:`L'intervallo di righe del cursore corrisponde all'ancora di questa memoria`,statusDeleted:`eliminata`,statusSuperseded:`sostituita`,restoreTitle:`Ripristina questa memoria allo stato attivo`,supersededJumpTitle:`Questa versione è sostituita — passa alla versione attiva`,acceptSuggestionTitle:`Accetta il suggerimento di eliminazione dell'igiene — la memoria sarà dimenticata`,rejectSuggestionTitle:`Rifiuta il suggerimento — la memoria resta com'è e potrà essere riproposta`,updateTitle:`Aggiorna il contenuto della memoria — il versioning crea un nuovo record attivo`,promoteTitle:"Promuovi a `permanent` — l'igiene non lo riproporrà mai più",openRecordTitle:`Apri il record completo in MemoryManager`,fileDrawerAria:`Cassetto memoria del file`,requeryTitle:`Richiedi di nuovo questo file`,closeDrawerAria:`Chiudi cassetto`,closeDrawerTitle:`Chiudi cassetto memoria`,showRecoverable:`Mostra recuperabili (eliminate)`,cursorBoostTitle:`Boost cursore`,fileScopedTitle:`Scopo file`,mentionedInTitle:`Menzionato in`,editorKnowledge:`Conoscenza`,editorContentPlaceholder:`Esempio: lo stato della WebUI appartiene agli store Zustand; i messaggi del server li aggiornano tramite handler WebSocket singleton.`,editorImportance:`Importanza`,editorConfidence:`Confidenza`,editorFreshness:`Freschezza`,editorAnchors:`Ancore`,editorSymbolPlaceholder:`Nome simbolo`,editorRelationships:`Relazioni`,searchAria:`Cerca memorie`,searchPlaceholder:`Cerca contenuto, ID, tag, ancore…`,clearSearchAria:`Cancella ricerca`,audienceFilterAria:`Filtra solo ambito pubblico`,audienceFilterTitle:`Mostra solo memorie ad ambito pubblico`,clearFiltersAria:`Cancella tutti i filtri`,clearFiltersTitle:`Cancella tutti i filtri`,allStatuses:`Tutti gli stati`,allKinds:`Tutti i tipi`,tagsLabel:`Tag`,popularTags:`Tag popolari`,graphAria:`Grafo delle relazioni di memoria`,graphFullscreenAria:`Apri grafo a schermo intero`,clearTracesTitle:`Cancella tutte le tracce`,closePanelTitle:`Chiudi pannello`,traceMatched:`corrispondente`,traceInjected:`iniettato`,traceFiltered:`filtrato`,traceActive:`attivo`,traceExited:`uscito`,traceScore:`punteggio`,traceError:`errore`,lifecycleAria:`Registro live del ciclo di vita della memoria`,listAria:`Memorie`,emptyTitle:`Il contesto a lungo termine del tuo progetto`,emptyVerifiedAnchors:`Ancore verificate`,emptyTypedRelations:`Relazioni tipizzate`,emptyAgentRecall:`Richiamo agente`,lensesAria:`Lenti memoria SAGE`,loadingSage:`Caricamento SAGE`,loadingAudience:`Caricamento memorie di pubblico`,storeUnavailable:`Store memoria non disponibile`,backToChat:`Torna alla chat`,sageHeading:`SAGE`,refreshAria:`Aggiorna memorie`,tabMemories:`Memorie`,tabActive:`Attive`,tabNeedsReview:`Da rivedere`,tabGraphEdges:`Archi del grafo`,libraryAria:`Libreria memorie`,viewAria:`Vista memorie`,detailAria:`Dettaglio memoria`,fileForDrawerAria:`File per cassetto memoria`,cursorLabel:`cursore`,reviewLabel:`revisione`,hygieneReviewTitle:`Revisione igiene: {{reason}} ({{days}} g)`,updatedSuffix:`aggiornata {{date}}`,actionRecover:`Recupera`,actionGoToActive:`Vai alla versione attiva`,actionAcceptDeletion:`Accetta eliminazione`,actionKeep:`Mantieni`,actionUpdate:`Aggiorna`,actionMarkPermanent:`Segna come permanente`,actionShowFull:`Mostra tutto`,itemLabel:`memorie`,noFile:`(nessun file)`,memoriesCount_one:`{{count}} memoria`,memoriesCount_other:`{{count}} memorie`,pendingReviewCount_one:`{{count}} revisione in sospeso`,pendingReviewCount_other:`{{count}} revisioni in sospeso`,supersededCount:`{{count}} sostituita/e`,linesRange:`righe {{start}}–{{end}}`,emptyOpenFile:`Apri un file per vedere le sue memorie.`,loadingMemories:`Caricamento memorie…`,errorPrefix:`Errore: {{message}}`,emptyNoMemories:`Nessuna memoria collegata a {{file}} ancora.`,pendingAccepting:`accettazione…`,pendingKeeping:`mantenimento…`,pendingUpdating:`aggiornamento…`,pendingMarking:`marcatura…`,pendingRecovering:`recupero…`,deletedNeverPolicy:`Questo record è solo per audit e porta un divieto assoluto: non può mai entrare nel contesto LLM.`,deletedEligiblePolicy:`Il record è inattivo e non modificabile, ma rimane idoneo come prova storica quando il recupero lo trova pertinente.`,deletingLabel:`Eliminazione…`,actionDeleteMemory:`Elimina memoria`,copiedNotice:`ID memoria copiato.`,revisionSuffix:`revisione {{n}}`,memoryRelationships:`Relazioni di memoria`,captureMemory:`Cattura una memoria`,editMemory:`Modifica memoria`,editorCreateHint:`Aggiungi conoscenza duratura con metadati di recupero.`,editorEditHint:`Aggiorna il contenuto senza perdere la provenienza.`,createMemory:`Crea memoria`,saveChanges:`Salva modifiche`,addAnchor:`Aggiungi ancora`,noAnchors:`Ancora nessuna ancora — aggiungine una per migliorare la precisione del recupero`,loadingGraph:`caricamento grafo reale…`,graphStats:`{{nodes}} nodi · {{edges}} archi`,lifecycleHeading:`Ciclo di vita della memoria`,statusWaiting:`in attesa`,statusLive:`live · {{count}}/100`,noMatching:`Nessuna memoria corrispondente`,buildGraph:`Costruisci il tuo grafo di memorie`,clearFilters:`Cancella filtri`,createFirst:`Crea la prima memoria`,captureButton:`Cattura memoria`,memoryCaptured:`Memoria catturata.`,memoryUpdated:`Memoria aggiornata.`,liveStore:`store live`,reconnecting:`riconnessione`,newMemory:`Nuova memoria`,hideFileDrawer:`Nascondi cassetto memoria del file`,showFileDrawer:`Mostra cassetto memoria del file`,hideDrawer:`Nascondi cassetto`,showDrawer:`Mostra cassetto`,editorCharCount:`{{count}} caratteri`,editorContentLabel:`Contenuto della memoria`,editorKind:`Tipo`,editorScope:`Ambito`,editorLifecycleStatus:`Stato del ciclo di vita`,editorSupersedes:`Sostituisce`,editorContradicts:`Contraddice`,filterByStatus:`Filtra per stato`,filterByKind:`Filtra per tipo`,graphHeading:`Mappa delle relazioni`,graphHeadingFull:`Mappa delle relazioni — {{id}}`,graphOpenFullscreen:`Apri a schermo intero`,projectKnowledge:`conoscenza del progetto`,sageSubtitle:`Ispeziona, collega, cura e ritira il contesto durevole usato tra le sessioni degli agenti.`,emptyBody:`Seleziona una memoria per ispezionarne i metadati e la mappa delle relazioni, oppure cattura conoscenza che i futuri agenti dovrebbero recuperare automaticamente.`,tabDeleted:`Eliminate`,fileDrawerLabel:`Cassetto file`,selectFilePlaceholder:`— seleziona un file —`,memoryCountSummary:`{{shown}} di {{total}} memorie`,updatedSortLabel:`aggiornato ↓`,tabAllMemories:`Tutte le memorie`,tabAllMemoriesHint:`Ispeziona, cura, ritira`,tabAudience:`Con pubblico`,tabAudienceHint:`Guida instradata agli agenti`,editorRelationshipsHint:`Riferite ID di memoria esatti. Le relazioni vengono validate e gli archi del grafo ricostruiti da SAGE.`,editorTaskTypes:`Tipi di attività`,createAction:`Crea`,mutationTimeout:`{{verb}} scaduto. La tua bozza è ancora qui.`,loadingSageContent:`Caricamento contenuto SAGE`,injectorActiveInContext:`Attivo nel contesto`,injectorInjectionHistory:`Cronologia iniezioni`,injectorContextTransitions:`Transizioni di contesto`,metaCreated:`Creata`,metaUpdated:`Aggiornata`,metaLastAccessed:`Ultimo accesso`,metaLastVerified:`Ultima verifica`,referencedUnavailable:`Memoria referenziata non disponibile`,emptyFiltered:`Modifica i filtri o cancella la query di ricerca.`,emptyCapture:`Cattura fatti durevoli, decisioni, convenzioni e note legate ai file per ogni agente.`,memoryUnavailable:`La memoria non è disponibile o è stata rimossa.`,staleConflicts:`obsolete + conflitti`},je={enableLayer:`Abilita questo boundary layer`,outsideScope:`Fuori ambito`,askPermission:`Chiedi il permesso`,alwaysBlock:`Blocca sempre`,allow:`Consenti`,allowSelectors:`Consenti selettori`,denySelectors:`Nega selettori`,crossPathSelectors:`La shell “Consenti” è opaca e può attraversare selettori cross-path.`,removeLayer:`Rimuovi layer`,taskInspector:`Task inspector`,task:`Task`,dispatched:`Inviato`,collapseDetails:`Comprimi i dettagli del task`,taskBoundary:`Task boundary`,title:`Titolo`,managedStage:`Stage gestito`,status:`Stato`,priority:`Priorità`,type:`Tipo`,labelsCommaSeparated:`Etichette (separate da virgola)`,dueDatePlaceholder:`Data di scadenza (ISO o YYYY-MM-DD)`,estimatedHours:`Ore stimate`,actualHours:`Ore effettive`,selectBlockingTasks:`Seleziona task bloccanti…`,selectSequentialChain:`Aggiungi task a una catena sequenziale…`,enforceChainOrder:`Applica l'ordine della catena come dipendenze`,assignmentReason:`Motivo del cambio / assegnazione (persistente nell'attività)`,managedLifecycle:`Transizione del lifecycle gestito`,kanbanAgentTransition:`Transizione Kanban Agent`,completedAction:`Azione completata / azione del reviewer`,progressComment:`Commento di avanzamento veritiero (obbligatorio)`,evidenceUrl:`URL dell'allegato di evidenza`,source:`Sorgente`,taskId:`ID task`,run:`Esegui`,column:`Colonna`,primaryModelSource:`Sorgente modello primaria`,selectProviderModel:`Seleziona provider / modello esatto…`,fallbackProfile:`Profilo di fallback (il primo modello è il primario)`,selectProfile:`Seleziona profilo configurato…`,fallbackModels:`Modelli di fallback`,addFallbackModel:`Aggiungi modello di fallback…`,role:`Ruolo`,selectRole:`Seleziona un ruolo…`,assignSkills:`Assegna skill richieste…`,restrictTools:`Limita a strumenti specifici…`,agentNameOptional:`Nome agente (opzionale)`,retryPolicy:`Politica di retry`,maxAttempts:`Tentativi massimi`,costCeilingUsd:`Costo massimo USD`,grantCapability:`Concedi una capability…`,targetBoard:`Board di destinazione`,boardPresence:`Presenza sulla board`,liveBoardUsers:`Utenti live sulla board`,kanbanAgent:`Kanban Agent`,watchThisBoard:`Osserva questa board`,supervisorEngine:`Motore supervisore`,kanbanAgentModelSource:`Sorgente modello Kanban Agent`,supervisorSkills:`Skill del supervisore`,forceLoadSkills:`Forza il caricamento delle skill agentiche…`,extraFallbackModels:`Modelli di fallback extra`,optionalFallbacks:`Fallback ordinati opzionali…`,queueHealth:`Salute della coda`,claimableTasks:`Task rivendicabili`,runningAssignments:`Assegnazioni in esecuzione`,inReview:`In revisione`,manuallyBlocked:`Bloccati manualmente`,failedTasks:`Task falliti`,blockedByDeps:`Task pronti/in attesa bloccati da dipendenze`,expiredLeases:`Assegnazioni con lease scaduto`,healthy:`sano`,costCeilingSum:`Somma di costCeilingUsd per task in esecuzione/in coda`,liveRunSteer:`Esecuzione live — guidala da qui`,openLiveRun:`Apri la vista dell'esecuzione live (SDD Hub)`,runAsLiveJob:`Esegui questa board come job agente live:`,startAsGoal:`Avvia come Goal`,startAsSdd:`Avvia come SDD`,runControls:`Controlli di esecuzione`,workerModel:`Modello worker`,setModelForTask:`Imposta modello per questo task…`,newWorkerName:`Nuovo nome worker`,duration:`Durata`,liveRun:`Esecuzione live`,lastResult:`Ultimo risultato`,definitionOfDone:`Definition of Done`,failingChecks:`Controlli falliti`,evidenceMissing:`Evidenza mancante (controlli agente/council senza riferimenti a supporto)`,needsDecomposition:`Richiede decomposizione`,decompositionPending:`Proposte di decomposizione in attesa di approvazione`,noOutstanding:`Nessuna verifica o problematica di decomposizione in sospeso su questa board.`,kanban:`Kanban`,newBoard:`Nuova board`,createBoard:`Crea board`,deleteTask:`Elimina task`,runFailed:`esecuzione fallita`,splitPendingApproval:`split in attesa di approvazione`,newTask:`Nuovo task`,addTask:`Aggiungi task`,newColumn:`Nuova colonna`,addColumn:`Aggiungi colonna`,duplicateBoard:`Duplica board`,deleteBoard:`Elimina board`,boardBoundary:`Board boundary`,noBoardSelected:`Nessuna board kanban selezionata.`,expandDetails:`Espandi i dettagli del task`,elapsed:`Trascorso`,assigned:`Assegnato`,configuredAgentRoute:`la rotta agente configurata`,subagent:`Subagent`,checkedAgo:`controllato {{ago}} fa`,notChecked:`non controllato`,auditInterval:`Intervallo di audit (secondi)`,statusReady:`pronto`,statusRunning:`in esecuzione`,statusReview:`in revisione`,statusBlocked:`bloccato`,statusFailed:`fallito`,statusBlockedByDeps:`bloccato da dipendenze`,statusStale:`obsoleto`,runningCost:"~${{cost}} costo in esecuzione",actionPause:`Pausa`,actionResume:`Riprendi`,actionRetryFailed:`Riprova i falliti`,actionStop:`Ferma`,actionReassign:`Riassegna`,actionRunNow:`Esegui ora`,deleteTaskAria:`Elimina task: {{title}}`,activityNoteTemplate:`{{action}} da WebUI a {{target}}.`},Me={heading:`Processi cron`,subtitle:`Attività ricorrenti pianificate gestite dal plugin cron.`,statusDisabled:`Disabilitato`,statusOverdue:`In ritardo`,statusActive:`Attivo`,jobCount_one:`{{count}} processo`,jobCount_other:`{{count}} processi`,enabledCount:`{{count}} abilitati`,overdueCount:`{{count}} in ritardo`,totalRuns:`{{count}} esecuzioni totali`,maxConcurrent:`max {{count}} concorrenti`,emptyTitle:`Nessun processo cron pianificato.`,emptyUse:`Usa`,emptyToAdd:`per aggiungerne uno.`,thStatus:`Stato`,thName:`Nome`,thInterval:`Intervallo`,thRuns:`Esecuzioni`,thNextRun:`Prossima esecuzione`,thLastRun:`Ultima esecuzione`,thAction:`Azione`,lastFiredAtTitle:`Ultimo avvio alle {{time}}`,footerUse:`Usa`,footerToAdd:`per aggiungere,`,footerToRemove:`per rimuovere.`},Ne={refreshRosterData:`Aggiorna dati roster`,liveEmpty:`Gli agenti compaiono qui quando si generano sottoagenti`,fleetInspector:`Ispettore flotta`,openAgentsPanel:`Apri pannello agenti`,toolCalls:`Chiamate strumenti`,running:`In esecuzione`,projectAgents:`Agenti di progetto`,createOrCloneTitle:`Crea o clona agente di progetto`,createOrCloneHint:`Eredita qualsiasi agente del roster come modello, quindi sviluppa identità, policy runtime e cronologia apprese indipendenti.`,cloneFromRole:`Clona da ruolo roster`,cloneHint:`Prompt, strumenti, competenze e impostazioni predefinite vengono ereditati. Apprendimento e modifiche successive restano isolati al nuovo agente.`,displayName:`Nome visualizzato`,descriptionPlaceholder:`Gestisci i workflow X, Y e Z per questo progetto e verifica i loro risultati.`,creating:`Creazione…`,noCustomizations:`Nessuna personalizzazione ancora`,selectAgentEmpty:`Seleziona un agente per modificare le personalizzazioni`,saving:`Salvataggio…`,saveFailed:`Salvataggio non riuscito`,failed:`Non riuscito`,learningResumed:`Apprendimento automatico ripreso`,optimizationEmptyToast:`L'ottimizzazione ha prodotto un risultato vuoto. Riprova.`,noActiveModelToast:`Nessun modello attivo sul server. Ottimizzazione inviata all'agente chat.`,learningsEmpty:`Le voci di apprendimento compaiono quando gli agenti catturano output`,allRosterAgents:`Tutti gli agenti del roster`,optimizing:`Ottimizzazione…`,paused:`in pausa`,selectLearningAgent:`Seleziona un agente per visualizzare i dettagli di apprendimento`,learningOn:`Apprendimento attivo`,lastCapture:`Ultima cattura`,lifetimeCaptures:`Catture totali`,learningsLimitExceeded:`I dati appresi superano il limite morbido ({{bytes}}B / 8.192B). Ottimizza per sintetizzare le voci grezze in un documento consolidato e ridurre il volume di contesto.`,newPending:`nuovo in attesa`,viewAction:`Visualizza`,applying:`Applicazione…`,searchPlaceholder:`Cerca agenti per nome, ruolo o descrizione…`,maxIterations:`Iterazioni massime`,maxToolCalls:`Chiamate strumenti massime`,projectCustomizations:`Personalizzazioni di progetto`,learnedEntries:`voci apprese`,teachFailed:`Insegnamento non riuscito`,selectRoleEmpty:`Seleziona un ruolo da ispezionare o modificare`,captureLearned:`Cattura apprendimento`,teachThisAgent:`Insegna a questo agente`,teachPlaceholder:`Descrivi cosa vuoi che questo agente faccia meglio… ad es. 'Questo agente deve sempre verificare le versioni da npm prima di consigliare'`,heading:`Roster agenti`,headerSummary:`{{customized}} personalizzati · {{entries}} voci apprese`,tabLive:`Flotta live`,tabCatalog:`Catalogo roster`,tabLearning:`Autoapprendimento`,tabCustomize:`Personalizzazione`,learning:`in apprendimento`,learningPaused:`Apprendimento in pausa`,autoLearningPaused:`Apprendimento automatico in pausa`,toolsCount_one:`{{count}} strumento`,toolsCount_other:`{{count}} strumenti`,maxItShort:`max {{value}} iter.`,customizedBadge:`Personalizzato`,needsSummary:`⚠ Richiede riepilogo`,timeout:`Timeout`,learnedEntriesCount_one:`{{count}} voce appresa`,learnedEntriesCount_other:`{{count}} voci apprese`,sessionCapturesCount_one:`{{count}} acquisizione di sessione`,sessionCapturesCount_other:`{{count}} acquisizioni di sessione`,noAgentsMatch:`Nessun agente corrisponde a "{{query}}"`,footerRosterRoles_one:`ruolo del roster`,footerRosterRoles_other:`ruoli del roster`,footerCustomized:`personalizzati`,footerTotalLearned_one:`voce appresa in totale`,footerTotalLearned_other:`voci apprese in totale`,clone:`+ Clona`,abc:`ABC`,abcGeneratedFromName:`abc (generato dal nome)`,roleIdOptional:`ID ruolo (facoltativo)`,purpose:`Scopo`,taskTypesCommaOrOnePer:`Tipi di attività (separati da virgola o uno per riga)`,cancel:`Annulla`,selectAnAgentToEditCustomizations:`Seleziona un agente per modificare le personalizzazioni`,llmImprove:`Miglioramento LLM`,reset:`Reimposta`,editIdentityMd:`Modifica identity.md`,editLearnedMd:`Modifica learned.md`,editConfigJson:`Modifica config.json`,runtimePolicy:`Criteri di runtime`,retry:`Riprova`,noSelfLearningDataYet:`Nessun dato di autoapprendimento`,review:`rivedi →`,selectAnAgentToViewLearning:`Seleziona un agente per vedere i dettagli di apprendimento`,entries:`Voci`,size:`Dimensione`,optimizeLearnings:`Ottimizza gli apprendimenti`,keep:`Mantieni`,drop:`Scarta`,describeACommandPatternOrBehavior:`Descrivi un comando, uno schema o un comportamento che questo agente deve ricordare.`,eGAlwaysUsePnpmForThisProject:`es. Usa sempre pnpm per questo progetto`,teach:`Insegna`,noActiveFleetAgents:`Nessun agente della flotta attivo`,clear:`Cancella`,agentsTotal:`agenti in totale`,leader:`Leader`,iterations:`Iterazioni`,cost:`Costo`,context:`Contesto`,contextWindow:`Finestra di contesto`,error:`Errore`,filterAll:`Tutti ({{count}})`,filterRunning:`In esecuzione ({{count}})`,filterDone:`Completati ({{count}})`,filterFailed:`Non riusciti ({{count}})`,optimizeAll:`Ottimizza tutto ({{count}})`,policyUpdateFailed:`Aggiornamento dei criteri non riuscito`,noRawEntries:`Nessuna voce grezza da ottimizzare.`,optimizedOk:`Ottimizzato. Conoscenza consolidata aggiornata.`,emptySynthesis:`Il modello ha restituito un risultato vuoto. Nulla è stato modificato — riprova.`,consolidatedWithModel:`Apprendimenti consolidati con {{model}}.`,consolidatedPlain:`Apprendimenti consolidati.`,resetConfirm:`Reimpostare tutti i dati specifici del progetto per l'agente "{{role}}"?`,loadCustomizationFailed:`Impossibile caricare la personalizzazione`,loadRuntimePolicyFailed:`Impossibile caricare i criteri di runtime`,runtimePolicySaveFailed:`Salvataggio dei criteri di runtime non riuscito`,llmImprovementFailed:`Miglioramento LLM non riuscito`,agentCreationFailed:`Creazione dell'agente non riuscita`,noActiveModelMsg:`Nessun modello attivo sul server — l'ottimizzazione è stata inviata all'agente di chat.`,optimizationFailed:`Ottimizzazione non riuscita`,bulkOptimizationFailed:`Ottimizzazione in blocco non riuscita`,taskTypesPlaceholder:`Flusso X
5
+ Trigger: l'utente dice "parola chiave", "altra".`,saveIn:`Salva in:`,createBtn:`Crea Competenza`,createdMsg:`Creata: {{name}}`,createFailed:`Creazione fallita`},Se={noEvents:`Nessun evento.`},Ce={pickHint:`Scegli un kit — l'agent vi si atterrà.`,gallery:`Galleria`,galleryTitle:`Apri galleria anteprima live`,stackTitle:`Stack target`,loading:`Caricamento kit…`,notFound:`Nessun design kit trovato.`,bestFor:`Ideale per:`,light:`Chiaro`,dark:`Scuro`,tune:`Regola`,font:`Carattere`,set:`Imposta`,spaceGrotesk:`Space Grotesk…`,aaHeading:`Aa Titolo`,theQuickBrownFoxJumpsOver:`Pranzo d'acqua fa volti sghembi.`,primary:`Primario`,ghost:`Ghost`,badge:`Badge`,inputField:`Campo di input…`,radius:`Raggio`,density:`Densità`,motion:`Movimento`},we={detached:`(scollegato)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktree`,baseSuffix:` · base {{base}}`,baseLabel:`base`,cleanOrphans:`Pulisci orfani`,cleanOrphansTitle:`Rimuovi tutti i worktree orfani`,liveBusyTitle:`Un run è attivo — fermalo prima`,rescanTitle:`Riscansiona`,removed_one:`Rimosso {{count}} worktree.`,removed_other:`Rimossi {{count}} worktree.`,failed:`Fallito`,mergedIntoBase:`{{branch}} unito alla base.`,conflictMerge:`Conflitto unendo {{branch}}: {{files}}`,seeGit:`vedi git`,mergeFailed:`Unione fallita: {{reason}}`,unknownReason:`sconosciuto`,mergeConfirmTitle:`Unire {{branch}} in {{base}}?`,mergeConfirmMsg:`Squash-merge questo branch sul branch base. Si annulla pulitamente in caso di conflitto.`,mergeAction:`Unisci`,removeConfirmTitle:`Rimuovere {{branch}}?`,removeConfirmMsg:`Rimuove forzatamente il checkout del worktree ed elimina il suo branch. Il lavoro non unito viene perso.`,empty:`Nessun worktree.`,emptyHint:`I run SDD / Goal creano worktree isolati qui. Anche gli orfani dei run crashati appaiono.`,actOpenTerm:`Apri nel terminale`,actOpenFolder:`Apri cartella`,actViewChanges:`Vedi modifiche`,actMerge:`Unisci alla base`,actRemove:`Rimuovi / scarta`,live:`live`,noUncommitted:`Nessuna modifica non confermata`,commitsAhead_one:`{{count}} commit avanti`,commitsAhead_other:`{{count}} commit avanti`,more:`…{{count}} altri`},Te={heading:`Mappa Ufficio`,headingHint:`Visualizza la tua flotta come piantina d'ufficio con stato agenti live.`,statAgents:`Agenti`,statMail:`Posta`,unreadSuffix:` non letti`,sectionView:`Vista`,sectionDisplay:`Visualizzazione`,sectionBackground:`Sfondo`,sectionRecent:`Attività Recente`,eventsTrackedSuffix:` eventi tracciati`,recentHint:`Invii posta, spawn agenti e cambi di stato appaiono qui.`,sectionShortcuts:`Scorciatoie`,sectionLegend:`Legenda`,hudLabel:`HUD`,hudDesc:`Mostra overlay statistiche sessione in tempo reale`,hudToggle:`Attiva HUD`,minimapLabel:`Minimappa`,minimapDesc:`Mostra la minimappa di panoramica`,minimapToggle:`Attiva minimappa`,controlsLabel:`Controlli`,controlsDesc:`Mostra controlli zoom e adatta`,controlsToggle:`Attiva controlli`,animateLabel:`Anima archi`,animateDesc:`Anima il flusso sulle connessioni attive`,animateToggle:`Attiva animazione archi`,legendLabel:`Mostra legenda`,legendDesc:`Mostra legenda di stato e connessione`,legendToggle:`Attiva legenda`,feedLabel:`Feed live`,feedDesc:`Striscia inferiore di attività cross-processo recente`,feedToggle:`Attiva feed live`,fitView:`Adatta`,zoomIn:`Ingrandisci`,zoomOut:`Riduci`,resetZoom:`Reimposta zoom`,legendActive:`Attivo (in corso)`,legendIdle:`Inattivo`,legendError:`Errore`,legendOffline:`Offline`,bg:{dots:`Punti`,lines:`Linee`,cross:`Croce`,none:`Nessuno`}},Ee={liveProjectOffice:`Ufficio del progetto in tempo reale`,agents:`agenti`,working:`al lavoro`,toolCalls:`chiamate strumenti`,office:`Ufficio`,topology:`Topologia`,officeDescription:`Postazioni e attività degli agenti live`,topologyDescription:`Client, agenti e connessioni`,team:`Team`,liveDesk:`Scrivania live e lavoro in arrivo`,lastActions:`Lavori recenti`,leadAgent:`Agente principale`,agent:`Agente`,callsCount:`{{count}} chiamate`,recent:`Recenti`,noCalls:`Nessuna chiamata completata`,telemetryReconnect:`Riconnetti questo terminale per avviare la cronologia degli strumenti`,thinking:`Sta pensando`,waiting:`In attesa di lavoro`,preparing:`Preparazione della prossima azione…`,deskReady:`La scrivania è pronta`,toolCall:`Chiamata strumento`,execution:`Esecuzione`,started:`Avvio`,duration:`Durata`,session:`Sessione`,target:`Destinazione`,resultSize:`Dimensione risultato`,lines:`righe`,bytes:`byte`,tokens:`token`,input:`Input`,outputPreview:`Anteprima output`,readyTitle:`L’ufficio è pronto`,readyBody:`Gli agenti prenderanno posto non appena entreranno nel progetto.`,liveEvent:`flusso eventi live`,connectedSessions_one:`{{count}} sessione connessa`,connectedSessions_other:`{{count}} sessioni connesse`,detailHint:`fai clic su un’azione per vedere input e risultato esatti`,officeBriefing:`Briefing dell’ufficio`,leaderPrompt:`Ultimo prompt del leader`,activeInstruction:`Istruzione attiva`,telemetryWaiting:`Riconnetti questo terminale per ricevere istruzioni live`,syncWaiting:`sincronizzazione in attesa`,todoTelemetryWaiting:`Riconnetti questo terminale per ricevere l’elenco attività live`,taskNotReported:`L’agente sta lavorando, ma non ha segnalato una descrizione dell’attività`,noPrompt:`Nessun prompt ancora ricevuto in questa sessione`,activeTodos:`Attività attive`,todoProgress:`{{done}}/{{total}} completate`,allTodosDone:`Tutte le attività completate`,noActiveTodos:`Nessuna attività attiva`,moreTodos:`+{{count}} altre`,currentTask:`Attività corrente`,task:`Attività`,promptReceived:`Ricevuto`,todos:`Attività`,todoStatus:{pending:`In attesa`,in_progress:`In corso`,completed:`Completata`},breakRoom:`Sala relax`,onBreak:`{{count}} in pausa`,desksEmpty:`Tutti sono in pausa — le scrivanie sono pronte per il prossimo compito`,files:`FILE`,read:`LETTURA`,write:`SCRITTURA`,edit:`MODIFICA`,term:`TERM`,live:`LIVE`,uniqueFilesTouched:`File univoci toccati`,fileReads:`Letture di file`,filesWritten:`File scritti`,filesEdited:`File modificati`,linesAddedAndRemoved:`Righe aggiunte e rimosse`,terminalCommands:`Comandi del terminale`,incomingAndOutgoingMail:`Posta in entrata e in uscita`,sessionActivityTotals:`Totali dell'attività di sessione`,closeToolDetails:`Chiudi i dettagli dello strumento`,closeDetails:`Chiudi i dettagli`,closeMailDetails:`Chiudi i dettagli della posta`,closeTaskDetails:`Chiudi i dettagli dell'attività`,closeOfficeBriefing:`Chiudi il briefing dell'ufficio`,priority:`Priorità`,route:`Percorso`},De={injectedHeading:`Memoria SAGE inserita`,memoriesLabel_one:`{{count}} ricordo`,memoriesLabel_other:`{{count}} ricordi`},Oe={tabProject:`Progetto SDD`,tabBoard:`Bacheca SDD live`,tabSpecs:`Specifiche`},ke={label:`Pannello laterale`},Ae={deleteTitle:`Eliminare questa memoria?`,backToList:`Torna all'elenco delle memorie`,copyId:`Copia ID memoria`,deletedMemory:`Memoria eliminata`,anchorCursorHint:`L'intervallo di righe del cursore corrisponde all'ancora di questa memoria`,statusDeleted:`eliminata`,statusSuperseded:`sostituita`,restoreTitle:`Ripristina questa memoria allo stato attivo`,supersededJumpTitle:`Questa versione è sostituita — passa alla versione attiva`,acceptSuggestionTitle:`Accetta il suggerimento di eliminazione dell'igiene — la memoria sarà dimenticata`,rejectSuggestionTitle:`Rifiuta il suggerimento — la memoria resta com'è e potrà essere riproposta`,updateTitle:`Aggiorna il contenuto della memoria — il versioning crea un nuovo record attivo`,promoteTitle:"Promuovi a `permanent` — l'igiene non lo riproporrà mai più",openRecordTitle:`Apri il record completo in MemoryManager`,fileDrawerAria:`Cassetto memoria del file`,requeryTitle:`Richiedi di nuovo questo file`,closeDrawerAria:`Chiudi cassetto`,closeDrawerTitle:`Chiudi cassetto memoria`,showRecoverable:`Mostra recuperabili (eliminate)`,cursorBoostTitle:`Boost cursore`,fileScopedTitle:`Scopo file`,mentionedInTitle:`Menzionato in`,editorKnowledge:`Conoscenza`,editorContentPlaceholder:`Esempio: lo stato della WebUI appartiene agli store Zustand; i messaggi del server li aggiornano tramite handler WebSocket singleton.`,editorImportance:`Importanza`,editorConfidence:`Confidenza`,editorFreshness:`Freschezza`,editorAnchors:`Ancore`,editorSymbolPlaceholder:`Nome simbolo`,editorRelationships:`Relazioni`,searchAria:`Cerca memorie`,searchPlaceholder:`Cerca contenuto, ID, tag, ancore…`,clearSearchAria:`Cancella ricerca`,audienceFilterAria:`Filtra solo ambito pubblico`,audienceFilterTitle:`Mostra solo memorie ad ambito pubblico`,clearFiltersAria:`Cancella tutti i filtri`,clearFiltersTitle:`Cancella tutti i filtri`,allStatuses:`Tutti gli stati`,allKinds:`Tutti i tipi`,tagsLabel:`Tag`,popularTags:`Tag popolari`,graphAria:`Grafo delle relazioni di memoria`,graphFullscreenAria:`Apri grafo a schermo intero`,clearTracesTitle:`Cancella tutte le tracce`,closePanelTitle:`Chiudi pannello`,traceMatched:`corrispondente`,traceInjected:`iniettato`,traceFiltered:`filtrato`,traceActive:`attivo`,traceExited:`uscito`,traceScore:`punteggio`,traceError:`errore`,lifecycleAria:`Registro live del ciclo di vita della memoria`,listAria:`Memorie`,emptyTitle:`Il contesto a lungo termine del tuo progetto`,emptyVerifiedAnchors:`Ancore verificate`,emptyTypedRelations:`Relazioni tipizzate`,emptyAgentRecall:`Richiamo agente`,lensesAria:`Lenti memoria SAGE`,loadingSage:`Caricamento SAGE`,loadingAudience:`Caricamento memorie di pubblico`,storeUnavailable:`Store memoria non disponibile`,backToChat:`Torna alla chat`,sageHeading:`SAGE`,refreshAria:`Aggiorna memorie`,tabMemories:`Memorie`,tabActive:`Attive`,tabNeedsReview:`Da rivedere`,tabGraphEdges:`Archi del grafo`,libraryAria:`Libreria memorie`,viewAria:`Vista memorie`,detailAria:`Dettaglio memoria`,fileForDrawerAria:`File per cassetto memoria`,cursorLabel:`cursore`,reviewLabel:`revisione`,hygieneReviewTitle:`Revisione igiene: {{reason}} ({{days}} g)`,updatedSuffix:`aggiornata {{date}}`,actionRecover:`Recupera`,actionGoToActive:`Vai alla versione attiva`,actionAcceptDeletion:`Accetta eliminazione`,actionKeep:`Mantieni`,actionUpdate:`Aggiorna`,actionMarkPermanent:`Segna come permanente`,actionShowFull:`Mostra tutto`,itemLabel:`memorie`,noFile:`(nessun file)`,memoriesCount_one:`{{count}} memoria`,memoriesCount_other:`{{count}} memorie`,pendingReviewCount_one:`{{count}} revisione in sospeso`,pendingReviewCount_other:`{{count}} revisioni in sospeso`,supersededCount:`{{count}} sostituita/e`,linesRange:`righe {{start}}–{{end}}`,emptyOpenFile:`Apri un file per vedere le sue memorie.`,loadingMemories:`Caricamento memorie…`,errorPrefix:`Errore: {{message}}`,emptyNoMemories:`Nessuna memoria collegata a {{file}} ancora.`,pendingAccepting:`accettazione…`,pendingKeeping:`mantenimento…`,pendingUpdating:`aggiornamento…`,pendingMarking:`marcatura…`,pendingRecovering:`recupero…`,deletedNeverPolicy:`Questo record è solo per audit e porta un divieto assoluto: non può mai entrare nel contesto LLM.`,deletedEligiblePolicy:`Il record è inattivo e non modificabile, ma rimane idoneo come prova storica quando il recupero lo trova pertinente.`,deletingLabel:`Eliminazione…`,actionDeleteMemory:`Elimina memoria`,copiedNotice:`ID memoria copiato.`,revisionSuffix:`revisione {{n}}`,memoryRelationships:`Relazioni di memoria`,captureMemory:`Cattura una memoria`,editMemory:`Modifica memoria`,editorCreateHint:`Aggiungi conoscenza duratura con metadati di recupero.`,editorEditHint:`Aggiorna il contenuto senza perdere la provenienza.`,createMemory:`Crea memoria`,saveChanges:`Salva modifiche`,addAnchor:`Aggiungi ancora`,noAnchors:`Ancora nessuna ancora — aggiungine una per migliorare la precisione del recupero`,loadingGraph:`caricamento grafo reale…`,graphStats:`{{nodes}} nodi · {{edges}} archi`,lifecycleHeading:`Ciclo di vita della memoria`,statusWaiting:`in attesa`,statusLive:`live · {{count}}/100`,noMatching:`Nessuna memoria corrispondente`,buildGraph:`Costruisci il tuo grafo di memorie`,clearFilters:`Cancella filtri`,createFirst:`Crea la prima memoria`,captureButton:`Cattura memoria`,memoryCaptured:`Memoria catturata.`,memoryUpdated:`Memoria aggiornata.`,liveStore:`store live`,reconnecting:`riconnessione`,newMemory:`Nuova memoria`,hideFileDrawer:`Nascondi cassetto memoria del file`,showFileDrawer:`Mostra cassetto memoria del file`,hideDrawer:`Nascondi cassetto`,showDrawer:`Mostra cassetto`,editorCharCount:`{{count}} caratteri`,editorContentLabel:`Contenuto della memoria`,editorKind:`Tipo`,editorScope:`Ambito`,editorLifecycleStatus:`Stato del ciclo di vita`,editorSupersedes:`Sostituisce`,editorContradicts:`Contraddice`,filterByStatus:`Filtra per stato`,filterByKind:`Filtra per tipo`,graphHeading:`Mappa delle relazioni`,graphHeadingFull:`Mappa delle relazioni — {{id}}`,graphOpenFullscreen:`Apri a schermo intero`,projectKnowledge:`conoscenza del progetto`,sageSubtitle:`Ispeziona, collega, cura e ritira il contesto durevole usato tra le sessioni degli agenti.`,emptyBody:`Seleziona una memoria per ispezionarne i metadati e la mappa delle relazioni, oppure cattura conoscenza che i futuri agenti dovrebbero recuperare automaticamente.`,tabDeleted:`Eliminate`,fileDrawerLabel:`Cassetto file`,selectFilePlaceholder:`— seleziona un file —`,memoryCountSummary:`{{shown}} di {{total}} memorie`,updatedSortLabel:`aggiornato ↓`,tabAllMemories:`Tutte le memorie`,tabAllMemoriesHint:`Ispeziona, cura, ritira`,tabAudience:`Con pubblico`,tabAudienceHint:`Guida instradata agli agenti`,editorRelationshipsHint:`Riferite ID di memoria esatti. Le relazioni vengono validate e gli archi del grafo ricostruiti da SAGE.`,editorTaskTypes:`Tipi di attività`,createAction:`Crea`,mutationTimeout:`{{verb}} scaduto. La tua bozza è ancora qui.`,loadingSageContent:`Caricamento contenuto SAGE`,injectorActiveInContext:`Attivo nel contesto`,injectorInjectionHistory:`Cronologia iniezioni`,injectorContextTransitions:`Transizioni di contesto`,metaCreated:`Creata`,metaUpdated:`Aggiornata`,metaLastAccessed:`Ultimo accesso`,metaLastVerified:`Ultima verifica`,referencedUnavailable:`Memoria referenziata non disponibile`,emptyFiltered:`Modifica i filtri o cancella la query di ricerca.`,emptyCapture:`Cattura fatti durevoli, decisioni, convenzioni e note legate ai file per ogni agente.`,memoryUnavailable:`La memoria non è disponibile o è stata rimossa.`,staleConflicts:`obsolete + conflitti`},je={enableLayer:`Abilita questo boundary layer`,outsideScope:`Fuori ambito`,askPermission:`Chiedi il permesso`,alwaysBlock:`Blocca sempre`,allow:`Consenti`,allowSelectors:`Consenti selettori`,denySelectors:`Nega selettori`,crossPathSelectors:`La shell “Consenti” è opaca e può attraversare selettori cross-path.`,removeLayer:`Rimuovi layer`,taskInspector:`Task inspector`,task:`Task`,dispatched:`Inviato`,collapseDetails:`Comprimi i dettagli del task`,taskBoundary:`Task boundary`,title:`Titolo`,managedStage:`Stage gestito`,status:`Stato`,priority:`Priorità`,type:`Tipo`,labelsCommaSeparated:`Etichette (separate da virgola)`,dueDatePlaceholder:`Data di scadenza (ISO o YYYY-MM-DD)`,estimatedHours:`Ore stimate`,actualHours:`Ore effettive`,selectBlockingTasks:`Seleziona task bloccanti…`,selectSequentialChain:`Aggiungi task a una catena sequenziale…`,enforceChainOrder:`Applica l'ordine della catena come dipendenze`,assignmentReason:`Motivo del cambio / assegnazione (persistente nell'attività)`,managedLifecycle:`Transizione del lifecycle gestito`,kanbanAgentTransition:`Transizione Kanban Agent`,completedAction:`Azione completata / azione del reviewer`,progressComment:`Commento di avanzamento veritiero (obbligatorio)`,evidenceUrl:`URL dell'allegato di evidenza`,source:`Sorgente`,taskId:`ID task`,run:`Esegui`,column:`Colonna`,primaryModelSource:`Sorgente modello primaria`,selectProviderModel:`Seleziona provider / modello esatto…`,fallbackProfile:`Profilo di fallback (il primo modello è il primario)`,selectProfile:`Seleziona profilo configurato…`,fallbackModels:`Modelli di fallback`,addFallbackModel:`Aggiungi modello di fallback…`,role:`Ruolo`,selectRole:`Seleziona un ruolo…`,assignSkills:`Assegna skill richieste…`,restrictTools:`Limita a strumenti specifici…`,agentNameOptional:`Nome agente (opzionale)`,retryPolicy:`Politica di retry`,maxAttempts:`Tentativi massimi`,costCeilingUsd:`Costo massimo USD`,grantCapability:`Concedi una capability…`,targetBoard:`Board di destinazione`,boardPresence:`Presenza sulla board`,liveBoardUsers:`Utenti live sulla board`,kanbanAgent:`Kanban Agent`,watchThisBoard:`Osserva questa board`,supervisorEngine:`Motore supervisore`,kanbanAgentModelSource:`Sorgente modello Kanban Agent`,supervisorSkills:`Skill del supervisore`,forceLoadSkills:`Forza il caricamento delle skill agentiche…`,extraFallbackModels:`Modelli di fallback extra`,optionalFallbacks:`Fallback ordinati opzionali…`,queueHealth:`Salute della coda`,claimableTasks:`Task rivendicabili`,runningAssignments:`Assegnazioni in esecuzione`,inReview:`In revisione`,manuallyBlocked:`Bloccati manualmente`,failedTasks:`Task falliti`,blockedByDeps:`Task pronti/in attesa bloccati da dipendenze`,expiredLeases:`Assegnazioni con lease scaduto`,healthy:`sano`,costCeilingSum:`Somma di costCeilingUsd per task in esecuzione/in coda`,liveRunSteer:`Esecuzione live — guidala da qui`,openLiveRun:`Apri la vista dell'esecuzione live (SDD Hub)`,runAsLiveJob:`Esegui questa board come job agente live:`,startAsGoal:`Avvia come Goal`,startAsSdd:`Avvia come SDD`,runControls:`Controlli di esecuzione`,workerModel:`Modello worker`,setModelForTask:`Imposta modello per questo task…`,newWorkerName:`Nuovo nome worker`,duration:`Durata`,liveRun:`Esecuzione live`,lastResult:`Ultimo risultato`,definitionOfDone:`Definition of Done`,failingChecks:`Controlli falliti`,evidenceMissing:`Evidenza mancante (controlli agente/council senza riferimenti a supporto)`,needsDecomposition:`Richiede decomposizione`,decompositionPending:`Proposte di decomposizione in attesa di approvazione`,noOutstanding:`Nessuna verifica o problematica di decomposizione in sospeso su questa board.`,kanban:`Kanban`,newBoard:`Nuova board`,createBoard:`Crea board`,deleteTask:`Elimina task`,runFailed:`esecuzione fallita`,splitPendingApproval:`split in attesa di approvazione`,newTask:`Nuovo task`,addTask:`Aggiungi task`,newColumn:`Nuova colonna`,addColumn:`Aggiungi colonna`,duplicateBoard:`Duplica board`,confirmDelete:`Confermare?`,confirmDeleteBoard:`Clicca di nuovo per confermare l'eliminazione della board`,deleteBoard:`Elimina board`,boardBoundary:`Board boundary`,noBoardSelected:`Nessuna board kanban selezionata.`,expandDetails:`Espandi i dettagli del task`,elapsed:`Trascorso`,assigned:`Assegnato`,configuredAgentRoute:`la rotta agente configurata`,subagent:`Subagent`,checkedAgo:`controllato {{ago}} fa`,notChecked:`non controllato`,auditInterval:`Intervallo di audit (secondi)`,statusReady:`pronto`,statusRunning:`in esecuzione`,statusReview:`in revisione`,statusBlocked:`bloccato`,statusFailed:`fallito`,statusBlockedByDeps:`bloccato da dipendenze`,statusStale:`obsoleto`,runningCost:"~${{cost}} costo in esecuzione",actionPause:`Pausa`,actionResume:`Riprendi`,actionRetryFailed:`Riprova i falliti`,actionStop:`Ferma`,actionReassign:`Riassegna`,actionRunNow:`Esegui ora`,deleteTaskAria:`Elimina task: {{title}}`,confirmDeleteTask:`Clicca di nuovo per confermare l'eliminazione del task`,confirmDeleteTaskAria:`Conferma eliminazione: {{title}}`,moveTaskToColumn:`Sposta {{title}} nella colonna`,activityNoteTemplate:`{{action}} da WebUI a {{target}}.`},Me={heading:`Processi cron`,subtitle:`Attività ricorrenti pianificate gestite dal plugin cron.`,statusDisabled:`Disabilitato`,statusOverdue:`In ritardo`,statusActive:`Attivo`,jobCount_one:`{{count}} processo`,jobCount_other:`{{count}} processi`,enabledCount:`{{count}} abilitati`,overdueCount:`{{count}} in ritardo`,totalRuns:`{{count}} esecuzioni totali`,maxConcurrent:`max {{count}} concorrenti`,emptyTitle:`Nessun processo cron pianificato.`,emptyUse:`Usa`,emptyToAdd:`per aggiungerne uno.`,thStatus:`Stato`,thName:`Nome`,thInterval:`Intervallo`,thRuns:`Esecuzioni`,thNextRun:`Prossima esecuzione`,thLastRun:`Ultima esecuzione`,thAction:`Azione`,lastFiredAtTitle:`Ultimo avvio alle {{time}}`,footerUse:`Usa`,footerToAdd:`per aggiungere,`,footerToRemove:`per rimuovere.`},Ne={refreshRosterData:`Aggiorna dati roster`,liveEmpty:`Gli agenti compaiono qui quando si generano sottoagenti`,fleetInspector:`Ispettore flotta`,openAgentsPanel:`Apri pannello agenti`,toolCalls:`Chiamate strumenti`,running:`In esecuzione`,projectAgents:`Agenti di progetto`,createOrCloneTitle:`Crea o clona agente di progetto`,createOrCloneHint:`Eredita qualsiasi agente del roster come modello, quindi sviluppa identità, policy runtime e cronologia apprese indipendenti.`,cloneFromRole:`Clona da ruolo roster`,cloneHint:`Prompt, strumenti, competenze e impostazioni predefinite vengono ereditati. Apprendimento e modifiche successive restano isolati al nuovo agente.`,displayName:`Nome visualizzato`,descriptionPlaceholder:`Gestisci i workflow X, Y e Z per questo progetto e verifica i loro risultati.`,creating:`Creazione…`,noCustomizations:`Nessuna personalizzazione ancora`,selectAgentEmpty:`Seleziona un agente per modificare le personalizzazioni`,saving:`Salvataggio…`,saveFailed:`Salvataggio non riuscito`,failed:`Non riuscito`,learningResumed:`Apprendimento automatico ripreso`,optimizationEmptyToast:`L'ottimizzazione ha prodotto un risultato vuoto. Riprova.`,noActiveModelToast:`Nessun modello attivo sul server. Ottimizzazione inviata all'agente chat.`,learningsEmpty:`Le voci di apprendimento compaiono quando gli agenti catturano output`,allRosterAgents:`Tutti gli agenti del roster`,optimizing:`Ottimizzazione…`,paused:`in pausa`,selectLearningAgent:`Seleziona un agente per visualizzare i dettagli di apprendimento`,learningOn:`Apprendimento attivo`,lastCapture:`Ultima cattura`,lifetimeCaptures:`Catture totali`,learningsLimitExceeded:`I dati appresi superano il limite morbido ({{bytes}}B / 8.192B). Ottimizza per sintetizzare le voci grezze in un documento consolidato e ridurre il volume di contesto.`,newPending:`nuovo in attesa`,viewAction:`Visualizza`,applying:`Applicazione…`,searchPlaceholder:`Cerca agenti per nome, ruolo o descrizione…`,maxIterations:`Iterazioni massime`,maxToolCalls:`Chiamate strumenti massime`,projectCustomizations:`Personalizzazioni di progetto`,learnedEntries:`voci apprese`,teachFailed:`Insegnamento non riuscito`,selectRoleEmpty:`Seleziona un ruolo da ispezionare o modificare`,captureLearned:`Cattura apprendimento`,teachThisAgent:`Insegna a questo agente`,teachPlaceholder:`Descrivi cosa vuoi che questo agente faccia meglio… ad es. 'Questo agente deve sempre verificare le versioni da npm prima di consigliare'`,heading:`Roster agenti`,headerSummary:`{{customized}} personalizzati · {{entries}} voci apprese`,tabLive:`Flotta live`,tabCatalog:`Catalogo roster`,tabLearning:`Autoapprendimento`,tabCustomize:`Personalizzazione`,learning:`in apprendimento`,learningPaused:`Apprendimento in pausa`,autoLearningPaused:`Apprendimento automatico in pausa`,toolsCount_one:`{{count}} strumento`,toolsCount_other:`{{count}} strumenti`,maxItShort:`max {{value}} iter.`,customizedBadge:`Personalizzato`,needsSummary:`⚠ Richiede riepilogo`,timeout:`Timeout`,learnedEntriesCount_one:`{{count}} voce appresa`,learnedEntriesCount_other:`{{count}} voci apprese`,sessionCapturesCount_one:`{{count}} acquisizione di sessione`,sessionCapturesCount_other:`{{count}} acquisizioni di sessione`,noAgentsMatch:`Nessun agente corrisponde a "{{query}}"`,footerRosterRoles_one:`ruolo del roster`,footerRosterRoles_other:`ruoli del roster`,footerCustomized:`personalizzati`,footerTotalLearned_one:`voce appresa in totale`,footerTotalLearned_other:`voci apprese in totale`,clone:`+ Clona`,abc:`ABC`,abcGeneratedFromName:`abc (generato dal nome)`,roleIdOptional:`ID ruolo (facoltativo)`,purpose:`Scopo`,taskTypesCommaOrOnePer:`Tipi di attività (separati da virgola o uno per riga)`,cancel:`Annulla`,selectAnAgentToEditCustomizations:`Seleziona un agente per modificare le personalizzazioni`,llmImprove:`Miglioramento LLM`,reset:`Reimposta`,editIdentityMd:`Modifica identity.md`,editLearnedMd:`Modifica learned.md`,editConfigJson:`Modifica config.json`,runtimePolicy:`Criteri di runtime`,retry:`Riprova`,noSelfLearningDataYet:`Nessun dato di autoapprendimento`,review:`rivedi →`,selectAnAgentToViewLearning:`Seleziona un agente per vedere i dettagli di apprendimento`,entries:`Voci`,size:`Dimensione`,optimizeLearnings:`Ottimizza gli apprendimenti`,keep:`Mantieni`,drop:`Scarta`,describeACommandPatternOrBehavior:`Descrivi un comando, uno schema o un comportamento che questo agente deve ricordare.`,eGAlwaysUsePnpmForThisProject:`es. Usa sempre pnpm per questo progetto`,teach:`Insegna`,noActiveFleetAgents:`Nessun agente della flotta attivo`,clear:`Cancella`,agentsTotal:`agenti in totale`,leader:`Leader`,iterations:`Iterazioni`,cost:`Costo`,context:`Contesto`,contextWindow:`Finestra di contesto`,error:`Errore`,filterAll:`Tutti ({{count}})`,filterRunning:`In esecuzione ({{count}})`,filterDone:`Completati ({{count}})`,filterFailed:`Non riusciti ({{count}})`,optimizeAll:`Ottimizza tutto ({{count}})`,policyUpdateFailed:`Aggiornamento dei criteri non riuscito`,noRawEntries:`Nessuna voce grezza da ottimizzare.`,optimizedOk:`Ottimizzato. Conoscenza consolidata aggiornata.`,emptySynthesis:`Il modello ha restituito un risultato vuoto. Nulla è stato modificato — riprova.`,consolidatedWithModel:`Apprendimenti consolidati con {{model}}.`,consolidatedPlain:`Apprendimenti consolidati.`,resetConfirm:`Reimpostare tutti i dati specifici del progetto per l'agente "{{role}}"?`,loadCustomizationFailed:`Impossibile caricare la personalizzazione`,loadRuntimePolicyFailed:`Impossibile caricare i criteri di runtime`,runtimePolicySaveFailed:`Salvataggio dei criteri di runtime non riuscito`,llmImprovementFailed:`Miglioramento LLM non riuscito`,agentCreationFailed:`Creazione dell'agente non riuscita`,noActiveModelMsg:`Nessun modello attivo sul server — l'ottimizzazione è stata inviata all'agente di chat.`,optimizationFailed:`Ottimizzazione non riuscita`,bulkOptimizationFailed:`Ottimizzazione in blocco non riuscita`,taskTypesPlaceholder:`Flusso X
6
6
  Analisi Y
7
7
  Verifica Z`},Pe={generic:{name:`Agente di progetto generico`,summary:`Modello flessibile clonabile in ruoli di progetto con apprendimento indipendente.`},"audit-log":{name:`Registro di audit`,summary:`Analizza i log di sessione, i flussi di eventi e le tracce di sistema.`},"bug-hunter":{name:`Cacciatore di bug`,summary:`Analizza il codice alla ricerca di bug, code smell e anti-pattern.`},"refactor-planner":{name:`Pianificatore di refactoring`,summary:`Analizza la struttura del codice e produce piani di refactoring per fasi.`},"security-scanner":{name:`Scanner di sicurezza`,summary:`Analizza codice, configurazioni e dipendenze alla ricerca di problemi di sicurezza.`},critic:{name:`Critico`,summary:`Valuta decisioni, piani e implementazioni.`},"shadow-agent":{name:`Agente ombra`,summary:`Agente di monitoraggio in background che sorveglia lo stato della flotta.`},executor:{name:`Esecutore`,summary:`Esecutore di attività generico per il lavoro delegato.`},chimera:{name:`Chimera`,summary:`Revisione della qualità del codice dei file modificati dopo la sessione.`},researcher:{name:`Ricercatore`,summary:`Specialista di ricerca web e raccolta dati.`},"tech-stack":{name:`Validatore dello stack tecnologico`,summary:`Convalida le scelte di pacchetti, librerie e framework.`},orchestrator:{name:`Orchestratore`,summary:`Coordina l'esecuzione delle attività multi-agente.`},supervisor:{name:`Supervisore`,summary:`Supervisiona l'esecuzione dei subagenti e gestisce le escalation.`},"quality-gate":{name:`Quality gate`,summary:`Applica i quality gate alle implementazioni.`},architect:{name:`Architetto`,summary:`Prende decisioni di progettazione e architettura.`},"prompt-engineer":{name:`Prompt engineer`,summary:`Progetta e ottimizza i prompt di sistema.`},mnemosyne:{name:`Mnemosyne`,summary:`Curatore della memoria: verifica e mantiene l'integrità di SAGE.`},autophase:{name:`AutoPhase`,summary:`Gestisce l'esecuzione autonoma delle attività in più fasi.`}},Fe={heading:`Roster personalizzato`,loading:`Caricamento del roster personalizzato…`,loadFailed:`Impossibile caricare il roster`,invalidJson:`JSON non valido`,noImprovement:`Nessun suggerimento di miglioramento generato.`,improveFailed:`Miglioramento LLM non riuscito`,behaviorSaved:`Comportamento salvato in learned.md`,saveFailedServer:`Salvataggio non riuscito — controlla i log del server`,emptyTitle:`Nessun agente del roster personalizzato`,emptyBody:`Gli agenti specifici del progetto compaiono qui quando crei o modifichi file in`,createExecutorIdentity:`+ Crea identità dell'esecutore`,entries:`Voci`,size:`Dimensione`,sessionCaptures:`Acquisizioni di sessione`,editIdentity:`Modifica identity.md`,editLearned:`Modifica learned.md`,editConfig:`Modifica config.json`,reviewEntries:`Rivedi le voci ({{count}})`,reviewLearnedEntries:`Rivedi le voci apprese ({{kept}}/{{total}} mantenute)`,applySelection:`Applica selezione`,keep:`✓ Mantieni`,drop:`✗ Scarta`,identityPlaceholder:`# Identità di progetto per {{role}}
8
8
 
@@ -2,7 +2,7 @@ var e={chat:`Session`,agents:`Agents`,history:`Historique`,files:`Fichiers`,chan
2
2
 
3
3
  Double-cliquez pour renommer`,unfavorite:`Retirer des favoris`,markFavorite:`Marquer comme favori`,deleteSessionConfirmTitle:`Supprimer la session ?`,deleteSessionConfirmBody:`"{{name}}" sera supprimée du disque. Action irréversible.`,deleteSessionTitle:`Supprimer la session`,rename:`Renommer la session`,renameAction:`Renommer`,resume:`Reprendre la session`,resumeShort:`Reprendre`,workspaceEyebrow:`Contrôle de session`,workspaceTitle:`Sessions`,workspaceHint:`Recherchez, inspectez, épinglez et reprenez toutes les conversations du projet.`,tabs:{history:`Historique`,live:`Sessions en direct`},filters:{all:`Toutes`,favorites:`Favoris`,active:`Actives`,completed:`Terminées`,issues:`Problèmes`},status:{active:`Active`,completed:`Terminée`,error:`Erreur`,timeout:`Expiration`,aborted:`Annulée`,saved:`Session sauvegardée`},sort:{label:`Trier les sessions`,recent:`Plus récentes`,tokens:`Plus de jetons`,activity:`Plus d'activité`},stats:{sessions:`Sessions`,tokens:`Jetons`,tools:`Appels d'outils`,files:`Fichiers modifiés`,errors:`Erreurs`},inspect:`Inspecter la session`},f={actions:{abort:`Interrompre`,newSession:`Nouvelle session`,export:`Exporter`,compact:`Compresser`,newSessionConfirm:`Êtes-vous sûr ?`,newSessionConfirmMessage:`Une tâche est toujours en cours. Démarrer quand même une nouvelle session ?`,newSessionTitle:`Démarrer une nouvelle session (Ctrl+N)`,exportTitle:`Exporter le chat en markdown (Ctrl+E)`,compactTitle:`Compresser la fenêtre de contexte`,clearTitle:`Effacer le contexte (Ctrl+L)`},model:`Modèle`,modelTitle:`Changer de modèle (Ctrl+M)`,context:`Contexte`,contextTitle:`Cliquez pour un détail du contexte`,sessionLabel:`Session`,stats:{messages:`Messages`,elapsed:`Écoulé`,tokens:`Jetons`,cost:`Coût`,iteration:`Itération`,agents:`Agents`,tokensSub:`{{in}} entrée / {{out}} sortie`,iterationOf:`sur {{max}}`,agentsRunning:`{{count}} en cours`},plan:`Plan`,planComplete:`{{pct}}% terminé`,pinned:`Épinglés`,quickSettings:`Réglages rapides`,autonomy:`Autonomie`,autonomyTitle:`Arrêter l'exécution automatique des étapes suivantes. Désactivez pour interrompre la boucle autonome de l'agent`,autonomyOptions:{off:`Désactivé`,suggest:`Suggérer`,auto:`Auto`,eternal:`Perpétuel`,"eternal-parallel":`Perpétuel Parallèle`},yolo:`Mode YOLO`,yoloTitle:`Ignorer les confirmations d'outils`,refine:`Affiner les prompts`,refineTitle:`Réécrire les prompts avant l'envoi`,sound:`Son à la fin`,soundTitle:`Jouer un doux carillon à la fin d'une exécution`,sessionId:`session {{id}}`},p={status:{running:`en cours`,completed:`terminé`,failed:`échoué`,timeout:`expiré`,stopped:`arrêté`},leader:`leader`,providerModel:`Fournisseur / Modèle`,elapsed:`Écoulé`,running:`en cours…`,iterations:`Itérations`,toolCalls:`Appels d'outils`,cost:`Coût`,budgetExtensions:`Extensions de budget`,activity:`Activité`,contextWindow:`Fenêtre de contexte`,tokensUsed:`{{used}} / {{max}} jetons`,toolRunning:`en cours…`,lastTool:`dernier outil`,error:`Erreur`,finalOutput:`Sortie finale`,copyOutput:`Copier la sortie`,liveOutput:`Sortie en direct`,waitingOutput:`En attente de sortie…`,outputHint:`La sortie apparaît ici à mesure que l'agent diffuse du texte.`,toolLog:`Journal d'outils ({{count}} appels)`,fail:`échec`,moreTools:`+{{count}} outils de plus`,cardRunning:`en cours {{tool}}`,cardLastTool:`dernier : {{tool}}`,contextPercent:`Contexte {{pct}} %`,doneCount:`{{count}} terminé(s)`,errCount:`{{count}} err`,statusRunning:`en cours`,statusDone:`terminé`,statusFailed:`échec`,statusTimeout:`délai dépassé`,statusStopped:`arrêté`,hittingLimitTitle:`⚡ atteint la limite {{kind}} ({{used}}/{{limit}})`,budgetExt_one:`{{count}} extension de budget`,budgetExt_other:`{{count}} extensions de budget`,extendedTimes_one:`L'agent a étendu son budget {{count}} fois pour des tâches longues`,extendedTimes_other:`L'agent a étendu son budget {{count}} fois pour des tâches longues`,errorLabel:`Erreur`,failureReason:`Raison de l'échec`,failed:`Échec`},m={wsNotConnected:`WebSocket non connecté`,noData:`Aucune donnée de débogage reçue. Le serveur ne prend peut-être pas en charge le débogage de contexte.`,title:`Décomposition du contexte`,windowUsage:`Utilisation de la fenêtre`,contextMode:`Mode de contexte`,fetching:`Récupération de la décomposition du contexte…`,systemPrompt:`Prompt système`,tools:`Outils`,messages:`Messages`,tokenAllocation:`Allocation des jetons`,systemTitle:`Système : {{tokens}}`,toolsTitle:`Outils : {{tokens}}`,messagesTitle:`Messages : {{tokens}}`,system:`Système`,toolBreakdown:`Décomposition des outils`,messagesSummary:`Messages ({{count}}) — {{total}} tok`,barWithTokens:`Fenêtre de contexte : {{tokens}} / {{max}} jetons ({{pct}})`,barPct:`Fenêtre de contexte : {{pct}}`,barClick:` — cliquez pour la répartition`},h={header:`✨ Affiner le prompt`,autoSend:`envoi auto dans {{count}} s`,cancelTitle:`Annuler (Échap)`,editLabel:`Modifier le prompt affiné :`,editPlaceholder:`Modifier le prompt affiné...`,useEdit:`Utiliser la modif.`,original:`Original`,refined:`Affiné`,yourLanguage:`(votre langue)`,refinedTitle:`Cliquez ou appuyez sur Entrée pour utiliser cette version`,copyToInputTitle:`Copier dans la saisie sans envoyer`,english:`Anglais`,englishTitle:`Appuyez sur e pour la version anglaise`,hintRefined:`affiné`,hintEnglish:`Anglais`,hintOriginal:`original`,hintEdit:`modifier`,hintRetry:`réessayer`,edit:`Modifier`,useRefined:`Utiliser l'affiné`,langOriginal:`Original`,langEnglish:`English`,languageTitle:`Changer la langue de raffinement par défaut — Original ou anglais`,yolo:`YOLO`,yoloTitle:`Ignorer les confirmations d'outils`,refining:`Refining…`,sendAsIs:`Send as-is`,failedHeader:`Refinement failed`,retry:`Retry (more time)`,retryBetter:`Réessayer mieux`,retryFallback:`Retry with {{model}}`,pickModel:`Another model…`,pickModelTitle:`Relancer le raffinement avec un autre modèle`,pickModelHint:`Choisissez un fournisseur/modèle pour relancer ce raffinement. Le modèle de votre session reste inchangé.`,countdownHeader:`✨ L'amélioration commence dans…`,countdownYourMessage:`Votre message`,countdownHint:`L'amélioration commence dans {{seconds}}s. Cliquez sur « Envoyer tel quel » pour ignorer.`,countdownStartNow:`Améliorer maintenant`,countdownSendAsIs:`Envoyer tel quel`,cancelRefineSendOriginal:`Annuler et envoyer l'original`},g={heading:`Spécifications`,subtitle:`Afficher et gérer le développement piloté par les spécifications`,empty:`Aucune spec trouvée. Utilisez {{command}} pour en créer une.`,tasks:`Tâches ({{count}})`,doneCount:`{{count}} terminée(s)`,runningCount:`{{count}} en cours`,pendingCount:`{{count}} en attente`,runTitle:`Exécuter cette spec comme un job multi-agents en direct`,run:`Exécuter`,runAsSdd:`Exécuter en SDD`,runAsSddTitle:`Lancer un run SDD multi-agents en parallèle (worktrees, vérification, board live)`,runAsGoal:`Exécuter en Goal`,runAsGoalTitle:`Lancer un Goal par phases depuis les colonnes de tâches de cette spec`,list:`Liste`,graph:`Graphe`,loadingTasks:`Chargement des tâches…`},_={heading:`Vérificateur de résilience F5`,subtitle:`Confirme que la dernière session active, la transcription et l'état de l'UI survivent à un rafraîchissement de page. Ouvrez cette vue, puis appuyez sur F5 — chaque ligne verte doit rester verte.`,recordProbe:`Enregistrer une sonde`,latestSession:`Dernière session active`,restoredLocal:`Restauré depuis localStorage`,sessionIdExtra:`id de session : {{id}}`,noSessionYet:`aucune session n'a encore été démarrée`,activePointer:`Pointeur de session active`,lastVisited:`horodatage lastVisitedAt`,never:`jamais`,persistedEnv:`Environnement persisté`,transcriptRehydrate:`Réhydratation de la transcription`,localTranscript:`Transcription locale récupérée`,messagesExtra:`{{count}} messages, {{queued}} en file`,noMessages:`0 message`,noBleed:`Pas de fuite entre sessions`,bleedExtra:`lié={{bound}} vs actif={{active}}`,transcriptBinds:`la transcription se lie à la session active`,uiWorkspace:`Espace de travail UI`,noneValue:`(aucun)`,payloadSize:`Charge utile localStorage (4 clés) : {{count}} caractères`,probeLog:`Journal des sondes`,noProbes:`Aucune sonde pour le moment — appuyez sur le bouton « Enregistrer une sonde » en haut, ou sur F5 dans cette vue, pour enregistrer un contrôle de réhydratation.`,simulatedF5:`F5 simulé : relance de persist rehydrate`},v={status:{pending:`En attente`,in_progress:`En cours`,review:`Revue`,failed:`Échoué`,completed:`Terminé`,queued:`En file`,blocked:`Bloqué`,cancelled:`Annulé`},newTaskTitle:`Nouvelle tâche`,newTaskPlaceholder:`Titre de la tâche…`,addTask:`Ajouter la tâche`,empty:`Aucune phase pour l'instant — lancez une exécution Goal pour remplir le tableau.`,summary:`{{phases}} phases · {{tasks}} tâches`,phases:`Phases`,statusTab:`Statut`,dropHere:`Déposer les tâches ici`,emptySpec:`Aucune tâche dans cette spec pour le moment.`,depGraphHeading:`Graphe de dépendances`,worktreePrefix:`worktree : {{branch}}`},y={trendUp:`En hausse`,trendDown:`En baisse`,trendStable:`Stable`,heading:`Tableau de bord de débogage`,subtitle:`Surveillance en temps réel pour WrongStack WebUI`,refreshLabel:`Actualiser :`,lastUpdated:`Dernière mise à jour : {{time}}`,fetchFailed:`Échec de la récupération des métriques`,fileWatcher:`Observateur de fichiers`,watcherStatus:`Statut de l'observateur`,running:`En cours`,stopped:`Arrêté`,activeProjects:`Projets actifs`,projectsWatched:`Projets surveillés`,fileChanges:`Modifications de fichiers`,totalDetected:`Total détecté`,filesProcessed:`Fichiers traités`,afterHash:`Après filtre de hachage`,broadcastsSent:`Diffusions envoyées`,toClients:`Aux clients WebUI`,debounceResets:`Réinitialisations anti-rebond`,rapidWrites:`Écritures rapides successives`,avgDebounce:`Délai anti-rebond moyen`,actualDelay:`Délai réel appliqué`,totalDelay:`Délai total`,sumDelays:`Somme de tous les délais`,browserPerf:`Performances du navigateur`,heapUsed:`Tas utilisé`,jsHeap:`Tas JavaScript`,heapTotal:`Tas total`,totalHeap:`Taille totale du tas`,pageUptime:`Durée de la page`,sinceLoad:`Depuis le chargement`,rawData:`Données brutes`},b={allowlistTitle:`Liste des modèles autorisés`,modelCount_one:`{{count}} modèle`,modelCount_other:`{{count}} modèles`,using:`Utilisé`,noModelPicked:`(aucun modèle choisi)`,clearAllowlist:`Vider la liste autorisée`,clearAllowlistAria:`Vider la liste autorisée pour {{provider}}`,refresh:`Actualiser depuis le serveur`,refreshAria:`Actualiser la liste des modèles pour {{provider}}`,probing:`Vérification…`,searchPlaceholder:`Rechercher des modèles…`,use:`Utiliser`,useModelAria:`Utiliser le modèle {{model}} pour {{provider}}`},x={expandChip:`Déplier {{label}}`,collapseChip:`Replier {{label}}`,ahead:`{{count}} en avance`,behind:`{{count}} en retard`,linesAdded:`{{count}} lignes ajoutées`,linesDeleted:`{{count}} lignes supprimées`,untrackedFiles:`{{count}} fichiers non suivis`,customizeTitle:`Personnaliser les puces du dock`,dockChips:`Puces du dock`,noActiveGoal:`Aucun objectif actif`,noActiveGoalDetail:`Lancez un objectif depuis le chat ou la commande goal.`,closeWorkspaceInspector:`Fermer l'inspecteur d'espace de travail`,goal:`Objectif`,goalState:`État de l'objectif`,goalStateDetail:`Objectif actif et progression`,fleet:`Flotte`,fleetDetail:`Effectif d'agents en direct et activité`,work:`Travail`,workDetail:`To-dos, tâches et plan`,worktrees:`Worktrees`,worktreesDetail:`Branches et voies parallèles`,collab:`Collab`,collabDetail:`Participants à la session et commandes`,inspector:`Inspecteur d'espace de travail`,inspectorNamed:`Inspecteur d'espace de travail {{name}}`,workspace:`Espace de travail`,workspaceDetails:`Détails de l'espace de travail`},S={leaderBadge:`LEADER`,iters:`Itér.`,tools:`Outils`,activityBins:`Activité (12 bins)`,streamingOutput:`Sortie en flux`,recentTools:`Outils récents`,finalOutput:`Sortie finale`,heading:`Moniteur d'agents`,prevAgent:`Agent précédent`,nextAgent:`Agent suivant`,closeAria:`Fermer le moniteur d'agents`,hintPage:`←→ page`,hintNavigate:`↑↓ naviguer dans la liste`,hintEsc:`Esc fermer`},C={resize:`Redimensionner les terminaux`,labelSingular:`Terminal`,labelPlural:`Terminaux`,projectShell:`Shell du projet`,maxTerminals:`Maximum {{count}} terminaux`,newTerminal:`Nouveau terminal`,restart:`Redémarrer le terminal actif`,closeAll:`Fermer tous les terminaux`,closeDock:"Fermer le dock de terminal (Ctrl+`)",closeTab:`Fermer {{name}}`,processExited:`[processus terminé avec le code {{code}}]`},w={liveStream:`Flux en direct`,events_one:`{{count}} événement`,events_other:`{{count}} événements`,interruptTitle:`Arrêter coopérativement cet agent à sa prochaine étape (pas un kill de processus)`,interrupt:`⏸ Interrompre`,interrupting:`…`,loading:`Chargement de la session…`,done:`✓✓ terminé`,read:`✓ lu`,delivered:`⏳ livré`,agent:`Agent`,you:`Vous`,working:`{{name}} · en cours`,claude:`Claude`,priority:`Priorité`,placeholder:`{{label}} → cette session…`,send:`Envoyer`,sendHint:`⌘/Ctrl+Entrée pour envoyer · visible à la prochaine itération de l'agent`,msgType:{steerLabel:`🔄 Orienter`,steerHint:`Ajuster le comportement en cours de tâche`,askLabel:`❓ Demander`,askHint:`Question — attend une réponse`,assignLabel:`📋 Assigner`,assignHint:`Une tâche à traiter`,noteLabel:`💬 Note`,noteHint:`Pour info, non urgent`},sentRunning:`Livré — l'agent en cours le verra à sa prochaine étape`,sentIdle:`Livré — la cible est inactive ; apparaît dans sa boîte, lu à la prochaine exécution`,sentFailed:`Échec : {{error}}`,interruptReason:`L'opérateur a demandé l'arrêt depuis Fleet HQ`,interruptSent:`Interruption envoyée — l'agent s'arrête à la prochaine étape (pas un kill)`,interruptFailed:`Échec de l'interruption : {{error}}`},T={empty:`Aucun effet de bord enregistré pour le moment.`,emptyHint:`Les commandes bash, installations de paquets et requêtes réseau apparaîtront ici.`,heading:`Effets de bord`,exportTitle:`Exporter les effets de bord filtrés en CSV`,all:`Tous`,colTime:`Heure`,colTool:`Outil`,colRisk:`Risque`,colDetail:`Détail`,colOutcome:`Résultat`},E={elapsedHm:`il y a {{h}}h {{m}}m`,elapsedMs:`il y a {{m}}m {{s}}s`,elapsedS:`il y a {{s}}s`,heading:`Moniteur de flotte`,clientsHeading:`Clients connectés`,terminal:`Terminal`,webui:`UI Web`,repl:`REPL`,totalConnected:`connectés au total`,mailQueue:`File d'attente`,total:`Total`,open:`Ouverts`,unread:`Non lus`,agents:`Agents`,messagesSub:`messages`,uncompletedSub:`inachevés`,waitingSub:`en attente`,ofTotal:`sur {{count}} au total`,agentRoster:`Registre des agents`,liveMailActivity:`Activité mail en direct`,noActivity:`Aucune activité récente`,mailboxAgents:`Agents de la boîte`,noMailboxAgents:`Aucun agent enregistré`,moreCount:`+{{count}} de plus`,agentFallback:`agent`,fleetAgents:`Agents de la flotte`,noFleetAgents:`Aucun agent de flotte en cours`,iter:`itér.`,mailType:{sent:`Envoyé`,delivered:`Livré`,read:`Lu`,completed:`Terminé`}},D={status:{pending:`en attente`,queued:`en file`,in_progress:`en cours`,blocked:`bloqué`,review:`revue`,failed:`échoué`,completed:`terminé`,cancelled:`annulé`},activityHeading:`Activité`,feedEmpty:`Rien pour l'instant — les événements apparaissent ici à mesure que les agents prennent et terminent des tâches.`,destroyTitle:`Détruire le projet SDD ?`,destroyDesc:`Cela efface le run et son travail. Irréversible (le revert optionnel préserve l'historique).`,stopRun:`Arrêter le run`,stopRunAgents_one:`Arrêter le run ({{count}} agent actif)`,stopRunAgents_other:`Arrêter le run ({{count}} agents actifs)`,removeWorktreesAll:`Supprimer tous les worktrees git + branches wstack/ap/* — y compris le travail non fusionné`,removeWorktreesCount_one:`Supprimer {{count}} worktree git + branches wstack/ap/* — y compris le travail non fusionné`,removeWorktreesCount_other:`Supprimer {{count}} worktrees git + branches wstack/ap/* — y compris le travail non fusionné`,deleteArtifacts:`Supprimer tous les artefacts SDD (specs, graphe de tâches, board, session)`,revertMerged_one:`Revert aussi {{count}} commit fusionné`,revertMerged_other:`Revert aussi {{count}} commits fusionnés`,revertHint:`Ajoute des commits de revert (historique préservé). Refusé si l'arbre de travail est sale.`,baseBranchFallback:`la branche de base`,noteLeaveMerged:`Les commits fusionnés resteront sur la branche de base. Cochez la case ci-dessus pour les annuler aussi.`,noteAbandon:`Assurez-vous de vraiment vouloir abandonner ce run.`,destroying:`Destruction…`,destroyAll:`Tout détruire`,kanbanBacklog:`Backlog`,kanbanReady:`Prêt`,kanbanRunning:`En cours`,kanbanReview:`Revue`,kanbanFailed:`Échec`,kanbanDone:`Terminé`,kanbanEmpty:`vide`},O={collapseToLines:`Réduire aux {{count}} premières lignes`,showAllLines:`Afficher les {{total}} lignes ({{more}} de plus)`,exitCode:`code de sortie :`,jsonLines:`JSON · {{count}} lignes`,collapse:`réduire`,expand:`déplier`},k={heading:`Design Studio — Galerie`,kitsCount:`{{count}} kits`,searchPlaceholder:`Rechercher des kits…`,stackTitle:`Stack pour Use + Materialize`,wrote:`{{path}} écrit`,materializeFailed:`Échec de matérialisation : {{error}}`,verifyError:`Vérifier : {{error}}`,verifyOffPalette:`Vérifier : {{pct}} % on-palette — {{count}} off-palette dans {{files}} fichier(s)`,verifyClean:`Vérifier : propre ✓ ({{files}} fichier(s) on-palette)`,writing:`Écriture du fichier de thème…`,scanning:`Analyse des fichiers UI…`,active:`Actif`,reapply:`Réappliquer`,use:`Utiliser`,materializeTitle:`Écrire les tokens dans un fichier de thème {{stack}}`,materialize:`Matérialiser`,verifyTitle:`Scanner les fichiers UI pour les couleurs hors palette`,verify:`Vérifier`,colors:`Couleurs`},A={summary_one:`{{count}} phase · {{pct}} % terminé`,summary_other:`{{count}} phases · {{pct}} % terminé`,switchBoard:`Changer de tableau`,boardsCount_one:`{{count}} tableau…`,boardsCount_other:`{{count}} tableaux…`,toggleAutonomousTitle:`Basculer le mode autonome`,autonomous:`Autonome`,manual:`Manuel`,resumeTitle:`Reprendre l'exécution`,pauseTitle:`Mettre en pause`,resume:`Reprendre`,pause:`Pause`,stopTitle:`Arrêter l'exécution — annule les agents en cours immédiatement`,stop:`Arrêter`,newTitle:`Effacer ce tableau et démarrer une nouvelle exécution Goal`,newLabel:`Nouveau`,revertConfirm:`Annuler les commits de l'exécution ?`,revertTitle:`Annuler cette exécution — git-revert des commits déposés et suppression des worktrees`,revert:`Annuler`,goal:`Objectif`,planning:`Planification des phases…`,planningBody:`Votre objectif a été reçu. WrongStack le décompose en phases et tâches — le tableau apparaît ici dès que le plan est prêt.`,startHeading:`Démarrer un plan de phases`,startBody:`Décrivez ce que vous voulez construire. WrongStack planifie les phases et tâches, puis les exécute — observez et pilotez l'exécution sur le tableau.`,startPlaceholder:`ex. Construire une API REST de gestion d'utilisateurs avec Express et SQLite...`,isolateLabel:`Isoler chaque phase dans son propre worktree git`,startButton:`Démarrer Goal`,ctrlHint:`Ctrl+Entrée pour démarrer`,isolateOn:`les phases tournent dans des worktrees isolés, fusionnés en squash`,isolateOff:`les phases tournent directement sur la branche courante`,lanes:`Voies`,graph:`Graphe`,planningAck:`🚀 **Goal** — compris. Je planifie les phases pour votre objectif…`,assess:{analyzing:`Analyse de la portée de l'objectif…`,realistic:`✓ La portée semble réaliste`,durationConcern:`⚠ Problème de durée`,durationClaimed:`Durée indiquée : {{duration}}`,recommendation:`Recommandé : {{duration}}`,concerns:`Préoccupations`,analysisFailed:`Impossible d'analyser la portée de l'objectif`,override:`Démarrer quand même`,overrideTitle:`Effacer l'avertissement et activer le bouton de démarrage`,disableTitle:`Cet objectif a une durée irréaliste — utilisez "Démarrer quand même" pour passer outre`},multiBoardLabel:`Diviser en plusieurs tableaux kanban`,verifyTasksLabel:`Exiger une vérification pour chaque tâche`,chimeraReviewLabel:`Activer la révision automatique chimera`},j={noObservers:`Aucun observateur en direct`,observerTitle:`Rejoindre comme observateur en lecture seule (Phase 1)`,observerRole:`observateur`,annotatorTitle:`Rejoindre comme annotateur — laisser des notes sur les appels d'outils (Phase 2)`,annotatorRole:`annotateur`,controllerTitle:`Rejoindre comme contrôleur — peut mettre en pause la boucle de l'agent (Phase 3)`,controllerRole:`contrôleur`,errorPrefix:`Collab : {{error}}`,dismiss:`ignorer`,observers_one:`{{count}} observateur`,observers_other:`{{count}} observateurs`,annotationsTitle:`{{count}} annotation(s) ouverte(s) — annotateurs en train de réviser`,notes_one:`{{count}} note`,notes_other:`{{count}} notes`,pausedTitle:`Boucle de l'agent en pause — un contrôleur révise`,paused:`en pause`,joinedTitle:`Rejoint {{time}}`,grantTitle:`Donner le contrôle — promouvoir ce participant au contrôleur`,injectTitle:`Injecter un résultat synthétique pour un appel d'outil en cours`,inject:`Injecter`,resumeTitle:`Reprendre la boucle de l'agent`,resume:`Reprendre`,pauseTitle:`Mettre en pause l'agent avant le prochain appel d'outil`,pauseAgent:`Mettre en pause l'agent`,leaveTitle:`Quitter la session d'observation`,leave:`Quitter`,injectToolResult:`Injecter un résultat d'outil`,close:`fermer`,targetTool:`id tool_use cible`,targetPlaceholder:`choisir un appel en cours ou saisir un id tool_use`,toolFallback:`outil`,noPendingTools:`Aucun appel d'outil en cours — saisissez un id tool_use ou mettez l'agent en pause d'abord.`,resultContent:`Contenu du résultat`,resultPlaceholder:`Résultat d'outil synthétique fourni à l'agent au lieu d'exécuter l'outil`,markError:`marquer comme erreur`,reasonPlaceholder:`raison (journal d'audit)`,queueInjection:`File d'injection`,controllerInjection:`injection contrôleur`},M={connected:`Connecté`,reconnecting:`Reconnexion au backend (tentative {{attempt}}) — nouvel essai dans {{remaining}} s`,disconnected:`Déconnecté du backend`,retry:`Réessayer`,retryTitle:`Réessayer la connexion maintenant`,dismissTitle:`Ignorer (la puce dans la barre supérieure affiche toujours le statut)`},N={modePrefix:`mode :`,activeTitle:`Mode actif`,heading:`Mode`,defaultName:`Par défaut`,defaultDesc:`Comportement standard de l'agent`},P={clickTitle:`Cliquez pour la répartition des coûts par tour`,heading:`Répartition des coûts`,noPricing:`Aucune tarification pour le modèle actuel — les valeurs de coût sont nulles.`,noTurns:`Aucun tour terminé pour le moment. Lancez un prompt pour voir le coût par tour ici.`,topExpensive_one:`Tour le plus cher`,topExpensive_other:`Les {{count}} tours les plus chers`},F={runDefault:`Par défaut du run`,useRunDefault:`Utiliser le défaut du run`,filterPlaceholder:`Filtrer les modèles…`,loading:`Chargement des modèles…`,noMatch:`Aucune correspondance`},I={heading:`Changer de modèle`,filterPlaceholder:`Filtrer les fournisseurs et modèles…`,providerFilter:`Fournisseur`,providerFilterAll:`Tous les fournisseurs`,noSavedProviders:`Aucun fournisseur enregistré — enregistrez d'abord une clé dans les Paramètres.`,noMatch:`Aucun modèle correspondant`,active:`actif`},L={todos:`À faire`,tasks:`Tâches`,plan:`Plan`},R={toggleAria:`Basculer : {{content}}`,removeTitle:`Supprimer la tâche`,removeAria:`Supprimer « {{content}} »`,completedCount_one:`{{count}} terminée`,completedCount_other:`{{count}} terminées`},z={start:`Démarrer`,complete:`Terminer`,retry:`Réessayer`,assign:`Affecter`,assignTitle:`Affecter un agent`,unassigned:`Non affecté`,statusPending:`En attente`,statusInProgress:`En cours`,statusBlocked:`Bloqué`,statusFailed:`Échec`,statusReview:`Revue`,statusDone:`Terminé`,startTitle:`Démarrer`,completeTitle:`Terminer`,fail:`Échouer`,failTitle:`Marquer comme échoué`,boardCount:`{{total}} tâches · {{done}} terminées`},B={toolCalls_one:`{{count}} appel d'outil`,toolCalls_other:`{{count}} appels d'outil`},V={removeTitle:`Supprimer la référence`,linesCount_one:`{{count}} ligne`,linesCount_other:`{{count}} lignes`},H={statusOpen:`Ouvert`,statusInProgress:`En cours`,statusDone:`Terminé`,startTitle:`Démarrer`,doneTitle:`Marquer comme terminé`,reopenTitle:`Rouvrir`,reopen:`Rouvrir`},U={heading:`@ Fichiers`,noMatch:`Aucun fichier ne correspond à « {{query}} »`,searching:`Recherche dans le projet…`,selectInsertEscDismiss:`↑/↓ sélectionner · ↵ insérer · Échap fermer`},W={dismiss:`Ignorer`},G={placeholder:`Rechercher dans le chat…`,prevHit:`Résultat précédent`,nextHit:`Résultat suivant`,close:`Fermer (Esc)`},K={statusPending:`En attente`,statusReady:`Prêt`,statusRunning:`En cours`,statusPaused:`En pause`,statusCompleted:`Terminé`,statusFailed:`Échec`,statusSkipped:`Ignoré`,heading:`Phases`,autonomousOn:`● Autonome`,autonomousOff:`○ Manuel`,autonomousOnTitle:`Mode autonome actif — cliquer pour mettre en pause`,autonomousOffTitle:`Mode manuel — cliquer pour activer l'autonome`,overallProgress:`Progression globale`,tasksSuffix:`{{done}}/{{total}} tâches`,agentsSuffix_one:`{{count}} agent`,agentsSuffix_other:`{{count}} agents`},q={triggerTitle:`Mode de fenêtre de contexte`,ctxPrefix:`ctx :`,opsHeading:`Opérations de contexte`,compactNow:`Compacter maintenant`,compactNowDesc:`Élider les anciennes sorties d'outil`,compactAggressive:`Compaction agressive`,compactAggressiveDesc:`Élision maximale maintenant`,repairContext:`Réparer le contexte`,repairDesc:`Corriger les blocs tool-use orphelins`,debugContext:`Déboguer le contexte`,debugDesc:`Répartition de la taille par section`,windowHeading:`Fenêtre de contexte`,keepElide:`garder {{k}} récents · élider {{t}}+ jetons`,fallbackName:`Équilibré`,fallbackDesc:`Compaction roulante par défaut`},J={kindAssistant:`Assistant`,kindThinking:`Réflexion`,kindToolCall:`Appel d'outil`,kindToolResult:`Résultat d'outil`,kindError:`Erreur`,kindStatus:`Statut`,kindSystem:`Système`,title:`Historique du chat`,copyTitle:`Copier l'historique du chat de l'agent`,empty:`Pas encore d'historique de chat pour cet agent.`},Y={heading:`Mode d'autonomie`,titlePrefix:`Autonomie : {{label}}`,descOff:`Contrôle manuel total — l'agent attend votre saisie.`,descSuggest:`L'agent suggère les prochaines étapes mais attend une approbation.`,descAuto:`L'agent continue automatiquement après un bref délai de confirmation.`,descEternal:`L'agent fonctionne de façon autonome jusqu'à la fin de l'objectif.`,descEternalParallel:`Exécution autonome multi-agents — mode flotte.`,labelOff:`Désactivé`,labelSuggest:`Suggérer`,labelAuto:`Auto`,labelEternal:`Éternel`,labelEternalParallel:`Éternel parallèle`},X={heading:`File d'attente des messages`,subtitle:`{{count}} en file · messages envoyés avant la fin de l'agent`,btwTitle:`Au passage — envoyé en suivi sans interrompre l'agent en cours`,steerTitle:`Piloter — interrompt l'agent en cours et le redirige avec ce message`,queueTitle:`En file — retenu jusqu'à la fin du run de l'agent, puis envoyé dans l'ordre`,sortNewestTitle:`Trié du plus récent — cliquer pour trier du plus ancien`,sortOldestTitle:`Trié du plus ancien — cliquer pour trier du plus récent`,newest:`Plus récent`,oldest:`Plus ancien`,clear:`Vider`,clearTitle:`Effacer tous les messages en file`,closeTitle:`Fermer`,emptyTitle:`La file est vide`,emptyBody:`Utilisez les boutons btw / steer / ajouter à la file à côté de l'entrée pour ajouter des messages. Les éléments en file sont envoyés dans l'ordre à la fin du run de l'agent.`,removeTitle:`Retirer de la file`,clearDispatchedTitle:`Effacer les messages en file — les notes déjà envoyées ne peuvent pas être rétractées`,dispatchedTitle:`Déjà envoyé à l'agent`,dispatchedLabel:`Envoyé`,footer:`Les messages sont envoyés dans l'ordre d'arrivée à la fin du run de l'agent. Utilisez le tri pour voir les plus récents d'abord.`},Z={heading:`Points de contrôle de session`,countSuffix_one:`{{count}} point de contrôle`,countSuffix_other:`{{count}} points de contrôle`,description:`Rembobiner la session à n'importe quel point de contrôle. Les messages et modifications de fichiers reviennent à ce point — le LLM continue comme si rien ne s'était passé après.`,emptyTitle:`Pas encore de points de contrôle`,emptyBody:`Les points de contrôle sont créés automatiquement à chaque message envoyé. Envoyez quelques messages et revenez.`,latest:`récent`,msgSuffix_one:`{{count}} msg`,msgSuffix_other:`{{count}} msgs`,footerPre:`Cliquer un point de contrôle pour rembobiner`,footerPost:`pour fermer`},Q={statusActive:`Actif`,statusPaused:`En pause`,statusDone:`Terminé`,statusFailed:`Échec`,statusAbandoned:`Abandonné`,heading:`Objectif`,refined:`Raffiné`,progress:`Progression`,iterations:`itérations`,deliverables:`Livrables`,recentActivity:`Activité récente`},$={cleanTitle_one:`Nettoyer {{count}} worktree orphelin ?`,cleanTitle_other:`Nettoyer {{count}} worktrees orphelins ?`,cleanMessage:`Supprime forcément chaque worktree git + branche wstack/ap laissé par des runs précédents. Le travail non fusionné dedans est perdu.`,cleanConfirm:`Nettoyer les orphelins`,orphanCount_one:`{{count}} worktree orphelin de runs précédents`,orphanCount_other:`{{count}} worktrees orphelins de runs précédents`,andMore:`…et {{count}} de plus`,cleanButtonTitle:`Supprimer forcément tous les worktrees + branches orphelins`,removed_one:`✓ {{count}} worktree orphelin supprimé.`,removed_other:`✓ {{count}} worktrees orphelins supprimés.`,cleanupFailed:`échec du nettoyage`,lanesHeading:`Worktrees`,base:`base`,isolatedCount_one:`{{count}} isolé`,isolatedCount_other:`{{count}} isolés`,statusAllocating:`allocation`,statusActive:`actif`,statusCommitting:`commit`,statusMerging:`fusion`,statusMerged:`fusionné`,statusConflict:`conflit`,statusFailed:`échec`,conflictBadge:`CONFLIT`,graphAria:`Graphe de branches worktree à partir de {{base}}`,mergedLabel:`✓ fusionné → {{base}}`},ee={heading:`Processus en cours`,subtitle:`{{active}} actifs · {{total}} total`,killAll:`Tout tuer`,emptyTitle:`Aucun processus suivi`,emptyBody:`Les processus apparaissent ici quand l'agent lance des outils bash ou exec. Les processus actifs affichent une LED pulsante.`,pidLabel:`PID {{pid}}`,protected:`protégé`,protectedTitle:`Protégé — survit à kill/killAll`,background:`en arrière-plan`,backgroundTitle:`Tâche détachée — continue après l’arrêt de la CLI/WebUI`,confirmKillBackground:`Terminer le processus détaché en arrière-plan {{pid}} ?`,confirmKillAll:`Terminer les {{count}} processus en cours ?`,killTitle:`Tuer PID {{pid}}`},te={tooLarge:`Diff omis (fichier trop volumineux pour un rendu en ligne).`},ne={placeholder:`Ajouter un modèle de repli…`,emptyHint:`Essayés dans l'ordre quand le modèle principal est limité ou bloqué.`,moveUp:`Monter`,moveDown:`Descendre`},re={loading:`Chargement des sessions...`,apiUnavailable:`API de session indisponible :`,empty:`Aucune session en direct. Ouvrez une autre instance wstack pour la voir ici.`,heading:`Sessions en direct ({{count}})`,autoRefresh:`actualisation toutes les 5 s`,pidLabel:`PID {{pid}}`,agentMeta:`{{iter}} itér · {{tools}} outils · {{ago}}`,andMore:`... et {{count}} de plus`,noAgents:`Aucun agent`},ie={applyTitle:`Écrire la version modifiée sur le disque`,applying:`Application…`,applied:`Appliqué`,apply:`Appliquer`},ae={showStack_one:`Afficher la trace de pile ({{count}} cadre)`,showStack_other:`Afficher la trace de pile ({{count}} cadres)`,hideStack_one:`Masquer la trace de pile ({{count}} cadre)`,hideStack_other:`Masquer la trace de pile ({{count}} cadres)`},oe={liveHeading:`Live`,clients:`Clients`,agents:`Agents`,model:`Modèle`,mode:`Mode`,toolCalls:`Appels d'outils`,displayHeading:`Affichage`,statsHud:`HUD stats`,legends:`Légendes`,minimap:`Minicarte`,zoomControls:`Contrôles zoom`,animateWires:`Animer les fils`,backgroundHeading:`Arrière-plan`,bgDots:`Points`,bgLines:`Lignes`,bgCross:`Croix`,bgNone:`Aucun`},se={noParams:`(aucun paramètre)`,itemCount_one:`{{count}} élément`,itemCount_other:`{{count}} éléments`,keyCount_one:`{{count}} clé`,keyCount_other:`{{count}} clés`},ce={roleYou:`Vous`,roleTool:`Outil`,roleThinking:`Réflexion`,roleAssistant:`Assistant`,inputLabel:`Entrée`,downloadTitle:`Télécharger comme fichier`,empty:`(vide)`,hideDetails:`Masquer les détails`,showDetails:`Afficher les détails`,showDetailsLines_one:`Afficher les détails ({{count}} ligne)`,showDetailsLines_other:`Afficher les détails ({{count}} lignes)`,editHint:`⌘/Ctrl+Entrée pour enregistrer · Échap pour annuler`,saveResend:`Enregistrer et renvoyer`,thinkingProcess:`Processus de réflexion`,thinkingMeta:`itér {{iter}} · {{dur}} · {{lines}}`,replay:`relecture`,linesSuffix_one:`{{count}} ligne`,linesSuffix_other:`{{count}} lignes`,copyLog:`Copier le journal`,showFullLog:`Afficher le journal complet`,typing:`Écrit…`,noContent:`Aucun contenu`,imageNotRetained:`L'aperçu de l'image n'est pas conservé après actualisation`,failedToSend:`⚠ Échec de l'envoi`,autoPaused:`⚠️ _Avance auto en pause — nombre maximum de tours automatiques consécutifs atteint. Saisissez quelque chose pour continuer (l'autonomie reste activée)._`,autoLoopHalted:`⚠️ _Envoi automatique arrêté car la même invite s'est répétée. L'autonomie reste active ; saisissez une nouvelle invite pour réinitialiser la protection contre les boucles._`,rsIterations:`Itérations : {{n}}`,rsTools:`Appels d'outils : {{n}}`,rsElapsed:`Écoulé : {{s}}`,rsCost:`Coût : {{c}}`,useInput:`Entrée : {{n}}`,useOutput:`Sortie : {{n}}`,useCacheRead:`Lecture cache : {{n}}`,useCost:`Coût : {{c}}`,renderedLabel:`Rendu`,rawLabel:`Brut`,showRenderedTitle:`Afficher le markdown rendu`,showRawTitle:`Afficher la source markdown brute`,editTitle:`Modifier et renvoyer ce prompt`,editLabel:`Modifier`,unpinTitle:`Détacher`,pinTitle:`Épingler cette réponse`,pinnedLabel:`Épinglé`,pinLabel:`Épingler`,regenerateTitle:`Régénérer cette réponse`,retryLabel:`Réessayer`},le={toolFallback:`outil`,toolFailed:`Outil échoué`},ue={heading:`Raccourcis clavier`,footerPre:`Appuyez sur`,footerPost:`à tout moment pour rouvrir cette liste.`,sectionGlobal:`Global`,sectionTuiParity:`Parité panneau TUI`,sectionFleet:`Flotte & Agents`,sectionChatInput:`Saisie du chat`,sectionChat:`Chat`,sectionChatNav:`Navigation du chat (hors saisie)`,dCommandPalette:`Ouvrir la palette de commandes`,dShowOverlay:`Afficher cette overlay de raccourcis`,dToggleSidebar:`Basculer la barre latérale`,dOpenPanel:`Ouvrir le panneau latéral (Session, Agents, Historique, Fichiers, Changes, Messagerie, Compétences, Office Map)`,dDesignStudio:`Ouvrir le panneau Design Studio`,dWorktrees:`Ouvrir le panneau Worktrees`,dSettings:`Ouvrir Paramètres`,dMemory:`Ouvrir Memory`,dFocusInput:`Focaliser la saisie du message`,dSessionPanel:`Panneau de session`,dFleetOverlay:`Overlay moniteur de flotte`,dAgentsOverlay:`Overlay moniteur d'agents`,dWorktreeMonitor:`Moniteur de worktrees`,dPlanPanel:`Panneau plan`,dTodosPanel:`Panneau todos`,dQueuePanel:`Panneau file`,dProcessMonitor:`Moniteur de processus`,dGoalPanel:`Panneau objectif`,dSessionsDashboard:`Tableau des sessions`,dOfficeMap:`Office map du coordinateur`,dDockPicker:`Sélecteur de puces du dock`,dOpenFleet:`Ouvrir l'overlay moniteur de flotte`,dOpenAgents:`Ouvrir l'overlay moniteur d'agents`,dNavigateAgents:`Naviguer parmi les agents`,dSelectAgent:`Sélectionner l'agent focalisé`,dCloseOverlay:`Fermer l'overlay actif`,dSendMessage:`Envoyer le message`,dNewline:`Insérer un saut de ligne`,dRecallPrev:`Rappeler le prompt précédent (entrée vide)`,dRecallNext:`Rappeler le prompt suivant`,dSlashPopup:`Ouvrir le popup de commandes slash`,dAutocomplete:`Auto-compléter la commande surlignée`,dDismissPopup:`Fermer le popup / vider l'entrée`,dSearchChat:`Rechercher dans le chat actuel`,dClearContext:`Vider le contexte (comme /clear)`,dNewSession:`Démarrer une nouvelle session (comme /new)`,dExportMarkdown:`Exporter le chat en markdown`,dModelSwitcher:`Overlay sélecteur de modèle rapide`,dCompactDensity:`Basculer la densité UI compacte`,dAbortRun:`Abandonner le run en cours (pendant l'exécution)`,dFocusNext:`Focaliser le message suivant (alias : ↓)`,dFocusPrev:`Focaliser le message précédent (alias : ↑)`,dJumpFirst:`Aller au premier message`,dJumpLast:`Aller au dernier message`,dCopyFocused:`Copier le texte du message focalisé`,dClearFocused:`Effacer le message focalisé`},de={titleFallback:`Tableau SDD en direct`,defaultModelTitle:`Modèle worker par défaut au niveau du run (les overrides par tâche priment)`,graphLabel:`Graphe`,kanbanLabel:`Kanban`,retryAllTitle:`Remettre chaque tâche échouée en pending`,retryFailed:`Réessayer échouées ({{count}})`,resume:`Reprendre`,pause:`Pause`,stop:`Arrêter`,cleanTitle:`Supprimer les worktrees git + branches wstack/ap du run`,cleanWorktrees:`Nettoyer worktrees`,rollbackTitle:`Revert {{count}} commit(s) fusionné(s) sur {{base}}`,rollback:`Rollback ({{count}})`,stopping:`Arrêt…`,destroying:`Destruction…`,destroyTitle:`Arrêter, supprimer tous les worktrees, revert optionnel des commits fusionnés et supprimer le projet SDD`,destroy:`Détruire`,statDone:`faits`,statRunning:`en cours`,statFailed:`échec`,statWave:`vague`,statElapsed:`écoulé`,noActiveWorkers:`aucun worker actif`,deadlock:`Impasse — tâches bloquées par un travail échoué :`,noRunTitle:`Aucun run SDD actif.`,noRunBody:`Démarrez-en un via l'assistant New SDD Project ou /sdd execute dans la CLI — les agents apparaissent ici en direct, chacun dans un worktree isolé.`,clickTaskHint:`cliquer une tâche pour les détails`,lcClean:`Nettoyage`,lcRollback:`Rollback`,lcDestroy:`Destruction`,lcFailed:`{{op}} échoué : {{reason}}`,lcUnknownError:`erreur inconnue`,lcWorktrees_one:`{{count}} worktree supprimé`,lcWorktrees_other:`{{count}} worktrees supprimés`,lcCommits_one:`{{count}} commit reverti`,lcCommits_other:`{{count}} commits revertis`,lcDeleted:`supprimé {{items}}`,lcNothing:`rien à faire`,lcNote:`{{op}} : {{body}} — note : {{reason}}`,lcOk:`{{op}} : {{body}}`},fe={backTitle:`Retour à l'activité`,expandTitle:`Agrandir les détails de la tâche`,collapseTitle:`Réduire les détails de la tâche`,eventLog:`Journal des événements de la tâche`,newestFirst:`plus récents d'abord`,noEvents:`Aucune activité n'a encore été enregistrée pour cette tâche.`,workingOn:`travaille sur cette tâche`,assigned:`assigné`,metaPriority:`Priorité`,metaType:`Type`,metaDuration:`Durée`,metaElapsed:`Écoulé`,metaRetries:`Tentatives`,metaWorktree:`Worktree`,workerModel:`Modèle worker`,runDefault:`défaut du run : {{model}}`,runDefaultPlaceholder:`Défaut du run`,runDefaultPlaceholderModel:`Défaut du run ({{model}})`,verificationCmd:`Commande de vérification`,gatesCompletion:`valide la complétion (exit 0)`,verifyPlaceholder:`ex. pnpm vitest run path/to/file`,addVerify:`+ Ajouter une commande de vérification`,description:`Description`,timeline:`Chronologie`,dependsOn:`Dépend de`,blocks:`Bloque`,newWorkerPlaceholder:`Nom du nouveau worker…`,confirmStop:`Arrêter cette tâche en cours ?`,confirmDelete:`Supprimer cette tâche du run ?`,retryTitle:`Remettre cette tâche en pending`,reassign:`Réassigner`,stopTitle:`Abandonner le worker sur cette tâche`,splitTitle:`Diviser cette tâche en sous-tâches confiées à des workers séparés`,split:`Diviser`,splitHint:`Une sous-tâche par ligne — Titre :: description (description facultative)`,splitPlaceholder:`Écrire la couche données :: ajouter le dépôt
4
4
  Câbler l'UI`,splitInto:`Diviser en sous-tâches`,deleteTitle:`Retirer cette tâche non démarrée du run`},pe={phaseStart:`Démarrer`,phaseInterview:`Entretien`,phaseSpecReview:`Revue spec`,phasePlanning:`Planification`,phaseTaskReview:`Revue tâches`,phaseRunning:`En cours`,phaseDone:`Terminé`,titleFallback:`Nouveau projet SDD`,questionsSuffix:`{{cur}}/{{max}} questions`,tasksSuffix:`{{count}} tâches`,runCfgTitle:`Config du run — modèle par défaut + chaîne de repli`,modelsLabel:`Modèles`,startRun:`Démarrer le run`,defaultWorkerModel:`Modèle worker par défaut`,leaderDefaultPlaceholder:`Leader / défaut de session`,useSessionDefault:`Utiliser le défaut de session`,fallbackChain:`Chaîne de repli`,appliesToAll:`S'applique à chaque tâche. Override par tâche depuis le board live après le démarrage.`,parallelAgents:`Agents parallèles`,isolateWorktrees:`Isoler dans des worktrees git`,worktreeOn:`Chaque tâche tourne dans son propre worktree, squash-mergé à la fin.`,worktreeOff:`Les tâches tournent directement sur la branche courante (pas d'isolation).`,planDecompose:`Découper automatiquement les grosses tâches`,planDecomposeOn:`Avant le dispatch, découpe les tâches que le moteur d'atomicité marque comme trop grandes.`,planDecomposeOff:`Garde le graphe de tâches approuvé tel quel (découpe possible à l'exécution si une tâche échoue).`,goalPrompt:`Que voulez-vous construire ?`,goalPlaceholder:`ex. Ajouter un login OAuth (Google + GitHub) avec gestion de session`,startingInterview:`Démarrage de l'entretien…`,startInterview:`Démarrer l'entretien`,introBody:`Un agent isolé vous interviewe pour bâtir une spec, la décompose en un graphe de tâches ordonné par dépendances, puis une vraie flotte multi-agents l'exécute — à suivre en direct sur le board. En cas de refresh ou de redémarrage, l'entretien reprend automatiquement.`,taskGraphSummary:`Graphe de tâches · {{count}} tâches, ordonné par dépendances`,dragToExplore:`glisser pour explorer`,show:`afficher`,goalLabel:`Objectif`,implementationPlan:`Plan d'implémentation`,approveSpec:`Approuver la spec → planifier l'implémentation`,approveTasks:`Approuver les tâches`,approvePlan:`Approuver le plan`,answerPlaceholder:`Répondre à la question…`,changePlaceholder:`Demander un changement…`,resumeBanner:`Entretien repris d'une session précédente — continuez là où vous vous êtes arrêté.`,openLiveBoard:`Ouvrir le board live`,discardInterview:`Abandonner et recommencer`,discardTitle:`Abandonner cet entretien et effacer la session enregistrée`},me={emptyDir:`vide`,loadFailed:`Échec du chargement des fichiers : {{error}}`,expandAllTitle:`Déplier tous les dossiers`,expandAll:`Tout déplier`,collapseAllTitle:`Replier tous les dossiers`,collapse:`Replier`,folders_one:`{{count}} dossier`,folders_other:`{{count}} dossiers`,currentDirTitle:`Dossier courant : {{path}}`,navigateToTitle:`Aller à {{path}}`,filesSuffix_one:`{{count}} fichier`,filesSuffix_other:`{{count}} fichiers`,goToDir:`aller au dossier`,navigateParentTitle:`Aller au dossier parent de {{path}}`,parentDirectory:`dossier parent`,noFiles:`Aucun fichier trouvé`,copyAbsPath:`Copier le chemin absolu`,copyRelPath:`Copier le chemin relatif`,openInTerminal:`Ouvrir dans le terminal`,openInFileManager:`Ouvrir dans le gestionnaire de fichiers`,mentionInChat:`Mentionner dans le chat`,copyPath:`Copier le chemin`},he={sendSelectionAction:`Envoyer la sélection au chat`,noFilesOpen:`Aucun fichier ouvert`,selectToEdit:`Sélectionnez un fichier dans l'explorateur pour éditer`,sendSelectedTitle:`Envoyer les lignes sélectionnées au chat`,mentionFileTitle:`Mentionner ce fichier dans le chat`,sendToChat:`Envoyer au chat`,mentionFile:`Mentionner le fichier`,loadingEditor:`Chargement de l'éditeur…`,selectTab:`Sélectionnez un onglet pour voir son contenu`},ge={title:`Activité du fichier`,overview:`Aperçu`,changes:`Modifications`,context:`Contexte`,logs:`Journaux`,lines:`lignes`,resizeHint:`Faites glisser pour redimensionner · double-cliquez pour réinitialiser`,refresh:`Actualiser les preuves du fichier`,evidenceCount_one:`{{count}} événement`,evidenceCount_other:`{{count}} événements`,mutations30m:`Modifications · 30 min`,sessions:`Sessions`,actors:`Acteurs`,linkedWork:`Travail lié`,workLinks:`Kanban / tâche`,recentActivity:`Activité récente du fichier`,events:`événements`,noEvidence:`Aucune activité n'est encore attribuée à ce fichier.`,noSessions:`Aucune attribution de session.`,noActors:`Aucune attribution d'acteur.`,noWorkLinks:`Aucun lien Kanban, SDD ou tâche enregistré.`,taskOrTodo:`Task / tâche`,loadingEvidence:`Chargement des preuves du fichier…`,gitToBuffer:`Git HEAD → tampon Monaco actuel`,savedToBuffer:`Dernière version enregistrée → tampon Monaco actuel`,unsaved:`tampon non enregistré`,lifetimeTitle:`Tout l’historique`,lifetimeChanges:`modifications`,lifetimeSessions:`sessions`,lifetimeTasks:`tâches`,lifetimeBoards:`tableaux`,lifetimeSince:`depuis {{date}}`,lifetimeTools:`via {{tools}}`,level:{quiet:`stable`,active:`actif`,churn:`forte rotation`},analysisTitle:{quiet:`Aucune rotation récente`,active:`Ce fichier est en cours de modification`,churn:`Modifications répétées détectées`},analysisBody:{quiet:`Aucune modification attribuée n'a été enregistrée au cours des 30 dernières minutes.`,active:`{{mutations}} modifications par {{actors}} acteurs dans {{sessions}} sessions au cours des 30 dernières minutes.`,churn:`Forte rotation : {{mutations}} modifications par {{actors}} acteurs dans {{sessions}} sessions. Vérifiez les travaux qui se chevauchent avant la prochaine modification.`}},_e={loading:`Chargement des analytics…`,heading:`Tableau Analytics`,autoRefresh:`actualisation toutes les 10 s`,liveSessions:`Sessions en direct`,agents:`Agents`,agentsActive:`{{count}} actifs`,totalEvents:`Événements totaux`,categoriesSub:`{{count}} catégories`,toolCalls:`Appels d'outils`,iterationsSub:`{{count}} itérations`,sessionCost:`Coût de session`,tokensSub:`{{input}} entrée / {{output}} sortie`,sessionDuration:`Durée de session`,messagesSub:`{{count}} messages`,eventsByCategory:`Événements par catégorie`,noEvents:`Aucun événement enregistré.`,topEvents:`Top événements`,activeSessionUsage:`Utilisation session active`,provider:`Fournisseur`,model:`Modèle`,inputTokens:`Jetons d'entrée`,outputTokens:`Jetons de sortie`,cacheRatio:`Ratio cache`,filesRead:`Fichiers lus`,noSession:`Aucune session active ou en attente de données…`,healthErrors:`Santé & erreurs`,errorEvents:`Événements d'erreur`,warningEvents:`Événements d'avertissement`,cacheHitRate:`Taux de hit cache`,totalCategories:`Catégories totales`,waitingData:`En attente de données…`,recentEvents:`Événements récents`,noRecentEvents:`Aucun événement récent. Interagissez avec l'UI pour générer des événements.`},ve={heading:`Bibliothèque de prompts`,searchPlaceholder:`Rechercher des prompts…`,newPrompt:`+ Nouveau prompt`,all:`Tous`,recent:`🕘 Récents`,favorites:`★ Favoris`,noMatch:`Aucun prompt ne correspond.`,newPromptHeading:`Nouveau prompt`,titlePlaceholder:`Titre *`,descPlaceholder:`Description sur une ligne`,categoryPlaceholder:`Catégorie`,tagsPlaceholder:`tags, séparés, par virgule`,contentPlaceholder:`Contenu du prompt * — {{name}} pour les variables`,variables:`Variables`,addVar:`+ var`,varNamePlaceholder:`nom`,varDescPlaceholder:`description`,removeVarTitle:`Supprimer la variable`,required:`requis`,multiline:`multiligne`,enumPlaceholder:`enum : a, b, c`,savePrompt:`Enregistrer le prompt`,saveFailed:`Impossible d'enregistrer le prompt.`,titleContentRequired:`Le titre et le contenu sont requis.`,toggleFavoriteTitle:`Basculer le favori`,selectOption:`— choisir —`,fillMissing:`Remplir : {{missing}}`,insertIntoChat:`Insérer dans le chat`,selectPromptHint:`Sélectionnez un prompt pour prévisualiser et insérer.`},ye={scopeProject:`Projet`,scopeGlobal:`Global`,scopeBundled:`Intégré`,timeoutError:`Délai de la requête dépassé. Veuillez réessayer.`,updateFailed:`Mise à jour échouée`,saveFailed:`Échec de l'enregistrement`,uninstallFailed:`Désinstallation échouée`,noSkillSelected:`Aucune compétence sélectionnée`,selectSkillHint:`Sélectionnez une compétence dans la barre latérale pour voir sa doc`,goToChat:`Aller au chat`,openSourceRepo:`Ouvrir le dépôt source`,copySourceUrl:`Copier l'URL source`,updatedLabel:`↑ Mis à jour : {{list}}`,upToDateLabel:`— À jour : {{list}}`,errorsLabel:`✗ {{list}}`,checkUpdatesTitle:`Vérifier les mises à jour`,exportTitle:`Exporter la compétence en .md`,editTitle:`Modifier la compétence`,uninstallTitle:`Désinstaller la compétence`,closeTitle:`Fermer et aller au chat`,backTitle:`Reculer`,forwardTitle:`Avancer`,relatedFiles:`Fichiers liés`,references:`Références`,goToSkillTitle:`Aller à {{name}}`,loadingContent:`Chargement du contenu…`,editingLabel:`Modification de {{name}}`,editStats:`{{lines}} lignes · {{words}} mots · {{chars}} caractères`,charsWarningFmt:`⚠ {{used}} Mo / {{limit}} Mo`,draftSaved:`Brouillon enregistré`,draftRestored:`Brouillon restauré`,discardDraft:`Supprimer le brouillon`,splitViewTitle:`Vue scindée`,hidePreviewTitle:`Masquer l'aperçu`,contentPlaceholder:`Contenu de la compétence (markdown)...`,loadFailed:`Échec du chargement du contenu`,noContent:`Aucun contenu disponible`,uninstallSkillHeading:`Désinstaller la compétence`,uninstallConfirm:`Désinstaller {{name}} ?`,uninstallRemovePath:`Cela supprimera la compétence de {{path}} et est irréversible.`,uninstallAction:`Désinstaller`},be={sessionStats:`Stats de session`,clients:`Clients`,input:`Entrée`,output:`Sortie`,cost:`Coût`,agentsSuffix:`agents`,upPrefix:`depuis {{time}}`,webuiClient:`Client WebUI`,disconnected:`Déconnecté`,connected:`Connecté`,tuiClient:`Client TUI`,terminal:`Terminal`,repl:`REPL`,coordinator:`COORDINATEUR`,fleetSummary:`Résumé de la flotte`,toolCallsLabel:`Appels d'outils`,tokensLabel:`Jetons`,coordinatingFleet:`Coordonne la flotte`,donePrefix:`✓ terminé ·`,failedPrefix:`✕ échec ·`,seenPrefix:`vu il y a {{time}}`,availableDesk:`Bureau libre`,mailboxHub:`Centre de messagerie`,unreadSuffix_one:`{{count}} non lu`,unreadSuffix_other:`{{count}} non lus`,allClear:`Tout est lu`,total:`Total`,unreadLabel:`Non lus`,liveActivity:`Activité en direct`,waitingActivity:`En attente d'activité…`,now:`maintenant`,fleetHq:`QG de flotte WrongStack`,live:`EN DIRECT`,legendStatus:`Statut`,legendActive:`Actif`,legendIdle:`Inactif`,legendError:`Erreur`,legendConnections:`Connexions`,legendMail:`Mail`,legendTask:`Tâche`,legendStatusConn:`Statut`,arrange:`Réorganiser`,arrangeTitle:`Disposer les nœuds pour les adapter à la zone disponible`,feed:`Flux`,feedTitle:`Basculer le flux d'activité en direct`,broadcast:`Diffuser`,broadcastTitle:`Diffuser un message à chaque session live du projet`,broadcastToAll:`Diffuser à toutes les sessions`,broadcastPlaceholder:`Message à chaque agent live du projet…`,broadcastSendHint:`⌘/Ctrl+Entrée pour envoyer`,openFullView:`Ouvrir la vue complète des opérations`,rowStatus:`Statut`,rowModel:`Modèle`,rowTool:`Outil`,rowIterations:`Itérations`,rowToolCalls:`Appels d'outils`,rowTokensIn:`Jetons entrants`,rowTokensOut:`Jetons sortants`,rowTokensTotal:`Jetons totaux`,rowContext:`Contexte`,rowCost:`Coût`,rowLastSeen:`Dernière vue`,rowSurface:`Surface`,rowBranch:`Branche`,rowPid:`PID`,rowDir:`Rép.`,rowAgents:`Agents`,rowUptime:`Disponibilité`,rowConnections:`Connexions`,rowTotalMessages:`Messages totaux`,rowUnread:`Non lus`,recent:`Récents`,noSubject:`(sans objet)`,fullOperationStream:`Flux complet des opérations`,closeEsc:`Fermer (Échap)`,idleDesk:`Bureau inactif`,fleetHqLabel:`QG de flotte`,clientsSuffix_one:`{{count}} client`,clientsSuffix_other:`{{count}} clients`,taskFallback:`tâche`,controlLabel:`contrôle`},xe={installTitle:`Installer une compétence`,createTitle:`Créer une compétence`,exportTitle:`Exporter toutes les compétences en .zip`,checkUpdatesTitle:`Vérifier les mises à jour (toutes)`,searchPlaceholder:`Rechercher des compétences…`,loading:`Chargement…`,noSkills:`Aucune compétence installée`,noMatch:`Aucune compétence ne correspond au filtre`,noDescription:`Aucune description`,scopeForeign:`Externe`,installHeading:`Installer la Compétence`,installHint:`Entrez une référence de dépôt GitHub (owner/repo) ou une URL complète.`,installPlaceholder:`ex. wrongstack/skill-name ou https://github.com/owner/repo`,installScope:`Portée d'installation :`,installBtn:`Installer`,installedMsg:`Installée : {{names}}`,installFailed:`Échec de l'installation`,createHeading:`Créer une Compétence`,createHint:`Scaffold une nouvelle compétence. La première ligne est le déclencheur.`,nameLabel:`Nom`,namePlaceholder:`ex. ma-nouvelle-compétence`,descLabel:`Description / Déclencheur`,descPlaceholder:`Utiliser cette compétence quand <situation>.
5
- Déclencheurs : l'utilisateur dit "mot-clé", "autre".`,saveIn:`Enregistrer dans :`,createBtn:`Créer la Compétence`,createdMsg:`Créée : {{name}}`,createFailed:`Échec de la création`},Se={noEvents:`Aucun événement.`},Ce={pickHint:`Choisir un kit — l'agent s'y conformera.`,gallery:`Galerie`,galleryTitle:`Ouvrir la galerie d'aperçu en direct`,stackTitle:`Stack cible`,loading:`Chargement des kits…`,notFound:`Aucun kit de design trouvé.`,bestFor:`Idéal pour :`,light:`Clair`,dark:`Sombre`,tune:`Ajuster`,font:`Police`,set:`Définir`,spaceGrotesk:`Space Grotesk…`,aaHeading:`Aa Titre`,theQuickBrownFoxJumpsOver:`Portez ce vieux whisky au juge blond qui fume.`,primary:`Principal`,ghost:`Fantôme`,badge:`Badge`,inputField:`Champ de saisie…`,radius:`Rayon`,density:`Densité`,motion:`Mouvement`},we={detached:`(détaché)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktrees`,baseSuffix:` · base {{base}}`,baseLabel:`base`,cleanOrphans:`Nettoyer les orphelins`,cleanOrphansTitle:`Supprimer tous les worktrees orphelins`,liveBusyTitle:`Un run est actif — arrêtez-le d'abord`,rescanTitle:`Re-scanner`,removed_one:`{{count}} worktree supprimé.`,removed_other:`{{count}} worktrees supprimés.`,failed:`Échec`,mergedIntoBase:`{{branch}} fusionné dans la base.`,conflictMerge:`Conflit en fusionnant {{branch}} : {{files}}`,seeGit:`voir git`,mergeFailed:`Échec de la fusion : {{reason}}`,unknownReason:`inconnu`,mergeConfirmTitle:`Fusionner {{branch}} dans {{base}} ?`,mergeConfirmMsg:`Squash-fusionne cette branche sur la branche de base. S'annule proprement en cas de conflit.`,mergeAction:`Fusionner`,removeConfirmTitle:`Supprimer {{branch}} ?`,removeConfirmMsg:`Supprime forcément le checkout du worktree et efface sa branche. Le travail non fusionné est perdu.`,empty:`Aucun worktree.`,emptyHint:`Les runs SDD / Goal créent des worktrees isolés ici. Les orphelins des runs plantés apparaissent aussi.`,actOpenTerm:`Ouvrir dans le terminal`,actOpenFolder:`Ouvrir le dossier`,actViewChanges:`Voir les modifications`,actMerge:`Fusionner vers la base`,actRemove:`Supprimer / annuler`,live:`actif`,noUncommitted:`Aucune modification non validée`,commitsAhead_one:`{{count}} commit en avance`,commitsAhead_other:`{{count}} commits en avance`,more:`…{{count}} de plus`},Te={heading:`Plan de bureau`,headingHint:`Visualisez votre flotte comme un plan de bureau avec le statut des agents en direct.`,statAgents:`Agents`,statMail:`Courriel`,unreadSuffix:` non lu`,sectionView:`Affichage`,sectionDisplay:`Affichage`,sectionBackground:`Arrière-plan`,sectionRecent:`Activité récente`,eventsTrackedSuffix:` événements suivis`,recentHint:`Les envois de courriel, les spawns d'agents et les changements de statut apparaissent ici.`,sectionShortcuts:`Raccourcis`,sectionLegend:`Légende`,hudLabel:`HUD`,hudDesc:`Afficher l'overlay des statistiques de session en temps réel`,hudToggle:`Activer le HUD`,minimapLabel:`Mini-carte`,minimapDesc:`Afficher la mini-carte d'aperçu`,minimapToggle:`Activer la mini-carte`,controlsLabel:`Contrôles`,controlsDesc:`Afficher les contrôles de zoom et d'ajustement`,controlsToggle:`Activer les contrôles`,animateLabel:`Animer les arêtes`,animateDesc:`Animer le flux sur les connexions actives`,animateToggle:`Activer l'animation des arêtes`,legendLabel:`Afficher la légende`,legendDesc:`Afficher la légende de statut et de connexion`,legendToggle:`Activer la légende`,feedLabel:`Flux en direct`,feedDesc:`Bande inférieure de l'activité inter-processus récente`,feedToggle:`Activer le flux en direct`,fitView:`Ajuster`,zoomIn:`Zoom avant`,zoomOut:`Zoom arrière`,resetZoom:`Réinitialiser le zoom`,legendActive:`Actif (en cours)`,legendIdle:`Inactif`,legendError:`Erreur`,legendOffline:`Hors ligne`,bg:{dots:`Points`,lines:`Lignes`,cross:`Croix`,none:`Aucun`}},Ee={liveProjectOffice:`Bureau du projet en direct`,agents:`agents`,working:`actifs`,toolCalls:`appels d’outils`,office:`Bureau`,topology:`Topologie`,officeDescription:`Bureaux et travail des agents en direct`,topologyDescription:`Clients, agents et connexions`,team:`Équipe`,liveDesk:`Bureau en direct et travail entrant`,lastActions:`Travaux récents`,leadAgent:`Agent principal`,agent:`Agent`,callsCount:`{{count}} appels`,recent:`Récent`,noCalls:`Aucun appel terminé`,telemetryReconnect:`Reconnectez ce terminal pour démarrer l’historique des outils`,thinking:`Réflexion`,waiting:`En attente de travail`,preparing:`Préparation de l’action suivante…`,deskReady:`Le bureau est prêt`,toolCall:`Appel d’outil`,execution:`Exécution`,started:`Début`,duration:`Durée`,session:`Session`,target:`Cible`,resultSize:`Taille du résultat`,lines:`lignes`,bytes:`octets`,tokens:`tokens`,input:`Entrée`,outputPreview:`Aperçu de la sortie`,readyTitle:`Le bureau est prêt`,readyBody:`Les agents prendront place dès qu’ils rejoindront ce projet.`,liveEvent:`flux d’événements en direct`,connectedSessions_one:`{{count}} session connectée`,connectedSessions_other:`{{count}} sessions connectées`,detailHint:`cliquez sur une action pour afficher les détails exacts d’entrée et de résultat`,officeBriefing:`Briefing du bureau`,leaderPrompt:`Dernier prompt du leader`,activeInstruction:`Instruction active`,telemetryWaiting:`Reconnectez ce terminal pour recevoir les instructions en direct`,syncWaiting:`synchronisation en attente`,todoTelemetryWaiting:`Reconnectez ce terminal pour recevoir la liste des tâches en direct`,taskNotReported:`L’agent travaille, mais aucune description de tâche n’a été signalée`,noPrompt:`Aucun prompt reçu dans cette session`,activeTodos:`Tâches actives`,todoProgress:`{{done}}/{{total}} terminées`,allTodosDone:`Toutes les tâches sont terminées`,noActiveTodos:`Aucune tâche active`,moreTodos:`+{{count}} autres`,currentTask:`Tâche actuelle`,task:`Tâche`,promptReceived:`Reçu`,todos:`Tâches`,todoStatus:{pending:`En attente`,in_progress:`En cours`,completed:`Terminée`},breakRoom:`Salle de pause`,onBreak:`{{count}} en pause`,desksEmpty:`Tout le monde est en pause — les bureaux sont prêts pour la prochaine tâche`,files:`FICHIERS`,read:`LECTURE`,write:`ÉCRITURE`,edit:`ÉDITION`,term:`TERM`,live:`EN DIRECT`,uniqueFilesTouched:`Fichiers uniques touchés`,fileReads:`Lectures de fichiers`,filesWritten:`Fichiers écrits`,filesEdited:`Fichiers modifiés`,linesAddedAndRemoved:`Lignes ajoutées et supprimées`,terminalCommands:`Commandes du terminal`,incomingAndOutgoingMail:`Courrier entrant et sortant`,sessionActivityTotals:`Totaux d'activité de la session`,closeToolDetails:`Fermer les détails de l'outil`,closeDetails:`Fermer les détails`,closeMailDetails:`Fermer les détails du courrier`,closeTaskDetails:`Fermer les détails de la tâche`,closeOfficeBriefing:`Fermer le briefing du bureau`,priority:`Priorité`,route:`Route`},De={injectedHeading:`Mémoire SAGE injectée`,memoriesLabel_one:`{{count}} souvenir`,memoriesLabel_other:`{{count}} souvenirs`},Oe={tabProject:`Projet SDD`,tabBoard:`Tableau SDD en direct`,tabSpecs:`Spécifications`},ke={label:`Panneau latéral`},Ae={deleteTitle:`Supprimer cette mémoire ?`,backToList:`Retour à la liste des mémoires`,copyId:`Copier l'ID de la mémoire`,deletedMemory:`Mémoire supprimée`,anchorCursorHint:`La plage de lignes du curseur correspond à l'ancre de cette mémoire`,statusDeleted:`supprimée`,statusSuperseded:`remplacée`,restoreTitle:`Restaurer cette mémoire à l'état actif`,supersededJumpTitle:`Cette version est remplacée — passer à la version active`,acceptSuggestionTitle:`Accepter la suggestion de suppression de l'hygiène — la mémoire sera oubliée`,rejectSuggestionTitle:`Rejeter la suggestion — la mémoire reste telle quelle et pourra être re-suggérée`,updateTitle:`Mettre à jour le contenu de la mémoire — le versionnage crée un nouvel enregistrement actif`,promoteTitle:"Promouvoir en `permanent` — l'hygiène ne le réaffichera jamais",openRecordTitle:`Ouvrir l'enregistrement complet dans MemoryManager`,fileDrawerAria:`Tiroir de mémoire de fichier`,requeryTitle:`Re-interroger ce fichier`,closeDrawerAria:`Fermer le tiroir`,closeDrawerTitle:`Fermer le tiroir de mémoire`,showRecoverable:`Afficher les récupérables (supprimées)`,cursorBoostTitle:`Boost du curseur`,fileScopedTitle:`Limité au fichier`,mentionedInTitle:`Mentionné dans`,editorKnowledge:`Connaissance`,editorContentPlaceholder:`Exemple : l'état de la WebUI appartient aux stores Zustand ; les messages du serveur les mettent à jour via des gestionnaires WebSocket singleton.`,editorImportance:`Importance`,editorConfidence:`Confiance`,editorFreshness:`Fraîcheur`,editorAnchors:`Ancres`,editorSymbolPlaceholder:`Nom du symbole`,editorRelationships:`Relations`,searchAria:`Rechercher des mémoires`,searchPlaceholder:`Rechercher contenu, IDs, tags, ancres…`,clearSearchAria:`Effacer la recherche`,audienceFilterAria:`Filtrer uniquement les mémoires à audience`,audienceFilterTitle:`Afficher uniquement les mémoires à audience`,clearFiltersAria:`Effacer tous les filtres`,clearFiltersTitle:`Effacer tous les filtres`,allStatuses:`Tous les statuts`,allKinds:`Toutes les sortes`,tagsLabel:`Tags`,popularTags:`Tags populaires`,graphAria:`Graphe des relations de mémoire`,graphFullscreenAria:`Ouvrir le graphe en plein écran`,clearTracesTitle:`Effacer toutes les traces`,closePanelTitle:`Fermer le panneau`,traceMatched:`correspond`,traceInjected:`injecté`,traceFiltered:`filtré`,traceActive:`actif`,traceExited:`sorti`,traceScore:`score`,traceError:`erreur`,lifecycleAria:`Registre en direct du cycle de vie de la mémoire`,listAria:`Mémoires`,emptyTitle:`Le contexte à long terme de votre projet`,emptyVerifiedAnchors:`Ancres vérifiées`,emptyTypedRelations:`Relations typées`,emptyAgentRecall:`Rappel d'agent`,lensesAria:`Lentilles de mémoire SAGE`,loadingSage:`Chargement de SAGE`,loadingAudience:`Chargement des mémoires d'audience`,storeUnavailable:`Store de mémoire indisponible`,backToChat:`Retour au chat`,sageHeading:`SAGE`,refreshAria:`Actualiser les mémoires`,tabMemories:`Mémoires`,tabActive:`Actives`,tabNeedsReview:`À examiner`,tabGraphEdges:`Arêtes du graphe`,libraryAria:`Bibliothèque de mémoires`,viewAria:`Vue des mémoires`,detailAria:`Détail de la mémoire`,fileForDrawerAria:`Fichier pour le tiroir de mémoire`,cursorLabel:`curseur`,reviewLabel:`examen`,hygieneReviewTitle:`Examen d'hygiène : {{reason}} ({{days}} j)`,updatedSuffix:`mise à jour {{date}}`,actionRecover:`Récupérer`,actionGoToActive:`Aller à la version active`,actionAcceptDeletion:`Accepter la suppression`,actionKeep:`Conserver`,actionUpdate:`Mettre à jour`,actionMarkPermanent:`Marquer comme permanent`,actionShowFull:`Afficher tout`,itemLabel:`mémoires`,noFile:`(aucun fichier)`,memoriesCount_one:`{{count}} mémoire`,memoriesCount_other:`{{count}} mémoires`,pendingReviewCount_one:`{{count}} examen en attente`,pendingReviewCount_other:`{{count}} examens en attente`,supersededCount:`{{count}} remplacée(s)`,linesRange:`lignes {{start}}–{{end}}`,emptyOpenFile:`Ouvrez un fichier pour voir ses mémoires.`,loadingMemories:`Chargement des mémoires…`,errorPrefix:`Erreur : {{message}}`,emptyNoMemories:`Aucune mémoire attachée à {{file}} pour l'instant.`,pendingAccepting:`acceptation…`,pendingKeeping:`conservation…`,pendingUpdating:`mise à jour…`,pendingMarking:`marquage…`,pendingRecovering:`récupération…`,deletedNeverPolicy:`Cet enregistrement est réservé à l'audit et porte une interdiction absolue : il ne peut jamais entrer dans le contexte LLM.`,deletedEligiblePolicy:`L'enregistrement est inactif et ne peut être modifié, mais reste admissible comme preuve historique lorsque la récupération le juge pertinent.`,deletingLabel:`Suppression…`,actionDeleteMemory:`Supprimer la mémoire`,copiedNotice:`ID de mémoire copié.`,revisionSuffix:`révision {{n}}`,memoryRelationships:`Relations de mémoire`,captureMemory:`Capturer une mémoire`,editMemory:`Modifier la mémoire`,editorCreateHint:`Ajoutez des connaissances durables avec des métadonnées de récupération.`,editorEditHint:`Mettez à jour le contenu sans perdre la provenance.`,createMemory:`Créer la mémoire`,saveChanges:`Enregistrer les modifications`,addAnchor:`Ajouter une ancre`,noAnchors:`Aucune ancre pour l'instant — ajoutez-en une pour améliorer la précision de récupération`,loadingGraph:`chargement du vrai graphe…`,graphStats:`{{nodes}} nœuds · {{edges}} arêtes`,lifecycleHeading:`Cycle de vie de la mémoire`,statusWaiting:`en attente`,statusLive:`en direct · {{count}}/100`,noMatching:`Aucune mémoire correspondante`,buildGraph:`Construire votre graphe de mémoires`,clearFilters:`Effacer les filtres`,createFirst:`Créer la première mémoire`,captureButton:`Capturer une mémoire`,memoryCaptured:`Mémoire capturée.`,memoryUpdated:`Mémoire mise à jour.`,liveStore:`store en direct`,reconnecting:`reconnexion`,newMemory:`Nouvelle mémoire`,hideFileDrawer:`Masquer le tiroir de mémoire de fichier`,showFileDrawer:`Afficher le tiroir de mémoire de fichier`,hideDrawer:`Masquer le tiroir`,showDrawer:`Afficher le tiroir`,editorCharCount:`{{count}} caractères`,editorContentLabel:`Contenu de la mémoire`,editorKind:`Type`,editorScope:`Portée`,editorLifecycleStatus:`Statut du cycle de vie`,editorSupersedes:`Remplace`,editorContradicts:`Contredit`,filterByStatus:`Filtrer par statut`,filterByKind:`Filtrer par type`,graphHeading:`Graphe de relations`,graphHeadingFull:`Graphe de relations — {{id}}`,graphOpenFullscreen:`Ouvrir en plein écran`,projectKnowledge:`connaissances du projet`,sageSubtitle:`Inspectez, connectez, organisez et retirez le contexte durable utilisé entre les sessions d'agents.`,emptyBody:`Sélectionnez une mémoire pour inspecter ses métadonnées et son graphe de relations, ou capturez des connaissances que les futurs agents devront récupérer automatiquement.`,tabDeleted:`Supprimées`,fileDrawerLabel:`Tiroir de fichiers`,selectFilePlaceholder:`— sélectionner un fichier —`,memoryCountSummary:`{{shown}} de {{total}} mémoires`,updatedSortLabel:`mis à jour ↓`,tabAllMemories:`Toutes les mémoires`,tabAllMemoriesHint:`Inspecter, organiser, retirer`,tabAudience:`Ciblées`,tabAudienceHint:`Guidage routé vers les agents`,editorRelationshipsHint:`Référencez des ID de mémoire exacts. Les relations sont validées et les arêtes du graphe reconstruites par SAGE.`,editorTaskTypes:`Types de tâches`,createAction:`Créer`,mutationTimeout:`{{verb}} expiré. Votre brouillon est toujours là.`,loadingSageContent:`Chargement du contenu SAGE`,injectorActiveInContext:`Actif dans le contexte`,injectorInjectionHistory:`Historique des injections`,injectorContextTransitions:`Transitions de contexte`,metaCreated:`Créée`,metaUpdated:`Mise à jour`,metaLastAccessed:`Dernier accès`,metaLastVerified:`Dernière vérification`,referencedUnavailable:`Mémoire référencée indisponible`,emptyFiltered:`Modifiez les filtres ou effacez la requête de recherche.`,emptyCapture:`Capturez des faits durables, des décisions, des conventions et des notes liées à des fichiers pour chaque agent.`,memoryUnavailable:`La mémoire est indisponible ou a été supprimée.`,staleConflicts:`obsolètes + conflits`},je={enableLayer:`Activer cette couche de limite`,outsideScope:`Hors périmètre`,askPermission:`Demander la permission`,alwaysBlock:`Toujours bloquer`,allow:`Autoriser`,allowSelectors:`Sélecteurs autorisés`,denySelectors:`Sélecteurs refusés`,crossPathSelectors:`Le shell « Autoriser » est opaque et peut traverser des sélecteurs de chemin.`,removeLayer:`Supprimer la couche`,taskInspector:`Inspecteur de tâches`,task:`Tâche`,dispatched:`Envoyée`,collapseDetails:`Réduire les détails de la tâche`,taskBoundary:`Limite de tâche`,title:`Titre`,managedStage:`Étape gérée`,status:`Statut`,priority:`Priorité`,type:`Type`,labelsCommaSeparated:`Étiquettes (séparées par des virgules)`,dueDatePlaceholder:`Date d'échéance (ISO ou AAAA-MM-JJ)`,estimatedHours:`Heures estimées`,actualHours:`Heures réelles`,selectBlockingTasks:`Sélectionner les tâches bloquantes…`,selectSequentialChain:`Ajouter des tâches à une chaîne séquentielle…`,enforceChainOrder:`Imposer l'ordre de la chaîne comme dépendances`,assignmentReason:`Motif de changement / affectation (persisté dans l'activité)`,managedLifecycle:`Transition du cycle de vie géré`,kanbanAgentTransition:`Transition de l'agent Kanban`,completedAction:`Action terminée / action du relecteur`,progressComment:`Commentaire d'avancement véridique (obligatoire)`,evidenceUrl:`URL de la pièce jointe de preuve`,source:`Source`,taskId:`ID de tâche`,run:`Exécuter`,column:`Colonne`,primaryModelSource:`Source du modèle principal`,selectProviderModel:`Sélectionner le fournisseur / modèle exact…`,fallbackProfile:`Profil de secours (le premier modèle est le principal)`,selectProfile:`Sélectionner un profil configuré…`,fallbackModels:`Modèles de secours`,addFallbackModel:`Ajouter un modèle de secours…`,role:`Rôle`,selectRole:`Sélectionner un rôle…`,assignSkills:`Attribuer les compétences requises…`,restrictTools:`Restreindre à des outils spécifiques…`,agentNameOptional:`Nom de l'agent (facultatif)`,retryPolicy:`Politique de nouvelle tentative`,maxAttempts:`Tentatives max.`,costCeilingUsd:`Plafond de coût USD`,grantCapability:`Accorder une capacité…`,targetBoard:`Tableau cible`,boardPresence:`Présence au tableau`,liveBoardUsers:`Utilisateurs actifs du tableau`,kanbanAgent:`Agent Kanban`,watchThisBoard:`Surveiller ce tableau`,supervisorEngine:`Moteur superviseur`,kanbanAgentModelSource:`Source du modèle de l'agent Kanban`,supervisorSkills:`Compétences du superviseur`,forceLoadSkills:`Forcer le chargement des compétences agentiques…`,extraFallbackModels:`Modèles de secours supplémentaires`,optionalFallbacks:`Secours ordonnés facultatifs…`,queueHealth:`Santé de la file`,claimableTasks:`Tâches réclamables`,runningAssignments:`Affectations en cours`,inReview:`En revue`,manuallyBlocked:`Bloquées manuellement`,failedTasks:`Tâches échouées`,blockedByDeps:`Tâches prêtes/en attente bloquées par des dépendances`,expiredLeases:`Affectations de bail expirées`,healthy:`sain`,costCeilingSum:`Somme des costCeilingUsd pour les tâches en cours/en file`,liveRunSteer:`Exécution en direct — pilotez-la d'ici`,openLiveRun:`Ouvrir la vue d'exécution en direct (SDD Hub)`,runAsLiveJob:`Exécuter ce tableau en tant que job d'agent en direct :`,startAsGoal:`Démarrer en tant qu'objectif`,startAsSdd:`Démarrer en tant que SDD`,runControls:`Contrôles d'exécution`,workerModel:`Modèle worker`,setModelForTask:`Définir le modèle pour cette tâche…`,newWorkerName:`Nouveau nom de worker`,duration:`Durée`,liveRun:`Exécution en direct`,lastResult:`Dernier résultat`,definitionOfDone:`Définition de terminé`,failingChecks:`Vérifications échouées`,evidenceMissing:`Preuves manquantes (contrôles agent/conseil sans références)`,needsDecomposition:`Nécessite une décomposition`,decompositionPending:`Propositions de décomposition en attente d'approbation`,noOutstanding:`Aucun problème de vérification ou de décomposition en suspens sur ce tableau.`,kanban:`Kanban`,newBoard:`Nouveau tableau`,createBoard:`Créer un tableau`,deleteTask:`Supprimer la tâche`,runFailed:`exécution échouée`,splitPendingApproval:`division en attente d'approbation`,newTask:`Nouvelle tâche`,addTask:`Ajouter une tâche`,newColumn:`Nouvelle colonne`,addColumn:`Ajouter une colonne`,duplicateBoard:`Dupliquer le tableau`,deleteBoard:`Supprimer le tableau`,boardBoundary:`Limite du tableau`,noBoardSelected:`Aucun tableau Kanban sélectionné.`,expandDetails:`Agrandir les détails de la tâche`,elapsed:`Écoulé`,assigned:`Affecté`,configuredAgentRoute:`la route d'agent configurée`,subagent:`Sous-agent`,checkedAgo:`vérifié il y a {{ago}}`,notChecked:`non vérifié`,auditInterval:`Intervalle d'audit (secondes)`,statusReady:`prêt`,statusRunning:`en cours`,statusReview:`en revue`,statusBlocked:`bloqué`,statusFailed:`échoué`,statusBlockedByDeps:`bloqué par dépendances`,statusStale:`obsolète`,runningCost:"~${{cost}} coût en cours",actionPause:`Pause`,actionResume:`Reprendre`,actionRetryFailed:`Réessayer les échecs`,actionStop:`Arrêter`,actionReassign:`Réaffecter`,actionRunNow:`Exécuter maintenant`,deleteTaskAria:`Supprimer la tâche : {{title}}`,activityNoteTemplate:`{{action}} de WebUI vers {{target}}.`},Me={heading:`Tâches planifiées`,subtitle:`Tâches récurrentes planifiées gérées par le plugin cron.`,statusDisabled:`Désactivé`,statusOverdue:`En retard`,statusActive:`Actif`,jobCount_one:`{{count}} tâche`,jobCount_other:`{{count}} tâches`,enabledCount:`{{count}} activées`,overdueCount:`{{count}} en retard`,totalRuns:`{{count}} exécutions au total`,maxConcurrent:`max {{count}} simultanées`,emptyTitle:`Aucune tâche cron planifiée.`,emptyUse:`Utilisez`,emptyToAdd:`pour en ajouter.`,thStatus:`Statut`,thName:`Nom`,thInterval:`Intervalle`,thRuns:`Exécutions`,thNextRun:`Prochaine exécution`,thLastRun:`Dernière exécution`,thAction:`Action`,lastFiredAtTitle:`Dernier déclenchement à {{time}}`,footerUse:`Utilisez`,footerToAdd:`pour ajouter,`,footerToRemove:`pour supprimer.`},Ne={refreshRosterData:`Actualiser les données du roster`,liveEmpty:`Les agents apparaissent ici lorsque des sous-agents sont générés`,fleetInspector:`Inspecteur de flotte`,openAgentsPanel:`Ouvrir le panneau des agents`,toolCalls:`Appels d'outils`,running:`En cours`,projectAgents:`Agents du projet`,createOrCloneTitle:`Créer ou cloner un agent de projet`,createOrCloneHint:`Héritez de n'importe quel agent du roster comme modèle, puis développez une identité, une politique d'exécution et un historique appris indépendants.`,cloneFromRole:`Cloner à partir du rôle du roster`,cloneHint:`Le prompt, les outils, les compétences et les valeurs par défaut sont hérités. L'apprentissage et les modifications ultérieures restent isolés au nouvel agent.`,displayName:`Nom affiché`,descriptionPlaceholder:`Détient les workflows X, Y et Z de ce projet et vérifie leurs résultats.`,creating:`Création…`,noCustomizations:`Aucune personnalisation pour le moment`,selectAgentEmpty:`Sélectionnez un agent pour modifier les personnalisations`,saving:`Enregistrement…`,saveFailed:`Échec de l'enregistrement`,failed:`Échec`,learningResumed:`Apprentissage automatique repris`,optimizationEmptyToast:`L'optimisation a produit un résultat vide. Réessayez.`,noActiveModelToast:`Aucun modèle actif sur le serveur. Optimisation envoyée à l'agent de discussion.`,learningsEmpty:`Les entrées d'apprentissage apparaissent lorsque les agents capturent des sorties`,allRosterAgents:`Tous les agents du roster`,optimizing:`Optimisation…`,paused:`en pause`,selectLearningAgent:`Sélectionnez un agent pour voir les détails d'apprentissage`,learningOn:`Apprentissage activé`,lastCapture:`Dernière capture`,lifetimeCaptures:`Captures totales`,learningsLimitExceeded:`Les données apprises dépassent la limite souple ({{bytes}}B / 8 192B). Optimisez pour synthétiser les entrées brutes en un document consolidé et réduire le volume du contexte.`,newPending:`nouveau en attente`,viewAction:`Voir`,applying:`Application…`,searchPlaceholder:`Rechercher des agents par nom, rôle ou description…`,maxIterations:`Itérations max.`,maxToolCalls:`Appels d'outils max.`,projectCustomizations:`Personnalisations du projet`,learnedEntries:`entrées apprises`,teachFailed:`Échec de l'enseignement`,selectRoleEmpty:`Sélectionnez un rôle à inspecter ou modifier`,captureLearned:`Capturer l'apprentissage`,teachThisAgent:`Enseigner à cet agent`,teachPlaceholder:`Décrivez ce que vous voulez que cet agent fasse mieux… p. ex. « Cet agent doit toujours vérifier les versions sur npm avant de recommander »`,heading:`Effectif d'agents`,headerSummary:`{{customized}} personnalisés · {{entries}} entrées apprises`,tabLive:`Flotte en direct`,tabCatalog:`Catalogue d'effectif`,tabLearning:`Auto-apprentissage`,tabCustomize:`Personnalisation`,learning:`apprentissage`,learningPaused:`Apprentissage en pause`,autoLearningPaused:`Apprentissage automatique en pause`,toolsCount_one:`{{count}} outil`,toolsCount_other:`{{count}} outils`,maxItShort:`{{value}} itér. max`,customizedBadge:`Personnalisé`,needsSummary:`⚠ Résumé requis`,timeout:`Délai`,learnedEntriesCount_one:`{{count}} entrée apprise`,learnedEntriesCount_other:`{{count}} entrées apprises`,sessionCapturesCount_one:`{{count}} capture de session`,sessionCapturesCount_other:`{{count}} captures de session`,noAgentsMatch:`Aucun agent ne correspond à « {{query}} »`,footerRosterRoles_one:`rôle d'effectif`,footerRosterRoles_other:`rôles d'effectif`,footerCustomized:`personnalisés`,footerTotalLearned_one:`entrée apprise au total`,footerTotalLearned_other:`entrées apprises au total`,clone:`+ Cloner`,abc:`ABC`,abcGeneratedFromName:`abc (généré à partir du nom)`,roleIdOptional:`ID de rôle (facultatif)`,purpose:`Objectif`,taskTypesCommaOrOnePer:`Types de tâches (séparés par des virgules ou un par ligne)`,cancel:`Annuler`,selectAnAgentToEditCustomizations:`Sélectionnez un agent pour modifier les personnalisations`,llmImprove:`Amélioration LLM`,reset:`Réinitialiser`,editIdentityMd:`Modifier identity.md`,editLearnedMd:`Modifier learned.md`,editConfigJson:`Modifier config.json`,runtimePolicy:`Politique d'exécution`,retry:`Réessayer`,noSelfLearningDataYet:`Aucune donnée d'auto-apprentissage`,review:`examiner →`,selectAnAgentToViewLearning:`Sélectionnez un agent pour voir les détails d'apprentissage`,entries:`Entrées`,size:`Taille`,optimizeLearnings:`Optimiser les acquis`,keep:`Conserver`,drop:`Supprimer`,describeACommandPatternOrBehavior:`Décrivez une commande, un motif ou un comportement que cet agent doit mémoriser.`,eGAlwaysUsePnpmForThisProject:`p. ex. Toujours utiliser pnpm pour ce projet`,teach:`Enseigner`,noActiveFleetAgents:`Aucun agent de flotte actif`,clear:`Effacer`,agentsTotal:`agents au total`,leader:`Leader`,iterations:`Itérations`,cost:`Coût`,context:`Contexte`,contextWindow:`Fenêtre de contexte`,error:`Erreur`,filterAll:`Tout ({{count}})`,filterRunning:`En cours ({{count}})`,filterDone:`Terminé ({{count}})`,filterFailed:`Échoué ({{count}})`,optimizeAll:`Tout optimiser ({{count}})`,policyUpdateFailed:`Échec de la mise à jour de la politique`,noRawEntries:`Aucune entrée brute à optimiser.`,optimizedOk:`Optimisé. Connaissances consolidées mises à jour.`,emptySynthesis:`Le modèle a renvoyé un résultat vide. Rien n'a été modifié — réessayez.`,consolidatedWithModel:`Acquis consolidés avec {{model}}.`,consolidatedPlain:`Acquis consolidés.`,resetConfirm:`Réinitialiser toutes les données propres au projet pour l'agent « {{role}} » ?`,loadCustomizationFailed:`Échec du chargement de la personnalisation`,loadRuntimePolicyFailed:`Échec du chargement de la politique d'exécution`,runtimePolicySaveFailed:`Échec de l'enregistrement de la politique d'exécution`,llmImprovementFailed:`Échec de l'amélioration par le LLM`,agentCreationFailed:`Échec de la création de l'agent`,noActiveModelMsg:`Aucun modèle actif sur le serveur — l'optimisation a été envoyée à l'agent de chat.`,optimizationFailed:`Échec de l'optimisation`,bulkOptimizationFailed:`Échec de l'optimisation groupée`,taskTypesPlaceholder:`Flux X
5
+ Déclencheurs : l'utilisateur dit "mot-clé", "autre".`,saveIn:`Enregistrer dans :`,createBtn:`Créer la Compétence`,createdMsg:`Créée : {{name}}`,createFailed:`Échec de la création`},Se={noEvents:`Aucun événement.`},Ce={pickHint:`Choisir un kit — l'agent s'y conformera.`,gallery:`Galerie`,galleryTitle:`Ouvrir la galerie d'aperçu en direct`,stackTitle:`Stack cible`,loading:`Chargement des kits…`,notFound:`Aucun kit de design trouvé.`,bestFor:`Idéal pour :`,light:`Clair`,dark:`Sombre`,tune:`Ajuster`,font:`Police`,set:`Définir`,spaceGrotesk:`Space Grotesk…`,aaHeading:`Aa Titre`,theQuickBrownFoxJumpsOver:`Portez ce vieux whisky au juge blond qui fume.`,primary:`Principal`,ghost:`Fantôme`,badge:`Badge`,inputField:`Champ de saisie…`,radius:`Rayon`,density:`Densité`,motion:`Mouvement`},we={detached:`(détaché)`,count_one:`{{count}} worktree`,count_other:`{{count}} worktrees`,baseSuffix:` · base {{base}}`,baseLabel:`base`,cleanOrphans:`Nettoyer les orphelins`,cleanOrphansTitle:`Supprimer tous les worktrees orphelins`,liveBusyTitle:`Un run est actif — arrêtez-le d'abord`,rescanTitle:`Re-scanner`,removed_one:`{{count}} worktree supprimé.`,removed_other:`{{count}} worktrees supprimés.`,failed:`Échec`,mergedIntoBase:`{{branch}} fusionné dans la base.`,conflictMerge:`Conflit en fusionnant {{branch}} : {{files}}`,seeGit:`voir git`,mergeFailed:`Échec de la fusion : {{reason}}`,unknownReason:`inconnu`,mergeConfirmTitle:`Fusionner {{branch}} dans {{base}} ?`,mergeConfirmMsg:`Squash-fusionne cette branche sur la branche de base. S'annule proprement en cas de conflit.`,mergeAction:`Fusionner`,removeConfirmTitle:`Supprimer {{branch}} ?`,removeConfirmMsg:`Supprime forcément le checkout du worktree et efface sa branche. Le travail non fusionné est perdu.`,empty:`Aucun worktree.`,emptyHint:`Les runs SDD / Goal créent des worktrees isolés ici. Les orphelins des runs plantés apparaissent aussi.`,actOpenTerm:`Ouvrir dans le terminal`,actOpenFolder:`Ouvrir le dossier`,actViewChanges:`Voir les modifications`,actMerge:`Fusionner vers la base`,actRemove:`Supprimer / annuler`,live:`actif`,noUncommitted:`Aucune modification non validée`,commitsAhead_one:`{{count}} commit en avance`,commitsAhead_other:`{{count}} commits en avance`,more:`…{{count}} de plus`},Te={heading:`Plan de bureau`,headingHint:`Visualisez votre flotte comme un plan de bureau avec le statut des agents en direct.`,statAgents:`Agents`,statMail:`Courriel`,unreadSuffix:` non lu`,sectionView:`Affichage`,sectionDisplay:`Affichage`,sectionBackground:`Arrière-plan`,sectionRecent:`Activité récente`,eventsTrackedSuffix:` événements suivis`,recentHint:`Les envois de courriel, les spawns d'agents et les changements de statut apparaissent ici.`,sectionShortcuts:`Raccourcis`,sectionLegend:`Légende`,hudLabel:`HUD`,hudDesc:`Afficher l'overlay des statistiques de session en temps réel`,hudToggle:`Activer le HUD`,minimapLabel:`Mini-carte`,minimapDesc:`Afficher la mini-carte d'aperçu`,minimapToggle:`Activer la mini-carte`,controlsLabel:`Contrôles`,controlsDesc:`Afficher les contrôles de zoom et d'ajustement`,controlsToggle:`Activer les contrôles`,animateLabel:`Animer les arêtes`,animateDesc:`Animer le flux sur les connexions actives`,animateToggle:`Activer l'animation des arêtes`,legendLabel:`Afficher la légende`,legendDesc:`Afficher la légende de statut et de connexion`,legendToggle:`Activer la légende`,feedLabel:`Flux en direct`,feedDesc:`Bande inférieure de l'activité inter-processus récente`,feedToggle:`Activer le flux en direct`,fitView:`Ajuster`,zoomIn:`Zoom avant`,zoomOut:`Zoom arrière`,resetZoom:`Réinitialiser le zoom`,legendActive:`Actif (en cours)`,legendIdle:`Inactif`,legendError:`Erreur`,legendOffline:`Hors ligne`,bg:{dots:`Points`,lines:`Lignes`,cross:`Croix`,none:`Aucun`}},Ee={liveProjectOffice:`Bureau du projet en direct`,agents:`agents`,working:`actifs`,toolCalls:`appels d’outils`,office:`Bureau`,topology:`Topologie`,officeDescription:`Bureaux et travail des agents en direct`,topologyDescription:`Clients, agents et connexions`,team:`Équipe`,liveDesk:`Bureau en direct et travail entrant`,lastActions:`Travaux récents`,leadAgent:`Agent principal`,agent:`Agent`,callsCount:`{{count}} appels`,recent:`Récent`,noCalls:`Aucun appel terminé`,telemetryReconnect:`Reconnectez ce terminal pour démarrer l’historique des outils`,thinking:`Réflexion`,waiting:`En attente de travail`,preparing:`Préparation de l’action suivante…`,deskReady:`Le bureau est prêt`,toolCall:`Appel d’outil`,execution:`Exécution`,started:`Début`,duration:`Durée`,session:`Session`,target:`Cible`,resultSize:`Taille du résultat`,lines:`lignes`,bytes:`octets`,tokens:`tokens`,input:`Entrée`,outputPreview:`Aperçu de la sortie`,readyTitle:`Le bureau est prêt`,readyBody:`Les agents prendront place dès qu’ils rejoindront ce projet.`,liveEvent:`flux d’événements en direct`,connectedSessions_one:`{{count}} session connectée`,connectedSessions_other:`{{count}} sessions connectées`,detailHint:`cliquez sur une action pour afficher les détails exacts d’entrée et de résultat`,officeBriefing:`Briefing du bureau`,leaderPrompt:`Dernier prompt du leader`,activeInstruction:`Instruction active`,telemetryWaiting:`Reconnectez ce terminal pour recevoir les instructions en direct`,syncWaiting:`synchronisation en attente`,todoTelemetryWaiting:`Reconnectez ce terminal pour recevoir la liste des tâches en direct`,taskNotReported:`L’agent travaille, mais aucune description de tâche n’a été signalée`,noPrompt:`Aucun prompt reçu dans cette session`,activeTodos:`Tâches actives`,todoProgress:`{{done}}/{{total}} terminées`,allTodosDone:`Toutes les tâches sont terminées`,noActiveTodos:`Aucune tâche active`,moreTodos:`+{{count}} autres`,currentTask:`Tâche actuelle`,task:`Tâche`,promptReceived:`Reçu`,todos:`Tâches`,todoStatus:{pending:`En attente`,in_progress:`En cours`,completed:`Terminée`},breakRoom:`Salle de pause`,onBreak:`{{count}} en pause`,desksEmpty:`Tout le monde est en pause — les bureaux sont prêts pour la prochaine tâche`,files:`FICHIERS`,read:`LECTURE`,write:`ÉCRITURE`,edit:`ÉDITION`,term:`TERM`,live:`EN DIRECT`,uniqueFilesTouched:`Fichiers uniques touchés`,fileReads:`Lectures de fichiers`,filesWritten:`Fichiers écrits`,filesEdited:`Fichiers modifiés`,linesAddedAndRemoved:`Lignes ajoutées et supprimées`,terminalCommands:`Commandes du terminal`,incomingAndOutgoingMail:`Courrier entrant et sortant`,sessionActivityTotals:`Totaux d'activité de la session`,closeToolDetails:`Fermer les détails de l'outil`,closeDetails:`Fermer les détails`,closeMailDetails:`Fermer les détails du courrier`,closeTaskDetails:`Fermer les détails de la tâche`,closeOfficeBriefing:`Fermer le briefing du bureau`,priority:`Priorité`,route:`Route`},De={injectedHeading:`Mémoire SAGE injectée`,memoriesLabel_one:`{{count}} souvenir`,memoriesLabel_other:`{{count}} souvenirs`},Oe={tabProject:`Projet SDD`,tabBoard:`Tableau SDD en direct`,tabSpecs:`Spécifications`},ke={label:`Panneau latéral`},Ae={deleteTitle:`Supprimer cette mémoire ?`,backToList:`Retour à la liste des mémoires`,copyId:`Copier l'ID de la mémoire`,deletedMemory:`Mémoire supprimée`,anchorCursorHint:`La plage de lignes du curseur correspond à l'ancre de cette mémoire`,statusDeleted:`supprimée`,statusSuperseded:`remplacée`,restoreTitle:`Restaurer cette mémoire à l'état actif`,supersededJumpTitle:`Cette version est remplacée — passer à la version active`,acceptSuggestionTitle:`Accepter la suggestion de suppression de l'hygiène — la mémoire sera oubliée`,rejectSuggestionTitle:`Rejeter la suggestion — la mémoire reste telle quelle et pourra être re-suggérée`,updateTitle:`Mettre à jour le contenu de la mémoire — le versionnage crée un nouvel enregistrement actif`,promoteTitle:"Promouvoir en `permanent` — l'hygiène ne le réaffichera jamais",openRecordTitle:`Ouvrir l'enregistrement complet dans MemoryManager`,fileDrawerAria:`Tiroir de mémoire de fichier`,requeryTitle:`Re-interroger ce fichier`,closeDrawerAria:`Fermer le tiroir`,closeDrawerTitle:`Fermer le tiroir de mémoire`,showRecoverable:`Afficher les récupérables (supprimées)`,cursorBoostTitle:`Boost du curseur`,fileScopedTitle:`Limité au fichier`,mentionedInTitle:`Mentionné dans`,editorKnowledge:`Connaissance`,editorContentPlaceholder:`Exemple : l'état de la WebUI appartient aux stores Zustand ; les messages du serveur les mettent à jour via des gestionnaires WebSocket singleton.`,editorImportance:`Importance`,editorConfidence:`Confiance`,editorFreshness:`Fraîcheur`,editorAnchors:`Ancres`,editorSymbolPlaceholder:`Nom du symbole`,editorRelationships:`Relations`,searchAria:`Rechercher des mémoires`,searchPlaceholder:`Rechercher contenu, IDs, tags, ancres…`,clearSearchAria:`Effacer la recherche`,audienceFilterAria:`Filtrer uniquement les mémoires à audience`,audienceFilterTitle:`Afficher uniquement les mémoires à audience`,clearFiltersAria:`Effacer tous les filtres`,clearFiltersTitle:`Effacer tous les filtres`,allStatuses:`Tous les statuts`,allKinds:`Toutes les sortes`,tagsLabel:`Tags`,popularTags:`Tags populaires`,graphAria:`Graphe des relations de mémoire`,graphFullscreenAria:`Ouvrir le graphe en plein écran`,clearTracesTitle:`Effacer toutes les traces`,closePanelTitle:`Fermer le panneau`,traceMatched:`correspond`,traceInjected:`injecté`,traceFiltered:`filtré`,traceActive:`actif`,traceExited:`sorti`,traceScore:`score`,traceError:`erreur`,lifecycleAria:`Registre en direct du cycle de vie de la mémoire`,listAria:`Mémoires`,emptyTitle:`Le contexte à long terme de votre projet`,emptyVerifiedAnchors:`Ancres vérifiées`,emptyTypedRelations:`Relations typées`,emptyAgentRecall:`Rappel d'agent`,lensesAria:`Lentilles de mémoire SAGE`,loadingSage:`Chargement de SAGE`,loadingAudience:`Chargement des mémoires d'audience`,storeUnavailable:`Store de mémoire indisponible`,backToChat:`Retour au chat`,sageHeading:`SAGE`,refreshAria:`Actualiser les mémoires`,tabMemories:`Mémoires`,tabActive:`Actives`,tabNeedsReview:`À examiner`,tabGraphEdges:`Arêtes du graphe`,libraryAria:`Bibliothèque de mémoires`,viewAria:`Vue des mémoires`,detailAria:`Détail de la mémoire`,fileForDrawerAria:`Fichier pour le tiroir de mémoire`,cursorLabel:`curseur`,reviewLabel:`examen`,hygieneReviewTitle:`Examen d'hygiène : {{reason}} ({{days}} j)`,updatedSuffix:`mise à jour {{date}}`,actionRecover:`Récupérer`,actionGoToActive:`Aller à la version active`,actionAcceptDeletion:`Accepter la suppression`,actionKeep:`Conserver`,actionUpdate:`Mettre à jour`,actionMarkPermanent:`Marquer comme permanent`,actionShowFull:`Afficher tout`,itemLabel:`mémoires`,noFile:`(aucun fichier)`,memoriesCount_one:`{{count}} mémoire`,memoriesCount_other:`{{count}} mémoires`,pendingReviewCount_one:`{{count}} examen en attente`,pendingReviewCount_other:`{{count}} examens en attente`,supersededCount:`{{count}} remplacée(s)`,linesRange:`lignes {{start}}–{{end}}`,emptyOpenFile:`Ouvrez un fichier pour voir ses mémoires.`,loadingMemories:`Chargement des mémoires…`,errorPrefix:`Erreur : {{message}}`,emptyNoMemories:`Aucune mémoire attachée à {{file}} pour l'instant.`,pendingAccepting:`acceptation…`,pendingKeeping:`conservation…`,pendingUpdating:`mise à jour…`,pendingMarking:`marquage…`,pendingRecovering:`récupération…`,deletedNeverPolicy:`Cet enregistrement est réservé à l'audit et porte une interdiction absolue : il ne peut jamais entrer dans le contexte LLM.`,deletedEligiblePolicy:`L'enregistrement est inactif et ne peut être modifié, mais reste admissible comme preuve historique lorsque la récupération le juge pertinent.`,deletingLabel:`Suppression…`,actionDeleteMemory:`Supprimer la mémoire`,copiedNotice:`ID de mémoire copié.`,revisionSuffix:`révision {{n}}`,memoryRelationships:`Relations de mémoire`,captureMemory:`Capturer une mémoire`,editMemory:`Modifier la mémoire`,editorCreateHint:`Ajoutez des connaissances durables avec des métadonnées de récupération.`,editorEditHint:`Mettez à jour le contenu sans perdre la provenance.`,createMemory:`Créer la mémoire`,saveChanges:`Enregistrer les modifications`,addAnchor:`Ajouter une ancre`,noAnchors:`Aucune ancre pour l'instant — ajoutez-en une pour améliorer la précision de récupération`,loadingGraph:`chargement du vrai graphe…`,graphStats:`{{nodes}} nœuds · {{edges}} arêtes`,lifecycleHeading:`Cycle de vie de la mémoire`,statusWaiting:`en attente`,statusLive:`en direct · {{count}}/100`,noMatching:`Aucune mémoire correspondante`,buildGraph:`Construire votre graphe de mémoires`,clearFilters:`Effacer les filtres`,createFirst:`Créer la première mémoire`,captureButton:`Capturer une mémoire`,memoryCaptured:`Mémoire capturée.`,memoryUpdated:`Mémoire mise à jour.`,liveStore:`store en direct`,reconnecting:`reconnexion`,newMemory:`Nouvelle mémoire`,hideFileDrawer:`Masquer le tiroir de mémoire de fichier`,showFileDrawer:`Afficher le tiroir de mémoire de fichier`,hideDrawer:`Masquer le tiroir`,showDrawer:`Afficher le tiroir`,editorCharCount:`{{count}} caractères`,editorContentLabel:`Contenu de la mémoire`,editorKind:`Type`,editorScope:`Portée`,editorLifecycleStatus:`Statut du cycle de vie`,editorSupersedes:`Remplace`,editorContradicts:`Contredit`,filterByStatus:`Filtrer par statut`,filterByKind:`Filtrer par type`,graphHeading:`Graphe de relations`,graphHeadingFull:`Graphe de relations — {{id}}`,graphOpenFullscreen:`Ouvrir en plein écran`,projectKnowledge:`connaissances du projet`,sageSubtitle:`Inspectez, connectez, organisez et retirez le contexte durable utilisé entre les sessions d'agents.`,emptyBody:`Sélectionnez une mémoire pour inspecter ses métadonnées et son graphe de relations, ou capturez des connaissances que les futurs agents devront récupérer automatiquement.`,tabDeleted:`Supprimées`,fileDrawerLabel:`Tiroir de fichiers`,selectFilePlaceholder:`— sélectionner un fichier —`,memoryCountSummary:`{{shown}} de {{total}} mémoires`,updatedSortLabel:`mis à jour ↓`,tabAllMemories:`Toutes les mémoires`,tabAllMemoriesHint:`Inspecter, organiser, retirer`,tabAudience:`Ciblées`,tabAudienceHint:`Guidage routé vers les agents`,editorRelationshipsHint:`Référencez des ID de mémoire exacts. Les relations sont validées et les arêtes du graphe reconstruites par SAGE.`,editorTaskTypes:`Types de tâches`,createAction:`Créer`,mutationTimeout:`{{verb}} expiré. Votre brouillon est toujours là.`,loadingSageContent:`Chargement du contenu SAGE`,injectorActiveInContext:`Actif dans le contexte`,injectorInjectionHistory:`Historique des injections`,injectorContextTransitions:`Transitions de contexte`,metaCreated:`Créée`,metaUpdated:`Mise à jour`,metaLastAccessed:`Dernier accès`,metaLastVerified:`Dernière vérification`,referencedUnavailable:`Mémoire référencée indisponible`,emptyFiltered:`Modifiez les filtres ou effacez la requête de recherche.`,emptyCapture:`Capturez des faits durables, des décisions, des conventions et des notes liées à des fichiers pour chaque agent.`,memoryUnavailable:`La mémoire est indisponible ou a été supprimée.`,staleConflicts:`obsolètes + conflits`},je={enableLayer:`Activer cette couche de limite`,outsideScope:`Hors périmètre`,askPermission:`Demander la permission`,alwaysBlock:`Toujours bloquer`,allow:`Autoriser`,allowSelectors:`Sélecteurs autorisés`,denySelectors:`Sélecteurs refusés`,crossPathSelectors:`Le shell « Autoriser » est opaque et peut traverser des sélecteurs de chemin.`,removeLayer:`Supprimer la couche`,taskInspector:`Inspecteur de tâches`,task:`Tâche`,dispatched:`Envoyée`,collapseDetails:`Réduire les détails de la tâche`,taskBoundary:`Limite de tâche`,title:`Titre`,managedStage:`Étape gérée`,status:`Statut`,priority:`Priorité`,type:`Type`,labelsCommaSeparated:`Étiquettes (séparées par des virgules)`,dueDatePlaceholder:`Date d'échéance (ISO ou AAAA-MM-JJ)`,estimatedHours:`Heures estimées`,actualHours:`Heures réelles`,selectBlockingTasks:`Sélectionner les tâches bloquantes…`,selectSequentialChain:`Ajouter des tâches à une chaîne séquentielle…`,enforceChainOrder:`Imposer l'ordre de la chaîne comme dépendances`,assignmentReason:`Motif de changement / affectation (persisté dans l'activité)`,managedLifecycle:`Transition du cycle de vie géré`,kanbanAgentTransition:`Transition de l'agent Kanban`,completedAction:`Action terminée / action du relecteur`,progressComment:`Commentaire d'avancement véridique (obligatoire)`,evidenceUrl:`URL de la pièce jointe de preuve`,source:`Source`,taskId:`ID de tâche`,run:`Exécuter`,column:`Colonne`,primaryModelSource:`Source du modèle principal`,selectProviderModel:`Sélectionner le fournisseur / modèle exact…`,fallbackProfile:`Profil de secours (le premier modèle est le principal)`,selectProfile:`Sélectionner un profil configuré…`,fallbackModels:`Modèles de secours`,addFallbackModel:`Ajouter un modèle de secours…`,role:`Rôle`,selectRole:`Sélectionner un rôle…`,assignSkills:`Attribuer les compétences requises…`,restrictTools:`Restreindre à des outils spécifiques…`,agentNameOptional:`Nom de l'agent (facultatif)`,retryPolicy:`Politique de nouvelle tentative`,maxAttempts:`Tentatives max.`,costCeilingUsd:`Plafond de coût USD`,grantCapability:`Accorder une capacité…`,targetBoard:`Tableau cible`,boardPresence:`Présence au tableau`,liveBoardUsers:`Utilisateurs actifs du tableau`,kanbanAgent:`Agent Kanban`,watchThisBoard:`Surveiller ce tableau`,supervisorEngine:`Moteur superviseur`,kanbanAgentModelSource:`Source du modèle de l'agent Kanban`,supervisorSkills:`Compétences du superviseur`,forceLoadSkills:`Forcer le chargement des compétences agentiques…`,extraFallbackModels:`Modèles de secours supplémentaires`,optionalFallbacks:`Secours ordonnés facultatifs…`,queueHealth:`Santé de la file`,claimableTasks:`Tâches réclamables`,runningAssignments:`Affectations en cours`,inReview:`En revue`,manuallyBlocked:`Bloquées manuellement`,failedTasks:`Tâches échouées`,blockedByDeps:`Tâches prêtes/en attente bloquées par des dépendances`,expiredLeases:`Affectations de bail expirées`,healthy:`sain`,costCeilingSum:`Somme des costCeilingUsd pour les tâches en cours/en file`,liveRunSteer:`Exécution en direct — pilotez-la d'ici`,openLiveRun:`Ouvrir la vue d'exécution en direct (SDD Hub)`,runAsLiveJob:`Exécuter ce tableau en tant que job d'agent en direct :`,startAsGoal:`Démarrer en tant qu'objectif`,startAsSdd:`Démarrer en tant que SDD`,runControls:`Contrôles d'exécution`,workerModel:`Modèle worker`,setModelForTask:`Définir le modèle pour cette tâche…`,newWorkerName:`Nouveau nom de worker`,duration:`Durée`,liveRun:`Exécution en direct`,lastResult:`Dernier résultat`,definitionOfDone:`Définition de terminé`,failingChecks:`Vérifications échouées`,evidenceMissing:`Preuves manquantes (contrôles agent/conseil sans références)`,needsDecomposition:`Nécessite une décomposition`,decompositionPending:`Propositions de décomposition en attente d'approbation`,noOutstanding:`Aucun problème de vérification ou de décomposition en suspens sur ce tableau.`,kanban:`Kanban`,newBoard:`Nouveau tableau`,createBoard:`Créer un tableau`,deleteTask:`Supprimer la tâche`,runFailed:`exécution échouée`,splitPendingApproval:`division en attente d'approbation`,newTask:`Nouvelle tâche`,addTask:`Ajouter une tâche`,newColumn:`Nouvelle colonne`,addColumn:`Ajouter une colonne`,duplicateBoard:`Dupliquer le tableau`,confirmDelete:`Confirmer ?`,confirmDeleteBoard:`Cliquez à nouveau pour confirmer la suppression du tableau`,deleteBoard:`Supprimer le tableau`,boardBoundary:`Limite du tableau`,noBoardSelected:`Aucun tableau Kanban sélectionné.`,expandDetails:`Agrandir les détails de la tâche`,elapsed:`Écoulé`,assigned:`Affecté`,configuredAgentRoute:`la route d'agent configurée`,subagent:`Sous-agent`,checkedAgo:`vérifié il y a {{ago}}`,notChecked:`non vérifié`,auditInterval:`Intervalle d'audit (secondes)`,statusReady:`prêt`,statusRunning:`en cours`,statusReview:`en revue`,statusBlocked:`bloqué`,statusFailed:`échoué`,statusBlockedByDeps:`bloqué par dépendances`,statusStale:`obsolète`,runningCost:"~${{cost}} coût en cours",actionPause:`Pause`,actionResume:`Reprendre`,actionRetryFailed:`Réessayer les échecs`,actionStop:`Arrêter`,actionReassign:`Réaffecter`,actionRunNow:`Exécuter maintenant`,deleteTaskAria:`Supprimer la tâche : {{title}}`,confirmDeleteTask:`Cliquez à nouveau pour confirmer la suppression de la tâche`,confirmDeleteTaskAria:`Confirmer la suppression : {{title}}`,moveTaskToColumn:`Déplacer {{title}} vers la colonne`,activityNoteTemplate:`{{action}} de WebUI vers {{target}}.`},Me={heading:`Tâches planifiées`,subtitle:`Tâches récurrentes planifiées gérées par le plugin cron.`,statusDisabled:`Désactivé`,statusOverdue:`En retard`,statusActive:`Actif`,jobCount_one:`{{count}} tâche`,jobCount_other:`{{count}} tâches`,enabledCount:`{{count}} activées`,overdueCount:`{{count}} en retard`,totalRuns:`{{count}} exécutions au total`,maxConcurrent:`max {{count}} simultanées`,emptyTitle:`Aucune tâche cron planifiée.`,emptyUse:`Utilisez`,emptyToAdd:`pour en ajouter.`,thStatus:`Statut`,thName:`Nom`,thInterval:`Intervalle`,thRuns:`Exécutions`,thNextRun:`Prochaine exécution`,thLastRun:`Dernière exécution`,thAction:`Action`,lastFiredAtTitle:`Dernier déclenchement à {{time}}`,footerUse:`Utilisez`,footerToAdd:`pour ajouter,`,footerToRemove:`pour supprimer.`},Ne={refreshRosterData:`Actualiser les données du roster`,liveEmpty:`Les agents apparaissent ici lorsque des sous-agents sont générés`,fleetInspector:`Inspecteur de flotte`,openAgentsPanel:`Ouvrir le panneau des agents`,toolCalls:`Appels d'outils`,running:`En cours`,projectAgents:`Agents du projet`,createOrCloneTitle:`Créer ou cloner un agent de projet`,createOrCloneHint:`Héritez de n'importe quel agent du roster comme modèle, puis développez une identité, une politique d'exécution et un historique appris indépendants.`,cloneFromRole:`Cloner à partir du rôle du roster`,cloneHint:`Le prompt, les outils, les compétences et les valeurs par défaut sont hérités. L'apprentissage et les modifications ultérieures restent isolés au nouvel agent.`,displayName:`Nom affiché`,descriptionPlaceholder:`Détient les workflows X, Y et Z de ce projet et vérifie leurs résultats.`,creating:`Création…`,noCustomizations:`Aucune personnalisation pour le moment`,selectAgentEmpty:`Sélectionnez un agent pour modifier les personnalisations`,saving:`Enregistrement…`,saveFailed:`Échec de l'enregistrement`,failed:`Échec`,learningResumed:`Apprentissage automatique repris`,optimizationEmptyToast:`L'optimisation a produit un résultat vide. Réessayez.`,noActiveModelToast:`Aucun modèle actif sur le serveur. Optimisation envoyée à l'agent de discussion.`,learningsEmpty:`Les entrées d'apprentissage apparaissent lorsque les agents capturent des sorties`,allRosterAgents:`Tous les agents du roster`,optimizing:`Optimisation…`,paused:`en pause`,selectLearningAgent:`Sélectionnez un agent pour voir les détails d'apprentissage`,learningOn:`Apprentissage activé`,lastCapture:`Dernière capture`,lifetimeCaptures:`Captures totales`,learningsLimitExceeded:`Les données apprises dépassent la limite souple ({{bytes}}B / 8 192B). Optimisez pour synthétiser les entrées brutes en un document consolidé et réduire le volume du contexte.`,newPending:`nouveau en attente`,viewAction:`Voir`,applying:`Application…`,searchPlaceholder:`Rechercher des agents par nom, rôle ou description…`,maxIterations:`Itérations max.`,maxToolCalls:`Appels d'outils max.`,projectCustomizations:`Personnalisations du projet`,learnedEntries:`entrées apprises`,teachFailed:`Échec de l'enseignement`,selectRoleEmpty:`Sélectionnez un rôle à inspecter ou modifier`,captureLearned:`Capturer l'apprentissage`,teachThisAgent:`Enseigner à cet agent`,teachPlaceholder:`Décrivez ce que vous voulez que cet agent fasse mieux… p. ex. « Cet agent doit toujours vérifier les versions sur npm avant de recommander »`,heading:`Effectif d'agents`,headerSummary:`{{customized}} personnalisés · {{entries}} entrées apprises`,tabLive:`Flotte en direct`,tabCatalog:`Catalogue d'effectif`,tabLearning:`Auto-apprentissage`,tabCustomize:`Personnalisation`,learning:`apprentissage`,learningPaused:`Apprentissage en pause`,autoLearningPaused:`Apprentissage automatique en pause`,toolsCount_one:`{{count}} outil`,toolsCount_other:`{{count}} outils`,maxItShort:`{{value}} itér. max`,customizedBadge:`Personnalisé`,needsSummary:`⚠ Résumé requis`,timeout:`Délai`,learnedEntriesCount_one:`{{count}} entrée apprise`,learnedEntriesCount_other:`{{count}} entrées apprises`,sessionCapturesCount_one:`{{count}} capture de session`,sessionCapturesCount_other:`{{count}} captures de session`,noAgentsMatch:`Aucun agent ne correspond à « {{query}} »`,footerRosterRoles_one:`rôle d'effectif`,footerRosterRoles_other:`rôles d'effectif`,footerCustomized:`personnalisés`,footerTotalLearned_one:`entrée apprise au total`,footerTotalLearned_other:`entrées apprises au total`,clone:`+ Cloner`,abc:`ABC`,abcGeneratedFromName:`abc (généré à partir du nom)`,roleIdOptional:`ID de rôle (facultatif)`,purpose:`Objectif`,taskTypesCommaOrOnePer:`Types de tâches (séparés par des virgules ou un par ligne)`,cancel:`Annuler`,selectAnAgentToEditCustomizations:`Sélectionnez un agent pour modifier les personnalisations`,llmImprove:`Amélioration LLM`,reset:`Réinitialiser`,editIdentityMd:`Modifier identity.md`,editLearnedMd:`Modifier learned.md`,editConfigJson:`Modifier config.json`,runtimePolicy:`Politique d'exécution`,retry:`Réessayer`,noSelfLearningDataYet:`Aucune donnée d'auto-apprentissage`,review:`examiner →`,selectAnAgentToViewLearning:`Sélectionnez un agent pour voir les détails d'apprentissage`,entries:`Entrées`,size:`Taille`,optimizeLearnings:`Optimiser les acquis`,keep:`Conserver`,drop:`Supprimer`,describeACommandPatternOrBehavior:`Décrivez une commande, un motif ou un comportement que cet agent doit mémoriser.`,eGAlwaysUsePnpmForThisProject:`p. ex. Toujours utiliser pnpm pour ce projet`,teach:`Enseigner`,noActiveFleetAgents:`Aucun agent de flotte actif`,clear:`Effacer`,agentsTotal:`agents au total`,leader:`Leader`,iterations:`Itérations`,cost:`Coût`,context:`Contexte`,contextWindow:`Fenêtre de contexte`,error:`Erreur`,filterAll:`Tout ({{count}})`,filterRunning:`En cours ({{count}})`,filterDone:`Terminé ({{count}})`,filterFailed:`Échoué ({{count}})`,optimizeAll:`Tout optimiser ({{count}})`,policyUpdateFailed:`Échec de la mise à jour de la politique`,noRawEntries:`Aucune entrée brute à optimiser.`,optimizedOk:`Optimisé. Connaissances consolidées mises à jour.`,emptySynthesis:`Le modèle a renvoyé un résultat vide. Rien n'a été modifié — réessayez.`,consolidatedWithModel:`Acquis consolidés avec {{model}}.`,consolidatedPlain:`Acquis consolidés.`,resetConfirm:`Réinitialiser toutes les données propres au projet pour l'agent « {{role}} » ?`,loadCustomizationFailed:`Échec du chargement de la personnalisation`,loadRuntimePolicyFailed:`Échec du chargement de la politique d'exécution`,runtimePolicySaveFailed:`Échec de l'enregistrement de la politique d'exécution`,llmImprovementFailed:`Échec de l'amélioration par le LLM`,agentCreationFailed:`Échec de la création de l'agent`,noActiveModelMsg:`Aucun modèle actif sur le serveur — l'optimisation a été envoyée à l'agent de chat.`,optimizationFailed:`Échec de l'optimisation`,bulkOptimizationFailed:`Échec de l'optimisation groupée`,taskTypesPlaceholder:`Flux X
6
6
  Analyse Y
7
7
  Vérification Z`},Pe={generic:{name:`Agent de projet générique`,summary:`Modèle flexible pouvant être cloné en rôles de projet apprenant de façon autonome.`},"audit-log":{name:`Journal d'audit`,summary:`Analyse les journaux de session, les flux d'événements et les traces système.`},"bug-hunter":{name:`Chasseur de bugs`,summary:`Analyse le code à la recherche de bugs, de code smells et d'anti-patterns.`},"refactor-planner":{name:`Planificateur de refactorisation`,summary:`Analyse la structure du code et produit des plans de refactorisation par phases.`},"security-scanner":{name:`Scanner de sécurité`,summary:`Analyse le code, les configurations et les dépendances pour détecter les problèmes de sécurité.`},critic:{name:`Critique`,summary:`Évalue les décisions, les plans et les implémentations.`},"shadow-agent":{name:`Agent fantôme`,summary:`Agent de surveillance en arrière-plan qui suit la santé de la flotte.`},executor:{name:`Exécuteur`,summary:`Exécuteur de tâches polyvalent pour le travail délégué.`},chimera:{name:`Chimera`,summary:`Revue de la qualité du code des fichiers modifiés après la session.`},researcher:{name:`Chercheur`,summary:`Spécialiste de la recherche web et de la collecte de données.`},"tech-stack":{name:`Validateur de pile technique`,summary:`Valide les choix de paquets, bibliothèques et frameworks.`},orchestrator:{name:`Orchestrateur`,summary:`Coordonne l'exécution des tâches multi-agents.`},supervisor:{name:`Superviseur`,summary:`Supervise l'exécution des sous-agents et gère les escalades.`},"quality-gate":{name:`Porte qualité`,summary:`Applique les portes qualité aux implémentations.`},architect:{name:`Architecte`,summary:`Prend les décisions de conception et d'architecture.`},"prompt-engineer":{name:`Ingénieur de prompts`,summary:`Conçoit et optimise les prompts système.`},mnemosyne:{name:`Mnemosyne`,summary:`Curateur de mémoire — vérifie et maintient l'intégrité de SAGE.`},autophase:{name:`AutoPhase`,summary:`Gère l'exécution autonome des tâches en plusieurs phases.`}},Fe={heading:`Effectif personnalisé`,loading:`Chargement de l'effectif personnalisé…`,loadFailed:`Échec du chargement de l'effectif`,invalidJson:`JSON invalide`,noImprovement:`Aucune suggestion d'amélioration générée.`,improveFailed:`Échec de l'amélioration par le LLM`,behaviorSaved:`Comportement enregistré dans learned.md`,saveFailedServer:`Échec de l'enregistrement — consultez les journaux du serveur`,emptyTitle:`Aucun agent d'effectif personnalisé`,emptyBody:`Les agents propres au projet apparaissent ici lorsque vous créez ou modifiez des fichiers sous`,createExecutorIdentity:`+ Créer l'identité de l'exécuteur`,entries:`Entrées`,size:`Taille`,sessionCaptures:`Captures de session`,editIdentity:`Modifier identity.md`,editLearned:`Modifier learned.md`,editConfig:`Modifier config.json`,reviewEntries:`Examiner les entrées ({{count}})`,reviewLearnedEntries:`Examiner les entrées apprises ({{kept}}/{{total}} conservées)`,applySelection:`Appliquer la sélection`,keep:`✓ Conserver`,drop:`✗ Supprimer`,identityPlaceholder:`# Identité de projet pour {{role}}
8
8