@loicngr/kobo 2.1.1 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/dist/server/services/agent/engines/claude-code/engine.js +29 -9
- package/dist/server/services/agent/engines/codex/engine.js +1 -0
- package/dist/server/services/agent/engines/codex/options-builder.js +6 -1
- package/dist/server/services/agent/orchestrator.js +5 -1
- package/dist/server/services/review-service.js +6 -2
- package/package.json +10 -10
- package/src/client/dist/pwa/assets/ActivityFeed-CO5rOaa5.js +8 -0
- package/src/client/dist/pwa/assets/{ActivityFeed-BYR5x7aa.css → ActivityFeed-DCmiJP-z.css} +1 -1
- package/src/client/dist/pwa/assets/{ChangelogPage-OoOnn4q9.js → ChangelogPage-DNRcPRtW.js} +1 -1
- package/src/client/dist/pwa/assets/{ClosePopup-CWjIRHxu.js → ClosePopup-BikuzYle.js} +1 -1
- package/src/client/dist/pwa/assets/{ComparisonPanel-BYpe6Nch.js → ComparisonPanel-DZoDqgJI.js} +1 -1
- package/src/client/dist/pwa/assets/{CreatePage-COQwHyqL.js → CreatePage-wNH35uTG.js} +1 -1
- package/src/client/dist/pwa/assets/{DashboardPage-CZ2036MC.js → DashboardPage-DUyy4SzS.js} +1 -1
- package/src/client/dist/pwa/assets/{DiffViewer-CXBmMV9R.js → DiffViewer-CZ5QwXqi.js} +3 -3
- package/src/client/dist/pwa/assets/{DocumentsPanel-mLGU5aTb.js → DocumentsPanel-sBatgKA-.js} +1 -1
- package/src/client/dist/pwa/assets/{DrawerToggleButton-C39pfWBD.js → DrawerToggleButton-Dfvkaro0.js} +1 -1
- package/src/client/dist/pwa/assets/{GitPanel-BQk7kJO-.js → GitPanel-B8e1olfm.js} +3 -3
- package/src/client/dist/pwa/assets/{HealthPage-CnJWXfa8.js → HealthPage-BwXYpczh.js} +1 -1
- package/src/client/dist/pwa/assets/MainLayout-DFXIS_wv.js +2 -0
- package/src/client/dist/pwa/assets/{MainLayout-Cc4XzCAy.css → MainLayout-gHENJEFQ.css} +1 -1
- package/src/client/dist/pwa/assets/{QBadge-FWC1zDCq.js → QBadge-CQF1smL-.js} +1 -1
- package/src/client/dist/pwa/assets/{QBanner-CcRI_QIy.js → QBanner-bdDA-A5g.js} +1 -1
- package/src/client/dist/pwa/assets/{QBtn-DEdx_Y1V.js → QBtn-CcQQrYA_.js} +1 -1
- package/src/client/dist/pwa/assets/{QBtnDropdown-DGLLlBf3.js → QBtnDropdown-C-1EhO9J.js} +1 -1
- package/src/client/dist/pwa/assets/{QBtnGroup-CAoD6G0Q.js → QBtnGroup-wd5lKRXu.js} +1 -1
- package/src/client/dist/pwa/assets/{QBtnToggle-C_hQ2UCQ.js → QBtnToggle-BnC8rTql.js} +1 -1
- package/src/client/dist/pwa/assets/{QChip-DCPUhqXX.js → QChip-D75nKi-L.js} +1 -1
- package/src/client/dist/pwa/assets/{QExpansionItem-CQ2LzM8P.js → QExpansionItem-RpMPvfxX.js} +1 -1
- package/src/client/dist/pwa/assets/{QItemSection-BhqphaH6.js → QItemSection-Bt9H35JJ.js} +1 -1
- package/src/client/dist/pwa/assets/{QList-CHm4JNP0.js → QList-D5msNbSZ.js} +1 -1
- package/src/client/dist/pwa/assets/{QMarkupTable-CNpiA9oq.js → QMarkupTable-D3REW6RC.js} +1 -1
- package/src/client/dist/pwa/assets/{QPage-BXBw2Alx.js → QPage-HAaeQ-cv.js} +1 -1
- package/src/client/dist/pwa/assets/{QSelect-DoTWgQAO.js → QSelect-Dpru_T81.js} +1 -1
- package/src/client/dist/pwa/assets/{QSpinnerDots-BkFiCsH3.js → QSpinnerDots-DDsPDUH9.js} +1 -1
- package/src/client/dist/pwa/assets/{QTooltip-DKvUeiR_.js → QTooltip-C31vXtse.js} +1 -1
- package/src/client/dist/pwa/assets/{SchedulePanel-DIMzNIO3.js → SchedulePanel-D6LTiRFg.js} +1 -1
- package/src/client/dist/pwa/assets/{SearchPage-COWnMxRZ.js → SearchPage-Dj487BdP.js} +1 -1
- package/src/client/dist/pwa/assets/{SettingsPage-B9cLhFnO.js → SettingsPage-CJmgFiAa.js} +1 -1
- package/src/client/dist/pwa/assets/{SplitWorkspacePage-BJKssJyI.js → SplitWorkspacePage-BGSDgGIO.js} +1 -1
- package/src/client/dist/pwa/assets/{TerminalPanel-C_HNpN1X.js → TerminalPanel-B9LDe7uG.js} +1 -1
- package/src/client/dist/pwa/assets/{TouchPan-CCllyaAF.js → TouchPan-DJqqxDBF.js} +1 -1
- package/src/client/dist/pwa/assets/{TourReplayButton-Cp2UnxWa.js → TourReplayButton-Dtv_UDaY.js} +1 -1
- package/src/client/dist/pwa/assets/{WorkspaceAttentionLabels-B-SuQuS_.js → WorkspaceAttentionLabels-VlJCIkwU.js} +1 -1
- package/src/client/dist/pwa/assets/{WorkspacePage-6lN4iF5W.js → WorkspacePage-B_SlX8YB.js} +3 -3
- package/src/client/dist/pwa/assets/{browser-uy3hmwKo.js → browser-B15GGwtW.js} +1 -1
- package/src/client/dist/pwa/assets/{build-path-tree-DZrp6Aji.js → build-path-tree-CU6uXunR.js} +1 -1
- package/src/client/dist/pwa/assets/{codicon-Brq4_Ui5.ttf → codicon-DF1abBS2.ttf} +0 -0
- package/src/client/dist/pwa/assets/{custom-sounds-Du8ReMlU.js → custom-sounds-CDJsgChY.js} +1 -1
- package/src/client/dist/pwa/assets/{de-CTE3Xb7Z.js → de-B_Y4EArT.js} +2 -2
- package/src/client/dist/pwa/assets/{documents-BtNrB6d0.js → documents-Cf6nmu8Z.js} +1 -1
- package/src/client/dist/pwa/assets/editor-CmVjQp1O.css +1 -0
- package/src/client/dist/pwa/assets/editor.api-DhaLhNl-.js +420 -0
- package/src/client/dist/pwa/assets/editor.worker-BLJF_oQx.js +33 -0
- package/src/client/dist/pwa/assets/{efforts-ChUC4xtk.js → efforts-DoYZi0AZ.js} +2 -2
- package/src/client/dist/pwa/assets/{engineFeatures-D-0NPZBE.js → engineFeatures-C9XiCfvv.js} +1 -1
- package/src/client/dist/pwa/assets/{es-CZxg1xjh.js → es-DtsTTShP.js} +2 -2
- package/src/client/dist/pwa/assets/{expand-template-ByoC_kxX.js → expand-template-LDLM-6iN.js} +1 -1
- package/src/client/dist/pwa/assets/format-2JisC3s1.js +489 -0
- package/src/client/dist/pwa/assets/format-DoyK4IAn.css +1 -0
- package/src/client/dist/pwa/assets/{formatters-BtG6lb4d.js → formatters-ZVNs2VOl.js} +1 -1
- package/src/client/dist/pwa/assets/{fr-C7HCclxj.js → fr-C82MIVrA.js} +2 -2
- package/src/client/dist/pwa/assets/{freemarker2-CDYXi2tK.js → freemarker2-PYrDqU04.js} +1 -1
- package/src/client/dist/pwa/assets/{handlebars-AVkJuN-_.js → handlebars-BuiY0fFf.js} +1 -1
- package/src/client/dist/pwa/assets/{html-CpvEZlmO.js → html-Du3cjdug.js} +1 -1
- package/src/client/dist/pwa/assets/i18n-BumeGGx_.js +1 -0
- package/src/client/dist/pwa/assets/index-DolbyIM4.js +20 -0
- package/src/client/dist/pwa/assets/index-VMFLfvp2.css +1 -0
- package/src/client/dist/pwa/assets/{it-DoOWwqZz.js → it-BJNuTcj2.js} +2 -2
- package/src/client/dist/pwa/assets/{javascript-BYnnBLH9.js → javascript-Bb48hPli.js} +1 -1
- package/src/client/dist/pwa/assets/{liquid-CzqlB3Um.js → liquid-Be77iQe3.js} +1 -1
- package/src/client/dist/pwa/assets/{mdx-hrYFnJVZ.js → mdx-CfohNJja.js} +1 -1
- package/src/client/dist/pwa/assets/monaco-contributions-CyM4wsIg.js +53 -0
- package/src/client/dist/pwa/assets/monaco-contributions-DvnCTJI2.css +1 -0
- package/src/client/dist/pwa/assets/{monaco.contribution-Dl22KqTL.js → monaco.contribution-BcIfN6Mi.js} +2 -2
- package/src/client/dist/pwa/assets/{network-auth-Dq0I5kjv.js → network-auth-B1xAaHmx.js} +1 -1
- package/src/client/dist/pwa/assets/{notify-theme-vV3Rm4_v.js → notify-theme-DvvaSyg1.js} +1 -1
- package/src/client/dist/pwa/assets/{pending-diff-open-BJYqBOUG.js → pending-diff-open-B6N0vI5n.js} +1 -1
- package/src/client/dist/pwa/assets/{project-color-W5mMgIKK.js → project-color-Be0t12-n.js} +1 -1
- package/src/client/dist/pwa/assets/{python-DafgCozG.js → python-BNemmtx8.js} +1 -1
- package/src/client/dist/pwa/assets/{razor-CWYrTLCm.js → razor-3NM8iFVf.js} +1 -1
- package/src/client/dist/pwa/assets/render-chat-markdown-BWJNIDv3.js +69 -0
- package/src/client/dist/pwa/assets/{typescript-DLSIuW9u.js → typescript-DwyZ4CF7.js} +1 -1
- package/src/client/dist/pwa/assets/{use-checkbox-CnvHBhSK.js → use-checkbox-2xzX4yYj.js} +1 -1
- package/src/client/dist/pwa/assets/{use-id-wXd4c8FA.js → use-id-vOr8PRTG.js} +1 -1
- package/src/client/dist/pwa/assets/{use-is-mobile-DpKI3XMy.js → use-is-mobile-CJfSpTHx.js} +1 -1
- package/src/client/dist/pwa/assets/{use-tours-CDdnvIaG.js → use-tours-CjASQcG5.js} +1 -1
- package/src/client/dist/pwa/assets/{workspace-templates-C88VmFdQ.js → workspace-templates-BxYxJt3S.js} +1 -1
- package/src/client/dist/pwa/assets/{xml-BAmdYarn.js → xml-B1UujXdS.js} +1 -1
- package/src/client/dist/pwa/assets/{yaml-RQqNMXWh.js → yaml-mHN8kNgU.js} +1 -1
- package/src/client/dist/pwa/index.html +5 -5
- package/src/client/dist/pwa/sw.js +1 -1
- package/src/client/dist/pwa/assets/ActivityFeed-DeJ0V6CW.js +0 -8
- package/src/client/dist/pwa/assets/MainLayout-D3zfT61Y.js +0 -2
- package/src/client/dist/pwa/assets/editor-BJU3Xb3h.css +0 -1
- package/src/client/dist/pwa/assets/editor.api-P-eJRcVK.js +0 -413
- package/src/client/dist/pwa/assets/editor.worker-iO5iN0DB.js +0 -33
- package/src/client/dist/pwa/assets/format-CX6Cv1cD.css +0 -1
- package/src/client/dist/pwa/assets/format-CeidAPFn.js +0 -435
- package/src/client/dist/pwa/assets/i18n-KVkTJG-4.js +0 -1
- package/src/client/dist/pwa/assets/index-0wtBh1Xt.css +0 -1
- package/src/client/dist/pwa/assets/index-DsaWUT_Z.js +0 -20
- package/src/client/dist/pwa/assets/monaco-contributions-Cb0afGfW.css +0 -1
- package/src/client/dist/pwa/assets/monaco-contributions-D2YXqNaH.js +0 -51
- package/src/client/dist/pwa/assets/render-chat-markdown-CE5RIL0s.js +0 -69
|
@@ -8,10 +8,10 @@ KOBO_WORKSPACE_ID — id Kōbō del workspace (stabile dopo rinomina)
|
|
|
8
8
|
KOBO_WORKSPACE_NAME — nome visualizzato del workspace
|
|
9
9
|
KOBO_FORGE — forge risolta: github / gitlab / none
|
|
10
10
|
KOBO_PR_NUMBER — numero della PR/MR sulla forge risolta (vuoto se nessuna aperta)`,"settings.changeSourceBranchScript.placeholder":`#!/usr/bin/env bash
|
|
11
|
-
# il tuo script — usa $KOBO_NEW_BASE / $KOBO_OLD_BASE / $KOBO_WORKING_BRANCH …`,"settings.changeSourceBranchScript.resetDefault":`Ripristina il predefinito Kōbō`,"settings.changeSourceBranchScript.replaceConfirmTitle":`Ripristinare lo script?`,"settings.changeSourceBranchScript.replaceConfirm":`Le tue modifiche verranno sostituite dallo script predefinito di Kōbō. Continuare?`,"settings.cleanupScriptHint":`Script di shell eseguito nel worktree dopo ogni sessione dell'agente. In modalità auto-loop viene eseguito solo quando tutte le attività sono completate. Lascia vuoto per disattivare.`,"settings.cleanupScriptPlaceholder":`es. eliminare file temporanei, fermare container…`,"settings.cleanupScriptMode":`Quando eseguire`,"settings.cleanupScriptMode.idle":`Dopo ogni sessione — anche se restano attività`,"settings.cleanupScriptMode.noTasks":`Solo quando non resta nessuna attività Kōbō`,"settings.cleanupScriptOnlyOnChanges":`Eseguire solo se file sono stati modificati, aggiunti o eliminati`,"settings.cleanupScriptMode.inherit":`Eredita l'impostazione globale`,"settings.taskPromptTemplate":`Prompt di attività`,"settings.taskPromptTemplatePlaceholder":`Prompt inserito automaticamente nella descrizione dell'attività…`,"settings.taskPromptTemplateHint":`Iniettato automaticamente nella descrizione dell'attività nella pagina di creazione quando questo progetto è selezionato. Se non viene modificato, viene sostituito al cambio di progetto; appena lo modifichi, il tuo testo viene mantenuto.`,"settings.setupScriptPlaceholder":`npm install`,"settings.setupScriptHint":`Eseguito con bash nel worktree dopo la creazione, prima dell'avvio dell'agente. Nessun shebang necessario. In caso di errore, il workspace viene impostato su errore. Timeout: 5 minuti.`,"settings.e2e.title":`Test E2E`,"settings.e2e.framework":`Framework`,"settings.e2e.frameworkNone":`Nessuno`,"settings.e2e.frameworkOther":`Altro`,"settings.e2e.skill":`Skill (opzionale)`,"settings.e2e.skillPlaceholder":`es. cypress-tester`,"settings.e2e.prompt":`Linee guida personalizzate (opzionale)`,"settings.e2e.promptPlaceholder":`es. usare il pattern page-object, mirare a data-testid`,"settings.e2e.helpText":`Quando configurato, l'agente di grooming auto-loop inserisce sotto-task E2E per funzionalità UI.`,"settings.finalization.title":`Finalizzazione dell'auto-loop`,"settings.finalization.helpText":`Opzionale: un prompt che l'agente esegue come ultima iterazione dell'auto-loop. Tipicamente usato per controlli di qualità finali (lint, typecheck, test). La fase di grooming creerà un task con prefisso [FINAL] che userà questo prompt.`,"settings.finalization.prompt":`Prompt di finalizzazione`,"settings.finalization.promptPlaceholder":`es. Esegui npm run lint e npm test, poi marca questo task come fatto.`,"settings.editorCommand":`Comando editor`,"settings.editorCommandPlaceholder":`code, phpstorm, subl, vim...`,"settings.editorCommandHint":`Comando per aprire il worktree nel proprio editor. Il percorso del worktree viene passato come argomento.`,"settings.fileManagerCommand":`Comando file manager`,"settings.fileManagerCommandPlaceholder":`xdg-open, open, nautilus, dolphin, explorer...`,"settings.fileManagerCommandHint":`Comando per aprire il worktree nel proprio file manager. Il percorso del worktree viene passato come argomento. Lascia vuoto per nascondere il pulsante.`,"settings.terminalCommand":`Comando del terminale`,"settings.terminalCommandHint":`Comando per avviare il terminale nel worktree. Segnaposto {path} opzionale per la directory.`,"settings.terminalCommandPlaceholder":`kitty · alacritty · gnome-terminal --working-directory={path}`,"settings.mcpSelection":`Selezione MCP Claude`,"settings.mcpAutoSelect":`Auto (primo MCP attivo corrispondente)`,"settings.notionMcp":`Chiave MCP Notion`,"settings.sentryMcp":`Chiave MCP Sentry`,"settings.mcpSelectionHint":`Le voci attive vengono lette da ~/.claude.json. Lascia Auto per usare il comportamento predefinito.`,"settings.configuredProjects":`Progetti configurati`,"settings.noProjects":`Nessun progetto configurato`,"settings.addProject":`Aggiungi progetto`,"settings.copyFrom":`Copia impostazioni da`,"settings.copyFromPlaceholder":`(nessuno — parti dai valori predefiniti)`,"settings.copyFromHint":`Copia tutte le impostazioni tranne path, nome e branch sorgente.`,"settings.copyFromConfirmTitle":`Sovrascrivere i valori attuali?`,"settings.copyFromConfirm":`Sovrascriverà i valori del modulo con le impostazioni di "{project}". Continuare?`,"settings.newProject":`Nuovo progetto`,"settings.editProject":`Modifica progetto`,"help.title":`Aiuto`,"help.tours":`Tour guidati`,"help.steps":`{n} passaggio | {n} passaggi`,"help.markAllSeen":`Segna tutti come visti`,"help.markAllSeenHint":`Segna i tour attuali come visti senza avviarli.`,"help.resetAll":`Reimposta tutti i tour`,"help.resetAllHint":`Avvia ora il tour iniziale; ogni schermata ripeterà il proprio alla prossima apertura.`,"help.status.unseen":`non visto`,"help.status.partial":`in parte`,"help.status.seen":`visto`,"help.replayThis":`Ripeti il tour di questa schermata`,"tours.next":`Avanti`,"tours.prev":`Indietro`,"tours.done":`Fine`,"tours.exitConfirm":`Uscire dal tour guidato? Non ripartirà da solo; puoi ripeterlo in qualsiasi momento dal menu Aiuto.`,"tours.home.title":`Orientarsi`,"tours.home.list.title":`Workspace`,"tours.home.list.description":`Ogni missione vive qui con il suo stato. I badge segnalano una CI fallita, una review che chiede modifiche o una PR pronta al merge.`,"tours.home.create.title":`Creare un workspace`,"tours.home.create.description":`Un workspace è un worktree Git, un branch e una sessione di agente per un compito.`,"tours.home.search.title":`Ricerca`,"tours.home.search.description":`Filtra l'elenco per nome. L'icona di ricerca in alto apre la ricerca full-text nelle conversazioni degli agenti.`,"tours.home.dashboard.title":`Cruscotto`,"tours.home.dashboard.description":`Una tabella con tutti i workspace attivi: stato, attenzione, PR, diff, attività e affidabilità dei motori.`,"tours.home.health.title":`Stato e changelog`,"tours.home.health.description":`Controlla database, runtime e agenti attivi. Il pulsante accanto elenca cosa è cambiato in ogni versione.`,"tours.home.settings.title":`Impostazioni`,"tours.home.settings.description":`Motori, integrazioni, automazione, worktree e progetti. Ora crea il tuo primo workspace.`,"tours.create.title":`Creare un workspace`,"tours.create.project.title":`Progetto e branch`,"tours.create.project.description":`Scegli il progetto e il branch da cui parte il worktree.`,"tours.create.mission.title":`Missione`,"tours.create.mission.description":`Descrivi il compito, o importalo da una pagina Notion o da una issue Sentry.`,"tours.create.template.title":`Template`,"tours.create.template.description":`Applica un preset salvato, o salva questo modulo come preset. «Duplica» su una scheda workspace apre questo modulo precompilato.`,"tours.create.engine.title":`Motore e modello`,"tours.create.engine.description":`Claude Code o Codex, il modello, lo sforzo di ragionamento e cosa l'agente può fare senza chiedere.`,"tours.create.brainstorm.title":`Brainstorm su un altro modello`,"tours.create.brainstorm.description":`Esegui la prima sessione di brainstorming su un altro modello, poi torna a quello principale per le iterazioni.`,"tours.create.autoloop.title":`Auto-loop`,"tours.create.autoloop.description":`Lascia che l'agente concateni le sessioni finché ogni compito non è completato, o finché si blocca.`,"tours.create.comparison.title":`Confrontare due motori`,"tours.create.comparison.description":`Crea due workspace gemelli sullo stesso compito e confronta commit, compiti e attività.`,"tours.workspace.sessions.title":`Sessioni del workspace`,"tours.workspace.sessions.description":`Premi il titolo per scegliere, creare o rinominare una sessione, oppure copiarne l’identificativo.`,"tours.workspace.actions.title":`Azioni del workspace`,"tours.workspace.actions.description":`Il menu ⋯ raccoglie la vista affiancata, la palette dei comandi, il pannello laterale e la visita guidata.`,"tours.workspace.title":`Dentro un workspace`,"tours.workspace.chat.title":`Conversazione`,"tours.workspace.chat.description":`L'output dell'agente, in diretta: messaggi, chiamate agli strumenti, domande ed errori.`,"tours.workspace.input.title":`Parlare con l'agente`,"tours.workspace.input.description":`Invia un messaggio, usa gli slash command, detta a voce o allega file.`,"tours.workspace.selectors.title":`Impostazioni di sessione`,"tours.workspace.selectors.description":`Apri Configura per regolare modello, ragionamento, autorizzazioni e auto-loop. Qui è indicato anche il motore attuale.`,"tours.workspace.status.title":`Stato`,"tours.workspace.status.description":`Lo stato della sessione corrente; fermala qui quando serve.`,"tours.workspace.git.title":`Git`,"tours.workspace.git.description":`Commit, diff, push, rebase e la PR di questo branch.`,"tours.workspace.tasks.title":`Attività`,"tours.workspace.tasks.description":`Cosa l'agente prevede di fare, e i criteri di accettazione che deve rispettare.`,"tours.workspace.timeline.title":`Cronologia`,"tours.workspace.timeline.description":`Ogni sessione di questo workspace; aprine una precedente per rileggerla.`,"tours.workspace.subagents.title":`Sub-agenti`,"tours.workspace.subagents.description":`Segui i sub-agenti avviati dall'agente, con il loro progresso in tempo reale.`,"tours.workspace.documents.title":`Documenti`,"tours.workspace.documents.description":`Piani e file scritti dall'agente, consultabili senza lasciare la chat.`,"tours.workspace.schedule.title":`Pianificazione`,"tours.workspace.schedule.description":`Wake-up e cron che riavviano l'agente più tardi.`,"tours.workspace.handoff.title":`Continua con un contesto nuovo`,"tours.workspace.handoff.description":`Conversazione lunga? Avvia qui una nuova sessione o usa «Cambia LLM». Il lavoro corrente si interrompe immediatamente e la nuova sessione riprende automaticamente nello stesso workspace. Il riepilogo del passaggio di consegne è facoltativo: disattivalo se il LLM attuale ha esaurito la quota. Avanzamento, rapporto e collegamento alla sessione precedente appaiono sotto questo pulsante.`,"tours.workspace.terminal.title":`Terminale`,"tours.workspace.terminal.description":`Una shell dentro il worktree, senza lasciare Kōbō.`,"tours.gitPr.title":`Pull request`,"tours.gitPr.panel.title":`Stato della PR`,"tours.gitPr.panel.description":`Risultato della CI, decisione della review e reviewer, aggiornati ogni 30 secondi.`,"tours.gitPr.actions.title":`Azioni Git`,"tours.gitPr.actions.description":`Push, pull, rebase o cambio del branch di base. Durante un conflitto, un pulsante lascia che l'agente lo risolva.`,"tours.gitPr.attention.title":`Badge di attenzione`,"tours.gitPr.attention.description":`La scheda mostra una CI fallita, modifiche richieste o una PR pronta al merge.`,"tours.settings.title":`Impostazioni`,"tours.settings.engines.title":`Motori e modelli`,"tours.settings.engines.description":`Modelli, permessi predefiniti e limiti dei tentativi automatici.`,"tours.settings.integrations.title":`Integrazioni`,"tours.settings.integrations.description":`Connessioni Notion e Sentry e credenziali Bitbucket. GitHub e GitLab usano la sessione CLI locale.`,"tours.settings.automation.title":`Automazione`,"tours.settings.automation.description":`Script di setup e cleanup, lifecycle hook, template di prompt, template di workspace e skill.`,"tours.settings.worktrees.title":`Worktrees`,"tours.settings.worktrees.description":`Dove vivono i worktree, per quanto tempo conservare quelli già uniti, e la pulizia automatica.`,"tours.settings.projects.title":`Progetti`,"tours.settings.projects.description":`I progetti registrati e le loro impostazioni specifiche per progetto.`,"tours.settings.misc.title":`Generale, voce, notifiche, esportazione`,"tours.settings.misc.description":`Lingua, accesso alla rete, dettatura, suoni e notifiche del browser, e un export completo delle tue impostazioni.`,"tours.dashboard.title":`Cruscotto`,"tours.dashboard.overview.title":`Panoramica`,"tours.dashboard.overview.description":`Tutti i workspace attivi in una tabella; clicca su una riga per aprirla.`,"tours.dashboard.reliability.title":`Affidabilità dei motori`,"tours.dashboard.reliability.description":`Sessioni, errori e durate per motore e modello.`,"tours.health.title":`Stato`,"tours.health.checks.title":`Controlli`,"tours.health.checks.description":`Ambiente, database, runtime, workspace e sessioni.`,"tours.health.active.title":`Stato attivo`,"tours.health.active.description":`I back-off di quota, i wake-up in attesa e gli auto-loop in corso in questo momento.`,"tours.search.title":`Ricerca`,"tours.search.input.title":`Query`,"tours.search.input.description":`Corrisponde ai nomi dei workspace e alle conversazioni degli agenti.`,"tours.search.archived.title":`Archiviati`,"tours.search.archived.description":`Includi i workspace archiviati nei risultati.`,"tours.changelog.title":`Novità`,"tours.changelog.list.title":`Versioni`,"tours.changelog.list.description":`Cosa è cambiato in ogni versione, la più recente per prima.`,"settings.projectGroup.identity":`Identità`,"settings.projectGroup.defaults":`Valori predefiniti`,"settings.projectGroup.prompts":`Prompt`,"settings.projectGroup.scripts":`Script`,"settings.projectPath":`Percorso del progetto`,"settings.projectPathPlaceholder":`/percorso/del/progetto`,"settings.displayName":`Nome visualizzato`,"settings.displayNamePlaceholder":`Il mio progetto`,"settings.defaultSourceBranch":`Branch sorgente predefinito`,"settings.defaultModel.project":`Modello predefinito`,"settings.skipPermissions.project":`Salta le richieste di permesso`,"settings.prPromptTemplate.project":`Template del prompt PR`,"settings.prPromptPlaceholder.project":`Istruzioni specifiche del progetto per la creazione di PR...`,"settings.reviewPromptTemplate.project":`Template del prompt di revisione`,"settings.ciFixPromptTemplate.project":`Template del prompt «Ripara CI»`,"settings.gitConventions.project":`Convenzioni Git (per progetto)`,"settings.gitConventionsEmpty":`Lascia vuoto per usare le convenzioni globali.`,"settings.notionStatus":`Stato ticket Notion`,"settings.notionStatusProperty":`Nome della proprietà`,"settings.notionStatusPropertyPlaceholder":`État, Status...`,"settings.notionInProgressStatus":`Valore da impostare`,"settings.notionInProgressStatusPlaceholder":`In corso, In progress...`,"settings.notionStatusHint":`Quando un workspace viene creato con un ticket Notion, la proprietà specificata viene impostata a questo valore. Entrambi i campi sono obbligatori. Lasciare vuoto per disattivare.`,"settings.notionAssignee":`Assegnazione Notion`,"settings.notionAssigneeHint":`Quando un workspace viene creato con un ticket Notion, l'utente autenticato sull'MCP Notion viene aggiunto a questa proprietà People — solo se non ha già un assegnatario. Lasciare vuoto per disattivare.`,"settings.notionAssigneeProperty":`Nome della proprietà`,"settings.notionAssigneePropertyPlaceholder":`Sviluppatori, Assignees...`,"settings.notionUserId":`Il tuo UUID Notion`,"settings.notionUserIdPlaceholder":`135d872b-594c-8126-9604-00024ad6e5b5`,"settings.notionUserIdHint":`Seleziona il tuo account nella lista. Notion rifiuta l'assegnazione di bot nelle proprietà People — questo campo è obbligatorio per attivare l'auto-assegnazione.`,"settings.notionUsersRefresh":`Aggiorna`,"settings.notionUsersLoading":`Caricamento utenti Notion…`,"settings.notionUsersLoadFailed":`Impossibile caricare la lista: {error}`,"settings.notionUsersManualFallback":`Lista non disponibile — incolla il tuo UUID Notion manualmente.`,"settings.devServer":`Server di sviluppo`,"settings.devServerStart":`Script di avvio`,"settings.devServerStartPlaceholder":`npm run dev`,"settings.devServerStop":`Script di arresto`,"settings.devServerStopPlaceholder":`Opzionale — il processo verrà terminato automaticamente se vuoto`,"settings.selectProject":`Seleziona un progetto o aggiungine uno nuovo`,"settings.projectPathRequired":`Il percorso del progetto è obbligatorio.`,"settings.useGlobal":`Usa globale`,"settings.saved":`Impostazioni globali salvate.`,"settings.unsavedChanges":`Modifiche non salvate`,"settings.nav.general":`Generale`,"settings.nav.agents":`Agenti`,"settings.nav.skills":`Skills`,"settings.nav.prompts":`Prompt`,"settings.nav.scripts":`Script`,"settings.nav.workspaceTemplates":`Template di workspace`,"workspaceTemplates.title":`Template di workspace`,"workspaceTemplates.hint":`Preimpostazioni salvate del modulo di creazione. Scegline una nella pagina di creazione; per modificarla, caricala lì, regola e salvala di nuovo con lo stesso nome.`,"workspaceTemplates.empty":`Nessun template per ora. Compila il modulo di creazione e usa «Salva come template».`,"workspaceTemplates.anyProject":`Qualsiasi progetto`,"workspaceTemplates.rename":`Rinomina`,"workspaceTemplates.renameTitle":`Rinomina il template`,"workspaceTemplates.deleteConfirm":`Eliminare il template «{name}»?`,"workspaceTemplates.deleted":`Template «{name}» eliminato`,"settings.nav.notion":`Notion`,"settings.nav.forge":`Forge`,"settings.bitbucketCommunity":`Bitbucket Community`,"settings.bitbucketCommunityHint":`Le credenziali restano locali e sono usate solo da bkt.`,"settings.bitbucketUsername":`E-mail Atlassian`,"settings.bitbucketToken":`Token API Bitbucket`,"settings.nav.sentry":`Sentry`,"settings.nav.voice":`Voce`,"settings.nav.notifications":`Notifiche`,"settings.nav.worktrees":`Worktrees`,"settings.nav.export":`Esporta`,"settings.help.general":`Lingua, accesso alla rete e i valori predefiniti ereditati da ogni progetto.`,"settings.help.agents":`Modelli e permessi predefiniti, e limiti dei tentativi automatici.`,"settings.help.skills":`Quali suite di skill l'agente è invitato a usare.`,"settings.help.prompts":`Istruzioni dopo l’apertura di una PR/MR, per revisioni del codice, correzioni CI e finalizzazione.`,"settings.help.scripts":`Script di setup, pulizia e cambio del branch sorgente, più gli hook del ciclo di vita.`,"settings.help.notion":`Importa una pagina Notion come fonte di verità di un workspace.`,"settings.help.sentry":`Crea un workspace da una issue Sentry.`,"settings.help.forge":`Credenziali Bitbucket. GitHub e GitLab usano la CLI gh/glab autenticata; scegli la forge per progetto.`,"settings.help.voice":`Dettatura e push-to-talk.`,"settings.help.notifications":`Suoni, notifiche del browser e promemoria delle domande senza risposta.`,"settings.help.worktrees":`Dove vengono creati i worktree, conservazione ed eliminazione automatica.`,"settings.help.projects":`Progetti registrati e le loro impostazioni specifiche per progetto.`,"settings.help.templates":`Template di prompt espansi nella casella di input della chat.`,"settings.help.workspaceTemplates":`Preset salvati del modulo di creazione.`,"settings.help.export":`Esporta e importa tutte le impostazioni come JSON.`,"settings.openNav":`Apri la navigazione`,"settings.saveError":`Errore durante il salvataggio delle impostazioni.`,"settings.projectSaved":`Progetto salvato.`,"settings.projectSaveError":`Errore durante il salvataggio del progetto.`,"settings.projectDeleted":`Progetto eliminato.`,"settings.deleteProjectConfirmTitle":`Eliminare il progetto?`,"settings.deleteProjectConfirmMessage":`Rimuovere «{name}» dai tuoi progetti? Questo elimina solo le impostazioni Kōbō — il codice e i worktree restano intatti.`,"settings.projectDeleteError":`Errore durante l'eliminazione del progetto.`,"templates.title":`Template`,"templates.newTemplate":`Nuovo template`,"templates.editTemplate":`Modifica template`,"templates.deleteTemplate":`Elimina template`,"templates.deleteConfirm":`Eliminare il template '/{slug}'?`,"templates.deleteConfirmMessage":`Questa azione non può essere annullata.`,"templates.slug":`Slug`,"templates.slugHint":`Minuscole, cifre, trattini. Max 64 caratteri.`,"templates.slugInvalid":`Lo slug può contenere solo minuscole, cifre e trattini`,"templates.slugDuplicate":`Un template con questo slug esiste già`,"templates.description":`Descrizione`,"templates.descriptionHint":`Etichetta breve mostrata nel dropdown.`,"templates.descriptionRequired":`La descrizione è obbligatoria`,"templates.contentRequired":`Il contenuto è obbligatorio`,"templates.content":`Contenuto`,"templates.contentHint":`Contenuto del template. Usa {variable_name} per le sostituzioni.`,"templates.availableVars":`Variabili disponibili`,"templates.filePath":`File: {path}`,"templates.empty":`Nessun template ancora.`,"templates.createFailed":`Creazione del template fallita`,"templates.updateFailed":`Aggiornamento del template fallito`,"templates.deleteFailed":`Eliminazione del template fallita`,"templates.save":`Salva`,"templates.create":`Crea`,"templates.reloadDefaults":`Ricarica i template predefiniti`,"templates.reloadDefaultsHint":`Aggiunge solo i template predefiniti mancanti. I template esistenti (modificati o meno) non vengono mai sovrascritti.`,"templates.reloadDefaultsConfirmMessage":`Questa azione aggiungerà alla lista i template predefiniti mancanti. I template esistenti — comprese le tue personalizzazioni — non saranno toccati. Se vuoi ripristinare un template predefinito che hai modificato, eliminalo prima e rilancia questa azione.`,"templates.reloadDefaultsSuccess":`{added} aggiunto/i, {kept} mantenuto/i`,"templates.reloadDefaultsFailed":`Ricarica dei template predefiniti fallita`,"templates.resetToDefault":`Ripristina predefinito`,"templates.resetConfirmTitle":`Ripristinare il template al predefinito?`,"templates.resetConfirmMessage":`Sovrascrive le tue modifiche locali a /{slug} con il predefinito. Non annullabile.`,"templates.resetSuccess":`Template /{slug} ripristinato al predefinito`,"templates.resetFailed":`Ripristino del template non riuscito`,"chatInput.dropdownSkills":`Skill Claude`,"chatInput.dropdownKobo":`Comandi Kōbō`,"chatInput.dropdownTemplates":`Template`,"documents.title":`Documenti`,"documents.empty":`Nessun documento trovato`,"documents.refresh":`Aggiorna`,"documents.back":`Indietro`,"documents.loadFailed":`Caricamento del documento fallito`,"git.title":`Git`,"git.outputDialogTitle":`Git ha segnalato un errore`,"git.statsFailed":`Impossibile leggere lo stato git`,"git.section.repository":`Repository`,"git.section.changes":`Modifiche`,"git.section.pullRequest":`Pull request`,"git.section.actions":`Azioni`,"git.actions.more":`Altre`,"git.localOnly":`solo locale`,"git.pushed":`pushed`,"git.unpushed":`{count} non pushati`,"git.commits":`{count} commit | {count} commit`,"git.commits.loading":`Caricamento commit…`,"git.commits.empty":`Nessun commit su questo branch`,"git.commits.pushed":`Pushato`,"git.commits.unpushed":`Non pushato`,"git.commits.clickToAppend":`clicca per aggiungere SHA alla chat`,"git.commits.diffThisCommit":`Diff di questo commit (vs parent)`,"git.compareCommits":`Confronta commit…`,"git.files":`{count} file | {count} file`,"git.staged":`{count} staged`,"git.modified":`{count} modificati`,"git.untracked":`{count} non tracciati`,"git.workingTreeEmpty":`Nessuna modifica non committata`,"git.fileStaged":`In stage`,"git.fileModified":`Modificato`,"git.fileUntracked":`Non tracciato`,"git.push":`Push`,"git.forcePush":`Force push`,"git.forcePushToggle":`Force push (--force-with-lease)`,"git.pushBlockedByOperation":`Prima completa o annulla l'operazione {operation} in corso`,"git.pushUpToDate":`Niente da inviare: il branch è già aggiornato su origin`,"git.forcePushHint":`Più sicuro di --force: il push viene rifiutato se il remoto ha commit che non hai visto. Da usare dopo un rebase o amend di commit già pushati.`,"git.branchForcePushed":`Branch force-pushed`,"git.pull":`Pull`,"git.pullNoUpstream":`Nessun upstream per questo branch — fai push prima per abilitare Pull.`,"git.sync":`Sync`,"git.createPrNoRemote":`Push del branch prima`,"git.viewRequest":`Visualizza {request}`,"git.createRequest":`Crea {request}`,"git.changeRequestBase":`Cambia il branch base della {request}`,"git.forgeCliMissing":`{cli} non è installato — installalo per usare le funzioni {request}`,"git.forgeNotAuthenticated":`Non autenticato — esegui {cli} auth login`,"settings.forge":`Forge`,"settings.forge.auto":`Rilevamento automatico`,"settings.forge.github":`GitHub`,"settings.forge.gitlab":`GitLab`,"settings.forge.bitbucketCommunity":`Bitbucket Community (bkt)`,"settings.forge.none":`Nessuna`,"git.pullConfirmTitle":`Pull della branch?`,"git.pullConfirmMessage":`Pull {branch} dal remoto (solo fast-forward).`,"git.branchPulled":`Branch aggiornata`,"git.pullFailed":`Pull fallito`,"git.renameBranch":`Rinomina branch`,"git.renameBranchPrompt":"Rinomina `{branch}` in:","git.renameBranchSuccess":"Branch rinominato in `{branch}`","git.renameBranchFailed":`Rinomina branch fallita`,"git.renameBranchExists":"Il branch `{branch}` esiste già localmente o su origin","git.diff":`Diff`,"git.diffReview":`Diff`,"git.diffReviewTooltip":`Apre il visualizzatore diff in modalità Review — commenti inline + invio batch all'agente`,"pr.baseChanged":`Base della PR cambiata: {oldBase} → {newBase}`,"pr.openPr":`Apri PR`,"pr.openWorkspace":`Apri il workspace`,"pr.dismiss":`Chiudi`,"git.rebase":`Rebase`,"git.rebaseConfirmTitle":`Rebase del branch?`,"git.rebaseConfirmMessage":`Rebase su {branch}. Potrebbero verificarsi conflitti.`,"git.rebaseSuccess":`Rebase completato`,"git.rebaseFailed":`Rebase fallito`,"git.merge":`Merge`,"git.fetch":`Fetch`,"git.fetchSuccess":`Repository aggiornato`,"git.fetchFailed":`Fetch non riuscito: {error}`,"git.mergeConfirmTitle":`Fondere il branch?`,"git.mergeConfirmMessage":`Fonde {branch} in questo branch. Possibili conflitti.`,"git.mergeSuccess":`Merge completato`,"git.mergeFailed":`Merge fallito`,"git.commitFailed":`Commit fallito`,"git.commitChanges":`Esegui commit delle modifiche`,"git.commitDialogTitle":`Esegui commit delle modifiche non salvate`,"git.commitDialogDescription":`Inserisci il tuo messaggio o chiedi all’agente di esaminare e creare il commit.`,"git.commitMessage":`Messaggio di commit`,"git.commitManual":`Esegui commit`,"git.commitWithAgent":`Chiedi all’agente`,"git.commitAgentSuccess":`Richiesta di commit inviata all’agente`,"git.discardFailed":`Scarto fallito`,"git.conflictTitleMerge":`Conflitti di merge rilevati`,"git.conflictTitleRebase":`Conflitti di rebase rilevati`,"git.operationPausedTitle":`Operazione Git da continuare`,"git.operationPausedSubtitle":`Nessun file è in conflitto. Git attende solo che tu continui l’operazione.`,"git.conflictSubtitle":`{count} file con conflitti. Scegli come continuare.`,"git.conflictAbortConfirmTitle":`Annullare la risoluzione del conflitto?`,"git.conflictAbortConfirmMessage":`Tutto ciò che hai risolto in questo {op} viene scartato e il worktree torna allo stato precedente. È irreversibile.`,"git.conflictAbort":`Annulla`,"git.conflictContinue":`Continua`,"git.conflictContinued":`Operazione Git continuata`,"git.conflictResolveWithAgent":`Chiedi all'agente di risolvere`,"git.conflictAborted":`Operazione annullata`,"git.conflictHandoffSuccess":`L'agente sta risolvendo i conflitti`,"git.dirtyTitleRebase":`Modifiche non committate bloccano il rebase`,"git.dirtyTitleMerge":`Modifiche non committate bloccano il merge`,"git.dirtyTitlePull":`Modifiche non committate bloccano il pull`,"git.dirtySubtitle":`{modified} modificato/i, {staged} in stage, {untracked} non tracciato/i. Scegli come procedere.`,"git.dirtyStash":`Stash e riprova`,"git.dirtyCommit":`Commit prima`,"git.dirtyCommitPlaceholder":`Messaggio di commit`,"git.dirtyCommitConfirm":`Commit e riprova`,"git.dirtyDiscard":`Scarta le modifiche`,"git.dirtyDiscardConfirmTitle":`Scartare tutte le modifiche non committate?`,"git.dirtyDiscardConfirmMessage":`Le modifiche tracciate andranno perse (git reset --hard). I file non tracciati vengono mantenuti. Azione irreversibile.`,"git.pushConfirmTitle":`Push del branch?`,"git.pushConfirmMessage":`Push di {branch} al remoto.`,"git.pushConfirmMessagePrefix":`Push del branch`,"git.pushConfirmMessageSuffix":`al remoto.`,"git.changePrBaseTitle":`Cambiare branch base`,"git.changePrBaseMessage":`Inserire il nuovo branch destinazione per la {request}.`,"git.changePrBaseSuccess":`Branch base della {request} aggiornato`,"git.changePrBaseFailed":`Impossibile cambiare il branch base della {request}`,"git.mergeRequest":`Unisci {request}`,"git.mergeRequestConfirmTitle":`Unire {request}?`,"git.mergeRequestConfirmMessage":`Questa azione unisce la {request} aperta nel suo branch di destinazione.`,"git.mergeRequestSuccess":`{request} unita`,"git.mergeRequestFailed":`Impossibile unire {request}`,"git.deleteRemoteBranch":`Elimina branch remoto`,"git.deleteRemoteBranchTitle":`Eliminare il branch remoto?`,"git.deleteRemoteBranchMessage":`La richiesta è stata unita. Eliminare il branch remoto {branch}?`,"git.deleteRemoteBranchSuccess":`Branch remoto {branch} eliminato`,"git.deleteRemoteBranchFailed":`Impossibile eliminare il branch remoto`,"git.changeSourceBranch":`Cambia il branch di origine`,"git.changeSourceBranchTitle":`Cambia il branch di origine`,"git.changeSourceBranchMessage":`Scegli il nuovo branch di origine. Il branch di lavoro verrà ricostruito sopra di esso.`,"git.changeSourceBranchDone":`Branch di origine cambiato in {branch}`,"git.changeSourceBranchAligned":`Branch di origine cambiato in {branch} (il branch non aveva commit propri)`,"git.changeSourceBranchTooMany":`Il branch ha troppi commit propri ({n}) — esegui il rebase manualmente`,"git.changeSourceBranchDirty":`Esegui commit o stash delle modifiche prima di cambiare il branch di origine`,"git.changeSourceBranchAgentRunning":`Ferma l'agente prima di cambiare il branch di origine`,"git.changeSourceBranchErrorTitle":`Cambio branch di origine fallito`,"git.changeSourceBranchErrorOngoing":`Un'operazione {op} è ancora in corso sul worktree. Annullala per tornare a uno stato pulito.`,"git.changeSourceBranchErrorAbort":`Annulla l'operazione`,"git.changeSourceBranchLoading":`Cambio del branch di origine…`,"git.changeSourceForcePushTitle":`Eseguire il force-push del branch riscritto?`,"git.changeSourceForcePushMessage":`La cronologia del branch è stata riscritta. Eseguire il push al remoto con --force-with-lease?`,"git.changeSourceForcePushDone":`Force-push del branch eseguito`,"git.openEditor":`Apri nell'editor`,"git.openEditorFailed":`Impossibile aprire l'editor`,"git.branchPushed":`Branch pushato`,"git.pushFirst":`Il branch non è sul remoto. Fai Push prima.`,"git.unpushedCommits":`I commit locali non sono pushati. Fai Push prima.`,"git.from":`da`,"git.aheadBehindTooltip":`{ahead} commits avanti, {behind} indietro rispetto a {source}`,"git.divergence.title":`Divergenza del branch`,"git.divergence.subtitle":`vs {source}`,"git.divergence.ahead":`↑ {count} avanti`,"git.divergence.behind":`↓ {count} indietro`,"git.divergence.empty.ahead":`Nessun commit avanti.`,"git.divergence.empty.behind":`Nessun commit indietro.`,"git.divergence.close":`Chiudi`,"git.divergence.loading":`Caricamento commit…`,"git.divergence.failed":`Impossibile caricare la divergenza`,"git.divergence.retry":`Riprova`,"git.prCreated":`{request} #{n} creata`,"git.pr.author":`Autore`,"git.pr.reviewers":`Revisori`,"git.pr.assignees":`Assegnati`,"git.pr.labels":`Etichette`,"git.pr.changesRequestedBadge":`Modifiche richieste`,"git.pr.approvedBadge":`Approvata`,"git.pr.ci.passed":`CI OK`,"git.pr.ci.failed":`CI fallita`,"git.pr.ci.pending":`CI in corso`,"git.pr.ci.failedCount":`{n} falliti`,"git.pr.ci.pendingCount":`{n} in corso`,"git.pr.ci.passedCount":`{n} OK`,"git.pr.ci.skippedCount":`{n} saltati`,"git.pr.ci.showPassed":`Mostra {n} job riusciti`,"git.pr.ci.hidePassed":`Nascondi i job riusciti`,"toast.prChangesRequested":`Sono state richieste modifiche per la PR #{n}`,"toast.prApproved":`La PR #{n} è stata approvata`,"toast.prReadyToMerge":`La PR #{n} è pronta per il merge`,"toast.prCiFailed":`La CI della PR #{n} non è riuscita`,"toast.prCiRecovered":`La CI della PR #{n} è stata ripristinata`,"toast.prMergeConflict":`La PR #{n} ha conflitti di merge`,"toast.prMerged":`La PR #{n} è stata unita`,"devServer.title":`Server di sviluppo`,"devServer.noWorkspace":`Nessun workspace selezionato`,"devServer.notConfigured":`Non configurato —`,"devServer.goToSettings":`Impostazioni`,"devServer.logs":`Log`,"devServer.running":`In esecuzione`,"devServer.starting":`Avvio in corso`,"devServer.stopping":`Arresto in corso`,"devServer.error":`Errore`,"devServer.stopped":`Arrestato`,"devServer.unknown":`Sconosciuto`,"devServer.containers":`{count} container | {count} container`,"devServer.logDialog.title":`Log del server di sviluppo`,"devServer.logDialog.empty":`Nessun log disponibile`,"notion.title":`Notion`,"tasks.title":`Attività`,"notion.addTask":`Aggiungi task`,"notion.noUrl":`Nessun URL Notion`,"notion.subtasks":`{done}/{total} sottotask`,"notion.noTasks":`Nessun task`,"notion.newTask":`Nuovo task... (Invio per aggiungere, Esc per annullare)`,"acceptance.title":`Criteri di accettazione`,"acceptance.addCriterion":`Aggiungi criterio`,"acceptance.newCriterion":`Nuovo criterio... (Invio per aggiungere, Esc per annullare)`,"acceptance.empty":`Nessun criterio di accettazione`,"tasks.askProgress":`Chiedere all'agente di verificare il progresso`,"agentTodos.title":`Todo dell'agente`,"agentTodos.empty":`Nessun todo dell'agente`,"subagents.title":`Sub-agenti`,"subagents.empty":`Nessuna attività dei sub-agenti ancora`,"subagents.tools":`{count} strumenti`,"subagents.running":`In esecuzione: `,"stats.resetsAt":`Reset {value}`,"stats.usageBucket":`Bucket utilizzo {n}`,"quotaFooter.lastUpdated":`Ultimo aggiornamento: {time}`,"quotaFooter.empty":`Caricamento…`,"quotaFooter.popover.title":`Utilizzo Claude Code`,"quotaFooter.popover.refreshNow":`Aggiorna`,"quotaFooter.popover.resetsIn":`Reset alle {value}`,"quotaFooter.popover.unauthenticated":`Auth richiesta`,"quotaFooter.popover.unauthenticatedHint":`Esegui "claude" una volta per autenticarti.`,"quotaFooter.popover.error":`Errore`,"quotaFooter.bucket.fiveHour":`5 ore`,"quotaFooter.bucket.sevenDay":`7 giorni`,"agent.error.spawn_failed":`Impossibile avviare l'agente`,"agent.error.parse_error":`Impossibile analizzare un messaggio dell'agente`,"agent.error.rate_limit":`Limite di frequenza raggiunto`,"agent.error.resume_failed":`Sessione non trovata — avvio di una nuova sessione`,"agent.error.other":`Errore dell'agente`,"quotaBackoff.banner.title":`Ripresa automatica alle {time}`,"quotaBackoff.banner.transientTitle":`Ripresa automatica dopo l’interruzione alle {time}`,"quotaBackoff.resumeNow":`Riprendi ora`,"quotaBackoff.banner.tooltip":`Quota Claude esaurita. L'auto-loop riprenderà automaticamente quando la quota si reimposta alle {resets_at}.`,"quotaBackoff.banner.cancel":`Annulla ripresa`,"quotaBackoff.cancelled":`Ripresa automatica annullata — puoi riprendere manualmente in qualsiasi momento`,"rateLimitType.fiveHour":`Sessione 5h`,"rateLimitType.sevenDay":`Settimanale`,"tooltip.addTask":`Aggiungi task`,"tooltip.removeTask":`Rimuovi task`,"tooltip.addCriterion":`Aggiungi criterio`,"tooltip.removeCriterion":`Rimuovi criterio`,"tooltip.startDevServer":`Avvia server di sviluppo`,"tooltip.stopDevServer":`Arresta server di sviluppo`,"tooltip.closeDiffViewer":`Chiudi diff`,"tooltip.refreshLogs":`Aggiorna log`,"tooltip.closeDialog":`Chiudi`,"tooltip.refreshGitStats":`Aggiorna statistiche Git`,"tooltip.removeImage":`Rimuovi immagine`,"tooltip.sendMessage":`Invia messaggio`,"tools.title":`Strumenti`,"tools.runSetupScript":`Rieseguire script di setup`,"tools.runSetupScriptTooltip":`Eseguire lo script di setup del progetto nel worktree`,"tools.runSetupScriptConfirm":`Rieseguire lo script di setup in questo workspace? Gli artefatti esistenti potrebbero essere sovrascritti.`,"tools.runSetupScriptBusy":`Impossibile rieseguire il setup mentre l'agent sta lavorando.`,"tools.noSetupScript":`Nessun script di setup configurato —`,"tools.setupScriptSuccess":`Script di setup completato con successo.`,"tools.setupScriptFailed":`Script di setup fallito.`,"tools.openNotion":`Apri in Notion`,"tools.openSentry":`Apri in Sentry`,"tools.review":`Revisiona modifiche`,"tools.reviewTooltip":`Chiedi all'agente di rivedere le modifiche di questo branch`,"tools.reviewBusy":`Agente occupato — attendi che sia libero`,"tools.fixCi":`Ripara CI`,"tools.fixCiTooltip":`Chiedi all'agente di diagnosticare e correggere i job di CI in errore`,"tools.fixCiLaunched":`Azione «Ripara CI» inviata all'agente`,"tools.fixCiFailed":`Impossibile avviare l'azione «Ripara CI»`,"tools.openFileManager":`Apri nel file manager`,"tools.openFileManagerTooltip":`Apri la cartella del worktree nel tuo file manager configurato`,"tools.openFileManagerFailed":`Impossibile aprire il file manager`,"tools.openTerminal":`Apri nel terminale`,"tools.openTerminalTooltip":`Apri il worktree nel terminale configurato`,"tools.openTerminalFailed":`Impossibile aprire il terminale`,"review.title":`Avvia revisione`,"review.subtitle":`Chiedi all'agente di rivedere le modifiche e dare un feedback.`,"review.additionalInstructions":`Istruzioni aggiuntive (opzionale)`,"review.additionalInstructionsPlaceholder":`Aggiungi istruzioni specifiche per la revisione…`,"review.newSession":`Nuova sessione`,"review.newSessionHint":`Avvia una nuova sessione invece di continuare quella attuale.`,"review.newSessionRequired":`Impostazioni diverse o il ritorno automatico richiedono una nuova sessione.`,"review.returnToSession":`Torna alla sessione attuale dopo la review`,"review.returnToSessionHint":`Riprende questa sessione con il riepilogo finale del reviewer. Se disattivato, la conversazione continua nella sessione di review.`,"review.returnUnavailable":`La sessione attuale deve essere stata avviata per poter essere ripresa.`,"review.start":`Avvia revisione`,"review.cancel":`Annulla`,"review.launched":`Revisione avviata`,"review.failed":`Impossibile avviare la revisione`,"diff.title":`Diff`,"diff.side":`Affiancato`,"diff.inline":`In linea`,"diff.hideUnchanged":`Nascondi codice invariato`,"diff.showUnchanged":`Mostra codice invariato`,"diff.showUntracked":`Mostra file non tracciati`,"diff.hideUntracked":`Nascondi file non tracciati`,"diff.rollbackToRemote":`Ripristina alla versione remota`,"diff.rollbackConfirm":`Ripristinare {path} alla sua versione remota (origin)? Le modifiche locali a questo file andranno perse.`,"diff.rollbackConfirmOk":`Ripristina`,"diff.rollbackDone":`File ripristinato alla versione remota`,"diff.rollbackDoneRemote":`File ripristinato alla versione remota`,"diff.rollbackDoneHead":`Modifiche locali annullate (file ripristinato all'ultimo commit)`,"diff.rollbackDoneDeleted":`File non tracciato eliminato`,"diff.deleteUntracked":`Elimina file non tracciato`,"diff.deleteUntrackedConfirm":`Eliminare definitivamente {path}? Questo file non è tracciato da git — il suo contenuto andrà perso.`,"diff.deleteUntrackedConfirmOk":`Elimina`,"diff.rollbackFailed":`Rollback fallito`,"diff.rollbackFailedDetail":`Rollback non riuscito: {error}`,"diff.modeInspect":`Modifica`,"diff.modeReview":`Review`,"diff.addComment":`Aggiungi commento`,"diff.replyComment":`Rispondi`,"diff.editComment":`Modifica`,"diff.deleteComment":`Elimina`,"diff.deleteCommentConfirm":`Eliminare questo commento?`,"diff.commentPlaceholder":`Scrivi un commento di revisione… (Markdown supportato)`,"diff.reviewDraft":`Bozza di revisione`,"diff.reviewEmpty":`Nessun commento — passa sopra una riga del diff e clicca + per aggiungerne uno.`,"diff.reviewGlobalPlaceholder":`Messaggio generale di revisione (opzionale)`,"diff.submitReview":`Invia revisione ({n})`,"diff.reviewPending":`Una revisione è già in fase di invio.`,"diff.reviewEmptySubmission":`La revisione è vuota.`,"diff.reviewNotAccepted":`Il messaggio non è stato accettato. La revisione è stata conservata.`,"diff.reviewSubmitted":`Revisione inviata all'agente`,"diff.reviewSubmitFailed":`Invio della revisione fallito: {error}`,"diff.scopeBranch":`Branch`,"diff.scopeUnpushed":`Non pushato`,"diff.noChanges":`Nessuna modifica`,"diff.searchFiles":`Cerca file…`,"diff.noFileMatch":`Nessun file corrispondente`,"diff.selectFile":`Seleziona un file per visualizzare il diff`,"diff.fileLoadFailed":`Impossibile caricare questo diff`,"diff.fileLoadFailedHint":`Il file su disco è intatto — è fallito solo il caricamento del diff.`,"diff.fileListLoadFailed":`Impossibile caricare l’elenco dei file`,"diff.fileListLoadFailedHint":`È una richiesta fallita, non un branch senza modifiche.`,"diff.addToChat":`Aggiungi alla chat`,"diff.compareTitle":`Confronta commit`,"diff.compareFrom":`Da`,"diff.compareTo":`A`,"diff.compareSubmit":`Confronta`,"diff.compareSourceBase":`{branch} (base del branch)`,"diff.commitsReadOnly":`sola lettura`,"diffViewer.save":`Salva`,"diffViewer.savedAt":`Salvato`,"diffViewer.saveFailed":`Salvataggio non riuscito`,"diffViewer.saveFailedDetail":`Salvataggio non riuscito: {error}`,"diffViewer.unsavedChanges.title":`Modifiche non salvate`,"diffViewer.unsavedChanges.message":`Hai modifiche non salvate. Cosa vuoi fare?`,"diffViewer.unsavedChanges.save":`Salva`,"diffViewer.unsavedChanges.cancel":`Annulla`,"diffViewer.conflict.title":`File modificato su disco`,"diffViewer.conflict.message":`Il file è stato modificato fuori da Kōbō da quando lo hai aperto.`,"diffViewer.conflict.reload":`Ricarica (scarta locali)`,"diffViewer.conflict.keep":`Mantieni le mie`,"diffViewer.conflict.overwrite":`Sovrascrivi comunque`,"diffViewer.conflict.overwriteHint":`Sostituisce il file sul disco con la tua versione. L’altra modifica va persa.`,"diffViewer.conflict.keepHint":`Mantiene le tue modifiche nell’editor e adotta la nuova firma del disco, così il prossimo salvataggio funziona.`,"diffViewer.saveBlocked":`L’agente è in esecuzione — fermalo per salvare le tue modifiche.`,"diffViewer.unsavedBanner":`Modifiche non salvate. Ferma l’agente per salvarle.`,"diffViewer.closeConfirm.title":`Modifiche non salvate`,"diffViewer.closeConfirm.message":`Questo file contiene modifiche mai salvate. Chiudere il visualizzatore di diff le scarta.`,"diffViewer.closeConfirm.discard":`Chiudi senza salvare`,"diffViewer.criteriaRail":`Checklist di revisione`,"diffViewer.criteriaRailShow":`Mostra la checklist di revisione`,"diffViewer.criteriaRailHide":`Nascondi la checklist di revisione`,"diffViewer.fileTreeShow":`Mostra l’albero dei file`,"diffViewer.fileTreeHide":`Nascondi l’albero dei file`,"diffViewer.closeConfirm.saveAndClose":`Salva e chiudi`,"diffViewer.agentRunning":`L’agente è in esecuzione — fermalo per modificare`,"diffViewer.fileDeleted":`File eliminato`,"notification.agentFinished":`{name} — Agente terminato`,"notification.agentQuestion":`{name} — L'agente sta facendo una domanda`,"notification.awaitingReminder":`{name} - ti sta ancora aspettando ({minutes} min)`,"notification.agentPermissionRequest":`{name} — L'agente richiede un permesso`,"notification.autoLoopCompleted":`{name} — Auto-loop completato`,"notification.autoLoopWaitingForSlot":`{name} - L'auto-loop attende uno slot agente libero ({running}/{limit} in corso)`,"notification.autoLoopStalled":`{name} — Auto-loop bloccato (nessun progresso)`,"notification.autoLoopError":`{name} — Auto-loop fermato per errore`,"notification.autoLoopAwaitingClarification":`{name} — Auto-loop in pausa, in attesa del tuo chiarimento`,"notification.autoLoopPermissionOverridden":`{name} — Auto-loop ha forzato la modalità plan a bypass`,"notification.agentError":`{name} — Errore agente`,"contextMenu.rename":`Rinomina`,"contextMenu.editDescription":`Modifica descrizione`,"contextMenu.copyPath":`Copia percorso worktree`,"contextMenu.openEditor":`Apri nell'editor`,"contextMenu.openFileManager":`Apri nel file manager`,"contextMenu.unarchiveDisabledPurged":`Ripristina prima il worktree con Ripristina worktree oppure ricrealo manualmente. Kōbō rileva automaticamente i worktree corrispondenti.`,"workspaceList.unarchiveBlockedPurged":`Ripristina prima il worktree con Ripristina worktree oppure ricrealo manualmente. Kōbō rileva automaticamente i worktree corrispondenti.`,"contextMenu.purgeWorktree":`Libera spazio su disco (elimina worktree)`,"contextMenu.purgeWorktreeTooltip":`Elimina il worktree dal disco per recuperare spazio — la cronologia di chat e sessioni viene conservata. Archivia automaticamente il workspace.`,"contextMenu.purgeWorktreeDialogTitle":`Liberare spazio su disco?`,"contextMenu.purgeWorktreeDialogMessage":`La cartella worktree di «{name}» verrà eliminata dal disco. La cronologia di chat e sessioni viene conservata. Il workspace verrà archiviato automaticamente. Nella versione attuale non è possibile annullare.`,"contextMenu.purgeWorktreeDialogConfirm":`Elimina il worktree`,"contextMenu.purgeWorktreeSuccess":`Worktree eliminato — spazio su disco recuperato.`,"settings.autoPurgeOnPrMerged":`Elimina worktree al merge della PR`,"settings.autoPurgeOnPrMergedHint":`Se abilitato, il worktree viene eliminato dal disco non appena la PR viene mergiata (oltre all'archiviazione automatica). La cronologia delle chat viene conservata.`,"settings.autoLoopMaxRetries":`Numero massimo di tentativi automatici`,"settings.awaitingUserReminder":`Promemoria di domanda senza risposta`,"settings.awaitingUserReminderHint":`Minuti in cui un workspace può attendere la tua risposta prima che Kōbō te lo ricordi, poi a ogni intervallo successivo. 0 disattiva.`,"settings.localeLoadFailed":`Impossibile caricare questa lingua; resta attiva quella corrente.`,"settings.autoLoopMaxRetriesHint":`Mette in pausa la missione dopo questo numero di errori temporanei del motore o del server. Le quote attendono il ripristino senza consumare questo limite.`,"settings.retentionTitle":`Conservazione della cronologia delle conversazioni (disattivata di default)`,"settings.retentionWarning":`Attivare questa opzione elimina definitivamente dal database la cronologia delle conversazioni degli agenti, a partire da tutto ciò che è già più vecchio della finestra. Gli eventi eliminati non sono recuperabili.`,"settings.retentionHint":`Viene eseguita una volta all'avvio del server. Workspace, attività, sessioni, branch e worktree non vengono mai toccati — solo l'output registrato degli agenti.`,"settings.retentionDaysLabel":`Elimina gli eventi più vecchi di (giorni)`,"settings.retentionDaysHint":`0 — il valore predefinito — conserva tutti gli eventi per sempre. Indica un valore per attivare la conservazione.`,"settings.retentionKeepLabel":`Eventi sempre conservati per workspace`,"settings.retentionKeepHint":`Gli eventi più recenti di ogni workspace sopravvivono a prescindere dalla loro età, così un workspace vecchio ma ancora aperto mantiene una cronologia leggibile. Consigliato: 5000.`,"settings.retentionDisabledHint":`Conservazione disattivata: non verrà mai eliminato nulla.`,"settings.retentionConfirmTitle":`Eliminare definitivamente la cronologia delle conversazioni?`,"settings.retentionConfirmMessage":`Conservare solo {days} giorno/i di cronologia eliminerà definitivamente, al prossimo avvio del server, {count} dei {total} eventi degli agenti registrati — compreso tutto ciò che è già più vecchio. L'operazione è irreversibile. Continuare?`,"settings.retentionConfirmMessageUnknown":`Conservare solo {days} giorno/i di cronologia eliminerà definitivamente, al prossimo avvio del server, tutti gli eventi degli agenti più vecchi — compreso tutto ciò che è già accumulato. Non è stato possibile calcolare il volume esatto. L'operazione è irreversibile. Continuare?`,"settings.purgeDocsTitle":`Come funziona la pulizia — ripristino e permessi`,"settings.purgeDocsRestoreTitle":`Ripristinare un worktree eliminato (rilevamento automatico)`,"settings.purgeDocsRestoreIntro":`Un workspace eliminato conserva la cronologia chat e i metadati della PR, ma la cartella worktree non c'è più. Ricreala manualmente con uno di questi comandi — Kōbō rileva la riapparizione della cartella entro 30 secondi e riattiva automaticamente il workspace (rimuove dall'archivio + cancella il flag di eliminazione):`,"settings.purgeDocsRestoreCommands":`# GitHub (con CLI gh):
|
|
11
|
+
# il tuo script — usa $KOBO_NEW_BASE / $KOBO_OLD_BASE / $KOBO_WORKING_BRANCH …`,"settings.changeSourceBranchScript.resetDefault":`Ripristina il predefinito Kōbō`,"settings.changeSourceBranchScript.replaceConfirmTitle":`Ripristinare lo script?`,"settings.changeSourceBranchScript.replaceConfirm":`Le tue modifiche verranno sostituite dallo script predefinito di Kōbō. Continuare?`,"settings.cleanupScriptHint":`Script di shell eseguito nel worktree dopo ogni sessione dell'agente. In modalità auto-loop viene eseguito solo quando tutte le attività sono completate. Lascia vuoto per disattivare.`,"settings.cleanupScriptPlaceholder":`es. eliminare file temporanei, fermare container…`,"settings.cleanupScriptMode":`Quando eseguire`,"settings.cleanupScriptMode.idle":`Dopo ogni sessione — anche se restano attività`,"settings.cleanupScriptMode.noTasks":`Solo quando non resta nessuna attività Kōbō`,"settings.cleanupScriptOnlyOnChanges":`Eseguire solo se file sono stati modificati, aggiunti o eliminati`,"settings.cleanupScriptMode.inherit":`Eredita l'impostazione globale`,"settings.taskPromptTemplate":`Prompt di attività`,"settings.taskPromptTemplatePlaceholder":`Prompt inserito automaticamente nella descrizione dell'attività…`,"settings.taskPromptTemplateHint":`Iniettato automaticamente nella descrizione dell'attività nella pagina di creazione quando questo progetto è selezionato. Se non viene modificato, viene sostituito al cambio di progetto; appena lo modifichi, il tuo testo viene mantenuto.`,"settings.setupScriptPlaceholder":`npm install`,"settings.setupScriptHint":`Eseguito con bash nel worktree dopo la creazione, prima dell'avvio dell'agente. Nessun shebang necessario. In caso di errore, il workspace viene impostato su errore. Timeout: 5 minuti.`,"settings.e2e.title":`Test E2E`,"settings.e2e.framework":`Framework`,"settings.e2e.frameworkNone":`Nessuno`,"settings.e2e.frameworkOther":`Altro`,"settings.e2e.skill":`Skill (opzionale)`,"settings.e2e.skillPlaceholder":`es. cypress-tester`,"settings.e2e.prompt":`Linee guida personalizzate (opzionale)`,"settings.e2e.promptPlaceholder":`es. usare il pattern page-object, mirare a data-testid`,"settings.e2e.helpText":`Quando configurato, l'agente di grooming auto-loop inserisce sotto-task E2E per funzionalità UI.`,"settings.finalization.title":`Finalizzazione dell'auto-loop`,"settings.finalization.helpText":`Opzionale: un prompt che l'agente esegue come ultima iterazione dell'auto-loop. Tipicamente usato per controlli di qualità finali (lint, typecheck, test). La fase di grooming creerà un task con prefisso [FINAL] che userà questo prompt.`,"settings.finalization.prompt":`Prompt di finalizzazione`,"settings.finalization.promptPlaceholder":`es. Esegui npm run lint e npm test, poi marca questo task come fatto.`,"settings.editorCommand":`Comando editor`,"settings.editorCommandPlaceholder":`code, phpstorm, subl, vim...`,"settings.editorCommandHint":`Comando per aprire il worktree nel proprio editor. Il percorso del worktree viene passato come argomento.`,"settings.fileManagerCommand":`Comando file manager`,"settings.fileManagerCommandPlaceholder":`xdg-open, open, nautilus, dolphin, explorer...`,"settings.fileManagerCommandHint":`Comando per aprire il worktree nel proprio file manager. Il percorso del worktree viene passato come argomento. Lascia vuoto per nascondere il pulsante.`,"settings.terminalCommand":`Comando del terminale`,"settings.terminalCommandHint":`Comando per avviare il terminale nel worktree. Segnaposto {path} opzionale per la directory.`,"settings.terminalCommandPlaceholder":`kitty · alacritty · gnome-terminal --working-directory={path}`,"settings.mcpSelection":`Selezione MCP Claude`,"settings.mcpAutoSelect":`Auto (primo MCP attivo corrispondente)`,"settings.notionMcp":`Chiave MCP Notion`,"settings.sentryMcp":`Chiave MCP Sentry`,"settings.mcpSelectionHint":`Le voci attive vengono lette da ~/.claude.json. Lascia Auto per usare il comportamento predefinito.`,"settings.configuredProjects":`Progetti configurati`,"settings.noProjects":`Nessun progetto configurato`,"settings.addProject":`Aggiungi progetto`,"settings.copyFrom":`Copia impostazioni da`,"settings.copyFromPlaceholder":`(nessuno — parti dai valori predefiniti)`,"settings.copyFromHint":`Copia tutte le impostazioni tranne path, nome e branch sorgente.`,"settings.copyFromConfirmTitle":`Sovrascrivere i valori attuali?`,"settings.copyFromConfirm":`Sovrascriverà i valori del modulo con le impostazioni di "{project}". Continuare?`,"settings.newProject":`Nuovo progetto`,"settings.editProject":`Modifica progetto`,"help.title":`Aiuto`,"help.tours":`Tour guidati`,"help.steps":`{n} passaggio | {n} passaggi`,"help.markAllSeen":`Segna tutti come visti`,"help.markAllSeenHint":`Segna i tour attuali come visti senza avviarli.`,"help.resetAll":`Reimposta tutti i tour`,"help.resetAllHint":`Avvia ora il tour iniziale; ogni schermata ripeterà il proprio alla prossima apertura.`,"help.status.unseen":`non visto`,"help.status.partial":`in parte`,"help.status.seen":`visto`,"help.replayThis":`Ripeti il tour di questa schermata`,"tours.next":`Avanti`,"tours.prev":`Indietro`,"tours.done":`Fine`,"tours.exitConfirm":`Uscire dal tour guidato? Non ripartirà da solo; puoi ripeterlo in qualsiasi momento dal menu Aiuto.`,"tours.home.title":`Orientarsi`,"tours.home.list.title":`Workspace`,"tours.home.list.description":`Ogni missione vive qui con il suo stato. I badge segnalano una CI fallita, una review che chiede modifiche o una PR pronta al merge.`,"tours.home.create.title":`Creare un workspace`,"tours.home.create.description":`Un workspace è un worktree Git, un branch e una sessione di agente per un compito.`,"tours.home.search.title":`Ricerca`,"tours.home.search.description":`Filtra l'elenco per nome. L'icona di ricerca in alto apre la ricerca full-text nelle conversazioni degli agenti.`,"tours.home.dashboard.title":`Cruscotto`,"tours.home.dashboard.description":`Una tabella con tutti i workspace attivi: stato, attenzione, PR, diff, attività e affidabilità dei motori.`,"tours.home.health.title":`Stato e changelog`,"tours.home.health.description":`Controlla database, runtime e agenti attivi. Il pulsante accanto elenca cosa è cambiato in ogni versione.`,"tours.home.settings.title":`Impostazioni`,"tours.home.settings.description":`Motori, integrazioni, automazione, worktree e progetti. Ora crea il tuo primo workspace.`,"tours.create.title":`Creare un workspace`,"tours.create.project.title":`Progetto e branch`,"tours.create.project.description":`Scegli il progetto e il branch da cui parte il worktree.`,"tours.create.mission.title":`Missione`,"tours.create.mission.description":`Descrivi il compito, o importalo da una pagina Notion o da una issue Sentry.`,"tours.create.template.title":`Template`,"tours.create.template.description":`Applica un preset salvato, o salva questo modulo come preset. «Duplica» su una scheda workspace apre questo modulo precompilato.`,"tours.create.engine.title":`Motore e modello`,"tours.create.engine.description":`Claude Code o Codex, il modello, lo sforzo di ragionamento e cosa l'agente può fare senza chiedere.`,"tours.create.brainstorm.title":`Brainstorm su un altro modello`,"tours.create.brainstorm.description":`Esegui la prima sessione di brainstorming su un altro modello, poi torna a quello principale per le iterazioni.`,"tours.create.autoloop.title":`Auto-loop`,"tours.create.autoloop.description":`Lascia che l'agente concateni le sessioni finché ogni compito non è completato, o finché si blocca.`,"tours.create.comparison.title":`Confrontare due motori`,"tours.create.comparison.description":`Crea due workspace gemelli sullo stesso compito e confronta commit, compiti e attività.`,"tours.workspace.sessions.title":`Sessioni del workspace`,"tours.workspace.sessions.description":`Premi il titolo per scegliere, creare o rinominare una sessione, oppure copiarne l’identificativo.`,"tours.workspace.actions.title":`Azioni del workspace`,"tours.workspace.actions.description":`Il menu ⋯ raccoglie la vista affiancata, la palette dei comandi, il pannello laterale e la visita guidata.`,"tours.workspace.title":`Dentro un workspace`,"tours.workspace.chat.title":`Conversazione`,"tours.workspace.chat.description":`L'output dell'agente, in diretta: messaggi, chiamate agli strumenti, domande ed errori.`,"tours.workspace.input.title":`Parlare con l'agente`,"tours.workspace.input.description":`Invia un messaggio, usa gli slash command, detta a voce o allega file.`,"tours.workspace.selectors.title":`Impostazioni di sessione`,"tours.workspace.selectors.description":`Apri Configura per regolare modello, ragionamento, autorizzazioni e auto-loop. Qui è indicato anche il motore attuale.`,"tours.workspace.status.title":`Stato`,"tours.workspace.status.description":`Lo stato della sessione corrente; fermala qui quando serve.`,"tours.workspace.git.title":`Git`,"tours.workspace.git.description":`Commit, diff, push, rebase e la PR di questo branch.`,"tours.workspace.tasks.title":`Attività`,"tours.workspace.tasks.description":`Cosa l'agente prevede di fare, e i criteri di accettazione che deve rispettare.`,"tours.workspace.timeline.title":`Cronologia`,"tours.workspace.timeline.description":`Ogni sessione di questo workspace; aprine una precedente per rileggerla.`,"tours.workspace.subagents.title":`Sub-agenti`,"tours.workspace.subagents.description":`Segui i sub-agenti avviati dall'agente, con il loro progresso in tempo reale.`,"tours.workspace.documents.title":`Documenti`,"tours.workspace.documents.description":`Piani e file scritti dall'agente, consultabili senza lasciare la chat.`,"tours.workspace.schedule.title":`Pianificazione`,"tours.workspace.schedule.description":`Wake-up e cron che riavviano l'agente più tardi.`,"tours.workspace.handoff.title":`Continua con un contesto nuovo`,"tours.workspace.handoff.description":`Conversazione lunga? Avvia qui una nuova sessione o usa «Cambia LLM». Il lavoro corrente si interrompe immediatamente e la nuova sessione riprende automaticamente nello stesso workspace. Il riepilogo del passaggio di consegne è facoltativo: disattivalo se il LLM attuale ha esaurito la quota. Avanzamento, rapporto e collegamento alla sessione precedente appaiono sotto questo pulsante.`,"tours.workspace.terminal.title":`Terminale`,"tours.workspace.terminal.description":`Una shell dentro il worktree, senza lasciare Kōbō.`,"tours.gitPr.title":`Pull request`,"tours.gitPr.panel.title":`Stato della PR`,"tours.gitPr.panel.description":`Risultato della CI, decisione della review e reviewer, aggiornati ogni 30 secondi.`,"tours.gitPr.actions.title":`Azioni Git`,"tours.gitPr.actions.description":`Push, pull, rebase o cambio del branch di base. Durante un conflitto, un pulsante lascia che l'agente lo risolva.`,"tours.gitPr.attention.title":`Badge di attenzione`,"tours.gitPr.attention.description":`La scheda mostra una CI fallita, modifiche richieste o una PR pronta al merge.`,"tours.settings.title":`Impostazioni`,"tours.settings.engines.title":`Motori e modelli`,"tours.settings.engines.description":`Modelli, permessi predefiniti e limiti dei tentativi automatici.`,"tours.settings.integrations.title":`Integrazioni`,"tours.settings.integrations.description":`Connessioni Notion e Sentry e credenziali Bitbucket. GitHub e GitLab usano la sessione CLI locale.`,"tours.settings.automation.title":`Automazione`,"tours.settings.automation.description":`Script di setup e cleanup, lifecycle hook, template di prompt, template di workspace e skill.`,"tours.settings.worktrees.title":`Worktrees`,"tours.settings.worktrees.description":`Dove vivono i worktree, per quanto tempo conservare quelli già uniti, e la pulizia automatica.`,"tours.settings.projects.title":`Progetti`,"tours.settings.projects.description":`I progetti registrati e le loro impostazioni specifiche per progetto.`,"tours.settings.misc.title":`Generale, voce, notifiche, esportazione`,"tours.settings.misc.description":`Lingua, accesso alla rete, dettatura, suoni e notifiche del browser, e un export completo delle tue impostazioni.`,"tours.dashboard.title":`Cruscotto`,"tours.dashboard.overview.title":`Panoramica`,"tours.dashboard.overview.description":`Tutti i workspace attivi in una tabella; clicca su una riga per aprirla.`,"tours.dashboard.reliability.title":`Affidabilità dei motori`,"tours.dashboard.reliability.description":`Sessioni, errori e durate per motore e modello.`,"tours.health.title":`Stato`,"tours.health.checks.title":`Controlli`,"tours.health.checks.description":`Ambiente, database, runtime, workspace e sessioni.`,"tours.health.active.title":`Stato attivo`,"tours.health.active.description":`I back-off di quota, i wake-up in attesa e gli auto-loop in corso in questo momento.`,"tours.search.title":`Ricerca`,"tours.search.input.title":`Query`,"tours.search.input.description":`Corrisponde ai nomi dei workspace e alle conversazioni degli agenti.`,"tours.search.archived.title":`Archiviati`,"tours.search.archived.description":`Includi i workspace archiviati nei risultati.`,"tours.changelog.title":`Novità`,"tours.changelog.list.title":`Versioni`,"tours.changelog.list.description":`Cosa è cambiato in ogni versione, la più recente per prima.`,"settings.projectGroup.identity":`Identità`,"settings.projectGroup.defaults":`Valori predefiniti`,"settings.projectGroup.prompts":`Prompt`,"settings.projectGroup.scripts":`Script`,"settings.projectPath":`Percorso del progetto`,"settings.projectPathPlaceholder":`/percorso/del/progetto`,"settings.displayName":`Nome visualizzato`,"settings.displayNamePlaceholder":`Il mio progetto`,"settings.defaultSourceBranch":`Branch sorgente predefinito`,"settings.defaultModel.project":`Modello predefinito`,"settings.skipPermissions.project":`Salta le richieste di permesso`,"settings.prPromptTemplate.project":`Template del prompt PR`,"settings.prPromptPlaceholder.project":`Istruzioni specifiche del progetto per la creazione di PR...`,"settings.reviewPromptTemplate.project":`Template del prompt di revisione`,"settings.ciFixPromptTemplate.project":`Template del prompt «Ripara CI»`,"settings.gitConventions.project":`Convenzioni Git (per progetto)`,"settings.gitConventionsEmpty":`Lascia vuoto per usare le convenzioni globali.`,"settings.notionStatus":`Stato ticket Notion`,"settings.notionStatusProperty":`Nome della proprietà`,"settings.notionStatusPropertyPlaceholder":`État, Status...`,"settings.notionInProgressStatus":`Valore da impostare`,"settings.notionInProgressStatusPlaceholder":`In corso, In progress...`,"settings.notionStatusHint":`Quando un workspace viene creato con un ticket Notion, la proprietà specificata viene impostata a questo valore. Entrambi i campi sono obbligatori. Lasciare vuoto per disattivare.`,"settings.notionAssignee":`Assegnazione Notion`,"settings.notionAssigneeHint":`Quando un workspace viene creato con un ticket Notion, l'utente autenticato sull'MCP Notion viene aggiunto a questa proprietà People — solo se non ha già un assegnatario. Lasciare vuoto per disattivare.`,"settings.notionAssigneeProperty":`Nome della proprietà`,"settings.notionAssigneePropertyPlaceholder":`Sviluppatori, Assignees...`,"settings.notionUserId":`Il tuo UUID Notion`,"settings.notionUserIdPlaceholder":`135d872b-594c-8126-9604-00024ad6e5b5`,"settings.notionUserIdHint":`Seleziona il tuo account nella lista. Notion rifiuta l'assegnazione di bot nelle proprietà People — questo campo è obbligatorio per attivare l'auto-assegnazione.`,"settings.notionUsersRefresh":`Aggiorna`,"settings.notionUsersLoading":`Caricamento utenti Notion…`,"settings.notionUsersLoadFailed":`Impossibile caricare la lista: {error}`,"settings.notionUsersManualFallback":`Lista non disponibile — incolla il tuo UUID Notion manualmente.`,"settings.devServer":`Server di sviluppo`,"settings.devServerStart":`Script di avvio`,"settings.devServerStartPlaceholder":`npm run dev`,"settings.devServerStop":`Script di arresto`,"settings.devServerStopPlaceholder":`Opzionale — il processo verrà terminato automaticamente se vuoto`,"settings.selectProject":`Seleziona un progetto o aggiungine uno nuovo`,"settings.projectPathRequired":`Il percorso del progetto è obbligatorio.`,"settings.useGlobal":`Usa globale`,"settings.saved":`Impostazioni globali salvate.`,"settings.unsavedChanges":`Modifiche non salvate`,"settings.nav.general":`Generale`,"settings.nav.agents":`Agenti`,"settings.nav.skills":`Skills`,"settings.nav.prompts":`Prompt`,"settings.nav.scripts":`Script`,"settings.nav.workspaceTemplates":`Template di workspace`,"workspaceTemplates.title":`Template di workspace`,"workspaceTemplates.hint":`Preimpostazioni salvate del modulo di creazione. Scegline una nella pagina di creazione; per modificarla, caricala lì, regola e salvala di nuovo con lo stesso nome.`,"workspaceTemplates.empty":`Nessun template per ora. Compila il modulo di creazione e usa «Salva come template».`,"workspaceTemplates.anyProject":`Qualsiasi progetto`,"workspaceTemplates.rename":`Rinomina`,"workspaceTemplates.renameTitle":`Rinomina il template`,"workspaceTemplates.deleteConfirm":`Eliminare il template «{name}»?`,"workspaceTemplates.deleted":`Template «{name}» eliminato`,"settings.nav.notion":`Notion`,"settings.nav.forge":`Forge`,"settings.bitbucketCommunity":`Bitbucket Community`,"settings.bitbucketCommunityHint":`Le credenziali restano locali e sono usate solo da bkt.`,"settings.bitbucketUsername":`E-mail Atlassian`,"settings.bitbucketToken":`Token API Bitbucket`,"settings.nav.sentry":`Sentry`,"settings.nav.voice":`Voce`,"settings.nav.notifications":`Notifiche`,"settings.nav.worktrees":`Worktrees`,"settings.nav.export":`Esporta`,"settings.help.general":`Lingua, accesso alla rete e i valori predefiniti ereditati da ogni progetto.`,"settings.help.agents":`Modelli e permessi predefiniti, e limiti dei tentativi automatici.`,"settings.help.skills":`Quali suite di skill l'agente è invitato a usare.`,"settings.help.prompts":`Istruzioni dopo l’apertura di una PR/MR, per revisioni del codice, correzioni CI e finalizzazione.`,"settings.help.scripts":`Script di setup, pulizia e cambio del branch sorgente, più gli hook del ciclo di vita.`,"settings.help.notion":`Importa una pagina Notion come fonte di verità di un workspace.`,"settings.help.sentry":`Crea un workspace da una issue Sentry.`,"settings.help.forge":`Credenziali Bitbucket. GitHub e GitLab usano la CLI gh/glab autenticata; scegli la forge per progetto.`,"settings.help.voice":`Dettatura e push-to-talk.`,"settings.help.notifications":`Suoni, notifiche del browser e promemoria delle domande senza risposta.`,"settings.help.worktrees":`Dove vengono creati i worktree, conservazione ed eliminazione automatica.`,"settings.help.projects":`Progetti registrati e le loro impostazioni specifiche per progetto.`,"settings.help.templates":`Template di prompt espansi nella casella di input della chat.`,"settings.help.workspaceTemplates":`Preset salvati del modulo di creazione.`,"settings.help.export":`Esporta e importa tutte le impostazioni come JSON.`,"settings.openNav":`Apri la navigazione`,"settings.saveError":`Errore durante il salvataggio delle impostazioni.`,"settings.projectSaved":`Progetto salvato.`,"settings.projectSaveError":`Errore durante il salvataggio del progetto.`,"settings.projectDeleted":`Progetto eliminato.`,"settings.deleteProjectConfirmTitle":`Eliminare il progetto?`,"settings.deleteProjectConfirmMessage":`Rimuovere «{name}» dai tuoi progetti? Questo elimina solo le impostazioni Kōbō — il codice e i worktree restano intatti.`,"settings.projectDeleteError":`Errore durante l'eliminazione del progetto.`,"templates.title":`Template`,"templates.newTemplate":`Nuovo template`,"templates.editTemplate":`Modifica template`,"templates.deleteTemplate":`Elimina template`,"templates.deleteConfirm":`Eliminare il template '/{slug}'?`,"templates.deleteConfirmMessage":`Questa azione non può essere annullata.`,"templates.slug":`Slug`,"templates.slugHint":`Minuscole, cifre, trattini. Max 64 caratteri.`,"templates.slugInvalid":`Lo slug può contenere solo minuscole, cifre e trattini`,"templates.slugDuplicate":`Un template con questo slug esiste già`,"templates.description":`Descrizione`,"templates.descriptionHint":`Etichetta breve mostrata nel dropdown.`,"templates.descriptionRequired":`La descrizione è obbligatoria`,"templates.contentRequired":`Il contenuto è obbligatorio`,"templates.content":`Contenuto`,"templates.contentHint":`Contenuto del template. Usa {variable_name} per le sostituzioni.`,"templates.availableVars":`Variabili disponibili`,"templates.filePath":`File: {path}`,"templates.empty":`Nessun template ancora.`,"templates.createFailed":`Creazione del template fallita`,"templates.updateFailed":`Aggiornamento del template fallito`,"templates.deleteFailed":`Eliminazione del template fallita`,"templates.save":`Salva`,"templates.create":`Crea`,"templates.reloadDefaults":`Ricarica i template predefiniti`,"templates.reloadDefaultsHint":`Aggiunge solo i template predefiniti mancanti. I template esistenti (modificati o meno) non vengono mai sovrascritti.`,"templates.reloadDefaultsConfirmMessage":`Questa azione aggiungerà alla lista i template predefiniti mancanti. I template esistenti — comprese le tue personalizzazioni — non saranno toccati. Se vuoi ripristinare un template predefinito che hai modificato, eliminalo prima e rilancia questa azione.`,"templates.reloadDefaultsSuccess":`{added} aggiunto/i, {kept} mantenuto/i`,"templates.reloadDefaultsFailed":`Ricarica dei template predefiniti fallita`,"templates.resetToDefault":`Ripristina predefinito`,"templates.resetConfirmTitle":`Ripristinare il template al predefinito?`,"templates.resetConfirmMessage":`Sovrascrive le tue modifiche locali a /{slug} con il predefinito. Non annullabile.`,"templates.resetSuccess":`Template /{slug} ripristinato al predefinito`,"templates.resetFailed":`Ripristino del template non riuscito`,"chatInput.dropdownSkills":`Skill Claude`,"chatInput.dropdownKobo":`Comandi Kōbō`,"chatInput.dropdownTemplates":`Template`,"documents.title":`Documenti`,"documents.empty":`Nessun documento trovato`,"documents.refresh":`Aggiorna`,"documents.back":`Indietro`,"documents.loadFailed":`Caricamento del documento fallito`,"git.title":`Git`,"git.outputDialogTitle":`Git ha segnalato un errore`,"git.statsFailed":`Impossibile leggere lo stato git`,"git.section.repository":`Repository`,"git.section.changes":`Modifiche`,"git.section.pullRequest":`Pull request`,"git.section.actions":`Azioni`,"git.actions.more":`Altre`,"git.localOnly":`solo locale`,"git.pushed":`pushed`,"git.unpushed":`{count} non pushati`,"git.commits":`{count} commit | {count} commit`,"git.commits.loading":`Caricamento commit…`,"git.commits.empty":`Nessun commit su questo branch`,"git.commits.pushed":`Pushato`,"git.commits.unpushed":`Non pushato`,"git.commits.clickToAppend":`clicca per aggiungere SHA alla chat`,"git.commits.diffThisCommit":`Diff di questo commit (vs parent)`,"git.compareCommits":`Confronta commit…`,"git.files":`{count} file | {count} file`,"git.staged":`{count} staged`,"git.modified":`{count} modificati`,"git.untracked":`{count} non tracciati`,"git.workingTreeEmpty":`Nessuna modifica non committata`,"git.fileStaged":`In stage`,"git.fileModified":`Modificato`,"git.fileUntracked":`Non tracciato`,"git.push":`Push`,"git.forcePush":`Force push`,"git.forcePushToggle":`Force push (--force-with-lease)`,"git.pushBlockedByOperation":`Prima completa o annulla l'operazione {operation} in corso`,"git.pushUpToDate":`Niente da inviare: il branch è già aggiornato su origin`,"git.forcePushHint":`Più sicuro di --force: il push viene rifiutato se il remoto ha commit che non hai visto. Da usare dopo un rebase o amend di commit già pushati.`,"git.branchForcePushed":`Branch force-pushed`,"git.pull":`Pull`,"git.pullNoUpstream":`Nessun upstream per questo branch — fai push prima per abilitare Pull.`,"git.sync":`Sync`,"git.createPrNoRemote":`Push del branch prima`,"git.viewRequest":`Visualizza {request}`,"git.createRequest":`Crea {request}`,"git.changeRequestBase":`Cambia il branch base della {request}`,"git.forgeCliMissing":`{cli} non è installato — installalo per usare le funzioni {request}`,"git.forgeNotAuthenticated":`Non autenticato — esegui {cli} auth login`,"settings.forge":`Forge`,"settings.forge.auto":`Rilevamento automatico`,"settings.forge.github":`GitHub`,"settings.forge.gitlab":`GitLab`,"settings.forge.bitbucketCommunity":`Bitbucket Community (bkt)`,"settings.forge.none":`Nessuna`,"git.pullConfirmTitle":`Pull della branch?`,"git.pullConfirmMessage":`Pull {branch} dal remoto (solo fast-forward).`,"git.branchPulled":`Branch aggiornata`,"git.pullFailed":`Pull fallito`,"git.renameBranch":`Rinomina branch`,"git.renameBranchPrompt":"Rinomina `{branch}` in:","git.renameBranchSuccess":"Branch rinominato in `{branch}`","git.renameBranchFailed":`Rinomina branch fallita`,"git.renameBranchExists":"Il branch `{branch}` esiste già localmente o su origin","git.diff":`Diff`,"git.diffReview":`Diff`,"git.diffReviewTooltip":`Apre il visualizzatore diff in modalità Review — commenti inline + invio batch all'agente`,"pr.baseChanged":`Base della PR cambiata: {oldBase} → {newBase}`,"pr.openPr":`Apri PR`,"pr.openWorkspace":`Apri il workspace`,"pr.dismiss":`Chiudi`,"git.rebase":`Rebase`,"git.rebaseConfirmTitle":`Rebase del branch?`,"git.rebaseConfirmMessage":`Rebase su {branch}. Potrebbero verificarsi conflitti.`,"git.rebaseSuccess":`Rebase completato`,"git.rebaseFailed":`Rebase fallito`,"git.merge":`Merge`,"git.fetch":`Fetch`,"git.fetchSuccess":`Repository aggiornato`,"git.fetchFailed":`Fetch non riuscito: {error}`,"git.mergeConfirmTitle":`Fondere il branch?`,"git.mergeConfirmMessage":`Fonde {branch} in questo branch. Possibili conflitti.`,"git.mergeSuccess":`Merge completato`,"git.mergeFailed":`Merge fallito`,"git.commitFailed":`Commit fallito`,"git.commitChanges":`Esegui commit delle modifiche`,"git.commitDialogTitle":`Esegui commit delle modifiche non salvate`,"git.commitDialogDescription":`Inserisci il tuo messaggio o chiedi all’agente di esaminare e creare il commit.`,"git.commitMessage":`Messaggio di commit`,"git.commitManual":`Esegui commit`,"git.commitWithAgent":`Chiedi all’agente`,"git.commitAgentSuccess":`Richiesta di commit inviata all’agente`,"git.discardFailed":`Scarto fallito`,"git.conflictTitleMerge":`Conflitti di merge rilevati`,"git.conflictTitleRebase":`Conflitti di rebase rilevati`,"git.operationPausedTitle":`Operazione Git da continuare`,"git.operationPausedSubtitle":`Nessun file è in conflitto. Git attende solo che tu continui l’operazione.`,"git.conflictSubtitle":`{count} file con conflitti. Scegli come continuare.`,"git.conflictAbortConfirmTitle":`Annullare la risoluzione del conflitto?`,"git.conflictAbortConfirmMessage":`Tutto ciò che hai risolto in questo {op} viene scartato e il worktree torna allo stato precedente. È irreversibile.`,"git.conflictAbort":`Annulla`,"git.conflictContinue":`Continua`,"git.conflictContinued":`Operazione Git continuata`,"git.conflictResolveWithAgent":`Chiedi all'agente di risolvere`,"git.conflictAborted":`Operazione annullata`,"git.conflictHandoffSuccess":`L'agente sta risolvendo i conflitti`,"git.dirtyTitleRebase":`Modifiche non committate bloccano il rebase`,"git.dirtyTitleMerge":`Modifiche non committate bloccano il merge`,"git.dirtyTitlePull":`Modifiche non committate bloccano il pull`,"git.dirtySubtitle":`{modified} modificato/i, {staged} in stage, {untracked} non tracciato/i. Scegli come procedere.`,"git.dirtyStash":`Stash e riprova`,"git.dirtyCommit":`Commit prima`,"git.dirtyCommitPlaceholder":`Messaggio di commit`,"git.dirtyCommitConfirm":`Commit e riprova`,"git.dirtyDiscard":`Scarta le modifiche`,"git.dirtyDiscardConfirmTitle":`Scartare tutte le modifiche non committate?`,"git.dirtyDiscardConfirmMessage":`Le modifiche tracciate andranno perse (git reset --hard). I file non tracciati vengono mantenuti. Azione irreversibile.`,"git.pushConfirmTitle":`Push del branch?`,"git.pushConfirmMessage":`Push di {branch} al remoto.`,"git.pushConfirmMessagePrefix":`Push del branch`,"git.pushConfirmMessageSuffix":`al remoto.`,"git.changePrBaseTitle":`Cambiare branch base`,"git.changePrBaseMessage":`Inserire il nuovo branch destinazione per la {request}.`,"git.changePrBaseSuccess":`Branch base della {request} aggiornato`,"git.changePrBaseFailed":`Impossibile cambiare il branch base della {request}`,"git.mergeRequest":`Unisci {request}`,"git.mergeRequestConfirmTitle":`Unire {request}?`,"git.mergeRequestConfirmMessage":`Questa azione unisce la {request} aperta nel suo branch di destinazione.`,"git.mergeRequestSuccess":`{request} unita`,"git.mergeRequestFailed":`Impossibile unire {request}`,"git.deleteRemoteBranch":`Elimina branch remoto`,"git.deleteRemoteBranchTitle":`Eliminare il branch remoto?`,"git.deleteRemoteBranchMessage":`La richiesta è stata unita. Eliminare il branch remoto {branch}?`,"git.deleteRemoteBranchSuccess":`Branch remoto {branch} eliminato`,"git.deleteRemoteBranchFailed":`Impossibile eliminare il branch remoto`,"git.changeSourceBranch":`Cambia il branch di origine`,"git.changeSourceBranchTitle":`Cambia il branch di origine`,"git.changeSourceBranchMessage":`Scegli il nuovo branch di origine. Il branch di lavoro verrà ricostruito sopra di esso.`,"git.changeSourceBranchDone":`Branch di origine cambiato in {branch}`,"git.changeSourceBranchAligned":`Branch di origine cambiato in {branch} (il branch non aveva commit propri)`,"git.changeSourceBranchTooMany":`Il branch ha troppi commit propri ({n}) — esegui il rebase manualmente`,"git.changeSourceBranchDirty":`Esegui commit o stash delle modifiche prima di cambiare il branch di origine`,"git.changeSourceBranchAgentRunning":`Ferma l'agente prima di cambiare il branch di origine`,"git.changeSourceBranchErrorTitle":`Cambio branch di origine fallito`,"git.changeSourceBranchErrorOngoing":`Un'operazione {op} è ancora in corso sul worktree. Annullala per tornare a uno stato pulito.`,"git.changeSourceBranchErrorAbort":`Annulla l'operazione`,"git.changeSourceBranchLoading":`Cambio del branch di origine…`,"git.changeSourceForcePushTitle":`Eseguire il force-push del branch riscritto?`,"git.changeSourceForcePushMessage":`La cronologia del branch è stata riscritta. Eseguire il push al remoto con --force-with-lease?`,"git.changeSourceForcePushDone":`Force-push del branch eseguito`,"git.openEditor":`Apri nell'editor`,"git.openEditorFailed":`Impossibile aprire l'editor`,"git.branchPushed":`Branch pushato`,"git.pushFirst":`Il branch non è sul remoto. Fai Push prima.`,"git.unpushedCommits":`I commit locali non sono pushati. Fai Push prima.`,"git.from":`da`,"git.aheadBehindTooltip":`{ahead} commits avanti, {behind} indietro rispetto a {source}`,"git.divergence.title":`Divergenza del branch`,"git.divergence.subtitle":`vs {source}`,"git.divergence.ahead":`↑ {count} avanti`,"git.divergence.behind":`↓ {count} indietro`,"git.divergence.empty.ahead":`Nessun commit avanti.`,"git.divergence.empty.behind":`Nessun commit indietro.`,"git.divergence.close":`Chiudi`,"git.divergence.loading":`Caricamento commit…`,"git.divergence.failed":`Impossibile caricare la divergenza`,"git.divergence.retry":`Riprova`,"git.prCreated":`{request} #{n} creata`,"git.pr.author":`Autore`,"git.pr.reviewers":`Revisori`,"git.pr.assignees":`Assegnati`,"git.pr.labels":`Etichette`,"git.pr.changesRequestedBadge":`Modifiche richieste`,"git.pr.approvedBadge":`Approvata`,"git.pr.ci.passed":`CI OK`,"git.pr.ci.failed":`CI fallita`,"git.pr.ci.pending":`CI in corso`,"git.pr.ci.failedCount":`{n} falliti`,"git.pr.ci.pendingCount":`{n} in corso`,"git.pr.ci.passedCount":`{n} OK`,"git.pr.ci.skippedCount":`{n} saltati`,"git.pr.ci.showPassed":`Mostra {n} job riusciti`,"git.pr.ci.hidePassed":`Nascondi i job riusciti`,"toast.prChangesRequested":`Sono state richieste modifiche per la PR #{n}`,"toast.prApproved":`La PR #{n} è stata approvata`,"toast.prReadyToMerge":`La PR #{n} è pronta per il merge`,"toast.prCiFailed":`La CI della PR #{n} non è riuscita`,"toast.prCiRecovered":`La CI della PR #{n} è stata ripristinata`,"toast.prMergeConflict":`La PR #{n} ha conflitti di merge`,"toast.prMerged":`La PR #{n} è stata unita`,"devServer.title":`Server di sviluppo`,"devServer.noWorkspace":`Nessun workspace selezionato`,"devServer.notConfigured":`Non configurato —`,"devServer.goToSettings":`Impostazioni`,"devServer.logs":`Log`,"devServer.running":`In esecuzione`,"devServer.starting":`Avvio in corso`,"devServer.stopping":`Arresto in corso`,"devServer.error":`Errore`,"devServer.stopped":`Arrestato`,"devServer.unknown":`Sconosciuto`,"devServer.containers":`{count} container | {count} container`,"devServer.logDialog.title":`Log del server di sviluppo`,"devServer.logDialog.empty":`Nessun log disponibile`,"notion.title":`Notion`,"tasks.title":`Attività`,"notion.addTask":`Aggiungi task`,"notion.noUrl":`Nessun URL Notion`,"notion.subtasks":`{done}/{total} sottotask`,"notion.noTasks":`Nessun task`,"notion.newTask":`Nuovo task... (Invio per aggiungere, Esc per annullare)`,"acceptance.title":`Criteri di accettazione`,"acceptance.addCriterion":`Aggiungi criterio`,"acceptance.newCriterion":`Nuovo criterio... (Invio per aggiungere, Esc per annullare)`,"acceptance.empty":`Nessun criterio di accettazione`,"tasks.askProgress":`Chiedere all'agente di verificare il progresso`,"agentTodos.title":`Todo dell'agente`,"agentTodos.empty":`Nessun todo dell'agente`,"subagents.title":`Sub-agenti`,"subagents.empty":`Nessuna attività dei sub-agenti ancora`,"subagents.tools":`{count} strumenti`,"subagents.running":`In esecuzione: `,"stats.resetsAt":`Reset {value}`,"stats.usageBucket":`Bucket utilizzo {n}`,"quotaFooter.lastUpdated":`Ultimo aggiornamento: {time}`,"quotaFooter.empty":`Caricamento…`,"quotaFooter.popover.title":`Utilizzo Claude Code`,"quotaFooter.popover.refreshNow":`Aggiorna`,"quotaFooter.popover.resetsIn":`Reset alle {value}`,"quotaFooter.popover.unauthenticated":`Auth richiesta`,"quotaFooter.popover.unauthenticatedHint":`Esegui "claude" una volta per autenticarti.`,"quotaFooter.popover.error":`Errore`,"quotaFooter.bucket.fiveHour":`5 ore`,"quotaFooter.bucket.sevenDay":`7 giorni`,"agent.error.spawn_failed":`Impossibile avviare l'agente`,"agent.error.parse_error":`Impossibile analizzare un messaggio dell'agente`,"agent.error.rate_limit":`Limite di frequenza raggiunto`,"agent.error.resume_failed":`Sessione non trovata — avvio di una nuova sessione`,"agent.error.other":`Errore dell'agente`,"quotaBackoff.banner.title":`Ripresa automatica alle {time}`,"quotaBackoff.banner.transientTitle":`Ripresa automatica dopo l’interruzione alle {time}`,"quotaBackoff.resumeNow":`Riprendi ora`,"quotaBackoff.banner.tooltip":`Quota Claude esaurita. L'auto-loop riprenderà automaticamente quando la quota si reimposta alle {resets_at}.`,"quotaBackoff.banner.cancel":`Annulla ripresa`,"quotaBackoff.cancelled":`Ripresa automatica annullata — puoi riprendere manualmente in qualsiasi momento`,"rateLimitType.fiveHour":`Sessione 5h`,"rateLimitType.sevenDay":`Settimanale`,"tooltip.addTask":`Aggiungi task`,"tooltip.removeTask":`Rimuovi task`,"tooltip.addCriterion":`Aggiungi criterio`,"tooltip.removeCriterion":`Rimuovi criterio`,"tooltip.startDevServer":`Avvia server di sviluppo`,"tooltip.stopDevServer":`Arresta server di sviluppo`,"tooltip.closeDiffViewer":`Chiudi diff`,"tooltip.refreshLogs":`Aggiorna log`,"tooltip.closeDialog":`Chiudi`,"tooltip.refreshGitStats":`Aggiorna statistiche Git`,"tooltip.removeImage":`Rimuovi immagine`,"tooltip.sendMessage":`Invia messaggio`,"tools.title":`Strumenti`,"tools.runSetupScript":`Rieseguire script di setup`,"tools.runSetupScriptTooltip":`Eseguire lo script di setup del progetto nel worktree`,"tools.runSetupScriptConfirm":`Rieseguire lo script di setup in questo workspace? Gli artefatti esistenti potrebbero essere sovrascritti.`,"tools.runSetupScriptBusy":`Impossibile rieseguire il setup mentre l'agent sta lavorando.`,"tools.noSetupScript":`Nessun script di setup configurato —`,"tools.setupScriptSuccess":`Script di setup completato con successo.`,"tools.setupScriptFailed":`Script di setup fallito.`,"tools.openNotion":`Apri in Notion`,"tools.openSentry":`Apri in Sentry`,"tools.review":`Revisiona modifiche`,"tools.reviewTooltip":`Chiedi all'agente di rivedere le modifiche di questo branch`,"tools.reviewBusy":`Agente occupato — attendi che sia libero`,"tools.fixCi":`Ripara CI`,"tools.fixCiTooltip":`Chiedi all'agente di diagnosticare e correggere i job di CI in errore`,"tools.fixCiLaunched":`Azione «Ripara CI» inviata all'agente`,"tools.fixCiFailed":`Impossibile avviare l'azione «Ripara CI»`,"tools.openFileManager":`Apri nel file manager`,"tools.openFileManagerTooltip":`Apri la cartella del worktree nel tuo file manager configurato`,"tools.openFileManagerFailed":`Impossibile aprire il file manager`,"tools.openTerminal":`Apri nel terminale`,"tools.openTerminalTooltip":`Apri il worktree nel terminale configurato`,"tools.openTerminalFailed":`Impossibile aprire il terminale`,"review.title":`Avvia revisione`,"review.subtitle":`Chiedi all'agente di rivedere le modifiche e dare un feedback.`,"review.additionalInstructions":`Istruzioni aggiuntive (opzionale)`,"review.additionalInstructionsPlaceholder":`Aggiungi istruzioni specifiche per la revisione…`,"review.newSession":`Nuova sessione`,"review.newSessionHint":`Avvia una nuova sessione invece di continuare quella attuale.`,"review.newSessionRequired":`Impostazioni diverse o il ritorno automatico richiedono una nuova sessione.`,"review.returnToSession":`Torna alla sessione attuale dopo la review`,"review.returnToSessionHint":`Riprende questa sessione con il riepilogo finale del reviewer. Se disattivato, la conversazione continua nella sessione di review.`,"review.readOnlyForced":`Una review che torna a questa sessione viene eseguita in sola lettura (Plan): non può modificare file né porre domande.`,"review.returnUnavailable":`La sessione attuale deve essere stata avviata per poter essere ripresa.`,"review.start":`Avvia revisione`,"review.cancel":`Annulla`,"review.launched":`Revisione avviata`,"review.failed":`Impossibile avviare la revisione`,"diff.title":`Diff`,"diff.side":`Affiancato`,"diff.inline":`In linea`,"diff.hideUnchanged":`Nascondi codice invariato`,"diff.showUnchanged":`Mostra codice invariato`,"diff.showUntracked":`Mostra file non tracciati`,"diff.hideUntracked":`Nascondi file non tracciati`,"diff.rollbackToRemote":`Ripristina alla versione remota`,"diff.rollbackConfirm":`Ripristinare {path} alla sua versione remota (origin)? Le modifiche locali a questo file andranno perse.`,"diff.rollbackConfirmOk":`Ripristina`,"diff.rollbackDone":`File ripristinato alla versione remota`,"diff.rollbackDoneRemote":`File ripristinato alla versione remota`,"diff.rollbackDoneHead":`Modifiche locali annullate (file ripristinato all'ultimo commit)`,"diff.rollbackDoneDeleted":`File non tracciato eliminato`,"diff.deleteUntracked":`Elimina file non tracciato`,"diff.deleteUntrackedConfirm":`Eliminare definitivamente {path}? Questo file non è tracciato da git — il suo contenuto andrà perso.`,"diff.deleteUntrackedConfirmOk":`Elimina`,"diff.rollbackFailed":`Rollback fallito`,"diff.rollbackFailedDetail":`Rollback non riuscito: {error}`,"diff.modeInspect":`Modifica`,"diff.modeReview":`Review`,"diff.addComment":`Aggiungi commento`,"diff.replyComment":`Rispondi`,"diff.editComment":`Modifica`,"diff.deleteComment":`Elimina`,"diff.deleteCommentConfirm":`Eliminare questo commento?`,"diff.commentPlaceholder":`Scrivi un commento di revisione… (Markdown supportato)`,"diff.reviewDraft":`Bozza di revisione`,"diff.reviewEmpty":`Nessun commento — passa sopra una riga del diff e clicca + per aggiungerne uno.`,"diff.reviewGlobalPlaceholder":`Messaggio generale di revisione (opzionale)`,"diff.submitReview":`Invia revisione ({n})`,"diff.reviewPending":`Una revisione è già in fase di invio.`,"diff.reviewEmptySubmission":`La revisione è vuota.`,"diff.reviewNotAccepted":`Il messaggio non è stato accettato. La revisione è stata conservata.`,"diff.reviewSubmitted":`Revisione inviata all'agente`,"diff.reviewSubmitFailed":`Invio della revisione fallito: {error}`,"diff.scopeBranch":`Branch`,"diff.scopeUnpushed":`Non pushato`,"diff.noChanges":`Nessuna modifica`,"diff.searchFiles":`Cerca file…`,"diff.noFileMatch":`Nessun file corrispondente`,"diff.selectFile":`Seleziona un file per visualizzare il diff`,"diff.fileLoadFailed":`Impossibile caricare questo diff`,"diff.fileLoadFailedHint":`Il file su disco è intatto — è fallito solo il caricamento del diff.`,"diff.fileListLoadFailed":`Impossibile caricare l’elenco dei file`,"diff.fileListLoadFailedHint":`È una richiesta fallita, non un branch senza modifiche.`,"diff.addToChat":`Aggiungi alla chat`,"diff.compareTitle":`Confronta commit`,"diff.compareFrom":`Da`,"diff.compareTo":`A`,"diff.compareSubmit":`Confronta`,"diff.compareSourceBase":`{branch} (base del branch)`,"diff.commitsReadOnly":`sola lettura`,"diffViewer.save":`Salva`,"diffViewer.savedAt":`Salvato`,"diffViewer.saveFailed":`Salvataggio non riuscito`,"diffViewer.saveFailedDetail":`Salvataggio non riuscito: {error}`,"diffViewer.unsavedChanges.title":`Modifiche non salvate`,"diffViewer.unsavedChanges.message":`Hai modifiche non salvate. Cosa vuoi fare?`,"diffViewer.unsavedChanges.save":`Salva`,"diffViewer.unsavedChanges.cancel":`Annulla`,"diffViewer.conflict.title":`File modificato su disco`,"diffViewer.conflict.message":`Il file è stato modificato fuori da Kōbō da quando lo hai aperto.`,"diffViewer.conflict.reload":`Ricarica (scarta locali)`,"diffViewer.conflict.keep":`Mantieni le mie`,"diffViewer.conflict.overwrite":`Sovrascrivi comunque`,"diffViewer.conflict.overwriteHint":`Sostituisce il file sul disco con la tua versione. L’altra modifica va persa.`,"diffViewer.conflict.keepHint":`Mantiene le tue modifiche nell’editor e adotta la nuova firma del disco, così il prossimo salvataggio funziona.`,"diffViewer.saveBlocked":`L’agente è in esecuzione — fermalo per salvare le tue modifiche.`,"diffViewer.unsavedBanner":`Modifiche non salvate. Ferma l’agente per salvarle.`,"diffViewer.closeConfirm.title":`Modifiche non salvate`,"diffViewer.closeConfirm.message":`Questo file contiene modifiche mai salvate. Chiudere il visualizzatore di diff le scarta.`,"diffViewer.closeConfirm.discard":`Chiudi senza salvare`,"diffViewer.criteriaRail":`Checklist di revisione`,"diffViewer.criteriaRailShow":`Mostra la checklist di revisione`,"diffViewer.criteriaRailHide":`Nascondi la checklist di revisione`,"diffViewer.fileTreeShow":`Mostra l’albero dei file`,"diffViewer.fileTreeHide":`Nascondi l’albero dei file`,"diffViewer.closeConfirm.saveAndClose":`Salva e chiudi`,"diffViewer.agentRunning":`L’agente è in esecuzione — fermalo per modificare`,"diffViewer.fileDeleted":`File eliminato`,"notification.agentFinished":`{name} — Agente terminato`,"notification.agentQuestion":`{name} — L'agente sta facendo una domanda`,"notification.awaitingReminder":`{name} - ti sta ancora aspettando ({minutes} min)`,"notification.agentPermissionRequest":`{name} — L'agente richiede un permesso`,"notification.autoLoopCompleted":`{name} — Auto-loop completato`,"notification.autoLoopWaitingForSlot":`{name} - L'auto-loop attende uno slot agente libero ({running}/{limit} in corso)`,"notification.autoLoopStalled":`{name} — Auto-loop bloccato (nessun progresso)`,"notification.autoLoopError":`{name} — Auto-loop fermato per errore`,"notification.autoLoopAwaitingClarification":`{name} — Auto-loop in pausa, in attesa del tuo chiarimento`,"notification.autoLoopPermissionOverridden":`{name} — Auto-loop ha forzato la modalità plan a bypass`,"notification.agentError":`{name} — Errore agente`,"contextMenu.rename":`Rinomina`,"contextMenu.editDescription":`Modifica descrizione`,"contextMenu.copyPath":`Copia percorso worktree`,"contextMenu.openEditor":`Apri nell'editor`,"contextMenu.openFileManager":`Apri nel file manager`,"contextMenu.unarchiveDisabledPurged":`Ripristina prima il worktree con Ripristina worktree oppure ricrealo manualmente. Kōbō rileva automaticamente i worktree corrispondenti.`,"workspaceList.unarchiveBlockedPurged":`Ripristina prima il worktree con Ripristina worktree oppure ricrealo manualmente. Kōbō rileva automaticamente i worktree corrispondenti.`,"contextMenu.purgeWorktree":`Libera spazio su disco (elimina worktree)`,"contextMenu.purgeWorktreeTooltip":`Elimina il worktree dal disco per recuperare spazio — la cronologia di chat e sessioni viene conservata. Archivia automaticamente il workspace.`,"contextMenu.purgeWorktreeDialogTitle":`Liberare spazio su disco?`,"contextMenu.purgeWorktreeDialogMessage":`La cartella worktree di «{name}» verrà eliminata dal disco. La cronologia di chat e sessioni viene conservata. Il workspace verrà archiviato automaticamente. Nella versione attuale non è possibile annullare.`,"contextMenu.purgeWorktreeDialogConfirm":`Elimina il worktree`,"contextMenu.purgeWorktreeSuccess":`Worktree eliminato — spazio su disco recuperato.`,"settings.autoPurgeOnPrMerged":`Elimina worktree al merge della PR`,"settings.autoPurgeOnPrMergedHint":`Se abilitato, il worktree viene eliminato dal disco non appena la PR viene mergiata (oltre all'archiviazione automatica). La cronologia delle chat viene conservata.`,"settings.autoLoopMaxRetries":`Numero massimo di tentativi automatici`,"settings.awaitingUserReminder":`Promemoria di domanda senza risposta`,"settings.awaitingUserReminderHint":`Minuti in cui un workspace può attendere la tua risposta prima che Kōbō te lo ricordi, poi a ogni intervallo successivo. 0 disattiva.`,"settings.localeLoadFailed":`Impossibile caricare questa lingua; resta attiva quella corrente.`,"settings.autoLoopMaxRetriesHint":`Mette in pausa la missione dopo questo numero di errori temporanei del motore o del server. Le quote attendono il ripristino senza consumare questo limite.`,"settings.retentionTitle":`Conservazione della cronologia delle conversazioni (disattivata di default)`,"settings.retentionWarning":`Attivare questa opzione elimina definitivamente dal database la cronologia delle conversazioni degli agenti, a partire da tutto ciò che è già più vecchio della finestra. Gli eventi eliminati non sono recuperabili.`,"settings.retentionHint":`Viene eseguita una volta all'avvio del server. Workspace, attività, sessioni, branch e worktree non vengono mai toccati — solo l'output registrato degli agenti.`,"settings.retentionDaysLabel":`Elimina gli eventi più vecchi di (giorni)`,"settings.retentionDaysHint":`0 — il valore predefinito — conserva tutti gli eventi per sempre. Indica un valore per attivare la conservazione.`,"settings.retentionKeepLabel":`Eventi sempre conservati per workspace`,"settings.retentionKeepHint":`Gli eventi più recenti di ogni workspace sopravvivono a prescindere dalla loro età, così un workspace vecchio ma ancora aperto mantiene una cronologia leggibile. Consigliato: 5000.`,"settings.retentionDisabledHint":`Conservazione disattivata: non verrà mai eliminato nulla.`,"settings.retentionConfirmTitle":`Eliminare definitivamente la cronologia delle conversazioni?`,"settings.retentionConfirmMessage":`Conservare solo {days} giorno/i di cronologia eliminerà definitivamente, al prossimo avvio del server, {count} dei {total} eventi degli agenti registrati — compreso tutto ciò che è già più vecchio. L'operazione è irreversibile. Continuare?`,"settings.retentionConfirmMessageUnknown":`Conservare solo {days} giorno/i di cronologia eliminerà definitivamente, al prossimo avvio del server, tutti gli eventi degli agenti più vecchi — compreso tutto ciò che è già accumulato. Non è stato possibile calcolare il volume esatto. L'operazione è irreversibile. Continuare?`,"settings.purgeDocsTitle":`Come funziona la pulizia — ripristino e permessi`,"settings.purgeDocsRestoreTitle":`Ripristinare un worktree eliminato (rilevamento automatico)`,"settings.purgeDocsRestoreIntro":`Un workspace eliminato conserva la cronologia chat e i metadati della PR, ma la cartella worktree non c'è più. Ricreala manualmente con uno di questi comandi — Kōbō rileva la riapparizione della cartella entro 30 secondi e riattiva automaticamente il workspace (rimuove dall'archivio + cancella il flag di eliminazione):`,"settings.purgeDocsRestoreCommands":`# GitHub (con CLI gh):
|
|
12
12
|
gh pr checkout [numero-pr] --recurse-submodules
|
|
13
13
|
|
|
14
14
|
# Oppure direttamente con git (funziona su GitHub anche dopo eliminazione del branch):
|
|
15
15
|
git fetch origin pull/[numero-pr]/head:[nome-branch]
|
|
16
16
|
git worktree add [percorso] [nome-branch]`,"settings.purgeDocsRestoreFootnote":`GitHub mantiene il ref HEAD della PR accessibile a lungo dopo l'eliminazione del branch sorgente (mesi / anni). Il rilevamento automatico gira nel watcher 30 s — nessuna azione UI necessaria una volta che la cartella riappare.`,"settings.purgeDocsPermissionsTitle":`Evitare errori di permessi durante la pulizia`,"settings.purgeDocsPermissionsIntro":`Docker spesso lascia file root-owned in node_modules / vendor dentro il worktree. Quando Kōbō prova a rimuoverli, ricevi EACCES / EPERM e la pulizia fallisce. Due modi per prevenirlo:`,"settings.purgeDocsPermissionsDocker":'Configurare il container per girare come utente host — direttiva USER nel Dockerfile, o `user: "${UID}:${GID}"` in docker-compose (con UID/GID esportati nella shell).',"settings.purgeDocsPermissionsAcl":`Pre-impostare una ACL di default sulla root dei worktrees — rete di sicurezza che funziona nella MAGGIOR PARTE dei casi (ext4/btrfs/xfs + bind mount Docker classico). Ogni nuovo file eredita allora una voce di accesso per il tuo utente, oltre al proprietario nominale:`,"settings.purgeDocsPermissionsAclCommand":` setfacl -d -m u:$(whoami):rwX [root-worktrees]`,"settings.purgeDocsPermissionsFootnote":"Limiti delle ACL: NON funzionano sui volumi Docker con nome (usa un bind mount), filesystem senza supporto ACL (NTFS, exFAT, tmpfs), SELinux strict con `:Z`, o quando Docker `userns-remap` è attivato. La soluzione più affidabile resta configurare l'utente nel container (opzione 1). Suggerimento: `rwX` (X maiuscola) aggiunge il bit eseguibile solo a directory e file già eseguibili — più pulito di `rwx` che renderebbe eseguibile ogni file di testo.","settings.purgeDocsPermissionsRecoverTitle":`Sbloccare un worktree già rotto (file root-owned esistenti)`,"settings.purgeDocsPermissionsRecoverIntro":`Se ti ritrovi con un worktree già pieno di file root-owned (Docker ha già girato, vendor / node_modules sono bloccati), l'ACL preventiva sopra non basta — devi sistemare i file ESISTENTI. Due approcci, entrambi da eseguire dentro la cartella del worktree:`,"settings.purgeDocsPermissionsRecoverAclIntro":`Opzione A — ACL ricorsiva (preserva l'ownership root per audit, aggiunge solo accesso per il tuo utente in parallelo):`,"settings.purgeDocsPermissionsRecoverAclCommand":`# imposta ACL di default per i file futuri E concede accesso a tutto l'esistente
|
|
17
|
-
sudo setfacl -Rd -m u:$(whoami):rwX . && sudo setfacl -R -m u:$(whoami):rwX .`,"settings.purgeDocsPermissionsRecoverChownIntro":`Opzione B — Prendere la proprietà (più semplice, perde la traccia "creato da root nel container" ma raramente conta):`,"settings.purgeDocsPermissionsRecoverChownCommand":` sudo chown -R $(whoami):$(whoami) .`,"settings.purgeDocsPermissionsRecoverFootnote":"Suggerimento: puoi eseguire questi comandi direttamente sulla root dei worktrees (es. `~/.worktrees/`) per coprire tutti i workspace esistenti E futuri in un colpo solo. Una volta fatto, la pulizia Kōbō funzionerà senza errori di permessi.","contextMenu.runSetup":`Esegui script di setup`,"contextMenu.exportEvents":`Esporta eventi (CSV)`,"contextMenu.dismissChangesRequested":`Segna «Modifiche richieste» come visto`,"contextMenu.dismissCiFailure":`Segna «CI in errore» come visto`,"contextMenu.restoreChangesRequested":`Segna «Modifiche richieste» come non visto`,"contextMenu.restoreCiFailure":`Segna «CI in errore» come non visto`,"contextMenu.exportingEvents":`Preparazione dell'esportazione…`,"contextMenu.exportEventsError":`Esportazione degli eventi non riuscita`,"contextMenu.openNotion":`Apri in Notion`,"contextMenu.openSentry":`Apri in Sentry`,"contextMenu.openPr":`Apri PR`,"contextMenu.ignorePrWatch":`Ignora i controlli PR`,"contextMenu.resumePrWatch":`Riprendi i controlli PR`,"contextMenu.prWatchToggleFailed":`Aggiornamento dei controlli PR non riuscito`,"workspace.favorite":`Segna come preferito`,"workspace.unfavorite":`Rimuovi dai preferiti`,"workspace.showFavoritesOnly":`Mostra solo i preferiti`,"workspace.searchArchivedToggle":`Cerca anche nei workspace archiviati`,"workspace.descriptionPlaceholder":`Aggiungi una breve descrizione`,"workspace.descriptionDialogHint":`Testo semplice, massimo 200 caratteri. Lasciare vuoto per cancellare.`,"workspace.descriptionTooLong":`La descrizione deve avere al massimo 200 caratteri.`,"workspace.descriptionSaveFailed":`Impossibile salvare la descrizione.`,"workspace.agentDescriptionTooltip":`Stato live mantenuto dall'agente`,"mcp.tool.setWorkspaceDescription":`Imposta la breve descrizione del workspace (≤ 200 caratteri).`,"tags.manage":`Gestisci tag`,"tags.manageTitle":`Gestisci i tag del workspace`,"tags.noTagsDefined":`Nessun tag definito. Aggiungine in Impostazioni > Globale > Tag.`,"tags.orphanedHint":`{count} tag non sono più nel catalogo globale. Deseleziona per rimuoverli.`,"settings.tagsTitle":`Tag dei workspace`,"settings.tagsHint":`Definisci i tag assegnabili ai workspace. Digita per aggiungere, clicca la croce per rimuovere.`,"settings.tagsLabel":`Tag disponibili`,"settings.branchPrefixesTitle":`Prefissi di branch`,"settings.branchPrefixesHint":`Gestisci i prefissi di branch Git disponibili nella pagina di creazione del workspace. Il primo è preselezionato per impostazione predefinita.`,"settings.branchPrefixesEmpty":`Nessun prefisso di branch definito. Aggiungine almeno uno qui sotto.`,"settings.branchPrefixesAddLabel":`Nuovo prefisso`,"settings.branchPrefixesEditHint":`Clicca per rinominare`,"settings.branchPrefixesMoveUp":`Sposta su`,"settings.branchPrefixesMoveDown":`Sposta giù`,"settings.worktreesTitle":`Worktree Git`,"settings.worktreesHint":`Scegli dove creare i worktree dei nuovi workspace. I percorsi relativi sono risolti dal progetto; sono supportati percorsi assoluti Linux/macOS e Windows, $HOME, ~ e %USERPROFILE%.`,"settings.worktreesPathLabel":`Percorso worktree`,"settings.worktreesPathRequired":`Il percorso worktree è obbligatorio.`,"settings.worktreesPrefixByProject":`Aggiungi il nome del progetto come prefisso ai worktree`,"settings.worktreesPrefixByProjectHint":`Posiziona ogni worktree in una sottocartella con il nome del progetto per evitare collisioni quando più progetti condividono la stessa radice.`,"settings.shareTitle":`Condividi configurazione`,"settings.shareHint":`Esporta impostazioni, template e tag come bundle JSON. Le chiavi MCP sono escluse per sicurezza.`,"settings.exportConfig":`Esporta`,"settings.importConfig":`Importa`,"settings.exportSuccess":`Configurazione esportata`,"settings.importSuccess":`Configurazione importata`,"settings.importConfirmTitle":`Importa configurazione`,"settings.importConfirmMessage":`Questo sostituirà le tue impostazioni, template e tag attuali. Le chiavi MCP vengono preservate. Continuare?`,"settings.mcp.title":`Connessioni LLM esterni (MCP)`,"settings.mcp.hint":`Collega un client MCP per leggere conversazioni, inviare messaggi e rispondere alle domande dei workspace.`,"settings.mcp.remoteDisabled":`Le connessioni remote richiedono accesso alla rete e un riavvio del server dopo l’attivazione.`,"settings.mcp.clientName":`Nome del client (facoltativo)`,"settings.mcp.connection":`Connessione`,"settings.mcp.local":`HTTP locale`,"settings.mcp.remote":`HTTP remoto`,"settings.mcp.proxy":`Proxy inverso`,"settings.mcp.stdio":`Stdio locale`,"settings.mcp.copyUrl":`Copia URL`,"settings.mcp.copyConfig":`Copia configurazione`,"settings.mcp.copyWithToken":`Copia con token`,"settings.mcp.genericFormat":`Questi esempi usano il formato generico mcpServers. Adatta il contenitore al tuo client MCP. Le anteprime mostrano un segnaposto per il token.`,"settings.mcp.tokenUnavailable":`Nessun token disponibile. Attiva l’accesso alla rete prima di copiare una configurazione autenticata.`,"settings.mcp.stdioUnavailable":`Il punto di ingresso stdio non è disponibile in questa installazione. Usa HTTP o compila prima Kōbō.`,"settings.mcp.copyFailed":`Impossibile copiare negli appunti.`,"tours.settings.mcp.title":`Collega un LLM esterno`,"tours.settings.mcp.description":`Copia una configurazione HTTP o stdio per consentire a un assistente esterno di comunicare con i tuoi workspace.`,"settings.network.title":`Accesso di rete`,"settings.network.hint":`Controlla Kōbō da un altro dispositivo della tua LAN affidabile. Off = solo localhost. On = raggiungibile sulla rete, protetto da un token. Riavvia Kōbō dopo il cambio.`,"settings.network.enable":`Abilita accesso di rete`,"settings.network.behindProxy":`Dietro un reverse proxy`,"settings.network.behindProxyHint":`Kōbō non può più distinguere la tua macchina da una richiesta inoltrata — anche localhost dovrà presentare il token d'ora in poi. Attivalo solo se un reverse proxy (Traefik, nginx, Caddy…) si trova davanti a Kōbō.`,"settings.network.restartRequired":`Riavvia Kōbō per applicare il nuovo indirizzo di bind.`,"settings.network.token":`Token di accesso`,"settings.network.copy":`Copia`,"settings.network.copied":`Copiato`,"settings.network.regenerate":`Rigenera`,"settings.network.regenerateConfirm":`Rigenerare il token? I dispositivi connessi avranno bisogno del nuovo token.`,"settings.network.urls":`URL LAN`,"settings.network.scan":`Scansiona per connetterti`,"settings.network.noUrls":`Nessun indirizzo LAN rilevato.`,"settings.network.loadFailed":`Impossibile caricare le impostazioni di accesso di rete.`,"settings.network.updateFailed":`Impossibile aggiornare le impostazioni di accesso di rete.`,"settings.unsavedChanges.title":`Modifiche non salvate`,"settings.unsavedChanges.message":`Questo progetto ha modifiche non salvate. Cambiando progetto andranno perse.`,"settings.unsavedChanges.discard":`Scarta e cambia`,"settings.unsavedChanges.cancel":`Annulla`,"settings.loadFailed":`Impossibile caricare le impostazioni`,"settings.loadFailedHint":`Il salvataggio è disattivato: il modulo mostra i valori predefiniti e scriverli sovrascriverebbe la tua configurazione reale.`,"health.title":`Stato`,"health.tooltip":`Stato del sistema`,"changelog.title":`Changelog`,"changelog.tooltip":`Novità di Kōbō`,"changelog.empty":`Nessun changelog disponibile.`,"changelog.current":`corrente`,"changelog.currentVersion":`Versione corrente: v{version}`,"health.envTitle":`Ambiente`,"health.version":`Versione`,"health.koboHome":`Kōbō home`,"health.dbTitle":`Database`,"health.dbPath":`Percorso`,"health.dbSize":`Dimensione`,"health.schemaVersion":`Versione schema`,"health.settingsSchemaVersion":`Schema impostazioni`,"health.runtimesTitle":`Runtime agente`,"health.claudeCliTitle":`Claude Code`,"health.claudeCliMissing":`claude non trovato nel PATH`,"health.codexCliTitle":`OpenAI Codex`,"health.codexCliMissing":`binario codex non risolvibile`,"health.forgeCliTitle":`CLI di forge (gh / glab)`,"health.forgeCliMissing":`Né gh né glab trovati — pull request e monitoraggio CI non disponibili`,"health.workspacesTitle":`Workspace`,"health.workspacesCount":`{total} totali, {archived} archiviati`,"health.worktreesMissing":`{count} worktree mancanti sul disco`,"health.sessionsTitle":`Sessioni agente`,"health.sessionsOrphaned":`{n} sessione/sessioni orfana/e in esecuzione`,"health.integrationsTitle":`Integrazioni`,"health.integrationConfigured":`configurata`,"health.integrationMissing":`non configurata`,"health.integrationDisabled":`disabilitata`,"settings.integrationEnabled":`Attiva integrazione`,"health.activeTitle":`Stato attivo`,"health.activeQuotaBackoffs":`Quota backoff in attesa`,"health.activeWakeups":`Wakeup programmati`,"health.activeAutoLoop":`Auto-loop in esecuzione`,"health.activeAgentSessions":`Sessioni agente attive`,"health.activeDevServers":`Dev server in esecuzione`,"health.noneActive":`Nessuno.`,"health.quotaResumeAt":`riprende alle {time}`,"health.wakeupAt":`sveglia alle {time}`,"health.startedAgo":`avviata {time} fa`,"health.autoLoopReady":`pronto, in iterazione`,"health.autoLoopGrooming":`grooming in corso`,"session.started":`Sessione avviata`,"session.ended":`Sessione terminata`,"session.compacted":`Contesto compattato`,"session.endedCompleted":`Turno terminato — invia un messaggio per continuare`,"session.endedKilled":`Sessione interrotta`,"session.endedError":`Sessione terminata con un errore`,"session.endedWatchdog":`Sessione chiusa forzatamente dopo un periodo di inattività`,"tool.running":`In corso...`,"activity.raw_lines":`Righe di output grezze ({n})`,"activity.loading_older":`Caricamento messaggi precedenti…`,"activity.compacting":`Compattazione del contesto…`,"activity.prev_user_message":`Messaggio utente precedente`,"activity.scroll_to_bottom":`Scorri in fondo`,"activity.empty":`Ancora nulla`,"activity.emptyHint":`L’output dell’agente comparirà qui appena una sessione parte.`,"activity.a11y.region":`Annunci di attività dell’agente`,"activity.a11y.agentSaid":`Agente: {text}`,"activity.a11y.toolStarted":`Strumento {name} avviato`,"activity.a11y.toolFinished":`Strumento {name} completato`,"activity.a11y.toolFailed":`Strumento {name} fallito`,"chat.systemPrompt":`Prompt di sistema`,"chat.agent":`Agente`,"chat.cleanupScript":`Script di pulizia`,"chat.archiveScript":`Script di archiviazione`,"chat.setupScript":`Script di setup`,"chat.hookScript":`Hook {event}`,"chat.scriptDone":`Fatto`,"chat.scriptComplete":`[{phase}] Completato`,"chat.scriptError":`[{phase}] Errore: {message}`,"chat.unknownError":`sconosciuto`,"chat.you":`Tu`,"chat.session":`Sessione`,"chat.nActions":`{n} azione | {n} azioni`,"chat.lastUpdatedAt":`Ultimo aggiornamento alle {time}`,"chat.scrollToTurnTop":`Scorri all'inizio del messaggio`,"migration.backing_up":`Backup del database in corso…`,"migration.running":`Migrazione dei dati dell'agente — {processed}/{total}`,"migration.error":`Migrazione non riuscita`,"migration.backup_location":`Un backup è stato salvato in {path}. Riavvia Kōbō per riprovare.`,"migration.retry":`Riavvia Kōbō per riprovare.`,"engine.select":`Engine`,"engine.model":`Modello`,"engine.effort":`Livello di ragionamento`,"wakeup.scheduledIn":`Prossimo risveglio tra {n}s`,"wakeup.scheduledAt":`Prossimo risveglio alle {time}`,"wakeup.firing":`Risveglio in corso...`,"wakeup.reason":`Motivo: {reason}`,"wakeup.cancel":`Annulla questo risveglio`,"wakeup.pendingIndicator":`Risveglio programmato`,"cron.pendingIndicator":`{n} cron programmato/i`,"schedule.tabLabel":`Pianificazione`,"schedule.admissionTitle":`Nuova sessione automatica attualmente non disponibile.`,"schedule.admissionHint":`Le scadenze restano invariate. I messaggi in conversazioni esistenti seguono regole proprie.`,"schedule.admission.not-found":`Spazio non trovato.`,"schedule.admission.archived":`Spazio archiviato.`,"schedule.admission.purged":`Ripristina il worktree.`,"schedule.admission.shutdown":`Il server si sta arrestando.`,"schedule.admission.lifecycle":`Operazione sullo spazio in corso.`,"schedule.admission.active-session":`La sessione attuale non è ancora chiusa.`,"schedule.admission.awaiting-user":`È richiesta una risposta utente.`,"schedule.admission.compacting":`Compattazione del contesto in corso.`,"schedule.admission.quota":`In attesa del ripristino della quota.`,"schedule.admission.blocked":`Ciclo bloccato; risolvi la causa indicata.`,"schedule.admission.capacity":`Limite di concorrenza raggiunto: {running}/{limit} sessioni.`,"schedule.panelTitle":`Automazione`,"schedule.panelDescription":`Risvegliare questo workspace più tardi o eseguire istruzioni secondo una pianificazione.`,"schedule.activeTitle":`Pianificazioni attive`,"schedule.emptyTitle":`Nessuna pianificazione`,"schedule.emptyDescription":`Crea un wakeup singolo o un’attività ricorrente qui sotto.`,"schedule.cancelWakeup":`Annulla questo wakeup`,"schedule.cancelCron":`Elimina questa attività ricorrente`,"schedule.createTitle":`Crea una pianificazione`,"schedule.createDescription":`Scegli quando e come deve essere eseguito l'agente.`,"schedule.typeWakeup":`Wakeup singolo`,"schedule.typeRecurring":`Attività ricorrente`,"schedule.wakeupDescription":`Esegui il prompt una volta dopo un intervallo.`,"schedule.cronDescription":`Esegui il prompt periodicamente con una frequenza fissa.`,"schedule.promptHint":`Istruzioni che verranno inviate all'agente`,"schedule.frequencyTitle":`Frequenza`,"schedule.advancedDescription":`Usa un’espressione cron grezza`,"schedule.cronExpressionLabel":`Espressione cron`,"schedule.sessionModeTitle":`Sessione di esecuzione`,"schedule.modeResume":`Riprendi sessione`,"schedule.oneShotHint":`Rimuovi questa pianificazione dopo la prima esecuzione.`,"schedule.wakeupTitle":`Wakeup in attesa`,"schedule.cronsTitle":`Pianificazioni ricorrenti`,"schedule.noWakeup":`Nessun wakeup pianificato`,"schedule.noCrons":`Nessun cron pianificato`,"schedule.invalidCron":`Inattiva: espressione non valida. Elimina e ricrea questa pianificazione.`,"schedule.nextFireAt":`prossimo alle {time}`,"schedule.lastFiredAt":`ultimo {time} fa`,"schedule.addCronTitle":`Aggiungi un'attività ricorrente`,"schedule.addWakeupTitle":`Programma un wakeup`,"schedule.every":`Ogni`,"schedule.unitMinutes":`minuti`,"schedule.unitHours":`ore`,"schedule.unitDays":`giorni`,"schedule.daysDriftWarning":`L'intervallo può ridursi a 1 giorno a fine mese (limite di cron).`,"schedule.advancedExpression":`Espressione avanzata (opzionale)`,"schedule.advancedHint":`Cron grezzo (es. */15 * * * *) o {'@'}hourly/{'@'}daily — sostituisce il selettore se compilato.`,"schedule.promptLabel":`Prompt`,"schedule.labelOptional":`Etichetta (opzionale)`,"schedule.delayMinutes":`Ritardo (minuti)`,"schedule.modeFresh":`Nuova sessione`,"schedule.oneShot":`Esegui una sola volta`,"schedule.addCronBtn":`Aggiungi cron`,"schedule.addWakeupBtn":`Programma wakeup`,"schedule.cronCreated":`Attività ricorrente aggiunta`,"schedule.wakeupCreated":`Wakeup programmato`,"askUserQuestion.title":`L'agente sta facendo una domanda`,"askUserQuestion.submit":`Invia risposta`,"askUserQuestion.multiSelectHint":`Seleziona una o più opzioni`,"askUserQuestion.otherOption":`Altro`,"askUserQuestion.otherOptionHint":`specifica nel prossimo messaggio`,"askUserQuestion.freeFormLabel":`Specifica la tua risposta`,"askUserQuestion.freeFormHint":`Questa risposta verrà inviata direttamente all'agente.`,"askUserQuestion.noPending":`Nessuna domanda in attesa`,"askUserQuestion.next":`Avanti`,"askUserQuestion.previous":`Indietro`,"askUserQuestion.cancel":`Annulla`,"askUserQuestion.cancelTooltip":`Salta questa domanda — l'agente proseguirà senza risposta`,"askUserQuestion.collapse":`Riduci il pannello della domanda`,"askUserQuestion.expand":`Espandi il pannello della domanda`,"permissionRequest.title":`L'agente vuole usare uno strumento`,"permissionRequest.allow":`Consenti`,"permissionRequest.allowOnce":`Consenti una volta`,"permissionRequest.allowTurn":`Consenti questo turno`,"permissionRequest.operationUnavailable":`Dettagli non disponibili; autorizza una volta o l’intero strumento.`,"permissionRequest.allowOperation":`Consenti sempre questa operazione`,"permissionRequest.allowTool":`Consenti sempre questo strumento`,"permissionRequest.deny":`Nega`,"permissionRequest.tool":`Strumento`,"permissionRequest.input":`Input`,"permissionRequest.rawInput":`Dettagli tecnici`,"permissionRequest.collapse":`Riduci il pannello dei permessi`,"permissionRequest.expand":`Espandi il pannello dei permessi`,"permissionRequest.denied":`negato dall'utente`,"workspaceStatus.created":`creato`,"workspaceStatus.extracting":`estrazione`,"workspaceStatus.brainstorming":`brainstorming`,"workspaceStatus.compacting":`compattazione`,"chatInput.compactingBanner":`Compattazione del contesto in corso. Potrai inviare messaggi al termine.`,"workspaceStatus.executing":`in corso`,"workspaceStatus.awaitingUser":`in attesa della tua risposta`,"workspaceStatus.completed":`completato`,"workspaceStatus.idle":`inattivo`,"workspaceStatus.error":`errore`,"workspaceStatus.quota":`quota raggiunta`,"workspaceStatus.retrying":`ripresa automatica`,"workspaceList.prOpen":`#{n} — Pull request aperta`,"workspaceList.prWatchDisabledIndicator":`Controlli PR ignorati per questo workspace`,"workspaceList.prChangesRequested":`#{n} — Modifiche richieste`,"workspaceList.attentionCiFailed":`CI fallita`,"workspaceList.attentionChangesRequested":`Modifiche richieste`,"workspaceList.attentionReadyToMerge":`Pronto per il merge`,"autoLoop.status.active":`Attivo`,"autoLoop.status.waiting":`In attesa`,"autoLoop.status.blocked":`Bloccato`,"autoLoop.status.completed":`Completato`,"autoLoop.status.stopped":`Arrestato`,"autoLoop.phase.grooming":`Preparazione`,"autoLoop.phase.execution":`Esecuzione`,"autoLoop.phase.finalization":`Finalizzazione`,"autoLoop.iteration":`Iterazione {count}`,"autoLoop.resume":`Riprendi auto-loop`,"autoLoop.retryAt":`Ripresa prevista per`,"autoLoop.actionFailed":`Impossibile completare l’azione.`,"autoLoop.messages.count":`{count} istruzione/i in coda`,"autoLoop.messages.pending":`In coda`,"autoLoop.messages.dispatching":`Invio in corso`,"autoLoop.messages.unknown":`Consegna incerta`,"autoLoop.messages.delivered":`Consegnata`,"autoLoop.messages.cancel":`Annulla l’istruzione`,"autoLoop.messages.acknowledge":`Segna come ricevuta`,"autoLoop.messages.retry":`Invia di nuovo`,"autoLoop.messages.unknownHelp":`Non è stato possibile confermare la consegna. Controlla la conversazione prima di decidere. Un nuovo invio potrebbe duplicare un’istruzione già ricevuta.`,"autoLoop.reason.quota":`In attesa della quota del fornitore.`,"autoLoop.reason.transient":`Ripresa dopo un’interruzione temporanea.`,"autoLoop.reason.awaiting-user":`In attesa della tua risposta.`,"autoLoop.reason.capacity-or-lifecycle":`In attesa di un posto disponibile per un agente.`,"autoLoop.reason.message-delivery-unknown":`Risolvi l’istruzione con consegna incerta prima di riprendere.`,"autoLoop.reason.error":`Il ciclo richiede attenzione prima di continuare.`,"autoLoop.reason.stall":`Nessun progresso rilevato. Controlla l’ultima sessione prima di riprendere.`,"autoLoop.reason.awaiting-clarification":`È necessario un chiarimento prima di continuare.`,"autoLoop.toggle":`Auto-loop`,"autoLoop.start":`Avvia l'auto-loop`,"autoLoop.prepare":`Prepara per l'auto-loop`,"autoLoop.reprepare":`Ri-prepara per l'auto-loop`,"autoLoop.reprepareTooltip":`Rilancia la fase di grooming per aggiungere o aggiornare le attività prima di riavviare il loop`,"autoLoop.prepareBusy":`Attendi che l'agente finisca prima di preparare`,"autoLoop.forceReady":`So cosa faccio — salta la preparazione`,"autoLoop.forceReadyConfirm":`Saltare la preparazione e segnare auto-loop pronto? Il loop potrebbe bloccarsi se le attività non sono atomiche.`,"autoLoop.stop":`Ferma l'auto-loop`,"autoLoop.notReady":`Esegui prima «Prepara per l'auto-loop»`,"autoLoop.noTasks":`Aggiungi prima delle attività`,"autoLoop.progress":`Auto-loop · {done}/{total} attività`,"autoLoop.preparing":`Auto-loop · preparazione`,"autoLoop.preparingTooltip":`Grooming in corso — l'agente sta creando / revisionando le attività. Il loop partirà quando chiamerà mark_auto_loop_ready.`,"autoLoop.running":`Auto-loop in corso`,"autoLoop.startInMode":`Avvia in modalità auto-loop`,"autoLoop.brainstormModelPrefix":`Brainstorm:`,"autoLoop.brainstormModelTooltip":`Modello usato solo per la sessione di brainstorming iniziale — ogni attività successiva usa il modello scelto sopra`,"autoLoop.brainstormReasoningPrefix":`Brainstorm:`,"autoLoop.brainstormReasoningTooltip":`Livello di ragionamento usato solo per la sessione di brainstorming iniziale`,"autoLoop.executionModelPrefix":`Loop:`,"autoLoop.executionModelTooltip":`Modello usato per ogni attività dell'auto-loop dopo la sessione di brainstorming iniziale`,"autoLoop.sessionMode.perTask":`Nuova sessione per attività`,"autoLoop.sessionMode.label":`Sessione:`,"autoLoop.sessionMode.perTaskTooltip":`Ogni attività avvia una nuova sessione Claude Code senza memoria delle attività precedenti`,"autoLoop.sessionMode.continuous":`Sessione continua`,"autoLoop.sessionMode.continuousTooltip":`Tutte le attività si susseguono nella stessa sessione — l'agente mantiene tutto il contesto, ma la sessione si allunga nel tempo`,"koboCommand.prepAutoloopDesc":`Preparare le attività per la modalità auto-loop (atomicità)`,"staleSessionBanner.title":`Auto-loop in corso`,"staleSessionBanner.message":`Stai visualizzando una sessione precedente — l'agente sta lavorando nella più recente.`,"staleSessionBanner.staleTitle":`Sessione precedente`,"staleSessionBanner.staleMessage":`Stai visualizzando una sessione precedente — i messaggi inviati andranno a questa sessione, non alla più recente.`,"staleSessionBanner.switchToCurrent":`Passa a quella corrente`,"network.login.title":`Accesso di rete`,"network.login.description":`Questo Kōbō richiede un token per essere controllato dalla rete. Incolla il token mostrato nelle Impostazioni sulla macchina host.`,"network.login.tokenLabel":`Token`,"network.login.tokenPlaceholder":`Incolla il tuo token`,"network.login.connect":`Connetti`,"network.login.invalid":`Token non valido`,"network.login.serverError":`Errore del server — riprova.`,"network.login.unreachable":`Kōbō non è raggiungibile — controlla la connessione.`,"layout.toggleWorkspaces":`Mostra/nascondi il pannello degli spazi`,"layout.togglePanel":`Mostra/nascondi il pannello laterale`,"unsaved.title":`Uscire senza salvare?`,"unsaved.message":`Hai modifiche non salvate. Uscire da questa pagina le scarta.`,"unsaved.leave":`Esci`,"unsaved.stay":`Resta`,"prCheckout.staleRetriesExhausted":`Lo stato del repository ha continuato a cambiare mentre applicavamo le tue scelte. Chiudi questa finestra e riprova dal selettore delle pull request.`,"prPicker.title":`Importa da una pull request`,"prPicker.filterAll":`Tutte`,"prPicker.filterMine":`Le mie`,"prPicker.filterReviewRequested":`Revisione richiesta`,"prPicker.searchPlaceholder":`Cerca pull request…`,"prPicker.loadMore":`Carica altre`,"prPicker.empty":`Nessuna pull request aperta corrisponde.`,"prPicker.forkNotSupported":`Questa PR proviene da un fork; Kōbō non può eseguirne il checkout.`,"prPicker.loadFailed":`Impossibile caricare le pull request.`,"prPicker.badge.workspaceExists":`Già aperta in Kōbō`,"prPicker.badge.worktreePresent":`Worktree presente`,"prPicker.badge.localBranch":`Branch locale`,"prPicker.badge.new":`Nuova`,"prPicker.badge.draft":`Bozza`,"prCheckout.title":`Prepara la worktree`,"prCheckout.apply":`Applica`,"prCheckout.cancel":`Annulla`,"prCheckout.retry":`Riprova`,"prCheckout.diagnoseFailed":`Impossibile diagnosticare la pull request.`,"prCheckout.resolveFailed":`Impossibile risolvere il checkout della pull request.`,"prCheckout.path.required":`Inserisci un percorso di worktree che non esista già.`,"prCheckout.workspace.restoreNotAvailable":"Il ripristino di un workspace eliminato non è ancora disponibile da qui. Ricrea la sua cartella worktree su disco (ad es. con `git worktree add`) e Kōbō la ricollegherà automaticamente entro circa 30 secondi.","prCheckout.staleReloaded":`Il repository è cambiato; la diagnosi è stata aggiornata.`,"prCheckout.step.blocked":`Impossibile continuare`,"prCheckout.step.path":`Posizione della worktree`,"prCheckout.step.workspace":`Workspace esistente`,"prCheckout.step.worktree":`Worktree esistente`,"prCheckout.step.operation":`Operazione git in corso`,"prCheckout.step.changes":`Modifiche non commitate`,"prCheckout.step.divergence":`Branch locale vs origin`,"prCheckout.workspace.activeHint":`Un workspace chiamato "{name}" segue già questo branch.`,"prCheckout.workspace.open":`Apri quel workspace`,"prCheckout.workspace.continue":`Continua su un altro percorso`,"prCheckout.workspace.unarchive":`Ripristina e aprilo`,"prCheckout.workspace.restore":`Ricrea la sua worktree`,"prCheckout.worktree.orphanHint":`Esiste già una worktree su questo branch in {path}.`,"prCheckout.worktree.attach":`Collegala`,"prCheckout.worktree.branchInUse":`Questo branch è già estratto. Collega il worktree esistente.`,"prCheckout.worktree.createElsewhere":`Creane un'altra altrove`,"prCheckout.operation.hint":`Un {operation} è in corso in quella worktree.`,"prCheckout.operation.abort":`Interrompilo`,"prCheckout.operation.cancel":`Lascialo stare e fermati qui`,"prCheckout.changes.hint":`{modified} modificati, {staged} in stage, {untracked} non tracciati.`,"prCheckout.changes.stash":`Metti in stash`,"prCheckout.changes.commit":`Fai il commit`,"prCheckout.changes.discard":`Scartale (conservate in uno stash etichettato)`,"prCheckout.changes.keepResetConflict":`Conservare le modifiche locali è incompatibile con un reset. Usa stash o commit, oppure conserva il branch.`,"prCheckout.changes.keep":`Lasciale come sono`,"prCheckout.divergence.behindHint":`Il tuo branch è indietro di {behind} commit rispetto a origin.`,"prCheckout.divergence.aheadHint":`Il tuo branch ha {ahead} commit non pushati.`,"prCheckout.divergence.divergedHint":`{ahead} avanti, {behind} indietro rispetto a origin.`,"prCheckout.divergence.fastForward":`Fast-forward su origin`,"prCheckout.divergence.rebase":`Rebase su origin`,"prCheckout.divergence.resetHard":`Reimposta su origin (viene prima creato un branch di backup)`,"prCheckout.divergence.keep":`Mantieni lo stato locale`,"prCheckout.blocked.forgeUnavailable":`Il CLI della forge manca o non è autenticato.`,"prCheckout.blocked.forkPr":`Questa PR proviene da un fork; Kōbō non può eseguirne il checkout.`,"prCheckout.blocked.headBranchDeleted":`Il branch non esiste più sul remote.`,"prCheckout.blocked.indexLock":`È in corso un altro processo git (index.lock è presente).`,"prCheckout.blocked.pathOccupied":`{path} esiste già e non è una worktree.`,"prCheckout.blocked.worktreeOtherBranch":`{path} è una worktree su un altro branch ({branch}).`,"prCheckout.blocked.noCommonAncestor":`Esiste già un branch locale chiamato {branch} con una storia non correlata.`,"split.title":`Vista doppia workspace`,"split.open":`Apri affiancati`,"split.openBeside":`Apri accanto`,"split.close":`Chiudi vista doppia`,"split.left":`Workspace sinistro`,"split.right":`Workspace destro`,"split.choose":`Scegli un workspace`,"split.recipient":`Invia a: {name}`,"absence.title":`Dalla tua ultima visita`,"settings.activityDigestHint":`Mostra un riepilogo degli eventi avvenuti durante la tua assenza. Disattivando questa opzione, la voce viene nascosta e la raccolta di nuovi eventi si interrompe, senza eliminare la cronologia esistente.`,"absence.pending":`Modifiche da consultare`,"absence.retention":`Attività importanti degli ultimi 30 giorni, registrate dall’installazione di questa funzione. Le visite sono memorizzate solo in questo browser.`,"absence.since":`Dal {date}`,"absence.error":`Impossibile caricare le attività.`,"absence.retry":`Riprova`,"absence.empty":`Nessuna nuova attività.`,"absence.more":`Carica altro`,"absence.markRead":`Segna gli eventi visualizzati come letti`,"absence.kind.question":`Domanda posta`,"absence.kind.permission":`Approvazione richiesta`,"absence.kind.completed":`Sessione terminata`,"absence.kind.error":`Errore dell’agente`,"absence.kind.pr-merged":`PR unita`,"absence.kind.pr-approved":`PR approvata`,"absence.kind.pr-changes-requested":`Modifiche richieste`,"absence.kind.pr-ci-failed":`CI non riuscita`,"absence.kind.pr-ci-recovered":`CI ripristinata`,"absence.kind.pr-merge-conflict":`Conflitto di merge`,"absence.kind.pr-ready-to-merge":`PR pronta per il merge`,"absence.kind.archived":`Workspace archiviato`,"absence.kind.purged":`Worktree eliminato`,"absence.kind.restored":`Worktree ripristinato`,"tours.split.controls.title":`Due workspace indipendenti`,"tours.split.controls.description":`Scegli un workspace per pannello. Ridimensiona il divisore; ogni conversazione mantiene il proprio destinatario e i propri pannelli.`,"tours.home.sort.title":`Ordina i workspace`,"tours.home.sort.description":`Scegli ordine e direzione in ogni gruppo. La scelta viene memorizzata.`,"tours.home.activity.title":`Consulta le attività dopo un’assenza`,"tours.home.activity.description":`In fondo al pannello sinistro trovi domande, sessioni terminate, errori e modifiche alle PR dalla tua ultima visita.`};export{e as default};
|
|
17
|
+
sudo setfacl -Rd -m u:$(whoami):rwX . && sudo setfacl -R -m u:$(whoami):rwX .`,"settings.purgeDocsPermissionsRecoverChownIntro":`Opzione B — Prendere la proprietà (più semplice, perde la traccia "creato da root nel container" ma raramente conta):`,"settings.purgeDocsPermissionsRecoverChownCommand":` sudo chown -R $(whoami):$(whoami) .`,"settings.purgeDocsPermissionsRecoverFootnote":"Suggerimento: puoi eseguire questi comandi direttamente sulla root dei worktrees (es. `~/.worktrees/`) per coprire tutti i workspace esistenti E futuri in un colpo solo. Una volta fatto, la pulizia Kōbō funzionerà senza errori di permessi.","contextMenu.runSetup":`Esegui script di setup`,"contextMenu.exportEvents":`Esporta eventi (CSV)`,"contextMenu.dismissChangesRequested":`Segna «Modifiche richieste» come visto`,"contextMenu.dismissCiFailure":`Segna «CI in errore» come visto`,"contextMenu.restoreChangesRequested":`Segna «Modifiche richieste» come non visto`,"contextMenu.restoreCiFailure":`Segna «CI in errore» come non visto`,"contextMenu.exportingEvents":`Preparazione dell'esportazione…`,"contextMenu.exportEventsError":`Esportazione degli eventi non riuscita`,"contextMenu.openNotion":`Apri in Notion`,"contextMenu.openSentry":`Apri in Sentry`,"contextMenu.openPr":`Apri PR`,"contextMenu.ignorePrWatch":`Ignora i controlli PR`,"contextMenu.resumePrWatch":`Riprendi i controlli PR`,"contextMenu.prWatchToggleFailed":`Aggiornamento dei controlli PR non riuscito`,"workspace.favorite":`Segna come preferito`,"workspace.unfavorite":`Rimuovi dai preferiti`,"workspace.showFavoritesOnly":`Mostra solo i preferiti`,"workspace.tagFilter":`Filtra per tag`,"workspace.tagFilterActive":`Filtra per tag ({count} selezionati)`,"workspace.tagFilterClear":`Cancella`,"workspace.tagFilterEmpty":`Ancora nessun tag. Aggiungili dal menu di un workspace.`,"workspace.searchArchivedToggle":`Cerca anche nei workspace archiviati`,"workspace.descriptionPlaceholder":`Aggiungi una breve descrizione`,"workspace.descriptionDialogHint":`Testo semplice, massimo 200 caratteri. Lasciare vuoto per cancellare.`,"workspace.descriptionTooLong":`La descrizione deve avere al massimo 200 caratteri.`,"workspace.descriptionSaveFailed":`Impossibile salvare la descrizione.`,"workspace.agentDescriptionTooltip":`Stato live mantenuto dall'agente`,"mcp.tool.setWorkspaceDescription":`Imposta la breve descrizione del workspace (≤ 200 caratteri).`,"tags.manage":`Gestisci tag`,"tags.manageTitle":`Gestisci i tag del workspace`,"tags.noTagsDefined":`Nessun tag definito. Aggiungine in Impostazioni > Globale > Tag.`,"tags.orphanedHint":`{count} tag non sono più nel catalogo globale. Deseleziona per rimuoverli.`,"settings.tagsTitle":`Tag dei workspace`,"settings.tagsHint":`Definisci i tag assegnabili ai workspace. Digita per aggiungere, clicca la croce per rimuovere.`,"settings.tagsLabel":`Tag disponibili`,"settings.branchPrefixesTitle":`Prefissi di branch`,"settings.branchPrefixesHint":`Gestisci i prefissi di branch Git disponibili nella pagina di creazione del workspace. Il primo è preselezionato per impostazione predefinita.`,"settings.branchPrefixesEmpty":`Nessun prefisso di branch definito. Aggiungine almeno uno qui sotto.`,"settings.branchPrefixesAddLabel":`Nuovo prefisso`,"settings.branchPrefixesEditHint":`Clicca per rinominare`,"settings.branchPrefixesMoveUp":`Sposta su`,"settings.branchPrefixesMoveDown":`Sposta giù`,"settings.worktreesTitle":`Worktree Git`,"settings.worktreesHint":`Scegli dove creare i worktree dei nuovi workspace. I percorsi relativi sono risolti dal progetto; sono supportati percorsi assoluti Linux/macOS e Windows, $HOME, ~ e %USERPROFILE%.`,"settings.worktreesPathLabel":`Percorso worktree`,"settings.worktreesPathRequired":`Il percorso worktree è obbligatorio.`,"settings.worktreesPrefixByProject":`Aggiungi il nome del progetto come prefisso ai worktree`,"settings.worktreesPrefixByProjectHint":`Posiziona ogni worktree in una sottocartella con il nome del progetto per evitare collisioni quando più progetti condividono la stessa radice.`,"settings.shareTitle":`Condividi configurazione`,"settings.shareHint":`Esporta impostazioni, template e tag come bundle JSON. Le chiavi MCP sono escluse per sicurezza.`,"settings.exportConfig":`Esporta`,"settings.importConfig":`Importa`,"settings.exportSuccess":`Configurazione esportata`,"settings.importSuccess":`Configurazione importata`,"settings.importConfirmTitle":`Importa configurazione`,"settings.importConfirmMessage":`Questo sostituirà le tue impostazioni, template e tag attuali. Le chiavi MCP vengono preservate. Continuare?`,"settings.mcp.title":`Connessioni LLM esterni (MCP)`,"settings.mcp.hint":`Collega un client MCP per leggere conversazioni, inviare messaggi e rispondere alle domande dei workspace.`,"settings.mcp.remoteDisabled":`Le connessioni remote richiedono accesso alla rete e un riavvio del server dopo l’attivazione.`,"settings.mcp.clientName":`Nome del client (facoltativo)`,"settings.mcp.connection":`Connessione`,"settings.mcp.local":`HTTP locale`,"settings.mcp.remote":`HTTP remoto`,"settings.mcp.proxy":`Proxy inverso`,"settings.mcp.stdio":`Stdio locale`,"settings.mcp.copyUrl":`Copia URL`,"settings.mcp.copyConfig":`Copia configurazione`,"settings.mcp.copyWithToken":`Copia con token`,"settings.mcp.genericFormat":`Questi esempi usano il formato generico mcpServers. Adatta il contenitore al tuo client MCP. Le anteprime mostrano un segnaposto per il token.`,"settings.mcp.tokenUnavailable":`Nessun token disponibile. Attiva l’accesso alla rete prima di copiare una configurazione autenticata.`,"settings.mcp.stdioUnavailable":`Il punto di ingresso stdio non è disponibile in questa installazione. Usa HTTP o compila prima Kōbō.`,"settings.mcp.copyFailed":`Impossibile copiare negli appunti.`,"tours.settings.mcp.title":`Collega un LLM esterno`,"tours.settings.mcp.description":`Copia una configurazione HTTP o stdio per consentire a un assistente esterno di comunicare con i tuoi workspace.`,"settings.network.title":`Accesso di rete`,"settings.network.hint":`Controlla Kōbō da un altro dispositivo della tua LAN affidabile. Off = solo localhost. On = raggiungibile sulla rete, protetto da un token. Riavvia Kōbō dopo il cambio.`,"settings.network.enable":`Abilita accesso di rete`,"settings.network.behindProxy":`Dietro un reverse proxy`,"settings.network.behindProxyHint":`Kōbō non può più distinguere la tua macchina da una richiesta inoltrata — anche localhost dovrà presentare il token d'ora in poi. Attivalo solo se un reverse proxy (Traefik, nginx, Caddy…) si trova davanti a Kōbō.`,"settings.network.restartRequired":`Riavvia Kōbō per applicare il nuovo indirizzo di bind.`,"settings.network.token":`Token di accesso`,"settings.network.copy":`Copia`,"settings.network.copied":`Copiato`,"settings.network.regenerate":`Rigenera`,"settings.network.regenerateConfirm":`Rigenerare il token? I dispositivi connessi avranno bisogno del nuovo token.`,"settings.network.urls":`URL LAN`,"settings.network.scan":`Scansiona per connetterti`,"settings.network.noUrls":`Nessun indirizzo LAN rilevato.`,"settings.network.loadFailed":`Impossibile caricare le impostazioni di accesso di rete.`,"settings.network.updateFailed":`Impossibile aggiornare le impostazioni di accesso di rete.`,"settings.unsavedChanges.title":`Modifiche non salvate`,"settings.unsavedChanges.message":`Questo progetto ha modifiche non salvate. Cambiando progetto andranno perse.`,"settings.unsavedChanges.discard":`Scarta e cambia`,"settings.unsavedChanges.cancel":`Annulla`,"settings.loadFailed":`Impossibile caricare le impostazioni`,"settings.loadFailedHint":`Il salvataggio è disattivato: il modulo mostra i valori predefiniti e scriverli sovrascriverebbe la tua configurazione reale.`,"health.title":`Stato`,"health.tooltip":`Stato del sistema`,"changelog.title":`Changelog`,"changelog.tooltip":`Novità di Kōbō`,"changelog.empty":`Nessun changelog disponibile.`,"changelog.current":`corrente`,"changelog.currentVersion":`Versione corrente: v{version}`,"health.envTitle":`Ambiente`,"health.version":`Versione`,"health.koboHome":`Kōbō home`,"health.dbTitle":`Database`,"health.dbPath":`Percorso`,"health.dbSize":`Dimensione`,"health.schemaVersion":`Versione schema`,"health.settingsSchemaVersion":`Schema impostazioni`,"health.runtimesTitle":`Runtime agente`,"health.claudeCliTitle":`Claude Code`,"health.claudeCliMissing":`claude non trovato nel PATH`,"health.codexCliTitle":`OpenAI Codex`,"health.codexCliMissing":`binario codex non risolvibile`,"health.forgeCliTitle":`CLI di forge (gh / glab)`,"health.forgeCliMissing":`Né gh né glab trovati — pull request e monitoraggio CI non disponibili`,"health.workspacesTitle":`Workspace`,"health.workspacesCount":`{total} totali, {archived} archiviati`,"health.worktreesMissing":`{count} worktree mancanti sul disco`,"health.sessionsTitle":`Sessioni agente`,"health.sessionsOrphaned":`{n} sessione/sessioni orfana/e in esecuzione`,"health.integrationsTitle":`Integrazioni`,"health.integrationConfigured":`configurata`,"health.integrationMissing":`non configurata`,"health.integrationDisabled":`disabilitata`,"settings.integrationEnabled":`Attiva integrazione`,"health.activeTitle":`Stato attivo`,"health.activeQuotaBackoffs":`Quota backoff in attesa`,"health.activeWakeups":`Wakeup programmati`,"health.activeAutoLoop":`Auto-loop in esecuzione`,"health.activeAgentSessions":`Sessioni agente attive`,"health.activeDevServers":`Dev server in esecuzione`,"health.noneActive":`Nessuno.`,"health.quotaResumeAt":`riprende alle {time}`,"health.wakeupAt":`sveglia alle {time}`,"health.startedAgo":`avviata {time} fa`,"health.autoLoopReady":`pronto, in iterazione`,"health.autoLoopGrooming":`grooming in corso`,"session.started":`Sessione avviata`,"session.ended":`Sessione terminata`,"session.compacted":`Contesto compattato`,"session.endedCompleted":`Turno terminato — invia un messaggio per continuare`,"session.endedKilled":`Sessione interrotta`,"session.endedError":`Sessione terminata con un errore`,"session.endedWatchdog":`Sessione chiusa forzatamente dopo un periodo di inattività`,"tool.running":`In corso...`,"activity.raw_lines":`Righe di output grezze ({n})`,"activity.loading_older":`Caricamento messaggi precedenti…`,"activity.compacting":`Compattazione del contesto…`,"activity.prev_user_message":`Messaggio utente precedente`,"activity.scroll_to_bottom":`Scorri in fondo`,"activity.empty":`Ancora nulla`,"activity.emptyHint":`L’output dell’agente comparirà qui appena una sessione parte.`,"activity.a11y.region":`Annunci di attività dell’agente`,"activity.a11y.agentSaid":`Agente: {text}`,"activity.a11y.toolStarted":`Strumento {name} avviato`,"activity.a11y.toolFinished":`Strumento {name} completato`,"activity.a11y.toolFailed":`Strumento {name} fallito`,"chat.systemPrompt":`Prompt di sistema`,"chat.agent":`Agente`,"chat.cleanupScript":`Script di pulizia`,"chat.archiveScript":`Script di archiviazione`,"chat.setupScript":`Script di setup`,"chat.hookScript":`Hook {event}`,"chat.scriptDone":`Fatto`,"chat.scriptComplete":`[{phase}] Completato`,"chat.scriptError":`[{phase}] Errore: {message}`,"chat.unknownError":`sconosciuto`,"chat.you":`Tu`,"chat.session":`Sessione`,"chat.nActions":`{n} azione | {n} azioni`,"chat.lastUpdatedAt":`Ultimo aggiornamento alle {time}`,"chat.scrollToTurnTop":`Scorri all'inizio del messaggio`,"migration.backing_up":`Backup del database in corso…`,"migration.running":`Migrazione dei dati dell'agente — {processed}/{total}`,"migration.error":`Migrazione non riuscita`,"migration.backup_location":`Un backup è stato salvato in {path}. Riavvia Kōbō per riprovare.`,"migration.retry":`Riavvia Kōbō per riprovare.`,"engine.select":`Engine`,"engine.model":`Modello`,"engine.effort":`Livello di ragionamento`,"wakeup.scheduledIn":`Prossimo risveglio tra {n}s`,"wakeup.scheduledAt":`Prossimo risveglio alle {time}`,"wakeup.firing":`Risveglio in corso...`,"wakeup.reason":`Motivo: {reason}`,"wakeup.cancel":`Annulla questo risveglio`,"wakeup.pendingIndicator":`Risveglio programmato`,"cron.pendingIndicator":`{n} cron programmato/i`,"schedule.tabLabel":`Pianificazione`,"schedule.admissionTitle":`Nuova sessione automatica attualmente non disponibile.`,"schedule.admissionHint":`Le scadenze restano invariate. I messaggi in conversazioni esistenti seguono regole proprie.`,"schedule.admission.not-found":`Spazio non trovato.`,"schedule.admission.archived":`Spazio archiviato.`,"schedule.admission.purged":`Ripristina il worktree.`,"schedule.admission.shutdown":`Il server si sta arrestando.`,"schedule.admission.lifecycle":`Operazione sullo spazio in corso.`,"schedule.admission.active-session":`La sessione attuale non è ancora chiusa.`,"schedule.admission.awaiting-user":`È richiesta una risposta utente.`,"schedule.admission.compacting":`Compattazione del contesto in corso.`,"schedule.admission.quota":`In attesa del ripristino della quota.`,"schedule.admission.blocked":`Ciclo bloccato; risolvi la causa indicata.`,"schedule.admission.capacity":`Limite di concorrenza raggiunto: {running}/{limit} sessioni.`,"schedule.panelTitle":`Automazione`,"schedule.panelDescription":`Risvegliare questo workspace più tardi o eseguire istruzioni secondo una pianificazione.`,"schedule.activeTitle":`Pianificazioni attive`,"schedule.emptyTitle":`Nessuna pianificazione`,"schedule.emptyDescription":`Crea un wakeup singolo o un’attività ricorrente qui sotto.`,"schedule.cancelWakeup":`Annulla questo wakeup`,"schedule.cancelCron":`Elimina questa attività ricorrente`,"schedule.createTitle":`Crea una pianificazione`,"schedule.createDescription":`Scegli quando e come deve essere eseguito l'agente.`,"schedule.typeWakeup":`Wakeup singolo`,"schedule.typeRecurring":`Attività ricorrente`,"schedule.wakeupDescription":`Esegui il prompt una volta dopo un intervallo.`,"schedule.cronDescription":`Esegui il prompt periodicamente con una frequenza fissa.`,"schedule.promptHint":`Istruzioni che verranno inviate all'agente`,"schedule.frequencyTitle":`Frequenza`,"schedule.advancedDescription":`Usa un’espressione cron grezza`,"schedule.cronExpressionLabel":`Espressione cron`,"schedule.sessionModeTitle":`Sessione di esecuzione`,"schedule.modeResume":`Riprendi sessione`,"schedule.oneShotHint":`Rimuovi questa pianificazione dopo la prima esecuzione.`,"schedule.wakeupTitle":`Wakeup in attesa`,"schedule.cronsTitle":`Pianificazioni ricorrenti`,"schedule.noWakeup":`Nessun wakeup pianificato`,"schedule.noCrons":`Nessun cron pianificato`,"schedule.invalidCron":`Inattiva: espressione non valida. Elimina e ricrea questa pianificazione.`,"schedule.nextFireAt":`prossimo alle {time}`,"schedule.lastFiredAt":`ultimo {time} fa`,"schedule.addCronTitle":`Aggiungi un'attività ricorrente`,"schedule.addWakeupTitle":`Programma un wakeup`,"schedule.every":`Ogni`,"schedule.unitMinutes":`minuti`,"schedule.unitHours":`ore`,"schedule.unitDays":`giorni`,"schedule.daysDriftWarning":`L'intervallo può ridursi a 1 giorno a fine mese (limite di cron).`,"schedule.advancedExpression":`Espressione avanzata (opzionale)`,"schedule.advancedHint":`Cron grezzo (es. */15 * * * *) o {'@'}hourly/{'@'}daily — sostituisce il selettore se compilato.`,"schedule.promptLabel":`Prompt`,"schedule.labelOptional":`Etichetta (opzionale)`,"schedule.delayMinutes":`Ritardo (minuti)`,"schedule.modeFresh":`Nuova sessione`,"schedule.oneShot":`Esegui una sola volta`,"schedule.addCronBtn":`Aggiungi cron`,"schedule.addWakeupBtn":`Programma wakeup`,"schedule.cronCreated":`Attività ricorrente aggiunta`,"schedule.wakeupCreated":`Wakeup programmato`,"askUserQuestion.title":`L'agente sta facendo una domanda`,"askUserQuestion.submit":`Invia risposta`,"askUserQuestion.multiSelectHint":`Seleziona una o più opzioni`,"askUserQuestion.otherOption":`Altro`,"askUserQuestion.otherOptionHint":`specifica nel prossimo messaggio`,"askUserQuestion.freeFormLabel":`Specifica la tua risposta`,"askUserQuestion.freeFormHint":`Questa risposta verrà inviata direttamente all'agente.`,"askUserQuestion.noPending":`Nessuna domanda in attesa`,"askUserQuestion.next":`Avanti`,"askUserQuestion.previous":`Indietro`,"askUserQuestion.cancel":`Annulla`,"askUserQuestion.cancelTooltip":`Salta questa domanda — l'agente proseguirà senza risposta`,"askUserQuestion.collapse":`Riduci il pannello della domanda`,"askUserQuestion.expand":`Espandi il pannello della domanda`,"permissionRequest.title":`L'agente vuole usare uno strumento`,"permissionRequest.allow":`Consenti`,"permissionRequest.allowOnce":`Consenti una volta`,"permissionRequest.allowTurn":`Consenti questo turno`,"permissionRequest.operationUnavailable":`Dettagli non disponibili; autorizza una volta o l’intero strumento.`,"permissionRequest.allowOperation":`Consenti sempre questa operazione`,"permissionRequest.allowTool":`Consenti sempre questo strumento`,"permissionRequest.deny":`Nega`,"permissionRequest.tool":`Strumento`,"permissionRequest.input":`Input`,"permissionRequest.rawInput":`Dettagli tecnici`,"permissionRequest.collapse":`Riduci il pannello dei permessi`,"permissionRequest.expand":`Espandi il pannello dei permessi`,"permissionRequest.denied":`negato dall'utente`,"workspaceStatus.created":`creato`,"workspaceStatus.extracting":`estrazione`,"workspaceStatus.brainstorming":`brainstorming`,"workspaceStatus.compacting":`compattazione`,"chatInput.compactingBanner":`Compattazione del contesto in corso. Potrai inviare messaggi al termine.`,"workspaceStatus.executing":`in corso`,"workspaceStatus.awaitingUser":`in attesa della tua risposta`,"workspaceStatus.completed":`completato`,"workspaceStatus.idle":`inattivo`,"workspaceStatus.error":`errore`,"workspaceStatus.quota":`quota raggiunta`,"workspaceStatus.retrying":`ripresa automatica`,"workspaceList.prOpen":`#{n} — Pull request aperta`,"workspaceList.prWatchDisabledIndicator":`Controlli PR ignorati per questo workspace`,"workspaceList.prChangesRequested":`#{n} — Modifiche richieste`,"workspaceList.attentionCiFailed":`CI fallita`,"workspaceList.attentionChangesRequested":`Modifiche richieste`,"workspaceList.attentionReadyToMerge":`Pronto per il merge`,"autoLoop.status.active":`Attivo`,"autoLoop.status.waiting":`In attesa`,"autoLoop.status.blocked":`Bloccato`,"autoLoop.status.completed":`Completato`,"autoLoop.status.stopped":`Arrestato`,"autoLoop.phase.grooming":`Preparazione`,"autoLoop.phase.execution":`Esecuzione`,"autoLoop.phase.finalization":`Finalizzazione`,"autoLoop.iteration":`Iterazione {count}`,"autoLoop.resume":`Riprendi auto-loop`,"autoLoop.retryAt":`Ripresa prevista per`,"autoLoop.actionFailed":`Impossibile completare l’azione.`,"autoLoop.messages.count":`{count} istruzione/i in coda`,"autoLoop.messages.pending":`In coda`,"autoLoop.messages.dispatching":`Invio in corso`,"autoLoop.messages.unknown":`Consegna incerta`,"autoLoop.messages.delivered":`Consegnata`,"autoLoop.messages.cancel":`Annulla l’istruzione`,"autoLoop.messages.acknowledge":`Segna come ricevuta`,"autoLoop.messages.retry":`Invia di nuovo`,"autoLoop.messages.unknownHelp":`Non è stato possibile confermare la consegna. Controlla la conversazione prima di decidere. Un nuovo invio potrebbe duplicare un’istruzione già ricevuta.`,"autoLoop.reason.quota":`In attesa della quota del fornitore.`,"autoLoop.reason.transient":`Ripresa dopo un’interruzione temporanea.`,"autoLoop.reason.awaiting-user":`In attesa della tua risposta.`,"autoLoop.reason.capacity-or-lifecycle":`In attesa di un posto disponibile per un agente.`,"autoLoop.reason.message-delivery-unknown":`Risolvi l’istruzione con consegna incerta prima di riprendere.`,"autoLoop.reason.error":`Il ciclo richiede attenzione prima di continuare.`,"autoLoop.reason.stall":`Nessun progresso rilevato. Controlla l’ultima sessione prima di riprendere.`,"autoLoop.reason.awaiting-clarification":`È necessario un chiarimento prima di continuare.`,"autoLoop.toggle":`Auto-loop`,"autoLoop.start":`Avvia l'auto-loop`,"autoLoop.prepare":`Prepara per l'auto-loop`,"autoLoop.reprepare":`Ri-prepara per l'auto-loop`,"autoLoop.reprepareTooltip":`Rilancia la fase di grooming per aggiungere o aggiornare le attività prima di riavviare il loop`,"autoLoop.prepareBusy":`Attendi che l'agente finisca prima di preparare`,"autoLoop.forceReady":`So cosa faccio — salta la preparazione`,"autoLoop.forceReadyConfirm":`Saltare la preparazione e segnare auto-loop pronto? Il loop potrebbe bloccarsi se le attività non sono atomiche.`,"autoLoop.stop":`Ferma l'auto-loop`,"autoLoop.notReady":`Esegui prima «Prepara per l'auto-loop»`,"autoLoop.noTasks":`Aggiungi prima delle attività`,"autoLoop.progress":`Auto-loop · {done}/{total} attività`,"autoLoop.preparing":`Auto-loop · preparazione`,"autoLoop.preparingTooltip":`Grooming in corso — l'agente sta creando / revisionando le attività. Il loop partirà quando chiamerà mark_auto_loop_ready.`,"autoLoop.running":`Auto-loop in corso`,"autoLoop.startInMode":`Avvia in modalità auto-loop`,"autoLoop.brainstormModelPrefix":`Brainstorm:`,"autoLoop.brainstormModelTooltip":`Modello usato solo per la sessione di brainstorming iniziale — ogni attività successiva usa il modello scelto sopra`,"autoLoop.brainstormReasoningPrefix":`Brainstorm:`,"autoLoop.brainstormReasoningTooltip":`Livello di ragionamento usato solo per la sessione di brainstorming iniziale`,"autoLoop.executionModelPrefix":`Loop:`,"autoLoop.executionModelTooltip":`Modello usato per ogni attività dell'auto-loop dopo la sessione di brainstorming iniziale`,"autoLoop.sessionMode.perTask":`Nuova sessione per attività`,"autoLoop.sessionMode.label":`Sessione:`,"autoLoop.sessionMode.perTaskTooltip":`Ogni attività avvia una nuova sessione Claude Code senza memoria delle attività precedenti`,"autoLoop.sessionMode.continuous":`Sessione continua`,"autoLoop.sessionMode.continuousTooltip":`Tutte le attività si susseguono nella stessa sessione — l'agente mantiene tutto il contesto, ma la sessione si allunga nel tempo`,"koboCommand.prepAutoloopDesc":`Preparare le attività per la modalità auto-loop (atomicità)`,"staleSessionBanner.title":`Auto-loop in corso`,"staleSessionBanner.message":`Stai visualizzando una sessione precedente — l'agente sta lavorando nella più recente.`,"staleSessionBanner.staleTitle":`Sessione precedente`,"staleSessionBanner.staleMessage":`Stai visualizzando una sessione precedente — i messaggi inviati andranno a questa sessione, non alla più recente.`,"staleSessionBanner.switchToCurrent":`Passa a quella corrente`,"network.login.title":`Accesso di rete`,"network.login.description":`Questo Kōbō richiede un token per essere controllato dalla rete. Incolla il token mostrato nelle Impostazioni sulla macchina host.`,"network.login.tokenLabel":`Token`,"network.login.tokenPlaceholder":`Incolla il tuo token`,"network.login.connect":`Connetti`,"network.login.invalid":`Token non valido`,"network.login.serverError":`Errore del server — riprova.`,"network.login.unreachable":`Kōbō non è raggiungibile — controlla la connessione.`,"layout.toggleWorkspaces":`Mostra/nascondi il pannello degli spazi`,"layout.togglePanel":`Mostra/nascondi il pannello laterale`,"unsaved.title":`Uscire senza salvare?`,"unsaved.message":`Hai modifiche non salvate. Uscire da questa pagina le scarta.`,"unsaved.leave":`Esci`,"unsaved.stay":`Resta`,"prCheckout.staleRetriesExhausted":`Lo stato del repository ha continuato a cambiare mentre applicavamo le tue scelte. Chiudi questa finestra e riprova dal selettore delle pull request.`,"prPicker.title":`Importa da una pull request`,"prPicker.filterAll":`Tutte`,"prPicker.filterMine":`Le mie`,"prPicker.filterReviewRequested":`Revisione richiesta`,"prPicker.searchPlaceholder":`Cerca pull request…`,"prPicker.loadMore":`Carica altre`,"prPicker.empty":`Nessuna pull request aperta corrisponde.`,"prPicker.forkNotSupported":`Questa PR proviene da un fork; Kōbō non può eseguirne il checkout.`,"prPicker.loadFailed":`Impossibile caricare le pull request.`,"prPicker.badge.workspaceExists":`Già aperta in Kōbō`,"prPicker.badge.worktreePresent":`Worktree presente`,"prPicker.badge.localBranch":`Branch locale`,"prPicker.badge.new":`Nuova`,"prPicker.badge.draft":`Bozza`,"prCheckout.title":`Prepara la worktree`,"prCheckout.apply":`Applica`,"prCheckout.cancel":`Annulla`,"prCheckout.retry":`Riprova`,"prCheckout.diagnoseFailed":`Impossibile diagnosticare la pull request.`,"prCheckout.resolveFailed":`Impossibile risolvere il checkout della pull request.`,"prCheckout.path.required":`Inserisci un percorso di worktree che non esista già.`,"prCheckout.workspace.restoreNotAvailable":"Il ripristino di un workspace eliminato non è ancora disponibile da qui. Ricrea la sua cartella worktree su disco (ad es. con `git worktree add`) e Kōbō la ricollegherà automaticamente entro circa 30 secondi.","prCheckout.staleReloaded":`Il repository è cambiato; la diagnosi è stata aggiornata.`,"prCheckout.step.blocked":`Impossibile continuare`,"prCheckout.step.path":`Posizione della worktree`,"prCheckout.step.workspace":`Workspace esistente`,"prCheckout.step.worktree":`Worktree esistente`,"prCheckout.step.operation":`Operazione git in corso`,"prCheckout.step.changes":`Modifiche non commitate`,"prCheckout.step.divergence":`Branch locale vs origin`,"prCheckout.workspace.activeHint":`Un workspace chiamato "{name}" segue già questo branch.`,"prCheckout.workspace.open":`Apri quel workspace`,"prCheckout.workspace.continue":`Continua su un altro percorso`,"prCheckout.workspace.unarchive":`Ripristina e aprilo`,"prCheckout.workspace.restore":`Ricrea la sua worktree`,"prCheckout.worktree.orphanHint":`Esiste già una worktree su questo branch in {path}.`,"prCheckout.worktree.attach":`Collegala`,"prCheckout.worktree.branchInUse":`Questo branch è già estratto. Collega il worktree esistente.`,"prCheckout.worktree.createElsewhere":`Creane un'altra altrove`,"prCheckout.operation.hint":`Un {operation} è in corso in quella worktree.`,"prCheckout.operation.abort":`Interrompilo`,"prCheckout.operation.cancel":`Lascialo stare e fermati qui`,"prCheckout.changes.hint":`{modified} modificati, {staged} in stage, {untracked} non tracciati.`,"prCheckout.changes.stash":`Metti in stash`,"prCheckout.changes.commit":`Fai il commit`,"prCheckout.changes.discard":`Scartale (conservate in uno stash etichettato)`,"prCheckout.changes.keepResetConflict":`Conservare le modifiche locali è incompatibile con un reset. Usa stash o commit, oppure conserva il branch.`,"prCheckout.changes.keep":`Lasciale come sono`,"prCheckout.divergence.behindHint":`Il tuo branch è indietro di {behind} commit rispetto a origin.`,"prCheckout.divergence.aheadHint":`Il tuo branch ha {ahead} commit non pushati.`,"prCheckout.divergence.divergedHint":`{ahead} avanti, {behind} indietro rispetto a origin.`,"prCheckout.divergence.fastForward":`Fast-forward su origin`,"prCheckout.divergence.rebase":`Rebase su origin`,"prCheckout.divergence.resetHard":`Reimposta su origin (viene prima creato un branch di backup)`,"prCheckout.divergence.keep":`Mantieni lo stato locale`,"prCheckout.blocked.forgeUnavailable":`Il CLI della forge manca o non è autenticato.`,"prCheckout.blocked.forkPr":`Questa PR proviene da un fork; Kōbō non può eseguirne il checkout.`,"prCheckout.blocked.headBranchDeleted":`Il branch non esiste più sul remote.`,"prCheckout.blocked.indexLock":`È in corso un altro processo git (index.lock è presente).`,"prCheckout.blocked.pathOccupied":`{path} esiste già e non è una worktree.`,"prCheckout.blocked.worktreeOtherBranch":`{path} è una worktree su un altro branch ({branch}).`,"prCheckout.blocked.noCommonAncestor":`Esiste già un branch locale chiamato {branch} con una storia non correlata.`,"split.title":`Vista doppia workspace`,"split.open":`Apri affiancati`,"split.openBeside":`Apri accanto`,"split.close":`Chiudi vista doppia`,"split.left":`Workspace sinistro`,"split.right":`Workspace destro`,"split.choose":`Scegli un workspace`,"split.recipient":`Invia a: {name}`,"absence.title":`Dalla tua ultima visita`,"settings.activityDigestHint":`Mostra un riepilogo degli eventi avvenuti durante la tua assenza. Disattivando questa opzione, la voce viene nascosta e la raccolta di nuovi eventi si interrompe, senza eliminare la cronologia esistente.`,"absence.pending":`Modifiche da consultare`,"absence.retention":`Attività importanti degli ultimi 30 giorni, registrate dall’installazione di questa funzione. Le visite sono memorizzate solo in questo browser.`,"absence.since":`Dal {date}`,"absence.error":`Impossibile caricare le attività.`,"absence.retry":`Riprova`,"absence.empty":`Nessuna nuova attività.`,"absence.more":`Carica altro`,"absence.markRead":`Segna gli eventi visualizzati come letti`,"absence.kind.question":`Domanda posta`,"absence.kind.permission":`Approvazione richiesta`,"absence.kind.completed":`Sessione terminata`,"absence.kind.error":`Errore dell’agente`,"absence.kind.pr-merged":`PR unita`,"absence.kind.pr-approved":`PR approvata`,"absence.kind.pr-changes-requested":`Modifiche richieste`,"absence.kind.pr-ci-failed":`CI non riuscita`,"absence.kind.pr-ci-recovered":`CI ripristinata`,"absence.kind.pr-merge-conflict":`Conflitto di merge`,"absence.kind.pr-ready-to-merge":`PR pronta per il merge`,"absence.kind.archived":`Workspace archiviato`,"absence.kind.purged":`Worktree eliminato`,"absence.kind.restored":`Worktree ripristinato`,"tours.split.controls.title":`Due workspace indipendenti`,"tours.split.controls.description":`Scegli un workspace per pannello. Ridimensiona il divisore; ogni conversazione mantiene il proprio destinatario e i propri pannelli.`,"tours.home.sort.title":`Ordina i workspace`,"tours.home.sort.description":`Scegli ordine e direzione in ogni gruppo. La scelta viene memorizzata.`,"tours.home.activity.title":`Consulta le attività dopo un’assenza`,"tours.home.activity.description":`In fondo al pannello sinistro trovi domande, sessioni terminate, errori e modifiche alle PR dalla tua ultima visita.`};export{e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{conf as e,language as t}from"./typescript-
|
|
1
|
+
import{conf as e,language as t}from"./typescript-DwyZ4CF7.js";var n=e,r={defaultToken:`invalid`,tokenPostfix:`.js`,keywords:`break.case.catch.class.continue.const.constructor.debugger.default.delete.do.else.export.extends.false.finally.for.from.function.get.if.import.in.instanceof.let.new.null.return.set.static.super.switch.symbol.this.throw.true.try.typeof.undefined.var.void.while.with.yield.async.await.of`.split(`.`),typeKeywords:[],operators:t.operators,symbols:t.symbols,escapes:t.escapes,digits:t.digits,octaldigits:t.octaldigits,binarydigits:t.binarydigits,hexdigits:t.hexdigits,regexpctl:t.regexpctl,regexpesc:t.regexpesc,tokenizer:t.tokenizer};export{n as conf,r as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./editor.api-
|
|
1
|
+
import{n as e}from"./editor.api-DhaLhNl-.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[[`<!--`,`-->`],[`<`,`>`],[`{{`,`}}`],[`{%`,`%}`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`%`,close:`%`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`<`,close:`>`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:``,tokenPostfix:``,builtinTags:`if.else.elseif.endif.render.assign.capture.endcapture.case.endcase.comment.endcomment.cycle.decrement.for.endfor.include.increment.layout.raw.endraw.render.tablerow.endtablerow.unless.endunless`.split(`.`),builtinFilters:`abs.append.at_least.at_most.capitalize.ceil.compact.date.default.divided_by.downcase.escape.escape_once.first.floor.join.json.last.lstrip.map.minus.modulo.newline_to_br.plus.prepend.remove.remove_first.replace.replace_first.reverse.round.rstrip.size.slice.sort.sort_natural.split.strip.strip_html.strip_newlines.times.truncate.truncatewords.uniq.upcase.url_decode.url_encode.where`.split(`.`),constants:[`true`,`false`],operators:[`==`,`!=`,`>`,`<`,`>=`,`<=`],symbol:/[=><!]+/,identifier:/[a-zA-Z_][\w]*/,tokenizer:{root:[[/\{\%\s*comment\s*\%\}/,`comment.start.liquid`,`@comment`],[/\{\{/,{token:`@rematch`,switchTo:`@liquidState.root`}],[/\{\%/,{token:`@rematch`,switchTo:`@liquidState.root`}],[/(<)([\w\-]+)(\/>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)([:\w]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/(<\/)([\w\-]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/</,`delimiter.html`],[/\{/,`delimiter.html`],[/[^<{]+/]],comment:[[/\{\%\s*endcomment\s*\%\}/,`comment.end.liquid`,`@pop`],[/./,`comment.content.liquid`]],otherTag:[[/\{\{/,{token:`@rematch`,switchTo:`@liquidState.otherTag`}],[/\{\%/,{token:`@rematch`,switchTo:`@liquidState.otherTag`}],[/\/?>/,`delimiter.html`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,`delimiter.output.liquid`],[/\}\}/,{token:`delimiter.output.liquid`,switchTo:`@$S2.$S3`}],[/\{\%/,`delimiter.tag.liquid`],[/raw\s*\%\}/,`delimiter.tag.liquid`,`@liquidRaw`],[/\%\}/,{token:`delimiter.tag.liquid`,switchTo:`@$S2.$S3`}],{include:`liquidRoot`}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,`delimiter.tag.liquid`],[/@identifier/],[/\%\}/,{token:`delimiter.tag.liquid`,next:`@root`}]],liquidRoot:[[/\d+(\.\d+)?/,`number.liquid`],[/"[^"]*"/,`string.liquid`],[/'[^']*'/,`string.liquid`],[/\s+/],[/@symbol/,{cases:{"@operators":`operator.liquid`,"@default":``}}],[/\./],[/@identifier/,{cases:{"@constants":`keyword.liquid`,"@builtinFilters":`predefined.liquid`,"@builtinTags":`predefined.liquid`,"@default":`variable.liquid`}}],[/[^}|%]/,`variable.liquid`]]}};export{n as conf,r as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./editor.api-
|
|
1
|
+
import{n as e}from"./editor.api-DhaLhNl-.js";var t={comments:{blockComment:[`{/*`,`*/}`]},brackets:[[`{`,`}`]],autoClosingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`“`,close:`”`},{open:`‘`,close:`’`},{open:"`",close:"`"},{open:`{`,close:`}`},{open:`(`,close:`)`},{open:`_`,close:`_`},{open:`**`,close:`**`},{open:`<`,close:`>`}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:e.IndentAction.None,appendText:`- `}},{beforeText:/^\s*\+ .+/,action:{indentAction:e.IndentAction.None,appendText:`+ `}},{beforeText:/^\s*\* .+/,action:{indentAction:e.IndentAction.None,appendText:`* `}},{beforeText:/^> /,action:{indentAction:e.IndentAction.None,appendText:`> `}},{beforeText:/<\w+/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:e.IndentAction.Outdent}},...Array.from({length:100},(t,n)=>({beforeText:RegExp(`^${n}\\. .+`),action:{indentAction:e.IndentAction.None,appendText:`${n+1}. `}}))]},n={defaultToken:``,tokenPostfix:`.mdx`,control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:`meta.content`,next:`@frontmatter`,nextEmbedded:`yaml`}],[/^\s*import/,{token:`keyword`,next:`@import`,nextEmbedded:`js`}],[/^\s*export/,{token:`keyword`,next:`@export`,nextEmbedded:`js`}],[/<\w+/,{token:`type.identifier`,next:`@jsx`}],[/<\/?\w+>/,`type.identifier`],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:`white`},{token:`comment`},{token:`keyword`,next:`@header`}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,[`white`,`comment`,`keyword`,`white`]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,[`white`,`comment`,`number`,`white`]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,[`white`,`comment`,`number`,`white`]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,[`white`,`comment`,`keyword`]],[/`{3,}(\s.*)?$/,{token:`string`,next:`@codeblock_backtick`}],[/~{3,}(\s.*)?$/,{token:`string`,next:`@codeblock_tilde`}],[/`{3,}(\S+).*$/,{token:`string`,next:`@codeblock_highlight_backtick`,nextEmbedded:`$1`}],[/~{3,}(\S+).*$/,{token:`string`,next:`@codeblock_highlight_tilde`,nextEmbedded:`$1`}],[/^(\s*)(-{4,})$/,[`white`,`comment`]],[/^(\s*)(>+)/,[`white`,`comment`]],{include:`content`}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,[``,`string.link`,``,`type.identifier`,`string.link`,``]],[/(\[)(.+)(]\()(.+)(\))/,[``,`type.identifier`,``,`string.link`,``]],[/(\[)(.+)(]\[)(.+)(])/,[``,`type.identifier`,``,`type.identifier`,``]],[/(\[)(.+)(]:\s+)(\S*)/,[``,`type.identifier`,``,`string.link`]],[/(\[)(.+)(])/,[``,`type.identifier`,``]],[/`.*`/,`variable.source`],[/_/,{token:`emphasis`,next:`@emphasis_underscore`}],[/\*(?!\*)/,{token:`emphasis`,next:`@emphasis_asterisk`}],[/\*\*/,{token:`strong`,next:`@strong`}],[/{/,{token:`delimiter.bracket`,next:`@expression`,nextEmbedded:`js`}]],import:[[/'\s*(;|$)/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}]],expression:[[/{/,{token:`delimiter.bracket`,next:`@expression`}],[/}/,{token:`delimiter.bracket`,next:`@pop`,nextEmbedded:`@pop`}]],export:[[/^\s*$/,{token:`delimiter.bracket`,next:`@pop`,nextEmbedded:`@pop`}]],jsx:[[/\s+/,``],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,[`attribute.name`,`operator`,`string`]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,[`attribute.name`,`operator`,`string`]],[/(\w+(?=\s|>|={|$))/,[`attribute.name`]],[/={/,{token:`delimiter.bracket`,next:`@expression`,nextEmbedded:`js`}],[/>/,{token:`type.identifier`,next:`@pop`}]],header:[[/.$/,{token:`keyword`,next:`@pop`}],{include:`content`},[/./,{token:`keyword`}]],strong:[[/\*\*/,{token:`strong`,next:`@pop`}],{include:`content`},[/./,{token:`strong`}]],emphasis_underscore:[[/_/,{token:`emphasis`,next:`@pop`}],{include:`content`},[/./,{token:`emphasis`}]],emphasis_asterisk:[[/\*(?!\*)/,{token:`emphasis`,next:`@pop`}],{include:`content`},[/./,{token:`emphasis`}]],frontmatter:[[/^---$/,{token:`meta.content`,nextEmbedded:`@pop`,next:`@pop`}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}],[/.*$/,`variable.source`]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}],[/.*$/,`variable.source`]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:`string`,next:`@pop`}],[/.*$/,`variable.source`]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:`string`,next:`@pop`}],[/.*$/,`variable.source`]]}};export{t as conf,n as language};
|